Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/jgraph/drawio.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Benson <david@draw.io>2022-03-31 18:30:47 +0300
committerDavid Benson <david@draw.io>2022-03-31 18:30:47 +0300
commit4748b7195b66076868da452b35ff3ffe13ad37ec (patch)
treedbc161506c727832a35abb4d30dad5b48e1e3a8e
parente91e491561128eb34e4234f957bbfd2a76b2412d (diff)
17.4.0 releasev17.4.0
-rw-r--r--ChangeLog10
-rw-r--r--VERSION2
-rw-r--r--src/main/webapp/js/app.min.js964
-rw-r--r--src/main/webapp/js/diagramly/Devel.js2
-rw-r--r--src/main/webapp/js/diagramly/Dialogs.js2
-rw-r--r--src/main/webapp/js/diagramly/EditorUi.js64
-rw-r--r--src/main/webapp/js/diagramly/Minimal.js27
-rw-r--r--src/main/webapp/js/diagramly/OneDriveClient.js28
-rw-r--r--src/main/webapp/js/integrate.min.js160
-rw-r--r--src/main/webapp/js/onedrive/mxODPicker.js9
-rw-r--r--src/main/webapp/js/viewer-static.min.js1252
-rw-r--r--src/main/webapp/js/viewer.min.js1252
-rw-r--r--src/main/webapp/mxgraph/mxClient.js2
-rw-r--r--src/main/webapp/plugins/cConf-1-4-8.js2
-rw-r--r--src/main/webapp/service-worker.js2
-rw-r--r--src/main/webapp/service-worker.js.map2
16 files changed, 1896 insertions, 1884 deletions
diff --git a/ChangeLog b/ChangeLog
index 8df61a6f..d84c3a8f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+31-MAR-2022: 17.4.0
+
+- Disables text selection in OneDrive inline picker
+- [jira cloud] Fixes re-indexing of old diagrams
+- Fixes NPE for OneDrive file in LinkDialog https://github.com/jgraph/drawio/issues/2721
+- Fixes modal sync status in embed with sketch theme
+- GAE API SDK update to 1.9.95
+
30-MAR-2022: 17.3.0
- [conf cloud] Enables RT on all domains
@@ -27,7 +35,7 @@
24-MAR-2022: 17.2.2
-- Adds Shift+Alt for floating connections https://github.com/jgraph/drawio/issues/DID-4550
+- Adds Shift+Alt for floating connections [DID-4550]
23-MAR-2022: 17.2.1
diff --git a/VERSION b/VERSION
index c15795bf..67a9587f 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-17.3.0 \ No newline at end of file
+17.4.0 \ No newline at end of file
diff --git a/src/main/webapp/js/app.min.js b/src/main/webapp/js/app.min.js
index 919913af..b26d3668 100644
--- a/src/main/webapp/js/app.min.js
+++ b/src/main/webapp/js/app.min.js
@@ -561,7 +561,7 @@ a),DRAWIO_GITLAB_URL=a);a=urlParams["gitlab-id"];null!=a&&(DRAWIO_GITLAB_ID=a);w
if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local||"1"==urlParams.lockdown)urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0";
"se.diagrams.net"==window.location.hostname&&(urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0",urlParams.plugins="0",urlParams.mode="google",urlParams.lockdown="1",window.DRAWIO_GOOGLE_APP_ID=window.DRAWIO_GOOGLE_APP_ID||"184079235871",window.DRAWIO_GOOGLE_CLIENT_ID=window.DRAWIO_GOOGLE_CLIENT_ID||"184079235871-pjf5nn0lff27lk8qf0770gmffiv9gt61.apps.googleusercontent.com");"trello"==urlParams.mode&&(urlParams.tr="1");
"embed.diagrams.net"==window.location.hostname&&(urlParams.embed="1");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";
-window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"17.3.0",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"17.4.0",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&2<navigator.maxTouchPoints,IS_WEBVIEW:/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&
0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!==
@@ -10601,7 +10601,7 @@ f=document.createElement("img"),f.setAttribute("src",Editor.tweetImage),f.setAtt
b.defaultFilename)+"&body="+encodeURIComponent(p.value);b.openLink(c)}catch(u){b.handleError({message:u.message||mxResources.get("drawingTooLarge")})}}),f=document.createElement("img"),f.setAttribute("src",Editor.mailImage),f.setAttribute("width","18"),f.setAttribute("height","18"),f.setAttribute("border","0"),f.style.marginBottom="5px",Editor.isDarkMode()&&(f.style.filter="invert(100%)"),t.appendChild(f),t.style.verticalAlign="bottom",t.style.paddingTop="4px",t.style.minWidth="46px",t.className=
"geBtn",k.appendChild(t));f=mxUtils.button(mxResources.get("close"),function(){b.hideDialog()});k.appendChild(f);t=mxUtils.button(mxResources.get("copy"),function(){p.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?p.select():document.execCommand("selectAll",!1,null);document.execCommand("copy");b.alert(mxResources.get("copiedToClipboard"))});5E5>e.length?mxClient.IS_SF||null!=document.documentMode?f.className="geBtn gePrimaryBtn":(k.appendChild(t),t.className="geBtn gePrimaryBtn",
f.className="geBtn"):(k.appendChild(q),f.className="geBtn",q.className="geBtn gePrimaryBtn");c.appendChild(k);this.container=c};EmbedDialog.showPreviewOption=!0;
-var GoogleSitesDialog=function(b,e){function d(){var b=null!=D&&null!=D.getTitle()?D.getTitle():this.defaultFilename;if(A.checked&&""!=t.value){var c="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(t.value));null!=b&&(c+="&title="+encodeURIComponent(b));0<G.length&&(c+="&s="+G);""!=v.value&&"0"!=v.value&&(c+="&border="+v.value);""!=q.value&&(c+="&height="+q.value);c+="&pan="+(u.checked?"1":"0");c+="&zoom="+(x.checked?"1":"0");c+="&fit="+(C.checked?"1":"0");
+var GoogleSitesDialog=function(b,e){function d(){var b=null!=D&&null!=D.getTitle()?D.getTitle():this.defaultFilename;if(A.checked&&""!=t.value){var c="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(t.value));null!=b&&(c+="&title="+encodeURIComponent(b));0<F.length&&(c+="&s="+F);""!=v.value&&"0"!=v.value&&(c+="&border="+v.value);""!=q.value&&(c+="&height="+q.value);c+="&pan="+(u.checked?"1":"0");c+="&zoom="+(x.checked?"1":"0");c+="&fit="+(C.checked?"1":"0");
c+="&resize="+(B.checked?"1":"0");c+="&x0="+Number(p.value);c+="&y0="+l;g.mathEnabled&&(c+="&math=1");y.checked?c+="&edit=_blank":z.checked&&(c+="&edit="+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));m.value=c}else D.constructor==DriveFile||D.constructor==DropboxFile?(c="https://www.draw.io/gadget.xml?embed=0&diagram=",""!=t.value?c+=encodeURIComponent(mxUtils.htmlEntities(t.value))+"&type=3":(c+=D.getHash().substring(1),c=D.constructor==DropboxFile?c+"&type=2":c+"&type=1"),null!=
b&&(c+="&title="+encodeURIComponent(b)),""!=q.value&&(b=parseInt(q.value)+parseInt(p.value),c+="&height="+b),m.value=c):m.value=""}var c=document.createElement("div"),g=b.editor.graph,k=g.getGraphBounds(),n=g.view.scale,f=Math.floor(k.x/n-g.view.translate.x),l=Math.floor(k.y/n-g.view.translate.y);mxUtils.write(c,mxResources.get("googleGadget")+":");mxUtils.br(c);var m=document.createElement("input");m.setAttribute("type","text");m.style.marginBottom="8px";m.style.marginTop="2px";m.style.width="410px";
c.appendChild(m);mxUtils.br(c);this.init=function(){m.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?m.select():document.execCommand("selectAll",!1,null)};mxUtils.write(c,mxResources.get("top")+":");var p=document.createElement("input");p.setAttribute("type","text");p.setAttribute("size","4");p.style.marginRight="16px";p.style.marginLeft="4px";p.value=f;c.appendChild(p);mxUtils.write(c,mxResources.get("height")+":");var q=document.createElement("input");q.setAttribute("type","text");
@@ -10609,7 +10609,7 @@ q.setAttribute("size","4");q.style.marginLeft="4px";q.value=Math.ceil(k.height/n
mxUtils.br(c);mxUtils.write(c,mxResources.get("borderWidth")+":");var v=document.createElement("input");v.setAttribute("type","text");v.setAttribute("size","3");v.style.marginBottom="8px";v.style.marginLeft="4px";v.value="0";c.appendChild(v);mxUtils.br(c);var u=document.createElement("input");u.setAttribute("type","checkbox");u.setAttribute("checked","checked");u.defaultChecked=!0;u.style.marginLeft="16px";c.appendChild(u);mxUtils.write(c,mxResources.get("pan")+" ");var x=document.createElement("input");
x.setAttribute("type","checkbox");x.setAttribute("checked","checked");x.defaultChecked=!0;x.style.marginLeft="8px";c.appendChild(x);mxUtils.write(c,mxResources.get("zoom")+" ");var z=document.createElement("input");z.setAttribute("type","checkbox");z.style.marginLeft="8px";z.setAttribute("title",window.location.href);c.appendChild(z);mxUtils.write(c,mxResources.get("edit")+" ");var y=document.createElement("input");y.setAttribute("type","checkbox");y.style.marginLeft="8px";c.appendChild(y);mxUtils.write(c,
mxResources.get("asNew")+" ");mxUtils.br(c);var B=document.createElement("input");B.setAttribute("type","checkbox");B.setAttribute("checked","checked");B.defaultChecked=!0;B.style.marginLeft="16px";c.appendChild(B);mxUtils.write(c,mxResources.get("resize")+" ");var C=document.createElement("input");C.setAttribute("type","checkbox");C.style.marginLeft="8px";c.appendChild(C);mxUtils.write(c,mxResources.get("fit")+" ");var A=document.createElement("input");A.setAttribute("type","checkbox");A.style.marginLeft=
-"8px";c.appendChild(A);mxUtils.write(c,mxResources.get("embed")+" ");var G=b.getBasenames().join(";"),D=b.getCurrentFile();mxEvent.addListener(u,"change",d);mxEvent.addListener(x,"change",d);mxEvent.addListener(B,"change",d);mxEvent.addListener(C,"change",d);mxEvent.addListener(z,"change",d);mxEvent.addListener(y,"change",d);mxEvent.addListener(A,"change",d);mxEvent.addListener(q,"change",d);mxEvent.addListener(p,"change",d);mxEvent.addListener(v,"change",d);mxEvent.addListener(t,"change",d);d();
+"8px";c.appendChild(A);mxUtils.write(c,mxResources.get("embed")+" ");var F=b.getBasenames().join(";"),D=b.getCurrentFile();mxEvent.addListener(u,"change",d);mxEvent.addListener(x,"change",d);mxEvent.addListener(B,"change",d);mxEvent.addListener(C,"change",d);mxEvent.addListener(z,"change",d);mxEvent.addListener(y,"change",d);mxEvent.addListener(A,"change",d);mxEvent.addListener(q,"change",d);mxEvent.addListener(p,"change",d);mxEvent.addListener(v,"change",d);mxEvent.addListener(t,"change",d);d();
mxEvent.addListener(m,"click",function(){m.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?m.select():document.execCommand("selectAll",!1,null)});k=document.createElement("div");k.style.paddingTop="12px";k.style.textAlign="right";n=mxUtils.button(mxResources.get("close"),function(){b.hideDialog()});n.className="geBtn gePrimaryBtn";k.appendChild(n);c.appendChild(k);this.container=c},CreateGraphDialog=function(b,e,d){var c=document.createElement("div");c.style.textAlign="right";this.init=
function(){var e=document.createElement("div");e.style.position="relative";e.style.border="1px solid gray";e.style.width="100%";e.style.height="360px";e.style.overflow="hidden";e.style.marginBottom="16px";mxEvent.disableContextMenu(e);c.appendChild(e);var k=new Graph(e);k.setCellsCloneable(!0);k.setPanning(!0);k.setAllowDanglingEdges(!1);k.connectionHandler.select=!1;k.view.setTranslate(20,20);k.border=20;k.panningHandler.useLeftButtonForPanning=!0;var n="curved=1;";k.cellRenderer.installCellOverlayListeners=
function(b,c,f){mxCellRenderer.prototype.installCellOverlayListeners.apply(this,arguments);mxEvent.addListener(f.node,mxClient.IS_POINTER?"pointerdown":"mousedown",function(f){c.fireEvent(new mxEventObject("pointerdown","event",f,"state",b))});!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&mxEvent.addListener(f.node,"touchstart",function(f){c.fireEvent(new mxEventObject("pointerdown","event",f,"state",b))})};k.getAllConnectionConstraints=function(){return null};k.connectionHandler.marker.highlight.keepOnTop=
@@ -10617,7 +10617,7 @@ function(b,c,f){mxCellRenderer.prototype.installCellOverlayListeners.apply(this,
k.insertEdge(f,null,"",b,m,n)},function(){k.scrollCellToVisible(m)})});c.addListener("pointerdown",function(b,c){var f=c.getProperty("event"),e=c.getProperty("state");k.popupMenuHandler.hideMenu();k.stopEditing(!1);var d=mxUtils.convertPoint(k.container,mxEvent.getClientX(f),mxEvent.getClientY(f));k.connectionHandler.start(e,d.x,d.y);k.isMouseDown=!0;k.isMouseTrigger=mxEvent.isMouseEvent(f);mxEvent.consume(f)});k.addCellOverlay(b,c)});k.getModel().beginUpdate();var m;try{m=k.insertVertex(f,null,"Start",
0,0,80,30,"ellipse"),l(m)}finally{k.getModel().endUpdate()}var p;"horizontalTree"==d?(p=new mxCompactTreeLayout(k),p.edgeRouting=!1,p.levelDistance=30,n="edgeStyle=elbowEdgeStyle;elbow=horizontal;"):"verticalTree"==d?(p=new mxCompactTreeLayout(k,!1),p.edgeRouting=!1,p.levelDistance=30,n="edgeStyle=elbowEdgeStyle;elbow=vertical;"):"radialTree"==d?(p=new mxRadialTreeLayout(k,!1),p.edgeRouting=!1,p.levelDistance=80):"verticalFlow"==d?p=new mxHierarchicalLayout(k,mxConstants.DIRECTION_NORTH):"horizontalFlow"==
d?p=new mxHierarchicalLayout(k,mxConstants.DIRECTION_WEST):"organic"==d?(p=new mxFastOrganicLayout(k,!1),p.forceConstant=80):"circle"==d&&(p=new mxCircleLayout(k));if(null!=p){var q=function(b,c){k.getModel().beginUpdate();try{null!=b&&b(),p.execute(k.getDefaultParent(),m)}catch(B){throw B;}finally{var f=new mxMorphing(k);f.addListener(mxEvent.DONE,mxUtils.bind(this,function(){k.getModel().endUpdate();null!=c&&c()}));f.startAnimation()}},t=mxEdgeHandler.prototype.connect;mxEdgeHandler.prototype.connect=
-function(b,c,f,d,e){t.apply(this,arguments);q()};k.resizeCell=function(){mxGraph.prototype.resizeCell.apply(this,arguments);q()};k.connectionHandler.addListener(mxEvent.CONNECT,function(){q()})}var v=mxUtils.button(mxResources.get("close"),function(){b.confirm(mxResources.get("areYouSure"),function(){null!=e.parentNode&&(k.destroy(),e.parentNode.removeChild(e));b.hideDialog()})});v.className="geBtn";b.editor.cancelFirst&&c.appendChild(v);var u=mxUtils.button(mxResources.get("insert"),function(c){k.clearCellOverlays();
+function(b,c,f,e,d){t.apply(this,arguments);q()};k.resizeCell=function(){mxGraph.prototype.resizeCell.apply(this,arguments);q()};k.connectionHandler.addListener(mxEvent.CONNECT,function(){q()})}var v=mxUtils.button(mxResources.get("close"),function(){b.confirm(mxResources.get("areYouSure"),function(){null!=e.parentNode&&(k.destroy(),e.parentNode.removeChild(e));b.hideDialog()})});v.className="geBtn";b.editor.cancelFirst&&c.appendChild(v);var u=mxUtils.button(mxResources.get("insert"),function(c){k.clearCellOverlays();
var f=k.getModel().getChildren(k.getDefaultParent());c=mxEvent.isAltDown(c)?b.editor.graph.getFreeInsertPoint():b.editor.graph.getCenterInsertPoint(k.getBoundingBoxFromGeometry(f,!0));f=b.editor.graph.importCells(f,c.x,c.y);c=b.editor.graph.view;var d=c.getBounds(f);d.x-=c.translate.x;d.y-=c.translate.y;b.editor.graph.scrollRectToVisible(d);b.editor.graph.setSelectionCells(f);null!=e.parentNode&&(k.destroy(),e.parentNode.removeChild(e));b.hideDialog()});c.appendChild(u);u.className="geBtn gePrimaryBtn";
b.editor.cancelFirst||c.appendChild(v)};this.container=c};
CreateGraphDialog.prototype.connectImage=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjQ3OTk0QjMyRDcyMTFFNThGQThGNDVBMjNBMjFDMzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjQ3OTk0QjQyRDcyMTFFNThGQThGNDVBMjNBMjFDMzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjA0N0I2MjJENzExMUU1OEZBOEY0NUEyM0EyMUMzOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGNDc5OTRCMjJENzIxMUU1OEZBOEY0NUEyM0EyMUMzOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjIf+MgAAATlSURBVHjanFZraFxFFD735u4ru3ls0yZG26ShgmJoKK1J2vhIYzBgRdtIURHyw1hQUH9IxIgI2h8iCEUF/1RRlNQYCsYfCTHVhiTtNolpZCEStqSC22xIsrs1bDfu7t37Gs/cO3Ozxs1DBw73zpk555vzmHNGgJ0NYatFgmNLYUHYUoHASMz5ijmgVLmxgfKCUiBxC4ACJAeSG8nb1dVVOTc3dyoSibwWDofPBIPBJzo7O8vpGtvjpDICGztxkciECpF2LS0tvZtOpwNkk5FKpcYXFxffwL1+JuPgllPj8nk1F6RoaGjoKCqZ5ApljZDZO4SMRA0SuG2QUJIQRV8HxMOM9vf3H0ZZH9Nhg20MMl2QkFwjIyNHWlpahtADnuUMwLcRHX5aNSBjCJYEsSSLUeLEbhGe3ytCmQtA1/XY+Pj46dbW1iDuyCJp9BC5ycBj4hoeHq5ra2sbw0Xn1ZgBZ+dVkA1Lc+6p0Ck2p0QS4Ox9EhwpEylYcmBg4LH29vYQLilIOt0u5FhDfevNZDI/u93uw6PLOrwTUtjxrbPYbhD42WgMrF8JmR894ICmCgnQjVe8Xu8pXEkzMJKbuo5oNPomBbm1ZsD7s2kwFA1JZ6QBUXWT1nmGNc/qoMgavDcrQzxjQGFh4aOYIJ0sFAXcEtui4uLiVjr5KpSBVFYDDZVrWUaKRRWSAYeK0fmKykgDXbVoNaPChRuyqdDv97czL5nXxQbq6empQmsaklkDBiNpSwFVrmr2P6UyicD5piI4f8wHh0oEm8/p4h8pyGiEWvVQd3e3nxtjAzU1NR2jP7NRBWQ8GbdEzzJAmc0V3RR4cI8Dvmwuhc8fKUFA0d6/ltHg5p+Kuaejo6OeY0jcNJ/PV00ZS0nFUoZRvvFS1bZFsKHCCQ2Pl8H0chY+C96B6ZUsrCQ1qKtwQVFRURW/QhIXMAzDPAZ6BgOr8tTa8dDxCmiYGApaJbJMxSzV+brE8pdgWkcpY5dbMF1AR9XH8/xu2ilef48bvn92n82ZwHh+8ssqTEXS9p7dHisiiURikd8PbpExNTU1UVNTA3V3Y7lC16n0gpB/NwpNcZjfa7dScC4Qh0kOQCwnlEgi3F/hMVl9fX0zvKrzSk2lfXjRhj0eT/2rvWG4+Pta3oJY7XfC3hInXAv/ldeFLx8shQ+eqQL0UAAz7ylkpej5eNZRVBWL6BU6ef14OYiY1oqyTtmsavr/5koaRucT1pzx+ZpL1+GV5nLutksUgIcmtwTRiuuVZXnU5XId7A2swJkfFsymRWC91hHg1Viw6x23+7vn9sPJ+j20BE1hCXqSWaNSQ8ScbknRZWxub1PGCw/fBV+c3AeijlUbY5bBjEqr9GuYZP4jP41WudGSC6erTRCqdGZm5i1WvXWeDHnbBCZGc2Nj4wBl/hZOwrmBBfgmlID1HmGJutHaF+tKoevp/XCgstDkjo2NtWKLuc6AVN4mNjY+s1XQxoenOoFuDPHGtnRbJj9ej5GvL0dI7+giuRyMk1giazc+DP6vgUDgOJVlOv7R+PJ12QIeL6SyeDz+Kfp8ZrNWjgDTsVjsQ7qXyTjztXJhm9ePxFLfMTg4eG9tbe1RTP9KFFYQfHliYmIS69kCC7jKYmKwxxD5P88tkVkqbPPcIps9t4T/+HjcuJ/s5BFJgf4WYABCtxGuxIZ90gAAAABJRU5ErkJggg==":IMAGE_PATH+
@@ -10644,7 +10644,7 @@ new mxGeometry(0,0,30,30),"shape=partialRectangle;overflow=hidden;connectable=0;
Math.max(f.geometry.width,v.width+30)));f.insert(x,u?0:null);f.geometry.height+=30}0<g.length&&(m=b.editor.graph,k=mxEvent.isAltDown(d)?k:m.getCenterInsertPoint(m.getBoundingBoxFromGeometry(g,!0)),m.setSelectionCells(m.importCells(g,k.x,k.y)),m.scrollCellToVisible(m.getSelectionCell()))}else if("list"==f){if(0<e.length){m=b.editor.graph;x=null;g=[];for(n=f=0;n<e.length;n++)";"!=e[n].charAt(0)&&(0==e[n].length?x=null:null==x?(x=new mxCell(e[n],new mxGeometry(f,0,160,30),"swimlane;fontStyle=1;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;"),
x.vertex=!0,g.push(x),v=m.getPreferredSizeForCell(x),null!=v&&x.geometry.width<v.width+10&&(x.geometry.width=v.width+10),f+=x.geometry.width+40):"--"==e[n]?(v=new mxCell("",new mxGeometry(0,0,40,8),"line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;"),v.vertex=!0,x.geometry.height+=v.geometry.height,x.insert(v)):0<e[n].length&&(q=new mxCell(e[n],new mxGeometry(0,0,60,26),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),
q.vertex=!0,v=m.getPreferredSizeForCell(q),null!=v&&q.geometry.width<v.width&&(q.geometry.width=v.width),x.geometry.width=Math.max(x.geometry.width,q.geometry.width),x.geometry.height+=q.geometry.height,x.insert(q)));if(0<g.length){k=mxEvent.isAltDown(d)?k:m.getCenterInsertPoint(m.getBoundingBoxFromGeometry(g,!0));m.getModel().beginUpdate();try{g=m.importCells(g,k.x,k.y);v=[];for(n=0;n<g.length;n++)v.push(g[n]),v=v.concat(g[n].children);m.fireEvent(new mxEventObject("cellsInserted","cells",v))}finally{m.getModel().endUpdate()}m.setSelectionCells(g);
-m.scrollCellToVisible(m.getSelectionCell())}}}else{for(var x=function(b){var c=K[b];null==c&&(c=new mxCell(b,new mxGeometry(0,0,80,30),"whiteSpace=wrap;html=1;"),c.vertex=!0,K[b]=c,g.push(c));return c},K={},g=[],n=0;n<e.length;n++)if(";"!=e[n].charAt(0)){var N=e[n].split("->");2<=N.length&&(u=x(N[0]),H=x(N[N.length-1]),N=new mxCell(2<N.length?N[1]:"",new mxGeometry),N.edge=!0,u.insertEdge(N,!0),H.insertEdge(N,!1),g.push(N))}if(0<g.length){e=document.createElement("div");e.style.visibility="hidden";
+m.scrollCellToVisible(m.getSelectionCell())}}}else{for(var x=function(b){var c=I[b];null==c&&(c=new mxCell(b,new mxGeometry(0,0,80,30),"whiteSpace=wrap;html=1;"),c.vertex=!0,I[b]=c,g.push(c));return c},I={},g=[],n=0;n<e.length;n++)if(";"!=e[n].charAt(0)){var N=e[n].split("->");2<=N.length&&(u=x(N[0]),H=x(N[N.length-1]),N=new mxCell(2<N.length?N[1]:"",new mxGeometry),N.edge=!0,u.insertEdge(N,!0),H.insertEdge(N,!1),g.push(N))}if(0<g.length){e=document.createElement("div");e.style.visibility="hidden";
document.body.appendChild(e);m=new Graph(e);m.getModel().beginUpdate();try{g=m.importCells(g);for(n=0;n<g.length;n++)m.getModel().isVertex(g[n])&&(v=m.getPreferredSizeForCell(g[n]),g[n].geometry.width=Math.max(g[n].geometry.width,v.width),g[n].geometry.height=Math.max(g[n].geometry.height,v.height));n=!0;"horizontalFlow"==f||"verticalFlow"==f?((new mxHierarchicalLayout(m,"horizontalFlow"==f?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH)).execute(m.getDefaultParent(),g),n=!1):"circle"==f?
(new mxCircleLayout(m)).execute(m.getDefaultParent()):(q=new mxFastOrganicLayout(m),q.disableEdgeStyle=!1,q.forceConstant=180,q.execute(m.getDefaultParent()));n&&(t=new mxParallelEdgeLayout(m),t.spacing=30,t.execute(m.getDefaultParent()))}finally{m.getModel().endUpdate()}m.clearCellOverlays();v=[];b.editor.graph.getModel().beginUpdate();try{g=m.getModel().getChildren(m.getDefaultParent()),k=mxEvent.isAltDown(d)?k:b.editor.graph.getCenterInsertPoint(m.getBoundingBoxFromGeometry(g,!0)),v=b.editor.graph.importCells(g,
k.x,k.y),b.editor.graph.fireEvent(new mxEventObject("cellsInserted","cells",v))}finally{b.editor.graph.getModel().endUpdate()}b.editor.graph.setSelectionCells(v);b.editor.graph.scrollCellToVisible(b.editor.graph.getSelectionCell());m.destroy();e.parentNode.removeChild(e)}}}function g(){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?
@@ -10656,58 +10656,58 @@ p.setAttribute("value","horizontalFlow");mxUtils.write(p,mxResources.get("horizo
"selected");m=document.createElement("option");m.setAttribute("value","plantUmlPng");mxUtils.write(m,mxResources.get("plantUml")+" ("+mxResources.get("formatPng")+")");p=document.createElement("option");p.setAttribute("value","plantUmlTxt");mxUtils.write(p,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!b.isOffline()&&"plantUml"==d&&(f.appendChild(l),f.appendChild(m),f.appendChild(p));var t=g();n.value=t;e.appendChild(n);this.init=function(){n.focus()};
Graph.fileSupport&&(n.addEventListener("dragover",function(b){b.stopPropagation();b.preventDefault()},!1),n.addEventListener("drop",function(b){b.stopPropagation();b.preventDefault();if(0<b.dataTransfer.files.length){b=b.dataTransfer.files[0];var c=new FileReader;c.onload=function(b){n.value=b.target.result};c.readAsText(b)}},!1));e.appendChild(f);mxEvent.addListener(f,"change",function(){var b=g();if(0==n.value.length||n.value==t)t=b,n.value=t});b.isOffline()||"mermaid"!=d&&"plantUml"!=d||(l=mxUtils.button(mxResources.get("help"),
function(){b.openLink("mermaid"==d?"https://mermaid-js.github.io/mermaid/#/":"https://plantuml.com/")}),l.className="geBtn",e.appendChild(l));l=mxUtils.button(mxResources.get("close"),function(){n.value==t?b.hideDialog():b.confirm(mxResources.get("areYouSure"),function(){b.hideDialog()})});l.className="geBtn";b.editor.cancelFirst&&e.appendChild(l);m=mxUtils.button(mxResources.get("insert"),function(e){b.hideDialog();c(n.value,f.value,e)});e.appendChild(m);m.className="geBtn gePrimaryBtn";b.editor.cancelFirst||
-e.appendChild(l);this.container=e},NewDialog=function(b,e,d,c,g,k,n,f,l,m,p,q,t,v,u,x,z,y){function B(b){null!=b&&(pa=ra=b?135:140);b=!0;if(null!=la)for(;K<la.length&&(b||0!=mxUtils.mod(K,30));){var c=la[K++],c=G(c.url,c.libs,c.title,c.tooltip?c.tooltip:c.title,c.select,c.imgUrl,c.info,c.onClick,c.preview,c.noImg,c.clibs);b&&c.click();b=!1}}function C(){if(na&&null!=v)d||b.hideDialog(),v(na,ma,H.value);else if(c)d||b.hideDialog(),c(U,H.value,ja,oa);else{var f=H.value;null!=f&&0<f.length&&b.pickFolder(b.mode,
-function(c){b.createFile(f,U,null!=oa&&0<oa.length?oa:null,null,function(){b.hideDialog()},null,c,null,null!=ea&&0<ea.length?ea:null)},b.mode!=App.MODE_GOOGLE||null==b.stateArg||null==b.stateArg.folderId)}}function A(b,c,e,d,m,p,g){null!=ia&&(ia.style.backgroundColor="transparent",ia.style.border="1px solid transparent");Q.removeAttribute("disabled");U=c;oa=e;ea=p;ia=b;na=d;ja=g;ma=m;ia.style.backgroundColor=f;ia.style.border=l}function G(c,f,e,d,l,m,p,g,k,q,t){function n(c,f){null==x?(z=c,z=/^https?:\/\//.test(z)&&
+e.appendChild(l);this.container=e},NewDialog=function(b,e,d,c,g,k,n,f,l,m,p,q,t,v,u,x,z,y){function B(b){null!=b&&(pa=ra=b?135:140);b=!0;if(null!=ma)for(;I<ma.length&&(b||0!=mxUtils.mod(I,30));){var c=ma[I++],c=F(c.url,c.libs,c.title,c.tooltip?c.tooltip:c.title,c.select,c.imgUrl,c.info,c.onClick,c.preview,c.noImg,c.clibs);b&&c.click();b=!1}}function C(){if(oa&&null!=v)d||b.hideDialog(),v(oa,na,H.value);else if(c)d||b.hideDialog(),c(U,H.value,la,ja);else{var f=H.value;null!=f&&0<f.length&&b.pickFolder(b.mode,
+function(c){b.createFile(f,U,null!=ja&&0<ja.length?ja:null,null,function(){b.hideDialog()},null,c,null,null!=fa&&0<fa.length?fa:null)},b.mode!=App.MODE_GOOGLE||null==b.stateArg||null==b.stateArg.folderId)}}function A(b,c,e,d,m,p,g){null!=ia&&(ia.style.backgroundColor="transparent",ia.style.border="1px solid transparent");R.removeAttribute("disabled");U=c;ja=e;fa=p;ia=b;oa=d;la=g;na=m;ia.style.backgroundColor=f;ia.style.border=l}function F(c,f,e,d,l,m,p,g,k,q,t){function n(c,f){null==x?(z=c,z=/^https?:\/\//.test(z)&&
!b.editor.isCorsEnabledForUrl(z)?PROXY_URL+"?url="+encodeURIComponent(z):TEMPLATE_PATH+"/"+z,mxUtils.get(z,mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&(x=b.getText());f(x,z)}))):f(x,z)}function M(f,d,l){if(null!=f&&mxUtils.isAncestorNode(document.body,u)){f=mxUtils.parseXml(f);f=Editor.parseDiagramNode(f.documentElement);var m=new mxCodec(f.ownerDocument),g=new mxGraphModel;m.decode(f,g);f=g.root.getChildAt(0).children;b.sidebar.createTooltip(u,f,Math.min((window.innerWidth||
-document.documentElement.clientWidth||document.body.clientWidth)-80,1E3),Math.min((window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight)-80,800),null!=e?mxResources.get(e,null,e):null,!0,new mxPoint(d,l),!0,function(){aa=null!=b.sidebar.tooltip&&"none"!=b.sidebar.tooltip.style.display;A(u,null,null,c,p,t)},!0,!1)}}function v(f,e){if(null==c||D||b.sidebar.currentElt==u)b.sidebar.hideTooltip();else if(b.sidebar.hideTooltip(),null!=H){var d='<mxfile><diagram id="d" name="n">'+
-Graph.compress('<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="2" value="" style="shape=image;image='+H.src+';imageAspect=1;" parent="1" vertex="1"><mxGeometry width="'+H.naturalWidth+'" height="'+H.naturalHeight+'" as="geometry" /></mxCell></root></mxGraphModel>')+"</diagram></mxfile>";M(d,mxEvent.getClientX(f),mxEvent.getClientY(f))}else b.sidebar.currentElt=u,D=!0,n(c,function(c){D&&b.sidebar.currentElt==u&&M(c,mxEvent.getClientX(f),mxEvent.getClientY(f));D=!1})}var u=
-document.createElement("div");u.className="geTemplate";u.style.position="relative";u.style.height=pa+"px";u.style.width=ra+"px";var x=null,z=c;Editor.isDarkMode()&&(u.style.filter="invert(100%)");null!=e?u.setAttribute("title",mxResources.get(e,null,e)):null!=d&&0<d.length&&u.setAttribute("title",d);var D=!1,H=null;if(null!=m){u.style.display="inline-flex";u.style.justifyContent="center";u.style.alignItems="center";l=document.createElement("img");l.setAttribute("src",m);l.setAttribute("alt",d);l.style.maxWidth=
-pa+"px";l.style.maxHeight=ra+"px";var H=l,E=m.replace(".drawio.xml","").replace(".drawio","").replace(".xml","");u.appendChild(l);l.onerror=function(){this.src!=E?this.src=E:(this.src=Editor.errorImage,this.onerror=null)};mxEvent.addGestureListeners(u,mxUtils.bind(this,function(b){A(u,null,null,c,p,t)}),null,null);mxEvent.addListener(u,"dblclick",function(b){C();mxEvent.consume(b)})}else if(!q&&null!=c&&0<c.length){var G=function(b){Q.setAttribute("disabled","disabled");u.style.backgroundColor="transparent";
+document.documentElement.clientWidth||document.body.clientWidth)-80,1E3),Math.min((window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight)-80,800),null!=e?mxResources.get(e,null,e):null,!0,new mxPoint(d,l),!0,function(){aa=null!=b.sidebar.tooltip&&"none"!=b.sidebar.tooltip.style.display;A(u,null,null,c,p,t)},!0,!1)}}function v(f,e){if(null==c||D||b.sidebar.currentElt==u)b.sidebar.hideTooltip();else if(b.sidebar.hideTooltip(),null!=E){var d='<mxfile><diagram id="d" name="n">'+
+Graph.compress('<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="2" value="" style="shape=image;image='+E.src+';imageAspect=1;" parent="1" vertex="1"><mxGeometry width="'+E.naturalWidth+'" height="'+E.naturalHeight+'" as="geometry" /></mxCell></root></mxGraphModel>')+"</diagram></mxfile>";M(d,mxEvent.getClientX(f),mxEvent.getClientY(f))}else b.sidebar.currentElt=u,D=!0,n(c,function(c){D&&b.sidebar.currentElt==u&&M(c,mxEvent.getClientX(f),mxEvent.getClientY(f));D=!1})}var u=
+document.createElement("div");u.className="geTemplate";u.style.position="relative";u.style.height=pa+"px";u.style.width=ra+"px";var x=null,z=c;Editor.isDarkMode()&&(u.style.filter="invert(100%)");null!=e?u.setAttribute("title",mxResources.get(e,null,e)):null!=d&&0<d.length&&u.setAttribute("title",d);var D=!1,E=null;if(null!=m){u.style.display="inline-flex";u.style.justifyContent="center";u.style.alignItems="center";l=document.createElement("img");l.setAttribute("src",m);l.setAttribute("alt",d);l.style.maxWidth=
+pa+"px";l.style.maxHeight=ra+"px";var E=l,H=m.replace(".drawio.xml","").replace(".drawio","").replace(".xml","");u.appendChild(l);l.onerror=function(){this.src!=H?this.src=H:(this.src=Editor.errorImage,this.onerror=null)};mxEvent.addGestureListeners(u,mxUtils.bind(this,function(b){A(u,null,null,c,p,t)}),null,null);mxEvent.addListener(u,"dblclick",function(b){C();mxEvent.consume(b)})}else if(!q&&null!=c&&0<c.length){var F=function(b){R.setAttribute("disabled","disabled");u.style.backgroundColor="transparent";
u.style.border="1px solid transparent";N.spin(V);n(c,function(c,e){N.stop();null!=c&&(A(u,c,f,null,null,t,e),b&&C())})};l=k||TEMPLATE_PATH+"/"+c.substring(0,c.length-4)+".png";u.style.backgroundImage="url("+l+")";u.style.backgroundPosition="center center";u.style.backgroundRepeat="no-repeat";if(null!=e){d=document.createElement("table");d.setAttribute("width","100%");d.setAttribute("height","100%");d.style.background=Editor.isDarkMode()?"transparent":"rgba(255,255,255,0.85)";d.style.lineHeight="1.3em";
-d.style.border="inherit";m=document.createElement("tbody");k=document.createElement("tr");q=document.createElement("td");q.setAttribute("align","center");q.setAttribute("valign","middle");var P=document.createElement("span");P.style.display="inline-block";P.style.padding="4px 8px 4px 8px";P.style.userSelect="none";P.style.borderRadius="3px";P.style.background="rgba(255,255,255,0.85)";P.style.overflow="hidden";P.style.textOverflow="ellipsis";P.style.maxWidth=pa-34+"px";mxUtils.write(P,mxResources.get(e,
-null,e));q.appendChild(P);k.appendChild(q);m.appendChild(k);d.appendChild(m);u.appendChild(d)}mxEvent.addGestureListeners(u,mxUtils.bind(this,function(b){G()}),null,null);mxEvent.addListener(u,"dblclick",function(b){G(!0);mxEvent.consume(b)})}else d=document.createElement("table"),d.setAttribute("width","100%"),d.setAttribute("height","100%"),d.style.lineHeight="1.3em",m=document.createElement("tbody"),k=document.createElement("tr"),q=document.createElement("td"),q.setAttribute("align","center"),
-q.setAttribute("valign","middle"),P=document.createElement("span"),P.style.display="inline-block",P.style.padding="4px 8px 4px 8px",P.style.userSelect="none",P.style.borderRadius="3px",P.style.background="#ffffff",P.style.overflow="hidden",P.style.textOverflow="ellipsis",P.style.maxWidth=pa-34+"px",mxUtils.write(P,mxResources.get(e,null,e)),q.appendChild(P),k.appendChild(q),m.appendChild(k),d.appendChild(m),u.appendChild(d),l&&A(u),mxEvent.addGestureListeners(u,mxUtils.bind(this,function(b){A(u,null,
-null,c,p)}),null,null),null!=g?mxEvent.addListener(u,"click",g):(mxEvent.addListener(u,"click",function(b){A(u,null,null,c,p)}),mxEvent.addListener(u,"dblclick",function(b){C();mxEvent.consume(b)}));if(null!=c){var F=document.createElement("img");F.setAttribute("src",Sidebar.prototype.searchImage);F.setAttribute("title",mxResources.get("preview"));F.className="geActiveButton";F.style.position="absolute";F.style.cursor="default";F.style.padding="8px";F.style.right="0px";F.style.top="0px";u.appendChild(F);
-var aa=!1;mxEvent.addGestureListeners(F,mxUtils.bind(this,function(c){aa=b.sidebar.currentElt==u}),null,null);mxEvent.addListener(F,"click",mxUtils.bind(this,function(b){aa||v(b,F);mxEvent.consume(b)}))}V.appendChild(u);return u}function D(){function b(b,c){var f=mxResources.get(b);null==f&&(f=b.substring(0,1).toUpperCase()+b.substring(1));18<f.length&&(f=f.substring(0,18)+"&hellip;");return f+" ("+c.length+")"}function c(b,c,f){mxEvent.addListener(c,"click",function(){ha!=c&&(ha.style.backgroundColor=
-"",ha=c,ha.style.backgroundColor=n,V.scrollTop=0,V.innerHTML="",K=0,la=f?ka[b][f]:T[b],W=null,B(!1))})}sa&&(sa=!1,mxEvent.addListener(V,"scroll",function(b){V.scrollTop+V.clientHeight>=V.scrollHeight&&(B(),mxEvent.consume(b))}));if(0<da){var f=document.createElement("div");f.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;";mxUtils.write(f,mxResources.get("custom"));ca.appendChild(f);for(var e in ga){var d=document.createElement("div"),l=e,f=ga[e];18<l.length&&
-(l=l.substring(0,18)+"&hellip;");d.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;user-select:none;";d.setAttribute("title",l+" ("+f.length+")");mxUtils.write(d,d.getAttribute("title"));null!=m&&(d.style.padding=m);ca.appendChild(d);(function(b,c){mxEvent.addListener(d,"click",function(){ha!=c&&(ha.style.backgroundColor="",ha=c,ha.style.backgroundColor=n,V.scrollTop=0,V.innerHTML="",K=0,la=ga[b],W=null,B(!1))})})(e,
+d.style.border="inherit";m=document.createElement("tbody");k=document.createElement("tr");q=document.createElement("td");q.setAttribute("align","center");q.setAttribute("valign","middle");var O=document.createElement("span");O.style.display="inline-block";O.style.padding="4px 8px 4px 8px";O.style.userSelect="none";O.style.borderRadius="3px";O.style.background="rgba(255,255,255,0.85)";O.style.overflow="hidden";O.style.textOverflow="ellipsis";O.style.maxWidth=pa-34+"px";mxUtils.write(O,mxResources.get(e,
+null,e));q.appendChild(O);k.appendChild(q);m.appendChild(k);d.appendChild(m);u.appendChild(d)}mxEvent.addGestureListeners(u,mxUtils.bind(this,function(b){F()}),null,null);mxEvent.addListener(u,"dblclick",function(b){F(!0);mxEvent.consume(b)})}else d=document.createElement("table"),d.setAttribute("width","100%"),d.setAttribute("height","100%"),d.style.lineHeight="1.3em",m=document.createElement("tbody"),k=document.createElement("tr"),q=document.createElement("td"),q.setAttribute("align","center"),
+q.setAttribute("valign","middle"),O=document.createElement("span"),O.style.display="inline-block",O.style.padding="4px 8px 4px 8px",O.style.userSelect="none",O.style.borderRadius="3px",O.style.background="#ffffff",O.style.overflow="hidden",O.style.textOverflow="ellipsis",O.style.maxWidth=pa-34+"px",mxUtils.write(O,mxResources.get(e,null,e)),q.appendChild(O),k.appendChild(q),m.appendChild(k),d.appendChild(m),u.appendChild(d),l&&A(u),mxEvent.addGestureListeners(u,mxUtils.bind(this,function(b){A(u,null,
+null,c,p)}),null,null),null!=g?mxEvent.addListener(u,"click",g):(mxEvent.addListener(u,"click",function(b){A(u,null,null,c,p)}),mxEvent.addListener(u,"dblclick",function(b){C();mxEvent.consume(b)}));if(null!=c){var G=document.createElement("img");G.setAttribute("src",Sidebar.prototype.searchImage);G.setAttribute("title",mxResources.get("preview"));G.className="geActiveButton";G.style.position="absolute";G.style.cursor="default";G.style.padding="8px";G.style.right="0px";G.style.top="0px";u.appendChild(G);
+var aa=!1;mxEvent.addGestureListeners(G,mxUtils.bind(this,function(c){aa=b.sidebar.currentElt==u}),null,null);mxEvent.addListener(G,"click",mxUtils.bind(this,function(b){aa||v(b,G);mxEvent.consume(b)}))}V.appendChild(u);return u}function D(){function b(b,c){var f=mxResources.get(b);null==f&&(f=b.substring(0,1).toUpperCase()+b.substring(1));18<f.length&&(f=f.substring(0,18)+"&hellip;");return f+" ("+c.length+")"}function c(b,c,f){mxEvent.addListener(c,"click",function(){ha!=c&&(ha.style.backgroundColor=
+"",ha=c,ha.style.backgroundColor=n,V.scrollTop=0,V.innerHTML="",I=0,ma=f?ka[b][f]:T[b],W=null,B(!1))})}sa&&(sa=!1,mxEvent.addListener(V,"scroll",function(b){V.scrollTop+V.clientHeight>=V.scrollHeight&&(B(),mxEvent.consume(b))}));if(0<da){var f=document.createElement("div");f.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;";mxUtils.write(f,mxResources.get("custom"));ca.appendChild(f);for(var e in ga){var d=document.createElement("div"),l=e,f=ga[e];18<l.length&&
+(l=l.substring(0,18)+"&hellip;");d.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;user-select:none;";d.setAttribute("title",l+" ("+f.length+")");mxUtils.write(d,d.getAttribute("title"));null!=m&&(d.style.padding=m);ca.appendChild(d);(function(b,c){mxEvent.addListener(d,"click",function(){ha!=c&&(ha.style.backgroundColor="",ha=c,ha.style.backgroundColor=n,V.scrollTop=0,V.innerHTML="",I=0,ma=ga[b],W=null,B(!1))})})(e,
d)}f=document.createElement("div");f.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;";mxUtils.write(f,"draw.io");ca.appendChild(f)}for(e in T){var l=ka[e],p=d=document.createElement(l?"ul":"div"),f=T[e],g=b(e,f);if(null!=l){var k=document.createElement("li"),q=document.createElement("div");q.className="geTempTreeCaret";q.setAttribute("title",g);mxUtils.write(q,g);p=q;k.appendChild(q);g=document.createElement("ul");g.className="geTempTreeNested";g.style.visibility=
"hidden";for(var t in l){var M=document.createElement("li"),v=b(t,l[t]);M.setAttribute("title",v);mxUtils.write(M,v);c(e,M,t);g.appendChild(M)}k.appendChild(g);d.className="geTempTree";d.appendChild(k);(function(b,c){mxEvent.addListener(c,"click",function(){b.style.visibility="visible";b.classList.toggle("geTempTreeActive");b.classList.toggle("geTempTreeNested")&&setTimeout(function(){b.style.visibility="hidden"},550);c.classList.toggle("geTempTreeCaret-down")})})(g,q)}else d.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;user-select:none;transition: all 0.5s;",
-d.setAttribute("title",g),mxUtils.write(d,g);null!=m&&(d.style.padding=m);ca.appendChild(d);null==ha&&0<f.length&&(ha=d,ha.style.backgroundColor=n,la=f);c(e,p)}B(!1)}var E=500>(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth);d=null!=d?d:!0;g=null!=g?g:!1;n=null!=n?n:"#ebf2f9";f=null!=f?f:Editor.isDarkMode()?"#a2a2a2":"#e6eff8";l=null!=l?l:Editor.isDarkMode()?"1px dashed #00a8ff":"1px solid #ccd9ea";p=null!=p?p:EditorUi.templateFile;var F=document.createElement("div");
-F.style.userSelect="none";F.style.height="100%";var I=document.createElement("div");I.style.whiteSpace="nowrap";I.style.height="46px";d&&F.appendChild(I);var J=document.createElement("img");J.setAttribute("border","0");J.setAttribute("align","absmiddle");J.style.width="40px";J.style.height="40px";J.style.marginRight="10px";J.style.paddingBottom="4px";J.src=b.mode==App.MODE_GOOGLE?IMAGE_PATH+"/google-drive-logo.svg":b.mode==App.MODE_DROPBOX?IMAGE_PATH+"/dropbox-logo.svg":b.mode==App.MODE_ONEDRIVE?
-IMAGE_PATH+"/onedrive-logo.svg":b.mode==App.MODE_GITHUB?IMAGE_PATH+"/github-logo.svg":b.mode==App.MODE_GITLAB?IMAGE_PATH+"/gitlab-logo.svg":b.mode==App.MODE_TRELLO?IMAGE_PATH+"/trello-logo.svg":b.mode==App.MODE_BROWSER?IMAGE_PATH+"/osa_database.png":IMAGE_PATH+"/osa_drive-harddisk.png";e||E||!d||I.appendChild(J);d&&mxUtils.write(I,(E?mxResources.get("name"):null==b.mode||b.mode==App.MODE_GOOGLE||b.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");J=".drawio";
-b.mode==App.MODE_GOOGLE&&null!=b.drive?J=b.drive.extension:b.mode==App.MODE_DROPBOX&&null!=b.dropbox?J=b.dropbox.extension:b.mode==App.MODE_ONEDRIVE&&null!=b.oneDrive?J=b.oneDrive.extension:b.mode==App.MODE_GITHUB&&null!=b.gitHub?J=b.gitHub.extension:b.mode==App.MODE_GITLAB&&null!=b.gitLab?J=b.gitLab.extension:b.mode==App.MODE_TRELLO&&null!=b.trello&&(J=b.trello.extension);var H=document.createElement("input");H.setAttribute("value",b.defaultFilename+J);H.style.marginLeft="10px";H.style.width=e||
-E?"144px":"244px";this.init=function(){d&&(H.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?H.select():document.execCommand("selectAll",!1,null));null!=V.parentNode&&null!=V.parentNode.parentNode&&mxEvent.addGestureListeners(V.parentNode.parentNode,mxUtils.bind(this,function(c){b.sidebar.hideTooltip()}),null,null)};d&&(I.appendChild(H),y?H.style.width=e||E?"350px":"450px":(null!=b.editor.diagramFileTypes&&(y=FilenameDialog.createFileTypes(b,H,b.editor.diagramFileTypes),y.style.marginLeft=
-"6px",y.style.width=e||E?"80px":"180px",I.appendChild(y)),null!=b.editor.fileExtensions&&(E=FilenameDialog.createTypeHint(b,H,b.editor.fileExtensions),E.style.marginTop="12px",I.appendChild(E))));var I=!1,K=0,N=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9}),Q=mxUtils.button(x||mxResources.get("create"),function(){Q.setAttribute("disabled","disabled");C();Q.removeAttribute("disabled")});Q.className="geBtn gePrimaryBtn";
-if(q||t){var L=[],W=null,X=null,S=null,M=function(b){Q.setAttribute("disabled","disabled");for(var c=0;c<L.length;c++)L[c].className=c==b?"geBtn gePrimaryBtn":"geBtn"},I=!0;x=document.createElement("div");x.style.whiteSpace="nowrap";x.style.height="30px";F.appendChild(x);E=mxUtils.button(mxResources.get("Templates",null,"Templates"),function(){ca.style.display="";Z.style.display="";V.style.left="160px";M(0);V.scrollTop=0;V.innerHTML="";K=0;W!=la&&(la=W,T=X,da=S,ca.innerHTML="",D(),W=null)});L.push(E);
-x.appendChild(E);var P=function(b){ca.style.display="none";Z.style.display="none";V.style.left="30px";M(b?-1:1);null==W&&(W=la);V.scrollTop=0;V.innerHTML="";N.spin(V);var c=function(b,c,f){K=0;N.stop();la=b;f=f||{};var e=0,d;for(d in f)e+=f[d].length;if(c)V.innerHTML=c;else if(0==b.length&&0==e)V.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams",null,"No Diagrams Found"));else if(V.innerHTML="",0<e){ca.style.display="";V.style.left="160px";ca.innerHTML="";da=0;T={"draw.io":b};for(d in f)T[d]=
-f[d];D()}else B(!0)};b?t(aa.value,c):q(c)};q&&(E=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){P()}),x.appendChild(E),L.push(E));if(t){E=document.createElement("span");E.style.marginLeft="10px";E.innerHTML=mxUtils.htmlEntities(mxResources.get("search")+":");x.appendChild(E);var aa=document.createElement("input");aa.style.marginRight="10px";aa.style.marginLeft="10px";aa.style.width="220px";mxEvent.addListener(aa,"keypress",function(b){13==b.keyCode&&P(!0)});x.appendChild(aa);E=
-mxUtils.button(mxResources.get("search"),function(){P(!0)});E.className="geBtn";x.appendChild(E)}M(0)}var oa=null,ea=null,U=null,ia=null,na=null,ja=null,ma=null,V=document.createElement("div");V.style.border="1px solid #d3d3d3";V.style.position="absolute";V.style.left="160px";V.style.right="34px";x=(d?72:40)+(I?30:0);V.style.top=x+"px";V.style.bottom="68px";V.style.margin="6px 0 0 -1px";V.style.padding="6px";V.style.overflow="auto";var Z=document.createElement("div");Z.style.cssText="position:absolute;left:30px;width:128px;top:"+
-x+"px;height:22px;margin-top: 6px;white-space: nowrap";var O=document.createElement("input");O.style.cssText="width:105px;height:16px;border:1px solid #d3d3d3;padding: 3px 20px 3px 3px;font-size: 12px";O.setAttribute("placeholder",mxResources.get("search"));O.setAttribute("type","text");Z.appendChild(O);var fa=document.createElement("img"),Y="undefined"!=typeof Sidebar?Sidebar.prototype.searchImage:IMAGE_PATH+"/search.png";fa.setAttribute("src",Y);fa.setAttribute("title",mxResources.get("search"));
-fa.style.position="relative";fa.style.left="-18px";fa.style.top="1px";fa.style.background="url('"+b.editor.transparentImage+"')";Z.appendChild(fa);mxEvent.addListener(fa,"click",function(){fa.getAttribute("src")==Dialog.prototype.closeImage&&(fa.setAttribute("src",Y),fa.setAttribute("title",mxResources.get("search")),O.value="",null!=qa&&(qa.click(),qa=null));O.focus()});mxEvent.addListener(O,"keydown",mxUtils.bind(this,function(b){if(13==b.keyCode){var c=O.value;if(""==c)null!=qa&&(qa.click(),qa=
+d.setAttribute("title",g),mxUtils.write(d,g);null!=m&&(d.style.padding=m);ca.appendChild(d);null==ha&&0<f.length&&(ha=d,ha.style.backgroundColor=n,ma=f);c(e,p)}B(!1)}var E=500>(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth);d=null!=d?d:!0;g=null!=g?g:!1;n=null!=n?n:"#ebf2f9";f=null!=f?f:Editor.isDarkMode()?"#a2a2a2":"#e6eff8";l=null!=l?l:Editor.isDarkMode()?"1px dashed #00a8ff":"1px solid #ccd9ea";p=null!=p?p:EditorUi.templateFile;var G=document.createElement("div");
+G.style.userSelect="none";G.style.height="100%";var J=document.createElement("div");J.style.whiteSpace="nowrap";J.style.height="46px";d&&G.appendChild(J);var K=document.createElement("img");K.setAttribute("border","0");K.setAttribute("align","absmiddle");K.style.width="40px";K.style.height="40px";K.style.marginRight="10px";K.style.paddingBottom="4px";K.src=b.mode==App.MODE_GOOGLE?IMAGE_PATH+"/google-drive-logo.svg":b.mode==App.MODE_DROPBOX?IMAGE_PATH+"/dropbox-logo.svg":b.mode==App.MODE_ONEDRIVE?
+IMAGE_PATH+"/onedrive-logo.svg":b.mode==App.MODE_GITHUB?IMAGE_PATH+"/github-logo.svg":b.mode==App.MODE_GITLAB?IMAGE_PATH+"/gitlab-logo.svg":b.mode==App.MODE_TRELLO?IMAGE_PATH+"/trello-logo.svg":b.mode==App.MODE_BROWSER?IMAGE_PATH+"/osa_database.png":IMAGE_PATH+"/osa_drive-harddisk.png";e||E||!d||J.appendChild(K);d&&mxUtils.write(J,(E?mxResources.get("name"):null==b.mode||b.mode==App.MODE_GOOGLE||b.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");K=".drawio";
+b.mode==App.MODE_GOOGLE&&null!=b.drive?K=b.drive.extension:b.mode==App.MODE_DROPBOX&&null!=b.dropbox?K=b.dropbox.extension:b.mode==App.MODE_ONEDRIVE&&null!=b.oneDrive?K=b.oneDrive.extension:b.mode==App.MODE_GITHUB&&null!=b.gitHub?K=b.gitHub.extension:b.mode==App.MODE_GITLAB&&null!=b.gitLab?K=b.gitLab.extension:b.mode==App.MODE_TRELLO&&null!=b.trello&&(K=b.trello.extension);var H=document.createElement("input");H.setAttribute("value",b.defaultFilename+K);H.style.marginLeft="10px";H.style.width=e||
+E?"144px":"244px";this.init=function(){d&&(H.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?H.select():document.execCommand("selectAll",!1,null));null!=V.parentNode&&null!=V.parentNode.parentNode&&mxEvent.addGestureListeners(V.parentNode.parentNode,mxUtils.bind(this,function(c){b.sidebar.hideTooltip()}),null,null)};d&&(J.appendChild(H),y?H.style.width=e||E?"350px":"450px":(null!=b.editor.diagramFileTypes&&(y=FilenameDialog.createFileTypes(b,H,b.editor.diagramFileTypes),y.style.marginLeft=
+"6px",y.style.width=e||E?"80px":"180px",J.appendChild(y)),null!=b.editor.fileExtensions&&(E=FilenameDialog.createTypeHint(b,H,b.editor.fileExtensions),E.style.marginTop="12px",J.appendChild(E))));var J=!1,I=0,N=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9}),R=mxUtils.button(x||mxResources.get("create"),function(){R.setAttribute("disabled","disabled");C();R.removeAttribute("disabled")});R.className="geBtn gePrimaryBtn";
+if(q||t){var L=[],W=null,X=null,S=null,M=function(b){R.setAttribute("disabled","disabled");for(var c=0;c<L.length;c++)L[c].className=c==b?"geBtn gePrimaryBtn":"geBtn"},J=!0;x=document.createElement("div");x.style.whiteSpace="nowrap";x.style.height="30px";G.appendChild(x);E=mxUtils.button(mxResources.get("Templates",null,"Templates"),function(){ca.style.display="";Z.style.display="";V.style.left="160px";M(0);V.scrollTop=0;V.innerHTML="";I=0;W!=ma&&(ma=W,T=X,da=S,ca.innerHTML="",D(),W=null)});L.push(E);
+x.appendChild(E);var O=function(b){ca.style.display="none";Z.style.display="none";V.style.left="30px";M(b?-1:1);null==W&&(W=ma);V.scrollTop=0;V.innerHTML="";N.spin(V);var c=function(b,c,f){I=0;N.stop();ma=b;f=f||{};var e=0,d;for(d in f)e+=f[d].length;if(c)V.innerHTML=c;else if(0==b.length&&0==e)V.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams",null,"No Diagrams Found"));else if(V.innerHTML="",0<e){ca.style.display="";V.style.left="160px";ca.innerHTML="";da=0;T={"draw.io":b};for(d in f)T[d]=
+f[d];D()}else B(!0)};b?t(aa.value,c):q(c)};q&&(E=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){O()}),x.appendChild(E),L.push(E));if(t){E=document.createElement("span");E.style.marginLeft="10px";E.innerHTML=mxUtils.htmlEntities(mxResources.get("search")+":");x.appendChild(E);var aa=document.createElement("input");aa.style.marginRight="10px";aa.style.marginLeft="10px";aa.style.width="220px";mxEvent.addListener(aa,"keypress",function(b){13==b.keyCode&&O(!0)});x.appendChild(aa);E=
+mxUtils.button(mxResources.get("search"),function(){O(!0)});E.className="geBtn";x.appendChild(E)}M(0)}var ja=null,fa=null,U=null,ia=null,oa=null,la=null,na=null,V=document.createElement("div");V.style.border="1px solid #d3d3d3";V.style.position="absolute";V.style.left="160px";V.style.right="34px";x=(d?72:40)+(J?30:0);V.style.top=x+"px";V.style.bottom="68px";V.style.margin="6px 0 0 -1px";V.style.padding="6px";V.style.overflow="auto";var Z=document.createElement("div");Z.style.cssText="position:absolute;left:30px;width:128px;top:"+
+x+"px;height:22px;margin-top: 6px;white-space: nowrap";var P=document.createElement("input");P.style.cssText="width:105px;height:16px;border:1px solid #d3d3d3;padding: 3px 20px 3px 3px;font-size: 12px";P.setAttribute("placeholder",mxResources.get("search"));P.setAttribute("type","text");Z.appendChild(P);var ea=document.createElement("img"),Y="undefined"!=typeof Sidebar?Sidebar.prototype.searchImage:IMAGE_PATH+"/search.png";ea.setAttribute("src",Y);ea.setAttribute("title",mxResources.get("search"));
+ea.style.position="relative";ea.style.left="-18px";ea.style.top="1px";ea.style.background="url('"+b.editor.transparentImage+"')";Z.appendChild(ea);mxEvent.addListener(ea,"click",function(){ea.getAttribute("src")==Dialog.prototype.closeImage&&(ea.setAttribute("src",Y),ea.setAttribute("title",mxResources.get("search")),P.value="",null!=qa&&(qa.click(),qa=null));P.focus()});mxEvent.addListener(P,"keydown",mxUtils.bind(this,function(b){if(13==b.keyCode){var c=P.value;if(""==c)null!=qa&&(qa.click(),qa=
null);else{if(null==NewDialog.tagsList[p]){var f={},d;for(d in T)for(var e=T[d],l=0;l<e.length;l++){var m=e[l];if(null!=m.tags)for(var g=m.tags.toLowerCase().split(";"),k=0;k<g.length;k++)null==f[g[k]]&&(f[g[k]]=[]),f[g[k]].push(m)}NewDialog.tagsList[p]=f}var q=c.toLowerCase().split(" "),f=NewDialog.tagsList[p];if(0<da&&null==f.__tagsList__){for(d in ga)for(e=ga[d],l=0;l<e.length;l++)for(m=e[l],g=m.title.split(" "),g.push(d),k=0;k<g.length;k++){var t=g[k].toLowerCase();null==f[t]&&(f[t]=[]);f[t].push(m)}f.__tagsList__=
-!0}d=[];e={};for(l=g=0;l<q.length;l++)if(0<q[l].length){var t=f[q[l]],n={};d=[];if(null!=t)for(k=0;k<t.length;k++)m=t[k],0==g==(null==e[m.url])&&(n[m.url]=!0,d.push(m));e=n;g++}V.scrollTop=0;V.innerHTML="";K=0;f=document.createElement("div");f.style.cssText="border: 1px solid #D3D3D3; padding: 6px; background: #F5F5F5;";mxUtils.write(f,mxResources.get(0==d.length?"noResultsFor":"resultsFor",[c]));V.appendChild(f);null!=ha&&null==qa&&(ha.style.backgroundColor="",qa=ha,ha=f);la=d;W=null;B(!1)}mxEvent.consume(b)}}));
-mxEvent.addListener(O,"keyup",mxUtils.bind(this,function(b){""==O.value?(fa.setAttribute("src",Y),fa.setAttribute("title",mxResources.get("search"))):(fa.setAttribute("src",Dialog.prototype.closeImage),fa.setAttribute("title",mxResources.get("reset")))}));x+=23;var ca=document.createElement("div");ca.style.cssText="position:absolute;left:30px;width:128px;top:"+x+"px;bottom:68px;margin-top:6px;overflow:auto;border:1px solid #d3d3d3;";mxEvent.addListener(V,"scroll",function(){b.sidebar.hideTooltip()});
-var pa=140,ra=140,T={},ka={},ga={},da=0,sa=!0,ha=null,qa=null;T.basic=[{title:"blankDiagram",select:!0}];var la=T.basic;if(!e){var ta=function(){mxUtils.get(R,function(b){if(!ba){ba=!0;b=b.getXml().documentElement.firstChild;for(var c={};null!=b;){if("undefined"!==typeof b.getAttribute)if("clibs"==b.nodeName){for(var f=b.getAttribute("name"),d=b.getElementsByTagName("add"),e=[],l=0;l<d.length;l++)e.push(encodeURIComponent(mxUtils.getTextContent(d[l])));null!=f&&0<e.length&&(c[f]=e.join(";"))}else if(e=
+!0}d=[];e={};for(l=g=0;l<q.length;l++)if(0<q[l].length){var t=f[q[l]],n={};d=[];if(null!=t)for(k=0;k<t.length;k++)m=t[k],0==g==(null==e[m.url])&&(n[m.url]=!0,d.push(m));e=n;g++}V.scrollTop=0;V.innerHTML="";I=0;f=document.createElement("div");f.style.cssText="border: 1px solid #D3D3D3; padding: 6px; background: #F5F5F5;";mxUtils.write(f,mxResources.get(0==d.length?"noResultsFor":"resultsFor",[c]));V.appendChild(f);null!=ha&&null==qa&&(ha.style.backgroundColor="",qa=ha,ha=f);ma=d;W=null;B(!1)}mxEvent.consume(b)}}));
+mxEvent.addListener(P,"keyup",mxUtils.bind(this,function(b){""==P.value?(ea.setAttribute("src",Y),ea.setAttribute("title",mxResources.get("search"))):(ea.setAttribute("src",Dialog.prototype.closeImage),ea.setAttribute("title",mxResources.get("reset")))}));x+=23;var ca=document.createElement("div");ca.style.cssText="position:absolute;left:30px;width:128px;top:"+x+"px;bottom:68px;margin-top:6px;overflow:auto;border:1px solid #d3d3d3;";mxEvent.addListener(V,"scroll",function(){b.sidebar.hideTooltip()});
+var pa=140,ra=140,T={},ka={},ga={},da=0,sa=!0,ha=null,qa=null;T.basic=[{title:"blankDiagram",select:!0}];var ma=T.basic;if(!e){var ta=function(){mxUtils.get(Q,function(b){if(!ba){ba=!0;b=b.getXml().documentElement.firstChild;for(var c={};null!=b;){if("undefined"!==typeof b.getAttribute)if("clibs"==b.nodeName){for(var f=b.getAttribute("name"),d=b.getElementsByTagName("add"),e=[],l=0;l<d.length;l++)e.push(encodeURIComponent(mxUtils.getTextContent(d[l])));null!=f&&0<e.length&&(c[f]=e.join(";"))}else if(e=
b.getAttribute("url"),null!=e){d=b.getAttribute("section");f=b.getAttribute("subsection");if(null==d&&(l=e.indexOf("/"),d=e.substring(0,l),null==f)){var m=e.indexOf("/",l+1);-1<m&&(f=e.substring(l+1,m))}l=T[d];null==l&&(l=[],T[d]=l);e=b.getAttribute("clibs");null!=c[e]&&(e=c[e]);e={url:b.getAttribute("url"),libs:b.getAttribute("libs"),title:b.getAttribute("title"),tooltip:b.getAttribute("name")||b.getAttribute("url"),preview:b.getAttribute("preview"),clibs:e,tags:b.getAttribute("tags")};l.push(e);
-null!=f&&(l=ka[d],null==l&&(l={},ka[d]=l),d=l[f],null==d&&(d=[],l[f]=d),d.push(e))}b=b.nextSibling}N.stop();D()}})};F.appendChild(Z);F.appendChild(ca);F.appendChild(V);var ba=!1,R=p;/^https?:\/\//.test(R)&&!b.editor.isCorsEnabledForUrl(R)&&(R=PROXY_URL+"?url="+encodeURIComponent(R));N.spin(V);null!=z?z(function(b,c){ga=b;S=da=c;ta()},ta):ta();X=T}mxEvent.addListener(H,"keypress",function(c){b.dialog.container.firstChild==F&&13==c.keyCode&&C()});z=document.createElement("div");z.style.marginTop=e?
+null!=f&&(l=ka[d],null==l&&(l={},ka[d]=l),d=l[f],null==d&&(d=[],l[f]=d),d.push(e))}b=b.nextSibling}N.stop();D()}})};G.appendChild(Z);G.appendChild(ca);G.appendChild(V);var ba=!1,Q=p;/^https?:\/\//.test(Q)&&!b.editor.isCorsEnabledForUrl(Q)&&(Q=PROXY_URL+"?url="+encodeURIComponent(Q));N.spin(V);null!=z?z(function(b,c){ga=b;S=da=c;ta()},ta):ta();X=T}mxEvent.addListener(H,"keypress",function(c){b.dialog.container.firstChild==G&&13==c.keyCode&&C()});z=document.createElement("div");z.style.marginTop=e?
"4px":"16px";z.style.textAlign="right";z.style.position="absolute";z.style.left="40px";z.style.bottom="24px";z.style.right="40px";e||b.isOffline()||!d||null!=c||g||(x=mxUtils.button(mxResources.get("help"),function(){b.openLink("https://support.draw.io/display/DO/Creating+and+Opening+Files")}),x.className="geBtn",z.appendChild(x));x=mxUtils.button(mxResources.get("cancel"),function(){null!=k&&k();b.hideDialog(!0)});x.className="geBtn";!b.editor.cancelFirst||g&&null==k||z.appendChild(x);e||"1"==urlParams.embed||
g||mxClient.IS_ANDROID||mxClient.IS_IOS||"1"==urlParams.noDevice||(e=mxUtils.button(mxResources.get("fromTemplateUrl"),function(){var c=new FilenameDialog(b,"",mxResources.get("create"),function(c){null!=c&&0<c.length&&(c=b.getUrl(window.location.pathname+"?mode="+b.mode+"&title="+encodeURIComponent(H.value)+"&create="+encodeURIComponent(c)),null==b.getCurrentFile()?window.location.href=c:window.openWindow(c))},mxResources.get("url"));b.showDialog(c.container,300,80,!0,!0);c.init()}),e.className=
-"geBtn",z.appendChild(e));Graph.fileSupport&&u&&(u=mxUtils.button(mxResources.get("import"),function(){if(null==b.newDlgFileInputElt){var c=document.createElement("input");c.setAttribute("multiple","multiple");c.setAttribute("type","file");mxEvent.addListener(c,"change",function(f){b.openFiles(c.files,!0);c.value=""});c.style.display="none";document.body.appendChild(c);b.newDlgFileInputElt=c}b.newDlgFileInputElt.click()}),u.className="geBtn",z.appendChild(u));z.appendChild(Q);b.editor.cancelFirst||
-null!=c||g&&null==k||z.appendChild(x);F.appendChild(z);this.container=F};NewDialog.tagsList={};
-var CreateDialog=function(b,e,d,c,g,k,n,f,l,m,p,q,t,v,u,x,z){function y(c,f,d,l){function m(){mxEvent.addListener(p,"click",function(){var c=d;if(n){var f=A.value,l=f.lastIndexOf(".");if(0>e.lastIndexOf(".")&&0>l){var c=null!=c?c:F.value,m="";c==App.MODE_GOOGLE?m=b.drive.extension:c==App.MODE_GITHUB?m=b.gitHub.extension:c==App.MODE_GITLAB?m=b.gitLab.extension:c==App.MODE_TRELLO?m=b.trello.extension:c==App.MODE_DROPBOX?m=b.dropbox.extension:c==App.MODE_ONEDRIVE?m=b.oneDrive.extension:c==App.MODE_DEVICE&&
+"geBtn",z.appendChild(e));Graph.fileSupport&&u&&(u=mxUtils.button(mxResources.get("import"),function(){if(null==b.newDlgFileInputElt){var c=document.createElement("input");c.setAttribute("multiple","multiple");c.setAttribute("type","file");mxEvent.addListener(c,"change",function(f){b.openFiles(c.files,!0);c.value=""});c.style.display="none";document.body.appendChild(c);b.newDlgFileInputElt=c}b.newDlgFileInputElt.click()}),u.className="geBtn",z.appendChild(u));z.appendChild(R);b.editor.cancelFirst||
+null!=c||g&&null==k||z.appendChild(x);G.appendChild(z);this.container=G};NewDialog.tagsList={};
+var CreateDialog=function(b,e,d,c,g,k,n,f,l,m,p,q,t,v,u,x,z){function y(c,f,d,l){function m(){mxEvent.addListener(p,"click",function(){var c=d;if(n){var f=A.value,l=f.lastIndexOf(".");if(0>e.lastIndexOf(".")&&0>l){var c=null!=c?c:G.value,m="";c==App.MODE_GOOGLE?m=b.drive.extension:c==App.MODE_GITHUB?m=b.gitHub.extension:c==App.MODE_GITLAB?m=b.gitLab.extension:c==App.MODE_TRELLO?m=b.trello.extension:c==App.MODE_DROPBOX?m=b.dropbox.extension:c==App.MODE_ONEDRIVE?m=b.oneDrive.extension:c==App.MODE_DEVICE&&
(m=".drawio");0<=l&&(f=f.substring(0,l));A.value=f+m}}B(d)})}var p=document.createElement("a");p.style.overflow="hidden";var g=document.createElement("img");g.src=c;g.setAttribute("border","0");g.setAttribute("align","absmiddle");g.style.width="60px";g.style.height="60px";g.style.paddingBottom="6px";p.style.display="inline-block";p.className="geBaseButton";p.style.position="relative";p.style.margin="4px";p.style.padding="8px 8px 10px 8px";p.style.whiteSpace="nowrap";p.appendChild(g);p.style.color=
"gray";p.style.fontSize="11px";var k=document.createElement("div");p.appendChild(k);mxUtils.write(k,f);if(null!=l&&null==b[l]){g.style.visibility="hidden";mxUtils.setOpacity(k,10);var t=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});t.spin(p);var v=window.setTimeout(function(){null==b[l]&&(t.stop(),p.style.display="none")},3E4);b.addListener("clientLoaded",mxUtils.bind(this,function(){null!=b[l]&&(window.clearTimeout(v),
mxUtils.setOpacity(k,100),g.style.visibility="",t.stop(),m())}))}else m();D.appendChild(p);++E==q&&(mxUtils.br(D),E=0)}function B(c){var f=A.value;if(null==c||null!=f&&0<f.length)z&&b.hideDialog(),d(f,c,A)}p="1"==urlParams.noDevice?!1:p;n=null!=n?n:!0;f=null!=f?f:!0;q=null!=q?q:4;z=null!=z?z:!0;k=document.createElement("div");k.style.whiteSpace="nowrap";null==c&&b.addLanguageMenu(k);var C=document.createElement("h2");mxUtils.write(C,g||mxResources.get("create"));C.style.marginTop="0px";C.style.marginBottom=
"24px";k.appendChild(C);mxUtils.write(k,mxResources.get("filename")+":");var A=document.createElement("input");A.setAttribute("value",e);A.style.width="200px";A.style.marginLeft="10px";A.style.marginBottom="20px";A.style.maxWidth="70%";this.init=function(){A.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?A.select():document.execCommand("selectAll",!1,null)};k.appendChild(A);null!=x&&(null!=b.editor.diagramFileTypes&&(g=FilenameDialog.createFileTypes(b,A,b.editor.diagramFileTypes),
-g.style.marginLeft="6px",g.style.width="90px",k.appendChild(g)),k.appendChild(FilenameDialog.createTypeHint(b,A,x)));x=null;if("1"!=urlParams.noDevice&&null!=t&&null!=v&&"image/"==v.substring(0,6)&&("image/svg"!=v.substring(0,9)||mxClient.IS_SVG)){A.style.width="160px";g=document.createElement("img");var G=u?t:btoa(unescape(encodeURIComponent(t)));g.setAttribute("src","data:"+v+";base64,"+G);g.style.position="absolute";g.style.top="70px";g.style.right="100px";g.style.maxWidth="120px";g.style.maxHeight=
-"80px";mxUtils.setPrefixedStyle(g.style,"transform","translate(50%,-50%)");k.appendChild(g);mxClient.IS_FF||null==navigator.clipboard||"image/png"!=v||(x=mxUtils.button(mxResources.get("copy"),function(c){c=b.base64ToBlob(G,"image/png");c=new ClipboardItem({"image/png":c,"text/html":new Blob(['<img src="data:'+v+";base64,"+G+'">'],{type:"text/html"})});navigator.clipboard.write([c]).then(mxUtils.bind(this,function(){b.alert(mxResources.get("copiedToClipboard"))}))["catch"](mxUtils.bind(this,function(c){b.handleError(c)}))}),
-x.style.marginTop="6px",x.className="geBtn");l&&Editor.popupsAllowed&&(g.style.cursor="pointer",mxEvent.addGestureListeners(g,null,null,function(b){mxEvent.isPopupTrigger(b)||B("_blank")}))}mxUtils.br(k);var D=document.createElement("div");D.style.textAlign="center";var E=0;D.style.marginTop="6px";k.appendChild(D);var F=document.createElement("select");F.style.marginLeft="10px";b.isOfflineApp()||b.isOffline()||("function"===typeof window.DriveClient&&(t=document.createElement("option"),t.setAttribute("value",
-App.MODE_GOOGLE),mxUtils.write(t,mxResources.get("googleDrive")),F.appendChild(t),y(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive")),"function"===typeof window.OneDriveClient&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_ONEDRIVE),mxUtils.write(t,mxResources.get("oneDrive")),F.appendChild(t),b.mode==App.MODE_ONEDRIVE&&t.setAttribute("selected","selected"),y(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),App.MODE_ONEDRIVE,
-"oneDrive")),"function"===typeof window.DropboxClient&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_DROPBOX),mxUtils.write(t,mxResources.get("dropbox")),F.appendChild(t),b.mode==App.MODE_DROPBOX&&t.setAttribute("selected","selected"),y(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox")),null!=b.gitHub&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_GITHUB),mxUtils.write(t,mxResources.get("github")),F.appendChild(t),y(IMAGE_PATH+
-"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub")),null!=b.gitLab&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_GITLAB),mxUtils.write(t,mxResources.get("gitlab")),F.appendChild(t),y(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),App.MODE_GITLAB,"gitLab")),"function"===typeof window.TrelloClient&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_TRELLO),mxUtils.write(t,mxResources.get("trello")),F.appendChild(t),y(IMAGE_PATH+"/trello-logo.svg",
-mxResources.get("trello"),App.MODE_TRELLO,"trello")));if(!Editor.useLocalStorage||"device"==urlParams.storage||null!=b.getCurrentFile()&&"1"!=urlParams.noDevice)t=document.createElement("option"),t.setAttribute("value",App.MODE_DEVICE),mxUtils.write(t,mxResources.get("device")),F.appendChild(t),b.mode!=App.MODE_DEVICE&&f||t.setAttribute("selected","selected"),p&&y(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);f&&isLocalStorage&&"0"!=urlParams.browser&&(f=document.createElement("option"),
-f.setAttribute("value",App.MODE_BROWSER),mxUtils.write(f,mxResources.get("browser")),F.appendChild(f),b.mode==App.MODE_BROWSER&&f.setAttribute("selected","selected"),y(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));f=document.createElement("div");f.style.marginTop="26px";f.style.textAlign="center";null!=m&&(p=mxUtils.button(mxResources.get("help"),function(){b.openLink(m)}),p.className="geBtn",f.appendChild(p));p=mxUtils.button(mxResources.get(null!=c?"close":"cancel"),
+g.style.marginLeft="6px",g.style.width="90px",k.appendChild(g)),k.appendChild(FilenameDialog.createTypeHint(b,A,x)));x=null;if("1"!=urlParams.noDevice&&null!=t&&null!=v&&"image/"==v.substring(0,6)&&("image/svg"!=v.substring(0,9)||mxClient.IS_SVG)){A.style.width="160px";g=document.createElement("img");var F=u?t:btoa(unescape(encodeURIComponent(t)));g.setAttribute("src","data:"+v+";base64,"+F);g.style.position="absolute";g.style.top="70px";g.style.right="100px";g.style.maxWidth="120px";g.style.maxHeight=
+"80px";mxUtils.setPrefixedStyle(g.style,"transform","translate(50%,-50%)");k.appendChild(g);mxClient.IS_FF||null==navigator.clipboard||"image/png"!=v||(x=mxUtils.button(mxResources.get("copy"),function(c){c=b.base64ToBlob(F,"image/png");c=new ClipboardItem({"image/png":c,"text/html":new Blob(['<img src="data:'+v+";base64,"+F+'">'],{type:"text/html"})});navigator.clipboard.write([c]).then(mxUtils.bind(this,function(){b.alert(mxResources.get("copiedToClipboard"))}))["catch"](mxUtils.bind(this,function(c){b.handleError(c)}))}),
+x.style.marginTop="6px",x.className="geBtn");l&&Editor.popupsAllowed&&(g.style.cursor="pointer",mxEvent.addGestureListeners(g,null,null,function(b){mxEvent.isPopupTrigger(b)||B("_blank")}))}mxUtils.br(k);var D=document.createElement("div");D.style.textAlign="center";var E=0;D.style.marginTop="6px";k.appendChild(D);var G=document.createElement("select");G.style.marginLeft="10px";b.isOfflineApp()||b.isOffline()||("function"===typeof window.DriveClient&&(t=document.createElement("option"),t.setAttribute("value",
+App.MODE_GOOGLE),mxUtils.write(t,mxResources.get("googleDrive")),G.appendChild(t),y(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive")),"function"===typeof window.OneDriveClient&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_ONEDRIVE),mxUtils.write(t,mxResources.get("oneDrive")),G.appendChild(t),b.mode==App.MODE_ONEDRIVE&&t.setAttribute("selected","selected"),y(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),App.MODE_ONEDRIVE,
+"oneDrive")),"function"===typeof window.DropboxClient&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_DROPBOX),mxUtils.write(t,mxResources.get("dropbox")),G.appendChild(t),b.mode==App.MODE_DROPBOX&&t.setAttribute("selected","selected"),y(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox")),null!=b.gitHub&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_GITHUB),mxUtils.write(t,mxResources.get("github")),G.appendChild(t),y(IMAGE_PATH+
+"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub")),null!=b.gitLab&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_GITLAB),mxUtils.write(t,mxResources.get("gitlab")),G.appendChild(t),y(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),App.MODE_GITLAB,"gitLab")),"function"===typeof window.TrelloClient&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_TRELLO),mxUtils.write(t,mxResources.get("trello")),G.appendChild(t),y(IMAGE_PATH+"/trello-logo.svg",
+mxResources.get("trello"),App.MODE_TRELLO,"trello")));if(!Editor.useLocalStorage||"device"==urlParams.storage||null!=b.getCurrentFile()&&"1"!=urlParams.noDevice)t=document.createElement("option"),t.setAttribute("value",App.MODE_DEVICE),mxUtils.write(t,mxResources.get("device")),G.appendChild(t),b.mode!=App.MODE_DEVICE&&f||t.setAttribute("selected","selected"),p&&y(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);f&&isLocalStorage&&"0"!=urlParams.browser&&(f=document.createElement("option"),
+f.setAttribute("value",App.MODE_BROWSER),mxUtils.write(f,mxResources.get("browser")),G.appendChild(f),b.mode==App.MODE_BROWSER&&f.setAttribute("selected","selected"),y(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));f=document.createElement("div");f.style.marginTop="26px";f.style.textAlign="center";null!=m&&(p=mxUtils.button(mxResources.get("help"),function(){b.openLink(m)}),p.className="geBtn",f.appendChild(p));p=mxUtils.button(mxResources.get(null!=c?"close":"cancel"),
function(){null!=c?c():(b.fileLoaded(null),b.hideDialog(),window.close(),window.location.href=b.getUrl())});p.className="geBtn";b.editor.cancelFirst&&null==c&&f.appendChild(p);null==c&&(t=mxUtils.button(mxResources.get("decideLater"),function(){B(null)}),t.className="geBtn",f.appendChild(t));l&&Editor.popupsAllowed&&(l=mxUtils.button(mxResources.get("openInNewWindow"),function(){B("_blank")}),l.className="geBtn",f.appendChild(l));CreateDialog.showDownloadButton&&(l=mxUtils.button(mxResources.get("download"),
function(){B("download")}),l.className="geBtn",f.appendChild(l),null!=x&&(l.style.marginTop="6px",f.style.marginTop="6px"));null!=x&&(mxUtils.br(f),f.appendChild(x));b.editor.cancelFirst&&null==c||f.appendChild(p);mxEvent.addListener(A,"keypress",function(c){13==c.keyCode?B(App.MODE_DEVICE):27==c.keyCode&&(b.fileLoaded(null),b.hideDialog(),window.close())});k.appendChild(f);this.container=k};CreateDialog.showDownloadButton="1"!=urlParams.noDevice;
var PopupDialog=function(b,e,d,c,g){g=null!=g?g:!0;var k=document.createElement("div");k.style.textAlign="left";k.style.height="100%";mxUtils.write(k,mxResources.get("fileOpenLocation"));mxUtils.br(k);mxUtils.br(k);var n=mxUtils.button(mxResources.get("openInThisWindow"),function(){g&&b.hideDialog();null!=c&&c()});n.className="geBtn";n.style.marginBottom="8px";n.style.width="280px";k.appendChild(n);mxUtils.br(k);var f=mxUtils.button(mxResources.get("openInNewWindow"),function(){g&&b.hideDialog();
@@ -10734,7 +10734,7 @@ mxEvent.addListener(c,"drop",mxUtils.bind(this,function(b){null!=f&&(f.parentNod
d.style.verticalAlign="middle";d.className="geBtn";B.appendChild(d);b.isOffline()&&!mxClient.IS_CHROMEAPP&&(d.style.display="none");d=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});d.style.verticalAlign="middle";d.className="geBtn";b.editor.cancelFirst&&B.appendChild(d);LinkDialog.selectedDocs=null;LinkDialog.filePicked=function(b){if(b.action==google.picker.Action.PICKED){LinkDialog.selectedDocs=b.docs;var c=b.docs[0].url;"application/mxe"==b.docs[0].mimeType||null!=b.docs[0].mimeType&&
"application/vnd.jgraph."==b.docs[0].mimeType.substring(0,23)?c="https://www.draw.io/#G"+b.docs[0].id:"application/vnd.google-apps.folder"==b.docs[0].mimeType&&(c="https://drive.google.com/#folders/"+b.docs[0].id);p.value=c;p.focus()}else LinkDialog.selectedDocs=null;p.focus()};"undefined"!=typeof google&&"undefined"!=typeof google.picker&&null!=b.drive&&f(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googlePlus"),function(){b.spinner.spin(document.body,mxResources.get("authorizing"))&&b.drive.checkToken(mxUtils.bind(this,
function(){b.spinner.stop();if(null==b.linkPicker){var c=b.drive.createLinkPicker();b.linkPicker=c.setCallback(function(b){LinkDialog.filePicked(b)}).build()}b.linkPicker.setVisible(!0)}))});"undefined"!=typeof Dropbox&&"undefined"!=typeof Dropbox.choose&&f(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),function(){Dropbox.choose({linkType:"direct",cancel:function(){},success:function(b){p.value=b[0].link;p.focus()}})});null!=b.oneDrive&&f(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),
-function(){b.oneDrive.pickFile(function(b,c){p.value=c.value[0].webUrl;p.focus()})});null!=b.gitHub&&f(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),function(){b.gitHub.pickFile(function(b){if(null!=b){b=b.split("/");var c=b[0],f=b[1],d=b[2];b=b.slice(3,b.length).join("/");p.value="https://github.com/"+c+"/"+f+"/blob/"+d+"/"+b;p.focus()}})});null!=b.gitLab&&f(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),function(){b.gitLab.pickFile(function(b){if(null!=b){b=b.split("/");var c=
+function(){b.oneDrive.pickFile(function(b,c){p.value=c.value[0].webUrl;p.focus()},!0)});null!=b.gitHub&&f(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),function(){b.gitHub.pickFile(function(b){if(null!=b){b=b.split("/");var c=b[0],f=b[1],d=b[2];b=b.slice(3,b.length).join("/");p.value="https://github.com/"+c+"/"+f+"/blob/"+d+"/"+b;p.focus()}})});null!=b.gitLab&&f(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),function(){b.gitLab.pickFile(function(b){if(null!=b){b=b.split("/");var c=
b[0],f=b[1],d=b[2];b=b.slice(3,b.length).join("/");p.value=DRAWIO_GITLAB_URL+"/"+c+"/"+f+"/blob/"+d+"/"+b;p.focus()}})});mxEvent.addListener(p,"keypress",function(f){13==f.keyCode&&(b.hideDialog(),c(v.checked?u.value:p.value,LinkDialog.selectedDocs))});B.appendChild(y);b.editor.cancelFirst||B.appendChild(d);l.appendChild(B);this.container=l},FeedbackDialog=function(b,e,d,c){var g=document.createElement("div"),k=document.createElement("div");mxUtils.write(k,mxResources.get("sendYourFeedback"));k.style.fontSize=
"18px";k.style.marginBottom="18px";g.appendChild(k);k=document.createElement("div");mxUtils.write(k,mxResources.get("yourEmailAddress")+(d?"":" ("+mxResources.get("required")+")"));g.appendChild(k);var n=document.createElement("input");n.setAttribute("type","text");n.style.marginTop="6px";n.style.width="600px";var f=mxUtils.button(mxResources.get("sendMessage"),function(){var f=p.value+(m.checked?"\nDiagram:\n"+(null!=c?c:mxUtils.getXml(b.getXmlFileData())):"")+"\nuserAgent:\n"+navigator.userAgent+
"\nappVersion:\n"+navigator.appVersion+"\nappName:\n"+navigator.appName+"\nplatform:\n"+navigator.platform;f.length>FeedbackDialog.maxAttachmentSize?b.alert(mxResources.get("drawingTooLarge")):(b.hideDialog(),b.spinner.spin(document.body)&&mxUtils.post(null!=FeedbackDialog.feedbackUrl?FeedbackDialog.feedbackUrl:"/email","email="+encodeURIComponent(n.value)+"&version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&body="+encodeURIComponent((null!=e?e:"Feedback")+
@@ -10745,54 +10745,54 @@ g.appendChild(p);d=document.createElement("div");d.style.marginTop="26px";d.styl
var RevisionDialog=function(b,e,d){var c=document.createElement("div"),g=document.createElement("h3");g.style.marginTop="0px";mxUtils.write(g,mxResources.get("revisionHistory"));c.appendChild(g);g=document.createElement("div");g.style.position="absolute";g.style.overflow="auto";g.style.width="170px";g.style.height="378px";c.appendChild(g);var k=document.createElement("div");k.style.position="absolute";k.style.border="1px solid lightGray";k.style.left="199px";k.style.width="470px";k.style.height="376px";
k.style.overflow="hidden";var n=document.createElement("div");n.style.cssText="position:absolute;left:0;right:0;top:0;bottom:20px;text-align:center;transform:translate(0,50%);pointer-events:none;";k.appendChild(n);mxEvent.disableContextMenu(k);c.appendChild(k);var f=new Graph(k);f.setTooltips(!1);f.setEnabled(!1);f.setPanning(!0);f.panningHandler.ignoreCell=!0;f.panningHandler.useLeftButtonForPanning=!0;f.minFitScale=null;f.maxFitScale=null;f.centerZoom=!0;var l=0,m=null,p=0,q=f.getGlobalVariable;
f.getGlobalVariable=function(b){return"page"==b&&null!=m&&null!=m[p]?m[p].getAttribute("name"):"pagenumber"==b?p+1:"pagecount"==b?null!=m?m.length:1:q.apply(this,arguments)};f.getLinkForCell=function(){return null};Editor.MathJaxRender&&f.addListener(mxEvent.SIZE,mxUtils.bind(this,function(c,d){b.editor.graph.mathEnabled&&Editor.MathJaxRender(f.container)}));for(var t={lines:11,length:15,width:6,radius:10,corners:1,rotate:0,direction:1,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.4,trail:60,
-shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"},v=new Spinner(t),u=b.getCurrentFile(),x=b.getXmlFileData(!0,!1,!0).getElementsByTagName("diagram"),z={},t=0;t<x.length;t++)z[x[t].getAttribute("id")]=x[t];var y=null,B=null,C=null,A=null,G=mxUtils.button("",function(){null!=C&&f.zoomIn()});G.className="geSprite geSprite-zoomin";G.setAttribute("title",mxResources.get("zoomIn"));G.style.outline="none";G.style.border="none";G.style.margin="2px";G.setAttribute("disabled","disabled");
-mxUtils.setOpacity(G,20);var D=mxUtils.button("",function(){null!=C&&f.zoomOut()});D.className="geSprite geSprite-zoomout";D.setAttribute("title",mxResources.get("zoomOut"));D.style.outline="none";D.style.border="none";D.style.margin="2px";D.setAttribute("disabled","disabled");mxUtils.setOpacity(D,20);var E=mxUtils.button("",function(){null!=C&&(f.maxFitScale=8,f.fit(8),f.center())});E.className="geSprite geSprite-fit";E.setAttribute("title",mxResources.get("fit"));E.style.outline="none";E.style.border=
-"none";E.style.margin="2px";E.setAttribute("disabled","disabled");mxUtils.setOpacity(E,20);var F=mxUtils.button("",function(){null!=C&&(f.zoomActual(),f.center())});F.className="geSprite geSprite-actualsize";F.setAttribute("title",mxResources.get("actualSize"));F.style.outline="none";F.style.border="none";F.style.margin="2px";F.setAttribute("disabled","disabled");mxUtils.setOpacity(F,20);var I=mxUtils.button("",function(){});I.className="geSprite geSprite-middle";I.setAttribute("title",mxResources.get("compare"));
-I.style.outline="none";I.style.border="none";I.style.margin="2px";mxUtils.setOpacity(I,60);var J=k.cloneNode(!1);J.style.pointerEvent="none";k.parentNode.appendChild(J);var H=new Graph(J);H.setTooltips(!1);H.setEnabled(!1);H.setPanning(!0);H.panningHandler.ignoreCell=!0;H.panningHandler.useLeftButtonForPanning=!0;H.minFitScale=null;H.maxFitScale=null;H.centerZoom=!0;mxEvent.addGestureListeners(I,function(b){b=z[m[l].getAttribute("id")];mxUtils.setOpacity(I,20);n.innerHTML="";null==b?mxUtils.write(n,
-mxResources.get("pageNotFound")):(K.style.display="none",k.style.display="none",J.style.display="",J.style.backgroundColor=k.style.backgroundColor,b=Editor.parseDiagramNode(b),(new mxCodec(b.ownerDocument)).decode(b,H.getModel()),H.view.scaleAndTranslate(f.view.scale,f.view.translate.x,f.view.translate.y))},null,function(){mxUtils.setOpacity(I,60);n.innerHTML="";"none"==k.style.display&&(K.style.display="",k.style.display="",J.style.display="none")});var K=document.createElement("div");K.style.position=
-"absolute";K.style.textAlign="right";K.style.color="gray";K.style.marginTop="10px";K.style.backgroundColor="transparent";K.style.top="440px";K.style.right="32px";K.style.maxWidth="380px";K.style.cursor="default";var N=mxUtils.button(mxResources.get("download"),function(){if(null!=C){var c=mxUtils.getXml(C.documentElement),f=b.getBaseFilename()+".drawio";b.isLocalFileSave()?b.saveLocalFile(c,f,"text/xml"):(c="undefined"===typeof pako?"&xml="+encodeURIComponent(c):"&data="+encodeURIComponent(Graph.compress(c)),
-(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(f)+"&format=xml"+c)).simulate(document,"_blank"))}});N.className="geBtn";N.setAttribute("disabled","disabled");var Q=mxUtils.button(mxResources.get("restore"),function(c){null!=C&&null!=A&&(mxEvent.isShiftDown(c)?null!=C&&(c=b.getPagesForNode(C.documentElement),c=b.diffPages(b.pages,c),c=new TextareaDialog(b,mxResources.get("compare"),JSON.stringify(c,null,2),function(c){if(0<c.length)try{b.confirm(mxResources.get("areYouSure"),function(){u.patch([JSON.parse(c)],
-null,!0);b.hideDialog();b.hideDialog()})}catch(ja){b.handleError(ja)}},null,null,null,null,null,!0,null,mxResources.get("merge")),b.showDialog(c.container,620,460,!0,!0),c.init()):b.confirm(mxResources.get("areYouSure"),function(){null!=d?d(A):b.spinner.spin(document.body,mxResources.get("restoring"))&&u.save(!0,function(c){b.spinner.stop();b.replaceFileData(A);b.hideDialog()},function(c){b.spinner.stop();b.editor.setStatus("");b.handleError(c,null!=c?mxResources.get("errorSavingFile"):null)})}))});
-Q.className="geBtn";Q.setAttribute("disabled","disabled");Q.setAttribute("title","Shift+Click for Diff");var L=document.createElement("select");L.setAttribute("disabled","disabled");L.style.maxWidth="80px";L.style.position="relative";L.style.top="-2px";L.style.verticalAlign="bottom";L.style.marginRight="6px";L.style.display="none";var W=null;mxEvent.addListener(L,"change",function(b){null!=W&&(W(b),mxEvent.consume(b))});var X=mxUtils.button(mxResources.get("edit"),function(){null!=C&&(window.openFile=
-new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(C.documentElement)),b.openLink(b.getUrl(),null,!0))});X.className="geBtn";X.setAttribute("disabled","disabled");null!=d&&(X.style.display="none");var S=mxUtils.button(mxResources.get("show"),function(){null!=B&&b.openLink(B.getUrl(L.selectedIndex))});S.className="geBtn gePrimaryBtn";S.setAttribute("disabled","disabled");null!=d&&(S.style.display="none",Q.className="geBtn gePrimaryBtn");x=document.createElement("div");
-x.style.position="absolute";x.style.top="482px";x.style.width="640px";x.style.textAlign="right";var M=document.createElement("div");M.className="geToolbarContainer";M.style.backgroundColor="transparent";M.style.padding="2px";M.style.border="none";M.style.left="199px";M.style.top="442px";var P=null;if(null!=e&&0<e.length){k.style.cursor="move";var aa=document.createElement("table");aa.style.border="1px solid lightGray";aa.style.borderCollapse="collapse";aa.style.borderSpacing="0px";aa.style.width=
-"100%";var oa=document.createElement("tbody"),ea=(new Date).toDateString();null!=b.currentPage&&null!=b.pages&&(l=mxUtils.indexOf(b.pages,b.currentPage));for(t=e.length-1;0<=t;t--){var U=function(c){var d=new Date(c.modifiedDate),g=null;if(0<=d.getTime()){var q=function(e){v.stop();n.innerHTML="";var q=mxUtils.parseXml(e),t=b.editor.extractGraphModel(q.documentElement,!0);if(null!=t){var M=function(b){null!=b&&(b=x(Editor.parseDiagramNode(b)));return b},x=function(b){var c=b.getAttribute("background");
+shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"},v=new Spinner(t),u=b.getCurrentFile(),x=b.getXmlFileData(!0,!1,!0).getElementsByTagName("diagram"),z={},t=0;t<x.length;t++)z[x[t].getAttribute("id")]=x[t];var y=null,B=null,C=null,A=null,F=mxUtils.button("",function(){null!=C&&f.zoomIn()});F.className="geSprite geSprite-zoomin";F.setAttribute("title",mxResources.get("zoomIn"));F.style.outline="none";F.style.border="none";F.style.margin="2px";F.setAttribute("disabled","disabled");
+mxUtils.setOpacity(F,20);var D=mxUtils.button("",function(){null!=C&&f.zoomOut()});D.className="geSprite geSprite-zoomout";D.setAttribute("title",mxResources.get("zoomOut"));D.style.outline="none";D.style.border="none";D.style.margin="2px";D.setAttribute("disabled","disabled");mxUtils.setOpacity(D,20);var E=mxUtils.button("",function(){null!=C&&(f.maxFitScale=8,f.fit(8),f.center())});E.className="geSprite geSprite-fit";E.setAttribute("title",mxResources.get("fit"));E.style.outline="none";E.style.border=
+"none";E.style.margin="2px";E.setAttribute("disabled","disabled");mxUtils.setOpacity(E,20);var G=mxUtils.button("",function(){null!=C&&(f.zoomActual(),f.center())});G.className="geSprite geSprite-actualsize";G.setAttribute("title",mxResources.get("actualSize"));G.style.outline="none";G.style.border="none";G.style.margin="2px";G.setAttribute("disabled","disabled");mxUtils.setOpacity(G,20);var J=mxUtils.button("",function(){});J.className="geSprite geSprite-middle";J.setAttribute("title",mxResources.get("compare"));
+J.style.outline="none";J.style.border="none";J.style.margin="2px";mxUtils.setOpacity(J,60);var K=k.cloneNode(!1);K.style.pointerEvent="none";k.parentNode.appendChild(K);var H=new Graph(K);H.setTooltips(!1);H.setEnabled(!1);H.setPanning(!0);H.panningHandler.ignoreCell=!0;H.panningHandler.useLeftButtonForPanning=!0;H.minFitScale=null;H.maxFitScale=null;H.centerZoom=!0;mxEvent.addGestureListeners(J,function(b){b=z[m[l].getAttribute("id")];mxUtils.setOpacity(J,20);n.innerHTML="";null==b?mxUtils.write(n,
+mxResources.get("pageNotFound")):(I.style.display="none",k.style.display="none",K.style.display="",K.style.backgroundColor=k.style.backgroundColor,b=Editor.parseDiagramNode(b),(new mxCodec(b.ownerDocument)).decode(b,H.getModel()),H.view.scaleAndTranslate(f.view.scale,f.view.translate.x,f.view.translate.y))},null,function(){mxUtils.setOpacity(J,60);n.innerHTML="";"none"==k.style.display&&(I.style.display="",k.style.display="",K.style.display="none")});var I=document.createElement("div");I.style.position=
+"absolute";I.style.textAlign="right";I.style.color="gray";I.style.marginTop="10px";I.style.backgroundColor="transparent";I.style.top="440px";I.style.right="32px";I.style.maxWidth="380px";I.style.cursor="default";var N=mxUtils.button(mxResources.get("download"),function(){if(null!=C){var c=mxUtils.getXml(C.documentElement),f=b.getBaseFilename()+".drawio";b.isLocalFileSave()?b.saveLocalFile(c,f,"text/xml"):(c="undefined"===typeof pako?"&xml="+encodeURIComponent(c):"&data="+encodeURIComponent(Graph.compress(c)),
+(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(f)+"&format=xml"+c)).simulate(document,"_blank"))}});N.className="geBtn";N.setAttribute("disabled","disabled");var R=mxUtils.button(mxResources.get("restore"),function(c){null!=C&&null!=A&&(mxEvent.isShiftDown(c)?null!=C&&(c=b.getPagesForNode(C.documentElement),c=b.diffPages(b.pages,c),c=new TextareaDialog(b,mxResources.get("compare"),JSON.stringify(c,null,2),function(c){if(0<c.length)try{b.confirm(mxResources.get("areYouSure"),function(){u.patch([JSON.parse(c)],
+null,!0);b.hideDialog();b.hideDialog()})}catch(la){b.handleError(la)}},null,null,null,null,null,!0,null,mxResources.get("merge")),b.showDialog(c.container,620,460,!0,!0),c.init()):b.confirm(mxResources.get("areYouSure"),function(){null!=d?d(A):b.spinner.spin(document.body,mxResources.get("restoring"))&&u.save(!0,function(c){b.spinner.stop();b.replaceFileData(A);b.hideDialog()},function(c){b.spinner.stop();b.editor.setStatus("");b.handleError(c,null!=c?mxResources.get("errorSavingFile"):null)})}))});
+R.className="geBtn";R.setAttribute("disabled","disabled");R.setAttribute("title","Shift+Click for Diff");var L=document.createElement("select");L.setAttribute("disabled","disabled");L.style.maxWidth="80px";L.style.position="relative";L.style.top="-2px";L.style.verticalAlign="bottom";L.style.marginRight="6px";L.style.display="none";var W=null;mxEvent.addListener(L,"change",function(b){null!=W&&(W(b),mxEvent.consume(b))});var X=mxUtils.button(mxResources.get("edit"),function(){null!=C&&(window.openFile=
+new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(C.documentElement)),b.openLink(b.getUrl(),null,!0))});X.className="geBtn";X.setAttribute("disabled","disabled");null!=d&&(X.style.display="none");var S=mxUtils.button(mxResources.get("show"),function(){null!=B&&b.openLink(B.getUrl(L.selectedIndex))});S.className="geBtn gePrimaryBtn";S.setAttribute("disabled","disabled");null!=d&&(S.style.display="none",R.className="geBtn gePrimaryBtn");x=document.createElement("div");
+x.style.position="absolute";x.style.top="482px";x.style.width="640px";x.style.textAlign="right";var M=document.createElement("div");M.className="geToolbarContainer";M.style.backgroundColor="transparent";M.style.padding="2px";M.style.border="none";M.style.left="199px";M.style.top="442px";var O=null;if(null!=e&&0<e.length){k.style.cursor="move";var aa=document.createElement("table");aa.style.border="1px solid lightGray";aa.style.borderCollapse="collapse";aa.style.borderSpacing="0px";aa.style.width=
+"100%";var ja=document.createElement("tbody"),fa=(new Date).toDateString();null!=b.currentPage&&null!=b.pages&&(l=mxUtils.indexOf(b.pages,b.currentPage));for(t=e.length-1;0<=t;t--){var U=function(c){var d=new Date(c.modifiedDate),g=null;if(0<=d.getTime()){var q=function(e){v.stop();n.innerHTML="";var q=mxUtils.parseXml(e),t=b.editor.extractGraphModel(q.documentElement,!0);if(null!=t){var M=function(b){null!=b&&(b=x(Editor.parseDiagramNode(b)));return b},x=function(b){var c=b.getAttribute("background");
if(null==c||""==c||c==mxConstants.NONE)c=f.defaultPageBackgroundColor;k.style.backgroundColor=c;(new mxCodec(b.ownerDocument)).decode(b,f.getModel());f.maxFitScale=1;f.fit(8);f.center();return b};L.style.display="none";L.innerHTML="";C=q;A=e;m=parseSelectFunction=null;p=0;if("mxfile"==t.nodeName){q=t.getElementsByTagName("diagram");m=[];for(e=0;e<q.length;e++)m.push(q[e]);p=Math.min(l,m.length-1);0<m.length&&M(m[p]);if(1<m.length)for(L.removeAttribute("disabled"),L.style.display="",e=0;e<m.length;e++)q=
-document.createElement("option"),mxUtils.write(q,m[e].getAttribute("name")||mxResources.get("pageWithNumber",[e+1])),q.setAttribute("value",e),e==p&&q.setAttribute("selected","selected"),L.appendChild(q);W=function(){try{var c=parseInt(L.value);p=l=c;M(m[c])}catch(ra){L.value=l,b.handleError(ra)}}}else x(t);e=c.lastModifyingUserName;null!=e&&20<e.length&&(e=e.substring(0,20)+"...");K.innerHTML="";mxUtils.write(K,(null!=e?e+" ":"")+d.toLocaleDateString()+" "+d.toLocaleTimeString());K.setAttribute("title",
-g.getAttribute("title"));G.removeAttribute("disabled");D.removeAttribute("disabled");E.removeAttribute("disabled");F.removeAttribute("disabled");I.removeAttribute("disabled");null!=u&&u.isRestricted()||(b.editor.graph.isEnabled()&&Q.removeAttribute("disabled"),N.removeAttribute("disabled"),S.removeAttribute("disabled"),X.removeAttribute("disabled"));mxUtils.setOpacity(G,60);mxUtils.setOpacity(D,60);mxUtils.setOpacity(E,60);mxUtils.setOpacity(F,60);mxUtils.setOpacity(I,60)}else L.style.display="none",
-L.innerHTML="",K.innerHTML="",mxUtils.write(K,mxResources.get("errorLoadingFile")),mxUtils.write(n,mxResources.get("errorLoadingFile"))},g=document.createElement("tr");g.style.borderBottom="1px solid lightGray";g.style.fontSize="12px";g.style.cursor="pointer";var t=document.createElement("td");t.style.padding="6px";t.style.whiteSpace="nowrap";c==e[e.length-1]?mxUtils.write(t,mxResources.get("current")):d.toDateString()===ea?mxUtils.write(t,d.toLocaleTimeString()):mxUtils.write(t,d.toLocaleDateString()+
-" "+d.toLocaleTimeString());g.appendChild(t);g.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString()+(null!=c.fileSize?" "+b.formatFileSize(parseInt(c.fileSize)):"")+(null!=c.lastModifyingUserName?" "+c.lastModifyingUserName:""));mxEvent.addListener(g,"click",function(b){B!=c&&(v.stop(),null!=y&&(y.style.backgroundColor=""),B=c,y=g,y.style.backgroundColor=Editor.isDarkMode()?"#000000":"#ebf2f9",A=C=null,K.removeAttribute("title"),K.innerHTML=mxUtils.htmlEntities(mxResources.get("loading")+
-"..."),k.style.backgroundColor=f.defaultPageBackgroundColor,n.innerHTML="",f.getModel().clear(),Q.setAttribute("disabled","disabled"),N.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"),E.setAttribute("disabled","disabled"),I.setAttribute("disabled","disabled"),X.setAttribute("disabled","disabled"),S.setAttribute("disabled","disabled"),L.setAttribute("disabled","disabled"),mxUtils.setOpacity(G,20),
-mxUtils.setOpacity(D,20),mxUtils.setOpacity(E,20),mxUtils.setOpacity(F,20),mxUtils.setOpacity(I,20),v.spin(k),c.getXml(function(b){if(B==c)try{q(b)}catch(fa){K.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+": "+fa.message)}},function(b){v.stop();L.style.display="none";L.innerHTML="";K.innerHTML="";mxUtils.write(K,mxResources.get("errorLoadingFile"));mxUtils.write(n,mxResources.get("errorLoadingFile"))}),mxEvent.consume(b))});mxEvent.addListener(g,"dblclick",function(b){S.click();window.getSelection?
-window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(b)},!1);oa.appendChild(g)}return g}(e[t]);null!=U&&t==e.length-1&&(P=U)}aa.appendChild(oa);g.appendChild(aa)}else null==u||null==b.drive&&u.constructor==window.DriveFile||null==b.dropbox&&u.constructor==window.DropboxFile?(k.style.display="none",M.style.display="none",mxUtils.write(g,mxResources.get("notAvailable"))):(k.style.display="none",M.style.display="none",mxUtils.write(g,mxResources.get("noRevisions")));
-this.init=function(){null!=P&&P.click()};g=mxUtils.button(mxResources.get("close"),function(){b.hideDialog()});g.className="geBtn";M.appendChild(L);M.appendChild(G);M.appendChild(D);M.appendChild(F);M.appendChild(E);M.appendChild(I);b.editor.cancelFirst?(x.appendChild(g),x.appendChild(N),x.appendChild(X),x.appendChild(Q),x.appendChild(S)):(x.appendChild(N),x.appendChild(X),x.appendChild(Q),x.appendChild(S),x.appendChild(g));c.appendChild(x);c.appendChild(M);c.appendChild(K);this.container=c},DraftDialog=
+document.createElement("option"),mxUtils.write(q,m[e].getAttribute("name")||mxResources.get("pageWithNumber",[e+1])),q.setAttribute("value",e),e==p&&q.setAttribute("selected","selected"),L.appendChild(q);W=function(){try{var c=parseInt(L.value);p=l=c;M(m[c])}catch(ra){L.value=l,b.handleError(ra)}}}else x(t);e=c.lastModifyingUserName;null!=e&&20<e.length&&(e=e.substring(0,20)+"...");I.innerHTML="";mxUtils.write(I,(null!=e?e+" ":"")+d.toLocaleDateString()+" "+d.toLocaleTimeString());I.setAttribute("title",
+g.getAttribute("title"));F.removeAttribute("disabled");D.removeAttribute("disabled");E.removeAttribute("disabled");G.removeAttribute("disabled");J.removeAttribute("disabled");null!=u&&u.isRestricted()||(b.editor.graph.isEnabled()&&R.removeAttribute("disabled"),N.removeAttribute("disabled"),S.removeAttribute("disabled"),X.removeAttribute("disabled"));mxUtils.setOpacity(F,60);mxUtils.setOpacity(D,60);mxUtils.setOpacity(E,60);mxUtils.setOpacity(G,60);mxUtils.setOpacity(J,60)}else L.style.display="none",
+L.innerHTML="",I.innerHTML="",mxUtils.write(I,mxResources.get("errorLoadingFile")),mxUtils.write(n,mxResources.get("errorLoadingFile"))},g=document.createElement("tr");g.style.borderBottom="1px solid lightGray";g.style.fontSize="12px";g.style.cursor="pointer";var t=document.createElement("td");t.style.padding="6px";t.style.whiteSpace="nowrap";c==e[e.length-1]?mxUtils.write(t,mxResources.get("current")):d.toDateString()===fa?mxUtils.write(t,d.toLocaleTimeString()):mxUtils.write(t,d.toLocaleDateString()+
+" "+d.toLocaleTimeString());g.appendChild(t);g.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString()+(null!=c.fileSize?" "+b.formatFileSize(parseInt(c.fileSize)):"")+(null!=c.lastModifyingUserName?" "+c.lastModifyingUserName:""));mxEvent.addListener(g,"click",function(b){B!=c&&(v.stop(),null!=y&&(y.style.backgroundColor=""),B=c,y=g,y.style.backgroundColor=Editor.isDarkMode()?"#000000":"#ebf2f9",A=C=null,I.removeAttribute("title"),I.innerHTML=mxUtils.htmlEntities(mxResources.get("loading")+
+"..."),k.style.backgroundColor=f.defaultPageBackgroundColor,n.innerHTML="",f.getModel().clear(),R.setAttribute("disabled","disabled"),N.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"),E.setAttribute("disabled","disabled"),J.setAttribute("disabled","disabled"),X.setAttribute("disabled","disabled"),S.setAttribute("disabled","disabled"),L.setAttribute("disabled","disabled"),mxUtils.setOpacity(F,20),
+mxUtils.setOpacity(D,20),mxUtils.setOpacity(E,20),mxUtils.setOpacity(G,20),mxUtils.setOpacity(J,20),v.spin(k),c.getXml(function(b){if(B==c)try{q(b)}catch(ea){I.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+": "+ea.message)}},function(b){v.stop();L.style.display="none";L.innerHTML="";I.innerHTML="";mxUtils.write(I,mxResources.get("errorLoadingFile"));mxUtils.write(n,mxResources.get("errorLoadingFile"))}),mxEvent.consume(b))});mxEvent.addListener(g,"dblclick",function(b){S.click();window.getSelection?
+window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(b)},!1);ja.appendChild(g)}return g}(e[t]);null!=U&&t==e.length-1&&(O=U)}aa.appendChild(ja);g.appendChild(aa)}else null==u||null==b.drive&&u.constructor==window.DriveFile||null==b.dropbox&&u.constructor==window.DropboxFile?(k.style.display="none",M.style.display="none",mxUtils.write(g,mxResources.get("notAvailable"))):(k.style.display="none",M.style.display="none",mxUtils.write(g,mxResources.get("noRevisions")));
+this.init=function(){null!=O&&O.click()};g=mxUtils.button(mxResources.get("close"),function(){b.hideDialog()});g.className="geBtn";M.appendChild(L);M.appendChild(F);M.appendChild(D);M.appendChild(G);M.appendChild(E);M.appendChild(J);b.editor.cancelFirst?(x.appendChild(g),x.appendChild(N),x.appendChild(X),x.appendChild(R),x.appendChild(S)):(x.appendChild(N),x.appendChild(X),x.appendChild(R),x.appendChild(S),x.appendChild(g));c.appendChild(x);c.appendChild(M);c.appendChild(I);this.container=c},DraftDialog=
function(b,e,d,c,g,k,n,f,l){var m=document.createElement("div"),p=document.createElement("div");p.style.marginTop="0px";p.style.whiteSpace="nowrap";p.style.overflow="auto";p.style.lineHeight="normal";mxUtils.write(p,e);m.appendChild(p);var q=document.createElement("select"),t=mxUtils.bind(this,function(){B=mxUtils.parseXml(l[q.value].data);C=b.editor.extractGraphModel(B.documentElement,!0);A=0;this.init()});if(null!=l){q.style.marginLeft="4px";for(e=0;e<l.length;e++){var v=document.createElement("option");
v.setAttribute("value",e);var u=new Date(l[e].created),x=new Date(l[e].modified);mxUtils.write(v,u.toLocaleDateString()+" "+u.toLocaleTimeString()+" - "+(u.toDateString(),x.toDateString(),x.toLocaleDateString())+" "+x.toLocaleTimeString());q.appendChild(v)}p.appendChild(q);mxEvent.addListener(q,"change",t)}null==d&&(d=l[0].data);var z=document.createElement("div");z.style.position="absolute";z.style.border="1px solid lightGray";z.style.marginTop="10px";z.style.left="40px";z.style.right="40px";z.style.top=
-"46px";z.style.bottom="74px";z.style.overflow="hidden";mxEvent.disableContextMenu(z);m.appendChild(z);var y=new Graph(z);y.setEnabled(!1);y.setPanning(!0);y.panningHandler.ignoreCell=!0;y.panningHandler.useLeftButtonForPanning=!0;y.minFitScale=null;y.maxFitScale=null;y.centerZoom=!0;var B=mxUtils.parseXml(d),C=b.editor.extractGraphModel(B.documentElement,!0),A=0,G=null,D=y.getGlobalVariable;y.getGlobalVariable=function(b){return"page"==b&&null!=G&&null!=G[A]?G[A].getAttribute("name"):"pagenumber"==
-b?A+1:"pagecount"==b?null!=G?G.length:1:D.apply(this,arguments)};y.getLinkForCell=function(){return null};d=mxUtils.button("",function(){y.zoomIn()});d.className="geSprite geSprite-zoomin";d.setAttribute("title",mxResources.get("zoomIn"));d.style.outline="none";d.style.border="none";d.style.margin="2px";mxUtils.setOpacity(d,60);p=mxUtils.button("",function(){y.zoomOut()});p.className="geSprite geSprite-zoomout";p.setAttribute("title",mxResources.get("zoomOut"));p.style.outline="none";p.style.border=
+"46px";z.style.bottom="74px";z.style.overflow="hidden";mxEvent.disableContextMenu(z);m.appendChild(z);var y=new Graph(z);y.setEnabled(!1);y.setPanning(!0);y.panningHandler.ignoreCell=!0;y.panningHandler.useLeftButtonForPanning=!0;y.minFitScale=null;y.maxFitScale=null;y.centerZoom=!0;var B=mxUtils.parseXml(d),C=b.editor.extractGraphModel(B.documentElement,!0),A=0,F=null,D=y.getGlobalVariable;y.getGlobalVariable=function(b){return"page"==b&&null!=F&&null!=F[A]?F[A].getAttribute("name"):"pagenumber"==
+b?A+1:"pagecount"==b?null!=F?F.length:1:D.apply(this,arguments)};y.getLinkForCell=function(){return null};d=mxUtils.button("",function(){y.zoomIn()});d.className="geSprite geSprite-zoomin";d.setAttribute("title",mxResources.get("zoomIn"));d.style.outline="none";d.style.border="none";d.style.margin="2px";mxUtils.setOpacity(d,60);p=mxUtils.button("",function(){y.zoomOut()});p.className="geSprite geSprite-zoomout";p.setAttribute("title",mxResources.get("zoomOut"));p.style.outline="none";p.style.border=
"none";p.style.margin="2px";mxUtils.setOpacity(p,60);e=mxUtils.button("",function(){y.maxFitScale=8;y.fit(8);y.center()});e.className="geSprite geSprite-fit";e.setAttribute("title",mxResources.get("fit"));e.style.outline="none";e.style.border="none";e.style.margin="2px";mxUtils.setOpacity(e,60);v=mxUtils.button("",function(){y.zoomActual();y.center()});v.className="geSprite geSprite-actualsize";v.setAttribute("title",mxResources.get("actualSize"));v.style.outline="none";v.style.border="none";v.style.margin=
"2px";mxUtils.setOpacity(v,60);n=mxUtils.button(n||mxResources.get("discard"),function(){g.apply(this,[q.value,mxUtils.bind(this,function(){null!=q.parentNode&&(q.options[q.selectedIndex].parentNode.removeChild(q.options[q.selectedIndex]),0<q.options.length?(q.value=q.options[0].value,t()):b.hideDialog(!0))})])});n.className="geBtn";var E=document.createElement("select");E.style.maxWidth="80px";E.style.position="relative";E.style.top="-2px";E.style.verticalAlign="bottom";E.style.marginRight="6px";
E.style.display="none";k=mxUtils.button(k||mxResources.get("edit"),function(){c.apply(this,[q.value])});k.className="geBtn gePrimaryBtn";u=document.createElement("div");u.style.position="absolute";u.style.bottom="30px";u.style.right="40px";u.style.textAlign="right";x=document.createElement("div");x.className="geToolbarContainer";x.style.cssText="box-shadow:none !important;background-color:transparent;padding:2px;border-style:none !important;bottom:30px;";this.init=function(){function b(b){if(null!=
-b){var c=b.getAttribute("background");if(null==c||""==c||c==mxConstants.NONE)c=Editor.isDarkMode()?"transparent":"#ffffff";z.style.backgroundColor=c;(new mxCodec(b.ownerDocument)).decode(b,y.getModel());y.maxFitScale=1;y.fit(8);y.center()}return b}function c(c){null!=c&&(c=b(Editor.parseDiagramNode(c)));return c}mxEvent.addListener(E,"change",function(b){A=parseInt(E.value);c(G[A]);mxEvent.consume(b)});if("mxfile"==C.nodeName){var f=C.getElementsByTagName("diagram");G=[];for(var d=0;d<f.length;d++)G.push(f[d]);
-0<G.length&&c(G[A]);E.innerHTML="";if(1<G.length)for(E.style.display="",d=0;d<G.length;d++)f=document.createElement("option"),mxUtils.write(f,G[d].getAttribute("name")||mxResources.get("pageWithNumber",[d+1])),f.setAttribute("value",d),d==A&&f.setAttribute("selected","selected"),E.appendChild(f);else E.style.display="none"}else b(C)};x.appendChild(E);x.appendChild(d);x.appendChild(p);x.appendChild(v);x.appendChild(e);d=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog(!0)});d.className=
+b){var c=b.getAttribute("background");if(null==c||""==c||c==mxConstants.NONE)c=Editor.isDarkMode()?"transparent":"#ffffff";z.style.backgroundColor=c;(new mxCodec(b.ownerDocument)).decode(b,y.getModel());y.maxFitScale=1;y.fit(8);y.center()}return b}function c(c){null!=c&&(c=b(Editor.parseDiagramNode(c)));return c}mxEvent.addListener(E,"change",function(b){A=parseInt(E.value);c(F[A]);mxEvent.consume(b)});if("mxfile"==C.nodeName){var f=C.getElementsByTagName("diagram");F=[];for(var d=0;d<f.length;d++)F.push(f[d]);
+0<F.length&&c(F[A]);E.innerHTML="";if(1<F.length)for(E.style.display="",d=0;d<F.length;d++)f=document.createElement("option"),mxUtils.write(f,F[d].getAttribute("name")||mxResources.get("pageWithNumber",[d+1])),f.setAttribute("value",d),d==A&&f.setAttribute("selected","selected"),E.appendChild(f);else E.style.display="none"}else b(C)};x.appendChild(E);x.appendChild(d);x.appendChild(p);x.appendChild(v);x.appendChild(e);d=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog(!0)});d.className=
"geBtn";f=null!=f?mxUtils.button(mxResources.get("ignore"),f):null;null!=f&&(f.className="geBtn");b.editor.cancelFirst?(u.appendChild(d),null!=f&&u.appendChild(f),u.appendChild(n),u.appendChild(k)):(u.appendChild(k),u.appendChild(n),null!=f&&u.appendChild(f),u.appendChild(d));m.appendChild(u);m.appendChild(x);this.container=m},FindWindow=function(b,e,d,c,g,k){function n(b,c,f,d){if("object"===typeof c.value&&null!=c.value.attributes){c=c.value.attributes;for(var e=0;e<c.length;e++)if("label"!=c[e].nodeName){var l=
-mxUtils.trim(c[e].nodeValue.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();if(null==b&&(d&&0<=l.indexOf(f)||!d&&l.substring(0,f.length)===f)||null!=b&&b.test(l))return!0}}return!1}function f(){v&&G.value?(N.removeAttribute("disabled"),Q.removeAttribute("disabled")):(N.setAttribute("disabled","disabled"),Q.setAttribute("disabled","disabled"));G.value&&A.value?L.removeAttribute("disabled"):L.setAttribute("disabled","disabled")}function l(c,d,e){H.innerHTML="";var m=p.model.getDescendants(p.model.getRoot()),
-g=A.value.toLowerCase(),M=D.checked?new RegExp(g):null,L=null;x=null;q!=g&&(q=g,t=null,u=!1);var y=null==t;if(0<g.length){if(u){u=!1;for(var K,J=0;J<b.pages.length;J++)if(b.currentPage==b.pages[J]){K=J;break}c=(K+1)%b.pages.length;t=null;do u=!1,m=b.pages[c],p=b.createTemporaryGraph(p.getStylesheet()),b.updatePageRoot(m),p.model.setRoot(m.root),c=(c+1)%b.pages.length;while(!l(!0,d,e)&&c!=K);t&&(t=null,e?b.editor.graph.model.execute(new SelectPage(b,m)):b.selectPage(m));u=!1;p=b.editor.graph;return l(!0,
-d,e)}for(J=0;J<m.length;J++){K=p.view.getState(m[J]);d&&null!=M&&(y=y||K==t);if(null!=K&&null!=K.cell.value&&(y||null==L)&&(p.model.isVertex(K.cell)||p.model.isEdge(K.cell))){null!=K.style&&"1"==K.style.html?(F.innerHTML=p.sanitizeHtml(p.getLabel(K.cell)),label=mxUtils.extractTextWithWhitespace([F])):label=p.getLabel(K.cell);label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();var I=0;d&&k&&null!=M&&K==t&&(label=label.substr(z),I=z);var C=""==G.value,N=C;if(null==M&&(N&&
-0<=label.indexOf(g)||!N&&label.substring(0,g.length)===g||C&&n(M,K.cell,g,N))||null!=M&&(M.test(label)||C&&n(M,K.cell,g,N)))if(k&&(null!=M?(C=label.match(M),x=C[0].toLowerCase(),z=I+C.index+x.length):(x=g,z=x.length)),y){L=K;break}else null==L&&(L=K)}y=y||K==t}}if(null!=L){if(J==m.length&&E.checked)return t=null,u=!0,l(!0,d,e);t=L;p.scrollCellToVisible(t.cell);p.isEnabled()&&!p.isCellLocked(t.cell)?e||p.getSelectionCell()==t.cell&&1==p.getSelectionCount()||p.setSelectionCell(t.cell):p.highlightCell(t.cell)}else{if(!c&&
+mxUtils.trim(c[e].nodeValue.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();if(null==b&&(d&&0<=l.indexOf(f)||!d&&l.substring(0,f.length)===f)||null!=b&&b.test(l))return!0}}return!1}function f(){v&&F.value?(N.removeAttribute("disabled"),R.removeAttribute("disabled")):(N.setAttribute("disabled","disabled"),R.setAttribute("disabled","disabled"));F.value&&A.value?L.removeAttribute("disabled"):L.setAttribute("disabled","disabled")}function l(c,d,e){H.innerHTML="";var m=p.model.getDescendants(p.model.getRoot()),
+g=A.value.toLowerCase(),M=D.checked?new RegExp(g):null,L=null;x=null;q!=g&&(q=g,t=null,u=!1);var I=null==t;if(0<g.length){if(u){u=!1;for(var y,K=0;K<b.pages.length;K++)if(b.currentPage==b.pages[K]){y=K;break}c=(y+1)%b.pages.length;t=null;do u=!1,m=b.pages[c],p=b.createTemporaryGraph(p.getStylesheet()),b.updatePageRoot(m),p.model.setRoot(m.root),c=(c+1)%b.pages.length;while(!l(!0,d,e)&&c!=y);t&&(t=null,e?b.editor.graph.model.execute(new SelectPage(b,m)):b.selectPage(m));u=!1;p=b.editor.graph;return l(!0,
+d,e)}for(K=0;K<m.length;K++){y=p.view.getState(m[K]);d&&null!=M&&(I=I||y==t);if(null!=y&&null!=y.cell.value&&(I||null==L)&&(p.model.isVertex(y.cell)||p.model.isEdge(y.cell))){null!=y.style&&"1"==y.style.html?(G.innerHTML=p.sanitizeHtml(p.getLabel(y.cell)),label=mxUtils.extractTextWithWhitespace([G])):label=p.getLabel(y.cell);label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();var J=0;d&&k&&null!=M&&y==t&&(label=label.substr(z),J=z);var C=""==F.value,N=C;if(null==M&&(N&&
+0<=label.indexOf(g)||!N&&label.substring(0,g.length)===g||C&&n(M,y.cell,g,N))||null!=M&&(M.test(label)||C&&n(M,y.cell,g,N)))if(k&&(null!=M?(C=label.match(M),x=C[0].toLowerCase(),z=J+C.index+x.length):(x=g,z=x.length)),I){L=y;break}else null==L&&(L=y)}I=I||y==t}}if(null!=L){if(K==m.length&&E.checked)return t=null,u=!0,l(!0,d,e);t=L;p.scrollCellToVisible(t.cell);p.isEnabled()&&!p.isCellLocked(t.cell)?e||p.getSelectionCell()==t.cell&&1==p.getSelectionCount()||p.setSelectionCell(t.cell):p.highlightCell(t.cell)}else{if(!c&&
E.checked)return u=!0,l(!0,d,e);p.isEnabled()&&!e&&p.clearSelection()}v=null!=L;k&&!c&&f();return 0==g.length||null!=L}var m=b.actions.get("findReplace"),p=b.editor.graph,q=null,t=null,v=!1,u=!1,x=null,z=0,y=1,B=document.createElement("div");B.style.userSelect="none";B.style.overflow="hidden";B.style.padding="10px";B.style.height="100%";var C=k?"260px":"200px",A=document.createElement("input");A.setAttribute("placeholder",mxResources.get("find"));A.setAttribute("type","text");A.style.marginTop="4px";
-A.style.marginBottom="6px";A.style.width=C;A.style.fontSize="12px";A.style.borderRadius="4px";A.style.padding="6px";B.appendChild(A);mxUtils.br(B);var G;k&&(G=document.createElement("input"),G.setAttribute("placeholder",mxResources.get("replaceWith")),G.setAttribute("type","text"),G.style.marginTop="4px",G.style.marginBottom="6px",G.style.width=C,G.style.fontSize="12px",G.style.borderRadius="4px",G.style.padding="6px",B.appendChild(G),mxUtils.br(B),mxEvent.addListener(G,"input",f));var D=document.createElement("input");
+A.style.marginBottom="6px";A.style.width=C;A.style.fontSize="12px";A.style.borderRadius="4px";A.style.padding="6px";B.appendChild(A);mxUtils.br(B);var F;k&&(F=document.createElement("input"),F.setAttribute("placeholder",mxResources.get("replaceWith")),F.setAttribute("type","text"),F.style.marginTop="4px",F.style.marginBottom="6px",F.style.width=C,F.style.fontSize="12px",F.style.borderRadius="4px",F.style.padding="6px",B.appendChild(F),mxUtils.br(B),mxEvent.addListener(F,"input",f));var D=document.createElement("input");
D.setAttribute("id","geFindWinRegExChck");D.setAttribute("type","checkbox");D.style.marginRight="4px";B.appendChild(D);C=document.createElement("label");C.setAttribute("for","geFindWinRegExChck");B.appendChild(C);mxUtils.write(C,mxResources.get("regularExpression"));B.appendChild(C);C=b.menus.createHelpLink("https://www.diagrams.net/doc/faq/find-shapes");C.style.position="relative";C.style.marginLeft="6px";C.style.top="-1px";B.appendChild(C);mxUtils.br(B);var E=document.createElement("input");E.setAttribute("id",
-"geFindWinAllPagesChck");E.setAttribute("type","checkbox");E.style.marginRight="4px";B.appendChild(E);C=document.createElement("label");C.setAttribute("for","geFindWinAllPagesChck");B.appendChild(C);mxUtils.write(C,mxResources.get("allPages"));B.appendChild(C);var F=document.createElement("div");mxUtils.br(B);C=document.createElement("div");C.style.left="0px";C.style.right="0px";C.style.marginTop="6px";C.style.padding="0 6px 0 6px";C.style.textAlign="center";B.appendChild(C);var I=mxUtils.button(mxResources.get("reset"),
-function(){H.innerHTML="";A.value="";A.style.backgroundColor="";k&&(G.value="",f());q=t=null;u=!1;A.focus()});I.setAttribute("title",mxResources.get("reset"));I.style["float"]="none";I.style.width="120px";I.style.marginTop="6px";I.style.marginLeft="8px";I.style.overflow="hidden";I.style.textOverflow="ellipsis";I.className="geBtn";k||C.appendChild(I);var J=mxUtils.button(mxResources.get("find"),function(){try{A.style.backgroundColor=l()?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}catch(X){b.handleError(X)}});
-J.setAttribute("title",mxResources.get("find")+" (Enter)");J.style["float"]="none";J.style.width="120px";J.style.marginTop="6px";J.style.marginLeft="8px";J.style.overflow="hidden";J.style.textOverflow="ellipsis";J.className="geBtn gePrimaryBtn";C.appendChild(J);var H=document.createElement("div");H.style.marginTop="10px";if(k){var K=function(b,c,f,d,e){if(null==e||"1"!=e.html)return d=b.toLowerCase().indexOf(c,d),0>d?b:b.substr(0,d)+f+b.substr(d+c.length);var l=b;c=mxUtils.htmlEntities(c);e=[];var m=
+"geFindWinAllPagesChck");E.setAttribute("type","checkbox");E.style.marginRight="4px";B.appendChild(E);C=document.createElement("label");C.setAttribute("for","geFindWinAllPagesChck");B.appendChild(C);mxUtils.write(C,mxResources.get("allPages"));B.appendChild(C);var G=document.createElement("div");mxUtils.br(B);C=document.createElement("div");C.style.left="0px";C.style.right="0px";C.style.marginTop="6px";C.style.padding="0 6px 0 6px";C.style.textAlign="center";B.appendChild(C);var J=mxUtils.button(mxResources.get("reset"),
+function(){H.innerHTML="";A.value="";A.style.backgroundColor="";k&&(F.value="",f());q=t=null;u=!1;A.focus()});J.setAttribute("title",mxResources.get("reset"));J.style["float"]="none";J.style.width="120px";J.style.marginTop="6px";J.style.marginLeft="8px";J.style.overflow="hidden";J.style.textOverflow="ellipsis";J.className="geBtn";k||C.appendChild(J);var K=mxUtils.button(mxResources.get("find"),function(){try{A.style.backgroundColor=l()?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}catch(X){b.handleError(X)}});
+K.setAttribute("title",mxResources.get("find")+" (Enter)");K.style["float"]="none";K.style.width="120px";K.style.marginTop="6px";K.style.marginLeft="8px";K.style.overflow="hidden";K.style.textOverflow="ellipsis";K.className="geBtn gePrimaryBtn";C.appendChild(K);var H=document.createElement("div");H.style.marginTop="10px";if(k){var I=function(b,c,f,d,e){if(null==e||"1"!=e.html)return d=b.toLowerCase().indexOf(c,d),0>d?b:b.substr(0,d)+f+b.substr(d+c.length);var l=b;c=mxUtils.htmlEntities(c);e=[];var m=
-1;for(b=b.replace(/<br>/ig,"\n");-1<(m=b.indexOf("<",m+1));)e.push(m);m=b.match(/<[^>]*>/g);b=b.replace(/<[^>]*>/g,"");d=b.toLowerCase().indexOf(c,d);if(0>d)return l;l=d+c.length;f=mxUtils.htmlEntities(f);b=b.substr(0,d)+f+b.substr(l);for(var p=0,g=0;g<e.length;g++){if(e[g]-p<d)b=b.substr(0,e[g])+m[g]+b.substr(e[g]);else{var k=e[g]-p<l?d+p:e[g]+(f.length-c.length);b=b.substr(0,k)+m[g]+b.substr(k)}p+=m[g].length}return b.replace(/\n/g,"<br>")},N=mxUtils.button(mxResources.get("replFind"),function(){try{if(null!=
-x&&null!=t&&G.value){var c=t.cell,f=p.getLabel(c);p.isCellEditable(c)&&p.model.setValue(c,K(f,x,G.value,z-x.length,p.getCurrentCellStyle(c)));A.style.backgroundColor=l(!1,!0)?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}}catch(M){b.handleError(M)}});N.setAttribute("title",mxResources.get("replFind"));N.style["float"]="none";N.style.width="120px";N.style.marginTop="6px";N.style.marginLeft="8px";N.style.overflow="hidden";N.style.textOverflow="ellipsis";N.className="geBtn gePrimaryBtn";N.setAttribute("disabled",
-"disabled");C.appendChild(N);mxUtils.br(C);var Q=mxUtils.button(mxResources.get("replace"),function(){try{if(null!=x&&null!=t&&G.value){var c=t.cell,f=p.getLabel(c);p.model.setValue(c,K(f,x,G.value,z-x.length,p.getCurrentCellStyle(c)));N.setAttribute("disabled","disabled");Q.setAttribute("disabled","disabled")}}catch(M){b.handleError(M)}});Q.setAttribute("title",mxResources.get("replace"));Q.style["float"]="none";Q.style.width="120px";Q.style.marginTop="6px";Q.style.marginLeft="8px";Q.style.overflow=
-"hidden";Q.style.textOverflow="ellipsis";Q.className="geBtn gePrimaryBtn";Q.setAttribute("disabled","disabled");C.appendChild(Q);var L=mxUtils.button(mxResources.get("replaceAll"),function(){H.innerHTML="";if(G.value){var c=b.currentPage,f=b.editor.graph.getSelectionCells();b.editor.graph.rendering=!1;p.getModel().beginUpdate();try{for(var d=0,e={};l(!1,!0,!0)&&100>d;){var m=t.cell,g=p.getLabel(m),k=e[m.id];if(k&&k.replAllMrk==y&&k.replAllPos>=z)break;e[m.id]={replAllMrk:y,replAllPos:z};p.isCellEditable(m)&&
-(p.model.setValue(m,K(g,x,G.value,z-x.length,p.getCurrentCellStyle(m))),d++)}c!=b.currentPage&&b.editor.graph.model.execute(new SelectPage(b,c));mxUtils.write(H,mxResources.get("matchesRepl",[d]))}catch(U){b.handleError(U)}finally{p.getModel().endUpdate(),b.editor.graph.setSelectionCells(f),b.editor.graph.rendering=!0}y++}});L.setAttribute("title",mxResources.get("replaceAll"));L.style["float"]="none";L.style.width="120px";L.style.marginTop="6px";L.style.marginLeft="8px";L.style.overflow="hidden";
-L.style.textOverflow="ellipsis";L.className="geBtn gePrimaryBtn";L.setAttribute("disabled","disabled");C.appendChild(L);mxUtils.br(C);C.appendChild(I);I=mxUtils.button(mxResources.get("close"),mxUtils.bind(this,function(){this.window.setVisible(!1)}));I.setAttribute("title",mxResources.get("close"));I.style["float"]="none";I.style.width="120px";I.style.marginTop="6px";I.style.marginLeft="8px";I.style.overflow="hidden";I.style.textOverflow="ellipsis";I.className="geBtn";C.appendChild(I);mxUtils.br(C);
-C.appendChild(H)}else I.style.width="90px",J.style.width="90px";mxEvent.addListener(A,"keyup",function(b){if(91==b.keyCode||93==b.keyCode||17==b.keyCode)mxEvent.consume(b);else if(27==b.keyCode)m.funct();else if(q!=A.value.toLowerCase()||13==b.keyCode)try{A.style.backgroundColor=l()?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}catch(S){A.style.backgroundColor=Editor.isDarkMode()?"#ff0000":"#ffcfcf"}});mxEvent.addListener(B,"keydown",function(c){70==c.keyCode&&b.keyHandler.isControlDown(c)&&!mxEvent.isShiftDown(c)&&
+x&&null!=t&&F.value){var c=t.cell,f=p.getLabel(c);p.isCellEditable(c)&&p.model.setValue(c,I(f,x,F.value,z-x.length,p.getCurrentCellStyle(c)));A.style.backgroundColor=l(!1,!0)?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}}catch(M){b.handleError(M)}});N.setAttribute("title",mxResources.get("replFind"));N.style["float"]="none";N.style.width="120px";N.style.marginTop="6px";N.style.marginLeft="8px";N.style.overflow="hidden";N.style.textOverflow="ellipsis";N.className="geBtn gePrimaryBtn";N.setAttribute("disabled",
+"disabled");C.appendChild(N);mxUtils.br(C);var R=mxUtils.button(mxResources.get("replace"),function(){try{if(null!=x&&null!=t&&F.value){var c=t.cell,f=p.getLabel(c);p.model.setValue(c,I(f,x,F.value,z-x.length,p.getCurrentCellStyle(c)));N.setAttribute("disabled","disabled");R.setAttribute("disabled","disabled")}}catch(M){b.handleError(M)}});R.setAttribute("title",mxResources.get("replace"));R.style["float"]="none";R.style.width="120px";R.style.marginTop="6px";R.style.marginLeft="8px";R.style.overflow=
+"hidden";R.style.textOverflow="ellipsis";R.className="geBtn gePrimaryBtn";R.setAttribute("disabled","disabled");C.appendChild(R);var L=mxUtils.button(mxResources.get("replaceAll"),function(){H.innerHTML="";if(F.value){var c=b.currentPage,f=b.editor.graph.getSelectionCells();b.editor.graph.rendering=!1;p.getModel().beginUpdate();try{for(var d=0,e={};l(!1,!0,!0)&&100>d;){var m=t.cell,g=p.getLabel(m),k=e[m.id];if(k&&k.replAllMrk==y&&k.replAllPos>=z)break;e[m.id]={replAllMrk:y,replAllPos:z};p.isCellEditable(m)&&
+(p.model.setValue(m,I(g,x,F.value,z-x.length,p.getCurrentCellStyle(m))),d++)}c!=b.currentPage&&b.editor.graph.model.execute(new SelectPage(b,c));mxUtils.write(H,mxResources.get("matchesRepl",[d]))}catch(U){b.handleError(U)}finally{p.getModel().endUpdate(),b.editor.graph.setSelectionCells(f),b.editor.graph.rendering=!0}y++}});L.setAttribute("title",mxResources.get("replaceAll"));L.style["float"]="none";L.style.width="120px";L.style.marginTop="6px";L.style.marginLeft="8px";L.style.overflow="hidden";
+L.style.textOverflow="ellipsis";L.className="geBtn gePrimaryBtn";L.setAttribute("disabled","disabled");C.appendChild(L);mxUtils.br(C);C.appendChild(J);J=mxUtils.button(mxResources.get("close"),mxUtils.bind(this,function(){this.window.setVisible(!1)}));J.setAttribute("title",mxResources.get("close"));J.style["float"]="none";J.style.width="120px";J.style.marginTop="6px";J.style.marginLeft="8px";J.style.overflow="hidden";J.style.textOverflow="ellipsis";J.className="geBtn";C.appendChild(J);mxUtils.br(C);
+C.appendChild(H)}else J.style.width="90px",K.style.width="90px";mxEvent.addListener(A,"keyup",function(b){if(91==b.keyCode||93==b.keyCode||17==b.keyCode)mxEvent.consume(b);else if(27==b.keyCode)m.funct();else if(q!=A.value.toLowerCase()||13==b.keyCode)try{A.style.backgroundColor=l()?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}catch(S){A.style.backgroundColor=Editor.isDarkMode()?"#ff0000":"#ffcfcf"}});mxEvent.addListener(B,"keydown",function(c){70==c.keyCode&&b.keyHandler.isControlDown(c)&&!mxEvent.isShiftDown(c)&&
(m.funct(),mxEvent.consume(c))});this.window=new mxWindow(mxResources.get("find")+(k?"/"+mxResources.get("replace"):""),B,e,d,c,g,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit();this.window.isVisible()?(A.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?A.select():document.execCommand("selectAll",!1,null),null!=b.pages&&1<b.pages.length?
E.removeAttribute("disabled"):(E.checked=!1,E.setAttribute("disabled","disabled"))):p.container.focus()}));this.window.setLocation=function(b,c){var f=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));c=Math.max(0,Math.min(c,f-this.table.clientHeight-("1"==urlParams.sketch?3:48)));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,
arguments)};var W=mxUtils.bind(this,function(){var b=this.window.getX(),c=this.window.getY();this.window.setLocation(b,c)});mxEvent.addListener(window,"resize",W);this.destroy=function(){mxEvent.removeListener(window,"resize",W);this.window.destroy()}},FreehandWindow=function(b,e,d,c,g,k){var n=b.editor.graph;b=document.createElement("div");b.style.textAlign="center";b.style.userSelect="none";b.style.overflow="hidden";b.style.height="100%";if(k){var f=document.createElement("input");f.setAttribute("id",
@@ -10819,7 +10819,7 @@ d.className="geDialogFooter";d.style.position="absolute";d.style.paddingRight="1
z&&(z.checked=!z.checked,mxEvent.consume(b))}),d.appendChild(k);k=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});k.className="geBtn";l=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();for(var c=[],f=0;f<v.length;f++){var d=v[f].apply(this,arguments);null!=d&&c.push(d)}"1"==urlParams.sketch&&b.isSettingsEnabled()&&(f=mxUtils.indexOf(c,".scratchpad"),null!=b.scratchpad!=(0<=f&&0<c.splice(f,1).length)&&b.toggleScratchpad(),f=mxUtils.indexOf(c,"search"),mxSettings.settings.search=
0<=f&&0<c.splice(f,1).length,b.sidebar.showPalette("search",mxSettings.settings.search),z.checked&&mxSettings.save());b.sidebar.showEntries(c.join(";"),z.checked,!0);b.setSidebarTitles(x.checked,z.checked)});l.className="geBtn gePrimaryBtn"}else{var y=document.createElement("table"),k=document.createElement("tbody");c.style.height="100%";c.style.overflow="auto";l=document.createElement("tr");y.style.width="100%";e=document.createElement("td");var g=document.createElement("td"),n=document.createElement("td"),
B=mxUtils.bind(this,function(c,f,d){var e=document.createElement("input");e.type="checkbox";y.appendChild(e);e.checked=b.sidebar.isEntryVisible(d);var l=document.createElement("span");mxUtils.write(l,f);f=document.createElement("div");f.style.display="block";f.appendChild(e);f.appendChild(l);mxEvent.addListener(l,"click",function(b){e.checked=!e.checked;mxEvent.consume(b)});c.appendChild(f);return function(){return e.checked?d:null}});l.appendChild(e);l.appendChild(g);l.appendChild(n);k.appendChild(l);
-y.appendChild(k);for(var v=[],C=0,k=0;k<d.length;k++)for(l=0;l<d[k].entries.length;l++)C++;for(var A=[e,g,n],G=0,k=0;k<d.length;k++)(function(b){for(var c=0;c<b.entries.length;c++){var f=b.entries[c];v.push(B(A[Math.floor(G/(C/3))],f.title,f.id));G++}})(d[k]);c.appendChild(y);d=document.createElement("div");d.style.marginTop="18px";d.style.textAlign="center";z=document.createElement("input");isLocalStorage&&(z.setAttribute("type","checkbox"),z.checked=!0,z.defaultChecked=!0,d.appendChild(z),k=document.createElement("span"),
+y.appendChild(k);for(var v=[],C=0,k=0;k<d.length;k++)for(l=0;l<d[k].entries.length;l++)C++;for(var A=[e,g,n],F=0,k=0;k<d.length;k++)(function(b){for(var c=0;c<b.entries.length;c++){var f=b.entries[c];v.push(B(A[Math.floor(F/(C/3))],f.title,f.id));F++}})(d[k]);c.appendChild(y);d=document.createElement("div");d.style.marginTop="18px";d.style.textAlign="center";z=document.createElement("input");isLocalStorage&&(z.setAttribute("type","checkbox"),z.checked=!0,z.defaultChecked=!0,d.appendChild(z),k=document.createElement("span"),
mxUtils.write(k," "+mxResources.get("rememberThisSetting")),d.appendChild(k),mxEvent.addListener(k,"click",function(b){z.checked=!z.checked;mxEvent.consume(b)}));c.appendChild(d);k=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});k.className="geBtn";l=mxUtils.button(mxResources.get("apply"),function(){for(var c=["search"],f=0;f<v.length;f++){var d=v[f].apply(this,arguments);null!=d&&c.push(d)}b.sidebar.showEntries(0<c.length?c.join(";"):"",z.checked);b.hideDialog()});l.className=
"geBtn gePrimaryBtn";d=document.createElement("div");d.style.marginTop="26px";d.style.textAlign="right"}b.editor.cancelFirst?(d.appendChild(k),d.appendChild(l)):(d.appendChild(l),d.appendChild(k));c.appendChild(d);this.container=c},PluginsDialog=function(b,e,d){function c(){f=!0;if(0==n.length)k.innerHTML=mxUtils.htmlEntities(mxResources.get("noPlugins"));else{k.innerHTML="";for(var e=0;e<n.length;e++){var l=document.createElement("span");l.style.whiteSpace="nowrap";var m=document.createElement("span");
m.className="geSprite geSprite-delete";m.style.position="relative";m.style.cursor="pointer";m.style.top="5px";m.style.marginRight="4px";m.style.display="inline-block";l.appendChild(m);mxUtils.write(l,n[e]);k.appendChild(l);mxUtils.br(k);mxEvent.addListener(m,"click",function(f){return function(){b.confirm(mxResources.get("delete")+' "'+n[f]+'"?',function(){null!=d&&d(n[f]);n.splice(f,1);c()})}}(e))}}}var g=document.createElement("div"),k=document.createElement("div");k.style.height="180px";k.style.overflow=
@@ -10827,16 +10827,16 @@ m.className="geSprite geSprite-delete";m.style.position="relative";m.style.curso
mxUtils.write(l,App.publicPlugin[d]);l.value=App.publicPlugin[d];e.appendChild(l)}f.appendChild(e);mxUtils.br(f);mxUtils.br(f);d=mxUtils.button(mxResources.get("custom")+"...",function(){var f=new FilenameDialog(b,"",mxResources.get("add"),function(f){b.hideDialog();if(null!=f&&0<f.length){f=f.split(";");for(var d=0;d<f.length;d++){var e=f[d],l=App.pluginRegistry[e];null!=l&&(e=l);0<e.length&&0>mxUtils.indexOf(n,e)&&n.push(e)}c()}},mxResources.get("enterValue")+" ("+mxResources.get("url")+")");b.showDialog(f.container,
300,80,!0,!0);f.init()});d.className="geBtn";f=new CustomDialog(b,f,mxUtils.bind(this,function(){var b=App.pluginRegistry[e.value];0>mxUtils.indexOf(n,b)&&(n.push(b),c())}),null,null,null,d);b.showDialog(f.container,300,100,!0,!0)});l.className="geBtn";var m=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});m.className="geBtn";var p=mxUtils.button(mxResources.get("apply"),function(){f?(mxSettings.setPlugins(n),mxSettings.save(),b.hideDialog(),b.alert(mxResources.get("restartForChangeRequired"))):
b.hideDialog()});p.className="geBtn gePrimaryBtn";var q=document.createElement("div");q.style.marginTop="14px";q.style.textAlign="right";var t=mxUtils.button(mxResources.get("help"),function(){b.openLink("https://www.diagrams.net/doc/faq/plugins")});t.className="geBtn";b.isOffline()&&!mxClient.IS_CHROMEAPP&&(t.style.display="none");q.appendChild(t);b.editor.cancelFirst?(q.appendChild(m),q.appendChild(l),q.appendChild(p)):(q.appendChild(l),q.appendChild(p),q.appendChild(m));g.appendChild(q);this.container=
-g},CropImageDialog=function(b,e,d,c){function g(){var b=z.checked,c=y.checked,f=v.geometry,d=l.width,e=l.height,m=(300-d)/2,g=(300-e)/2,p;f.x<m?(f.width-=m-f.x,f.x=m):f.x+f.width>m+d&&(f.width=m+d-f.x,f.x=Math.min(f.x,m+d));f.y<g?(f.height-=g-f.y,f.y=g):f.y+f.height>g+e&&(f.height=g+e-f.y,f.y=Math.min(f.y,g+e));p=(f.x-m)/d*100;d=100-(f.x+f.width-m)/d*100;m=(f.y-g)/e*100;f=100-(f.y+f.height-g)/e*100;return"inset("+mxUtils.format(m)+"% "+mxUtils.format(d)+"% "+mxUtils.format(f)+"% "+mxUtils.format(p)+
+g},CropImageDialog=function(b,e,d,c){function g(){var b=z.checked,c=y.checked,f=v.geometry,d=l.width,e=l.height,m=(300-d)/2,p=(300-e)/2,g;f.x<m?(f.width-=m-f.x,f.x=m):f.x+f.width>m+d&&(f.width=m+d-f.x,f.x=Math.min(f.x,m+d));f.y<p?(f.height-=p-f.y,f.y=p):f.y+f.height>p+e&&(f.height=p+e-f.y,f.y=Math.min(f.y,p+e));g=(f.x-m)/d*100;d=100-(f.x+f.width-m)/d*100;m=(f.y-p)/e*100;f=100-(f.y+f.height-p)/e*100;return"inset("+mxUtils.format(m)+"% "+mxUtils.format(d)+"% "+mxUtils.format(f)+"% "+mxUtils.format(g)+
"%"+(b?" round "+t+"%":c?" round 50%":"")+")"}function k(b){null!=p&&(!0!==b&&(p.model.setGeometry(v,q.clone()),t=5,C.value=t),p.model.setStyle(v,u+g()),p.selectAll(),B.style.visibility=z.checked?"visible":"hidden")}var n=document.createElement("div"),f=document.createElement("div");f.style.height="300px";f.style.width="300px";f.style.display="inline-flex";f.style.justifyContent="center";f.style.alignItems="center";f.style.position="absolute";var l=document.createElement("img");l.onload=function(){function b(){p.model.setStyle(v,
-u+g())}p=new Graph(m);p.autoExtend=!1;p.autoScroll=!1;p.setGridEnabled(!1);p.setEnabled(!0);p.setPanning(!1);p.setConnectable(!1);p.getRubberband().setEnabled(!1);p.graphHandler.allowLivePreview=!1;var c=p.createVertexHandler;p.createVertexHandler=function(){var b=c.apply(this,arguments);b.livePreview=!1;return b};if(null!=d)try{if("inset"==d.substring(0,5)){var f=v.geometry,e=l.width,k=l.height,q=(300-e)/2,n=(300-k)/2,A=d.match(/\(([^)]+)\)/)[1].split(/[ ,]+/),G=parseFloat(A[0]),L=parseFloat(A[1]),
-W=parseFloat(A[2]),X=parseFloat(A[3]);isFinite(G)&&isFinite(L)&&isFinite(W)&&isFinite(X)?(f.x=X/100*e+q,f.y=G/100*k+n,f.width=(100-L)/100*e+q-f.x,f.height=(100-W)/100*k+n-f.y,"round"==A[4]?"50%"==A[5]?y.setAttribute("checked","checked"):(t=parseInt(A[5]),C.value=t,z.setAttribute("checked","checked"),B.style.visibility="visible"):x.setAttribute("checked","checked")):d=null}else d=null}catch(aa){}v.style=u+(d?d:g());v.vertex=!0;p.addCell(v,null,null,null,null);p.selectAll();p.addListener(mxEvent.CELLS_MOVED,
-b);p.addListener(mxEvent.CELLS_RESIZED,b);var S=p.graphHandler.mouseUp,M=p.graphHandler.mouseDown;p.graphHandler.mouseUp=function(){S.apply(this,arguments);m.style.backgroundColor="#fff9"};p.graphHandler.mouseDown=function(){M.apply(this,arguments);m.style.backgroundColor=""};p.dblClick=function(){};var P=p.getSelectionModel().changeSelection;p.getSelectionModel().changeSelection=function(){P.call(this,[v],[v])}};l.onerror=function(){l.onload=null;l.src=Editor.errorImage};l.setAttribute("src",e);
+u+g())}p=new Graph(m);p.autoExtend=!1;p.autoScroll=!1;p.setGridEnabled(!1);p.setEnabled(!0);p.setPanning(!1);p.setConnectable(!1);p.getRubberband().setEnabled(!1);p.graphHandler.allowLivePreview=!1;var c=p.createVertexHandler;p.createVertexHandler=function(){var b=c.apply(this,arguments);b.livePreview=!1;return b};if(null!=d)try{if("inset"==d.substring(0,5)){var f=v.geometry,e=l.width,k=l.height,q=(300-e)/2,n=(300-k)/2,A=d.match(/\(([^)]+)\)/)[1].split(/[ ,]+/),F=parseFloat(A[0]),L=parseFloat(A[1]),
+W=parseFloat(A[2]),X=parseFloat(A[3]);isFinite(F)&&isFinite(L)&&isFinite(W)&&isFinite(X)?(f.x=X/100*e+q,f.y=F/100*k+n,f.width=(100-L)/100*e+q-f.x,f.height=(100-W)/100*k+n-f.y,"round"==A[4]?"50%"==A[5]?y.setAttribute("checked","checked"):(t=parseInt(A[5]),C.value=t,z.setAttribute("checked","checked"),B.style.visibility="visible"):x.setAttribute("checked","checked")):d=null}else d=null}catch(aa){}v.style=u+(d?d:g());v.vertex=!0;p.addCell(v,null,null,null,null);p.selectAll();p.addListener(mxEvent.CELLS_MOVED,
+b);p.addListener(mxEvent.CELLS_RESIZED,b);var S=p.graphHandler.mouseUp,M=p.graphHandler.mouseDown;p.graphHandler.mouseUp=function(){S.apply(this,arguments);m.style.backgroundColor="#fff9"};p.graphHandler.mouseDown=function(){M.apply(this,arguments);m.style.backgroundColor=""};p.dblClick=function(){};var O=p.getSelectionModel().changeSelection;p.getSelectionModel().changeSelection=function(){O.call(this,[v],[v])}};l.onerror=function(){l.onload=null;l.src=Editor.errorImage};l.setAttribute("src",e);
l.style.maxWidth="300px";l.style.maxHeight="300px";f.appendChild(l);n.appendChild(f);var m=document.createElement("div");m.style.width="300px";m.style.height="300px";m.style.overflow="hidden";m.style.backgroundColor="#fff9";n.appendChild(m);var p=null,q=new mxGeometry(100,100,100,100),t=5,v=new mxCell("",q.clone(),""),u="shape=image;fillColor=none;rotatable=0;cloneable=0;deletable=0;image="+e.replace(";base64","")+";clipPath=",x=document.createElement("input");x.setAttribute("type","radio");x.setAttribute("id",
"croppingRect");x.setAttribute("name","croppingShape");x.setAttribute("checked","checked");x.style.margin="5px";n.appendChild(x);e=document.createElement("label");e.setAttribute("for","croppingRect");mxUtils.write(e,mxResources.get("rectangle"));n.appendChild(e);var z=document.createElement("input");z.setAttribute("type","radio");z.setAttribute("id","croppingRounded");z.setAttribute("name","croppingShape");z.style.margin="5px";n.appendChild(z);e=document.createElement("label");e.setAttribute("for",
"croppingRounded");mxUtils.write(e,mxResources.get("rounded"));n.appendChild(e);var y=document.createElement("input");y.setAttribute("type","radio");y.setAttribute("id","croppingEllipse");y.setAttribute("name","croppingShape");y.style.margin="5px";n.appendChild(y);e=document.createElement("label");e.setAttribute("for","croppingEllipse");mxUtils.write(e,mxResources.get("ellipse"));n.appendChild(e);mxEvent.addListener(x,"change",k);mxEvent.addListener(z,"change",k);mxEvent.addListener(y,"change",k);
var B=document.createElement("div");B.style.textAlign="center";B.style.visibility="hidden";var C=document.createElement("input");C.setAttribute("type","range");C.setAttribute("min","1");C.setAttribute("max","49");C.setAttribute("value",t);C.setAttribute("title",mxResources.get("arcSize"));B.appendChild(C);n.appendChild(B);mxEvent.addListener(C,"change",function(){t=this.value;k(!0)});e=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});e.className="geBtn";f=mxUtils.button(mxResources.get("apply"),
-function(){c(g(),v.geometry.width,v.geometry.height);b.hideDialog()});f.className="geBtn gePrimaryBtn";var A=mxUtils.button(mxResources.get("reset"),function(){c(null,l.width,l.height);b.hideDialog()});A.className="geBtn";var G=document.createElement("div");G.style.marginTop="10px";G.style.textAlign="right";b.editor.cancelFirst?(G.appendChild(e),G.appendChild(A),G.appendChild(f)):(G.appendChild(A),G.appendChild(f),G.appendChild(e));n.appendChild(G);this.container=n},EditGeometryDialog=function(b,
+function(){c(g(),v.geometry.width,v.geometry.height);b.hideDialog()});f.className="geBtn gePrimaryBtn";var A=mxUtils.button(mxResources.get("reset"),function(){c(null,l.width,l.height);b.hideDialog()});A.className="geBtn";var F=document.createElement("div");F.style.marginTop="10px";F.style.textAlign="right";b.editor.cancelFirst?(F.appendChild(e),F.appendChild(A),F.appendChild(f)):(F.appendChild(A),F.appendChild(f),F.appendChild(e));n.appendChild(F);this.container=n},EditGeometryDialog=function(b,
e){var d=b.editor.graph,c=1==e.length?d.getCellGeometry(e[0]):null,g=document.createElement("div"),k=document.createElement("table"),n=document.createElement("tbody"),f=document.createElement("tr"),l=document.createElement("td"),m=document.createElement("td");k.style.paddingLeft="6px";mxUtils.write(l,mxResources.get("relative")+":");var p=document.createElement("input");p.setAttribute("type","checkbox");null!=c&&c.relative&&(p.setAttribute("checked","checked"),p.defaultChecked=!0);this.init=function(){p.focus()};
m.appendChild(p);f.appendChild(l);f.appendChild(m);n.appendChild(f);f=document.createElement("tr");l=document.createElement("td");m=document.createElement("td");mxUtils.write(l,mxResources.get("left")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.width="100px";q.value=null!=c?c.x:"";m.appendChild(q);f.appendChild(l);f.appendChild(m);n.appendChild(f);f=document.createElement("tr");l=document.createElement("td");m=document.createElement("td");mxUtils.write(l,mxResources.get("top")+
":");var t=document.createElement("input");t.setAttribute("type","text");t.style.width="100px";t.value=null!=c?c.y:"";m.appendChild(t);f.appendChild(l);f.appendChild(m);n.appendChild(f);f=document.createElement("tr");l=document.createElement("td");m=document.createElement("td");mxUtils.write(l,mxResources.get("dx")+":");var v=document.createElement("input");v.setAttribute("type","text");v.style.width="100px";v.value=null!=c&&null!=c.offset?c.offset.x:"";m.appendChild(v);f.appendChild(l);f.appendChild(m);
@@ -10846,73 +10846,73 @@ f=document.createElement("tr");l=document.createElement("td");m=document.createE
"geBtn";var B=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();d.getModel().beginUpdate();try{for(var c=0;c<e.length;c++){var f=d.getCellGeometry(e[c]);null!=f&&(f=f.clone(),d.isCellMovable(e[c])&&(f.relative=p.checked,0<mxUtils.trim(q.value).length&&(f.x=Number(q.value)),0<mxUtils.trim(t.value).length&&(f.y=Number(t.value)),0<mxUtils.trim(v.value).length&&(null==f.offset&&(f.offset=new mxPoint),f.offset.x=Number(v.value)),0<mxUtils.trim(u.value).length&&(null==f.offset&&(f.offset=
new mxPoint),f.offset.y=Number(u.value))),d.isCellResizable(e[c])&&(0<mxUtils.trim(x.value).length&&(f.width=Number(x.value)),0<mxUtils.trim(z.value).length&&(f.height=Number(z.value))),d.getModel().setGeometry(e[c],f));0<mxUtils.trim(y.value).length&&d.setCellStyles(mxConstants.STYLE_ROTATION,Number(y.value),[e[c]])}}finally{d.getModel().endUpdate()}});B.className="geBtn gePrimaryBtn";mxEvent.addListener(g,"keypress",function(b){13==b.keyCode&&B.click()});k=document.createElement("div");k.style.marginTop=
"20px";k.style.textAlign="right";b.editor.cancelFirst?(k.appendChild(c),k.appendChild(B)):(k.appendChild(B),k.appendChild(c));g.appendChild(k);this.container=g},LibraryDialog=function(b,e,d,c,g,k){function n(b){for(b=document.elementFromPoint(b.clientX,b.clientY);null!=b&&b.parentNode!=v;)b=b.parentNode;var c=null;if(null!=b)for(var f=v.firstChild,c=0;null!=f&&f!=b;)f=f.nextSibling,c++;return c}function f(c,d,e,l,m,g,k,q,t){try{if(b.spinner.stop(),null==d||"image/"==d.substring(0,6))if(null==c&&null!=
-k||null==x[c]){var D=function(){F.innerHTML="";F.style.cursor="pointer";F.style.whiteSpace="nowrap";F.style.textOverflow="ellipsis";mxUtils.write(F,null!=K.title&&0<K.title.length?K.title:mxResources.get("untitled"));F.style.color=null==K.title||0==K.title.length?"#d0d0d0":""};v.style.backgroundImage="";u.style.display="none";var H=m,E=g;if(m>b.maxImageSize||g>b.maxImageSize){var M=Math.min(1,Math.min(b.maxImageSize/Math.max(1,m)),b.maxImageSize/Math.max(1,g));m*=M;g*=M}H>E?(E=Math.round(100*E/H),
-H=100):(H=Math.round(100*H/E),E=100);var P=document.createElement("div");P.setAttribute("draggable","true");P.style.display="inline-block";P.style.position="relative";P.style.padding="0 12px";P.style.cursor="move";mxUtils.setPrefixedStyle(P.style,"transition","transform .1s ease-in-out");if(null!=c){var G=document.createElement("img");G.setAttribute("src",C.convert(c));G.style.width=H+"px";G.style.height=E+"px";G.style.margin="10px";G.style.paddingBottom=Math.floor((100-E)/2)+"px";G.style.paddingLeft=
-Math.floor((100-H)/2)+"px";P.appendChild(G)}else if(null!=k){var L=b.stringToCells(Graph.decompress(k.xml));0<L.length&&(b.sidebar.createThumb(L,100,100,P,null,!0,!1),P.firstChild.style.display="inline-block",P.firstChild.style.cursor="")}var y=document.createElement("img");y.setAttribute("src",Editor.closeBlackImage);y.setAttribute("border","0");y.setAttribute("title",mxResources.get("delete"));y.setAttribute("align","top");y.style.paddingTop="4px";y.style.position="absolute";y.style.marginLeft=
-"-12px";y.style.zIndex="1";y.style.cursor="pointer";mxEvent.addListener(y,"dragstart",function(b){mxEvent.consume(b)});(function(b,c,f){mxEvent.addListener(y,"click",function(d){x[c]=null;for(var e=0;e<p.length;e++)if(null!=p[e].data&&p[e].data==c||null!=p[e].xml&&null!=f&&p[e].xml==f.xml){p.splice(e,1);break}P.parentNode.removeChild(b);0==p.length&&(v.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",u.style.display="");mxEvent.consume(d)});mxEvent.addListener(y,"dblclick",function(b){mxEvent.consume(b)})})(P,
-c,k);P.appendChild(y);P.style.marginBottom="30px";var F=document.createElement("div");F.style.position="absolute";F.style.boxSizing="border-box";F.style.bottom="-18px";F.style.left="10px";F.style.right="10px";F.style.backgroundColor=Editor.isDarkMode()?Editor.darkColor:"#ffffff";F.style.overflow="hidden";F.style.textAlign="center";var K=null;null!=c?(K={data:c,w:m,h:g,title:t},null!=q&&(K.aspect=q),x[c]=G,p.push(K)):null!=k&&(k.aspect="fixed",p.push(k),K=k);mxEvent.addListener(F,"keydown",function(b){13==
-b.keyCode&&null!=B&&(B(),B=null,mxEvent.consume(b))});D();P.appendChild(F);mxEvent.addListener(F,"mousedown",function(b){"true"!=F.getAttribute("contentEditable")&&mxEvent.consume(b)});L=function(c){if(mxClient.IS_IOS||mxClient.IS_FF||!(null==document.documentMode||9<document.documentMode)){var f=new FilenameDialog(b,K.title||"",mxResources.get("ok"),function(b){null!=b&&(K.title=b,D())},mxResources.get("enterValue"));b.showDialog(f.container,300,80,!0,!0);f.init();mxEvent.consume(c)}else if("true"!=
-F.getAttribute("contentEditable")){null!=B&&(B(),B=null);if(null==K.title||0==K.title.length)F.innerHTML="";F.style.textOverflow="";F.style.whiteSpace="";F.style.cursor="text";F.style.color="";F.setAttribute("contentEditable","true");mxUtils.setPrefixedStyle(F.style,"user-select","text");F.focus();document.execCommand("selectAll",!1,null);B=function(){F.removeAttribute("contentEditable");F.style.cursor="pointer";K.title=F.innerHTML;D()};mxEvent.consume(c)}};mxEvent.addListener(F,"click",L);mxEvent.addListener(P,
-"dblclick",L);v.appendChild(P);mxEvent.addListener(P,"dragstart",function(b){null==c&&null!=k&&(y.style.visibility="hidden",F.style.visibility="hidden");mxClient.IS_FF&&null!=k.xml&&b.dataTransfer.setData("Text",k.xml);z=n(b);mxClient.IS_GC&&(P.style.opacity="0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(P.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(P,30);y.style.visibility="";F.style.visibility=""},0)});mxEvent.addListener(P,"dragend",function(b){"hidden"==y.style.visibility&&
-(y.style.visibility="",F.style.visibility="");z=null;mxUtils.setOpacity(P,100);mxUtils.setPrefixedStyle(P.style,"transform",null)})}else A||(A=!0,b.handleError({message:mxResources.get("fileExists")}));else{m=!1;try{if(H=mxUtils.parseXml(c),"mxlibrary"==H.documentElement.nodeName){E=JSON.parse(mxUtils.getTextContent(H.documentElement));if(null!=E&&0<E.length)for(var J=0;J<E.length;J++)null!=E[J].xml?f(null,null,0,0,0,0,E[J]):f(E[J].data,null,0,0,E[J].w,E[J].h,null,"fixed",E[J].title);m=!0}else if("mxfile"==
-H.documentElement.nodeName){for(var I=H.documentElement.getElementsByTagName("diagram"),J=0;J<I.length;J++){var E=mxUtils.getTextContent(I[J]),L=b.stringToCells(Graph.decompress(E)),N=b.editor.graph.getBoundingBoxFromGeometry(L);f(null,null,0,0,0,0,{xml:E,w:N.width,h:N.height})}m=!0}}catch(V){}m||(b.spinner.stop(),b.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(V){}return null}function l(b){b.dataTransfer.dropEffect=null!=z?"move":"copy";b.stopPropagation();b.preventDefault()}
-function m(c){c.stopPropagation();c.preventDefault();A=!1;y=n(c);if(null!=z)null!=y&&y<v.children.length?(p.splice(y>z?y-1:y,0,p.splice(z,1)[0]),v.insertBefore(v.children[z],v.children[y])):(p.push(p.splice(z,1)[0]),v.appendChild(v.children[z]));else if(0<c.dataTransfer.files.length)b.importFiles(c.dataTransfer.files,0,0,b.maxImageSize,G(c));else if(0<=mxUtils.indexOf(c.dataTransfer.types,"text/uri-list")){var d=decodeURIComponent(c.dataTransfer.getData("text/uri-list"));(/(\.jpg)($|\?)/i.test(d)||
+k||null==x[c]){var D=function(){G.innerHTML="";G.style.cursor="pointer";G.style.whiteSpace="nowrap";G.style.textOverflow="ellipsis";mxUtils.write(G,null!=I.title&&0<I.title.length?I.title:mxResources.get("untitled"));G.style.color=null==I.title||0==I.title.length?"#d0d0d0":""};v.style.backgroundImage="";u.style.display="none";var E=m,H=g;if(m>b.maxImageSize||g>b.maxImageSize){var M=Math.min(1,Math.min(b.maxImageSize/Math.max(1,m)),b.maxImageSize/Math.max(1,g));m*=M;g*=M}E>H?(H=Math.round(100*H/E),
+E=100):(E=Math.round(100*E/H),H=100);var O=document.createElement("div");O.setAttribute("draggable","true");O.style.display="inline-block";O.style.position="relative";O.style.padding="0 12px";O.style.cursor="move";mxUtils.setPrefixedStyle(O.style,"transition","transform .1s ease-in-out");if(null!=c){var F=document.createElement("img");F.setAttribute("src",C.convert(c));F.style.width=E+"px";F.style.height=H+"px";F.style.margin="10px";F.style.paddingBottom=Math.floor((100-H)/2)+"px";F.style.paddingLeft=
+Math.floor((100-E)/2)+"px";O.appendChild(F)}else if(null!=k){var L=b.stringToCells(Graph.decompress(k.xml));0<L.length&&(b.sidebar.createThumb(L,100,100,O,null,!0,!1),O.firstChild.style.display="inline-block",O.firstChild.style.cursor="")}var y=document.createElement("img");y.setAttribute("src",Editor.closeBlackImage);y.setAttribute("border","0");y.setAttribute("title",mxResources.get("delete"));y.setAttribute("align","top");y.style.paddingTop="4px";y.style.position="absolute";y.style.marginLeft=
+"-12px";y.style.zIndex="1";y.style.cursor="pointer";mxEvent.addListener(y,"dragstart",function(b){mxEvent.consume(b)});(function(b,c,f){mxEvent.addListener(y,"click",function(d){x[c]=null;for(var e=0;e<p.length;e++)if(null!=p[e].data&&p[e].data==c||null!=p[e].xml&&null!=f&&p[e].xml==f.xml){p.splice(e,1);break}O.parentNode.removeChild(b);0==p.length&&(v.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",u.style.display="");mxEvent.consume(d)});mxEvent.addListener(y,"dblclick",function(b){mxEvent.consume(b)})})(O,
+c,k);O.appendChild(y);O.style.marginBottom="30px";var G=document.createElement("div");G.style.position="absolute";G.style.boxSizing="border-box";G.style.bottom="-18px";G.style.left="10px";G.style.right="10px";G.style.backgroundColor=Editor.isDarkMode()?Editor.darkColor:"#ffffff";G.style.overflow="hidden";G.style.textAlign="center";var I=null;null!=c?(I={data:c,w:m,h:g,title:t},null!=q&&(I.aspect=q),x[c]=F,p.push(I)):null!=k&&(k.aspect="fixed",p.push(k),I=k);mxEvent.addListener(G,"keydown",function(b){13==
+b.keyCode&&null!=B&&(B(),B=null,mxEvent.consume(b))});D();O.appendChild(G);mxEvent.addListener(G,"mousedown",function(b){"true"!=G.getAttribute("contentEditable")&&mxEvent.consume(b)});L=function(c){if(mxClient.IS_IOS||mxClient.IS_FF||!(null==document.documentMode||9<document.documentMode)){var f=new FilenameDialog(b,I.title||"",mxResources.get("ok"),function(b){null!=b&&(I.title=b,D())},mxResources.get("enterValue"));b.showDialog(f.container,300,80,!0,!0);f.init();mxEvent.consume(c)}else if("true"!=
+G.getAttribute("contentEditable")){null!=B&&(B(),B=null);if(null==I.title||0==I.title.length)G.innerHTML="";G.style.textOverflow="";G.style.whiteSpace="";G.style.cursor="text";G.style.color="";G.setAttribute("contentEditable","true");mxUtils.setPrefixedStyle(G.style,"user-select","text");G.focus();document.execCommand("selectAll",!1,null);B=function(){G.removeAttribute("contentEditable");G.style.cursor="pointer";I.title=G.innerHTML;D()};mxEvent.consume(c)}};mxEvent.addListener(G,"click",L);mxEvent.addListener(O,
+"dblclick",L);v.appendChild(O);mxEvent.addListener(O,"dragstart",function(b){null==c&&null!=k&&(y.style.visibility="hidden",G.style.visibility="hidden");mxClient.IS_FF&&null!=k.xml&&b.dataTransfer.setData("Text",k.xml);z=n(b);mxClient.IS_GC&&(O.style.opacity="0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(O.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(O,30);y.style.visibility="";G.style.visibility=""},0)});mxEvent.addListener(O,"dragend",function(b){"hidden"==y.style.visibility&&
+(y.style.visibility="",G.style.visibility="");z=null;mxUtils.setOpacity(O,100);mxUtils.setPrefixedStyle(O.style,"transform",null)})}else A||(A=!0,b.handleError({message:mxResources.get("fileExists")}));else{m=!1;try{if(E=mxUtils.parseXml(c),"mxlibrary"==E.documentElement.nodeName){H=JSON.parse(mxUtils.getTextContent(E.documentElement));if(null!=H&&0<H.length)for(var K=0;K<H.length;K++)null!=H[K].xml?f(null,null,0,0,0,0,H[K]):f(H[K].data,null,0,0,H[K].w,H[K].h,null,"fixed",H[K].title);m=!0}else if("mxfile"==
+E.documentElement.nodeName){for(var J=E.documentElement.getElementsByTagName("diagram"),K=0;K<J.length;K++){var H=mxUtils.getTextContent(J[K]),L=b.stringToCells(Graph.decompress(H)),N=b.editor.graph.getBoundingBoxFromGeometry(L);f(null,null,0,0,0,0,{xml:H,w:N.width,h:N.height})}m=!0}}catch(V){}m||(b.spinner.stop(),b.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(V){}return null}function l(b){b.dataTransfer.dropEffect=null!=z?"move":"copy";b.stopPropagation();b.preventDefault()}
+function m(c){c.stopPropagation();c.preventDefault();A=!1;y=n(c);if(null!=z)null!=y&&y<v.children.length?(p.splice(y>z?y-1:y,0,p.splice(z,1)[0]),v.insertBefore(v.children[z],v.children[y])):(p.push(p.splice(z,1)[0]),v.appendChild(v.children[z]));else if(0<c.dataTransfer.files.length)b.importFiles(c.dataTransfer.files,0,0,b.maxImageSize,F(c));else if(0<=mxUtils.indexOf(c.dataTransfer.types,"text/uri-list")){var d=decodeURIComponent(c.dataTransfer.getData("text/uri-list"));(/(\.jpg)($|\?)/i.test(d)||
/(\.png)($|\?)/i.test(d)||/(\.gif)($|\?)/i.test(d)||/(\.svg)($|\?)/i.test(d))&&b.loadImage(d,function(b){f(d,null,0,0,b.width,b.height);v.scrollTop=v.scrollHeight})}c.stopPropagation();c.preventDefault()}var p=[];d=document.createElement("div");d.style.height="100%";var q=document.createElement("div");q.style.whiteSpace="nowrap";q.style.height="40px";d.appendChild(q);mxUtils.write(q,mxResources.get("filename")+":");null==e&&(e=b.defaultLibraryName+".xml");var t=document.createElement("input");t.setAttribute("value",
e);t.style.marginRight="20px";t.style.marginLeft="10px";t.style.width="500px";null==g||g.isRenamable()||t.setAttribute("disabled","true");this.init=function(){if(null==g||g.isRenamable())t.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null)};q.appendChild(t);var v=document.createElement("div");v.style.borderWidth="1px 0px 1px 0px";v.style.borderColor="#d3d3d3";v.style.borderStyle="solid";v.style.marginTop="6px";v.style.overflow="auto";
v.style.height="340px";v.style.backgroundPosition="center center";v.style.backgroundRepeat="no-repeat";0==p.length&&Graph.fileSupport&&(v.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')");var u=document.createElement("div");u.style.position="absolute";u.style.width="640px";u.style.top="260px";u.style.textAlign="center";u.style.fontSize="22px";u.style.color="#a0c3ff";mxUtils.write(u,mxResources.get("dragImagesHere"));d.appendChild(u);var x={},z=null,y=null,B=null;e=function(b){"true"!=
mxEvent.getSource(b).getAttribute("contentEditable")&&null!=B&&(B(),B=null,mxEvent.consume(b))};mxEvent.addListener(v,"mousedown",e);mxEvent.addListener(v,"pointerdown",e);mxEvent.addListener(v,"touchstart",e);var C=new mxUrlConverter,A=!1;if(null!=c)for(e=0;e<c.length;e++)q=c[e],f(q.data,null,0,0,q.w,q.h,q,q.aspect,q.title);mxEvent.addListener(v,"dragleave",function(b){u.style.cursor="";for(var c=mxEvent.getSource(b);null!=c;){if(c==v||c==u){b.stopPropagation();b.preventDefault();break}c=c.parentNode}});
-var G=function(c){return function(d,e,l,m,g,p,k,q,t){null!=t&&(/(\.v(dx|sdx?))($|\?)/i.test(t.name)||/(\.vs(x|sx?))($|\?)/i.test(t.name))?b.importVisio(t,mxUtils.bind(this,function(b){f(b,e,l,m,g,p,k,"fixed",mxEvent.isAltDown(c)?null:k.substring(0,k.lastIndexOf(".")).replace(/_/g," "))})):null!=t&&(new XMLHttpRequest).upload&&b.isRemoteFileFormat(d,t.name)?b.isExternalDataComms()?b.parseFile(t,mxUtils.bind(this,function(d){4==d.readyState&&(b.spinner.stop(),200<=d.status&&299>=d.status&&(f(d.responseText,
-e,l,m,g,p,k,"fixed",mxEvent.isAltDown(c)?null:k.substring(0,k.lastIndexOf(".")).replace(/_/g," ")),v.scrollTop=v.scrollHeight))})):(b.spinner.stop(),b.showError(mxResources.get("error"),mxResources.get("notInOffline"))):(f(d,e,l,m,g,p,k,"fixed",mxEvent.isAltDown(c)?null:k.substring(0,k.lastIndexOf(".")).replace(/_/g," ")),v.scrollTop=v.scrollHeight)}};mxEvent.addListener(v,"dragover",l);mxEvent.addListener(v,"drop",m);mxEvent.addListener(u,"dragover",l);mxEvent.addListener(u,"drop",m);d.appendChild(v);
+var F=function(c){return function(d,e,l,m,p,g,k,q,t){null!=t&&(/(\.v(dx|sdx?))($|\?)/i.test(t.name)||/(\.vs(x|sx?))($|\?)/i.test(t.name))?b.importVisio(t,mxUtils.bind(this,function(b){f(b,e,l,m,p,g,k,"fixed",mxEvent.isAltDown(c)?null:k.substring(0,k.lastIndexOf(".")).replace(/_/g," "))})):null!=t&&(new XMLHttpRequest).upload&&b.isRemoteFileFormat(d,t.name)?b.isExternalDataComms()?b.parseFile(t,mxUtils.bind(this,function(d){4==d.readyState&&(b.spinner.stop(),200<=d.status&&299>=d.status&&(f(d.responseText,
+e,l,m,p,g,k,"fixed",mxEvent.isAltDown(c)?null:k.substring(0,k.lastIndexOf(".")).replace(/_/g," ")),v.scrollTop=v.scrollHeight))})):(b.spinner.stop(),b.showError(mxResources.get("error"),mxResources.get("notInOffline"))):(f(d,e,l,m,p,g,k,"fixed",mxEvent.isAltDown(c)?null:k.substring(0,k.lastIndexOf(".")).replace(/_/g," ")),v.scrollTop=v.scrollHeight)}};mxEvent.addListener(v,"dragover",l);mxEvent.addListener(v,"drop",m);mxEvent.addListener(u,"dragover",l);mxEvent.addListener(u,"drop",m);d.appendChild(v);
c=document.createElement("div");c.style.textAlign="right";c.style.marginTop="20px";e=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog(!0)});e.setAttribute("id","btnCancel");e.className="geBtn";b.editor.cancelFirst&&c.appendChild(e);"draw.io"!=b.getServiceName()||null==g||g.constructor!=DriveLibrary&&g.constructor!=GitHubLibrary||(q=mxUtils.button(mxResources.get("link"),function(){b.spinner.spin(document.body,mxResources.get("loading"))&&g.getPublicUrl(function(c){b.spinner.stop();
if(null!=c){var f=b.getSearch("create title mode url drive splash state clibs ui".split(" ")),f=f+((0==f.length?"?":"&")+"splash=0&clibs=U"+encodeURIComponent(c));c=new EmbedDialog(b,window.location.protocol+"//"+window.location.host+"/"+f,null,null,null,null,"Check out the library I made using @drawio");b.showDialog(c.container,450,240,!0);c.init()}else g.constructor==DriveLibrary?b.showError(mxResources.get("error"),mxResources.get("diagramIsNotPublic"),mxResources.get("share"),mxUtils.bind(this,
function(){b.drive.showPermissions(g.getId())}),null,mxResources.get("ok"),mxUtils.bind(this,function(){})):b.handleError({message:mxResources.get("diagramIsNotPublic")})})}),q.className="geBtn",c.appendChild(q));q=mxUtils.button(mxResources.get("export"),function(){var c=b.createLibraryDataFromImages(p),f=t.value;/(\.xml)$/i.test(f)||(f+=".xml");b.isLocalFileSave()?b.saveLocalFile(c,f,"text/xml",null,null,!0,null,"xml"):(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(f)+"&format=xml&xml="+
-encodeURIComponent(c))).simulate(document,"_blank")});q.setAttribute("id","btnDownload");q.className="geBtn";c.appendChild(q);if(Graph.fileSupport){if(null==b.libDlgFileInputElt){var D=document.createElement("input");D.setAttribute("multiple","multiple");D.setAttribute("type","file");mxEvent.addListener(D,"change",function(c){A=!1;b.importFiles(D.files,0,0,b.maxImageSize,function(b,f,d,e,l,m,g,p,k){null!=D.files&&(G(c)(b,f,d,e,l,m,g,p,k),D.type="",D.type="file",D.value="")});v.scrollTop=v.scrollHeight});
+encodeURIComponent(c))).simulate(document,"_blank")});q.setAttribute("id","btnDownload");q.className="geBtn";c.appendChild(q);if(Graph.fileSupport){if(null==b.libDlgFileInputElt){var D=document.createElement("input");D.setAttribute("multiple","multiple");D.setAttribute("type","file");mxEvent.addListener(D,"change",function(c){A=!1;b.importFiles(D.files,0,0,b.maxImageSize,function(b,f,d,e,l,m,p,g,k){null!=D.files&&(F(c)(b,f,d,e,l,m,p,g,k),D.type="",D.type="file",D.value="")});v.scrollTop=v.scrollHeight});
D.style.display="none";document.body.appendChild(D);b.libDlgFileInputElt=D}q=mxUtils.button(mxResources.get("import"),function(){null!=B&&(B(),B=null);b.libDlgFileInputElt.click()});q.setAttribute("id","btnAddImage");q.className="geBtn";c.appendChild(q)}q=mxUtils.button(mxResources.get("addImages"),function(){null!=B&&(B(),B=null);b.showImageDialog(mxResources.get("addImageUrl"),"",function(b,c,d){A=!1;if(null!=b){if("data:image/"==b.substring(0,11)){var e=b.indexOf(",");0<e&&(b=b.substring(0,e)+
";base64,"+b.substring(e+1))}f(b,null,0,0,c,d);v.scrollTop=v.scrollHeight}})});q.setAttribute("id","btnAddImageUrl");q.className="geBtn";c.appendChild(q);this.saveBtnClickHandler=function(c,f,d,e){b.saveLibrary(c,f,d,e)};q=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(){null!=B&&(B(),B=null);this.saveBtnClickHandler(t.value,p,g,k)}));q.setAttribute("id","btnSave");q.className="geBtn gePrimaryBtn";c.appendChild(q);b.editor.cancelFirst||c.appendChild(e);d.appendChild(c);this.container=
d},EditShapeDialog=function(b,e,d,c,g){c=null!=c?c:300;g=null!=g?g:120;var k,n,f=document.createElement("table"),l=document.createElement("tbody");f.style.cellPadding="4px";k=document.createElement("tr");n=document.createElement("td");n.setAttribute("colspan","2");n.style.fontSize="10pt";mxUtils.write(n,d);k.appendChild(n);l.appendChild(k);k=document.createElement("tr");n=document.createElement("td");var m=document.createElement("textarea");m.style.outline="none";m.style.resize="none";m.style.width=
c-200+"px";m.style.height=g+"px";this.textarea=m;this.init=function(){m.focus();m.scrollTop=0};n.appendChild(m);k.appendChild(n);n=document.createElement("td");d=document.createElement("div");d.style.position="relative";d.style.border="1px solid gray";d.style.top="6px";d.style.width="200px";d.style.height=g+4+"px";d.style.overflow="hidden";d.style.marginBottom="16px";mxEvent.disableContextMenu(d);n.appendChild(d);var p=new Graph(d);p.setEnabled(!1);var q=b.editor.graph.cloneCell(e);p.addCells([q]);
d=p.view.getState(q);var t="";null!=d.shape&&null!=d.shape.stencil&&(t=mxUtils.getPrettyXml(d.shape.stencil.desc));mxUtils.write(m,t||"");d=p.getGraphBounds();g=Math.min(160/d.width,(g-40)/d.height);p.view.scaleAndTranslate(g,20/g-d.x,20/g-d.y);k.appendChild(n);l.appendChild(k);k=document.createElement("tr");n=document.createElement("td");n.setAttribute("colspan","2");n.style.paddingTop="2px";n.style.whiteSpace="nowrap";n.setAttribute("align","right");b.isOffline()||(g=mxUtils.button(mxResources.get("help"),
function(){b.openLink("https://www.diagrams.net/doc/faq/shape-complex-create-edit")}),g.className="geBtn",n.appendChild(g));g=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});g.className="geBtn";b.editor.cancelFirst&&n.appendChild(g);var v=function(c,f,d){var e=m.value,l=mxUtils.parseXml(e),e=mxUtils.getPrettyXml(l.documentElement),l=l.documentElement.getElementsByTagName("parsererror");if(null!=l&&0<l.length)b.showError(mxResources.get("error"),mxResources.get("containsValidationErrors"),
-mxResources.get("ok"));else if(d&&b.hideDialog(),l=!c.model.contains(f),!d||l||e!=t){e=Graph.compress(e);c.getModel().beginUpdate();try{if(l){var g=b.editor.graph.getFreeInsertPoint();f.geometry.x=g.x;f.geometry.y=g.y;c.addCell(f)}c.setCellStyles(mxConstants.STYLE_SHAPE,"stencil("+e+")",[f])}catch(A){throw A;}finally{c.getModel().endUpdate()}l&&(c.setSelectionCell(f),c.scrollCellToVisible(f))}};d=mxUtils.button(mxResources.get("preview"),function(){v(p,q,!1)});d.className="geBtn";n.appendChild(d);
+mxResources.get("ok"));else if(d&&b.hideDialog(),l=!c.model.contains(f),!d||l||e!=t){e=Graph.compress(e);c.getModel().beginUpdate();try{if(l){var p=b.editor.graph.getFreeInsertPoint();f.geometry.x=p.x;f.geometry.y=p.y;c.addCell(f)}c.setCellStyles(mxConstants.STYLE_SHAPE,"stencil("+e+")",[f])}catch(A){throw A;}finally{c.getModel().endUpdate()}l&&(c.setSelectionCell(f),c.scrollCellToVisible(f))}};d=mxUtils.button(mxResources.get("preview"),function(){v(p,q,!1)});d.className="geBtn";n.appendChild(d);
d=mxUtils.button(mxResources.get("apply"),function(){v(b.editor.graph,e,!0)});d.className="geBtn gePrimaryBtn";n.appendChild(d);b.editor.cancelFirst||n.appendChild(g);k.appendChild(n);l.appendChild(k);f.appendChild(l);this.container=f},CustomDialog=function(b,e,d,c,g,k,n,f,l,m,p){var q=document.createElement("div");q.appendChild(e);var t=document.createElement("div");t.style.marginTop="30px";t.style.textAlign="center";null!=n&&t.appendChild(n);b.isOffline()||null==k||(e=mxUtils.button(mxResources.get("help"),
function(){b.openLink(k)}),e.className="geBtn",t.appendChild(e));l=mxUtils.button(l||mxResources.get("cancel"),function(){b.hideDialog();null!=c&&c()});l.className="geBtn";f&&(l.style.display="none");b.editor.cancelFirst&&t.appendChild(l);g=mxUtils.button(g||mxResources.get("ok"),mxUtils.bind(this,function(){m||b.hideDialog(null,null,this.container);if(null!=d){var c=d();if("string"===typeof c){b.showError(mxResources.get("error"),c);return}}m&&b.hideDialog(null,null,this.container)}));t.appendChild(g);
g.className="geBtn gePrimaryBtn";b.editor.cancelFirst||t.appendChild(l);if(null!=p)for(f=0;f<p.length;f++)(function(b,c,f){b=mxUtils.button(b,function(b){c(b)});null!=f&&b.setAttribute("title",f);b.className="geBtn";t.appendChild(b)})(p[f][0],p[f][1],p[f][2]);q.appendChild(t);this.cancelBtn=l;this.okButton=g;this.container=q},TemplatesDialog=function(b,e,d,c,g,k,n,f,l,m,p,q,t,v,u){function x(b){sa.innerHTML=mxUtils.htmlEntities(b);sa.style.display="block";setTimeout(function(){sa.style.display="none"},
4E3)}function z(){null!=S&&(S.style.fontWeight="normal",S.style.textDecoration="none",M=S,S=null)}function y(b,c,f,d,e,l,m){if(-1<b.className.indexOf("geTempDlgRadioBtnActive"))return!1;b.className+=" geTempDlgRadioBtnActive";L.querySelector(".geTempDlgRadioBtn[data-id="+d+"]").className="geTempDlgRadioBtn "+(m?"geTempDlgRadioBtnLarge":"geTempDlgRadioBtnSmall");L.querySelector("."+c).src="/images/"+f+"-sel.svg";L.querySelector("."+e).src="/images/"+l+".svg";return!0}function B(c,f,d,e){function m(c,
-f){if(null==p){var d=c,d=/^https?:\/\//.test(d)&&!b.editor.isCorsEnabledForUrl(d)?PROXY_URL+"?url="+encodeURIComponent(d):TEMPLATE_PATH+"/"+d;mxUtils.get(d,mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&(p=b.getText());f(p)}))}else f(p)}function g(d,e,l){if(null!=d&&mxUtils.isAncestorNode(document.body,f)&&(d=mxUtils.parseXml(d),d=Editor.extractGraphModel(d.documentElement,!0),null!=d)){"mxfile"==d.nodeName&&(d=Editor.parseDiagramNode(d.getElementsByTagName("diagram")[0]));
-var m=new mxCodec(d.ownerDocument),g=new mxGraphModel;m.decode(d,g);d=g.root.getChildAt(0).children||[];b.sidebar.createTooltip(f,d,Math.min((window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-80,1E3),Math.min((window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight)-80,800),null!=c.title?mxResources.get(c.title,null,c.title):null,!0,new mxPoint(e,l),!0,null,!0);var p=document.createElement("div");p.className="geTempDlgDialogMask";L.appendChild(p);
-var k=b.sidebar.hideTooltip;b.sidebar.hideTooltip=function(){p&&(L.removeChild(p),p=null,k.apply(this,arguments),b.sidebar.hideTooltip=k)};mxEvent.addListener(p,"click",function(){b.sidebar.hideTooltip()})}}var p=null;if(qa||b.sidebar.currentElt==f)b.sidebar.hideTooltip();else{var k=function(c){qa&&b.sidebar.currentElt==f&&g(c,mxEvent.getClientX(e),mxEvent.getClientY(e));qa=!1;d.src="/images/icon-search.svg"};b.sidebar.hideTooltip();b.sidebar.currentElt=f;qa=!0;d.src="/images/aui-wait.gif";c.isExt?
-l(c,k,function(){x(mxResources.get("cantLoadPrev"));qa=!1;d.src="/images/icon-search.svg"}):m(c.url,k)}}function C(b,c,f){if(null!=P){for(var d=P.className.split(" "),e=0;e<d.length;e++)if(-1<d[e].indexOf("Active")){d.splice(e,1);break}P.className=d.join(" ")}null!=b?(P=b,P.className+=" "+c,aa=f,ka.className="geTempDlgCreateBtn"):(aa=P=null,ka.className="geTempDlgCreateBtn geTempDlgBtnDisabled")}function A(c,f){if(null!=aa){var d=function(c){t.isExternal?l(t,function(b){g(b,c)},p):t.url?mxUtils.get(TEMPLATE_PATH+
-"/"+t.url,mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?g(b.getText(),c):p()})):g(b.emptyDiagramXml,c)},g=function(c,d){u||b.hideDialog(!0);e(c,d,t,f)},p=function(){x(mxResources.get("cannotLoad"));k()},k=function(){aa=t;ka.className="geTempDlgCreateBtn";f&&(ga.className="geTempDlgOpenBtn")},t=aa;aa=null;"boolean"!==typeof f&&(f=t.isExternal&&q);if(1==c)m(t.url,t);else if(f)ga.className="geTempDlgOpenBtn geTempDlgBtnDisabled geTempDlgBtnBusy",d();else{ka.className="geTempDlgCreateBtn geTempDlgBtnDisabled geTempDlgBtnBusy";
-var n=null==b.mode||b.mode==App.MODE_GOOGLE||b.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"),n=new FilenameDialog(b,b.defaultFilename+".drawio",mxResources.get("ok"),d,n,function(b){var c=null!=b&&0<b.length;return c&&u?(d(b),!1):c},null,null,null,k,v?null:[]);b.showDialog(n.container,350,80,!0,!0);n.init()}}}function G(b){ka.innerHTML=mxUtils.htmlEntities(mxResources.get(V||b?"create":"copy"));b=b?"none":"";q&&(ga.style.display=b);for(var c=L.querySelectorAll(".geTempDlgLinkToDiagram"),
-f=0;f<c.length;f++)c[f].style.display=b}function D(c,f,d,e,l){l||(O.innerHTML="",C(),ia=c,na=e);var m=null;if(d){m=document.createElement("table");m.className="geTempDlgDiagramsListGrid";var g=document.createElement("tr"),p=document.createElement("th");p.style.width="50%";p.innerHTML=mxUtils.htmlEntities(mxResources.get("diagram"));g.appendChild(p);p=document.createElement("th");p.style.width="25%";p.innerHTML=mxUtils.htmlEntities(mxResources.get("changedBy"));g.appendChild(p);p=document.createElement("th");
-p.style.width="25%";p.innerHTML=mxUtils.htmlEntities(mxResources.get("lastModifiedOn"));g.appendChild(p);m.appendChild(g);O.appendChild(m)}for(g=0;g<c.length;g++){c[g].isExternal=!f;var k=c[g].url,q=(p=mxUtils.htmlEntities(f?mxResources.get(c[g].title,null,c[g].title):c[g].title))||c[g].url,t=c[g].imgUrl,n=mxUtils.htmlEntities(c[g].changedBy||""),M="";c[g].lastModifiedOn&&(M=b.timeSince(new Date(c[g].lastModifiedOn)),null==M&&(M=mxResources.get("lessThanAMinute")),M=mxUtils.htmlEntities(mxResources.get("timeAgo",
-[M],"{1} ago")));t||(t=TEMPLATE_PATH+"/"+k.substring(0,k.length-4)+".png");k=d?50:15;null!=p&&p.length>k&&(p=p.substring(0,k)+"&hellip;");if(d){var v=document.createElement("tr"),t=document.createElement("td"),u=document.createElement("img");u.src="/images/icon-search.svg";u.className="geTempDlgDiagramListPreviewBtn";u.setAttribute("title",mxResources.get("preview"));l||t.appendChild(u);q=document.createElement("span");q.className="geTempDlgDiagramTitle";q.innerHTML=p;t.appendChild(q);v.appendChild(t);
-t=document.createElement("td");t.innerHTML=n;v.appendChild(t);t=document.createElement("td");t.innerHTML=M;v.appendChild(t);m.appendChild(v);null==P&&(G(f),C(v,"geTempDlgDiagramsListGridActive",c[g]));(function(b,c,d){mxEvent.addListener(v,"click",function(){P!=c&&(G(f),C(c,"geTempDlgDiagramsListGridActive",b))});mxEvent.addListener(v,"dblclick",A);mxEvent.addListener(u,"click",function(f){B(b,c,d,f)})})(c[g],v,u)}else{var x=document.createElement("div");x.className="geTempDlgDiagramTile";x.setAttribute("title",
-q);null==P&&(G(f),C(x,"geTempDlgDiagramTileActive",c[g]));n=document.createElement("div");n.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgLoading";var z=document.createElement("img");z.style.display="none";(function(b,c,f){z.onload=function(){c.className="geTempDlgDiagramTileImg";b.style.display=""};z.onerror=function(){this.src!=f?this.src=f:c.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgError"}})(z,n,t?t.replace(".drawio.xml","").replace(".drawio","").replace(".xml",""):
-"");z.src=t;n.appendChild(z);x.appendChild(n);n=document.createElement("div");n.className="geTempDlgDiagramTileLbl";n.innerHTML=null!=p?p:"";x.appendChild(n);u=document.createElement("img");u.src="/images/icon-search.svg";u.className="geTempDlgDiagramPreviewBtn";u.setAttribute("title",mxResources.get("preview"));l||x.appendChild(u);(function(b,c,d){mxEvent.addListener(x,"click",function(){P!=c&&(G(f),C(c,"geTempDlgDiagramTileActive",b))});mxEvent.addListener(x,"dblclick",A);mxEvent.addListener(u,
-"click",function(f){B(b,c,d,f)})})(c[g],x,u);O.appendChild(x)}}for(var H in e)c=e[H],0<c.length&&(l=document.createElement("div"),l.className="geTempDlgImportCat",l.innerHTML=mxResources.get(H,null,H),O.appendChild(l),D(c,f,d,null,!0))}function E(b,c){T.innerHTML="";C();for(var f=Math.floor(T.offsetWidth/150)-1,d=!c&&b.length>f?f:b.length,e=0;e<d;e++){var l=b[e];l.isCategory=!0;var m=document.createElement("div"),g=mxResources.get(l.title);null==g&&(g=l.title.substring(0,1).toUpperCase()+l.title.substring(1));
-m.className="geTempDlgNewDiagramCatItem";m.setAttribute("title",g);g=mxUtils.htmlEntities(g);15<g.length&&(g=g.substring(0,15)+"&hellip;");null==P&&(G(!0),C(m,"geTempDlgNewDiagramCatItemActive",l));var p=document.createElement("div");p.className="geTempDlgNewDiagramCatItemImg";var k=document.createElement("img");k.src=NEW_DIAGRAM_CATS_PATH+"/"+l.img;p.appendChild(k);m.appendChild(p);p=document.createElement("div");p.className="geTempDlgNewDiagramCatItemLbl";p.innerHTML=g;m.appendChild(p);T.appendChild(m);
-(function(b,c){mxEvent.addListener(m,"click",function(){P!=c&&(G(!0),C(c,"geTempDlgNewDiagramCatItemActive",b))});mxEvent.addListener(m,"dblclick",A)})(l,m)}m=document.createElement("div");m.className="geTempDlgNewDiagramCatItem";g=mxResources.get("showAllTemps");m.setAttribute("title",g);p=document.createElement("div");p.className="geTempDlgNewDiagramCatItemImg";p.innerHTML="...";p.style.fontSize="32px";m.appendChild(p);p=document.createElement("div");p.className="geTempDlgNewDiagramCatItemLbl";
-p.innerHTML=g;m.appendChild(p);T.appendChild(m);mxEvent.addListener(m,"click",function(){function b(){var f=c.querySelector(".geTemplateDrawioCatLink");null!=f?f.click():setTimeout(b,200)}V=!0;var c=L.querySelector(".geTemplatesList");c.style.display="block";ca.style.width="";da.style.display="";da.value="";ja=null;b()});Z.style.display=b.length<=f?"none":""}function F(b,c,f){function d(b,c){var f=mxResources.get(b);null==f&&(f=b.substring(0,1).toUpperCase()+b.substring(1));var d=f+" ("+c.length+
-")",e=f=mxUtils.htmlEntities(f);15<f.length&&(f=f.substring(0,15)+"&hellip;");return{lbl:f+" ("+c.length+")",fullLbl:d,lblOnly:e}}function e(f,d,e,l,m){mxEvent.addListener(e,"click",function(){S!=e&&(null!=S?(S.style.fontWeight="normal",S.style.textDecoration="none"):(ra.style.display="none",pa.style.minHeight="100%"),S=e,S.style.fontWeight="bold",S.style.textDecoration="underline",ca.scrollTop=0,W&&(X=!0),fa.innerHTML=d,Y.style.display="none",D(m?c[f]:l?R[f][l]:b[f],m?!1:!0))})}var l=L.querySelector(".geTemplatesList");
-if(0<f){f=document.createElement("div");f.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;margin-top: 10px;";mxUtils.write(f,mxResources.get("custom"));l.appendChild(f);for(var m in c){f=document.createElement("div");var g=c[m],g=d(m,g);f.className="geTemplateCatLink";f.setAttribute("title",g.fullLbl);f.innerHTML=g.lbl;l.appendChild(f);e(m,g.lblOnly,f,null,!0)}f=document.createElement("div");f.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;margin-top: 10px;";
-mxUtils.write(f,"draw.io");l.appendChild(f)}for(m in b){var p=R[m],k=f=document.createElement(p?"ul":"div"),g=b[m],g=d(m,g);if(null!=p){var q=document.createElement("li"),t=document.createElement("div");t.className="geTempTreeCaret geTemplateCatLink geTemplateDrawioCatLink";t.style.padding="0";t.setAttribute("title",g.fullLbl);t.innerHTML=g.lbl;k=t;q.appendChild(t);var n=document.createElement("ul");n.className="geTempTreeNested";n.style.visibility="hidden";for(var M in p){var v=document.createElement("li"),
-u=d(M,p[M]);v.setAttribute("title",u.fullLbl);v.innerHTML=u.lbl;v.className="geTemplateCatLink";v.style.padding="0";v.style.margin="0";e(m,u.lblOnly,v,M);n.appendChild(v)}q.appendChild(n);f.className="geTempTree";f.appendChild(q);(function(b,c){mxEvent.addListener(c,"click",function(){for(var f=b.querySelectorAll("li"),d=0;d<f.length;d++)f[d].style.margin="";b.style.visibility="visible";b.classList.toggle("geTempTreeActive");b.classList.toggle("geTempTreeNested")&&setTimeout(function(){for(var c=
-0;c<f.length;c++)f[c].style.margin="0";b.style.visibility="hidden"},250);c.classList.toggle("geTempTreeCaret-down")})})(n,t)}else f.className="geTemplateCatLink geTemplateDrawioCatLink",f.setAttribute("title",g.fullLbl),f.innerHTML=g.lbl;l.appendChild(f);e(m,g.lblOnly,k)}}function I(){mxUtils.get(c,function(b){if(!la){la=!0;b=b.getXml().documentElement.firstChild;for(var c={};null!=b;){if("undefined"!==typeof b.getAttribute)if("clibs"==b.nodeName){for(var f=b.getAttribute("name"),d=b.getElementsByTagName("add"),
+f){if(null==g){var d=c,d=/^https?:\/\//.test(d)&&!b.editor.isCorsEnabledForUrl(d)?PROXY_URL+"?url="+encodeURIComponent(d):TEMPLATE_PATH+"/"+d;mxUtils.get(d,mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&(g=b.getText());f(g)}))}else f(g)}function p(d,e,l){if(null!=d&&mxUtils.isAncestorNode(document.body,f)&&(d=mxUtils.parseXml(d),d=Editor.extractGraphModel(d.documentElement,!0),null!=d)){"mxfile"==d.nodeName&&(d=Editor.parseDiagramNode(d.getElementsByTagName("diagram")[0]));
+var m=new mxCodec(d.ownerDocument),p=new mxGraphModel;m.decode(d,p);d=p.root.getChildAt(0).children||[];b.sidebar.createTooltip(f,d,Math.min((window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-80,1E3),Math.min((window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight)-80,800),null!=c.title?mxResources.get(c.title,null,c.title):null,!0,new mxPoint(e,l),!0,null,!0);var g=document.createElement("div");g.className="geTempDlgDialogMask";L.appendChild(g);
+var k=b.sidebar.hideTooltip;b.sidebar.hideTooltip=function(){g&&(L.removeChild(g),g=null,k.apply(this,arguments),b.sidebar.hideTooltip=k)};mxEvent.addListener(g,"click",function(){b.sidebar.hideTooltip()})}}var g=null;if(qa||b.sidebar.currentElt==f)b.sidebar.hideTooltip();else{var k=function(c){qa&&b.sidebar.currentElt==f&&p(c,mxEvent.getClientX(e),mxEvent.getClientY(e));qa=!1;d.src="/images/icon-search.svg"};b.sidebar.hideTooltip();b.sidebar.currentElt=f;qa=!0;d.src="/images/aui-wait.gif";c.isExt?
+l(c,k,function(){x(mxResources.get("cantLoadPrev"));qa=!1;d.src="/images/icon-search.svg"}):m(c.url,k)}}function C(b,c,f){if(null!=O){for(var d=O.className.split(" "),e=0;e<d.length;e++)if(-1<d[e].indexOf("Active")){d.splice(e,1);break}O.className=d.join(" ")}null!=b?(O=b,O.className+=" "+c,aa=f,ka.className="geTempDlgCreateBtn"):(aa=O=null,ka.className="geTempDlgCreateBtn geTempDlgBtnDisabled")}function A(c,f){if(null!=aa){var d=function(c){t.isExternal?l(t,function(b){p(b,c)},g):t.url?mxUtils.get(TEMPLATE_PATH+
+"/"+t.url,mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?p(b.getText(),c):g()})):p(b.emptyDiagramXml,c)},p=function(c,d){u||b.hideDialog(!0);e(c,d,t,f)},g=function(){x(mxResources.get("cannotLoad"));k()},k=function(){aa=t;ka.className="geTempDlgCreateBtn";f&&(ga.className="geTempDlgOpenBtn")},t=aa;aa=null;"boolean"!==typeof f&&(f=t.isExternal&&q);if(1==c)m(t.url,t);else if(f)ga.className="geTempDlgOpenBtn geTempDlgBtnDisabled geTempDlgBtnBusy",d();else{ka.className="geTempDlgCreateBtn geTempDlgBtnDisabled geTempDlgBtnBusy";
+var n=null==b.mode||b.mode==App.MODE_GOOGLE||b.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"),n=new FilenameDialog(b,b.defaultFilename+".drawio",mxResources.get("ok"),d,n,function(b){var c=null!=b&&0<b.length;return c&&u?(d(b),!1):c},null,null,null,k,v?null:[]);b.showDialog(n.container,350,80,!0,!0);n.init()}}}function F(b){ka.innerHTML=mxUtils.htmlEntities(mxResources.get(V||b?"create":"copy"));b=b?"none":"";q&&(ga.style.display=b);for(var c=L.querySelectorAll(".geTempDlgLinkToDiagram"),
+f=0;f<c.length;f++)c[f].style.display=b}function D(c,f,d,e,l){l||(P.innerHTML="",C(),ia=c,oa=e);var m=null;if(d){m=document.createElement("table");m.className="geTempDlgDiagramsListGrid";var p=document.createElement("tr"),g=document.createElement("th");g.style.width="50%";g.innerHTML=mxUtils.htmlEntities(mxResources.get("diagram"));p.appendChild(g);g=document.createElement("th");g.style.width="25%";g.innerHTML=mxUtils.htmlEntities(mxResources.get("changedBy"));p.appendChild(g);g=document.createElement("th");
+g.style.width="25%";g.innerHTML=mxUtils.htmlEntities(mxResources.get("lastModifiedOn"));p.appendChild(g);m.appendChild(p);P.appendChild(m)}for(p=0;p<c.length;p++){c[p].isExternal=!f;var k=c[p].url,q=(g=mxUtils.htmlEntities(f?mxResources.get(c[p].title,null,c[p].title):c[p].title))||c[p].url,t=c[p].imgUrl,n=mxUtils.htmlEntities(c[p].changedBy||""),M="";c[p].lastModifiedOn&&(M=b.timeSince(new Date(c[p].lastModifiedOn)),null==M&&(M=mxResources.get("lessThanAMinute")),M=mxUtils.htmlEntities(mxResources.get("timeAgo",
+[M],"{1} ago")));t||(t=TEMPLATE_PATH+"/"+k.substring(0,k.length-4)+".png");k=d?50:15;null!=g&&g.length>k&&(g=g.substring(0,k)+"&hellip;");if(d){var v=document.createElement("tr"),t=document.createElement("td"),u=document.createElement("img");u.src="/images/icon-search.svg";u.className="geTempDlgDiagramListPreviewBtn";u.setAttribute("title",mxResources.get("preview"));l||t.appendChild(u);q=document.createElement("span");q.className="geTempDlgDiagramTitle";q.innerHTML=g;t.appendChild(q);v.appendChild(t);
+t=document.createElement("td");t.innerHTML=n;v.appendChild(t);t=document.createElement("td");t.innerHTML=M;v.appendChild(t);m.appendChild(v);null==O&&(F(f),C(v,"geTempDlgDiagramsListGridActive",c[p]));(function(b,c,d){mxEvent.addListener(v,"click",function(){O!=c&&(F(f),C(c,"geTempDlgDiagramsListGridActive",b))});mxEvent.addListener(v,"dblclick",A);mxEvent.addListener(u,"click",function(f){B(b,c,d,f)})})(c[p],v,u)}else{var x=document.createElement("div");x.className="geTempDlgDiagramTile";x.setAttribute("title",
+q);null==O&&(F(f),C(x,"geTempDlgDiagramTileActive",c[p]));n=document.createElement("div");n.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgLoading";var z=document.createElement("img");z.style.display="none";(function(b,c,f){z.onload=function(){c.className="geTempDlgDiagramTileImg";b.style.display=""};z.onerror=function(){this.src!=f?this.src=f:c.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgError"}})(z,n,t?t.replace(".drawio.xml","").replace(".drawio","").replace(".xml",""):
+"");z.src=t;n.appendChild(z);x.appendChild(n);n=document.createElement("div");n.className="geTempDlgDiagramTileLbl";n.innerHTML=null!=g?g:"";x.appendChild(n);u=document.createElement("img");u.src="/images/icon-search.svg";u.className="geTempDlgDiagramPreviewBtn";u.setAttribute("title",mxResources.get("preview"));l||x.appendChild(u);(function(b,c,d){mxEvent.addListener(x,"click",function(){O!=c&&(F(f),C(c,"geTempDlgDiagramTileActive",b))});mxEvent.addListener(x,"dblclick",A);mxEvent.addListener(u,
+"click",function(f){B(b,c,d,f)})})(c[p],x,u);P.appendChild(x)}}for(var H in e)c=e[H],0<c.length&&(l=document.createElement("div"),l.className="geTempDlgImportCat",l.innerHTML=mxResources.get(H,null,H),P.appendChild(l),D(c,f,d,null,!0))}function E(b,c){T.innerHTML="";C();for(var f=Math.floor(T.offsetWidth/150)-1,d=!c&&b.length>f?f:b.length,e=0;e<d;e++){var l=b[e];l.isCategory=!0;var m=document.createElement("div"),p=mxResources.get(l.title);null==p&&(p=l.title.substring(0,1).toUpperCase()+l.title.substring(1));
+m.className="geTempDlgNewDiagramCatItem";m.setAttribute("title",p);p=mxUtils.htmlEntities(p);15<p.length&&(p=p.substring(0,15)+"&hellip;");null==O&&(F(!0),C(m,"geTempDlgNewDiagramCatItemActive",l));var g=document.createElement("div");g.className="geTempDlgNewDiagramCatItemImg";var k=document.createElement("img");k.src=NEW_DIAGRAM_CATS_PATH+"/"+l.img;g.appendChild(k);m.appendChild(g);g=document.createElement("div");g.className="geTempDlgNewDiagramCatItemLbl";g.innerHTML=p;m.appendChild(g);T.appendChild(m);
+(function(b,c){mxEvent.addListener(m,"click",function(){O!=c&&(F(!0),C(c,"geTempDlgNewDiagramCatItemActive",b))});mxEvent.addListener(m,"dblclick",A)})(l,m)}m=document.createElement("div");m.className="geTempDlgNewDiagramCatItem";p=mxResources.get("showAllTemps");m.setAttribute("title",p);g=document.createElement("div");g.className="geTempDlgNewDiagramCatItemImg";g.innerHTML="...";g.style.fontSize="32px";m.appendChild(g);g=document.createElement("div");g.className="geTempDlgNewDiagramCatItemLbl";
+g.innerHTML=p;m.appendChild(g);T.appendChild(m);mxEvent.addListener(m,"click",function(){function b(){var f=c.querySelector(".geTemplateDrawioCatLink");null!=f?f.click():setTimeout(b,200)}V=!0;var c=L.querySelector(".geTemplatesList");c.style.display="block";ca.style.width="";da.style.display="";da.value="";la=null;b()});Z.style.display=b.length<=f?"none":""}function G(b,c,f){function d(b,c){var f=mxResources.get(b);null==f&&(f=b.substring(0,1).toUpperCase()+b.substring(1));var d=f+" ("+c.length+
+")",e=f=mxUtils.htmlEntities(f);15<f.length&&(f=f.substring(0,15)+"&hellip;");return{lbl:f+" ("+c.length+")",fullLbl:d,lblOnly:e}}function e(f,d,e,l,m){mxEvent.addListener(e,"click",function(){S!=e&&(null!=S?(S.style.fontWeight="normal",S.style.textDecoration="none"):(ra.style.display="none",pa.style.minHeight="100%"),S=e,S.style.fontWeight="bold",S.style.textDecoration="underline",ca.scrollTop=0,W&&(X=!0),ea.innerHTML=d,Y.style.display="none",D(m?c[f]:l?Q[f][l]:b[f],m?!1:!0))})}var l=L.querySelector(".geTemplatesList");
+if(0<f){f=document.createElement("div");f.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;margin-top: 10px;";mxUtils.write(f,mxResources.get("custom"));l.appendChild(f);for(var m in c){f=document.createElement("div");var p=c[m],p=d(m,p);f.className="geTemplateCatLink";f.setAttribute("title",p.fullLbl);f.innerHTML=p.lbl;l.appendChild(f);e(m,p.lblOnly,f,null,!0)}f=document.createElement("div");f.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;margin-top: 10px;";
+mxUtils.write(f,"draw.io");l.appendChild(f)}for(m in b){var g=Q[m],k=f=document.createElement(g?"ul":"div"),p=b[m],p=d(m,p);if(null!=g){var q=document.createElement("li"),t=document.createElement("div");t.className="geTempTreeCaret geTemplateCatLink geTemplateDrawioCatLink";t.style.padding="0";t.setAttribute("title",p.fullLbl);t.innerHTML=p.lbl;k=t;q.appendChild(t);var n=document.createElement("ul");n.className="geTempTreeNested";n.style.visibility="hidden";for(var M in g){var v=document.createElement("li"),
+u=d(M,g[M]);v.setAttribute("title",u.fullLbl);v.innerHTML=u.lbl;v.className="geTemplateCatLink";v.style.padding="0";v.style.margin="0";e(m,u.lblOnly,v,M);n.appendChild(v)}q.appendChild(n);f.className="geTempTree";f.appendChild(q);(function(b,c){mxEvent.addListener(c,"click",function(){for(var f=b.querySelectorAll("li"),d=0;d<f.length;d++)f[d].style.margin="";b.style.visibility="visible";b.classList.toggle("geTempTreeActive");b.classList.toggle("geTempTreeNested")&&setTimeout(function(){for(var c=
+0;c<f.length;c++)f[c].style.margin="0";b.style.visibility="hidden"},250);c.classList.toggle("geTempTreeCaret-down")})})(n,t)}else f.className="geTemplateCatLink geTemplateDrawioCatLink",f.setAttribute("title",p.fullLbl),f.innerHTML=p.lbl;l.appendChild(f);e(m,p.lblOnly,k)}}function J(){mxUtils.get(c,function(b){if(!ma){ma=!0;b=b.getXml().documentElement.firstChild;for(var c={};null!=b;){if("undefined"!==typeof b.getAttribute)if("clibs"==b.nodeName){for(var f=b.getAttribute("name"),d=b.getElementsByTagName("add"),
e=[],l=0;l<d.length;l++)e.push(encodeURIComponent(mxUtils.getTextContent(d[l])));null!=f&&0<e.length&&(c[f]=e.join(";"))}else if(e=b.getAttribute("url"),null!=e){d=b.getAttribute("section");f=b.getAttribute("subsection");if(null==d&&(l=e.indexOf("/"),d=e.substring(0,l),null==f)){var m=e.indexOf("/",l+1);-1<m&&(f=e.substring(l+1,m))}l=ba[d];null==l&&(ua++,l=[],ba[d]=l);e=b.getAttribute("clibs");null!=c[e]&&(e=c[e]);e={url:b.getAttribute("url"),libs:b.getAttribute("libs"),title:b.getAttribute("title")||
-b.getAttribute("name"),preview:b.getAttribute("preview"),clibs:e,tags:b.getAttribute("tags")};l.push(e);null!=f&&(l=R[d],null==l&&(l={},R[d]=l),d=l[f],null==d&&(d=[],l[f]=d),d.push(e))}b=b.nextSibling}F(ba,ya,va)}})}function J(b){n&&(ca.scrollTop=0,O.innerHTML="",ha.spin(O),X=!1,W=!0,fa.innerHTML=mxUtils.htmlEntities(mxResources.get("recentDiag")),ja=null,n(xa,function(){x(mxResources.get("cannotLoad"));xa([])},b?null:k))}function H(b){if(""==b)null!=M&&(M.click(),M=null);else{if(null==TemplatesDialog.tagsList[c]){var f=
-{},d;for(d in ba)for(var e=ba[d],l=0;l<e.length;l++){var m=e[l];if(null!=m.tags)for(var g=m.tags.toLowerCase().split(";"),p=0;p<g.length;p++)null==f[g[p]]&&(f[g[p]]=[]),f[g[p]].push(m)}TemplatesDialog.tagsList[c]=f}var k=b.toLowerCase().split(" "),f=TemplatesDialog.tagsList[c];if(0<va&&null==f.__tagsList__){for(d in ya)for(e=ya[d],l=0;l<e.length;l++)for(m=e[l],g=m.title.split(" "),g.push(d),p=0;p<g.length;p++){var q=g[p].toLowerCase();null==f[q]&&(f[q]=[]);f[q].push(m)}f.__tagsList__=!0}d=[];e={};
-for(l=g=0;l<k.length;l++)if(0<k[l].length){var q=f[k[l]],t={};d=[];if(null!=q)for(p=0;p<q.length;p++)m=q[p],0==g==(null==e[m.url])&&(t[m.url]=!0,d.push(m));e=t;g++}0==d.length?fa.innerHTML=mxResources.get("noResultsFor",[b]):D(d,!0)}}function K(b){if(ja!=b||ea!=ma)z(),ca.scrollTop=0,O.innerHTML="",fa.innerHTML=mxUtils.htmlEntities(mxResources.get("searchResults"))+' "'+mxUtils.htmlEntities(b)+'"',wa=null,V?H(b):f&&(b?(ha.spin(O),X=!1,W=!0,f(b,xa,function(){x(mxResources.get("searchFailed"));xa([])},
-ea?null:k)):J(ea)),ja=b,ma=ea}function N(b){null!=wa&&clearTimeout(wa);13==b.keyCode?K(da.value):wa=setTimeout(function(){K(da.value)},1E3)}var Q='<div class="geTempDlgHeader"><img src="/images/draw.io-logo.svg" class="geTempDlgHeaderLogo"><input type="search" class="geTempDlgSearchBox" '+(f?"":'style="display: none"')+' placeholder="'+mxResources.get("search")+'"></div><div class="geTemplatesList" style="display: none"><div class="geTempDlgBack">&lt; '+mxResources.get("back")+'</div><div class="geTempDlgHLine"></div><div class="geTemplatesLbl">'+
+b.getAttribute("name"),preview:b.getAttribute("preview"),clibs:e,tags:b.getAttribute("tags")};l.push(e);null!=f&&(l=Q[d],null==l&&(l={},Q[d]=l),d=l[f],null==d&&(d=[],l[f]=d),d.push(e))}b=b.nextSibling}G(ba,ya,va)}})}function K(b){n&&(ca.scrollTop=0,P.innerHTML="",ha.spin(P),X=!1,W=!0,ea.innerHTML=mxUtils.htmlEntities(mxResources.get("recentDiag")),la=null,n(xa,function(){x(mxResources.get("cannotLoad"));xa([])},b?null:k))}function H(b){if(""==b)null!=M&&(M.click(),M=null);else{if(null==TemplatesDialog.tagsList[c]){var f=
+{},d;for(d in ba)for(var e=ba[d],l=0;l<e.length;l++){var m=e[l];if(null!=m.tags)for(var p=m.tags.toLowerCase().split(";"),g=0;g<p.length;g++)null==f[p[g]]&&(f[p[g]]=[]),f[p[g]].push(m)}TemplatesDialog.tagsList[c]=f}var k=b.toLowerCase().split(" "),f=TemplatesDialog.tagsList[c];if(0<va&&null==f.__tagsList__){for(d in ya)for(e=ya[d],l=0;l<e.length;l++)for(m=e[l],p=m.title.split(" "),p.push(d),g=0;g<p.length;g++){var q=p[g].toLowerCase();null==f[q]&&(f[q]=[]);f[q].push(m)}f.__tagsList__=!0}d=[];e={};
+for(l=p=0;l<k.length;l++)if(0<k[l].length){var q=f[k[l]],t={};d=[];if(null!=q)for(g=0;g<q.length;g++)m=q[g],0==p==(null==e[m.url])&&(t[m.url]=!0,d.push(m));e=t;p++}0==d.length?ea.innerHTML=mxResources.get("noResultsFor",[b]):D(d,!0)}}function I(b){if(la!=b||fa!=na)z(),ca.scrollTop=0,P.innerHTML="",ea.innerHTML=mxUtils.htmlEntities(mxResources.get("searchResults"))+' "'+mxUtils.htmlEntities(b)+'"',wa=null,V?H(b):f&&(b?(ha.spin(P),X=!1,W=!0,f(b,xa,function(){x(mxResources.get("searchFailed"));xa([])},
+fa?null:k)):K(fa)),la=b,na=fa}function N(b){null!=wa&&clearTimeout(wa);13==b.keyCode?I(da.value):wa=setTimeout(function(){I(da.value)},1E3)}var R='<div class="geTempDlgHeader"><img src="/images/draw.io-logo.svg" class="geTempDlgHeaderLogo"><input type="search" class="geTempDlgSearchBox" '+(f?"":'style="display: none"')+' placeholder="'+mxResources.get("search")+'"></div><div class="geTemplatesList" style="display: none"><div class="geTempDlgBack">&lt; '+mxResources.get("back")+'</div><div class="geTempDlgHLine"></div><div class="geTemplatesLbl">'+
mxResources.get("templates")+'</div></div><div class="geTempDlgContent" style="width: 100%"><div class="geTempDlgNewDiagramCat"><div class="geTempDlgNewDiagramCatLbl">'+mxResources.get("newDiagram")+'</div><div class="geTempDlgNewDiagramCatList"></div><div class="geTempDlgNewDiagramCatFooter"><div class="geTempDlgShowAllBtn">'+mxResources.get("showMore")+'</div></div></div><div class="geTempDlgDiagramsList"><div class="geTempDlgDiagramsListHeader"><div class="geTempDlgDiagramsListTitle"></div><div class="geTempDlgDiagramsListBtns"><div class="geTempDlgRadioBtn geTempDlgRadioBtnLarge" data-id="myDiagramsBtn"><img src="/images/my-diagrams.svg" class="geTempDlgMyDiagramsBtnImg"> <span>'+
mxResources.get("myDiagrams")+'</span></div><div class="geTempDlgRadioBtn geTempDlgRadioBtnLarge geTempDlgRadioBtnActive" data-id="allDiagramsBtn"><img src="/images/all-diagrams-sel.svg" class="geTempDlgAllDiagramsBtnImg"> <span>'+mxResources.get("allDiagrams")+'</span></div><div class="geTempDlgSpacer"> </div><div class="geTempDlgRadioBtn geTempDlgRadioBtnSmall geTempDlgRadioBtnActive" data-id="tilesBtn"><img src="/images/tiles-sel.svg" class="geTempDlgTilesBtnImg"></div><div class="geTempDlgRadioBtn geTempDlgRadioBtnSmall" data-id="listBtn"><img src="/images/list.svg" class="geTempDlgListBtnImg"></div></div></div><div class="geTempDlgDiagramsTiles"></div></div></div><br style="clear:both;"/><div class="geTempDlgFooter"><div class="geTempDlgErrMsg"></div>'+
-(t?'<span class="geTempDlgLinkToDiagram geTempDlgLinkToDiagramHint">'+mxResources.get("linkToDiagramHint")+'</span><button class="geTempDlgLinkToDiagram geTempDlgLinkToDiagramBtn">'+mxResources.get("linkToDiagram")+"</button>":"")+(q?'<div class="geTempDlgOpenBtn">'+mxResources.get("open")+"</div>":"")+'<div class="geTempDlgCreateBtn">'+mxResources.get("create")+'</div><div class="geTempDlgCancelBtn">'+mxResources.get("cancel")+"</div></div>",L=document.createElement("div");L.innerHTML=Q;L.className=
-"geTemplateDlg";this.container=L;c=null!=c?c:TEMPLATE_PATH+"/index.xml";g=null!=g?g:NEW_DIAGRAM_CATS_PATH+"/index.xml";var W=!1,X=!1,S=null,M=null,P=null,aa=null,oa=!1,ea=!0,U=!1,ia=[],na=null,ja,ma,V=!1,Z=L.querySelector(".geTempDlgShowAllBtn"),O=L.querySelector(".geTempDlgDiagramsTiles"),fa=L.querySelector(".geTempDlgDiagramsListTitle"),Y=L.querySelector(".geTempDlgDiagramsListBtns"),ca=L.querySelector(".geTempDlgContent"),pa=L.querySelector(".geTempDlgDiagramsList"),ra=L.querySelector(".geTempDlgNewDiagramCat"),
+(t?'<span class="geTempDlgLinkToDiagram geTempDlgLinkToDiagramHint">'+mxResources.get("linkToDiagramHint")+'</span><button class="geTempDlgLinkToDiagram geTempDlgLinkToDiagramBtn">'+mxResources.get("linkToDiagram")+"</button>":"")+(q?'<div class="geTempDlgOpenBtn">'+mxResources.get("open")+"</div>":"")+'<div class="geTempDlgCreateBtn">'+mxResources.get("create")+'</div><div class="geTempDlgCancelBtn">'+mxResources.get("cancel")+"</div></div>",L=document.createElement("div");L.innerHTML=R;L.className=
+"geTemplateDlg";this.container=L;c=null!=c?c:TEMPLATE_PATH+"/index.xml";g=null!=g?g:NEW_DIAGRAM_CATS_PATH+"/index.xml";var W=!1,X=!1,S=null,M=null,O=null,aa=null,ja=!1,fa=!0,U=!1,ia=[],oa=null,la,na,V=!1,Z=L.querySelector(".geTempDlgShowAllBtn"),P=L.querySelector(".geTempDlgDiagramsTiles"),ea=L.querySelector(".geTempDlgDiagramsListTitle"),Y=L.querySelector(".geTempDlgDiagramsListBtns"),ca=L.querySelector(".geTempDlgContent"),pa=L.querySelector(".geTempDlgDiagramsList"),ra=L.querySelector(".geTempDlgNewDiagramCat"),
T=L.querySelector(".geTempDlgNewDiagramCatList"),ka=L.querySelector(".geTempDlgCreateBtn"),ga=L.querySelector(".geTempDlgOpenBtn"),da=L.querySelector(".geTempDlgSearchBox"),sa=L.querySelector(".geTempDlgErrMsg"),ha=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"50px",zIndex:2E9});mxEvent.addListener(L.querySelector(".geTempDlgBack"),"click",function(){z();V=!1;L.querySelector(".geTemplatesList").style.display="none";ca.style.width=
-"100%";ra.style.display="";pa.style.minHeight="calc(100% - 280px)";da.style.display=f?"":"none";da.value="";ja=null;J(ea)});mxEvent.addListener(L.querySelector(".geTempDlgRadioBtn[data-id=allDiagramsBtn]"),"click",function(){y(this,"geTempDlgAllDiagramsBtnImg","all-diagrams","myDiagramsBtn","geTempDlgMyDiagramsBtnImg","my-diagrams",!0)&&(ea=!0,null==ja?J(ea):K(ja))});mxEvent.addListener(L.querySelector(".geTempDlgRadioBtn[data-id=myDiagramsBtn]"),"click",function(){y(this,"geTempDlgMyDiagramsBtnImg",
-"my-diagrams","allDiagramsBtn","geTempDlgAllDiagramsBtnImg","all-diagrams",!0)&&(ea=!1,null==ja?J(ea):K(ja))});mxEvent.addListener(L.querySelector(".geTempDlgRadioBtn[data-id=listBtn]"),"click",function(){y(this,"geTempDlgListBtnImg","list","tilesBtn","geTempDlgTilesBtnImg","tiles",!1)&&(U=!0,D(ia,!1,U,na))});mxEvent.addListener(L.querySelector(".geTempDlgRadioBtn[data-id=tilesBtn]"),"click",function(){y(this,"geTempDlgTilesBtnImg","tiles","listBtn","geTempDlgListBtnImg","list",!1)&&(U=!1,D(ia,!1,
-U,na))});var qa=!1;mxEvent.addListener(Z,"click",function(){oa?(ra.style.height="280px",T.style.height="190px",Z.innerHTML=mxUtils.htmlEntities(mxResources.get("showMore")),E(za)):(ra.style.height="440px",T.style.height="355px",Z.innerHTML=mxUtils.htmlEntities(mxResources.get("showLess")),E(za,!0));oa=!oa});var la=!1,ta=!1,ba={},R={},ya={},za=[],ua=1,va=0;null!=p?p(function(b,c){ya=b;va=c;I()},I):I();mxUtils.get(g,function(b){if(!ta){ta=!0;for(b=b.getXml().documentElement.firstChild;null!=b;)"undefined"!==
-typeof b.getAttribute&&null!=b.getAttribute("title")&&za.push({img:b.getAttribute("img"),libs:b.getAttribute("libs"),clibs:b.getAttribute("clibs"),title:b.getAttribute("title")}),b=b.nextSibling;E(za)}});var xa=function(b,c,f){Y.style.display="";ha.stop();W=!1;if(X)X=!1;else if(c)O.innerHTML=c;else{f=f||{};c=0;for(var d in f)c+=f[d].length;0==b.length&&0==c?O.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams")):D(b,!1,U,0==c?null:f)}};J(ea);var wa=null;mxEvent.addListener(da,"keyup",N);mxEvent.addListener(da,
+"100%";ra.style.display="";pa.style.minHeight="calc(100% - 280px)";da.style.display=f?"":"none";da.value="";la=null;K(fa)});mxEvent.addListener(L.querySelector(".geTempDlgRadioBtn[data-id=allDiagramsBtn]"),"click",function(){y(this,"geTempDlgAllDiagramsBtnImg","all-diagrams","myDiagramsBtn","geTempDlgMyDiagramsBtnImg","my-diagrams",!0)&&(fa=!0,null==la?K(fa):I(la))});mxEvent.addListener(L.querySelector(".geTempDlgRadioBtn[data-id=myDiagramsBtn]"),"click",function(){y(this,"geTempDlgMyDiagramsBtnImg",
+"my-diagrams","allDiagramsBtn","geTempDlgAllDiagramsBtnImg","all-diagrams",!0)&&(fa=!1,null==la?K(fa):I(la))});mxEvent.addListener(L.querySelector(".geTempDlgRadioBtn[data-id=listBtn]"),"click",function(){y(this,"geTempDlgListBtnImg","list","tilesBtn","geTempDlgTilesBtnImg","tiles",!1)&&(U=!0,D(ia,!1,U,oa))});mxEvent.addListener(L.querySelector(".geTempDlgRadioBtn[data-id=tilesBtn]"),"click",function(){y(this,"geTempDlgTilesBtnImg","tiles","listBtn","geTempDlgListBtnImg","list",!1)&&(U=!1,D(ia,!1,
+U,oa))});var qa=!1;mxEvent.addListener(Z,"click",function(){ja?(ra.style.height="280px",T.style.height="190px",Z.innerHTML=mxUtils.htmlEntities(mxResources.get("showMore")),E(za)):(ra.style.height="440px",T.style.height="355px",Z.innerHTML=mxUtils.htmlEntities(mxResources.get("showLess")),E(za,!0));ja=!ja});var ma=!1,ta=!1,ba={},Q={},ya={},za=[],ua=1,va=0;null!=p?p(function(b,c){ya=b;va=c;J()},J):J();mxUtils.get(g,function(b){if(!ta){ta=!0;for(b=b.getXml().documentElement.firstChild;null!=b;)"undefined"!==
+typeof b.getAttribute&&null!=b.getAttribute("title")&&za.push({img:b.getAttribute("img"),libs:b.getAttribute("libs"),clibs:b.getAttribute("clibs"),title:b.getAttribute("title")}),b=b.nextSibling;E(za)}});var xa=function(b,c,f){Y.style.display="";ha.stop();W=!1;if(X)X=!1;else if(c)P.innerHTML=c;else{f=f||{};c=0;for(var d in f)c+=f[d].length;0==b.length&&0==c?P.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams")):D(b,!1,U,0==c?null:f)}};K(fa);var wa=null;mxEvent.addListener(da,"keyup",N);mxEvent.addListener(da,
"search",N);mxEvent.addListener(da,"input",N);mxEvent.addListener(ka,"click",function(b){A(!1,!1)});q&&mxEvent.addListener(ga,"click",function(b){A(!1,!0)});t&&mxEvent.addListener(L.querySelector(".geTempDlgLinkToDiagramBtn"),"click",function(b){A(!0)});mxEvent.addListener(L.querySelector(".geTempDlgCancelBtn"),"click",function(){null!=d&&d();u||b.hideDialog(!0)})};TemplatesDialog.tagsList={};
var BtnDialog=function(b,e,d,c){var g=document.createElement("div");g.style.textAlign="center";var k=document.createElement("p");k.style.fontSize="16pt";k.style.padding="0px";k.style.margin="0px";k.style.color="gray";mxUtils.write(k,mxResources.get("done"));var n="Unknown",f=document.createElement("img");f.setAttribute("border","0");f.setAttribute("align","absmiddle");f.style.marginRight="10px";e==b.drive?(n=mxResources.get("googleDrive"),f.src=IMAGE_PATH+"/google-drive-logo-white.svg"):e==b.dropbox?
(n=mxResources.get("dropbox"),f.src=IMAGE_PATH+"/dropbox-logo-white.svg"):e==b.oneDrive?(n=mxResources.get("oneDrive"),f.src=IMAGE_PATH+"/onedrive-logo-white.svg"):e==b.gitHub?(n=mxResources.get("github"),f.src=IMAGE_PATH+"/github-logo-white.svg"):e==b.gitLab?(n=mxResources.get("gitlab"),f.src=IMAGE_PATH+"/gitlab-logo.svg"):e==b.trello&&(n=mxResources.get("trello"),f.src=IMAGE_PATH+"/trello-logo-white.svg");b=document.createElement("p");mxUtils.write(b,mxResources.get("authorizedIn",[n],"You are now authorized in {1}"));
@@ -10947,20 +10947,20 @@ d.style.width="120px";mxUtils.write(d,mxResources.get("realtimeCollaboration")+"
function(c){b.spinner.stop()}),mxUtils.bind(this,function(c){b.spinner.stop();b.showError(mxResources.get("error"),null!=c&&null!=c.error?c.error.message:mxResources.get("unknownError"),mxResources.get("ok"))}))};this.init=null!=this.init?this.init:function(){t.focus()};d=document.createElement("td");d.style.whiteSpace="nowrap";d.appendChild(t);d.appendChild(b.menus.createHelpLink("https://github.com/jgraph/drawio/discussions/2672"));e.appendChild(d);g.appendChild(e)}this.init=null!=this.init?this.init:
function(){};n=mxUtils.button(mxResources.get("apply"),n);n.className="geBtn gePrimaryBtn";e=document.createElement("tr");d=document.createElement("td");d.colSpan=2;d.style.paddingTop="20px";d.style.whiteSpace="nowrap";d.setAttribute("align","center");f=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});f.className="geBtn";b.editor.cancelFirst&&d.appendChild(f);d.appendChild(n);b.editor.cancelFirst||d.appendChild(f);e.appendChild(d);g.appendChild(e);c.appendChild(g);this.container=
c},ConnectionPointsDialog=function(b,e){function d(){null!=g&&g.destroy()}var c=document.createElement("div");c.style.userSelect="none";var g=null;this.init=function(){function k(b,c){var f=new mxCell("",new mxGeometry(b,c,6,6),"shape=mxgraph.basic.x;fillColor=#29b6f2;strokeColor=#29b6f2;points=[];rotatable=0;resizable=0;connectable=0;editable=0;");f.vertex=!0;f.cp=!0;return q.addCell(f)}function n(b){b=q.getSelectionCells();q.deleteCells(b)}function f(){var b=parseInt(E.value)||0,b=0>b?0:100<b?100:
-b;E.value=b;var c=parseInt(I.value)||0,c=0>c?0:100<c?100:c;I.value=c;var f=parseInt(F.value)||0,d=parseInt(J.value)||0,b=q.getConnectionPoint(u,new mxConnectionConstraint(new mxPoint(b/100,c/100),!1,null,f,d)),c=q.getSelectionCell();if(null!=c){var f=c.geometry.clone(),d=q.view.scale,e=q.view.translate;f.x=(b.x-3*d)/d-e.x;f.y=(b.y-3*d)/d-e.y;q.model.setGeometry(c,f)}}function l(b){var c=0,f=0,d=t.geometry,e=mxUtils.format((b.geometry.x+3-d.x)/d.width);b=mxUtils.format((b.geometry.y+3-d.y)/d.height);
-0>e?(c=e*d.width,e=0):1<e&&(c=(e-1)*d.width,e=1);0>b?(f=b*d.height,b=0):1<b&&(f=(b-1)*d.height,b=1);return{x:e,y:b,dx:parseInt(c),dy:parseInt(f)}}function m(){if(1==q.getSelectionCount()){var b=q.getSelectionCell(),b=l(b);E.value=100*b.x;I.value=100*b.y;F.value=b.dx;J.value=b.dy;D.style.visibility=""}else D.style.visibility="hidden"}var p=document.createElement("div");p.style.width="350px";p.style.height="350px";p.style.overflow="hidden";p.style.border="1px solid lightGray";p.style.boxSizing="border-box";
+b;E.value=b;var c=parseInt(J.value)||0,c=0>c?0:100<c?100:c;J.value=c;var f=parseInt(G.value)||0,d=parseInt(K.value)||0,b=q.getConnectionPoint(u,new mxConnectionConstraint(new mxPoint(b/100,c/100),!1,null,f,d)),c=q.getSelectionCell();if(null!=c){var f=c.geometry.clone(),d=q.view.scale,e=q.view.translate;f.x=(b.x-3*d)/d-e.x;f.y=(b.y-3*d)/d-e.y;q.model.setGeometry(c,f)}}function l(b){var c=0,f=0,d=t.geometry,e=mxUtils.format((b.geometry.x+3-d.x)/d.width);b=mxUtils.format((b.geometry.y+3-d.y)/d.height);
+0>e?(c=e*d.width,e=0):1<e&&(c=(e-1)*d.width,e=1);0>b?(f=b*d.height,b=0):1<b&&(f=(b-1)*d.height,b=1);return{x:e,y:b,dx:parseInt(c),dy:parseInt(f)}}function m(){if(1==q.getSelectionCount()){var b=q.getSelectionCell(),b=l(b);E.value=100*b.x;J.value=100*b.y;G.value=b.dx;K.value=b.dy;D.style.visibility=""}else D.style.visibility="hidden"}var p=document.createElement("div");p.style.width="350px";p.style.height="350px";p.style.overflow="hidden";p.style.border="1px solid lightGray";p.style.boxSizing="border-box";
mxEvent.disableContextMenu(p);c.appendChild(p);var q=new Graph(p);q.autoExtend=!1;q.autoScroll=!1;q.setGridEnabled(!1);q.setEnabled(!0);q.setPanning(!0);q.setConnectable(!1);q.setTooltips(!1);q.minFitScale=null;q.maxFitScale=null;q.centerZoom=!0;q.maxFitScale=2;var p=e.geometry,t=new mxCell(e.value,new mxGeometry(0,0,p.width,p.height),e.style+";rotatable=0;resizable=0;connectable=0;editable=0;movable=0;");t.vertex=!0;q.addCell(t);q.dblClick=function(b,c){if(null!=c&&c!=t)q.setSelectionCell(c);else{var f=
mxUtils.convertPoint(q.container,mxEvent.getClientX(b),mxEvent.getClientY(b));mxEvent.consume(b);var d=q.view.scale,e=q.view.translate;q.setSelectionCell(k((f.x-3*d)/d-e.x,(f.y-3*d)/d-e.y))}};g=new mxKeyHandler(q);g.bindKey(46,n);g.bindKey(8,n);q.getRubberband().isForceRubberbandEvent=function(b){return 0==b.evt.button&&(null==b.getCell()||b.getCell()==t)};q.panningHandler.isForcePanningEvent=function(b){return 2==b.evt.button};var v=q.isCellSelectable;q.isCellSelectable=function(b){return b==t?!1:
v.apply(this,arguments)};q.getLinkForCell=function(){return null};for(var u=q.view.getState(t),p=q.getAllConnectionConstraints(u),x=0;null!=p&&x<p.length;x++){var z=q.getConnectionPoint(u,p[x]);k(z.x-3,z.y-3)}q.fit(8);q.center();x=mxUtils.button("",function(){q.zoomIn()});x.className="geSprite geSprite-zoomin";x.setAttribute("title",mxResources.get("zoomIn"));x.style.position="relative";x.style.outline="none";x.style.border="none";x.style.margin="2px";x.style.cursor="pointer";x.style.top=mxClient.IS_FF?
"-6px":"0px";mxUtils.setOpacity(x,60);z=mxUtils.button("",function(){q.zoomOut()});z.className="geSprite geSprite-zoomout";z.setAttribute("title",mxResources.get("zoomOut"));z.style.position="relative";z.style.outline="none";z.style.border="none";z.style.margin="2px";z.style.cursor="pointer";z.style.top=mxClient.IS_FF?"-6px":"0px";mxUtils.setOpacity(z,60);var y=mxUtils.button("",function(){q.fit(8);q.center()});y.className="geSprite geSprite-fit";y.setAttribute("title",mxResources.get("fit"));y.style.position=
"relative";y.style.outline="none";y.style.border="none";y.style.margin="2px";y.style.cursor="pointer";y.style.top=mxClient.IS_FF?"-6px":"0px";mxUtils.setOpacity(y,60);var B=mxUtils.button("",function(){q.zoomActual();q.center()});B.className="geSprite geSprite-actualsize";B.setAttribute("title",mxResources.get("actualSize"));B.style.position="relative";B.style.outline="none";B.style.border="none";B.style.margin="2px";B.style.cursor="pointer";B.style.top=mxClient.IS_FF?"-6px":"0px";mxUtils.setOpacity(B,
60);var C=mxUtils.button("",n);C.className="geSprite geSprite-delete";C.setAttribute("title",mxResources.get("delete"));C.style.position="relative";C.style.outline="none";C.style.border="none";C.style.margin="2px";C.style["float"]="right";C.style.cursor="pointer";mxUtils.setOpacity(C,10);p=document.createElement("div");p.appendChild(x);p.appendChild(z);p.appendChild(B);p.appendChild(y);p.appendChild(C);c.appendChild(p);var A=document.createElement("input");A.setAttribute("type","number");A.setAttribute("min",
-"1");A.setAttribute("value","1");A.style.width="45px";A.style.position="relative";A.style.top=mxClient.IS_FF?"0px":"-4px";A.style.margin="0 4px 0 4px";p.appendChild(A);var G=document.createElement("select");G.style.position="relative";G.style.top=mxClient.IS_FF?"0px":"-4px";z=["left","right","top","bottom"];for(x=0;x<z.length;x++)y=z[x],B=document.createElement("option"),mxUtils.write(B,mxResources.get(y)),B.value=y,G.appendChild(B);p.appendChild(G);x=mxUtils.button(mxResources.get("add"),function(){var b=
-parseInt(A.value),b=1>b?1:100<b?100:b;A.value=b;for(var c=G.value,f=t.geometry,d=[],e=0;e<b;e++){var l,m;switch(c){case "left":l=f.x;m=f.y+(e+1)*f.height/(b+1);break;case "right":l=f.x+f.width;m=f.y+(e+1)*f.height/(b+1);break;case "top":l=f.x+(e+1)*f.width/(b+1);m=f.y;break;case "bottom":l=f.x+(e+1)*f.width/(b+1),m=f.y+f.height}d.push(k(l-3,m-3))}q.setSelectionCells(d)});x.style.position="relative";x.style.marginLeft="8px";x.style.top=mxClient.IS_FF?"0px":"-4px";p.appendChild(x);var D=document.createElement("div");
-D.style.margin="4px 0px 8px 0px";D.style.whiteSpace="nowrap";D.style.height="24px";p=document.createElement("span");mxUtils.write(p,mxResources.get("dx"));D.appendChild(p);var E=document.createElement("input");E.setAttribute("type","number");E.setAttribute("min","0");E.setAttribute("max","100");E.style.width="45px";E.style.margin="0 4px 0 4px";D.appendChild(E);mxUtils.write(D,"%");var F=document.createElement("input");F.setAttribute("type","number");F.style.width="45px";F.style.margin="0 4px 0 4px";
-D.appendChild(F);mxUtils.write(D,"pt");p=document.createElement("span");mxUtils.write(p,mxResources.get("dy"));p.style.marginLeft="12px";D.appendChild(p);var I=document.createElement("input");I.setAttribute("type","number");I.setAttribute("min","0");I.setAttribute("max","100");I.style.width="45px";I.style.margin="0 4px 0 4px";D.appendChild(I);mxUtils.write(D,"%");var J=document.createElement("input");J.setAttribute("type","number");J.style.width="45px";J.style.margin="0 4px 0 4px";D.appendChild(J);
-mxUtils.write(D,"pt");c.appendChild(D);m();q.getSelectionModel().addListener(mxEvent.CHANGE,function(){0<q.getSelectionCount()?mxUtils.setOpacity(C,60):mxUtils.setOpacity(C,10);m()});q.addListener(mxEvent.CELLS_MOVED,m);mxEvent.addListener(E,"change",f);mxEvent.addListener(I,"change",f);mxEvent.addListener(F,"change",f);mxEvent.addListener(J,"change",f);p=mxUtils.button(mxResources.get("cancel"),function(){d();b.hideDialog()});p.className="geBtn";x=mxUtils.button(mxResources.get("apply"),function(){var c=
-q.model.cells,f=[],m=[],g;for(g in c){var p=c[g];p.cp&&m.push(l(p))}m.sort(function(b,c){return b.x!=c.x?b.x-c.x:b.y!=c.y?b.y-c.y:b.dx!=c.dx?b.dx-c.dx:b.dy-c.dy});for(c=0;c<m.length;c++)0<c&&m[c].x==m[c-1].x&&m[c].y==m[c-1].y&&m[c].dx==m[c-1].dx&&m[c].dy==m[c-1].dy||f.push("["+m[c].x+","+m[c].y+",0,"+m[c].dx+","+m[c].dy+"]");b.editor.graph.setCellStyles("points","["+f.join(",")+"]",[e]);d();b.hideDialog()});x.className="geBtn gePrimaryBtn";z=mxUtils.button(mxResources.get("reset"),function(){b.editor.graph.setCellStyles("points",
+"1");A.setAttribute("value","1");A.style.width="45px";A.style.position="relative";A.style.top=mxClient.IS_FF?"0px":"-4px";A.style.margin="0 4px 0 4px";p.appendChild(A);var F=document.createElement("select");F.style.position="relative";F.style.top=mxClient.IS_FF?"0px":"-4px";z=["left","right","top","bottom"];for(x=0;x<z.length;x++)y=z[x],B=document.createElement("option"),mxUtils.write(B,mxResources.get(y)),B.value=y,F.appendChild(B);p.appendChild(F);x=mxUtils.button(mxResources.get("add"),function(){var b=
+parseInt(A.value),b=1>b?1:100<b?100:b;A.value=b;for(var c=F.value,f=t.geometry,d=[],e=0;e<b;e++){var l,m;switch(c){case "left":l=f.x;m=f.y+(e+1)*f.height/(b+1);break;case "right":l=f.x+f.width;m=f.y+(e+1)*f.height/(b+1);break;case "top":l=f.x+(e+1)*f.width/(b+1);m=f.y;break;case "bottom":l=f.x+(e+1)*f.width/(b+1),m=f.y+f.height}d.push(k(l-3,m-3))}q.setSelectionCells(d)});x.style.position="relative";x.style.marginLeft="8px";x.style.top=mxClient.IS_FF?"0px":"-4px";p.appendChild(x);var D=document.createElement("div");
+D.style.margin="4px 0px 8px 0px";D.style.whiteSpace="nowrap";D.style.height="24px";p=document.createElement("span");mxUtils.write(p,mxResources.get("dx"));D.appendChild(p);var E=document.createElement("input");E.setAttribute("type","number");E.setAttribute("min","0");E.setAttribute("max","100");E.style.width="45px";E.style.margin="0 4px 0 4px";D.appendChild(E);mxUtils.write(D,"%");var G=document.createElement("input");G.setAttribute("type","number");G.style.width="45px";G.style.margin="0 4px 0 4px";
+D.appendChild(G);mxUtils.write(D,"pt");p=document.createElement("span");mxUtils.write(p,mxResources.get("dy"));p.style.marginLeft="12px";D.appendChild(p);var J=document.createElement("input");J.setAttribute("type","number");J.setAttribute("min","0");J.setAttribute("max","100");J.style.width="45px";J.style.margin="0 4px 0 4px";D.appendChild(J);mxUtils.write(D,"%");var K=document.createElement("input");K.setAttribute("type","number");K.style.width="45px";K.style.margin="0 4px 0 4px";D.appendChild(K);
+mxUtils.write(D,"pt");c.appendChild(D);m();q.getSelectionModel().addListener(mxEvent.CHANGE,function(){0<q.getSelectionCount()?mxUtils.setOpacity(C,60):mxUtils.setOpacity(C,10);m()});q.addListener(mxEvent.CELLS_MOVED,m);mxEvent.addListener(E,"change",f);mxEvent.addListener(J,"change",f);mxEvent.addListener(G,"change",f);mxEvent.addListener(K,"change",f);p=mxUtils.button(mxResources.get("cancel"),function(){d();b.hideDialog()});p.className="geBtn";x=mxUtils.button(mxResources.get("apply"),function(){var c=
+q.model.cells,f=[],m=[],p;for(p in c){var g=c[p];g.cp&&m.push(l(g))}m.sort(function(b,c){return b.x!=c.x?b.x-c.x:b.y!=c.y?b.y-c.y:b.dx!=c.dx?b.dx-c.dx:b.dy-c.dy});for(c=0;c<m.length;c++)0<c&&m[c].x==m[c-1].x&&m[c].y==m[c-1].y&&m[c].dx==m[c-1].dx&&m[c].dy==m[c-1].dy||f.push("["+m[c].x+","+m[c].y+",0,"+m[c].dx+","+m[c].dy+"]");b.editor.graph.setCellStyles("points","["+f.join(",")+"]",[e]);d();b.hideDialog()});x.className="geBtn gePrimaryBtn";z=mxUtils.button(mxResources.get("reset"),function(){b.editor.graph.setCellStyles("points",
null,[e]);d();b.hideDialog()});z.className="geBtn";y=document.createElement("div");y.style.marginTop="10px";y.style.textAlign="right";b.editor.cancelFirst?(y.appendChild(p),y.appendChild(z),y.appendChild(x)):(y.appendChild(z),y.appendChild(x),y.appendChild(p));c.appendChild(y)};this.destroy=d;this.container=c};(function(){"undefined"!==typeof html4&&(html4.ATTRIBS["span::data-lucid-content"]=0,html4.ATTRIBS["span::data-lucid-type"]=0,html4.ATTRIBS["font::data-font-src"]=0);Editor.prototype.appName="diagrams.net";Editor.prototype.diagramFileTypes=[{description:"diagramXmlDesc",extension:"drawio",mimeType:"text/xml"},{description:"diagramPngDesc",extension:"png",mimeType:"image/png"},{description:"diagramSvgDesc",extension:"svg",mimeType:"image/svg"},{description:"diagramHtmlDesc",extension:"html",mimeType:"text/html"},
{description:"diagramXmlDesc",extension:"xml",mimeType:"text/xml"}];Editor.prototype.libraryFileTypes=[{description:"Library (.drawiolib, .xml)",extensions:["drawiolib","xml"]}];Editor.prototype.fileExtensions=[{ext:"html",title:"filetypeHtml"},{ext:"png",title:"filetypePng"},{ext:"svg",title:"filetypeSvg"}];Editor.styles=[{},{commonStyle:{fontColor:"#5C5C5C",strokeColor:"#006658",fillColor:"#21C0A5"}},{commonStyle:{fontColor:"#095C86",strokeColor:"#AF45ED",fillColor:"#F694C1"},edgeStyle:{strokeColor:"#60E696"}},
{commonStyle:{fontColor:"#46495D",strokeColor:"#788AA3",fillColor:"#B2C9AB"}},{commonStyle:{fontColor:"#5AA9E6",strokeColor:"#FF6392",fillColor:"#FFE45E"}},{commonStyle:{fontColor:"#1D3557",strokeColor:"#457B9D",fillColor:"#A8DADC"},graph:{background:"#F1FAEE"}},{commonStyle:{fontColor:"#393C56",strokeColor:"#E07A5F",fillColor:"#F2CC8F"},graph:{background:"#F4F1DE",gridColor:"#D4D0C0"}},{commonStyle:{fontColor:"#143642",strokeColor:"#0F8B8D",fillColor:"#FAE5C7"},edgeStyle:{strokeColor:"#A8201A"},
@@ -11010,8 +11010,8 @@ dispName:"Expand",type:"bool",defVal:!0},{name:"part",dispName:"Part",type:"bool
dispName:"Movable Label",type:"bool",defVal:!1,isVisible:function(b,c){var f=0<b.vertices.length?c.editorUi.editor.graph.getCellGeometry(b.vertices[0]):null;return null!=f&&!f.relative}},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},
{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0},{name:"treeFolding",dispName:"Tree Folding",type:"bool",defVal:!1},{name:"treeMoving",dispName:"Tree Moving",type:"bool",defVal:!1},{name:"pointerEvents",dispName:"Pointer Events",type:"bool",defVal:!0,isVisible:function(b,c){var f=mxUtils.getValue(b.style,mxConstants.STYLE_FILLCOLOR,null);return c.editorUi.editor.graph.isSwimlane(b.vertices[0])||null==f||f==mxConstants.NONE||0==mxUtils.getValue(b.style,mxConstants.STYLE_FILL_OPACITY,100)||
0==mxUtils.getValue(b.style,mxConstants.STYLE_OPACITY,100)||null!=b.style.pointerEvents}},{name:"moveCells",dispName:"Move Cells on Fold",type:"bool",defVal:!1,isVisible:function(b,c){return 0<b.vertices.length&&c.editorUi.editor.graph.isContainer(b.vertices[0])}}].concat(Editor.commonProperties);Editor.defaultCsvValue='##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\n#\n## Style to be used for objects not in the CSV. If this is - then such objects are ignored,\n## else they are created using this as their style, eg. whiteSpace=wrap;html=1;\n#\n# unknownStyle: -\n#\n## Optional column name that contains a reference to a named style in styles.\n## Default is the current style for nodes.\n#\n# stylename: -\n#\n## JSON for named styles of the form {"name": "style", "name": "style"} where style is a cell style with\n## placeholders that are replaced once.\n#\n# styles: -\n#\n## JSON for variables in styles of the form {"name": "value", "name": "value"} where name is a string\n## that will replace a placeholder in a style.\n#\n# vars: -\n#\n## Optional column name that contains a reference to a named label in labels.\n## Default is the current label.\n#\n# labelname: -\n#\n## JSON for named labels of the form {"name": "label", "name": "label"} where label is a cell label with\n## placeholders.\n#\n# labels: -\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## If placeholders are used in the style, they are replaced with data from the source.\n## An optional placeholders can be set to target to use data from the target instead.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## In addition to those, an optional source and targetlabel can be used to specify a label\n## that contains placeholders referencing the respective columns in the source or target row.\n## The label is created in the form fromlabel + sourcelabel + label + tolabel + targetlabel.\n## Additional labels can be added by using an optional labels array with entries of the\n## form {"label": string, "x": number, "y": number, "dx": number, "dy": number} where\n## x is from -1 to 1 along the edge, y is orthogonal, and dx/dy are offsets in pixels.\n## An optional placeholders with the string value "source" or "target" can be specified\n## to replace placeholders in the additional label with data from the source or target.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke,refs,manager\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\n#\n## Spacing between parallel edges. Default is 40. Use 0 to disable.\n#\n# edgespacing: 40\n#\n## Name or JSON of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle or a JSON string as used in Layout, Apply.\n## Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nTessa Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Tessa Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nAlison Donovan,System Admin,rdo,Office 3,Tessa Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nEvan Valet,HR Director,tva,Office 4,Tessa Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\n';
-Editor.createRoughCanvas=function(b){var c=rough.canvas({getContext:function(){return b}});c.draw=function(c){var f=c.sets||[];c=c.options||this.getDefaultOptions();for(var d=0;d<f.length;d++){var e=f[d];switch(e.type){case "path":null!=c.stroke&&this._drawToContext(b,e,c);break;case "fillPath":this._drawToContext(b,e,c);break;case "fillSketch":this.fillSketch(b,e,c)}}};c.fillSketch=function(c,f,d){var e=b.state.strokeColor,l=b.state.strokeWidth,m=b.state.strokeAlpha,g=b.state.dashed,p=d.fillWeight;
-0>p&&(p=d.strokeWidth/2);b.setStrokeAlpha(b.state.fillAlpha);b.setStrokeColor(d.fill||"");b.setStrokeWidth(p);b.setDashed(!1);this._drawToContext(c,f,d);b.setDashed(g);b.setStrokeWidth(l);b.setStrokeColor(e);b.setStrokeAlpha(m)};c._drawToContext=function(b,c,f){b.begin();for(var d=0;d<c.ops.length;d++){var e=c.ops[d],l=e.data;switch(e.op){case "move":b.moveTo(l[0],l[1]);break;case "bcurveTo":b.curveTo(l[0],l[1],l[2],l[3],l[4],l[5]);break;case "lineTo":b.lineTo(l[0],l[1])}}b.end();"fillPath"===c.type&&
+Editor.createRoughCanvas=function(b){var c=rough.canvas({getContext:function(){return b}});c.draw=function(c){var f=c.sets||[];c=c.options||this.getDefaultOptions();for(var d=0;d<f.length;d++){var e=f[d];switch(e.type){case "path":null!=c.stroke&&this._drawToContext(b,e,c);break;case "fillPath":this._drawToContext(b,e,c);break;case "fillSketch":this.fillSketch(b,e,c)}}};c.fillSketch=function(c,f,d){var e=b.state.strokeColor,l=b.state.strokeWidth,m=b.state.strokeAlpha,p=b.state.dashed,g=d.fillWeight;
+0>g&&(g=d.strokeWidth/2);b.setStrokeAlpha(b.state.fillAlpha);b.setStrokeColor(d.fill||"");b.setStrokeWidth(g);b.setDashed(!1);this._drawToContext(c,f,d);b.setDashed(p);b.setStrokeWidth(l);b.setStrokeColor(e);b.setStrokeAlpha(m)};c._drawToContext=function(b,c,f){b.begin();for(var d=0;d<c.ops.length;d++){var e=c.ops[d],l=e.data;switch(e.op){case "move":b.moveTo(l[0],l[1]);break;case "bcurveTo":b.curveTo(l[0],l[1],l[2],l[3],l[4],l[5]);break;case "lineTo":b.lineTo(l[0],l[1])}}b.end();"fillPath"===c.type&&
f.filled?b.fill():b.stroke()};return c};(function(){function b(c,f,d){this.canvas=c;this.rc=f;this.shape=d;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.originalBegin=this.canvas.begin;this.canvas.begin=mxUtils.bind(this,b.prototype.begin);this.originalEnd=this.canvas.end;this.canvas.end=mxUtils.bind(this,b.prototype.end);this.originalRect=this.canvas.rect;this.canvas.rect=mxUtils.bind(this,b.prototype.rect);this.originalRoundrect=this.canvas.roundrect;this.canvas.roundrect=
mxUtils.bind(this,b.prototype.roundrect);this.originalEllipse=this.canvas.ellipse;this.canvas.ellipse=mxUtils.bind(this,b.prototype.ellipse);this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,b.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,b.prototype.moveTo);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,b.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,
b.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,b.prototype.arcTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,b.prototype.close);this.originalFill=this.canvas.fill;this.canvas.fill=mxUtils.bind(this,b.prototype.fill);this.originalStroke=this.canvas.stroke;this.canvas.stroke=mxUtils.bind(this,b.prototype.stroke);this.originalFillAndStroke=this.canvas.fillAndStroke;this.canvas.fillAndStroke=mxUtils.bind(this,b.prototype.fillAndStroke);
@@ -11021,20 +11021,20 @@ d.roughness);f.simplification=mxUtils.getValue(this.shape.style,"simplification"
l);f.zigzagOffset=mxUtils.getValue(this.shape.style,"zigzagOffset",l);l=mxUtils.getValue(this.shape.style,"fillWeight",-1);f.fillWeight="auto"==l?-1:l;l=mxUtils.getValue(this.shape.style,"fillStyle","auto");"auto"==l&&(l=mxUtils.hex2rgb(null!=this.shape.state?this.shape.state.view.graph.shapeBackgroundColor:Editor.isDarkMode()?Editor.darkColor:"#ffffff"),l=null!=f.fill&&(null!=e||null!=l&&f.fill==l)?"solid":d.fillStyle);f.fillStyle=l;return f};b.prototype.begin=function(){this.passThrough?this.originalBegin.apply(this.canvas,
arguments):this.path=[]};b.prototype.end=function(){this.passThrough&&this.originalEnd.apply(this.canvas,arguments)};b.prototype.addOp=function(){if(null!=this.path&&(this.path.push(arguments[0]),2<arguments.length))for(var b=2;b<arguments.length;b+=2)this.lastX=arguments[b-1],this.lastY=arguments[b],this.path.push(this.canvas.format(this.lastX)),this.path.push(this.canvas.format(this.lastY))};b.prototype.lineTo=function(b,c){this.passThrough?this.originalLineTo.apply(this.canvas,arguments):(this.addOp(this.lineOp,
b,c),this.lastX=b,this.lastY=c)};b.prototype.moveTo=function(b,c){this.passThrough?this.originalMoveTo.apply(this.canvas,arguments):(this.addOp(this.moveOp,b,c),this.lastX=b,this.lastY=c,this.firstX=b,this.firstY=c)};b.prototype.close=function(){this.passThrough?this.originalClose.apply(this.canvas,arguments):this.addOp(this.closeOp)};b.prototype.quadTo=function(b,c,f,d){this.passThrough?this.originalQuadTo.apply(this.canvas,arguments):(this.addOp(this.quadOp,b,c,f,d),this.lastX=f,this.lastY=d)};
-b.prototype.curveTo=function(b,c,f,d,e,l){this.passThrough?this.originalCurveTo.apply(this.canvas,arguments):(this.addOp(this.curveOp,b,c,f,d,e,l),this.lastX=e,this.lastY=l)};b.prototype.arcTo=function(b,c,f,d,e,l,m){if(this.passThrough)this.originalArcTo.apply(this.canvas,arguments);else{var g=mxUtils.arcToCurves(this.lastX,this.lastY,b,c,f,d,e,l,m);if(null!=g)for(var p=0;p<g.length;p+=6)this.curveTo(g[p],g[p+1],g[p+2],g[p+3],g[p+4],g[p+5]);this.lastX=l;this.lastY=m}};b.prototype.rect=function(b,
+b.prototype.curveTo=function(b,c,f,d,e,l){this.passThrough?this.originalCurveTo.apply(this.canvas,arguments):(this.addOp(this.curveOp,b,c,f,d,e,l),this.lastX=e,this.lastY=l)};b.prototype.arcTo=function(b,c,f,d,e,l,m){if(this.passThrough)this.originalArcTo.apply(this.canvas,arguments);else{var p=mxUtils.arcToCurves(this.lastX,this.lastY,b,c,f,d,e,l,m);if(null!=p)for(var g=0;g<p.length;g+=6)this.curveTo(p[g],p[g+1],p[g+2],p[g+3],p[g+4],p[g+5]);this.lastX=l;this.lastY=m}};b.prototype.rect=function(b,
c,f,d){this.passThrough?this.originalRect.apply(this.canvas,arguments):(this.path=[],this.nextShape=this.rc.generator.rectangle(b,c,f,d,this.getStyle(!0,!0)))};b.prototype.ellipse=function(b,c,f,d){this.passThrough?this.originalEllipse.apply(this.canvas,arguments):(this.path=[],this.nextShape=this.rc.generator.ellipse(b+f/2,c+d/2,f,d,this.getStyle(!0,!0)))};b.prototype.roundrect=function(b,c,f,d,e,l){this.passThrough?this.originalRoundrect.apply(this.canvas,arguments):(this.begin(),this.moveTo(b+
-e,c),this.lineTo(b+f-e,c),this.quadTo(b+f,c,b+f,c+l),this.lineTo(b+f,c+d-l),this.quadTo(b+f,c+d,b+f-e,c+d),this.lineTo(b+e,c+d),this.quadTo(b,c+d,b,c+d-l),this.lineTo(b,c+l),this.quadTo(b,c,b+e,c))};b.prototype.drawPath=function(b){if(0<this.path.length){this.passThrough=!0;try{this.rc.path(this.path.join(" "),b)}catch(na){}this.passThrough=!1}else if(null!=this.nextShape){for(var c in b)this.nextShape.options[c]=b[c];b.stroke!=mxConstants.NONE&&null!=b.stroke||delete this.nextShape.options.stroke;
+e,c),this.lineTo(b+f-e,c),this.quadTo(b+f,c,b+f,c+l),this.lineTo(b+f,c+d-l),this.quadTo(b+f,c+d,b+f-e,c+d),this.lineTo(b+e,c+d),this.quadTo(b,c+d,b,c+d-l),this.lineTo(b,c+l),this.quadTo(b,c,b+e,c))};b.prototype.drawPath=function(b){if(0<this.path.length){this.passThrough=!0;try{this.rc.path(this.path.join(" "),b)}catch(oa){}this.passThrough=!1}else if(null!=this.nextShape){for(var c in b)this.nextShape.options[c]=b[c];b.stroke!=mxConstants.NONE&&null!=b.stroke||delete this.nextShape.options.stroke;
b.filled||delete this.nextShape.options.fill;this.passThrough=!0;this.rc.draw(this.nextShape);this.passThrough=!1}};b.prototype.stroke=function(){this.passThrough?this.originalStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,!1))};b.prototype.fill=function(){this.passThrough?this.originalFill.apply(this.canvas,arguments):this.drawPath(this.getStyle(!1,!0))};b.prototype.fillAndStroke=function(){this.passThrough?this.originalFillAndStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,
!0))};b.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo;this.canvas.close=this.originalClose;this.canvas.fill=this.originalFill;this.canvas.stroke=this.originalStroke;this.canvas.fillAndStroke=this.originalFillAndStroke;this.canvas.begin=this.originalBegin;this.canvas.end=this.originalEnd;
this.canvas.rect=this.originalRect;this.canvas.ellipse=this.originalEllipse;this.canvas.roundrect=this.originalRoundrect};mxShape.prototype.createRoughCanvas=function(c){return new b(c,Editor.createRoughCanvas(c),this)};var c=mxShape.prototype.createHandJiggle;mxShape.prototype.createHandJiggle=function(b){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"sketch","0")?c.apply(this,arguments):"comic"==mxUtils.getValue(this.style,"sketchStyle","rough")?this.createComicCanvas(b):
this.createRoughCanvas(b)};var f=mxImageShape.prototype.paintVertexShape;mxImageShape.prototype.paintVertexShape=function(b,c,d,e,l){null!=b.handJiggle&&b.handJiggle.passThrough||f.apply(this,arguments)};var d=mxShape.prototype.paint;mxShape.prototype.paint=function(c){var f=c.addTolerance,e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(null!=c.handJiggle&&c.handJiggle.constructor==b&&!this.outline){c.save();var l=this.fill,m=this.stroke;this.stroke=
-this.fill=null;var g=this.configurePointerEvents,p=c.setStrokeColor;c.setStrokeColor=function(){};var k=c.setFillColor;c.setFillColor=function(){};e||null==l||(this.configurePointerEvents=function(){});c.handJiggle.passThrough=!0;d.apply(this,arguments);c.handJiggle.passThrough=!1;c.setFillColor=k;c.setStrokeColor=p;this.configurePointerEvents=g;this.stroke=m;this.fill=l;c.restore();e&&null!=l&&(c.addTolerance=function(){})}d.apply(this,arguments);c.addTolerance=f};var e=mxShape.prototype.paintGlassEffect;
-mxShape.prototype.paintGlassEffect=function(c,f,d,l,m,g){null!=c.handJiggle&&c.handJiggle.constructor==b?(c.handJiggle.passThrough=!0,e.apply(this,arguments),c.handJiggle.passThrough=!1):e.apply(this,arguments)}})();Editor.fastCompress=function(b){return null==b||0==b.length||"undefined"===typeof pako?b:Graph.arrayBufferToString(pako.deflateRaw(b))};Editor.fastDecompress=function(b){return null==b||0==b.length||"undefined"===typeof pako?b:pako.inflateRaw(Graph.stringToArrayBuffer(atob(b)),{to:"string"})};
+this.fill=null;var p=this.configurePointerEvents,g=c.setStrokeColor;c.setStrokeColor=function(){};var k=c.setFillColor;c.setFillColor=function(){};e||null==l||(this.configurePointerEvents=function(){});c.handJiggle.passThrough=!0;d.apply(this,arguments);c.handJiggle.passThrough=!1;c.setFillColor=k;c.setStrokeColor=g;this.configurePointerEvents=p;this.stroke=m;this.fill=l;c.restore();e&&null!=l&&(c.addTolerance=function(){})}d.apply(this,arguments);c.addTolerance=f};var e=mxShape.prototype.paintGlassEffect;
+mxShape.prototype.paintGlassEffect=function(c,f,d,l,m,p){null!=c.handJiggle&&c.handJiggle.constructor==b?(c.handJiggle.passThrough=!0,e.apply(this,arguments),c.handJiggle.passThrough=!1):e.apply(this,arguments)}})();Editor.fastCompress=function(b){return null==b||0==b.length||"undefined"===typeof pako?b:Graph.arrayBufferToString(pako.deflateRaw(b))};Editor.fastDecompress=function(b){return null==b||0==b.length||"undefined"===typeof pako?b:pako.inflateRaw(Graph.stringToArrayBuffer(atob(b)),{to:"string"})};
Editor.extractGraphModel=function(b,c,f){if(null!=b&&"undefined"!==typeof pako){var d=b.ownerDocument.getElementsByTagName("div"),e=[];if(null!=d&&0<d.length)for(var l=0;l<d.length;l++)if("mxgraph"==d[l].getAttribute("class")){e.push(d[l]);break}0<e.length&&(d=e[0].getAttribute("data-mxgraph"),null!=d?(e=JSON.parse(d),null!=e&&null!=e.xml&&(b=mxUtils.parseXml(e.xml),b=b.documentElement)):(e=e[0].getElementsByTagName("div"),0<e.length&&(d=mxUtils.getTextContent(e[0]),d=Graph.decompress(d,null,f),0<
d.length&&(b=mxUtils.parseXml(d),b=b.documentElement))))}if(null!=b&&"svg"==b.nodeName)if(d=b.getAttribute("content"),null!=d&&"<"!=d.charAt(0)&&"%"!=d.charAt(0)&&(d=unescape(window.atob?atob(d):Base64.decode(cont,d))),null!=d&&"%"==d.charAt(0)&&(d=decodeURIComponent(d)),null!=d&&0<d.length)b=mxUtils.parseXml(d).documentElement;else throw{message:mxResources.get("notADiagramFile")};null==b||c||(e=null,"diagram"==b.nodeName?e=b:"mxfile"==b.nodeName&&(d=b.getElementsByTagName("diagram"),0<d.length&&
(e=d[Math.max(0,Math.min(d.length-1,urlParams.page||0))])),null!=e&&(b=Editor.parseDiagramNode(e,f)));null==b||"mxGraphModel"==b.nodeName||c&&"mxfile"==b.nodeName||(b=null);return b};Editor.parseDiagramNode=function(b,c){var f=mxUtils.trim(mxUtils.getTextContent(b)),d=null;0<f.length?(f=Graph.decompress(f,null,c),null!=f&&0<f.length&&(d=mxUtils.parseXml(f).documentElement)):(f=mxUtils.getChildNodes(b),0<f.length&&(d=mxUtils.createXmlDocument(),d.appendChild(d.importNode(f[0],!0)),d=d.documentElement));
return d};Editor.getDiagramNodeXml=function(b){var c=mxUtils.getTextContent(b),f=null;0<c.length?f=Graph.decompress(c):null!=b.firstChild&&(f=mxUtils.getXml(b.firstChild));return f};Editor.extractGraphModelFromPdf=function(b){b=b.substring(b.indexOf(",")+1);b=window.atob&&!mxClient.IS_SF?atob(b):Base64.decode(b,!0);if("%PDF-1.7"==b.substring(0,8)){var c=b.indexOf("EmbeddedFile");if(-1<c){var f=b.indexOf("stream",c)+9;if(0<b.substring(c,f).indexOf("application#2Fvnd.jgraph.mxfile"))return c=b.indexOf("endstream",
-f-1),pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(f,c)),{to:"string"})}return null}for(var f=null,c="",d=0,e=0,l=[],m=null;e<b.length;){var g=b.charCodeAt(e),e=e+1;10!=g&&(c+=String.fromCharCode(g));g=="/Subject (%3Cmxfile".charCodeAt(d)?d++:d=0;if(19==d){var p=b.indexOf("%3C%2Fmxfile%3E)",e)+15,e=e-9;if(p>e){f=b.substring(e,p);break}}10==g&&("endobj"==c?m=null:"obj"==c.substring(c.length-3,c.length)||"xref"==c||"trailer"==c?(m=[],l[c.split(" ")[0]]=m):null!=m&&m.push(c),c="")}null==f&&(f=
+f-1),pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(f,c)),{to:"string"})}return null}for(var f=null,c="",d=0,e=0,l=[],m=null;e<b.length;){var p=b.charCodeAt(e),e=e+1;10!=p&&(c+=String.fromCharCode(p));p=="/Subject (%3Cmxfile".charCodeAt(d)?d++:d=0;if(19==d){var g=b.indexOf("%3C%2Fmxfile%3E)",e)+15,e=e-9;if(g>e){f=b.substring(e,g);break}}10==p&&("endobj"==c?m=null:"obj"==c.substring(c.length-3,c.length)||"xref"==c||"trailer"==c?(m=[],l[c.split(" ")[0]]=m):null!=m&&m.push(c),c="")}null==f&&(f=
Editor.extractGraphModelFromXref(l));null!=f&&(f=decodeURIComponent(f.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return f};Editor.extractGraphModelFromXref=function(b){var c=b.trailer,f=null;null!=c&&(c=/.* \/Info (\d+) (\d+) R/g.exec(c.join("\n")),null!=c&&0<c.length&&(c=b[c[1]],null!=c&&(c=/.* \/Subject (\d+) (\d+) R/g.exec(c.join("\n")),null!=c&&0<c.length&&(b=b[c[1]],null!=b&&(b=b.join("\n"),f=b.substring(1,b.length-1))))));return f};Editor.extractParserError=function(b,c){var f=null,d=null!=
b?b.getElementsByTagName("parsererror"):null;null!=d&&0<d.length&&(f=c||mxResources.get("invalidChars"),d=d[0].getElementsByTagName("div"),0<d.length&&(f=mxUtils.getTextContent(d[0])));return null!=f?mxUtils.trim(f):f};Editor.addRetryToError=function(b,c){if(null!=b){var f=null!=b.error?b.error:b;null==f.retry&&(f.retry=c)}};Editor.configure=function(b,c){if(null!=b){Editor.config=b;Editor.configVersion=b.version;Menus.prototype.defaultFonts=b.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=
b.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=b.defaultColors||ColorDialog.prototype.defaultColors;ColorDialog.prototype.colorNames=b.colorNames||ColorDialog.prototype.colorNames;StyleFormatPanel.prototype.defaultColorSchemes=b.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=b.defaultEdgeLength||Graph.prototype.defaultEdgeLength;DrawioFile.prototype.autosaveDelay=b.autosaveDelay||DrawioFile.prototype.autosaveDelay;
@@ -11051,10 +11051,10 @@ c)}}}};Editor.trimCssUrl=function(b){return b.replace(RegExp("^[\\s\"']+","g"),"
25E3;Editor.prototype.useForeignObjectForMath=!0;Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;Editor.prototype.crossOriginImages=!mxClient.IS_IE;var b=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(c){c=null!=c&&"mxlibrary"!=c.nodeName?this.extractGraphModel(c):null;if(null!=c){var f=c.getElementsByTagName("parsererror");if(null!=f&&0<f.length){var f=f[0],d=f.getElementsByTagName("div");null!=d&&0<d.length&&(f=d[0]);throw{message:mxUtils.getTextContent(f)};
}if("mxGraphModel"==c.nodeName){f=c.getAttribute("style")||"default-style2";if("1"==urlParams.embed||null!=f&&""!=f)f!=this.graph.currentStyle&&(d=null!=this.graph.themes?this.graph.themes[f]:mxUtils.load(STYLE_PATH+"/"+f+".xml").getDocumentElement(),null!=d&&(e=new mxCodec(d.ownerDocument),e.decode(d,this.graph.getStylesheet())));else if(d=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=d){var e=new mxCodec(d.ownerDocument);
e.decode(d,this.graph.getStylesheet())}this.graph.currentStyle=f;this.graph.mathEnabled="1"==urlParams.math||"1"==c.getAttribute("math");f=c.getAttribute("backgroundImage");null!=f?this.graph.setBackgroundImage(this.graph.parseBackgroundImage(f)):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();
-this.graph.setShadowVisible("1"==c.getAttribute("shadow"),!1);if(f=c.getAttribute("extFonts"))try{for(f=f.split("|").map(function(b){b=b.split("^");return{name:b[0],url:b[1]}}),d=0;d<f.length;d++)this.graph.addExtFont(f[d].name,f[d].url)}catch(ea){console.log("ExtFonts format error: "+ea.message)}else null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(this.graph.extFonts=[])}b.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};
+this.graph.setShadowVisible("1"==c.getAttribute("shadow"),!1);if(f=c.getAttribute("extFonts"))try{for(f=f.split("|").map(function(b){b=b.split("^");return{name:b[0],url:b[1]}}),d=0;d<f.length;d++)this.graph.addExtFont(f[d].name,f[d].url)}catch(fa){console.log("ExtFonts format error: "+fa.message)}else null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(this.graph.extFonts=[])}b.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};
};var e=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(b,c){b=null!=b?b:!0;var f=e.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&f.setAttribute("style",this.graph.currentStyle);var d=this.graph.getBackgroundImageObject(this.graph.backgroundImage,c);null!=d&&f.setAttribute("backgroundImage",JSON.stringify(d));f.setAttribute("math",this.graph.mathEnabled?"1":"0");f.setAttribute("shadow",this.graph.shadowVisible?"1":"0");null!=this.graph.extFonts&&
0<this.graph.extFonts.length&&(d=this.graph.extFonts.map(function(b){return b.name+"^"+b.url}),f.setAttribute("extFonts",d.join("|")));return f};Editor.prototype.isDataSvg=function(b){try{var c=mxUtils.parseXml(b).documentElement.getAttribute("content");if(null!=c&&(null!=c&&"<"!=c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),null!=c&&0<c.length)){var f=mxUtils.parseXml(c).documentElement;return"mxfile"==
-f.nodeName||"mxGraphModel"==f.nodeName}}catch(oa){}return!1};Editor.prototype.extractGraphModel=function(b,c,f){return Editor.extractGraphModel.apply(this,arguments)};var d=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&
+f.nodeName||"mxGraphModel"==f.nodeName}}catch(ja){}return!1};Editor.prototype.extractGraphModel=function(b,c,f){return Editor.extractGraphModel.apply(this,arguments)};var d=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&
this.graph.isCssTransformsSupported();this.graph.updateCssTransform();d.apply(this,arguments)};var c=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){c.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.mathJaxWebkitCss=
"div.MathJax_SVG_Display { position: static; }\nspan.MathJax_SVG { position: static !important; }";Editor.initMath=function(b,c){if("undefined"===typeof window.MathJax){b=(null!=b?b:DRAW_MATH_URL+"/MathJax.js")+"?config=TeX-MML-AM_"+("html"==urlParams["math-output"]?"HTMLorMML":"SVG")+"-full,Safe";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(b){window.setTimeout(function(){"hidden"!=b.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,b])},0)};var f=null!=urlParams["math-font"]?
decodeURIComponent(urlParams["math-font"]):"TeX";c=null!=c?c:{"HTML-CSS":{availableFonts:[f],imageFont:null},SVG:{font:f,useFontCache:!1},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(c);MathJax.Hub.Register.StartupHook("Begin",function(){for(var b=0;b<Editor.mathJaxQueue.length;b++)Editor.doMathJaxRender(Editor.mathJaxQueue[b])})}};Editor.MathJaxRender=
@@ -11064,27 +11064,27 @@ var c=[];b.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\
null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(b)||"https://raw.githubusercontent.com/"===b.substring(0,34)||"https://fonts.googleapis.com/"===b.substring(0,29)||"https://fonts.gstatic.com/"===b.substring(0,26)};Editor.prototype.createImageUrlConverter=function(){var b=new mxUrlConverter;b.updateBaseUrl();var c=b.convert,f=this;b.convert=function(d){if(null!=d){var e="http://"==d.substring(0,7)||"https://"==
d.substring(0,8);e&&!navigator.onLine?d=Editor.svgBrokenImage.src:!e||d.substring(0,b.baseUrl.length)==b.baseUrl||f.crossOriginImages&&f.isCorsEnabledForUrl(d)?"chrome-extension://"==d.substring(0,19)||mxClient.IS_CHROMEAPP||(d=c.apply(this,arguments)):d=PROXY_URL+"?url="+encodeURIComponent(d)}return d};return b};Editor.createSvgDataUri=function(b){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(b)))};Editor.prototype.convertImageToDataUri=function(b,c){try{var f=!0,d=window.setTimeout(mxUtils.bind(this,
function(){f=!1;c(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(b))mxUtils.get(b,mxUtils.bind(this,function(b){window.clearTimeout(d);f&&c(Editor.createSvgDataUri(b.getText()))}),function(){window.clearTimeout(d);f&&c(Editor.svgBrokenImage.src)});else{var e=new Image;this.crossOriginImages&&(e.crossOrigin="anonymous");e.onload=function(){window.clearTimeout(d);if(f)try{var b=document.createElement("canvas"),l=b.getContext("2d");b.height=e.height;b.width=e.width;l.drawImage(e,0,0);
-c(b.toDataURL())}catch(na){c(Editor.svgBrokenImage.src)}};e.onerror=function(){window.clearTimeout(d);f&&c(Editor.svgBrokenImage.src)};e.src=b}}catch(U){c(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(b,c,f,d){null==d&&(d=this.createImageUrlConverter());var e=0,l=f||{};f=mxUtils.bind(this,function(f,m){for(var g=b.getElementsByTagName(f),p=0;p<g.length;p++)mxUtils.bind(this,function(f){try{if(null!=f){var g=d.convert(f.getAttribute(m));if(null!=g&&"data:"!=g.substring(0,5)){var p=
-l[g];null==p?(e++,this.convertImageToDataUri(g,function(d){null!=d&&(l[g]=d,f.setAttribute(m,d));e--;0==e&&c(b)})):f.setAttribute(m,p)}else null!=g&&f.setAttribute(m,g)}}catch(fa){}})(g[p])});f("image","xlink:href");f("img","src");0==e&&c(b)};Editor.base64Encode=function(b){for(var c="",f=0,d=b.length,e,l,m;f<d;){e=b.charCodeAt(f++)&255;if(f==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&
+c(b.toDataURL())}catch(oa){c(Editor.svgBrokenImage.src)}};e.onerror=function(){window.clearTimeout(d);f&&c(Editor.svgBrokenImage.src)};e.src=b}}catch(U){c(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(b,c,f,d){null==d&&(d=this.createImageUrlConverter());var e=0,l=f||{};f=mxUtils.bind(this,function(f,m){for(var p=b.getElementsByTagName(f),g=0;g<p.length;g++)mxUtils.bind(this,function(f){try{if(null!=f){var p=d.convert(f.getAttribute(m));if(null!=p&&"data:"!=p.substring(0,5)){var g=
+l[p];null==g?(e++,this.convertImageToDataUri(p,function(d){null!=d&&(l[p]=d,f.setAttribute(m,d));e--;0==e&&c(b)})):f.setAttribute(m,g)}else null!=p&&f.setAttribute(m,p)}}catch(ea){}})(p[g])});f("image","xlink:href");f("img","src");0==e&&c(b)};Editor.base64Encode=function(b){for(var c="",f=0,d=b.length,e,l,m;f<d;){e=b.charCodeAt(f++)&255;if(f==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&
3)<<4);c+="==";break}l=b.charCodeAt(f++);if(f==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(l&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((l&15)<<2);c+="=";break}m=b.charCodeAt(f++);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&
-3)<<4|(l&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((l&15)<<2|(m&192)>>6);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(m&63)}return c};Editor.prototype.loadUrl=function(b,c,f,d,e,l,m,g){try{var p=!m&&(d||/(\.png)($|\?)/i.test(b)||/(\.jpe?g)($|\?)/i.test(b)||/(\.gif)($|\?)/i.test(b)||/(\.pdf)($|\?)/i.test(b));e=null!=e?e:!0;var k=mxUtils.bind(this,function(){mxUtils.get(b,mxUtils.bind(this,function(b){if(200<=b.getStatus()&&
-299>=b.getStatus()){if(null!=c){var d=b.getText();if(p){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){b=mxUtilsBinaryToArray(b.request.responseBody).toArray();for(var d=Array(b.length),e=0;e<b.length;e++)d[e]=String.fromCharCode(b[e]);d=d.join("")}l=null!=l?l:"data:image/png;base64,";d=l+Editor.base64Encode(d)}c(d)}}else null!=f&&(0==b.getStatus()?f({message:mxResources.get("accessDenied")},b):f({message:mxResources.get("error")+" "+b.getStatus()},
-b))}),function(b){null!=f&&f({message:mxResources.get("error")+" "+b.getStatus()})},p,this.timeout,function(){e&&null!=f&&f({code:App.ERROR_TIMEOUT,retry:k})},g)});k()}catch(V){null!=f&&f(V)}};Editor.prototype.absoluteCssFonts=function(b){var c=null;if(null!=b){var f=b.split("url(");if(0<f.length){c=[f[0]];b=window.location.pathname;var d=null!=b?b.lastIndexOf("/"):-1;0<=d&&(b=b.substring(0,d+1));var d=document.getElementsByTagName("base"),e=null;null!=d&&0<d.length&&(e=d[0].getAttribute("href"));
+3)<<4|(l&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((l&15)<<2|(m&192)>>6);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(m&63)}return c};Editor.prototype.loadUrl=function(b,c,f,d,e,l,m,p){try{var g=!m&&(d||/(\.png)($|\?)/i.test(b)||/(\.jpe?g)($|\?)/i.test(b)||/(\.gif)($|\?)/i.test(b)||/(\.pdf)($|\?)/i.test(b));e=null!=e?e:!0;var k=mxUtils.bind(this,function(){mxUtils.get(b,mxUtils.bind(this,function(b){if(200<=b.getStatus()&&
+299>=b.getStatus()){if(null!=c){var d=b.getText();if(g){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){b=mxUtilsBinaryToArray(b.request.responseBody).toArray();for(var d=Array(b.length),e=0;e<b.length;e++)d[e]=String.fromCharCode(b[e]);d=d.join("")}l=null!=l?l:"data:image/png;base64,";d=l+Editor.base64Encode(d)}c(d)}}else null!=f&&(0==b.getStatus()?f({message:mxResources.get("accessDenied")},b):f({message:mxResources.get("error")+" "+b.getStatus()},
+b))}),function(b){null!=f&&f({message:mxResources.get("error")+" "+b.getStatus()})},g,this.timeout,function(){e&&null!=f&&f({code:App.ERROR_TIMEOUT,retry:k})},p)});k()}catch(V){null!=f&&f(V)}};Editor.prototype.absoluteCssFonts=function(b){var c=null;if(null!=b){var f=b.split("url(");if(0<f.length){c=[f[0]];b=window.location.pathname;var d=null!=b?b.lastIndexOf("/"):-1;0<=d&&(b=b.substring(0,d+1));var d=document.getElementsByTagName("base"),e=null;null!=d&&0<d.length&&(e=d[0].getAttribute("href"));
for(var l=1;l<f.length;l++)if(d=f[l].indexOf(")"),0<d){var m=Editor.trimCssUrl(f[l].substring(0,d));this.graph.isRelativeUrl(m)&&(m=null!=e?e+m:window.location.protocol+"//"+window.location.hostname+("/"==m.charAt(0)?"":b)+m);c.push('url("'+m+'"'+f[l].substring(d))}else c.push(f[l])}else c=[b]}return null!=c?c.join(""):null};Editor.prototype.mapFontUrl=function(b,c,f){/^https?:\/\//.test(c)&&!this.isCorsEnabledForUrl(c)&&(c=PROXY_URL+"?url="+encodeURIComponent(c));f(b,c)};Editor.prototype.embedCssFonts=
-function(b,c){var f=b.split("url("),d=0;null==this.cachedFonts&&(this.cachedFonts={});var e=mxUtils.bind(this,function(){if(0==d){for(var b=[f[0]],e=1;e<f.length;e++){var l=f[e].indexOf(")");b.push('url("');b.push(this.cachedFonts[Editor.trimCssUrl(f[e].substring(0,l))]);b.push('"'+f[e].substring(l))}c(b.join(""))}});if(0<f.length){for(var l=1;l<f.length;l++){var m=f[l].indexOf(")"),g=null,p=f[l].indexOf("format(",m);0<p&&(g=Editor.trimCssUrl(f[l].substring(p+7,f[l].indexOf(")",p))));mxUtils.bind(this,
-function(b){if(null==this.cachedFonts[b]){this.cachedFonts[b]=b;d++;var c="application/x-font-ttf";if("svg"==g||/(\.svg)($|\?)/i.test(b))c="image/svg+xml";else if("otf"==g||"embedded-opentype"==g||/(\.otf)($|\?)/i.test(b))c="application/x-font-opentype";else if("woff"==g||/(\.woff)($|\?)/i.test(b))c="application/font-woff";else if("woff2"==g||/(\.woff2)($|\?)/i.test(b))c="application/font-woff2";else if("eot"==g||/(\.eot)($|\?)/i.test(b))c="application/vnd.ms-fontobject";else if("sfnt"==g||/(\.sfnt)($|\?)/i.test(b))c=
-"application/font-sfnt";this.mapFontUrl(c,b,mxUtils.bind(this,function(c,f){this.loadUrl(f,mxUtils.bind(this,function(c){this.cachedFonts[b]=c;d--;e()}),mxUtils.bind(this,function(b){d--;e()}),!0,null,"data:"+c+";charset=utf-8;base64,")}))}})(Editor.trimCssUrl(f[l].substring(0,m)),g)}e()}else c(b)};Editor.prototype.loadFonts=function(b){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(c){this.resolvedFontCss=c;null!=b&&b()})):null!=b&&b()};
+function(b,c){var f=b.split("url("),d=0;null==this.cachedFonts&&(this.cachedFonts={});var e=mxUtils.bind(this,function(){if(0==d){for(var b=[f[0]],e=1;e<f.length;e++){var l=f[e].indexOf(")");b.push('url("');b.push(this.cachedFonts[Editor.trimCssUrl(f[e].substring(0,l))]);b.push('"'+f[e].substring(l))}c(b.join(""))}});if(0<f.length){for(var l=1;l<f.length;l++){var m=f[l].indexOf(")"),p=null,g=f[l].indexOf("format(",m);0<g&&(p=Editor.trimCssUrl(f[l].substring(g+7,f[l].indexOf(")",g))));mxUtils.bind(this,
+function(b){if(null==this.cachedFonts[b]){this.cachedFonts[b]=b;d++;var c="application/x-font-ttf";if("svg"==p||/(\.svg)($|\?)/i.test(b))c="image/svg+xml";else if("otf"==p||"embedded-opentype"==p||/(\.otf)($|\?)/i.test(b))c="application/x-font-opentype";else if("woff"==p||/(\.woff)($|\?)/i.test(b))c="application/font-woff";else if("woff2"==p||/(\.woff2)($|\?)/i.test(b))c="application/font-woff2";else if("eot"==p||/(\.eot)($|\?)/i.test(b))c="application/vnd.ms-fontobject";else if("sfnt"==p||/(\.sfnt)($|\?)/i.test(b))c=
+"application/font-sfnt";this.mapFontUrl(c,b,mxUtils.bind(this,function(c,f){this.loadUrl(f,mxUtils.bind(this,function(c){this.cachedFonts[b]=c;d--;e()}),mxUtils.bind(this,function(b){d--;e()}),!0,null,"data:"+c+";charset=utf-8;base64,")}))}})(Editor.trimCssUrl(f[l].substring(0,m)),p)}e()}else c(b)};Editor.prototype.loadFonts=function(b){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(c){this.resolvedFontCss=c;null!=b&&b()})):null!=b&&b()};
Editor.prototype.createGoogleFontCache=function(){var b={},c;for(c in Graph.fontMapping)Graph.isCssFontUrl(c)&&(b[c]=Graph.fontMapping[c]);return b};Editor.prototype.embedExtFonts=function(b){var c=this.graph.getCustomFonts();if(0<c.length){var f=[],d=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts=this.createGoogleFontCache());for(var e=mxUtils.bind(this,function(){0==d&&this.embedCssFonts(f.join(""),b)}),l=0;l<c.length;l++)mxUtils.bind(this,function(b,c){Graph.isCssFontUrl(c)?null==this.cachedGoogleFonts[c]?
(d++,this.loadUrl(c,mxUtils.bind(this,function(b){this.cachedGoogleFonts[c]=b;f.push(b+"\n");d--;e()}),mxUtils.bind(this,function(b){d--;f.push("@import url("+c+");\n");e()}))):f.push(this.cachedGoogleFonts[c]+"\n"):f.push('@font-face {font-family: "'+b+'";src: url("'+c+'")}\n')})(c[l].name,c[l].url);e()}else b()};Editor.prototype.addMathCss=function(b){b=b.getElementsByTagName("defs");if(null!=b&&0<b.length)for(var c=document.getElementsByTagName("style"),f=0;f<c.length;f++){var d=mxUtils.getTextContent(c[f]);
0>d.indexOf("mxPageSelector")&&0<d.indexOf("MathJax")&&b[0].appendChild(c[f].cloneNode(!0))}};Editor.prototype.addFontCss=function(b,c){c=null!=c?c:this.absoluteCssFonts(this.fontCss);if(null!=c){var f=b.getElementsByTagName("defs"),d=b.ownerDocument;0==f.length?(f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"defs"):d.createElement("defs"),null!=b.firstChild?b.insertBefore(f,b.firstChild):b.appendChild(f)):f=f[0];d=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"style"):
-d.createElement("style");d.setAttribute("type","text/css");mxUtils.setTextContent(d,c);f.appendChild(d)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(b,c,f){var d=mxClient.IS_FF?8192:16384;return Math.min(f,Math.min(d/b,d/c))};Editor.prototype.exportToCanvas=function(b,c,f,d,e,l,m,g,p,k,q,t,n,v,u,A,x,z){try{l=null!=l?l:!0;m=null!=m?m:!0;t=null!=t?t:this.graph;n=null!=n?n:0;var D=p?null:t.background;
-D==mxConstants.NONE&&(D=null);null==D&&(D=d);null==D&&0==p&&(D=A?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(t.getSvg(null,null,n,v,null,m,null,null,null,k,null,A,x,z),mxUtils.bind(this,function(f){try{var d=new Image;d.onload=mxUtils.bind(this,function(){try{var m=function(){mxClient.IS_SF?window.setTimeout(function(){v.drawImage(d,0,0);b(p,f)},0):(v.drawImage(d,0,0),b(p,f))},p=document.createElement("canvas"),k=parseInt(f.getAttribute("width")),q=parseInt(f.getAttribute("height"));
-g=null!=g?g:1;null!=c&&(g=l?Math.min(1,Math.min(3*c/(4*q),c/k)):c/k);g=this.getMaxCanvasScale(k,q,g);k=Math.ceil(g*k);q=Math.ceil(g*q);p.setAttribute("width",k);p.setAttribute("height",q);var v=p.getContext("2d");null!=D&&(v.beginPath(),v.rect(0,0,k,q),v.fillStyle=D,v.fill());1!=g&&v.scale(g,g);if(u){var A=t.view,x=A.scale;A.scale=1;var z=btoa(unescape(encodeURIComponent(A.createSvgGrid(A.gridColor))));A.scale=x;var z="data:image/svg+xml;base64,"+z,G=t.gridSize*A.gridSteps*g,E=t.getGraphBounds(),
-H=A.translate.x*x,M=A.translate.y*x,y=H+(E.x-H)/x-n,F=M+(E.y-M)/x-n,L=new Image;L.onload=function(){try{for(var b=-Math.round(G-mxUtils.mod((H-y)*g,G)),c=-Math.round(G-mxUtils.mod((M-F)*g,G));b<k;b+=G)for(var f=c;f<q;f+=G)v.drawImage(L,b/g,f/g);m()}catch(Ea){null!=e&&e(Ea)}};L.onerror=function(b){null!=e&&e(b)};L.src=z}else m()}catch(Aa){null!=e&&e(Aa)}});d.onerror=function(b){null!=e&&e(b)};k&&this.graph.addSvgShadow(f);this.graph.mathEnabled&&this.addMathCss(f);var m=mxUtils.bind(this,function(){try{null!=
+d.createElement("style");d.setAttribute("type","text/css");mxUtils.setTextContent(d,c);f.appendChild(d)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(b,c,f){var d=mxClient.IS_FF?8192:16384;return Math.min(f,Math.min(d/b,d/c))};Editor.prototype.exportToCanvas=function(b,c,f,d,e,l,m,p,g,k,q,t,n,v,u,A,x,z){try{l=null!=l?l:!0;m=null!=m?m:!0;t=null!=t?t:this.graph;n=null!=n?n:0;var D=g?null:t.background;
+D==mxConstants.NONE&&(D=null);null==D&&(D=d);null==D&&0==g&&(D=A?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(t.getSvg(null,null,n,v,null,m,null,null,null,k,null,A,x,z),mxUtils.bind(this,function(f){try{var d=new Image;d.onload=mxUtils.bind(this,function(){try{var m=function(){mxClient.IS_SF?window.setTimeout(function(){v.drawImage(d,0,0);b(g,f)},0):(v.drawImage(d,0,0),b(g,f))},g=document.createElement("canvas"),k=parseInt(f.getAttribute("width")),q=parseInt(f.getAttribute("height"));
+p=null!=p?p:1;null!=c&&(p=l?Math.min(1,Math.min(3*c/(4*q),c/k)):c/k);p=this.getMaxCanvasScale(k,q,p);k=Math.ceil(p*k);q=Math.ceil(p*q);g.setAttribute("width",k);g.setAttribute("height",q);var v=g.getContext("2d");null!=D&&(v.beginPath(),v.rect(0,0,k,q),v.fillStyle=D,v.fill());1!=p&&v.scale(p,p);if(u){var A=t.view,x=A.scale;A.scale=1;var z=btoa(unescape(encodeURIComponent(A.createSvgGrid(A.gridColor))));A.scale=x;var z="data:image/svg+xml;base64,"+z,F=t.gridSize*A.gridSteps*p,E=t.getGraphBounds(),
+H=A.translate.x*x,M=A.translate.y*x,y=H+(E.x-H)/x-n,L=M+(E.y-M)/x-n,G=new Image;G.onload=function(){try{for(var b=-Math.round(F-mxUtils.mod((H-y)*p,F)),c=-Math.round(F-mxUtils.mod((M-L)*p,F));b<k;b+=F)for(var f=c;f<q;f+=F)v.drawImage(G,b/p,f/p);m()}catch(Ea){null!=e&&e(Ea)}};G.onerror=function(b){null!=e&&e(b)};G.src=z}else m()}catch(Aa){null!=e&&e(Aa)}});d.onerror=function(b){null!=e&&e(b)};k&&this.graph.addSvgShadow(f);this.graph.mathEnabled&&this.addMathCss(f);var m=mxUtils.bind(this,function(){try{null!=
this.resolvedFontCss&&this.addFontCss(f,this.resolvedFontCss),d.src=Editor.createSvgDataUri(mxUtils.getXml(f))}catch(sa){null!=e&&e(sa)}});this.embedExtFonts(mxUtils.bind(this,function(b){try{null!=b&&this.addFontCss(f,b),this.loadFonts(m)}catch(ha){null!=e&&e(ha)}}))}catch(sa){null!=e&&e(sa)}}),f,q)}catch(ka){null!=e&&e(ka)}};Editor.crcTable=[];for(var g=0;256>g;g++)for(var k=g,n=0;8>n;n++)k=1==(k&1)?3988292384^k>>>1:k>>>1,Editor.crcTable[g]=k;Editor.updateCRC=function(b,c,f,d){for(var e=0;e<d;e++)b=
-Editor.crcTable[(b^c.charCodeAt(f+e))&255]^b>>>8;return b};Editor.crc32=function(b){for(var c=-1,f=0;f<b.length;f++)c=c>>>8^Editor.crcTable[(c^b.charCodeAt(f))&255];return(c^-1)>>>0};Editor.writeGraphModelToPng=function(b,c,f,d,e){function l(b,c){var f=p;p+=c;return b.substring(f,p)}function m(b){b=l(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}function g(b){return String.fromCharCode(b>>24&255,b>>16&255,b>>8&255,b&255)}b=b.substring(b.indexOf(",")+
-1);b=window.atob?atob(b):Base64.decode(b,!0);var p=0;if(l(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(l(b,4),"IHDR"!=l(b,4))null!=e&&e();else{l(b,17);e=b.substring(0,p);do{var k=m(b);if("IDAT"==l(b,4)){e=b.substring(0,p-8);"pHYs"==c&&"dpi"==f?(f=Math.round(d/.0254),f=g(f)+g(f)+String.fromCharCode(1)):f=f+String.fromCharCode(0)+("zTXt"==c?String.fromCharCode(0):"")+d;d=4294967295;d=Editor.updateCRC(d,c,0,4);d=Editor.updateCRC(d,f,0,f.length);e+=g(f.length)+
-c+f+g(d^4294967295);e+=b.substring(p-8,b.length);break}e+=b.substring(p-8,p-4+k);l(b,k);l(b,4)}while(k);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var f=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(b,c){f.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var l=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=
+Editor.crcTable[(b^c.charCodeAt(f+e))&255]^b>>>8;return b};Editor.crc32=function(b){for(var c=-1,f=0;f<b.length;f++)c=c>>>8^Editor.crcTable[(c^b.charCodeAt(f))&255];return(c^-1)>>>0};Editor.writeGraphModelToPng=function(b,c,f,d,e){function l(b,c){var f=g;g+=c;return b.substring(f,g)}function m(b){b=l(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}function p(b){return String.fromCharCode(b>>24&255,b>>16&255,b>>8&255,b&255)}b=b.substring(b.indexOf(",")+
+1);b=window.atob?atob(b):Base64.decode(b,!0);var g=0;if(l(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(l(b,4),"IHDR"!=l(b,4))null!=e&&e();else{l(b,17);e=b.substring(0,g);do{var k=m(b);if("IDAT"==l(b,4)){e=b.substring(0,g-8);"pHYs"==c&&"dpi"==f?(f=Math.round(d/.0254),f=p(f)+p(f)+String.fromCharCode(1)):f=f+String.fromCharCode(0)+("zTXt"==c?String.fromCharCode(0):"")+d;d=4294967295;d=Editor.updateCRC(d,c,0,4);d=Editor.updateCRC(d,f,0,f.length);e+=p(f.length)+
+c+f+p(d^4294967295);e+=b.substring(g-8,b.length);break}e+=b.substring(g-8,g-4+k);l(b,k);l(b,4)}while(k);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var f=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(b,c){f.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var l=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=
function(){l.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(b,c){var f=null;null!=b.editor.graph.getModel().getParent(c)?f=c.getId():null!=b.currentPage&&(f=b.currentPage.getId());return f});if(null!=window.StyleFormatPanel){var m=Format.prototype.init;Format.prototype.init=function(){m.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var p=Format.prototype.refresh;
Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?p.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var b=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=b&&b.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(b){return!1};var q=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(b){b=q.apply(this,arguments);
this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var c=this.editorUi,f=c.editor.graph,d=this.createOption(mxResources.get("shadow"),function(){return f.shadowVisible},function(b){var d=new ChangePageSetup(c);d.ignoreColor=!0;d.ignoreImage=!0;d.shadowVisible=b;f.model.execute(d)},{install:function(b){this.listener=function(){b(f.shadowVisible)};c.addListener("shadowVisibleChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});Editor.enableShadowOption||
@@ -11116,33 +11116,33 @@ font:"#ffffff"}],[{fill:"",stroke:""},{fill:mxConstants.NONE,stroke:""},{fill:"#
function(b,c,f){if(null!=c){var d=function(b){if(null!=b)if(f)for(var d=0;d<b.length;d++)c[b[d].name]=b[d];else for(var e in c){for(var l=!1,d=0;d<b.length;d++)if(b[d].name==e&&b[d].type==c[e].type){l=!0;break}l||delete c[e]}},e=this.editorUi.editor.graph.view.getState(b);null!=e&&null!=e.shape&&(e.shape.commonCustomPropAdded||(e.shape.commonCustomPropAdded=!0,e.shape.customProperties=e.shape.customProperties||[],e.cell.vertex?Array.prototype.push.apply(e.shape.customProperties,Editor.commonVertexProperties):
Array.prototype.push.apply(e.shape.customProperties,Editor.commonEdgeProperties)),d(e.shape.customProperties));b=b.getAttribute("customProperties");if(null!=b)try{d(JSON.parse(b))}catch(U){}}};var v=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var b=this.editorUi.getSelectionState();"image"!=b.style.shape&&!b.containsLabel&&0<b.cells.length&&this.container.appendChild(this.addStyles(this.createPanel()));v.apply(this,arguments);if(Editor.enableCustomProperties){for(var c=
{},f=b.vertices,d=b.edges,e=0;e<f.length;e++)this.findCommonProperties(f[e],c,0==e);for(e=0;e<d.length;e++)this.findCommonProperties(d[e],c,0==f.length&&0==e);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(c).length&&this.container.appendChild(this.addProperties(this.createPanel(),c,b))}};var u=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(b){this.addActions(b,["copyStyle","pasteStyle"]);return u.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=
-!0;StyleFormatPanel.prototype.addProperties=function(b,c,f){function d(b,c,f,d){t.getModel().beginUpdate();try{var e=[],l=[];if(null!=f.index){for(var m=[],g=f.parentRow.nextSibling;g&&g.getAttribute("data-pName")==b;)m.push(g.getAttribute("data-pValue")),g=g.nextSibling;f.index<m.length?null!=d?m.splice(d,1):m[f.index]=c:m.push(c);null!=f.size&&m.length>f.size&&(m=m.slice(0,f.size));c=m.join(",");null!=f.countProperty&&(t.setCellStyles(f.countProperty,m.length,t.getSelectionCells()),e.push(f.countProperty),
-l.push(m.length))}t.setCellStyles(b,c,t.getSelectionCells());e.push(b);l.push(c);if(null!=f.dependentProps)for(b=0;b<f.dependentProps.length;b++){var p=f.dependentPropsDefVal[b],k=f.dependentPropsVals[b];if(k.length>c)k=k.slice(0,c);else for(var n=k.length;n<c;n++)k.push(p);k=k.join(",");t.setCellStyles(f.dependentProps[b],k,t.getSelectionCells());e.push(f.dependentProps[b]);l.push(k)}if("function"==typeof f.onChange)f.onChange(t,c);q.editorUi.fireEvent(new mxEventObject("styleChanged","keys",e,"values",
+!0;StyleFormatPanel.prototype.addProperties=function(b,c,f){function d(b,c,f,d){t.getModel().beginUpdate();try{var e=[],l=[];if(null!=f.index){for(var m=[],p=f.parentRow.nextSibling;p&&p.getAttribute("data-pName")==b;)m.push(p.getAttribute("data-pValue")),p=p.nextSibling;f.index<m.length?null!=d?m.splice(d,1):m[f.index]=c:m.push(c);null!=f.size&&m.length>f.size&&(m=m.slice(0,f.size));c=m.join(",");null!=f.countProperty&&(t.setCellStyles(f.countProperty,m.length,t.getSelectionCells()),e.push(f.countProperty),
+l.push(m.length))}t.setCellStyles(b,c,t.getSelectionCells());e.push(b);l.push(c);if(null!=f.dependentProps)for(b=0;b<f.dependentProps.length;b++){var g=f.dependentPropsDefVal[b],k=f.dependentPropsVals[b];if(k.length>c)k=k.slice(0,c);else for(var n=k.length;n<c;n++)k.push(g);k=k.join(",");t.setCellStyles(f.dependentProps[b],k,t.getSelectionCells());e.push(f.dependentProps[b]);l.push(k)}if("function"==typeof f.onChange)f.onChange(t,c);q.editorUi.fireEvent(new mxEventObject("styleChanged","keys",e,"values",
l,"cells",t.getSelectionCells()))}finally{t.getModel().endUpdate()}}function e(c,f,d){var e=mxUtils.getOffset(b,!0),l=mxUtils.getOffset(c,!0);f.style.position="absolute";f.style.left=l.x-e.x+"px";f.style.top=l.y-e.y+"px";f.style.width=c.offsetWidth+"px";f.style.height=c.offsetHeight-(d?4:0)+"px";f.style.zIndex=5}function l(b,c,f){var e=document.createElement("div");e.style.width="32px";e.style.height="4px";e.style.margin="2px";e.style.border="1px solid black";e.style.background=c&&"none"!=c?c:"url('"+
-Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,function(l){this.editorUi.pickColor(c,function(c){e.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+"')":c;d(b,c,f)});mxEvent.consume(l)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(e);return btn}function m(b,c,f,e,l,m,g){null!=c&&(c=c.split(","),n.push({name:b,values:c,type:f,defVal:e,countProperty:l,parentRow:m,isDeletable:!0,flipBkg:g}));btn=mxUtils.button("+",
-mxUtils.bind(q,function(c){for(var p=m,q=0;null!=p.nextSibling;)if(p.nextSibling.getAttribute("data-pName")==b)p=p.nextSibling,q++;else break;var t={type:f,parentRow:m,index:q,isDeletable:!0,defVal:e,countProperty:l},q=k(b,"",t,0==q%2,g);d(b,e,t);p.parentNode.insertBefore(q,p.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function g(b,c,f,d,e,l,m){if(0<e){var g=Array(e);c=null!=c?c.split(","):[];for(var p=0;p<e;p++)g[p]=null!=
-c[p]?c[p]:null!=d?d:"";n.push({name:b,values:g,type:f,defVal:d,parentRow:l,flipBkg:m,size:e})}return document.createElement("div")}function p(b,c,f){var e=document.createElement("input");e.type="checkbox";e.checked="1"==c;mxEvent.addListener(e,"change",function(){d(b,e.checked?"1":"0",f)});return e}function k(c,f,k,t,n){var v=k.dispName,u=k.type,A=document.createElement("tr");A.className="gePropRow"+(n?"Dark":"")+(t?"Alt":"")+" gePropNonHeaderRow";A.setAttribute("data-pName",c);A.setAttribute("data-pValue",
-f);t=!1;null!=k.index&&(A.setAttribute("data-index",k.index),v=(null!=v?v:"")+"["+k.index+"]",t=!0);var x=document.createElement("td");x.className="gePropRowCell";v=mxResources.get(v,null,v);mxUtils.write(x,v);x.setAttribute("title",v);t&&(x.style.textAlign="right");A.appendChild(x);x=document.createElement("td");x.className="gePropRowCell";if("color"==u)x.appendChild(l(c,f,k));else if("bool"==u||"boolean"==u)x.appendChild(p(c,f,k));else if("enum"==u){var z=k.enumList;for(n=0;n<z.length;n++)if(v=
-z[n],v.val==f){mxUtils.write(x,mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(x,"click",mxUtils.bind(q,function(){var l=document.createElement("select");e(x,l);for(var m=0;m<z.length;m++){var g=z[m],p=document.createElement("option");p.value=mxUtils.htmlEntities(g.val);mxUtils.write(p,mxResources.get(g.dispName,null,g.dispName));l.appendChild(p)}l.value=f;b.appendChild(l);mxEvent.addListener(l,"change",function(){var b=mxUtils.htmlEntities(l.value);d(c,b,k)});l.focus();mxEvent.addListener(l,
-"blur",function(){b.removeChild(l)})}))}else"dynamicArr"==u?x.appendChild(m(c,f,k.subType,k.subDefVal,k.countProperty,A,n)):"staticArr"==u?x.appendChild(g(c,f,k.subType,k.subDefVal,k.size,A,n)):"readOnly"==u?(n=document.createElement("input"),n.setAttribute("readonly",""),n.value=f,n.style.width="96px",n.style.borderWidth="0px",x.appendChild(n)):(x.innerHTML=mxUtils.htmlEntities(decodeURIComponent(f)),mxEvent.addListener(x,"click",mxUtils.bind(q,function(){function l(){var b=m.value,b=0==b.length&&
+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,function(l){this.editorUi.pickColor(c,function(c){e.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+"')":c;d(b,c,f)});mxEvent.consume(l)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(e);return btn}function m(b,c,f,e,l,m,p){null!=c&&(c=c.split(","),n.push({name:b,values:c,type:f,defVal:e,countProperty:l,parentRow:m,isDeletable:!0,flipBkg:p}));btn=mxUtils.button("+",
+mxUtils.bind(q,function(c){for(var g=m,q=0;null!=g.nextSibling;)if(g.nextSibling.getAttribute("data-pName")==b)g=g.nextSibling,q++;else break;var t={type:f,parentRow:m,index:q,isDeletable:!0,defVal:e,countProperty:l},q=k(b,"",t,0==q%2,p);d(b,e,t);g.parentNode.insertBefore(q,g.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function p(b,c,f,d,e,l,m){if(0<e){var p=Array(e);c=null!=c?c.split(","):[];for(var g=0;g<e;g++)p[g]=null!=
+c[g]?c[g]:null!=d?d:"";n.push({name:b,values:p,type:f,defVal:d,parentRow:l,flipBkg:m,size:e})}return document.createElement("div")}function g(b,c,f){var e=document.createElement("input");e.type="checkbox";e.checked="1"==c;mxEvent.addListener(e,"change",function(){d(b,e.checked?"1":"0",f)});return e}function k(c,f,k,t,n){var v=k.dispName,u=k.type,A=document.createElement("tr");A.className="gePropRow"+(n?"Dark":"")+(t?"Alt":"")+" gePropNonHeaderRow";A.setAttribute("data-pName",c);A.setAttribute("data-pValue",
+f);t=!1;null!=k.index&&(A.setAttribute("data-index",k.index),v=(null!=v?v:"")+"["+k.index+"]",t=!0);var x=document.createElement("td");x.className="gePropRowCell";v=mxResources.get(v,null,v);mxUtils.write(x,v);x.setAttribute("title",v);t&&(x.style.textAlign="right");A.appendChild(x);x=document.createElement("td");x.className="gePropRowCell";if("color"==u)x.appendChild(l(c,f,k));else if("bool"==u||"boolean"==u)x.appendChild(g(c,f,k));else if("enum"==u){var z=k.enumList;for(n=0;n<z.length;n++)if(v=
+z[n],v.val==f){mxUtils.write(x,mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(x,"click",mxUtils.bind(q,function(){var l=document.createElement("select");e(x,l);for(var m=0;m<z.length;m++){var p=z[m],g=document.createElement("option");g.value=mxUtils.htmlEntities(p.val);mxUtils.write(g,mxResources.get(p.dispName,null,p.dispName));l.appendChild(g)}l.value=f;b.appendChild(l);mxEvent.addListener(l,"change",function(){var b=mxUtils.htmlEntities(l.value);d(c,b,k)});l.focus();mxEvent.addListener(l,
+"blur",function(){b.removeChild(l)})}))}else"dynamicArr"==u?x.appendChild(m(c,f,k.subType,k.subDefVal,k.countProperty,A,n)):"staticArr"==u?x.appendChild(p(c,f,k.subType,k.subDefVal,k.size,A,n)):"readOnly"==u?(n=document.createElement("input"),n.setAttribute("readonly",""),n.value=f,n.style.width="96px",n.style.borderWidth="0px",x.appendChild(n)):(x.innerHTML=mxUtils.htmlEntities(decodeURIComponent(f)),mxEvent.addListener(x,"click",mxUtils.bind(q,function(){function l(){var b=m.value,b=0==b.length&&
"string"!=u?0:b;k.allowAuto&&(null!=b.trim&&"auto"==b.trim().toLowerCase()?(b="auto",u="string"):(b=parseFloat(b),b=isNaN(b)?0:b));null!=k.min&&b<k.min?b=k.min:null!=k.max&&b>k.max&&(b=k.max);b=encodeURIComponent(("int"==u?parseInt(b):b)+"");d(c,b,k)}var m=document.createElement("input");e(x,m,!0);m.value=decodeURIComponent(f);m.className="gePropEditor";"int"!=u&&"float"!=u||k.allowAuto||(m.type="number",m.step="int"==u?"1":"any",null!=k.min&&(m.min=parseFloat(k.min)),null!=k.max&&(m.max=parseFloat(k.max)));
b.appendChild(m);mxEvent.addListener(m,"keypress",function(b){13==b.keyCode&&l()});m.focus();mxEvent.addListener(m,"blur",function(){l()})})));k.isDeletable&&(n=mxUtils.button("-",mxUtils.bind(q,function(b){d(c,"",k,k.index);mxEvent.consume(b)})),n.style.height="16px",n.style.width="25px",n.style["float"]="right",n.className="geColorBtn",x.appendChild(n));A.appendChild(x);return A}var q=this,t=this.editorUi.editor.graph,n=[];b.style.position="relative";b.style.padding="0";var v=document.createElement("table");
v.className="geProperties";v.style.whiteSpace="nowrap";v.style.width="100%";var u=document.createElement("tr");u.className="gePropHeader";var A=document.createElement("th");A.className="gePropHeaderCell";var x=document.createElement("img");x.src=Sidebar.prototype.expandedImage;x.style.verticalAlign="middle";A.appendChild(x);mxUtils.write(A,mxResources.get("property"));u.style.cursor="pointer";var z=function(){var c=v.querySelectorAll(".gePropNonHeaderRow"),f;if(q.editorUi.propertiesCollapsed){x.src=
Sidebar.prototype.collapsedImage;f="none";for(var d=b.childNodes.length-1;0<=d;d--)try{var e=b.childNodes[d],l=e.nodeName.toUpperCase();"INPUT"!=l&&"SELECT"!=l||b.removeChild(e)}catch(ua){}}else x.src=Sidebar.prototype.expandedImage,f="";for(d=0;d<c.length;d++)c[d].style.display=f};mxEvent.addListener(u,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;z()});u.appendChild(A);A=document.createElement("th");A.className="gePropHeaderCell";A.innerHTML=mxResources.get("value");
-u.appendChild(A);v.appendChild(u);var D=!1,G=!1,u=null;1==f.vertices.length&&0==f.edges.length?u=f.vertices[0].id:0==f.vertices.length&&1==f.edges.length&&(u=f.edges[0].id);null!=u&&v.appendChild(k("id",mxUtils.htmlEntities(u),{dispName:"ID",type:"readOnly"},!0,!1));for(var E in c)if(u=c[E],"function"!=typeof u.isVisible||u.isVisible(f,this)){var H=null!=f.style[E]?mxUtils.htmlEntities(f.style[E]+""):null!=u.getDefaultValue?u.getDefaultValue(f,this):u.defVal;if("separator"==u.type)G=!G;else{if("staticArr"==
-u.type)u.size=parseInt(f.style[u.sizeProperty]||c[u.sizeProperty].defVal)||0;else if(null!=u.dependentProps){for(var y=u.dependentProps,L=[],F=[],A=0;A<y.length;A++){var M=f.style[y[A]];F.push(c[y[A]].subDefVal);L.push(null!=M?M.split(","):[])}u.dependentPropsDefVal=F;u.dependentPropsVals=L}v.appendChild(k(E,H,u,D,G));D=!D}}for(A=0;A<n.length;A++)for(u=n[A],c=u.parentRow,f=0;f<u.values.length;f++)E=k(u.name,u.values[f],{type:u.type,parentRow:u.parentRow,isDeletable:u.isDeletable,index:f,defVal:u.defVal,
+u.appendChild(A);v.appendChild(u);var D=!1,F=!1,u=null;1==f.vertices.length&&0==f.edges.length?u=f.vertices[0].id:0==f.vertices.length&&1==f.edges.length&&(u=f.edges[0].id);null!=u&&v.appendChild(k("id",mxUtils.htmlEntities(u),{dispName:"ID",type:"readOnly"},!0,!1));for(var E in c)if(u=c[E],"function"!=typeof u.isVisible||u.isVisible(f,this)){var H=null!=f.style[E]?mxUtils.htmlEntities(f.style[E]+""):null!=u.getDefaultValue?u.getDefaultValue(f,this):u.defVal;if("separator"==u.type)F=!F;else{if("staticArr"==
+u.type)u.size=parseInt(f.style[u.sizeProperty]||c[u.sizeProperty].defVal)||0;else if(null!=u.dependentProps){for(var y=u.dependentProps,L=[],G=[],A=0;A<y.length;A++){var I=f.style[y[A]];G.push(c[y[A]].subDefVal);L.push(null!=I?I.split(","):[])}u.dependentPropsDefVal=G;u.dependentPropsVals=L}v.appendChild(k(E,H,u,D,F));D=!D}}for(A=0;A<n.length;A++)for(u=n[A],c=u.parentRow,f=0;f<u.values.length;f++)E=k(u.name,u.values[f],{type:u.type,parentRow:u.parentRow,isDeletable:u.isDeletable,index:f,defVal:u.defVal,
countProperty:u.countProperty,size:u.size},0==f%2,u.flipBkg),c.parentNode.insertBefore(E,c.nextSibling),c=E;b.appendChild(v);z();return b};StyleFormatPanel.prototype.addStyles=function(b){function c(b){mxEvent.addListener(b,"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,"mouseleave",function(){b.style.opacity="0.5"})}var f=this.editorUi,d=f.editor.graph,e=document.createElement("div");e.style.whiteSpace="nowrap";e.style.paddingLeft="24px";e.style.paddingRight="20px";b.style.paddingLeft=
-"16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(e);var l="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),m=document.createElement("div");m.style.whiteSpace="nowrap";m.style.position="relative";m.style.textAlign="center";m.style.width="210px";for(var g=[],p=0;p<this.defaultColorSchemes.length;p++){var k=document.createElement("div");k.style.display=
-"inline-block";k.style.width="6px";k.style.height="6px";k.style.marginLeft="4px";k.style.marginRight="3px";k.style.borderRadius="3px";k.style.cursor="pointer";k.style.background="transparent";k.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(b){mxEvent.addListener(k,"click",mxUtils.bind(this,function(){q(b)}))})(p);g.push(k);m.appendChild(k)}var q=mxUtils.bind(this,function(b){null!=g[b]&&(null!=this.format.currentScheme&&null!=g[this.format.currentScheme]&&(g[this.format.currentScheme].style.background=
-"transparent"),this.format.currentScheme=b,t(this.defaultColorSchemes[this.format.currentScheme]),g[this.format.currentScheme].style.background="#84d7ff")}),t=mxUtils.bind(this,function(b){var c=mxUtils.bind(this,function(b){var c=mxUtils.button("",mxUtils.bind(this,function(c){d.getModel().beginUpdate();try{for(var e=f.getSelectionState().cells,m=0;m<e.length;m++){for(var g=d.getModel().getStyle(e[m]),p=0;p<l.length;p++)g=mxUtils.removeStylename(g,l[p]);var k=d.getModel().isVertex(e[m])?d.defaultVertexStyle:
-d.defaultEdgeStyle;null!=b?(mxEvent.isShiftDown(c)||(g=""==b.fill?mxUtils.setStyle(g,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(g,mxConstants.STYLE_FILLCOLOR,b.fill||mxUtils.getValue(k,mxConstants.STYLE_FILLCOLOR,null)),g=mxUtils.setStyle(g,mxConstants.STYLE_GRADIENTCOLOR,b.gradient||mxUtils.getValue(k,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isControlDown(c)||mxClient.IS_MAC&&mxEvent.isMetaDown(c)||!d.getModel().isVertex(e[m])||(g=mxUtils.setStyle(g,mxConstants.STYLE_FONTCOLOR,b.font||
-mxUtils.getValue(k,mxConstants.STYLE_FONTCOLOR,null)))),mxEvent.isAltDown(c)||(g=""==b.stroke?mxUtils.setStyle(g,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(g,mxConstants.STYLE_STROKECOLOR,b.stroke||mxUtils.getValue(k,mxConstants.STYLE_STROKECOLOR,null)))):(g=mxUtils.setStyle(g,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(k,mxConstants.STYLE_FILLCOLOR,"#ffffff")),g=mxUtils.setStyle(g,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(k,mxConstants.STYLE_STROKECOLOR,"#000000")),g=mxUtils.setStyle(g,
-mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(k,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(e[m])&&(g=mxUtils.setStyle(g,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(k,mxConstants.STYLE_FONTCOLOR,null))));d.getModel().setStyle(e[m],g)}}finally{d.getModel().endUpdate()}}));c.className="geStyleButton";c.style.width="36px";c.style.height=10>=this.defaultColorSchemes.length?"24px":"30px";c.style.margin="0px 6px 6px 0px";if(null!=b){var m="1"==urlParams.sketch?"2px solid":"1px solid";
+"16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(e);var l="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),m=document.createElement("div");m.style.whiteSpace="nowrap";m.style.position="relative";m.style.textAlign="center";m.style.width="210px";for(var p=[],g=0;g<this.defaultColorSchemes.length;g++){var k=document.createElement("div");k.style.display=
+"inline-block";k.style.width="6px";k.style.height="6px";k.style.marginLeft="4px";k.style.marginRight="3px";k.style.borderRadius="3px";k.style.cursor="pointer";k.style.background="transparent";k.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(b){mxEvent.addListener(k,"click",mxUtils.bind(this,function(){q(b)}))})(g);p.push(k);m.appendChild(k)}var q=mxUtils.bind(this,function(b){null!=p[b]&&(null!=this.format.currentScheme&&null!=p[this.format.currentScheme]&&(p[this.format.currentScheme].style.background=
+"transparent"),this.format.currentScheme=b,t(this.defaultColorSchemes[this.format.currentScheme]),p[this.format.currentScheme].style.background="#84d7ff")}),t=mxUtils.bind(this,function(b){var c=mxUtils.bind(this,function(b){var c=mxUtils.button("",mxUtils.bind(this,function(c){d.getModel().beginUpdate();try{for(var e=f.getSelectionState().cells,m=0;m<e.length;m++){for(var p=d.getModel().getStyle(e[m]),g=0;g<l.length;g++)p=mxUtils.removeStylename(p,l[g]);var k=d.getModel().isVertex(e[m])?d.defaultVertexStyle:
+d.defaultEdgeStyle;null!=b?(mxEvent.isShiftDown(c)||(p=""==b.fill?mxUtils.setStyle(p,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(p,mxConstants.STYLE_FILLCOLOR,b.fill||mxUtils.getValue(k,mxConstants.STYLE_FILLCOLOR,null)),p=mxUtils.setStyle(p,mxConstants.STYLE_GRADIENTCOLOR,b.gradient||mxUtils.getValue(k,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isControlDown(c)||mxClient.IS_MAC&&mxEvent.isMetaDown(c)||!d.getModel().isVertex(e[m])||(p=mxUtils.setStyle(p,mxConstants.STYLE_FONTCOLOR,b.font||
+mxUtils.getValue(k,mxConstants.STYLE_FONTCOLOR,null)))),mxEvent.isAltDown(c)||(p=""==b.stroke?mxUtils.setStyle(p,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(p,mxConstants.STYLE_STROKECOLOR,b.stroke||mxUtils.getValue(k,mxConstants.STYLE_STROKECOLOR,null)))):(p=mxUtils.setStyle(p,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(k,mxConstants.STYLE_FILLCOLOR,"#ffffff")),p=mxUtils.setStyle(p,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(k,mxConstants.STYLE_STROKECOLOR,"#000000")),p=mxUtils.setStyle(p,
+mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(k,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(e[m])&&(p=mxUtils.setStyle(p,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(k,mxConstants.STYLE_FONTCOLOR,null))));d.getModel().setStyle(e[m],p)}}finally{d.getModel().endUpdate()}}));c.className="geStyleButton";c.style.width="36px";c.style.height=10>=this.defaultColorSchemes.length?"24px":"30px";c.style.margin="0px 6px 6px 0px";if(null!=b){var m="1"==urlParams.sketch?"2px solid":"1px solid";
null!=b.gradient?mxClient.IS_IE&&10>document.documentMode?c.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+b.fill+"', EndColorStr='"+b.gradient+"', GradientType=0)":c.style.backgroundImage="linear-gradient("+b.fill+" 0px,"+b.gradient+" 100%)":b.fill==mxConstants.NONE?c.style.background="url('"+Dialog.prototype.noColorImage+"')":c.style.backgroundColor=""==b.fill?mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff"):
b.fill||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff");c.style.border=b.stroke==mxConstants.NONE?m+" transparent":""==b.stroke?m+" "+mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":Editor.darkColor):m+" "+(b.stroke||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":Editor.darkColor));null!=b.title&&c.setAttribute("title",b.title)}else{var m=
-mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),g=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");c.style.backgroundColor=m;c.style.border="1px solid "+g}c.style.borderRadius="0";e.appendChild(c)});e.innerHTML="";for(var m=0;m<b.length;m++)0<m&&0==mxUtils.mod(m,4)&&mxUtils.br(e),c(b[m])});null==this.format.currentScheme?q(Editor.isDarkMode()?1:"1"==urlParams.sketch?5:0):q(this.format.currentScheme);var p=10>=this.defaultColorSchemes.length?
-28:8,n=document.createElement("div");n.style.cssText="position:absolute;left:10px;top:8px;bottom:"+p+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";mxEvent.addListener(n,
-"click",mxUtils.bind(this,function(){q(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var v=document.createElement("div");v.style.cssText="position:absolute;left:202px;top:8px;bottom:"+p+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
+mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),p=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");c.style.backgroundColor=m;c.style.border="1px solid "+p}c.style.borderRadius="0";e.appendChild(c)});e.innerHTML="";for(var m=0;m<b.length;m++)0<m&&0==mxUtils.mod(m,4)&&mxUtils.br(e),c(b[m])});null==this.format.currentScheme?q(Editor.isDarkMode()?1:"1"==urlParams.sketch?5:0):q(this.format.currentScheme);var g=10>=this.defaultColorSchemes.length?
+28:8,n=document.createElement("div");n.style.cssText="position:absolute;left:10px;top:8px;bottom:"+g+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";mxEvent.addListener(n,
+"click",mxUtils.bind(this,function(){q(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var v=document.createElement("div");v.style.cssText="position:absolute;left:202px;top:8px;bottom:"+g+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
1<this.defaultColorSchemes.length&&(b.appendChild(n),b.appendChild(v));mxEvent.addListener(v,"click",mxUtils.bind(this,function(){q(mxUtils.mod(this.format.currentScheme+1,this.defaultColorSchemes.length))}));c(n);c(v);t(this.defaultColorSchemes[this.format.currentScheme]);10>=this.defaultColorSchemes.length&&b.appendChild(m);return b};StyleFormatPanel.prototype.addEditOps=function(b){var c=this.editorUi.getSelectionState(),f=this.editorUi.editor.graph,d=null;1==c.cells.length&&(d=mxUtils.button(mxResources.get("editStyle"),
mxUtils.bind(this,function(b){this.editorUi.actions.get("editStyle").funct()})),d.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),d.style.width="210px",d.style.marginBottom="2px",b.appendChild(d));f=1==c.cells.length?f.view.getState(c.cells[0]):null;null!=f&&null!=f.shape&&null!=f.shape.stencil?(c=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(b){this.editorUi.actions.get("editShape").funct()})),c.setAttribute("title",
mxResources.get("editShape")),c.style.marginBottom="2px",null==d?c.style.width="210px":(d.style.width="104px",c.style.width="104px",c.style.marginLeft="2px"),b.appendChild(c)):c.image&&0<c.cells.length&&(c=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(b){this.editorUi.actions.get("image").funct()})),c.setAttribute("title",mxResources.get("editImage")),c.style.marginBottom="2px",null==d?c.style.width="210px":(d.style.width="104px",c.style.width="104px",c.style.marginLeft="2px"),
@@ -11153,44 +11153,44 @@ return b};Graph.getFontUrl=function(b,c){var f=Graph.customFontElements[b.toLowe
mxConstants.STYLE_FONTFAMILY,null);null!=f&&Graph.addFont(f,decodeURIComponent(c))}}return b};Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible="0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity="0.4";Graph.prototype.svgShadowBlur="1.7";Graph.prototype.svgShadowSize="3";
Graph.prototype.edgeMode="move"!=urlParams.edge;Graph.prototype.hiddenTags=null;Graph.prototype.defaultMathEnabled=!1;var x=Graph.prototype.init;Graph.prototype.init=function(){function b(b){c=b}x.apply(this,arguments);this.hiddenTags=[];window.mxFreehand&&(this.freehand=new mxFreehand(this));var c=null;mxEvent.addListener(this.container,"mouseenter",b);mxEvent.addListener(this.container,"mousemove",b);mxEvent.addListener(this.container,"mouseleave",function(b){c=null});this.isMouseInsertPoint=function(){return null!=
c};var f=this.getInsertPoint;this.getInsertPoint=function(){return null!=c?this.getPointForEvent(c):f.apply(this,arguments)};var d=this.layoutManager.getLayout;this.layoutManager.getLayout=function(b){var c=this.graph.getCellStyle(b);if(null!=c&&"rack"==c.childLayout){var f=new mxStackLayout(this.graph,!1);f.gridSize=null!=c.rackUnitSize?parseFloat(c.rackUnitSize):"undefined"!==typeof mxRackContainer?mxRackContainer.unitSize:20;f.marginLeft=c.marginLeft||0;f.marginRight=c.marginRight||0;f.marginTop=
-c.marginTop||0;f.marginBottom=c.marginBottom||0;f.allowGaps=c.allowGaps||0;f.horizontal="1"==mxUtils.getValue(c,"horizontalRack","0");f.resizeParent=!1;f.fill=!0;return f}return d.apply(this,arguments)};this.updateGlobalUrlVariables()};var z=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=function(b,c){return Graph.processFontStyle(z.apply(this,arguments))};var y=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,c,f,d,e,l,m,g,p,k,
-q){y.apply(this,arguments);Graph.processFontAttributes(q)};var B=mxText.prototype.redraw;mxText.prototype.redraw=function(){B.apply(this,arguments);null!=this.node&&"DIV"==this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.createTagsDialog=function(b,c,f){function d(){for(var b=m.getSelectionCells(),c=[],f=0;f<b.length;f++)m.isCellVisible(b[f])&&c.push(b[f]);m.setSelectionCells(c)}function e(b){m.hiddenTags=b?[]:g.slice();d();m.refresh()}function l(b,f){k.innerHTML="";if(0<
-b.length){var l=document.createElement("table");l.setAttribute("cellpadding","2");l.style.boxSizing="border-box";l.style.tableLayout="fixed";l.style.width="100%";var p=document.createElement("tbody");if(null!=b&&0<b.length)for(var q=0;q<b.length;q++)(function(b){var l=0>mxUtils.indexOf(m.hiddenTags,b),k=document.createElement("tr"),q=document.createElement("td");q.style.align="center";q.style.width="16px";var t=document.createElement("img");t.setAttribute("src",l?Editor.visibleImage:Editor.hiddenImage);
+c.marginTop||0;f.marginBottom=c.marginBottom||0;f.allowGaps=c.allowGaps||0;f.horizontal="1"==mxUtils.getValue(c,"horizontalRack","0");f.resizeParent=!1;f.fill=!0;return f}return d.apply(this,arguments)};this.updateGlobalUrlVariables()};var z=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=function(b,c){return Graph.processFontStyle(z.apply(this,arguments))};var y=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,c,f,d,e,l,m,p,g,k,
+q){y.apply(this,arguments);Graph.processFontAttributes(q)};var B=mxText.prototype.redraw;mxText.prototype.redraw=function(){B.apply(this,arguments);null!=this.node&&"DIV"==this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.createTagsDialog=function(b,c,f){function d(){for(var b=m.getSelectionCells(),c=[],f=0;f<b.length;f++)m.isCellVisible(b[f])&&c.push(b[f]);m.setSelectionCells(c)}function e(b){m.hiddenTags=b?[]:p.slice();d();m.refresh()}function l(b,f){k.innerHTML="";if(0<
+b.length){var l=document.createElement("table");l.setAttribute("cellpadding","2");l.style.boxSizing="border-box";l.style.tableLayout="fixed";l.style.width="100%";var g=document.createElement("tbody");if(null!=b&&0<b.length)for(var q=0;q<b.length;q++)(function(b){var l=0>mxUtils.indexOf(m.hiddenTags,b),k=document.createElement("tr"),q=document.createElement("td");q.style.align="center";q.style.width="16px";var t=document.createElement("img");t.setAttribute("src",l?Editor.visibleImage:Editor.hiddenImage);
t.setAttribute("title",mxResources.get(l?"hideIt":"show",[b]));mxUtils.setOpacity(t,l?75:25);t.style.verticalAlign="middle";t.style.cursor="pointer";t.style.width="16px";if(c||Editor.isDarkMode())t.style.filter="invert(100%)";q.appendChild(t);mxEvent.addListener(t,"click",function(c){var f=mxUtils.indexOf(m.hiddenTags,b);mxEvent.isShiftDown(c)?e(0<=mxUtils.indexOf(m.hiddenTags,b)):(0>f?m.hiddenTags.push(b):0<=f&&m.hiddenTags.splice(f,1),d(),m.refresh());mxEvent.consume(c)});k.appendChild(q);q=document.createElement("td");
q.style.overflow="hidden";q.style.whiteSpace="nowrap";q.style.textOverflow="ellipsis";q.style.verticalAlign="middle";q.style.cursor="pointer";q.setAttribute("title",b);a=document.createElement("a");mxUtils.write(a,b);a.style.textOverflow="ellipsis";a.style.position="relative";mxUtils.setOpacity(a,l?100:40);q.appendChild(a);mxEvent.addListener(q,"click",function(c){if(mxEvent.isShiftDown(c)){e(!0);var f=m.getCellsForTags([b],null,null,!0);m.isEnabled()?m.setSelectionCells(f):m.highlightCells(f)}else if(l&&
-0<m.hiddenTags.length)e(!0);else{var f=g.slice(),p=mxUtils.indexOf(f,b);f.splice(p,1);m.hiddenTags=f;d();m.refresh()}mxEvent.consume(c)});k.appendChild(q);if(m.isEnabled()){q=document.createElement("td");q.style.verticalAlign="middle";q.style.textAlign="center";q.style.width="18px";if(null==f){q.style.align="center";q.style.width="16px";t=document.createElement("img");t.setAttribute("src",Editor.crossImage);t.setAttribute("title",mxResources.get("removeIt",[b]));mxUtils.setOpacity(t,l?75:25);t.style.verticalAlign=
-"middle";t.style.cursor="pointer";t.style.width="16px";if(c||Editor.isDarkMode())t.style.filter="invert(100%)";mxEvent.addListener(t,"click",function(c){var f=mxUtils.indexOf(g,b);0<=f&&g.splice(f,1);m.removeTagsForCells(m.model.getDescendants(m.model.getRoot()),[b]);m.refresh();mxEvent.consume(c)});q.appendChild(t)}else{var n=document.createElement("input");n.setAttribute("type","checkbox");n.style.margin="0px";n.defaultChecked=null!=f&&0<=mxUtils.indexOf(f,b);n.checked=n.defaultChecked;n.style.background=
-"transparent";n.setAttribute("title",mxResources.get(n.defaultChecked?"removeIt":"add",[b]));mxEvent.addListener(n,"change",function(c){n.checked?m.addTagsForCells(m.getSelectionCells(),[b]):m.removeTagsForCells(m.getSelectionCells(),[b]);mxEvent.consume(c)});q.appendChild(n)}k.appendChild(q)}p.appendChild(k)})(b[q]);l.appendChild(p);k.appendChild(l)}}var m=this,g=m.hiddenTags.slice(),p=document.createElement("div");p.style.userSelect="none";p.style.overflow="hidden";p.style.padding="10px";p.style.height=
-"100%";var k=document.createElement("div");k.style.boxSizing="border-box";k.style.borderRadius="4px";k.style.userSelect="none";k.style.overflow="auto";k.style.position="absolute";k.style.left="10px";k.style.right="10px";k.style.top="10px";k.style.border=m.isEnabled()?"1px solid #808080":"none";k.style.bottom=m.isEnabled()?"48px":"10px";p.appendChild(k);var q=mxUtils.button(mxResources.get("reset"),function(b){m.hiddenTags=[];mxEvent.isShiftDown(b)||(g=m.hiddenTags.slice());d();m.refresh()});q.setAttribute("title",
-mxResources.get("reset"));q.className="geBtn";q.style.margin="0 4px 0 0";var t=mxUtils.button(mxResources.get("add"),function(){null!=f&&f(g,function(b){g=b;n()})});t.setAttribute("title",mxResources.get("add"));t.className="geBtn";t.style.margin="0";m.addListener(mxEvent.ROOT,function(){g=m.hiddenTags.slice()});var n=mxUtils.bind(this,function(c,f){if(b()){for(var d=m.getAllTags(),e=0;e<d.length;e++)0>mxUtils.indexOf(g,d[e])&&g.push(d[e]);g.sort();m.isSelectionEmpty()?l(g):l(g,m.getCommonTagsForCells(m.getSelectionCells()))}});
-m.selectionModel.addListener(mxEvent.CHANGE,n);m.model.addListener(mxEvent.CHANGE,n);m.addListener(mxEvent.REFRESH,n);var v=document.createElement("div");v.style.boxSizing="border-box";v.style.whiteSpace="nowrap";v.style.position="absolute";v.style.overflow="hidden";v.style.bottom="0px";v.style.height="42px";v.style.right="10px";v.style.left="10px";m.isEnabled()&&(v.appendChild(q),v.appendChild(t),p.appendChild(v));return{div:p,refresh:n}};Graph.prototype.getCustomFonts=function(){var b=this.extFonts,
+0<m.hiddenTags.length)e(!0);else{var f=p.slice(),g=mxUtils.indexOf(f,b);f.splice(g,1);m.hiddenTags=f;d();m.refresh()}mxEvent.consume(c)});k.appendChild(q);if(m.isEnabled()){q=document.createElement("td");q.style.verticalAlign="middle";q.style.textAlign="center";q.style.width="18px";if(null==f){q.style.align="center";q.style.width="16px";t=document.createElement("img");t.setAttribute("src",Editor.crossImage);t.setAttribute("title",mxResources.get("removeIt",[b]));mxUtils.setOpacity(t,l?75:25);t.style.verticalAlign=
+"middle";t.style.cursor="pointer";t.style.width="16px";if(c||Editor.isDarkMode())t.style.filter="invert(100%)";mxEvent.addListener(t,"click",function(c){var f=mxUtils.indexOf(p,b);0<=f&&p.splice(f,1);m.removeTagsForCells(m.model.getDescendants(m.model.getRoot()),[b]);m.refresh();mxEvent.consume(c)});q.appendChild(t)}else{var n=document.createElement("input");n.setAttribute("type","checkbox");n.style.margin="0px";n.defaultChecked=null!=f&&0<=mxUtils.indexOf(f,b);n.checked=n.defaultChecked;n.style.background=
+"transparent";n.setAttribute("title",mxResources.get(n.defaultChecked?"removeIt":"add",[b]));mxEvent.addListener(n,"change",function(c){n.checked?m.addTagsForCells(m.getSelectionCells(),[b]):m.removeTagsForCells(m.getSelectionCells(),[b]);mxEvent.consume(c)});q.appendChild(n)}k.appendChild(q)}g.appendChild(k)})(b[q]);l.appendChild(g);k.appendChild(l)}}var m=this,p=m.hiddenTags.slice(),g=document.createElement("div");g.style.userSelect="none";g.style.overflow="hidden";g.style.padding="10px";g.style.height=
+"100%";var k=document.createElement("div");k.style.boxSizing="border-box";k.style.borderRadius="4px";k.style.userSelect="none";k.style.overflow="auto";k.style.position="absolute";k.style.left="10px";k.style.right="10px";k.style.top="10px";k.style.border=m.isEnabled()?"1px solid #808080":"none";k.style.bottom=m.isEnabled()?"48px":"10px";g.appendChild(k);var q=mxUtils.button(mxResources.get("reset"),function(b){m.hiddenTags=[];mxEvent.isShiftDown(b)||(p=m.hiddenTags.slice());d();m.refresh()});q.setAttribute("title",
+mxResources.get("reset"));q.className="geBtn";q.style.margin="0 4px 0 0";var t=mxUtils.button(mxResources.get("add"),function(){null!=f&&f(p,function(b){p=b;n()})});t.setAttribute("title",mxResources.get("add"));t.className="geBtn";t.style.margin="0";m.addListener(mxEvent.ROOT,function(){p=m.hiddenTags.slice()});var n=mxUtils.bind(this,function(c,f){if(b()){for(var d=m.getAllTags(),e=0;e<d.length;e++)0>mxUtils.indexOf(p,d[e])&&p.push(d[e]);p.sort();m.isSelectionEmpty()?l(p):l(p,m.getCommonTagsForCells(m.getSelectionCells()))}});
+m.selectionModel.addListener(mxEvent.CHANGE,n);m.model.addListener(mxEvent.CHANGE,n);m.addListener(mxEvent.REFRESH,n);var v=document.createElement("div");v.style.boxSizing="border-box";v.style.whiteSpace="nowrap";v.style.position="absolute";v.style.overflow="hidden";v.style.bottom="0px";v.style.height="42px";v.style.right="10px";v.style.left="10px";m.isEnabled()&&(v.appendChild(q),v.appendChild(t),g.appendChild(v));return{div:g,refresh:n}};Graph.prototype.getCustomFonts=function(){var b=this.extFonts,
b=null!=b?b.slice():[],c;for(c in Graph.customFontElements){var f=Graph.customFontElements[c];b.push({name:f.name,url:f.url})}return b};Graph.prototype.setFont=function(b,c){Graph.addFont(b,c);document.execCommand("fontname",!1,b);if(null!=c){var f=this.cellEditor.textarea.getElementsByTagName("font");c=Graph.getFontUrl(b,c);for(var d=0;d<f.length;d++)f[d].getAttribute("face")==b&&f[d].getAttribute("data-font-src")!=c&&f[d].setAttribute("data-font-src",c)}};var C=Graph.prototype.isFastZoomEnabled;
Graph.prototype.isFastZoomEnabled=function(){return C.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};var b=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=b)for(var c in b)this.globalVars[c]=b[c]}catch(aa){null!=window.console&&console.log("Error in vars URL parameter: "+aa)}};Graph.prototype.getExportVariables=
function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var A=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var c=A.apply(this,arguments);null==c&&null!=this.globalVars&&(c=this.globalVars[b]);return c};Graph.prototype.getDefaultStylesheet=function(){if(null==this.defaultStylesheet){var b=this.themes["default-style2"];this.defaultStylesheet=(new mxCodec(b.ownerDocument)).decode(b)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};
-var G=Graph.prototype.getSvg;Graph.prototype.getSvg=function(b,c,f,d,e,l,m,g,p,k,q,t,n,v){var u=null,A=null,x=null;t||null==this.themes||"darkTheme"!=this.defaultThemeName||(u=this.stylesheet,A=this.shapeForegroundColor,x=this.shapeBackgroundColor,this.shapeForegroundColor="darkTheme"==this.defaultThemeName?"#000000":Editor.lightColor,this.shapeBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":Editor.darkColor,this.stylesheet=this.getDefaultStylesheet(),this.refresh());var z=G.apply(this,
-arguments),D=this.getCustomFonts();if(q&&0<D.length){var E=z.ownerDocument,H=null!=E.createElementNS?E.createElementNS(mxConstants.NS_SVG,"style"):E.createElement("style");null!=E.setAttributeNS?H.setAttributeNS("type","text/css"):H.setAttribute("type","text/css");for(var y="",L="",F=0;F<D.length;F++){var J=D[F].name,K=D[F].url;Graph.isCssFontUrl(K)?y+="@import url("+K+");\n":L+='@font-face {\nfont-family: "'+J+'";\nsrc: url("'+K+'");\n}\n'}H.appendChild(E.createTextNode(y+L));z.getElementsByTagName("defs")[0].appendChild(H)}null!=
+var F=Graph.prototype.getSvg;Graph.prototype.getSvg=function(b,c,f,d,e,l,m,p,g,k,q,t,n,v){var u=null,A=null,x=null;t||null==this.themes||"darkTheme"!=this.defaultThemeName||(u=this.stylesheet,A=this.shapeForegroundColor,x=this.shapeBackgroundColor,this.shapeForegroundColor="darkTheme"==this.defaultThemeName?"#000000":Editor.lightColor,this.shapeBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":Editor.darkColor,this.stylesheet=this.getDefaultStylesheet(),this.refresh());var z=F.apply(this,
+arguments),D=this.getCustomFonts();if(q&&0<D.length){var E=z.ownerDocument,H=null!=E.createElementNS?E.createElementNS(mxConstants.NS_SVG,"style"):E.createElement("style");null!=E.setAttributeNS?H.setAttributeNS("type","text/css"):H.setAttribute("type","text/css");for(var y="",L="",G=0;G<D.length;G++){var I=D[G].name,K=D[G].url;Graph.isCssFontUrl(K)?y+="@import url("+K+");\n":L+='@font-face {\nfont-family: "'+I+'";\nsrc: url("'+K+'");\n}\n'}H.appendChild(E.createTextNode(y+L));z.getElementsByTagName("defs")[0].appendChild(H)}null!=
u&&(this.shapeBackgroundColor=x,this.shapeForegroundColor=A,this.stylesheet=u,this.refresh());return z};var D=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var b=D.apply(this,arguments);if(this.mathEnabled){var c=b.drawText;b.drawText=function(b,f){if(null!=b.text&&null!=b.text.value&&b.text.checkBounds()&&(mxUtils.isNode(b.text.value)||b.text.dialect==mxConstants.DIALECT_STRICTHTML)){var d=b.text.getContentNode();if(null!=d){d=d.cloneNode(!0);if(d.getElementsByTagNameNS)for(var e=
d.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<e.length;)e[0].parentNode.removeChild(e[0]);null!=d.innerHTML&&(e=b.text.value,b.text.value=d.innerHTML,c.apply(this,arguments),b.text.value=e)}}else c.apply(this,arguments)}}return b};var E=mxCellRenderer.prototype.destroy;mxCellRenderer.prototype.destroy=function(b){E.apply(this,arguments);null!=b.secondLabel&&(b.secondLabel.destroy(),b.secondLabel=null)};mxCellRenderer.prototype.getShapesForState=function(b){return[b.shape,
-b.text,b.secondLabel,b.control]};var F=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){F.apply(this,arguments);this.enumerationState=0};var I=mxGraphView.prototype.stateValidated;mxGraphView.prototype.stateValidated=function(b){null!=b.shape&&this.redrawEnumerationState(b);return I.apply(this,arguments)};mxGraphView.prototype.createEnumerationValue=function(b){b=decodeURIComponent(mxUtils.getValue(b.style,"enumerateValue",""));""==b&&(b=++this.enumerationState);
+b.text,b.secondLabel,b.control]};var G=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){G.apply(this,arguments);this.enumerationState=0};var J=mxGraphView.prototype.stateValidated;mxGraphView.prototype.stateValidated=function(b){null!=b.shape&&this.redrawEnumerationState(b);return J.apply(this,arguments)};mxGraphView.prototype.createEnumerationValue=function(b){b=decodeURIComponent(mxUtils.getValue(b.style,"enumerateValue",""));""==b&&(b=++this.enumerationState);
return'<div style="padding:2px;border:1px solid gray;background:yellow;border-radius:2px;">'+mxUtils.htmlEntities(b)+"</div>"};mxGraphView.prototype.redrawEnumerationState=function(b){var c="1"==mxUtils.getValue(b.style,"enumerate",0);c&&null==b.secondLabel?(b.secondLabel=new mxText("",new mxRectangle,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM),b.secondLabel.size=12,b.secondLabel.state=b,b.secondLabel.dialect=mxConstants.DIALECT_STRICTHTML,this.graph.cellRenderer.initializeLabel(b,b.secondLabel)):
-c||null==b.secondLabel||(b.secondLabel.destroy(),b.secondLabel=null);c=b.secondLabel;if(null!=c){var f=b.view.scale,d=this.createEnumerationValue(b);b=this.graph.model.isVertex(b.cell)?new mxRectangle(b.x+b.width-4*f,b.y+4*f,0,0):mxRectangle.fromPoint(b.view.getPoint(b));c.bounds.equals(b)&&c.value==d&&c.scale==f||(c.bounds=b,c.value=d,c.scale=f,c.redraw())}};var J=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){J.apply(this,arguments);if(mxClient.IS_GC&&
+c||null==b.secondLabel||(b.secondLabel.destroy(),b.secondLabel=null);c=b.secondLabel;if(null!=c){var f=b.view.scale,d=this.createEnumerationValue(b);b=this.graph.model.isVertex(b.cell)?new mxRectangle(b.x+b.width-4*f,b.y+4*f,0,0):mxRectangle.fromPoint(b.view.getPoint(b));c.bounds.equals(b)&&c.value==d&&c.scale==f||(c.bounds=b,c.value=d,c.scale=f,c.redraw())}};var K=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){K.apply(this,arguments);if(mxClient.IS_GC&&
null!=this.getDrawPane()){var b=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),
this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),this.webKitForceRepaintNode.style.cssText="position:absolute;",b.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,b.ownerSVGElement))}};var H=Graph.prototype.refresh;Graph.prototype.refresh=function(){H.apply(this,arguments);this.refreshBackgroundImage()};Graph.prototype.refreshBackgroundImage=function(){null!=this.backgroundImage&&null!=this.backgroundImage.originalSrc&&(this.setBackgroundImage(this.backgroundImage),
-this.view.validateBackgroundImage())};var K=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){K.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(b){"data:action/json,"==b.substring(0,17)&&(b=JSON.parse(b.substring(17)),null!=b.actions&&this.executeCustomActions(b.actions))};Graph.prototype.executeCustomActions=function(b,c){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),
-null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var f=!1,d=0,e=0,l=mxUtils.bind(this,function(){f||(f=!0,this.model.beginUpdate())}),m=mxUtils.bind(this,function(){f&&(f=!1,this.model.endUpdate())}),g=mxUtils.bind(this,function(){0<d&&d--;0==d&&p()}),p=mxUtils.bind(this,function(){if(e<b.length){var f=this.stoppingCustomActions,k=b[e++],q=[];if(null!=k.open)if(m(),this.isCustomLink(k.open)){if(!this.customLinkClicked(k.open))return}else this.openLink(k.open);
-null==k.wait||f||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;g()}),d++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,""!=k.wait?parseInt(k.wait):1E3),m());null!=k.opacity&&null!=k.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(k.opacity,!0)),k.opacity.value);null!=k.fadeIn&&(d++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(k.fadeIn,!0)),0,1,g,f?0:
-k.fadeIn.delay));null!=k.fadeOut&&(d++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(k.fadeOut,!0)),1,0,g,f?0:k.fadeOut.delay));null!=k.wipeIn&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(k.wipeIn,!0),!0)));null!=k.wipeOut&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(k.wipeOut,!0),!1)));null!=k.toggle&&(l(),this.toggleCells(this.getCellsForAction(k.toggle,!0)));if(null!=k.show){l();var t=this.getCellsForAction(k.show,!0);Graph.setOpacityForNodes(this.getNodesForCells(t),
+this.view.validateBackgroundImage())};var I=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){I.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(b){"data:action/json,"==b.substring(0,17)&&(b=JSON.parse(b.substring(17)),null!=b.actions&&this.executeCustomActions(b.actions))};Graph.prototype.executeCustomActions=function(b,c){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),
+null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var f=!1,d=0,e=0,l=mxUtils.bind(this,function(){f||(f=!0,this.model.beginUpdate())}),m=mxUtils.bind(this,function(){f&&(f=!1,this.model.endUpdate())}),p=mxUtils.bind(this,function(){0<d&&d--;0==d&&g()}),g=mxUtils.bind(this,function(){if(e<b.length){var f=this.stoppingCustomActions,k=b[e++],q=[];if(null!=k.open)if(m(),this.isCustomLink(k.open)){if(!this.customLinkClicked(k.open))return}else this.openLink(k.open);
+null==k.wait||f||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;p()}),d++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,""!=k.wait?parseInt(k.wait):1E3),m());null!=k.opacity&&null!=k.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(k.opacity,!0)),k.opacity.value);null!=k.fadeIn&&(d++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(k.fadeIn,!0)),0,1,p,f?0:
+k.fadeIn.delay));null!=k.fadeOut&&(d++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(k.fadeOut,!0)),1,0,p,f?0:k.fadeOut.delay));null!=k.wipeIn&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(k.wipeIn,!0),!0)));null!=k.wipeOut&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(k.wipeOut,!0),!1)));null!=k.toggle&&(l(),this.toggleCells(this.getCellsForAction(k.toggle,!0)));if(null!=k.show){l();var t=this.getCellsForAction(k.show,!0);Graph.setOpacityForNodes(this.getNodesForCells(t),
1);this.setCellsVisible(t,!0)}null!=k.hide&&(l(),t=this.getCellsForAction(k.hide,!0),Graph.setOpacityForNodes(this.getNodesForCells(t),0),this.setCellsVisible(t,!1));null!=k.toggleStyle&&null!=k.toggleStyle.key&&(l(),this.toggleCellStyles(k.toggleStyle.key,null!=k.toggleStyle.defaultValue?k.toggleStyle.defaultValue:"0",this.getCellsForAction(k.toggleStyle,!0)));null!=k.style&&null!=k.style.key&&(l(),this.setCellStyles(k.style.key,k.style.value,this.getCellsForAction(k.style,!0)));t=[];null!=k.select&&
this.isEnabled()&&(t=this.getCellsForAction(k.select),this.setSelectionCells(t));null!=k.highlight&&(t=this.getCellsForAction(k.highlight),this.highlightCells(t,k.highlight.color,k.highlight.duration,k.highlight.opacity));null!=k.scroll&&(t=this.getCellsForAction(k.scroll));null!=k.viewbox&&this.fitWindow(k.viewbox,k.viewbox.border);0<t.length&&this.scrollCellToVisible(t[0]);if(null!=k.tags){t=[];null!=k.tags.hidden&&(t=t.concat(k.tags.hidden));if(null!=k.tags.visible)for(var n=this.getAllTags(),
-v=0;v<n.length;v++)0>mxUtils.indexOf(k.tags.visible,n[v])&&0>mxUtils.indexOf(t,n[v])&&t.push(n[v]);this.hiddenTags=t;this.refresh()}0<q.length&&(d++,this.executeAnimations(q,g,f?1:k.steps,f?0:k.delay));0==d?p():m()}else this.stoppingCustomActions=this.executingCustomActions=!1,m(),null!=c&&c()});p()}};Graph.prototype.doUpdateCustomLinksForCell=function(b,c){var f=this.getLinkForCell(c);null!=f&&"data:action/json,"==f.substring(0,17)&&this.setLinkForCell(c,this.updateCustomLink(b,f));if(this.isHtmlLabel(c)){var d=
+v=0;v<n.length;v++)0>mxUtils.indexOf(k.tags.visible,n[v])&&0>mxUtils.indexOf(t,n[v])&&t.push(n[v]);this.hiddenTags=t;this.refresh()}0<q.length&&(d++,this.executeAnimations(q,p,f?1:k.steps,f?0:k.delay));0==d?g():m()}else this.stoppingCustomActions=this.executingCustomActions=!1,m(),null!=c&&c()});g()}};Graph.prototype.doUpdateCustomLinksForCell=function(b,c){var f=this.getLinkForCell(c);null!=f&&"data:action/json,"==f.substring(0,17)&&this.setLinkForCell(c,this.updateCustomLink(b,f));if(this.isHtmlLabel(c)){var d=
document.createElement("div");d.innerHTML=this.sanitizeHtml(this.getLabel(c));for(var e=d.getElementsByTagName("a"),l=!1,m=0;m<e.length;m++)f=e[m].getAttribute("href"),null!=f&&"data:action/json,"==f.substring(0,17)&&(e[m].setAttribute("href",this.updateCustomLink(b,f)),l=!0);l&&this.labelChanged(c,d.innerHTML)}};Graph.prototype.updateCustomLink=function(b,c){if("data:action/json,"==c.substring(0,17))try{var f=JSON.parse(c.substring(17));null!=f.actions&&(this.updateCustomLinkActions(b,f.actions),
-c="data:action/json,"+JSON.stringify(f))}catch(oa){}return c};Graph.prototype.updateCustomLinkActions=function(b,c){for(var f=0;f<c.length;f++){var d=c[f],e;for(e in d)this.updateCustomLinkAction(b,d[e],"cells"),this.updateCustomLinkAction(b,d[e],"excludeCells")}};Graph.prototype.updateCustomLinkAction=function(b,c,f){if(null!=c&&null!=c[f]){for(var d=[],e=0;e<c[f].length;e++)if("*"==c[f][e])d.push(c[f][e]);else{var l=b[c[f][e]];null!=l?""!=l&&d.push(l):d.push(c[f][e])}c[f]=d}};Graph.prototype.getCellsForAction=
+c="data:action/json,"+JSON.stringify(f))}catch(ja){}return c};Graph.prototype.updateCustomLinkActions=function(b,c){for(var f=0;f<c.length;f++){var d=c[f],e;for(e in d)this.updateCustomLinkAction(b,d[e],"cells"),this.updateCustomLinkAction(b,d[e],"excludeCells")}};Graph.prototype.updateCustomLinkAction=function(b,c,f){if(null!=c&&null!=c[f]){for(var d=[],e=0;e<c[f].length;e++)if("*"==c[f][e])d.push(c[f][e]);else{var l=b[c[f][e]];null!=l?""!=l&&d.push(l):d.push(c[f][e])}c[f]=d}};Graph.prototype.getCellsForAction=
function(b,c){var f=this.getCellsById(b.cells).concat(this.getCellsForTags(b.tags,null,c));if(null!=b.excludeCells){for(var d=[],e=0;e<f.length;e++)0>b.excludeCells.indexOf(f[e].id)&&d.push(f[e]);f=d}return f};Graph.prototype.getCellsById=function(b){var c=[];if(null!=b)for(var f=0;f<b.length;f++)if("*"==b[f])var d=this.model.getRoot(),c=c.concat(this.model.filterDescendants(function(b){return b!=d},d));else{var e=this.model.getCell(b[f]);null!=e&&c.push(e)}return c};var N=Graph.prototype.isCellVisible;
Graph.prototype.isCellVisible=function(b){return N.apply(this,arguments)&&!this.isAllTagsHidden(this.getTagsForCell(b))};Graph.prototype.isAllTagsHidden=function(b){if(null==b||0==b.length||0==this.hiddenTags.length)return!1;b=b.split(" ");if(b.length>this.hiddenTags.length)return!1;for(var c=0;c<b.length;c++)if(0>mxUtils.indexOf(this.hiddenTags,b[c]))return!1;return!0};Graph.prototype.getCellsForTags=function(b,c,f,d){var e=[];if(null!=b){c=null!=c?c:this.model.getDescendants(this.model.getRoot());
-for(var l=0,m={},g=0;g<b.length;g++)0<b[g].length&&(m[b[g]]=!0,l++);for(g=0;g<c.length;g++)if(f&&this.model.getParent(c[g])==this.model.root||this.model.isVertex(c[g])||this.model.isEdge(c[g])){var p=this.getTagsForCell(c[g]),k=!1;if(0<p.length&&(p=p.split(" "),p.length>=b.length)){for(var q=k=0;q<p.length&&k<l;q++)null!=m[p[q]]&&k++;k=k==l}k&&(1!=d||this.isCellVisible(c[g]))&&e.push(c[g])}}return e};Graph.prototype.getAllTags=function(){return this.getTagsForCells(this.model.getDescendants(this.model.getRoot()))};
+for(var l=0,m={},p=0;p<b.length;p++)0<b[p].length&&(m[b[p]]=!0,l++);for(p=0;p<c.length;p++)if(f&&this.model.getParent(c[p])==this.model.root||this.model.isVertex(c[p])||this.model.isEdge(c[p])){var g=this.getTagsForCell(c[p]),k=!1;if(0<g.length&&(g=g.split(" "),g.length>=b.length)){for(var q=k=0;q<g.length&&k<l;q++)null!=m[g[q]]&&k++;k=k==l}k&&(1!=d||this.isCellVisible(c[p]))&&e.push(c[p])}}return e};Graph.prototype.getAllTags=function(){return this.getTagsForCells(this.model.getDescendants(this.model.getRoot()))};
Graph.prototype.getCommonTagsForCells=function(b){for(var c=null,f=[],d=0;d<b.length;d++){var e=this.getTagsForCell(b[d]),f=[];if(0<e.length){for(var e=e.split(" "),l={},m=0;m<e.length;m++)if(null==c||null!=c[e[m]])l[e[m]]=!0,f.push(e[m]);c=l}else return[]}return f};Graph.prototype.getTagsForCells=function(b){for(var c=[],f={},d=0;d<b.length;d++){var e=this.getTagsForCell(b[d]);if(0<e.length)for(var e=e.split(" "),l=0;l<e.length;l++)null==f[e[l]]&&(f[e[l]]=!0,c.push(e[l]))}return c};Graph.prototype.getTagsForCell=
-function(b){return this.getAttributeForCell(b,"tags","")};Graph.prototype.addTagsForCells=function(b,c){if(0<b.length&&0<c.length){this.model.beginUpdate();try{for(var f=0;f<b.length;f++){for(var d=this.getTagsForCell(b[f]),e=d.split(" "),l=!1,m=0;m<c.length;m++){var g=mxUtils.trim(c[m]);""!=g&&0>mxUtils.indexOf(e,g)&&(d=0<d.length?d+" "+g:g,l=!0)}l&&this.setAttributeForCell(b[f],"tags",d)}}finally{this.model.endUpdate()}}};Graph.prototype.removeTagsForCells=function(b,c){if(0<b.length&&0<c.length){this.model.beginUpdate();
-try{for(var f=0;f<b.length;f++){var d=this.getTagsForCell(b[f]);if(0<d.length){for(var e=d.split(" "),l=!1,m=0;m<c.length;m++){var g=mxUtils.indexOf(e,c[m]);0<=g&&(e.splice(g,1),l=!0)}l&&this.setAttributeForCell(b[f],"tags",e.join(" "))}}}finally{this.model.endUpdate()}}};Graph.prototype.toggleCells=function(b){this.model.beginUpdate();try{for(var c=0;c<b.length;c++)this.model.setVisible(b[c],!this.model.isVisible(b[c]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(b,
+function(b){return this.getAttributeForCell(b,"tags","")};Graph.prototype.addTagsForCells=function(b,c){if(0<b.length&&0<c.length){this.model.beginUpdate();try{for(var f=0;f<b.length;f++){for(var d=this.getTagsForCell(b[f]),e=d.split(" "),l=!1,m=0;m<c.length;m++){var p=mxUtils.trim(c[m]);""!=p&&0>mxUtils.indexOf(e,p)&&(d=0<d.length?d+" "+p:p,l=!0)}l&&this.setAttributeForCell(b[f],"tags",d)}}finally{this.model.endUpdate()}}};Graph.prototype.removeTagsForCells=function(b,c){if(0<b.length&&0<c.length){this.model.beginUpdate();
+try{for(var f=0;f<b.length;f++){var d=this.getTagsForCell(b[f]);if(0<d.length){for(var e=d.split(" "),l=!1,m=0;m<c.length;m++){var p=mxUtils.indexOf(e,c[m]);0<=p&&(e.splice(p,1),l=!0)}l&&this.setAttributeForCell(b[f],"tags",e.join(" "))}}}finally{this.model.endUpdate()}}};Graph.prototype.toggleCells=function(b){this.model.beginUpdate();try{for(var c=0;c<b.length;c++)this.model.setVisible(b[c],!this.model.isVisible(b[c]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(b,
c){this.model.beginUpdate();try{for(var f=0;f<b.length;f++)this.model.setVisible(b[f],c)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(b,c,f,d){for(var e=0;e<b.length;e++)this.highlightCell(b[e],c,f,d)};Graph.prototype.highlightCell=function(b,c,f,d,e){c=null!=c?c:mxConstants.DEFAULT_VALID_COLOR;f=null!=f?f:1E3;b=this.view.getState(b);var l=null;null!=b&&(e=null!=e?e:4,e=Math.max(e+1,mxUtils.getValue(b.style,mxConstants.STYLE_STROKEWIDTH,1)+e),l=new mxCellHighlight(this,
c,e,!1),null!=d&&(l.opacity=d),l.highlight(b),window.setTimeout(function(){null!=l.shape&&(mxUtils.setPrefixedStyle(l.shape.node.style,"transition","all 1200ms ease-in-out"),l.shape.node.style.opacity=0);window.setTimeout(function(){l.destroy()},1200)},f));return l};Graph.prototype.addSvgShadow=function(b,c,f,d){f=null!=f?f:!1;d=null!=d?d:!0;var e=b.ownerDocument,l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"filter"):e.createElement("filter");l.setAttribute("id",this.shadowId);var m=
null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):e.createElement("feGaussianBlur");m.setAttribute("in","SourceAlpha");m.setAttribute("stdDeviation",this.svgShadowBlur);m.setAttribute("result","blur");l.appendChild(m);m=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feOffset"):e.createElement("feOffset");m.setAttribute("in","blur");m.setAttribute("dx",this.svgShadowSize);m.setAttribute("dy",this.svgShadowSize);m.setAttribute("result","offsetBlur");l.appendChild(m);
@@ -11209,35 +11209,35 @@ mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupN
"/gmdl.xml"];mxStencilRegistry.libraries.gcp2=[SHAPES_PATH+"/mxGCP2.js",STENCIL_PATH+"/gcp2.xml"];mxStencilRegistry.libraries.ibm=[SHAPES_PATH+"/mxIBM.js",STENCIL_PATH+"/ibm.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=
[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.aws4=[SHAPES_PATH+"/mxAWS4.js",STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.aws4b=[SHAPES_PATH+"/mxAWS4.js",STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.uml25=[SHAPES_PATH+"/mxUML25.js"];mxStencilRegistry.libraries.veeam=
[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.veeam2=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam2.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=
-[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(b){var c=null;null!=b&&0<b.length&&("ER"==b.substring(0,2)?c="mxgraph.er":"sysML"==b.substring(0,5)&&(c="mxgraph.sysml"));return c};var Q=mxMarker.createMarker;mxMarker.createMarker=function(b,c,f,d,e,l,m,g,p,k){if(null!=f&&null==mxMarker.markers[f]){var q=this.getPackageForType(f);null!=q&&mxStencilRegistry.getStencil(q)}return Q.apply(this,arguments)};var L=mxStencil.prototype.drawShape;mxStencil.prototype.drawShape=function(b,
-c,f,d,e,l){"1"==mxUtils.getValue(c.style,"lineShape",null)&&b.setFillColor(mxUtils.getValue(c.style,mxConstants.STYLE_STROKECOLOR,this.stroke));return L.apply(this,arguments)};PrintDialog.prototype.create=function(b,c){function f(){v.value=Math.max(1,Math.min(g,Math.max(parseInt(v.value),parseInt(n.value))));n.value=Math.max(1,Math.min(g,Math.min(parseInt(v.value),parseInt(n.value))))}function d(c){function f(c,f,l){var m=c.useCssTransforms,g=c.currentTranslate,p=c.currentScale,k=c.view.translate,
-q=c.view.scale;c.useCssTransforms&&(c.useCssTransforms=!1,c.currentTranslate=new mxPoint(0,0),c.currentScale=1,c.view.translate=new mxPoint(0,0),c.view.scale=1);var t=c.getGraphBounds(),n=0,v=0,A=N.get(),x=1/c.pageScale,E=D.checked;if(E)var x=parseInt(C.value),G=parseInt(B.value),x=Math.min(A.height*G/(t.height/c.view.scale),A.width*x/(t.width/c.view.scale));else x=parseInt(z.value)/(100*c.pageScale),isNaN(x)&&(d=1/c.pageScale,z.value="100 %");A=mxRectangle.fromRectangle(A);A.width=Math.ceil(A.width*
-d);A.height=Math.ceil(A.height*d);x*=d;!E&&c.pageVisible?(t=c.getPageLayout(),n-=t.x*A.width,v-=t.y*A.height):E=!0;if(null==f){f=PrintDialog.createPrintPreview(c,x,A,0,n,v,E);f.pageSelector=!1;f.mathEnabled=!1;u.checked&&(f.isCellVisible=function(b){return c.isCellSelected(b)});n=b.getCurrentFile();null!=n&&(f.title=n.getTitle());var H=f.writeHead;f.writeHead=function(f){H.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)f.writeln('<style type="text/css">'),f.writeln(Editor.mathJaxWebkitCss),
+[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(b){var c=null;null!=b&&0<b.length&&("ER"==b.substring(0,2)?c="mxgraph.er":"sysML"==b.substring(0,5)&&(c="mxgraph.sysml"));return c};var R=mxMarker.createMarker;mxMarker.createMarker=function(b,c,f,d,e,l,m,p,g,k){if(null!=f&&null==mxMarker.markers[f]){var q=this.getPackageForType(f);null!=q&&mxStencilRegistry.getStencil(q)}return R.apply(this,arguments)};var L=mxStencil.prototype.drawShape;mxStencil.prototype.drawShape=function(b,
+c,f,d,e,l){"1"==mxUtils.getValue(c.style,"lineShape",null)&&b.setFillColor(mxUtils.getValue(c.style,mxConstants.STYLE_STROKECOLOR,this.stroke));return L.apply(this,arguments)};PrintDialog.prototype.create=function(b,c){function f(){v.value=Math.max(1,Math.min(p,Math.max(parseInt(v.value),parseInt(n.value))));n.value=Math.max(1,Math.min(p,Math.min(parseInt(v.value),parseInt(n.value))))}function d(c){function f(c,f,l){var m=c.useCssTransforms,p=c.currentTranslate,g=c.currentScale,k=c.view.translate,
+q=c.view.scale;c.useCssTransforms&&(c.useCssTransforms=!1,c.currentTranslate=new mxPoint(0,0),c.currentScale=1,c.view.translate=new mxPoint(0,0),c.view.scale=1);var t=c.getGraphBounds(),n=0,v=0,A=N.get(),x=1/c.pageScale,F=D.checked;if(F)var x=parseInt(C.value),E=parseInt(B.value),x=Math.min(A.height*E/(t.height/c.view.scale),A.width*x/(t.width/c.view.scale));else x=parseInt(z.value)/(100*c.pageScale),isNaN(x)&&(d=1/c.pageScale,z.value="100 %");A=mxRectangle.fromRectangle(A);A.width=Math.ceil(A.width*
+d);A.height=Math.ceil(A.height*d);x*=d;!F&&c.pageVisible?(t=c.getPageLayout(),n-=t.x*A.width,v-=t.y*A.height):F=!0;if(null==f){f=PrintDialog.createPrintPreview(c,x,A,0,n,v,F);f.pageSelector=!1;f.mathEnabled=!1;u.checked&&(f.isCellVisible=function(b){return c.isCellSelected(b)});n=b.getCurrentFile();null!=n&&(f.title=n.getTitle());var H=f.writeHead;f.writeHead=function(f){H.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)f.writeln('<style type="text/css">'),f.writeln(Editor.mathJaxWebkitCss),
f.writeln("</style>");mxClient.IS_GC&&(f.writeln('<style type="text/css">'),f.writeln("@media print {"),f.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),f.writeln("}"),f.writeln("</style>"));null!=b.editor.fontCss&&(f.writeln('<style type="text/css">'),f.writeln(b.editor.fontCss),f.writeln("</style>"));for(var d=c.getCustomFonts(),e=0;e<d.length;e++){var l=d[e].name,m=d[e].url;Graph.isCssFontUrl(m)?f.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(m)+'" charset="UTF-8" type="text/css">'):
-(f.writeln('<style type="text/css">'),f.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(l)+'";\nsrc: url("'+mxUtils.htmlEntities(m)+'");\n}'),f.writeln("</style>"))}};if("undefined"!==typeof MathJax){var y=f.renderPage;f.renderPage=function(c,f,d,e,l,m){var g=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var p=y.apply(this,arguments);mxClient.NO_FO=g;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||
-!0:p.className="geDisableMathJax";return p}}n=null;v=e.shapeForegroundColor;E=e.shapeBackgroundColor;A=e.enableFlowAnimation;e.enableFlowAnimation=!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(n=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.shapeForegroundColor="#000000",e.shapeBackgroundColor="#ffffff",e.refresh());f.open(null,null,l,!0);e.enableFlowAnimation=A;null!=n&&(e.shapeForegroundColor=v,e.shapeBackgroundColor=E,e.stylesheet=n,e.refresh())}else{A=c.background;if(null==A||""==
-A||A==mxConstants.NONE)A="#ffffff";f.backgroundColor=A;f.autoOrigin=E;f.appendGraph(c,x,n,v,l,!0);l=c.getCustomFonts();if(null!=f.wnd)for(n=0;n<l.length;n++)v=l[n].name,E=l[n].url,Graph.isCssFontUrl(E)?f.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(E)+'" charset="UTF-8" type="text/css">'):(f.wnd.document.writeln('<style type="text/css">'),f.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(v)+'";\nsrc: url("'+mxUtils.htmlEntities(E)+'");\n}'),f.wnd.document.writeln("</style>"))}m&&
-(c.useCssTransforms=m,c.currentTranslate=g,c.currentScale=p,c.view.translate=k,c.view.scale=q);return f}var d=parseInt(W.value)/100;isNaN(d)&&(d=1,W.value="100 %");var d=.75*d,l=null,m=e.shapeForegroundColor,g=e.shapeBackgroundColor;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(l=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.shapeForegroundColor="#000000",e.shapeBackgroundColor="#ffffff",e.refresh());var k=n.value,t=v.value,A=!q.checked,x=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,
-q.checked,k,t,D.checked,C.value,B.value,parseInt(z.value)/100,parseInt(W.value)/100,N.get());else{A&&(A=u.checked||k==p&&t==p);if(!A&&null!=b.pages&&b.pages.length){var E=0,A=b.pages.length-1;q.checked||(E=parseInt(k)-1,A=parseInt(t)-1);for(var G=E;G<=A;G++){var H=b.pages[G],k=H==b.currentPage?e:null;if(null==k){k=b.createTemporaryGraph(e.stylesheet);k.shapeForegroundColor=e.shapeForegroundColor;k.shapeBackgroundColor=e.shapeBackgroundColor;var t=!0,E=!1,y=null,F=null;null==H.viewState&&null==H.root&&
-b.updatePageRoot(H);null!=H.viewState&&(t=H.viewState.pageVisible,E=H.viewState.mathEnabled,y=H.viewState.background,F=H.viewState.backgroundImage,k.extFonts=H.viewState.extFonts);null!=F&&null!=F.originalSrc&&(F=b.createImageForPageLink(F.originalSrc,H));k.background=y;k.backgroundImage=null!=F?new mxImage(F.src,F.width,F.height,F.x,F.y):null;k.pageVisible=t;k.mathEnabled=E;var L=k.getGraphBounds;k.getGraphBounds=function(){var b=L.apply(this,arguments),c=this.backgroundImage;if(null!=c&&null!=c.width&&
-null!=c.height){var f=this.view.translate,d=this.view.scale,b=mxRectangle.fromRectangle(b);b.add(new mxRectangle((f.x+c.x)*d,(f.y+c.y)*d,c.width*d,c.height*d))}return b};var J=k.getGlobalVariable;k.getGlobalVariable=function(c){return"page"==c?H.getName():"pagenumber"==c?G+1:"pagecount"==c?null!=b.pages?b.pages.length:1:J.apply(this,arguments)};document.body.appendChild(k.container);b.updatePageRoot(H);k.model.setRoot(H.root)}x=f(k,x,G!=A);k!=e&&k.container.parentNode.removeChild(k.container)}}else x=
-f(e);null==x?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(x.mathEnabled&&(A=x.wnd.document,c&&(x.wnd.IMMEDIATE_PRINT=!0),A.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),x.closeDocument(),!x.mathEnabled&&c&&PrintDialog.printPreview(x));null!=l&&(e.shapeForegroundColor=m,e.shapeBackgroundColor=g,e.stylesheet=l,e.refresh())}}var e=b.editor.graph,l=document.createElement("div"),m=document.createElement("h3");m.style.width="100%";
-m.style.textAlign="center";m.style.marginTop="0px";mxUtils.write(m,c||mxResources.get("print"));l.appendChild(m);var g=1,p=1,k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","all");q.setAttribute("type","radio");q.setAttribute("name","pages-printdialog");k.appendChild(q);m=document.createElement("span");mxUtils.write(m,
+(f.writeln('<style type="text/css">'),f.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(l)+'";\nsrc: url("'+mxUtils.htmlEntities(m)+'");\n}'),f.writeln("</style>"))}};if("undefined"!==typeof MathJax){var y=f.renderPage;f.renderPage=function(c,f,d,e,l,m){var p=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var g=y.apply(this,arguments);mxClient.NO_FO=p;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||
+!0:g.className="geDisableMathJax";return g}}n=null;v=e.shapeForegroundColor;F=e.shapeBackgroundColor;A=e.enableFlowAnimation;e.enableFlowAnimation=!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(n=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.shapeForegroundColor="#000000",e.shapeBackgroundColor="#ffffff",e.refresh());f.open(null,null,l,!0);e.enableFlowAnimation=A;null!=n&&(e.shapeForegroundColor=v,e.shapeBackgroundColor=F,e.stylesheet=n,e.refresh())}else{A=c.background;if(null==A||""==
+A||A==mxConstants.NONE)A="#ffffff";f.backgroundColor=A;f.autoOrigin=F;f.appendGraph(c,x,n,v,l,!0);l=c.getCustomFonts();if(null!=f.wnd)for(n=0;n<l.length;n++)v=l[n].name,F=l[n].url,Graph.isCssFontUrl(F)?f.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(F)+'" charset="UTF-8" type="text/css">'):(f.wnd.document.writeln('<style type="text/css">'),f.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(v)+'";\nsrc: url("'+mxUtils.htmlEntities(F)+'");\n}'),f.wnd.document.writeln("</style>"))}m&&
+(c.useCssTransforms=m,c.currentTranslate=p,c.currentScale=g,c.view.translate=k,c.view.scale=q);return f}var d=parseInt(W.value)/100;isNaN(d)&&(d=1,W.value="100 %");var d=.75*d,l=null,m=e.shapeForegroundColor,p=e.shapeBackgroundColor;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(l=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.shapeForegroundColor="#000000",e.shapeBackgroundColor="#ffffff",e.refresh());var k=n.value,t=v.value,A=!q.checked,x=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,
+q.checked,k,t,D.checked,C.value,B.value,parseInt(z.value)/100,parseInt(W.value)/100,N.get());else{A&&(A=u.checked||k==g&&t==g);if(!A&&null!=b.pages&&b.pages.length){var F=0,A=b.pages.length-1;q.checked||(F=parseInt(k)-1,A=parseInt(t)-1);for(var E=F;E<=A;E++){var H=b.pages[E],k=H==b.currentPage?e:null;if(null==k){k=b.createTemporaryGraph(e.stylesheet);k.shapeForegroundColor=e.shapeForegroundColor;k.shapeBackgroundColor=e.shapeBackgroundColor;var t=!0,F=!1,y=null,L=null;null==H.viewState&&null==H.root&&
+b.updatePageRoot(H);null!=H.viewState&&(t=H.viewState.pageVisible,F=H.viewState.mathEnabled,y=H.viewState.background,L=H.viewState.backgroundImage,k.extFonts=H.viewState.extFonts);null!=L&&null!=L.originalSrc&&(L=b.createImageForPageLink(L.originalSrc,H));k.background=y;k.backgroundImage=null!=L?new mxImage(L.src,L.width,L.height,L.x,L.y):null;k.pageVisible=t;k.mathEnabled=F;var G=k.getGraphBounds;k.getGraphBounds=function(){var b=G.apply(this,arguments),c=this.backgroundImage;if(null!=c&&null!=c.width&&
+null!=c.height){var f=this.view.translate,d=this.view.scale,b=mxRectangle.fromRectangle(b);b.add(new mxRectangle((f.x+c.x)*d,(f.y+c.y)*d,c.width*d,c.height*d))}return b};var I=k.getGlobalVariable;k.getGlobalVariable=function(c){return"page"==c?H.getName():"pagenumber"==c?E+1:"pagecount"==c?null!=b.pages?b.pages.length:1:I.apply(this,arguments)};document.body.appendChild(k.container);b.updatePageRoot(H);k.model.setRoot(H.root)}x=f(k,x,E!=A);k!=e&&k.container.parentNode.removeChild(k.container)}}else x=
+f(e);null==x?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(x.mathEnabled&&(A=x.wnd.document,c&&(x.wnd.IMMEDIATE_PRINT=!0),A.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),x.closeDocument(),!x.mathEnabled&&c&&PrintDialog.printPreview(x));null!=l&&(e.shapeForegroundColor=m,e.shapeBackgroundColor=p,e.stylesheet=l,e.refresh())}}var e=b.editor.graph,l=document.createElement("div"),m=document.createElement("h3");m.style.width="100%";
+m.style.textAlign="center";m.style.marginTop="0px";mxUtils.write(m,c||mxResources.get("print"));l.appendChild(m);var p=1,g=1,k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","all");q.setAttribute("type","radio");q.setAttribute("name","pages-printdialog");k.appendChild(q);m=document.createElement("span");mxUtils.write(m,
mxResources.get("printAllPages"));k.appendChild(m);mxUtils.br(k);var t=q.cloneNode(!0);q.setAttribute("checked","checked");t.setAttribute("value","range");k.appendChild(t);m=document.createElement("span");mxUtils.write(m,mxResources.get("pages")+":");k.appendChild(m);var n=document.createElement("input");n.style.cssText="margin:0 8px 0 8px;";n.setAttribute("value","1");n.setAttribute("type","number");n.setAttribute("min","1");n.style.width="50px";k.appendChild(n);m=document.createElement("span");
-mxUtils.write(m,mxResources.get("to"));k.appendChild(m);var v=n.cloneNode(!0);k.appendChild(v);mxEvent.addListener(n,"focus",function(){t.checked=!0});mxEvent.addListener(v,"focus",function(){t.checked=!0});mxEvent.addListener(n,"change",f);mxEvent.addListener(v,"change",f);if(null!=b.pages&&(g=b.pages.length,null!=b.currentPage))for(m=0;m<b.pages.length;m++)if(b.currentPage==b.pages[m]){p=m+1;n.value=p;v.value=p;break}n.setAttribute("max",g);v.setAttribute("max",g);b.isPagesEnabled()?1<g&&(l.appendChild(k),
-t.checked=!0):t.checked=!0;mxUtils.br(k);var u=document.createElement("input");u.setAttribute("value","all");u.setAttribute("type","radio");u.style.marginRight="8px";e.isSelectionEmpty()&&u.setAttribute("disabled","disabled");var A=document.createElement("div");A.style.marginBottom="10px";1==g?(u.setAttribute("type","checkbox"),u.style.marginBottom="12px",A.appendChild(u)):(u.setAttribute("name","pages-printdialog"),u.style.marginBottom="8px",k.appendChild(u));m=document.createElement("span");mxUtils.write(m,
-mxResources.get("selectionOnly"));u.parentNode.appendChild(m);1==g&&mxUtils.br(u.parentNode);var x=document.createElement("input");x.style.marginRight="8px";x.setAttribute("value","adjust");x.setAttribute("type","radio");x.setAttribute("name","printZoom");A.appendChild(x);m=document.createElement("span");mxUtils.write(m,mxResources.get("adjustTo"));A.appendChild(m);var z=document.createElement("input");z.style.cssText="margin:0 8px 0 8px;";z.setAttribute("value","100 %");z.style.width="50px";A.appendChild(z);
-mxEvent.addListener(z,"focus",function(){x.checked=!0});l.appendChild(A);var k=k.cloneNode(!1),D=x.cloneNode(!0);D.setAttribute("value","fit");x.setAttribute("checked","checked");m=document.createElement("div");m.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";m.appendChild(D);k.appendChild(m);A=document.createElement("table");A.style.display="inline-block";var E=document.createElement("tbody"),G=document.createElement("tr"),H=G.cloneNode(!0),y=document.createElement("td"),
-F=y.cloneNode(!0),L=y.cloneNode(!0),J=y.cloneNode(!0),K=y.cloneNode(!0),I=y.cloneNode(!0);y.style.textAlign="right";J.style.textAlign="right";mxUtils.write(y,mxResources.get("fitTo"));var C=document.createElement("input");C.style.cssText="margin:0 8px 0 8px;";C.setAttribute("value","1");C.setAttribute("min","1");C.setAttribute("type","number");C.style.width="40px";F.appendChild(C);m=document.createElement("span");mxUtils.write(m,mxResources.get("fitToSheetsAcross"));L.appendChild(m);mxUtils.write(J,
-mxResources.get("fitToBy"));var B=C.cloneNode(!0);K.appendChild(B);mxEvent.addListener(C,"focus",function(){D.checked=!0});mxEvent.addListener(B,"focus",function(){D.checked=!0});m=document.createElement("span");mxUtils.write(m,mxResources.get("fitToSheetsDown"));I.appendChild(m);G.appendChild(y);G.appendChild(F);G.appendChild(L);H.appendChild(J);H.appendChild(K);H.appendChild(I);E.appendChild(G);E.appendChild(H);A.appendChild(E);k.appendChild(A);l.appendChild(k);k=document.createElement("div");m=
+mxUtils.write(m,mxResources.get("to"));k.appendChild(m);var v=n.cloneNode(!0);k.appendChild(v);mxEvent.addListener(n,"focus",function(){t.checked=!0});mxEvent.addListener(v,"focus",function(){t.checked=!0});mxEvent.addListener(n,"change",f);mxEvent.addListener(v,"change",f);if(null!=b.pages&&(p=b.pages.length,null!=b.currentPage))for(m=0;m<b.pages.length;m++)if(b.currentPage==b.pages[m]){g=m+1;n.value=g;v.value=g;break}n.setAttribute("max",p);v.setAttribute("max",p);b.isPagesEnabled()?1<p&&(l.appendChild(k),
+t.checked=!0):t.checked=!0;mxUtils.br(k);var u=document.createElement("input");u.setAttribute("value","all");u.setAttribute("type","radio");u.style.marginRight="8px";e.isSelectionEmpty()&&u.setAttribute("disabled","disabled");var A=document.createElement("div");A.style.marginBottom="10px";1==p?(u.setAttribute("type","checkbox"),u.style.marginBottom="12px",A.appendChild(u)):(u.setAttribute("name","pages-printdialog"),u.style.marginBottom="8px",k.appendChild(u));m=document.createElement("span");mxUtils.write(m,
+mxResources.get("selectionOnly"));u.parentNode.appendChild(m);1==p&&mxUtils.br(u.parentNode);var x=document.createElement("input");x.style.marginRight="8px";x.setAttribute("value","adjust");x.setAttribute("type","radio");x.setAttribute("name","printZoom");A.appendChild(x);m=document.createElement("span");mxUtils.write(m,mxResources.get("adjustTo"));A.appendChild(m);var z=document.createElement("input");z.style.cssText="margin:0 8px 0 8px;";z.setAttribute("value","100 %");z.style.width="50px";A.appendChild(z);
+mxEvent.addListener(z,"focus",function(){x.checked=!0});l.appendChild(A);var k=k.cloneNode(!1),D=x.cloneNode(!0);D.setAttribute("value","fit");x.setAttribute("checked","checked");m=document.createElement("div");m.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";m.appendChild(D);k.appendChild(m);A=document.createElement("table");A.style.display="inline-block";var E=document.createElement("tbody"),F=document.createElement("tr"),H=F.cloneNode(!0),y=document.createElement("td"),
+L=y.cloneNode(!0),G=y.cloneNode(!0),I=y.cloneNode(!0),K=y.cloneNode(!0),J=y.cloneNode(!0);y.style.textAlign="right";I.style.textAlign="right";mxUtils.write(y,mxResources.get("fitTo"));var C=document.createElement("input");C.style.cssText="margin:0 8px 0 8px;";C.setAttribute("value","1");C.setAttribute("min","1");C.setAttribute("type","number");C.style.width="40px";L.appendChild(C);m=document.createElement("span");mxUtils.write(m,mxResources.get("fitToSheetsAcross"));G.appendChild(m);mxUtils.write(I,
+mxResources.get("fitToBy"));var B=C.cloneNode(!0);K.appendChild(B);mxEvent.addListener(C,"focus",function(){D.checked=!0});mxEvent.addListener(B,"focus",function(){D.checked=!0});m=document.createElement("span");mxUtils.write(m,mxResources.get("fitToSheetsDown"));J.appendChild(m);F.appendChild(y);F.appendChild(L);F.appendChild(G);H.appendChild(I);H.appendChild(K);H.appendChild(J);E.appendChild(F);E.appendChild(H);A.appendChild(E);k.appendChild(A);l.appendChild(k);k=document.createElement("div");m=
document.createElement("div");m.style.fontWeight="bold";m.style.marginBottom="12px";mxUtils.write(m,mxResources.get("paperSize"));k.appendChild(m);m=document.createElement("div");m.style.marginBottom="12px";var N=PageSetupDialog.addPageFormatPanel(m,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);k.appendChild(m);m=document.createElement("span");mxUtils.write(m,mxResources.get("pageScale"));k.appendChild(m);var W=document.createElement("input");W.style.cssText="margin:0 8px 0 8px;";
W.setAttribute("value","100 %");W.style.width="60px";k.appendChild(W);l.appendChild(k);m=document.createElement("div");m.style.cssText="text-align:right;margin:48px 0 0 0;";k=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});k.className="geBtn";b.editor.cancelFirst&&m.appendChild(k);b.isOffline()||(A=mxUtils.button(mxResources.get("help"),function(){e.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),A.className="geBtn",m.appendChild(A));PrintDialog.previewEnabled&&(A=
mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();d(!1)}),A.className="geBtn",m.appendChild(A));A=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();d(!0)});A.className="geBtn gePrimaryBtn";m.appendChild(A);b.editor.cancelFirst||m.appendChild(k);l.appendChild(m);this.container=l};var W=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);if(this.page!=this.ui.currentPage){if(null!=
this.page.viewState){this.ignoreColor||(this.page.viewState.background=this.color);if(!this.ignoreImage){var b=this.image;null!=b&&null!=b.src&&Graph.isPageLink(b.src)&&(b={originalSrc:b.src});this.page.viewState.backgroundImage=b}null!=this.format&&(this.page.viewState.pageFormat=this.format);null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled);null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)}}else W.apply(this,arguments),null!=this.mathEnabled&&
this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible)};Editor.prototype.useCanvasForExport=!1;try{var X=document.createElement("canvas"),S=new Image;S.onload=function(){try{X.getContext("2d").drawImage(S,0,0);var b=X.toDataURL("image/png");Editor.prototype.useCanvasForExport=
-null!=b&&6<b.length}catch(P){}};S.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(M){}})();
+null!=b&&6<b.length}catch(O){}};S.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(M){}})();
(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(b,d,c){c.ui=b.ui;return d};b.afterDecode=function(b,d,c){c.previousColor=c.color;c.previousImage=c.image;c.previousFormat=c.format;null!=c.foldingEnabled&&(c.foldingEnabled=!c.foldingEnabled);null!=c.mathEnabled&&(c.mathEnabled=!c.mathEnabled);null!=c.shadowVisible&&(c.shadowVisible=!c.shadowVisible);return c};mxCodecRegistry.register(b)})();
-(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,d,c){c.ui=b.ui;return d};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="17.3.0";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
+(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,d,c){c.ui=b.ui;return d};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="17.4.0";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl="1"==urlParams.dev?"https://app.diagrams.net/cache":window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;
EditorUi.nativeFileSupport=!mxClient.IS_OP&&!EditorUi.isElectronApp&&"1"!=urlParams.extAuth&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.enableHtmlEditOption=!0;EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,
width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(b,c,d,e,g,k,n){k=null!=k?k:0<=b.indexOf("NetworkError")||0<=b.indexOf("SecurityError")||0<=b.indexOf("NS_ERROR_FAILURE")||
@@ -11251,9 +11251,9 @@ null!=b&&6<b.length}catch(t){}};d.src="data:image/svg+xml;base64,"+btoa(unescape
EditorUi.prototype.openLink=function(b,c,d){return this.editor.graph.openLink(b,c,d)};EditorUi.prototype.showSplash=function(b){};EditorUi.prototype.getLocalData=function(b,c){c(localStorage.getItem(b))};EditorUi.prototype.setLocalData=function(b,c,d){localStorage.setItem(b,c);null!=d&&d()};EditorUi.prototype.removeLocalData=function(b,c){localStorage.removeItem(b);c()};EditorUi.prototype.setShareCursorPosition=function(b){this.shareCursorPosition=b;this.fireEvent(new mxEventObject("shareCursorPositionChanged"))};
EditorUi.prototype.isShareCursorPosition=function(){return this.shareCursorPosition};EditorUi.prototype.setMathEnabled=function(b){this.editor.graph.mathEnabled=b;this.editor.updateGraphComponents();this.editor.graph.refresh();this.editor.graph.defaultMathEnabled=b;this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(b){return this.editor.graph.mathEnabled};EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=
function(b){return this.isOfflineApp()||!navigator.onLine||!b&&("1"==urlParams.stealth||"1"==urlParams.lockdown)};EditorUi.prototype.isExternalDataComms=function(){return"1"!=urlParams.offline&&!this.isOffline()&&!this.isOfflineApp()};EditorUi.prototype.createSpinner=function(b,c,d){var f=null==b||null==c;d=null!=d?d:24;var e=new Spinner({lines:12,length:d,width:Math.round(d/3),radius:Math.round(d/2),rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),
-l=e.spin;e.spin=function(d,m){var g=!1;this.active||(l.call(this,d),this.active=!0,null!=m&&(f&&(c=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,b=document.body.clientWidth/2-2),g=document.createElement("div"),g.style.position="absolute",g.style.whiteSpace="nowrap",g.style.background="#4B4243",g.style.color="white",g.style.fontFamily=Editor.defaultHtmlFont,g.style.fontSize="9pt",g.style.padding="6px",g.style.paddingLeft="10px",g.style.paddingRight="10px",g.style.zIndex=
-2E9,g.style.left=Math.max(0,b)+"px",g.style.top=Math.max(0,c+70)+"px",mxUtils.setPrefixedStyle(g.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,-50%)"),Editor.isDarkMode()||mxUtils.setPrefixedStyle(g.style,"boxShadow","2px 2px 3px 0px #ddd"),"..."!=m.substring(m.length-3,m.length)&&"!"!=m.charAt(m.length-1)&&(m+="..."),g.innerHTML=m,d.appendChild(g),e.status=g),this.pause=mxUtils.bind(this,function(){var b=function(){};this.active&&(b=mxUtils.bind(this,function(){this.spin(d,
-m)}));this.stop();return b}),g=!0);return g};var m=e.stop;e.stop=function(){m.call(this);this.active=!1;null!=e.status&&null!=e.status.parentNode&&e.status.parentNode.removeChild(e.status);e.status=null};e.pause=function(){return function(){}};return e};EditorUi.prototype.isCompatibleString=function(b){try{var c=mxUtils.parseXml(b),f=this.editor.extractGraphModel(c.documentElement,!0);return null!=f&&0==f.getElementsByTagName("parsererror").length}catch(p){}return!1};EditorUi.prototype.isVisioData=
+l=e.spin;e.spin=function(d,m){var p=!1;this.active||(l.call(this,d),this.active=!0,null!=m&&(f&&(c=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,b=document.body.clientWidth/2-2),p=document.createElement("div"),p.style.position="absolute",p.style.whiteSpace="nowrap",p.style.background="#4B4243",p.style.color="white",p.style.fontFamily=Editor.defaultHtmlFont,p.style.fontSize="9pt",p.style.padding="6px",p.style.paddingLeft="10px",p.style.paddingRight="10px",p.style.zIndex=
+2E9,p.style.left=Math.max(0,b)+"px",p.style.top=Math.max(0,c+70)+"px",mxUtils.setPrefixedStyle(p.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(p.style,"transform","translate(-50%,-50%)"),Editor.isDarkMode()||mxUtils.setPrefixedStyle(p.style,"boxShadow","2px 2px 3px 0px #ddd"),"..."!=m.substring(m.length-3,m.length)&&"!"!=m.charAt(m.length-1)&&(m+="..."),p.innerHTML=m,d.appendChild(p),e.status=p),this.pause=mxUtils.bind(this,function(){var b=function(){};this.active&&(b=mxUtils.bind(this,function(){this.spin(d,
+m)}));this.stop();return b}),p=!0);return p};var m=e.stop;e.stop=function(){m.call(this);this.active=!1;null!=e.status&&null!=e.status.parentNode&&e.status.parentNode.removeChild(e.status);e.status=null};e.pause=function(){return function(){}};return e};EditorUi.prototype.isCompatibleString=function(b){try{var c=mxUtils.parseXml(b),f=this.editor.extractGraphModel(c.documentElement,!0);return null!=f&&0==f.getElementsByTagName("parsererror").length}catch(p){}return!1};EditorUi.prototype.isVisioData=
function(b){return 8<b.length&&(208==b.charCodeAt(0)&&207==b.charCodeAt(1)&&17==b.charCodeAt(2)&&224==b.charCodeAt(3)&&161==b.charCodeAt(4)&&177==b.charCodeAt(5)&&26==b.charCodeAt(6)&&225==b.charCodeAt(7)||80==b.charCodeAt(0)&&75==b.charCodeAt(1)&&3==b.charCodeAt(2)&&4==b.charCodeAt(3)||80==b.charCodeAt(0)&&75==b.charCodeAt(1)&&3==b.charCodeAt(2)&&6==b.charCodeAt(3))};EditorUi.prototype.isRemoteVisioData=function(b){return 8<b.length&&(208==b.charCodeAt(0)&&207==b.charCodeAt(1)&&17==b.charCodeAt(2)&&
224==b.charCodeAt(3)&&161==b.charCodeAt(4)&&177==b.charCodeAt(5)&&26==b.charCodeAt(6)&&225==b.charCodeAt(7)||60==b.charCodeAt(0)&&63==b.charCodeAt(1)&&120==b.charCodeAt(2)&&109==b.charCodeAt(3)&&108==b.charCodeAt(3))};var b=EditorUi.prototype.createKeyHandler;EditorUi.prototype.createKeyHandler=function(c){var f=b.apply(this,arguments);if(!this.editor.chromeless||this.editor.editable){var d=f.getFunction,e=this.editor.graph,g=this;f.getFunction=function(b){if(e.isSelectionEmpty()&&null!=g.pages&&
0<g.pages.length){var c=g.getSelectedPageIndex();if(mxEvent.isShiftDown(b)){if(37==b.keyCode)return function(){0<c&&g.movePage(c,c-1)};if(38==b.keyCode)return function(){0<c&&g.movePage(c,0)};if(39==b.keyCode)return function(){c<g.pages.length-1&&g.movePage(c,c+1)};if(40==b.keyCode)return function(){c<g.pages.length-1&&g.movePage(c,g.pages.length-1)}}else if(mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b)){if(37==b.keyCode)return function(){0<c&&g.selectNextPage(!1)};if(38==b.keyCode)return function(){0<
@@ -11266,9 +11266,9 @@ b.ownerDocument.createElement("diagram");p.setAttribute("id",Editor.guid());p.ap
m.removeAttribute("version"),m.removeAttribute("editor"),m.removeAttribute("type")):(m.removeAttribute("userAgent"),m.removeAttribute("version"),m.removeAttribute("editor"),m.removeAttribute("pages"),m.removeAttribute("type"),mxClient.IS_CHROMEAPP?m.setAttribute("host","Chrome"):EditorUi.isElectronApp?m.setAttribute("host","Electron"):m.setAttribute("host",window.location.hostname),m.setAttribute("modified",(new Date).toISOString()),m.setAttribute("agent",navigator.appVersion),m.setAttribute("version",
EditorUi.VERSION),m.setAttribute("etag",Editor.guid()),b=null!=d?d.getMode():this.mode,null!=b&&m.setAttribute("type",b),1<m.getElementsByTagName("diagram").length&&null!=this.pages&&m.setAttribute("pages",this.pages.length));y=y?mxUtils.getPrettyXml(m):mxUtils.getXml(m);if(!k&&!g&&(n||null!=d&&/(\.html)$/i.test(d.getTitle())))y=this.getHtml2(mxUtils.getXml(m),c,null!=d?d.getTitle():null,f,l);else if(k||!g&&null!=d&&/(\.svg)$/i.test(d.getTitle()))null==d||d.getMode()!=App.MODE_DEVICE&&d.getMode()!=
App.MODE_BROWSER||(e=null),y=this.getEmbeddedSvg(y,c,e,null,u,x,l);return y};EditorUi.prototype.getXmlFileData=function(b,c,d,e){b=null!=b?b:!0;c=null!=c?c:!1;d=null!=d?d:!Editor.compressXml;var f=this.editor.getGraphXml(b,e);if(b&&null!=this.fileNode&&null!=this.currentPage)if(b=function(b){var c=b.getElementsByTagName("mxGraphModel"),c=0<c.length?c[0]:null;null==c&&d?(c=mxUtils.trim(mxUtils.getTextContent(b)),b=b.cloneNode(!1),0<c.length&&(c=Graph.decompress(c),null!=c&&0<c.length&&b.appendChild(mxUtils.parseXml(c).documentElement))):
-null==c||d?b=b.cloneNode(!0):(b=b.cloneNode(!1),mxUtils.setTextContent(b,Graph.compressNode(c)));f.appendChild(b)},EditorUi.removeChildNodes(this.currentPage.node),mxUtils.setTextContent(this.currentPage.node,Graph.compressNode(f)),f=this.fileNode.cloneNode(!1),c)b(this.currentPage.node);else for(c=0;c<this.pages.length;c++){var l=this.pages[c],m=l.node;if(l!=this.currentPage)if(l.needsUpdate){var g=new mxCodec(mxUtils.createXmlDocument()),g=g.encode(new mxGraphModel(l.root));this.editor.graph.saveViewState(l.viewState,
-g,null,e);EditorUi.removeChildNodes(m);mxUtils.setTextContent(m,Graph.compressNode(g));delete l.needsUpdate}else e&&(this.updatePageRoot(l),null!=l.viewState.backgroundImage&&(null!=l.viewState.backgroundImage.originalSrc?l.viewState.backgroundImage=this.createImageForPageLink(l.viewState.backgroundImage.originalSrc,l):Graph.isPageLink(l.viewState.backgroundImage.src)&&(l.viewState.backgroundImage=this.createImageForPageLink(l.viewState.backgroundImage.src,l))),null!=l.viewState.backgroundImage&&
-null!=l.viewState.backgroundImage.originalSrc&&(g=new mxCodec(mxUtils.createXmlDocument()),g=g.encode(new mxGraphModel(l.root)),this.editor.graph.saveViewState(l.viewState,g,null,e),m=m.cloneNode(!1),mxUtils.setTextContent(m,Graph.compressNode(g))));b(m)}return f};EditorUi.prototype.anonymizeString=function(b,c){for(var f=[],d=0;d<b.length;d++){var e=b.charAt(d);0<=EditorUi.ignoredAnonymizedChars.indexOf(e)?f.push(e):isNaN(parseInt(e))?e.toLowerCase()!=e?f.push(String.fromCharCode(65+Math.round(25*
+null==c||d?b=b.cloneNode(!0):(b=b.cloneNode(!1),mxUtils.setTextContent(b,Graph.compressNode(c)));f.appendChild(b)},EditorUi.removeChildNodes(this.currentPage.node),mxUtils.setTextContent(this.currentPage.node,Graph.compressNode(f)),f=this.fileNode.cloneNode(!1),c)b(this.currentPage.node);else for(c=0;c<this.pages.length;c++){var l=this.pages[c],m=l.node;if(l!=this.currentPage)if(l.needsUpdate){var p=new mxCodec(mxUtils.createXmlDocument()),p=p.encode(new mxGraphModel(l.root));this.editor.graph.saveViewState(l.viewState,
+p,null,e);EditorUi.removeChildNodes(m);mxUtils.setTextContent(m,Graph.compressNode(p));delete l.needsUpdate}else e&&(this.updatePageRoot(l),null!=l.viewState.backgroundImage&&(null!=l.viewState.backgroundImage.originalSrc?l.viewState.backgroundImage=this.createImageForPageLink(l.viewState.backgroundImage.originalSrc,l):Graph.isPageLink(l.viewState.backgroundImage.src)&&(l.viewState.backgroundImage=this.createImageForPageLink(l.viewState.backgroundImage.src,l))),null!=l.viewState.backgroundImage&&
+null!=l.viewState.backgroundImage.originalSrc&&(p=new mxCodec(mxUtils.createXmlDocument()),p=p.encode(new mxGraphModel(l.root)),this.editor.graph.saveViewState(l.viewState,p,null,e),m=m.cloneNode(!1),mxUtils.setTextContent(m,Graph.compressNode(p))));b(m)}return f};EditorUi.prototype.anonymizeString=function(b,c){for(var f=[],d=0;d<b.length;d++){var e=b.charAt(d);0<=EditorUi.ignoredAnonymizedChars.indexOf(e)?f.push(e):isNaN(parseInt(e))?e.toLowerCase()!=e?f.push(String.fromCharCode(65+Math.round(25*
Math.random()))):e.toUpperCase()!=e?f.push(String.fromCharCode(97+Math.round(25*Math.random()))):/\s/.test(e)?f.push(" "):f.push("?"):f.push(c?"0":Math.round(9*Math.random()))}return f.join("")};EditorUi.prototype.anonymizePatch=function(b){if(null!=b[EditorUi.DIFF_INSERT])for(var c=0;c<b[EditorUi.DIFF_INSERT].length;c++)try{var f=mxUtils.parseXml(b[EditorUi.DIFF_INSERT][c].data).documentElement.cloneNode(!1);null!=f.getAttribute("name")&&f.setAttribute("name",this.anonymizeString(f.getAttribute("name")));
b[EditorUi.DIFF_INSERT][c].data=mxUtils.getXml(f)}catch(t){b[EditorUi.DIFF_INSERT][c].data=t.message}if(null!=b[EditorUi.DIFF_UPDATE]){for(var d in b[EditorUi.DIFF_UPDATE]){var e=b[EditorUi.DIFF_UPDATE][d];null!=e.name&&(e.name=this.anonymizeString(e.name));null!=e.cells&&(c=mxUtils.bind(this,function(b){var c=e.cells[b];if(null!=c){for(var f in c)null!=c[f].value&&(c[f].value="["+c[f].value.length+"]"),null!=c[f].xmlValue&&(c[f].xmlValue="["+c[f].xmlValue.length+"]"),null!=c[f].style&&(c[f].style=
"["+c[f].style.length+"]"),mxUtils.isEmptyObject(c[f])&&delete c[f];mxUtils.isEmptyObject(c)&&delete e.cells[b]}}),c(EditorUi.DIFF_INSERT),c(EditorUi.DIFF_UPDATE),mxUtils.isEmptyObject(e.cells)&&delete e.cells);mxUtils.isEmptyObject(e)&&delete b[EditorUi.DIFF_UPDATE][d]}mxUtils.isEmptyObject(b[EditorUi.DIFF_UPDATE])&&delete b[EditorUi.DIFF_UPDATE]}return b};EditorUi.prototype.anonymizeAttributes=function(b,c){if(null!=b.attributes)for(var f=0;f<b.attributes.length;f++)"as"!=b.attributes[f].name&&
@@ -11288,18 +11288,18 @@ null==b.getName()&&b.setName(mxResources.get("pageWithNumber",[d+1])),this.pages
[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var e=urlParams["layer-ids"].split(" ");b={};for(d=0;d<e.length;d++)b[e[d]]=!0;for(var g=this.editor.graph.getModel(),k=g.getChildren(g.root),d=0;d<k.length;d++){var n=k[d];g.setVisible(n,b[n.id]||!1)}}catch(x){}};EditorUi.prototype.getBaseFilename=function(b){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():
this.defaultFilename;if(/(\.xml)$/i.test(c)||/(\.html)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.png)$/i.test(c))c=c.substring(0,c.lastIndexOf("."));/(\.drawio)$/i.test(c)&&(c=c.substring(0,c.lastIndexOf(".")));!b&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(c=c+"-"+this.currentPage.getName());return c};EditorUi.prototype.downloadFile=function(b,c,d,e,g,k,n,u,x,z,y,B){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();
var f=this.getBaseFilename("remoteSvg"==b?!1:!g),l=f+("xml"==b||"pdf"==b&&y?".drawio":"")+"."+b;if("xml"==b){var m=Graph.xmlDeclaration+"\n"+this.getFileData(!0,null,null,null,e,g,null,null,null,c);this.saveData(l,b,m,"text/xml")}else if("html"==b)m=this.getHtml2(this.getFileData(!0),this.editor.graph,f),this.saveData(l,b,m,"text/html");else if("svg"!=b&&"xmlsvg"!=b||!this.spinner.spin(document.body,mxResources.get("export"))){var p,t;if("xmlpng"==b)l=f+".png";else if("jpeg"==b)l=f+".jpg";else if("remoteSvg"==
-b){l=f+".svg";b="svg";var q=parseInt(x);"string"===typeof u&&0<u.indexOf("%")&&(u=parseInt(u)/100);if(0<q){var v=this.editor.graph,J=v.getGraphBounds();p=Math.ceil(J.width*u/v.view.scale+2*q);t=Math.ceil(J.height*u/v.view.scale+2*q)}}this.saveRequest(l,b,mxUtils.bind(this,function(c,f){try{var d=this.editor.graph.pageVisible;0==k&&(this.editor.graph.pageVisible=k);var l=this.createDownloadRequest(c,b,e,f,n,g,u,x,z,y,B,p,t);this.editor.graph.pageVisible=d;return l}catch(M){this.handleError(M)}}))}else{var H=
-null,K=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(l,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(H)}))});if("svg"==b){var N=this.editor.graph.background;if(n||N==mxConstants.NONE)N=null;var Q=this.editor.graph.getSvg(N,null,null,null,null,e);d&&this.editor.graph.addSvgShadow(Q);this.editor.convertImages(Q,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();
-K(Graph.xmlDeclaration+"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(b))})))}else l=f+".svg",H=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();K(b)}),e)}}catch(L){this.handleError(L)}};EditorUi.prototype.createDownloadRequest=function(b,c,d,e,g,k,n,u,x,z,y,B,C){var f=this.editor.graph,l=f.getGraphBounds();d=this.getFileData(!0,null,null,null,d,0==k?!1:"xmlpng"!=c,null,null,null,!1,"pdf"==c);var m="",p="";if(l.width*l.height>MAX_AREA||d.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};
+b){l=f+".svg";b="svg";var q=parseInt(x);"string"===typeof u&&0<u.indexOf("%")&&(u=parseInt(u)/100);if(0<q){var v=this.editor.graph,K=v.getGraphBounds();p=Math.ceil(K.width*u/v.view.scale+2*q);t=Math.ceil(K.height*u/v.view.scale+2*q)}}this.saveRequest(l,b,mxUtils.bind(this,function(c,f){try{var d=this.editor.graph.pageVisible;0==k&&(this.editor.graph.pageVisible=k);var l=this.createDownloadRequest(c,b,e,f,n,g,u,x,z,y,B,p,t);this.editor.graph.pageVisible=d;return l}catch(M){this.handleError(M)}}))}else{var H=
+null,I=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(l,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(H)}))});if("svg"==b){var N=this.editor.graph.background;if(n||N==mxConstants.NONE)N=null;var R=this.editor.graph.getSvg(N,null,null,null,null,e);d&&this.editor.graph.addSvgShadow(R);this.editor.convertImages(R,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();
+I(Graph.xmlDeclaration+"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(b))})))}else l=f+".svg",H=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();I(b)}),e)}}catch(L){this.handleError(L)}};EditorUi.prototype.createDownloadRequest=function(b,c,d,e,g,k,n,u,x,z,y,B,C){var f=this.editor.graph,l=f.getGraphBounds();d=this.getFileData(!0,null,null,null,d,0==k?!1:"xmlpng"!=c,null,null,null,!1,"pdf"==c);var m="",p="";if(l.width*l.height>MAX_AREA||d.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};
z=z?"1":"0";"pdf"==c&&(null!=y?p="&from="+y.from+"&to="+y.to:0==k&&(p="&allPages=1"));"xmlpng"==c&&(z="1",c="png");if(("xmlpng"==c||"svg"==c)&&null!=this.pages&&null!=this.currentPage)for(k=0;k<this.pages.length;k++)if(this.pages[k]==this.currentPage){m="&from="+k;break}k=f.background;"png"!=c&&"pdf"!=c&&"svg"!=c||!g?g||null!=k&&k!=mxConstants.NONE||(k="#ffffff"):k=mxConstants.NONE;g={globalVars:f.getExportVariables()};x&&(g.grid={size:f.gridSize,steps:f.view.gridSteps,color:f.view.gridColor});Graph.translateDiagram&&
(g.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+c+m+p+"&bg="+(null!=k?k:mxConstants.NONE)+"&base64="+e+"&embedXml="+z+"&xml="+encodeURIComponent(d)+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(g))+(null!=n?"&scale="+n:"")+(null!=u?"&border="+u:"")+(B&&isFinite(B)?"&w="+B:"")+(C&&isFinite(C)?"&h="+C:""))};EditorUi.prototype.setMode=function(b,c){this.mode=b};EditorUi.prototype.loadDescriptor=function(b,c,d){var f=
window.location.hash,e=mxUtils.bind(this,function(d){var e=null!=b.data?b.data:"";null!=d&&0<d.length&&(0<e.length&&(e+="\n"),e+=d);d=new LocalFile(this,"csv"!=b.format&&0<e.length?e:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);d.getHash=function(){return f};this.fileLoaded(d);"csv"==b.format&&this.importCsv(e,mxUtils.bind(this,function(b){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=b.update){var l=
-null!=b.interval?parseInt(b.interval):6E4,m=null,g=mxUtils.bind(this,function(){var c=this.currentPage;mxUtils.post(b.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(b){c===this.currentPage&&(200<=b.getStatus()&&300>=b.getStatus()?(this.updateDiagram(b.getText()),k()):this.handleError({message:mxResources.get("error")+" "+b.getStatus()}))}),mxUtils.bind(this,function(b){this.handleError(b)}))}),k=mxUtils.bind(this,function(){window.clearTimeout(m);
-m=window.setTimeout(g,l)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){k();g()}));k();g()}null!=c&&c()});null!=b.url&&0<b.url.length?this.editor.loadUrl(b.url,mxUtils.bind(this,function(b){e(b)}),mxUtils.bind(this,function(b){null!=d&&d(b)})):e("")};EditorUi.prototype.updateDiagram=function(b){function c(b){var c=new mxCellOverlay(b.image||e.warningImage,b.tooltip,b.align,b.valign,b.offset);c.addListener(mxEvent.CLICK,function(c,f){d.alert(b.tooltip)});return c}var f=null,
+null!=b.interval?parseInt(b.interval):6E4,m=null,g=mxUtils.bind(this,function(){var c=this.currentPage;mxUtils.post(b.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(b){c===this.currentPage&&(200<=b.getStatus()&&300>=b.getStatus()?(this.updateDiagram(b.getText()),p()):this.handleError({message:mxResources.get("error")+" "+b.getStatus()}))}),mxUtils.bind(this,function(b){this.handleError(b)}))}),p=mxUtils.bind(this,function(){window.clearTimeout(m);
+m=window.setTimeout(g,l)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){p();g()}));p();g()}null!=c&&c()});null!=b.url&&0<b.url.length?this.editor.loadUrl(b.url,mxUtils.bind(this,function(b){e(b)}),mxUtils.bind(this,function(b){null!=d&&d(b)})):e("")};EditorUi.prototype.updateDiagram=function(b){function c(b){var c=new mxCellOverlay(b.image||e.warningImage,b.tooltip,b.align,b.valign,b.offset);c.addListener(mxEvent.CLICK,function(c,f){d.alert(b.tooltip)});return c}var f=null,
d=this;if(null!=b&&0<b.length&&(f=mxUtils.parseXml(b),b=null!=f?f.documentElement:null,null!=b&&"updates"==b.nodeName)){var e=this.editor.graph,g=e.getModel();g.beginUpdate();var k=null;try{for(b=b.firstChild;null!=b;){if("update"==b.nodeName){var n=g.getCell(b.getAttribute("id"));if(null!=n){try{var x=b.getAttribute("value");if(null!=x){var z=mxUtils.parseXml(x).documentElement;if(null!=z)if("1"==z.getAttribute("replace-value"))g.setValue(n,z);else for(var y=z.attributes,B=0;B<y.length;B++)e.setAttributeForCell(n,
-y[B].nodeName,0<y[B].nodeValue.length?y[B].nodeValue:null)}}catch(J){null!=window.console&&console.log("Error in value for "+n.id+": "+J)}try{var C=b.getAttribute("style");null!=C&&e.model.setStyle(n,C)}catch(J){null!=window.console&&console.log("Error in style for "+n.id+": "+J)}try{var A=b.getAttribute("icon");if(null!=A){var G=0<A.length?JSON.parse(A):null;null!=G&&G.append||e.removeCellOverlays(n);null!=G&&e.addCellOverlay(n,c(G))}}catch(J){null!=window.console&&console.log("Error in icon for "+
-n.id+": "+J)}try{var D=b.getAttribute("geometry");if(null!=D){var D=JSON.parse(D),E=e.getCellGeometry(n);if(null!=E){E=E.clone();for(key in D){var F=parseFloat(D[key]);"dx"==key?E.x+=F:"dy"==key?E.y+=F:"dw"==key?E.width+=F:"dh"==key?E.height+=F:E[key]=parseFloat(D[key])}e.model.setGeometry(n,E)}}}catch(J){null!=window.console&&console.log("Error in icon for "+n.id+": "+J)}}}else if("model"==b.nodeName){for(var I=b.firstChild;null!=I&&I.nodeType!=mxConstants.NODETYPE_ELEMENT;)I=I.nextSibling;null!=
-I&&(new mxCodec(b.firstChild)).decode(I,g)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(e.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))e.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(k=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):1);b=b.nextSibling}}finally{g.endUpdate()}null!=k&&this.chromelessResize&&this.chromelessResize(!0,k)}return f};
+y[B].nodeName,0<y[B].nodeValue.length?y[B].nodeValue:null)}}catch(K){null!=window.console&&console.log("Error in value for "+n.id+": "+K)}try{var C=b.getAttribute("style");null!=C&&e.model.setStyle(n,C)}catch(K){null!=window.console&&console.log("Error in style for "+n.id+": "+K)}try{var A=b.getAttribute("icon");if(null!=A){var F=0<A.length?JSON.parse(A):null;null!=F&&F.append||e.removeCellOverlays(n);null!=F&&e.addCellOverlay(n,c(F))}}catch(K){null!=window.console&&console.log("Error in icon for "+
+n.id+": "+K)}try{var D=b.getAttribute("geometry");if(null!=D){var D=JSON.parse(D),E=e.getCellGeometry(n);if(null!=E){E=E.clone();for(key in D){var G=parseFloat(D[key]);"dx"==key?E.x+=G:"dy"==key?E.y+=G:"dw"==key?E.width+=G:"dh"==key?E.height+=G:E[key]=parseFloat(D[key])}e.model.setGeometry(n,E)}}}catch(K){null!=window.console&&console.log("Error in icon for "+n.id+": "+K)}}}else if("model"==b.nodeName){for(var J=b.firstChild;null!=J&&J.nodeType!=mxConstants.NODETYPE_ELEMENT;)J=J.nextSibling;null!=
+J&&(new mxCodec(b.firstChild)).decode(J,g)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(e.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))e.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(k=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):1);b=b.nextSibling}}finally{g.endUpdate()}null!=k&&this.chromelessResize&&this.chromelessResize(!0,k)}return f};
EditorUi.prototype.getCopyFilename=function(b,c){var f=null!=b&&null!=b.getTitle()?b.getTitle():this.defaultFilename,d="",e=f.lastIndexOf(".");0<=e&&(d=f.substring(e),f=f.substring(0,e));if(c)var l=new Date,e=l.getFullYear(),g=l.getMonth()+1,k=l.getDate(),n=l.getHours(),z=l.getMinutes(),l=l.getSeconds(),f=f+(" "+(e+"-"+g+"-"+k+"-"+n+"-"+z+"-"+l));return f=mxResources.get("copyOf",[f])+d};EditorUi.prototype.fileLoaded=function(b,c){var f=this.getCurrentFile();this.fileEditable=this.fileLoadedError=
null;this.setCurrentFile(null);var d=!1;this.hideDialog();null!=f&&(EditorUi.debug("File.closed",[f]),f.removeListener(this.descriptorChangedListener),f.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var e=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=f&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);!c&&null!=window.location.hash&&0<window.location.hash.length&&
(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();c||this.showSplash()});if(null!=b)try{mxClient.IS_SF&&"min"==uiTheme&&(this.diagramContainer.style.visibility="");this.openingFile=!0;this.setCurrentFile(b);b.addListener("descriptorChanged",this.descriptorChangedListener);b.addListener("contentChanged",this.descriptorChangedListener);b.open();
@@ -11317,19 +11317,19 @@ function(b,c){var f=mxUtils.parseXml(b.getData());if("mxlibrary"==f.documentElem
(this.scratchpad=b);var f=this.sidebar.palettes[b.getHash()],f=null!=f?f[f.length-1].nextSibling:null;this.removeLibrarySidebar(b.getHash());var l=null,m=mxUtils.bind(this,function(c,f){0==c.length&&b.isEditable()?(null==l&&(l=document.createElement("div"),l.className="geDropTarget",mxUtils.write(l,mxResources.get("dragElementsHere"))),f.appendChild(l)):this.addLibraryEntries(c,f)});null!=this.sidebar&&null!=c&&this.sidebar.addEntries(c);null==d&&(d=b.getTitle(),null!=d&&/(\.xml)$/i.test(d)&&(d=d.substring(0,
d.lastIndexOf("."))));var g=this.sidebar.addPalette(b.getHash(),d,null!=e?e:!0,mxUtils.bind(this,function(b){m(c,b)}));this.repositionLibrary(f);var k=g.parentNode.previousSibling;e=k.getAttribute("title");null!=e&&0<e.length&&".scratchpad"!=b.title&&k.setAttribute("title",this.getLibraryStorageHint(b)+"\n"+e);var p=document.createElement("div");p.style.position="absolute";p.style.right="0px";p.style.top="0px";p.style.padding="8px";p.style.backgroundColor="inherit";k.style.position="relative";var n=
document.createElement("img");n.setAttribute("src",Editor.crossImage);n.setAttribute("title",mxResources.get("close"));n.setAttribute("valign","absmiddle");n.setAttribute("border","0");n.style.position="relative";n.style.top="2px";n.style.width="14px";n.style.cursor="pointer";n.style.margin="0 3px";Editor.isDarkMode()&&(n.style.filter="invert(100%)");var B=null;if(".scratchpad"!=b.title||this.closableScratchpad)p.appendChild(n),mxEvent.addListener(n,"click",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c)){var f=
-mxUtils.bind(this,function(){this.closeLibrary(b)});null!=B?this.confirm(mxResources.get("allChangesLost"),null,f,mxResources.get("cancel"),mxResources.get("discardChanges")):f();mxEvent.consume(c)}}));if(b.isEditable()){var C=this.editor.graph,A=null,G=mxUtils.bind(this,function(f){this.showLibraryDialog(b.getTitle(),g,c,b,b.getMode());mxEvent.consume(f)}),D=mxUtils.bind(this,function(f){b.setModified(!0);b.isAutosave()?(null!=A&&null!=A.parentNode&&A.parentNode.removeChild(A),A=n.cloneNode(!1),
+mxUtils.bind(this,function(){this.closeLibrary(b)});null!=B?this.confirm(mxResources.get("allChangesLost"),null,f,mxResources.get("cancel"),mxResources.get("discardChanges")):f();mxEvent.consume(c)}}));if(b.isEditable()){var C=this.editor.graph,A=null,F=mxUtils.bind(this,function(f){this.showLibraryDialog(b.getTitle(),g,c,b,b.getMode());mxEvent.consume(f)}),D=mxUtils.bind(this,function(f){b.setModified(!0);b.isAutosave()?(null!=A&&null!=A.parentNode&&A.parentNode.removeChild(A),A=n.cloneNode(!1),
A.setAttribute("src",Editor.spinImage),A.setAttribute("title",mxResources.get("saving")),A.style.cursor="default",A.style.marginRight="2px",A.style.marginTop="-2px",p.insertBefore(A,p.firstChild),k.style.paddingRight=18*p.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=A&&null!=A.parentNode&&(A.parentNode.removeChild(A),k.style.paddingRight=18*p.childNodes.length+"px")})):null==B&&(B=n.cloneNode(!1),B.setAttribute("src",Editor.saveImage),B.setAttribute("title",
mxResources.get("save")),p.insertBefore(B,p.firstChild),mxEvent.addListener(B,"click",mxUtils.bind(this,function(f){this.saveLibrary(b.getTitle(),c,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==B||b.isModified()||(k.style.paddingRight=18*p.childNodes.length+"px",B.parentNode.removeChild(B),B=null)});mxEvent.consume(f)})),k.style.paddingRight=18*p.childNodes.length+"px")}),E=mxUtils.bind(this,function(b,f,d,e){b=C.cloneCells(mxUtils.sortCells(C.model.getTopmostCells(b)));for(var m=
-0;m<b.length;m++){var k=C.getCellGeometry(b[m]);null!=k&&k.translate(-f.x,-f.y)}g.appendChild(this.sidebar.createVertexTemplateFromCells(b,f.width,f.height,e||"",!0,null,!1));b={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),w:f.width,h:f.height};null!=e&&(b.title=e);c.push(b);D(d);null!=l&&null!=l.parentNode&&0<c.length&&(l.parentNode.removeChild(l),l=null)}),F=mxUtils.bind(this,function(b){if(C.isSelectionEmpty())C.getRubberband().isActive()?(C.getRubberband().execute(b),C.getRubberband().reset()):
+0;m<b.length;m++){var k=C.getCellGeometry(b[m]);null!=k&&k.translate(-f.x,-f.y)}g.appendChild(this.sidebar.createVertexTemplateFromCells(b,f.width,f.height,e||"",!0,null,!1));b={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),w:f.width,h:f.height};null!=e&&(b.title=e);c.push(b);D(d);null!=l&&null!=l.parentNode&&0<c.length&&(l.parentNode.removeChild(l),l=null)}),G=mxUtils.bind(this,function(b){if(C.isSelectionEmpty())C.getRubberband().isActive()?(C.getRubberband().execute(b),C.getRubberband().reset()):
this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var c=C.getSelectionCells(),f=C.view.getBounds(c),d=C.view.scale;f.x/=d;f.y/=d;f.width/=d;f.height/=d;f.x-=C.view.translate.x;f.y-=C.view.translate.y;E(c,f)}mxEvent.consume(b)});mxEvent.addGestureListeners(g,function(){},mxUtils.bind(this,function(b){C.isMouseDown&&null!=C.panningManager&&null!=C.graphHandler.first&&(C.graphHandler.suspend(),null!=C.graphHandler.hint&&(C.graphHandler.hint.style.visibility=
-"hidden"),g.style.backgroundColor="#f1f3f4",g.style.cursor="copy",C.panningManager.stop(),C.autoScroll=!1,mxEvent.consume(b))}),mxUtils.bind(this,function(b){C.isMouseDown&&null!=C.panningManager&&null!=C.graphHandler&&(g.style.backgroundColor="",g.style.cursor="default",this.sidebar.showTooltips=!0,C.panningManager.stop(),C.graphHandler.reset(),C.isMouseDown=!1,C.autoScroll=!0,F(b),mxEvent.consume(b))}));mxEvent.addListener(g,"mouseleave",mxUtils.bind(this,function(b){C.isMouseDown&&null!=C.graphHandler.first&&
+"hidden"),g.style.backgroundColor="#f1f3f4",g.style.cursor="copy",C.panningManager.stop(),C.autoScroll=!1,mxEvent.consume(b))}),mxUtils.bind(this,function(b){C.isMouseDown&&null!=C.panningManager&&null!=C.graphHandler&&(g.style.backgroundColor="",g.style.cursor="default",this.sidebar.showTooltips=!0,C.panningManager.stop(),C.graphHandler.reset(),C.isMouseDown=!1,C.autoScroll=!0,G(b),mxEvent.consume(b))}));mxEvent.addListener(g,"mouseleave",mxUtils.bind(this,function(b){C.isMouseDown&&null!=C.graphHandler.first&&
(C.graphHandler.resume(),null!=C.graphHandler.hint&&(C.graphHandler.hint.style.visibility="visible"),g.style.backgroundColor="",g.style.cursor="",C.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(g,"dragover",mxUtils.bind(this,function(b){g.style.backgroundColor="#f1f3f4";b.dataTransfer.dropEffect="copy";g.style.cursor="copy";this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()})),mxEvent.addListener(g,"drop",mxUtils.bind(this,function(b){g.style.cursor="";g.style.backgroundColor=
"";0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(f,d,e,k,p,n,q,t,v){if(null!=f&&"image/"==d.substring(0,6))f="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(f),f=[new mxCell("",new mxGeometry(0,0,p,n),f)],f[0].vertex=!0,E(f,new mxRectangle(0,0,p,n),b,mxEvent.isAltDown(b)?null:q.substring(0,q.lastIndexOf(".")).replace(/_/g," ")),null!=l&&null!=l.parentNode&&0<c.length&&
-(l.parentNode.removeChild(l),l=null);else{var u=!1,A=mxUtils.bind(this,function(f,d){if(null!=f&&"application/pdf"==d){var e=Editor.extractGraphModelFromPdf(f);null!=e&&0<e.length&&(f=e)}if(null!=f)if(e=mxUtils.parseXml(f),"mxlibrary"==e.documentElement.nodeName)try{var k=JSON.parse(mxUtils.getTextContent(e.documentElement));m(k,g);c=c.concat(k);D(b);this.spinner.stop();u=!0}catch(ma){}else if("mxfile"==e.documentElement.nodeName)try{for(var p=e.documentElement.getElementsByTagName("diagram"),k=0;k<
-p.length;k++){var n=this.stringToCells(Editor.getDiagramNodeXml(p[k])),q=this.editor.graph.getBoundingBoxFromGeometry(n);E(n,new mxRectangle(0,0,q.width,q.height),b)}u=!0}catch(ma){null!=window.console&&console.log("error in drop handler:",ma)}u||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=l&&null!=l.parentNode&&0<c.length&&(l.parentNode.removeChild(l),l=null)});null!=v&&null!=q&&(/(\.v(dx|sdx?))($|\?)/i.test(q)||/(\.vs(x|sx?))($|\?)/i.test(q))?this.importVisio(v,
+(l.parentNode.removeChild(l),l=null);else{var u=!1,A=mxUtils.bind(this,function(f,d){if(null!=f&&"application/pdf"==d){var e=Editor.extractGraphModelFromPdf(f);null!=e&&0<e.length&&(f=e)}if(null!=f)if(e=mxUtils.parseXml(f),"mxlibrary"==e.documentElement.nodeName)try{var k=JSON.parse(mxUtils.getTextContent(e.documentElement));m(k,g);c=c.concat(k);D(b);this.spinner.stop();u=!0}catch(na){}else if("mxfile"==e.documentElement.nodeName)try{for(var p=e.documentElement.getElementsByTagName("diagram"),k=0;k<
+p.length;k++){var n=this.stringToCells(Editor.getDiagramNodeXml(p[k])),q=this.editor.graph.getBoundingBoxFromGeometry(n);E(n,new mxRectangle(0,0,q.width,q.height),b)}u=!0}catch(na){null!=window.console&&console.log("error in drop handler:",na)}u||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=l&&null!=l.parentNode&&0<c.length&&(l.parentNode.removeChild(l),l=null)});null!=v&&null!=q&&(/(\.v(dx|sdx?))($|\?)/i.test(q)||/(\.vs(x|sx?))($|\?)/i.test(q))?this.importVisio(v,
function(b){A(b,"text/xml")},null,q):(new XMLHttpRequest).upload&&this.isRemoteFileFormat(f,q)&&null!=v?this.isExternalDataComms()?this.parseFile(v,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?A(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("notInOffline"))):
-A(f,d)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(g,"dragleave",function(b){g.style.cursor="";g.style.backgroundColor="";b.stopPropagation();b.preventDefault()}));n=n.cloneNode(!1);n.setAttribute("src",Editor.editImage);n.setAttribute("title",mxResources.get("edit"));p.insertBefore(n,p.firstChild);mxEvent.addListener(n,"click",G);mxEvent.addListener(g,"dblclick",function(b){mxEvent.getSource(b)==g&&G(b)});e=n.cloneNode(!1);e.setAttribute("src",Editor.plusImage);e.setAttribute("title",
-mxResources.get("add"));p.insertBefore(e,p.firstChild);mxEvent.addListener(e,"click",F);this.isOffline()||".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(e=document.createElement("span"),e.setAttribute("title",mxResources.get("help")),e.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;cursor:pointer;",mxUtils.write(e,"?"),mxEvent.addGestureListeners(e,mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(b)})),p.insertBefore(e,p.firstChild))}k.appendChild(p);
+A(f,d)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(g,"dragleave",function(b){g.style.cursor="";g.style.backgroundColor="";b.stopPropagation();b.preventDefault()}));n=n.cloneNode(!1);n.setAttribute("src",Editor.editImage);n.setAttribute("title",mxResources.get("edit"));p.insertBefore(n,p.firstChild);mxEvent.addListener(n,"click",F);mxEvent.addListener(g,"dblclick",function(b){mxEvent.getSource(b)==g&&F(b)});e=n.cloneNode(!1);e.setAttribute("src",Editor.plusImage);e.setAttribute("title",
+mxResources.get("add"));p.insertBefore(e,p.firstChild);mxEvent.addListener(e,"click",G);this.isOffline()||".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(e=document.createElement("span"),e.setAttribute("title",mxResources.get("help")),e.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;cursor:pointer;",mxUtils.write(e,"?"),mxEvent.addGestureListeners(e,mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(b)})),p.insertBefore(e,p.firstChild))}k.appendChild(p);
k.style.paddingRight=18*p.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(b,c){for(var f=0;f<b.length;f++){var d=b[f],e=d.data;if(null!=e){var e=this.convertDataUri(e),l="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(l+="aspect=fixed;");c.appendChild(this.sidebar.createVertexTemplate(l+"image="+e,d.w,d.h,"",d.title||"",!1,null,!0))}else null!=d.xml&&(e=this.stringToCells(Graph.decompress(d.xml)),0<e.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(e,
d.w,d.h,d.title||"",!0,null,!0)))}};EditorUi.prototype.getResource=function(b){return null!=b?b[mxLanguage]||b.main:null};EditorUi.prototype.footerHeight=0;"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64);EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground="linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground=
"rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38):Editor.isDarkMode()&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor=Editor.darkColor,Format.inactiveTabBackgroundColor="black",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.shapeBackgroundColor=Editor.darkColor,Graph.prototype.shapeForegroundColor=Editor.lightColor,Graph.prototype.defaultPageBackgroundColor=Editor.darkColor,Graph.prototype.defaultPageBorderColor=
@@ -11359,7 +11359,7 @@ function(){mxUtils.setPrefixedStyle(l.style,"transform","translate(-50%,0%)")}),
b):this.openInNewWindow(b,d,e);else{var f=document.createElement("a");k=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof f.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var l=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);k=65==(l?parseInt(l[2],10):!1)?!1:k}if(k||this.isOffline()){f.href=URL.createObjectURL(e?this.base64ToBlob(b,d):new Blob([b],{type:d}));k?f.download=c:f.setAttribute("target","_blank");document.body.appendChild(f);try{window.setTimeout(function(){URL.revokeObjectURL(f.href)},
2E4),f.click(),f.parentNode.removeChild(f)}catch(x){}}else this.createEchoRequest(b,c,d,e,g).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(b,c,d,e,g,k){b="xml="+encodeURIComponent(b);return new mxXmlRequest(SAVE_URL,b+(null!=d?"&mime="+d:"")+(null!=g?"&format="+g:"")+(null!=k?"&base64="+k:"")+(null!=c?"&filename="+encodeURIComponent(c):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(b,c){c=c||"";for(var f=atob(b),d=f.length,e=Math.ceil(d/1024),l=Array(e),
g=0;g<e;++g){for(var k=1024*g,n=Math.min(k+1024,d),z=Array(n-k),y=0;k<n;++y,++k)z[y]=f[k].charCodeAt(0);l[g]=new Uint8Array(z)}return new Blob(l,{type:c})};EditorUi.prototype.saveLocalFile=function(b,c,d,e,g,k,n,u){k=null!=k?k:!1;n=null!=n?n:"vsdx"!=g&&(!mxClient.IS_IOS||!navigator.standalone);g=this.getServiceCount(k);isLocalStorage&&g++;var f=4>=g?2:6<g?4:3;c=new CreateDialog(this,c,mxUtils.bind(this,function(c,f){try{if("_blank"==f)if(null!=d&&"image/"==d.substring(0,6))this.openInNewWindow(b,
-d,e);else if(null!=d&&"text/html"==d.substring(0,9)){var l=new EmbedDialog(this,b);this.showDialog(l.container,450,240,!0,!0);l.init()}else{var g=window.open("about:blank");null==g?mxUtils.popup(b,!0):(g.document.write("<pre>"+mxUtils.htmlEntities(b,!1)+"</pre>"),g.document.close())}else f==App.MODE_DEVICE||"download"==f?this.doSaveLocalFile(b,c,d,e,null,u):null!=c&&0<c.length&&this.pickFolder(f,mxUtils.bind(this,function(l){try{this.exportFile(b,c,d,e,f,l)}catch(G){this.handleError(G)}}))}catch(A){this.handleError(A)}}),
+d,e);else if(null!=d&&"text/html"==d.substring(0,9)){var l=new EmbedDialog(this,b);this.showDialog(l.container,450,240,!0,!0);l.init()}else{var m=window.open("about:blank");null==m?mxUtils.popup(b,!0):(m.document.write("<pre>"+mxUtils.htmlEntities(b,!1)+"</pre>"),m.document.close())}else f==App.MODE_DEVICE||"download"==f?this.doSaveLocalFile(b,c,d,e,null,u):null!=c&&0<c.length&&this.pickFolder(f,mxUtils.bind(this,function(l){try{this.exportFile(b,c,d,e,f,l)}catch(F){this.handleError(F)}}))}catch(A){this.handleError(A)}}),
mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,k,n,null,1<g,f,b,d,e);k=this.isServices(g)?g>f?390:280:160;this.showDialog(c.container,420,k,!0,!0);c.init()};EditorUi.prototype.openInNewWindow=function(b,c,d){var f=window.open("about:blank");null==f||null==f.document?mxUtils.popup(b,!0):("image/svg+xml"!=c||mxClient.IS_SVG?"image/svg+xml"==c?f.document.write("<html>"+b+"</html>"):(b=d?b:btoa(unescape(encodeURIComponent(b))),f.document.write('<html><img style="max-width:100%;" src="data:'+
c+";base64,"+b+'"/></html>')):f.document.write("<html><pre>"+mxUtils.htmlEntities(b,!1)+"</pre></html>"),f.document.close())};var c=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.isChromelessImageExportEnabled=function(){return"draw.io"!=this.getServiceName()||/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname)};EditorUi.prototype.addChromelessToolbarItems=function(b){if(null!=urlParams.tags){this.tagsDialog=this.tagsComponent=null;
var f=b(mxUtils.bind(this,function(b){null==this.tagsComponent&&(this.tagsComponent=this.editor.graph.createTagsDialog(mxUtils.bind(this,function(){return null!=this.tagsDialog}),!0),this.tagsComponent.div.getElementsByTagName("div")[0].style.position="",mxUtils.setPrefixedStyle(this.tagsComponent.div.style,"borderRadius","5px"),this.tagsComponent.div.className="geScrollable",this.tagsComponent.div.style.maxHeight="160px",this.tagsComponent.div.style.maxWidth="120px",this.tagsComponent.div.style.padding=
@@ -11391,33 +11391,33 @@ c&&c!=mxConstants.NONE&&n.push("highlight="+("#"==c.charAt(0)?c.substring(1):c))
!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<x.length?"?"+x.join("&"):"")+d};EditorUi.prototype.createHtml=function(b,c,d,e,g,k,n,u,x,z,y,B){this.getBasenames();var f={};""!=g&&g!=mxConstants.NONE&&(f.highlight=g);"auto"!==e&&(f.target=e);z||(f.lightbox=!1);f.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(f.zoom=d/100);d=[];n&&(d.push("pages"),f.resize=!0,null!=this.pages&&null!=this.currentPage&&(f.page=mxUtils.indexOf(this.pages,
this.currentPage)));c&&(d.push("zoom"),f.resize=!0);u&&d.push("layers");x&&d.push("tags");0<d.length&&(z&&d.push("lightbox"),f.toolbar=d.join(" "));null!=y&&0<y.length&&(f.edit=y);null!=b?f.url=b:f.xml=this.getFileData(!0,null,null,null,null,!n);c='<div class="mxgraph" style="'+(k?"max-width:100%;":"")+(""!=d?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(f))+'"></div>';b=null!=b?"&fetch="+encodeURIComponent(b):"";B(c,'<script type="text/javascript" src="'+
(0<b.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+b:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.DRAWIO_VIEWER_URL?window.DRAWIO_VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(b,c,d,e){var f=document.createElement("div");f.style.whiteSpace="nowrap";var l=document.createElement("h3");mxUtils.write(l,mxResources.get("html"));l.style.cssText=
-"width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(l);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var m=document.createElement("input");m.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";m.setAttribute("value","url");m.setAttribute("type","radio");m.setAttribute("name","type-embedhtmldialog");l=m.cloneNode(!0);l.setAttribute("value","copy");g.appendChild(l);var k=document.createElement("span");
-mxUtils.write(k,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(k);mxUtils.br(g);g.appendChild(m);k=document.createElement("span");mxUtils.write(k,mxResources.get("publicDiagramUrl"));g.appendChild(k);var p=this.getCurrentFile();null==d&&null!=p&&p.constructor==window.DriveFile&&(k=document.createElement("a"),k.style.paddingLeft="12px",k.style.color="gray",k.style.cursor="pointer",mxUtils.write(k,mxResources.get("share")),g.appendChild(k),mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.hideDialog();
-this.drive.showPermissions(p.getId())})));l.setAttribute("checked","checked");null==d&&m.setAttribute("disabled","disabled");f.appendChild(g);var n=this.addLinkSection(f),B=this.addCheckbox(f,mxResources.get("zoom"),!0,null,!0);mxUtils.write(f,":");var C=document.createElement("input");C.setAttribute("type","text");C.style.marginRight="16px";C.style.width="60px";C.style.marginLeft="4px";C.style.marginRight="12px";C.value="100%";f.appendChild(C);var A=this.addCheckbox(f,mxResources.get("fit"),!0),
-g=null!=this.pages&&1<this.pages.length,G=G=this.addCheckbox(f,mxResources.get("allPages"),g,!g),D=this.addCheckbox(f,mxResources.get("layers"),!0),E=this.addCheckbox(f,mxResources.get("tags"),!0),F=this.addCheckbox(f,mxResources.get("lightbox"),!0),g=EditorUi.enableHtmlEditOption?f:f.cloneNode(),I=this.addEditButton(g,F),J=I.getEditInput();J.style.marginBottom="16px";mxEvent.addListener(F,"change",function(){F.checked?J.removeAttribute("disabled"):J.setAttribute("disabled","disabled");J.checked&&
-F.checked?I.getEditSelect().removeAttribute("disabled"):I.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){e(m.checked?d:null,B.checked,C.value,n.getTarget(),n.getColor(),A.checked,G.checked,D.checked,E.checked,F.checked,EditorUi.enableHtmlEditOption?I.getLink():null)}),null,b,c);this.showDialog(b.container,340,430,!0,!0);l.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,d,e,g,k,n,u){var f=document.createElement("div");f.style.whiteSpace=
-"nowrap";var l=document.createElement("h3");mxUtils.write(l,b||mxResources.get("link"));l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(l);var m=this.getCurrentFile();b=0;if(null==m||m.constructor!=window.DriveFile||c)n=null!=n?n:"https://www.diagrams.net/doc/faq/publish-diagram-as-link";else{b=80;n=null!=n?n:"https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram";l=document.createElement("div");l.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
+"width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(l);var m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var g=document.createElement("input");g.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";g.setAttribute("value","url");g.setAttribute("type","radio");g.setAttribute("name","type-embedhtmldialog");l=g.cloneNode(!0);l.setAttribute("value","copy");m.appendChild(l);var k=document.createElement("span");
+mxUtils.write(k,mxResources.get("includeCopyOfMyDiagram"));m.appendChild(k);mxUtils.br(m);m.appendChild(g);k=document.createElement("span");mxUtils.write(k,mxResources.get("publicDiagramUrl"));m.appendChild(k);var p=this.getCurrentFile();null==d&&null!=p&&p.constructor==window.DriveFile&&(k=document.createElement("a"),k.style.paddingLeft="12px",k.style.color="gray",k.style.cursor="pointer",mxUtils.write(k,mxResources.get("share")),m.appendChild(k),mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.hideDialog();
+this.drive.showPermissions(p.getId())})));l.setAttribute("checked","checked");null==d&&g.setAttribute("disabled","disabled");f.appendChild(m);var n=this.addLinkSection(f),B=this.addCheckbox(f,mxResources.get("zoom"),!0,null,!0);mxUtils.write(f,":");var C=document.createElement("input");C.setAttribute("type","text");C.style.marginRight="16px";C.style.width="60px";C.style.marginLeft="4px";C.style.marginRight="12px";C.value="100%";f.appendChild(C);var A=this.addCheckbox(f,mxResources.get("fit"),!0),
+m=null!=this.pages&&1<this.pages.length,F=F=this.addCheckbox(f,mxResources.get("allPages"),m,!m),D=this.addCheckbox(f,mxResources.get("layers"),!0),E=this.addCheckbox(f,mxResources.get("tags"),!0),G=this.addCheckbox(f,mxResources.get("lightbox"),!0),J=null,m=380;if(EditorUi.enableHtmlEditOption){var J=this.addEditButton(f,G),K=J.getEditInput();K.style.marginBottom="16px";m+=50;mxEvent.addListener(G,"change",function(){G.checked?K.removeAttribute("disabled"):K.setAttribute("disabled","disabled");K.checked&&
+G.checked?J.getEditSelect().removeAttribute("disabled"):J.getEditSelect().setAttribute("disabled","disabled")})}b=new CustomDialog(this,f,mxUtils.bind(this,function(){e(g.checked?d:null,B.checked,C.value,n.getTarget(),n.getColor(),A.checked,F.checked,D.checked,E.checked,G.checked,null!=J?J.getLink():null)}),null,b,c);this.showDialog(b.container,340,m,!0,!0);l.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,d,e,g,k,n,u){var f=document.createElement("div");f.style.whiteSpace="nowrap";
+var l=document.createElement("h3");mxUtils.write(l,b||mxResources.get("link"));l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(l);var m=this.getCurrentFile();b=0;if(null==m||m.constructor!=window.DriveFile||c)n=null!=n?n:"https://www.diagrams.net/doc/faq/publish-diagram-as-link";else{b=80;n=null!=n?n:"https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram";l=document.createElement("div");l.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
var p=document.createElement("div");p.style.whiteSpace="normal";mxUtils.write(p,mxResources.get("linkAccountRequired"));l.appendChild(p);p=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(m.getId())}));p.style.marginTop="12px";p.className="geBtn";l.appendChild(p);f.appendChild(l);p=document.createElement("a");p.style.paddingLeft="12px";p.style.color="gray";p.style.fontSize="11px";p.style.cursor="pointer";mxUtils.write(p,mxResources.get("check"));l.appendChild(p);
mxEvent.addListener(p,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(b.container,300,80,!0,!1);b.init()}))}))}var q=null,t=null;if(null!=d||null!=e)b+=30,mxUtils.write(f,mxResources.get("width")+":"),q=document.createElement("input"),
q.setAttribute("type","text"),q.style.marginRight="16px",q.style.width="50px",q.style.marginLeft="6px",q.style.marginRight="16px",q.style.marginBottom="10px",q.value="100%",f.appendChild(q),mxUtils.write(f,mxResources.get("height")+":"),t=document.createElement("input"),t.setAttribute("type","text"),t.style.width="50px",t.style.marginLeft="6px",t.style.marginBottom="10px",t.value=e+"px",f.appendChild(t),mxUtils.br(f);var v=this.addLinkSection(f,k);d=null!=this.pages&&1<this.pages.length;var D=null;
-if(null==m||m.constructor!=window.DriveFile||c)D=this.addCheckbox(f,mxResources.get("allPages"),d,!d);var E=this.addCheckbox(f,mxResources.get("lightbox"),!0,null,null,!k),F=this.addEditButton(f,E),I=F.getEditInput();k&&(I.style.marginLeft=E.style.marginLeft,E.style.display="none",b-=20);var J=this.addCheckbox(f,mxResources.get("layers"),!0);J.style.marginLeft=I.style.marginLeft;J.style.marginTop="8px";var H=this.addCheckbox(f,mxResources.get("tags"),!0);H.style.marginLeft=I.style.marginLeft;H.style.marginBottom=
-"16px";H.style.marginTop="16px";mxEvent.addListener(E,"change",function(){E.checked?(J.removeAttribute("disabled"),I.removeAttribute("disabled")):(J.setAttribute("disabled","disabled"),I.setAttribute("disabled","disabled"));I.checked&&E.checked?F.getEditSelect().removeAttribute("disabled"):F.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,f,mxUtils.bind(this,function(){g(v.getTarget(),v.getColor(),null==D?!0:D.checked,E.checked,F.getLink(),J.checked,null!=q?q.value:null,
+if(null==m||m.constructor!=window.DriveFile||c)D=this.addCheckbox(f,mxResources.get("allPages"),d,!d);var E=this.addCheckbox(f,mxResources.get("lightbox"),!0,null,null,!k),G=this.addEditButton(f,E),J=G.getEditInput();k&&(J.style.marginLeft=E.style.marginLeft,E.style.display="none",b-=20);var K=this.addCheckbox(f,mxResources.get("layers"),!0);K.style.marginLeft=J.style.marginLeft;K.style.marginTop="8px";var H=this.addCheckbox(f,mxResources.get("tags"),!0);H.style.marginLeft=J.style.marginLeft;H.style.marginBottom=
+"16px";H.style.marginTop="16px";mxEvent.addListener(E,"change",function(){E.checked?(K.removeAttribute("disabled"),J.removeAttribute("disabled")):(K.setAttribute("disabled","disabled"),J.setAttribute("disabled","disabled"));J.checked&&E.checked?G.getEditSelect().removeAttribute("disabled"):G.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,f,mxUtils.bind(this,function(){g(v.getTarget(),v.getColor(),null==D?!0:D.checked,E.checked,G.getLink(),K.checked,null!=q?q.value:null,
null!=t?t.value:null,H.checked)}),null,mxResources.get("create"),n,u);this.showDialog(c.container,340,300+b,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)):v.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,d,e,g){var f=document.createElement("div");f.style.whiteSpace="nowrap";var l=document.createElement("h3");mxUtils.write(l,mxResources.get("image"));l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+
(g?"10":"4")+"px";f.appendChild(l);if(g){mxUtils.write(f,mxResources.get("zoom")+":");var m=document.createElement("input");m.setAttribute("type","text");m.style.marginRight="16px";m.style.width="60px";m.style.marginLeft="4px";m.style.marginRight="12px";m.value=this.lastExportZoom||"100%";f.appendChild(m);mxUtils.write(f,mxResources.get("borderWidth")+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.marginRight="16px";k.style.width="60px";k.style.marginLeft="4px";k.value=
this.lastExportBorder||"0";f.appendChild(k);mxUtils.br(f)}var p=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),n=e?null:this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),Editor.defaultIncludeDiagram),l=this.editor.graph,q=e?null:this.addCheckbox(f,mxResources.get("transparentBackground"),l.background==mxConstants.NONE||null==l.background);null!=q&&(q.style.marginBottom="16px");b=new CustomDialog(this,f,mxUtils.bind(this,function(){var b=parseInt(m.value)/
100||1,c=parseInt(k.value)||0;d(!p.checked,null!=n?n.checked:!1,null!=q?q.checked:!1,b,c)}),null,b,c);this.showDialog(b.container,300,(g?25:0)+(e?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(b,c,d,e,g,k,n,u,x){n=null!=n?n:Editor.defaultIncludeDiagram;var f=document.createElement("div");f.style.whiteSpace="nowrap";var l=this.editor.graph,m="jpeg"==u?220:300,p=document.createElement("h3");mxUtils.write(p,b);p.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";
f.appendChild(p);mxUtils.write(f,mxResources.get("zoom")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight="12px";q.value=this.lastExportZoom||"100%";f.appendChild(q);mxUtils.write(f,mxResources.get("borderWidth")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.value=this.lastExportBorder||
-"0";f.appendChild(t);mxUtils.br(f);var v=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,l.isSelectionEmpty()),E=document.createElement("input");E.style.marginTop="16px";E.style.marginRight="8px";E.style.marginLeft="24px";E.setAttribute("disabled","disabled");E.setAttribute("type","checkbox");var F=document.createElement("select");F.style.marginTop="16px";F.style.marginLeft="8px";b=["selectionOnly","diagram","page"];for(var I={},p=0;p<b.length;p++)if(!l.isSelectionEmpty()||"selectionOnly"!=
-b[p]){var J=document.createElement("option");mxUtils.write(J,mxResources.get(b[p]));J.setAttribute("value",b[p]);F.appendChild(J);I[b[p]]=J}x?(mxUtils.write(f,mxResources.get("size")+":"),f.appendChild(F),mxUtils.br(f),m+=26,mxEvent.addListener(F,"change",function(){"selectionOnly"==F.value&&(v.checked=!0)})):k&&(f.appendChild(E),mxUtils.write(f,mxResources.get("crop")),mxUtils.br(f),m+=30,mxEvent.addListener(v,"change",function(){v.checked?E.removeAttribute("disabled"):E.setAttribute("disabled",
-"disabled")}));l.isSelectionEmpty()?x&&(v.style.display="none",v.nextSibling.style.display="none",v.nextSibling.nextSibling.style.display="none",m-=30):(F.value="diagram",E.setAttribute("checked","checked"),E.defaultChecked=!0,mxEvent.addListener(v,"change",function(){F.value=v.checked?"selectionOnly":"diagram"}));var H=this.addCheckbox(f,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=u),K=null;Editor.isDarkMode()&&(K=this.addCheckbox(f,mxResources.get("dark"),!0),m+=26);var N=this.addCheckbox(f,
-mxResources.get("shadow"),l.shadowVisible),Q=null;if("png"==u||"jpeg"==u)Q=this.addCheckbox(f,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),m+=30;var L=this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=u);L.style.marginBottom="16px";var W=document.createElement("input");W.style.marginBottom="16px";W.style.marginRight="8px";W.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||W.setAttribute("disabled","disabled");var X=
+"0";f.appendChild(t);mxUtils.br(f);var v=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,l.isSelectionEmpty()),E=document.createElement("input");E.style.marginTop="16px";E.style.marginRight="8px";E.style.marginLeft="24px";E.setAttribute("disabled","disabled");E.setAttribute("type","checkbox");var G=document.createElement("select");G.style.marginTop="16px";G.style.marginLeft="8px";b=["selectionOnly","diagram","page"];for(var J={},p=0;p<b.length;p++)if(!l.isSelectionEmpty()||"selectionOnly"!=
+b[p]){var K=document.createElement("option");mxUtils.write(K,mxResources.get(b[p]));K.setAttribute("value",b[p]);G.appendChild(K);J[b[p]]=K}x?(mxUtils.write(f,mxResources.get("size")+":"),f.appendChild(G),mxUtils.br(f),m+=26,mxEvent.addListener(G,"change",function(){"selectionOnly"==G.value&&(v.checked=!0)})):k&&(f.appendChild(E),mxUtils.write(f,mxResources.get("crop")),mxUtils.br(f),m+=30,mxEvent.addListener(v,"change",function(){v.checked?E.removeAttribute("disabled"):E.setAttribute("disabled",
+"disabled")}));l.isSelectionEmpty()?x&&(v.style.display="none",v.nextSibling.style.display="none",v.nextSibling.nextSibling.style.display="none",m-=30):(G.value="diagram",E.setAttribute("checked","checked"),E.defaultChecked=!0,mxEvent.addListener(v,"change",function(){G.value=v.checked?"selectionOnly":"diagram"}));var H=this.addCheckbox(f,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=u),I=null;Editor.isDarkMode()&&(I=this.addCheckbox(f,mxResources.get("dark"),!0),m+=26);var N=this.addCheckbox(f,
+mxResources.get("shadow"),l.shadowVisible),R=null;if("png"==u||"jpeg"==u)R=this.addCheckbox(f,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),m+=30;var L=this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=u);L.style.marginBottom="16px";var W=document.createElement("input");W.style.marginBottom="16px";W.style.marginRight="8px";W.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||W.setAttribute("disabled","disabled");var X=
document.createElement("select");X.style.maxWidth="260px";X.style.marginLeft="8px";X.style.marginRight="10px";X.style.marginBottom="16px";X.className="geBtn";k=document.createElement("option");k.setAttribute("value","none");mxUtils.write(k,mxResources.get("noChange"));X.appendChild(k);k=document.createElement("option");k.setAttribute("value","embedFonts");mxUtils.write(k,mxResources.get("embedFonts"));X.appendChild(k);k=document.createElement("option");k.setAttribute("value","lblToSvg");mxUtils.write(k,
-mxResources.get("lblToSvg"));X.appendChild(k);this.isOffline()&&k.setAttribute("disabled","disabled");mxEvent.addListener(X,"change",mxUtils.bind(this,function(){"lblToSvg"==X.value?(W.checked=!0,W.setAttribute("disabled","disabled"),I.page.style.display="none","page"==F.value&&(F.value="diagram"),N.checked=!1,N.setAttribute("disabled","disabled"),M.style.display="inline-block",S.style.display="none"):"disabled"==W.getAttribute("disabled")&&(W.checked=!1,W.removeAttribute("disabled"),N.removeAttribute("disabled"),
-I.page.style.display="",M.style.display="none",S.style.display="")}));c&&(f.appendChild(W),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f),mxUtils.write(f,mxResources.get("txtSettings")+":"),f.appendChild(X),mxUtils.br(f),m+=60);var S=document.createElement("select");S.style.maxWidth="260px";S.style.marginLeft="8px";S.style.marginRight="10px";S.className="geBtn";c=document.createElement("option");c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));S.appendChild(c);
+mxResources.get("lblToSvg"));X.appendChild(k);this.isOffline()&&k.setAttribute("disabled","disabled");mxEvent.addListener(X,"change",mxUtils.bind(this,function(){"lblToSvg"==X.value?(W.checked=!0,W.setAttribute("disabled","disabled"),J.page.style.display="none","page"==G.value&&(G.value="diagram"),N.checked=!1,N.setAttribute("disabled","disabled"),M.style.display="inline-block",S.style.display="none"):"disabled"==W.getAttribute("disabled")&&(W.checked=!1,W.removeAttribute("disabled"),N.removeAttribute("disabled"),
+J.page.style.display="",M.style.display="none",S.style.display="")}));c&&(f.appendChild(W),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f),mxUtils.write(f,mxResources.get("txtSettings")+":"),f.appendChild(X),mxUtils.br(f),m+=60);var S=document.createElement("select");S.style.maxWidth="260px";S.style.marginLeft="8px";S.style.marginRight="10px";S.className="geBtn";c=document.createElement("option");c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));S.appendChild(c);
c=document.createElement("option");c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("openInNewWindow"));S.appendChild(c);c=document.createElement("option");c.setAttribute("value","self");mxUtils.write(c,mxResources.get("openInThisWindow"));S.appendChild(c);var M=document.createElement("div");mxUtils.write(M,mxResources.get("LinksLost"));M.style.margin="7px";M.style.display="none";"svg"==u&&(mxUtils.write(f,mxResources.get("links")+":"),f.appendChild(S),f.appendChild(M),mxUtils.br(f),
-mxUtils.br(f),m+=50);d=new CustomDialog(this,f,mxUtils.bind(this,function(){this.lastExportBorder=t.value;this.lastExportZoom=q.value;g(q.value,H.checked,!v.checked,N.checked,L.checked,W.checked,t.value,E.checked,!1,S.value,null!=Q?Q.checked:null,null!=K?K.checked:null,F.value,"embedFonts"==X.value,"lblToSvg"==X.value)}),null,d,e);this.showDialog(d.container,340,m,!0,!0,null,null,null,null,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",
+mxUtils.br(f),m+=50);d=new CustomDialog(this,f,mxUtils.bind(this,function(){this.lastExportBorder=t.value;this.lastExportZoom=q.value;g(q.value,H.checked,!v.checked,N.checked,L.checked,W.checked,t.value,E.checked,!1,S.value,null!=R?R.checked:null,null!=I?I.checked:null,G.value,"embedFonts"==X.value,"lblToSvg"==X.value)}),null,d,e);this.showDialog(d.container,340,m,!0,!0,null,null,null,null,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",
!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,d,e,g){var f=document.createElement("div");f.style.whiteSpace="nowrap";var l=this.editor.graph;if(null!=c){var m=document.createElement("h3");mxUtils.write(m,c);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";f.appendChild(m)}var k=this.addCheckbox(f,mxResources.get("fit"),!0),p=this.addCheckbox(f,mxResources.get("shadow"),l.shadowVisible&&e,!e),n=this.addCheckbox(f,d),q=this.addCheckbox(f,mxResources.get("lightbox"),
-!0),C=this.addEditButton(f,q),A=C.getEditInput(),G=1<l.model.getChildCount(l.model.getRoot()),D=this.addCheckbox(f,mxResources.get("layers"),G,!G);D.style.marginLeft=A.style.marginLeft;D.style.marginBottom="12px";D.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(G&&D.removeAttribute("disabled"),A.removeAttribute("disabled")):(D.setAttribute("disabled","disabled"),A.setAttribute("disabled","disabled"));A.checked&&q.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled",
+!0),C=this.addEditButton(f,q),A=C.getEditInput(),F=1<l.model.getChildCount(l.model.getRoot()),D=this.addCheckbox(f,mxResources.get("layers"),F,!F);D.style.marginLeft=A.style.marginLeft;D.style.marginBottom="12px";D.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(F&&D.removeAttribute("disabled"),A.removeAttribute("disabled")):(D.setAttribute("disabled","disabled"),A.setAttribute("disabled","disabled"));A.checked&&q.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled",
"disabled")});c=new CustomDialog(this,f,mxUtils.bind(this,function(){b(k.checked,p.checked,n.checked,q.checked,C.getLink(),D.checked)}),null,mxResources.get("embed"),g);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,d,e,g,k,n,u){function f(c){var f=" ",p="";e&&(f=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
EditorUi.lightboxHost+"/?client=1"+(null!=m?"&page="+m:"")+(g?"&edit=_blank":"")+(k?"&layers=1":"")+"');}})(this);\"",p+="cursor:pointer;");b&&(p+="max-width:100%;");var q="";d&&(q=' width="'+Math.round(l.width)+'" height="'+Math.round(l.height)+'"');n('<img src="'+c+'"'+q+(""!=p?' style="'+p+'"':"")+f+"/>")}var l=this.editor.graph.getGraphBounds(),m=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(b){var c=e?this.getFileData(!0):null;b=
this.createImageDataUri(b,c,"png");f(b)}),null,null,null,mxUtils.bind(this,function(b){u({message:mxResources.get("unknownError")})}),null,!0,d?2:1,null,c,null,null,Editor.defaultBorder);else if(c=this.getFileData(!0),l.width*l.height<=MAX_AREA&&c.length<=MAX_REQUEST_SIZE){var p="";d&&(p="&w="+Math.round(2*l.width)+"&h="+Math.round(2*l.height));var q=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+p+"&xml="+encodeURIComponent(c));q.send(mxUtils.bind(this,function(){200<=q.getStatus()&&
@@ -11425,56 +11425,56 @@ this.createImageDataUri(b,c,"png");f(b)}),null,null,null,mxUtils.bind(this,funct
f.setAttribute("content",this.getFileData(!0));c&&this.editor.graph.addSvgShadow(f);if(d){var q=" ",t="";e&&(q="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(g?"&edit=_blank":"")+(k?"&layers=1":
"")+"');}})(this);\"",t+="cursor:pointer;");b&&(t+="max-width:100%;");this.editor.convertImages(f,mxUtils.bind(this,function(b){n('<img src="'+Editor.createSvgDataUri(mxUtils.getXml(b))+'"'+(""!=t?' style="'+t+'"':"")+q+"/>")}))}else t="",e&&(c=this.getSelectedPageIndex(),f.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('"+
EditorUi.lightboxHost+"/?client=1"+(null!=c?"&page="+c:"")+(g?"&edit=_blank":"")+(k?"&layers=1":"")+"');}}})(this);"),t+="cursor:pointer;"),b&&(b=parseInt(f.getAttribute("width")),g=parseInt(f.getAttribute("height")),f.setAttribute("viewBox","-0.5 -0.5 "+b+" "+g),t+="max-width:100%;max-height:"+g+"px;",f.removeAttribute("height")),""!=t&&f.setAttribute("style",t),this.editor.addFontCss(f),this.editor.graph.mathEnabled&&this.editor.addMathCss(f),n(mxUtils.getXml(f))};EditorUi.prototype.timeSince=function(b){b=
-Math.floor((new Date-b)/1E3);var c=Math.floor(b/31536E3);if(1<c)return c+" "+mxResources.get("years");c=Math.floor(b/2592E3);if(1<c)return c+" "+mxResources.get("months");c=Math.floor(b/86400);if(1<c)return c+" "+mxResources.get("days");c=Math.floor(b/3600);if(1<c)return c+" "+mxResources.get("hours");c=Math.floor(b/60);return 1<c?c+" "+mxResources.get("minutes"):1==c?c+" "+mxResources.get("minute"):null};EditorUi.prototype.decodeNodeIntoGraph=function(b,c){if(null!=b){var d=null;if("diagram"==b.nodeName)d=
-b;else if("mxfile"==b.nodeName){var f=b.getElementsByTagName("diagram");if(0<f.length){var d=f[0],e=c.getGlobalVariable;c.getGlobalVariable=function(b){return"page"==b?d.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==b?1:e.apply(this,arguments)}}}null!=d&&(b=Editor.parseDiagramNode(d))}f=this.editor.graph;try{this.editor.graph=c,this.editor.setGraphXml(b)}catch(t){}finally{this.editor.graph=f}return b};EditorUi.prototype.getPngFileProperties=function(b){var c=1,d=0;if(null!=
-b){if(b.hasAttribute("scale")){var f=parseFloat(b.getAttribute("scale"));!isNaN(f)&&0<f&&(c=f)}b.hasAttribute("border")&&(f=parseInt(b.getAttribute("border")),!isNaN(f)&&0<f&&(d=f))}return{scale:c,border:d}};EditorUi.prototype.getEmbeddedPng=function(b,c,d,e,g){try{var f=this.editor.graph,l=null!=f.themes&&"darkTheme"==f.defaultThemeName,m=null;if(null!=d&&0<d.length)f=this.createTemporaryGraph(l?f.getDefaultStylesheet():f.getStylesheet()),document.body.appendChild(f.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(d).documentElement,
+Math.floor((new Date-b)/1E3);var c=Math.floor(b/31536E3);if(1<c)return c+" "+mxResources.get("years");c=Math.floor(b/2592E3);if(1<c)return c+" "+mxResources.get("months");c=Math.floor(b/86400);if(1<c)return c+" "+mxResources.get("days");c=Math.floor(b/3600);if(1<c)return c+" "+mxResources.get("hours");c=Math.floor(b/60);return 1<c?c+" "+mxResources.get("minutes"):1==c?c+" "+mxResources.get("minute"):null};EditorUi.prototype.decodeNodeIntoGraph=function(b,c){if(null!=b){var f=null;if("diagram"==b.nodeName)f=
+b;else if("mxfile"==b.nodeName){var d=b.getElementsByTagName("diagram");if(0<d.length){var f=d[0],e=c.getGlobalVariable;c.getGlobalVariable=function(b){return"page"==b?f.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==b?1:e.apply(this,arguments)}}}null!=f&&(b=Editor.parseDiagramNode(f))}d=this.editor.graph;try{this.editor.graph=c,this.editor.setGraphXml(b)}catch(t){}finally{this.editor.graph=d}return b};EditorUi.prototype.getPngFileProperties=function(b){var c=1,f=0;if(null!=
+b){if(b.hasAttribute("scale")){var d=parseFloat(b.getAttribute("scale"));!isNaN(d)&&0<d&&(c=d)}b.hasAttribute("border")&&(d=parseInt(b.getAttribute("border")),!isNaN(d)&&0<d&&(f=d))}return{scale:c,border:f}};EditorUi.prototype.getEmbeddedPng=function(b,c,d,e,g){try{var f=this.editor.graph,l=null!=f.themes&&"darkTheme"==f.defaultThemeName,m=null;if(null!=d&&0<d.length)f=this.createTemporaryGraph(l?f.getDefaultStylesheet():f.getStylesheet()),document.body.appendChild(f.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(d).documentElement,
!0),f),m=d;else if(l||null!=this.pages&&this.currentPage!=this.pages[0]){var f=this.createTemporaryGraph(l?f.getDefaultStylesheet():f.getStylesheet()),k=f.getGlobalVariable;f.setBackgroundImage=this.editor.graph.setBackgroundImage;var p=this.pages[0];this.currentPage==p?f.setBackgroundImage(this.editor.graph.backgroundImage):null!=p.viewState&&null!=p.viewState&&f.setBackgroundImage(p.viewState.backgroundImage);f.getGlobalVariable=function(b){return"page"==b?p.getName():"pagenumber"==b?1:k.apply(this,
arguments)};document.body.appendChild(f.container);f.model.setRoot(p.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(d){try{null==m&&(m=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var e=d.toDataURL("image/png"),e=Editor.writeGraphModelToPng(e,"tEXt","mxfile",encodeURIComponent(m));b(e.substring(e.lastIndexOf(",")+1));f!=this.editor.graph&&f.container.parentNode.removeChild(f.container)}catch(C){null!=c&&c(C)}}),null,null,null,mxUtils.bind(this,function(b){null!=c&&
c(b)}),null,null,e,null,f.shadowVisible,null,f,g,null,null,null,"diagram",null)}catch(y){null!=c&&c(y)}};EditorUi.prototype.getEmbeddedSvg=function(b,c,d,e,g,k,n,u,x,z,y,B,C){u=null!=u?u:!0;y=null!=y?y:0;n=null!=x?x:c.background;n==mxConstants.NONE&&(n=null);k=c.getSvg(n,z,y,null,null,k,null,null,null,c.shadowVisible||B,null,C,"diagram");(c.shadowVisible||B)&&c.addSvgShadow(k,null,null,0==y);null!=b&&k.setAttribute("content",b);null!=d&&k.setAttribute("resource",d);var f=mxUtils.bind(this,function(b){b=
(e?"":Graph.xmlDeclaration+"\n"+Graph.svgFileComment+"\n"+Graph.svgDoctype+"\n")+mxUtils.getXml(b);null!=g&&g(b);return b});c.mathEnabled&&this.editor.addMathCss(k);if(null!=g)this.embedFonts(k,mxUtils.bind(this,function(b){u?this.editor.convertImages(b,mxUtils.bind(this,function(b){f(b)})):f(b)}));else return f(k)};EditorUi.prototype.embedFonts=function(b,c){this.editor.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(b,this.editor.resolvedFontCss),
this.editor.embedExtFonts(mxUtils.bind(this,function(f){try{null!=f&&this.editor.addFontCss(b,f),c(b)}catch(p){c(b)}}))}catch(m){c(b)}}))};EditorUi.prototype.exportImage=function(b,c,d,e,g,k,n,u,x,z,y,B,C){x=null!=x?x:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var f=this.editor.graph.isSelectionEmpty();d=null!=d?d:f;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(b){this.spinner.stop();try{this.saveCanvas(b,
-g?this.getFileData(!0,null,null,null,d,u):null,x,null==this.pages||0==this.pages.length,y)}catch(D){this.handleError(D)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,d,b||1,c,e,null,null,k,n,z,B,C)}catch(G){this.spinner.stop(),this.handleError(G)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,d,e,g,k,n){c=null!=c?c:0;d=null!=d?d:0;var f=[];try{var l=
+g?this.getFileData(!0,null,null,null,d,u):null,x,null==this.pages||0==this.pages.length,y)}catch(D){this.handleError(D)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,d,b||1,c,e,null,null,k,n,z,B,C)}catch(F){this.spinner.stop(),this.handleError(F)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,d,e,g,k,n){c=null!=c?c:0;d=null!=d?d:0;var f=[];try{var l=
this.editor.graph;if(null!=b&&0<b.length){l.model.beginUpdate();try{var m=mxUtils.parseXml(b);b={};var p=this.editor.extractGraphModel(m.documentElement,null!=this.pages);if(null!=p&&"mxfile"==p.nodeName&&null!=this.pages){var q=p.getElementsByTagName("diagram");if(1==q.length&&!k){if(p=Editor.parseDiagramNode(q[0]),null!=this.currentPage&&(b[q[0].getAttribute("id")]=this.currentPage.getId(),this.isBlankFile())){var t=q[0].getAttribute("name");null!=t&&""!=t&&this.editor.graph.model.execute(new RenamePage(this,
this.currentPage,t))}}else if(0<q.length){k=[];var A=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(b[q[0].getAttribute("id")]=this.pages[0].getId(),p=Editor.parseDiagramNode(q[0]),e=!1,A=1);for(;A<q.length;A++){var v=q[A].getAttribute("id");q[A].removeAttribute("id");var D=this.updatePageRoot(new DiagramPage(q[A]));b[v]=q[A].getAttribute("id");var E=this.pages.length;null==D.getName()&&D.setName(mxResources.get("pageWithNumber",[E+1]));l.model.execute(new ChangePage(this,D,D,E,
-!0));k.push(D)}this.updatePageLinks(b,k)}}if(null!=p&&"mxGraphModel"===p.nodeName){f=l.importGraphModel(p,c,d,e);if(null!=f)for(A=0;A<f.length;A++)this.updatePageLinksForCell(b,f[A]);var F=l.parseBackgroundImage(p.getAttribute("backgroundImage"));if(null!=F&&null!=F.originalSrc){this.updateBackgroundPageLink(b,F);var I=new ChangePageSetup(this,null,F);I.ignoreColor=!0;l.model.execute(I)}}n&&this.insertHandler(f,null,null,l.defaultVertexStyle,l.defaultEdgeStyle,!1,!0)}finally{l.model.endUpdate()}}}catch(J){if(g)throw J;
-this.handleError(J)}return f};EditorUi.prototype.updatePageLinks=function(b,c){for(var d=0;d<c.length;d++)this.updatePageLinksForCell(b,c[d].root),null!=c[d].viewState&&this.updateBackgroundPageLink(b,c[d].viewState.backgroundImage)};EditorUi.prototype.updateBackgroundPageLink=function(b,c){try{if(null!=c&&Graph.isPageLink(c.originalSrc)){var d=b[c.originalSrc.substring(c.originalSrc.indexOf(",")+1)];null!=d&&(c.originalSrc="data:page/id,"+d)}}catch(p){}};EditorUi.prototype.updatePageLinksForCell=
-function(b,c){var d=document.createElement("div"),f=this.editor.graph,e=f.getLinkForCell(c);null!=e&&f.setLinkForCell(c,this.updatePageLink(b,e));if(f.isHtmlLabel(c)){d.innerHTML=f.sanitizeHtml(f.getLabel(c));for(var g=d.getElementsByTagName("a"),l=!1,k=0;k<g.length;k++)e=g[k].getAttribute("href"),null!=e&&(g[k].setAttribute("href",this.updatePageLink(b,e)),l=!0);l&&f.labelChanged(c,d.innerHTML)}for(k=0;k<f.model.getChildCount(c);k++)this.updatePageLinksForCell(b,f.model.getChildAt(c,k))};EditorUi.prototype.updatePageLink=
-function(b,c){if(Graph.isPageLink(c)){var d=b[c.substring(c.indexOf(",")+1)];c=null!=d?"data:page/id,"+d:null}else if("data:action/json,"==c.substring(0,17))try{var f=JSON.parse(c.substring(17));if(null!=f.actions){for(var e=0;e<f.actions.length;e++){var g=f.actions[e];if(null!=g.open&&Graph.isPageLink(g.open)){var l=g.open.substring(g.open.indexOf(",")+1),d=b[l];null!=d?g.open="data:page/id,"+d:null==this.getPageById(l)&&delete g.open}}c="data:action/json,"+JSON.stringify(f)}}catch(u){}return c};
-EditorUi.prototype.isRemoteVisioFormat=function(b){return/(\.v(sd|dx))($|\?)/i.test(b)||/(\.vs(s|x))($|\?)/i.test(b)};EditorUi.prototype.importVisio=function(b,c,d,e,g){e=null!=e?e:b.name;d=null!=d?d:mxUtils.bind(this,function(b){this.handleError(b)});var f=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var f=this.isRemoteVisioFormat(e);try{var l="UNKNOWN-VISIO",k=e.lastIndexOf(".");if(0<=k&&k<e.length)l=e.substring(k+1).toUpperCase();else{var m=e.lastIndexOf("/");0<=
-m&&m<e.length&&(e=e.substring(m+1))}EditorUi.logEvent({category:l+"-MS-IMPORT-FILE",action:"filename_"+e,label:f?"remote":"local"})}catch(B){}if(f)if(null==VSD_CONVERT_URL||this.isOffline())d({message:"draw.io"!=this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{f=new FormData;f.append("file1",b,e);var p=new XMLHttpRequest;p.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(e)?"?stencil=1":""));p.responseType="blob";this.addRemoteServiceSecurityCheck(p);
-null!=g&&p.setRequestHeader("x-convert-custom",g);p.onreadystatechange=mxUtils.bind(this,function(){if(4==p.readyState)if(200<=p.status&&299>=p.status)try{var b=p.response;if("text/xml"==b.type){var f=new FileReader;f.onload=mxUtils.bind(this,function(b){try{c(b.target.result)}catch(G){d({message:mxResources.get("errorLoadingFile")})}});f.readAsText(b)}else this.doImportVisio(b,c,d,e)}catch(A){d(A)}else try{""==p.responseType||"text"==p.responseType?d({message:p.responseText}):(f=new FileReader,f.onload=
+!0));k.push(D)}this.updatePageLinks(b,k)}}if(null!=p&&"mxGraphModel"===p.nodeName){f=l.importGraphModel(p,c,d,e);if(null!=f)for(A=0;A<f.length;A++)this.updatePageLinksForCell(b,f[A]);var G=l.parseBackgroundImage(p.getAttribute("backgroundImage"));if(null!=G&&null!=G.originalSrc){this.updateBackgroundPageLink(b,G);var J=new ChangePageSetup(this,null,G);J.ignoreColor=!0;l.model.execute(J)}}n&&this.insertHandler(f,null,null,l.defaultVertexStyle,l.defaultEdgeStyle,!1,!0)}finally{l.model.endUpdate()}}}catch(K){if(g)throw K;
+this.handleError(K)}return f};EditorUi.prototype.updatePageLinks=function(b,c){for(var d=0;d<c.length;d++)this.updatePageLinksForCell(b,c[d].root),null!=c[d].viewState&&this.updateBackgroundPageLink(b,c[d].viewState.backgroundImage)};EditorUi.prototype.updateBackgroundPageLink=function(b,c){try{if(null!=c&&Graph.isPageLink(c.originalSrc)){var d=b[c.originalSrc.substring(c.originalSrc.indexOf(",")+1)];null!=d&&(c.originalSrc="data:page/id,"+d)}}catch(p){}};EditorUi.prototype.updatePageLinksForCell=
+function(b,c){var d=document.createElement("div"),f=this.editor.graph,e=f.getLinkForCell(c);null!=e&&f.setLinkForCell(c,this.updatePageLink(b,e));if(f.isHtmlLabel(c)){d.innerHTML=f.sanitizeHtml(f.getLabel(c));for(var l=d.getElementsByTagName("a"),g=!1,k=0;k<l.length;k++)e=l[k].getAttribute("href"),null!=e&&(l[k].setAttribute("href",this.updatePageLink(b,e)),g=!0);g&&f.labelChanged(c,d.innerHTML)}for(k=0;k<f.model.getChildCount(c);k++)this.updatePageLinksForCell(b,f.model.getChildAt(c,k))};EditorUi.prototype.updatePageLink=
+function(b,c){if(Graph.isPageLink(c)){var d=b[c.substring(c.indexOf(",")+1)];c=null!=d?"data:page/id,"+d:null}else if("data:action/json,"==c.substring(0,17))try{var f=JSON.parse(c.substring(17));if(null!=f.actions){for(var e=0;e<f.actions.length;e++){var l=f.actions[e];if(null!=l.open&&Graph.isPageLink(l.open)){var g=l.open.substring(l.open.indexOf(",")+1),d=b[g];null!=d?l.open="data:page/id,"+d:null==this.getPageById(g)&&delete l.open}}c="data:action/json,"+JSON.stringify(f)}}catch(u){}return c};
+EditorUi.prototype.isRemoteVisioFormat=function(b){return/(\.v(sd|dx))($|\?)/i.test(b)||/(\.vs(s|x))($|\?)/i.test(b)};EditorUi.prototype.importVisio=function(b,c,d,e,g){e=null!=e?e:b.name;d=null!=d?d:mxUtils.bind(this,function(b){this.handleError(b)});var f=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var f=this.isRemoteVisioFormat(e);try{var l="UNKNOWN-VISIO",m=e.lastIndexOf(".");if(0<=m&&m<e.length)l=e.substring(m+1).toUpperCase();else{var k=e.lastIndexOf("/");0<=
+k&&k<e.length&&(e=e.substring(k+1))}EditorUi.logEvent({category:l+"-MS-IMPORT-FILE",action:"filename_"+e,label:f?"remote":"local"})}catch(B){}if(f)if(null==VSD_CONVERT_URL||this.isOffline())d({message:"draw.io"!=this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{f=new FormData;f.append("file1",b,e);var p=new XMLHttpRequest;p.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(e)?"?stencil=1":""));p.responseType="blob";this.addRemoteServiceSecurityCheck(p);
+null!=g&&p.setRequestHeader("x-convert-custom",g);p.onreadystatechange=mxUtils.bind(this,function(){if(4==p.readyState)if(200<=p.status&&299>=p.status)try{var b=p.response;if("text/xml"==b.type){var f=new FileReader;f.onload=mxUtils.bind(this,function(b){try{c(b.target.result)}catch(F){d({message:mxResources.get("errorLoadingFile")})}});f.readAsText(b)}else this.doImportVisio(b,c,d,e)}catch(A){d(A)}else try{""==p.responseType||"text"==p.responseType?d({message:p.responseText}):(f=new FileReader,f.onload=
function(){d({message:JSON.parse(f.result).Message})},f.readAsText(p.response))}catch(A){d({})}});p.send(f)}else try{this.doImportVisio(b,c,d,e)}catch(B){d(B)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?f():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",f))};EditorUi.prototype.importGraphML=function(b,c,d){d=null!=d?d:mxUtils.bind(this,function(b){this.handleError(b)});
var f=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportGraphML)try{this.doImportGraphML(b,c,d)}catch(q){d(q)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportGraphML||this.loadingExtensions||this.isOffline(!0)?f():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",f))};EditorUi.prototype.exportVisio=function(b){var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams(b)||
this.handleError({message:mxResources.get("unknownError")})}catch(m){this.handleError(m)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline(!0)?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.convertLucidChart=function(b,c,d){var f=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter)try{var f=
-JSON.parse(b);c(LucidImporter.importState(f));try{if(EditorUi.logEvent({category:"LUCIDCHART-IMPORT-FILE",action:"size_"+b.length}),null!=window.console&&"1"==urlParams.test){var e=[(new Date).toISOString(),"convertLucidChart",f];null!=f.state&&e.push(JSON.parse(f.state));if(null!=f.svgThumbs)for(var g=0;g<f.svgThumbs.length;g++)e.push(Editor.createSvgDataUri(f.svgThumbs[g]));null!=f.thumb&&e.push(f.thumb);console.log.apply(console,e)}}catch(u){}}catch(u){null!=window.console&&console.error(u),d(u)}else d({message:mxResources.get("serviceUnavailableOrBlocked")})});
+JSON.parse(b);c(LucidImporter.importState(f));try{if(EditorUi.logEvent({category:"LUCIDCHART-IMPORT-FILE",action:"size_"+b.length}),null!=window.console&&"1"==urlParams.test){var e=[(new Date).toISOString(),"convertLucidChart",f];null!=f.state&&e.push(JSON.parse(f.state));if(null!=f.svgThumbs)for(var l=0;l<f.svgThumbs.length;l++)e.push(Editor.createSvgDataUri(f.svgThumbs[l]));null!=f.thumb&&e.push(f.thumb);console.log.apply(console,e)}}catch(u){}}catch(u){null!=window.console&&console.error(u),d(u)}else d({message:mxResources.get("serviceUnavailableOrBlocked")})});
"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline(!0)?window.setTimeout(f,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js",function(){mxscript("js/orgchart/bridge.min.js",function(){mxscript("js/orgchart/bridge.collections.min.js",function(){mxscript("js/orgchart/OrgChart.Layout.min.js",function(){mxscript("js/orgchart/mxOrgChartLayout.js",f)})})})}):mxscript("js/extensions.min.js",f))};EditorUi.prototype.generateMermaidImage=function(b,
-c,d,e){var f=this,g=function(){try{this.loadingMermaid=!1,c=null!=c?c:mxUtils.clone(EditorUi.defaultMermaidConfig),c.securityLevel="strict",c.startOnLoad=!1,Editor.isDarkMode()&&(c.theme="dark"),mermaid.mermaidAPI.initialize(c),mermaid.mermaidAPI.render("geMermaidOutput-"+(new Date).getTime(),b,function(b){try{if(mxClient.IS_IE||mxClient.IS_IE11)b=b.replace(/ xmlns:\S*="http:\/\/www.w3.org\/XML\/1998\/namespace"/g,"").replace(/ (NS xml|\S*):space="preserve"/g,' xml:space="preserve"');var c=mxUtils.parseXml(b).getElementsByTagName("svg");
-if(0<c.length){var g=parseFloat(c[0].getAttribute("width")),l=parseFloat(c[0].getAttribute("height"));if(isNaN(g)||isNaN(l))try{var k=c[0].getAttribute("viewBox").split(/\s+/),g=parseFloat(k[2]),l=parseFloat(k[3])}catch(B){g=g||100,l=l||100}d(f.convertDataUri(Editor.createSvgDataUri(b)),g,l)}else e({message:mxResources.get("invalidInput")})}catch(B){e(B)}})}catch(v){e(v)}};"undefined"!==typeof mermaid||this.loadingMermaid||this.isOffline(!0)?g():(this.loadingMermaid=!0,"1"==urlParams.dev?mxscript("js/mermaid/mermaid.min.js",
-g):mxscript("js/extensions.min.js",g))};EditorUi.prototype.generatePlantUmlImage=function(b,c,d,e){function f(b,c,d){c1=b>>2;c2=(b&3)<<4|c>>4;c3=(c&15)<<2|d>>6;c4=d&63;r="";r+=g(c1&63);r+=g(c2&63);r+=g(c3&63);return r+=g(c4&63)}function g(b){if(10>b)return String.fromCharCode(48+b);b-=10;if(26>b)return String.fromCharCode(65+b);b-=26;if(26>b)return String.fromCharCode(97+b);b-=26;return 0==b?"-":1==b?"_":"?"}var l=new XMLHttpRequest;l.open("GET",("txt"==c?PLANT_URL+"/txt/":"png"==c?PLANT_URL+"/png/":
-PLANT_URL+"/svg/")+function(b){r="";for(i=0;i<b.length;i+=3)r=i+2==b.length?r+f(b.charCodeAt(i),b.charCodeAt(i+1),0):i+1==b.length?r+f(b.charCodeAt(i),0,0):r+f(b.charCodeAt(i),b.charCodeAt(i+1),b.charCodeAt(i+2));return r}(Graph.arrayBufferToString(pako.deflateRaw(b))),!0);"txt"!=c&&(l.responseType="blob");l.onload=function(b){if(200<=this.status&&300>this.status)if("txt"==c)d(this.response);else{var f=new FileReader;f.readAsDataURL(this.response);f.onloadend=function(b){var c=new Image;c.onload=
-function(){try{var b=c.width,g=c.height;if(0==b&&0==g){var l=f.result,k=l.indexOf(","),m=decodeURIComponent(escape(atob(l.substring(k+1)))),p=mxUtils.parseXml(m).getElementsByTagName("svg");0<p.length&&(b=parseFloat(p[0].getAttribute("width")),g=parseFloat(p[0].getAttribute("height")))}d(f.result,b,g)}catch(F){e(F)}};c.src=f.result};f.onerror=function(b){e(b)}}else e(b)};l.onerror=function(b){e(b)};l.send()};EditorUi.prototype.insertAsPreText=function(b,c,d){var f=this.editor.graph,e=null;f.getModel().beginUpdate();
+c,d,e){var f=this,l=function(){try{this.loadingMermaid=!1,c=null!=c?c:mxUtils.clone(EditorUi.defaultMermaidConfig),c.securityLevel="strict",c.startOnLoad=!1,Editor.isDarkMode()&&(c.theme="dark"),mermaid.mermaidAPI.initialize(c),mermaid.mermaidAPI.render("geMermaidOutput-"+(new Date).getTime(),b,function(b){try{if(mxClient.IS_IE||mxClient.IS_IE11)b=b.replace(/ xmlns:\S*="http:\/\/www.w3.org\/XML\/1998\/namespace"/g,"").replace(/ (NS xml|\S*):space="preserve"/g,' xml:space="preserve"');var c=mxUtils.parseXml(b).getElementsByTagName("svg");
+if(0<c.length){var l=parseFloat(c[0].getAttribute("width")),g=parseFloat(c[0].getAttribute("height"));if(isNaN(l)||isNaN(g))try{var k=c[0].getAttribute("viewBox").split(/\s+/),l=parseFloat(k[2]),g=parseFloat(k[3])}catch(B){l=l||100,g=g||100}d(f.convertDataUri(Editor.createSvgDataUri(b)),l,g)}else e({message:mxResources.get("invalidInput")})}catch(B){e(B)}})}catch(v){e(v)}};"undefined"!==typeof mermaid||this.loadingMermaid||this.isOffline(!0)?l():(this.loadingMermaid=!0,"1"==urlParams.dev?mxscript("js/mermaid/mermaid.min.js",
+l):mxscript("js/extensions.min.js",l))};EditorUi.prototype.generatePlantUmlImage=function(b,c,d,e){function f(b,c,d){c1=b>>2;c2=(b&3)<<4|c>>4;c3=(c&15)<<2|d>>6;c4=d&63;r="";r+=l(c1&63);r+=l(c2&63);r+=l(c3&63);return r+=l(c4&63)}function l(b){if(10>b)return String.fromCharCode(48+b);b-=10;if(26>b)return String.fromCharCode(65+b);b-=26;if(26>b)return String.fromCharCode(97+b);b-=26;return 0==b?"-":1==b?"_":"?"}var g=new XMLHttpRequest;g.open("GET",("txt"==c?PLANT_URL+"/txt/":"png"==c?PLANT_URL+"/png/":
+PLANT_URL+"/svg/")+function(b){r="";for(i=0;i<b.length;i+=3)r=i+2==b.length?r+f(b.charCodeAt(i),b.charCodeAt(i+1),0):i+1==b.length?r+f(b.charCodeAt(i),0,0):r+f(b.charCodeAt(i),b.charCodeAt(i+1),b.charCodeAt(i+2));return r}(Graph.arrayBufferToString(pako.deflateRaw(b))),!0);"txt"!=c&&(g.responseType="blob");g.onload=function(b){if(200<=this.status&&300>this.status)if("txt"==c)d(this.response);else{var f=new FileReader;f.readAsDataURL(this.response);f.onloadend=function(b){var c=new Image;c.onload=
+function(){try{var b=c.width,l=c.height;if(0==b&&0==l){var g=f.result,k=g.indexOf(","),m=decodeURIComponent(escape(atob(g.substring(k+1)))),p=mxUtils.parseXml(m).getElementsByTagName("svg");0<p.length&&(b=parseFloat(p[0].getAttribute("width")),l=parseFloat(p[0].getAttribute("height")))}d(f.result,b,l)}catch(G){e(G)}};c.src=f.result};f.onerror=function(b){e(b)}}else e(b)};g.onerror=function(b){e(b)};g.send()};EditorUi.prototype.insertAsPreText=function(b,c,d){var f=this.editor.graph,e=null;f.getModel().beginUpdate();
try{e=f.insertVertex(null,null,"<pre>"+b+"</pre>",c,d,1,1,"text;html=1;align=left;verticalAlign=top;"),f.updateCellSize(e,!0)}finally{f.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(b,c,d,e,g,k,n,u){k=null!=k?k:!0;n=null!=n?n:!0;if(null!=b)if(Graph.fileSupport&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b))this.isOffline()?this.showError(mxResources.get("error"),mxResources.get("notInOffline")):this.parseFileData(b.replace(/\s+/g," "),mxUtils.bind(this,function(b){4==
b.readyState&&200<=b.status&&299>=b.status&&this.editor.graph.setSelectionCells(this.insertTextAt(b.responseText,c,d,!0))}));else if("data:"==b.substring(0,5)||!this.isOffline()&&(g||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b))){var f=this.editor.graph;if("data:application/pdf;base64,"==b.substring(0,28)){var l=Editor.extractGraphModelFromPdf(b);if(null!=l&&0<l.length)return this.importXml(l,c,d,k,!0,u)}if(Editor.isPngDataUrl(b)&&(l=Editor.extractGraphModelFromPng(b),null!=l&&0<l.length))return this.importXml(l,
-c,d,k,!0,u);if("data:image/svg+xml;"==b.substring(0,19))try{l=null;"data:image/svg+xml;base64,"==b.substring(0,26)?(l=b.substring(b.indexOf(",")+1),l=window.atob&&!mxClient.IS_SF?atob(l):Base64.decode(l,!0)):l=decodeURIComponent(b.substring(b.indexOf(",")+1));var m=this.importXml(l,c,d,k,!0,u);if(0<m.length)return m}catch(C){}this.loadImage(b,mxUtils.bind(this,function(e){if("data:"==b.substring(0,5))this.resizeImage(e,b,mxUtils.bind(this,function(b,e,g){f.setSelectionCell(f.insertVertex(null,null,
-"",f.snap(c),f.snap(d),e,g,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(b)+";"))}),n,this.maxImageSize);else{var g=Math.min(1,Math.min(this.maxImageSize/e.width,this.maxImageSize/e.height)),l=Math.round(e.width*g);e=Math.round(e.height*g);f.setSelectionCell(f.insertVertex(null,null,"",f.snap(c),f.snap(d),l,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
-b+";"))}}),mxUtils.bind(this,function(){var g=null;f.getModel().beginUpdate();try{g=f.insertVertex(f.getDefaultParent(),null,b,f.snap(c),f.snap(d),1,1,"text;"+(e?"html=1;":"")),f.updateCellSize(g),f.fireEvent(new mxEventObject("textInserted","cells",[g]))}finally{f.getModel().endUpdate()}f.setSelectionCell(g)}))}else{b=Graph.zapGremlins(mxUtils.trim(b));if(this.isCompatibleString(b))return this.importXml(b,c,d,k,null,u);if(0<b.length)if(this.isLucidChartData(b))this.convertLucidChart(b,mxUtils.bind(this,
+c,d,k,!0,u);if("data:image/svg+xml;"==b.substring(0,19))try{l=null;"data:image/svg+xml;base64,"==b.substring(0,26)?(l=b.substring(b.indexOf(",")+1),l=window.atob&&!mxClient.IS_SF?atob(l):Base64.decode(l,!0)):l=decodeURIComponent(b.substring(b.indexOf(",")+1));var m=this.importXml(l,c,d,k,!0,u);if(0<m.length)return m}catch(C){}this.loadImage(b,mxUtils.bind(this,function(e){if("data:"==b.substring(0,5))this.resizeImage(e,b,mxUtils.bind(this,function(b,e,l){f.setSelectionCell(f.insertVertex(null,null,
+"",f.snap(c),f.snap(d),e,l,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(b)+";"))}),n,this.maxImageSize);else{var l=Math.min(1,Math.min(this.maxImageSize/e.width,this.maxImageSize/e.height)),g=Math.round(e.width*l);e=Math.round(e.height*l);f.setSelectionCell(f.insertVertex(null,null,"",f.snap(c),f.snap(d),g,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
+b+";"))}}),mxUtils.bind(this,function(){var l=null;f.getModel().beginUpdate();try{l=f.insertVertex(f.getDefaultParent(),null,b,f.snap(c),f.snap(d),1,1,"text;"+(e?"html=1;":"")),f.updateCellSize(l),f.fireEvent(new mxEventObject("textInserted","cells",[l]))}finally{f.getModel().endUpdate()}f.setSelectionCell(l)}))}else{b=Graph.zapGremlins(mxUtils.trim(b));if(this.isCompatibleString(b))return this.importXml(b,c,d,k,null,u);if(0<b.length)if(this.isLucidChartData(b))this.convertLucidChart(b,mxUtils.bind(this,
function(b){this.editor.graph.setSelectionCells(this.importXml(b,c,d,k,null,u))}),mxUtils.bind(this,function(b){this.handleError(b)}));else{f=this.editor.graph;g=null;f.getModel().beginUpdate();try{g=f.insertVertex(f.getDefaultParent(),null,"",f.snap(c),f.snap(d),1,1,"text;whiteSpace=wrap;"+(e?"html=1;":""));f.fireEvent(new mxEventObject("textInserted","cells",[g]));"<"==b.charAt(0)&&b.indexOf(">")==b.length-1&&(b=mxUtils.htmlEntities(b));b.length>this.maxTextBytes&&(b=b.substring(0,this.maxTextBytes)+
"...");g.value=b;f.updateCellSize(g);if(0<this.maxTextWidth&&g.geometry.width>this.maxTextWidth){var p=f.getPreferredSizeForCell(g,this.maxTextWidth);g.geometry.width=p.width;g.geometry.height=p.height}Graph.isLink(g.value)&&f.setLinkForCell(g,g.value);g.geometry.width+=f.gridSize;g.geometry.height+=f.gridSize}finally{f.getModel().endUpdate()}return[g]}}return[]};EditorUi.prototype.formatFileSize=function(b){var c=-1;do b/=1024,c++;while(1024<b);return Math.max(b,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[c]};
EditorUi.prototype.convertDataUri=function(b){if("data:"==b.substring(0,5)){var c=b.indexOf(";");0<c&&(b=b.substring(0,c)+b.substring(b.indexOf(",",c+1)))}return b};EditorUi.prototype.isRemoteFileFormat=function(b,c){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(b)};EditorUi.prototype.isLucidChartData=function(b){return null!=b&&('{"state":"{\\"Properties\\":'==b.substring(0,26)||'{"Properties":'==b.substring(0,14))};EditorUi.prototype.importLocalFile=function(b,c){if(b&&Graph.fileSupport){if(null==
this.importFileInputElt){var d=document.createElement("input");d.setAttribute("type","file");mxEvent.addListener(d,"change",mxUtils.bind(this,function(){null!=d.files&&(this.importFiles(d.files,null,null,this.maxImageSize),d.type="",d.type="file",d.value="")}));d.style.display="none";document.body.appendChild(d);this.importFileInputElt=d}this.importFileInputElt.click()}else{window.openNew=!1;window.openKey="import";window.listBrowserFiles=mxUtils.bind(this,function(b,c){StorageFile.listFiles(this,
"F",b,c)});window.openBrowserFile=mxUtils.bind(this,function(b,c,d){StorageFile.getFileContent(this,b,c,d)});window.deleteBrowserFile=mxUtils.bind(this,function(b,c,d){StorageFile.deleteFile(this,b,c,d)});if(!c){var f=Editor.useLocalStorage;Editor.useLocalStorage=!b}window.openFile=new OpenFile(mxUtils.bind(this,function(b){this.hideDialog(b)}));window.openFile.setConsumer(mxUtils.bind(this,function(b,c){if(null!=c&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(c)){var d=new Blob([b],{type:"application/octet-stream"});
-this.importVisio(d,mxUtils.bind(this,function(b){this.importXml(b,0,0,!0)}),null,c)}else this.editor.graph.setSelectionCells(this.importXml(b,0,0,!0))}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null});if(!c){var e=this.dialog,g=e.close;this.dialog.close=mxUtils.bind(this,function(b){Editor.useLocalStorage=f;g.apply(e,arguments);b&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};
-EditorUi.prototype.importZipFile=function(b,c,d){var f=this,e=mxUtils.bind(this,function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(b).then(function(e){if(mxUtils.isEmptyObject(e.files))d();else{var g=0,l,k=!1;e.forEach(function(b,f){var e=f.name.toLowerCase();"diagram/diagram.xml"==e?(k=!0,f.async("string").then(function(b){0==b.indexOf("<mxfile ")?c(b):d()})):0==e.indexOf("versions/")&&(e=parseInt(e.substr(9)),e>g&&(g=e,l=f))});0<g?l.async("string").then(function(e){(new XMLHttpRequest).upload&&
+this.importVisio(d,mxUtils.bind(this,function(b){this.importXml(b,0,0,!0)}),null,c)}else this.editor.graph.setSelectionCells(this.importXml(b,0,0,!0))}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null});if(!c){var e=this.dialog,l=e.close;this.dialog.close=mxUtils.bind(this,function(b){Editor.useLocalStorage=f;l.apply(e,arguments);b&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};
+EditorUi.prototype.importZipFile=function(b,c,d){var f=this,e=mxUtils.bind(this,function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(b).then(function(e){if(mxUtils.isEmptyObject(e.files))d();else{var l=0,g,k=!1;e.forEach(function(b,f){var e=f.name.toLowerCase();"diagram/diagram.xml"==e?(k=!0,f.async("string").then(function(b){0==b.indexOf("<mxfile ")?c(b):d()})):0==e.indexOf("versions/")&&(e=parseInt(e.substr(9)),e>l&&(l=e,g=f))});0<l?g.async("string").then(function(e){(new XMLHttpRequest).upload&&
f.isRemoteFileFormat(e,b.name)?f.isOffline()?f.showError(mxResources.get("error"),mxResources.get("notInOffline"),null,d):f.parseFileData(e,mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?c(b.responseText):d())}),b.name):d()}):k||d()}},function(b){d(b)}):d()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?e():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",e))};EditorUi.prototype.importFile=function(b,c,d,e,g,k,n,u,x,z,y,B){z=null!=
z?z:!0;var f=!1,l=null,m=mxUtils.bind(this,function(b){var c=null;null!=b&&"<mxlibrary"==b.substring(0,10)?this.loadLibrary(new LocalLibrary(this,b,n)):c=this.importXml(b,d,e,z,null,null!=B?mxEvent.isControlDown(B):null);null!=u&&u(c)});"image"==c.substring(0,5)?(x=!1,"image/png"==c.substring(0,9)&&(c=y?null:this.extractGraphModelFromPng(b),null!=c&&0<c.length&&(l=this.importXml(c,d,e,z,null,null!=B?mxEvent.isControlDown(B):null),x=!0)),x||(c=this.editor.graph,x=b.indexOf(";"),0<x&&(b=b.substring(0,
x)+b.substring(b.indexOf(",",x+1))),z&&c.isGridEnabled()&&(d=c.snap(d),e=c.snap(e)),l=[c.insertVertex(null,null,"",d,e,g,k,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b+";")])):/(\.*<graphml )/.test(b)?(f=!0,this.importGraphML(b,m)):null!=x&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?(f=!0,this.importVisio(x,m)):(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,n)?this.isOffline()?
this.showError(mxResources.get("error"),mxResources.get("notInOffline")):(f=!0,g=mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?m(b.responseText):null!=u&&u(null))}),null!=b?this.parseFileData(b,g,n):this.parseFile(x,g,n)):0==b.indexOf("PK")&&null!=x?(f=!0,this.importZipFile(x,m,mxUtils.bind(this,function(){l=this.insertTextAt(this.validateFileData(b),d,e,!0,null,z);u(l)}))):/(\.v(sd|dx))($|\?)/i.test(n)||/(\.vs(s|x))($|\?)/i.test(n)||(l=this.insertTextAt(this.validateFileData(b),
d,e,!0,null,z,null,null!=B?mxEvent.isControlDown(B):null));f||null==u||u(l);return l};EditorUi.prototype.importFiles=function(b,c,d,e,g,k,n,u,x,z,y,B,C){e=null!=e?e:this.maxImageSize;z=null!=z?z:this.maxImageBytes;var f=null!=c&&null!=d,l=!0;c=null!=c?c:0;d=null!=d?d:0;var m=!1;if(!mxClient.IS_CHROMEAPP&&null!=b)for(var p=y||this.resampleThreshold,q=0;q<b.length;q++)if("image/svg"!==b[q].type.substring(0,9)&&"image/"===b[q].type.substring(0,6)&&b[q].size>p){m=!0;break}var t=mxUtils.bind(this,function(){var m=
-this.editor.graph,p=m.gridSize;g=null!=g?g:mxUtils.bind(this,function(b,c,d,e,g,l,k,m,p){try{return null!=b&&"<mxlibrary"==b.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,b,k)),null):this.importFile(b,c,d,e,g,l,k,m,p,f,B,C)}catch(na){return this.handleError(na),null}});k=null!=k?k:mxUtils.bind(this,function(b){m.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var q=b.length,t=q,A=[],v=mxUtils.bind(this,function(b,c){A[b]=c;if(0==
+this.editor.graph,p=m.gridSize;g=null!=g?g:mxUtils.bind(this,function(b,c,d,e,l,g,k,m,p){try{return null!=b&&"<mxlibrary"==b.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,b,k)),null):this.importFile(b,c,d,e,l,g,k,m,p,f,B,C)}catch(oa){return this.handleError(oa),null}});k=null!=k?k:mxUtils.bind(this,function(b){m.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var q=b.length,t=q,A=[],v=mxUtils.bind(this,function(b,c){A[b]=c;if(0==
--t){this.spinner.stop();if(null!=u)u(A);else{var d=[];m.getModel().beginUpdate();try{for(var f=0;f<A.length;f++){var e=A[f]();null!=e&&(d=d.concat(e))}}finally{m.getModel().endUpdate()}}k(d)}}),D=0;D<q;D++)mxUtils.bind(this,function(f){var k=b[f];if(null!=k){var q=new FileReader;q.onload=mxUtils.bind(this,function(b){if(null==n||n(k))if("image/"==k.type.substring(0,6))if("image/svg"==k.type.substring(0,9)){var q=Graph.clipSvgDataUri(b.target.result),t=q.indexOf(","),t=decodeURIComponent(escape(atob(q.substring(t+
1)))),A=mxUtils.parseXml(t),t=A.getElementsByTagName("svg");if(0<t.length){var t=t[0],u=B?null:t.getAttribute("content");null!=u&&"<"!=u.charAt(0)&&"%"!=u.charAt(0)&&(u=unescape(window.atob?atob(u):Base64.decode(u,!0)));null!=u&&"%"==u.charAt(0)&&(u=decodeURIComponent(u));null==u||"<mxfile "!==u.substring(0,8)&&"<mxGraphModel "!==u.substring(0,14)?v(f,mxUtils.bind(this,function(){try{if(null!=A){var b=A.getElementsByTagName("svg");if(0<b.length){var l=b[0],n=l.getAttribute("width"),t=l.getAttribute("height"),
n=null!=n&&"%"!=n.charAt(n.length-1)?parseFloat(n):NaN,t=null!=t&&"%"!=t.charAt(t.length-1)?parseFloat(t):NaN,v=l.getAttribute("viewBox");if(null==v||0==v.length)l.setAttribute("viewBox","0 0 "+n+" "+t);else if(isNaN(n)||isNaN(t)){var u=v.split(" ");3<u.length&&(n=parseFloat(u[2]),t=parseFloat(u[3]))}q=Editor.createSvgDataUri(mxUtils.getXml(l));var D=Math.min(1,Math.min(e/Math.max(1,n)),e/Math.max(1,t)),x=g(q,k.type,c+f*p,d+f*p,Math.max(1,Math.round(n*D)),Math.max(1,Math.round(t*D)),k.name);if(isNaN(n)||
-isNaN(t)){var E=new Image;E.onload=mxUtils.bind(this,function(){n=Math.max(1,E.width);t=Math.max(1,E.height);x[0].geometry.width=n;x[0].geometry.height=t;l.setAttribute("viewBox","0 0 "+n+" "+t);q=Editor.createSvgDataUri(mxUtils.getXml(l));var b=q.indexOf(";");0<b&&(q=q.substring(0,b)+q.substring(q.indexOf(",",b+1)));m.setCellStyles("image",q,[x[0]])});E.src=Editor.createSvgDataUri(mxUtils.getXml(l))}return x}}}catch(ra){}return null})):v(f,mxUtils.bind(this,function(){return g(u,"text/xml",c+f*p,
+isNaN(t)){var z=new Image;z.onload=mxUtils.bind(this,function(){n=Math.max(1,z.width);t=Math.max(1,z.height);x[0].geometry.width=n;x[0].geometry.height=t;l.setAttribute("viewBox","0 0 "+n+" "+t);q=Editor.createSvgDataUri(mxUtils.getXml(l));var b=q.indexOf(";");0<b&&(q=q.substring(0,b)+q.substring(q.indexOf(",",b+1)));m.setCellStyles("image",q,[x[0]])});z.src=Editor.createSvgDataUri(mxUtils.getXml(l))}return x}}}catch(ra){}return null})):v(f,mxUtils.bind(this,function(){return g(u,"text/xml",c+f*p,
d+f*p,0,0,k.name)}))}else v(f,mxUtils.bind(this,function(){return null}))}else{t=!1;if("image/png"==k.type){var D=B?null:this.extractGraphModelFromPng(b.target.result);if(null!=D&&0<D.length){var x=new Image;x.src=b.target.result;v(f,mxUtils.bind(this,function(){return g(D,"text/xml",c+f*p,d+f*p,x.width,x.height,k.name)}));t=!0}}t||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,
function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(b.target.result,mxUtils.bind(this,function(m){this.resizeImage(m,b.target.result,mxUtils.bind(this,function(b,m,n){v(f,mxUtils.bind(this,function(){if(null!=b&&b.length<z){var q=l&&this.isResampleImageSize(k.size,y)?Math.min(1,Math.min(e/m,e/n)):1;return g(b,k.type,c+f*p,d+f*p,Math.round(m*q),Math.round(n*q),k.name)}this.handleError({message:mxResources.get("imageTooBig")});
return null}))}),l,e,y,k.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else q=b.target.result,g(q,k.type,c+f*p,d+f*p,240,160,k.name,function(b){v(f,function(){return b})},k)});/(\.v(dx|sdx?))($|\?)/i.test(k.name)||/(\.vs(x|sx?))($|\?)/i.test(k.name)?g(null,k.type,c+f*p,d+f*p,240,160,k.name,function(b){v(f,function(){return b})},k):"image"==k.type.substring(0,5)||"application/pdf"==k.type?q.readAsDataURL(k):q.readAsText(k)}})(D)});if(m){m=
@@ -11488,7 +11488,7 @@ mxSettings.settings.sidebarTitles),this.formatWidth=mxSettings.getFormatWidth())
f,e){var g=JSON.parse(e);f=new TextareaDialog(b,mxResources.get("plantUml")+":",g.data,function(f){null!=f&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generatePlantUmlImage(f,g.format,function(e,k,l){b.spinner.stop();c.getModel().beginUpdate();try{if("txt"==g.format)c.labelChanged(d,"<pre>"+e+"</pre>"),c.updateCellSize(d,!0);else{c.setCellStyles("image",b.convertDataUri(e),[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=k,m.height=l,c.cellsResized([d],[m],!1))}c.setAttributeForCell(d,
"plantUmlData",JSON.stringify({data:f,format:g.format}))}finally{c.getModel().endUpdate()}},function(c){b.handleError(c)})},null,null,400,220);b.showDialog(f.container,420,300,!0,!0);f.init()};c.cellEditor.editMermaidData=function(d,f,e){var g=JSON.parse(e);f=new TextareaDialog(b,mxResources.get("mermaid")+":",g.data,function(f){null!=f&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generateMermaidImage(f,g.config,function(e,k,l){b.spinner.stop();c.getModel().beginUpdate();try{c.setCellStyles("image",
e,[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=Math.max(m.width,k),m.height=Math.max(m.height,l),c.cellsResized([d],[m],!1));c.setAttributeForCell(d,"mermaidData",JSON.stringify({data:f,config:g.config},null,2))}finally{c.getModel().endUpdate()}},function(c){b.handleError(c)})},null,null,400,220);b.showDialog(f.container,420,300,!0,!0);f.init()};var d=c.cellEditor.startEditing;c.cellEditor.startEditing=function(f,e){try{var g=this.graph.getAttributeForCell(f,"plantUmlData");if(null!=
-g)this.editPlantUmlData(f,e,g);else if(g=this.graph.getAttributeForCell(f,"mermaidData"),null!=g)this.editMermaidData(f,e,g);else{var k=c.getCellStyle(f);"1"==mxUtils.getValue(k,"metaEdit","0")?b.showDataDialog(f):d.apply(this,arguments)}}catch(H){b.handleError(H)}};c.getLinkTitle=function(c){return b.getLinkTitle(c)};c.customLinkClicked=function(c){var d=!1;try{b.handleCustomLink(c),d=!0}catch(I){b.handleError(I)}return d};var e=c.parseBackgroundImage;c.parseBackgroundImage=function(b){var c=e.apply(this,
+g)this.editPlantUmlData(f,e,g);else if(g=this.graph.getAttributeForCell(f,"mermaidData"),null!=g)this.editMermaidData(f,e,g);else{var k=c.getCellStyle(f);"1"==mxUtils.getValue(k,"metaEdit","0")?b.showDataDialog(f):d.apply(this,arguments)}}catch(H){b.handleError(H)}};c.getLinkTitle=function(c){return b.getLinkTitle(c)};c.customLinkClicked=function(c){var d=!1;try{b.handleCustomLink(c),d=!0}catch(J){b.handleError(J)}return d};var e=c.parseBackgroundImage;c.parseBackgroundImage=function(b){var c=e.apply(this,
arguments);null!=c&&null!=c.src&&Graph.isPageLink(c.src)&&(c={originalSrc:c.src});return c};var k=c.setBackgroundImage;c.setBackgroundImage=function(c){null!=c&&null!=c.originalSrc&&(c=b.createImageForPageLink(c.originalSrc,b.currentPage,this));k.apply(this,arguments)};this.editor.addListener("pageRenamed",mxUtils.bind(this,function(){c.refreshBackgroundImage()}));this.editor.addListener("pageMoved",mxUtils.bind(this,function(){c.refreshBackgroundImage()}));this.editor.addListener("pagesPatched",
mxUtils.bind(this,function(b,d){var f=null!=c.backgroundImage?c.backgroundImage.originalSrc:null;if(null!=f){var e=f.indexOf(",");if(0<e)for(var f=f.substring(e+1),e=d.getProperty("patches"),g=0;g<e.length;g++)if(null!=e[g][EditorUi.DIFF_UPDATE]&&null!=e[g][EditorUi.DIFF_UPDATE][f]||null!=e[g][EditorUi.DIFF_REMOVE]&&0<=mxUtils.indexOf(e[g][EditorUi.DIFF_REMOVE],f)){c.refreshBackgroundImage();break}}}));var n=c.getBackgroundImageObject;c.getBackgroundImageObject=function(c,d){var f=n.apply(this,arguments);
if(null!=f&&null!=f.originalSrc)if(!d)f={src:f.originalSrc};else if(d&&null!=this.themes&&"darkTheme"==this.defaultThemeName){var e=this.stylesheet,g=this.shapeForegroundColor,k=this.shapeBackgroundColor;this.stylesheet=this.getDefaultStylesheet();this.shapeBackgroundColor="#ffffff";this.shapeForegroundColor="#000000";f=b.createImageForPageLink(f.originalSrc);this.shapeBackgroundColor=k;this.shapeForegroundColor=g;this.stylesheet=e}return f};var v=this.clearDefaultStyle;this.clearDefaultStyle=function(){v.apply(this,
@@ -11504,7 +11504,7 @@ b.preventDefault()}),mxEvent.addListener(d,"dragover",mxUtils.bind(this,function
!1,b.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/plain"));b.stopPropagation();b.preventDefault()})))}));this.isSettingsEnabled()&&(A=this.editor.graph.view,A.setUnit(mxSettings.getUnit()),A.addListener("unitChanged",function(b,c){mxSettings.setUnit(c.getProperty("unit"));
mxSettings.save()}),this.ruler=!this.canvasSupported||9==document.documentMode||"1"!=urlParams.ruler&&!mxSettings.isRulerOn()||this.editor.isChromelessView()&&!this.editor.editable?null:new mxDualRuler(this,A.unit),this.refresh());if("1"==urlParams.styledev){A=document.getElementById("geFooter");null!=A&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left=
"2px",this.styleInput.style.width="98%",this.styleInput.style.visibility="hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this,function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),A.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(b,c){if(0<this.editor.graph.getSelectionCount()){var d=this.editor.graph.getSelectionCell(),
-d=this.editor.graph.getModel().getStyle(d);this.styleInput.value=d||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var G=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==this.styleInput?!0:G.apply(this,arguments)}}A=document.getElementById("geInfo");null!=A&&A.parentNode.removeChild(A);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var D=null;mxEvent.addListener(c.container,"dragleave",
+d=this.editor.graph.getModel().getStyle(d);this.styleInput.value=d||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var F=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==this.styleInput?!0:F.apply(this,arguments)}}A=document.getElementById("geInfo");null!=A&&A.parentNode.removeChild(A);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var D=null;mxEvent.addListener(c.container,"dragleave",
function(b){c.isEnabled()&&(null!=D&&(D.parentNode.removeChild(D),D=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(b){null==D&&(!mxClient.IS_IE||10<document.documentMode)&&(D=this.highlightElement(c.container));null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(c.container,"drop",mxUtils.bind(this,function(b){null!=D&&(D.parentNode.removeChild(D),D=null);if(c.isEnabled()){var d=
mxUtils.convertPoint(c.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),f=b.dataTransfer.files,e=c.view.translate,g=c.view.scale,k=d.x/g-e.x,l=d.y/g-e.y;if(0<f.length)d=1==f.length&&this.isBlankFile()&&!this.canUndo()&&("image/svg"===f[0].type.substring(0,9)||"image/"!==f[0].type.substring(0,6)||/(\.drawio.png)$/i.test(f[0].name)),"1"!=urlParams.embed&&(mxEvent.isShiftDown(b)||d)?(!mxEvent.isShiftDown(b)&&d&&null!=this.getCurrentFile()&&this.fileLoaded(null),this.openFiles(f,!0)):(mxEvent.isAltDown(b)&&
(l=k=null),this.importFiles(f,k,l,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b),b));else{mxEvent.isAltDown(b)&&(l=k=0);var m=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,f=this.extractGraphModelFromEvent(b,null!=this.pages);if(null!=f)c.setSelectionCells(this.importXml(f,k,l,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){var p=b.dataTransfer.getData("text/html"),f=document.createElement("div");
@@ -11560,116 +11560,116 @@ null!=this.actions.layersWindow&&this.actions.layersWindow.window.setVisible(!1)
function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.getPublicUrl=function(b,c){null!=b?b.getPublicUrl(c):c(null)};EditorUi.prototype.createLoadMessage=function(b){var c=this.editor.graph;return{event:b,pageVisible:c.pageVisible,translate:c.view.translate,bounds:c.getGraphBounds(),currentPage:this.getSelectedPageIndex(),
scale:c.view.scale,page:c.view.getBackgroundPageBounds()}};EditorUi.prototype.sendEmbeddedSvgExport=function(b){var c=this.editor.graph;c.isEditing()&&c.stopEditing(!c.isInvokesStopCellEditing());var d=window.opener||window.parent;if(this.editor.modified){var f=c.background;if(null==f||f==mxConstants.NONE)f=this.embedExportBackground;this.getEmbeddedSvg(this.getFileData(!0,null,null,null,null,null,null,null,null,!1),c,null,!0,mxUtils.bind(this,function(c){d.postMessage(JSON.stringify({event:"export",
point:this.embedExitPoint,exit:null!=b?!b:!0,data:Editor.createSvgDataUri(c)}),"*")}),null,null,!0,f,1,this.embedExportBorder)}else b||d.postMessage(JSON.stringify({event:"exit",point:this.embedExitPoint}),"*");b||(this.diagramContainer.removeAttribute("data-bounds"),Editor.inlineFullscreen=!1,c.model.clear(),this.editor.undoManager.clear(),this.setBackgroundImage(null),this.editor.modified=!1,this.fireEvent(new mxEventObject("editInlineStop")))};EditorUi.prototype.installMessageHandler=function(b){var c=
-null,d=!1,f=!1,e=null,g=mxUtils.bind(this,function(b,c){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,g);mxEvent.addListener(window,"message",mxUtils.bind(this,function(g){if(g.source==(window.opener||window.parent)){var l=g.data,m=null,n=mxUtils.bind(this,function(b){if(null!=b&&"function"===typeof b.charAt&&"<"!=
-b.charAt(0))try{Editor.isPngDataUrl(b)?b=Editor.extractGraphModelFromPng(b):"data:image/svg+xml;base64,"==b.substring(0,26)?b=atob(b.substring(26)):"data:image/svg+xml;utf8,"==b.substring(0,24)&&(b=b.substring(24)),null!=b&&("%"==b.charAt(0)?b=decodeURIComponent(b):"<"!=b.charAt(0)&&(b=Graph.decompress(b)))}catch(ia){}return b});if("json"==urlParams.proto){var p=!1;try{l=JSON.parse(l)}catch(U){l=null}try{if(null==l)return;if("dialog"==l.action){this.showError(null!=l.titleKey?mxResources.get(l.titleKey):
+null,d=!1,f=!1,e=null,g=mxUtils.bind(this,function(b,c){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,g);mxEvent.addListener(window,"message",mxUtils.bind(this,function(g){if(g.source==(window.opener||window.parent)){var l=g.data,m=null,p=mxUtils.bind(this,function(b){if(null!=b&&"function"===typeof b.charAt&&"<"!=
+b.charAt(0))try{Editor.isPngDataUrl(b)?b=Editor.extractGraphModelFromPng(b):"data:image/svg+xml;base64,"==b.substring(0,26)?b=atob(b.substring(26)):"data:image/svg+xml;utf8,"==b.substring(0,24)&&(b=b.substring(24)),null!=b&&("%"==b.charAt(0)?b=decodeURIComponent(b):"<"!=b.charAt(0)&&(b=Graph.decompress(b)))}catch(ia){}return b});if("json"==urlParams.proto){var n=!1;try{l=JSON.parse(l)}catch(U){l=null}try{if(null==l)return;if("dialog"==l.action){this.showError(null!=l.titleKey?mxResources.get(l.titleKey):
l.title,null!=l.messageKey?mxResources.get(l.messageKey):l.message,null!=l.buttonKey?mxResources.get(l.buttonKey):l.button);null!=l.modified&&(this.editor.modified=l.modified);return}if("layout"==l.action){this.executeLayoutList(l.layouts);return}if("prompt"==l.action){this.spinner.stop();var q=new FilenameDialog(this,l.defaultValue||"",null!=l.okKey?mxResources.get(l.okKey):l.ok,function(b){null!=b?k.postMessage(JSON.stringify({event:"prompt",value:b,message:l}),"*"):k.postMessage(JSON.stringify({event:"prompt-cancel",
-message:l}),"*")},null!=l.titleKey?mxResources.get(l.titleKey):l.title);this.showDialog(q.container,300,80,!0,!1);q.init();return}if("draft"==l.action){var t=n(l.xml);this.spinner.stop();q=new DraftDialog(this,mxResources.get("draftFound",[l.name||this.defaultFilename]),t,mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"edit",message:l}),"*")}),mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"discard",
+message:l}),"*")},null!=l.titleKey?mxResources.get(l.titleKey):l.title);this.showDialog(q.container,300,80,!0,!1);q.init();return}if("draft"==l.action){var t=p(l.xml);this.spinner.stop();q=new DraftDialog(this,mxResources.get("draftFound",[l.name||this.defaultFilename]),t,mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"edit",message:l}),"*")}),mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"discard",
message:l}),"*")}),l.editKey?mxResources.get(l.editKey):null,l.discardKey?mxResources.get(l.discardKey):null,l.ignore?mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"ignore",message:l}),"*")}):null);this.showDialog(q.container,640,480,!0,!1,mxUtils.bind(this,function(b){b&&this.actions.get("exit").funct()}));try{q.init()}catch(U){k.postMessage(JSON.stringify({event:"draft",error:U.toString(),message:l}),"*")}return}if("template"==l.action){this.spinner.stop();
-var v=1==l.enableRecent,u=1==l.enableSearch,x=1==l.enableCustomTemp;if("1"==urlParams.newTempDlg&&!l.templatesOnly&&null!=l.callback){var I=this.getCurrentUser(),J=new TemplatesDialog(this,function(b,c,d){b=b||this.emptyDiagramXml;k.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c,tempUrl:d.url,libs:d.libs,builtIn:null!=d.info&&null!=d.info.custContentId,message:l}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=I?I.id:
-null,v?mxUtils.bind(this,function(b,c,d){this.remoteInvoke("getRecentDiagrams",[d],null,b,c)}):null,u?mxUtils.bind(this,function(b,c,d,f){this.remoteInvoke("searchDiagrams",[b,f],null,c,d)}):null,mxUtils.bind(this,function(b,c,d){this.remoteInvoke("getFileContent",[b.url],null,c,d)}),null,x?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(J.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}q=
-new NewDialog(this,!1,l.templatesOnly?!1:null!=l.callback,mxUtils.bind(this,function(c,d,f,e){c=c||this.emptyDiagramXml;null!=l.callback?k.postMessage(JSON.stringify({event:"template",xml:c,blank:c==this.emptyDiagramXml,name:d,tempUrl:f,libs:e,builtIn:!0,message:l}),"*"):(b(c,g,c!=this.emptyDiagramXml,l.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,v?mxUtils.bind(this,function(b){this.remoteInvoke("getRecentDiagrams",[null],null,b,function(){b(null,
-"Network Error!")})}):null,u?mxUtils.bind(this,function(b,c){this.remoteInvoke("searchDiagrams",[b,null],null,c,function(){c(null,"Network Error!")})}):null,mxUtils.bind(this,function(b,c,d){k.postMessage(JSON.stringify({event:"template",docUrl:b,info:c,name:d}),"*")}),null,null,x?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,1==l.withoutType);this.showDialog(q.container,620,460,!0,!1,mxUtils.bind(this,function(b){this.sidebar.hideTooltip();
-b&&this.actions.get("exit").funct()}));q.init();return}if("textContent"==l.action){var H=this.getDiagramTextContent();k.postMessage(JSON.stringify({event:"textContent",data:H,message:l}),"*");return}if("status"==l.action){null!=l.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(l.messageKey))):null!=l.message&&this.editor.setStatus(mxUtils.htmlEntities(l.message));null!=l.modified&&(this.editor.modified=l.modified);return}if("spinner"==l.action){var K=null!=l.messageKey?mxResources.get(l.messageKey):
-l.message;null==l.show||l.show?this.spinner.spin(document.body,K):this.spinner.stop();return}if("exit"==l.action){this.actions.get("exit").funct();return}if("viewport"==l.action){null!=l.viewport&&(this.embedViewport=l.viewport);return}if("snapshot"==l.action){this.sendEmbeddedSvgExport(!0);return}if("export"==l.action){if("png"==l.format||"xmlpng"==l.format){if(null==l.spin&&null==l.spinKey||this.spinner.spin(document.body,null!=l.spinKey?mxResources.get(l.spinKey):l.spin)){var N=null!=l.xml?l.xml:
-this.getFileData(!0);this.editor.graph.setEnabled(!1);var Q=this.editor.graph,L=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);this.spinner.stop();var c=this.createLoadMessage("export");c.format=l.format;c.message=l;c.data=b;c.xml=N;k.postMessage(JSON.stringify(c),"*")}),W=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==l.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(N)));Q!=this.editor.graph&&Q.container.parentNode.removeChild(Q.container);
-L(b)}),X=l.pageId||(null!=this.pages?l.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var S=mxUtils.bind(this,function(){if(null!=this.pages&&this.currentPage.getId()!=X){var b=Q.getGlobalVariable;Q=this.createTemporaryGraph(Q.getStylesheet());for(var c,d=0;d<this.pages.length;d++)if(this.pages[d].getId()==X){c=this.updatePageRoot(this.pages[d]);break}null==c&&(c=this.currentPage);Q.getGlobalVariable=function(d){return"page"==d?c.getName():"pagenumber"==
-d?1:b.apply(this,arguments)};document.body.appendChild(Q.container);Q.model.setRoot(c.root)}if(null!=l.layerIds){for(var f=Q.model,e=f.getChildCells(f.getRoot()),g={},d=0;d<l.layerIds.length;d++)g[l.layerIds[d]]=!0;for(d=0;d<e.length;d++)f.setVisible(e[d],g[e[d].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){W(b.toDataURL("image/png"))}),l.width,null,l.background,mxUtils.bind(this,function(){W(null)}),null,null,l.scale,l.transparent,l.shadow,null,Q,l.border,null,l.grid,l.keepTheme)});
+var u=1==l.enableRecent,v=1==l.enableSearch,x=1==l.enableCustomTemp;if("1"==urlParams.newTempDlg&&!l.templatesOnly&&null!=l.callback){var J=this.getCurrentUser(),K=new TemplatesDialog(this,function(b,c,d){b=b||this.emptyDiagramXml;k.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c,tempUrl:d.url,libs:d.libs,builtIn:null!=d.info&&null!=d.info.custContentId,message:l}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=J?J.id:
+null,u?mxUtils.bind(this,function(b,c,d){this.remoteInvoke("getRecentDiagrams",[d],null,b,c)}):null,v?mxUtils.bind(this,function(b,c,d,f){this.remoteInvoke("searchDiagrams",[b,f],null,c,d)}):null,mxUtils.bind(this,function(b,c,d){this.remoteInvoke("getFileContent",[b.url],null,c,d)}),null,x?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(K.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}q=
+new NewDialog(this,!1,l.templatesOnly?!1:null!=l.callback,mxUtils.bind(this,function(c,d,f,e){c=c||this.emptyDiagramXml;null!=l.callback?k.postMessage(JSON.stringify({event:"template",xml:c,blank:c==this.emptyDiagramXml,name:d,tempUrl:f,libs:e,builtIn:!0,message:l}),"*"):(b(c,g,c!=this.emptyDiagramXml,l.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,u?mxUtils.bind(this,function(b){this.remoteInvoke("getRecentDiagrams",[null],null,b,function(){b(null,
+"Network Error!")})}):null,v?mxUtils.bind(this,function(b,c){this.remoteInvoke("searchDiagrams",[b,null],null,c,function(){c(null,"Network Error!")})}):null,mxUtils.bind(this,function(b,c,d){k.postMessage(JSON.stringify({event:"template",docUrl:b,info:c,name:d}),"*")}),null,null,x?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,1==l.withoutType);this.showDialog(q.container,620,460,!0,!1,mxUtils.bind(this,function(b){this.sidebar.hideTooltip();
+b&&this.actions.get("exit").funct()}));q.init();return}if("textContent"==l.action){var H=this.getDiagramTextContent();k.postMessage(JSON.stringify({event:"textContent",data:H,message:l}),"*");return}if("status"==l.action){null!=l.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(l.messageKey))):null!=l.message&&this.editor.setStatus(mxUtils.htmlEntities(l.message));null!=l.modified&&(this.editor.modified=l.modified);return}if("spinner"==l.action){var I=null!=l.messageKey?mxResources.get(l.messageKey):
+l.message;null==l.show||l.show?this.spinner.spin(document.body,I):this.spinner.stop();return}if("exit"==l.action){this.actions.get("exit").funct();return}if("viewport"==l.action){null!=l.viewport&&(this.embedViewport=l.viewport);return}if("snapshot"==l.action){this.sendEmbeddedSvgExport(!0);return}if("export"==l.action){if("png"==l.format||"xmlpng"==l.format){if(null==l.spin&&null==l.spinKey||this.spinner.spin(document.body,null!=l.spinKey?mxResources.get(l.spinKey):l.spin)){var N=null!=l.xml?l.xml:
+this.getFileData(!0);this.editor.graph.setEnabled(!1);var R=this.editor.graph,L=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);this.spinner.stop();var c=this.createLoadMessage("export");c.format=l.format;c.message=l;c.data=b;c.xml=N;k.postMessage(JSON.stringify(c),"*")}),W=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==l.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(N)));R!=this.editor.graph&&R.container.parentNode.removeChild(R.container);
+L(b)}),X=l.pageId||(null!=this.pages?l.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var S=mxUtils.bind(this,function(){if(null!=this.pages&&this.currentPage.getId()!=X){var b=R.getGlobalVariable;R=this.createTemporaryGraph(R.getStylesheet());for(var c,d=0;d<this.pages.length;d++)if(this.pages[d].getId()==X){c=this.updatePageRoot(this.pages[d]);break}null==c&&(c=this.currentPage);R.getGlobalVariable=function(d){return"page"==d?c.getName():"pagenumber"==
+d?1:b.apply(this,arguments)};document.body.appendChild(R.container);R.model.setRoot(c.root)}if(null!=l.layerIds){for(var f=R.model,e=f.getChildCells(f.getRoot()),g={},d=0;d<l.layerIds.length;d++)g[l.layerIds[d]]=!0;for(d=0;d<e.length;d++)f.setVisible(e[d],g[e[d].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){W(b.toDataURL("image/png"))}),l.width,null,l.background,mxUtils.bind(this,function(){W(null)}),null,null,l.scale,l.transparent,l.shadow,null,R,l.border,null,l.grid,l.keepTheme)});
null!=l.xml&&0<l.xml.length?(d=!0,this.setFileData(N),d=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(S)},0):S()):S()}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==l.format?"1":"0")+(null!=X?"&pageId="+X:"")+(null!=l.layerIds&&0<l.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:l.layerIds})):"")+(null!=l.scale?"&scale="+l.scale:"")+"&base64=1&xml="+encodeURIComponent(N))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&
299>=b.getStatus()?L("data:image/png;base64,"+b.getText()):W(null)}),mxUtils.bind(this,function(){W(null)}))}}else S=mxUtils.bind(this,function(){var b=this.createLoadMessage("export");b.message=l;if("html2"==l.format||"html"==l.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var c=this.getXmlFileData();b.xml=mxUtils.getXml(c);b.data=this.getFileData(null,null,!0,null,null,null,c);b.format=l.format}else if("html"==l.format)c=this.editor.getGraphXml(),b.data=this.getHtml(c,this.editor.graph),
b.xml=mxUtils.getXml(c),b.format=l.format;else{mxSvgCanvas2D.prototype.foAltText=null;c=null!=l.background?l.background:this.editor.graph.background;c==mxConstants.NONE&&(c=null);b.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);b.format="svg";var d=mxUtils.bind(this,function(c){this.editor.graph.setEnabled(!0);this.spinner.stop();b.data=Editor.createSvgDataUri(c);k.postMessage(JSON.stringify(b),"*")});if("xmlsvg"==l.format)(null==l.spin&&null==l.spinKey||this.spinner.spin(document.body,
null!=l.spinKey?mxResources.get(l.spinKey):l.spin))&&this.getEmbeddedSvg(b.xml,this.editor.graph,null,!0,d,null,null,l.embedImages,c,l.scale,l.border,l.shadow,l.keepTheme);else if(null==l.spin&&null==l.spinKey||this.spinner.spin(document.body,null!=l.spinKey?mxResources.get(l.spinKey):l.spin))this.editor.graph.setEnabled(!1),c=this.editor.graph.getSvg(c,l.scale,l.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||l.shadow,null,l.keepTheme),(this.editor.graph.shadowVisible||l.shadow)&&
-this.editor.graph.addSvgShadow(c),this.embedFonts(c,mxUtils.bind(this,function(b){l.embedImages||null==l.embedImages?this.editor.convertImages(b,mxUtils.bind(this,function(b){d(mxUtils.getXml(b))})):d(mxUtils.getXml(b))}));return}k.postMessage(JSON.stringify(b),"*")}),null!=l.xml&&0<l.xml.length?(d=!0,this.setFileData(l.xml),d=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(S)},0):S()):S();return}if("load"==l.action){p=l.toSketch;f=1==l.autosave;this.hideDialog();
+this.editor.graph.addSvgShadow(c),this.embedFonts(c,mxUtils.bind(this,function(b){l.embedImages||null==l.embedImages?this.editor.convertImages(b,mxUtils.bind(this,function(b){d(mxUtils.getXml(b))})):d(mxUtils.getXml(b))}));return}k.postMessage(JSON.stringify(b),"*")}),null!=l.xml&&0<l.xml.length?(d=!0,this.setFileData(l.xml),d=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(S)},0):S()):S();return}if("load"==l.action){n=l.toSketch;f=1==l.autosave;this.hideDialog();
null!=l.modified&&null==urlParams.modified&&(urlParams.modified=l.modified);null!=l.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=l.saveAndExit);null!=l.noSaveBtn&&null==urlParams.noSaveBtn&&(urlParams.noSaveBtn=l.noSaveBtn);if(null!=l.rough){var M=Editor.sketchMode;this.doSetSketchMode(l.rough);M!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=l.dark&&(M=Editor.darkMode,this.doSetDarkMode(l.dark),M!=Editor.darkMode&&this.fireEvent(new mxEventObject("darkModeChanged")));
-null!=l.border&&(this.embedExportBorder=l.border);null!=l.background&&(this.embedExportBackground=l.background);null!=l.viewport&&(this.embedViewport=l.viewport);this.embedExitPoint=null;if(null!=l.rect){var P=this.embedExportBorder;this.diagramContainer.style.border="2px solid #295fcc";this.diagramContainer.style.top=l.rect.top+"px";this.diagramContainer.style.left=l.rect.left+"px";this.diagramContainer.style.height=l.rect.height+"px";this.diagramContainer.style.width=l.rect.width+"px";this.diagramContainer.style.bottom=
-"";this.diagramContainer.style.right="";m=mxUtils.bind(this,function(){var b=this.editor.graph,c=b.maxFitScale;b.maxFitScale=l.maxFitScale;b.fit(2*P);b.maxFitScale=c;b.container.scrollTop-=2*P;b.container.scrollLeft-=2*P;this.fireEvent(new mxEventObject("editInlineStart","data",[l]))})}null!=l.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=l.noExitBtn);null!=l.title&&null!=this.buttonContainer&&(t=document.createElement("span"),mxUtils.write(t,l.title),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),
-this.buttonContainer.appendChild(t),this.embedFilenameSpan=t);try{l.libs&&this.sidebar.showEntries(l.libs)}catch(U){}l=null!=l.xmlpng?this.extractGraphModelFromPng(l.xmlpng):null!=l.descriptor?l.descriptor:l.xml}else{if("merge"==l.action){var aa=this.getCurrentFile();null!=aa&&(t=n(l.xml),null!=t&&""!=t&&aa.mergeFile(new LocalFile(this,t),function(){k.postMessage(JSON.stringify({event:"merge",message:l}),"*")},function(b){k.postMessage(JSON.stringify({event:"merge",message:l,error:b}),"*")}))}else"remoteInvokeReady"==
-l.action?this.handleRemoteInvokeReady(k):"remoteInvoke"==l.action?this.handleRemoteInvoke(l,g.origin):"remoteInvokeResponse"==l.action?this.handleRemoteInvokeResponse(l):k.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(l)}),"*");return}}catch(U){this.handleError(U)}}var oa=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),ea=mxUtils.bind(this,function(g,l){d=!0;try{b(g,
-l,null,p)}catch(ja){this.handleError(ja)}d=!1;null!=urlParams.modified&&this.editor.setStatus("");e=oa();f&&null==c&&(c=mxUtils.bind(this,function(b,c){var f=oa();if(f!=e&&!d){var g=this.createLoadMessage("autosave");g.xml=f;(window.opener||window.parent).postMessage(JSON.stringify(g),"*")}e=f}),this.editor.graph.model.addListener(mxEvent.CHANGE,c),this.editor.graph.addListener("gridSizeChanged",c),this.editor.graph.addListener("shadowVisibleChanged",c),this.addListener("pageFormatChanged",c),this.addListener("pageScaleChanged",
-c),this.addListener("backgroundColorChanged",c),this.addListener("backgroundImageChanged",c),this.addListener("foldingEnabledChanged",c),this.addListener("mathEnabledChanged",c),this.addListener("gridEnabledChanged",c),this.addListener("guidesEnabledChanged",c),this.addListener("pageViewChanged",c));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var n=this.createLoadMessage("load");n.xml=g;k.postMessage(JSON.stringify(n),"*")}null!=m&&m()});null!=l&&"function"===typeof l.substring&&"data:application/vnd.visio;base64,"==
-l.substring(0,34)?(n="0M8R4KGxGuE"==l.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(l.substring(l.indexOf(",")+1)),function(b){ea(b,g)},mxUtils.bind(this,function(b){this.handleError(b)}),n)):null!=l&&"function"===typeof l.substring&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(l,"")?this.isOffline()?this.showError(mxResources.get("error"),mxResources.get("notInOffline")):this.parseFileData(l,mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&
-"<mxGraphModel"==b.responseText.substring(0,13)&&ea(b.responseText,g)}),""):null!=l&&"function"===typeof l.substring&&this.isLucidChartData(l)?this.convertLucidChart(l,mxUtils.bind(this,function(b){ea(b)}),mxUtils.bind(this,function(b){this.handleError(b)})):null==l||"object"!==typeof l||null==l.format||null==l.data&&null==l.url?(l=n(l),ea(l,g)):this.loadDescriptor(l,mxUtils.bind(this,function(b){ea(oa(),g)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));
-var k=window.opener||window.parent,g="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";k.postMessage(g,"*");if("json"==urlParams.proto){var n=this.editor.graph.openLink;this.editor.graph.openLink=function(b,c,d){n.apply(this,arguments);k.postMessage(JSON.stringify({event:"openLink",href:b,target:c,allowOpener:d}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar&&"1"!=urlParams.embedInline){var b=document.createElement("div");b.style.display=
-"inline-block";b.style.position="absolute";b.style.paddingTop="atlas"==uiTheme||"1"==urlParams.atlas?"2px":"0px";b.style.paddingLeft="8px";b.style.paddingBottom="2px";var c=document.createElement("button");c.className="geBigButton";var d=c;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var e="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(c,e);c.setAttribute("title",e);mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));
-b.appendChild(c)}}else mxUtils.write(c,mxResources.get("save")),c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,
-"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),b.appendChild(c),d=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),d="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,d),c.setAttribute("title",d),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),d=c);d.style.marginRight="20px";this.toolbar.container.appendChild(b);
-this.toolbar.staticElements.push(b);b.style.right="atlas"==uiTheme||"1"==urlParams.atlas?"42px":"52px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(b){this.importCsv(b)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,
-640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};EditorUi.prototype.executeLayoutList=function(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var g=new window[b[f].layout](d);if(null!=b[f].config)for(var k in b[f].config)g[k]=b[f].config[k];this.executeLayout(function(){g.execute(d.getDefaultParent(),0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],g=[],k={};if(0<d.length){for(var l=
-{},n=this.editor.graph,z=null,y=null,B=null,C=null,A=null,G=null,D=null,E="whiteSpace=wrap;html=1;",F=null,I=null,J="",H="auto",K="auto",N=null,Q=null,L=40,W=40,X=100,S=0,M=function(){null!=c?c(R):(n.setSelectionCells(R),n.scrollCellToVisible(n.getSelectionCell()))},P=n.getFreeInsertPoint(),aa=P.x,oa=P.y,P=oa,ea=null,U="auto",I=null,ia=[],na=null,ja=null,ma=0;ma<d.length&&"#"==d[ma].charAt(0);){b=d[ma];for(ma++;ma<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[ma].charAt(0);)b=b.substring(0,b.length-
-1)+mxUtils.trim(d[ma].substring(1)),ma++;if("#"!=b.charAt(1)){var V=b.indexOf(":");if(0<V){var Z=mxUtils.trim(b.substring(1,V)),O=mxUtils.trim(b.substring(V+1));"label"==Z?ea=n.sanitizeHtml(O):"labelname"==Z&&0<O.length&&"-"!=O?A=O:"labels"==Z&&0<O.length&&"-"!=O?D=JSON.parse(O):"style"==Z?y=O:"parentstyle"==Z?E=O:"unknownStyle"==Z&&"-"!=O?G=O:"stylename"==Z&&0<O.length&&"-"!=O?C=O:"styles"==Z&&0<O.length&&"-"!=O?B=JSON.parse(O):"vars"==Z&&0<O.length&&"-"!=O?z=JSON.parse(O):"identity"==Z&&0<O.length&&
-"-"!=O?F=O:"parent"==Z&&0<O.length&&"-"!=O?I=O:"namespace"==Z&&0<O.length&&"-"!=O?J=O:"width"==Z?H=O:"height"==Z?K=O:"left"==Z&&0<O.length?N=O:"top"==Z&&0<O.length?Q=O:"ignore"==Z?ja=O.split(","):"connect"==Z?ia.push(JSON.parse(O)):"link"==Z?na=O:"padding"==Z?S=parseFloat(O):"edgespacing"==Z?L=parseFloat(O):"nodespacing"==Z?W=parseFloat(O):"levelspacing"==Z?X=parseFloat(O):"layout"==Z&&(U=O)}}}if(null==d[ma])throw Error(mxResources.get("invalidOrMissingFile"));for(var fa=this.editor.csvToArray(d[ma]),
-Z=V=null,O=[],Y=0;Y<fa.length;Y++)F==fa[Y]&&(V=Y),I==fa[Y]&&(Z=Y),O.push(mxUtils.trim(fa[Y]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==ea&&(ea="%"+O[0]+"%");if(null!=ia)for(var ca=0;ca<ia.length;ca++)null==l[ia[ca].to]&&(l[ia[ca].to]={});F=[];for(Y=ma+1;Y<d.length;Y++){var pa=this.editor.csvToArray(d[Y]);if(null==pa){var ra=40<d[Y].length?d[Y].substring(0,40)+"...":d[Y];throw Error(ra+" ("+Y+"):\n"+mxResources.get("containsValidationErrors"));}0<pa.length&&F.push(pa)}n.model.beginUpdate();
-try{for(Y=0;Y<F.length;Y++){var pa=F[Y],T=null,ka=null!=V?J+pa[V]:null;null!=ka&&(T=n.model.getCell(ka));var d=null!=T,ga=new mxCell(ea,new mxGeometry(aa,P,0,0),y||"whiteSpace=wrap;html=1;");ga.vertex=!0;ga.id=ka;for(var da=0;da<pa.length;da++)n.setAttributeForCell(ga,O[da],pa[da]);if(null!=A&&null!=D){var sa=D[ga.getAttribute(A)];null!=sa&&n.labelChanged(ga,sa)}if(null!=C&&null!=B){var ha=B[ga.getAttribute(C)];null!=ha&&(ga.style=ha)}n.setAttributeForCell(ga,"placeholders","1");ga.style=n.replacePlaceholders(ga,
-ga.style,z);d?(0>mxUtils.indexOf(g,T)&&g.push(T),n.fireEvent(new mxEventObject("cellsInserted","cells",[T]))):n.fireEvent(new mxEventObject("cellsInserted","cells",[ga]));T=ga;if(!d)for(ca=0;ca<ia.length;ca++)l[ia[ca].to][T.getAttribute(ia[ca].to)]=T;null!=na&&"link"!=na&&(n.setLinkForCell(T,T.getAttribute(na)),n.setAttributeForCell(T,na,null));var qa=this.editor.graph.getPreferredSizeForCell(T),I=null!=Z?n.model.getCell(J+pa[Z]):null;if(T.vertex){ra=null!=I?0:aa;ma=null!=I?0:oa;null!=N&&null!=T.getAttribute(N)&&
-(T.geometry.x=ra+parseFloat(T.getAttribute(N)));null!=Q&&null!=T.getAttribute(Q)&&(T.geometry.y=ma+parseFloat(T.getAttribute(Q)));var la="@"==H.charAt(0)?T.getAttribute(H.substring(1)):null;T.geometry.width=null!=la&&"auto"!=la?parseFloat(T.getAttribute(H.substring(1))):"auto"==H||"auto"==la?qa.width+S:parseFloat(H);var ta="@"==K.charAt(0)?T.getAttribute(K.substring(1)):null;T.geometry.height=null!=ta&&"auto"!=ta?parseFloat(ta):"auto"==K||"auto"==ta?qa.height+S:parseFloat(K);P+=T.geometry.height+
-W}d?(null==k[ka]&&(k[ka]=[]),k[ka].push(T)):(e.push(T),null!=I?(I.style=n.replacePlaceholders(I,E,z),n.addCell(T,I),f.push(I)):g.push(n.addCell(T)))}for(Y=0;Y<f.length;Y++)la="@"==H.charAt(0)?f[Y].getAttribute(H.substring(1)):null,ta="@"==K.charAt(0)?f[Y].getAttribute(K.substring(1)):null,"auto"!=H&&"auto"!=la||"auto"!=K&&"auto"!=ta||n.updateGroupBounds([f[Y]],S,!0);for(var ba=g.slice(),R=g.slice(),ca=0;ca<ia.length;ca++)for(var ya=ia[ca],Y=0;Y<e.length;Y++){var T=e[Y],za=mxUtils.bind(this,function(b,
-c,d){var e=c.getAttribute(d.from);if(null!=e&&""!=e)for(var e=e.split(","),f=0;f<e.length;f++){var k=l[d.to][e[f]];if(null==k&&null!=G){k=new mxCell(e[f],new mxGeometry(aa,oa,0,0),G);k.style=n.replacePlaceholders(c,k.style,z);var m=this.editor.graph.getPreferredSizeForCell(k);k.geometry.width=m.width+S;k.geometry.height=m.height+S;l[d.to][e[f]]=k;k.vertex=!0;k.id=e[f];g.push(n.addCell(k))}if(null!=k){m=d.label;null!=d.fromlabel&&(m=(c.getAttribute(d.fromlabel)||"")+(m||""));null!=d.sourcelabel&&(m=
-n.replacePlaceholders(c,d.sourcelabel,z)+(m||""));null!=d.tolabel&&(m=(m||"")+(k.getAttribute(d.tolabel)||""));null!=d.targetlabel&&(m=(m||"")+n.replacePlaceholders(k,d.targetlabel,z));var p="target"==d.placeholders==!d.invert?k:b,p=null!=d.style?n.replacePlaceholders(p,d.style,z):n.createCurrentEdgeStyle(),m=n.insertEdge(null,null,m||"",d.invert?k:b,d.invert?b:k,p);if(null!=d.labels)for(p=0;p<d.labels.length;p++){var q=d.labels[p],t=new mxCell(q.label||p,new mxGeometry(null!=q.x?q.x:0,null!=q.y?
-q.y:0,0,0),"resizable=0;html=1;");t.vertex=!0;t.connectable=!1;t.geometry.relative=!0;null!=q.placeholders&&(t.value=n.replacePlaceholders("target"==q.placeholders==!d.invert?k:b,t.value,z));if(null!=q.dx||null!=q.dy)t.geometry.offset=new mxPoint(null!=q.dx?q.dx:0,null!=q.dy?q.dy:0);m.insert(t)}R.push(m);mxUtils.remove(d.invert?b:k,ba)}}});za(T,T,ya);if(null!=k[T.id])for(da=0;da<k[T.id].length;da++)za(T,k[T.id][da],ya)}if(null!=ja)for(Y=0;Y<e.length;Y++)for(T=e[Y],da=0;da<ja.length;da++)n.setAttributeForCell(T,
-mxUtils.trim(ja[da]),null);if(0<g.length){var ua=new mxParallelEdgeLayout(n);ua.spacing=L;ua.checkOverlap=!0;var va=function(){0<ua.spacing&&ua.execute(n.getDefaultParent());for(var b=0;b<g.length;b++){var c=n.getCellGeometry(g[b]);c.x=Math.round(n.snap(c.x));c.y=Math.round(n.snap(c.y));"auto"==H&&(c.width=Math.round(n.snap(c.width)));"auto"==K&&(c.height=Math.round(n.snap(c.height)))}};if("["==U.charAt(0)){var xa=M;n.view.validate();this.executeLayoutList(JSON.parse(U),function(){va();xa()});M=null}else if("circle"==
-U){var wa=new mxCircleLayout(n);wa.disableEdgeStyle=!1;wa.resetEdges=!1;var Ca=wa.isVertexIgnored;wa.isVertexIgnored=function(b){return Ca.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){wa.execute(n.getDefaultParent());va()},!0,M);M=null}else if("horizontaltree"==U||"verticaltree"==U||"auto"==U&&R.length==2*g.length-1&&1==ba.length){n.view.validate();var Da=new mxCompactTreeLayout(n,"horizontaltree"==U);Da.levelDistance=W;Da.edgeRouting=!1;Da.resetEdges=!1;this.executeLayout(function(){Da.execute(n.getDefaultParent(),
-0<ba.length?ba[0]:null)},!0,M);M=null}else if("horizontalflow"==U||"verticalflow"==U||"auto"==U&&1==ba.length){n.view.validate();var Aa=new mxHierarchicalLayout(n,"horizontalflow"==U?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);Aa.intraCellSpacing=W;Aa.parallelEdgeSpacing=L;Aa.interRankCellSpacing=X;Aa.disableEdgeStyle=!1;this.executeLayout(function(){Aa.execute(n.getDefaultParent(),R);n.moveCells(R,aa,oa)},!0,M);M=null}else if("organic"==U||"auto"==U&&R.length>g.length){n.view.validate();
-var Ba=new mxFastOrganicLayout(n);Ba.forceConstant=3*W;Ba.disableEdgeStyle=!1;Ba.resetEdges=!1;var Fa=Ba.isVertexIgnored;Ba.isVertexIgnored=function(b){return Fa.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){Ba.execute(n.getDefaultParent());va()},!0,M);M=null}}this.hideDialog()}finally{n.model.endUpdate()}null!=M&&M()}}catch(Ea){this.handleError(Ea)}};EditorUi.prototype.getSearch=function(b){var c="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var d=
-"?",e;for(e in urlParams)0>mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(c+=d+e+"="+urlParams[e],d="&")}else c=window.location.search;return c};EditorUi.prototype.getUrl=function(b){b=null!=b?b:window.location.pathname;var c=0<b.indexOf("?")?1:0;if("1"==urlParams.offline)b+=window.location.search;else{var d="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),e;for(e in urlParams)0>mxUtils.indexOf(d,e)&&(b=0==c?b+"?":b+"&",null!=urlParams[e]&&(b+=e+"="+
-urlParams[e],c++))}return b};EditorUi.prototype.showLinkDialog=function(b,c,d,e,g){b=new LinkDialog(this,b,c,d,!0,e,g);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=function(b){var c=1;null==this.drive&&"function"!==typeof window.DriveClient||c++;null==this.dropbox&&"function"!==typeof window.DropboxClient||c++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||c++;null!=this.gitHub&&c++;null!=this.gitLab&&c++;b&&isLocalStorage&&"1"==urlParams.browser&&
-c++;return c};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var b=this.getCurrentFile(),c=null!=b||"1"==urlParams.embed&&this.editor.graph.isEnabled();this.menus.get("viewPanels").setEnabled(c);this.menus.get("viewZoom").setEnabled(c);var d=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==b||b.isRestricted());this.actions.get("makeCopy").setEnabled(!d);this.actions.get("print").setEnabled(!d);this.menus.get("exportAs").setEnabled(!d);this.menus.get("embed").setEnabled(!d);
-d="1"!=urlParams.embed||this.editor.graph.isEnabled();this.menus.get("extras").setEnabled(d);Editor.enableCustomLibraries&&(this.menus.get("openLibraryFrom").setEnabled(d),this.menus.get("newLibrary").setEnabled(d));b="1"==urlParams.embed&&this.editor.graph.isEnabled()||null!=b&&b.isEditable();this.actions.get("image").setEnabled(c);this.actions.get("zoomIn").setEnabled(c);this.actions.get("zoomOut").setEnabled(c);this.actions.get("resetView").setEnabled(c);this.actions.get("undo").setEnabled(this.canUndo()&&
-b);this.actions.get("redo").setEnabled(this.canRedo()&&b);this.menus.get("edit").setEnabled(c);this.menus.get("view").setEnabled(c);this.menus.get("importFrom").setEnabled(b);this.menus.get("arrange").setEnabled(b);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(b),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(b));this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=
-function(){};EditorUi.prototype.scheduleSanityCheck=function(){};EditorUi.prototype.stopSanityCheck=function(){};EditorUi.prototype.isDiagramActive=function(){var b=this.getCurrentFile();return null!=b&&b.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnabled()};var k=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){k.apply(this,arguments);var b=this.editor.graph,c=this.getCurrentFile(),d=this.getSelectionState(),e=this.isDiagramActive();this.actions.get("pageSetup").setEnabled(e);
-this.actions.get("autosave").setEnabled(null!=c&&c.isEditable()&&c.isAutosaveOptional());this.actions.get("guides").setEnabled(e);this.actions.get("editData").setEnabled(b.isEnabled());this.actions.get("shadowVisible").setEnabled(e);this.actions.get("connectionArrows").setEnabled(e);this.actions.get("connectionPoints").setEnabled(e);this.actions.get("copyStyle").setEnabled(e&&!b.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(e&&0<d.cells.length);this.actions.get("editGeometry").setEnabled(0<
-d.vertices.length);this.actions.get("createShape").setEnabled(e);this.actions.get("createRevision").setEnabled(e);this.actions.get("moveToFolder").setEnabled(null!=c);this.actions.get("makeCopy").setEnabled(null!=c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(e&&(null==c||!c.isRestricted()));this.actions.get("publishLink").setEnabled(null!=c&&!c.isRestricted());this.actions.get("tags").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("layers").setEnabled("hidden"!=
-this.diagramContainer.style.visibility);this.actions.get("outline").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("rename").setEnabled(null!=c&&c.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=c&&!c.isRestricted());c=this.actions.get("findReplace");c.setEnabled("hidden"!=this.diagramContainer.style.visibility);c.label=mxResources.get("find")+(b.isEnabled()?"/"+mxResources.get("replace"):
-"")+"...";b=b.view.getState(b.getSelectionCell());this.actions.get("editShape").setEnabled(e&&null!=b&&null!=b.shape&&null!=b.shape.stencil)};var n=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);n.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(b,c,d,e,g,k,n,u){var f=b.editor.graph;
-if("xml"==d)b.hideDialog(),b.saveData(c,"xml",mxUtils.getXml(b.editor.getGraphXml()),"text/xml");else if("svg"==d)b.hideDialog(),b.saveData(c,"svg",mxUtils.getXml(f.getSvg(e,g,k)),"image/svg+xml");else{var l=b.getFileData(!0,null,null,null,null,!0),m=f.getGraphBounds(),p=Math.floor(m.width*g/f.view.scale),q=Math.floor(m.height*g/f.view.scale);if(l.length<=MAX_REQUEST_SIZE&&p*q<MAX_AREA)if(b.hideDialog(),"png"!=d&&"jpg"!=d&&"jpeg"!=d||!b.isExportToCanvas()){var t={globalVars:f.getExportVariables()};
-u&&(t.grid={size:f.gridSize,steps:f.view.gridSteps,color:f.view.gridColor});b.saveRequest(c,d,function(b,c){return new mxXmlRequest(EXPORT_URL,"format="+d+"&base64="+(c||"0")+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(t))+(0<n?"&dpi="+n:"")+"&bg="+(null!=e?e:"none")+"&w="+p+"&h="+q+"&border="+k+"&xml="+encodeURIComponent(l))})}else"png"==d?b.exportImage(g,null==e||"none"==e,!0,!1,!1,k,!0,!1,null,u,n):b.exportImage(g,!1,!0,!1,!1,k,!0,!1,"jpeg",u);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});
-EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=this.pages)for(var d=0;d<this.pages.length;d++){var e=b;this.currentPage!=this.pages[d]&&(e=this.createTemporaryGraph(b.getStylesheet()),this.updatePageRoot(this.pages[d]),e.model.setRoot(this.pages[d].root));c+=this.pages[d].getName()+" "+e.getIndexableText()+" "}else c=b.getIndexableText();this.editor.graph.setEnabled(!0);return c};EditorUi.prototype.showRemotelyStoredLibrary=
-function(b){var c={},d=document.createElement("div");d.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxUtils.htmlEntities(b));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(e);var f=document.createElement("div");f.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";f.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var g={};try{var k=mxSettings.getCustomLibraries();
-for(b=0;b<k.length;b++){var n=k[b];if("R"==n.substring(0,1)){var x=JSON.parse(decodeURIComponent(n.substring(1)));g[x[0]]={id:x[0],title:x[1],downloadUrl:x[2]}}}}catch(z){}this.remoteInvoke("getCustomLibraries",null,null,function(b){f.innerHTML="";if(0==b.length)f.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var d=0;d<b.length;d++){var e=b[d];g[e.id]&&(c[e.id]=e);var k=this.addCheckbox(f,e.title,g[e.id]);
-(function(b,d){mxEvent.addListener(d,"change",function(){this.checked?c[b.id]=b:delete c[b.id]})})(e,k)}},mxUtils.bind(this,function(b){f.innerHTML="";var c=document.createElement("div");c.style.padding="8px";c.style.textAlign="center";mxUtils.write(c,mxResources.get("error")+": ");mxUtils.write(c,null!=b&&null!=b.message?b.message:mxResources.get("unknownError"));f.appendChild(c)}));d.appendChild(f);d=new CustomDialog(this,d,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));
-var b=0,d;for(d in c)null==g[d]&&(b++,mxUtils.bind(this,function(c){this.remoteInvoke("getFileContent",[c.downloadUrl],null,mxUtils.bind(this,function(d){b--;0==b&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,d,c))}catch(A){this.handleError(A,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){b--;0==b&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(c[d]));for(d in g)c[d]||this.closeLibrary(new RemoteLibrary(this,null,g[d]));
-0==b&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(d.container,340,390,!0,!0,null,null,null,null,!0)};EditorUi.prototype.remoteInvokableFns={getDiagramTextContent:{isAsync:!1},getLocalStorageFile:{isAsync:!1,allowedDomains:["app.diagrams.net"]},getLocalStorageFileNames:{isAsync:!1,allowedDomains:["app.diagrams.net"]},setMigratedFlag:{isAsync:!1,allowedDomains:["app.diagrams.net"]}};EditorUi.prototype.remoteInvokeCallbacks=[];
-EditorUi.prototype.remoteInvokeQueue=[];EditorUi.prototype.handleRemoteInvokeReady=function(b){this.remoteWin=b;for(var c=0;c<this.remoteInvokeQueue.length;c++)b.postMessage(this.remoteInvokeQueue[c],"*");this.remoteInvokeQueue=[]};EditorUi.prototype.handleRemoteInvokeResponse=function(b){var c=b.msgMarkers,d=this.remoteInvokeCallbacks[c.callbackId];if(null==d)throw Error("No callback for "+(null!=c?c.callbackId:"null"));b.error?d.error&&d.error(b.error.errResp):d.callback&&d.callback.apply(this,
-b.resp);this.remoteInvokeCallbacks[c.callbackId]=null};EditorUi.prototype.remoteInvoke=function(b,c,d,e,g){var f=!0,k=window.setTimeout(mxUtils.bind(this,function(){f=!1;g({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.timeout),l=mxUtils.bind(this,function(){window.clearTimeout(k);f&&e.apply(this,arguments)}),m=mxUtils.bind(this,function(){window.clearTimeout(k);f&&g.apply(this,arguments)});d=d||{};d.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:l,
-error:m});b=JSON.stringify({event:"remoteInvoke",funtionName:b,functionArgs:c,msgMarkers:d});null!=this.remoteWin?this.remoteWin.postMessage(b,"*"):this.remoteInvokeQueue.push(b)};EditorUi.prototype.handleRemoteInvoke=function(b,c){var d=mxUtils.bind(this,function(c,d){var e={event:"remoteInvokeResponse",msgMarkers:b.msgMarkers};null!=d?e.error={errResp:d}:null!=c&&(e.resp=c);this.remoteWin.postMessage(JSON.stringify(e),"*")});try{var e=b.funtionName,f=this.remoteInvokableFns[e];if(null!=f&&"function"===
-typeof this[e]){if(f.allowedDomains){for(var g=!1,k=0;k<f.allowedDomains.length;k++)if(c=="https://"+f.allowedDomains[k]){g=!0;break}if(!g){d(null,"Invalid Call: "+e+" is not allowed.");return}}var l=b.functionArgs;Array.isArray(l)||(l=[]);if(f.isAsync)l.push(function(){d(Array.prototype.slice.apply(arguments))}),l.push(function(b){d(null,b||"Unkown Error")}),this[e].apply(this,l);else{var n=this[e].apply(this,l);d([n])}}else d(null,"Invalid Call: "+e+" is not found.")}catch(z){d(null,"Invalid Call: An error occurred, "+
-z.message)}};EditorUi.prototype.openDatabase=function(b,c){if(null==this.database){var d=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=d)try{var e=d.open("database",2);e.onupgradeneeded=function(b){try{var d=e.result;1>b.oldVersion&&d.createObjectStore("objects",{keyPath:"key"});2>b.oldVersion&&(d.createObjectStore("files",{keyPath:"title"}),d.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(v){null!=c&&c(v)}};e.onsuccess=
-mxUtils.bind(this,function(c){var d=e.result;this.database=d;EditorUi.migrateStorageFiles&&(StorageFile.migrate(d),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(b){if(!b||"1"==urlParams.forceMigration){var c=document.createElement("iframe");c.style.display="none";c.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+urlParams.forceMigration);
-document.body.appendChild(c);var d=!0,e=!1,f,g=0,k=mxUtils.bind(this,function(){e=!0;this.setDatabaseItem(".drawioMigrated3",!0);c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"setMigratedFlag"}),"*")}),l=mxUtils.bind(this,function(){g++;m()}),m=mxUtils.bind(this,function(){try{if(g>=f.length)k();else{var b=f[g];StorageFile.getFileContent(this,b,mxUtils.bind(this,function(d){null==d||".scratchpad"==b&&d==this.emptyLibraryXml?c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",
-funtionName:"getLocalStorageFile",functionArgs:[b]}),"*"):l()}),l)}}catch(F){console.log(F)}}),n=mxUtils.bind(this,function(b){try{this.setDatabaseItem(null,[{title:b.title,size:b.data.length,lastModified:Date.now(),type:b.isLib?"L":"F"},{title:b.title,data:b.data}],l,l,["filesInfo","files"])}catch(F){console.log(F)}});b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var g={};try{g=JSON.parse(b.data)}catch(I){}"init"==g.event?(c.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),
-"*"),c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=g.event||e||(d?null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?(f=g.resp[0],d=!1,m()):k():null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?n(g.resp[0]):l())}}catch(I){console.log(I)}});window.addEventListener("message",b)}})));b(d);d.onversionchange=function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(q){null!=c&&c(q)}else null!=c&&c()}else b(this.database)};
-EditorUi.prototype.setDatabaseItem=function(b,c,d,e,g){this.openDatabase(mxUtils.bind(this,function(f){try{g=g||"objects";Array.isArray(g)||(g=[g],b=[b],c=[c]);var k=f.transaction(g,"readwrite");k.oncomplete=d;k.onerror=e;for(f=0;f<g.length;f++)k.objectStore(g[f]).put(null!=b&&null!=b[f]?{key:b[f],data:c[f]}:c[f])}catch(u){null!=e&&e(u)}}),e)};EditorUi.prototype.removeDatabaseItem=function(b,c,d,e){this.openDatabase(mxUtils.bind(this,function(f){e=e||"objects";Array.isArray(e)||(e=[e],b=[b]);f=f.transaction(e,
-"readwrite");f.oncomplete=c;f.onerror=d;for(var g=0;g<e.length;g++)f.objectStore(e[g])["delete"](b[g])}),d)};EditorUi.prototype.getDatabaseItem=function(b,c,d,e){this.openDatabase(mxUtils.bind(this,function(f){try{e=e||"objects";var g=f.transaction([e],"readonly").objectStore(e).get(b);g.onsuccess=function(){c(g.result)};g.onerror=d}catch(v){null!=d&&d(v)}}),d)};EditorUi.prototype.getDatabaseItems=function(b,c,d){this.openDatabase(mxUtils.bind(this,function(e){try{d=d||"objects";var f=e.transaction([d],
-"readonly").objectStore(d).openCursor(IDBKeyRange.lowerBound(0)),g=[];f.onsuccess=function(c){null==c.target.result?b(g):(g.push(c.target.result.value),c.target.result["continue"]())};f.onerror=c}catch(v){null!=c&&c(v)}}),c)};EditorUi.prototype.getDatabaseItemKeys=function(b,c,d){this.openDatabase(mxUtils.bind(this,function(e){try{d=d||"objects";var f=e.transaction([d],"readonly").objectStore(d).getAllKeys();f.onsuccess=function(){b(f.result)};f.onerror=c}catch(t){null!=c&&c(t)}}),c)};EditorUi.prototype.commentsSupported=
-function(){var b=this.getCurrentFile();return null!=b?b.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsRefreshNeeded():!0};EditorUi.prototype.commentsSaveNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsSaveNeeded():!1};EditorUi.prototype.getComments=function(b,c){var d=this.getCurrentFile();null!=d?d.getComments(b,c):b([])};EditorUi.prototype.addComment=function(b,c,d){var e=this.getCurrentFile();
-null!=e?e.addComment(b,c,d):c(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var b=this.getCurrentFile();return null!=b?b.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var b=this.getCurrentFile();return null!=b?b.canComment():!0};EditorUi.prototype.newComment=function(b,c){var d=this.getCurrentFile();return null!=d?d.newComment(b,c):new DrawioComment(this,null,b,Date.now(),Date.now(),!1,c)};EditorUi.prototype.isRevisionHistorySupported=function(){var b=this.getCurrentFile();
-return null!=b&&b.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(b,c){var d=this.getCurrentFile();null!=d&&d.getRevisions?d.getRevisions(b,c):c({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var b=this.getCurrentFile();return null!=b&&(b.constructor==DriveFile&&b.isEditable()||b.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(b){b.setRequestHeader("Content-Language",
-"da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(b,c,d,e,g,k,n,u){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(b,c,d,e,g,k,n,u)};EditorUi.prototype.loadFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(b)};EditorUi.prototype.createSvgDataUri=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(b)};EditorUi.prototype.embedCssFonts=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");
-return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,d,e,g,k,n,u,x,z,y,B,C,A,G,D){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,d,e,g,k,n,u,x,z,y,B,C,A,G,D)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");
-return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(b,c,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");return this.editor.convertImages(b,c,d,e)};EditorUi.prototype.convertImageToDataUri=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(b,c)};EditorUi.prototype.base64Encode=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(b)};EditorUi.prototype.updateCRC=
-function(b,c,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(b,c,d,e)};EditorUi.prototype.crc32=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");return Editor.crc32(b)};EditorUi.prototype.writeGraphModelToPng=function(b,c,d,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(b,c,d,e,g)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=
-urlParams.forceMigration)return null;for(var b=[],c=0;c<localStorage.length;c++){var d=localStorage.key(c),e=localStorage.getItem(d);if(0<d.length&&(".scratchpad"==d||"."!=d.charAt(0))&&0<e.length){var g="<mxfile "===e.substring(0,8)||"<?xml"===e.substring(0,5)||"\x3c!--[if IE]>"===e.substring(0,12),e="<mxlibrary>"===e.substring(0,11);(g||e)&&b.push(d)}}return b};EditorUi.prototype.getLocalStorageFile=function(b){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;
-var c=localStorage.getItem(b);return{title:b,data:c,isLib:"<mxlibrary>"===c.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
+null!=l.border&&(this.embedExportBorder=l.border);null!=l.background&&(this.embedExportBackground=l.background);null!=l.viewport&&(this.embedViewport=l.viewport);this.embedExitPoint=null;if(null!=l.rect){var O=this.embedExportBorder;this.diagramContainer.style.border="2px solid #295fcc";this.diagramContainer.style.top=l.rect.top+"px";this.diagramContainer.style.left=l.rect.left+"px";this.diagramContainer.style.height=l.rect.height+"px";this.diagramContainer.style.width=l.rect.width+"px";this.diagramContainer.style.bottom=
+"";this.diagramContainer.style.right="";m=mxUtils.bind(this,function(){var b=this.editor.graph,c=b.maxFitScale;b.maxFitScale=l.maxFitScale;b.fit(2*O);b.maxFitScale=c;b.container.scrollTop-=2*O;b.container.scrollLeft-=2*O;this.fireEvent(new mxEventObject("editInlineStart","data",[l]))})}null!=l.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=l.noExitBtn);null!=l.title&&null!=this.buttonContainer&&(t=document.createElement("span"),t.style.marginLeft="4px",mxUtils.write(t,l.title),null!=this.embedFilenameSpan&&
+this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(t),this.embedFilenameSpan=t);try{l.libs&&this.sidebar.showEntries(l.libs)}catch(U){}l=null!=l.xmlpng?this.extractGraphModelFromPng(l.xmlpng):null!=l.descriptor?l.descriptor:l.xml}else{if("merge"==l.action){var aa=this.getCurrentFile();null!=aa&&(t=p(l.xml),null!=t&&""!=t&&aa.mergeFile(new LocalFile(this,t),function(){k.postMessage(JSON.stringify({event:"merge",message:l}),"*")},function(b){k.postMessage(JSON.stringify({event:"merge",
+message:l,error:b}),"*")}))}else"remoteInvokeReady"==l.action?this.handleRemoteInvokeReady(k):"remoteInvoke"==l.action?this.handleRemoteInvoke(l,g.origin):"remoteInvokeResponse"==l.action?this.handleRemoteInvokeResponse(l):k.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(l)}),"*");return}}catch(U){this.handleError(U)}}var ja=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),
+fa=mxUtils.bind(this,function(g,l){d=!0;try{b(g,l,null,n)}catch(la){this.handleError(la)}d=!1;null!=urlParams.modified&&this.editor.setStatus("");e=ja();f&&null==c&&(c=mxUtils.bind(this,function(b,c){var f=ja();if(f!=e&&!d){var g=this.createLoadMessage("autosave");g.xml=f;(window.opener||window.parent).postMessage(JSON.stringify(g),"*")}e=f}),this.editor.graph.model.addListener(mxEvent.CHANGE,c),this.editor.graph.addListener("gridSizeChanged",c),this.editor.graph.addListener("shadowVisibleChanged",
+c),this.addListener("pageFormatChanged",c),this.addListener("pageScaleChanged",c),this.addListener("backgroundColorChanged",c),this.addListener("backgroundImageChanged",c),this.addListener("foldingEnabledChanged",c),this.addListener("mathEnabledChanged",c),this.addListener("gridEnabledChanged",c),this.addListener("guidesEnabledChanged",c),this.addListener("pageViewChanged",c));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var p=this.createLoadMessage("load");p.xml=g;k.postMessage(JSON.stringify(p),
+"*")}null!=m&&m()});null!=l&&"function"===typeof l.substring&&"data:application/vnd.visio;base64,"==l.substring(0,34)?(p="0M8R4KGxGuE"==l.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(l.substring(l.indexOf(",")+1)),function(b){fa(b,g)},mxUtils.bind(this,function(b){this.handleError(b)}),p)):null!=l&&"function"===typeof l.substring&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(l,"")?this.isOffline()?this.showError(mxResources.get("error"),mxResources.get("notInOffline")):
+this.parseFileData(l,mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&"<mxGraphModel"==b.responseText.substring(0,13)&&fa(b.responseText,g)}),""):null!=l&&"function"===typeof l.substring&&this.isLucidChartData(l)?this.convertLucidChart(l,mxUtils.bind(this,function(b){fa(b)}),mxUtils.bind(this,function(b){this.handleError(b)})):null==l||"object"!==typeof l||null==l.format||null==l.data&&null==l.url?(l=p(l),fa(l,g)):this.loadDescriptor(l,mxUtils.bind(this,function(b){fa(ja(),
+g)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var k=window.opener||window.parent,g="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";k.postMessage(g,"*");if("json"==urlParams.proto){var n=this.editor.graph.openLink;this.editor.graph.openLink=function(b,c,d){n.apply(this,arguments);k.postMessage(JSON.stringify({event:"openLink",href:b,target:c,allowOpener:d}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=
+this.menubar&&"1"!=urlParams.embedInline){var b=document.createElement("div");b.style.display="inline-block";b.style.position="absolute";b.style.paddingTop="atlas"==uiTheme||"1"==urlParams.atlas?"2px":"0px";b.style.paddingLeft="8px";b.style.paddingBottom="2px";var c=document.createElement("button");c.className="geBigButton";var d=c;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var e="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(c,
+e);c.setAttribute("title",e);mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));b.appendChild(c)}}else mxUtils.write(c,mxResources.get("save")),c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",
+mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),b.appendChild(c),d=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),d="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,d),c.setAttribute("title",d),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,
+"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),d=c);d.style.marginRight="20px";this.toolbar.container.appendChild(b);this.toolbar.staticElements.push(b);b.style.right="atlas"==uiTheme||"1"==urlParams.atlas?"42px":"52px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(b){this.importCsv(b)}),null,null,620,
+430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};EditorUi.prototype.executeLayoutList=function(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var g=new window[b[f].layout](d);if(null!=b[f].config)for(var k in b[f].config)g[k]=b[f].config[k];this.executeLayout(function(){g.execute(d.getDefaultParent(),
+0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],g=[],k={};if(0<d.length){for(var l={},n=this.editor.graph,z=null,y=null,B=null,C=null,A=null,F=null,D=null,E="whiteSpace=wrap;html=1;",G=null,J=null,K="",H="auto",I="auto",N=null,R=null,L=40,W=40,X=100,S=0,M=function(){null!=c?c(Q):(n.setSelectionCells(Q),n.scrollCellToVisible(n.getSelectionCell()))},O=n.getFreeInsertPoint(),aa=O.x,ja=O.y,O=ja,fa=null,U="auto",J=null,ia=[],oa=null,
+la=null,na=0;na<d.length&&"#"==d[na].charAt(0);){b=d[na];for(na++;na<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[na].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[na].substring(1)),na++;if("#"!=b.charAt(1)){var V=b.indexOf(":");if(0<V){var Z=mxUtils.trim(b.substring(1,V)),P=mxUtils.trim(b.substring(V+1));"label"==Z?fa=n.sanitizeHtml(P):"labelname"==Z&&0<P.length&&"-"!=P?A=P:"labels"==Z&&0<P.length&&"-"!=P?D=JSON.parse(P):"style"==Z?y=P:"parentstyle"==Z?E=P:"unknownStyle"==Z&&"-"!=P?F=P:"stylename"==
+Z&&0<P.length&&"-"!=P?C=P:"styles"==Z&&0<P.length&&"-"!=P?B=JSON.parse(P):"vars"==Z&&0<P.length&&"-"!=P?z=JSON.parse(P):"identity"==Z&&0<P.length&&"-"!=P?G=P:"parent"==Z&&0<P.length&&"-"!=P?J=P:"namespace"==Z&&0<P.length&&"-"!=P?K=P:"width"==Z?H=P:"height"==Z?I=P:"left"==Z&&0<P.length?N=P:"top"==Z&&0<P.length?R=P:"ignore"==Z?la=P.split(","):"connect"==Z?ia.push(JSON.parse(P)):"link"==Z?oa=P:"padding"==Z?S=parseFloat(P):"edgespacing"==Z?L=parseFloat(P):"nodespacing"==Z?W=parseFloat(P):"levelspacing"==
+Z?X=parseFloat(P):"layout"==Z&&(U=P)}}}if(null==d[na])throw Error(mxResources.get("invalidOrMissingFile"));for(var ea=this.editor.csvToArray(d[na]),Z=V=null,P=[],Y=0;Y<ea.length;Y++)G==ea[Y]&&(V=Y),J==ea[Y]&&(Z=Y),P.push(mxUtils.trim(ea[Y]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==fa&&(fa="%"+P[0]+"%");if(null!=ia)for(var ca=0;ca<ia.length;ca++)null==l[ia[ca].to]&&(l[ia[ca].to]={});G=[];for(Y=na+1;Y<d.length;Y++){var pa=this.editor.csvToArray(d[Y]);if(null==pa){var ra=
+40<d[Y].length?d[Y].substring(0,40)+"...":d[Y];throw Error(ra+" ("+Y+"):\n"+mxResources.get("containsValidationErrors"));}0<pa.length&&G.push(pa)}n.model.beginUpdate();try{for(Y=0;Y<G.length;Y++){var pa=G[Y],T=null,ka=null!=V?K+pa[V]:null;null!=ka&&(T=n.model.getCell(ka));var d=null!=T,ga=new mxCell(fa,new mxGeometry(aa,O,0,0),y||"whiteSpace=wrap;html=1;");ga.vertex=!0;ga.id=ka;for(var da=0;da<pa.length;da++)n.setAttributeForCell(ga,P[da],pa[da]);if(null!=A&&null!=D){var sa=D[ga.getAttribute(A)];
+null!=sa&&n.labelChanged(ga,sa)}if(null!=C&&null!=B){var ha=B[ga.getAttribute(C)];null!=ha&&(ga.style=ha)}n.setAttributeForCell(ga,"placeholders","1");ga.style=n.replacePlaceholders(ga,ga.style,z);d?(0>mxUtils.indexOf(g,T)&&g.push(T),n.fireEvent(new mxEventObject("cellsInserted","cells",[T]))):n.fireEvent(new mxEventObject("cellsInserted","cells",[ga]));T=ga;if(!d)for(ca=0;ca<ia.length;ca++)l[ia[ca].to][T.getAttribute(ia[ca].to)]=T;null!=oa&&"link"!=oa&&(n.setLinkForCell(T,T.getAttribute(oa)),n.setAttributeForCell(T,
+oa,null));var qa=this.editor.graph.getPreferredSizeForCell(T),J=null!=Z?n.model.getCell(K+pa[Z]):null;if(T.vertex){ra=null!=J?0:aa;na=null!=J?0:ja;null!=N&&null!=T.getAttribute(N)&&(T.geometry.x=ra+parseFloat(T.getAttribute(N)));null!=R&&null!=T.getAttribute(R)&&(T.geometry.y=na+parseFloat(T.getAttribute(R)));var ma="@"==H.charAt(0)?T.getAttribute(H.substring(1)):null;T.geometry.width=null!=ma&&"auto"!=ma?parseFloat(T.getAttribute(H.substring(1))):"auto"==H||"auto"==ma?qa.width+S:parseFloat(H);var ta=
+"@"==I.charAt(0)?T.getAttribute(I.substring(1)):null;T.geometry.height=null!=ta&&"auto"!=ta?parseFloat(ta):"auto"==I||"auto"==ta?qa.height+S:parseFloat(I);O+=T.geometry.height+W}d?(null==k[ka]&&(k[ka]=[]),k[ka].push(T)):(e.push(T),null!=J?(J.style=n.replacePlaceholders(J,E,z),n.addCell(T,J),f.push(J)):g.push(n.addCell(T)))}for(Y=0;Y<f.length;Y++)ma="@"==H.charAt(0)?f[Y].getAttribute(H.substring(1)):null,ta="@"==I.charAt(0)?f[Y].getAttribute(I.substring(1)):null,"auto"!=H&&"auto"!=ma||"auto"!=I&&"auto"!=
+ta||n.updateGroupBounds([f[Y]],S,!0);for(var ba=g.slice(),Q=g.slice(),ca=0;ca<ia.length;ca++)for(var ya=ia[ca],Y=0;Y<e.length;Y++){var T=e[Y],za=mxUtils.bind(this,function(b,c,d){var e=c.getAttribute(d.from);if(null!=e&&""!=e)for(var e=e.split(","),f=0;f<e.length;f++){var k=l[d.to][e[f]];if(null==k&&null!=F){k=new mxCell(e[f],new mxGeometry(aa,ja,0,0),F);k.style=n.replacePlaceholders(c,k.style,z);var m=this.editor.graph.getPreferredSizeForCell(k);k.geometry.width=m.width+S;k.geometry.height=m.height+
+S;l[d.to][e[f]]=k;k.vertex=!0;k.id=e[f];g.push(n.addCell(k))}if(null!=k){m=d.label;null!=d.fromlabel&&(m=(c.getAttribute(d.fromlabel)||"")+(m||""));null!=d.sourcelabel&&(m=n.replacePlaceholders(c,d.sourcelabel,z)+(m||""));null!=d.tolabel&&(m=(m||"")+(k.getAttribute(d.tolabel)||""));null!=d.targetlabel&&(m=(m||"")+n.replacePlaceholders(k,d.targetlabel,z));var p="target"==d.placeholders==!d.invert?k:b,p=null!=d.style?n.replacePlaceholders(p,d.style,z):n.createCurrentEdgeStyle(),m=n.insertEdge(null,
+null,m||"",d.invert?k:b,d.invert?b:k,p);if(null!=d.labels)for(p=0;p<d.labels.length;p++){var q=d.labels[p],t=new mxCell(q.label||p,new mxGeometry(null!=q.x?q.x:0,null!=q.y?q.y:0,0,0),"resizable=0;html=1;");t.vertex=!0;t.connectable=!1;t.geometry.relative=!0;null!=q.placeholders&&(t.value=n.replacePlaceholders("target"==q.placeholders==!d.invert?k:b,t.value,z));if(null!=q.dx||null!=q.dy)t.geometry.offset=new mxPoint(null!=q.dx?q.dx:0,null!=q.dy?q.dy:0);m.insert(t)}Q.push(m);mxUtils.remove(d.invert?
+b:k,ba)}}});za(T,T,ya);if(null!=k[T.id])for(da=0;da<k[T.id].length;da++)za(T,k[T.id][da],ya)}if(null!=la)for(Y=0;Y<e.length;Y++)for(T=e[Y],da=0;da<la.length;da++)n.setAttributeForCell(T,mxUtils.trim(la[da]),null);if(0<g.length){var ua=new mxParallelEdgeLayout(n);ua.spacing=L;ua.checkOverlap=!0;var va=function(){0<ua.spacing&&ua.execute(n.getDefaultParent());for(var b=0;b<g.length;b++){var c=n.getCellGeometry(g[b]);c.x=Math.round(n.snap(c.x));c.y=Math.round(n.snap(c.y));"auto"==H&&(c.width=Math.round(n.snap(c.width)));
+"auto"==I&&(c.height=Math.round(n.snap(c.height)))}};if("["==U.charAt(0)){var xa=M;n.view.validate();this.executeLayoutList(JSON.parse(U),function(){va();xa()});M=null}else if("circle"==U){var wa=new mxCircleLayout(n);wa.disableEdgeStyle=!1;wa.resetEdges=!1;var Ca=wa.isVertexIgnored;wa.isVertexIgnored=function(b){return Ca.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){wa.execute(n.getDefaultParent());va()},!0,M);M=null}else if("horizontaltree"==U||"verticaltree"==U||
+"auto"==U&&Q.length==2*g.length-1&&1==ba.length){n.view.validate();var Da=new mxCompactTreeLayout(n,"horizontaltree"==U);Da.levelDistance=W;Da.edgeRouting=!1;Da.resetEdges=!1;this.executeLayout(function(){Da.execute(n.getDefaultParent(),0<ba.length?ba[0]:null)},!0,M);M=null}else if("horizontalflow"==U||"verticalflow"==U||"auto"==U&&1==ba.length){n.view.validate();var Aa=new mxHierarchicalLayout(n,"horizontalflow"==U?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);Aa.intraCellSpacing=W;Aa.parallelEdgeSpacing=
+L;Aa.interRankCellSpacing=X;Aa.disableEdgeStyle=!1;this.executeLayout(function(){Aa.execute(n.getDefaultParent(),Q);n.moveCells(Q,aa,ja)},!0,M);M=null}else if("organic"==U||"auto"==U&&Q.length>g.length){n.view.validate();var Ba=new mxFastOrganicLayout(n);Ba.forceConstant=3*W;Ba.disableEdgeStyle=!1;Ba.resetEdges=!1;var Fa=Ba.isVertexIgnored;Ba.isVertexIgnored=function(b){return Fa.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){Ba.execute(n.getDefaultParent());va()},!0,
+M);M=null}}this.hideDialog()}finally{n.model.endUpdate()}null!=M&&M()}}catch(Ea){this.handleError(Ea)}};EditorUi.prototype.getSearch=function(b){var c="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var d="?",e;for(e in urlParams)0>mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(c+=d+e+"="+urlParams[e],d="&")}else c=window.location.search;return c};EditorUi.prototype.getUrl=function(b){b=null!=b?b:window.location.pathname;var c=0<b.indexOf("?")?1:0;if("1"==
+urlParams.offline)b+=window.location.search;else{var d="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),e;for(e in urlParams)0>mxUtils.indexOf(d,e)&&(b=0==c?b+"?":b+"&",null!=urlParams[e]&&(b+=e+"="+urlParams[e],c++))}return b};EditorUi.prototype.showLinkDialog=function(b,c,d,e,g){b=new LinkDialog(this,b,c,d,!0,e,g);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=function(b){var c=1;null==this.drive&&"function"!==
+typeof window.DriveClient||c++;null==this.dropbox&&"function"!==typeof window.DropboxClient||c++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||c++;null!=this.gitHub&&c++;null!=this.gitLab&&c++;b&&isLocalStorage&&"1"==urlParams.browser&&c++;return c};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var b=this.getCurrentFile(),c=null!=b||"1"==urlParams.embed&&this.editor.graph.isEnabled();this.menus.get("viewPanels").setEnabled(c);this.menus.get("viewZoom").setEnabled(c);
+var d=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==b||b.isRestricted());this.actions.get("makeCopy").setEnabled(!d);this.actions.get("print").setEnabled(!d);this.menus.get("exportAs").setEnabled(!d);this.menus.get("embed").setEnabled(!d);d="1"!=urlParams.embed||this.editor.graph.isEnabled();this.menus.get("extras").setEnabled(d);Editor.enableCustomLibraries&&(this.menus.get("openLibraryFrom").setEnabled(d),this.menus.get("newLibrary").setEnabled(d));b="1"==urlParams.embed&&this.editor.graph.isEnabled()||
+null!=b&&b.isEditable();this.actions.get("image").setEnabled(c);this.actions.get("zoomIn").setEnabled(c);this.actions.get("zoomOut").setEnabled(c);this.actions.get("resetView").setEnabled(c);this.actions.get("undo").setEnabled(this.canUndo()&&b);this.actions.get("redo").setEnabled(this.canRedo()&&b);this.menus.get("edit").setEnabled(c);this.menus.get("view").setEnabled(c);this.menus.get("importFrom").setEnabled(b);this.menus.get("arrange").setEnabled(b);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&
+this.toolbar.edgeShapeMenu.setEnabled(b),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(b));this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.scheduleSanityCheck=function(){};EditorUi.prototype.stopSanityCheck=function(){};EditorUi.prototype.isDiagramActive=function(){var b=this.getCurrentFile();return null!=b&&b.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnabled()};
+var k=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){k.apply(this,arguments);var b=this.editor.graph,c=this.getCurrentFile(),d=this.getSelectionState(),e=this.isDiagramActive();this.actions.get("pageSetup").setEnabled(e);this.actions.get("autosave").setEnabled(null!=c&&c.isEditable()&&c.isAutosaveOptional());this.actions.get("guides").setEnabled(e);this.actions.get("editData").setEnabled(b.isEnabled());this.actions.get("shadowVisible").setEnabled(e);this.actions.get("connectionArrows").setEnabled(e);
+this.actions.get("connectionPoints").setEnabled(e);this.actions.get("copyStyle").setEnabled(e&&!b.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(e&&0<d.cells.length);this.actions.get("editGeometry").setEnabled(0<d.vertices.length);this.actions.get("createShape").setEnabled(e);this.actions.get("createRevision").setEnabled(e);this.actions.get("moveToFolder").setEnabled(null!=c);this.actions.get("makeCopy").setEnabled(null!=c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(e&&
+(null==c||!c.isRestricted()));this.actions.get("publishLink").setEnabled(null!=c&&!c.isRestricted());this.actions.get("tags").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("layers").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("outline").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("rename").setEnabled(null!=c&&c.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=
+c&&!c.isRestricted());c=this.actions.get("findReplace");c.setEnabled("hidden"!=this.diagramContainer.style.visibility);c.label=mxResources.get("find")+(b.isEnabled()?"/"+mxResources.get("replace"):"")+"...";b=b.view.getState(b.getSelectionCell());this.actions.get("editShape").setEnabled(e&&null!=b&&null!=b.shape&&null!=b.shape.stencil)};var n=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=
+null);n.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(b,c,d,e,g,k,n,u){var f=b.editor.graph;if("xml"==d)b.hideDialog(),b.saveData(c,"xml",mxUtils.getXml(b.editor.getGraphXml()),"text/xml");else if("svg"==d)b.hideDialog(),b.saveData(c,"svg",mxUtils.getXml(f.getSvg(e,g,k)),"image/svg+xml");else{var l=b.getFileData(!0,null,null,null,null,!0),m=f.getGraphBounds(),p=Math.floor(m.width*g/f.view.scale),q=Math.floor(m.height*
+g/f.view.scale);if(l.length<=MAX_REQUEST_SIZE&&p*q<MAX_AREA)if(b.hideDialog(),"png"!=d&&"jpg"!=d&&"jpeg"!=d||!b.isExportToCanvas()){var t={globalVars:f.getExportVariables()};u&&(t.grid={size:f.gridSize,steps:f.view.gridSteps,color:f.view.gridColor});b.saveRequest(c,d,function(b,c){return new mxXmlRequest(EXPORT_URL,"format="+d+"&base64="+(c||"0")+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(t))+(0<n?"&dpi="+n:"")+"&bg="+(null!=e?e:"none")+"&w="+p+"&h="+
+q+"&border="+k+"&xml="+encodeURIComponent(l))})}else"png"==d?b.exportImage(g,null==e||"none"==e,!0,!1,!1,k,!0,!1,null,u,n):b.exportImage(g,!1,!0,!1,!1,k,!0,!1,"jpeg",u);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=this.pages)for(var d=0;d<this.pages.length;d++){var e=b;this.currentPage!=this.pages[d]&&(e=this.createTemporaryGraph(b.getStylesheet()),this.updatePageRoot(this.pages[d]),
+e.model.setRoot(this.pages[d].root));c+=this.pages[d].getName()+" "+e.getIndexableText()+" "}else c=b.getIndexableText();this.editor.graph.setEnabled(!0);return c};EditorUi.prototype.showRemotelyStoredLibrary=function(b){var c={},d=document.createElement("div");d.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxUtils.htmlEntities(b));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(e);var f=document.createElement("div");f.style.cssText=
+"border:1px solid lightGray;overflow: auto;height:300px";f.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var g={};try{var k=mxSettings.getCustomLibraries();for(b=0;b<k.length;b++){var n=k[b];if("R"==n.substring(0,1)){var x=JSON.parse(decodeURIComponent(n.substring(1)));g[x[0]]={id:x[0],title:x[1],downloadUrl:x[2]}}}}catch(z){}this.remoteInvoke("getCustomLibraries",null,null,function(b){f.innerHTML="";if(0==b.length)f.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+
+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var d=0;d<b.length;d++){var e=b[d];g[e.id]&&(c[e.id]=e);var k=this.addCheckbox(f,e.title,g[e.id]);(function(b,d){mxEvent.addListener(d,"change",function(){this.checked?c[b.id]=b:delete c[b.id]})})(e,k)}},mxUtils.bind(this,function(b){f.innerHTML="";var c=document.createElement("div");c.style.padding="8px";c.style.textAlign="center";mxUtils.write(c,mxResources.get("error")+": ");mxUtils.write(c,null!=b&&null!=b.message?b.message:
+mxResources.get("unknownError"));f.appendChild(c)}));d.appendChild(f);d=new CustomDialog(this,d,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var b=0,d;for(d in c)null==g[d]&&(b++,mxUtils.bind(this,function(c){this.remoteInvoke("getFileContent",[c.downloadUrl],null,mxUtils.bind(this,function(d){b--;0==b&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,d,c))}catch(A){this.handleError(A,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,
+function(){b--;0==b&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(c[d]));for(d in g)c[d]||this.closeLibrary(new RemoteLibrary(this,null,g[d]));0==b&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(d.container,340,390,!0,!0,null,null,null,null,!0)};EditorUi.prototype.remoteInvokableFns={getDiagramTextContent:{isAsync:!1},getLocalStorageFile:{isAsync:!1,allowedDomains:["app.diagrams.net"]},getLocalStorageFileNames:{isAsync:!1,
+allowedDomains:["app.diagrams.net"]},setMigratedFlag:{isAsync:!1,allowedDomains:["app.diagrams.net"]}};EditorUi.prototype.remoteInvokeCallbacks=[];EditorUi.prototype.remoteInvokeQueue=[];EditorUi.prototype.handleRemoteInvokeReady=function(b){this.remoteWin=b;for(var c=0;c<this.remoteInvokeQueue.length;c++)b.postMessage(this.remoteInvokeQueue[c],"*");this.remoteInvokeQueue=[]};EditorUi.prototype.handleRemoteInvokeResponse=function(b){var c=b.msgMarkers,d=this.remoteInvokeCallbacks[c.callbackId];if(null==
+d)throw Error("No callback for "+(null!=c?c.callbackId:"null"));b.error?d.error&&d.error(b.error.errResp):d.callback&&d.callback.apply(this,b.resp);this.remoteInvokeCallbacks[c.callbackId]=null};EditorUi.prototype.remoteInvoke=function(b,c,d,e,g){var f=!0,k=window.setTimeout(mxUtils.bind(this,function(){f=!1;g({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.timeout),l=mxUtils.bind(this,function(){window.clearTimeout(k);f&&e.apply(this,arguments)}),m=mxUtils.bind(this,function(){window.clearTimeout(k);
+f&&g.apply(this,arguments)});d=d||{};d.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:l,error:m});b=JSON.stringify({event:"remoteInvoke",funtionName:b,functionArgs:c,msgMarkers:d});null!=this.remoteWin?this.remoteWin.postMessage(b,"*"):this.remoteInvokeQueue.push(b)};EditorUi.prototype.handleRemoteInvoke=function(b,c){var d=mxUtils.bind(this,function(c,d){var e={event:"remoteInvokeResponse",msgMarkers:b.msgMarkers};null!=d?e.error={errResp:d}:null!=c&&(e.resp=
+c);this.remoteWin.postMessage(JSON.stringify(e),"*")});try{var e=b.funtionName,f=this.remoteInvokableFns[e];if(null!=f&&"function"===typeof this[e]){if(f.allowedDomains){for(var g=!1,k=0;k<f.allowedDomains.length;k++)if(c=="https://"+f.allowedDomains[k]){g=!0;break}if(!g){d(null,"Invalid Call: "+e+" is not allowed.");return}}var l=b.functionArgs;Array.isArray(l)||(l=[]);if(f.isAsync)l.push(function(){d(Array.prototype.slice.apply(arguments))}),l.push(function(b){d(null,b||"Unkown Error")}),this[e].apply(this,
+l);else{var n=this[e].apply(this,l);d([n])}}else d(null,"Invalid Call: "+e+" is not found.")}catch(z){d(null,"Invalid Call: An error occurred, "+z.message)}};EditorUi.prototype.openDatabase=function(b,c){if(null==this.database){var d=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=d)try{var e=d.open("database",2);e.onupgradeneeded=function(b){try{var d=e.result;1>b.oldVersion&&d.createObjectStore("objects",{keyPath:"key"});2>b.oldVersion&&(d.createObjectStore("files",{keyPath:"title"}),
+d.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(v){null!=c&&c(v)}};e.onsuccess=mxUtils.bind(this,function(c){var d=e.result;this.database=d;EditorUi.migrateStorageFiles&&(StorageFile.migrate(d),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(b){if(!b||"1"==urlParams.forceMigration){var c=document.createElement("iframe");
+c.style.display="none";c.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+urlParams.forceMigration);document.body.appendChild(c);var d=!0,e=!1,f,g=0,k=mxUtils.bind(this,function(){e=!0;this.setDatabaseItem(".drawioMigrated3",!0);c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"setMigratedFlag"}),"*")}),l=mxUtils.bind(this,function(){g++;m()}),m=mxUtils.bind(this,function(){try{if(g>=f.length)k();else{var b=f[g];StorageFile.getFileContent(this,
+b,mxUtils.bind(this,function(d){null==d||".scratchpad"==b&&d==this.emptyLibraryXml?c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[b]}),"*"):l()}),l)}}catch(G){console.log(G)}}),n=mxUtils.bind(this,function(b){try{this.setDatabaseItem(null,[{title:b.title,size:b.data.length,lastModified:Date.now(),type:b.isLib?"L":"F"},{title:b.title,data:b.data}],l,l,["filesInfo","files"])}catch(G){console.log(G)}});b=mxUtils.bind(this,function(b){try{if(b.source==
+c.contentWindow){var g={};try{g=JSON.parse(b.data)}catch(J){}"init"==g.event?(c.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=g.event||e||(d?null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?(f=g.resp[0],d=!1,m()):k():null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?n(g.resp[0]):l())}}catch(J){console.log(J)}});window.addEventListener("message",
+b)}})));b(d);d.onversionchange=function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(q){null!=c&&c(q)}else null!=c&&c()}else b(this.database)};EditorUi.prototype.setDatabaseItem=function(b,c,d,e,g){this.openDatabase(mxUtils.bind(this,function(f){try{g=g||"objects";Array.isArray(g)||(g=[g],b=[b],c=[c]);var k=f.transaction(g,"readwrite");k.oncomplete=d;k.onerror=e;for(f=0;f<g.length;f++)k.objectStore(g[f]).put(null!=b&&null!=b[f]?{key:b[f],data:c[f]}:c[f])}catch(u){null!=e&&e(u)}}),e)};
+EditorUi.prototype.removeDatabaseItem=function(b,c,d,e){this.openDatabase(mxUtils.bind(this,function(f){e=e||"objects";Array.isArray(e)||(e=[e],b=[b]);f=f.transaction(e,"readwrite");f.oncomplete=c;f.onerror=d;for(var g=0;g<e.length;g++)f.objectStore(e[g])["delete"](b[g])}),d)};EditorUi.prototype.getDatabaseItem=function(b,c,d,e){this.openDatabase(mxUtils.bind(this,function(f){try{e=e||"objects";var g=f.transaction([e],"readonly").objectStore(e).get(b);g.onsuccess=function(){c(g.result)};g.onerror=
+d}catch(v){null!=d&&d(v)}}),d)};EditorUi.prototype.getDatabaseItems=function(b,c,d){this.openDatabase(mxUtils.bind(this,function(e){try{d=d||"objects";var f=e.transaction([d],"readonly").objectStore(d).openCursor(IDBKeyRange.lowerBound(0)),g=[];f.onsuccess=function(c){null==c.target.result?b(g):(g.push(c.target.result.value),c.target.result["continue"]())};f.onerror=c}catch(v){null!=c&&c(v)}}),c)};EditorUi.prototype.getDatabaseItemKeys=function(b,c,d){this.openDatabase(mxUtils.bind(this,function(e){try{d=
+d||"objects";var f=e.transaction([d],"readonly").objectStore(d).getAllKeys();f.onsuccess=function(){b(f.result)};f.onerror=c}catch(t){null!=c&&c(t)}}),c)};EditorUi.prototype.commentsSupported=function(){var b=this.getCurrentFile();return null!=b?b.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsRefreshNeeded():!0};EditorUi.prototype.commentsSaveNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsSaveNeeded():
+!1};EditorUi.prototype.getComments=function(b,c){var d=this.getCurrentFile();null!=d?d.getComments(b,c):b([])};EditorUi.prototype.addComment=function(b,c,d){var e=this.getCurrentFile();null!=e?e.addComment(b,c,d):c(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var b=this.getCurrentFile();return null!=b?b.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var b=this.getCurrentFile();return null!=b?b.canComment():!0};EditorUi.prototype.newComment=function(b,c){var d=this.getCurrentFile();
+return null!=d?d.newComment(b,c):new DrawioComment(this,null,b,Date.now(),Date.now(),!1,c)};EditorUi.prototype.isRevisionHistorySupported=function(){var b=this.getCurrentFile();return null!=b&&b.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(b,c){var d=this.getCurrentFile();null!=d&&d.getRevisions?d.getRevisions(b,c):c({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var b=this.getCurrentFile();return null!=b&&(b.constructor==
+DriveFile&&b.isEditable()||b.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(b){b.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(b,c,d,e,g,k,n,u){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(b,c,d,e,g,k,n,u)};EditorUi.prototype.loadFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(b)};
+EditorUi.prototype.createSvgDataUri=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(b)};EditorUi.prototype.embedCssFonts=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,d,e,g,k,n,u,x,z,y,B,C,A,F,D){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");
+return this.editor.exportToCanvas(b,c,d,e,g,k,n,u,x,z,y,B,C,A,F,D)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(b,c,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");return this.editor.convertImages(b,c,d,e)};EditorUi.prototype.convertImageToDataUri=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");
+return this.editor.convertImageToDataUri(b,c)};EditorUi.prototype.base64Encode=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(b)};EditorUi.prototype.updateCRC=function(b,c,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(b,c,d,e)};EditorUi.prototype.crc32=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");return Editor.crc32(b)};EditorUi.prototype.writeGraphModelToPng=function(b,c,d,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");
+return Editor.writeGraphModelToPng(b,c,d,e,g)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;for(var b=[],c=0;c<localStorage.length;c++){var d=localStorage.key(c),e=localStorage.getItem(d);if(0<d.length&&(".scratchpad"==d||"."!=d.charAt(0))&&0<e.length){var g="<mxfile "===e.substring(0,8)||"<?xml"===e.substring(0,5)||"\x3c!--[if IE]>"===e.substring(0,12),e="<mxlibrary>"===e.substring(0,11);(g||
+e)&&b.push(d)}}return b};EditorUi.prototype.getLocalStorageFile=function(b){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;var c=localStorage.getItem(b);return{title:b,data:c,isLib:"<mxlibrary>"===c.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
var CommentsWindow=function(b,e,d,c,g,k){function n(){for(var b=B.getElementsByTagName("div"),c=0,d=0;d<b.length;d++)"none"!=b[d].style.display&&b[d].parentNode==B&&c++;C.style.display=0==c?"block":"none"}function f(b,c,d,e){function f(){c.removeChild(l);c.removeChild(m);k.style.display="block";g.style.display="block"}x={div:c,comment:b,saveCallback:d,deleteOnCancel:e};var g=c.querySelector(".geCommentTxt"),k=c.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
"geCommentEditTxtArea";l.style.minHeight=g.offsetHeight+"px";l.value=b.content;c.insertBefore(l,g);var m=document.createElement("div");m.className="geCommentEditBtns";var p=mxUtils.button(mxResources.get("cancel"),function(){e?(c.parentNode.removeChild(c),n()):f();x=null});p.className="geCommentEditBtn";m.appendChild(p);var q=mxUtils.button(mxResources.get("save"),function(){g.innerHTML="";b.content=l.value;mxUtils.write(g,b.content);f();d(b);x=null});mxEvent.addListener(l,"keydown",mxUtils.bind(this,
function(b){mxEvent.isConsumed(b)||((mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b))&&13==b.keyCode?(q.click(),mxEvent.consume(b)):27==b.keyCode&&(p.click(),mxEvent.consume(b)))}));q.focus();q.className="geCommentEditBtn gePrimaryBtn";m.appendChild(q);c.insertBefore(m,g);k.style.display="none";g.style.display="none";l.focus()}function l(c,d){d.innerHTML="";var e=new Date(c.modifiedDate),f=b.timeSince(e);null==f&&(f=mxResources.get("lessThanAMinute"));mxUtils.write(d,mxResources.get("timeAgo",
[f],"{1} ago"));d.setAttribute("title",e.toLocaleDateString()+" "+e.toLocaleTimeString())}function m(b){var c=document.createElement("img");c.className="geCommentBusyImg";c.src=IMAGE_PATH+"/spin.gif";b.appendChild(c);b.busyImg=c}function p(b){b.style.border="1px solid red";b.removeChild(b.busyImg)}function q(b){b.style.border="";b.removeChild(b.busyImg)}function t(c,d,e,g,k){function A(b,d,e){var f=document.createElement("li");f.className="geCommentAction";var g=document.createElement("a");g.className=
-"geCommentActionLnk";mxUtils.write(g,b);f.appendChild(g);mxEvent.addListener(g,"click",function(b){d(b,c);b.preventDefault();mxEvent.consume(b)});z.appendChild(f);e&&(f.style.display="none")}function G(){function b(c){d.push(e);if(null!=c.replies)for(var f=0;f<c.replies.length;f++)e=e.nextSibling,b(c.replies[f])}var d=[],e=E;b(c);return{pdiv:e,replies:d}}function H(d,e,k,l,n){function A(){m(x);c.addReply(D,function(b){D.id=b;c.replies.push(D);q(x);k&&k()},function(c){u();p(x);b.handleError(c,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},l,n)}function u(){f(D,x,function(b){A()},!0)}var v=G().pdiv,D=b.newComment(d,b.getCurrentUser());D.pCommentId=c.id;null==c.replies&&(c.replies=[]);var x=t(D,c.replies,v,g+1);e?u():A()}if(k||!c.isResolved){C.style.display="none";var E=document.createElement("div");E.className="geCommentContainer";E.setAttribute("data-commentId",c.id);E.style.marginLeft=20*g+5+"px";c.isResolved&&!Editor.isDarkMode()&&(E.style.backgroundColor="ghostWhite");
-var F=document.createElement("div");F.className="geCommentHeader";var K=document.createElement("img");K.className="geCommentUserImg";K.src=c.user.pictureUrl||Editor.userImage;F.appendChild(K);K=document.createElement("div");K.className="geCommentHeaderTxt";F.appendChild(K);var y=document.createElement("div");y.className="geCommentUsername";mxUtils.write(y,c.user.displayName||"");K.appendChild(y);y=document.createElement("div");y.className="geCommentDate";y.setAttribute("data-commentId",c.id);l(c,
-y);K.appendChild(y);E.appendChild(F);F=document.createElement("div");F.className="geCommentTxt";mxUtils.write(F,c.content||"");E.appendChild(F);c.isLocked&&(E.style.opacity="0.5");F=document.createElement("div");F.className="geCommentActions";var z=document.createElement("ul");z.className="geCommentActionsList";F.appendChild(z);v||c.isLocked||0!=g&&!u||A(mxResources.get("reply"),function(){H("",!0)},c.isResolved);K=b.getCurrentUser();null==K||K.id!=c.user.id||v||c.isLocked||(A(mxResources.get("edit"),
+"geCommentActionLnk";mxUtils.write(g,b);f.appendChild(g);mxEvent.addListener(g,"click",function(b){d(b,c);b.preventDefault();mxEvent.consume(b)});z.appendChild(f);e&&(f.style.display="none")}function F(){function b(c){d.push(e);if(null!=c.replies)for(var f=0;f<c.replies.length;f++)e=e.nextSibling,b(c.replies[f])}var d=[],e=E;b(c);return{pdiv:e,replies:d}}function H(d,e,k,l,n){function A(){m(x);c.addReply(D,function(b){D.id=b;c.replies.push(D);q(x);k&&k()},function(c){u();p(x);b.handleError(c,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},l,n)}function u(){f(D,x,function(b){A()},!0)}var v=F().pdiv,D=b.newComment(d,b.getCurrentUser());D.pCommentId=c.id;null==c.replies&&(c.replies=[]);var x=t(D,c.replies,v,g+1);e?u():A()}if(k||!c.isResolved){C.style.display="none";var E=document.createElement("div");E.className="geCommentContainer";E.setAttribute("data-commentId",c.id);E.style.marginLeft=20*g+5+"px";c.isResolved&&!Editor.isDarkMode()&&(E.style.backgroundColor="ghostWhite");
+var I=document.createElement("div");I.className="geCommentHeader";var G=document.createElement("img");G.className="geCommentUserImg";G.src=c.user.pictureUrl||Editor.userImage;I.appendChild(G);G=document.createElement("div");G.className="geCommentHeaderTxt";I.appendChild(G);var y=document.createElement("div");y.className="geCommentUsername";mxUtils.write(y,c.user.displayName||"");G.appendChild(y);y=document.createElement("div");y.className="geCommentDate";y.setAttribute("data-commentId",c.id);l(c,
+y);G.appendChild(y);E.appendChild(I);I=document.createElement("div");I.className="geCommentTxt";mxUtils.write(I,c.content||"");E.appendChild(I);c.isLocked&&(E.style.opacity="0.5");I=document.createElement("div");I.className="geCommentActions";var z=document.createElement("ul");z.className="geCommentActionsList";I.appendChild(z);v||c.isLocked||0!=g&&!u||A(mxResources.get("reply"),function(){H("",!0)},c.isResolved);G=b.getCurrentUser();null==G||G.id!=c.user.id||v||c.isLocked||(A(mxResources.get("edit"),
function(){function d(){f(c,E,function(){m(E);c.editComment(c.content,function(){q(E)},function(c){p(E);d();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}d()},c.isResolved),A(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){m(E);c.deleteComment(function(b){if(!0===b){b=E.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var e=E.querySelectorAll(".geCommentAction");for(b=
-0;b<e.length;b++)e[b].parentNode.removeChild(e[b]);q(E);E.style.opacity="0.5"}else{e=G(c).replies;for(b=0;b<e.length;b++)B.removeChild(e[b]);for(b=0;b<d.length;b++)if(d[b]==c){d.splice(b,1);break}C.style.display=0==B.getElementsByTagName("div").length?"block":"none"}},function(c){p(E);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));v||c.isLocked||0!=g||A(c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(b){function d(){var d=
-b.target;d.innerHTML="";c.isResolved=!c.isResolved;mxUtils.write(d,c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var e=c.isResolved?"none":"",f=G(c).replies,g=Editor.isDarkMode()?"transparent":c.isResolved?"ghostWhite":"white",k=0;k<f.length;k++){f[k].style.backgroundColor=g;for(var l=f[k].querySelectorAll(".geCommentAction"),m=0;m<l.length;m++)l[m]!=d.parentNode&&(l[m].style.display=e);D||(f[k].style.display="none")}n()}c.isResolved?H(mxResources.get("reOpened")+": ",!0,
-d,!1,!0):H(mxResources.get("markedAsResolved"),!1,d,!0)});E.appendChild(F);null!=e?B.insertBefore(E,e.nextSibling):B.appendChild(E);for(e=0;null!=c.replies&&e<c.replies.length;e++)F=c.replies[e],F.isResolved=c.isResolved,t(F,c.replies,null,g+1,k);null!=x&&(x.comment.id==c.id?(k=c.content,c.content=x.comment.content,f(c,E,x.saveCallback,x.deleteOnCancel),c.content=k):null==x.comment.id&&x.comment.pCommentId==c.id&&(B.appendChild(x.div),f(x.comment,x.div,x.saveCallback,x.deleteOnCancel)));return E}}
+0;b<e.length;b++)e[b].parentNode.removeChild(e[b]);q(E);E.style.opacity="0.5"}else{e=F(c).replies;for(b=0;b<e.length;b++)B.removeChild(e[b]);for(b=0;b<d.length;b++)if(d[b]==c){d.splice(b,1);break}C.style.display=0==B.getElementsByTagName("div").length?"block":"none"}},function(c){p(E);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));v||c.isLocked||0!=g||A(c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(b){function d(){var d=
+b.target;d.innerHTML="";c.isResolved=!c.isResolved;mxUtils.write(d,c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var e=c.isResolved?"none":"",f=F(c).replies,g=Editor.isDarkMode()?"transparent":c.isResolved?"ghostWhite":"white",k=0;k<f.length;k++){f[k].style.backgroundColor=g;for(var l=f[k].querySelectorAll(".geCommentAction"),m=0;m<l.length;m++)l[m]!=d.parentNode&&(l[m].style.display=e);D||(f[k].style.display="none")}n()}c.isResolved?H(mxResources.get("reOpened")+": ",!0,
+d,!1,!0):H(mxResources.get("markedAsResolved"),!1,d,!0)});E.appendChild(I);null!=e?B.insertBefore(E,e.nextSibling):B.appendChild(E);for(e=0;null!=c.replies&&e<c.replies.length;e++)I=c.replies[e],I.isResolved=c.isResolved,t(I,c.replies,null,g+1,k);null!=x&&(x.comment.id==c.id?(k=c.content,c.content=x.comment.content,f(c,E,x.saveCallback,x.deleteOnCancel),c.content=k):null==x.comment.id&&x.comment.pCommentId==c.id&&(B.appendChild(x.div),f(x.comment,x.div,x.saveCallback,x.deleteOnCancel)));return E}}
var v=!b.canComment(),u=b.canReplyToReplies(),x=null,z=document.createElement("div");z.className="geCommentsWin";z.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var y=EditorUi.compactUi?"26px":"30px",B=document.createElement("div");B.className="geCommentsList";B.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";B.style.bottom=parseInt(y)+7+"px";z.appendChild(B);var C=document.createElement("span");C.style.cssText="display:none;padding-top:10px;text-align:center;";
-mxUtils.write(C,mxResources.get("noCommentsFound"));var A=document.createElement("div");A.className="geToolbarContainer geCommentsToolbar";A.style.height=y;A.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";A.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";y=document.createElement("a");y.className="geButton";if(!v){var G=y.cloneNode();G.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';G.setAttribute("title",mxResources.get("create")+
-"...");mxEvent.addListener(G,"click",function(c){function d(){f(e,g,function(c){m(g);b.addComment(c,function(b){c.id=b;E.push(c);q(g)},function(c){p(g);d();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var e=b.newComment("",b.getCurrentUser()),g=t(e,E,null,0);d();c.preventDefault();mxEvent.consume(c)});A.appendChild(G)}G=y.cloneNode();G.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';G.setAttribute("title",mxResources.get("showResolved"));
-var D=!1;Editor.isDarkMode()&&(G.style.filter="invert(100%)");mxEvent.addListener(G,"click",function(b){this.className=(D=!D)?"geButton geCheckedBtn":"geButton";F();b.preventDefault();mxEvent.consume(b)});A.appendChild(G);b.commentsRefreshNeeded()&&(G=y.cloneNode(),G.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',G.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(G.style.filter="invert(100%)"),mxEvent.addListener(G,"click",function(b){F();
-b.preventDefault();mxEvent.consume(b)}),A.appendChild(G));b.commentsSaveNeeded()&&(y=y.cloneNode(),y.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',y.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(y.style.filter="invert(100%)"),mxEvent.addListener(y,"click",function(b){k();b.preventDefault();mxEvent.consume(b)}),A.appendChild(y));z.appendChild(A);var E=[],F=mxUtils.bind(this,function(){this.hasError=!1;if(null!=x)try{x.div=x.div.cloneNode(!0);
-var c=x.div.querySelector(".geCommentEditTxtArea"),d=x.div.querySelector(".geCommentEditBtns");x.comment.content=c.value;c.parentNode.removeChild(c);d.parentNode.removeChild(d)}catch(K){b.handleError(K)}B.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";u=b.canReplyToReplies();b.commentsSupported()?b.getComments(function(b){function c(b){if(null!=b){b.sort(function(b,c){return new Date(b.modifiedDate)-
+mxUtils.write(C,mxResources.get("noCommentsFound"));var A=document.createElement("div");A.className="geToolbarContainer geCommentsToolbar";A.style.height=y;A.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";A.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";y=document.createElement("a");y.className="geButton";if(!v){var F=y.cloneNode();F.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';F.setAttribute("title",mxResources.get("create")+
+"...");mxEvent.addListener(F,"click",function(c){function d(){f(e,g,function(c){m(g);b.addComment(c,function(b){c.id=b;E.push(c);q(g)},function(c){p(g);d();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var e=b.newComment("",b.getCurrentUser()),g=t(e,E,null,0);d();c.preventDefault();mxEvent.consume(c)});A.appendChild(F)}F=y.cloneNode();F.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';F.setAttribute("title",mxResources.get("showResolved"));
+var D=!1;Editor.isDarkMode()&&(F.style.filter="invert(100%)");mxEvent.addListener(F,"click",function(b){this.className=(D=!D)?"geButton geCheckedBtn":"geButton";G();b.preventDefault();mxEvent.consume(b)});A.appendChild(F);b.commentsRefreshNeeded()&&(F=y.cloneNode(),F.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',F.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(F.style.filter="invert(100%)"),mxEvent.addListener(F,"click",function(b){G();
+b.preventDefault();mxEvent.consume(b)}),A.appendChild(F));b.commentsSaveNeeded()&&(y=y.cloneNode(),y.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',y.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(y.style.filter="invert(100%)"),mxEvent.addListener(y,"click",function(b){k();b.preventDefault();mxEvent.consume(b)}),A.appendChild(y));z.appendChild(A);var E=[],G=mxUtils.bind(this,function(){this.hasError=!1;if(null!=x)try{x.div=x.div.cloneNode(!0);
+var c=x.div.querySelector(".geCommentEditTxtArea"),d=x.div.querySelector(".geCommentEditBtns");x.comment.content=c.value;c.parentNode.removeChild(c);d.parentNode.removeChild(d)}catch(I){b.handleError(I)}B.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";u=b.canReplyToReplies();b.commentsSupported()?b.getComments(function(b){function c(b){if(null!=b){b.sort(function(b,c){return new Date(b.modifiedDate)-
new Date(c.modifiedDate)});for(var d=0;d<b.length;d++)c(b[d].replies)}}b.sort(function(b,c){return new Date(b.modifiedDate)-new Date(c.modifiedDate)});B.innerHTML="";B.appendChild(C);C.style.display="block";E=b;for(b=0;b<E.length;b++)c(E[b].replies),t(E[b],E,null,0,D);null!=x&&null==x.comment.id&&null==x.comment.pCommentId&&(B.appendChild(x.div),f(x.comment,x.div,x.saveCallback,x.deleteOnCancel))},mxUtils.bind(this,function(b){B.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(b&&b.message?
-": "+b.message:""));this.hasError=!0})):B.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});F();this.refreshComments=F;A=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(l(c,e),e=0;null!=c.replies&&e<c.replies.length;e++)b(c.replies[e])}if(this.window.isVisible()){for(var c=B.querySelectorAll(".geCommentDate"),d={},e=0;e<c.length;e++){var f=c[e];d[f.getAttribute("data-commentId")]=f}for(e=0;e<E.length;e++)b(E[e])}});setInterval(A,6E4);this.refreshCommentsTime=A;this.window=
+": "+b.message:""));this.hasError=!0})):B.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});G();this.refreshComments=G;A=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(l(c,e),e=0;null!=c.replies&&e<c.replies.length;e++)b(c.replies[e])}if(this.window.isVisible()){for(var c=B.querySelectorAll(".geCommentDate"),d={},e=0;e<c.length;e++){var f=c[e];d[f.getAttribute("data-commentId")]=f}for(e=0;e<E.length;e++)b(E[e])}});setInterval(A,6E4);this.refreshCommentsTime=A;this.window=
new mxWindow(mxResources.get("comments"),z,e,d,c,g,!0,!0);this.window.minimumSize=new mxRectangle(0,0,300,200);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.window.setLocation=function(b,c){var d=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||
-document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));c=Math.max(0,Math.min(c,d-this.table.clientHeight-48));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};var I=mxUtils.bind(this,function(){var b=this.window.getX(),c=this.window.getY();this.window.setLocation(b,c)});mxEvent.addListener(window,"resize",I);this.destroy=function(){mxEvent.removeListener(window,"resize",I);this.window.destroy()}},ConfirmDialog=function(b,e,d,
+document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));c=Math.max(0,Math.min(c,d-this.table.clientHeight-48));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};var J=mxUtils.bind(this,function(){var b=this.window.getX(),c=this.window.getY();this.window.setLocation(b,c)});mxEvent.addListener(window,"resize",J);this.destroy=function(){mxEvent.removeListener(window,"resize",J);this.window.destroy()}},ConfirmDialog=function(b,e,d,
c,g,k,n,f,l,m,p){var q=document.createElement("div");q.style.textAlign="center";p=null!=p?p:44;var t=document.createElement("div");t.style.padding="6px";t.style.overflow="auto";t.style.maxHeight=p+"px";t.style.lineHeight="1.2em";mxUtils.write(t,e);q.appendChild(t);null!=m&&(t=document.createElement("div"),t.style.padding="6px 0 6px 0",e=document.createElement("img"),e.setAttribute("src",m),t.appendChild(e),q.appendChild(t));m=document.createElement("div");m.style.textAlign="center";m.style.whiteSpace=
"nowrap";var v=document.createElement("input");v.setAttribute("type","checkbox");k=mxUtils.button(k||mxResources.get("cancel"),function(){b.hideDialog();null!=c&&c(v.checked)});k.className="geBtn";null!=f&&(k.innerHTML=f+"<br>"+k.innerHTML,k.style.paddingBottom="8px",k.style.paddingTop="8px",k.style.height="auto",k.style.width="40%");b.editor.cancelFirst&&m.appendChild(k);var u=mxUtils.button(g||mxResources.get("ok"),function(){b.hideDialog();null!=d&&d(v.checked)});m.appendChild(u);null!=n?(u.innerHTML=
n+"<br>"+u.innerHTML+"<br>",u.style.paddingBottom="8px",u.style.paddingTop="8px",u.style.height="auto",u.className="geBtn",u.style.width="40%"):u.className="geBtn gePrimaryBtn";b.editor.cancelFirst||m.appendChild(k);q.appendChild(m);l?(m.style.marginTop="10px",t=document.createElement("p"),t.style.marginTop="20px",t.style.marginBottom="0px",t.appendChild(v),g=document.createElement("span"),mxUtils.write(g," "+mxResources.get("rememberThisSetting")),t.appendChild(g),q.appendChild(t),mxEvent.addListener(g,
@@ -11860,20 +11860,20 @@ else if(d.mimeType==this.libraryMimeType||n)d.mimeType!=this.libraryMimeType||n?
f=!0:b=m}catch(y){f=!0}}}else/\.pdf$/i.test(d.title)?(l=Editor.extractGraphModelFromPdf(b),null!=l&&0<l.length&&(f=!0,b=l)):"data:image/png;base64,PG14ZmlsZS"==b.substring(0,32)&&(m=b.substring(22),b=window.atob&&!mxClient.IS_SF?atob(m):Base64.decode(m));Graph.fileSupport&&(new XMLHttpRequest).upload&&this.ui.isRemoteFileFormat(b,g)?this.ui.parseFileData(b,mxUtils.bind(this,function(b){try{4==b.readyState&&(200<=b.status&&299>=b.status?c(new LocalFile(this.ui,b.responseText,d.title+this.extension,
!0)):null!=e&&e({message:mxResources.get("errorLoadingFile")}))}catch(B){if(null!=e)e(B);else throw B;}}),d.title):c(f?new LocalFile(this.ui,b,d.title,!0):new DriveFile(this.ui,b,d))}}catch(y){if(null!=e)e(y);else throw y;}}),mxUtils.bind(this,function(b,c){if(m<this.maxRetries&&null!=c&&403==c.getStatus())m++,window.setTimeout(p,2*m*this.coolOff*(1+.1*(Math.random()-.5)));else if(null!=e)e(b);else throw b;}),null!=d.mimeType&&"image/"==d.mimeType.substring(0,6)&&"image/svg"!=d.mimeType.substring(0,
9)||/\.png$/i.test(d.title)||/\.jpe?g$/i.test(d.title)||/\.pdf$/i.test(d.title),null,null,null,f)});p()}}catch(q){if(null!=e)e(q);else throw q;}};DriveClient.prototype.saveFile=function(b,c,e,k,n,f,l,m,p){try{var d=0;b.saveLevel=1;var g=mxUtils.bind(this,function(c){if(null!=k)k(c);else throw c;try{if(!b.isConflict(c)){var d="sl_"+b.saveLevel+"-error_"+(b.getErrorMessage(c)||"unknown");null!=c&&null!=c.error&&null!=c.error.code&&(d+="-code_"+c.error.code);EditorUi.logEvent({category:"ERROR-SAVE-FILE-"+
-b.getHash()+"-rev_"+b.desc.headRevisionId+"-mod_"+b.desc.modifiedDate+"-size_"+b.getSize()+"-mime_"+b.desc.mimeType+(this.ui.editor.autosave?"":"-nosave")+(b.isAutosave()?"":"-noauto")+(b.changeListenerEnabled?"":"-nolisten")+(b.inConflictState?"-conflict":"")+(b.invalidChecksum?"-invalid":""),action:d,label:(null!=this.user?"user_"+this.user.id:"nouser")+(null!=b.sync?"-client_"+b.sync.clientId:"-nosync")})}}catch(I){}}),v=mxUtils.bind(this,function(b){g(b);try{EditorUi.logError(b.message,null,null,
-b)}catch(F){}});if(b.isEditable()&&null!=b.desc){var u=(new Date).getTime(),x=b.desc.etag,z=b.desc.modifiedDate,y=b.desc.headRevisionId,B=this.ui.useCanvasForExport&&/(\.png)$/i.test(b.getTitle());f=null!=f?f:!1;var C=null,A=!1,G={mimeType:b.desc.mimeType,title:b.getTitle()};if(this.isGoogleRealtimeMimeType(G.mimeType))G.mimeType=this.xmlMimeType,C=b.desc,A=c=!0;else if("application/octet-stream"==G.mimeType||"1"==urlParams["override-mime"]&&G.mimeType!=this.xmlMimeType)G.mimeType=this.xmlMimeType;
-var D=mxUtils.bind(this,function(k,n,q){try{b.saveLevel=3;b.constructor==DriveFile&&(null==m&&(m=[]),null==b.getChannelId()&&m.push({key:"channel",value:Editor.guid(32)}),null==b.getChannelKey()&&m.push({key:"key",value:Editor.guid(32)}),m.push({key:"secret",value:null!=p?p:Editor.guid(32)}));q||(null!=k||f||(k=this.placeholderThumbnail,n=this.placeholderMimeType),null!=k&&null!=n&&(G.thumbnail={image:k,mimeType:n}));var t=b.getData(),D=mxUtils.bind(this,function(d){try{if(b.saveDelay=(new Date).getTime()-
+b.getHash()+"-rev_"+b.desc.headRevisionId+"-mod_"+b.desc.modifiedDate+"-size_"+b.getSize()+"-mime_"+b.desc.mimeType+(this.ui.editor.autosave?"":"-nosave")+(b.isAutosave()?"":"-noauto")+(b.changeListenerEnabled?"":"-nolisten")+(b.inConflictState?"-conflict":"")+(b.invalidChecksum?"-invalid":""),action:d,label:(null!=this.user?"user_"+this.user.id:"nouser")+(null!=b.sync?"-client_"+b.sync.clientId:"-nosync")})}}catch(J){}}),v=mxUtils.bind(this,function(b){g(b);try{EditorUi.logError(b.message,null,null,
+b)}catch(G){}});if(b.isEditable()&&null!=b.desc){var u=(new Date).getTime(),x=b.desc.etag,z=b.desc.modifiedDate,y=b.desc.headRevisionId,B=this.ui.useCanvasForExport&&/(\.png)$/i.test(b.getTitle());f=null!=f?f:!1;var C=null,A=!1,F={mimeType:b.desc.mimeType,title:b.getTitle()};if(this.isGoogleRealtimeMimeType(F.mimeType))F.mimeType=this.xmlMimeType,C=b.desc,A=c=!0;else if("application/octet-stream"==F.mimeType||"1"==urlParams["override-mime"]&&F.mimeType!=this.xmlMimeType)F.mimeType=this.xmlMimeType;
+var D=mxUtils.bind(this,function(k,n,q){try{b.saveLevel=3;b.constructor==DriveFile&&(null==m&&(m=[]),null==b.getChannelId()&&m.push({key:"channel",value:Editor.guid(32)}),null==b.getChannelKey()&&m.push({key:"key",value:Editor.guid(32)}),m.push({key:"secret",value:null!=p?p:Editor.guid(32)}));q||(null!=k||f||(k=this.placeholderThumbnail,n=this.placeholderMimeType),null!=k&&null!=n&&(F.thumbnail={image:k,mimeType:n}));var t=b.getData(),D=mxUtils.bind(this,function(d){try{if(b.saveDelay=(new Date).getTime()-
u,b.saveLevel=11,null==d)g({message:mxResources.get("errorSavingFile")+": Empty response"});else{var f=(new Date(d.modifiedDate)).getTime()-(new Date(z)).getTime();if(0>=f||x==d.etag||c&&y==d.headRevisionId){b.saveLevel=12;var k=[];0>=f&&k.push("invalid modified time");x==d.etag&&k.push("stale etag");c&&y==d.headRevisionId&&k.push("stale revision");var l=k.join(", ");g({message:mxResources.get("errorSavingFile")+": "+l},d);try{EditorUi.logError("Critical: Error saving to Google Drive "+b.desc.id,
null,"from-"+y+"."+z+"-"+this.ui.hashValue(x)+"-to-"+d.headRevisionId+"."+d.modifiedDate+"-"+this.ui.hashValue(d.etag)+(0<l.length?"-errors-"+l:""),"user-"+(null!=this.user?this.user.id:"nouser")+(null!=b.sync?"-client_"+b.sync.clientId:"-nosync"))}catch(S){}}else if(b.saveLevel=null,e(d,t),null!=C){this.executeRequest({url:"/files/"+C.id+"/revisions/"+C.headRevisionId+"?supportsAllDrives=true"},mxUtils.bind(this,mxUtils.bind(this,function(b){b.pinned=!0;this.executeRequest({url:"/files/"+C.id+"/revisions/"+
-C.headRevisionId,method:"PUT",params:b})})));try{EditorUi.logEvent({category:b.convertedFrom+"-CONVERT-FILE-"+b.getHash(),action:"from_"+C.id+"."+C.headRevisionId+"-to_"+b.desc.id+"."+b.desc.headRevisionId,label:null!=this.user?"user_"+this.user.id:"nouser"+(null!=b.sync?"-client_"+b.sync.clientId:"nosync")})}catch(S){}}}}catch(S){v(S)}}),E=mxUtils.bind(this,function(e,f){b.saveLevel=4;try{null!=m&&(G.properties=m);var n=l||b.constructor!=DriveFile||"manual"!=DrawioFile.SYNC&&"auto"!=DrawioFile.SYNC?
-null:b.getCurrentEtag(),p=mxUtils.bind(this,function(k){b.saveLevel=5;try{var l=b.desc.mimeType!=this.xmlMimeType&&b.desc.mimeType!=this.mimeType&&b.desc.mimeType!=this.libraryMimeType,m=!0,p=null;try{p=window.setTimeout(mxUtils.bind(this,function(){m=!1;g({code:App.ERROR_TIMEOUT})}),5*this.ui.timeout)}catch(U){}this.executeRequest(this.createUploadRequest(b.getId(),G,e,c||k||l,f,k?null:n,A),mxUtils.bind(this,function(b){window.clearTimeout(p);m&&D(b)}),mxUtils.bind(this,function(c){window.clearTimeout(p);
+C.headRevisionId,method:"PUT",params:b})})));try{EditorUi.logEvent({category:b.convertedFrom+"-CONVERT-FILE-"+b.getHash(),action:"from_"+C.id+"."+C.headRevisionId+"-to_"+b.desc.id+"."+b.desc.headRevisionId,label:null!=this.user?"user_"+this.user.id:"nouser"+(null!=b.sync?"-client_"+b.sync.clientId:"nosync")})}catch(S){}}}}catch(S){v(S)}}),E=mxUtils.bind(this,function(e,f){b.saveLevel=4;try{null!=m&&(F.properties=m);var n=l||b.constructor!=DriveFile||"manual"!=DrawioFile.SYNC&&"auto"!=DrawioFile.SYNC?
+null:b.getCurrentEtag(),p=mxUtils.bind(this,function(k){b.saveLevel=5;try{var l=b.desc.mimeType!=this.xmlMimeType&&b.desc.mimeType!=this.mimeType&&b.desc.mimeType!=this.libraryMimeType,m=!0,p=null;try{p=window.setTimeout(mxUtils.bind(this,function(){m=!1;g({code:App.ERROR_TIMEOUT})}),5*this.ui.timeout)}catch(U){}this.executeRequest(this.createUploadRequest(b.getId(),F,e,c||k||l,f,k?null:n,A),mxUtils.bind(this,function(b){window.clearTimeout(p);m&&D(b)}),mxUtils.bind(this,function(c){window.clearTimeout(p);
if(m){b.saveLevel=6;try{b.isConflict(c)?this.executeRequest({url:"/files/"+b.getId()+"?supportsAllDrives=true&fields="+this.catchupFields},mxUtils.bind(this,function(e){b.saveLevel=7;try{if(null!=e&&e.etag==n)if(d<this.staleEtagMaxRetries){d++;var f=2*d*this.coolOff*(1+.1*(Math.random()-.5));window.setTimeout(q,f);"1"==urlParams.test&&EditorUi.debug("DriveClient: Stale Etag Detected","retry",d,"delay",f)}else{q(!0);try{EditorUi.logEvent({category:"STALE-ETAG-SAVE-FILE-"+b.getHash(),action:"rev_"+
-b.desc.headRevisionId+"-mod_"+b.desc.modifiedDate+"-size_"+b.getSize()+"-mime_"+b.desc.mimeType+(this.ui.editor.autosave?"":"-nosave")+(b.isAutosave()?"":"-noauto")+(b.changeListenerEnabled?"":"-nolisten")+(b.inConflictState?"-conflict":"")+(b.invalidChecksum?"-invalid":""),label:(null!=this.user?"user_"+this.user.id:"nouser")+(null!=b.sync?"-client_"+b.sync.clientId:"-nosync")})}catch(ja){}}else"1"==urlParams.test&&e.headRevisionId==y&&EditorUi.debug("DriveClient: Remote Etag Changed","local",n,
-"remote",e.etag,"rev",b.desc.headRevisionId,"response",[e],"file",[b]),g(c,e)}catch(ja){v(ja)}}),mxUtils.bind(this,function(){g(c)})):g(c)}catch(ia){v(ia)}}}))}catch(U){v(U)}}),q=mxUtils.bind(this,function(c){b.saveLevel=9;if(c||null==n)p(c);else{var d=!0,e=null;try{e=window.setTimeout(mxUtils.bind(this,function(){d=!1;g({code:App.ERROR_TIMEOUT})}),3*this.ui.timeout)}catch(ea){}this.executeRequest({url:"/files/"+b.getId()+"?supportsAllDrives=true&fields="+this.catchupFields},mxUtils.bind(this,function(f){window.clearTimeout(e);
+b.desc.headRevisionId+"-mod_"+b.desc.modifiedDate+"-size_"+b.getSize()+"-mime_"+b.desc.mimeType+(this.ui.editor.autosave?"":"-nosave")+(b.isAutosave()?"":"-noauto")+(b.changeListenerEnabled?"":"-nolisten")+(b.inConflictState?"-conflict":"")+(b.invalidChecksum?"-invalid":""),label:(null!=this.user?"user_"+this.user.id:"nouser")+(null!=b.sync?"-client_"+b.sync.clientId:"-nosync")})}catch(la){}}else"1"==urlParams.test&&e.headRevisionId==y&&EditorUi.debug("DriveClient: Remote Etag Changed","local",n,
+"remote",e.etag,"rev",b.desc.headRevisionId,"response",[e],"file",[b]),g(c,e)}catch(la){v(la)}}),mxUtils.bind(this,function(){g(c)})):g(c)}catch(ia){v(ia)}}}))}catch(U){v(U)}}),q=mxUtils.bind(this,function(c){b.saveLevel=9;if(c||null==n)p(c);else{var d=!0,e=null;try{e=window.setTimeout(mxUtils.bind(this,function(){d=!1;g({code:App.ERROR_TIMEOUT})}),3*this.ui.timeout)}catch(fa){}this.executeRequest({url:"/files/"+b.getId()+"?supportsAllDrives=true&fields="+this.catchupFields},mxUtils.bind(this,function(f){window.clearTimeout(e);
if(d){b.saveLevel=10;try{null!=f&&f.headRevisionId==y?("1"==urlParams.test&&n!=f.etag&&EditorUi.debug("DriveClient: Preflight Etag Update","from",n,"to",f.etag,"rev",b.desc.headRevisionId,"response",[f],"file",[b]),n=f.etag,p(c)):g({error:{code:412}},f)}catch(U){v(U)}}}),mxUtils.bind(this,function(c){window.clearTimeout(e);d&&(b.saveLevel=11,g(c))}))}});if(B&&null==k){b.saveLevel=8;var t=new Image;t.onload=mxUtils.bind(this,function(){try{var b=this.thumbnailWidth/t.width,c=document.createElement("canvas");
-c.width=this.thumbnailWidth;c.height=Math.floor(t.height*b);c.getContext("2d").drawImage(t,0,0,c.width,c.height);var d=c.toDataURL(),d=d.substring(d.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_");G.thumbnail={image:d,mimeType:"image/png"};q(!1)}catch(ea){try{q(!1)}catch(U){v(U)}}});t.src="data:image/png;base64,"+e}else q(!1)}catch(P){v(P)}});if(B){var F=this.ui.getPngFileProperties(this.ui.fileNode);this.ui.getEmbeddedPng(mxUtils.bind(this,function(b){E(b,!0)}),g,this.ui.getCurrentFile()!=
-b?t:null,F.scale,F.border)}else E(t,!1)}catch(Q){v(Q)}});try{b.saveLevel=2,(f||B||b.constructor==DriveLibrary||!this.enableThumbnails||"0"==urlParams.thumb||null!=G.mimeType&&"application/vnd.jgraph.mxfile"!=G.mimeType.substring(0,29)||!this.ui.getThumbnail(this.thumbnailWidth,mxUtils.bind(this,function(b){try{var c=null;try{null!=b&&(c=b.toDataURL("image/png")),null!=c&&(c=c.length>this.maxThumbnailSize?null:c.substring(c.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_"))}catch(I){c=null}D(c,
-"image/png")}catch(I){v(I)}})))&&D(null,null,b.constructor!=DriveLibrary)}catch(E){v(E)}}else this.ui.editor.graph.reset(),g({message:mxResources.get("readOnly")})}catch(E){v(E)}};DriveClient.prototype.insertFile=function(b,c,e,k,n,f,l){f=null!=f?f:this.xmlMimeType;b={mimeType:f,title:b};null!=e&&(b.parents=[{kind:"drive#fileLink",id:e}]);this.executeRequest(this.createUploadRequest(null,b,c,!1,l),mxUtils.bind(this,function(b){f==this.libraryMimeType?k(new DriveLibrary(this.ui,c,b)):0==b?null!=n&&
+c.width=this.thumbnailWidth;c.height=Math.floor(t.height*b);c.getContext("2d").drawImage(t,0,0,c.width,c.height);var d=c.toDataURL(),d=d.substring(d.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_");F.thumbnail={image:d,mimeType:"image/png"};q(!1)}catch(fa){try{q(!1)}catch(U){v(U)}}});t.src="data:image/png;base64,"+e}else q(!1)}catch(O){v(O)}});if(B){var G=this.ui.getPngFileProperties(this.ui.fileNode);this.ui.getEmbeddedPng(mxUtils.bind(this,function(b){E(b,!0)}),g,this.ui.getCurrentFile()!=
+b?t:null,G.scale,G.border)}else E(t,!1)}catch(R){v(R)}});try{b.saveLevel=2,(f||B||b.constructor==DriveLibrary||!this.enableThumbnails||"0"==urlParams.thumb||null!=F.mimeType&&"application/vnd.jgraph.mxfile"!=F.mimeType.substring(0,29)||!this.ui.getThumbnail(this.thumbnailWidth,mxUtils.bind(this,function(b){try{var c=null;try{null!=b&&(c=b.toDataURL("image/png")),null!=c&&(c=c.length>this.maxThumbnailSize?null:c.substring(c.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_"))}catch(J){c=null}D(c,
+"image/png")}catch(J){v(J)}})))&&D(null,null,b.constructor!=DriveLibrary)}catch(E){v(E)}}else this.ui.editor.graph.reset(),g({message:mxResources.get("readOnly")})}catch(E){v(E)}};DriveClient.prototype.insertFile=function(b,c,e,k,n,f,l){f=null!=f?f:this.xmlMimeType;b={mimeType:f,title:b};null!=e&&(b.parents=[{kind:"drive#fileLink",id:e}]);this.executeRequest(this.createUploadRequest(null,b,c,!1,l),mxUtils.bind(this,function(b){f==this.libraryMimeType?k(new DriveLibrary(this.ui,c,b)):0==b?null!=n&&
n({message:mxResources.get("errorSavingFile")}):k(new DriveFile(this.ui,c,b))}),n)};DriveClient.prototype.createUploadRequest=function(b,c,e,k,n,f,l){n=null!=n?n:!1;var d={"Content-Type":'multipart/mixed; boundary="-------314159265358979323846"'};null!=f&&(d["If-Match"]=f);b={fullUrl:"https://content.googleapis.com/upload/drive/v2/files"+(null!=b?"/"+b:"")+"?uploadType=multipart&supportsAllDrives=true&enforceSingleParent=true&fields="+this.allFields,method:null!=b?"PUT":"POST",headers:d,params:"\r\n---------314159265358979323846\r\nContent-Type: application/json\r\n\r\n"+
JSON.stringify(c)+"\r\n---------314159265358979323846\r\nContent-Type: application/octect-stream\r\nContent-Transfer-Encoding: base64\r\n\r\n"+(null!=e?n?e:!window.btoa||mxClient.IS_IE||mxClient.IS_IE11?Base64.encode(e):Graph.base64EncodeUnicode(e):"")+"\r\n---------314159265358979323846--"};k||(b.fullUrl+="&newRevision=false");l&&(b.fullUrl+="&pinned=true");return b};DriveClient.prototype.createLinkPicker=function(){var d=e.linkPicker;if(null==d||e.linkPickerToken!=b){e.linkPickerToken=b;var d=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0).setSelectFolderEnabled(!0),
c=(new google.picker.DocsView).setIncludeFolders(!0).setSelectFolderEnabled(!0),g=(new google.picker.DocsView).setIncludeFolders(!0).setEnableDrives(!0).setSelectFolderEnabled(!0),d=(new google.picker.PickerBuilder).setAppId(this.appId).setLocale(mxLanguage).setOAuthToken(e.linkPickerToken).enableFeature(google.picker.Feature.SUPPORT_DRIVES).addView(d).addView(c).addView(g).addView(google.picker.ViewId.RECENTLY_PICKED)}return d};DriveClient.prototype.pickFile=function(d,c,g){this.filePickerCallback=
@@ -11964,14 +11964,14 @@ q.setRequestHeaders=mxUtils.bind(this,function(c,d){c.setRequestHeader("Content-
null==b||6E4>this.tokenExpiresOn-Date.now()?this.authenticate(function(){f(!0)},g):f(!1)}else g({message:mxResources.get("unknownError")})}catch(l){g(l)}};OneDriveClient.prototype.writeFile=function(e,d,c,g,k,n,f){try{if(null!=e&&null!=d){var l=mxUtils.bind(this,function(m){try{var p=!0,q=null;try{q=window.setTimeout(mxUtils.bind(this,function(){p=!1;n({code:App.ERROR_TIMEOUT})}),this.ui.timeout)}catch(v){}var t=new mxXmlRequest(e,d,c);t.setRequestHeaders=mxUtils.bind(this,function(c,d){c.setRequestHeader("Content-Type",
g||" ");c.setRequestHeader("Authorization","Bearer "+b);null!=f&&c.setRequestHeader("If-Match",f)});t.send(mxUtils.bind(this,function(b){window.clearTimeout(q);p&&(200<=b.getStatus()&&299>=b.getStatus()?(null==this.user&&this.updateUser(this.emptyFn,this.emptyFn,!0),k(JSON.parse(b.getText()))):m||401!==b.getStatus()?n(this.parseRequestText(b),b):this.authenticate(function(){l(!0)},n,m))}),mxUtils.bind(this,function(b){window.clearTimeout(q);p&&n(this.parseRequestText(b))}))}catch(v){n(v)}});null==
b||6E4>this.tokenExpiresOn-Date.now()?this.authenticate(function(){l(!0)},n):l(!1)}else n({message:mxResources.get("unknownError")})}catch(m){n(m)}};OneDriveClient.prototype.parseRequestText=function(b){var d={message:mxResources.get("unknownError")};try{d=JSON.parse(b.getText()),d.status=b.getStatus(),d.error&&(d.error.status=d.status,d.error.code=d.status)}catch(c){}return d};OneDriveClient.prototype.pickLibrary=function(b){this.pickFile(function(d){b(d)})};OneDriveClient.prototype.createInlinePicker=
-function(b,d){return mxUtils.bind(this,function(){var c=null,e=document.createElement("div");e.style.position="relative";var k=new CustomDialog(this.ui,e,mxUtils.bind(this,function(){var e=c.getSelectedItem();if(null!=e){if(d&&"object"==typeof e.folder){b({value:[e]});return}if(!e.folder){b(OneDriveFile.prototype.getIdOf(e));return}}return mxResources.get("invalidSel",null,"Invalid selection")}),null,mxResources.get(d?"save":"open"),null,null,null,null,!0);this.ui.showDialog(k.container,550,500,!0,
-!0);e.style.width=k.container.parentNode.style.width;e.style.height=parseInt(k.container.parentNode.style.height)-60+"px";c=new mxODPicker(e,null,mxUtils.bind(this,function(b,c,d){this.executeRequest(this.baseUrl+b,function(b){c(JSON.parse(b.getText()))},d)}),mxUtils.bind(this,function(b,c,d,e){this.executeRequest(this.baseUrl+"/drives/"+c+"/items/"+b,function(b){d(JSON.parse(b.getText()))},e)}),null,null,function(c){d?b({value:[c]}):b(OneDriveFile.prototype.getIdOf(c))},mxUtils.bind(this,function(b){this.ui.showError(mxResources.get("error"),
-b)}),d)})};OneDriveClient.prototype.pickFolder=function(e,d){var c=mxUtils.bind(this,function(b){this.ui.showError(mxResources.get("error"),b&&b.message?b.message:b)}),g=mxUtils.bind(this,function(d){var g=this.inlinePicker?this.createInlinePicker(e,!0):mxUtils.bind(this,function(){OneDrive.save({clientId:this.clientId,action:"query",openInNewWindow:!0,advanced:{endpointHint:mxClient.IS_IE11?null:this.endpointHint,redirectUri:this.pickerRedirectUri,queryParameters:"select=id,name,parentReference",
-accessToken:b,isConsumerAccount:!1},success:mxUtils.bind(this,function(c){e(c);mxClient.IS_IE11&&(b=c.accessToken)}),cancel:mxUtils.bind(this,function(){}),error:c})});d?g():this.ui.confirm(mxResources.get("useRootFolder"),mxUtils.bind(this,function(){e({value:[{id:"root",name:"root",parentReference:{driveId:"me"}}]})}),g,mxResources.get("yes"),mxResources.get("noPickFolder")+"...",!0);null==this.user&&this.updateUser(this.emptyFn,this.emptyFn,!0)});null==b||6E4>this.tokenExpiresOn-Date.now()?this.authenticate(mxUtils.bind(this,
-function(){g(!1)}),c):g(d)};OneDriveClient.prototype.pickFile=function(e){e=null!=e?e:mxUtils.bind(this,function(b){this.ui.loadFile("W"+encodeURIComponent(b))});var d=mxUtils.bind(this,function(b){this.ui.showError(mxResources.get("error"),b&&b.message?b.message:b)}),c=this.inlinePicker?this.createInlinePicker(e):mxUtils.bind(this,function(){OneDrive.open({clientId:this.clientId,action:"query",multiSelect:!1,advanced:{endpointHint:mxClient.IS_IE11?null:this.endpointHint,redirectUri:this.pickerRedirectUri,
-queryParameters:"select=id,name,parentReference",accessToken:b,isConsumerAccount:!1},success:mxUtils.bind(this,function(c){null!=c&&null!=c.value&&0<c.value.length&&(mxClient.IS_IE11&&(b=c.accessToken),e(OneDriveFile.prototype.getIdOf(c.value[0]),c))}),cancel:mxUtils.bind(this,function(){}),error:d});null==this.user&&this.updateUser(this.emptyFn,this.emptyFn,!0)});null==b||6E4>this.tokenExpiresOn-Date.now()?this.authenticate(mxUtils.bind(this,function(){this.inlinePicker?(this.ui.hideDialog(),c()):
-this.ui.showDialog((new BtnDialog(this.ui,this,mxResources.get("open"),mxUtils.bind(this,function(){this.ui.hideDialog();c()}))).container,300,140,!0,!0)}),d):c()};OneDriveClient.prototype.logout=function(){if(isLocalStorage){var e=localStorage.getItem("odpickerv7cache");null!=e&&'{"odsdkLoginHint":{'==e.substring(0,19)&&localStorage.removeItem("odpickerv7cache")}window.open("https://login.microsoftonline.com/common/oauth2/v2.0/logout","logout","width=525,height=525,status=no,resizable=yes,toolbar=no,menubar=no,scrollbars=yes");
-this.ui.editor.loadUrl(this.redirectUri+"?doLogout=1&state="+encodeURIComponent("cId="+this.clientId+"&domain="+window.location.hostname));this.clearPersistentToken();this.setUser(null);b=null}})();GitHubFile=function(b,e,d){DrawioFile.call(this,b,e);this.meta=d;this.peer=this.ui.gitHub};mxUtils.extend(GitHubFile,DrawioFile);GitHubFile.prototype.share=function(){this.ui.editor.graph.openLink("https://github.com/"+encodeURIComponent(this.meta.org)+"/"+encodeURIComponent(this.meta.repo)+"/settings/access")};
+function(b,d,c){return mxUtils.bind(this,function(){var e=null,k=document.createElement("div");k.style.position="relative";var n=new CustomDialog(this.ui,k,mxUtils.bind(this,function(){var c=e.getSelectedItem();if(null!=c)if(d&&"object"==typeof c.folder)b({value:[c]});else{if(!c.folder){var g=OneDriveFile.prototype.getIdOf(c);this.executeRequest(this.getItemURL(g),mxUtils.bind(this,function(c){200<=c.getStatus()&&299>=c.getStatus()&&(c=JSON.parse(c.getText()),b(g,{value:[c]}))}),null)}}else return mxResources.get("invalidSel",
+null,"Invalid selection")}),null,mxResources.get(d?"save":"open"),null,null,null,null,!0);this.ui.showDialog(n.container,550,500,!0,!0);k.style.width=n.container.parentNode.style.width;k.style.height=parseInt(n.container.parentNode.style.height)-60+"px";e=new mxODPicker(k,null,mxUtils.bind(this,function(b,c,d){this.executeRequest(this.baseUrl+b,function(b){c(JSON.parse(b.getText()))},d)}),mxUtils.bind(this,function(b,c,d,e){this.executeRequest(this.baseUrl+"/drives/"+c+"/items/"+b,function(b){d(JSON.parse(b.getText()))},
+e)}),null,null,function(c){d?b({value:[c]}):b(OneDriveFile.prototype.getIdOf(c))},mxUtils.bind(this,function(b){this.ui.showError(mxResources.get("error"),b)}),d,null,null,null,null,c)})};OneDriveClient.prototype.pickFolder=function(e,d){var c=mxUtils.bind(this,function(b){this.ui.showError(mxResources.get("error"),b&&b.message?b.message:b)}),g=mxUtils.bind(this,function(d){var g=this.inlinePicker?this.createInlinePicker(e,!0):mxUtils.bind(this,function(){OneDrive.save({clientId:this.clientId,action:"query",
+openInNewWindow:!0,advanced:{endpointHint:mxClient.IS_IE11?null:this.endpointHint,redirectUri:this.pickerRedirectUri,queryParameters:"select=id,name,parentReference",accessToken:b,isConsumerAccount:!1},success:mxUtils.bind(this,function(c){e(c);mxClient.IS_IE11&&(b=c.accessToken)}),cancel:mxUtils.bind(this,function(){}),error:c})});d?g():this.ui.confirm(mxResources.get("useRootFolder"),mxUtils.bind(this,function(){e({value:[{id:"root",name:"root",parentReference:{driveId:"me"}}]})}),g,mxResources.get("yes"),
+mxResources.get("noPickFolder")+"...",!0);null==this.user&&this.updateUser(this.emptyFn,this.emptyFn,!0)});null==b||6E4>this.tokenExpiresOn-Date.now()?this.authenticate(mxUtils.bind(this,function(){g(!1)}),c):g(d)};OneDriveClient.prototype.pickFile=function(e,d){e=null!=e?e:mxUtils.bind(this,function(b){this.ui.loadFile("W"+encodeURIComponent(b))});var c=mxUtils.bind(this,function(b){this.ui.showError(mxResources.get("error"),b&&b.message?b.message:b)}),g=this.inlinePicker?this.createInlinePicker(e,
+null,d):mxUtils.bind(this,function(){OneDrive.open({clientId:this.clientId,action:"query",multiSelect:!1,advanced:{endpointHint:mxClient.IS_IE11?null:this.endpointHint,redirectUri:this.pickerRedirectUri,queryParameters:"select=id,name,parentReference",accessToken:b,isConsumerAccount:!1},success:mxUtils.bind(this,function(c){null!=c&&null!=c.value&&0<c.value.length&&(mxClient.IS_IE11&&(b=c.accessToken),e(OneDriveFile.prototype.getIdOf(c.value[0]),c))}),cancel:mxUtils.bind(this,function(){}),error:c});
+null==this.user&&this.updateUser(this.emptyFn,this.emptyFn,!0)});null==b||6E4>this.tokenExpiresOn-Date.now()?this.authenticate(mxUtils.bind(this,function(){this.inlinePicker?(this.ui.hideDialog(),g()):this.ui.showDialog((new BtnDialog(this.ui,this,mxResources.get("open"),mxUtils.bind(this,function(){this.ui.hideDialog();g()}))).container,300,140,!0,!0)}),c):g()};OneDriveClient.prototype.logout=function(){if(isLocalStorage){var e=localStorage.getItem("odpickerv7cache");null!=e&&'{"odsdkLoginHint":{'==
+e.substring(0,19)&&localStorage.removeItem("odpickerv7cache")}window.open("https://login.microsoftonline.com/common/oauth2/v2.0/logout","logout","width=525,height=525,status=no,resizable=yes,toolbar=no,menubar=no,scrollbars=yes");this.ui.editor.loadUrl(this.redirectUri+"?doLogout=1&state="+encodeURIComponent("cId="+this.clientId+"&domain="+window.location.hostname));this.clearPersistentToken();this.setUser(null);b=null}})();GitHubFile=function(b,e,d){DrawioFile.call(this,b,e);this.meta=d;this.peer=this.ui.gitHub};mxUtils.extend(GitHubFile,DrawioFile);GitHubFile.prototype.share=function(){this.ui.editor.graph.openLink("https://github.com/"+encodeURIComponent(this.meta.org)+"/"+encodeURIComponent(this.meta.repo)+"/settings/access")};
GitHubFile.prototype.getId=function(){return encodeURIComponent(this.meta.org)+"/"+(null!=this.meta.repo?encodeURIComponent(this.meta.repo)+"/"+(null!=this.meta.ref?this.meta.ref+(null!=this.meta.path?"/"+this.meta.path:""):""):"")};GitHubFile.prototype.getHash=function(){return encodeURIComponent("H"+this.getId())};
GitHubFile.prototype.getPublicUrl=function(b){null!=this.meta.download_url?mxUtils.get(this.meta.download_url,mxUtils.bind(this,function(e){b(200<=e.getStatus()&&299>=e.getStatus()?this.meta.download_url:null)}),mxUtils.bind(this,function(){b(null)})):b(null)};GitHubFile.prototype.isConflict=function(b){return null!=b&&409==b.status};GitHubFile.prototype.getMode=function(){return App.MODE_GITHUB};GitHubFile.prototype.isAutosave=function(){return!1};GitHubFile.prototype.getTitle=function(){return this.meta.name};
GitHubFile.prototype.isRenamable=function(){return!1};GitHubFile.prototype.getLatestVersion=function(b,e){this.peer.getFile(this.getId(),b,e)};GitHubFile.prototype.isCompressedStorage=function(){return!1};GitHubFile.prototype.getDescriptor=function(){return this.meta};GitHubFile.prototype.setDescriptor=function(b){this.meta=b};GitHubFile.prototype.getDescriptorEtag=function(b){return b.sha};GitHubFile.prototype.setDescriptorEtag=function(b,e){b.sha=e};
@@ -12071,26 +12071,26 @@ function(b){var d=p.cloneNode();d.style.backgroundColor=D?Editor.isDarkMode()?"#
mxUtils.bind(this,function(){0===e&&(c=b.full_path,g=d.path,n="",B(null,!0))})));m.appendChild(k)})(d[f])}}));l()}else l(),mxUtils.write(m,mxResources.get("noFiles"));100==A.length&&(m.appendChild(x),z=function(){m.scrollTop>=m.scrollHeight-m.offsetHeight&&q()},mxEvent.addListener(m,"scroll",z))}),u)}}))});b?this.user?C():this.updateUser(function(){C()},u,!0):this.authenticate(mxUtils.bind(this,function(){this.updateUser(function(){C()},u,!0)}),u)};GitLabClient.prototype.logout=function(){this.ui.editor.loadUrl(this.redirectUri+
"?doLogout=1&state="+encodeURIComponent("cId="+this.clientId+"&domain="+window.location.hostname));this.clearPersistentToken();this.setUser(null);b=null;this.setToken(null)}})();DrawioComment=function(b,e,d,c,g,k,n){this.file=b;this.id=e;this.content=d;this.modifiedDate=c;this.createdDate=g;this.isResolved=k;this.user=n;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,e,d,c,g){e()};DrawioComment.prototype.editComment=function(b,e,d){e()};DrawioComment.prototype.deleteComment=function(b,e){b()};DriveComment=function(b,e,d,c,g,k,n,f){DrawioComment.call(this,b,e,d,c,g,k,n);this.pCommentId=f};mxUtils.extend(DriveComment,DrawioComment);DriveComment.prototype.addReply=function(b,e,d,c,g){b={content:b.content};c?b.verb="resolve":g&&(b.verb="reopen");this.file.ui.drive.executeRequest({url:"/files/"+this.file.getId()+"/comments/"+this.id+"/replies",params:b,method:"POST"},mxUtils.bind(this,function(b){e(b.replyId)}),d)};
DriveComment.prototype.editComment=function(b,e,d){this.content=b;b={content:b};this.file.ui.drive.executeRequest(this.pCommentId?{url:"/files/"+this.file.getId()+"/comments/"+this.pCommentId+"/replies/"+this.id,params:b,method:"PATCH"}:{url:"/files/"+this.file.getId()+"/comments/"+this.id,params:b,method:"PATCH"},e,d)};
-DriveComment.prototype.deleteComment=function(b,e){this.file.ui.drive.executeRequest(this.pCommentId?{url:"/files/"+this.file.getId()+"/comments/"+this.pCommentId+"/replies/"+this.id,method:"DELETE"}:{url:"/files/"+this.file.getId()+"/comments/"+this.id,method:"DELETE"},b,e)};function mxODPicker(b,e,d,c,g,k,n,f,l,m,p,q,t){function v(b,c){c=c||document;return c.querySelector(b)}function u(b,d,e){if(null==b["@microsoft.graph.downloadUrl"])if(null==b.parentReference)e();else{c(b.id,b.parentReference.driveId,function(b){u(b,d,e)},e);return}var f=new XMLHttpRequest;f.open("GET",b["@microsoft.graph.downloadUrl"]);var g=b.file?"image/png"==b.file.mimeType:!1;f.onreadystatechange=function(){if(4==this.readyState){if(200<=this.status&&299>=this.status)try{var b=f.responseText;
-g&&(b="data:image/png;base64,"+Editor.base64Encode(b),b=Editor.extractGraphModelFromPng(b));var c=mxUtils.parseXml(b),k="mxlibrary"==c.documentElement.nodeName?c.documentElement:Editor.extractGraphModel(c.documentElement);if(null!=k){d(k.ownerDocument);return}}catch(Z){}e()}};g&&f.overrideMimeType&&f.overrideMimeType("text/plain; charset=x-user-defined");f.send()}function x(){q&&null!=J?I.exportToCanvas(function(b){b=EditorUi.prototype.createImageDataUri(b,null,"png");n(H,b);k(H)},400,null,null,function(b){console.log(b)},
-600,null,null,null,null,null,J):(n(H,void 0),k(H))}function z(b){function c(b){M.style.background="transparent";M.innerHTML="";var c=document.createElement("div");c.className="odPreviewStatus";mxUtils.write(c,b);M.appendChild(c);F.stop()}if(null!=M)if(M.style.background="transparent",M.innerHTML="",null==b||b.folder||/\.drawiolib$/.test(b.name))c(mxResources.get("noPreview"));else try{null!=b.remoteItem&&(b=b.remoteItem),W=b,F.spin(M),u(b,function(d){F.stop();if(W==b)if("mxlibrary"==d.documentElement.nodeName)c(mxResources.get("noPreview"));
-else{var e=d.getElementsByTagName("diagram");J=AspectDialog.prototype.createViewer(M,0==e.length?d.documentElement:e[0],null,"transparent")}},function(){H=null;c(mxResources.get("notADiagramFile"))})}catch(U){H=null,c(mxResources.get("notADiagramFile"))}}function y(){var b=v(".odFilesBreadcrumb");if(null!=b){b.innerHTML="";for(var c=0;c<Q.length-1;c++){var d=document.createElement("span");d.className="odBCFolder";d.innerHTML=mxUtils.htmlEntities(Q[c].name||mxResources.get("home"));b.appendChild(d);
-(function(b,c){d.addEventListener("click",function(){e(null);Q=Q.slice(0,c);C(b.driveId,b.folderId,b.siteId,b.name)})})(Q[c],c);var f=document.createElement("span");f.innerHTML=" &gt; ";b.appendChild(f)}null!=Q[Q.length-1]&&(c=document.createElement("span"),c.innerHTML=mxUtils.htmlEntities(1==Q.length?mxResources.get("officeSelDiag"):Q[Q.length-1].name||mxResources.get("home")),b.appendChild(c))}}function B(){if(null!=H&&!N)if("sharepoint"==K)C("site",null,H.id,H.displayName);else if("site"==K)C("subsite",
-null,H.id,H.name);else{var b=H.folder;H=H.remoteItem?H.remoteItem:H;var c=(H.parentReference?H.parentReference.driveId:null)||K,d=H.id;b?C(c,d,null,H.name):x()}}function C(b,c,k,m,n){function p(c){F.stop();var d=document.createElement("table");d.className="odFileListGrid";for(var f=null,g=0,k=0;null!=c&&k<c.length;k++){var m=c[k];if(1!=A||!m.webUrl||0<m.webUrl.indexOf("sharepoint.com/sites/")||0>m.webUrl.indexOf("sharepoint.com/")){var n=m.displayName||m.name,p=mxUtils.htmlEntities(m.description||
-n);A&&(m.folder=2==A?{isRoot:!0}:!0);var q=null!=m.folder;if(!l||q){var t=document.createElement("tr");t.className=g++%2?"odOddRow":"odEvenRow";var u=document.createElement("td");u.style.width="36px";var v=document.createElement("img");v.src="/images/"+(q?"folder.png":"file.png");v.className="odFileImg";u.appendChild(v);t.appendChild(u);u=document.createElement("td");q=document.createElement("div");q.className="odFileTitle";q.innerHTML=mxUtils.htmlEntities(n);q.setAttribute("title",p);u.appendChild(q);
-t.appendChild(u);d.appendChild(t);null==f&&(f=t,f.className+=" odRowSelected",H=m,K=b,e(H));(function(c,d){t.addEventListener("dblclick",B);t.addEventListener("click",function(){f!=d&&(f.className=f.className.replace("odRowSelected",""),f=d,f.className+=" odRowSelected",H=c,K=b,e(H))})})(m,t)}}}0==g?(c=document.createElement("div"),c.className="odEmptyFolder",c.innerHTML=mxUtils.htmlEntities(mxResources.get("folderEmpty",null,"Folder is empty!")),D.appendChild(c)):D.appendChild(d);y();N=!1}if(!N){v(".odCatsList").style.display=
-"block";v(".odFilesSec").style.display="block";null!=M&&(M.innerHTML="",M.style.top="50%");var q=N=!0,A=0;L=arguments;var t=setTimeout(function(){N=q=!1;F.stop();f(mxResources.get("timeout"))},2E4),D=v(".odFilesList");D.innerHTML="";F.spin(D);var u;switch(b){case "recent":Q=[{name:mxResources.get("recent",null,"Recent"),driveId:b}];u=g()||{};var x=[],G;for(G in u)x.push(u[G]);clearTimeout(t);p(x);return;case "shared":u="/me/drive/sharedWithMe";Q=[{name:mxResources.get("sharedWithMe",null,"Shared With Me"),
-driveId:b}];break;case "sharepoint":u="/sites?search=";Q=[{name:mxResources.get("sharepointSites",null,"Sharepoint Sites"),driveId:b}];A=1;break;case "site":Q.push({name:m,driveId:b,folderId:c,siteId:k});u="/sites/"+k+"/drives";A=2;break;case "subsite":Q.push({name:m,driveId:b,folderId:c,siteId:k});u="/drives/"+k+(c?"/items/"+c:"/root")+"/children";break;case "search":b=K;Q=[{driveId:b,name:mxResources.get("back",null,"Back")}];n=encodeURIComponent(n.replace(/\'/g,"\\'"));u=b?"/drives/"+b+"/root/search(q='"+
-n+"')":"/me/drive/root/search(q='"+n+"')";break;default:null==c?Q=[{driveId:b}]:Q.push({name:m,driveId:b,folderId:c}),u=(b?"/drives/"+b:"/me/drive")+(c?"/items/"+c:"/root")+"/children"}A||(u+=(0<u.indexOf("?")?"&":"?")+"select=id,name,description,parentReference,file,createdBy,lastModifiedBy,lastModifiedDateTime,size,folder,remoteItem,@microsoft.graph.downloadUrl");d(u,function(b){if(q){clearTimeout(t);b=b.value||[];for(var c=A?b:[],d=0;!A&&d<b.length;d++){var e=b[d],f=e.file?e.file.mimeType:null;
-(e.folder||"text/html"==f||"text/xml"==f||"application/xml"==f||"image/png"==f||/\.svg$/.test(e.name)||/\.html$/.test(e.name)||/\.xml$/.test(e.name)||/\.png$/.test(e.name)||/\.drawio$/.test(e.name)||/\.drawiolib$/.test(e.name))&&c.push(e)}p(c)}},function(b){if(q){clearTimeout(t);var c=null;try{c=JSON.parse(b.responseText).error.message}catch(T){}f(mxResources.get("errorFetchingFolder",null,"Error fetching folder items")+(null!=c?" ("+c+")":""));N=!1;F.stop()}})}}function A(b){P.className=P.className.replace("odCatSelected",
-"");P=b;P.className+=" odCatSelected"}function G(b){N||(aa=null,C("search",null,null,null,b))}var D="";null==e&&(e=z,D='<div style="text-align: center;" class="odPreview"></div>');null==g&&(g=function(){var b=null;try{b=JSON.parse(localStorage.getItem("mxODPickerRecentList"))}catch(ea){}return b});null==k&&(k=function(b){if(null!=b){var c=g()||{};delete b["@microsoft.graph.downloadUrl"];c[b.id]=b;localStorage.setItem("mxODPickerRecentList",JSON.stringify(c))}});var D='<div class="odCatsList"><div class="odCatsListLbl">OneDrive</div><div id="odFiles" class="odCatListTitle odCatSelected">'+
+DriveComment.prototype.deleteComment=function(b,e){this.file.ui.drive.executeRequest(this.pCommentId?{url:"/files/"+this.file.getId()+"/comments/"+this.pCommentId+"/replies/"+this.id,method:"DELETE"}:{url:"/files/"+this.file.getId()+"/comments/"+this.id,method:"DELETE"},b,e)};function mxODPicker(b,e,d,c,g,k,n,f,l,m,p,q,t,v){function u(b,c){c=c||document;return c.querySelector(b)}function x(b,d,e){if(null==b["@microsoft.graph.downloadUrl"])if(null==b.parentReference)e();else{c(b.id,b.parentReference.driveId,function(b){x(b,d,e)},e);return}var f=new XMLHttpRequest;f.open("GET",b["@microsoft.graph.downloadUrl"]);var g=b.file?"image/png"==b.file.mimeType:!1;f.onreadystatechange=function(){if(4==this.readyState){if(200<=this.status&&299>=this.status)try{var b=f.responseText;
+g&&(b="data:image/png;base64,"+Editor.base64Encode(b),b=Editor.extractGraphModelFromPng(b));var c=mxUtils.parseXml(b),k="mxlibrary"==c.documentElement.nodeName?c.documentElement:Editor.extractGraphModel(c.documentElement);if(null!=k){d(k.ownerDocument);return}}catch(P){}e()}};g&&f.overrideMimeType&&f.overrideMimeType("text/plain; charset=x-user-defined");f.send()}function z(){q&&null!=H?K.exportToCanvas(function(b){b=EditorUi.prototype.createImageDataUri(b,null,"png");n(I,b);k(I)},400,null,null,function(b){console.log(b)},
+600,null,null,null,null,null,H):(n(I,void 0),k(I))}function y(b){function c(b){O.style.background="transparent";O.innerHTML="";var c=document.createElement("div");c.className="odPreviewStatus";mxUtils.write(c,b);O.appendChild(c);J.stop()}if(null!=O)if(O.style.background="transparent",O.innerHTML="",null==b||b.folder||/\.drawiolib$/.test(b.name))c(mxResources.get("noPreview"));else try{null!=b.remoteItem&&(b=b.remoteItem),X=b,J.spin(O),x(b,function(d){J.stop();if(X==b)if("mxlibrary"==d.documentElement.nodeName)c(mxResources.get("noPreview"));
+else{var e=d.getElementsByTagName("diagram");H=AspectDialog.prototype.createViewer(O,0==e.length?d.documentElement:e[0],null,"transparent")}},function(){I=null;c(mxResources.get("notADiagramFile"))})}catch(ia){I=null,c(mxResources.get("notADiagramFile"))}}function B(){var b=u(".odFilesBreadcrumb");if(null!=b){b.innerHTML="";for(var c=0;c<L.length-1;c++){var d=document.createElement("span");d.className="odBCFolder";d.innerHTML=mxUtils.htmlEntities(L[c].name||mxResources.get("home"));b.appendChild(d);
+(function(b,c){d.addEventListener("click",function(){e(null);L=L.slice(0,c);A(b.driveId,b.folderId,b.siteId,b.name)})})(L[c],c);var f=document.createElement("span");f.innerHTML=" &gt; ";b.appendChild(f)}null!=L[L.length-1]&&(c=document.createElement("span"),c.innerHTML=mxUtils.htmlEntities(1==L.length?mxResources.get("officeSelDiag"):L[L.length-1].name||mxResources.get("home")),b.appendChild(c))}}function C(){if(null!=I&&!R)if("sharepoint"==N)A("site",null,I.id,I.displayName);else if("site"==N)A("subsite",
+null,I.id,I.name);else{var b=I.folder;I=I.remoteItem?I.remoteItem:I;var c=(I.parentReference?I.parentReference.driveId:null)||N,d=I.id;b?A(c,d,null,I.name):z()}}function A(b,c,k,m,n){function p(c){J.stop();var d=document.createElement("table");d.className="odFileListGrid";for(var f=null,g=0,k=0;null!=c&&k<c.length;k++){var m=c[k];if(1!=A||!m.webUrl||0<m.webUrl.indexOf("sharepoint.com/sites/")||0>m.webUrl.indexOf("sharepoint.com/")){var n=m.displayName||m.name,p=mxUtils.htmlEntities(m.description||
+n);A&&(m.folder=2==A?{isRoot:!0}:!0);var q=null!=m.folder;if(!l||q){var t=document.createElement("tr");t.className=g++%2?"odOddRow":"odEvenRow";var u=document.createElement("td");u.style.width="36px";var F=document.createElement("img");F.src="/images/"+(q?"folder.png":"file.png");F.className="odFileImg";u.appendChild(F);t.appendChild(u);u=document.createElement("td");q=document.createElement("div");q.className="odFileTitle";q.innerHTML=mxUtils.htmlEntities(n);q.setAttribute("title",p);u.appendChild(q);
+t.appendChild(u);d.appendChild(t);null==f&&(f=t,f.className+=" odRowSelected",I=m,N=b,e(I));(function(c,d){t.addEventListener("dblclick",C);t.addEventListener("click",function(){f!=d&&(f.className=f.className.replace("odRowSelected",""),f=d,f.className+=" odRowSelected",I=c,N=b,v||e(I))})})(m,t)}}}0==g?(c=document.createElement("div"),c.className="odEmptyFolder",c.innerHTML=mxUtils.htmlEntities(mxResources.get("folderEmpty",null,"Folder is empty!")),D.appendChild(c)):D.appendChild(d);B();R=!1}if(!R){u(".odCatsList").style.display=
+"block";u(".odFilesSec").style.display="block";null!=O&&(O.innerHTML="",O.style.top="50%");var q=R=!0,A=0;W=arguments;var t=setTimeout(function(){R=q=!1;J.stop();f(mxResources.get("timeout"))},2E4),D=u(".odFilesList");D.innerHTML="";J.spin(D);var F;switch(b){case "recent":L=[{name:mxResources.get("recent",null,"Recent"),driveId:b}];F=g()||{};var x=[],H;for(H in F)x.push(F[H]);clearTimeout(t);p(x);return;case "shared":F="/me/drive/sharedWithMe";L=[{name:mxResources.get("sharedWithMe",null,"Shared With Me"),
+driveId:b}];break;case "sharepoint":F="/sites?search=";L=[{name:mxResources.get("sharepointSites",null,"Sharepoint Sites"),driveId:b}];A=1;break;case "site":L.push({name:m,driveId:b,folderId:c,siteId:k});F="/sites/"+k+"/drives";A=2;break;case "subsite":L.push({name:m,driveId:b,folderId:c,siteId:k});F="/drives/"+k+(c?"/items/"+c:"/root")+"/children";break;case "search":b=N;L=[{driveId:b,name:mxResources.get("back",null,"Back")}];n=encodeURIComponent(n.replace(/\'/g,"\\'"));F=b?"/drives/"+b+"/root/search(q='"+
+n+"')":"/me/drive/root/search(q='"+n+"')";break;default:null==c?L=[{driveId:b}]:L.push({name:m,driveId:b,folderId:c}),F=(b?"/drives/"+b:"/me/drive")+(c?"/items/"+c:"/root")+"/children"}A||(F+=(0<F.indexOf("?")?"&":"?")+"select=id,name,description,parentReference,file,createdBy,lastModifiedBy,lastModifiedDateTime,size,folder,remoteItem,@microsoft.graph.downloadUrl");d(F,function(b){if(q){clearTimeout(t);b=b.value||[];for(var c=A?b:[],d=0;!A&&d<b.length;d++){var e=b[d],f=e.file?e.file.mimeType:null;
+(e.folder||"text/html"==f||"text/xml"==f||"application/xml"==f||"image/png"==f||/\.svg$/.test(e.name)||/\.html$/.test(e.name)||/\.xml$/.test(e.name)||/\.png$/.test(e.name)||/\.drawio$/.test(e.name)||/\.drawiolib$/.test(e.name))&&c.push(e)}p(c)}},function(b){if(q){clearTimeout(t);var c=null;try{c=JSON.parse(b.responseText).error.message}catch(ka){}f(mxResources.get("errorFetchingFolder",null,"Error fetching folder items")+(null!=c?" ("+c+")":""));R=!1;J.stop()}})}}function F(b){aa.className=aa.className.replace("odCatSelected",
+"");aa=b;aa.className+=" odCatSelected"}function D(b){R||(ja=null,A("search",null,null,null,b))}var E="";null==e&&(e=y,E='<div style="text-align: center;" class="odPreview"></div>');null==g&&(g=function(){var b=null;try{b=JSON.parse(localStorage.getItem("mxODPickerRecentList"))}catch(U){}return b});null==k&&(k=function(b){if(null!=b){var c=g()||{};delete b["@microsoft.graph.downloadUrl"];c[b.id]=b;localStorage.setItem("mxODPickerRecentList",JSON.stringify(c))}});var E='<div class="odCatsList"><div class="odCatsListLbl">OneDrive</div><div id="odFiles" class="odCatListTitle odCatSelected">'+
mxUtils.htmlEntities(mxResources.get("files"))+'</div><div id="odRecent" class="odCatListTitle">'+mxUtils.htmlEntities(mxResources.get("recent"))+'</div><div id="odShared" class="odCatListTitle">'+mxUtils.htmlEntities(mxResources.get("shared"))+'</div><div id="odSharepoint" class="odCatListTitle">'+mxUtils.htmlEntities(mxResources.get("sharepoint"))+'</div></div><div class="odFilesSec"><div class="searchBar" style="display:none"><input type="search" id="odSearchBox" placeholder="'+mxUtils.htmlEntities(mxResources.get("search"))+
-'"></div><div class="odFilesBreadcrumb"></div><div id="refreshOD" class="odRefreshButton"><img src="/images/update32.png" width="16" height="16" title="'+mxUtils.htmlEntities(mxResources.get("refresh"))+'Refresh" border="0"/></div><div class="odFilesList"></div></div>'+D+(m?'<div id="odBackBtn" class="odLinkBtn">&lt; '+mxUtils.htmlEntities(mxResources.get("back"))+"</div>":"")+(p?'<button id="odSubmitBtn" class="odSubmitBtn">'+mxUtils.htmlEntities(mxResources.get(l?"save":"open"))+"</button>":""),
-E=null!=window.Editor&&null!=Editor.isDarkMode&&Editor.isDarkMode(),E=".odCatsList {\tbox-sizing: border-box;\tposition:absolute;\ttop:0px;\tbottom:50%;\twidth:30%;\tborder: 1px solid #CCCCCC;\tborder-bottom:none;\tdisplay: inline-block;\toverflow-x: hidden;\toverflow-y: auto;}.odCatsListLbl {\theight: 17px;\tcolor: #6D6D6D;\tfont-size: 14px;\tfont-weight: bold;\tline-height: 17px;\tmargin: 10px 0 3px 5px;}.odFilesSec {\tbox-sizing: border-box;\tposition:absolute;\tleft:30%;\ttop:0px;\tbottom:50%;\twidth: 70%;\tborder: 1px solid #CCCCCC;\tborder-left:none;\tborder-bottom:none;\tdisplay: inline-block;\toverflow: hidden;}.odFilesBreadcrumb {\tbox-sizing: border-box;\tposition:absolute;\tmin-height: 32px;\tleft:0px;\tright:20px;\ttext-overflow:ellipsis;\toverflow:hidden;\tfont-size: 13px;\tcolor: #6D6D6D;\tpadding: 5px;}.odRefreshButton {\tbox-sizing: border-box;\tposition:absolute;\tright:0px;\ttop:0px;\tpadding: 4px;\tmargin: 1px;\theight:24px;\tcursor:default;}.odRefreshButton>img {\topacity:0.5;}.odRefreshButton:hover {\tbackground-color:#ddd;\tborder-radius:50%;}.odRefreshButton:active {\topacity:0.7;}.odFilesList {\tbox-sizing: border-box;\tposition:absolute;\ttop:32px;\tbottom:0px;\twidth: 100%;\toverflow-x: hidden;\toverflow-y: auto;}.odFileImg {\twidth: 24px;\tpadding-left: 5px;\tpadding-right: 5px;}.odFileTitle {\tcursor: default;\tfont-weight: normal;\tcolor: #666666 !important;\twidth: calc(100% - 20px);\twhite-space: nowrap;\toverflow: hidden;\ttext-overflow: ellipsis;}.odFileListGrid {\twidth: 100%;\twhite-space: nowrap;\tfont-size: 13px; box-sizing: border-box; border-spacing: 0;}.odOddRow {"+
-(E?"":"\tbackground-color: #eeeeee;")+"}.odEvenRow {"+(E?"":"\tbackground-color: #FFFFFF;")+"}.odRowSelected {\tbackground-color: #cadfff;}.odCatListTitle {\tbox-sizing: border-box;\theight: 17px;\tcursor: default;\tcolor: #666666;\tfont-size: 14px;\tline-height: 17px;\tmargin: 5px 0 5px 0px; padding-left: 10px;}.odCatSelected {\tfont-weight: bold;\tbackground-color: #cadfff;}.odEmptyFolder {\theight: 17px;\tcolor: #6D6D6D;\tfont-size: 14px;\tfont-weight: bold;\tline-height: 17px;\tmargin: 10px 0 3px 5px;\twidth: 100%; text-align: center;}.odBCFolder {\tcursor: pointer;\tcolor: #0432ff;}.odPreviewStatus {\tposition:absolute;\ttext-align:center;\twidth:100%;\ttop:50%;\ttransform: translateY(-50%);\tfont-size:13px;\topacity:0.5;}.odPreview { position:absolute;\t overflow:hidden;\t border: 1px solid #CCCCCC; bottom:0px; top: 50%; left:0px; right:0px;}.odLinkBtn { position: absolute;\tfont-size: 12px;\tcursor: pointer;\tcolor: #6D6D6D;\tleft: 5px;\tbottom: 3px;}.odSubmitBtn { position: absolute;\tcolor: #333;\tright: 5px;\tbottom: 5px;}",
-F=new Spinner({left:"50%",lines:12,length:8,width:3,radius:5,rotate:0,color:"#000",speed:1,trail:60,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9}),I=new Editor,J=null,H=null,K=null,N=!1,Q=[],L=null,W=null;this.getSelectedItem=function(){null!=H&&k(H);return H};if(null==v("#mxODPickerCss")){var X=document.head||document.getElementsByTagName("head")[0],S=document.createElement("style");X.appendChild(S);S.type="text/css";S.id="mxODPickerCss";S.appendChild(document.createTextNode(E))}b.innerHTML=
-D;var M=v(".odPreview"),P=v("#odFiles");b=function(b,c){c=c||document;return c.querySelectorAll(b)}(".odCatListTitle");for(D=0;D<b.length;D++)b[D].addEventListener("click",function(){H=W=null;if(!N)switch(A(this),this.id){case "odFiles":C();break;case "odRecent":C("recent");break;case "odShared":C("shared");break;case "odSharepoint":C("sharepoint")}});var aa=null;v("#odSearchBox").addEventListener("keyup",function(b){var c=this;null!=aa&&clearTimeout(aa);13==b.keyCode?G(c.value):aa=setTimeout(function(){G(c.value)},
-500)});v("#refreshOD").addEventListener("click",function(){null!=L&&(e(null),C.apply(this,L))});m&&v("#odBackBtn").addEventListener("click",m);p&&v("#odSubmitBtn").addEventListener("click",x);null!=t?(m=t.pop(),"sharepoint"==t[0].driveId&&A(v("#odSharepoint")),Q=t,C(m.driveId,m.folderId,m.siteId,m.name)):C()};App=function(b,e,d){EditorUi.call(this,b,e,null!=d?d:"1"==urlParams.lightbox||"min"==uiTheme&&"0"!=urlParams.chrome);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||(window.onunload=mxUtils.bind(this,function(){var b=this.getCurrentFile();if(null!=b&&b.isModified()){var d={category:"DISCARD-FILE-"+b.getHash(),action:(b.savingFile?"saving":"")+(b.savingFile&&null!=b.savingFileTime?"_"+Math.round((Date.now()-b.savingFileTime.getTime())/1E3):"")+(null!=b.saveLevel?"-sl_"+b.saveLevel:"")+"-age_"+(null!=
+'"></div><div class="odFilesBreadcrumb"></div><div id="refreshOD" class="odRefreshButton"><img src="/images/update32.png" width="16" height="16" title="'+mxUtils.htmlEntities(mxResources.get("refresh"))+'Refresh" border="0"/></div><div class="odFilesList"></div></div>'+E+(m?'<div id="odBackBtn" class="odLinkBtn">&lt; '+mxUtils.htmlEntities(mxResources.get("back"))+"</div>":"")+(p?'<button id="odSubmitBtn" class="odSubmitBtn">'+mxUtils.htmlEntities(mxResources.get(l?"save":"open"))+"</button>":""),
+G=null!=window.Editor&&null!=Editor.isDarkMode&&Editor.isDarkMode(),G=".odCatsList *, .odFilesSec * { user-select: none; }.odCatsList {\tbox-sizing: border-box;\tposition:absolute;\ttop:0px;\tbottom:50%;\twidth:30%;\tborder: 1px solid #CCCCCC;\tborder-bottom:none;\tdisplay: inline-block;\toverflow-x: hidden;\toverflow-y: auto;}.odCatsListLbl {\theight: 17px;\tcolor: #6D6D6D;\tfont-size: 14px;\tfont-weight: bold;\tline-height: 17px;\tmargin: 10px 0 3px 5px;}.odFilesSec {\tbox-sizing: border-box;\tposition:absolute;\tleft:30%;\ttop:0px;\tbottom:50%;\twidth: 70%;\tborder: 1px solid #CCCCCC;\tborder-left:none;\tborder-bottom:none;\tdisplay: inline-block;\toverflow: hidden;}.odFilesBreadcrumb {\tbox-sizing: border-box;\tposition:absolute;\tmin-height: 32px;\tleft:0px;\tright:20px;\ttext-overflow:ellipsis;\toverflow:hidden;\tfont-size: 13px;\tcolor: #6D6D6D;\tpadding: 5px;}.odRefreshButton {\tbox-sizing: border-box;\tposition:absolute;\tright:0px;\ttop:0px;\tpadding: 4px;\tmargin: 1px;\theight:24px;\tcursor:default;}.odRefreshButton>img {\topacity:0.5;}.odRefreshButton:hover {\tbackground-color:#ddd;\tborder-radius:50%;}.odRefreshButton:active {\topacity:0.7;}.odFilesList {\tbox-sizing: border-box;\tposition:absolute;\ttop:32px;\tbottom:0px;\twidth: 100%;\toverflow-x: hidden;\toverflow-y: auto;}.odFileImg {\twidth: 24px;\tpadding-left: 5px;\tpadding-right: 5px;}.odFileTitle {\tcursor: default;\tfont-weight: normal;\tcolor: #666666 !important;\twidth: calc(100% - 20px);\twhite-space: nowrap;\toverflow: hidden;\ttext-overflow: ellipsis;}.odFileListGrid {\twidth: 100%;\twhite-space: nowrap;\tfont-size: 13px; box-sizing: border-box; border-spacing: 0;}.odOddRow {"+
+(G?"":"\tbackground-color: #eeeeee;")+"}.odEvenRow {"+(G?"":"\tbackground-color: #FFFFFF;")+"}.odRowSelected {\tbackground-color: #cadfff;}.odCatListTitle {\tbox-sizing: border-box;\theight: 17px;\tcursor: default;\tcolor: #666666;\tfont-size: 14px;\tline-height: 17px;\tmargin: 5px 0 5px 0px; padding-left: 10px;}.odCatSelected {\tfont-weight: bold;\tbackground-color: #cadfff;}.odEmptyFolder {\theight: 17px;\tcolor: #6D6D6D;\tfont-size: 14px;\tfont-weight: bold;\tline-height: 17px;\tmargin: 10px 0 3px 5px;\twidth: 100%; text-align: center;}.odBCFolder {\tcursor: pointer;\tcolor: #0432ff;}.odPreviewStatus {\tposition:absolute;\ttext-align:center;\twidth:100%;\ttop:50%;\ttransform: translateY(-50%);\tfont-size:13px;\topacity:0.5;}.odPreview { position:absolute;\t overflow:hidden;\t border: 1px solid #CCCCCC; bottom:0px; top: 50%; left:0px; right:0px;}.odLinkBtn { position: absolute;\tfont-size: 12px;\tcursor: pointer;\tcolor: #6D6D6D;\tleft: 5px;\tbottom: 3px;}.odSubmitBtn { position: absolute;\tcolor: #333;\tright: 5px;\tbottom: 5px;}",
+J=new Spinner({left:"50%",lines:12,length:8,width:3,radius:5,rotate:0,color:"#000",speed:1,trail:60,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9}),K=new Editor,H=null,I=null,N=null,R=!1,L=[],W=null,X=null;this.getSelectedItem=function(){null!=I&&k(I);return I};if(null==u("#mxODPickerCss")){var S=document.head||document.getElementsByTagName("head")[0],M=document.createElement("style");S.appendChild(M);M.type="text/css";M.id="mxODPickerCss";M.appendChild(document.createTextNode(G))}b.innerHTML=
+E;var O=u(".odPreview"),aa=u("#odFiles");b=function(b,c){c=c||document;return c.querySelectorAll(b)}(".odCatListTitle");for(E=0;E<b.length;E++)b[E].addEventListener("click",function(){I=X=null;if(!R)switch(F(this),this.id){case "odFiles":A();break;case "odRecent":A("recent");break;case "odShared":A("shared");break;case "odSharepoint":A("sharepoint")}});var ja=null;u("#odSearchBox").addEventListener("keyup",function(b){var c=this;null!=ja&&clearTimeout(ja);13==b.keyCode?D(c.value):ja=setTimeout(function(){D(c.value)},
+500)});u("#refreshOD").addEventListener("click",function(){null!=W&&(e(null),A.apply(this,W))});m&&u("#odBackBtn").addEventListener("click",m);p&&u("#odSubmitBtn").addEventListener("click",z);null!=t?(m=t.pop(),"sharepoint"==t[0].driveId&&F(u("#odSharepoint")),L=t,A(m.driveId,m.folderId,m.siteId,m.name)):A()};App=function(b,e,d){EditorUi.call(this,b,e,null!=d?d:"1"==urlParams.lightbox||"min"==uiTheme&&"0"!=urlParams.chrome);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||(window.onunload=mxUtils.bind(this,function(){var b=this.getCurrentFile();if(null!=b&&b.isModified()){var d={category:"DISCARD-FILE-"+b.getHash(),action:(b.savingFile?"saving":"")+(b.savingFile&&null!=b.savingFileTime?"_"+Math.round((Date.now()-b.savingFileTime.getTime())/1E3):"")+(null!=b.saveLevel?"-sl_"+b.saveLevel:"")+"-age_"+(null!=
b.ageStart?Math.round((Date.now()-b.ageStart.getTime())/1E3):"x")+(this.editor.autosave?"":"-nosave")+(b.isAutosave()?"":"-noauto")+"-open_"+(null!=b.opened?Math.round((Date.now()-b.opened.getTime())/1E3):"x")+"-save_"+(null!=b.lastSaved?Math.round((Date.now()-b.lastSaved.getTime())/1E3):"x")+"-change_"+(null!=b.lastChanged?Math.round((Date.now()-b.lastChanged.getTime())/1E3):"x")+"-alive_"+Math.round((Date.now()-App.startTime.getTime())/1E3),label:null!=b.sync?"client_"+b.sync.clientId:"nosync"};
b.constructor==DriveFile&&null!=b.desc&&null!=this.drive&&(d.label+=(null!=this.drive.user?"-user_"+this.drive.user.id:"-nouser")+"-rev_"+b.desc.headRevisionId+"-mod_"+b.desc.modifiedDate+"-size_"+b.getSize()+"-mime_"+b.desc.mimeType);EditorUi.logEvent(d)}}));this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(){var b=this.getCurrentFile();null!=b&&EditorUi.logEvent({category:(this.editor.autosave?"ON":"OFF")+"-AUTOSAVE-FILE-"+b.getHash(),action:"changed",label:"autosave_"+(this.editor.autosave?
"on":"off")})}));mxClient.IS_SVG?mxGraph.prototype.warningImage.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAE7SURBVHjaYvz//z8DJQAggBjwGXDuHMP/tWuD/uPTCxBAOA0AaQRK/f/+XeJ/cbHlf1wGAAQQTgPu3QNLgfHSpZo4DQAIIKwGwGyH4e/fFbG6AiQJEEAs2Ew2NFzH8OOHBMO6dT/A/KCg7wxGRh+wuhQggDBcALMdFIAcHBxgDGJjcwVIIUAAYbhAUXEdVos4OO4DXcGBIQ4QQCguQPY7sgtgAYruCpAgQACx4LJdU1OCwctLEcyWlLwPJF+AXQE0EMUBAAEEdwF6yMOiD4RRY0QT7gqQAEAAseDzu6XldYYPH9DD4joQa8L5AAEENgWb7SBcXa0JDQMBrK4AcQACiAlfyOMCEFdAnAYQQEz4FLa0XGf4/v0H0IIPONUABBAjyBmMjIwMS5cK/L927QORbtBkaG29DtYLEGAAH6f7oq3Zc+kAAAAASUVORK5CYII=":
@@ -12174,10 +12174,10 @@ App.prototype.onBeforeUnload=function(){if("1"==urlParams.embed&&this.editor.mod
App.prototype.updateDocumentTitle=function(){if(!this.editor.graph.isLightboxView()){var b=this.editor.appName,e=this.getCurrentFile();this.isOfflineApp()&&(b+=" app");null!=e&&(b=(null!=e.getTitle()?e.getTitle():this.defaultFilename)+" - "+b);document.title!=b&&(document.title=b,b=this.editor.graph,b.invalidateDescendantsWithPlaceholders(b.model.getRoot()),b.view.validate())}};
App.prototype.getThumbnail=function(b,e){var d=!1;try{var c=!0,g=window.setTimeout(mxUtils.bind(this,function(){c=!1;e(null)}),this.timeout),k=mxUtils.bind(this,function(b){window.clearTimeout(g);c&&e(b)});null==this.thumbImageCache&&(this.thumbImageCache={});var n=this.editor.graph,f=n.backgroundImage,l=null!=n.themes&&"darkTheme"==n.defaultThemeName;if(null!=this.pages&&(l||this.currentPage!=this.pages[0])){var m=n.getGlobalVariable,n=this.createTemporaryGraph(n.getStylesheet());n.setBackgroundImage=
this.editor.graph.setBackgroundImage;var p=this.pages[0];this.currentPage==p?n.setBackgroundImage(f):null!=p.viewState&&null!=p.viewState&&(f=p.viewState.backgroundImage,n.setBackgroundImage(f));n.getGlobalVariable=function(b){return"page"==b?p.getName():"pagenumber"==b?1:m.apply(this,arguments)};n.getGlobalVariable=m;document.body.appendChild(n.container);n.model.setRoot(p.root)}if(mxClient.IS_CHROMEAPP||this.useCanvasForExport)this.editor.exportToCanvas(mxUtils.bind(this,function(b){try{n!=this.editor.graph&&
-null!=n.container.parentNode&&n.container.parentNode.removeChild(n.container)}catch(I){b=null}k(b)}),b,this.thumbImageCache,"#ffffff",function(){k()},null,null,null,null,null,null,n,null,null,null,null,"diagram",null),d=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var q=document.createElement("canvas"),t=n.getGraphBounds(),v=n.view.translate,u=n.view.scale;null!=f&&(t=mxRectangle.fromRectangle(t),t.add(new mxRectangle((v.x+f.x)*u,(v.y+f.y)*u,f.width*u,f.height*u)));var x=b/t.width,
-x=Math.min(1,Math.min(3*b/(4*t.height),x)),z=Math.floor(t.x),y=Math.floor(t.y);q.setAttribute("width",Math.ceil(x*(t.width+4)));q.setAttribute("height",Math.ceil(x*(t.height+4)));var B=q.getContext("2d");B.scale(x,x);B.translate(-z,-y);var C=n.background;if(null==C||""==C||C==mxConstants.NONE)C="#ffffff";B.save();B.fillStyle=C;B.fillRect(z,y,Math.ceil(t.width+4),Math.ceil(t.height+4));B.restore();if(null!=f){var A=new Image;A.src=f.src;B.drawImage(A,f.x*x,f.y*x,f.width*x,f.height*x)}var G=new mxJsCanvas(q),
-D=new mxAsyncCanvas(this.thumbImageCache);G.images=this.thumbImageCache.images;var E=new mxImageExport;E.drawShape=function(b,c){b.shape instanceof mxShape&&b.shape.checkBounds()&&(c.save(),c.translate(.5,.5),b.shape.paint(c),c.translate(-.5,-.5),c.restore())};E.drawText=function(b,c){};E.drawState(n.getView().getState(n.model.root),D);D.finish(mxUtils.bind(this,function(){try{E.drawState(n.getView().getState(n.model.root),G),n!=this.editor.graph&&null!=n.container.parentNode&&n.container.parentNode.removeChild(n.container)}catch(F){q=
-null}k(q)}));d=!0}}catch(F){d=!1,null!=n&&n!=this.editor.graph&&null!=n.container.parentNode&&n.container.parentNode.removeChild(n.container)}d||window.clearTimeout(g);return d};App.prototype.createBackground=function(){var b=this.createDiv("background");b.style.position="absolute";b.style.background="white";b.style.left="0px";b.style.top="0px";b.style.bottom="0px";b.style.right="0px";mxUtils.setOpacity(b,100);return b};
+null!=n.container.parentNode&&n.container.parentNode.removeChild(n.container)}catch(J){b=null}k(b)}),b,this.thumbImageCache,"#ffffff",function(){k()},null,null,null,null,null,null,n,null,null,null,null,"diagram",null),d=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var q=document.createElement("canvas"),t=n.getGraphBounds(),v=n.view.translate,u=n.view.scale;null!=f&&(t=mxRectangle.fromRectangle(t),t.add(new mxRectangle((v.x+f.x)*u,(v.y+f.y)*u,f.width*u,f.height*u)));var x=b/t.width,
+x=Math.min(1,Math.min(3*b/(4*t.height),x)),z=Math.floor(t.x),y=Math.floor(t.y);q.setAttribute("width",Math.ceil(x*(t.width+4)));q.setAttribute("height",Math.ceil(x*(t.height+4)));var B=q.getContext("2d");B.scale(x,x);B.translate(-z,-y);var C=n.background;if(null==C||""==C||C==mxConstants.NONE)C="#ffffff";B.save();B.fillStyle=C;B.fillRect(z,y,Math.ceil(t.width+4),Math.ceil(t.height+4));B.restore();if(null!=f){var A=new Image;A.src=f.src;B.drawImage(A,f.x*x,f.y*x,f.width*x,f.height*x)}var F=new mxJsCanvas(q),
+D=new mxAsyncCanvas(this.thumbImageCache);F.images=this.thumbImageCache.images;var E=new mxImageExport;E.drawShape=function(b,c){b.shape instanceof mxShape&&b.shape.checkBounds()&&(c.save(),c.translate(.5,.5),b.shape.paint(c),c.translate(-.5,-.5),c.restore())};E.drawText=function(b,c){};E.drawState(n.getView().getState(n.model.root),D);D.finish(mxUtils.bind(this,function(){try{E.drawState(n.getView().getState(n.model.root),F),n!=this.editor.graph&&null!=n.container.parentNode&&n.container.parentNode.removeChild(n.container)}catch(G){q=
+null}k(q)}));d=!0}}catch(G){d=!1,null!=n&&n!=this.editor.graph&&null!=n.container.parentNode&&n.container.parentNode.removeChild(n.container)}d||window.clearTimeout(g);return d};App.prototype.createBackground=function(){var b=this.createDiv("background");b.style.position="absolute";b.style.background="white";b.style.left="0px";b.style.top="0px";b.style.bottom="0px";b.style.right="0px";mxUtils.setOpacity(b,100);return b};
(function(){var b=EditorUi.prototype.setMode;App.prototype.setMode=function(e,d){b.apply(this,arguments);null!=this.mode&&(Editor.useLocalStorage=this.mode==App.MODE_BROWSER);if(null!=this.appIcon){var c=this.getCurrentFile();e=null!=c?c.getMode():e;e==App.MODE_GOOGLE?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("googleDrive")])),this.appIcon.style.cursor="pointer"):e==App.MODE_DROPBOX?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("dropbox")])),
this.appIcon.style.cursor="pointer"):e==App.MODE_ONEDRIVE?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("oneDrive")])),this.appIcon.style.cursor="pointer"):(this.appIcon.removeAttribute("title"),this.appIcon.style.cursor=e==App.MODE_DEVICE?"pointer":"default")}if(d)try{if(isLocalStorage)localStorage.setItem(".mode",e);else if("undefined"!=typeof Storage){var g=new Date;g.setYear(g.getFullYear()+1);document.cookie="MODE="+e+"; expires="+g.toUTCString()}}catch(k){}}})();
App.prototype.appIconClicked=function(b){if(mxEvent.isAltDown(b))this.showSplash(!0);else{var e=this.getCurrentFile(),d=null!=e?e.getMode():null;d==App.MODE_GOOGLE?null!=e&&null!=e.desc&&null!=e.desc.parents&&0<e.desc.parents.length&&!mxEvent.isShiftDown(b)?this.openLink("https://drive.google.com/drive/folders/"+e.desc.parents[0].id):null!=e&&null!=e.getId()?this.openLink("https://drive.google.com/open?id="+e.getId()):this.openLink("https://drive.google.com/?authuser=0"):d==App.MODE_ONEDRIVE?null!=
@@ -12387,9 +12387,9 @@ this.tagsWindow&&this.tagsWindow.window.isVisible()}));p=c.actions.addAction("fi
this[k].window.setVisible(!0)}else this[k].window.setVisible(!this[k].window.isVisible())}),null,null,Editor.ctrlKey+"+F");p.setToggleAction(!0);p.setSelectedCallback(mxUtils.bind(this,function(){var b=g.isEnabled()?"findReplaceWindow":"findWindow";return null!=this[b]&&this[b].window.isVisible()}));c.actions.put("exportVsdx",new Action(mxResources.get("formatVsdx")+" (beta)...",function(){var b=null==c.pages||1>=c.pages.length;if(b)c.exportVisio();else{var d=document.createElement("div");d.style.whiteSpace=
"nowrap";var e=document.createElement("h3");mxUtils.write(e,mxResources.get("formatVsdx"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(e);var f=c.addCheckbox(d,mxResources.get("allPages"),!b,b);f.style.marginBottom="16px";b=new CustomDialog(c,d,mxUtils.bind(this,function(){c.exportVisio(!f.checked)}),null,mxResources.get("export"));c.showDialog(b.container,300,130,!0,!0)}}));isLocalStorage&&null!=localStorage&&"1"!=urlParams.embed&&c.actions.addAction("configuration...",
function(){var b=document.createElement("input");b.setAttribute("type","checkbox");b.style.marginRight="4px";b.checked=mxSettings.getShowStartScreen();b.defaultChecked=b.checked;if(c.isSettingsEnabled()&&"1"==urlParams.sketch){var d=document.createElement("span");d.style["float"]="right";d.style.cursor="pointer";d.style.userSelect="none";d.style.marginTop="-4px";d.appendChild(b);mxUtils.write(d,mxResources.get("showStartScreen"));mxEvent.addListener(d,"click",function(c){mxEvent.getSource(c)!=b&&
-(b.checked=!b.checked)});header=d}var e=localStorage.getItem(Editor.configurationKey),d=[[mxResources.get("reset"),function(b,d){c.confirm(mxResources.get("areYouSure"),function(){try{mxEvent.isShiftDown(b)?(localStorage.removeItem(Editor.settingsKey),localStorage.removeItem(".drawio-config")):(localStorage.removeItem(Editor.configurationKey),c.hideDialog(),c.alert(mxResources.get("restartForChangeRequired")))}catch(J){c.handleError(J)}})},"Shift+Click to Reset Settings"]],f=c.actions.get("plugins");
+(b.checked=!b.checked)});header=d}var e=localStorage.getItem(Editor.configurationKey),d=[[mxResources.get("reset"),function(b,d){c.confirm(mxResources.get("areYouSure"),function(){try{mxEvent.isShiftDown(b)?(localStorage.removeItem(Editor.settingsKey),localStorage.removeItem(".drawio-config")):(localStorage.removeItem(Editor.configurationKey),c.hideDialog(),c.alert(mxResources.get("restartForChangeRequired")))}catch(K){c.handleError(K)}})},"Shift+Click to Reset Settings"]],f=c.actions.get("plugins");
null!=f&&"1"==urlParams.sketch&&d.push([mxResources.get("plugins"),f.funct]);EditorUi.isElectronApp||d.push([mxResources.get("share"),function(b,d){if(0<d.value.length)try{var e=JSON.parse(d.value),f=window.location.protocol+"//"+window.location.host+"/"+c.getSearch()+"#_CONFIG_"+Graph.compress(JSON.stringify(e)),g=new EmbedDialog(c,f);c.showDialog(g.container,450,240,!0);g.init()}catch(N){c.handleError(N)}else c.handleError({message:mxResources.get("invalidInput")})}]);d=new TextareaDialog(c,mxResources.get("configuration")+
-":",null!=e?JSON.stringify(JSON.parse(e),null,2):"",function(d){if(null!=d)try{if(null!=b.parentNode&&(mxSettings.setShowStartScreen(b.checked),mxSettings.save()),d==e)c.hideDialog();else{if(0<d.length){var f=JSON.parse(d);localStorage.setItem(Editor.configurationKey,JSON.stringify(f))}else localStorage.removeItem(Editor.configurationKey);c.hideDialog();c.alert(mxResources.get("restartForChangeRequired"))}}catch(J){c.handleError(J)}},null,null,null,null,null,!0,null,null,"https://www.diagrams.net/doc/faq/configure-diagram-editor",
+":",null!=e?JSON.stringify(JSON.parse(e),null,2):"",function(d){if(null!=d)try{if(null!=b.parentNode&&(mxSettings.setShowStartScreen(b.checked),mxSettings.save()),d==e)c.hideDialog();else{if(0<d.length){var f=JSON.parse(d);localStorage.setItem(Editor.configurationKey,JSON.stringify(f))}else localStorage.removeItem(Editor.configurationKey);c.hideDialog();c.alert(mxResources.get("restartForChangeRequired"))}}catch(K){c.handleError(K)}},null,null,null,null,null,!0,null,null,"https://www.diagrams.net/doc/faq/configure-diagram-editor",
d,b.parentNode);c.showDialog(d.container,620,460,!0,!1);d.init()});if(mxClient.IS_CHROMEAPP||isLocalStorage){this.put("language",new Menu(mxUtils.bind(this,function(b,d){var e=mxUtils.bind(this,function(e){var f=""==e?mxResources.get("automatic"):mxLanguageMap[e],g=null;""!=f&&(g=b.addItem(f,null,mxUtils.bind(this,function(){mxSettings.setLanguage(e);mxSettings.save();mxClient.language=e;mxResources.loadDefaultBundle=!1;mxResources.add(RESOURCE_BASE);c.alert(mxResources.get("restartForChangeRequired"))}),
d),(e==mxLanguage||""==e&&null==mxLanguage)&&b.addCheckmark(g,Editor.checkmarkImage));return g});e("");b.addSeparator(d);for(var f in mxLanguageMap)e(f)})));var u=Menus.prototype.createMenubar;Menus.prototype.createMenubar=function(b){var c=u.apply(this,arguments);if(null!=c&&"1"!=urlParams.noLangIcon){var d=this.get("language");if(null!=d){d=c.addMenu("",d.funct);d.setAttribute("title",mxResources.get("language"));d.style.width="16px";d.style.paddingTop="2px";d.style.paddingLeft="4px";d.style.zIndex=
"1";d.style.position="absolute";d.style.display="block";d.style.cursor="pointer";d.style.right="17px";"atlas"==uiTheme?(d.style.top="6px",d.style.right="15px"):d.style.top="min"==uiTheme?"2px":"0px";var e=document.createElement("div");e.style.backgroundImage="url("+Editor.globeImage+")";e.style.backgroundPosition="center center";e.style.backgroundRepeat="no-repeat";e.style.backgroundSize="19px 19px";e.style.position="absolute";e.style.height="19px";e.style.width="19px";e.style.marginTop="2px";e.style.zIndex=
@@ -12410,7 +12410,7 @@ mxUtils.bind(this,function(){var b=g.getGraphBounds(),c=g.view.translate,d=g.vie
!0,null!=f[b]){for(;0<f[b].length;){var e=f[b].pop();c(e)}delete f[b]}}else mxLog.debug(d+": Visited: "+b)}var d=b.parentNode.id,e=b.childNodes;b={};for(var f={},g=null,k={},l=0;l<e.length;l++){var m=e[l];if(null!=m.id&&0<m.id.length)if(null==b[m.id]){b[m.id]=m.id;var n=m.getAttribute("parent");null==n?null!=g?mxLog.debug(d+": Multiple roots: "+m.id):g=m.id:(null==f[n]&&(f[n]=[]),f[n].push(m.id))}else k[m.id]=m.id}e=Object.keys(k);0<e.length?(e=d+": "+e.length+" Duplicates: "+e.join(", "),mxLog.debug(e+
" (see console)")):mxLog.debug(d+": Checked");var p={};null==g?mxLog.debug(d+": No root"):(c(g),Object.keys(p).length!=Object.keys(b).length&&(mxLog.debug(d+": Invalid tree: (see console)"),console.log(d+": Invalid tree",f)))};"<"!=b.charAt(0)&&(b=Graph.decompress(b),mxLog.debug("See console for uncompressed XML"),console.log("xml",b));var e=mxUtils.parseXml(b),f=c.getPagesForNode(e.documentElement,"mxGraphModel");if(null!=f&&0<f.length)try{var g=c.getHashValueForPages(f);mxLog.debug("Checksum: ",
g)}catch(H){mxLog.debug("Error: ",H.message)}else mxLog.debug("No pages found for checksum");var k=e.getElementsByTagName("root");for(b=0;b<k.length;b++)d(k[b]);mxLog.show()}catch(H){c.handleError(H),null!=window.console&&console.error(H)}});c.showDialog(b.container,620,460,!0,!0);b.init()}));var z=null;c.actions.addAction("testDiff",mxUtils.bind(this,function(){if(null!=c.pages){var b=new TextareaDialog(c,"Diff/Sync:","",function(b){var d=c.getCurrentFile();if(0<b.length&&null!=d)try{var e=JSON.parse(b);
-d.patch([e],null,!0);c.hideDialog()}catch(F){c.handleError(F)}},null,"Close",null,null,null,!0,null,"Patch",null,[["Snapshot",function(d,e){z=c.getPagesForXml(c.getFileData(!0));b.textarea.value="Snapshot updated "+(new Date).toLocaleString()+" Checksum "+c.getHashValueForPages(z)}],["Diff",function(d,e){try{b.textarea.value=JSON.stringify(c.diffPages(z,c.pages),null,2)}catch(E){c.handleError(E)}}]]);null==z?(z=c.getPagesForXml(c.getFileData(!0)),b.textarea.value="Snapshot created "+(new Date).toLocaleString()+
+d.patch([e],null,!0);c.hideDialog()}catch(G){c.handleError(G)}},null,"Close",null,null,null,!0,null,"Patch",null,[["Snapshot",function(d,e){z=c.getPagesForXml(c.getFileData(!0));b.textarea.value="Snapshot updated "+(new Date).toLocaleString()+" Checksum "+c.getHashValueForPages(z)}],["Diff",function(d,e){try{b.textarea.value=JSON.stringify(c.diffPages(z,c.pages),null,2)}catch(E){c.handleError(E)}}]]);null==z?(z=c.getPagesForXml(c.getFileData(!0)),b.textarea.value="Snapshot created "+(new Date).toLocaleString()+
" Checksum "+c.getHashValueForPages(z)):b.textarea.value=JSON.stringify(c.diffPages(z,c.pages),null,2);c.showDialog(b.container,620,460,!0,!0);b.init()}else c.alert("No pages")}));c.actions.addAction("testInspectPages",mxUtils.bind(this,function(){var b=c.getCurrentFile();console.log("editorUi",c);if(null!=b&&b.isRealtime()){console.log("Checksum ownPages: "+c.getHashValueForPages(b.ownPages));console.log("Checksum theirPages: "+c.getHashValueForPages(b.theirPages));console.log("diff ownPages/theirPages",
c.diffPages(b.ownPages,b.theirPages));var d=b.getShadowPages();null!=d&&(console.log("Checksum shadowPages: "+c.getHashValueForPages(d)),console.log("diff shadowPages/ownPages",c.diffPages(d,b.ownPages)),console.log("diff ownPages/shadowPages",c.diffPages(b.ownPages,d)),console.log("diff theirPages/shadowPages",c.diffPages(b.theirPages,d)));null!=b.sync&&null!=b.sync.snapshot&&(console.log("Checksum snapshot: "+c.getHashValueForPages(b.sync.snapshot)),console.log("diff ownPages/snapshot",c.diffPages(b.ownPages,
b.sync.snapshot)),console.log("diff theirPages/snapshot",c.diffPages(b.theirPages,b.sync.snapshot)),null!=c.pages&&console.log("diff snapshot/actualPages",c.diffPages(b.sync.snapshot,c.pages)));null!=c.pages&&(console.log("Checksum actualPages: "+c.getHashValueForPages(c.pages)),console.log("diff ownPages/actualPages",c.diffPages(b.ownPages,c.pages)),console.log("diff theirPages/actualPages",c.diffPages(b.theirPages,c.pages)))}}));c.actions.addAction("testFixPages",mxUtils.bind(this,function(){console.log("editorUi",
@@ -12450,7 +12450,7 @@ mxUtils.bind(this,function(b){this.editorUi.spinner.stop()}),mxUtils.bind(this,f
b.saveAs(d,mxUtils.bind(this,function(d){b.desc=d;b.save(!1,mxUtils.bind(this,function(){c.spinner.stop();b.setModified(!1);b.addAllSavedStatus()}),mxUtils.bind(this,function(b){c.handleError(b)}))}),mxUtils.bind(this,function(b){c.handleError(b)})):c.createFile(d,c.getFileData(!0),null,e)))}),mxUtils.bind(this,function(){c.hideDialog()}),mxResources.get("makeCopy"),mxResources.get("create"),null,null,!0,null,!0,null,null,null,null,c.editor.fileExtensions),c.showDialog(d.container,420,380,!0,!0),
d.init()):c.editor.editAsNew(this.editorUi.getFileData(!0),d)}}));c.actions.addAction("moveToFolder...",mxUtils.bind(this,function(){var b=c.getCurrentFile();if(b.getMode()==App.MODE_GOOGLE||b.getMode()==App.MODE_ONEDRIVE){var d=!1;if(b.getMode()==App.MODE_GOOGLE&&null!=b.desc.parents)for(var e=0;e<b.desc.parents.length;e++)if(b.desc.parents[e].isRoot){d=!0;break}c.pickFolder(b.getMode(),mxUtils.bind(this,function(d){c.spinner.spin(document.body,mxResources.get("moving"))&&b.move(d,mxUtils.bind(this,
function(b){c.spinner.stop()}),mxUtils.bind(this,function(b){c.handleError(b)}))}),null,!0,d)}}));this.put("publish",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b,["publishLink"],c)})));c.actions.put("useOffline",new Action(mxResources.get("useOffline")+"...",function(){c.openLink("https://app.draw.io/")}));c.actions.put("downloadDesktop",new Action(mxResources.get("downloadDesktop")+"...",function(){c.openLink("https://get.draw.io/")}));this.editorUi.actions.addAction("share...",mxUtils.bind(this,
-function(){try{var b=c.getCurrentFile();null!=b&&b.share()}catch(G){c.handleError(G)}}));this.put("embed",new Menu(mxUtils.bind(this,function(b,d){var e=c.getCurrentFile();null==e||e.getMode()!=App.MODE_GOOGLE&&e.getMode()!=App.MODE_GITHUB||!/(\.png)$/i.test(e.getTitle())||this.addMenuItems(b,["liveImage","-"],d);this.addMenuItems(b,["embedImage","embedSvg","-","embedHtml"],d);navigator.standalone||c.isOffline()||this.addMenuItems(b,["embedIframe"],d);"1"==urlParams.embed||c.isOffline()||this.addMenuItems(b,
+function(){try{var b=c.getCurrentFile();null!=b&&b.share()}catch(F){c.handleError(F)}}));this.put("embed",new Menu(mxUtils.bind(this,function(b,d){var e=c.getCurrentFile();null==e||e.getMode()!=App.MODE_GOOGLE&&e.getMode()!=App.MODE_GITHUB||!/(\.png)$/i.test(e.getTitle())||this.addMenuItems(b,["liveImage","-"],d);this.addMenuItems(b,["embedImage","embedSvg","-","embedHtml"],d);navigator.standalone||c.isOffline()||this.addMenuItems(b,["embedIframe"],d);"1"==urlParams.embed||c.isOffline()||this.addMenuItems(b,
"- googleDocs googleSlides googleSheets - microsoftOffice - embedNotion".split(" "),d)})));c.addInsertItem=function(b,d,e,f){("plantUml"!=f||EditorUi.enablePlantUml&&!c.isOffline())&&b.addItem(e,null,mxUtils.bind(this,function(){if("fromText"==f||"formatSql"==f||"plantUml"==f||"mermaid"==f){var b=new ParseDialog(c,e,f);c.showDialog(b.container,620,420,!0,!1);c.dialog.container.style.overflow="auto"}else b=new CreateGraphDialog(c,e,f),c.showDialog(b.container,620,420,!0,!1);b.init()}),d,null,k())};
var y=function(b,d,e,f){var k=new mxCell(b,new mxGeometry(0,0,d,e),f);k.vertex=!0;b=g.getCenterInsertPoint(g.getBoundingBoxFromGeometry([k],!0));k.geometry.x=b.x;k.geometry.y=b.y;g.getModel().beginUpdate();try{k=g.addCell(k),g.fireEvent(new mxEventObject("cellsInserted","cells",[k]))}finally{g.getModel().endUpdate()}g.scrollCellToVisible(k);g.setSelectionCell(k);g.container.focus();g.editAfterInsert&&g.startEditing(k);window.setTimeout(function(){null!=c.hoverIcons&&c.hoverIcons.update(g.view.getState(k))},
0);return k};c.actions.put("insertText",new Action(mxResources.get("text"),function(){g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())&&g.startEditingAtCell(y("Text",40,20,"text;html=1;resizable=0;autosize=1;align=center;verticalAlign=middle;points=[];fillColor=none;strokeColor=none;rounded=0;"))}),null,null,Editor.ctrlKey+"+Shift+X").isEnabled=k;c.actions.put("insertRectangle",new Action(mxResources.get("rectangle"),function(){g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())&&y("",120,60,
@@ -12469,7 +12469,7 @@ d);null!=c.gitLab&&b.addItem(mxResources.get("gitlab")+"...",null,function(){c.s
" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1));null!=c.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",null,function(){c.pickLibrary(App.MODE_ONEDRIVE)},d):l&&"function"===typeof window.OneDriveClient&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=c.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){c.pickLibrary(App.MODE_DROPBOX)},d):f&&"function"===typeof window.DropboxClient&&b.addItem(mxResources.get("dropbox")+
" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);b.addSeparator(d);null!=c.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){c.pickLibrary(App.MODE_GITHUB)},d);null!=c.gitLab&&b.addItem(mxResources.get("gitlab")+"...",null,function(){c.pickLibrary(App.MODE_GITLAB)},d);null!=c.trello?b.addItem(mxResources.get("trello")+"...",null,function(){c.pickLibrary(App.MODE_TRELLO)},d):m&&"function"===typeof window.TrelloClient&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+
"...)",null,function(){},d,null,!1);b.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+"...",null,function(){c.pickLibrary(App.MODE_BROWSER)},d);"1"!=urlParams.noDevice&&b.addItem(mxResources.get("device")+"...",null,function(){c.pickLibrary(App.MODE_DEVICE)},d);c.isOffline()||(b.addSeparator(d),b.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(c,"",mxResources.get("open"),function(b){if(null!=b&&0<b.length&&c.spinner.spin(document.body,
-mxResources.get("loading"))){var d=b;c.editor.isCorsEnabledForUrl(b)||(d=PROXY_URL+"?url="+encodeURIComponent(b));mxUtils.get(d,function(d){if(200<=d.getStatus()&&299>=d.getStatus()){c.spinner.stop();try{c.loadLibrary(new UrlLibrary(this,d.getText(),b))}catch(J){c.handleError(J,mxResources.get("errorLoadingFile"))}}else c.spinner.stop(),c.handleError(null,mxResources.get("errorLoadingFile"))},function(){c.spinner.stop();c.handleError(null,mxResources.get("errorLoadingFile"))})}},mxResources.get("url"));
+mxResources.get("loading"))){var d=b;c.editor.isCorsEnabledForUrl(b)||(d=PROXY_URL+"?url="+encodeURIComponent(b));mxUtils.get(d,function(d){if(200<=d.getStatus()&&299>=d.getStatus()){c.spinner.stop();try{c.loadLibrary(new UrlLibrary(this,d.getText(),b))}catch(K){c.handleError(K,mxResources.get("errorLoadingFile"))}}else c.spinner.stop(),c.handleError(null,mxResources.get("errorLoadingFile"))},function(){c.spinner.stop();c.handleError(null,mxResources.get("errorLoadingFile"))})}},mxResources.get("url"));
c.showDialog(b.container,300,80,!0,!0);b.init()},d));"1"==urlParams.confLib&&(b.addSeparator(d),b.addItem(mxResources.get("confluenceCloud")+"...",null,function(){c.showRemotelyStoredLibrary(mxResources.get("libraries"))},d))})));this.put("edit",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b,"undo redo - cut copy copyAsImage paste delete - duplicate - findReplace - editData editTooltip - editStyle editGeometry - edit - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))})));
p=c.actions.addAction("comments",mxUtils.bind(this,function(){if(null==this.commentsWindow)this.commentsWindow=new CommentsWindow(c,document.body.offsetWidth-380,120,300,350),this.commentsWindow.window.addListener("show",function(){c.fireEvent(new mxEventObject("comments"))}),this.commentsWindow.window.addListener("hide",function(){c.fireEvent(new mxEventObject("comments"))}),this.commentsWindow.window.setVisible(!0),c.fireEvent(new mxEventObject("comments"));else{var b=!this.commentsWindow.window.isVisible();
this.commentsWindow.window.setVisible(b);this.commentsWindow.refreshCommentsTime();b&&this.commentsWindow.hasError&&this.commentsWindow.refreshComments()}}));p.setToggleAction(!0);p.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.commentsWindow&&this.commentsWindow.window.isVisible()}));c.editor.addListener("fileLoaded",mxUtils.bind(this,function(){null!=this.commentsWindow&&(this.commentsWindow.destroy(),this.commentsWindow=null)}));var p=this.get("viewPanels"),B=p.funct;p.funct=
@@ -12577,7 +12577,7 @@ b.geometry.height+10:-g[1].geometry.height-10)*n;var q=u.getOutgoingTreeEdges(u.
p.height,D.y+D.height)-Math.max(p.y,D.y))/n))}}t?l=0:e=0;for(v=0;v<q.length;v++)if(x=u.model.getTerminal(q[v],!1),k==f(x)&&(D=u.view.getState(x),x!=b&&null!=D&&(t&&c!=D.getCenterX()<m.getCenterX()||!t&&c!=D.getCenterY()<m.getCenterY()))){var H=[];u.traverse(D.cell,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&H.push(c);(null==c||d)&&H.push(b);return null==c||d});u.moveCells(H,(c?1:-1)*e,(c?1:-1)*l)}}}return u.addCells(g,d)}finally{u.model.endUpdate()}}function m(b){u.model.beginUpdate();try{var c=
f(b),d=u.getIncomingTreeEdges(b),e=u.cloneCells([d[0],b]);u.model.setTerminal(d[0],e[1],!1);u.model.setTerminal(e[0],e[1],!0);u.model.setTerminal(e[0],b,!1);var g=u.model.getParent(b),k=g.geometry,l=[];u.view.currentRoot!=g&&(e[1].geometry.x-=k.x,e[1].geometry.y-=k.y);u.traverse(b,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});var m=b.geometry.width+40,n=b.geometry.height+40;c==mxConstants.DIRECTION_SOUTH?m=0:c==mxConstants.DIRECTION_NORTH?
(m=0,n=-n):c==mxConstants.DIRECTION_WEST?(m=-m,n=0):c==mxConstants.DIRECTION_EAST&&(n=0);u.moveCells(l,m,n);return u.addCells(e,g)}finally{u.model.endUpdate()}}function p(b,c){u.model.beginUpdate();try{var d=u.model.getParent(b),e=u.getIncomingTreeEdges(b),g=f(b);0==e.length&&(e=[u.createEdge(d,null,"",null,null,u.createCurrentEdgeStyle())],g=c);var k=u.cloneCells([e[0],b]);u.model.setTerminal(k[0],b,!0);if(null==u.model.getTerminal(k[0],!1)){u.model.setTerminal(k[0],k[1],!1);var l=u.getCellStyle(k[1]).newEdgeStyle;
-if(null!=l)try{var m=JSON.parse(l),n;for(n in m)u.setCellStyles(n,m[n],[k[0]]),"edgeStyle"==n&&"elbowEdgeStyle"==m[n]&&u.setCellStyles("elbow",g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[k[0]])}catch(na){}}var e=u.getOutgoingTreeEdges(b),p=d.geometry,l=[];u.view.currentRoot==d&&(p=new mxRectangle);for(m=0;m<e.length;m++){var q=u.model.getTerminal(e[m],!1);null!=q&&l.push(q)}var t=u.view.getBounds(l),v=u.view.translate,x=u.view.scale;g==mxConstants.DIRECTION_SOUTH?
+if(null!=l)try{var m=JSON.parse(l),n;for(n in m)u.setCellStyles(n,m[n],[k[0]]),"edgeStyle"==n&&"elbowEdgeStyle"==m[n]&&u.setCellStyles("elbow",g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[k[0]])}catch(oa){}}var e=u.getOutgoingTreeEdges(b),p=d.geometry,l=[];u.view.currentRoot==d&&(p=new mxRectangle);for(m=0;m<e.length;m++){var q=u.model.getTerminal(e[m],!1);null!=q&&l.push(q)}var t=u.view.getBounds(l),v=u.view.translate,x=u.view.scale;g==mxConstants.DIRECTION_SOUTH?
(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/x-v.x-p.x+10,k[1].geometry.y+=k[1].geometry.height-p.y+40):g==mxConstants.DIRECTION_NORTH?(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/x-v.x+-p.x+10,k[1].geometry.y-=k[1].geometry.height+p.y+40):(k[1].geometry.x=g==mxConstants.DIRECTION_WEST?k[1].geometry.x-(k[1].geometry.width+p.x+40):k[1].geometry.x+(k[1].geometry.width-p.x+40),k[1].geometry.y=null==t?b.geometry.y+
(b.geometry.height-k[1].geometry.height)/2:(t.y+t.height)/x-v.y+-p.y+10);return u.addCells(k,d)}finally{u.model.endUpdate()}}function q(b,c,d){b=u.getOutgoingTreeEdges(b);d=u.view.getState(d);var e=[];if(null!=d&&null!=b){for(var f=0;f<b.length;f++){var g=u.view.getState(u.model.getTerminal(b[f],!1));null!=g&&(!c&&Math.min(g.x+g.width,d.x+d.width)>=Math.max(g.x,d.x)||c&&Math.min(g.y+g.height,d.y+d.height)>=Math.max(g.y,d.y))&&e.push(g)}e.sort(function(b,d){return c?b.x+b.width-d.x-d.width:b.y+b.height-
d.y-d.height})}return e}function t(b,c){var d=f(b),e=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST;(d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST)==e&&d!=c?v.actions.get("selectParent").funct():d==c?(e=u.getOutgoingTreeEdges(b),null!=e&&0<e.length&&u.setSelectionCell(u.model.getTerminal(e[0],!1))):(d=u.getIncomingTreeEdges(b),null!=d&&0<d.length&&(e=q(u.model.getTerminal(d[0],!0),e,b),d=u.view.getState(b),null!=d&&(d=mxUtils.indexOf(e,d),0<=d&&(d+=c==mxConstants.DIRECTION_NORTH||
@@ -12590,13 +12590,13 @@ f;return y.apply(this,arguments)};v.hoverIcons.getStateAt=function(c,d,e){return
u.getIncomingTreeEdges(l[f]),k=u.getIncomingTreeEdges(c[f]);if(0==m.length&&0<k.length){var n=this.cloneCell(k[0]);this.addEdge(n,u.getDefaultParent(),this.model.getTerminal(k[0],!0),l[f])}}}finally{this.model.endUpdate()}return l};var C=u.moveCells;u.moveCells=function(c,d,e,f,g,k,l){var m=null;this.model.beginUpdate();try{var n=g,p=this.getCurrentCellStyle(g);if(null!=c&&b(g)&&"1"==mxUtils.getValue(p,"treeFolding","0")){for(var q=0;q<c.length;q++)if(b(c[q])||u.model.isEdge(c[q])&&null==u.model.getTerminal(c[q],
!0)){g=u.model.getParent(c[q]);break}if(null!=n&&g!=n&&null!=this.view.getState(c[0])){var t=u.getIncomingTreeEdges(c[0]);if(0<t.length){var v=u.view.getState(u.model.getTerminal(t[0],!0));if(null!=v){var x=u.view.getState(n);null!=x&&(d=(x.getCenterX()-v.getCenterX())/u.view.scale,e=(x.getCenterY()-v.getCenterY())/u.view.scale)}}}}m=C.apply(this,arguments);if(null!=m&&null!=c&&m.length==c.length)for(q=0;q<m.length;q++)if(this.model.isEdge(m[q]))b(n)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[q],
!0))&&this.model.setTerminal(m[q],n,!0);else if(b(c[q])&&(t=u.getIncomingTreeEdges(c[q]),0<t.length))if(!f)b(n)&&0>mxUtils.indexOf(c,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],n,!0);else if(0==u.getIncomingTreeEdges(m[q]).length){p=n;if(null==p||p==u.model.getParent(c[q]))p=u.model.getTerminal(t[0],!0);f=this.cloneCell(t[0]);this.addEdge(f,u.getDefaultParent(),p,m[q])}}finally{this.model.endUpdate()}return m};if(null!=v.sidebar){var A=v.sidebar.dropAndConnect;v.sidebar.dropAndConnect=
-function(c,d,e,f){var g=u.model,k=null;g.beginUpdate();try{if(k=A.apply(this,arguments),b(c))for(var l=0;l<k.length;l++)if(g.isEdge(k[l])&&null==g.getTerminal(k[l],!0)){g.setTerminal(k[l],c,!0);var m=u.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var G={88:v.actions.get("selectChildren"),84:v.actions.get("selectSubtree"),80:v.actions.get("selectParent"),83:v.actions.get("selectSiblings")},D=v.onKeyDown;v.onKeyDown=function(c){try{if(u.isEnabled()&&
+function(c,d,e,f){var g=u.model,k=null;g.beginUpdate();try{if(k=A.apply(this,arguments),b(c))for(var l=0;l<k.length;l++)if(g.isEdge(k[l])&&null==g.getTerminal(k[l],!0)){g.setTerminal(k[l],c,!0);var m=u.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var F={88:v.actions.get("selectChildren"),84:v.actions.get("selectSubtree"),80:v.actions.get("selectParent"),83:v.actions.get("selectSiblings")},D=v.onKeyDown;v.onKeyDown=function(c){try{if(u.isEnabled()&&
!u.isEditing()&&b(u.getSelectionCell())&&1==u.getSelectionCount()){var d=null;0<u.getIncomingTreeEdges(u.getSelectionCell()).length&&(9==c.which?d=mxEvent.isShiftDown(c)?m(u.getSelectionCell()):p(u.getSelectionCell()):13==c.which&&(d=l(u.getSelectionCell(),!mxEvent.isShiftDown(c))));if(null!=d&&0<d.length)1==d.length&&u.model.isEdge(d[0])?u.setSelectionCell(u.model.getTerminal(d[0],!1)):u.setSelectionCell(d[d.length-1]),null!=v.hoverIcons&&v.hoverIcons.update(u.view.getState(u.getSelectionCell())),
-u.startEditingAtCell(u.getSelectionCell()),mxEvent.consume(c);else if(mxEvent.isAltDown(c)&&mxEvent.isShiftDown(c)){var e=G[c.keyCode];null!=e&&(e.funct(c),mxEvent.consume(c))}else 37==c.keyCode?(t(u.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(c)):38==c.keyCode?(t(u.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(c)):39==c.keyCode?(t(u.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(c)):40==c.keyCode&&(t(u.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
+u.startEditingAtCell(u.getSelectionCell()),mxEvent.consume(c);else if(mxEvent.isAltDown(c)&&mxEvent.isShiftDown(c)){var e=F[c.keyCode];null!=e&&(e.funct(c),mxEvent.consume(c))}else 37==c.keyCode?(t(u.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(c)):38==c.keyCode?(t(u.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(c)):39==c.keyCode?(t(u.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(c)):40==c.keyCode&&(t(u.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
mxEvent.consume(c))}}catch(L){v.handleError(L)}mxEvent.isConsumed(c)||D.apply(this,arguments)};var E=u.connectVertex;u.connectVertex=function(c,d,e,g,k,n,q){var t=u.getIncomingTreeEdges(c);if(b(c)){var v=f(c),x=v==mxConstants.DIRECTION_EAST||v==mxConstants.DIRECTION_WEST,D=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST;return v==d||0==t.length?p(c,d):x==D?m(c):l(c,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)}return E.apply(this,arguments)};u.getSubtree=function(c){var e=
-[c];!d(c)&&!b(c)||n(c)||u.traverse(c,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&0>mxUtils.indexOf(e,c)&&e.push(c);(null==c||d)&&0>mxUtils.indexOf(e,b)&&e.push(b);return null==c||d});return e};var F=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){F.apply(this,arguments);(d(this.state.cell)||b(this.state.cell))&&!n(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
+[c];!d(c)&&!b(c)||n(c)||u.traverse(c,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&0>mxUtils.indexOf(e,c)&&e.push(c);(null==c||d)&&0>mxUtils.indexOf(e,b)&&e.push(b);return null==c||d});return e};var G=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){G.apply(this,arguments);(d(this.state.cell)||b(this.state.cell))&&!n(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
"Move Subtree"),this.moveHandle.style.position="absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="24px",this.moveHandle.style.height="24px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(b){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSubtree(this.state.cell));this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(b);
-this.graph.isMouseDown=!0;v.hoverIcons.reset();mxEvent.consume(b)})))};var I=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){I.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var J=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){J.apply(this,
+this.graph.isMouseDown=!0;v.hoverIcons.reset();mxEvent.consume(b)})))};var J=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){J.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var K=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){K.apply(this,
arguments);null!=this.moveHandle&&(this.moveHandle.style.display=b?"":"none")};var H=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(b,c){H.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var d=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var b=d.apply(this,arguments),e=this.graph;return b.concat([this.addEntry("tree container",
function(){var b=new mxCell("Tree Container",new mxGeometry(0,0,400,320),"swimlane;startSize=20;horizontal=1;containerType=tree;");b.vertex=!0;var c=new mxCell("Parent",new mxGeometry(140,60,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');c.vertex=!0;var d=new mxCell("Child",new mxGeometry(140,140,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
d.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");e.geometry.relative=!0;e.edge=!0;c.insertEdge(e,!0);d.insertEdge(e,!1);b.insert(e);b.insert(c);b.insert(d);return sb.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree mindmap mindmaps central idea branch topic",function(){var b=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;startSize=20;horizontal=1;containerType=tree;");
@@ -12683,7 +12683,7 @@ d));("1"!=urlParams.embedInline&&Editor.isDarkMode()||!mxClient.IS_IE&&!mxClient
["insertTemplate"],e),c.menus.addMenuItems(b,["insertImage","insertLink","-"],e),c.menus.addSubmenu("insertLayout",b,e,mxResources.get("layout")),c.menus.addSubmenu("insertAdvanced",b,e,mxResources.get("advanced"))):(d.apply(this,arguments),c.menus.addSubmenu("table",b,e))}})();var n="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),p=function(b,d,e,f){b.addItem(e,null,mxUtils.bind(this,function(){var b=new CreateGraphDialog(c,e,f);c.showDialog(b.container,
620,420,!0,!1);b.init()}),d)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(b,c){for(var d=0;d<n.length;d++)"-"==n[d]?b.addSeparator(c):p(b,c,mxResources.get(n[d])+"...",n[d])})))};EditorUi.prototype.installFormatToolbar=function(b){var c=this.editor.graph,d=document.createElement("div");d.style.cssText="position:absolute;top:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;white-space:nowrap;background-color:#fff;transform:translate(-50%, 0);left:50%;";
c.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(e,f){0<c.getSelectionCount()?(b.appendChild(d),d.innerHTML="Selected: "+c.getSelectionCount()):null!=d.parentNode&&d.parentNode.removeChild(d)}))};var A=!1;EditorUi.prototype.initFormatWindow=function(){if(!A&&null!=this.formatWindow){A=!0;this.formatWindow.window.setClosable(!1);var b=this.formatWindow.window.toggleMinimized;this.formatWindow.window.toggleMinimized=function(){b.apply(this,arguments);this.minimized?(this.div.style.width=
-"90px",this.table.style.width="90px",this.div.style.left=parseInt(this.div.style.left)+150+"px"):(this.div.style.width="240px",this.table.style.width="240px",this.div.style.left=Math.max(0,parseInt(this.div.style.left)-150)+"px");this.fit()};mxEvent.addListener(this.formatWindow.window.title,"dblclick",mxUtils.bind(this,function(b){mxEvent.getSource(b)==this.formatWindow.window.title&&this.formatWindow.window.toggleMinimized()}))}};var G=EditorUi.prototype.init;EditorUi.prototype.init=function(){function e(b,
+"90px",this.table.style.width="90px",this.div.style.left=parseInt(this.div.style.left)+150+"px"):(this.div.style.width="240px",this.table.style.width="240px",this.div.style.left=Math.max(0,parseInt(this.div.style.left)-150)+"px");this.fit()};mxEvent.addListener(this.formatWindow.window.title,"dblclick",mxUtils.bind(this,function(b){mxEvent.getSource(b)==this.formatWindow.window.title&&this.formatWindow.window.toggleMinimized()}))}};var F=EditorUi.prototype.init;EditorUi.prototype.init=function(){function e(b,
c,d){var e=m.menus.get(b),f=t.addMenu(mxResources.get(b),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),q);f.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box";f.style.top="6px";f.style.marginRight="6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.style.cursor="pointer";f.setAttribute("title",mxResources.get(b));m.menus.menuCreated(e,f,"geMenuItem");null!=d?(f.style.backgroundImage=
"url("+d+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.width="34px",f.innerHTML=""):c||(f.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition="right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function f(b,c,d,e,f,g){var k=document.createElement("a");k.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";k.style.display="inline-block";
k.style.boxSizing="border-box";k.style.height="30px";k.style.padding="6px";k.style.position="relative";k.style.verticalAlign="top";k.style.top="0px";"1"==urlParams.sketch&&(k.style.borderStyle="none",k.style.boxShadow="none",k.style.padding="6px",k.style.margin="0px");null!=m.statusContainer?p.insertBefore(k,m.statusContainer):p.appendChild(k);null!=g?(k.style.backgroundImage="url("+g+")",k.style.backgroundPosition="center center",k.style.backgroundRepeat="no-repeat",k.style.backgroundSize="24px 24px",
@@ -12693,7 +12693,7 @@ b[e].style.margin="0px",b[e].style.boxShadow="none",d.appendChild(b[e]));null!=c
document.documentElement.clientWidth||document.body.clientWidth;var b=1E3>c||"1"==urlParams.sketch,k=null;b||(k=e("diagram"));d=b?e("diagram",null,Editor.drawLogoImage):null;null!=d&&(k=d);g([k,f(mxResources.get("shapes"),m.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),m.actions.get("image"),b?Editor.shapesImage:null),f(mxResources.get("format"),m.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+m.actions.get("formatPanel").shortcut+")",m.actions.get("image"),
b?Editor.formatImage:null)],b?60:null);d=e("insert",!0,b?z:null);g([d,f(mxResources.get("delete"),m.actions.get("delete").funct,null,mxResources.get("delete"),m.actions.get("delete"),b?Editor.trashImage:null)],b?60:null);411<=c&&(g([da,sa],60),520<=c&&g([ya,640<=c?f("",pa.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",pa,Editor.zoomInImage):null,640<=c?f("",ra.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",ra,Editor.zoomOutImage):null],60))}null!=k&&(mxEvent.disableContextMenu(k),
mxEvent.addGestureListeners(k,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&m.appIconClicked(b)}),null,null));d=m.menus.get("language");null!=d&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=c&&"1"!=urlParams.sketch?(null==ua&&(d=t.addMenu("",d.funct),d.setAttribute("title",mxResources.get("language")),d.className="geToolbarButton",d.style.backgroundImage="url("+Editor.globeImage+")",
-d.style.backgroundPosition="center center",d.style.backgroundRepeat="no-repeat",d.style.backgroundSize="24px 24px",d.style.position="absolute",d.style.height="24px",d.style.width="24px",d.style.zIndex="1",d.style.right="8px",d.style.cursor="pointer",d.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(d),ua=d),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=ua&&(ua.parentNode.removeChild(ua),ua=null))}G.apply(this,arguments);"1"!=urlParams.embedInline&&
+d.style.backgroundPosition="center center",d.style.backgroundRepeat="no-repeat",d.style.backgroundSize="24px 24px",d.style.position="absolute",d.style.height="24px",d.style.width="24px",d.style.zIndex="1",d.style.right="8px",d.style.cursor="pointer",d.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(d),ua=d),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=ua&&(ua.parentNode.removeChild(ua),ua=null))}F.apply(this,arguments);"1"!=urlParams.embedInline&&
this.doSetDarkMode(null!=urlParams.dark?1==urlParams.dark&&!mxClient.IS_IE&&!mxClient.IS_IE11:null!=mxSettings.settings.darkMode?mxSettings.settings.darkMode:window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches);var l=document.createElement("div");l.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";l.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(l);"1"==urlParams.sketch&&
null!=this.sidebar&&this.isSettingsEnabled()&&(this.editor.chromeless&&!this.editor.editable||!(mxSettings.settings.isNew||8>=parseInt(mxSettings.settings.version||0))||(this.toggleScratchpad(),mxSettings.save()),this.sidebar.showPalette("search",mxSettings.settings.search));if("1"!=urlParams.sketch&&1E3<=c||null!=urlParams.clibs||null!=urlParams.libs||null!=urlParams["search-shapes"])d(this,!0),null!=this.sidebar&&null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes&&(this.sidebar.searchShapes(urlParams["search-shapes"]),
this.sidebar.showEntries("search"));var m=this;mxWindow.prototype.fit=function(){if(Editor.inlineFullscreen||null==m.embedViewport)mxUtils.fit(this.div);else{var b=parseInt(this.div.offsetLeft),c=parseInt(this.div.offsetWidth),d=m.embedViewport.x+m.embedViewport.width,e=parseInt(this.div.offsetTop),f=parseInt(this.div.offsetHeight),g=m.embedViewport.y+m.embedViewport.height;this.div.style.left=Math.max(m.embedViewport.x,Math.min(b,d-c))+"px";this.div.style.top=Math.max(m.embedViewport.y,Math.min(e,
@@ -12708,45 +12708,45 @@ null,B="1"==urlParams.sketch?document.createElement("div"):null,U="1"==urlParams
"transparent";m.diagramContainer.removeAttribute("data-bounds");var c=n.getGraphBounds(),b=b.split(" ");m.diagramContainer.style.top=b[0];m.diagramContainer.style.left=b[1];m.diagramContainer.style.width=c.width+50+"px";m.diagramContainer.style.height=c.height+46+"px";m.diagramContainer.style.bottom="";m.diagramContainer.style.right="";(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",rect:m.diagramContainer.getBoundingClientRect()}),"*");m.refresh()}U.style.left=m.diagramContainer.offsetLeft+
"px";U.style.top=m.diagramContainer.offsetTop-U.offsetHeight-4+"px";B.style.display="";B.style.left=m.diagramContainer.offsetLeft-B.offsetWidth-4+"px";B.style.top=m.diagramContainer.offsetTop+"px";C.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-C.offsetWidth+"px";C.style.top=U.style.top;C.style.right="";m.bottomResizer.style.left=m.diagramContainer.offsetLeft+(m.diagramContainer.offsetWidth-m.bottomResizer.offsetWidth)/2+"px";m.bottomResizer.style.top=m.diagramContainer.offsetTop+
m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight/2-1+"px";m.rightResizer.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-m.rightResizer.offsetWidth/2-1+"px";m.rightResizer.style.top=m.diagramContainer.offsetTop+(m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight)/2+"px"}m.bottomResizer.style.visibility=Editor.inlineFullscreen?"hidden":"";m.rightResizer.style.visibility=m.bottomResizer.style.visibility;p.style.display="none";U.style.visibility="";C.style.visibility=
-""}),na=mxUtils.bind(this,function(){ha.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";ia()}),y=mxUtils.bind(this,function(){na();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",na);m.addListener("editInlineStart",
-y);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",y);m.addListener("editInlineStop",mxUtils.bind(this,function(b){m.diagramContainer.style.width="10px";m.diagramContainer.style.height="10px";m.diagramContainer.style.border="";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";U.style.visibility="hidden";C.style.visibility="hidden";B.style.display="none"}));if(null!=m.hoverIcons){var ja=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||
-ja.apply(this,arguments)}}if(null!=n.freehand){var ma=n.freehand.createStyle;n.freehand.createStyle=function(b){return ma.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){B.className="geToolbarContainer";C.className="geToolbarContainer";U.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=B;var V=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){V||(m.statusContainer.style.display=
-"none")});var Z=mxUtils.bind(this,function(b){null!=m.notificationBtn&&(null!=b?m.notificationBtn.setAttribute("title",b):m.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed?(p.style.visibility=14>p.clientWidth?"hidden":"",m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&"function"===typeof m.statusContainer.firstChild.getAttribute&&null==m.statusContainer.firstChild.getAttribute("class")){var b=
+""}),oa=mxUtils.bind(this,function(){ha.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";ia()}),y=mxUtils.bind(this,function(){oa();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",oa);m.addListener("editInlineStart",
+y);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",y);m.addListener("editInlineStop",mxUtils.bind(this,function(b){m.diagramContainer.style.width="10px";m.diagramContainer.style.height="10px";m.diagramContainer.style.border="";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";U.style.visibility="hidden";C.style.visibility="hidden";B.style.display="none"}));if(null!=m.hoverIcons){var la=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||
+la.apply(this,arguments)}}if(null!=n.freehand){var na=n.freehand.createStyle;n.freehand.createStyle=function(b){return na.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){B.className="geToolbarContainer";C.className="geToolbarContainer";U.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=B;var V=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){V||(m.statusContainer.style.display=
+"none")});var Z=mxUtils.bind(this,function(b){null!=m.notificationBtn&&(null!=b?m.notificationBtn.setAttribute("title",b):m.notificationBtn.removeAttribute("title"))});p.style.visibility=14>p.clientWidth?"hidden":"";m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if("1"!=urlParams.embed)if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&"function"===typeof m.statusContainer.firstChild.getAttribute&&null==m.statusContainer.firstChild.getAttribute("class")){var b=
null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):m.editor.getStatus();Z(b);var c=m.getCurrentFile(),c=null!=c?c.savingStatusKey:DrawioFile.prototype.savingStatusKey;b==mxResources.get(c)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(c))+'..."src="'+Editor.tailSpin+'">',m.statusContainer.style.display="inline-block",V=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display=
-"none",V=!1)}else m.statusContainer.style.display="inline-block",Z(null),V=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}))):m.editor.addListener("statusChanged",mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));R=e("diagram",null,Editor.menuImage);R.style.boxShadow="none";R.style.padding="6px";R.style.margin="0px";U.appendChild(R);mxEvent.disableContextMenu(R);mxEvent.addGestureListeners(R,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||
-mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&this.appIconClicked(b)}),null,null);m.statusContainer.style.position="";m.statusContainer.style.display="none";m.statusContainer.style.margin="0px";m.statusContainer.style.padding="6px 0px";m.statusContainer.style.maxWidth=Math.min(c-240,280)+"px";m.statusContainer.style.display="inline-block";m.statusContainer.style.textOverflow="ellipsis";m.buttonContainer.style.position="";m.buttonContainer.style.paddingRight="0px";m.buttonContainer.style.display=
-"inline-block";var O=document.createElement("a");O.style.padding="0px";O.style.boxShadow="none";O.className="geMenuItem";O.style.display="inline-block";O.style.width="40px";O.style.height="12px";O.style.marginBottom="-2px";O.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";O.style.backgroundPosition="top center";O.style.backgroundRepeat="no-repeat";O.setAttribute("title","Minimize");var fa=!1,Y=mxUtils.bind(this,function(){B.innerHTML="";if(!fa){var b=function(b,d,e){b=f("",b.funct,
-null,d,b,e);b.style.width="40px";b.style.opacity="0.7";return c(b,null,"pointer")},c=function(b,c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=null!=d?d:"default";b.style.margin="2px 0px";B.appendChild(b);mxUtils.br(B);return b};c(m.sidebar.createVertexTemplate("text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",60,30,"Text",mxResources.get("text"),!0,!1,null,!0,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");c(m.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;shadow=1;size=20;pointerEvents=1;",
+"none",V=!1)}else m.statusContainer.style.display="inline-block",Z(null),V=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}));Q=e("diagram",null,Editor.menuImage);Q.style.boxShadow="none";Q.style.padding="6px";Q.style.margin="0px";U.appendChild(Q);mxEvent.disableContextMenu(Q);mxEvent.addGestureListeners(Q,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&this.appIconClicked(b)}),null,null);
+m.statusContainer.style.position="";m.statusContainer.style.display="none";m.statusContainer.style.margin="0px";m.statusContainer.style.padding="6px 0px";m.statusContainer.style.maxWidth=Math.min(c-240,280)+"px";m.statusContainer.style.display="inline-block";m.statusContainer.style.textOverflow="ellipsis";m.buttonContainer.style.position="";m.buttonContainer.style.paddingRight="0px";m.buttonContainer.style.display="inline-block";var P=document.createElement("a");P.style.padding="0px";P.style.boxShadow=
+"none";P.className="geMenuItem";P.style.display="inline-block";P.style.width="40px";P.style.height="12px";P.style.marginBottom="-2px";P.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";P.style.backgroundPosition="top center";P.style.backgroundRepeat="no-repeat";P.setAttribute("title","Minimize");var ea=!1,Y=mxUtils.bind(this,function(){B.innerHTML="";if(!ea){var b=function(b,d,e){b=f("",b.funct,null,d,b,e);b.style.width="40px";b.style.opacity="0.7";return c(b,null,"pointer")},c=
+function(b,c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=null!=d?d:"default";b.style.margin="2px 0px";B.appendChild(b);mxUtils.br(B);return b};c(m.sidebar.createVertexTemplate("text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",60,30,"Text",mxResources.get("text"),!0,!1,null,!0,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");c(m.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;shadow=1;size=20;pointerEvents=1;",
140,160,"",mxResources.get("note"),!0,!1,null,!0),mxResources.get("note"));c(m.sidebar.createVertexTemplate("rounded=0;whiteSpace=wrap;html=1;",160,80,"",mxResources.get("rectangle"),!0,!1,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");c(m.sidebar.createVertexTemplate("ellipse;whiteSpace=wrap;html=1;",160,100,"",mxResources.get("ellipse"),!0,!1,null,!0),mxResources.get("ellipse"));(function(){var b=new mxCell("",new mxGeometry(0,0,n.defaultEdgeLength,0),"edgeStyle=none;orthogonalLoop=1;jettySize=auto;html=1;");
b.geometry.setTerminalPoint(new mxPoint(0,0),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,0),!1);b.geometry.points=[];b.geometry.relative=!0;b.edge=!0;c(m.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,b.geometry.height,mxResources.get("line"),!0,null,!0,!1),mxResources.get("line"));b=b.clone();b.style="edgeStyle=none;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;rounded=1;startSize=8;endSize=8;";b.geometry.width=n.defaultEdgeLength+20;b.geometry.setTerminalPoint(new mxPoint(0,
20),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,20),!1);b=c(m.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,40,mxResources.get("arrow"),!0,null,!0,!1),mxResources.get("arrow"));b.style.borderBottom="1px solid "+(Editor.isDarkMode()?"#505050":"lightgray");b.style.paddingBottom="14px";b.style.marginBottom="14px"})();b(m.actions.get("insertFreehand"),mxResources.get("freehand"),Editor.freehandImage);var d=m.actions.get("toggleShapes");b(d,mxResources.get("shapes")+" ("+d.shortcut+
-")",z);R=e("table",null,Editor.calendarImage);R.style.boxShadow="none";R.style.opacity="0.7";R.style.padding="6px";R.style.margin="0px";R.style.width="37px";c(R,null,"pointer");R=e("insert",null,Editor.plusImage);R.style.boxShadow="none";R.style.opacity="0.7";R.style.padding="6px";R.style.margin="0px";R.style.width="37px";c(R,null,"pointer")}"1"!=urlParams.embedInline&&B.appendChild(O)});mxEvent.addListener(O,"click",mxUtils.bind(this,function(){fa?(mxUtils.setPrefixedStyle(B.style,"transform","translate(0, -50%)"),
-B.style.padding="8px 6px 4px",B.style.top="50%",B.style.bottom="",B.style.height="",O.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",O.style.width="40px",O.style.height="12px",O.setAttribute("title","Minimize"),fa=!1,Y()):(B.innerHTML="",B.appendChild(O),mxUtils.setPrefixedStyle(B.style,"transform","translate(0, 0)"),B.style.top="",B.style.bottom="12px",B.style.padding="0px",B.style.height="24px",O.style.height="24px",O.style.backgroundImage="url("+Editor.plusImage+")",O.setAttribute("title",
-mxResources.get("insert")),O.style.width="24px",fa=!0)}));Y();m.addListener("darkModeChanged",Y);m.addListener("sketchModeChanged",Y)}else m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus())}));if(null!=A){var ca=function(b){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)||mxEvent.isShiftDown(b)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},pa=m.actions.get("zoomIn"),ra=m.actions.get("zoomOut"),T=m.actions.get("resetView"),
+")",z);Q=e("table",null,Editor.calendarImage);Q.style.boxShadow="none";Q.style.opacity="0.7";Q.style.padding="6px";Q.style.margin="0px";Q.style.width="37px";c(Q,null,"pointer");Q=e("insert",null,Editor.plusImage);Q.style.boxShadow="none";Q.style.opacity="0.7";Q.style.padding="6px";Q.style.margin="0px";Q.style.width="37px";c(Q,null,"pointer")}"1"!=urlParams.embedInline&&B.appendChild(P)});mxEvent.addListener(P,"click",mxUtils.bind(this,function(){ea?(mxUtils.setPrefixedStyle(B.style,"transform","translate(0, -50%)"),
+B.style.padding="8px 6px 4px",B.style.top="50%",B.style.bottom="",B.style.height="",P.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",P.style.width="40px",P.style.height="12px",P.setAttribute("title","Minimize"),ea=!1,Y()):(B.innerHTML="",B.appendChild(P),mxUtils.setPrefixedStyle(B.style,"transform","translate(0, 0)"),B.style.top="",B.style.bottom="12px",B.style.padding="0px",B.style.height="24px",P.style.height="24px",P.style.backgroundImage="url("+Editor.plusImage+")",P.setAttribute("title",
+mxResources.get("insert")),P.style.width="24px",ea=!0)}));Y();m.addListener("darkModeChanged",Y);m.addListener("sketchModeChanged",Y)}else m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus())}));if(null!=A){var ca=function(b){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)||mxEvent.isShiftDown(b)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},pa=m.actions.get("zoomIn"),ra=m.actions.get("zoomOut"),T=m.actions.get("resetView"),
y=m.actions.get("fullscreen"),ka=m.actions.get("undo"),ga=m.actions.get("redo"),da=f("",ka.funct,null,mxResources.get("undo")+" ("+ka.shortcut+")",ka,Editor.undoImage),sa=f("",ga.funct,null,mxResources.get("redo")+" ("+ga.shortcut+")",ga,Editor.redoImage),ha=f("",y.funct,null,mxResources.get("fullscreen"),y,Editor.fullscreenImage);if(null!=C){A=function(){ba.style.display=null!=m.pages&&("0"!=urlParams.pages||1<m.pages.length||Editor.pagesVisible)?"inline-block":"none"};T=function(){ba.innerHTML=
-"";if(null!=m.currentPage){mxUtils.write(ba,m.currentPage.getName());var b=null!=m.pages?m.pages.length:1,c=m.getPageIndex(m.currentPage),c=null!=c?c+1:1,d=m.currentPage.getId();ba.setAttribute("title",m.currentPage.getName()+" ("+c+"/"+b+")"+(null!=d?" ["+d+"]":""))}};ha.parentNode.removeChild(ha);var qa=m.actions.get("delete"),la=f("",qa.funct,null,mxResources.get("delete"),qa,Editor.trashImage);la.style.opacity="0.1";U.appendChild(la);qa.addListener("stateChanged",function(){la.style.opacity=qa.enabled?
+"";if(null!=m.currentPage){mxUtils.write(ba,m.currentPage.getName());var b=null!=m.pages?m.pages.length:1,c=m.getPageIndex(m.currentPage),c=null!=c?c+1:1,d=m.currentPage.getId();ba.setAttribute("title",m.currentPage.getName()+" ("+c+"/"+b+")"+(null!=d?" ["+d+"]":""))}};ha.parentNode.removeChild(ha);var qa=m.actions.get("delete"),ma=f("",qa.funct,null,mxResources.get("delete"),qa,Editor.trashImage);ma.style.opacity="0.1";U.appendChild(ma);qa.addListener("stateChanged",function(){ma.style.opacity=qa.enabled?
"":"0.1"});var ta=function(){da.style.display=0<m.editor.undoManager.history.length||n.isEditing()?"inline-block":"none";sa.style.display=da.style.display;da.style.opacity=ka.enabled?"":"0.1";sa.style.opacity=ga.enabled?"":"0.1"};U.appendChild(da);U.appendChild(sa);ka.addListener("stateChanged",ta);ga.addListener("stateChanged",ta);ta();var ba=this.createPageMenuTab(!1,!0);ba.style.display="none";ba.style.position="";ba.style.marginLeft="";ba.style.top="";ba.style.left="";ba.style.height="100%";ba.style.lineHeight=
"";ba.style.borderStyle="none";ba.style.padding="3px 0";ba.style.margin="0px";ba.style.background="";ba.style.border="";ba.style.boxShadow="none";ba.style.verticalAlign="top";ba.style.width="auto";ba.style.maxWidth="160px";ba.style.position="relative";ba.style.padding="6px";ba.style.textOverflow="ellipsis";ba.style.opacity="0.8";C.appendChild(ba);m.editor.addListener("pagesPatched",T);m.editor.addListener("pageSelected",T);m.editor.addListener("pageRenamed",T);m.editor.addListener("fileLoaded",T);
-T();m.addListener("fileDescriptorChanged",A);m.addListener("pagesVisibleChanged",A);m.editor.addListener("pagesPatched",A);A();A=f("",ra.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",ra,Editor.zoomOutImage);C.appendChild(A);var R=document.createElement("div");R.innerHTML="100%";R.setAttribute("title",mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+" (Enter)");R.style.display="inline-block";R.style.cursor="pointer";R.style.textAlign="center";R.style.whiteSpace=
-"nowrap";R.style.paddingRight="10px";R.style.textDecoration="none";R.style.verticalAlign="top";R.style.padding="6px 0";R.style.fontSize="14px";R.style.width="40px";R.style.opacity="0.4";C.appendChild(R);mxEvent.addListener(R,"click",ca);ca=f("",pa.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",pa,Editor.zoomInImage);C.appendChild(ca);y.visible&&(C.appendChild(ha),mxEvent.addListener(document,"fullscreenchange",function(){ha.style.backgroundImage="url("+(null!=document.fullscreenElement?
+T();m.addListener("fileDescriptorChanged",A);m.addListener("pagesVisibleChanged",A);m.editor.addListener("pagesPatched",A);A();A=f("",ra.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",ra,Editor.zoomOutImage);C.appendChild(A);var Q=document.createElement("div");Q.innerHTML="100%";Q.setAttribute("title",mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+" (Enter)");Q.style.display="inline-block";Q.style.cursor="pointer";Q.style.textAlign="center";Q.style.whiteSpace=
+"nowrap";Q.style.paddingRight="10px";Q.style.textDecoration="none";Q.style.verticalAlign="top";Q.style.padding="6px 0";Q.style.fontSize="14px";Q.style.width="40px";Q.style.opacity="0.4";C.appendChild(Q);mxEvent.addListener(Q,"click",ca);ca=f("",pa.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",pa,Editor.zoomInImage);C.appendChild(ca);y.visible&&(C.appendChild(ha),mxEvent.addListener(document,"fullscreenchange",function(){ha.style.backgroundImage="url("+(null!=document.fullscreenElement?
Editor.fullscreenExitImage:Editor.fullscreenImage)+")"}));"1"==urlParams.embedInline&&(y=m.actions.get("exit"),C.appendChild(f("",y.funct,null,mxResources.get("exit"),y,Editor.closeImage)));m.tabContainer.style.visibility="hidden";p.style.cssText="position:absolute;right:14px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px 0px 6px 6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;overflow:hidden;user-select:none;";U.style.cssText=
"position:absolute;left:10px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;overflow:hidden;user-select:none;";C.style.cssText="position:absolute;right:14px;bottom:14px;height:28px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px;white-space:nowrap;user-select:none;";x.appendChild(U);x.appendChild(C);B.style.cssText="position:absolute;left:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px 6px 4px 6px;white-space:nowrap;transform:translate(0, -50%);top:50%;user-select:none;";
-mxClient.IS_POINTER&&(B.style.touchAction="none");x.appendChild(B);window.setTimeout(function(){mxUtils.setPrefixedStyle(B.style,"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(x)}else{var ya=f("",ca,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",T,Editor.zoomFitImage);p.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;text-align:left;white-space:nowrap;";this.tabContainer.style.right="70px";R=t.addMenu("100%",
-A.funct);R.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)");R.style.whiteSpace="nowrap";R.style.paddingRight="10px";R.style.textDecoration="none";R.style.textDecoration="none";R.style.overflow="hidden";R.style.visibility="hidden";R.style.textAlign="center";R.style.cursor="pointer";R.style.height=parseInt(m.tabContainerHeight)-1+"px";R.style.lineHeight=parseInt(m.tabContainerHeight)+1+"px";R.style.position="absolute";R.style.display="block";R.style.fontSize="12px";R.style.width="59px";
-R.style.right="0px";R.style.bottom="0px";R.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")";R.style.backgroundPosition="right 6px center";R.style.backgroundRepeat="no-repeat";x.appendChild(R)}(function(b){var c=mxUtils.bind(this,function(){b.innerHTML="";mxUtils.write(b,Math.round(100*m.editor.graph.view.scale)+"%")});m.editor.graph.view.addListener(mxEvent.EVENT_SCALE,c);m.editor.addListener("resetGraphView",c);m.editor.addListener("pageSelected",c)})(R);var za=m.setGraphEnabled;
-m.setGraphEnabled=function(){za.apply(this,arguments);null!=this.tabContainer&&(R.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==C?this.tabContainerHeight+"px":"0px")}}x.appendChild(p);x.appendChild(m.diagramContainer);l.appendChild(x);m.updateTabContainer();!EditorUi.windowed&&("1"==urlParams.sketch||1E3<=c)&&"1"!=urlParams.embedInline&&b(this,!0);null==C&&x.appendChild(m.tabContainer);var ua=null;k();mxEvent.addListener(window,
+mxClient.IS_POINTER&&(B.style.touchAction="none");x.appendChild(B);window.setTimeout(function(){mxUtils.setPrefixedStyle(B.style,"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(x)}else{var ya=f("",ca,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",T,Editor.zoomFitImage);p.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;text-align:left;white-space:nowrap;";this.tabContainer.style.right="70px";Q=t.addMenu("100%",
+A.funct);Q.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)");Q.style.whiteSpace="nowrap";Q.style.paddingRight="10px";Q.style.textDecoration="none";Q.style.textDecoration="none";Q.style.overflow="hidden";Q.style.visibility="hidden";Q.style.textAlign="center";Q.style.cursor="pointer";Q.style.height=parseInt(m.tabContainerHeight)-1+"px";Q.style.lineHeight=parseInt(m.tabContainerHeight)+1+"px";Q.style.position="absolute";Q.style.display="block";Q.style.fontSize="12px";Q.style.width="59px";
+Q.style.right="0px";Q.style.bottom="0px";Q.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")";Q.style.backgroundPosition="right 6px center";Q.style.backgroundRepeat="no-repeat";x.appendChild(Q)}(function(b){var c=mxUtils.bind(this,function(){b.innerHTML="";mxUtils.write(b,Math.round(100*m.editor.graph.view.scale)+"%")});m.editor.graph.view.addListener(mxEvent.EVENT_SCALE,c);m.editor.addListener("resetGraphView",c);m.editor.addListener("pageSelected",c)})(Q);var za=m.setGraphEnabled;
+m.setGraphEnabled=function(){za.apply(this,arguments);null!=this.tabContainer&&(Q.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==C?this.tabContainerHeight+"px":"0px")}}x.appendChild(p);x.appendChild(m.diagramContainer);l.appendChild(x);m.updateTabContainer();!EditorUi.windowed&&("1"==urlParams.sketch||1E3<=c)&&"1"!=urlParams.embedInline&&b(this,!0);null==C&&x.appendChild(m.tabContainer);var ua=null;k();mxEvent.addListener(window,
"resize",function(){k();null!=m.sidebarWindow&&m.sidebarWindow.window.fit();null!=m.formatWindow&&m.formatWindow.window.fit();null!=m.actions.outlineWindow&&m.actions.outlineWindow.window.fit();null!=m.actions.layersWindow&&m.actions.layersWindow.window.fit();null!=m.menus.tagsWindow&&m.menus.tagsWindow.window.fit();null!=m.menus.findWindow&&m.menus.findWindow.window.fit();null!=m.menus.findReplaceWindow&&m.menus.findReplaceWindow.window.fit()});if("1"==urlParams.embedInline){document.body.style.cursor=
"text";B.style.transform="";mxEvent.addGestureListeners(m.diagramContainer.parentNode,function(b){mxEvent.getSource(b)==m.diagramContainer.parentNode&&(m.embedExitPoint=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b)),m.sendEmbeddedSvgExport())});l=document.createElement("div");l.style.position="absolute";l.style.width="10px";l.style.height="10px";l.style.borderRadius="5px";l.style.border="1px solid gray";l.style.background="#ffffff";l.style.cursor="row-resize";m.diagramContainer.parentNode.appendChild(l);
m.bottomResizer=l;var va=null,xa=null,wa=null,Ca=null;mxEvent.addGestureListeners(l,function(b){Ca=parseInt(m.diagramContainer.style.height);xa=mxEvent.getClientY(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});l=l.cloneNode(!1);l.style.cursor="col-resize";m.diagramContainer.parentNode.appendChild(l);m.rightResizer=l;mxEvent.addGestureListeners(l,function(b){wa=parseInt(m.diagramContainer.style.width);va=mxEvent.getClientX(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});mxEvent.addGestureListeners(document.body,
null,function(b){var c=!1;null!=va&&(m.diagramContainer.style.width=Math.max(20,wa+mxEvent.getClientX(b)-va)+"px",c=!0);null!=xa&&(m.diagramContainer.style.height=Math.max(20,Ca+mxEvent.getClientY(b)-xa)+"px",c=!0);c&&((window.opener||window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:m.diagramContainer.getBoundingClientRect()}),"*"),ia(),m.refresh())},function(b){null==va&&null==xa||mxEvent.consume(b);xa=va=null});this.diagramContainer.style.borderRadius=
"4px";document.body.style.backgroundColor="transparent";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";U.style.visibility="hidden";C.style.visibility="hidden";B.style.display="none"}"1"==urlParams.prefetchFonts&&m.editor.loadFonts()}}};(function(){var b=!1;"min"!=uiTheme||b||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),b=!0);var e=EditorUi.initTheme;EditorUi.initTheme=function(){e.apply(this,arguments);"min"!=uiTheme||b||(this.initMinimalTheme(),b=!0)}})();(function(){var b=mxGuide.prototype.move;mxGuide.prototype.move=function(c,d,e,n){var f=d.y,g=d.x,k=!1,p=!1;if(null!=this.states&&null!=c&&null!=d){var q=this,t=new mxCellState,v=this.graph.getView().scale,u=Math.max(2,this.getGuideTolerance()/2);t.x=c.x+g;t.y=c.y+f;t.width=c.width;t.height=c.height;for(var x=[],z=[],y=0;y<this.states.length;y++){var B=this.states[y];B instanceof mxCellState&&(n||!this.graph.isCellSelected(B.cell))&&((t.x>=B.x&&t.x<=B.x+B.width||B.x>=t.x&&B.x<=t.x+t.width)&&(t.y>
-B.y+B.height+4||t.y+t.height+4<B.y)?x.push(B):(t.y>=B.y&&t.y<=B.y+B.height||B.y>=t.y&&B.y<=t.y+t.height)&&(t.x>B.x+B.width+4||t.x+t.width+4<B.x)&&z.push(B))}var C=0,A=0,G=B=0,D=0,E=0,F=0,I=0,J=5*v;if(1<x.length){x.push(t);x.sort(function(b,c){return b.y-c.y});var H=!1,y=t==x[0],v=t==x[x.length-1];if(!y&&!v)for(y=1;y<x.length-1;y++)if(t==x[y]){v=x[y-1];y=x[y+1];B=A=G=(y.y-v.y-v.height-t.height)/2;break}for(y=0;y<x.length-1;y++){var v=x[y],K=x[y+1],N=t==v||t==K,K=K.y-v.y-v.height,H=H|t==v;if(0==A&&
-0==C)A=K,C=1;else if(Math.abs(A-K)<=(N||1==y&&H?u:0))C+=1;else if(1<C&&H){x=x.slice(0,y+1);break}else if(3<=x.length-y&&!H)C=0,B=A=0!=G?G:0,x.splice(0,0==y?1:y),y=-1;else break;0!=B||N||(A=B=K)}3==x.length&&x[1]==t&&(B=0)}if(1<z.length){z.push(t);z.sort(function(b,c){return b.x-c.x});H=!1;y=t==z[0];v=t==z[z.length-1];if(!y&&!v)for(y=1;y<z.length-1;y++)if(t==z[y]){v=z[y-1];y=z[y+1];F=E=I=(y.x-v.x-v.width-t.width)/2;break}for(y=0;y<z.length-1;y++){v=z[y];K=z[y+1];N=t==v||t==K;K=K.x-v.x-v.width;H|=t==
-v;if(0==E&&0==D)E=K,D=1;else if(Math.abs(E-K)<=(N||1==y&&H?u:0))D+=1;else if(1<D&&H){z=z.slice(0,y+1);break}else if(3<=z.length-y&&!H)D=0,F=E=0!=I?I:0,z.splice(0,0==y?1:y),y=-1;else break;0!=F||N||(E=F=K)}3==z.length&&z[1]==t&&(F=0)}u=function(b,c,d,e){var f=[],g;e?(e=J,g=0):(e=0,g=J);f.push(new mxPoint(b.x-e,b.y-g));f.push(new mxPoint(b.x+e,b.y+g));f.push(b);f.push(c);f.push(new mxPoint(c.x-e,c.y-g));f.push(new mxPoint(c.x+e,c.y+g));if(null!=d)return d.points=f,d;b=new mxPolyline(f,mxConstants.GUIDE_COLOR,
-mxConstants.GUIDE_STROKEWIDTH);b.dialect=mxConstants.DIALECT_SVG;b.pointerEvents=!1;b.init(q.graph.getView().getOverlayPane());return b};E=function(b,c){if(b&&null!=q.guidesArrHor)for(var d=0;d<q.guidesArrHor.length;d++)q.guidesArrHor[d].node.style.visibility="hidden";if(c&&null!=q.guidesArrVer)for(d=0;d<q.guidesArrVer.length;d++)q.guidesArrVer[d].node.style.visibility="hidden"};if(1<D&&D==z.length-1){D=[];I=q.guidesArrHor;k=[];g=0;y=z[0]==t?1:0;H=z[y].y+z[y].height;if(0<F)for(y=0;y<z.length-1;y++)v=
-z[y],K=z[y+1],t==v?(g=K.x-v.width-F,k.push(new mxPoint(g+v.width+J,H)),k.push(new mxPoint(K.x-J,H))):t==K?(k.push(new mxPoint(v.x+v.width+J,H)),g=v.x+v.width+F,k.push(new mxPoint(g-J,H))):(k.push(new mxPoint(v.x+v.width+J,H)),k.push(new mxPoint(K.x-J,H)));else v=z[0],y=z[2],g=v.x+v.width+(y.x-v.x-v.width-t.width)/2,k.push(new mxPoint(v.x+v.width+J,H)),k.push(new mxPoint(g-J,H)),k.push(new mxPoint(g+t.width+J,H)),k.push(new mxPoint(y.x-J,H));for(y=0;y<k.length;y+=2)z=k[y],F=k[y+1],z=u(z,F,null!=I?
-I[y/2]:null),z.node.style.visibility="visible",z.redraw(),D.push(z);for(y=k.length/2;null!=I&&y<I.length;y++)I[y].destroy();q.guidesArrHor=D;g-=c.x;k=!0}else E(!0);if(1<C&&C==x.length-1){D=[];I=q.guidesArrVer;p=[];f=0;y=x[0]==t?1:0;C=x[y].x+x[y].width;if(0<B)for(y=0;y<x.length-1;y++)v=x[y],K=x[y+1],t==v?(f=K.y-v.height-B,p.push(new mxPoint(C,f+v.height+J)),p.push(new mxPoint(C,K.y-J))):t==K?(p.push(new mxPoint(C,v.y+v.height+J)),f=v.y+v.height+B,p.push(new mxPoint(C,f-J))):(p.push(new mxPoint(C,v.y+
-v.height+J)),p.push(new mxPoint(C,K.y-J)));else v=x[0],y=x[2],f=v.y+v.height+(y.y-v.y-v.height-t.height)/2,p.push(new mxPoint(C,v.y+v.height+J)),p.push(new mxPoint(C,f-J)),p.push(new mxPoint(C,f+t.height+J)),p.push(new mxPoint(C,y.y-J));for(y=0;y<p.length;y+=2)z=p[y],F=p[y+1],z=u(z,F,null!=I?I[y/2]:null,!0),z.node.style.visibility="visible",z.redraw(),D.push(z);for(y=p.length/2;null!=I&&y<I.length;y++)I[y].destroy();q.guidesArrVer=D;f-=c.y;p=!0}else E(!1,!0)}if(k||p)return t=new mxPoint(g,f),x=b.call(this,
+B.y+B.height+4||t.y+t.height+4<B.y)?x.push(B):(t.y>=B.y&&t.y<=B.y+B.height||B.y>=t.y&&B.y<=t.y+t.height)&&(t.x>B.x+B.width+4||t.x+t.width+4<B.x)&&z.push(B))}var C=0,A=0,F=B=0,D=0,E=0,G=0,J=0,K=5*v;if(1<x.length){x.push(t);x.sort(function(b,c){return b.y-c.y});var H=!1,y=t==x[0],v=t==x[x.length-1];if(!y&&!v)for(y=1;y<x.length-1;y++)if(t==x[y]){v=x[y-1];y=x[y+1];B=A=F=(y.y-v.y-v.height-t.height)/2;break}for(y=0;y<x.length-1;y++){var v=x[y],I=x[y+1],N=t==v||t==I,I=I.y-v.y-v.height,H=H|t==v;if(0==A&&
+0==C)A=I,C=1;else if(Math.abs(A-I)<=(N||1==y&&H?u:0))C+=1;else if(1<C&&H){x=x.slice(0,y+1);break}else if(3<=x.length-y&&!H)C=0,B=A=0!=F?F:0,x.splice(0,0==y?1:y),y=-1;else break;0!=B||N||(A=B=I)}3==x.length&&x[1]==t&&(B=0)}if(1<z.length){z.push(t);z.sort(function(b,c){return b.x-c.x});H=!1;y=t==z[0];v=t==z[z.length-1];if(!y&&!v)for(y=1;y<z.length-1;y++)if(t==z[y]){v=z[y-1];y=z[y+1];G=E=J=(y.x-v.x-v.width-t.width)/2;break}for(y=0;y<z.length-1;y++){v=z[y];I=z[y+1];N=t==v||t==I;I=I.x-v.x-v.width;H|=t==
+v;if(0==E&&0==D)E=I,D=1;else if(Math.abs(E-I)<=(N||1==y&&H?u:0))D+=1;else if(1<D&&H){z=z.slice(0,y+1);break}else if(3<=z.length-y&&!H)D=0,G=E=0!=J?J:0,z.splice(0,0==y?1:y),y=-1;else break;0!=G||N||(E=G=I)}3==z.length&&z[1]==t&&(G=0)}u=function(b,c,d,e){var f=[],g;e?(e=K,g=0):(e=0,g=K);f.push(new mxPoint(b.x-e,b.y-g));f.push(new mxPoint(b.x+e,b.y+g));f.push(b);f.push(c);f.push(new mxPoint(c.x-e,c.y-g));f.push(new mxPoint(c.x+e,c.y+g));if(null!=d)return d.points=f,d;b=new mxPolyline(f,mxConstants.GUIDE_COLOR,
+mxConstants.GUIDE_STROKEWIDTH);b.dialect=mxConstants.DIALECT_SVG;b.pointerEvents=!1;b.init(q.graph.getView().getOverlayPane());return b};E=function(b,c){if(b&&null!=q.guidesArrHor)for(var d=0;d<q.guidesArrHor.length;d++)q.guidesArrHor[d].node.style.visibility="hidden";if(c&&null!=q.guidesArrVer)for(d=0;d<q.guidesArrVer.length;d++)q.guidesArrVer[d].node.style.visibility="hidden"};if(1<D&&D==z.length-1){D=[];J=q.guidesArrHor;k=[];g=0;y=z[0]==t?1:0;H=z[y].y+z[y].height;if(0<G)for(y=0;y<z.length-1;y++)v=
+z[y],I=z[y+1],t==v?(g=I.x-v.width-G,k.push(new mxPoint(g+v.width+K,H)),k.push(new mxPoint(I.x-K,H))):t==I?(k.push(new mxPoint(v.x+v.width+K,H)),g=v.x+v.width+G,k.push(new mxPoint(g-K,H))):(k.push(new mxPoint(v.x+v.width+K,H)),k.push(new mxPoint(I.x-K,H)));else v=z[0],y=z[2],g=v.x+v.width+(y.x-v.x-v.width-t.width)/2,k.push(new mxPoint(v.x+v.width+K,H)),k.push(new mxPoint(g-K,H)),k.push(new mxPoint(g+t.width+K,H)),k.push(new mxPoint(y.x-K,H));for(y=0;y<k.length;y+=2)z=k[y],G=k[y+1],z=u(z,G,null!=J?
+J[y/2]:null),z.node.style.visibility="visible",z.redraw(),D.push(z);for(y=k.length/2;null!=J&&y<J.length;y++)J[y].destroy();q.guidesArrHor=D;g-=c.x;k=!0}else E(!0);if(1<C&&C==x.length-1){D=[];J=q.guidesArrVer;p=[];f=0;y=x[0]==t?1:0;C=x[y].x+x[y].width;if(0<B)for(y=0;y<x.length-1;y++)v=x[y],I=x[y+1],t==v?(f=I.y-v.height-B,p.push(new mxPoint(C,f+v.height+K)),p.push(new mxPoint(C,I.y-K))):t==I?(p.push(new mxPoint(C,v.y+v.height+K)),f=v.y+v.height+B,p.push(new mxPoint(C,f-K))):(p.push(new mxPoint(C,v.y+
+v.height+K)),p.push(new mxPoint(C,I.y-K)));else v=x[0],y=x[2],f=v.y+v.height+(y.y-v.y-v.height-t.height)/2,p.push(new mxPoint(C,v.y+v.height+K)),p.push(new mxPoint(C,f-K)),p.push(new mxPoint(C,f+t.height+K)),p.push(new mxPoint(C,y.y-K));for(y=0;y<p.length;y+=2)z=p[y],G=p[y+1],z=u(z,G,null!=J?J[y/2]:null,!0),z.node.style.visibility="visible",z.redraw(),D.push(z);for(y=p.length/2;null!=J&&y<J.length;y++)J[y].destroy();q.guidesArrVer=D;f-=c.y;p=!0}else E(!1,!0)}if(k||p)return t=new mxPoint(g,f),x=b.call(this,
c,t,e,n),k&&!p?t.y=x.y:p&&!k&&(t.x=x.x),x.y!=t.y&&null!=this.guideY&&null!=this.guideY.node&&(this.guideY.node.style.visibility="hidden"),x.x!=t.x&&null!=this.guideX&&null!=this.guideX.node&&(this.guideX.node.style.visibility="hidden"),t;E(!0,!0);return b.apply(this,arguments)};var e=mxGuide.prototype.setVisible;mxGuide.prototype.setVisible=function(b){e.call(this,b);var c=this.guidesArrVer,d=this.guidesArrHor;if(null!=c)for(var n=0;n<c.length;n++)c[n].node.style.visibility=b?"visible":"hidden";if(null!=
d)for(n=0;n<d.length;n++)d[n].node.style.visibility=b?"visible":"hidden"};var d=mxGuide.prototype.destroy;mxGuide.prototype.destroy=function(){d.call(this);var b=this.guidesArrVer,e=this.guidesArrHor;if(null!=b){for(var k=0;k<b.length;k++)b[k].destroy();this.guidesArrVer=null}if(null!=e){for(k=0;k<e.length;k++)e[k].destroy();this.guidesArrHor=null}}})();function mxRuler(b,e,d,c){function g(){var c=b.diagramContainer;q.style.top=c.offsetTop-l+"px";q.style.left=c.offsetLeft-l+"px";q.style.width=(d?0:c.offsetWidth)+l+"px";q.style.height=(d?c.offsetHeight:0)+l+"px"}function k(b,c,d){if(null!=n)return b;var e;return function(){var f=this,g=arguments,k=d&&!e;clearTimeout(e);e=setTimeout(function(){e=null;d||b.apply(f,g)},c);k&&b.apply(f,g)}}var n=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,
f=window.cancelAnimationFrame||window.mozCancelAnimationFrame,l=this.RULER_THICKNESS,m=this;this.unit=e;var p=Editor.isDarkMode()?{bkgClr:"#202020",outBkgClr:Editor.darkColor,cornerClr:Editor.darkColor,strokeClr:"#505759",fontClr:"#BBBBBB",guideClr:"#0088cf"}:{bkgClr:"#ffffff",outBkgClr:"#e8e9ed",cornerClr:"#fbfbfb",strokeClr:"#dadce0",fontClr:"#BBBBBB",guideClr:"#0000BB"},q=document.createElement("div");q.style.position="absolute";this.updateStyle=mxUtils.bind(this,function(){p=Editor.isDarkMode()?
@@ -12768,31 +12768,31 @@ function(c){d=null!=b.currentMenu;mxEvent.consume(c)}),null,mxUtils.bind(this,fu
!0;f.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(f,arguments);b.resetCurrentMenu();f.destroy()});var g=mxEvent.getClientX(e),k=mxEvent.getClientY(e);f.popup(g,k,null,e);b.setCurrentMenu(f,c)}mxEvent.consume(e)}}))});c(this.hRuler.container);c(this.vRuler.container);this.vRuler.drawRuler();this.hRuler.drawRuler()}mxDualRuler.prototype.updateStyle=function(){this.vRuler.updateStyle();this.hRuler.updateStyle();this.vRuler.drawRuler();this.hRuler.drawRuler()};
mxDualRuler.prototype.setUnit=function(b){this.vRuler.setUnit(b);this.hRuler.setUnit(b)};mxDualRuler.prototype.setStyle=function(b){this.vRuler.setStyle(b);this.hRuler.setStyle(b)};mxDualRuler.prototype.destroy=function(){this.vRuler.destroy();this.hRuler.destroy();this.ui.refresh=this.editorUiRefresh;mxGuide.prototype.move=this.origGuideMove;mxGuide.prototype.destroy=this.origGuideDestroy;this.ui.getDiagramContainerOffset=this.editorUiGetDiagContOffset};function mxFreehand(b){var e=null!=b.view&&null!=b.view.canvas?b.view.canvas.ownerSVGElement:null;if(null!=b.container&&null!=e){b.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){this.stopDrawing()}));var d=mxFreehand.prototype.NORMAL_SMOOTHING,c=null,g=[],k,n=[],f,l=!1,m=!0,p=!0,q=!0,t=!0,v=[],u=!1,x=!0,z=!1,y={size:12,thinning:.5,smoothing:.5,streamline:.5,start:{taper:0,cap:!0},end:{taper:0,cap:!0}},B=!1;this.setClosedPath=function(b){l=b};this.setAutoClose=function(b){m=b};this.setAutoInsert=
function(b){p=b};this.setAutoScroll=function(b){q=b};this.setOpenFill=function(b){t=b};this.setStopClickEnabled=function(b){x=b};this.setSelectInserted=function(b){z=b};this.setSmoothing=function(b){d=b};this.setPerfectFreehandMode=function(b){B=b};this.setBrushSize=function(b){y.size=b};this.getBrushSize=function(){return y.size};var C=function(c){u=c;b.getRubberband().setEnabled(!c);b.graphHandler.setSelectEnabled(!c);b.graphHandler.setMoveEnabled(!c);b.container.style.cursor=c?"crosshair":"";b.fireEvent(new mxEventObject("freehandStateChanged"))};
-this.startDrawing=function(){C(!0)};this.isDrawing=function(){return u};var A=mxUtils.bind(this,function(b){if(c){var d=f.length,e=x&&0<n.length&&null!=f&&2>f.length;e||n.push.apply(n,f);f=[];n.push(null);g.push(c);c=null;(e||p)&&this.stopDrawing();p&&2<=d&&this.startDrawing();mxEvent.consume(b)}}),G=new mxCell;G.edge=!0;var D=function(){var c=b.getCurrentCellStyle(G),c=mxUtils.getValue(b.currentVertexStyle,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(c,mxConstants.STYLE_STROKECOLOR,"#000"));"default"==
+this.startDrawing=function(){C(!0)};this.isDrawing=function(){return u};var A=mxUtils.bind(this,function(b){if(c){var d=f.length,e=x&&0<n.length&&null!=f&&2>f.length;e||n.push.apply(n,f);f=[];n.push(null);g.push(c);c=null;(e||p)&&this.stopDrawing();p&&2<=d&&this.startDrawing();mxEvent.consume(b)}}),F=new mxCell;F.edge=!0;var D=function(){var c=b.getCurrentCellStyle(F),c=mxUtils.getValue(b.currentVertexStyle,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(c,mxConstants.STYLE_STROKECOLOR,"#000"));"default"==
c&&(c=b.shapeForegroundColor);return c};this.createStyle=function(b){var c=";fillColor=none;";B&&(c=";lineShape=1;");return mxConstants.STYLE_SHAPE+"="+b+c};this.stopDrawing=function(){if(0<g.length){if(B){for(var d=[],e=0;e<n.length;e++)null!=n[e]&&d.push([n[e].x,n[e].y]);d=PerfectFreehand.getStroke(d,y);n=[];for(e=0;e<d.length;e++)n.push({x:d[e][0],y:d[e][1]});n.push(null)}for(var d=n[0].x,f=n[0].x,k=n[0].y,p=n[0].y,e=1;e<n.length;e++)null!=n[e]&&(d=Math.max(d,n[e].x),f=Math.min(f,n[e].x),k=Math.max(k,
n[e].y),p=Math.min(p,n[e].y));d-=f;k-=p;if(0<d&&0<k){var q=100/d,u=100/k;n.map(function(b){if(null==b)return b;b.x=(b.x-f)*q;b.y=(b.y-p)*u;return b});for(var v='<shape strokewidth="inherit"><foreground>',x=0,e=0;e<n.length;e++){var A=n[e];if(null==A){var A=!1,x=n[x],D=n[e-1];!l&&m&&(A=x.x-D.x,D=x.y-D.y,A=Math.sqrt(A*A+D*D)<=b.tolerance);if(l||A)v+='<line x="'+x.x.toFixed(2)+'" y="'+x.y.toFixed(2)+'"/>';v+="</path>"+(t||l||A?"<fillstroke/>":"<stroke/>");x=e+1}else v=e==x?v+('<path><move x="'+A.x.toFixed(2)+
'" y="'+A.y.toFixed(2)+'"/>'):v+('<line x="'+A.x.toFixed(2)+'" y="'+A.y.toFixed(2)+'"/>')}v+="</foreground></shape>";if(b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){e=this.createStyle("stencil("+Graph.compress(v)+")");v=b.view.scale;x=b.view.translate;e=new mxCell("",new mxGeometry(f/v-x.x,p/v-x.y,d/v,k/v),e);e.vertex=1;b.model.beginUpdate();try{e=b.addCell(e),b.fireEvent(new mxEventObject("cellsInserted","cells",[e])),b.fireEvent(new mxEventObject("freehandInserted","cell",e))}finally{b.model.endUpdate()}z&&
b.setSelectionCells([e])}}for(e=0;e<g.length;e++)g[e].parentNode.removeChild(g[e]);c=null;g=[];n=[]}C(!1)};b.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,c){var d=c.getProperty("eventName"),e=c.getProperty("event");d==mxEvent.MOUSE_MOVE&&u&&(null!=e.sourceState&&e.sourceState.setCursor("crosshair"),e.consume())}));b.addMouseListener({mouseDown:mxUtils.bind(this,function(d,g){if(b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){var l=g.getEvent();if(u&&!mxEvent.isPopupTrigger(l)&&
!mxEvent.isMultiTouchEvent(l)){var m=parseFloat(b.currentVertexStyle[mxConstants.STYLE_STROKEWIDTH]||1),m=Math.max(1,m*b.view.scale),p=D();c=document.createElementNS("http://www.w3.org/2000/svg","path");c.setAttribute("fill",B?p:"none");c.setAttribute("stroke",p);c.setAttribute("stroke-width",m);"1"==b.currentVertexStyle[mxConstants.STYLE_DASHED]&&(p=b.currentVertexStyle[mxConstants.STYLE_DASH_PATTERN]||"3 3",p=p.split(" ").map(function(b){return parseFloat(b)*m}).join(" "),c.setAttribute("stroke-dasharray",
-p));v=[];l=E(l);F(l);k="M"+l.x+" "+l.y;n.push(l);f=[];c.setAttribute("d",B?PerfectFreehand.getSvgPathFromStroke([[l.x,l.y]],y):k);e.appendChild(c);g.consume()}}}),mouseMove:mxUtils.bind(this,function(d,e){if(c&&b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){var g=e.getEvent(),g=E(g);F(g);var l=I(0);if(l)if(n.push(l),B){for(var m=[],l=0;l<n.length;l++)m.push([n[l].x,n[l].y]);f=[];for(var p=2;p<v.length;p+=2)l=I(p),m.push([l.x,l.y]),f.push(l);c.setAttribute("d",PerfectFreehand.getSvgPathFromStroke(m,
-y))}else{k+=" L"+l.x+" "+l.y;m="";f=[];for(p=2;p<v.length;p+=2)l=I(p),m+=" L"+l.x+" "+l.y,f.push(l);c.setAttribute("d",k+m)}q&&(l=b.view.translate,b.scrollRectToVisible((new mxRectangle(g.x-l.x,g.y-l.y)).grow(20)));e.consume()}}),mouseUp:mxUtils.bind(this,function(d,e){c&&b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&(A(e.getEvent()),e.consume())})});var E=function(c){return mxUtils.convertPoint(b.container,mxEvent.getClientX(c),mxEvent.getClientY(c))},F=function(b){for(v.push(b);v.length>
-d;)v.shift()},I=function(b){var c=v.length;if(1===c%2||c>=d){var e=0,f=0,g,k=0;for(g=b;g<c;g++)k++,b=v[g],e+=b.x,f+=b.y;return{x:e/k,y:f/k}}return null}}}mxFreehand.prototype.NO_SMOOTHING=1;mxFreehand.prototype.MILD_SMOOTHING=4;mxFreehand.prototype.NORMAL_SMOOTHING=8;mxFreehand.prototype.VERY_SMOOTH_SMOOTHING=12;mxFreehand.prototype.SUPER_SMOOTH_SMOOTHING=16;mxFreehand.prototype.HYPER_SMOOTH_SMOOTHING=20;function P2PCollab(b,e,d){function c(b,c){if(!I){var d=e.file.getCurrentUser();if(F&&null!=d&&null!=d.email){d=JSON.stringify({from:A,id:x,type:b,sessionId:e.clientId,userId:d.id,username:d.displayName,data:c,protocol:DrawioFileSync.PROTOCOL,editor:EditorUi.VERSION});J&&"cursor"!=b&&EditorUi.debug("P2PCollab: sending to socket server",[d]);x++;var f=!J&&("cursor"==b||"selectionChange"==b);E&&!f&&Q("message",d);if(f)for(p2pId in D)D[p2pId].send(d)}}}function g(d){if(b.shareCursorPosition&&!p.isMouseDown){var e=
+p));v=[];l=E(l);G(l);k="M"+l.x+" "+l.y;n.push(l);f=[];c.setAttribute("d",B?PerfectFreehand.getSvgPathFromStroke([[l.x,l.y]],y):k);e.appendChild(c);g.consume()}}}),mouseMove:mxUtils.bind(this,function(d,e){if(c&&b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){var g=e.getEvent(),g=E(g);G(g);var l=J(0);if(l)if(n.push(l),B){for(var m=[],l=0;l<n.length;l++)m.push([n[l].x,n[l].y]);f=[];for(var p=2;p<v.length;p+=2)l=J(p),m.push([l.x,l.y]),f.push(l);c.setAttribute("d",PerfectFreehand.getSvgPathFromStroke(m,
+y))}else{k+=" L"+l.x+" "+l.y;m="";f=[];for(p=2;p<v.length;p+=2)l=J(p),m+=" L"+l.x+" "+l.y,f.push(l);c.setAttribute("d",k+m)}q&&(l=b.view.translate,b.scrollRectToVisible((new mxRectangle(g.x-l.x,g.y-l.y)).grow(20)));e.consume()}}),mouseUp:mxUtils.bind(this,function(d,e){c&&b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&(A(e.getEvent()),e.consume())})});var E=function(c){return mxUtils.convertPoint(b.container,mxEvent.getClientX(c),mxEvent.getClientY(c))},G=function(b){for(v.push(b);v.length>
+d;)v.shift()},J=function(b){var c=v.length;if(1===c%2||c>=d){var e=0,f=0,g,k=0;for(g=b;g<c;g++)k++,b=v[g],e+=b.x,f+=b.y;return{x:e/k,y:f/k}}return null}}}mxFreehand.prototype.NO_SMOOTHING=1;mxFreehand.prototype.MILD_SMOOTHING=4;mxFreehand.prototype.NORMAL_SMOOTHING=8;mxFreehand.prototype.VERY_SMOOTH_SMOOTHING=12;mxFreehand.prototype.SUPER_SMOOTH_SMOOTHING=16;mxFreehand.prototype.HYPER_SMOOTH_SMOOTHING=20;function P2PCollab(b,e,d){function c(b,c){if(!J){var d=e.file.getCurrentUser();if(G&&null!=d&&null!=d.email){d=JSON.stringify({from:A,id:x,type:b,sessionId:e.clientId,userId:d.id,username:d.displayName,data:c,protocol:DrawioFileSync.PROTOCOL,editor:EditorUi.VERSION});K&&"cursor"!=b&&EditorUi.debug("P2PCollab: sending to socket server",[d]);x++;var f=!K&&("cursor"==b||"selectionChange"==b);E&&!f&&R("message",d);if(f)for(p2pId in D)D[p2pId].send(d)}}}function g(d){if(b.shareCursorPosition&&!p.isMouseDown){var e=
mxUtils.getOffset(p.container),f=p.view.translate,g=p.view.scale,k=null!=b.currentPage?b.currentPage.getId():null;c("cursor",{pageId:k,x:Math.round((d.getX()-e.x+p.container.scrollLeft)/g-f.x),y:Math.round((d.getY()-e.y+p.container.scrollTop)/g-f.y)})}}function k(c,d){var e=null!=b.currentPage?b.currentPage.getId():null;if(null!=c&&null!=c.cursor&&null!=c.lastCursor)if(null!=c.lastCursor.hide||null!=c.lastCursor.pageId&&c.lastCursor.pageId!=e)c.cursor.style.display="none";else{var e=function(){var b=
Math.max(p.container.scrollLeft,Math.min(p.container.scrollLeft+p.container.clientWidth-c.cursor.clientWidth,k)),d=Math.max(p.container.scrollTop-22,Math.min(p.container.scrollTop+p.container.clientHeight-c.cursor.clientHeight,l));m.style.opacity=b!=k||d!=l?0:1;c.cursor.style.left=b+"px";c.cursor.style.top=d+"px";c.cursor.style.display=""},f=p.view.translate,g=p.view.scale,k=(f.x+c.lastCursor.x)*g+8,l=(f.y+c.lastCursor.y)*g-12,m=c.cursor.getElementsByTagName("img")[0];d?(mxUtils.setPrefixedStyle(c.cursor.style,
"transition","all 600ms ease-out"),mxUtils.setPrefixedStyle(m.style,"transition","all 600ms ease-out"),window.setTimeout(e,0)):(mxUtils.setPrefixedStyle(c.cursor.style,"transition",null),mxUtils.setPrefixedStyle(m.style,"transition",null),e())}}function n(c,d){function f(){if(null==u[m]){var c=C[m];null==c&&(c=q%v.length,C[m]=c,q++);var e=v[c],c=11<c?"black":"white";u[m]={cursor:document.createElement("div"),color:e,selection:{}};y[d]=m;n=u[m].cursor;n.style.pointerEvents="none";n.style.position=
"absolute";n.style.display="none";n.style.opacity="0.9";n.style.zIndex=5E3;var f=document.createElement("img");mxUtils.setPrefixedStyle(f.style,"transform","rotate(-45deg)translateX(-14px)");f.setAttribute("src",Graph.createSvgImage(8,12,'<path d="M 4 0 L 8 12 L 4 10 L 0 12 Z" stroke="'+e+'" fill="'+e+'"/>').src);f.style.width="10px";n.appendChild(f);f=document.createElement("div");f.style.backgroundColor=e;f.style.color=c;f.style.fontSize="9pt";f.style.padding="3px 7px";f.style.marginTop="8px";f.style.borderRadius=
-"10px";f.style.maxWidth="100px";f.style.overflow="hidden";f.style.textOverflow="ellipsis";f.style.whiteSpace="nowrap";mxUtils.write(f,g);n.appendChild(f);b.diagramContainer.appendChild(n)}else n=u[m].cursor;t=u[m].selection}if(!I){c=JSON.parse(c);J&&"cursor"!=c.type&&EditorUi.debug("P2PCollab: msg received",[c]);if(null!=d){if(c.from==A||z[c.from]>=c.id){EditorUi.debug("P2PCollab: Dropped Message",c,A,z[c.from]);return}z[c.from]=c.id}var g=c.username?c.username:"Anonymous",m=c.sessionId,n,t;null!=
-u[m]&&(clearTimeout(u[m].inactiveTO),u[m].inactiveTO=setTimeout(function(){l(null,m)},12E4));var x=c.data;switch(c.type){case "cursor":f();u[m].lastCursor=x;k(u[m],!0);break;case "diff":try{c=e.stringToObject(decodeURIComponent(x.patch)),e.receiveRemoteChanges(c.d)}catch(na){EditorUi.debug("P2PCollab: Diff msg error",na)}break;case "selectionChange":if("0"!=urlParams["remote-selection"]){var B=null!=b.currentPage?b.currentPage.getId():null;if(null==B||null!=x.pageId&&x.pageId==B){f();for(B=0;B<x.removed.length;B++){var D=
-x.removed[B],E=t[D];delete t[D];null!=E&&E.destroy()}for(B=0;B<x.added.length;B++)D=x.added[B],E=p.model.getCell(D),null!=E&&(t[D]=p.highlightCell(E,u[m].color,6E4,70,3))}}}e.file.fireEvent(new mxEventObject("realtimeMessage","message",c))}}function f(b,c){if(!J&&SimplePeer.WEBRTC_SUPPORT){var d=new SimplePeer({initiator:c,config:{iceServers:[{urls:"stun:54.89.235.160:3478"}]}});d.on("signal",function(c){Q("sendSignal",{to:b,from:A,signal:c})});d.on("error",function(e){delete G[b];EditorUi.debug("P2PCollab: p2p socket error",
-e);!I&&c&&d.destroyed&&B[b]&&(EditorUi.debug("P2PCollab: p2p socket reconnecting",b),f(b,!0))});d.on("connect",function(){delete G[b];null==D[b]||D[b].destroyed?(D[b]=d,B[b]=!0,EditorUi.debug("P2PCollab: p2p socket connected",b)):(d.noP2PMapDel=!0,d.destroy(),EditorUi.debug("P2PCollab: p2p socket duplicate",b))});d.on("close",function(){d.noP2PMapDel||(EditorUi.debug("P2PCollab: p2p socket closed",b),m(y[b]),delete D[b])});d.on("data",n);return G[b]=d}}function l(b,c){m(c||y[b]);null!=b&&(delete y[b],
-B[b]=!1)}function m(b){var c=u[b];if(null!=c){var d=c.selection,e;for(e in d)null!=d[e]&&d[e].destroy();null!=c.cursor&&null!=c.cursor.parentNode&&c.cursor.parentNode.removeChild(c.cursor);clearTimeout(c.inactiveTO);delete u[b]}}var p=b.editor.graph,q=0,t=null,v="#e6194b #3cb44b #4363d8 #f58231 #911eb4 #f032e6 #469990 #9A6324 #800000 #808000 #000075 #a9a9a9 #ffe119 #42d4f4 #bfef45 #fabed4 #dcbeff #fffac8 #aaffc3 #ffd8b1".split(" "),u={},x=1,z={},y={},B={},C={},A,G={},D={},E=!0,F=!1,I=!1,J="0"!=urlParams["no-p2p"],
-H=!1,K=0,N=null,Q=mxUtils.bind(this,function(b,c){if(!I)try{null!=t?(t.send(JSON.stringify({action:b,msg:c})),J||EditorUi.debug("P2PCollab: sending to socket server",[b],[c])):this.joinFile(!0)}catch(X){N=X,e.file.fireEvent(new mxEventObject("realtimeStateChanged")),EditorUi.debug("P2PCollab:","sendReply error",arguments,X)}});this.sendMessage=c;this.sendDiff=function(b){this.sendMessage("diff",{patch:b})};this.getState=function(){return null!=t?t.readyState:3};this.getLastError=function(){return N};
+"10px";f.style.maxWidth="100px";f.style.overflow="hidden";f.style.textOverflow="ellipsis";f.style.whiteSpace="nowrap";mxUtils.write(f,g);n.appendChild(f);b.diagramContainer.appendChild(n)}else n=u[m].cursor;t=u[m].selection}if(!J){c=JSON.parse(c);K&&"cursor"!=c.type&&EditorUi.debug("P2PCollab: msg received",[c]);if(null!=d){if(c.from==A||z[c.from]>=c.id){EditorUi.debug("P2PCollab: Dropped Message",c,A,z[c.from]);return}z[c.from]=c.id}var g=c.username?c.username:"Anonymous",m=c.sessionId,n,t;null!=
+u[m]&&(clearTimeout(u[m].inactiveTO),u[m].inactiveTO=setTimeout(function(){l(null,m)},12E4));var x=c.data;switch(c.type){case "cursor":f();u[m].lastCursor=x;k(u[m],!0);break;case "diff":try{c=e.stringToObject(decodeURIComponent(x.patch)),e.receiveRemoteChanges(c.d)}catch(oa){EditorUi.debug("P2PCollab: Diff msg error",oa)}break;case "selectionChange":if("0"!=urlParams["remote-selection"]){var B=null!=b.currentPage?b.currentPage.getId():null;if(null==B||null!=x.pageId&&x.pageId==B){f();for(B=0;B<x.removed.length;B++){var D=
+x.removed[B],E=t[D];delete t[D];null!=E&&E.destroy()}for(B=0;B<x.added.length;B++)D=x.added[B],E=p.model.getCell(D),null!=E&&(t[D]=p.highlightCell(E,u[m].color,6E4,70,3))}}}e.file.fireEvent(new mxEventObject("realtimeMessage","message",c))}}function f(b,c){if(!K&&SimplePeer.WEBRTC_SUPPORT){var d=new SimplePeer({initiator:c,config:{iceServers:[{urls:"stun:54.89.235.160:3478"}]}});d.on("signal",function(c){R("sendSignal",{to:b,from:A,signal:c})});d.on("error",function(e){delete F[b];EditorUi.debug("P2PCollab: p2p socket error",
+e);!J&&c&&d.destroyed&&B[b]&&(EditorUi.debug("P2PCollab: p2p socket reconnecting",b),f(b,!0))});d.on("connect",function(){delete F[b];null==D[b]||D[b].destroyed?(D[b]=d,B[b]=!0,EditorUi.debug("P2PCollab: p2p socket connected",b)):(d.noP2PMapDel=!0,d.destroy(),EditorUi.debug("P2PCollab: p2p socket duplicate",b))});d.on("close",function(){d.noP2PMapDel||(EditorUi.debug("P2PCollab: p2p socket closed",b),m(y[b]),delete D[b])});d.on("data",n);return F[b]=d}}function l(b,c){m(c||y[b]);null!=b&&(delete y[b],
+B[b]=!1)}function m(b){var c=u[b];if(null!=c){var d=c.selection,e;for(e in d)null!=d[e]&&d[e].destroy();null!=c.cursor&&null!=c.cursor.parentNode&&c.cursor.parentNode.removeChild(c.cursor);clearTimeout(c.inactiveTO);delete u[b]}}var p=b.editor.graph,q=0,t=null,v="#e6194b #3cb44b #4363d8 #f58231 #911eb4 #f032e6 #469990 #9A6324 #800000 #808000 #000075 #a9a9a9 #ffe119 #42d4f4 #bfef45 #fabed4 #dcbeff #fffac8 #aaffc3 #ffd8b1".split(" "),u={},x=1,z={},y={},B={},C={},A,F={},D={},E=!0,G=!1,J=!1,K="0"!=urlParams["no-p2p"],
+H=!1,I=0,N=null,R=mxUtils.bind(this,function(b,c){if(!J)try{null!=t?(t.send(JSON.stringify({action:b,msg:c})),K||EditorUi.debug("P2PCollab: sending to socket server",[b],[c])):this.joinFile(!0)}catch(X){N=X,e.file.fireEvent(new mxEventObject("realtimeStateChanged")),EditorUi.debug("P2PCollab:","sendReply error",arguments,X)}});this.sendMessage=c;this.sendDiff=function(b){this.sendMessage("diff",{patch:b})};this.getState=function(){return null!=t?t.readyState:3};this.getLastError=function(){return N};
this.mouseListeners={startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(b,c){},mouseMove:function(b,c){var d,e=-1;return function(){clearTimeout(d);var f=this,g=arguments,k=function(){d=null;e=Date.now();b.apply(f,g)};Date.now()-e>c?k():d=setTimeout(k,c)}}(function(b,c){g(c)},200),mouseUp:function(b,c){g(c)}};p.addMouseListener(this.mouseListeners);this.shareCursorPositionListener=function(){b.isShareCursorPosition()||c("cursor",{hide:!0})};b.addListener("shareCursorPositionChanged",this.shareCursorPositionListener);
this.selectionChangeListener=function(d,e){var f=function(b){return b.id},g=null!=b.currentPage?b.currentPage.getId():null,k=e.getProperty("added"),l=e.getProperty("removed");c("selectionChange",{pageId:g,removed:k?k.map(f):[],added:l?l.map(f):[]})};p.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionChangeListener);this.cursorHandler=mxUtils.bind(this,function(){for(var b in u)k(u[b])});mxEvent.addListener(p.container,"scroll",this.cursorHandler);p.getView().addListener(mxEvent.SCALE,
-this.cursorHandler);p.getView().addListener(mxEvent.TRANSLATE,this.cursorHandler);p.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.cursorHandler);b.editor.addListener("pageSelected",this.cursorHandler);this.joinFile=function(b){if(!I)try{H&&(EditorUi.debug("P2PCollab: joinInProgress on",H),N="busy");H=++K;try{null!=t&&(EditorUi.debug("P2PCollab: force closing socket on",t.joinId),t.close(1E3),t=null)}catch(S){EditorUi.debug("P2PCollab: closing socket error",S)}var c=new WebSocket(window.RT_WEBSOCKET_URL+
-"?id="+d);c.addEventListener("open",function(d){t=c;t.joinId=H;H=!1;e.file.fireEvent(new mxEventObject("realtimeStateChanged"));EditorUi.debug("P2PCollab: open socket",t.joinId);b&&e.scheduleCleanup()});c.addEventListener("message",mxUtils.bind(this,function(b){J||EditorUi.debug("P2PCollab: msg received",[b]);var c=JSON.parse(b.data);J&&"message"!=c.action&&EditorUi.debug("P2PCollab: msg received",[b]);switch(c.action){case "message":n(c.msg,c.from);break;case "clientsList":b=c.msg;A=b.cId;F=!0;for(c=
-0;c<b.list.length;c++)f(b.list[c],!0);break;case "signal":b=c.msg;J||(G[b.from]?c=G[b.from]:(c=f(b.from,!1),E=!0),c.signal(b.signal));break;case "newClient":E=!0;break;case "clientLeft":l(c.msg);break;case "sendSignalFailed":b=c.msg,EditorUi.debug("P2PCollab: signal failed (socket not found on server)",b),delete G[b.to],B[b.to]=!1}}));var g=!1;c.addEventListener("close",mxUtils.bind(this,function(b){EditorUi.debug("P2PCollab: WebSocket closed",c.joinId,"reconnecting",b.code,b.reason);EditorUi.debug("P2PCollab: closing socket on",
-c.joinId);I||1E3==b.code||K!=c.joinId||(H==K&&(EditorUi.debug("P2PCollab: joinInProgress in close on",c.joinId),H=!1),g||(EditorUi.debug("P2PCollab: calling rejoin on",c.joinId),g=!0,this.joinFile(!0)));e.file.fireEvent(new mxEventObject("realtimeStateChanged"))}));c.addEventListener("error",mxUtils.bind(this,function(b){EditorUi.debug("P2PCollab: WebSocket error, reconnecting",b);EditorUi.debug("P2PCollab: error socket on",c.joinId);I||K!=c.joinId||(H==K&&(EditorUi.debug("P2PCollab: joinInProgress in error on",
-c.joinId),H=!1),g||(EditorUi.debug("P2PCollab: calling rejoin on",c.joinId),g=!0,this.joinFile(!0)));e.file.fireEvent(new mxEventObject("realtimeStateChanged"))}));e.file.fireEvent(new mxEventObject("realtimeStateChanged"))}catch(S){N=S,e.file.fireEvent(new mxEventObject("realtimeStateChanged"))}};this.destroy=function(){if(!I){EditorUi.debug("P2PCollab: destroyed");I=!0;for(sessionId in u)m(sessionId);null!=this.mouseListeners&&p.removeMouseListener(this.mouseListeners);null!=this.selectionChangeListener&&
+this.cursorHandler);p.getView().addListener(mxEvent.TRANSLATE,this.cursorHandler);p.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.cursorHandler);b.editor.addListener("pageSelected",this.cursorHandler);this.joinFile=function(b){if(!J)try{H&&(EditorUi.debug("P2PCollab: joinInProgress on",H),N="busy");H=++I;try{null!=t&&(EditorUi.debug("P2PCollab: force closing socket on",t.joinId),t.close(1E3),t=null)}catch(S){EditorUi.debug("P2PCollab: closing socket error",S)}var c=new WebSocket(window.RT_WEBSOCKET_URL+
+"?id="+d);c.addEventListener("open",function(d){t=c;t.joinId=H;H=!1;e.file.fireEvent(new mxEventObject("realtimeStateChanged"));EditorUi.debug("P2PCollab: open socket",t.joinId);b&&e.scheduleCleanup()});c.addEventListener("message",mxUtils.bind(this,function(b){K||EditorUi.debug("P2PCollab: msg received",[b]);var c=JSON.parse(b.data);K&&"message"!=c.action&&EditorUi.debug("P2PCollab: msg received",[b]);switch(c.action){case "message":n(c.msg,c.from);break;case "clientsList":b=c.msg;A=b.cId;G=!0;for(c=
+0;c<b.list.length;c++)f(b.list[c],!0);break;case "signal":b=c.msg;K||(F[b.from]?c=F[b.from]:(c=f(b.from,!1),E=!0),c.signal(b.signal));break;case "newClient":E=!0;break;case "clientLeft":l(c.msg);break;case "sendSignalFailed":b=c.msg,EditorUi.debug("P2PCollab: signal failed (socket not found on server)",b),delete F[b.to],B[b.to]=!1}}));var g=!1;c.addEventListener("close",mxUtils.bind(this,function(b){EditorUi.debug("P2PCollab: WebSocket closed",c.joinId,"reconnecting",b.code,b.reason);EditorUi.debug("P2PCollab: closing socket on",
+c.joinId);J||1E3==b.code||I!=c.joinId||(H==I&&(EditorUi.debug("P2PCollab: joinInProgress in close on",c.joinId),H=!1),g||(EditorUi.debug("P2PCollab: calling rejoin on",c.joinId),g=!0,this.joinFile(!0)));e.file.fireEvent(new mxEventObject("realtimeStateChanged"))}));c.addEventListener("error",mxUtils.bind(this,function(b){EditorUi.debug("P2PCollab: WebSocket error, reconnecting",b);EditorUi.debug("P2PCollab: error socket on",c.joinId);J||I!=c.joinId||(H==I&&(EditorUi.debug("P2PCollab: joinInProgress in error on",
+c.joinId),H=!1),g||(EditorUi.debug("P2PCollab: calling rejoin on",c.joinId),g=!0,this.joinFile(!0)));e.file.fireEvent(new mxEventObject("realtimeStateChanged"))}));e.file.fireEvent(new mxEventObject("realtimeStateChanged"))}catch(S){N=S,e.file.fireEvent(new mxEventObject("realtimeStateChanged"))}};this.destroy=function(){if(!J){EditorUi.debug("P2PCollab: destroyed");J=!0;for(sessionId in u)m(sessionId);null!=this.mouseListeners&&p.removeMouseListener(this.mouseListeners);null!=this.selectionChangeListener&&
p.getSelectionModel().removeListener(this.selectionChangeListener);null!=this.shareCursorPositionListener&&b.removeListener(this.shareCursorPositionListener);null!=this.cursorHandler&&(mxEvent.removeListener(p.container,"scroll",this.cursorHandler),p.getView().removeListener(mxEvent.SCALE,this.cursorHandler),p.getView().removeListener(mxEvent.TRANSLATE,this.cursorHandler),p.getView().removeListener(mxEvent.SCALE_AND_TRANSLATE,this.cursorHandler),b.editor.removeListener("pageSelected",this.cursorHandler));
null!=t&&(t.close(1E3),t=null);for(var c in D)null!=D[c]&&D[c].destroy();e.file.fireEvent(new mxEventObject("realtimeStateChanged"))}}};
diff --git a/src/main/webapp/js/diagramly/Devel.js b/src/main/webapp/js/diagramly/Devel.js
index eb9a457e..a8987edb 100644
--- a/src/main/webapp/js/diagramly/Devel.js
+++ b/src/main/webapp/js/diagramly/Devel.js
@@ -114,7 +114,7 @@ if (!mxIsElectron && location.protocol !== 'http:')
'worker-src https://ac.draw.io/service-worker.js;';
console.log('ac.draw.io:', ac_draw_io);
- var aj_draw_io = csp.replace(/%script-src%/g, 'https://connect-cdn.atl-paas.net').
+ var aj_draw_io = csp.replace(/%script-src%/g, 'https://aui-cdn.atlassian.com https://cdnjs.cloudflare.com https://connect-cdn.atl-paas.net').
replace(/%frame-src%/g, 'blob:').
replace(/%style-src%/g, 'https://aui-cdn.atlassian.com https://*.atlassian.net').
replace(/%connect-src%/g, 'https://api.atlassian.com https://api.media.atlassian.com').
diff --git a/src/main/webapp/js/diagramly/Dialogs.js b/src/main/webapp/js/diagramly/Dialogs.js
index 8478da27..dd16d6ec 100644
--- a/src/main/webapp/js/diagramly/Dialogs.js
+++ b/src/main/webapp/js/diagramly/Dialogs.js
@@ -5484,7 +5484,7 @@ var LinkDialog = function(editorUi, initialValue, btnLabel, fn, showPages, showN
{
linkInput.value = files.value[0].webUrl;
linkInput.focus();
- });
+ }, true);
});
}
diff --git a/src/main/webapp/js/diagramly/EditorUi.js b/src/main/webapp/js/diagramly/EditorUi.js
index 3d951b0b..3aa0287f 100644
--- a/src/main/webapp/js/diagramly/EditorUi.js
+++ b/src/main/webapp/js/diagramly/EditorUi.js
@@ -5768,46 +5768,45 @@
var tags = this.addCheckbox(div, mxResources.get('tags'), true);
var lightbox = this.addCheckbox(div, mxResources.get('lightbox'), true);
- // Writes to dummy div if disabled
- var c = (EditorUi.enableHtmlEditOption) ? div : div.cloneNode();
- var editSection = this.addEditButton(c, lightbox);
- var edit = editSection.getEditInput();
- edit.style.marginBottom = '16px';
- var h = 430;
+ var editSection = null;
+ var h = 380;
- if (!EditorUi.enableHtmlEditOption)
- {
- h -= 50;
- }
-
- mxEvent.addListener(lightbox, 'change', function()
+ if (EditorUi.enableHtmlEditOption)
{
- if (lightbox.checked)
- {
- edit.removeAttribute('disabled');
- }
- else
- {
- edit.setAttribute('disabled', 'disabled');
- }
-
- if (edit.checked && lightbox.checked)
- {
- editSection.getEditSelect().removeAttribute('disabled');
- }
- else
+ editSection = this.addEditButton(div, lightbox);
+ var edit = editSection.getEditInput();
+ edit.style.marginBottom = '16px';
+ h += 50;
+
+ mxEvent.addListener(lightbox, 'change', function()
{
- editSection.getEditSelect().setAttribute('disabled', 'disabled');
- }
- });
-
+ if (lightbox.checked)
+ {
+ edit.removeAttribute('disabled');
+ }
+ else
+ {
+ edit.setAttribute('disabled', 'disabled');
+ }
+
+ if (edit.checked && lightbox.checked)
+ {
+ editSection.getEditSelect().removeAttribute('disabled');
+ }
+ else
+ {
+ editSection.getEditSelect().setAttribute('disabled', 'disabled');
+ }
+ });
+ }
+
var dlg = new CustomDialog(this, div, mxUtils.bind(this, function()
{
fn((publicUrlRadio.checked) ? publicUrl : null, zoom.checked, zoomInput.value, linkSection.getTarget(),
linkSection.getColor(), fit.checked, allPages.checked, layers.checked, tags.checked,
- lightbox.checked, (EditorUi.enableHtmlEditOption) ? editSection.getLink() : null);
+ lightbox.checked, (editSection != null) ? editSection.getLink() : null);
}), null, btnLabel, helpLink);
- this.showDialog(dlg.container, 340, 430, true, true);
+ this.showDialog(dlg.container, 340, h, true, true);
copyRadio.focus();
};
@@ -12812,6 +12811,7 @@
if (data.title != null && this.buttonContainer != null)
{
var tmp = document.createElement('span');
+ tmp.style.marginLeft = '4px';
mxUtils.write(tmp, data.title);
if (this.embedFilenameSpan != null)
diff --git a/src/main/webapp/js/diagramly/Minimal.js b/src/main/webapp/js/diagramly/Minimal.js
index 379992d9..6695347b 100644
--- a/src/main/webapp/js/diagramly/Minimal.js
+++ b/src/main/webapp/js/diagramly/Minimal.js
@@ -2310,16 +2310,16 @@ EditorUi.initMinimalTheme = function()
}
});
- // Connects the status bar to the editor status and
- // moves status to bell icon tooltip for trivial messages
- if (urlParams['embed'] != '1')
+ // Connects the status bar to the editor status and moves
+ // status to bell icon title for frequent common messages
+ menubar.style.visibility = (menubar.clientWidth < 14) ? 'hidden' : '';
+
+ ui.editor.addListener('statusChanged', mxUtils.bind(this, function()
{
- menubar.style.visibility = (menubar.clientWidth < 14) ? 'hidden' : '';
+ ui.setStatusText(ui.editor.getStatus());
- ui.editor.addListener('statusChanged', mxUtils.bind(this, function()
+ if (urlParams['embed'] != '1')
{
- ui.setStatusText(ui.editor.getStatus());
-
if (ui.statusContainer.children.length == 0 ||
(ui.statusContainer.children.length == 1 &&
typeof ui.statusContainer.firstChild.getAttribute === 'function' &&
@@ -2353,17 +2353,10 @@ EditorUi.initMinimalTheme = function()
statusVisible = true;
}
+ }
- menubar.style.visibility = (menubar.clientWidth > 12) ? '' : 'hidden';
- }));
- }
- else
- {
- ui.editor.addListener('statusChanged', mxUtils.bind(this, function()
- {
- menubar.style.visibility = (menubar.clientWidth > 16) ? '' : 'hidden';
- }));
- }
+ menubar.style.visibility = (menubar.clientWidth > 12) ? '' : 'hidden';
+ }));
elt = addMenu('diagram', null, Editor.menuImage);
elt.style.boxShadow = 'none';
diff --git a/src/main/webapp/js/diagramly/OneDriveClient.js b/src/main/webapp/js/diagramly/OneDriveClient.js
index adfc16ac..ecf5fd07 100644
--- a/src/main/webapp/js/diagramly/OneDriveClient.js
+++ b/src/main/webapp/js/diagramly/OneDriveClient.js
@@ -397,7 +397,6 @@ OneDriveClient.prototype.authenticateStep2 = function(state, success, error, fai
}
};
-
OneDriveClient.prototype.getAccountTypeAndEndpoint = function(success, error)
{
this.get(this.baseUrl + '/me/drive/root', mxUtils.bind(this, function(req)
@@ -1290,7 +1289,7 @@ OneDriveClient.prototype.pickLibrary = function(fn)
});
};
-OneDriveClient.prototype.createInlinePicker = function(fn, foldersOnly)
+OneDriveClient.prototype.createInlinePicker = function(fn, foldersOnly, acceptAllFiles)
{
return mxUtils.bind(this, function()
{
@@ -1306,16 +1305,23 @@ OneDriveClient.prototype.createInlinePicker = function(fn, foldersOnly)
{
if (foldersOnly && typeof item.folder == 'object')
{
- fn({
- value: [item]
- });
- return;
+ fn({value: [item]});
}
else if (!item.folder)
{
- fn(OneDriveFile.prototype.getIdOf(item));
- return;
+ var id = OneDriveFile.prototype.getIdOf(item);
+
+ this.executeRequest(this.getItemURL(id), mxUtils.bind(this, function(req)
+ {
+ if (req.getStatus() >= 200 && req.getStatus() <= 299)
+ {
+ var meta = JSON.parse(req.getText());
+ fn(id, {value: [meta]});
+ }
+ }), null);
}
+
+ return;
}
return mxResources.get('invalidSel', null, 'Invalid selection');
@@ -1354,7 +1360,7 @@ OneDriveClient.prototype.createInlinePicker = function(fn, foldersOnly)
mxUtils.bind(this, function(err)
{
this.ui.showError(mxResources.get('error'), err);
- }), foldersOnly);
+ }), foldersOnly, null, null, null, null, acceptAllFiles);
});
};
@@ -1439,7 +1445,7 @@ OneDriveClient.prototype.pickFolder = function(fn, direct)
/**
* Checks if the client is authorized and calls the next step.
*/
-OneDriveClient.prototype.pickFile = function(fn)
+OneDriveClient.prototype.pickFile = function(fn, acceptAllFiles)
{
fn = (fn != null) ? fn : mxUtils.bind(this, function(id)
{
@@ -1451,7 +1457,7 @@ OneDriveClient.prototype.pickFile = function(fn)
this.ui.showError(mxResources.get('error'), e && e.message? e.message : e);
});
- var odOpenDlg = this.inlinePicker? this.createInlinePicker(fn) :
+ var odOpenDlg = this.inlinePicker? this.createInlinePicker(fn, null, acceptAllFiles) :
mxUtils.bind(this, function()
{
OneDrive.open(
diff --git a/src/main/webapp/js/integrate.min.js b/src/main/webapp/js/integrate.min.js
index c37817a1..bb7bd9bb 100644
--- a/src/main/webapp/js/integrate.min.js
+++ b/src/main/webapp/js/integrate.min.js
@@ -561,7 +561,7 @@ a),DRAWIO_GITLAB_URL=a);a=urlParams["gitlab-id"];null!=a&&(DRAWIO_GITLAB_ID=a);w
if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local||"1"==urlParams.lockdown)urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0";
"se.diagrams.net"==window.location.hostname&&(urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0",urlParams.plugins="0",urlParams.mode="google",urlParams.lockdown="1",window.DRAWIO_GOOGLE_APP_ID=window.DRAWIO_GOOGLE_APP_ID||"184079235871",window.DRAWIO_GOOGLE_CLIENT_ID=window.DRAWIO_GOOGLE_CLIENT_ID||"184079235871-pjf5nn0lff27lk8qf0770gmffiv9gt61.apps.googleusercontent.com");"trello"==urlParams.mode&&(urlParams.tr="1");
"embed.diagrams.net"==window.location.hostname&&(urlParams.embed="1");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";
-window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"17.3.0",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"17.4.0",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&2<navigator.maxTouchPoints,IS_WEBVIEW:/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&
0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!==
@@ -10734,7 +10734,7 @@ mxEvent.addListener(d,"drop",mxUtils.bind(this,function(b){null!=c&&(c.parentNod
f.style.verticalAlign="middle";f.className="geBtn";B.appendChild(f);b.isOffline()&&!mxClient.IS_CHROMEAPP&&(f.style.display="none");f=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});f.style.verticalAlign="middle";f.className="geBtn";b.editor.cancelFirst&&B.appendChild(f);LinkDialog.selectedDocs=null;LinkDialog.filePicked=function(b){if(b.action==google.picker.Action.PICKED){LinkDialog.selectedDocs=b.docs;var d=b.docs[0].url;"application/mxe"==b.docs[0].mimeType||null!=b.docs[0].mimeType&&
"application/vnd.jgraph."==b.docs[0].mimeType.substring(0,23)?d="https://www.draw.io/#G"+b.docs[0].id:"application/vnd.google-apps.folder"==b.docs[0].mimeType&&(d="https://drive.google.com/#folders/"+b.docs[0].id);n.value=d;n.focus()}else LinkDialog.selectedDocs=null;n.focus()};"undefined"!=typeof google&&"undefined"!=typeof google.picker&&null!=b.drive&&d(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googlePlus"),function(){b.spinner.spin(document.body,mxResources.get("authorizing"))&&b.drive.checkToken(mxUtils.bind(this,
function(){b.spinner.stop();if(null==b.linkPicker){var d=b.drive.createLinkPicker();b.linkPicker=d.setCallback(function(b){LinkDialog.filePicked(b)}).build()}b.linkPicker.setVisible(!0)}))});"undefined"!=typeof Dropbox&&"undefined"!=typeof Dropbox.choose&&d(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),function(){Dropbox.choose({linkType:"direct",cancel:function(){},success:function(b){n.value=b[0].link;n.focus()}})});null!=b.oneDrive&&d(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),
-function(){b.oneDrive.pickFile(function(b,d){n.value=d.value[0].webUrl;n.focus()})});null!=b.gitHub&&d(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),function(){b.gitHub.pickFile(function(b){if(null!=b){b=b.split("/");var d=b[0],c=b[1],g=b[2];b=b.slice(3,b.length).join("/");n.value="https://github.com/"+d+"/"+c+"/blob/"+g+"/"+b;n.focus()}})});null!=b.gitLab&&d(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),function(){b.gitLab.pickFile(function(b){if(null!=b){b=b.split("/");var d=
+function(){b.oneDrive.pickFile(function(b,d){n.value=d.value[0].webUrl;n.focus()},!0)});null!=b.gitHub&&d(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),function(){b.gitHub.pickFile(function(b){if(null!=b){b=b.split("/");var d=b[0],c=b[1],g=b[2];b=b.slice(3,b.length).join("/");n.value="https://github.com/"+d+"/"+c+"/blob/"+g+"/"+b;n.focus()}})});null!=b.gitLab&&d(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),function(){b.gitLab.pickFile(function(b){if(null!=b){b=b.split("/");var d=
b[0],c=b[1],g=b[2];b=b.slice(3,b.length).join("/");n.value=DRAWIO_GITLAB_URL+"/"+d+"/"+c+"/blob/"+g+"/"+b;n.focus()}})});mxEvent.addListener(n,"keypress",function(d){13==d.keyCode&&(b.hideDialog(),c(v.checked?u.value:n.value,LinkDialog.selectedDocs))});B.appendChild(A);b.editor.cancelFirst||B.appendChild(f);g.appendChild(B);this.container=g},FeedbackDialog=function(b,e,f,c){var l=document.createElement("div"),m=document.createElement("div");mxUtils.write(m,mxResources.get("sendYourFeedback"));m.style.fontSize=
"18px";m.style.marginBottom="18px";l.appendChild(m);m=document.createElement("div");mxUtils.write(m,mxResources.get("yourEmailAddress")+(f?"":" ("+mxResources.get("required")+")"));l.appendChild(m);var p=document.createElement("input");p.setAttribute("type","text");p.style.marginTop="6px";p.style.width="600px";var d=mxUtils.button(mxResources.get("sendMessage"),function(){var d=n.value+(k.checked?"\nDiagram:\n"+(null!=c?c:mxUtils.getXml(b.getXmlFileData())):"")+"\nuserAgent:\n"+navigator.userAgent+
"\nappVersion:\n"+navigator.appVersion+"\nappName:\n"+navigator.appName+"\nplatform:\n"+navigator.platform;d.length>FeedbackDialog.maxAttachmentSize?b.alert(mxResources.get("drawingTooLarge")):(b.hideDialog(),b.spinner.spin(document.body)&&mxUtils.post(null!=FeedbackDialog.feedbackUrl?FeedbackDialog.feedbackUrl:"/email","email="+encodeURIComponent(p.value)+"&version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&body="+encodeURIComponent((null!=e?e:"Feedback")+
@@ -10778,8 +10778,8 @@ d||""==d||d==mxConstants.NONE)d=Editor.isDarkMode()?"transparent":"#ffffff";y.st
d):null;null!=d&&(d.className="geBtn");b.editor.cancelFirst?(u.appendChild(f),null!=d&&u.appendChild(d),u.appendChild(p),u.appendChild(m)):(u.appendChild(m),u.appendChild(p),null!=d&&u.appendChild(d),u.appendChild(f));k.appendChild(u);k.appendChild(x);this.container=k},FindWindow=function(b,e,f,c,l,m){function p(b,d,c,g){if("object"===typeof d.value&&null!=d.value.attributes){d=d.value.attributes;for(var e=0;e<d.length;e++)if("label"!=d[e].nodeName){var k=mxUtils.trim(d[e].nodeValue.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g,
" ")).toLowerCase();if(null==b&&(g&&0<=k.indexOf(c)||!g&&k.substring(0,c.length)===c)||null!=b&&b.test(k))return!0}}return!1}function d(){v&&F.value?(O.removeAttribute("disabled"),T.removeAttribute("disabled")):(O.setAttribute("disabled","disabled"),T.setAttribute("disabled","disabled"));F.value&&z.value?M.removeAttribute("disabled"):M.setAttribute("disabled","disabled")}function g(c,e,k){G.innerHTML="";var f=n.model.getDescendants(n.model.getRoot()),L=z.value.toLowerCase(),l=E.checked?new RegExp(L):
null,I=null;x=null;t!=L&&(t=L,q=null,u=!1);var A=null==q;if(0<L.length){if(u){u=!1;for(var H,K=0;K<b.pages.length;K++)if(b.currentPage==b.pages[K]){H=K;break}c=(H+1)%b.pages.length;q=null;do u=!1,f=b.pages[c],n=b.createTemporaryGraph(n.getStylesheet()),b.updatePageRoot(f),n.model.setRoot(f.root),c=(c+1)%b.pages.length;while(!g(!0,e,k)&&c!=H);q&&(q=null,k?b.editor.graph.model.execute(new SelectPage(b,f)):b.selectPage(f));u=!1;n=b.editor.graph;return g(!0,e,k)}for(K=0;K<f.length;K++){H=n.view.getState(f[K]);
-e&&null!=l&&(A=A||H==q);if(null!=H&&null!=H.cell.value&&(A||null==I)&&(n.model.isVertex(H.cell)||n.model.isEdge(H.cell))){null!=H.style&&"1"==H.style.html?(J.innerHTML=n.sanitizeHtml(n.getLabel(H.cell)),label=mxUtils.extractTextWithWhitespace([J])):label=n.getLabel(H.cell);label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();var M=0;e&&m&&null!=l&&H==q&&(label=label.substr(y),M=y);var O=""==F.value,C=O;if(null==l&&(C&&0<=label.indexOf(L)||!C&&label.substring(0,L.length)===
-L||O&&p(l,H.cell,L,C))||null!=l&&(l.test(label)||O&&p(l,H.cell,L,C)))if(m&&(null!=l?(O=label.match(l),x=O[0].toLowerCase(),y=M+O.index+x.length):(x=L,y=x.length)),A){I=H;break}else null==I&&(I=H)}A=A||H==q}}if(null!=I){if(K==f.length&&D.checked)return q=null,u=!0,g(!0,e,k);q=I;n.scrollCellToVisible(q.cell);n.isEnabled()&&!n.isCellLocked(q.cell)?k||n.getSelectionCell()==q.cell&&1==n.getSelectionCount()||n.setSelectionCell(q.cell):n.highlightCell(q.cell)}else{if(!c&&D.checked)return u=!0,g(!0,e,k);
+e&&null!=l&&(A=A||H==q);if(null!=H&&null!=H.cell.value&&(A||null==I)&&(n.model.isVertex(H.cell)||n.model.isEdge(H.cell))){null!=H.style&&"1"==H.style.html?(J.innerHTML=n.sanitizeHtml(n.getLabel(H.cell)),label=mxUtils.extractTextWithWhitespace([J])):label=n.getLabel(H.cell);label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();var M=0;e&&m&&null!=l&&H==q&&(label=label.substr(y),M=y);var C=""==F.value,O=C;if(null==l&&(O&&0<=label.indexOf(L)||!O&&label.substring(0,L.length)===
+L||C&&p(l,H.cell,L,O))||null!=l&&(l.test(label)||C&&p(l,H.cell,L,O)))if(m&&(null!=l?(C=label.match(l),x=C[0].toLowerCase(),y=M+C.index+x.length):(x=L,y=x.length)),A){I=H;break}else null==I&&(I=H)}A=A||H==q}}if(null!=I){if(K==f.length&&D.checked)return q=null,u=!0,g(!0,e,k);q=I;n.scrollCellToVisible(q.cell);n.isEnabled()&&!n.isCellLocked(q.cell)?k||n.getSelectionCell()==q.cell&&1==n.getSelectionCount()||n.setSelectionCell(q.cell):n.highlightCell(q.cell)}else{if(!c&&D.checked)return u=!0,g(!0,e,k);
n.isEnabled()&&!k&&n.clearSelection()}v=null!=I;m&&!c&&d();return 0==L.length||null!=I}var k=b.actions.get("findReplace"),n=b.editor.graph,t=null,q=null,v=!1,u=!1,x=null,y=0,A=1,B=document.createElement("div");B.style.userSelect="none";B.style.overflow="hidden";B.style.padding="10px";B.style.height="100%";var C=m?"260px":"200px",z=document.createElement("input");z.setAttribute("placeholder",mxResources.get("find"));z.setAttribute("type","text");z.style.marginTop="4px";z.style.marginBottom="6px";z.style.width=
C;z.style.fontSize="12px";z.style.borderRadius="4px";z.style.padding="6px";B.appendChild(z);mxUtils.br(B);var F;m&&(F=document.createElement("input"),F.setAttribute("placeholder",mxResources.get("replaceWith")),F.setAttribute("type","text"),F.style.marginTop="4px",F.style.marginBottom="6px",F.style.width=C,F.style.fontSize="12px",F.style.borderRadius="4px",F.style.padding="6px",B.appendChild(F),mxUtils.br(B),mxEvent.addListener(F,"input",d));var E=document.createElement("input");E.setAttribute("id",
"geFindWinRegExChck");E.setAttribute("type","checkbox");E.style.marginRight="4px";B.appendChild(E);C=document.createElement("label");C.setAttribute("for","geFindWinRegExChck");B.appendChild(C);mxUtils.write(C,mxResources.get("regularExpression"));B.appendChild(C);C=b.menus.createHelpLink("https://www.diagrams.net/doc/faq/find-shapes");C.style.position="relative";C.style.marginLeft="6px";C.style.top="-1px";B.appendChild(C);mxUtils.br(B);var D=document.createElement("input");D.setAttribute("id","geFindWinAllPagesChck");
@@ -11237,7 +11237,7 @@ this.page.viewState){this.ignoreColor||(this.page.viewState.background=this.colo
this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible)};Editor.prototype.useCanvasForExport=!1;try{var X=document.createElement("canvas"),U=new Image;U.onload=function(){try{X.getContext("2d").drawImage(U,0,0);var b=X.toDataURL("image/png");Editor.prototype.useCanvasForExport=
null!=b&&6<b.length}catch(P){}};U.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(L){}})();
(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(b,f,c){c.ui=b.ui;return f};b.afterDecode=function(b,f,c){c.previousColor=c.color;c.previousImage=c.image;c.previousFormat=c.format;null!=c.foldingEnabled&&(c.foldingEnabled=!c.foldingEnabled);null!=c.mathEnabled&&(c.mathEnabled=!c.mathEnabled);null!=c.shadowVisible&&(c.shadowVisible=!c.shadowVisible);return c};mxCodecRegistry.register(b)})();
-(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,f,c){c.ui=b.ui;return f};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="17.3.0";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
+(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,f,c){c.ui=b.ui;return f};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="17.4.0";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl="1"==urlParams.dev?"https://app.diagrams.net/cache":window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;
EditorUi.nativeFileSupport=!mxClient.IS_OP&&!EditorUi.isElectronApp&&"1"!=urlParams.extAuth&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.enableHtmlEditOption=!0;EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,
width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(b,c,e,f,t,q,m){q=null!=q?q:0<=b.indexOf("NetworkError")||0<=b.indexOf("SecurityError")||0<=b.indexOf("NS_ERROR_FAILURE")||
@@ -11394,9 +11394,9 @@ this.currentPage)));c&&(e.push("zoom"),d.resize=!0);p&&e.push("layers");x&&e.pus
"width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(g);var k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var n=document.createElement("input");n.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";n.setAttribute("value","url");n.setAttribute("type","radio");n.setAttribute("name","type-embedhtmldialog");g=n.cloneNode(!0);g.setAttribute("value","copy");k.appendChild(g);var m=document.createElement("span");
mxUtils.write(m,mxResources.get("includeCopyOfMyDiagram"));k.appendChild(m);mxUtils.br(k);k.appendChild(n);m=document.createElement("span");mxUtils.write(m,mxResources.get("publicDiagramUrl"));k.appendChild(m);var l=this.getCurrentFile();null==e&&null!=l&&l.constructor==window.DriveFile&&(m=document.createElement("a"),m.style.paddingLeft="12px",m.style.color="gray",m.style.cursor="pointer",mxUtils.write(m,mxResources.get("share")),k.appendChild(m),mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.hideDialog();
this.drive.showPermissions(l.getId())})));g.setAttribute("checked","checked");null==e&&n.setAttribute("disabled","disabled");d.appendChild(k);var p=this.addLinkSection(d),B=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,":");var C=document.createElement("input");C.setAttribute("type","text");C.style.marginRight="16px";C.style.width="60px";C.style.marginLeft="4px";C.style.marginRight="12px";C.value="100%";d.appendChild(C);var z=this.addCheckbox(d,mxResources.get("fit"),!0),
-k=null!=this.pages&&1<this.pages.length,F=F=this.addCheckbox(d,mxResources.get("allPages"),k,!k),E=this.addCheckbox(d,mxResources.get("layers"),!0),D=this.addCheckbox(d,mxResources.get("tags"),!0),J=this.addCheckbox(d,mxResources.get("lightbox"),!0),k=EditorUi.enableHtmlEditOption?d:d.cloneNode(),K=this.addEditButton(k,J),H=K.getEditInput();H.style.marginBottom="16px";mxEvent.addListener(J,"change",function(){J.checked?H.removeAttribute("disabled"):H.setAttribute("disabled","disabled");H.checked&&
-J.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){f(n.checked?e:null,B.checked,C.value,p.getTarget(),p.getColor(),z.checked,F.checked,E.checked,D.checked,J.checked,EditorUi.enableHtmlEditOption?K.getLink():null)}),null,b,c);this.showDialog(b.container,340,430,!0,!0);g.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,e,f,m,q,l,p){var d=document.createElement("div");d.style.whiteSpace=
-"nowrap";var g=document.createElement("h3");mxUtils.write(g,b||mxResources.get("link"));g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(g);var k=this.getCurrentFile();b=0;if(null==k||k.constructor!=window.DriveFile||c)l=null!=l?l:"https://www.diagrams.net/doc/faq/publish-diagram-as-link";else{b=80;l=null!=l?l:"https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram";g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
+k=null!=this.pages&&1<this.pages.length,F=F=this.addCheckbox(d,mxResources.get("allPages"),k,!k),E=this.addCheckbox(d,mxResources.get("layers"),!0),D=this.addCheckbox(d,mxResources.get("tags"),!0),J=this.addCheckbox(d,mxResources.get("lightbox"),!0),K=null,k=380;if(EditorUi.enableHtmlEditOption){var K=this.addEditButton(d,J),H=K.getEditInput();H.style.marginBottom="16px";k+=50;mxEvent.addListener(J,"change",function(){J.checked?H.removeAttribute("disabled"):H.setAttribute("disabled","disabled");H.checked&&
+J.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")})}b=new CustomDialog(this,d,mxUtils.bind(this,function(){f(n.checked?e:null,B.checked,C.value,p.getTarget(),p.getColor(),z.checked,F.checked,E.checked,D.checked,J.checked,null!=K?K.getLink():null)}),null,b,c);this.showDialog(b.container,340,k,!0,!0);g.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,e,f,m,q,l,p){var d=document.createElement("div");d.style.whiteSpace="nowrap";
+var g=document.createElement("h3");mxUtils.write(g,b||mxResources.get("link"));g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(g);var k=this.getCurrentFile();b=0;if(null==k||k.constructor!=window.DriveFile||c)l=null!=l?l:"https://www.diagrams.net/doc/faq/publish-diagram-as-link";else{b=80;l=null!=l?l:"https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram";g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
var n=document.createElement("div");n.style.whiteSpace="normal";mxUtils.write(n,mxResources.get("linkAccountRequired"));g.appendChild(n);n=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(k.getId())}));n.style.marginTop="12px";n.className="geBtn";g.appendChild(n);d.appendChild(g);n=document.createElement("a");n.style.paddingLeft="12px";n.style.color="gray";n.style.fontSize="11px";n.style.cursor="pointer";mxUtils.write(n,mxResources.get("check"));g.appendChild(n);
mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(b.container,300,80,!0,!1);b.init()}))}))}var t=null,z=null;if(null!=e||null!=f)b+=30,mxUtils.write(d,mxResources.get("width")+":"),t=document.createElement("input"),
t.setAttribute("type","text"),t.style.marginRight="16px",t.style.width="50px",t.style.marginLeft="6px",t.style.marginRight="16px",t.style.marginBottom="10px",t.value="100%",d.appendChild(t),mxUtils.write(d,mxResources.get("height")+":"),z=document.createElement("input"),z.setAttribute("type","text"),z.style.width="50px",z.style.marginLeft="6px",z.style.marginBottom="10px",z.value=f+"px",d.appendChild(z),mxUtils.br(d);var u=this.addLinkSection(d,q);e=null!=this.pages&&1<this.pages.length;var v=null;
@@ -11581,73 +11581,73 @@ null!=k.spinKey?mxResources.get(k.spinKey):k.spin))&&this.getEmbeddedSvg(b.xml,t
this.editor.graph.addSvgShadow(c),this.embedFonts(c,mxUtils.bind(this,function(b){k.embedImages||null==k.embedImages?this.editor.convertImages(b,mxUtils.bind(this,function(b){d(mxUtils.getXml(b))})):d(mxUtils.getXml(b))}));return}l.postMessage(JSON.stringify(b),"*")}),null!=k.xml&&0<k.xml.length?(d=!0,this.setFileData(k.xml),d=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(U)},0):U()):U();return}if("load"==k.action){q=k.toSketch;e=1==k.autosave;this.hideDialog();
null!=k.modified&&null==urlParams.modified&&(urlParams.modified=k.modified);null!=k.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=k.saveAndExit);null!=k.noSaveBtn&&null==urlParams.noSaveBtn&&(urlParams.noSaveBtn=k.noSaveBtn);if(null!=k.rough){var L=Editor.sketchMode;this.doSetSketchMode(k.rough);L!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=k.dark&&(L=Editor.darkMode,this.doSetDarkMode(k.dark),L!=Editor.darkMode&&this.fireEvent(new mxEventObject("darkModeChanged")));
null!=k.border&&(this.embedExportBorder=k.border);null!=k.background&&(this.embedExportBackground=k.background);null!=k.viewport&&(this.embedViewport=k.viewport);this.embedExitPoint=null;if(null!=k.rect){var P=this.embedExportBorder;this.diagramContainer.style.border="2px solid #295fcc";this.diagramContainer.style.top=k.rect.top+"px";this.diagramContainer.style.left=k.rect.left+"px";this.diagramContainer.style.height=k.rect.height+"px";this.diagramContainer.style.width=k.rect.width+"px";this.diagramContainer.style.bottom=
-"";this.diagramContainer.style.right="";m=mxUtils.bind(this,function(){var b=this.editor.graph,c=b.maxFitScale;b.maxFitScale=k.maxFitScale;b.fit(2*P);b.maxFitScale=c;b.container.scrollTop-=2*P;b.container.scrollLeft-=2*P;this.fireEvent(new mxEventObject("editInlineStart","data",[k]))})}null!=k.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=k.noExitBtn);null!=k.title&&null!=this.buttonContainer&&(p=document.createElement("span"),mxUtils.write(p,k.title),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),
-this.buttonContainer.appendChild(p),this.embedFilenameSpan=p);try{k.libs&&this.sidebar.showEntries(k.libs)}catch(V){}k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):null!=k.descriptor?k.descriptor:k.xml}else{if("merge"==k.action){var Z=this.getCurrentFile();null!=Z&&(p=n(k.xml),null!=p&&""!=p&&Z.mergeFile(new LocalFile(this,p),function(){l.postMessage(JSON.stringify({event:"merge",message:k}),"*")},function(b){l.postMessage(JSON.stringify({event:"merge",message:k,error:b}),"*")}))}else"remoteInvokeReady"==
-k.action?this.handleRemoteInvokeReady(l):"remoteInvoke"==k.action?this.handleRemoteInvoke(k,g.origin):"remoteInvokeResponse"==k.action?this.handleRemoteInvokeResponse(k):l.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(k)}),"*");return}}catch(V){this.handleError(V)}}var na=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),ga=mxUtils.bind(this,function(g,k){d=!0;try{b(g,
-k,null,q)}catch(ma){this.handleError(ma)}d=!1;null!=urlParams.modified&&this.editor.setStatus("");f=na();e&&null==c&&(c=mxUtils.bind(this,function(b,c){var e=na();if(e!=f&&!d){var g=this.createLoadMessage("autosave");g.xml=e;(window.opener||window.parent).postMessage(JSON.stringify(g),"*")}f=e}),this.editor.graph.model.addListener(mxEvent.CHANGE,c),this.editor.graph.addListener("gridSizeChanged",c),this.editor.graph.addListener("shadowVisibleChanged",c),this.addListener("pageFormatChanged",c),this.addListener("pageScaleChanged",
-c),this.addListener("backgroundColorChanged",c),this.addListener("backgroundImageChanged",c),this.addListener("foldingEnabledChanged",c),this.addListener("mathEnabledChanged",c),this.addListener("gridEnabledChanged",c),this.addListener("guidesEnabledChanged",c),this.addListener("pageViewChanged",c));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var n=this.createLoadMessage("load");n.xml=g;l.postMessage(JSON.stringify(n),"*")}null!=m&&m()});null!=k&&"function"===typeof k.substring&&"data:application/vnd.visio;base64,"==
-k.substring(0,34)?(n="0M8R4KGxGuE"==k.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(k.substring(k.indexOf(",")+1)),function(b){ga(b,g)},mxUtils.bind(this,function(b){this.handleError(b)}),n)):null!=k&&"function"===typeof k.substring&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(k,"")?this.isOffline()?this.showError(mxResources.get("error"),mxResources.get("notInOffline")):this.parseFileData(k,mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&
-"<mxGraphModel"==b.responseText.substring(0,13)&&ga(b.responseText,g)}),""):null!=k&&"function"===typeof k.substring&&this.isLucidChartData(k)?this.convertLucidChart(k,mxUtils.bind(this,function(b){ga(b)}),mxUtils.bind(this,function(b){this.handleError(b)})):null==k||"object"!==typeof k||null==k.format||null==k.data&&null==k.url?(k=n(k),ga(k,g)):this.loadDescriptor(k,mxUtils.bind(this,function(b){ga(na(),g)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));
-var l=window.opener||window.parent,m="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";l.postMessage(m,"*");if("json"==urlParams.proto){var p=this.editor.graph.openLink;this.editor.graph.openLink=function(b,c,d){p.apply(this,arguments);l.postMessage(JSON.stringify({event:"openLink",href:b,target:c,allowOpener:d}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar&&"1"!=urlParams.embedInline){var b=document.createElement("div");b.style.display=
-"inline-block";b.style.position="absolute";b.style.paddingTop="atlas"==uiTheme||"1"==urlParams.atlas?"2px":"0px";b.style.paddingLeft="8px";b.style.paddingBottom="2px";var c=document.createElement("button");c.className="geBigButton";var e=c;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var f="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(c,f);c.setAttribute("title",f);mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));
-b.appendChild(c)}}else mxUtils.write(c,mxResources.get("save")),c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,
-"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),b.appendChild(c),e=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),e="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,e),c.setAttribute("title",e),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),e=c);e.style.marginRight="20px";this.toolbar.container.appendChild(b);
-this.toolbar.staticElements.push(b);b.style.right="atlas"==uiTheme||"1"==urlParams.atlas?"42px":"52px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(b){this.importCsv(b)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,
-640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};EditorUi.prototype.executeLayoutList=function(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var g=new window[b[f].layout](d);if(null!=b[f].config)for(var m in b[f].config)g[m]=b[f].config[m];this.executeLayout(function(){g.execute(d.getDefaultParent(),0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],g=[],m={};if(0<d.length){for(var l=
-{},p=this.editor.graph,y=null,A=null,B=null,C=null,z=null,F=null,E=null,D="whiteSpace=wrap;html=1;",J=null,K=null,H="",G="auto",I="auto",O=null,T=null,M=40,W=40,X=100,U=0,L=function(){null!=c?c(Q):(p.setSelectionCells(Q),p.scrollCellToVisible(p.getSelectionCell()))},P=p.getFreeInsertPoint(),Z=P.x,na=P.y,P=na,ga=null,V="auto",K=null,ia=[],qa=null,ma=null,la=0;la<d.length&&"#"==d[la].charAt(0);){b=d[la];for(la++;la<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[la].charAt(0);)b=b.substring(0,b.length-
-1)+mxUtils.trim(d[la].substring(1)),la++;if("#"!=b.charAt(1)){var S=b.indexOf(":");if(0<S){var aa=mxUtils.trim(b.substring(1,S)),N=mxUtils.trim(b.substring(S+1));"label"==aa?ga=p.sanitizeHtml(N):"labelname"==aa&&0<N.length&&"-"!=N?z=N:"labels"==aa&&0<N.length&&"-"!=N?E=JSON.parse(N):"style"==aa?A=N:"parentstyle"==aa?D=N:"unknownStyle"==aa&&"-"!=N?F=N:"stylename"==aa&&0<N.length&&"-"!=N?C=N:"styles"==aa&&0<N.length&&"-"!=N?B=JSON.parse(N):"vars"==aa&&0<N.length&&"-"!=N?y=JSON.parse(N):"identity"==
-aa&&0<N.length&&"-"!=N?J=N:"parent"==aa&&0<N.length&&"-"!=N?K=N:"namespace"==aa&&0<N.length&&"-"!=N?H=N:"width"==aa?G=N:"height"==aa?I=N:"left"==aa&&0<N.length?O=N:"top"==aa&&0<N.length?T=N:"ignore"==aa?ma=N.split(","):"connect"==aa?ia.push(JSON.parse(N)):"link"==aa?qa=N:"padding"==aa?U=parseFloat(N):"edgespacing"==aa?M=parseFloat(N):"nodespacing"==aa?W=parseFloat(N):"levelspacing"==aa?X=parseFloat(N):"layout"==aa&&(V=N)}}}if(null==d[la])throw Error(mxResources.get("invalidOrMissingFile"));for(var ea=
-this.editor.csvToArray(d[la]),aa=S=null,N=[],Y=0;Y<ea.length;Y++)J==ea[Y]&&(S=Y),K==ea[Y]&&(aa=Y),N.push(mxUtils.trim(ea[Y]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==ga&&(ga="%"+N[0]+"%");if(null!=ia)for(var ca=0;ca<ia.length;ca++)null==l[ia[ca].to]&&(l[ia[ca].to]={});J=[];for(Y=la+1;Y<d.length;Y++){var oa=this.editor.csvToArray(d[Y]);if(null==oa){var ra=40<d[Y].length?d[Y].substring(0,40)+"...":d[Y];throw Error(ra+" ("+Y+"):\n"+mxResources.get("containsValidationErrors"));
-}0<oa.length&&J.push(oa)}p.model.beginUpdate();try{for(Y=0;Y<J.length;Y++){var oa=J[Y],R=null,ja=null!=S?H+oa[S]:null;null!=ja&&(R=p.model.getCell(ja));var d=null!=R,fa=new mxCell(ga,new mxGeometry(Z,P,0,0),A||"whiteSpace=wrap;html=1;");fa.vertex=!0;fa.id=ja;for(var da=0;da<oa.length;da++)p.setAttributeForCell(fa,N[da],oa[da]);if(null!=z&&null!=E){var sa=E[fa.getAttribute(z)];null!=sa&&p.labelChanged(fa,sa)}if(null!=C&&null!=B){var ha=B[fa.getAttribute(C)];null!=ha&&(fa.style=ha)}p.setAttributeForCell(fa,
-"placeholders","1");fa.style=p.replacePlaceholders(fa,fa.style,y);d?(0>mxUtils.indexOf(g,R)&&g.push(R),p.fireEvent(new mxEventObject("cellsInserted","cells",[R]))):p.fireEvent(new mxEventObject("cellsInserted","cells",[fa]));R=fa;if(!d)for(ca=0;ca<ia.length;ca++)l[ia[ca].to][R.getAttribute(ia[ca].to)]=R;null!=qa&&"link"!=qa&&(p.setLinkForCell(R,R.getAttribute(qa)),p.setAttributeForCell(R,qa,null));var pa=this.editor.graph.getPreferredSizeForCell(R),K=null!=aa?p.model.getCell(H+oa[aa]):null;if(R.vertex){ra=
-null!=K?0:Z;la=null!=K?0:na;null!=O&&null!=R.getAttribute(O)&&(R.geometry.x=ra+parseFloat(R.getAttribute(O)));null!=T&&null!=R.getAttribute(T)&&(R.geometry.y=la+parseFloat(R.getAttribute(T)));var ka="@"==G.charAt(0)?R.getAttribute(G.substring(1)):null;R.geometry.width=null!=ka&&"auto"!=ka?parseFloat(R.getAttribute(G.substring(1))):"auto"==G||"auto"==ka?pa.width+U:parseFloat(G);var ta="@"==I.charAt(0)?R.getAttribute(I.substring(1)):null;R.geometry.height=null!=ta&&"auto"!=ta?parseFloat(ta):"auto"==
-I||"auto"==ta?pa.height+U:parseFloat(I);P+=R.geometry.height+W}d?(null==m[ja]&&(m[ja]=[]),m[ja].push(R)):(e.push(R),null!=K?(K.style=p.replacePlaceholders(K,D,y),p.addCell(R,K),f.push(K)):g.push(p.addCell(R)))}for(Y=0;Y<f.length;Y++)ka="@"==G.charAt(0)?f[Y].getAttribute(G.substring(1)):null,ta="@"==I.charAt(0)?f[Y].getAttribute(I.substring(1)):null,"auto"!=G&&"auto"!=ka||"auto"!=I&&"auto"!=ta||p.updateGroupBounds([f[Y]],U,!0);for(var ba=g.slice(),Q=g.slice(),ca=0;ca<ia.length;ca++)for(var ya=ia[ca],
-Y=0;Y<e.length;Y++){var R=e[Y],za=mxUtils.bind(this,function(b,c,d){var e=c.getAttribute(d.from);if(null!=e&&""!=e)for(var e=e.split(","),f=0;f<e.length;f++){var k=l[d.to][e[f]];if(null==k&&null!=F){k=new mxCell(e[f],new mxGeometry(Z,na,0,0),F);k.style=p.replacePlaceholders(c,k.style,y);var m=this.editor.graph.getPreferredSizeForCell(k);k.geometry.width=m.width+U;k.geometry.height=m.height+U;l[d.to][e[f]]=k;k.vertex=!0;k.id=e[f];g.push(p.addCell(k))}if(null!=k){m=d.label;null!=d.fromlabel&&(m=(c.getAttribute(d.fromlabel)||
-"")+(m||""));null!=d.sourcelabel&&(m=p.replacePlaceholders(c,d.sourcelabel,y)+(m||""));null!=d.tolabel&&(m=(m||"")+(k.getAttribute(d.tolabel)||""));null!=d.targetlabel&&(m=(m||"")+p.replacePlaceholders(k,d.targetlabel,y));var n="target"==d.placeholders==!d.invert?k:b,n=null!=d.style?p.replacePlaceholders(n,d.style,y):p.createCurrentEdgeStyle(),m=p.insertEdge(null,null,m||"",d.invert?k:b,d.invert?b:k,n);if(null!=d.labels)for(n=0;n<d.labels.length;n++){var q=d.labels[n],t=new mxCell(q.label||n,new mxGeometry(null!=
-q.x?q.x:0,null!=q.y?q.y:0,0,0),"resizable=0;html=1;");t.vertex=!0;t.connectable=!1;t.geometry.relative=!0;null!=q.placeholders&&(t.value=p.replacePlaceholders("target"==q.placeholders==!d.invert?k:b,t.value,y));if(null!=q.dx||null!=q.dy)t.geometry.offset=new mxPoint(null!=q.dx?q.dx:0,null!=q.dy?q.dy:0);m.insert(t)}Q.push(m);mxUtils.remove(d.invert?b:k,ba)}}});za(R,R,ya);if(null!=m[R.id])for(da=0;da<m[R.id].length;da++)za(R,m[R.id][da],ya)}if(null!=ma)for(Y=0;Y<e.length;Y++)for(R=e[Y],da=0;da<ma.length;da++)p.setAttributeForCell(R,
-mxUtils.trim(ma[da]),null);if(0<g.length){var ua=new mxParallelEdgeLayout(p);ua.spacing=M;ua.checkOverlap=!0;var va=function(){0<ua.spacing&&ua.execute(p.getDefaultParent());for(var b=0;b<g.length;b++){var c=p.getCellGeometry(g[b]);c.x=Math.round(p.snap(c.x));c.y=Math.round(p.snap(c.y));"auto"==G&&(c.width=Math.round(p.snap(c.width)));"auto"==I&&(c.height=Math.round(p.snap(c.height)))}};if("["==V.charAt(0)){var xa=L;p.view.validate();this.executeLayoutList(JSON.parse(V),function(){va();xa()});L=null}else if("circle"==
-V){var wa=new mxCircleLayout(p);wa.disableEdgeStyle=!1;wa.resetEdges=!1;var Ca=wa.isVertexIgnored;wa.isVertexIgnored=function(b){return Ca.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){wa.execute(p.getDefaultParent());va()},!0,L);L=null}else if("horizontaltree"==V||"verticaltree"==V||"auto"==V&&Q.length==2*g.length-1&&1==ba.length){p.view.validate();var Da=new mxCompactTreeLayout(p,"horizontaltree"==V);Da.levelDistance=W;Da.edgeRouting=!1;Da.resetEdges=!1;this.executeLayout(function(){Da.execute(p.getDefaultParent(),
-0<ba.length?ba[0]:null)},!0,L);L=null}else if("horizontalflow"==V||"verticalflow"==V||"auto"==V&&1==ba.length){p.view.validate();var Aa=new mxHierarchicalLayout(p,"horizontalflow"==V?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);Aa.intraCellSpacing=W;Aa.parallelEdgeSpacing=M;Aa.interRankCellSpacing=X;Aa.disableEdgeStyle=!1;this.executeLayout(function(){Aa.execute(p.getDefaultParent(),Q);p.moveCells(Q,Z,na)},!0,L);L=null}else if("organic"==V||"auto"==V&&Q.length>g.length){p.view.validate();
-var Ba=new mxFastOrganicLayout(p);Ba.forceConstant=3*W;Ba.disableEdgeStyle=!1;Ba.resetEdges=!1;var Fa=Ba.isVertexIgnored;Ba.isVertexIgnored=function(b){return Fa.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){Ba.execute(p.getDefaultParent());va()},!0,L);L=null}}this.hideDialog()}finally{p.model.endUpdate()}null!=L&&L()}}catch(Ea){this.handleError(Ea)}};EditorUi.prototype.getSearch=function(b){var c="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var d=
-"?",e;for(e in urlParams)0>mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(c+=d+e+"="+urlParams[e],d="&")}else c=window.location.search;return c};EditorUi.prototype.getUrl=function(b){b=null!=b?b:window.location.pathname;var c=0<b.indexOf("?")?1:0;if("1"==urlParams.offline)b+=window.location.search;else{var d="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),e;for(e in urlParams)0>mxUtils.indexOf(d,e)&&(b=0==c?b+"?":b+"&",null!=urlParams[e]&&(b+=e+"="+
-urlParams[e],c++))}return b};EditorUi.prototype.showLinkDialog=function(b,c,e,f,m){b=new LinkDialog(this,b,c,e,!0,f,m);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=function(b){var c=1;null==this.drive&&"function"!==typeof window.DriveClient||c++;null==this.dropbox&&"function"!==typeof window.DropboxClient||c++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||c++;null!=this.gitHub&&c++;null!=this.gitLab&&c++;b&&isLocalStorage&&"1"==urlParams.browser&&
-c++;return c};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var b=this.getCurrentFile(),c=null!=b||"1"==urlParams.embed&&this.editor.graph.isEnabled();this.menus.get("viewPanels").setEnabled(c);this.menus.get("viewZoom").setEnabled(c);var e=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==b||b.isRestricted());this.actions.get("makeCopy").setEnabled(!e);this.actions.get("print").setEnabled(!e);this.menus.get("exportAs").setEnabled(!e);this.menus.get("embed").setEnabled(!e);
-e="1"!=urlParams.embed||this.editor.graph.isEnabled();this.menus.get("extras").setEnabled(e);Editor.enableCustomLibraries&&(this.menus.get("openLibraryFrom").setEnabled(e),this.menus.get("newLibrary").setEnabled(e));b="1"==urlParams.embed&&this.editor.graph.isEnabled()||null!=b&&b.isEditable();this.actions.get("image").setEnabled(c);this.actions.get("zoomIn").setEnabled(c);this.actions.get("zoomOut").setEnabled(c);this.actions.get("resetView").setEnabled(c);this.actions.get("undo").setEnabled(this.canUndo()&&
-b);this.actions.get("redo").setEnabled(this.canRedo()&&b);this.menus.get("edit").setEnabled(c);this.menus.get("view").setEnabled(c);this.menus.get("importFrom").setEnabled(b);this.menus.get("arrange").setEnabled(b);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(b),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(b));this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=
-function(){};EditorUi.prototype.scheduleSanityCheck=function(){};EditorUi.prototype.stopSanityCheck=function(){};EditorUi.prototype.isDiagramActive=function(){var b=this.getCurrentFile();return null!=b&&b.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnabled()};var m=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){m.apply(this,arguments);var b=this.editor.graph,c=this.getCurrentFile(),e=this.getSelectionState(),f=this.isDiagramActive();this.actions.get("pageSetup").setEnabled(f);
-this.actions.get("autosave").setEnabled(null!=c&&c.isEditable()&&c.isAutosaveOptional());this.actions.get("guides").setEnabled(f);this.actions.get("editData").setEnabled(b.isEnabled());this.actions.get("shadowVisible").setEnabled(f);this.actions.get("connectionArrows").setEnabled(f);this.actions.get("connectionPoints").setEnabled(f);this.actions.get("copyStyle").setEnabled(f&&!b.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(f&&0<e.cells.length);this.actions.get("editGeometry").setEnabled(0<
-e.vertices.length);this.actions.get("createShape").setEnabled(f);this.actions.get("createRevision").setEnabled(f);this.actions.get("moveToFolder").setEnabled(null!=c);this.actions.get("makeCopy").setEnabled(null!=c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(f&&(null==c||!c.isRestricted()));this.actions.get("publishLink").setEnabled(null!=c&&!c.isRestricted());this.actions.get("tags").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("layers").setEnabled("hidden"!=
-this.diagramContainer.style.visibility);this.actions.get("outline").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("rename").setEnabled(null!=c&&c.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=c&&!c.isRestricted());c=this.actions.get("findReplace");c.setEnabled("hidden"!=this.diagramContainer.style.visibility);c.label=mxResources.get("find")+(b.isEnabled()?"/"+mxResources.get("replace"):
-"")+"...";b=b.view.getState(b.getSelectionCell());this.actions.get("editShape").setEnabled(f&&null!=b&&null!=b.shape&&null!=b.shape.stencil)};var p=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);p.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(b,c,e,f,m,l,p,u){var d=b.editor.graph;
-if("xml"==e)b.hideDialog(),b.saveData(c,"xml",mxUtils.getXml(b.editor.getGraphXml()),"text/xml");else if("svg"==e)b.hideDialog(),b.saveData(c,"svg",mxUtils.getXml(d.getSvg(f,m,l)),"image/svg+xml");else{var g=b.getFileData(!0,null,null,null,null,!0),k=d.getGraphBounds(),n=Math.floor(k.width*m/d.view.scale),q=Math.floor(k.height*m/d.view.scale);if(g.length<=MAX_REQUEST_SIZE&&n*q<MAX_AREA)if(b.hideDialog(),"png"!=e&&"jpg"!=e&&"jpeg"!=e||!b.isExportToCanvas()){var t={globalVars:d.getExportVariables()};
-u&&(t.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});b.saveRequest(c,e,function(b,c){return new mxXmlRequest(EXPORT_URL,"format="+e+"&base64="+(c||"0")+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(t))+(0<p?"&dpi="+p:"")+"&bg="+(null!=f?f:"none")+"&w="+n+"&h="+q+"&border="+l+"&xml="+encodeURIComponent(g))})}else"png"==e?b.exportImage(m,null==f||"none"==f,!0,!1,!1,l,!0,!1,null,u,p):b.exportImage(m,!1,!0,!1,!1,l,!0,!1,"jpeg",u);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});
-EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=this.pages)for(var e=0;e<this.pages.length;e++){var f=b;this.currentPage!=this.pages[e]&&(f=this.createTemporaryGraph(b.getStylesheet()),this.updatePageRoot(this.pages[e]),f.model.setRoot(this.pages[e].root));c+=this.pages[e].getName()+" "+f.getIndexableText()+" "}else c=b.getIndexableText();this.editor.graph.setEnabled(!0);return c};EditorUi.prototype.showRemotelyStoredLibrary=
-function(b){var c={},d=document.createElement("div");d.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxUtils.htmlEntities(b));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(e);var f=document.createElement("div");f.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";f.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var m={};try{var l=mxSettings.getCustomLibraries();
-for(b=0;b<l.length;b++){var p=l[b];if("R"==p.substring(0,1)){var x=JSON.parse(decodeURIComponent(p.substring(1)));m[x[0]]={id:x[0],title:x[1],downloadUrl:x[2]}}}}catch(y){}this.remoteInvoke("getCustomLibraries",null,null,function(b){f.innerHTML="";if(0==b.length)f.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var d=0;d<b.length;d++){var e=b[d];m[e.id]&&(c[e.id]=e);var g=this.addCheckbox(f,e.title,m[e.id]);
-(function(b,d){mxEvent.addListener(d,"change",function(){this.checked?c[b.id]=b:delete c[b.id]})})(e,g)}},mxUtils.bind(this,function(b){f.innerHTML="";var c=document.createElement("div");c.style.padding="8px";c.style.textAlign="center";mxUtils.write(c,mxResources.get("error")+": ");mxUtils.write(c,null!=b&&null!=b.message?b.message:mxResources.get("unknownError"));f.appendChild(c)}));d.appendChild(f);d=new CustomDialog(this,d,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));
-var b=0,d;for(d in c)null==m[d]&&(b++,mxUtils.bind(this,function(c){this.remoteInvoke("getFileContent",[c.downloadUrl],null,mxUtils.bind(this,function(d){b--;0==b&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,d,c))}catch(z){this.handleError(z,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){b--;0==b&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(c[d]));for(d in m)c[d]||this.closeLibrary(new RemoteLibrary(this,null,m[d]));
-0==b&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(d.container,340,390,!0,!0,null,null,null,null,!0)};EditorUi.prototype.remoteInvokableFns={getDiagramTextContent:{isAsync:!1},getLocalStorageFile:{isAsync:!1,allowedDomains:["app.diagrams.net"]},getLocalStorageFileNames:{isAsync:!1,allowedDomains:["app.diagrams.net"]},setMigratedFlag:{isAsync:!1,allowedDomains:["app.diagrams.net"]}};EditorUi.prototype.remoteInvokeCallbacks=[];
-EditorUi.prototype.remoteInvokeQueue=[];EditorUi.prototype.handleRemoteInvokeReady=function(b){this.remoteWin=b;for(var c=0;c<this.remoteInvokeQueue.length;c++)b.postMessage(this.remoteInvokeQueue[c],"*");this.remoteInvokeQueue=[]};EditorUi.prototype.handleRemoteInvokeResponse=function(b){var c=b.msgMarkers,d=this.remoteInvokeCallbacks[c.callbackId];if(null==d)throw Error("No callback for "+(null!=c?c.callbackId:"null"));b.error?d.error&&d.error(b.error.errResp):d.callback&&d.callback.apply(this,
-b.resp);this.remoteInvokeCallbacks[c.callbackId]=null};EditorUi.prototype.remoteInvoke=function(b,c,e,f,m){var d=!0,g=window.setTimeout(mxUtils.bind(this,function(){d=!1;m({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.timeout),k=mxUtils.bind(this,function(){window.clearTimeout(g);d&&f.apply(this,arguments)}),l=mxUtils.bind(this,function(){window.clearTimeout(g);d&&m.apply(this,arguments)});e=e||{};e.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:k,
-error:l});b=JSON.stringify({event:"remoteInvoke",funtionName:b,functionArgs:c,msgMarkers:e});null!=this.remoteWin?this.remoteWin.postMessage(b,"*"):this.remoteInvokeQueue.push(b)};EditorUi.prototype.handleRemoteInvoke=function(b,c){var d=mxUtils.bind(this,function(c,d){var e={event:"remoteInvokeResponse",msgMarkers:b.msgMarkers};null!=d?e.error={errResp:d}:null!=c&&(e.resp=c);this.remoteWin.postMessage(JSON.stringify(e),"*")});try{var e=b.funtionName,f=this.remoteInvokableFns[e];if(null!=f&&"function"===
-typeof this[e]){if(f.allowedDomains){for(var g=!1,m=0;m<f.allowedDomains.length;m++)if(c=="https://"+f.allowedDomains[m]){g=!0;break}if(!g){d(null,"Invalid Call: "+e+" is not allowed.");return}}var l=b.functionArgs;Array.isArray(l)||(l=[]);if(f.isAsync)l.push(function(){d(Array.prototype.slice.apply(arguments))}),l.push(function(b){d(null,b||"Unkown Error")}),this[e].apply(this,l);else{var p=this[e].apply(this,l);d([p])}}else d(null,"Invalid Call: "+e+" is not found.")}catch(y){d(null,"Invalid Call: An error occurred, "+
-y.message)}};EditorUi.prototype.openDatabase=function(b,c){if(null==this.database){var d=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=d)try{var e=d.open("database",2);e.onupgradeneeded=function(b){try{var d=e.result;1>b.oldVersion&&d.createObjectStore("objects",{keyPath:"key"});2>b.oldVersion&&(d.createObjectStore("files",{keyPath:"title"}),d.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(v){null!=c&&c(v)}};e.onsuccess=
-mxUtils.bind(this,function(c){var d=e.result;this.database=d;EditorUi.migrateStorageFiles&&(StorageFile.migrate(d),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(b){if(!b||"1"==urlParams.forceMigration){var c=document.createElement("iframe");c.style.display="none";c.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+urlParams.forceMigration);
-document.body.appendChild(c);var d=!0,e=!1,f,g=0,k=mxUtils.bind(this,function(){e=!0;this.setDatabaseItem(".drawioMigrated3",!0);c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"setMigratedFlag"}),"*")}),m=mxUtils.bind(this,function(){g++;l()}),l=mxUtils.bind(this,function(){try{if(g>=f.length)k();else{var b=f[g];StorageFile.getFileContent(this,b,mxUtils.bind(this,function(d){null==d||".scratchpad"==b&&d==this.emptyLibraryXml?c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",
-funtionName:"getLocalStorageFile",functionArgs:[b]}),"*"):m()}),m)}}catch(J){console.log(J)}}),n=mxUtils.bind(this,function(b){try{this.setDatabaseItem(null,[{title:b.title,size:b.data.length,lastModified:Date.now(),type:b.isLib?"L":"F"},{title:b.title,data:b.data}],m,m,["filesInfo","files"])}catch(J){console.log(J)}});b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var g={};try{g=JSON.parse(b.data)}catch(K){}"init"==g.event?(c.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),
-"*"),c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=g.event||e||(d?null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?(f=g.resp[0],d=!1,l()):k():null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?n(g.resp[0]):m())}}catch(K){console.log(K)}});window.addEventListener("message",b)}})));b(d);d.onversionchange=function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(t){null!=c&&c(t)}else null!=c&&c()}else b(this.database)};
-EditorUi.prototype.setDatabaseItem=function(b,c,e,f,m){this.openDatabase(mxUtils.bind(this,function(d){try{m=m||"objects";Array.isArray(m)||(m=[m],b=[b],c=[c]);var g=d.transaction(m,"readwrite");g.oncomplete=e;g.onerror=f;for(d=0;d<m.length;d++)g.objectStore(m[d]).put(null!=b&&null!=b[d]?{key:b[d],data:c[d]}:c[d])}catch(u){null!=f&&f(u)}}),f)};EditorUi.prototype.removeDatabaseItem=function(b,c,e,f){this.openDatabase(mxUtils.bind(this,function(d){f=f||"objects";Array.isArray(f)||(f=[f],b=[b]);d=d.transaction(f,
-"readwrite");d.oncomplete=c;d.onerror=e;for(var g=0;g<f.length;g++)d.objectStore(f[g])["delete"](b[g])}),e)};EditorUi.prototype.getDatabaseItem=function(b,c,e,f){this.openDatabase(mxUtils.bind(this,function(d){try{f=f||"objects";var g=d.transaction([f],"readonly").objectStore(f).get(b);g.onsuccess=function(){c(g.result)};g.onerror=e}catch(v){null!=e&&e(v)}}),e)};EditorUi.prototype.getDatabaseItems=function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=e||"objects";var f=d.transaction([e],
-"readonly").objectStore(e).openCursor(IDBKeyRange.lowerBound(0)),g=[];f.onsuccess=function(c){null==c.target.result?b(g):(g.push(c.target.result.value),c.target.result["continue"]())};f.onerror=c}catch(v){null!=c&&c(v)}}),c)};EditorUi.prototype.getDatabaseItemKeys=function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=e||"objects";var f=d.transaction([e],"readonly").objectStore(e).getAllKeys();f.onsuccess=function(){b(f.result)};f.onerror=c}catch(q){null!=c&&c(q)}}),c)};EditorUi.prototype.commentsSupported=
-function(){var b=this.getCurrentFile();return null!=b?b.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsRefreshNeeded():!0};EditorUi.prototype.commentsSaveNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsSaveNeeded():!1};EditorUi.prototype.getComments=function(b,c){var d=this.getCurrentFile();null!=d?d.getComments(b,c):b([])};EditorUi.prototype.addComment=function(b,c,e){var d=this.getCurrentFile();
-null!=d?d.addComment(b,c,e):c(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var b=this.getCurrentFile();return null!=b?b.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var b=this.getCurrentFile();return null!=b?b.canComment():!0};EditorUi.prototype.newComment=function(b,c){var d=this.getCurrentFile();return null!=d?d.newComment(b,c):new DrawioComment(this,null,b,Date.now(),Date.now(),!1,c)};EditorUi.prototype.isRevisionHistorySupported=function(){var b=this.getCurrentFile();
-return null!=b&&b.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(b,c){var d=this.getCurrentFile();null!=d&&d.getRevisions?d.getRevisions(b,c):c({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var b=this.getCurrentFile();return null!=b&&(b.constructor==DriveFile&&b.isEditable()||b.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(b){b.setRequestHeader("Content-Language",
-"da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(b,c,e,f,m,l,p,u){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(b,c,e,f,m,l,p,u)};EditorUi.prototype.loadFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(b)};EditorUi.prototype.createSvgDataUri=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(b)};EditorUi.prototype.embedCssFonts=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");
-return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,e,f,m,l,p,u,x,y,A,B,C,z,F,E){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,f,m,l,p,u,x,y,A,B,C,z,F,E)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");
-return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(b,c,e,f){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");return this.editor.convertImages(b,c,e,f)};EditorUi.prototype.convertImageToDataUri=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(b,c)};EditorUi.prototype.base64Encode=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(b)};EditorUi.prototype.updateCRC=
-function(b,c,e,f){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(b,c,e,f)};EditorUi.prototype.crc32=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");return Editor.crc32(b)};EditorUi.prototype.writeGraphModelToPng=function(b,c,e,f,m){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(b,c,e,f,m)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=
-urlParams.forceMigration)return null;for(var b=[],c=0;c<localStorage.length;c++){var e=localStorage.key(c),f=localStorage.getItem(e);if(0<e.length&&(".scratchpad"==e||"."!=e.charAt(0))&&0<f.length){var m="<mxfile "===f.substring(0,8)||"<?xml"===f.substring(0,5)||"\x3c!--[if IE]>"===f.substring(0,12),f="<mxlibrary>"===f.substring(0,11);(m||f)&&b.push(e)}}return b};EditorUi.prototype.getLocalStorageFile=function(b){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;
-var c=localStorage.getItem(b);return{title:b,data:c,isLib:"<mxlibrary>"===c.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
+"";this.diagramContainer.style.right="";m=mxUtils.bind(this,function(){var b=this.editor.graph,c=b.maxFitScale;b.maxFitScale=k.maxFitScale;b.fit(2*P);b.maxFitScale=c;b.container.scrollTop-=2*P;b.container.scrollLeft-=2*P;this.fireEvent(new mxEventObject("editInlineStart","data",[k]))})}null!=k.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=k.noExitBtn);null!=k.title&&null!=this.buttonContainer&&(p=document.createElement("span"),p.style.marginLeft="4px",mxUtils.write(p,k.title),null!=this.embedFilenameSpan&&
+this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(p),this.embedFilenameSpan=p);try{k.libs&&this.sidebar.showEntries(k.libs)}catch(V){}k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):null!=k.descriptor?k.descriptor:k.xml}else{if("merge"==k.action){var Z=this.getCurrentFile();null!=Z&&(p=n(k.xml),null!=p&&""!=p&&Z.mergeFile(new LocalFile(this,p),function(){l.postMessage(JSON.stringify({event:"merge",message:k}),"*")},function(b){l.postMessage(JSON.stringify({event:"merge",
+message:k,error:b}),"*")}))}else"remoteInvokeReady"==k.action?this.handleRemoteInvokeReady(l):"remoteInvoke"==k.action?this.handleRemoteInvoke(k,g.origin):"remoteInvokeResponse"==k.action?this.handleRemoteInvokeResponse(k):l.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(k)}),"*");return}}catch(V){this.handleError(V)}}var na=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),
+ga=mxUtils.bind(this,function(g,k){d=!0;try{b(g,k,null,q)}catch(ma){this.handleError(ma)}d=!1;null!=urlParams.modified&&this.editor.setStatus("");f=na();e&&null==c&&(c=mxUtils.bind(this,function(b,c){var e=na();if(e!=f&&!d){var g=this.createLoadMessage("autosave");g.xml=e;(window.opener||window.parent).postMessage(JSON.stringify(g),"*")}f=e}),this.editor.graph.model.addListener(mxEvent.CHANGE,c),this.editor.graph.addListener("gridSizeChanged",c),this.editor.graph.addListener("shadowVisibleChanged",
+c),this.addListener("pageFormatChanged",c),this.addListener("pageScaleChanged",c),this.addListener("backgroundColorChanged",c),this.addListener("backgroundImageChanged",c),this.addListener("foldingEnabledChanged",c),this.addListener("mathEnabledChanged",c),this.addListener("gridEnabledChanged",c),this.addListener("guidesEnabledChanged",c),this.addListener("pageViewChanged",c));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var n=this.createLoadMessage("load");n.xml=g;l.postMessage(JSON.stringify(n),
+"*")}null!=m&&m()});null!=k&&"function"===typeof k.substring&&"data:application/vnd.visio;base64,"==k.substring(0,34)?(n="0M8R4KGxGuE"==k.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(k.substring(k.indexOf(",")+1)),function(b){ga(b,g)},mxUtils.bind(this,function(b){this.handleError(b)}),n)):null!=k&&"function"===typeof k.substring&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(k,"")?this.isOffline()?this.showError(mxResources.get("error"),mxResources.get("notInOffline")):
+this.parseFileData(k,mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&"<mxGraphModel"==b.responseText.substring(0,13)&&ga(b.responseText,g)}),""):null!=k&&"function"===typeof k.substring&&this.isLucidChartData(k)?this.convertLucidChart(k,mxUtils.bind(this,function(b){ga(b)}),mxUtils.bind(this,function(b){this.handleError(b)})):null==k||"object"!==typeof k||null==k.format||null==k.data&&null==k.url?(k=n(k),ga(k,g)):this.loadDescriptor(k,mxUtils.bind(this,function(b){ga(na(),
+g)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var l=window.opener||window.parent,m="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";l.postMessage(m,"*");if("json"==urlParams.proto){var p=this.editor.graph.openLink;this.editor.graph.openLink=function(b,c,d){p.apply(this,arguments);l.postMessage(JSON.stringify({event:"openLink",href:b,target:c,allowOpener:d}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=
+this.menubar&&"1"!=urlParams.embedInline){var b=document.createElement("div");b.style.display="inline-block";b.style.position="absolute";b.style.paddingTop="atlas"==uiTheme||"1"==urlParams.atlas?"2px":"0px";b.style.paddingLeft="8px";b.style.paddingBottom="2px";var c=document.createElement("button");c.className="geBigButton";var e=c;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var f="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(c,
+f);c.setAttribute("title",f);mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));b.appendChild(c)}}else mxUtils.write(c,mxResources.get("save")),c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",
+mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),b.appendChild(c),e=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),e="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,e),c.setAttribute("title",e),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,
+"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),e=c);e.style.marginRight="20px";this.toolbar.container.appendChild(b);this.toolbar.staticElements.push(b);b.style.right="atlas"==uiTheme||"1"==urlParams.atlas?"42px":"52px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(b){this.importCsv(b)}),null,null,620,
+430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};EditorUi.prototype.executeLayoutList=function(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var g=new window[b[f].layout](d);if(null!=b[f].config)for(var m in b[f].config)g[m]=b[f].config[m];this.executeLayout(function(){g.execute(d.getDefaultParent(),
+0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],g=[],m={};if(0<d.length){for(var l={},p=this.editor.graph,y=null,A=null,B=null,C=null,z=null,F=null,E=null,D="whiteSpace=wrap;html=1;",J=null,K=null,H="",G="auto",I="auto",O=null,T=null,M=40,W=40,X=100,U=0,L=function(){null!=c?c(Q):(p.setSelectionCells(Q),p.scrollCellToVisible(p.getSelectionCell()))},P=p.getFreeInsertPoint(),Z=P.x,na=P.y,P=na,ga=null,V="auto",K=null,ia=[],qa=null,ma=
+null,la=0;la<d.length&&"#"==d[la].charAt(0);){b=d[la];for(la++;la<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[la].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[la].substring(1)),la++;if("#"!=b.charAt(1)){var S=b.indexOf(":");if(0<S){var aa=mxUtils.trim(b.substring(1,S)),N=mxUtils.trim(b.substring(S+1));"label"==aa?ga=p.sanitizeHtml(N):"labelname"==aa&&0<N.length&&"-"!=N?z=N:"labels"==aa&&0<N.length&&"-"!=N?E=JSON.parse(N):"style"==aa?A=N:"parentstyle"==aa?D=N:"unknownStyle"==aa&&"-"!=N?F=
+N:"stylename"==aa&&0<N.length&&"-"!=N?C=N:"styles"==aa&&0<N.length&&"-"!=N?B=JSON.parse(N):"vars"==aa&&0<N.length&&"-"!=N?y=JSON.parse(N):"identity"==aa&&0<N.length&&"-"!=N?J=N:"parent"==aa&&0<N.length&&"-"!=N?K=N:"namespace"==aa&&0<N.length&&"-"!=N?H=N:"width"==aa?G=N:"height"==aa?I=N:"left"==aa&&0<N.length?O=N:"top"==aa&&0<N.length?T=N:"ignore"==aa?ma=N.split(","):"connect"==aa?ia.push(JSON.parse(N)):"link"==aa?qa=N:"padding"==aa?U=parseFloat(N):"edgespacing"==aa?M=parseFloat(N):"nodespacing"==
+aa?W=parseFloat(N):"levelspacing"==aa?X=parseFloat(N):"layout"==aa&&(V=N)}}}if(null==d[la])throw Error(mxResources.get("invalidOrMissingFile"));for(var ea=this.editor.csvToArray(d[la]),aa=S=null,N=[],Y=0;Y<ea.length;Y++)J==ea[Y]&&(S=Y),K==ea[Y]&&(aa=Y),N.push(mxUtils.trim(ea[Y]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==ga&&(ga="%"+N[0]+"%");if(null!=ia)for(var ca=0;ca<ia.length;ca++)null==l[ia[ca].to]&&(l[ia[ca].to]={});J=[];for(Y=la+1;Y<d.length;Y++){var oa=this.editor.csvToArray(d[Y]);
+if(null==oa){var ra=40<d[Y].length?d[Y].substring(0,40)+"...":d[Y];throw Error(ra+" ("+Y+"):\n"+mxResources.get("containsValidationErrors"));}0<oa.length&&J.push(oa)}p.model.beginUpdate();try{for(Y=0;Y<J.length;Y++){var oa=J[Y],R=null,ja=null!=S?H+oa[S]:null;null!=ja&&(R=p.model.getCell(ja));var d=null!=R,fa=new mxCell(ga,new mxGeometry(Z,P,0,0),A||"whiteSpace=wrap;html=1;");fa.vertex=!0;fa.id=ja;for(var da=0;da<oa.length;da++)p.setAttributeForCell(fa,N[da],oa[da]);if(null!=z&&null!=E){var sa=E[fa.getAttribute(z)];
+null!=sa&&p.labelChanged(fa,sa)}if(null!=C&&null!=B){var ha=B[fa.getAttribute(C)];null!=ha&&(fa.style=ha)}p.setAttributeForCell(fa,"placeholders","1");fa.style=p.replacePlaceholders(fa,fa.style,y);d?(0>mxUtils.indexOf(g,R)&&g.push(R),p.fireEvent(new mxEventObject("cellsInserted","cells",[R]))):p.fireEvent(new mxEventObject("cellsInserted","cells",[fa]));R=fa;if(!d)for(ca=0;ca<ia.length;ca++)l[ia[ca].to][R.getAttribute(ia[ca].to)]=R;null!=qa&&"link"!=qa&&(p.setLinkForCell(R,R.getAttribute(qa)),p.setAttributeForCell(R,
+qa,null));var pa=this.editor.graph.getPreferredSizeForCell(R),K=null!=aa?p.model.getCell(H+oa[aa]):null;if(R.vertex){ra=null!=K?0:Z;la=null!=K?0:na;null!=O&&null!=R.getAttribute(O)&&(R.geometry.x=ra+parseFloat(R.getAttribute(O)));null!=T&&null!=R.getAttribute(T)&&(R.geometry.y=la+parseFloat(R.getAttribute(T)));var ka="@"==G.charAt(0)?R.getAttribute(G.substring(1)):null;R.geometry.width=null!=ka&&"auto"!=ka?parseFloat(R.getAttribute(G.substring(1))):"auto"==G||"auto"==ka?pa.width+U:parseFloat(G);var ta=
+"@"==I.charAt(0)?R.getAttribute(I.substring(1)):null;R.geometry.height=null!=ta&&"auto"!=ta?parseFloat(ta):"auto"==I||"auto"==ta?pa.height+U:parseFloat(I);P+=R.geometry.height+W}d?(null==m[ja]&&(m[ja]=[]),m[ja].push(R)):(e.push(R),null!=K?(K.style=p.replacePlaceholders(K,D,y),p.addCell(R,K),f.push(K)):g.push(p.addCell(R)))}for(Y=0;Y<f.length;Y++)ka="@"==G.charAt(0)?f[Y].getAttribute(G.substring(1)):null,ta="@"==I.charAt(0)?f[Y].getAttribute(I.substring(1)):null,"auto"!=G&&"auto"!=ka||"auto"!=I&&"auto"!=
+ta||p.updateGroupBounds([f[Y]],U,!0);for(var ba=g.slice(),Q=g.slice(),ca=0;ca<ia.length;ca++)for(var ya=ia[ca],Y=0;Y<e.length;Y++){var R=e[Y],za=mxUtils.bind(this,function(b,c,d){var e=c.getAttribute(d.from);if(null!=e&&""!=e)for(var e=e.split(","),f=0;f<e.length;f++){var k=l[d.to][e[f]];if(null==k&&null!=F){k=new mxCell(e[f],new mxGeometry(Z,na,0,0),F);k.style=p.replacePlaceholders(c,k.style,y);var m=this.editor.graph.getPreferredSizeForCell(k);k.geometry.width=m.width+U;k.geometry.height=m.height+
+U;l[d.to][e[f]]=k;k.vertex=!0;k.id=e[f];g.push(p.addCell(k))}if(null!=k){m=d.label;null!=d.fromlabel&&(m=(c.getAttribute(d.fromlabel)||"")+(m||""));null!=d.sourcelabel&&(m=p.replacePlaceholders(c,d.sourcelabel,y)+(m||""));null!=d.tolabel&&(m=(m||"")+(k.getAttribute(d.tolabel)||""));null!=d.targetlabel&&(m=(m||"")+p.replacePlaceholders(k,d.targetlabel,y));var n="target"==d.placeholders==!d.invert?k:b,n=null!=d.style?p.replacePlaceholders(n,d.style,y):p.createCurrentEdgeStyle(),m=p.insertEdge(null,
+null,m||"",d.invert?k:b,d.invert?b:k,n);if(null!=d.labels)for(n=0;n<d.labels.length;n++){var q=d.labels[n],t=new mxCell(q.label||n,new mxGeometry(null!=q.x?q.x:0,null!=q.y?q.y:0,0,0),"resizable=0;html=1;");t.vertex=!0;t.connectable=!1;t.geometry.relative=!0;null!=q.placeholders&&(t.value=p.replacePlaceholders("target"==q.placeholders==!d.invert?k:b,t.value,y));if(null!=q.dx||null!=q.dy)t.geometry.offset=new mxPoint(null!=q.dx?q.dx:0,null!=q.dy?q.dy:0);m.insert(t)}Q.push(m);mxUtils.remove(d.invert?
+b:k,ba)}}});za(R,R,ya);if(null!=m[R.id])for(da=0;da<m[R.id].length;da++)za(R,m[R.id][da],ya)}if(null!=ma)for(Y=0;Y<e.length;Y++)for(R=e[Y],da=0;da<ma.length;da++)p.setAttributeForCell(R,mxUtils.trim(ma[da]),null);if(0<g.length){var ua=new mxParallelEdgeLayout(p);ua.spacing=M;ua.checkOverlap=!0;var va=function(){0<ua.spacing&&ua.execute(p.getDefaultParent());for(var b=0;b<g.length;b++){var c=p.getCellGeometry(g[b]);c.x=Math.round(p.snap(c.x));c.y=Math.round(p.snap(c.y));"auto"==G&&(c.width=Math.round(p.snap(c.width)));
+"auto"==I&&(c.height=Math.round(p.snap(c.height)))}};if("["==V.charAt(0)){var xa=L;p.view.validate();this.executeLayoutList(JSON.parse(V),function(){va();xa()});L=null}else if("circle"==V){var wa=new mxCircleLayout(p);wa.disableEdgeStyle=!1;wa.resetEdges=!1;var Ca=wa.isVertexIgnored;wa.isVertexIgnored=function(b){return Ca.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){wa.execute(p.getDefaultParent());va()},!0,L);L=null}else if("horizontaltree"==V||"verticaltree"==V||
+"auto"==V&&Q.length==2*g.length-1&&1==ba.length){p.view.validate();var Da=new mxCompactTreeLayout(p,"horizontaltree"==V);Da.levelDistance=W;Da.edgeRouting=!1;Da.resetEdges=!1;this.executeLayout(function(){Da.execute(p.getDefaultParent(),0<ba.length?ba[0]:null)},!0,L);L=null}else if("horizontalflow"==V||"verticalflow"==V||"auto"==V&&1==ba.length){p.view.validate();var Aa=new mxHierarchicalLayout(p,"horizontalflow"==V?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);Aa.intraCellSpacing=W;Aa.parallelEdgeSpacing=
+M;Aa.interRankCellSpacing=X;Aa.disableEdgeStyle=!1;this.executeLayout(function(){Aa.execute(p.getDefaultParent(),Q);p.moveCells(Q,Z,na)},!0,L);L=null}else if("organic"==V||"auto"==V&&Q.length>g.length){p.view.validate();var Ba=new mxFastOrganicLayout(p);Ba.forceConstant=3*W;Ba.disableEdgeStyle=!1;Ba.resetEdges=!1;var Fa=Ba.isVertexIgnored;Ba.isVertexIgnored=function(b){return Fa.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){Ba.execute(p.getDefaultParent());va()},!0,
+L);L=null}}this.hideDialog()}finally{p.model.endUpdate()}null!=L&&L()}}catch(Ea){this.handleError(Ea)}};EditorUi.prototype.getSearch=function(b){var c="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var d="?",e;for(e in urlParams)0>mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(c+=d+e+"="+urlParams[e],d="&")}else c=window.location.search;return c};EditorUi.prototype.getUrl=function(b){b=null!=b?b:window.location.pathname;var c=0<b.indexOf("?")?1:0;if("1"==
+urlParams.offline)b+=window.location.search;else{var d="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),e;for(e in urlParams)0>mxUtils.indexOf(d,e)&&(b=0==c?b+"?":b+"&",null!=urlParams[e]&&(b+=e+"="+urlParams[e],c++))}return b};EditorUi.prototype.showLinkDialog=function(b,c,e,f,m){b=new LinkDialog(this,b,c,e,!0,f,m);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=function(b){var c=1;null==this.drive&&"function"!==
+typeof window.DriveClient||c++;null==this.dropbox&&"function"!==typeof window.DropboxClient||c++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||c++;null!=this.gitHub&&c++;null!=this.gitLab&&c++;b&&isLocalStorage&&"1"==urlParams.browser&&c++;return c};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var b=this.getCurrentFile(),c=null!=b||"1"==urlParams.embed&&this.editor.graph.isEnabled();this.menus.get("viewPanels").setEnabled(c);this.menus.get("viewZoom").setEnabled(c);
+var e=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==b||b.isRestricted());this.actions.get("makeCopy").setEnabled(!e);this.actions.get("print").setEnabled(!e);this.menus.get("exportAs").setEnabled(!e);this.menus.get("embed").setEnabled(!e);e="1"!=urlParams.embed||this.editor.graph.isEnabled();this.menus.get("extras").setEnabled(e);Editor.enableCustomLibraries&&(this.menus.get("openLibraryFrom").setEnabled(e),this.menus.get("newLibrary").setEnabled(e));b="1"==urlParams.embed&&this.editor.graph.isEnabled()||
+null!=b&&b.isEditable();this.actions.get("image").setEnabled(c);this.actions.get("zoomIn").setEnabled(c);this.actions.get("zoomOut").setEnabled(c);this.actions.get("resetView").setEnabled(c);this.actions.get("undo").setEnabled(this.canUndo()&&b);this.actions.get("redo").setEnabled(this.canRedo()&&b);this.menus.get("edit").setEnabled(c);this.menus.get("view").setEnabled(c);this.menus.get("importFrom").setEnabled(b);this.menus.get("arrange").setEnabled(b);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&
+this.toolbar.edgeShapeMenu.setEnabled(b),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(b));this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.scheduleSanityCheck=function(){};EditorUi.prototype.stopSanityCheck=function(){};EditorUi.prototype.isDiagramActive=function(){var b=this.getCurrentFile();return null!=b&&b.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnabled()};
+var m=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){m.apply(this,arguments);var b=this.editor.graph,c=this.getCurrentFile(),e=this.getSelectionState(),f=this.isDiagramActive();this.actions.get("pageSetup").setEnabled(f);this.actions.get("autosave").setEnabled(null!=c&&c.isEditable()&&c.isAutosaveOptional());this.actions.get("guides").setEnabled(f);this.actions.get("editData").setEnabled(b.isEnabled());this.actions.get("shadowVisible").setEnabled(f);this.actions.get("connectionArrows").setEnabled(f);
+this.actions.get("connectionPoints").setEnabled(f);this.actions.get("copyStyle").setEnabled(f&&!b.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(f&&0<e.cells.length);this.actions.get("editGeometry").setEnabled(0<e.vertices.length);this.actions.get("createShape").setEnabled(f);this.actions.get("createRevision").setEnabled(f);this.actions.get("moveToFolder").setEnabled(null!=c);this.actions.get("makeCopy").setEnabled(null!=c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(f&&
+(null==c||!c.isRestricted()));this.actions.get("publishLink").setEnabled(null!=c&&!c.isRestricted());this.actions.get("tags").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("layers").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("outline").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("rename").setEnabled(null!=c&&c.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=
+c&&!c.isRestricted());c=this.actions.get("findReplace");c.setEnabled("hidden"!=this.diagramContainer.style.visibility);c.label=mxResources.get("find")+(b.isEnabled()?"/"+mxResources.get("replace"):"")+"...";b=b.view.getState(b.getSelectionCell());this.actions.get("editShape").setEnabled(f&&null!=b&&null!=b.shape&&null!=b.shape.stencil)};var p=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=
+null);p.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(b,c,e,f,m,l,p,u){var d=b.editor.graph;if("xml"==e)b.hideDialog(),b.saveData(c,"xml",mxUtils.getXml(b.editor.getGraphXml()),"text/xml");else if("svg"==e)b.hideDialog(),b.saveData(c,"svg",mxUtils.getXml(d.getSvg(f,m,l)),"image/svg+xml");else{var g=b.getFileData(!0,null,null,null,null,!0),k=d.getGraphBounds(),n=Math.floor(k.width*m/d.view.scale),q=Math.floor(k.height*
+m/d.view.scale);if(g.length<=MAX_REQUEST_SIZE&&n*q<MAX_AREA)if(b.hideDialog(),"png"!=e&&"jpg"!=e&&"jpeg"!=e||!b.isExportToCanvas()){var t={globalVars:d.getExportVariables()};u&&(t.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});b.saveRequest(c,e,function(b,c){return new mxXmlRequest(EXPORT_URL,"format="+e+"&base64="+(c||"0")+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(t))+(0<p?"&dpi="+p:"")+"&bg="+(null!=f?f:"none")+"&w="+n+"&h="+
+q+"&border="+l+"&xml="+encodeURIComponent(g))})}else"png"==e?b.exportImage(m,null==f||"none"==f,!0,!1,!1,l,!0,!1,null,u,p):b.exportImage(m,!1,!0,!1,!1,l,!0,!1,"jpeg",u);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=this.pages)for(var e=0;e<this.pages.length;e++){var f=b;this.currentPage!=this.pages[e]&&(f=this.createTemporaryGraph(b.getStylesheet()),this.updatePageRoot(this.pages[e]),
+f.model.setRoot(this.pages[e].root));c+=this.pages[e].getName()+" "+f.getIndexableText()+" "}else c=b.getIndexableText();this.editor.graph.setEnabled(!0);return c};EditorUi.prototype.showRemotelyStoredLibrary=function(b){var c={},d=document.createElement("div");d.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxUtils.htmlEntities(b));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(e);var f=document.createElement("div");f.style.cssText=
+"border:1px solid lightGray;overflow: auto;height:300px";f.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var m={};try{var l=mxSettings.getCustomLibraries();for(b=0;b<l.length;b++){var p=l[b];if("R"==p.substring(0,1)){var x=JSON.parse(decodeURIComponent(p.substring(1)));m[x[0]]={id:x[0],title:x[1],downloadUrl:x[2]}}}}catch(y){}this.remoteInvoke("getCustomLibraries",null,null,function(b){f.innerHTML="";if(0==b.length)f.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+
+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var d=0;d<b.length;d++){var e=b[d];m[e.id]&&(c[e.id]=e);var g=this.addCheckbox(f,e.title,m[e.id]);(function(b,d){mxEvent.addListener(d,"change",function(){this.checked?c[b.id]=b:delete c[b.id]})})(e,g)}},mxUtils.bind(this,function(b){f.innerHTML="";var c=document.createElement("div");c.style.padding="8px";c.style.textAlign="center";mxUtils.write(c,mxResources.get("error")+": ");mxUtils.write(c,null!=b&&null!=b.message?b.message:
+mxResources.get("unknownError"));f.appendChild(c)}));d.appendChild(f);d=new CustomDialog(this,d,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var b=0,d;for(d in c)null==m[d]&&(b++,mxUtils.bind(this,function(c){this.remoteInvoke("getFileContent",[c.downloadUrl],null,mxUtils.bind(this,function(d){b--;0==b&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,d,c))}catch(z){this.handleError(z,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,
+function(){b--;0==b&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(c[d]));for(d in m)c[d]||this.closeLibrary(new RemoteLibrary(this,null,m[d]));0==b&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(d.container,340,390,!0,!0,null,null,null,null,!0)};EditorUi.prototype.remoteInvokableFns={getDiagramTextContent:{isAsync:!1},getLocalStorageFile:{isAsync:!1,allowedDomains:["app.diagrams.net"]},getLocalStorageFileNames:{isAsync:!1,
+allowedDomains:["app.diagrams.net"]},setMigratedFlag:{isAsync:!1,allowedDomains:["app.diagrams.net"]}};EditorUi.prototype.remoteInvokeCallbacks=[];EditorUi.prototype.remoteInvokeQueue=[];EditorUi.prototype.handleRemoteInvokeReady=function(b){this.remoteWin=b;for(var c=0;c<this.remoteInvokeQueue.length;c++)b.postMessage(this.remoteInvokeQueue[c],"*");this.remoteInvokeQueue=[]};EditorUi.prototype.handleRemoteInvokeResponse=function(b){var c=b.msgMarkers,d=this.remoteInvokeCallbacks[c.callbackId];if(null==
+d)throw Error("No callback for "+(null!=c?c.callbackId:"null"));b.error?d.error&&d.error(b.error.errResp):d.callback&&d.callback.apply(this,b.resp);this.remoteInvokeCallbacks[c.callbackId]=null};EditorUi.prototype.remoteInvoke=function(b,c,e,f,m){var d=!0,g=window.setTimeout(mxUtils.bind(this,function(){d=!1;m({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.timeout),k=mxUtils.bind(this,function(){window.clearTimeout(g);d&&f.apply(this,arguments)}),l=mxUtils.bind(this,function(){window.clearTimeout(g);
+d&&m.apply(this,arguments)});e=e||{};e.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:k,error:l});b=JSON.stringify({event:"remoteInvoke",funtionName:b,functionArgs:c,msgMarkers:e});null!=this.remoteWin?this.remoteWin.postMessage(b,"*"):this.remoteInvokeQueue.push(b)};EditorUi.prototype.handleRemoteInvoke=function(b,c){var d=mxUtils.bind(this,function(c,d){var e={event:"remoteInvokeResponse",msgMarkers:b.msgMarkers};null!=d?e.error={errResp:d}:null!=c&&(e.resp=
+c);this.remoteWin.postMessage(JSON.stringify(e),"*")});try{var e=b.funtionName,f=this.remoteInvokableFns[e];if(null!=f&&"function"===typeof this[e]){if(f.allowedDomains){for(var g=!1,m=0;m<f.allowedDomains.length;m++)if(c=="https://"+f.allowedDomains[m]){g=!0;break}if(!g){d(null,"Invalid Call: "+e+" is not allowed.");return}}var l=b.functionArgs;Array.isArray(l)||(l=[]);if(f.isAsync)l.push(function(){d(Array.prototype.slice.apply(arguments))}),l.push(function(b){d(null,b||"Unkown Error")}),this[e].apply(this,
+l);else{var p=this[e].apply(this,l);d([p])}}else d(null,"Invalid Call: "+e+" is not found.")}catch(y){d(null,"Invalid Call: An error occurred, "+y.message)}};EditorUi.prototype.openDatabase=function(b,c){if(null==this.database){var d=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=d)try{var e=d.open("database",2);e.onupgradeneeded=function(b){try{var d=e.result;1>b.oldVersion&&d.createObjectStore("objects",{keyPath:"key"});2>b.oldVersion&&(d.createObjectStore("files",{keyPath:"title"}),
+d.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(v){null!=c&&c(v)}};e.onsuccess=mxUtils.bind(this,function(c){var d=e.result;this.database=d;EditorUi.migrateStorageFiles&&(StorageFile.migrate(d),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(b){if(!b||"1"==urlParams.forceMigration){var c=document.createElement("iframe");
+c.style.display="none";c.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+urlParams.forceMigration);document.body.appendChild(c);var d=!0,e=!1,f,g=0,k=mxUtils.bind(this,function(){e=!0;this.setDatabaseItem(".drawioMigrated3",!0);c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"setMigratedFlag"}),"*")}),m=mxUtils.bind(this,function(){g++;l()}),l=mxUtils.bind(this,function(){try{if(g>=f.length)k();else{var b=f[g];StorageFile.getFileContent(this,
+b,mxUtils.bind(this,function(d){null==d||".scratchpad"==b&&d==this.emptyLibraryXml?c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[b]}),"*"):m()}),m)}}catch(J){console.log(J)}}),n=mxUtils.bind(this,function(b){try{this.setDatabaseItem(null,[{title:b.title,size:b.data.length,lastModified:Date.now(),type:b.isLib?"L":"F"},{title:b.title,data:b.data}],m,m,["filesInfo","files"])}catch(J){console.log(J)}});b=mxUtils.bind(this,function(b){try{if(b.source==
+c.contentWindow){var g={};try{g=JSON.parse(b.data)}catch(K){}"init"==g.event?(c.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=g.event||e||(d?null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?(f=g.resp[0],d=!1,l()):k():null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?n(g.resp[0]):m())}}catch(K){console.log(K)}});window.addEventListener("message",
+b)}})));b(d);d.onversionchange=function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(t){null!=c&&c(t)}else null!=c&&c()}else b(this.database)};EditorUi.prototype.setDatabaseItem=function(b,c,e,f,m){this.openDatabase(mxUtils.bind(this,function(d){try{m=m||"objects";Array.isArray(m)||(m=[m],b=[b],c=[c]);var g=d.transaction(m,"readwrite");g.oncomplete=e;g.onerror=f;for(d=0;d<m.length;d++)g.objectStore(m[d]).put(null!=b&&null!=b[d]?{key:b[d],data:c[d]}:c[d])}catch(u){null!=f&&f(u)}}),f)};
+EditorUi.prototype.removeDatabaseItem=function(b,c,e,f){this.openDatabase(mxUtils.bind(this,function(d){f=f||"objects";Array.isArray(f)||(f=[f],b=[b]);d=d.transaction(f,"readwrite");d.oncomplete=c;d.onerror=e;for(var g=0;g<f.length;g++)d.objectStore(f[g])["delete"](b[g])}),e)};EditorUi.prototype.getDatabaseItem=function(b,c,e,f){this.openDatabase(mxUtils.bind(this,function(d){try{f=f||"objects";var g=d.transaction([f],"readonly").objectStore(f).get(b);g.onsuccess=function(){c(g.result)};g.onerror=
+e}catch(v){null!=e&&e(v)}}),e)};EditorUi.prototype.getDatabaseItems=function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=e||"objects";var f=d.transaction([e],"readonly").objectStore(e).openCursor(IDBKeyRange.lowerBound(0)),g=[];f.onsuccess=function(c){null==c.target.result?b(g):(g.push(c.target.result.value),c.target.result["continue"]())};f.onerror=c}catch(v){null!=c&&c(v)}}),c)};EditorUi.prototype.getDatabaseItemKeys=function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=
+e||"objects";var f=d.transaction([e],"readonly").objectStore(e).getAllKeys();f.onsuccess=function(){b(f.result)};f.onerror=c}catch(q){null!=c&&c(q)}}),c)};EditorUi.prototype.commentsSupported=function(){var b=this.getCurrentFile();return null!=b?b.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsRefreshNeeded():!0};EditorUi.prototype.commentsSaveNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsSaveNeeded():
+!1};EditorUi.prototype.getComments=function(b,c){var d=this.getCurrentFile();null!=d?d.getComments(b,c):b([])};EditorUi.prototype.addComment=function(b,c,e){var d=this.getCurrentFile();null!=d?d.addComment(b,c,e):c(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var b=this.getCurrentFile();return null!=b?b.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var b=this.getCurrentFile();return null!=b?b.canComment():!0};EditorUi.prototype.newComment=function(b,c){var d=this.getCurrentFile();
+return null!=d?d.newComment(b,c):new DrawioComment(this,null,b,Date.now(),Date.now(),!1,c)};EditorUi.prototype.isRevisionHistorySupported=function(){var b=this.getCurrentFile();return null!=b&&b.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(b,c){var d=this.getCurrentFile();null!=d&&d.getRevisions?d.getRevisions(b,c):c({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var b=this.getCurrentFile();return null!=b&&(b.constructor==
+DriveFile&&b.isEditable()||b.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(b){b.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(b,c,e,f,m,l,p,u){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(b,c,e,f,m,l,p,u)};EditorUi.prototype.loadFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(b)};
+EditorUi.prototype.createSvgDataUri=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(b)};EditorUi.prototype.embedCssFonts=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,e,f,m,l,p,u,x,y,A,B,C,z,F,E){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");
+return this.editor.exportToCanvas(b,c,e,f,m,l,p,u,x,y,A,B,C,z,F,E)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(b,c,e,f){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");return this.editor.convertImages(b,c,e,f)};EditorUi.prototype.convertImageToDataUri=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");
+return this.editor.convertImageToDataUri(b,c)};EditorUi.prototype.base64Encode=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(b)};EditorUi.prototype.updateCRC=function(b,c,e,f){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(b,c,e,f)};EditorUi.prototype.crc32=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");return Editor.crc32(b)};EditorUi.prototype.writeGraphModelToPng=function(b,c,e,f,m){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");
+return Editor.writeGraphModelToPng(b,c,e,f,m)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;for(var b=[],c=0;c<localStorage.length;c++){var e=localStorage.key(c),f=localStorage.getItem(e);if(0<e.length&&(".scratchpad"==e||"."!=e.charAt(0))&&0<f.length){var m="<mxfile "===f.substring(0,8)||"<?xml"===f.substring(0,5)||"\x3c!--[if IE]>"===f.substring(0,12),f="<mxlibrary>"===f.substring(0,11);(m||
+f)&&b.push(e)}}return b};EditorUi.prototype.getLocalStorageFile=function(b){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;var c=localStorage.getItem(b);return{title:b,data:c,isLib:"<mxlibrary>"===c.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
var CommentsWindow=function(b,e,f,c,l,m){function p(){for(var b=B.getElementsByTagName("div"),c=0,d=0;d<b.length;d++)"none"!=b[d].style.display&&b[d].parentNode==B&&c++;C.style.display=0==c?"block":"none"}function d(b,c,d,e){function f(){c.removeChild(m);c.removeChild(l);k.style.display="block";g.style.display="block"}x={div:c,comment:b,saveCallback:d,deleteOnCancel:e};var g=c.querySelector(".geCommentTxt"),k=c.querySelector(".geCommentActionsList"),m=document.createElement("textarea");m.className=
"geCommentEditTxtArea";m.style.minHeight=g.offsetHeight+"px";m.value=b.content;c.insertBefore(m,g);var l=document.createElement("div");l.className="geCommentEditBtns";var n=mxUtils.button(mxResources.get("cancel"),function(){e?(c.parentNode.removeChild(c),p()):f();x=null});n.className="geCommentEditBtn";l.appendChild(n);var q=mxUtils.button(mxResources.get("save"),function(){g.innerHTML="";b.content=m.value;mxUtils.write(g,b.content);f();d(b);x=null});mxEvent.addListener(m,"keydown",mxUtils.bind(this,
function(b){mxEvent.isConsumed(b)||((mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b))&&13==b.keyCode?(q.click(),mxEvent.consume(b)):27==b.keyCode&&(n.click(),mxEvent.consume(b)))}));q.focus();q.className="geCommentEditBtn gePrimaryBtn";l.appendChild(q);c.insertBefore(l,g);k.style.display="none";g.style.display="none";m.focus()}function g(c,d){d.innerHTML="";var e=new Date(c.modifiedDate),f=b.timeSince(e);null==f&&(f=mxResources.get("lessThanAMinute"));mxUtils.write(d,mxResources.get("timeAgo",
@@ -12399,12 +12399,12 @@ l.diagramContainer.offsetHeight-l.bottomResizer.offsetHeight/2-1+"px";l.rightRes
""}),qa=mxUtils.bind(this,function(){ha.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";ia()}),y=mxUtils.bind(this,function(){qa();b(l,!0);l.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});l.addListener("inlineFullscreenChanged",qa);l.addListener("editInlineStart",
y);"1"==urlParams.embedInline&&l.addListener("darkModeChanged",y);l.addListener("editInlineStop",mxUtils.bind(this,function(b){l.diagramContainer.style.width="10px";l.diagramContainer.style.height="10px";l.diagramContainer.style.border="";l.bottomResizer.style.visibility="hidden";l.rightResizer.style.visibility="hidden";V.style.visibility="hidden";C.style.visibility="hidden";B.style.display="none"}));if(null!=l.hoverIcons){var ma=l.hoverIcons.update;l.hoverIcons.update=function(){n.freehand.isDrawing()||
ma.apply(this,arguments)}}if(null!=n.freehand){var la=n.freehand.createStyle;n.freehand.createStyle=function(b){return la.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){B.className="geToolbarContainer";C.className="geToolbarContainer";V.className="geToolbarContainer";p.className="geToolbarContainer";l.picker=B;var S=!1;mxEvent.addListener(p,"mouseenter",function(){l.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){S||(l.statusContainer.style.display=
-"none")});var aa=mxUtils.bind(this,function(b){null!=l.notificationBtn&&(null!=b?l.notificationBtn.setAttribute("title",b):l.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed?(p.style.visibility=14>p.clientWidth?"hidden":"",l.editor.addListener("statusChanged",mxUtils.bind(this,function(){l.setStatusText(l.editor.getStatus());if(0==l.statusContainer.children.length||1==l.statusContainer.children.length&&"function"===typeof l.statusContainer.firstChild.getAttribute&&null==l.statusContainer.firstChild.getAttribute("class")){var b=
+"none")});var aa=mxUtils.bind(this,function(b){null!=l.notificationBtn&&(null!=b?l.notificationBtn.setAttribute("title",b):l.notificationBtn.removeAttribute("title"))});p.style.visibility=14>p.clientWidth?"hidden":"";l.editor.addListener("statusChanged",mxUtils.bind(this,function(){l.setStatusText(l.editor.getStatus());if("1"!=urlParams.embed)if(0==l.statusContainer.children.length||1==l.statusContainer.children.length&&"function"===typeof l.statusContainer.firstChild.getAttribute&&null==l.statusContainer.firstChild.getAttribute("class")){var b=
null!=l.statusContainer.firstChild&&"function"===typeof l.statusContainer.firstChild.getAttribute?l.statusContainer.firstChild.getAttribute("title"):l.editor.getStatus();aa(b);var c=l.getCurrentFile(),c=null!=c?c.savingStatusKey:DrawioFile.prototype.savingStatusKey;b==mxResources.get(c)+"..."?(l.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(c))+'..."src="'+Editor.tailSpin+'">',l.statusContainer.style.display="inline-block",S=!0):6<l.buttonContainer.clientWidth&&(l.statusContainer.style.display=
-"none",S=!1)}else l.statusContainer.style.display="inline-block",aa(null),S=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}))):l.editor.addListener("statusChanged",mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));Q=d("diagram",null,Editor.menuImage);Q.style.boxShadow="none";Q.style.padding="6px";Q.style.margin="0px";V.appendChild(Q);mxEvent.disableContextMenu(Q);mxEvent.addGestureListeners(Q,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||
-mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&this.appIconClicked(b)}),null,null);l.statusContainer.style.position="";l.statusContainer.style.display="none";l.statusContainer.style.margin="0px";l.statusContainer.style.padding="6px 0px";l.statusContainer.style.maxWidth=Math.min(c-240,280)+"px";l.statusContainer.style.display="inline-block";l.statusContainer.style.textOverflow="ellipsis";l.buttonContainer.style.position="";l.buttonContainer.style.paddingRight="0px";l.buttonContainer.style.display=
-"inline-block";var N=document.createElement("a");N.style.padding="0px";N.style.boxShadow="none";N.className="geMenuItem";N.style.display="inline-block";N.style.width="40px";N.style.height="12px";N.style.marginBottom="-2px";N.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";N.style.backgroundPosition="top center";N.style.backgroundRepeat="no-repeat";N.setAttribute("title","Minimize");var ea=!1,Y=mxUtils.bind(this,function(){B.innerHTML="";if(!ea){var b=function(b,d,f){b=e("",b.funct,
-null,d,b,f);b.style.width="40px";b.style.opacity="0.7";return c(b,null,"pointer")},c=function(b,c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=null!=d?d:"default";b.style.margin="2px 0px";B.appendChild(b);mxUtils.br(B);return b};c(l.sidebar.createVertexTemplate("text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",60,30,"Text",mxResources.get("text"),!0,!1,null,!0,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");c(l.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;shadow=1;size=20;pointerEvents=1;",
+"none",S=!1)}else l.statusContainer.style.display="inline-block",aa(null),S=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}));Q=d("diagram",null,Editor.menuImage);Q.style.boxShadow="none";Q.style.padding="6px";Q.style.margin="0px";V.appendChild(Q);mxEvent.disableContextMenu(Q);mxEvent.addGestureListeners(Q,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&this.appIconClicked(b)}),null,null);
+l.statusContainer.style.position="";l.statusContainer.style.display="none";l.statusContainer.style.margin="0px";l.statusContainer.style.padding="6px 0px";l.statusContainer.style.maxWidth=Math.min(c-240,280)+"px";l.statusContainer.style.display="inline-block";l.statusContainer.style.textOverflow="ellipsis";l.buttonContainer.style.position="";l.buttonContainer.style.paddingRight="0px";l.buttonContainer.style.display="inline-block";var N=document.createElement("a");N.style.padding="0px";N.style.boxShadow=
+"none";N.className="geMenuItem";N.style.display="inline-block";N.style.width="40px";N.style.height="12px";N.style.marginBottom="-2px";N.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";N.style.backgroundPosition="top center";N.style.backgroundRepeat="no-repeat";N.setAttribute("title","Minimize");var ea=!1,Y=mxUtils.bind(this,function(){B.innerHTML="";if(!ea){var b=function(b,d,f){b=e("",b.funct,null,d,b,f);b.style.width="40px";b.style.opacity="0.7";return c(b,null,"pointer")},c=
+function(b,c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=null!=d?d:"default";b.style.margin="2px 0px";B.appendChild(b);mxUtils.br(B);return b};c(l.sidebar.createVertexTemplate("text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",60,30,"Text",mxResources.get("text"),!0,!1,null,!0,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");c(l.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;shadow=1;size=20;pointerEvents=1;",
140,160,"",mxResources.get("note"),!0,!1,null,!0),mxResources.get("note"));c(l.sidebar.createVertexTemplate("rounded=0;whiteSpace=wrap;html=1;",160,80,"",mxResources.get("rectangle"),!0,!1,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");c(l.sidebar.createVertexTemplate("ellipse;whiteSpace=wrap;html=1;",160,100,"",mxResources.get("ellipse"),!0,!1,null,!0),mxResources.get("ellipse"));(function(){var b=new mxCell("",new mxGeometry(0,0,n.defaultEdgeLength,0),"edgeStyle=none;orthogonalLoop=1;jettySize=auto;html=1;");
b.geometry.setTerminalPoint(new mxPoint(0,0),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,0),!1);b.geometry.points=[];b.geometry.relative=!0;b.edge=!0;c(l.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,b.geometry.height,mxResources.get("line"),!0,null,!0,!1),mxResources.get("line"));b=b.clone();b.style="edgeStyle=none;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;rounded=1;startSize=8;endSize=8;";b.geometry.width=n.defaultEdgeLength+20;b.geometry.setTerminalPoint(new mxPoint(0,
20),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,20),!1);b=c(l.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,40,mxResources.get("arrow"),!0,null,!0,!1),mxResources.get("arrow"));b.style.borderBottom="1px solid "+(Editor.isDarkMode()?"#505050":"lightgray");b.style.paddingBottom="14px";b.style.marginBottom="14px"})();b(l.actions.get("insertFreehand"),mxResources.get("freehand"),Editor.freehandImage);var f=l.actions.get("toggleShapes");b(f,mxResources.get("shapes")+" ("+f.shortcut+
diff --git a/src/main/webapp/js/onedrive/mxODPicker.js b/src/main/webapp/js/onedrive/mxODPicker.js
index 064bee20..d481ffd4 100644
--- a/src/main/webapp/js/onedrive/mxODPicker.js
+++ b/src/main/webapp/js/onedrive/mxODPicker.js
@@ -1,4 +1,5 @@
-function mxODPicker(container, previewFn, getODFilesList, getODFileInfo, getRecentList, addToRecent, pickedFileCallback, errorFn, foldersOnly, backFn, withSubmitBtn, withThumbnail, initFolderPath)
+function mxODPicker(container, previewFn, getODFilesList, getODFileInfo, getRecentList, addToRecent, pickedFileCallback,
+ errorFn, foldersOnly, backFn, withSubmitBtn, withThumbnail, initFolderPath, acceptAllFiles)
{
var previewHtml = '';
@@ -76,6 +77,7 @@ function mxODPicker(container, previewFn, getODFilesList, getODFileInfo, getRece
var isDarkMode = window.Editor != null && Editor.isDarkMode != null && Editor.isDarkMode();
var css =
+ '.odCatsList *, .odFilesSec * { user-select: none; }' +
'.odCatsList {' +
' box-sizing: border-box;' +
' position:absolute;' +
@@ -598,7 +600,10 @@ function mxODPicker(container, previewFn, getODFilesList, getODFileInfo, getRece
selectedFile = item2;
selectedDriveId = driveId;
- previewFn(selectedFile);
+ if (!acceptAllFiles)
+ {
+ previewFn(selectedFile);
+ }
}
});
})(item, row);
diff --git a/src/main/webapp/js/viewer-static.min.js b/src/main/webapp/js/viewer-static.min.js
index 11332603..144d9871 100644
--- a/src/main/webapp/js/viewer-static.min.js
+++ b/src/main/webapp/js/viewer-static.min.js
@@ -202,7 +202,7 @@ a),DRAWIO_GITLAB_URL=a);a=urlParams["gitlab-id"];null!=a&&(DRAWIO_GITLAB_ID=a);w
if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local||"1"==urlParams.lockdown)urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0";
"se.diagrams.net"==window.location.hostname&&(urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0",urlParams.plugins="0",urlParams.mode="google",urlParams.lockdown="1",window.DRAWIO_GOOGLE_APP_ID=window.DRAWIO_GOOGLE_APP_ID||"184079235871",window.DRAWIO_GOOGLE_CLIENT_ID=window.DRAWIO_GOOGLE_CLIENT_ID||"184079235871-pjf5nn0lff27lk8qf0770gmffiv9gt61.apps.googleusercontent.com");"trello"==urlParams.mode&&(urlParams.tr="1");
"embed.diagrams.net"==window.location.hostname&&(urlParams.embed="1");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";
-window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"17.3.0",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"17.4.0",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&2<navigator.maxTouchPoints,IS_WEBVIEW:/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&
0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!==
@@ -2060,7 +2060,7 @@ Editor.outlineImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53M
Editor.saveImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMThweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMThweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE5IDEydjdINXYtN0gzdjdjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtN2gtMnptLTYgLjY3bDIuNTktMi41OEwxNyAxMS41bC01IDUtNS01IDEuNDEtMS40MUwxMSAxMi42N1YzaDJ2OS42N3oiLz48L3N2Zz4=";
Editor.roughFillStyles=[{val:"auto",dispName:"Auto"},{val:"hachure",dispName:"Hachure"},{val:"solid",dispName:"Solid"},{val:"zigzag",dispName:"ZigZag"},{val:"cross-hatch",dispName:"Cross Hatch"},{val:"dashed",dispName:"Dashed"},{val:"zigzag-line",dispName:"ZigZag Line"}];Editor.themes=null;Editor.ctrlKey=mxClient.IS_MAC?"Cmd":"Ctrl";Editor.hintOffset=20;Editor.shapePickerHoverDelay=300;Editor.fitWindowBorders=null;Editor.popupsAllowed=null!=window.urlParams?"1"!=urlParams.noDevice:!0;
Editor.simpleLabels=!1;Editor.enableNativeCipboard=window==window.top&&!mxClient.IS_FF&&null!=navigator.clipboard;Editor.sketchMode=!1;Editor.darkMode=!1;Editor.darkColor="#2a2a2a";Editor.lightColor="#f0f0f0";Editor.isPngDataUrl=function(b){return null!=b&&"data:image/png;"==b.substring(0,15)};Editor.isPngData=function(b){return 8<b.length&&137==b.charCodeAt(0)&&80==b.charCodeAt(1)&&78==b.charCodeAt(2)&&71==b.charCodeAt(3)&&13==b.charCodeAt(4)&&10==b.charCodeAt(5)&&26==b.charCodeAt(6)&&10==b.charCodeAt(7)};
-Editor.extractGraphModelFromPng=function(b){var c=null;try{var e=b.substring(b.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(e):Base64.decode(e,!0);EditorUi.parsePng(f,mxUtils.bind(this,function(b,e,t){b=f.substring(b+8,b+8+t);"zTXt"==e?(t=b.indexOf(String.fromCharCode(0)),"mxGraphModel"==b.substring(0,t)&&(b=pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(t+2)),{to:"string"}).replace(/\+/g," "),null!=b&&0<b.length&&(c=b))):"tEXt"==e&&(b=b.split(String.fromCharCode(0)),1<b.length&&("mxGraphModel"==
+Editor.extractGraphModelFromPng=function(b){var c=null;try{var e=b.substring(b.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(e):Base64.decode(e,!0);EditorUi.parsePng(f,mxUtils.bind(this,function(b,e,q){b=f.substring(b+8,b+8+q);"zTXt"==e?(q=b.indexOf(String.fromCharCode(0)),"mxGraphModel"==b.substring(0,q)&&(b=pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(q+2)),{to:"string"}).replace(/\+/g," "),null!=b&&0<b.length&&(c=b))):"tEXt"==e&&(b=b.split(String.fromCharCode(0)),1<b.length&&("mxGraphModel"==
b[0]||"mxfile"==b[0])&&(c=b[1]));if(null!=c||"IDAT"==e)return!0}))}catch(n){}null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));return c};Editor.isDarkMode=function(b){return Editor.darkMode||"dark"==uiTheme};Editor.helpImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkHelpImage:Editor.lightHelpImage;Editor.checkmarkImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;mxUtils.extend(Editor,mxEventSource);
Editor.prototype.originalNoForeignObject=mxClient.NO_FO;Editor.prototype.transparentImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhMAAwAIAAAP///wAAACH5BAEAAAAALAAAAAAwADAAAAIxhI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8egpAAA7":IMAGE_PATH+"/transparent.gif";Editor.prototype.extendCanvas=!0;Editor.prototype.chromeless=!1;Editor.prototype.cancelFirst=!0;Editor.prototype.enabled=!0;Editor.prototype.filename=null;Editor.prototype.modified=!1;Editor.prototype.autosave=!0;
Editor.prototype.initialTopSpacing=0;Editor.prototype.appName=document.title;Editor.prototype.editBlankUrl=window.location.protocol+"//"+window.location.host+"/";Editor.prototype.defaultGraphOverflow="hidden";Editor.prototype.init=function(){};Editor.prototype.isChromelessView=function(){return this.chromeless};Editor.prototype.setAutosave=function(b){this.autosave=b;this.fireEvent(new mxEventObject("autosaveChanged"))};Editor.prototype.getEditBlankUrl=function(b){return this.editBlankUrl+b};
@@ -2080,53 +2080,53 @@ Editor.prototype.setFilename=function(b){this.filename=b};
Editor.prototype.createUndoManager=function(){var b=this.graph,c=new mxUndoManager;this.undoListener=function(b,e){c.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(b,c){this.undoListener.apply(this,arguments)});b.getModel().addListener(mxEvent.UNDO,e);b.getView().addListener(mxEvent.UNDO,e);e=function(c,e){var f=b.getSelectionCellsForChanges(e.getProperty("edit").changes,function(b){return!(b instanceof mxChildChange)});if(0<f.length){b.getModel();for(var n=[],d=0;d<
f.length;d++)null!=b.view.getState(f[d])&&n.push(f[d]);b.setSelectionCells(n)}};c.addListener(mxEvent.UNDO,e);c.addListener(mxEvent.REDO,e);return c};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(b){this.consumer=this.producer=null;this.done=b;this.args=null};OpenFile.prototype.setConsumer=function(b){this.consumer=b;this.execute()};
OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};OpenFile.prototype.error=function(b){this.cancel(!0);mxUtils.alert(b)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(b){null!=this.done&&this.done(null!=b?b:!0)};
-function Dialog(b,c,e,f,n,l,t,d,k,g,q){var m=k?57:0,p=e,v=f,u=k?0:64,x=Editor.inlineFullscreen||null==b.embedViewport?mxUtils.getDocumentSize():mxUtils.clone(b.embedViewport);null==b.embedViewport&&null!=window.innerHeight&&(x.height=window.innerHeight);var y=x.height,G=Math.max(1,Math.round((x.width-e-u)/2)),H=Math.max(1,Math.round((y-f-b.footerHeight)/3));c.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-u):e;f=Math.min(f,y-u);0<b.dialogs.length&&(this.zIndex+=
+function Dialog(b,c,e,f,n,l,q,d,k,g,t){var m=k?57:0,p=e,v=f,u=k?0:64,x=Editor.inlineFullscreen||null==b.embedViewport?mxUtils.getDocumentSize():mxUtils.clone(b.embedViewport);null==b.embedViewport&&null!=window.innerHeight&&(x.height=window.innerHeight);var y=x.height,G=Math.max(1,Math.round((x.width-e-u)/2)),H=Math.max(1,Math.round((y-f-b.footerHeight)/3));c.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-u):e;f=Math.min(f,y-u);0<b.dialogs.length&&(this.zIndex+=
2*b.dialogs.length);null==this.bg&&(this.bg=b.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=Dialog.backdropColor,this.bg.style.height=y+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));x=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=x.x+"px";this.bg.style.top=x.y+"px";G+=x.x;H+=x.y;Editor.inlineFullscreen||null==b.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px",
H+=b.embedViewport.y,G+=b.embedViewport.x);n&&document.body.appendChild(this.bg);var D=b.createDiv(k?"geTransDialog":"geDialog");n=this.getPosition(G,H,e,f);G=n.x;H=n.y;D.style.width=e+"px";D.style.height=f+"px";D.style.left=G+"px";D.style.top=H+"px";D.style.zIndex=this.zIndex;D.appendChild(c);document.body.appendChild(D);!d&&c.clientHeight>D.clientHeight-u&&(c.style.overflowY="auto");c.style.overflowX="hidden";if(l&&(l=document.createElement("img"),l.setAttribute("src",Dialog.prototype.closeImage),
-l.setAttribute("title",mxResources.get("close")),l.className="geDialogClose",l.style.top=H+14+"px",l.style.left=G+e+38-m+"px",l.style.zIndex=this.zIndex,mxEvent.addListener(l,"click",mxUtils.bind(this,function(){b.hideDialog(!0)})),document.body.appendChild(l),this.dialogImg=l,!q)){var F=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(b){F=!0}),null,mxUtils.bind(this,function(d){F&&(b.hideDialog(!0),F=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=g){var k=g();
+l.setAttribute("title",mxResources.get("close")),l.className="geDialogClose",l.style.top=H+14+"px",l.style.left=G+e+38-m+"px",l.style.zIndex=this.zIndex,mxEvent.addListener(l,"click",mxUtils.bind(this,function(){b.hideDialog(!0)})),document.body.appendChild(l),this.dialogImg=l,!t)){var F=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(b){F=!0}),null,mxUtils.bind(this,function(d){F&&(b.hideDialog(!0),F=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=g){var k=g();
null!=k&&(p=e=k.w,v=f=k.h)}k=mxUtils.getDocumentSize();y=k.height;this.bg.style.height=y+"px";Editor.inlineFullscreen||null==b.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px");G=Math.max(1,Math.round((k.width-e-u)/2));H=Math.max(1,Math.round((y-f-b.footerHeight)/3));e=null!=document.body?Math.min(p,document.body.scrollWidth-u):p;f=Math.min(v,y-u);k=this.getPosition(G,H,e,f);G=k.x;H=k.y;D.style.left=G+"px";D.style.top=H+"px";D.style.width=e+"px";D.style.height=f+"px";!d&&
-c.clientHeight>D.clientHeight-u&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=H+14+"px",this.dialogImg.style.left=G+e+38-m+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=t;this.container=D;b.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
+c.clientHeight>D.clientHeight-u&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=H+14+"px",this.dialogImg.style.left=G+e+38-m+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=q;this.container=D;b.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
Dialog.prototype.noColorImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzRDlBMUUwODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzRDlBMUUxODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTNEOUExREU4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTNEOUExREY4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5xh3fmAAAABlBMVEX////MzMw46qqDAAAAGElEQVR42mJggAJGKGAYIIGBth8KAAIMAEUQAIElnLuQAAAAAElFTkSuQmCC":IMAGE_PATH+
"/nocolor.png";Dialog.prototype.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEV7mr3///+wksspAAAAAnRSTlP/AOW3MEoAAAAdSURBVAgdY9jXwCDDwNDRwHCwgeExmASygSL7GgB12QiqNHZZIwAAAABJRU5ErkJggg==":IMAGE_PATH+"/close.png";
Dialog.prototype.clearImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQAKAIABAMDAwP///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUIzOEM1NzI4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUIzOEM1NzM4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QjM4QzU3MDg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QjM4QzU3MTg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAEALAAAAAANAAoAAAIXTGCJebD9jEOTqRlttXdrB32PJ2ncyRQAOw==":IMAGE_PATH+
"/clear.gif";Dialog.prototype.bgOpacity=80;Dialog.prototype.getPosition=function(b,c){return new mxPoint(b,c)};Dialog.prototype.close=function(b,c){if(null!=this.onDialogClose){if(0==this.onDialogClose(b,c))return!1;this.onDialogClose=null}null!=this.dialogImg&&(this.dialogImg.parentNode.removeChild(this.dialogImg),this.dialogImg=null);null!=this.bg&&null!=this.bg.parentNode&&this.bg.parentNode.removeChild(this.bg);mxEvent.removeListener(window,"resize",this.resizeListener);this.container.parentNode.removeChild(this.container)};
-var ErrorDialog=function(b,c,e,f,n,l,t,d,k,g,q){k=null!=k?k:!0;var m=document.createElement("div");m.style.textAlign="center";if(null!=c){var p=document.createElement("div");p.style.padding="0px";p.style.margin="0px";p.style.fontSize="18px";p.style.paddingBottom="16px";p.style.marginBottom="10px";p.style.borderBottom="1px solid #c0c0c0";p.style.color="gray";p.style.whiteSpace="nowrap";p.style.textOverflow="ellipsis";p.style.overflow="hidden";mxUtils.write(p,c);p.setAttribute("title",c);m.appendChild(p)}c=
-document.createElement("div");c.style.lineHeight="1.2em";c.style.padding="6px";c.innerHTML=e;m.appendChild(c);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=l&&(c=mxUtils.button(mxResources.get("tryAgain"),function(){b.hideDialog();l()}),c.className="geBtn",e.appendChild(c),e.style.textAlign="center");null!=g&&(g=mxUtils.button(g,function(){null!=q&&q()}),g.className="geBtn",e.appendChild(g));var v=mxUtils.button(f,function(){k&&b.hideDialog();null!=n&&n()});
-v.className="geBtn";e.appendChild(v);null!=t&&(f=mxUtils.button(t,function(){k&&b.hideDialog();null!=d&&d()}),f.className="geBtn gePrimaryBtn",e.appendChild(f));this.init=function(){v.focus()};m.appendChild(e);this.container=m},PrintDialog=function(b,c){this.create(b,c)};
-PrintDialog.prototype.create=function(b){function c(b){var c=d.checked||g.checked,k=parseInt(m.value)/100;isNaN(k)&&(k=1,m.value="100%");var k=.75*k,f=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,l=1/e.pageScale;if(c){var p=d.checked?1:parseInt(q.value);isNaN(p)||(l=mxUtils.getScaleForPageCount(p,e,f))}e.getGraphBounds();var v=p=0,f=mxRectangle.fromRectangle(f);f.width=Math.ceil(f.width*k);f.height=Math.ceil(f.height*k);l*=k;!c&&e.pageVisible?(k=e.getPageLayout(),p-=k.x*f.width,v-=k.y*f.height):
-c=!0;c=PrintDialog.createPrintPreview(e,l,f,0,p,v,c);c.open();b&&PrintDialog.printPreview(c)}var e=b.editor.graph,f,n,l=document.createElement("table");l.style.width="100%";l.style.height="100%";var t=document.createElement("tbody");f=document.createElement("tr");var d=document.createElement("input");d.setAttribute("type","checkbox");n=document.createElement("td");n.setAttribute("colspan","2");n.style.fontSize="10pt";n.appendChild(d);var k=document.createElement("span");mxUtils.write(k," "+mxResources.get("fitPage"));
-n.appendChild(k);mxEvent.addListener(k,"click",function(b){d.checked=!d.checked;g.checked=!d.checked;mxEvent.consume(b)});mxEvent.addListener(d,"change",function(){g.checked=!d.checked});f.appendChild(n);t.appendChild(f);f=f.cloneNode(!1);var g=document.createElement("input");g.setAttribute("type","checkbox");n=document.createElement("td");n.style.fontSize="10pt";n.appendChild(g);k=document.createElement("span");mxUtils.write(k," "+mxResources.get("posterPrint")+":");n.appendChild(k);mxEvent.addListener(k,
-"click",function(b){g.checked=!g.checked;d.checked=!g.checked;mxEvent.consume(b)});f.appendChild(n);var q=document.createElement("input");q.setAttribute("value","1");q.setAttribute("type","number");q.setAttribute("min","1");q.setAttribute("size","4");q.setAttribute("disabled","disabled");q.style.width="50px";n=document.createElement("td");n.style.fontSize="10pt";n.appendChild(q);mxUtils.write(n," "+mxResources.get("pages")+" (max)");f.appendChild(n);t.appendChild(f);mxEvent.addListener(g,"change",
-function(){g.checked?q.removeAttribute("disabled"):q.setAttribute("disabled","disabled");d.checked=!g.checked});f=f.cloneNode(!1);n=document.createElement("td");mxUtils.write(n,mxResources.get("pageScale")+":");f.appendChild(n);n=document.createElement("td");var m=document.createElement("input");m.setAttribute("value","100 %");m.setAttribute("size","5");m.style.width="50px";n.appendChild(m);f.appendChild(n);t.appendChild(f);f=document.createElement("tr");n=document.createElement("td");n.colSpan=2;
+var ErrorDialog=function(b,c,e,f,n,l,q,d,k,g,t){k=null!=k?k:!0;var m=document.createElement("div");m.style.textAlign="center";if(null!=c){var p=document.createElement("div");p.style.padding="0px";p.style.margin="0px";p.style.fontSize="18px";p.style.paddingBottom="16px";p.style.marginBottom="10px";p.style.borderBottom="1px solid #c0c0c0";p.style.color="gray";p.style.whiteSpace="nowrap";p.style.textOverflow="ellipsis";p.style.overflow="hidden";mxUtils.write(p,c);p.setAttribute("title",c);m.appendChild(p)}c=
+document.createElement("div");c.style.lineHeight="1.2em";c.style.padding="6px";c.innerHTML=e;m.appendChild(c);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=l&&(c=mxUtils.button(mxResources.get("tryAgain"),function(){b.hideDialog();l()}),c.className="geBtn",e.appendChild(c),e.style.textAlign="center");null!=g&&(g=mxUtils.button(g,function(){null!=t&&t()}),g.className="geBtn",e.appendChild(g));var v=mxUtils.button(f,function(){k&&b.hideDialog();null!=n&&n()});
+v.className="geBtn";e.appendChild(v);null!=q&&(f=mxUtils.button(q,function(){k&&b.hideDialog();null!=d&&d()}),f.className="geBtn gePrimaryBtn",e.appendChild(f));this.init=function(){v.focus()};m.appendChild(e);this.container=m},PrintDialog=function(b,c){this.create(b,c)};
+PrintDialog.prototype.create=function(b){function c(b){var c=d.checked||g.checked,k=parseInt(m.value)/100;isNaN(k)&&(k=1,m.value="100%");var k=.75*k,f=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,l=1/e.pageScale;if(c){var p=d.checked?1:parseInt(t.value);isNaN(p)||(l=mxUtils.getScaleForPageCount(p,e,f))}e.getGraphBounds();var v=p=0,f=mxRectangle.fromRectangle(f);f.width=Math.ceil(f.width*k);f.height=Math.ceil(f.height*k);l*=k;!c&&e.pageVisible?(k=e.getPageLayout(),p-=k.x*f.width,v-=k.y*f.height):
+c=!0;c=PrintDialog.createPrintPreview(e,l,f,0,p,v,c);c.open();b&&PrintDialog.printPreview(c)}var e=b.editor.graph,f,n,l=document.createElement("table");l.style.width="100%";l.style.height="100%";var q=document.createElement("tbody");f=document.createElement("tr");var d=document.createElement("input");d.setAttribute("type","checkbox");n=document.createElement("td");n.setAttribute("colspan","2");n.style.fontSize="10pt";n.appendChild(d);var k=document.createElement("span");mxUtils.write(k," "+mxResources.get("fitPage"));
+n.appendChild(k);mxEvent.addListener(k,"click",function(b){d.checked=!d.checked;g.checked=!d.checked;mxEvent.consume(b)});mxEvent.addListener(d,"change",function(){g.checked=!d.checked});f.appendChild(n);q.appendChild(f);f=f.cloneNode(!1);var g=document.createElement("input");g.setAttribute("type","checkbox");n=document.createElement("td");n.style.fontSize="10pt";n.appendChild(g);k=document.createElement("span");mxUtils.write(k," "+mxResources.get("posterPrint")+":");n.appendChild(k);mxEvent.addListener(k,
+"click",function(b){g.checked=!g.checked;d.checked=!g.checked;mxEvent.consume(b)});f.appendChild(n);var t=document.createElement("input");t.setAttribute("value","1");t.setAttribute("type","number");t.setAttribute("min","1");t.setAttribute("size","4");t.setAttribute("disabled","disabled");t.style.width="50px";n=document.createElement("td");n.style.fontSize="10pt";n.appendChild(t);mxUtils.write(n," "+mxResources.get("pages")+" (max)");f.appendChild(n);q.appendChild(f);mxEvent.addListener(g,"change",
+function(){g.checked?t.removeAttribute("disabled"):t.setAttribute("disabled","disabled");d.checked=!g.checked});f=f.cloneNode(!1);n=document.createElement("td");mxUtils.write(n,mxResources.get("pageScale")+":");f.appendChild(n);n=document.createElement("td");var m=document.createElement("input");m.setAttribute("value","100 %");m.setAttribute("size","5");m.style.width="50px";n.appendChild(m);f.appendChild(n);q.appendChild(f);f=document.createElement("tr");n=document.createElement("td");n.colSpan=2;
n.style.paddingTop="20px";n.setAttribute("align","right");k=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});k.className="geBtn";b.editor.cancelFirst&&n.appendChild(k);if(PrintDialog.previewEnabled){var p=mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();c(!1)});p.className="geBtn";n.appendChild(p)}p=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();c(!0)});p.className="geBtn gePrimaryBtn";n.appendChild(p);b.editor.cancelFirst||
-n.appendChild(k);f.appendChild(n);t.appendChild(f);l.appendChild(t);this.container=l};PrintDialog.printPreview=function(b){try{if(null!=b.wnd){var c=function(){b.wnd.focus();b.wnd.print();b.wnd.close()};mxClient.IS_GC?window.setTimeout(c,500):c()}}catch(e){}};
-PrintDialog.createPrintPreview=function(b,c,e,f,n,l,t){c=new mxPrintPreview(b,c,e,f,n,l);c.title=mxResources.get("preview");c.printBackgroundImage=!0;c.autoOrigin=t;b=b.background;if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";c.backgroundColor=b;var d=c.writeHead;c.writeHead=function(b){d.apply(this,arguments);b.writeln('<style type="text/css">');b.writeln("@media screen {");b.writeln(" body > div { padding:30px;box-sizing:content-box; }");b.writeln("}");b.writeln("</style>")};return c};
+n.appendChild(k);f.appendChild(n);q.appendChild(f);l.appendChild(q);this.container=l};PrintDialog.printPreview=function(b){try{if(null!=b.wnd){var c=function(){b.wnd.focus();b.wnd.print();b.wnd.close()};mxClient.IS_GC?window.setTimeout(c,500):c()}}catch(e){}};
+PrintDialog.createPrintPreview=function(b,c,e,f,n,l,q){c=new mxPrintPreview(b,c,e,f,n,l);c.title=mxResources.get("preview");c.printBackgroundImage=!0;c.autoOrigin=q;b=b.background;if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";c.backgroundColor=b;var d=c.writeHead;c.writeHead=function(b){d.apply(this,arguments);b.writeln('<style type="text/css">');b.writeln("@media screen {");b.writeln(" body > div { padding:30px;box-sizing:content-box; }");b.writeln("}");b.writeln("</style>")};return c};
PrintDialog.previewEnabled=!0;
-var PageSetupDialog=function(b){function c(){null==q||q==mxConstants.NONE?(g.style.backgroundColor="",g.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(g.style.backgroundColor=q,g.style.backgroundImage="")}function e(){var d=u;null!=d&&Graph.isPageLink(d.src)&&(d=b.createImageForPageLink(d.src,null));null!=d&&null!=d.src?(v.setAttribute("src",d.src),v.style.display=""):(v.removeAttribute("src"),v.style.display="none")}var f=b.editor.graph,n,l,t=document.createElement("table");t.style.width=
-"100%";t.style.height="100%";var d=document.createElement("tbody");n=document.createElement("tr");l=document.createElement("td");l.style.verticalAlign="top";l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("paperSize")+":");n.appendChild(l);l=document.createElement("td");l.style.verticalAlign="top";l.style.fontSize="10pt";var k=PageSetupDialog.addPageFormatPanel(l,"pagesetupdialog",f.pageFormat);n.appendChild(l);d.appendChild(n);n=document.createElement("tr");l=document.createElement("td");
-mxUtils.write(l,mxResources.get("background")+":");n.appendChild(l);l=document.createElement("td");l.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var g=document.createElement("button");g.style.width="22px";g.style.height="22px";g.style.cursor="pointer";g.style.marginRight="20px";g.style.backgroundPosition="center center";g.style.backgroundRepeat="no-repeat";mxClient.IS_FF&&(g.style.position="relative",g.style.top="-6px");var q=f.background;c();mxEvent.addListener(g,
-"click",function(d){b.pickColor(q||"none",function(b){q=b;c()});mxEvent.consume(d)});l.appendChild(g);mxUtils.write(l,mxResources.get("gridSize")+":");var m=document.createElement("input");m.setAttribute("type","number");m.setAttribute("min","0");m.style.width="40px";m.style.marginLeft="6px";m.value=f.getGridSize();l.appendChild(m);mxEvent.addListener(m,"change",function(){var b=parseInt(m.value);m.value=Math.max(1,isNaN(b)?f.getGridSize():b)});n.appendChild(l);d.appendChild(n);n=document.createElement("tr");
+var PageSetupDialog=function(b){function c(){null==t||t==mxConstants.NONE?(g.style.backgroundColor="",g.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(g.style.backgroundColor=t,g.style.backgroundImage="")}function e(){var d=u;null!=d&&Graph.isPageLink(d.src)&&(d=b.createImageForPageLink(d.src,null));null!=d&&null!=d.src?(v.setAttribute("src",d.src),v.style.display=""):(v.removeAttribute("src"),v.style.display="none")}var f=b.editor.graph,n,l,q=document.createElement("table");q.style.width=
+"100%";q.style.height="100%";var d=document.createElement("tbody");n=document.createElement("tr");l=document.createElement("td");l.style.verticalAlign="top";l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("paperSize")+":");n.appendChild(l);l=document.createElement("td");l.style.verticalAlign="top";l.style.fontSize="10pt";var k=PageSetupDialog.addPageFormatPanel(l,"pagesetupdialog",f.pageFormat);n.appendChild(l);d.appendChild(n);n=document.createElement("tr");l=document.createElement("td");
+mxUtils.write(l,mxResources.get("background")+":");n.appendChild(l);l=document.createElement("td");l.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var g=document.createElement("button");g.style.width="22px";g.style.height="22px";g.style.cursor="pointer";g.style.marginRight="20px";g.style.backgroundPosition="center center";g.style.backgroundRepeat="no-repeat";mxClient.IS_FF&&(g.style.position="relative",g.style.top="-6px");var t=f.background;c();mxEvent.addListener(g,
+"click",function(d){b.pickColor(t||"none",function(b){t=b;c()});mxEvent.consume(d)});l.appendChild(g);mxUtils.write(l,mxResources.get("gridSize")+":");var m=document.createElement("input");m.setAttribute("type","number");m.setAttribute("min","0");m.style.width="40px";m.style.marginLeft="6px";m.value=f.getGridSize();l.appendChild(m);mxEvent.addListener(m,"change",function(){var b=parseInt(m.value);m.value=Math.max(1,isNaN(b)?f.getGridSize():b)});n.appendChild(l);d.appendChild(n);n=document.createElement("tr");
l=document.createElement("td");mxUtils.write(l,mxResources.get("image")+":");n.appendChild(l);l=document.createElement("td");var p=document.createElement("button");p.className="geBtn";p.style.margin="0px";mxUtils.write(p,mxResources.get("change")+"...");var v=document.createElement("img");v.setAttribute("valign","middle");v.style.verticalAlign="middle";v.style.border="1px solid lightGray";v.style.borderRadius="4px";v.style.marginRight="14px";v.style.maxWidth="100px";v.style.cursor="pointer";v.style.height=
"60px";v.style.padding="4px";var u=f.backgroundImage,x=function(d){b.showBackgroundImageDialog(function(b,d){d||(u=b,e())},u);mxEvent.consume(d)};mxEvent.addListener(p,"click",x);mxEvent.addListener(v,"click",x);e();l.appendChild(v);l.appendChild(p);n.appendChild(l);d.appendChild(n);n=document.createElement("tr");l=document.createElement("td");l.colSpan=2;l.style.paddingTop="16px";l.setAttribute("align","right");p=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});p.className="geBtn";
-b.editor.cancelFirst&&l.appendChild(p);x=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();var d=parseInt(m.value);isNaN(d)||f.gridSize===d||f.setGridSize(d);d=new ChangePageSetup(b,q,u,k.get());d.ignoreColor=f.background==q;d.ignoreImage=(null!=f.backgroundImage?f.backgroundImage.src:null)===(null!=u?u.src:null);f.pageFormat.width==d.previousFormat.width&&f.pageFormat.height==d.previousFormat.height&&d.ignoreColor&&d.ignoreImage||f.model.execute(d)});x.className="geBtn gePrimaryBtn";
-l.appendChild(x);b.editor.cancelFirst||l.appendChild(p);n.appendChild(l);d.appendChild(n);t.appendChild(d);this.container=t};
+b.editor.cancelFirst&&l.appendChild(p);x=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();var d=parseInt(m.value);isNaN(d)||f.gridSize===d||f.setGridSize(d);d=new ChangePageSetup(b,t,u,k.get());d.ignoreColor=f.background==t;d.ignoreImage=(null!=f.backgroundImage?f.backgroundImage.src:null)===(null!=u?u.src:null);f.pageFormat.width==d.previousFormat.width&&f.pageFormat.height==d.previousFormat.height&&d.ignoreColor&&d.ignoreImage||f.model.execute(d)});x.className="geBtn gePrimaryBtn";
+l.appendChild(x);b.editor.cancelFirst||l.appendChild(p);n.appendChild(l);d.appendChild(n);q.appendChild(d);this.container=q};
PageSetupDialog.addPageFormatPanel=function(b,c,e,f){function n(b,c,g){if(g||m!=document.activeElement&&p!=document.activeElement){b=!1;for(c=0;c<u.length;c++)g=u[c],H?"custom"==g.key&&(d.value=g.key,H=!1):null!=g.format&&("a4"==g.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==g.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==g.format.width&&
-e.height==g.format.height?(d.value=g.key,l.setAttribute("checked","checked"),l.defaultChecked=!0,l.checked=!0,t.removeAttribute("checked"),t.defaultChecked=!1,t.checked=!1,b=!0):e.width==g.format.height&&e.height==g.format.width&&(d.value=g.key,l.removeAttribute("checked"),l.defaultChecked=!1,l.checked=!1,t.setAttribute("checked","checked"),t.defaultChecked=!0,b=t.checked=!0));b?(k.style.display="",q.style.display="none"):(m.value=e.width/100,p.value=e.height/100,l.setAttribute("checked","checked"),
-d.value="custom",k.style.display="none",q.style.display="")}}c="format-"+c;var l=document.createElement("input");l.setAttribute("name",c);l.setAttribute("type","radio");l.setAttribute("value","portrait");var t=document.createElement("input");t.setAttribute("name",c);t.setAttribute("type","radio");t.setAttribute("value","landscape");var d=document.createElement("select");d.style.marginBottom="8px";d.style.borderRadius="4px";d.style.border="1px solid rgb(160, 160, 160)";d.style.width="206px";var k=
-document.createElement("div");k.style.marginLeft="4px";k.style.width="210px";k.style.height="24px";l.style.marginRight="6px";k.appendChild(l);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));k.appendChild(c);t.style.marginLeft="10px";t.style.marginRight="6px";k.appendChild(t);var g=document.createElement("span");g.style.width="100px";mxUtils.write(g,mxResources.get("landscape"));k.appendChild(g);var q=document.createElement("div");q.style.marginLeft=
-"4px";q.style.width="210px";q.style.height="24px";var m=document.createElement("input");m.setAttribute("size","7");m.style.textAlign="right";q.appendChild(m);mxUtils.write(q," in x ");var p=document.createElement("input");p.setAttribute("size","7");p.style.textAlign="right";q.appendChild(p);mxUtils.write(q," in");k.style.display="none";q.style.display="none";for(var v={},u=PageSetupDialog.getFormats(),x=0;x<u.length;x++){var y=u[x];v[y.key]=y;var G=document.createElement("option");G.setAttribute("value",
-y.key);mxUtils.write(G,y.title);d.appendChild(G)}var H=!1;n();b.appendChild(d);mxUtils.br(b);b.appendChild(k);b.appendChild(q);var D=e,F=function(b,c){var g=v[d.value];null!=g.format?(m.value=g.format.width/100,p.value=g.format.height/100,q.style.display="none",k.style.display=""):(k.style.display="none",q.style.display="");g=parseFloat(m.value);if(isNaN(g)||0>=g)m.value=e.width/100;g=parseFloat(p.value);if(isNaN(g)||0>=g)p.value=e.height/100;g=new mxRectangle(0,0,Math.floor(100*parseFloat(m.value)),
-Math.floor(100*parseFloat(p.value)));"custom"!=d.value&&t.checked&&(g=new mxRectangle(0,0,g.height,g.width));c&&H||g.width==D.width&&g.height==D.height||(D=g,null!=f&&f(D))};mxEvent.addListener(c,"click",function(b){l.checked=!0;F(b);mxEvent.consume(b)});mxEvent.addListener(g,"click",function(b){t.checked=!0;F(b);mxEvent.consume(b)});mxEvent.addListener(m,"blur",F);mxEvent.addListener(m,"click",F);mxEvent.addListener(p,"blur",F);mxEvent.addListener(p,"click",F);mxEvent.addListener(t,"change",F);mxEvent.addListener(l,
+e.height==g.format.height?(d.value=g.key,l.setAttribute("checked","checked"),l.defaultChecked=!0,l.checked=!0,q.removeAttribute("checked"),q.defaultChecked=!1,q.checked=!1,b=!0):e.width==g.format.height&&e.height==g.format.width&&(d.value=g.key,l.removeAttribute("checked"),l.defaultChecked=!1,l.checked=!1,q.setAttribute("checked","checked"),q.defaultChecked=!0,b=q.checked=!0));b?(k.style.display="",t.style.display="none"):(m.value=e.width/100,p.value=e.height/100,l.setAttribute("checked","checked"),
+d.value="custom",k.style.display="none",t.style.display="")}}c="format-"+c;var l=document.createElement("input");l.setAttribute("name",c);l.setAttribute("type","radio");l.setAttribute("value","portrait");var q=document.createElement("input");q.setAttribute("name",c);q.setAttribute("type","radio");q.setAttribute("value","landscape");var d=document.createElement("select");d.style.marginBottom="8px";d.style.borderRadius="4px";d.style.border="1px solid rgb(160, 160, 160)";d.style.width="206px";var k=
+document.createElement("div");k.style.marginLeft="4px";k.style.width="210px";k.style.height="24px";l.style.marginRight="6px";k.appendChild(l);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));k.appendChild(c);q.style.marginLeft="10px";q.style.marginRight="6px";k.appendChild(q);var g=document.createElement("span");g.style.width="100px";mxUtils.write(g,mxResources.get("landscape"));k.appendChild(g);var t=document.createElement("div");t.style.marginLeft=
+"4px";t.style.width="210px";t.style.height="24px";var m=document.createElement("input");m.setAttribute("size","7");m.style.textAlign="right";t.appendChild(m);mxUtils.write(t," in x ");var p=document.createElement("input");p.setAttribute("size","7");p.style.textAlign="right";t.appendChild(p);mxUtils.write(t," in");k.style.display="none";t.style.display="none";for(var v={},u=PageSetupDialog.getFormats(),x=0;x<u.length;x++){var y=u[x];v[y.key]=y;var G=document.createElement("option");G.setAttribute("value",
+y.key);mxUtils.write(G,y.title);d.appendChild(G)}var H=!1;n();b.appendChild(d);mxUtils.br(b);b.appendChild(k);b.appendChild(t);var D=e,F=function(b,c){var g=v[d.value];null!=g.format?(m.value=g.format.width/100,p.value=g.format.height/100,t.style.display="none",k.style.display=""):(k.style.display="none",t.style.display="");g=parseFloat(m.value);if(isNaN(g)||0>=g)m.value=e.width/100;g=parseFloat(p.value);if(isNaN(g)||0>=g)p.value=e.height/100;g=new mxRectangle(0,0,Math.floor(100*parseFloat(m.value)),
+Math.floor(100*parseFloat(p.value)));"custom"!=d.value&&q.checked&&(g=new mxRectangle(0,0,g.height,g.width));c&&H||g.width==D.width&&g.height==D.height||(D=g,null!=f&&f(D))};mxEvent.addListener(c,"click",function(b){l.checked=!0;F(b);mxEvent.consume(b)});mxEvent.addListener(g,"click",function(b){q.checked=!0;F(b);mxEvent.consume(b)});mxEvent.addListener(m,"blur",F);mxEvent.addListener(m,"click",F);mxEvent.addListener(p,"blur",F);mxEvent.addListener(p,"click",F);mxEvent.addListener(q,"change",F);mxEvent.addListener(l,
"change",F);mxEvent.addListener(d,"change",function(b){H="custom"==d.value;F(b,!0)});F();return{set:function(b){e=b;n(null,null,!0)},get:function(){return D},widthInput:m,heightInput:p}};
PageSetupDialog.getFormats=function(){return[{key:"letter",title:'US-Letter (8,5" x 11")',format:mxConstants.PAGE_FORMAT_LETTER_PORTRAIT},{key:"legal",title:'US-Legal (8,5" x 14")',format:new mxRectangle(0,0,850,1400)},{key:"tabloid",title:'US-Tabloid (11" x 17")',format:new mxRectangle(0,0,1100,1700)},{key:"executive",title:'US-Executive (7" x 10")',format:new mxRectangle(0,0,700,1E3)},{key:"a0",title:"A0 (841 mm x 1189 mm)",format:new mxRectangle(0,0,3300,4681)},{key:"a1",title:"A1 (594 mm x 841 mm)",
format:new mxRectangle(0,0,2339,3300)},{key:"a2",title:"A2 (420 mm x 594 mm)",format:new mxRectangle(0,0,1654,2336)},{key:"a3",title:"A3 (297 mm x 420 mm)",format:new mxRectangle(0,0,1169,1654)},{key:"a4",title:"A4 (210 mm x 297 mm)",format:mxConstants.PAGE_FORMAT_A4_PORTRAIT},{key:"a5",title:"A5 (148 mm x 210 mm)",format:new mxRectangle(0,0,583,827)},{key:"a6",title:"A6 (105 mm x 148 mm)",format:new mxRectangle(0,0,413,583)},{key:"a7",title:"A7 (74 mm x 105 mm)",format:new mxRectangle(0,0,291,413)},
{key:"b4",title:"B4 (250 mm x 353 mm)",format:new mxRectangle(0,0,980,1390)},{key:"b5",title:"B5 (176 mm x 250 mm)",format:new mxRectangle(0,0,690,980)},{key:"16-9",title:"16:9 (1600 x 900)",format:new mxRectangle(0,0,900,1600)},{key:"16-10",title:"16:10 (1920 x 1200)",format:new mxRectangle(0,0,1200,1920)},{key:"4-3",title:"4:3 (1600 x 1200)",format:new mxRectangle(0,0,1200,1600)},{key:"custom",title:mxResources.get("custom"),format:null}]};
-var FilenameDialog=function(b,c,e,f,n,l,t,d,k,g,q,m){k=null!=k?k:!0;var p,v,u=document.createElement("table"),x=document.createElement("tbody");u.style.position="absolute";u.style.top="30px";u.style.left="20px";p=document.createElement("tr");v=document.createElement("td");v.style.textOverflow="ellipsis";v.style.textAlign="right";v.style.maxWidth="100px";v.style.fontSize="10pt";v.style.width="84px";mxUtils.write(v,(n||mxResources.get("filename"))+":");p.appendChild(v);var y=document.createElement("input");
-y.setAttribute("value",c||"");y.style.marginLeft="4px";y.style.width=null!=m?m+"px":"180px";var G=mxUtils.button(e,function(){if(null==l||l(y.value))k&&b.hideDialog(),f(y.value)});G.className="geBtn gePrimaryBtn";this.init=function(){if(null!=n||null==t)if(y.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?y.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var b=u.parentNode;if(null!=b){var d=null;mxEvent.addListener(b,"dragleave",function(b){null!=d&&(d.style.backgroundColor=
+var FilenameDialog=function(b,c,e,f,n,l,q,d,k,g,t,m){k=null!=k?k:!0;var p,v,u=document.createElement("table"),x=document.createElement("tbody");u.style.position="absolute";u.style.top="30px";u.style.left="20px";p=document.createElement("tr");v=document.createElement("td");v.style.textOverflow="ellipsis";v.style.textAlign="right";v.style.maxWidth="100px";v.style.fontSize="10pt";v.style.width="84px";mxUtils.write(v,(n||mxResources.get("filename"))+":");p.appendChild(v);var y=document.createElement("input");
+y.setAttribute("value",c||"");y.style.marginLeft="4px";y.style.width=null!=m?m+"px":"180px";var G=mxUtils.button(e,function(){if(null==l||l(y.value))k&&b.hideDialog(),f(y.value)});G.className="geBtn gePrimaryBtn";this.init=function(){if(null!=n||null==q)if(y.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?y.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var b=u.parentNode;if(null!=b){var d=null;mxEvent.addListener(b,"dragleave",function(b){null!=d&&(d.style.backgroundColor=
"",d=null);b.stopPropagation();b.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(b){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=y,d.style.backgroundColor="#ebf2f9");b.stopPropagation();b.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=d&&(d.style.backgroundColor="",d=null);0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")&&(y.value=decodeURIComponent(b.dataTransfer.getData("text/uri-list")),G.click());b.stopPropagation();
-b.preventDefault()}))}}};v=document.createElement("td");v.style.whiteSpace="nowrap";v.appendChild(y);p.appendChild(v);if(null!=n||null==t)x.appendChild(p),null!=q&&(v.appendChild(FilenameDialog.createTypeHint(b,y,q)),null!=b.editor.diagramFileTypes&&(p=document.createElement("tr"),v=document.createElement("td"),v.style.textOverflow="ellipsis",v.style.textAlign="right",v.style.maxWidth="100px",v.style.fontSize="10pt",v.style.width="84px",mxUtils.write(v,mxResources.get("type")+":"),p.appendChild(v),
-v=document.createElement("td"),v.style.whiteSpace="nowrap",p.appendChild(v),c=FilenameDialog.createFileTypes(b,y,b.editor.diagramFileTypes),c.style.marginLeft="4px",c.style.width="198px",v.appendChild(c),y.style.width=null!=m?m-40+"px":"190px",p.appendChild(v),x.appendChild(p)));null!=t&&(p=document.createElement("tr"),v=document.createElement("td"),v.colSpan=2,v.appendChild(t),p.appendChild(v),x.appendChild(p));p=document.createElement("tr");v=document.createElement("td");v.colSpan=2;v.style.paddingTop=
-null!=q?"12px":"20px";v.style.whiteSpace="nowrap";v.setAttribute("align","right");q=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog();null!=g&&g()});q.className="geBtn";b.editor.cancelFirst&&v.appendChild(q);null!=d&&(m=mxUtils.button(mxResources.get("help"),function(){b.editor.graph.openLink(d)}),m.className="geBtn",v.appendChild(m));mxEvent.addListener(y,"keypress",function(b){13==b.keyCode&&G.click()});v.appendChild(G);b.editor.cancelFirst||v.appendChild(q);p.appendChild(v);x.appendChild(p);
+b.preventDefault()}))}}};v=document.createElement("td");v.style.whiteSpace="nowrap";v.appendChild(y);p.appendChild(v);if(null!=n||null==q)x.appendChild(p),null!=t&&(v.appendChild(FilenameDialog.createTypeHint(b,y,t)),null!=b.editor.diagramFileTypes&&(p=document.createElement("tr"),v=document.createElement("td"),v.style.textOverflow="ellipsis",v.style.textAlign="right",v.style.maxWidth="100px",v.style.fontSize="10pt",v.style.width="84px",mxUtils.write(v,mxResources.get("type")+":"),p.appendChild(v),
+v=document.createElement("td"),v.style.whiteSpace="nowrap",p.appendChild(v),c=FilenameDialog.createFileTypes(b,y,b.editor.diagramFileTypes),c.style.marginLeft="4px",c.style.width="198px",v.appendChild(c),y.style.width=null!=m?m-40+"px":"190px",p.appendChild(v),x.appendChild(p)));null!=q&&(p=document.createElement("tr"),v=document.createElement("td"),v.colSpan=2,v.appendChild(q),p.appendChild(v),x.appendChild(p));p=document.createElement("tr");v=document.createElement("td");v.colSpan=2;v.style.paddingTop=
+null!=t?"12px":"20px";v.style.whiteSpace="nowrap";v.setAttribute("align","right");t=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog();null!=g&&g()});t.className="geBtn";b.editor.cancelFirst&&v.appendChild(t);null!=d&&(m=mxUtils.button(mxResources.get("help"),function(){b.editor.graph.openLink(d)}),m.className="geBtn",v.appendChild(m));mxEvent.addListener(y,"keypress",function(b){13==b.keyCode&&G.click()});v.appendChild(G);b.editor.cancelFirst||v.appendChild(t);p.appendChild(v);x.appendChild(p);
u.appendChild(x);this.container=u};FilenameDialog.filenameHelpLink=null;
FilenameDialog.createTypeHint=function(b,c,e){var f=document.createElement("img");f.style.backgroundPosition="center bottom";f.style.backgroundRepeat="no-repeat";f.style.margin="2px 0 0 4px";f.style.verticalAlign="top";f.style.cursor="pointer";f.style.height="16px";f.style.width="16px";mxUtils.setOpacity(f,70);var n=function(){f.setAttribute("src",Editor.helpImage);f.setAttribute("title",mxResources.get("help"));for(var b=0;b<e.length;b++)if(0<e[b].ext.length&&c.value.toLowerCase().substring(c.value.length-
e[b].ext.length-1)=="."+e[b].ext){f.setAttribute("title",mxResources.get(e[b].title));break}};mxEvent.addListener(c,"keyup",n);mxEvent.addListener(c,"change",n);mxEvent.addListener(f,"click",function(c){var e=f.getAttribute("title");f.getAttribute("src")==Editor.helpImage?b.editor.graph.openLink(FilenameDialog.filenameHelpLink):""!=e&&b.showError(null,e,mxResources.get("help"),function(){b.editor.graph.openLink(FilenameDialog.filenameHelpLink)},null,mxResources.get("ok"),null,null,null,340,90);mxEvent.consume(c)});
@@ -2141,7 +2141,7 @@ mxGraphView.prototype.validateBackgroundStyles=function(){var b=this.graph,d=nul
b.defaultPageBorderColor,b.container.className="geDiagramContainer geDiagramBackdrop",c.style.backgroundImage="none",c.style.backgroundColor=""):(b.container.className="geDiagramContainer",c.style.backgroundPosition=e,c.style.backgroundColor=d,c.style.backgroundImage=g)};mxGraphView.prototype.createSvgGrid=function(b){for(var d=this.graph.gridSize*this.scale;d<this.minGridSize;)d*=2;for(var c=this.gridSteps*d,g=[],e=1;e<this.gridSteps;e++){var f=e*d;g.push("M 0 "+f+" L "+c+" "+f+" M "+f+" 0 L "+f+
" "+c)}return'<svg width="'+c+'" height="'+c+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+c+'" height="'+c+'" patternUnits="userSpaceOnUse"><path d="'+g.join(" ")+'" fill="none" stroke="'+b+'" opacity="0.2" stroke-width="1"/><path d="M '+c+" 0 L 0 0 0 "+c+'" fill="none" stroke="'+b+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(c,d){b.apply(this,arguments);
if(null!=this.shiftPreview1){var k=this.view.canvas;null!=k.ownerSVGElement&&(k=k.ownerSVGElement);var g=this.gridSize*this.view.scale*this.view.gridSteps,g=-Math.round(g-mxUtils.mod(this.view.translate.x*this.view.scale+c,g))+"px "+-Math.round(g-mxUtils.mod(this.view.translate.y*this.view.scale+d,g))+"px";k.style.backgroundPosition=g}};mxGraph.prototype.updatePageBreaks=function(b,d,c){var g=this.view.scale,k=this.view.translate,e=this.pageFormat,f=g*this.pageScale,l=this.view.getBackgroundPageBounds();
-d=l.width;c=l.height;var u=new mxRectangle(g*k.x,g*k.y,e.width*f,e.height*f),n=(b=b&&Math.min(u.width,u.height)>this.minPageBreakDist)?Math.ceil(c/u.height)-1:0,t=b?Math.ceil(d/u.width)-1:0,G=l.x+d,H=l.y+c;null==this.horizontalPageBreaks&&0<n&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<t&&(this.verticalPageBreaks=[]);b=mxUtils.bind(this,function(b){if(null!=b){for(var d=b==this.horizontalPageBreaks?n:t,c=0;c<=d;c++){var g=b==this.horizontalPageBreaks?[new mxPoint(Math.round(l.x),
+d=l.width;c=l.height;var u=new mxRectangle(g*k.x,g*k.y,e.width*f,e.height*f),n=(b=b&&Math.min(u.width,u.height)>this.minPageBreakDist)?Math.ceil(c/u.height)-1:0,q=b?Math.ceil(d/u.width)-1:0,G=l.x+d,H=l.y+c;null==this.horizontalPageBreaks&&0<n&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<q&&(this.verticalPageBreaks=[]);b=mxUtils.bind(this,function(b){if(null!=b){for(var d=b==this.horizontalPageBreaks?n:q,c=0;c<=d;c++){var g=b==this.horizontalPageBreaks?[new mxPoint(Math.round(l.x),
Math.round(l.y+(c+1)*u.height)),new mxPoint(Math.round(G),Math.round(l.y+(c+1)*u.height))]:[new mxPoint(Math.round(l.x+(c+1)*u.width),Math.round(l.y)),new mxPoint(Math.round(l.x+(c+1)*u.width),Math.round(H))];null!=b[c]?(b[c].points=g,b[c].redraw()):(g=new mxPolyline(g,this.pageBreakColor),g.dialect=this.dialect,g.isDashed=this.pageBreakDashed,g.pointerEvents=!1,g.init(this.view.backgroundPane),g.redraw(),b[c]=g)}for(c=d;c<b.length;c++)b[c].destroy();b.splice(d,b.length-d)}});b(this.horizontalPageBreaks);
b(this.verticalPageBreaks)};var c=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(b,d,k){for(var g=0;g<d.length;g++){if(this.graph.isTableCell(d[g])||this.graph.isTableRow(d[g]))return!1;if(this.graph.getModel().isVertex(d[g])){var e=this.graph.getCellGeometry(d[g]);if(null!=e&&e.relative)return!1}}return c.apply(this,arguments)};var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var b=
e.apply(this,arguments);b.intersects=mxUtils.bind(this,function(d,c){return this.isConnecting()?!0:mxCellMarker.prototype.intersects.apply(b,arguments)});return b};mxGraphView.prototype.createBackgroundPageShape=function(b){return new mxRectangleShape(b,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var b=this.getGraphBounds(),d=0<b.width?b.x/this.scale-this.translate.x:0,c=0<b.height?b.y/this.scale-this.translate.y:0,g=this.graph.pageFormat,
@@ -2151,11 +2151,11 @@ function(b,d,c){var g,k=this.graph.model.getParent(b);if(d)g=this.graph.model.is
this.graph.isCellSelected(b)&&!this.graph.isToggleEvent(c.getEvent())||this.graph.isTableCell(b)&&this.graph.isCellSelected(k);return g};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(b){b=b.getCell();for(var d=this.graph.getModel(),c=d.getParent(b),g=this.graph.view.getState(c),e=this.graph.isCellSelected(b);null!=g&&(d.isVertex(c)||d.isEdge(c));){var f=this.graph.isCellSelected(c),e=e||f;if(f||!e&&(this.graph.isTableCell(b)||this.graph.isTableRow(b)))b=c;c=d.getParent(c)}return b}})();EditorUi=function(b,c,e){mxEventSource.call(this);this.destroyFunctions=[];this.editor=b||new Editor;this.container=c||document.body;var f=this.editor.graph;f.lightbox=e;var n=f.getGraphBounds;f.getGraphBounds=function(){var b=n.apply(this,arguments),d=this.backgroundImage;if(null!=d&&null!=d.width&&null!=d.height){var c=this.view.translate,g=this.view.scale,b=mxRectangle.fromRectangle(b);b.add(new mxRectangle((c.x+d.x)*g,(c.y+d.y)*g,d.width*g,d.height*g))}return b};f.useCssTransforms&&(this.lazyZoomDelay=
0);mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);this.selectionStateListener=mxUtils.bind(this,function(b,d){this.clearSelectionState()});f.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionStateListener);
f.getModel().addListener(mxEvent.CHANGE,this.selectionStateListener);f.addListener(mxEvent.EDITING_STARTED,this.selectionStateListener);f.addListener(mxEvent.EDITING_STOPPED,this.selectionStateListener);f.getView().addListener("unitChanged",this.selectionStateListener);this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,f.isEnabled=function(){return!1},f.panningHandler.isForcePanningEvent=function(b){return!mxEvent.isPopupTrigger(b.getEvent())});this.actions=new Actions(this);this.menus=
-this.createMenus();if(!f.standalone){var l="rounded shadow glass dashed dashPattern labelBackgroundColor labelBorderColor comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle pointerEvents".split(" "),t="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" "),
+this.createMenus();if(!f.standalone){var l="rounded shadow glass dashed dashPattern labelBackgroundColor labelBorderColor comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle pointerEvents".split(" "),q="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" "),
d="curved sourcePerimeterSpacing targetPerimeterSpacing startArrow startFill startSize endArrow endFill endSize".split(" ");this.setDefaultStyle=function(b){try{var d=f.getCellStyle(b,!1),c=[],g=[],k;for(k in d)c.push(d[k]),g.push(k);f.getModel().isEdge(b)?f.currentEdgeStyle={}:f.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",g,"values",c,"cells",[b]))}catch(da){this.handleError(da)}};this.clearDefaultStyle=function(){f.currentEdgeStyle=mxUtils.clone(f.defaultEdgeStyle);
-f.currentVertexStyle=mxUtils.clone(f.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var k=["fontFamily","fontSource","fontSize","fontColor"];for(c=0;c<k.length;c++)0>mxUtils.indexOf(l,k[c])&&l.push(k[c]);var g="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),q=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],
-["fillColor","gradientColor","gradientDirection"],["opacity"],["html"]];for(c=0;c<q.length;c++)for(e=0;e<q[c].length;e++)l.push(q[c][e]);for(c=0;c<t.length;c++)0>mxUtils.indexOf(l,t[c])&&l.push(t[c]);var m=function(b,c,g,k,e,m,p){k=null!=k?k:f.currentVertexStyle;e=null!=e?e:f.currentEdgeStyle;m=null!=m?m:!0;g=null!=g?g:f.getModel();if(p){p=[];for(var B=0;B<b.length;B++)p=p.concat(g.getDescendants(b[B]));b=p}g.beginUpdate();try{for(B=0;B<b.length;B++){var u=b[B],n;if(c)n=["fontSize","fontFamily","fontColor"];
-else{var v=g.getStyle(u),y=null!=v?v.split(";"):[];n=l.slice();for(var t=0;t<y.length;t++){var x=y[t],Q=x.indexOf("=");if(0<=Q){var A=x.substring(0,Q),ja=mxUtils.indexOf(n,A);0<=ja&&n.splice(ja,1);for(p=0;p<q.length;p++){var X=q[p];if(0<=mxUtils.indexOf(X,A))for(var M=0;M<X.length;M++){var G=mxUtils.indexOf(n,X[M]);0<=G&&n.splice(G,1)}}}}}var F=g.isEdge(u);p=F?e:k;for(var C=g.getStyle(u),t=0;t<n.length;t++){var A=n[t],V=p[A];null!=V&&"edgeStyle"!=A&&("shape"!=A||F)&&(!F||m||0>mxUtils.indexOf(d,A))&&
+f.currentVertexStyle=mxUtils.clone(f.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var k=["fontFamily","fontSource","fontSize","fontColor"];for(c=0;c<k.length;c++)0>mxUtils.indexOf(l,k[c])&&l.push(k[c]);var g="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),t=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],
+["fillColor","gradientColor","gradientDirection"],["opacity"],["html"]];for(c=0;c<t.length;c++)for(e=0;e<t[c].length;e++)l.push(t[c][e]);for(c=0;c<q.length;c++)0>mxUtils.indexOf(l,q[c])&&l.push(q[c]);var m=function(b,c,g,k,e,m,p){k=null!=k?k:f.currentVertexStyle;e=null!=e?e:f.currentEdgeStyle;m=null!=m?m:!0;g=null!=g?g:f.getModel();if(p){p=[];for(var B=0;B<b.length;B++)p=p.concat(g.getDescendants(b[B]));b=p}g.beginUpdate();try{for(B=0;B<b.length;B++){var u=b[B],n;if(c)n=["fontSize","fontFamily","fontColor"];
+else{var v=g.getStyle(u),y=null!=v?v.split(";"):[];n=l.slice();for(var q=0;q<y.length;q++){var x=y[q],Q=x.indexOf("=");if(0<=Q){var A=x.substring(0,Q),ja=mxUtils.indexOf(n,A);0<=ja&&n.splice(ja,1);for(p=0;p<t.length;p++){var X=t[p];if(0<=mxUtils.indexOf(X,A))for(var M=0;M<X.length;M++){var G=mxUtils.indexOf(n,X[M]);0<=G&&n.splice(G,1)}}}}}var F=g.isEdge(u);p=F?e:k;for(var C=g.getStyle(u),q=0;q<n.length;q++){var A=n[q],V=p[A];null!=V&&"edgeStyle"!=A&&("shape"!=A||F)&&(!F||m||0>mxUtils.indexOf(d,A))&&
(C=mxUtils.setStyle(C,A,V))}Editor.simpleLabels&&(C=mxUtils.setStyle(mxUtils.setStyle(C,"html",null),"whiteSpace",null));g.setStyle(u,C)}}finally{g.endUpdate()}return b};f.addListener("cellsInserted",function(b,d){m(d.getProperty("cells"),null,null,null,null,!0,!0)});f.addListener("textInserted",function(b,d){m(d.getProperty("cells"),!0)});this.insertHandler=m;this.createDivs();this.createUi();this.refresh();var p=mxUtils.bind(this,function(b){null==b&&(b=window.event);return f.isEditing()||null!=
b&&this.isSelectionAllowed(b)});this.container==document.body&&(this.menubarContainer.onselectstart=p,this.menubarContainer.onmousedown=p,this.toolbarContainer.onselectstart=p,this.toolbarContainer.onmousedown=p,this.diagramContainer.onselectstart=p,this.diagramContainer.onmousedown=p,this.sidebarContainer.onselectstart=p,this.sidebarContainer.onmousedown=p,this.formatContainer.onselectstart=p,this.formatContainer.onmousedown=p,this.footerContainer.onselectstart=p,this.footerContainer.onmousedown=
p,null!=this.tabContainer&&(this.tabContainer.onselectstart=p));!this.editor.chromeless||this.editor.editable?(c=function(b){if(null!=b){var d=mxEvent.getSource(b);if("A"==d.nodeName)for(;null!=d;){if("geHint"==d.className)return!0;d=d.parentNode}}return p(b)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",c):this.diagramContainer.oncontextmenu=c):f.panningHandler.usePopupTrigger=!1;f.init(this.diagramContainer);
@@ -2163,12 +2163,12 @@ mxClient.IS_SVG&&null!=f.view.getDrawPane()&&(c=f.view.getDrawPane().ownerSVGEle
0<mxEvent.getClientY(b)-d.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var u=!1,x=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(b,d){return u||x.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(b){32!=b.which||f.isEditing()?mxEvent.isConsumed(b)||27!=b.keyCode||this.hideDialog(null,!0):(u=!0,this.hoverIcons.reset(),f.container.style.cursor="move",
f.isEditing()||mxEvent.getSource(b)!=f.container||mxEvent.consume(b))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(b){f.container.style.cursor="";u=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var y=f.panningHandler.isForcePanningEvent;f.panningHandler.isForcePanningEvent=function(b){return y.apply(this,arguments)||u||mxEvent.isMouseEvent(b.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(b.getEvent()))&&(!mxEvent.isControlDown(b.getEvent())&&
mxEvent.isRightMouseButton(b.getEvent())||mxEvent.isMiddleMouseButton(b.getEvent()))};var G=f.cellEditor.isStopEditingEvent;f.cellEditor.isStopEditingEvent=function(b){return G.apply(this,arguments)||13==b.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxClient.IS_SF&&mxEvent.isShiftDown(b))};var H=f.isZoomWheelEvent;f.isZoomWheelEvent=function(){return u||H.apply(this,arguments)};var D=!1,F=null,O=null,A=null,C=mxUtils.bind(this,function(){if(null!=this.toolbar&&
-D!=f.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var c=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),d.push(b));b=c}b=this.toolbar.fontMenu;c=this.toolbar.sizeMenu;if(null==A)this.toolbar.createTextToolbar();else{for(var g=0;g<A.length;g++)this.toolbar.container.appendChild(A[g]);this.toolbar.fontMenu=F;this.toolbar.sizeMenu=O}D=f.cellEditor.isContentEditing();F=b;O=c;A=d}}),E=this,L=f.cellEditor.startEditing;
-f.cellEditor.startEditing=function(){L.apply(this,arguments);C();if(f.cellEditor.isContentEditing()){var b=!1,d=function(){b||(b=!0,window.setTimeout(function(){var d=f.getSelectedEditingElement();null!=d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=E.toolbar&&(E.toolbar.setFontName(Graph.stripQuotes(d.fontFamily)),E.toolbar.setFontSize(parseInt(d.fontSize))));b=!1},0))};mxEvent.addListener(f.cellEditor.textarea,"input",d);mxEvent.addListener(f.cellEditor.textarea,"touchend",d);mxEvent.addListener(f.cellEditor.textarea,
+D!=f.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var c=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),d.push(b));b=c}b=this.toolbar.fontMenu;c=this.toolbar.sizeMenu;if(null==A)this.toolbar.createTextToolbar();else{for(var g=0;g<A.length;g++)this.toolbar.container.appendChild(A[g]);this.toolbar.fontMenu=F;this.toolbar.sizeMenu=O}D=f.cellEditor.isContentEditing();F=b;O=c;A=d}}),E=this,J=f.cellEditor.startEditing;
+f.cellEditor.startEditing=function(){J.apply(this,arguments);C();if(f.cellEditor.isContentEditing()){var b=!1,d=function(){b||(b=!0,window.setTimeout(function(){var d=f.getSelectedEditingElement();null!=d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=E.toolbar&&(E.toolbar.setFontName(Graph.stripQuotes(d.fontFamily)),E.toolbar.setFontSize(parseInt(d.fontSize))));b=!1},0))};mxEvent.addListener(f.cellEditor.textarea,"input",d);mxEvent.addListener(f.cellEditor.textarea,"touchend",d);mxEvent.addListener(f.cellEditor.textarea,
"mouseup",d);mxEvent.addListener(f.cellEditor.textarea,"keyup",d);d()}};var N=f.cellEditor.stopEditing;f.cellEditor.stopEditing=function(b,d){try{N.apply(this,arguments),C()}catch(X){E.handleError(X)}};f.container.setAttribute("tabindex","0");f.container.style.cursor="default";if(window.self===window.top&&null!=f.container.parentNode)try{f.container.focus()}catch(Q){}var M=f.fireMouseEvent;f.fireMouseEvent=function(b,d,c){b==mxEvent.MOUSE_DOWN&&this.container.focus();M.apply(this,arguments)};f.popupMenuHandler.autoExpand=
!0;null!=this.menus&&(f.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(b,d,c){this.menus.createPopupMenu(b,d,c)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(b){f.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(b);this.getKeyHandler=function(){return keyHandler};f.connectionHandler.addListener(mxEvent.CONNECT,function(b,d){var c=[d.getProperty("cell")];d.getProperty("terminalInserted")&&(c.push(d.getProperty("terminal")),window.setTimeout(function(){null!=
-E.hoverIcons&&E.hoverIcons.update(f.view.getState(c[c.length-1]))},0));m(c)});this.addListener("styleChanged",mxUtils.bind(this,function(b,d){var c=d.getProperty("cells"),e=!1,q=!1;if(0<c.length)for(var m=0;m<c.length&&(e=f.getModel().isVertex(c[m])||e,!(q=f.getModel().isEdge(c[m])||q)||!e);m++);else q=e=!0;for(var c=d.getProperty("keys"),p=d.getProperty("values"),m=0;m<c.length;m++){var B=0<=mxUtils.indexOf(k,c[m]);if("strokeColor"!=c[m]||null!=p[m]&&"none"!=p[m])if(0<=mxUtils.indexOf(t,c[m]))q||
-0<=mxUtils.indexOf(g,c[m])?null==p[m]?delete f.currentEdgeStyle[c[m]]:f.currentEdgeStyle[c[m]]=p[m]:e&&0<=mxUtils.indexOf(l,c[m])&&(null==p[m]?delete f.currentVertexStyle[c[m]]:f.currentVertexStyle[c[m]]=p[m]);else if(0<=mxUtils.indexOf(l,c[m])){if(e||B)null==p[m]?delete f.currentVertexStyle[c[m]]:f.currentVertexStyle[c[m]]=p[m];if(q||B||0<=mxUtils.indexOf(g,c[m]))null==p[m]?delete f.currentEdgeStyle[c[m]]:f.currentEdgeStyle[c[m]]=p[m]}}null!=this.toolbar&&(this.toolbar.setFontName(f.currentVertexStyle.fontFamily||
+E.hoverIcons&&E.hoverIcons.update(f.view.getState(c[c.length-1]))},0));m(c)});this.addListener("styleChanged",mxUtils.bind(this,function(b,d){var c=d.getProperty("cells"),e=!1,t=!1;if(0<c.length)for(var m=0;m<c.length&&(e=f.getModel().isVertex(c[m])||e,!(t=f.getModel().isEdge(c[m])||t)||!e);m++);else t=e=!0;for(var c=d.getProperty("keys"),p=d.getProperty("values"),m=0;m<c.length;m++){var B=0<=mxUtils.indexOf(k,c[m]);if("strokeColor"!=c[m]||null!=p[m]&&"none"!=p[m])if(0<=mxUtils.indexOf(q,c[m]))t||
+0<=mxUtils.indexOf(g,c[m])?null==p[m]?delete f.currentEdgeStyle[c[m]]:f.currentEdgeStyle[c[m]]=p[m]:e&&0<=mxUtils.indexOf(l,c[m])&&(null==p[m]?delete f.currentVertexStyle[c[m]]:f.currentVertexStyle[c[m]]=p[m]);else if(0<=mxUtils.indexOf(l,c[m])){if(e||B)null==p[m]?delete f.currentVertexStyle[c[m]]:f.currentVertexStyle[c[m]]=p[m];if(t||B||0<=mxUtils.indexOf(g,c[m]))null==p[m]?delete f.currentEdgeStyle[c[m]]:f.currentEdgeStyle[c[m]]=p[m]}}null!=this.toolbar&&(this.toolbar.setFontName(f.currentVertexStyle.fontFamily||
Menus.prototype.defaultFont),this.toolbar.setFontSize(f.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==f.currentEdgeStyle.edgeStyle&&"1"==f.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==f.currentEdgeStyle.edgeStyle||"none"==f.currentEdgeStyle.edgeStyle||null==f.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==
f.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==f.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==f.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==f.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==f.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==f.currentEdgeStyle.shape?
"geSprite geSprite-linkedge":"flexArrow"==f.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==f.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",f.currentEdgeStyle.shape,f.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(f.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=
@@ -2176,7 +2176,7 @@ this.getCssClassForMarker("end",f.currentEdgeStyle.shape,f.currentEdgeStyle[mxCo
this.toolbar.setFontSize(d)}),f.getSelectionModel().addListener(mxEvent.CHANGE,b),f.getModel().addListener(mxEvent.CHANGE,b));f.addListener(mxEvent.CELLS_ADDED,function(b,d){var c=d.getProperty("cells"),g=d.getProperty("parent");null!=g&&f.getModel().isLayer(g)&&!f.isCellVisible(g)&&null!=c&&0<c.length&&f.getModel().setVisible(g,!0)});this.gestureHandler=mxUtils.bind(this,function(b){null!=this.currentMenu&&mxEvent.getSource(b)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document,
this.gestureHandler);this.resizeHandler=mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,function(){null!=this.editor.graph&&this.refresh()}),0)});mxEvent.addListener(window,"resize",this.resizeHandler);this.orientationChangeHandler=mxUtils.bind(this,function(){this.refresh()});mxEvent.addListener(window,"orientationchange",this.orientationChangeHandler);mxClient.IS_IOS&&!window.navigator.standalone&&"undefined"!==typeof Menus&&(this.scrollHandler=mxUtils.bind(this,function(){window.scrollTo(0,
0)}),mxEvent.addListener(window,"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){f.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){f.view.validateBackground()}));f.addListener("gridSizeChanged",mxUtils.bind(this,function(){f.isGridEnabled()&&f.view.validateBackground()}));this.editor.resetGraph()}this.init();
-f.standalone||this.open()};EditorUi.compactUi=!0;EditorUi.parsePng=function(b,c,e){function f(b,c){var d=l;l+=c;return b.substring(d,l)}function n(b){b=f(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}var l=0;if(f(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(b,4),"IHDR"!=f(b,4))null!=e&&e();else{f(b,17);do{e=n(b);var t=f(b,4);if(null!=c&&c(l-8,t,e))break;value=f(b,e);f(b,4);if("IEND"==t)break}while(e)}};
+f.standalone||this.open()};EditorUi.compactUi=!0;EditorUi.parsePng=function(b,c,e){function f(b,c){var d=l;l+=c;return b.substring(d,l)}function n(b){b=f(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}var l=0;if(f(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(b,4),"IHDR"!=f(b,4))null!=e&&e();else{f(b,17);do{e=n(b);var q=f(b,4);if(null!=c&&c(l-8,q,e))break;value=f(b,e);f(b,4);if("IEND"==q)break}while(e)}};
mxUtils.extend(EditorUi,mxEventSource);EditorUi.prototype.splitSize=mxClient.IS_TOUCH||mxClient.IS_POINTER?12:8;EditorUi.prototype.menubarHeight=30;EditorUi.prototype.formatEnabled=!0;EditorUi.prototype.formatWidth=240;EditorUi.prototype.toolbarHeight=38;EditorUi.prototype.footerHeight=28;EditorUi.prototype.sidebarFooterHeight=34;EditorUi.prototype.hsplitPosition=640>=screen.width?118:"large"!=urlParams["sidebar-entries"]?212:240;EditorUi.prototype.allowAnimation=!0;
EditorUi.prototype.lightboxMaxFitScale=2;EditorUi.prototype.lightboxVerticalDivider=4;EditorUi.prototype.hsplitClickEnabled=!1;
EditorUi.prototype.init=function(){var b=this.editor.graph;if(!b.standalone){"0"!=urlParams["shape-picker"]&&this.installShapePicker();mxEvent.addListener(b.container,"scroll",mxUtils.bind(this,function(){b.tooltipHandler.hide();null!=b.connectionHandler&&null!=b.connectionHandler.constraintHandler&&b.connectionHandler.constraintHandler.reset()}));b.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){b.tooltipHandler.hide();var c=b.getRubberband();null!=c&&c.cancel()}));mxEvent.addListener(b.container,
@@ -2184,24 +2184,24 @@ EditorUi.prototype.init=function(){var b=this.editor.graph;if(!b.standalone){"0"
arguments);e.updateActionStates()};b.editLink=e.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()}};EditorUi.prototype.clearSelectionState=function(){this.selectionState=null};EditorUi.prototype.getSelectionState=function(){null==this.selectionState&&(this.selectionState=this.createSelectionState());return this.selectionState};
EditorUi.prototype.createSelectionState=function(){for(var b=this.editor.graph,c=b.getSelectionCells(),e=this.initSelectionState(),f=!0,n=0;n<c.length;n++){var l=b.getCurrentCellStyle(c[n]);"0"!=mxUtils.getValue(l,mxConstants.STYLE_EDITABLE,"1")&&(this.updateSelectionStateForCell(e,c[n],c,f),f=!1)}this.updateSelectionStateForTableCells(e);return e};
EditorUi.prototype.initSelectionState=function(){return{vertices:[],edges:[],cells:[],x:null,y:null,width:null,height:null,style:{},containsImage:!1,containsLabel:!1,fill:!0,glass:!0,rounded:!0,autoSize:!1,image:!0,shadow:!0,lineJumps:!0,resizable:!0,table:!1,cell:!1,row:!1,movable:!0,rotatable:!0,stroke:!0,swimlane:!1,unlocked:this.editor.graph.isEnabled(),connections:!1}};
-EditorUi.prototype.updateSelectionStateForTableCells=function(b){if(1<b.cells.length&&b.cell){for(var c=mxUtils.sortCells(b.cells),e=this.editor.graph.model,f=e.getParent(c[0]),n=e.getParent(f),l=f.getIndex(c[0]),t=n.getIndex(f),d=null,k=1,g=1,q=0,m=t<n.getChildCount()-1?e.getChildAt(e.getChildAt(n,t+1),l):null;q<c.length-1;){var p=c[++q];null==m||m!=p||null!=d&&k!=d||(d=k,k=0,g++,f=e.getParent(m),m=t+g<n.getChildCount()?e.getChildAt(e.getChildAt(n,t+g),l):null);var v=this.editor.graph.view.getState(p);
-if(p==e.getChildAt(f,l+k)&&null!=v&&1==mxUtils.getValue(v.style,"colspan",1)&&1==mxUtils.getValue(v.style,"rowspan",1))k++;else break}q==g*k-1&&(b.mergeCell=c[0],b.colspan=k,b.rowspan=g)}};
+EditorUi.prototype.updateSelectionStateForTableCells=function(b){if(1<b.cells.length&&b.cell){for(var c=mxUtils.sortCells(b.cells),e=this.editor.graph.model,f=e.getParent(c[0]),n=e.getParent(f),l=f.getIndex(c[0]),q=n.getIndex(f),d=null,k=1,g=1,t=0,m=q<n.getChildCount()-1?e.getChildAt(e.getChildAt(n,q+1),l):null;t<c.length-1;){var p=c[++t];null==m||m!=p||null!=d&&k!=d||(d=k,k=0,g++,f=e.getParent(m),m=q+g<n.getChildCount()?e.getChildAt(e.getChildAt(n,q+g),l):null);var v=this.editor.graph.view.getState(p);
+if(p==e.getChildAt(f,l+k)&&null!=v&&1==mxUtils.getValue(v.style,"colspan",1)&&1==mxUtils.getValue(v.style,"rowspan",1))k++;else break}t==g*k-1&&(b.mergeCell=c[0],b.colspan=k,b.rowspan=g)}};
EditorUi.prototype.updateSelectionStateForCell=function(b,c,e,f){e=this.editor.graph;b.cells.push(c);if(e.getModel().isVertex(c)){b.connections=0<e.model.getEdgeCount(c);b.unlocked=b.unlocked&&!e.isCellLocked(c);b.resizable=b.resizable&&e.isCellResizable(c);b.rotatable=b.rotatable&&e.isCellRotatable(c);b.movable=b.movable&&e.isCellMovable(c)&&!e.isTableRow(c)&&!e.isTableCell(c);b.swimlane=b.swimlane||e.isSwimlane(c);b.table=b.table||e.isTable(c);b.cell=b.cell||e.isTableCell(c);b.row=b.row||e.isTableRow(c);
b.vertices.push(c);var n=e.getCellGeometry(c);if(null!=n&&(0<n.width?null==b.width?b.width=n.width:b.width!=n.width&&(b.width=""):b.containsLabel=!0,0<n.height?null==b.height?b.height=n.height:b.height!=n.height&&(b.height=""):b.containsLabel=!0,!n.relative||null!=n.offset)){var l=n.relative?n.offset.x:n.x,n=n.relative?n.offset.y:n.y;null==b.x?b.x=l:b.x!=l&&(b.x="");null==b.y?b.y=n:b.y!=n&&(b.y="")}}else e.getModel().isEdge(c)&&(b.edges.push(c),b.connections=!0,b.resizable=!1,b.rotatable=!1,b.movable=
!1);c=e.view.getState(c);null!=c&&(b.autoSize=b.autoSize||e.isAutoSizeState(c),b.glass=b.glass&&e.isGlassState(c),b.rounded=b.rounded&&e.isRoundedState(c),b.lineJumps=b.lineJumps&&e.isLineJumpState(c),b.image=b.image&&e.isImageState(c),b.shadow=b.shadow&&e.isShadowState(c),b.fill=b.fill&&e.isFillState(c),b.stroke=b.stroke&&e.isStrokeState(c),l=mxUtils.getValue(c.style,mxConstants.STYLE_SHAPE,null),b.containsImage=b.containsImage||"image"==l,e.mergeStyle(c.style,b.style,f))};
EditorUi.prototype.installShapePicker=function(){var b=this.editor.graph,c=this;b.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,d){"mouseDown"==d.getProperty("eventName")&&c.hideShapePicker()}));var e=mxUtils.bind(this,function(){c.hideShapePicker(!0)});b.addListener("wheel",e);b.addListener(mxEvent.ESCAPE,e);b.view.addListener(mxEvent.SCALE,e);b.view.addListener(mxEvent.SCALE_AND_TRANSLATE,e);b.getSelectionModel().addListener(mxEvent.CHANGE,e);var f=b.popupMenuHandler.isMenuShowing;
b.popupMenuHandler.isMenuShowing=function(){return f.apply(this,arguments)||null!=c.shapePicker};var n=b.dblClick;b.dblClick=function(d,g){if(this.isEnabled())if(null!=g||null==c.sidebar||mxEvent.isShiftDown(d)||b.isCellLocked(b.getDefaultParent()))n.apply(this,arguments);else{var k=mxUtils.convertPoint(this.container,mxEvent.getClientX(d),mxEvent.getClientY(d));mxEvent.consume(d);window.setTimeout(mxUtils.bind(this,function(){c.showShapePicker(k.x,k.y)}),30)}};if(null!=this.hoverIcons){this.hoverIcons.addListener("reset",
-e);var l=this.hoverIcons.drag;this.hoverIcons.drag=function(){c.hideShapePicker();l.apply(this,arguments)};var t=this.hoverIcons.execute;this.hoverIcons.execute=function(d,g,e){var k=e.getEvent();this.graph.isCloneEvent(k)||mxEvent.isShiftDown(k)?t.apply(this,arguments):this.graph.connectVertex(d.cell,g,this.graph.defaultEdgeLength,k,null,null,mxUtils.bind(this,function(k,f,q){var m=b.getCompositeParent(d.cell);k=b.getCellGeometry(m);for(e.consume();null!=m&&b.model.isVertex(m)&&null!=k&&k.relative;)cell=
-m,m=b.model.getParent(cell),k=b.getCellGeometry(m);window.setTimeout(mxUtils.bind(this,function(){c.showShapePicker(e.getGraphX(),e.getGraphY(),m,mxUtils.bind(this,function(d){q(d);null!=c.hoverIcons&&c.hoverIcons.update(b.view.getState(d))}),g)}),30)}),mxUtils.bind(this,function(b){this.graph.selectCellsForConnectVertex(b,k,this)}))};var d=null;this.hoverIcons.addListener("focus",mxUtils.bind(this,function(k,g){null!=d&&window.clearTimeout(d);d=window.setTimeout(mxUtils.bind(this,function(){var d=
-g.getProperty("arrow"),k=g.getProperty("direction"),e=g.getProperty("event"),d=d.getBoundingClientRect(),f=mxUtils.getOffset(b.container),l=b.container.scrollLeft+d.x-f.x,f=b.container.scrollTop+d.y-f.y,n=b.getCompositeParent(null!=this.hoverIcons.currentState?this.hoverIcons.currentState.cell:null),t=c.showShapePicker(l,f,n,mxUtils.bind(this,function(d){null!=d&&b.connectVertex(n,k,b.defaultEdgeLength,e,!0,!0,function(g,k,e){e(d);null!=c.hoverIcons&&c.hoverIcons.update(b.view.getState(d))},function(d){b.selectCellsForConnectVertex(d)},
-e,this.hoverIcons)}),k,!0);this.centerShapePicker(t,d,l,f,k);mxUtils.setOpacity(t,30);mxEvent.addListener(t,"mouseenter",function(){mxUtils.setOpacity(t,100)});mxEvent.addListener(t,"mouseleave",function(){c.hideShapePicker()})}),Editor.shapePickerHoverDelay)}));this.hoverIcons.addListener("blur",mxUtils.bind(this,function(b,c){null!=d&&window.clearTimeout(d)}))}};
+e);var l=this.hoverIcons.drag;this.hoverIcons.drag=function(){c.hideShapePicker();l.apply(this,arguments)};var q=this.hoverIcons.execute;this.hoverIcons.execute=function(d,g,e){var k=e.getEvent();this.graph.isCloneEvent(k)||mxEvent.isShiftDown(k)?q.apply(this,arguments):this.graph.connectVertex(d.cell,g,this.graph.defaultEdgeLength,k,null,null,mxUtils.bind(this,function(k,f,t){var m=b.getCompositeParent(d.cell);k=b.getCellGeometry(m);for(e.consume();null!=m&&b.model.isVertex(m)&&null!=k&&k.relative;)cell=
+m,m=b.model.getParent(cell),k=b.getCellGeometry(m);window.setTimeout(mxUtils.bind(this,function(){c.showShapePicker(e.getGraphX(),e.getGraphY(),m,mxUtils.bind(this,function(d){t(d);null!=c.hoverIcons&&c.hoverIcons.update(b.view.getState(d))}),g)}),30)}),mxUtils.bind(this,function(b){this.graph.selectCellsForConnectVertex(b,k,this)}))};var d=null;this.hoverIcons.addListener("focus",mxUtils.bind(this,function(k,g){null!=d&&window.clearTimeout(d);d=window.setTimeout(mxUtils.bind(this,function(){var d=
+g.getProperty("arrow"),k=g.getProperty("direction"),e=g.getProperty("event"),d=d.getBoundingClientRect(),f=mxUtils.getOffset(b.container),l=b.container.scrollLeft+d.x-f.x,f=b.container.scrollTop+d.y-f.y,n=b.getCompositeParent(null!=this.hoverIcons.currentState?this.hoverIcons.currentState.cell:null),q=c.showShapePicker(l,f,n,mxUtils.bind(this,function(d){null!=d&&b.connectVertex(n,k,b.defaultEdgeLength,e,!0,!0,function(g,k,e){e(d);null!=c.hoverIcons&&c.hoverIcons.update(b.view.getState(d))},function(d){b.selectCellsForConnectVertex(d)},
+e,this.hoverIcons)}),k,!0);this.centerShapePicker(q,d,l,f,k);mxUtils.setOpacity(q,30);mxEvent.addListener(q,"mouseenter",function(){mxUtils.setOpacity(q,100)});mxEvent.addListener(q,"mouseleave",function(){c.hideShapePicker()})}),Editor.shapePickerHoverDelay)}));this.hoverIcons.addListener("blur",mxUtils.bind(this,function(b,c){null!=d&&window.clearTimeout(d)}))}};
EditorUi.prototype.centerShapePicker=function(b,c,e,f,n){if(n==mxConstants.DIRECTION_EAST||n==mxConstants.DIRECTION_WEST)b.style.width="40px";var l=b.getBoundingClientRect();n==mxConstants.DIRECTION_NORTH?(e-=l.width/2-10,f-=l.height+6):n==mxConstants.DIRECTION_SOUTH?(e-=l.width/2-10,f+=c.height+6):n==mxConstants.DIRECTION_WEST?(e-=l.width+6,f-=l.height/2-10):n==mxConstants.DIRECTION_EAST&&(e+=c.width+6,f-=l.height/2-10);b.style.left=e+"px";b.style.top=f+"px"};
EditorUi.prototype.showShapePicker=function(b,c,e,f,n,l){b=this.createShapePicker(b,c,e,f,n,mxUtils.bind(this,function(){this.hideShapePicker()}),this.getCellsForShapePicker(e,l),l);null!=b&&(null==this.hoverIcons||l||this.hoverIcons.reset(),l=this.editor.graph,l.popupMenuHandler.hideMenu(),l.tooltipHandler.hideTooltip(),this.hideCurrentMenu(),this.hideShapePicker(),this.shapePickerCallback=f,this.shapePicker=b);return b};
-EditorUi.prototype.createShapePicker=function(b,c,e,f,n,l,t,d){var k=null;if(null!=t&&0<t.length){var g=this,q=this.editor.graph,k=document.createElement("div");n=q.view.getState(e);var m=null==e||null!=n&&q.isTransparentState(n)?null:q.copyStyle(e);e=6>t.length?35*t.length:140;k.className="geToolbarContainer geSidebarContainer";k.style.cssText="position:absolute;left:"+b+"px;top:"+c+"px;width:"+e+"px;border-radius:10px;padding:4px;text-align:center;box-shadow:0px 0px 3px 1px #d1d1d1;padding: 6px 0 8px 0;z-index: "+
-mxPopupMenu.prototype.zIndex+1+";";d||mxUtils.setPrefixedStyle(k.style,"transform","translate(-22px,-22px)");null!=q.background&&q.background!=mxConstants.NONE&&(k.style.backgroundColor=q.background);q.container.appendChild(k);e=mxUtils.bind(this,function(d){var e=document.createElement("a");e.className="geItem";e.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:3px 0 0 3px;";k.appendChild(e);null!=m&&"1"!=urlParams.sketch?
-this.sidebar.graph.pasteStyle(m,[d]):g.insertHandler([d],""!=d.value&&"1"!=urlParams.sketch,this.sidebar.graph.model);this.sidebar.createThumb([d],25,25,e,null,!0,!1,d.geometry.width,d.geometry.height);mxEvent.addListener(e,"click",function(){var k=q.cloneCell(d);if(null!=f)f(k);else{k.geometry.x=q.snap(Math.round(b/q.view.scale)-q.view.translate.x-d.geometry.width/2);k.geometry.y=q.snap(Math.round(c/q.view.scale)-q.view.translate.y-d.geometry.height/2);q.model.beginUpdate();try{q.addCell(k)}finally{q.model.endUpdate()}q.setSelectionCell(k);
-q.scrollCellToVisible(k);q.startEditingAtCell(k);null!=g.hoverIcons&&g.hoverIcons.update(q.view.getState(k))}null!=l&&l()})});for(n=0;n<(d?Math.min(t.length,4):t.length);n++)e(t[n]);t=k.offsetTop+k.clientHeight-(q.container.scrollTop+q.container.offsetHeight);0<t&&(k.style.top=Math.max(q.container.scrollTop+22,c-t)+"px");t=k.offsetLeft+k.clientWidth-(q.container.scrollLeft+q.container.offsetWidth);0<t&&(k.style.left=Math.max(q.container.scrollLeft+22,b-t)+"px")}return k};
-EditorUi.prototype.getCellsForShapePicker=function(b,c){var e=mxUtils.bind(this,function(b,c,e,t){return this.editor.graph.createVertex(null,null,t||"",0,0,c||120,e||60,b,!1)});return[null!=b?this.editor.graph.cloneCell(b):e("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;",40,20,"Text"),e("whiteSpace=wrap;html=1;"),e("ellipse;whiteSpace=wrap;html=1;"),e("rhombus;whiteSpace=wrap;html=1;",80,80),e("rounded=1;whiteSpace=wrap;html=1;"),
+EditorUi.prototype.createShapePicker=function(b,c,e,f,n,l,q,d){var k=null;if(null!=q&&0<q.length){var g=this,t=this.editor.graph,k=document.createElement("div");n=t.view.getState(e);var m=null==e||null!=n&&t.isTransparentState(n)?null:t.copyStyle(e);e=6>q.length?35*q.length:140;k.className="geToolbarContainer geSidebarContainer";k.style.cssText="position:absolute;left:"+b+"px;top:"+c+"px;width:"+e+"px;border-radius:10px;padding:4px;text-align:center;box-shadow:0px 0px 3px 1px #d1d1d1;padding: 6px 0 8px 0;z-index: "+
+mxPopupMenu.prototype.zIndex+1+";";d||mxUtils.setPrefixedStyle(k.style,"transform","translate(-22px,-22px)");null!=t.background&&t.background!=mxConstants.NONE&&(k.style.backgroundColor=t.background);t.container.appendChild(k);e=mxUtils.bind(this,function(d){var e=document.createElement("a");e.className="geItem";e.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:3px 0 0 3px;";k.appendChild(e);null!=m&&"1"!=urlParams.sketch?
+this.sidebar.graph.pasteStyle(m,[d]):g.insertHandler([d],""!=d.value&&"1"!=urlParams.sketch,this.sidebar.graph.model);this.sidebar.createThumb([d],25,25,e,null,!0,!1,d.geometry.width,d.geometry.height);mxEvent.addListener(e,"click",function(){var k=t.cloneCell(d);if(null!=f)f(k);else{k.geometry.x=t.snap(Math.round(b/t.view.scale)-t.view.translate.x-d.geometry.width/2);k.geometry.y=t.snap(Math.round(c/t.view.scale)-t.view.translate.y-d.geometry.height/2);t.model.beginUpdate();try{t.addCell(k)}finally{t.model.endUpdate()}t.setSelectionCell(k);
+t.scrollCellToVisible(k);t.startEditingAtCell(k);null!=g.hoverIcons&&g.hoverIcons.update(t.view.getState(k))}null!=l&&l()})});for(n=0;n<(d?Math.min(q.length,4):q.length);n++)e(q[n]);q=k.offsetTop+k.clientHeight-(t.container.scrollTop+t.container.offsetHeight);0<q&&(k.style.top=Math.max(t.container.scrollTop+22,c-q)+"px");q=k.offsetLeft+k.clientWidth-(t.container.scrollLeft+t.container.offsetWidth);0<q&&(k.style.left=Math.max(t.container.scrollLeft+22,b-q)+"px")}return k};
+EditorUi.prototype.getCellsForShapePicker=function(b,c){var e=mxUtils.bind(this,function(b,c,e,q){return this.editor.graph.createVertex(null,null,q||"",0,0,c||120,e||60,b,!1)});return[null!=b?this.editor.graph.cloneCell(b):e("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;",40,20,"Text"),e("whiteSpace=wrap;html=1;"),e("ellipse;whiteSpace=wrap;html=1;"),e("rhombus;whiteSpace=wrap;html=1;",80,80),e("rounded=1;whiteSpace=wrap;html=1;"),
e("shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;"),e("shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,60),e("shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;",120,80),e("shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,80),e("shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;"),e("triangle;whiteSpace=wrap;html=1;",60,80),e("shape=document;whiteSpace=wrap;html=1;boundedLbl=1;",
120,80),e("shape=tape;whiteSpace=wrap;html=1;",120,100),e("ellipse;shape=cloud;whiteSpace=wrap;html=1;",120,80),e("shape=singleArrow;whiteSpace=wrap;html=1;arrowWidth=0.4;arrowSize=0.4;",80,60),e("shape=waypoint;sketch=0;size=6;pointerEvents=1;points=[];fillColor=none;resizable=0;rotatable=0;perimeter=centerPerimeter;snapToPoint=1;",40,40)]};
EditorUi.prototype.hideShapePicker=function(b){null!=this.shapePicker&&(this.shapePicker.parentNode.removeChild(this.shapePicker),this.shapePicker=null,b||null==this.shapePickerCallback||this.shapePickerCallback(),this.shapePickerCallback=null)};
@@ -2219,16 +2219,16 @@ EditorUi.prototype.initClipboard=function(){var b=this,c=mxClipboard.cut;mxClipb
null;c.cellEditor.isContentEditing()?document.execCommand("paste",!1,null):f=e.apply(this,arguments);b.updatePasteActionStates();return f};var f=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){f.apply(this,arguments);b.updatePasteActionStates()};var n=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(c,e){n.apply(this,arguments);b.updatePasteActionStates()};this.updatePasteActionStates()};
EditorUi.prototype.lazyZoomDelay=20;EditorUi.prototype.wheelZoomDelay=400;EditorUi.prototype.buttonZoomDelay=600;
EditorUi.prototype.initCanvas=function(){var b=this.editor.graph;b.timerAutoScroll=!0;b.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((b.container.offsetWidth-34)/b.view.scale)),Math.max(0,Math.round((b.container.offsetHeight-34)/b.view.scale)))};b.view.getBackgroundPageBounds=function(){var b=this.graph.getPageLayout(),d=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+b.x*d.width),this.scale*(this.translate.y+b.y*d.height),this.scale*b.width*d.width,
-this.scale*b.height*d.height)};b.getPreferredPageSize=function(b,d,c){b=this.getPageLayout();d=this.getPageSize();return new mxRectangle(0,0,b.width*d.width,b.height*d.height)};var c=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=c=mxUtils.bind(this,function(d,c,g,k){if(null!=b.container&&!b.isViewer()){g=null!=g?g:0;k=null!=k?k:0;var e=b.pageVisible?b.view.getBackgroundPageBounds():b.getGraphBounds(),f=mxUtils.hasScrollbars(b.container),m=b.view.translate,q=b.view.scale,l=mxRectangle.fromRectangle(e);
-l.x=l.x/q-m.x;l.y=l.y/q-m.y;l.width/=q;l.height/=q;var m=b.container.scrollTop,p=b.container.scrollLeft,n=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)n+=3;var u=b.container.offsetWidth-n,n=b.container.offsetHeight-n;d=d?Math.max(.3,Math.min(c||1,u/l.width)):q;c=(u-d*l.width)/2/d;var v=0==this.lightboxVerticalDivider?0:(n-d*l.height)/this.lightboxVerticalDivider/d;f&&(c=Math.max(c,0),v=Math.max(v,0));if(f||e.width<u||e.height<n)b.view.scaleAndTranslate(d,Math.floor(c-
-l.x),Math.floor(v-l.y)),b.container.scrollTop=m*d/q,b.container.scrollLeft=p*d/q;else if(0!=g||0!=k)e=b.view.translate,b.view.setTranslate(Math.floor(e.x+g/q),Math.floor(e.y+k/q))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var f=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",f);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",f)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
+this.scale*b.height*d.height)};b.getPreferredPageSize=function(b,d,c){b=this.getPageLayout();d=this.getPageSize();return new mxRectangle(0,0,b.width*d.width,b.height*d.height)};var c=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=c=mxUtils.bind(this,function(d,c,g,k){if(null!=b.container&&!b.isViewer()){g=null!=g?g:0;k=null!=k?k:0;var e=b.pageVisible?b.view.getBackgroundPageBounds():b.getGraphBounds(),f=mxUtils.hasScrollbars(b.container),m=b.view.translate,t=b.view.scale,l=mxRectangle.fromRectangle(e);
+l.x=l.x/t-m.x;l.y=l.y/t-m.y;l.width/=t;l.height/=t;var m=b.container.scrollTop,p=b.container.scrollLeft,n=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)n+=3;var u=b.container.offsetWidth-n,n=b.container.offsetHeight-n;d=d?Math.max(.3,Math.min(c||1,u/l.width)):t;c=(u-d*l.width)/2/d;var v=0==this.lightboxVerticalDivider?0:(n-d*l.height)/this.lightboxVerticalDivider/d;f&&(c=Math.max(c,0),v=Math.max(v,0));if(f||e.width<u||e.height<n)b.view.scaleAndTranslate(d,Math.floor(c-
+l.x),Math.floor(v-l.y)),b.container.scrollTop=m*d/t,b.container.scrollLeft=p*d/t;else if(0!=g||0!=k)e=b.view.translate,b.view.setTranslate(Math.floor(e.x+g/t),Math.floor(e.y+k/t))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var f=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",f);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",f)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(d){b.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(d){b.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){var n=JSON.parse(decodeURIComponent(urlParams["toolbar-config"]||"{}"));this.chromelessToolbar=document.createElement("div");this.chromelessToolbar.style.position="fixed";this.chromelessToolbar.style.overflow="hidden";this.chromelessToolbar.style.boxSizing=
"border-box";this.chromelessToolbar.style.whiteSpace="nowrap";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left=b.isViewer()?"0":"50%";mxClient.IS_IE||mxClient.IS_IE11?(this.chromelessToolbar.style.backgroundColor="#ffffff",this.chromelessToolbar.style.border="3px solid black"):this.chromelessToolbar.style.backgroundColor="#000000";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","16px");mxUtils.setPrefixedStyle(this.chromelessToolbar.style,
-"transition","opacity 600ms ease-in-out");var l=mxUtils.bind(this,function(){var d=mxUtils.getCurrentStyle(b.container);b.isViewer()?this.chromelessToolbar.style.top="0":this.chromelessToolbar.style.bottom=(null!=d?parseInt(d["margin-bottom"]||0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",l);l();var t=0,l=mxUtils.bind(this,function(b,d,c){t++;var g=document.createElement("span");g.style.paddingLeft="8px";g.style.paddingRight=
+"transition","opacity 600ms ease-in-out");var l=mxUtils.bind(this,function(){var d=mxUtils.getCurrentStyle(b.container);b.isViewer()?this.chromelessToolbar.style.top="0":this.chromelessToolbar.style.bottom=(null!=d?parseInt(d["margin-bottom"]||0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",l);l();var q=0,l=mxUtils.bind(this,function(b,d,c){q++;var g=document.createElement("span");g.style.paddingLeft="8px";g.style.paddingRight=
"8px";g.style.cursor="pointer";mxEvent.addListener(g,"click",b);null!=c&&g.setAttribute("title",c);b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",d);b.style.width="36px";b.style.filter="invert(100%)";g.appendChild(b);this.chromelessToolbar.appendChild(g);return g});null!=n.backBtn&&l(mxUtils.bind(this,function(b){window.location.href=n.backBtn.url;mxEvent.consume(b)}),Editor.backImage,mxResources.get("back",null,"Back"));if(this.isPagesEnabled()){var d=l(mxUtils.bind(this,
function(b){this.actions.get("previousPage").funct();mxEvent.consume(b)}),Editor.previousImage,mxResources.get("previousPage")),k=document.createElement("div");k.style.fontFamily=Editor.defaultHtmlFont;k.style.display="inline-block";k.style.verticalAlign="top";k.style.fontWeight="bold";k.style.marginTop="8px";k.style.fontSize="14px";k.style.color=mxClient.IS_IE||mxClient.IS_IE11?"#000000":"#ffffff";this.chromelessToolbar.appendChild(k);var g=l(mxUtils.bind(this,function(b){this.actions.get("nextPage").funct();
-mxEvent.consume(b)}),Editor.nextImage,mxResources.get("nextPage")),q=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(k.innerHTML="",mxUtils.write(k,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});d.style.paddingLeft="0px";d.style.paddingRight="4px";g.style.paddingLeft="4px";g.style.paddingRight="0px";var m=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(g.style.display="",d.style.display=
-"",k.style.display="inline-block"):(g.style.display="none",d.style.display="none",k.style.display="none");q()});this.editor.addListener("resetGraphView",m);this.editor.addListener("pageSelected",q)}l(mxUtils.bind(this,function(b){this.actions.get("zoomOut").funct();mxEvent.consume(b)}),Editor.zoomOutImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");l(mxUtils.bind(this,function(b){this.actions.get("zoomIn").funct();mxEvent.consume(b)}),Editor.zoomInImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");
+mxEvent.consume(b)}),Editor.nextImage,mxResources.get("nextPage")),t=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(k.innerHTML="",mxUtils.write(k,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});d.style.paddingLeft="0px";d.style.paddingRight="4px";g.style.paddingLeft="4px";g.style.paddingRight="0px";var m=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(g.style.display="",d.style.display=
+"",k.style.display="inline-block"):(g.style.display="none",d.style.display="none",k.style.display="none");t()});this.editor.addListener("resetGraphView",m);this.editor.addListener("pageSelected",t)}l(mxUtils.bind(this,function(b){this.actions.get("zoomOut").funct();mxEvent.consume(b)}),Editor.zoomOutImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");l(mxUtils.bind(this,function(b){this.actions.get("zoomIn").funct();mxEvent.consume(b)}),Editor.zoomInImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");
l(mxUtils.bind(this,function(d){b.isLightboxView()?(1==b.view.scale?this.lightboxFit():b.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(d)}),Editor.zoomFitImage,mxResources.get("fit"));var p=null,v=null,u=mxUtils.bind(this,function(b){null!=p&&(window.clearTimeout(p),p=null);null!=v&&(window.clearTimeout(v),v=null);p=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);p=null;v=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display=
"none";v=null}),600)}),b||200)}),x=mxUtils.bind(this,function(b){null!=p&&(window.clearTimeout(p),p=null);null!=v&&(window.clearTimeout(v),v=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,b||30)});if("1"==urlParams.layers){this.layersDialog=null;var y=l(mxUtils.bind(this,function(d){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=b.createLayersDialog(null,!0);mxEvent.addListener(this.layersDialog,
"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var c=y.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily=Editor.defaultHtmlFont;this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.left=c.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+
@@ -2241,15 +2241,15 @@ mxUtils.bind(this,function(d){b.tooltipHandler.resetTimer();b.tooltipHandler.hid
c.getGraphX();this.startY=c.getGraphY();this.scrollLeft=b.container.scrollLeft;this.scrollTop=b.container.scrollTop},mouseMove:function(b,d){},mouseUp:function(d,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-b.container.scrollLeft)<D&&Math.abs(this.scrollTop-b.container.scrollTop)<D&&Math.abs(this.startX-c.getGraphX())<D&&Math.abs(this.startY-c.getGraphY())<D&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?u():x(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var F=
b.view.validate;b.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var b=this.graph.getPagePadding(),d=this.graph.getPageSize();this.translate.x=b.x-(this.x0||0)*d.width;this.translate.y=b.y-(this.y0||0)*d.height}F.apply(this,arguments)};if(!b.isViewer()){var O=b.sizeDidChange;b.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var d=this.getPageLayout(),c=this.getPagePadding(),g=this.getPageSize(),k=Math.ceil(2*
c.x+d.width*g.width),e=Math.ceil(2*c.y+d.height*g.height),f=b.minimumGraphSize;if(null==f||f.width!=k||f.height!=e)b.minimumGraphSize=new mxRectangle(0,0,k,e);k=c.x-d.x*g.width;c=c.y-d.y*g.height;this.autoTranslate||this.view.translate.x==k&&this.view.translate.y==c?O.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=d.x,this.view.y0=d.y,d=b.view.translate.x,g=b.view.translate.y,b.view.setTranslate(k,c),b.container.scrollLeft+=Math.round((k-d)*b.view.scale),b.container.scrollTop+=Math.round((c-
-g)*b.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var A=b.view.getBackgroundPane(),C=b.view.getDrawPane();b.cumulativeZoomFactor=1;var E=null,L=null,N=null,M=null,Q=null,V=function(d){null!=E&&window.clearTimeout(E);0<=d&&window.setTimeout(function(){if(!b.isMouseDown||M)E=window.setTimeout(mxUtils.bind(this,function(){b.isFastZoomEnabled()&&(null!=b.view.backgroundPageShape&&null!=b.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(b.view.backgroundPageShape.node.style,
+g)*b.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var A=b.view.getBackgroundPane(),C=b.view.getDrawPane();b.cumulativeZoomFactor=1;var E=null,J=null,N=null,M=null,Q=null,V=function(d){null!=E&&window.clearTimeout(E);0<=d&&window.setTimeout(function(){if(!b.isMouseDown||M)E=window.setTimeout(mxUtils.bind(this,function(){b.isFastZoomEnabled()&&(null!=b.view.backgroundPageShape&&null!=b.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(b.view.backgroundPageShape.node.style,
"transform-origin",null),mxUtils.setPrefixedStyle(b.view.backgroundPageShape.node.style,"transform",null)),C.style.transformOrigin="",A.style.transformOrigin="",mxClient.IS_SF?(C.style.transform="scale(1)",A.style.transform="scale(1)",window.setTimeout(function(){C.style.transform="";A.style.transform=""},0)):(C.style.transform="",A.style.transform=""),b.view.getDecoratorPane().style.opacity="",b.view.getOverlayPane().style.opacity="");var d=new mxPoint(b.container.scrollLeft,b.container.scrollTop),
-g=mxUtils.getOffset(b.container),k=b.view.scale,f=0,m=0;null!=L&&(f=b.container.offsetWidth/2-L.x+g.x,m=b.container.offsetHeight/2-L.y+g.y);b.zoom(b.cumulativeZoomFactor,null,b.isFastZoomEnabled()?20:null);b.view.scale!=k&&(null!=N&&(f+=d.x-N.x,m+=d.y-N.y),null!=c&&e.chromelessResize(!1,null,f*(b.cumulativeZoomFactor-1),m*(b.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(b.container)||0==f&&0==m||(b.container.scrollLeft-=f*(b.cumulativeZoomFactor-1),b.container.scrollTop-=m*(b.cumulativeZoomFactor-
-1)));null!=Q&&C.setAttribute("filter",Q);b.cumulativeZoomFactor=1;Q=M=L=N=E=null}),null!=d?d:b.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)};b.lazyZoom=function(d,c,g,k){k=null!=k?k:this.zoomFactor;(c=c||!b.scrollbars)&&(L=new mxPoint(b.container.offsetLeft+b.container.clientWidth/2,b.container.offsetTop+b.container.clientHeight/2));d?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=k,this.cumulativeZoomFactor=
+g=mxUtils.getOffset(b.container),k=b.view.scale,f=0,t=0;null!=J&&(f=b.container.offsetWidth/2-J.x+g.x,t=b.container.offsetHeight/2-J.y+g.y);b.zoom(b.cumulativeZoomFactor,null,b.isFastZoomEnabled()?20:null);b.view.scale!=k&&(null!=N&&(f+=d.x-N.x,t+=d.y-N.y),null!=c&&e.chromelessResize(!1,null,f*(b.cumulativeZoomFactor-1),t*(b.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(b.container)||0==f&&0==t||(b.container.scrollLeft-=f*(b.cumulativeZoomFactor-1),b.container.scrollTop-=t*(b.cumulativeZoomFactor-
+1)));null!=Q&&C.setAttribute("filter",Q);b.cumulativeZoomFactor=1;Q=M=J=N=E=null}),null!=d?d:b.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)};b.lazyZoom=function(d,c,g,k){k=null!=k?k:this.zoomFactor;(c=c||!b.scrollbars)&&(J=new mxPoint(b.container.offsetLeft+b.container.clientWidth/2,b.container.offsetTop+b.container.clientHeight/2));d?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=k,this.cumulativeZoomFactor=
Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=k,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,160))/this.view.scale;b.isFastZoomEnabled()&&(null==Q&&""!=C.getAttribute("filter")&&
-(Q=C.getAttribute("filter"),C.removeAttribute("filter")),N=new mxPoint(b.container.scrollLeft,b.container.scrollTop),d=c||null==L?b.container.scrollLeft+b.container.clientWidth/2:L.x+b.container.scrollLeft-b.container.offsetLeft,k=c||null==L?b.container.scrollTop+b.container.clientHeight/2:L.y+b.container.scrollTop-b.container.offsetTop,C.style.transformOrigin=d+"px "+k+"px",C.style.transform="scale("+this.cumulativeZoomFactor+")",A.style.transformOrigin=d+"px "+k+"px",A.style.transform="scale("+
-this.cumulativeZoomFactor+")",null!=b.view.backgroundPageShape&&null!=b.view.backgroundPageShape.node&&(d=b.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(d.style,"transform-origin",(c||null==L?b.container.clientWidth/2+b.container.scrollLeft-d.offsetLeft+"px":L.x+b.container.scrollLeft-d.offsetLeft-b.container.offsetLeft+"px")+" "+(c||null==L?b.container.clientHeight/2+b.container.scrollTop-d.offsetTop+"px":L.y+b.container.scrollTop-d.offsetTop-b.container.offsetTop+"px")),mxUtils.setPrefixedStyle(d.style,
+(Q=C.getAttribute("filter"),C.removeAttribute("filter")),N=new mxPoint(b.container.scrollLeft,b.container.scrollTop),d=c||null==J?b.container.scrollLeft+b.container.clientWidth/2:J.x+b.container.scrollLeft-b.container.offsetLeft,k=c||null==J?b.container.scrollTop+b.container.clientHeight/2:J.y+b.container.scrollTop-b.container.offsetTop,C.style.transformOrigin=d+"px "+k+"px",C.style.transform="scale("+this.cumulativeZoomFactor+")",A.style.transformOrigin=d+"px "+k+"px",A.style.transform="scale("+
+this.cumulativeZoomFactor+")",null!=b.view.backgroundPageShape&&null!=b.view.backgroundPageShape.node&&(d=b.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(d.style,"transform-origin",(c||null==J?b.container.clientWidth/2+b.container.scrollLeft-d.offsetLeft+"px":J.x+b.container.scrollLeft-d.offsetLeft-b.container.offsetLeft+"px")+" "+(c||null==J?b.container.clientHeight/2+b.container.scrollTop-d.offsetTop+"px":J.y+b.container.scrollTop-d.offsetTop-b.container.offsetTop+"px")),mxUtils.setPrefixedStyle(d.style,
"transform","scale("+this.cumulativeZoomFactor+")")),b.view.getDecoratorPane().style.opacity="0",b.view.getOverlayPane().style.opacity="0",null!=e.hoverIcons&&e.hoverIcons.reset());V(b.isFastZoomEnabled()?g:0)};mxEvent.addGestureListeners(b.container,function(b){null!=E&&window.clearTimeout(E)},null,function(d){1!=b.cumulativeZoomFactor&&V(0)});mxEvent.addListener(b.container,"scroll",function(d){null==E||b.isMouseDown||1==b.cumulativeZoomFactor||V(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,
-function(d,c,g,k,e){b.fireEvent(new mxEventObject("wheel"));if(null==this.dialogs||0==this.dialogs.length)if(!b.scrollbars&&!g&&b.isScrollWheelEvent(d))g=b.view.getTranslate(),k=40/b.view.scale,mxEvent.isShiftDown(d)?b.view.setTranslate(g.x+(c?-k:k),g.y):b.view.setTranslate(g.x,g.y+(c?k:-k));else if(g||b.isZoomWheelEvent(d))for(var f=mxEvent.getSource(d);null!=f;){if(f==b.container)return b.tooltipHandler.hideTooltip(),L=null!=k&&null!=e?new mxPoint(k,e):new mxPoint(mxEvent.getClientX(d),mxEvent.getClientY(d)),
+function(d,c,g,k,e){b.fireEvent(new mxEventObject("wheel"));if(null==this.dialogs||0==this.dialogs.length)if(!b.scrollbars&&!g&&b.isScrollWheelEvent(d))g=b.view.getTranslate(),k=40/b.view.scale,mxEvent.isShiftDown(d)?b.view.setTranslate(g.x+(c?-k:k),g.y):b.view.setTranslate(g.x,g.y+(c?k:-k));else if(g||b.isZoomWheelEvent(d))for(var f=mxEvent.getSource(d);null!=f;){if(f==b.container)return b.tooltipHandler.hideTooltip(),J=null!=k&&null!=e?new mxPoint(k,e):new mxPoint(mxEvent.getClientX(d),mxEvent.getClientY(d)),
M=g,g=b.zoomFactor,k=null,d.ctrlKey&&null!=d.deltaY&&40>Math.abs(d.deltaY)&&Math.round(d.deltaY)!=d.deltaY?g=1+Math.abs(d.deltaY)/20*(g-1):null!=d.movementY&&"pointermove"==d.type&&(g=1+Math.max(1,Math.abs(d.movementY))/20*(g-1),k=-1),b.lazyZoom(c,null,k,g),mxEvent.consume(d),!1;f=f.parentNode}}),b.container);b.panningHandler.zoomGraph=function(d){b.cumulativeZoomFactor=d.scale;b.lazyZoom(0<d.scale,!0);mxEvent.consume(d)}};
EditorUi.prototype.addChromelessToolbarItems=function(b){b(mxUtils.bind(this,function(b){this.actions.get("print").funct();mxEvent.consume(b)}),Editor.printImage,mxResources.get("print"))};EditorUi.prototype.isPagesEnabled=function(){return this.editor.editable||"1"!=urlParams["hide-pages"]};EditorUi.prototype.createTemporaryGraph=function(b){return Graph.createOffscreenGraph(b)};EditorUi.prototype.addChromelessClickHandler=function(){var b=urlParams.highlight;null!=b&&0<b.length&&(b="#"+b);this.editor.graph.addClickHandler(b)};
EditorUi.prototype.toggleFormatPanel=function(b){b=null!=b?b:0==this.formatWidth;null!=this.format&&(this.formatWidth=b?240:0,this.formatContainer.style.display=b?"":"none",this.refresh(),this.format.refresh(),this.fireEvent(new mxEventObject("formatWidthChanged")))};
@@ -2283,10 +2283,10 @@ this.actions.get("exitGroup").setEnabled(null!=b.view.currentRoot);this.actions.
this.actions.get("selectAll").setEnabled(e);this.actions.get("selectNone").setEnabled(e);f=1==c.vertices.length&&b.isCellFoldable(c.vertices[0]);this.actions.get("expand").setEnabled(f);this.actions.get("collapse").setEnabled(f);this.menus.get("navigation").setEnabled(0<c.cells.length||null!=b.view.currentRoot);this.menus.get("layout").setEnabled(e);this.menus.get("insert").setEnabled(e);this.menus.get("direction").setEnabled(c.unlocked&&1==c.vertices.length);this.menus.get("distribute").setEnabled(c.unlocked&&
1<c.vertices.length);this.menus.get("align").setEnabled(c.unlocked&&0<c.cells.length);this.updatePasteActionStates()};EditorUi.prototype.zeroOffset=new mxPoint(0,0);EditorUi.prototype.getDiagramContainerOffset=function(){return this.zeroOffset};
EditorUi.prototype.refresh=function(b){b=null!=b?b:!0;var c=this.container.clientWidth,e=this.container.clientHeight;this.container==document.body&&(c=document.body.clientWidth||document.documentElement.clientWidth,e=document.documentElement.clientHeight);var f=0;mxClient.IS_IOS&&!window.navigator.standalone&&"undefined"!==typeof Menus&&window.innerHeight!=document.documentElement.clientHeight&&(f=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));var n=Math.max(0,Math.min(this.hsplitPosition,
-c-this.splitSize-20)),c=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",c+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",c+=this.toolbarHeight);0<c&&(c+=1);var l=0;if(null!=this.sidebarFooterContainer){var t=this.footerHeight+f,l=Math.max(0,Math.min(e-c-t,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=n+"px";this.sidebarFooterContainer.style.height=
-l+"px";this.sidebarFooterContainer.style.bottom=t+"px"}e=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=c+"px";this.sidebarContainer.style.width=n+"px";this.formatContainer.style.top=c+"px";this.formatContainer.style.width=e+"px";this.formatContainer.style.display=null!=this.format?"":"none";var t=this.getDiagramContainerOffset(),d=null!=this.hsplit.parentNode?n+this.splitSize:0;this.footerContainer.style.height=this.footerHeight+"px";this.hsplit.style.top=this.sidebarContainer.style.top;
+c-this.splitSize-20)),c=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",c+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",c+=this.toolbarHeight);0<c&&(c+=1);var l=0;if(null!=this.sidebarFooterContainer){var q=this.footerHeight+f,l=Math.max(0,Math.min(e-c-q,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=n+"px";this.sidebarFooterContainer.style.height=
+l+"px";this.sidebarFooterContainer.style.bottom=q+"px"}e=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=c+"px";this.sidebarContainer.style.width=n+"px";this.formatContainer.style.top=c+"px";this.formatContainer.style.width=e+"px";this.formatContainer.style.display=null!=this.format?"":"none";var q=this.getDiagramContainerOffset(),d=null!=this.hsplit.parentNode?n+this.splitSize:0;this.footerContainer.style.height=this.footerHeight+"px";this.hsplit.style.top=this.sidebarContainer.style.top;
this.hsplit.style.bottom=this.footerHeight+f+"px";this.hsplit.style.left=n+"px";this.footerContainer.style.display=0==this.footerHeight?"none":"";null!=this.tabContainer&&(this.tabContainer.style.left=d+"px");0<this.footerHeight&&(this.footerContainer.style.bottom=f+"px");n=0;null!=this.tabContainer&&(this.tabContainer.style.bottom=this.footerHeight+f+"px",this.tabContainer.style.right=this.diagramContainer.style.right,n=this.tabContainer.clientHeight);this.sidebarContainer.style.bottom=this.footerHeight+
-l+f+"px";this.formatContainer.style.bottom=this.footerHeight+f+"px";"1"!=urlParams.embedInline&&(this.diagramContainer.style.left=d+t.x+"px",this.diagramContainer.style.top=c+t.y+"px",this.diagramContainer.style.right=e+"px",this.diagramContainer.style.bottom=this.footerHeight+f+n+"px");b&&this.editor.graph.sizeDidChange()};EditorUi.prototype.createTabContainer=function(){return null};
+l+f+"px";this.formatContainer.style.bottom=this.footerHeight+f+"px";"1"!=urlParams.embedInline&&(this.diagramContainer.style.left=d+q.x+"px",this.diagramContainer.style.top=c+q.y+"px",this.diagramContainer.style.right=e+"px",this.diagramContainer.style.bottom=this.footerHeight+f+n+"px");b&&this.editor.graph.sizeDidChange()};EditorUi.prototype.createTabContainer=function(){return null};
EditorUi.prototype.createDivs=function(){this.menubarContainer=this.createDiv("geMenubarContainer");this.toolbarContainer=this.createDiv("geToolbarContainer");this.sidebarContainer=this.createDiv("geSidebarContainer");this.formatContainer=this.createDiv("geSidebarContainer geFormatContainer");this.diagramContainer=this.createDiv("geDiagramContainer");this.footerContainer=this.createDiv("geFooterContainer");this.hsplit=this.createDiv("geHsplit");this.hsplit.setAttribute("title",mxResources.get("collapseExpand"));
this.menubarContainer.style.top="0px";this.menubarContainer.style.left="0px";this.menubarContainer.style.right="0px";this.toolbarContainer.style.left="0px";this.toolbarContainer.style.right="0px";this.sidebarContainer.style.left="0px";this.formatContainer.style.right="0px";this.formatContainer.style.zIndex="1";this.diagramContainer.style.right=(null!=this.format?this.formatWidth:0)+"px";this.footerContainer.style.left="0px";this.footerContainer.style.right="0px";this.footerContainer.style.bottom=
"0px";this.footerContainer.style.zIndex=mxPopupMenu.prototype.zIndex-3;this.hsplit.style.width=this.splitSize+"px";if(this.sidebarFooterContainer=this.createSidebarFooterContainer())this.sidebarFooterContainer.style.left="0px";this.editor.chromeless?this.diagramContainer.style.border="none":this.tabContainer=this.createTabContainer()};EditorUi.prototype.createSidebarFooterContainer=function(){return null};
@@ -2295,18 +2295,18 @@ this.sidebar=this.editor.chromeless?null:this.createSidebar(this.sidebarContaine
this.container.appendChild(this.sidebarFooterContainer);this.container.appendChild(this.diagramContainer);null!=this.container&&null!=this.tabContainer&&this.container.appendChild(this.tabContainer);this.toolbar=this.editor.chromeless?null:this.createToolbar(this.createDiv("geToolbar"));null!=this.toolbar&&(this.toolbarContainer.appendChild(this.toolbar.container),this.container.appendChild(this.toolbarContainer));null!=this.sidebar&&(this.container.appendChild(this.hsplit),this.addSplitHandler(this.hsplit,
!0,0,mxUtils.bind(this,function(b){this.hsplitPosition=b;this.refresh()})))};EditorUi.prototype.createStatusContainer=function(){var b=document.createElement("a");b.className="geItem geStatus";return b};EditorUi.prototype.setStatusText=function(b){this.statusContainer.innerHTML=b};EditorUi.prototype.createToolbar=function(b){return new Toolbar(this,b)};EditorUi.prototype.createSidebar=function(b){return new Sidebar(this,b)};EditorUi.prototype.createFormat=function(b){return new Format(this,b)};
EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")};EditorUi.prototype.createDiv=function(b){var c=document.createElement("div");c.className=b;return c};
-EditorUi.prototype.addSplitHandler=function(b,c,e,f){function n(b){if(null!=t){var m=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b));f(Math.max(0,d+(c?m.x-t.x:t.y-m.y)-e));mxEvent.consume(b);d!=q()&&(k=!0,g=null)}}function l(b){n(b);t=d=null}var t=null,d=null,k=!0,g=null;mxClient.IS_POINTER&&(b.style.touchAction="none");var q=mxUtils.bind(this,function(){var d=parseInt(c?b.style.left:b.style.bottom);c||(d=d+e-this.footerHeight);return d});mxEvent.addGestureListeners(b,function(b){t=new mxPoint(mxEvent.getClientX(b),
-mxEvent.getClientY(b));d=q();k=!1;mxEvent.consume(b)});mxEvent.addListener(b,"click",mxUtils.bind(this,function(b){if(!k&&this.hsplitClickEnabled){var d=null!=g?g-e:0;g=q();f(d);mxEvent.consume(b)}}));mxEvent.addGestureListeners(document,null,n,l);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,n,l)})};
+EditorUi.prototype.addSplitHandler=function(b,c,e,f){function n(b){if(null!=q){var m=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b));f(Math.max(0,d+(c?m.x-q.x:q.y-m.y)-e));mxEvent.consume(b);d!=t()&&(k=!0,g=null)}}function l(b){n(b);q=d=null}var q=null,d=null,k=!0,g=null;mxClient.IS_POINTER&&(b.style.touchAction="none");var t=mxUtils.bind(this,function(){var d=parseInt(c?b.style.left:b.style.bottom);c||(d=d+e-this.footerHeight);return d});mxEvent.addGestureListeners(b,function(b){q=new mxPoint(mxEvent.getClientX(b),
+mxEvent.getClientY(b));d=t();k=!1;mxEvent.consume(b)});mxEvent.addListener(b,"click",mxUtils.bind(this,function(b){if(!k&&this.hsplitClickEnabled){var d=null!=g?g-e:0;g=t();f(d);mxEvent.consume(b)}}));mxEvent.addGestureListeners(document,null,n,l);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,n,l)})};
EditorUi.prototype.handleError=function(b,c,e,f,n){b=null!=b&&null!=b.error?b.error:b;if(null!=b||null!=c){n=mxUtils.htmlEntities(mxResources.get("unknownError"));var l=mxResources.get("ok");c=null!=c?c:mxResources.get("error");null!=b&&null!=b.message&&(n=mxUtils.htmlEntities(b.message));this.showError(c,n,l,e,null,null,null,null,null,null,null,null,f?e:null)}else null!=e&&e()};
-EditorUi.prototype.showError=function(b,c,e,f,n,l,t,d,k,g,q,m,p){b=new ErrorDialog(this,b,c,e||mxResources.get("ok"),f,n,l,t,m,d,k);c=Math.ceil(null!=c?c.length/50:1);this.showDialog(b.container,g||340,q||100+20*c,!0,!1,p);b.init()};EditorUi.prototype.showDialog=function(b,c,e,f,n,l,t,d,k,g){this.editor.graph.tooltipHandler.resetTimer();this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,b,c,e,f,n,l,t,d,k,g);this.dialogs.push(this.dialog)};
+EditorUi.prototype.showError=function(b,c,e,f,n,l,q,d,k,g,t,m,p){b=new ErrorDialog(this,b,c,e||mxResources.get("ok"),f,n,l,q,m,d,k);c=Math.ceil(null!=c?c.length/50:1);this.showDialog(b.container,g||340,t||100+20*c,!0,!1,p);b.init()};EditorUi.prototype.showDialog=function(b,c,e,f,n,l,q,d,k,g){this.editor.graph.tooltipHandler.resetTimer();this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,b,c,e,f,n,l,q,d,k,g);this.dialogs.push(this.dialog)};
EditorUi.prototype.hideDialog=function(b,c,e){null!=this.dialogs&&0<this.dialogs.length&&(null==e||e==this.dialog.container.firstChild)&&(e=this.dialogs.pop(),0==e.close(b,c)?this.dialogs.push(e):(this.dialog=0<this.dialogs.length?this.dialogs[this.dialogs.length-1]:null,this.editor.fireEvent(new mxEventObject("hideDialog")),null==this.dialog&&"hidden"!=this.editor.graph.container.style.visibility&&window.setTimeout(mxUtils.bind(this,function(){this.editor.graph.isEditing()&&null!=this.editor.graph.cellEditor.textarea?
-this.editor.graph.cellEditor.textarea.focus():(mxUtils.clearSelection(),this.editor.graph.container.focus())}),0)))};EditorUi.prototype.ctrlEnter=function(){var b=this.editor.graph;if(b.isEnabled())try{for(var c=b.getSelectionCells(),e=new mxDictionary,f=[],n=0;n<c.length;n++){var l=b.isTableCell(c[n])?b.model.getParent(c[n]):c[n];null==l||e.get(l)||(e.put(l,!0),f.push(l))}b.setSelectionCells(b.duplicateCells(f,!1))}catch(t){this.handleError(t)}};
+this.editor.graph.cellEditor.textarea.focus():(mxUtils.clearSelection(),this.editor.graph.container.focus())}),0)))};EditorUi.prototype.ctrlEnter=function(){var b=this.editor.graph;if(b.isEnabled())try{for(var c=b.getSelectionCells(),e=new mxDictionary,f=[],n=0;n<c.length;n++){var l=b.isTableCell(c[n])?b.model.getParent(c[n]):c[n];null==l||e.get(l)||(e.put(l,!0),f.push(l))}b.setSelectionCells(b.duplicateCells(f,!1))}catch(q){this.handleError(q)}};
EditorUi.prototype.pickColor=function(b,c){var e=this.editor.graph,f=e.cellEditor.saveSelection(),n=230+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12)),l=new ColorDialog(this,mxUtils.rgba2hex(b)||"none",function(b){e.cellEditor.restoreSelection(f);c(b)},function(){e.cellEditor.restoreSelection(f)});this.showDialog(l.container,230,n,!0,!1);l.init()};
EditorUi.prototype.openFile=function(){window.openFile=new OpenFile(mxUtils.bind(this,function(b){this.hideDialog(b)}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:320,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null})};
EditorUi.prototype.extractGraphModelFromHtml=function(b){var c=null;try{var e=b.indexOf("&lt;mxGraphModel ");if(0<=e){var f=b.lastIndexOf("&lt;/mxGraphModel&gt;");f>e&&(c=b.substring(e,f+21).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}}catch(n){}return c};
EditorUi.prototype.readGraphModelFromClipboard=function(b){this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(c){null!=c?b(c):this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(c){if(null!=c){var e=decodeURIComponent(c);this.isCompatibleString(e)&&(c=e)}b(c)}),"text")}),"html")};
EditorUi.prototype.readGraphModelFromClipboardWithType=function(b,c){navigator.clipboard.read().then(mxUtils.bind(this,function(e){if(null!=e&&0<e.length&&"html"==c&&0<=mxUtils.indexOf(e[0].types,"text/html"))e[0].getType("text/html").then(mxUtils.bind(this,function(c){c.text().then(mxUtils.bind(this,function(c){try{var e=this.parseHtmlData(c),f="text/plain"!=e.getAttribute("data-type")?e.innerHTML:mxUtils.trim(null==e.innerText?mxUtils.getTextContent(e):e.innerText);try{var d=f.lastIndexOf("%3E");
-0<=d&&d<f.length-3&&(f=f.substring(0,d+3))}catch(q){}try{var k=e.getElementsByTagName("span"),g=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(f);this.isCompatibleString(g)&&(f=g)}catch(q){}}catch(q){}b(this.isCompatibleString(f)?f:null)}))["catch"](function(c){b(null)})}))["catch"](function(c){b(null)});else if(null!=e&&0<e.length&&"text"==c&&0<=mxUtils.indexOf(e[0].types,"text/plain"))e[0].getType("text/plain").then(function(c){c.text().then(function(c){b(c)})["catch"](function(){b(null)})})["catch"](function(){b(null)});
+0<=d&&d<f.length-3&&(f=f.substring(0,d+3))}catch(t){}try{var k=e.getElementsByTagName("span"),g=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(f);this.isCompatibleString(g)&&(f=g)}catch(t){}}catch(t){}b(this.isCompatibleString(f)?f:null)}))["catch"](function(c){b(null)})}))["catch"](function(c){b(null)});else if(null!=e&&0<e.length&&"text"==c&&0<=mxUtils.indexOf(e[0].types,"text/plain"))e[0].getType("text/plain").then(function(c){c.text().then(function(c){b(c)})["catch"](function(){b(null)})})["catch"](function(){b(null)});
else b(null)}))["catch"](function(c){b(null)})};
EditorUi.prototype.parseHtmlData=function(b){var c=null;if(null!=b&&0<b.length){var e="<meta "==b.substring(0,6),c=document.createElement("div");c.innerHTML=(e?'<meta charset="utf-8">':"")+this.editor.graph.sanitizeHtml(b);asHtml=!0;b=c.getElementsByTagName("style");if(null!=b)for(;0<b.length;)b[0].parentNode.removeChild(b[0]);null!=c.firstChild&&c.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=c.firstChild.nextSibling&&c.firstChild.nextSibling.nodeType==mxConstants.NODETYPE_ELEMENT&&"META"==
c.firstChild.nodeName&&"A"==c.firstChild.nextSibling.nodeName&&null==c.firstChild.nextSibling.nextSibling&&(b=null==c.firstChild.nextSibling.innerText?mxUtils.getTextContent(c.firstChild.nextSibling):c.firstChild.nextSibling.innerText,b==c.firstChild.nextSibling.getAttribute("href")&&(mxUtils.setTextContent(c,b),asHtml=!1));e=e&&null!=c.firstChild?c.firstChild.nextSibling:c.firstChild;null!=e&&null==e.nextSibling&&e.nodeType==mxConstants.NODETYPE_ELEMENT&&"IMG"==e.nodeName?(b=e.getAttribute("src"),
@@ -2316,18 +2316,18 @@ EditorUi.prototype.extractGraphModelFromEvent=function(b){var c=null,e=null;null
EditorUi.prototype.save=function(b){if(null!=b){this.editor.graph.isEditing()&&this.editor.graph.stopEditing();var c=mxUtils.getXml(this.editor.getGraphXml());try{if(Editor.useLocalStorage){if(null!=localStorage.getItem(b)&&!mxUtils.confirm(mxResources.get("replaceIt",[b])))return;localStorage.setItem(b,c);this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saved"))+" "+new Date)}else if(c.length<MAX_REQUEST_SIZE)(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(b)+"&xml="+encodeURIComponent(c))).simulate(document,
"_blank");else{mxUtils.alert(mxResources.get("drawingTooLarge"));mxUtils.popup(c);return}this.editor.setModified(!1);this.editor.setFilename(b);this.updateDocumentTitle()}catch(e){this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("errorSavingFile")))}}};
EditorUi.prototype.executeLayout=function(b,c,e){var f=this.editor.graph;if(f.isEnabled()){f.getModel().beginUpdate();try{b()}catch(n){throw n;}finally{this.allowAnimation&&c&&(null==navigator.userAgent||0>navigator.userAgent.indexOf("Camino"))?(b=new mxMorphing(f),b.addListener(mxEvent.DONE,mxUtils.bind(this,function(){f.getModel().endUpdate();null!=e&&e()})),b.startAnimation()):(f.getModel().endUpdate(),null!=e&&e())}}};
-EditorUi.prototype.showImageDialog=function(b,c,e,f){f=this.editor.graph.cellEditor;var n=f.saveSelection(),l=mxUtils.prompt(b,c);f.restoreSelection(n);if(null!=l&&0<l.length){var t=new Image;t.onload=function(){e(l,t.width,t.height)};t.onerror=function(){e(null);mxUtils.alert(mxResources.get("fileNotFound"))};t.src=l}else e(null)};EditorUi.prototype.showLinkDialog=function(b,c,e){b=new LinkDialog(this,b,c,e);this.showDialog(b.container,420,90,!0,!0);b.init()};
+EditorUi.prototype.showImageDialog=function(b,c,e,f){f=this.editor.graph.cellEditor;var n=f.saveSelection(),l=mxUtils.prompt(b,c);f.restoreSelection(n);if(null!=l&&0<l.length){var q=new Image;q.onload=function(){e(l,q.width,q.height)};q.onerror=function(){e(null);mxUtils.alert(mxResources.get("fileNotFound"))};q.src=l}else e(null)};EditorUi.prototype.showLinkDialog=function(b,c,e){b=new LinkDialog(this,b,c,e);this.showDialog(b.container,420,90,!0,!0);b.init()};
EditorUi.prototype.showDataDialog=function(b){null!=b&&(b=new EditDataDialog(this,b),this.showDialog(b.container,480,420,!0,!1,null,!1),b.init())};
EditorUi.prototype.showBackgroundImageDialog=function(b,c){b=null!=b?b:mxUtils.bind(this,function(b){b=new ChangePageSetup(this,null,b);b.ignoreColor=!0;this.editor.graph.model.execute(b)});var e=mxUtils.prompt(mxResources.get("backgroundImage"),null!=c?c.src:"");null!=e&&0<e.length?(c=new Image,c.onload=function(){b(new mxImage(e,c.width,c.height),!1)},c.onerror=function(){b(null,!0);mxUtils.alert(mxResources.get("fileNotFound"))},c.src=e):b(null)};
EditorUi.prototype.setBackgroundImage=function(b){this.editor.graph.setBackgroundImage(b);this.editor.graph.view.validateBackgroundImage();this.fireEvent(new mxEventObject("backgroundImageChanged"))};EditorUi.prototype.confirm=function(b,c,e){mxUtils.confirm(b)?null!=c&&c():null!=e&&e()};EditorUi.prototype.createOutline=function(b){var c=new mxOutline(this.editor.graph);mxEvent.addListener(window,"resize",function(){c.update(!1)});return c};
EditorUi.prototype.altShiftActions={67:"clearWaypoints",65:"connectionArrows",76:"editLink",80:"connectionPoints",84:"editTooltip",86:"pasteSize",88:"copySize",66:"copyData",69:"pasteData"};
EditorUi.prototype.createKeyHandler=function(b){function c(b,d,c){if(!f.isSelectionEmpty()&&f.isEnabled())if(d=null!=d?d:1,c){f.getModel().beginUpdate();try{var g=f.getSelectionCells();for(c=0;c<g.length;c++)if(f.getModel().isVertex(g[c])&&f.isCellResizable(g[c])){var k=f.getCellGeometry(g[c]);null!=k&&(k=k.clone(),37==b?k.width=Math.max(0,k.width-d):38==b?k.height=Math.max(0,k.height-d):39==b?k.width+=d:40==b&&(k.height+=d),f.getModel().setGeometry(g[c],k))}}finally{f.getModel().endUpdate()}}else{var g=
-f.getSelectionCell(),k=f.model.getParent(g),e=f.getView().scale;c=null;1==f.getSelectionCount()&&f.model.isVertex(g)&&null!=f.layoutManager&&!f.isCellLocked(g)&&(c=f.layoutManager.getLayout(k));if(null!=c&&c.constructor==mxStackLayout)d=k.getIndex(g),37==b||38==b?f.model.add(k,g,Math.max(0,d-1)):39!=b&&40!=b||f.model.add(k,g,Math.min(f.model.getChildCount(k),d+1));else{var q=f.graphHandler;null!=q&&(null==q.first&&q.start(f.getSelectionCell(),0,0,f.getSelectionCells()),null!=q.first&&(k=g=0,37==b?
-g=-d:38==b?k=-d:39==b?g=d:40==b&&(k=d),q.currentDx+=g*e,q.currentDy+=k*e,q.checkPreview(),q.updatePreview()),null!=t&&window.clearTimeout(t),t=window.setTimeout(function(){if(null!=q.first){var b=q.roundLength(q.currentDx/e),d=q.roundLength(q.currentDy/e);q.moveCells(q.cells,b,d);q.reset()}},400))}}}var e=this,f=this.editor.graph,n=new mxKeyHandler(f),l=n.isEventIgnored;n.isEventIgnored=function(b){return!(mxEvent.isShiftDown(b)&&9==b.keyCode)&&(!this.isControlDown(b)||mxEvent.isShiftDown(b)||90!=
-b.keyCode&&89!=b.keyCode&&188!=b.keyCode&&190!=b.keyCode&&85!=b.keyCode)&&(66!=b.keyCode&&73!=b.keyCode||!this.isControlDown(b)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&!mxClient.IS_SF)&&l.apply(this,arguments)};n.isEnabledForEvent=function(b){return!mxEvent.isConsumed(b)&&this.isGraphEvent(b)&&this.isEnabled()&&(null==e.dialogs||0==e.dialogs.length)};n.isControlDown=function(b){return mxEvent.isControlDown(b)||mxClient.IS_MAC&&b.metaKey};var t=null,d={37:mxConstants.DIRECTION_WEST,
+f.getSelectionCell(),k=f.model.getParent(g),e=f.getView().scale;c=null;1==f.getSelectionCount()&&f.model.isVertex(g)&&null!=f.layoutManager&&!f.isCellLocked(g)&&(c=f.layoutManager.getLayout(k));if(null!=c&&c.constructor==mxStackLayout)d=k.getIndex(g),37==b||38==b?f.model.add(k,g,Math.max(0,d-1)):39!=b&&40!=b||f.model.add(k,g,Math.min(f.model.getChildCount(k),d+1));else{var t=f.graphHandler;null!=t&&(null==t.first&&t.start(f.getSelectionCell(),0,0,f.getSelectionCells()),null!=t.first&&(k=g=0,37==b?
+g=-d:38==b?k=-d:39==b?g=d:40==b&&(k=d),t.currentDx+=g*e,t.currentDy+=k*e,t.checkPreview(),t.updatePreview()),null!=q&&window.clearTimeout(q),q=window.setTimeout(function(){if(null!=t.first){var b=t.roundLength(t.currentDx/e),d=t.roundLength(t.currentDy/e);t.moveCells(t.cells,b,d);t.reset()}},400))}}}var e=this,f=this.editor.graph,n=new mxKeyHandler(f),l=n.isEventIgnored;n.isEventIgnored=function(b){return!(mxEvent.isShiftDown(b)&&9==b.keyCode)&&(!this.isControlDown(b)||mxEvent.isShiftDown(b)||90!=
+b.keyCode&&89!=b.keyCode&&188!=b.keyCode&&190!=b.keyCode&&85!=b.keyCode)&&(66!=b.keyCode&&73!=b.keyCode||!this.isControlDown(b)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&!mxClient.IS_SF)&&l.apply(this,arguments)};n.isEnabledForEvent=function(b){return!mxEvent.isConsumed(b)&&this.isGraphEvent(b)&&this.isEnabled()&&(null==e.dialogs||0==e.dialogs.length)};n.isControlDown=function(b){return mxEvent.isControlDown(b)||mxClient.IS_MAC&&b.metaKey};var q=null,d={37:mxConstants.DIRECTION_WEST,
38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},k=n.getFunction;mxKeyHandler.prototype.getFunction=function(b){if(f.isEnabled()){if(mxEvent.isShiftDown(b)&&mxEvent.isAltDown(b)){var g=e.actions.get(e.altShiftActions[b.keyCode]);if(null!=g)return g.funct}if(null!=d[b.keyCode]&&!f.isSelectionEmpty())if(!this.isControlDown(b)&&mxEvent.isShiftDown(b)&&mxEvent.isAltDown(b)){if(f.model.isVertex(f.getSelectionCell()))return function(){var c=f.connectVertex(f.getSelectionCell(),
d[b.keyCode],f.defaultEdgeLength,b,!0);null!=c&&0<c.length&&(1==c.length&&f.model.isEdge(c[0])?f.setSelectionCell(f.model.getTerminal(c[0],!1)):f.setSelectionCell(c[c.length-1]),f.scrollCellToVisible(f.getSelectionCell()),null!=e.hoverIcons&&e.hoverIcons.update(f.view.getState(f.getSelectionCell())))}}else return this.isControlDown(b)?function(){c(b.keyCode,mxEvent.isShiftDown(b)?f.gridSize:null,!0)}:function(){c(b.keyCode,mxEvent.isShiftDown(b)?f.gridSize:null)}}return k.apply(this,arguments)};n.bindAction=
-mxUtils.bind(this,function(b,d,c,g){var k=this.actions.get(c);null!=k&&(c=function(){k.isEnabled()&&k.funct()},d?g?n.bindControlShiftKey(b,c):n.bindControlKey(b,c):g?n.bindShiftKey(b,c):n.bindKey(b,c))});var g=this,q=n.escape;n.escape=function(b){q.apply(this,arguments)};n.enter=function(){};n.bindControlShiftKey(36,function(){f.exitGroup()});n.bindControlShiftKey(35,function(){f.enterGroup()});n.bindShiftKey(36,function(){f.home()});n.bindKey(35,function(){f.refresh()});n.bindAction(107,!0,"zoomIn");
+mxUtils.bind(this,function(b,d,c,g){var k=this.actions.get(c);null!=k&&(c=function(){k.isEnabled()&&k.funct()},d?g?n.bindControlShiftKey(b,c):n.bindControlKey(b,c):g?n.bindShiftKey(b,c):n.bindKey(b,c))});var g=this,t=n.escape;n.escape=function(b){t.apply(this,arguments)};n.enter=function(){};n.bindControlShiftKey(36,function(){f.exitGroup()});n.bindControlShiftKey(35,function(){f.enterGroup()});n.bindShiftKey(36,function(){f.home()});n.bindKey(35,function(){f.refresh()});n.bindAction(107,!0,"zoomIn");
n.bindAction(109,!0,"zoomOut");n.bindAction(80,!0,"print");n.bindAction(79,!0,"outline",!0);if(!this.editor.chromeless||this.editor.editable)n.bindControlKey(36,function(){f.isEnabled()&&f.foldCells(!0)}),n.bindControlKey(35,function(){f.isEnabled()&&f.foldCells(!1)}),n.bindControlKey(13,function(){g.ctrlEnter()}),n.bindAction(8,!1,"delete"),n.bindAction(8,!0,"deleteAll"),n.bindAction(8,!1,"deleteLabels",!0),n.bindAction(46,!1,"delete"),n.bindAction(46,!0,"deleteAll"),n.bindAction(46,!1,"deleteLabels",
!0),n.bindAction(36,!1,"resetView"),n.bindAction(72,!0,"fitWindow",!0),n.bindAction(74,!0,"fitPage"),n.bindAction(74,!0,"fitTwoPages",!0),n.bindAction(48,!0,"customZoom"),n.bindAction(82,!0,"turn"),n.bindAction(82,!0,"clearDefaultStyle",!0),n.bindAction(83,!0,"save"),n.bindAction(83,!0,"saveAs",!0),n.bindAction(65,!0,"selectAll"),n.bindAction(65,!0,"selectNone",!0),n.bindAction(73,!0,"selectVertices",!0),n.bindAction(69,!0,"selectEdges",!0),n.bindAction(69,!0,"editStyle"),n.bindAction(66,!0,"bold"),
n.bindAction(66,!0,"toBack",!0),n.bindAction(70,!0,"toFront",!0),n.bindAction(68,!0,"duplicate"),n.bindAction(68,!0,"setAsDefaultStyle",!0),n.bindAction(90,!0,"undo"),n.bindAction(89,!0,"autosize",!0),n.bindAction(88,!0,"cut"),n.bindAction(67,!0,"copy"),n.bindAction(86,!0,"paste"),n.bindAction(71,!0,"group"),n.bindAction(77,!0,"editData"),n.bindAction(71,!0,"grid",!0),n.bindAction(73,!0,"italic"),n.bindAction(76,!0,"lockUnlock"),n.bindAction(76,!0,"layers",!0),n.bindAction(80,!0,"formatPanel",!0),
@@ -2337,29 +2337,29 @@ null!=this.editor&&(this.editor.destroy(),this.editor=null);null!=this.menubar&&
this.keyupHandler),this.keyupHandler=null);null!=this.resizeHandler&&(mxEvent.removeListener(window,"resize",this.resizeHandler),this.resizeHandler=null);null!=this.gestureHandler&&(mxEvent.removeGestureListeners(document,this.gestureHandler),this.gestureHandler=null);null!=this.orientationChangeHandler&&(mxEvent.removeListener(window,"orientationchange",this.orientationChangeHandler),this.orientationChangeHandler=null);null!=this.scrollHandler&&(mxEvent.removeListener(window,"scroll",this.scrollHandler),
this.scrollHandler=null);if(null!=this.destroyFunctions){for(b=0;b<this.destroyFunctions.length;b++)this.destroyFunctions[b]();this.destroyFunctions=null}for(var c=[this.menubarContainer,this.toolbarContainer,this.sidebarContainer,this.formatContainer,this.diagramContainer,this.footerContainer,this.chromelessToolbar,this.hsplit,this.sidebarFooterContainer,this.layersDialog],b=0;b<c.length;b++)null!=c[b]&&null!=c[b].parentNode&&c[b].parentNode.removeChild(c[b])};"undefined"!==typeof html4&&(html4.ATTRIBS["a::target"]=0,html4.ATTRIBS["source::src"]=0,html4.ATTRIBS["video::src"]=0);(function(){var b=[["nbsp","160"],["shy","173"]],c=mxUtils.parseXml;mxUtils.parseXml=function(e){for(var f=0;f<b.length;f++)e=e.replace(new RegExp("&"+b[f][0]+";","g"),"&#"+b[f][1]+";");return c(e)}})();
Date.prototype.toISOString||function(){function b(b){b=String(b);1===b.length&&(b="0"+b);return b}Date.prototype.toISOString=function(){return this.getUTCFullYear()+"-"+b(this.getUTCMonth()+1)+"-"+b(this.getUTCDate())+"T"+b(this.getUTCHours())+":"+b(this.getUTCMinutes())+":"+b(this.getUTCSeconds())+"."+String((this.getUTCMilliseconds()/1E3).toFixed(3)).slice(2,5)+"Z"}}();Date.now||(Date.now=function(){return(new Date).getTime()});
-Uint8Array.from||(Uint8Array.from=function(){var b=Object.prototype.toString,c=function(c){return"function"===typeof c||"[object Function]"===b.call(c)},e=Math.pow(2,53)-1;return function(b){var f=Object(b);if(null==b)throw new TypeError("Array.from requires an array-like object - not null or undefined");var l=1<arguments.length?arguments[1]:void 0,t;if("undefined"!==typeof l){if(!c(l))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(t=
-arguments[2])}var d;d=Number(f.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),e);for(var k=c(this)?Object(new this(d)):Array(d),g=0,q;g<d;)q=f[g],k[g]=l?"undefined"===typeof t?l(q,g):l.call(t,q,g):q,g+=1;k.length=d;return k}}());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";
+Uint8Array.from||(Uint8Array.from=function(){var b=Object.prototype.toString,c=function(c){return"function"===typeof c||"[object Function]"===b.call(c)},e=Math.pow(2,53)-1;return function(b){var f=Object(b);if(null==b)throw new TypeError("Array.from requires an array-like object - not null or undefined");var l=1<arguments.length?arguments[1]:void 0,q;if("undefined"!==typeof l){if(!c(l))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(q=
+arguments[2])}var d;d=Number(f.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),e);for(var k=c(this)?Object(new this(d)):Array(d),g=0,t;g<d;)t=f[g],k[g]=l?"undefined"===typeof q?l(t,g):l.call(q,t,g):t,g+=1;k.length=d;return k}}());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";
mxConstants.VML_SHADOWCOLOR="#d0d0d0";mxGraph.prototype.pageBreakColor="#c0c0c0";mxGraph.prototype.pageScale=1;(function(){try{if(null!=navigator&&null!=navigator.language){var b=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===b||"en-ca"===b||"es-mx"===b?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(c){}})();mxText.prototype.baseSpacingTop=5;mxText.prototype.baseSpacingBottom=1;mxGraphModel.prototype.ignoreRelativeEdgeParent=!1;
mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif";mxGraphView.prototype.gridSteps=4;mxGraphView.prototype.minGridSize=4;mxGraphView.prototype.defaultGridColor="#d0d0d0";mxGraphView.prototype.defaultDarkGridColor="#6e6e6e";mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultGridColor;mxGraphView.prototype.unit=mxConstants.POINTS;
mxGraphView.prototype.setUnit=function(b){this.unit!=b&&(this.unit=b,this.fireEvent(new mxEventObject("unitChanged","unit",b)))};mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]";mxShape.prototype.getConstraints=function(b,c,e){return null};
mxImageShape.prototype.getImageDataUri=function(){var b=this.image;if("data:image/svg+xml;base64,"==b.substring(0,26)&&null!=this.style&&"1"==mxUtils.getValue(this.style,"clipSvg","0")){if(null==this.clippedSvg||this.clippedImage!=b)this.clippedSvg=Graph.clipSvgDataUri(b,!0),this.clippedImage=b;b=this.clippedSvg}return b};
Graph=function(b,c,e,f,n,l){mxGraph.call(this,b,c,e,f);this.themes=n||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);this.standalone=null!=l?l:!1;b=this.baseUrl;c=b.indexOf("//");this.domainPathUrl=this.domainUrl="";0<c&&(c=b.indexOf("/",c+2),0<c&&(this.domainUrl=b.substring(0,c)),c=b.lastIndexOf("/"),0<c&&(this.domainPathUrl=b.substring(0,c+1)));this.isHtmlLabel=function(b){b=this.getCurrentCellStyle(b);
-return null!=b?"1"==b.html||"wrap"==b[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var t=null,d=null,k=null,g=null,q=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,c){if("mouseDown"==c.getProperty("eventName")&&this.isEnabled()){var e=c.getProperty("event"),f=e.getState(),l=this.view.scale;if(!mxEvent.isAltDown(e.getEvent())&&null!=f)if(this.model.isEdge(f.cell))if(t=new mxPoint(e.getGraphX(),e.getGraphY()),q=this.isCellSelected(f.cell),k=f,d=e,null!=f.text&&null!=
+return null!=b?"1"==b.html||"wrap"==b[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var q=null,d=null,k=null,g=null,t=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,c){if("mouseDown"==c.getProperty("eventName")&&this.isEnabled()){var e=c.getProperty("event"),f=e.getState(),l=this.view.scale;if(!mxEvent.isAltDown(e.getEvent())&&null!=f)if(this.model.isEdge(f.cell))if(q=new mxPoint(e.getGraphX(),e.getGraphY()),t=this.isCellSelected(f.cell),k=f,d=e,null!=f.text&&null!=
f.text.boundingBox&&mxUtils.contains(f.text.boundingBox,e.getGraphX(),e.getGraphY()))g=mxEvent.LABEL_HANDLE;else{var m=this.selectionCellsHandler.getHandler(f.cell);null!=m&&null!=m.bends&&0<m.bends.length&&(g=m.getHandleForEvent(e))}else if(!this.panningHandler.isActive()&&!mxEvent.isControlDown(e.getEvent())&&(m=this.selectionCellsHandler.getHandler(f.cell),null==m||null==m.getHandleForEvent(e))){var p=new mxRectangle(e.getGraphX()-1,e.getGraphY()-1),B=mxEvent.isTouchEvent(e.getEvent())?mxShape.prototype.svgStrokeTolerance-
1:(mxShape.prototype.svgStrokeTolerance+2)/2,m=B+2;p.grow(B);if(this.isTableCell(f.cell)&&!this.isCellSelected(f.cell)&&!(mxUtils.contains(f,e.getGraphX()-m,e.getGraphY()-m)&&mxUtils.contains(f,e.getGraphX()-m,e.getGraphY()+m)&&mxUtils.contains(f,e.getGraphX()+m,e.getGraphY()+m)&&mxUtils.contains(f,e.getGraphX()+m,e.getGraphY()-m))){var n=this.model.getParent(f.cell),m=this.model.getParent(n);if(!this.isCellSelected(m)){var B=B*l,u=2*B;if(this.model.getChildAt(m,0)!=n&&mxUtils.intersects(p,new mxRectangle(f.x,
f.y-B,f.width,u))||this.model.getChildAt(n,0)!=f.cell&&mxUtils.intersects(p,new mxRectangle(f.x-B,f.y,u,f.height))||mxUtils.intersects(p,new mxRectangle(f.x,f.y+f.height-B,f.width,u))||mxUtils.intersects(p,new mxRectangle(f.x+f.width-B,f.y,u,f.height)))n=this.selectionCellsHandler.isHandled(m),this.selectCellForEvent(m,e.getEvent()),m=this.selectionCellsHandler.getHandler(m),null!=m&&(B=m.getHandleForEvent(e),null!=B&&(m.start(e.getGraphX(),e.getGraphY(),B),m.blockDelayedSelection=!n,e.consume()))}}for(;!e.isConsumed()&&
null!=f&&(this.isTableCell(f.cell)||this.isTableRow(f.cell)||this.isTable(f.cell));)this.isSwimlane(f.cell)&&(m=this.getActualStartSize(f.cell),(0<m.x||0<m.width)&&mxUtils.intersects(p,new mxRectangle(f.x+(m.x-m.width-1)*l+(0==m.x?f.width:0),f.y,1,f.height))||(0<m.y||0<m.height)&&mxUtils.intersects(p,new mxRectangle(f.x,f.y+(m.y-m.height-1)*l+(0==m.y?f.height:0),f.width,1)))&&(this.selectCellForEvent(f.cell,e.getEvent()),m=this.selectionCellsHandler.getHandler(f.cell),null!=m&&(B=mxEvent.CUSTOM_HANDLE-
-m.customHandles.length+1,m.start(e.getGraphX(),e.getGraphY(),B),e.consume())),f=this.view.getState(this.model.getParent(f.cell))}}}));this.addMouseListener({mouseDown:function(b,d){},mouseMove:mxUtils.bind(this,function(b,c){var e=this.selectionCellsHandler.handlers.map,f;for(f in e)if(null!=e[f].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isAltDown(c.getEvent())){var m=this.tolerance;if(null!=t&&null!=k&&null!=d){if(e=k,Math.abs(t.x-c.getGraphX())>m||Math.abs(t.y-
-c.getGraphY())>m){var l=this.selectionCellsHandler.getHandler(e.cell);null==l&&this.model.isEdge(e.cell)&&(l=this.createHandler(e));if(null!=l&&null!=l.bends&&0<l.bends.length){f=l.getHandleForEvent(d);var p=this.view.getEdgeStyle(e),m=p==mxEdgeStyle.EntityRelation;q||g!=mxEvent.LABEL_HANDLE||(f=g);if(m&&0!=f&&f!=l.bends.length-1&&f!=mxEvent.LABEL_HANDLE)!m||null==e.visibleSourceState&&null==e.visibleTargetState||(this.graphHandler.reset(),c.consume());else if(f==mxEvent.LABEL_HANDLE||0==f||null!=
-e.visibleSourceState||f==l.bends.length-1||null!=e.visibleTargetState)m||f==mxEvent.LABEL_HANDLE||(m=e.absolutePoints,null!=m&&(null==p&&null==f||p==mxEdgeStyle.OrthConnector)&&(f=g,null==f&&(f=new mxRectangle(t.x,t.y),f.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(f,m[0].x,m[0].y)?f=0:mxUtils.contains(f,m[m.length-1].x,m[m.length-1].y)?f=l.bends.length-1:null!=p&&(2==m.length||3==m.length&&(0==Math.round(m[0].x-m[1].x)&&0==Math.round(m[1].x-m[2].x)||0==Math.round(m[0].y-m[1].y)&&
-0==Math.round(m[1].y-m[2].y)))?f=2:(f=mxUtils.findNearestSegment(e,t.x,t.y),f=null==p?mxEvent.VIRTUAL_HANDLE-f:f+1))),null==f&&(f=mxEvent.VIRTUAL_HANDLE)),l.start(c.getGraphX(),c.getGraphX(),f),c.consume(),this.graphHandler.reset()}null!=l&&(this.selectionCellsHandler.isHandlerActive(l)?this.isCellSelected(e.cell)||(this.selectionCellsHandler.handlers.put(e.cell,l),this.selectCellForEvent(e.cell,c.getEvent())):this.isCellSelected(e.cell)||l.destroy());q=!1;t=d=k=g=null}}else if(e=c.getState(),null!=
+m.customHandles.length+1,m.start(e.getGraphX(),e.getGraphY(),B),e.consume())),f=this.view.getState(this.model.getParent(f.cell))}}}));this.addMouseListener({mouseDown:function(b,d){},mouseMove:mxUtils.bind(this,function(b,c){var e=this.selectionCellsHandler.handlers.map,f;for(f in e)if(null!=e[f].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isAltDown(c.getEvent())){var m=this.tolerance;if(null!=q&&null!=k&&null!=d){if(e=k,Math.abs(q.x-c.getGraphX())>m||Math.abs(q.y-
+c.getGraphY())>m){var l=this.selectionCellsHandler.getHandler(e.cell);null==l&&this.model.isEdge(e.cell)&&(l=this.createHandler(e));if(null!=l&&null!=l.bends&&0<l.bends.length){f=l.getHandleForEvent(d);var p=this.view.getEdgeStyle(e),m=p==mxEdgeStyle.EntityRelation;t||g!=mxEvent.LABEL_HANDLE||(f=g);if(m&&0!=f&&f!=l.bends.length-1&&f!=mxEvent.LABEL_HANDLE)!m||null==e.visibleSourceState&&null==e.visibleTargetState||(this.graphHandler.reset(),c.consume());else if(f==mxEvent.LABEL_HANDLE||0==f||null!=
+e.visibleSourceState||f==l.bends.length-1||null!=e.visibleTargetState)m||f==mxEvent.LABEL_HANDLE||(m=e.absolutePoints,null!=m&&(null==p&&null==f||p==mxEdgeStyle.OrthConnector)&&(f=g,null==f&&(f=new mxRectangle(q.x,q.y),f.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(f,m[0].x,m[0].y)?f=0:mxUtils.contains(f,m[m.length-1].x,m[m.length-1].y)?f=l.bends.length-1:null!=p&&(2==m.length||3==m.length&&(0==Math.round(m[0].x-m[1].x)&&0==Math.round(m[1].x-m[2].x)||0==Math.round(m[0].y-m[1].y)&&
+0==Math.round(m[1].y-m[2].y)))?f=2:(f=mxUtils.findNearestSegment(e,q.x,q.y),f=null==p?mxEvent.VIRTUAL_HANDLE-f:f+1))),null==f&&(f=mxEvent.VIRTUAL_HANDLE)),l.start(c.getGraphX(),c.getGraphX(),f),c.consume(),this.graphHandler.reset()}null!=l&&(this.selectionCellsHandler.isHandlerActive(l)?this.isCellSelected(e.cell)||(this.selectionCellsHandler.handlers.put(e.cell,l),this.selectCellForEvent(e.cell,c.getEvent())):this.isCellSelected(e.cell)||l.destroy());t=!1;q=d=k=g=null}}else if(e=c.getState(),null!=
e&&this.isCellEditable(e.cell)){l=null;if(this.model.isEdge(e.cell)){if(f=new mxRectangle(c.getGraphX(),c.getGraphY()),f.grow(mxEdgeHandler.prototype.handleImage.width/2),m=e.absolutePoints,null!=m)if(null!=e.text&&null!=e.text.boundingBox&&mxUtils.contains(e.text.boundingBox,c.getGraphX(),c.getGraphY()))l="move";else if(mxUtils.contains(f,m[0].x,m[0].y)||mxUtils.contains(f,m[m.length-1].x,m[m.length-1].y))l="pointer";else if(null!=e.visibleSourceState||null!=e.visibleTargetState)f=this.view.getEdgeStyle(e),
l="crosshair",f!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(e)&&(f=mxUtils.findNearestSegment(e,c.getGraphX(),c.getGraphY()),f<m.length-1&&0<=f&&(l=0==Math.round(m[f].x-m[f+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(c.getEvent())){m=mxShape.prototype.svgStrokeTolerance/2;f=new mxRectangle(c.getGraphX(),c.getGraphY());f.grow(m);if(this.isTableCell(e.cell)&&(m=this.model.getParent(e.cell),p=this.model.getParent(m),!this.isCellSelected(p)))if(mxUtils.intersects(f,new mxRectangle(e.x,
e.y-2,e.width,4))&&this.model.getChildAt(p,0)!=m||mxUtils.intersects(f,new mxRectangle(e.x,e.y+e.height-2,e.width,4)))l="row-resize";else if(mxUtils.intersects(f,new mxRectangle(e.x-2,e.y,4,e.height))&&this.model.getChildAt(m,0)!=e.cell||mxUtils.intersects(f,new mxRectangle(e.x+e.width-2,e.y,4,e.height)))l="col-resize";for(m=e;null==l&&null!=m&&(this.isTableCell(m.cell)||this.isTableRow(m.cell)||this.isTable(m.cell));){if(this.isSwimlane(m.cell)){var p=this.getActualStartSize(m.cell),B=this.view.scale;
-(0<p.x||0<p.width)&&mxUtils.intersects(f,new mxRectangle(m.x+(p.x-p.width-1)*B+(0==p.x?m.width*B:0),m.y,1,m.height))?l="col-resize":(0<p.y||0<p.height)&&mxUtils.intersects(f,new mxRectangle(m.x,m.y+(p.y-p.height-1)*B+(0==p.y?m.height:0),m.width,1))&&(l="row-resize")}m=this.view.getState(this.model.getParent(m.cell))}}null!=l&&e.setCursor(l)}}}),mouseUp:mxUtils.bind(this,function(b,c){g=t=d=k=null})})}this.cellRenderer.minSvgStrokeWidth=.1;this.cellRenderer.getLabelValue=function(b){var d=mxCellRenderer.prototype.getLabelValue.apply(this,
+(0<p.x||0<p.width)&&mxUtils.intersects(f,new mxRectangle(m.x+(p.x-p.width-1)*B+(0==p.x?m.width*B:0),m.y,1,m.height))?l="col-resize":(0<p.y||0<p.height)&&mxUtils.intersects(f,new mxRectangle(m.x,m.y+(p.y-p.height-1)*B+(0==p.y?m.height:0),m.width,1))&&(l="row-resize")}m=this.view.getState(this.model.getParent(m.cell))}}null!=l&&e.setCursor(l)}}}),mouseUp:mxUtils.bind(this,function(b,c){g=q=d=k=null})})}this.cellRenderer.minSvgStrokeWidth=.1;this.cellRenderer.getLabelValue=function(b){var d=mxCellRenderer.prototype.getLabelValue.apply(this,
arguments);b.view.graph.isHtmlLabel(b.cell)&&(d=1!=b.style.html?mxUtils.htmlEntities(d,!1):b.view.graph.sanitizeHtml(d));return d};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0);this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);
-this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(b,d){return!1};this.alternateEdgeStyle="vertical";null==f&&this.loadStylesheet();var m=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=function(){var b=m.apply(this,arguments);if(this.graph.pageVisible){for(var d=[],c=this.graph.pageFormat,g=this.graph.pageScale,k=c.width*g,c=c.height*g,g=this.graph.view.translate,e=this.graph.view.scale,f=this.graph.getPageLayout(),q=0;q<f.width;q++)d.push(new mxRectangle(((f.x+
-q)*k+g.x)*e,(f.y*c+g.y)*e,k*e,c*e));for(q=1;q<f.height;q++)d.push(new mxRectangle((f.x*k+g.x)*e,((f.y+q)*c+g.y)*e,k*e,c*e));b=d.concat(b)}return b};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=function(b,d){return null==b.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(b){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,
+this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(b,d){return!1};this.alternateEdgeStyle="vertical";null==f&&this.loadStylesheet();var m=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=function(){var b=m.apply(this,arguments);if(this.graph.pageVisible){for(var d=[],c=this.graph.pageFormat,g=this.graph.pageScale,k=c.width*g,c=c.height*g,g=this.graph.view.translate,e=this.graph.view.scale,f=this.graph.getPageLayout(),t=0;t<f.width;t++)d.push(new mxRectangle(((f.x+
+t)*k+g.x)*e,(f.y*c+g.y)*e,k*e,c*e));for(t=1;t<f.height;t++)d.push(new mxRectangle((f.x*k+g.x)*e,((f.y+t)*c+g.y)*e,k*e,c*e));b=d.concat(b)}return b};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=function(b,d){return null==b.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(b){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,
arguments)};var p=this.graphHandler.getCells;this.graphHandler.getCells=function(b){for(var d=p.apply(this,arguments),c=new mxDictionary,g=[],k=0;k<d.length;k++){var e=this.graph.isTableCell(b)&&this.graph.isTableCell(d[k])&&this.graph.isCellSelected(d[k])?this.graph.model.getParent(d[k]):this.graph.isTableRow(b)&&this.graph.isTableRow(d[k])&&this.graph.isCellSelected(d[k])?d[k]:this.graph.getCompositeParent(d[k]);null==e||c.get(e)||(c.put(e,!0),g.push(e))}return g};var v=this.graphHandler.start;
this.graphHandler.start=function(b,d,c,g){var k=!1;this.graph.isTableCell(b)&&(this.graph.isCellSelected(b)?k=!0:b=this.graph.model.getParent(b));k||this.graph.isTableRow(b)&&this.graph.isCellSelected(b)||(b=this.graph.getCompositeParent(b));v.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(b,d){d=this.graph.getCompositeParent(d);return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var u=new mxRubberband(this);this.getRubberband=function(){return u};
var x=(new Date).getTime(),y=0,G=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var b=this.currentState;G.apply(this,arguments);b!=this.currentState?(x=(new Date).getTime(),y=0):y=(new Date).getTime()-x};var H=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(b){return null!=this.currentState&&b.getState()==this.currentState&&2E3<y||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect",
@@ -2367,8 +2367,8 @@ var x=(new Date).getTime(),y=0,G=this.connectionHandler.mouseMove;this.connectio
mxUtils.bind(this,function(){this.isEnabled()&&(O=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=O)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(b){return mxEvent.isMouseEvent(b.getEvent())};var A=this.click;this.click=function(b){var d=null==b.state&&null!=b.sourceState&&this.isCellLocked(b.sourceState.cell);if(this.isEnabled()&&
!d||b.isConsumed())return A.apply(this,arguments);var c=d?b.sourceState.cell:b.getCell();null!=c&&(c=this.getClickableLinkForCell(c),null!=c&&(this.isCustomLink(c)?this.customLinkClicked(c):this.openLink(c)));this.isEnabled()&&d&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};var C=this.tooltipHandler.show;this.tooltipHandler.show=function(){C.apply(this,arguments);if(null!=this.div)for(var b=this.div.getElementsByTagName("a"),d=0;d<b.length;d++)null!=
b[d].getAttribute("href")&&null==b[d].getAttribute("target")&&b[d].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};this.getCursorForMouseEvent=function(b){var d=null==b.state&&null!=b.sourceState&&this.isCellLocked(b.sourceState.cell);return this.getCursorForCell(d?b.sourceState.cell:b.getCell())};var E=this.getCursorForCell;this.getCursorForCell=function(b){if(!this.isEnabled()||this.isCellLocked(b)){if(null!=this.getClickableLinkForCell(b))return"pointer";
-if(this.isCellLocked(b))return"default"}return E.apply(this,arguments)};this.selectRegion=function(b,d){var c=mxEvent.isAltDown(d)?b:null,c=this.getCells(b.x,b.y,b.width,b.height,null,null,c,function(b){return"1"==mxUtils.getValue(b.style,"locked","0")},!0);if(this.isToggleEvent(d))for(var g=0;g<c.length;g++)this.selectCellForEvent(c[g],d);else this.selectCellsForEvent(c,d);return c};var L=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(b,d,c){return this.graph.isCellSelected(b)?
-!1:L.apply(this,arguments)};this.isCellLocked=function(b){for(;null!=b;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(b),"locked","0"))return!0;b=this.model.getParent(b)}return!1};var N=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,d){if("mouseDown"==d.getProperty("eventName")){var c=d.getProperty("event").getState();N=null==c||this.isSelectionEmpty()||this.isCellSelected(c.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,
+if(this.isCellLocked(b))return"default"}return E.apply(this,arguments)};this.selectRegion=function(b,d){var c=mxEvent.isAltDown(d)?b:null,c=this.getCells(b.x,b.y,b.width,b.height,null,null,c,function(b){return"1"==mxUtils.getValue(b.style,"locked","0")},!0);if(this.isToggleEvent(d))for(var g=0;g<c.length;g++)this.selectCellForEvent(c[g],d);else this.selectCellsForEvent(c,d);return c};var J=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(b,d,c){return this.graph.isCellSelected(b)?
+!1:J.apply(this,arguments)};this.isCellLocked=function(b){for(;null!=b;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(b),"locked","0"))return!0;b=this.model.getParent(b)}return!1};var N=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,d){if("mouseDown"==d.getProperty("eventName")){var c=d.getProperty("event").getState();N=null==c||this.isSelectionEmpty()||this.isCellSelected(c.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,
function(b,d){if(!mxEvent.isMultiTouchEvent(d)){var c=d.getProperty("event"),g=d.getProperty("cell");null==g?(c=mxUtils.convertPoint(this.container,mxEvent.getClientX(c),mxEvent.getClientY(c)),u.start(c.x,c.y)):null!=N?this.addSelectionCells(N):1<this.getSelectionCount()&&this.isCellSelected(g)&&this.removeSelectionCell(g);N=null;d.consume()}}));this.connectionHandler.selectCells=function(b,d){this.graph.setSelectionCell(d||b)};this.connectionHandler.constraintHandler.isStateIgnored=function(b,d){var c=
b.view.graph;return d&&(c.isCellSelected(b.cell)||c.isTableRow(b.cell)&&c.selectionCellsHandler.isHandled(c.model.getParent(b.cell)))};this.selectionModel.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){var b=this.connectionHandler.constraintHandler;null!=b.currentFocus&&b.isStateIgnored(b.currentFocus,!0)&&(b.currentFocus=null,b.constraints=null,b.destroyIcons());b.destroyFocusHighlight()}));Graph.touchStyle&&this.initTouch();var M=this.updateMouseEvent;this.updateMouseEvent=function(b){b=
M.apply(this,arguments);null!=b.state&&this.isCellLocked(b.getCell())&&(b.state=null);return b}}this.currentTranslate=new mxPoint(0,0)};Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;Graph.fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList&&(null==window.urlParams||"0"!=urlParams.filesupport);Graph.translateDiagram="1"==urlParams["translate-diagram"];
@@ -2386,14 +2386,14 @@ Graph.setTransitionForNodes=function(b,c){for(var e=0;e<b.length;e++)mxUtils.set
Graph.sanitizeHtml=function(b,c){return html_sanitize(b,function(b){return null!=b&&"javascript:"!==b.toString().toLowerCase().substring(0,11)?b:null},function(b){return b})};
Graph.sanitizeSvg=function(b){function c(c){for(c=b.getElementsByTagName(c);0<c.length;)c[0].parentNode.removeChild(c[0])}for(var e=b.getElementsByTagName("*"),f=0;f<e.length;f++)for(var n=0;n<e[f].attributes.length;n++){var l=e[f].attributes[n];2<l.name.length&&"on"==l.name.toLowerCase().substring(0,2)&&e[f].removeAttribute(l.name)}c("meta");c("script");c("metadata")};
Graph.clipSvgDataUri=function(b,c){if(!mxClient.IS_IE&&!mxClient.IS_IE11&&null!=b&&"data:image/svg+xml;base64,"==b.substring(0,26))try{var e=document.createElement("div");e.style.position="absolute";e.style.visibility="hidden";var f=decodeURIComponent(escape(atob(b.substring(26)))),n=f.indexOf("<svg");if(0<=n){e.innerHTML=f.substring(n);Graph.sanitizeSvg(e);var l=e.getElementsByTagName("svg");if(0<l.length){if(c||null!=l[0].getAttribute("preserveAspectRatio")){document.body.appendChild(e);try{var n=
-f=1,t=l[0].getAttribute("width"),d=l[0].getAttribute("height"),t=null!=t&&"%"!=t.charAt(t.length-1)?parseFloat(t):NaN,d=null!=d&&"%"!=d.charAt(d.length-1)?parseFloat(d):NaN,k=l[0].getAttribute("viewBox");if(null!=k&&!isNaN(t)&&!isNaN(d)){var g=k.split(" ");4<=k.length&&(f=parseFloat(g[2])/t,n=parseFloat(g[3])/d)}var q=l[0].getBBox();0<q.width&&0<q.height&&(e.getElementsByTagName("svg")[0].setAttribute("viewBox",q.x+" "+q.y+" "+q.width+" "+q.height),e.getElementsByTagName("svg")[0].setAttribute("width",
-q.width/f),e.getElementsByTagName("svg")[0].setAttribute("height",q.height/n))}catch(m){}finally{document.body.removeChild(e)}}b=Editor.createSvgDataUri(mxUtils.getXml(l[0]))}}}catch(m){}return b};Graph.stripQuotes=function(b){null!=b&&("'"==b.charAt(0)&&(b=b.substring(1)),"'"==b.charAt(b.length-1)&&(b=b.substring(0,b.length-1)),'"'==b.charAt(0)&&(b=b.substring(1)),'"'==b.charAt(b.length-1)&&(b=b.substring(0,b.length-1)));return b};
+f=1,q=l[0].getAttribute("width"),d=l[0].getAttribute("height"),q=null!=q&&"%"!=q.charAt(q.length-1)?parseFloat(q):NaN,d=null!=d&&"%"!=d.charAt(d.length-1)?parseFloat(d):NaN,k=l[0].getAttribute("viewBox");if(null!=k&&!isNaN(q)&&!isNaN(d)){var g=k.split(" ");4<=k.length&&(f=parseFloat(g[2])/q,n=parseFloat(g[3])/d)}var t=l[0].getBBox();0<t.width&&0<t.height&&(e.getElementsByTagName("svg")[0].setAttribute("viewBox",t.x+" "+t.y+" "+t.width+" "+t.height),e.getElementsByTagName("svg")[0].setAttribute("width",
+t.width/f),e.getElementsByTagName("svg")[0].setAttribute("height",t.height/n))}catch(m){}finally{document.body.removeChild(e)}}b=Editor.createSvgDataUri(mxUtils.getXml(l[0]))}}}catch(m){}return b};Graph.stripQuotes=function(b){null!=b&&("'"==b.charAt(0)&&(b=b.substring(1)),"'"==b.charAt(b.length-1)&&(b=b.substring(0,b.length-1)),'"'==b.charAt(0)&&(b=b.substring(1)),'"'==b.charAt(b.length-1)&&(b=b.substring(0,b.length-1)));return b};
Graph.createRemoveIcon=function(b,c){var e=document.createElement("img");e.setAttribute("src",Dialog.prototype.clearImage);e.setAttribute("title",b);e.setAttribute("width","13");e.setAttribute("height","10");e.style.marginLeft="4px";e.style.marginBottom="-1px";e.style.cursor="pointer";mxEvent.addListener(e,"click",c);return e};Graph.isPageLink=function(b){return null!=b&&"data:page/id,"==b.substring(0,13)};Graph.isLink=function(b){return null!=b&&Graph.linkPattern.test(b)};Graph.linkPattern=/^(https?:\/\/)?((([a-z\d]([a-z\d-]*[a-z\d])*)\.)+[a-z]{2,}|((\d{1,3}\.){3}\d{1,3}))(\:\d+)?(\/[-a-z\d%_.~+]*)*(\?[;&a-z\d%_.~+=-]*)?(\#[-a-z\d_]*)?$/i;
mxUtils.extend(Graph,mxGraph);Graph.prototype.minFitScale=null;Graph.prototype.maxFitScale=null;Graph.prototype.linkPolicy="frame"==urlParams.target?"blank":urlParams.target||"auto";Graph.prototype.linkTarget="frame"==urlParams.target?"_self":"_blank";Graph.prototype.linkRelation="nofollow noopener noreferrer";Graph.prototype.defaultScrollbars=!0;Graph.prototype.defaultPageVisible=!0;Graph.prototype.defaultGridEnabled="0"!=urlParams.grid;Graph.prototype.lightbox=!1;
Graph.prototype.defaultPageBackgroundColor="#ffffff";Graph.prototype.defaultPageBorderColor="#ffffff";Graph.prototype.shapeForegroundColor="#000000";Graph.prototype.shapeBackgroundColor="#ffffff";Graph.prototype.scrollTileSize=new mxRectangle(0,0,400,400);Graph.prototype.transparentBackground=!0;Graph.prototype.selectParentAfterDelete=!1;Graph.prototype.defaultEdgeLength=80;Graph.prototype.edgeMode=!1;Graph.prototype.connectionArrowsEnabled=!0;
Graph.prototype.placeholderPattern=RegExp("%(date{.*}|[^%^{^}^ ^\"^ '^=^;]+)%","g");Graph.prototype.absoluteUrlPattern=/^(?:[a-z]+:)?\/\//i;Graph.prototype.defaultThemeName="default";Graph.prototype.defaultThemes={};Graph.prototype.baseUrl=null!=urlParams.base?decodeURIComponent(urlParams.base):(window!=window.top?document.referrer:document.location.toString()).split("#")[0];Graph.prototype.editAfterInsert=!1;Graph.prototype.builtInProperties=["label","tooltip","placeholders","placeholder"];
Graph.prototype.standalone=!1;Graph.prototype.enableFlowAnimation=!1;Graph.prototype.roundableShapes="label rectangle internalStorage corner parallelogram swimlane triangle trapezoid ext step tee process link rhombus offPageConnector loopLimit hexagon manualInput card curlyBracket singleArrow callout doubleArrow flexArrow umlLifeline".split(" ");
-Graph.prototype.init=function(b){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(b,c){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var e=b.view.graph.tolerance,f=!0,t=null,d=mxUtils.bind(this,function(b){f=!0;t=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b))}),k=mxUtils.bind(this,function(b){f=f&&null!=t&&Math.abs(t.x-mxEvent.getClientX(b))<e&&Math.abs(t.y-mxEvent.getClientY(b))<e}),g=mxUtils.bind(this,function(d){if(f)for(var g=mxEvent.getSource(d);null!=
+Graph.prototype.init=function(b){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(b,c){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var e=b.view.graph.tolerance,f=!0,q=null,d=mxUtils.bind(this,function(b){f=!0;q=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b))}),k=mxUtils.bind(this,function(b){f=f&&null!=q&&Math.abs(q.x-mxEvent.getClientX(b))<e&&Math.abs(q.y-mxEvent.getClientY(b))<e}),g=mxUtils.bind(this,function(d){if(f)for(var g=mxEvent.getSource(d);null!=
g&&g!=c.node;){if("a"==g.nodeName.toLowerCase()){b.view.graph.labelLinkClicked(b,g,d);break}g=g.parentNode}});mxEvent.addGestureListeners(c.node,d,k,g);mxEvent.addListener(c.node,"click",function(b){mxEvent.consume(b)})};if(null!=this.tooltipHandler){var c=this.tooltipHandler.init;this.tooltipHandler.init=function(){c.apply(this,arguments);null!=this.div&&mxEvent.addListener(this.div,"click",mxUtils.bind(this,function(b){var c=mxEvent.getSource(b);"A"==c.nodeName&&(c=c.getAttribute("href"),null!=
c&&this.graph.isCustomLink(c)&&(mxEvent.isTouchEvent(b)||!mxEvent.isPopupTrigger(b))&&this.graph.customLinkClicked(c)&&mxEvent.consume(b))}))}}this.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,c){if(null!=this.container&&this.flowAnimationStyle){var e=this.flowAnimationStyle.getAttribute("id");this.flowAnimationStyle.innerHTML=this.getFlowAnimationStyleCss(e)}}));this.initLayoutManager()};
(function(){Graph.prototype.useCssTransforms=!1;Graph.prototype.currentScale=1;Graph.prototype.currentTranslate=new mxPoint(0,0);Graph.prototype.isFillState=function(b){return!this.isSpecialColor(b.style[mxConstants.STYLE_FILLCOLOR])&&"1"!=mxUtils.getValue(b.style,"lineShape",null)&&(this.model.isVertex(b.cell)||"arrow"==mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,null)||"filledEdge"==mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,null)||"flexArrow"==mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,
@@ -2404,7 +2404,7 @@ d,0==c)}return d};Graph.prototype.mergeStyle=function(b,d,c){if(null!=b){var g={
mxConstants.STYLE_STARTSIZE,0)));if(this.isTableRow(b)&&(!this.isSwimlane(b)||0==c)&&""==this.getLabel(b)&&0<this.model.getChildCount(b))for(c=0;c<this.model.getChildCount(b);c++){var g=this.model.getChildAt(b,c);if(this.isCellEditable(g)){b=g;break}}return b};Graph.prototype.copyStyle=function(b){return this.getCellStyle(b,!1)};Graph.prototype.pasteStyle=function(b,d,c){c=null!=c?c:Graph.pasteStyles;Graph.removeKeys(b,function(b){return 0>mxUtils.indexOf(c,b)});this.updateCellStyles(b,d)};Graph.prototype.updateCellStyles=
function(b,d){this.model.beginUpdate();try{for(var c=0;c<d.length;c++)if(this.model.isVertex(d[c])||this.model.isEdge(d[c])){var g=this.getCellStyle(d[c],!1),e;for(e in b){var f=b[e];g[e]!=f&&this.setCellStyles(e,f,[d[c]])}}}finally{this.model.endUpdate()}};Graph.prototype.isFastZoomEnabled=function(){return"nocss"!=urlParams.zoom&&!mxClient.NO_FO&&!mxClient.IS_EDGE&&!this.useCssTransforms&&(this.isCssTransformsSupported()||mxClient.IS_IOS)};Graph.prototype.isCssTransformsSupported=function(){return this.dialect==
mxConstants.DIALECT_SVG&&!mxClient.NO_FO&&(!this.lightbox||!mxClient.IS_SF)};Graph.prototype.getCellAt=function(b,d,c,g,e,f){this.useCssTransforms&&(b=b/this.currentScale-this.currentTranslate.x,d=d/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(b,d,c,g,e,f){g=null!=g?g:!0;e=null!=e?e:!0;null==c&&(c=this.getCurrentRoot(),null==c&&(c=this.getModel().getRoot()));if(null!=c)for(var k=this.model.getChildCount(c)-1;0<=
-k;k--){var m=this.model.getChildAt(c,k),q=this.getScaledCellAt(b,d,m,g,e,f);if(null!=q)return q;if(this.isCellVisible(m)&&(e&&this.model.isEdge(m)||g&&this.model.isVertex(m))&&(q=this.view.getState(m),null!=q&&(null==f||!f(q,b,d))&&this.intersects(q,b,d)))return m}return null};Graph.prototype.isRecursiveVertexResize=function(b){return!this.isSwimlane(b.cell)&&0<this.model.getChildCount(b.cell)&&!this.isCellCollapsed(b.cell)&&"1"==mxUtils.getValue(b.style,"recursiveResize","1")&&null==mxUtils.getValue(b.style,
+k;k--){var m=this.model.getChildAt(c,k),t=this.getScaledCellAt(b,d,m,g,e,f);if(null!=t)return t;if(this.isCellVisible(m)&&(e&&this.model.isEdge(m)||g&&this.model.isVertex(m))&&(t=this.view.getState(m),null!=t&&(null==f||!f(t,b,d))&&this.intersects(t,b,d)))return m}return null};Graph.prototype.isRecursiveVertexResize=function(b){return!this.isSwimlane(b.cell)&&0<this.model.getChildCount(b.cell)&&!this.isCellCollapsed(b.cell)&&"1"==mxUtils.getValue(b.style,"recursiveResize","1")&&null==mxUtils.getValue(b.style,
"childLayout",null)};Graph.prototype.getAbsoluteParent=function(b){for(var d=this.getCellGeometry(b);null!=d&&d.relative;)b=this.getModel().getParent(b),d=this.getCellGeometry(b);return b};Graph.prototype.isPart=function(b){return"1"==mxUtils.getValue(this.getCurrentCellStyle(b),"part","0")||this.isTableCell(b)||this.isTableRow(b)};Graph.prototype.getCompositeParent=function(b){for(;this.isPart(b);){var d=this.model.getParent(b);if(!this.model.isVertex(d))break;b=d}return b};Graph.prototype.filterSelectionCells=
function(b){var d=this.getSelectionCells();if(null!=b){for(var c=[],g=0;g<d.length;g++)b(d[g])||c.push(d[g]);d=c}return d};var b=mxGraph.prototype.scrollRectToVisible;Graph.prototype.scrollRectToVisible=function(c){if(this.useCssTransforms){var d=this.currentScale,e=this.currentTranslate;c=new mxRectangle((c.x+2*e.x)*d-e.x,(c.y+2*e.y)*d-e.y,c.width*d,c.height*d)}b.apply(this,arguments)};mxCellHighlight.prototype.getStrokeWidth=function(b){b=this.strokeWidth;this.graph.useCssTransforms&&(b/=this.graph.currentScale);
return b};mxGraphView.prototype.getGraphBounds=function(){var b=this.graphBounds;if(this.graph.useCssTransforms)var d=this.graph.currentTranslate,c=this.graph.currentScale,b=new mxRectangle((b.x+d.x)*c,(b.y+d.y)*c,b.width*c,b.height*c);return b};mxGraphView.prototype.viewStateChanged=function(){this.graph.useCssTransforms?this.validate():this.revalidate();this.graph.sizeDidChange()};var c=mxGraphView.prototype.validate;mxGraphView.prototype.validate=function(b){this.graph.useCssTransforms&&(this.graph.currentScale=
@@ -2424,10 +2424,10 @@ e.childLayout)return f=new mxCompactTreeLayout(this.graph),f.horizontal="1"==mxU
Graph.prototype.getDataForCells=function(b){for(var c=[],e=0;e<b.length;e++){var f=null!=b[e].value?b[e].value.attributes:null,n={};n.id=b[e].id;if(null!=f)for(var l=0;l<f.length;l++)n[f[l].nodeName]=f[l].nodeValue;else n.label=this.convertValueToString(b[e]);c.push(n)}return c};
Graph.prototype.getNodesForCells=function(b){for(var c=[],e=0;e<b.length;e++){var f=this.view.getState(b[e]);if(null!=f){for(var n=this.cellRenderer.getShapesForState(f),l=0;l<n.length;l++)null!=n[l]&&null!=n[l].node&&c.push(n[l].node);null!=f.control&&null!=f.control.node&&c.push(f.control.node)}}return c};
Graph.prototype.createWipeAnimations=function(b,c){for(var e=[],f=0;f<b.length;f++){var n=this.view.getState(b[f]);null!=n&&null!=n.shape&&(this.model.isEdge(n.cell)&&null!=n.absolutePoints&&1<n.absolutePoints.length?e.push(this.createEdgeWipeAnimation(n,c)):this.model.isVertex(n.cell)&&null!=n.shape.bounds&&e.push(this.createVertexWipeAnimation(n,c)))}return e};
-Graph.prototype.createEdgeWipeAnimation=function(b,c){var e=b.absolutePoints.slice(),f=b.segments,n=b.length,l=e.length;return{execute:mxUtils.bind(this,function(t,d){if(null!=b.shape){var k=[e[0]],g=t/d;c||(g=1-g);for(var q=n*g,m=1;m<l;m++)if(q<=f[m-1]){k.push(new mxPoint(e[m-1].x+(e[m].x-e[m-1].x)*q/f[m-1],e[m-1].y+(e[m].y-e[m-1].y)*q/f[m-1]));break}else q-=f[m-1],k.push(e[m]);b.shape.points=k;b.shape.redraw();0==t&&Graph.setOpacityForNodes(this.getNodesForCells([b.cell]),1);null!=b.text&&null!=
+Graph.prototype.createEdgeWipeAnimation=function(b,c){var e=b.absolutePoints.slice(),f=b.segments,n=b.length,l=e.length;return{execute:mxUtils.bind(this,function(q,d){if(null!=b.shape){var k=[e[0]],g=q/d;c||(g=1-g);for(var t=n*g,m=1;m<l;m++)if(t<=f[m-1]){k.push(new mxPoint(e[m-1].x+(e[m].x-e[m-1].x)*t/f[m-1],e[m-1].y+(e[m].y-e[m-1].y)*t/f[m-1]));break}else t-=f[m-1],k.push(e[m]);b.shape.points=k;b.shape.redraw();0==q&&Graph.setOpacityForNodes(this.getNodesForCells([b.cell]),1);null!=b.text&&null!=
b.text.node&&(b.text.node.style.opacity=g)}}),stop:mxUtils.bind(this,function(){null!=b.shape&&(b.shape.points=e,b.shape.redraw(),null!=b.text&&null!=b.text.node&&(b.text.node.style.opacity=""),Graph.setOpacityForNodes(this.getNodesForCells([b.cell]),c?1:0))})}};
Graph.prototype.createVertexWipeAnimation=function(b,c){var e=new mxRectangle.fromRectangle(b.shape.bounds);return{execute:mxUtils.bind(this,function(f,n){if(null!=b.shape){var l=f/n;c||(l=1-l);b.shape.bounds=new mxRectangle(e.x,e.y,e.width*l,e.height);b.shape.redraw();0==f&&Graph.setOpacityForNodes(this.getNodesForCells([b.cell]),1);null!=b.text&&null!=b.text.node&&(b.text.node.style.opacity=l)}}),stop:mxUtils.bind(this,function(){null!=b.shape&&(b.shape.bounds=e,b.shape.redraw(),null!=b.text&&null!=
-b.text.node&&(b.text.node.style.opacity=""),Graph.setOpacityForNodes(this.getNodesForCells([b.cell]),c?1:0))})}};Graph.prototype.executeAnimations=function(b,c,e,f){e=null!=e?e:30;f=null!=f?f:30;var n=null,l=0,t=mxUtils.bind(this,function(){if(l==e||this.stoppingCustomActions){window.clearInterval(n);for(var d=0;d<b.length;d++)b[d].stop();null!=c&&c()}else for(d=0;d<b.length;d++)b[d].execute(l,e);l++}),n=window.setInterval(t,f);t()};
+b.text.node&&(b.text.node.style.opacity=""),Graph.setOpacityForNodes(this.getNodesForCells([b.cell]),c?1:0))})}};Graph.prototype.executeAnimations=function(b,c,e,f){e=null!=e?e:30;f=null!=f?f:30;var n=null,l=0,q=mxUtils.bind(this,function(){if(l==e||this.stoppingCustomActions){window.clearInterval(n);for(var d=0;d<b.length;d++)b[d].stop();null!=c&&c()}else for(d=0;d<b.length;d++)b[d].execute(l,e);l++}),n=window.setInterval(q,f);q()};
Graph.prototype.getPageSize=function(){return this.pageVisible?new mxRectangle(0,0,this.pageFormat.width*this.pageScale,this.pageFormat.height*this.pageScale):this.scrollTileSize};
Graph.prototype.getPageLayout=function(){var b=this.getPageSize(),c=this.getGraphBounds();if(0==c.width||0==c.height)return new mxRectangle(0,0,1,1);var e=Math.floor(Math.ceil(c.x/this.view.scale-this.view.translate.x)/b.width),f=Math.floor(Math.ceil(c.y/this.view.scale-this.view.translate.y)/b.height);return new mxRectangle(e,f,Math.ceil((Math.floor((c.x+c.width)/this.view.scale)-this.view.translate.x)/b.width)-e,Math.ceil((Math.floor((c.y+c.height)/this.view.scale)-this.view.translate.y)/b.height)-
f)};Graph.prototype.sanitizeHtml=function(b,c){return Graph.sanitizeHtml(b,c)};Graph.prototype.updatePlaceholders=function(){var b=!1,c;for(c in this.model.cells){var e=this.model.cells[c];this.isReplacePlaceholders(e)&&(this.view.invalidate(e,!1,!1),b=!0)}b&&this.view.validate()};Graph.prototype.isReplacePlaceholders=function(b){return null!=b.value&&"object"==typeof b.value&&"1"==b.value.getAttribute("placeholders")};
@@ -2437,28 +2437,28 @@ Graph.prototype.getLabel=function(b){var c=mxGraph.prototype.getLabel.apply(this
Graph.prototype.setGridSize=function(b){this.gridSize=b;this.fireEvent(new mxEventObject("gridSizeChanged"))};Graph.prototype.setDefaultParent=function(b){this.defaultParent=b;this.fireEvent(new mxEventObject("defaultParentChanged"))};Graph.prototype.getClickableLinkForCell=function(b){do{var c=this.getLinkForCell(b);if(null!=c)return c;b=this.model.getParent(b)}while(null!=b);return null};
Graph.prototype.getGlobalVariable=function(b){var c=null;"date"==b?c=(new Date).toLocaleDateString():"time"==b?c=(new Date).toLocaleTimeString():"timestamp"==b?c=(new Date).toLocaleString():"date{"==b.substring(0,5)&&(b=b.substring(5,b.length-1),c=this.formatDate(new Date,b));return c};
Graph.prototype.formatDate=function(b,c,e){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",
-shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var f=this.dateFormatCache,n=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,l=/[^-+\dA-Z]/g,t=function(b,d){b=String(b);for(d=d||2;b.length<d;)b="0"+b;return b};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(b)||
-/\d/.test(b)||(c=b,b=void 0);b=b?new Date(b):new Date;if(isNaN(b))throw SyntaxError("invalid date");c=String(f.masks[c]||c||f.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),e=!0);var d=e?"getUTC":"get",k=b[d+"Date"](),g=b[d+"Day"](),q=b[d+"Month"](),m=b[d+"FullYear"](),p=b[d+"Hours"](),v=b[d+"Minutes"](),u=b[d+"Seconds"](),d=b[d+"Milliseconds"](),x=e?0:b.getTimezoneOffset(),y={d:k,dd:t(k),ddd:f.i18n.dayNames[g],dddd:f.i18n.dayNames[g+7],m:q+1,mm:t(q+1),mmm:f.i18n.monthNames[q],mmmm:f.i18n.monthNames[q+
-12],yy:String(m).slice(2),yyyy:m,h:p%12||12,hh:t(p%12||12),H:p,HH:t(p),M:v,MM:t(v),s:u,ss:t(u),l:t(d,3),L:t(99<d?Math.round(d/10):d),t:12>p?"a":"p",tt:12>p?"am":"pm",T:12>p?"A":"P",TT:12>p?"AM":"PM",Z:e?"UTC":(String(b).match(n)||[""]).pop().replace(l,""),o:(0<x?"-":"+")+t(100*Math.floor(Math.abs(x)/60)+Math.abs(x)%60,4),S:["th","st","nd","rd"][3<k%10?0:(10!=k%100-k%10)*k%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(b){return b in y?y[b]:b.slice(1,
+shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var f=this.dateFormatCache,n=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,l=/[^-+\dA-Z]/g,q=function(b,d){b=String(b);for(d=d||2;b.length<d;)b="0"+b;return b};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(b)||
+/\d/.test(b)||(c=b,b=void 0);b=b?new Date(b):new Date;if(isNaN(b))throw SyntaxError("invalid date");c=String(f.masks[c]||c||f.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),e=!0);var d=e?"getUTC":"get",k=b[d+"Date"](),g=b[d+"Day"](),t=b[d+"Month"](),m=b[d+"FullYear"](),p=b[d+"Hours"](),v=b[d+"Minutes"](),u=b[d+"Seconds"](),d=b[d+"Milliseconds"](),x=e?0:b.getTimezoneOffset(),y={d:k,dd:q(k),ddd:f.i18n.dayNames[g],dddd:f.i18n.dayNames[g+7],m:t+1,mm:q(t+1),mmm:f.i18n.monthNames[t],mmmm:f.i18n.monthNames[t+
+12],yy:String(m).slice(2),yyyy:m,h:p%12||12,hh:q(p%12||12),H:p,HH:q(p),M:v,MM:q(v),s:u,ss:q(u),l:q(d,3),L:q(99<d?Math.round(d/10):d),t:12>p?"a":"p",tt:12>p?"am":"pm",T:12>p?"A":"P",TT:12>p?"AM":"PM",Z:e?"UTC":(String(b).match(n)||[""]).pop().replace(l,""),o:(0<x?"-":"+")+q(100*Math.floor(Math.abs(x)/60)+Math.abs(x)%60,4),S:["th","st","nd","rd"][3<k%10?0:(10!=k%100-k%10)*k%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(b){return b in y?y[b]:b.slice(1,
b.length-1)})};Graph.prototype.getLayerForCells=function(b){var c=null;if(0<b.length){for(c=b[0];!this.model.isLayer(c);)c=this.model.getParent(c);for(var e=1;e<b.length;e++)if(!this.model.isAncestor(c,b[e])){c=null;break}}return c};
-Graph.prototype.createLayersDialog=function(b,c){var e=document.createElement("div");e.style.position="absolute";for(var f=this.getModel(),n=f.getChildCount(f.root),l=0;l<n;l++)mxUtils.bind(this,function(l){function d(){f.isVisible(l)?(q.setAttribute("src",Editor.visibleImage),mxUtils.setOpacity(g,75)):(q.setAttribute("src",Editor.hiddenImage),mxUtils.setOpacity(g,25))}var k=this.convertValueToString(l)||mxResources.get("background")||"Background",g=document.createElement("div");g.style.overflow=
-"hidden";g.style.textOverflow="ellipsis";g.style.padding="2px";g.style.whiteSpace="nowrap";g.style.cursor="pointer";g.setAttribute("title",mxResources.get(f.isVisible(l)?"hideIt":"show",[k]));var q=document.createElement("img");q.setAttribute("draggable","false");q.setAttribute("align","absmiddle");q.setAttribute("border","0");q.style.position="relative";q.style.width="16px";q.style.padding="0px 6px 0 4px";c&&(q.style.filter="invert(100%)",q.style.top="-2px");g.appendChild(q);mxUtils.write(g,k);e.appendChild(g);
+Graph.prototype.createLayersDialog=function(b,c){var e=document.createElement("div");e.style.position="absolute";for(var f=this.getModel(),n=f.getChildCount(f.root),l=0;l<n;l++)mxUtils.bind(this,function(l){function d(){f.isVisible(l)?(t.setAttribute("src",Editor.visibleImage),mxUtils.setOpacity(g,75)):(t.setAttribute("src",Editor.hiddenImage),mxUtils.setOpacity(g,25))}var k=this.convertValueToString(l)||mxResources.get("background")||"Background",g=document.createElement("div");g.style.overflow=
+"hidden";g.style.textOverflow="ellipsis";g.style.padding="2px";g.style.whiteSpace="nowrap";g.style.cursor="pointer";g.setAttribute("title",mxResources.get(f.isVisible(l)?"hideIt":"show",[k]));var t=document.createElement("img");t.setAttribute("draggable","false");t.setAttribute("align","absmiddle");t.setAttribute("border","0");t.style.position="relative";t.style.width="16px";t.style.padding="0px 6px 0 4px";c&&(t.style.filter="invert(100%)",t.style.top="-2px");g.appendChild(t);mxUtils.write(g,k);e.appendChild(g);
mxEvent.addListener(g,"click",function(){f.setVisible(l,!f.isVisible(l));d();null!=b&&b(l)});d()})(f.getChildAt(f.root,l));return e};
-Graph.prototype.replacePlaceholders=function(b,c,e,f){f=[];if(null!=c){for(var n=0;match=this.placeholderPattern.exec(c);){var l=match[0];if(2<l.length&&"%label%"!=l&&"%tooltip%"!=l){var t=null;if(match.index>n&&"%"==c.charAt(match.index-1))t=l.substring(1);else{var d=l.substring(1,l.length-1);if("id"==d)t=b.id;else if(0>d.indexOf("{"))for(var k=b;null==t&&null!=k;)null!=k.value&&"object"==typeof k.value&&(Graph.translateDiagram&&null!=Graph.diagramLanguage&&(t=k.getAttribute(d+"_"+Graph.diagramLanguage)),
-null==t&&(t=k.hasAttribute(d)?null!=k.getAttribute(d)?k.getAttribute(d):"":null)),k=this.model.getParent(k);null==t&&(t=this.getGlobalVariable(d));null==t&&null!=e&&(t=e[d])}f.push(c.substring(n,match.index)+(null!=t?t:l));n=match.index+l.length}}f.push(c.substring(n))}return f.join("")};Graph.prototype.restoreSelection=function(b){if(null!=b&&0<b.length){for(var c=[],e=0;e<b.length;e++){var f=this.model.getCell(b[e].id);null!=f&&c.push(f)}this.setSelectionCells(c)}else this.clearSelection()};
+Graph.prototype.replacePlaceholders=function(b,c,e,f){f=[];if(null!=c){for(var n=0;match=this.placeholderPattern.exec(c);){var l=match[0];if(2<l.length&&"%label%"!=l&&"%tooltip%"!=l){var q=null;if(match.index>n&&"%"==c.charAt(match.index-1))q=l.substring(1);else{var d=l.substring(1,l.length-1);if("id"==d)q=b.id;else if(0>d.indexOf("{"))for(var k=b;null==q&&null!=k;)null!=k.value&&"object"==typeof k.value&&(Graph.translateDiagram&&null!=Graph.diagramLanguage&&(q=k.getAttribute(d+"_"+Graph.diagramLanguage)),
+null==q&&(q=k.hasAttribute(d)?null!=k.getAttribute(d)?k.getAttribute(d):"":null)),k=this.model.getParent(k);null==q&&(q=this.getGlobalVariable(d));null==q&&null!=e&&(q=e[d])}f.push(c.substring(n,match.index)+(null!=q?q:l));n=match.index+l.length}}f.push(c.substring(n))}return f.join("")};Graph.prototype.restoreSelection=function(b){if(null!=b&&0<b.length){for(var c=[],e=0;e<b.length;e++){var f=this.model.getCell(b[e].id);null!=f&&c.push(f)}this.setSelectionCells(c)}else this.clearSelection()};
Graph.prototype.selectCellForEvent=function(b,c){mxEvent.isShiftDown(c)&&!this.isSelectionEmpty()&&this.selectTableRange(this.getSelectionCell(),b)||mxGraph.prototype.selectCellForEvent.apply(this,arguments)};
-Graph.prototype.selectTableRange=function(b,c){var e=!1;if(this.isTableCell(b)&&this.isTableCell(c)){var f=this.model.getParent(b),n=this.model.getParent(f),l=this.model.getParent(c);if(n==this.model.getParent(l)){for(var t=f.getIndex(b),d=n.getIndex(f),k=l.getIndex(c),g=n.getIndex(l),l=Math.max(d,g),f=Math.min(t,k),t=Math.max(t,k),k=[],d=Math.min(d,g);d<=l;d++)for(var g=this.model.getChildAt(n,d),q=f;q<=t;q++)k.push(this.model.getChildAt(g,q));0<k.length&&(1<k.length||1<this.getSelectionCount()||
+Graph.prototype.selectTableRange=function(b,c){var e=!1;if(this.isTableCell(b)&&this.isTableCell(c)){var f=this.model.getParent(b),n=this.model.getParent(f),l=this.model.getParent(c);if(n==this.model.getParent(l)){for(var q=f.getIndex(b),d=n.getIndex(f),k=l.getIndex(c),g=n.getIndex(l),l=Math.max(d,g),f=Math.min(q,k),q=Math.max(q,k),k=[],d=Math.min(d,g);d<=l;d++)for(var g=this.model.getChildAt(n,d),t=f;t<=q;t++)k.push(this.model.getChildAt(g,t));0<k.length&&(1<k.length||1<this.getSelectionCount()||
!this.isCellSelected(k[0]))&&(this.setSelectionCells(k),e=!0)}}return e};
Graph.prototype.snapCellsToGrid=function(b,c){this.getModel().beginUpdate();try{for(var e=0;e<b.length;e++){var f=b[e],n=this.getCellGeometry(f);if(null!=n){n=n.clone();if(this.getModel().isVertex(f))n.x=Math.round(n.x/c)*c,n.y=Math.round(n.y/c)*c,n.width=Math.round(n.width/c)*c,n.height=Math.round(n.height/c)*c;else if(this.getModel().isEdge(f)&&null!=n.points)for(var l=0;l<n.points.length;l++)n.points[l].x=Math.round(n.points[l].x/c)*c,n.points[l].y=Math.round(n.points[l].y/c)*c;this.getModel().setGeometry(f,
n)}}}finally{this.getModel().endUpdate()}};Graph.prototype.selectCellsForConnectVertex=function(b,c,e){2==b.length&&this.model.isVertex(b[1])?(this.setSelectionCell(b[1]),this.scrollCellToVisible(b[1]),null!=e&&(mxEvent.isTouchEvent(c)?e.update(e.getState(this.view.getState(b[1]))):e.reset())):this.setSelectionCells(b)};
Graph.prototype.isCloneConnectSource=function(b){var c=null;null!=this.layoutManager&&(c=this.layoutManager.getLayout(this.model.getParent(b)));return this.isTableRow(b)||this.isTableCell(b)||null!=c&&c.constructor==mxStackLayout};
-Graph.prototype.connectVertex=function(b,c,e,f,n,l,t,d){l=l?l:!1;if(b.geometry.relative&&this.model.isEdge(b.parent))return[];for(;b.geometry.relative&&this.model.isVertex(b.parent);)b=b.parent;var k=this.isCloneConnectSource(b),g=k?b:this.getCompositeParent(b),q=b.geometry.relative&&null!=b.parent.geometry?new mxPoint(b.parent.geometry.width*b.geometry.x,b.parent.geometry.height*b.geometry.y):new mxPoint(g.geometry.x,g.geometry.y);c==mxConstants.DIRECTION_NORTH?(q.x+=g.geometry.width/2,q.y-=e):c==
-mxConstants.DIRECTION_SOUTH?(q.x+=g.geometry.width/2,q.y+=g.geometry.height+e):(q.x=c==mxConstants.DIRECTION_WEST?q.x-e:q.x+(g.geometry.width+e),q.y+=g.geometry.height/2);var m=this.view.getState(this.model.getParent(b));e=this.view.scale;var p=this.view.translate,g=p.x*e,p=p.y*e;null!=m&&this.model.isVertex(m.cell)&&(g=m.x,p=m.y);this.model.isVertex(b.parent)&&b.geometry.relative&&(q.x+=b.parent.geometry.x,q.y+=b.parent.geometry.y);l=l?null:(new mxRectangle(g+q.x*e,p+q.y*e)).grow(40*e);l=null!=l?
+Graph.prototype.connectVertex=function(b,c,e,f,n,l,q,d){l=l?l:!1;if(b.geometry.relative&&this.model.isEdge(b.parent))return[];for(;b.geometry.relative&&this.model.isVertex(b.parent);)b=b.parent;var k=this.isCloneConnectSource(b),g=k?b:this.getCompositeParent(b),t=b.geometry.relative&&null!=b.parent.geometry?new mxPoint(b.parent.geometry.width*b.geometry.x,b.parent.geometry.height*b.geometry.y):new mxPoint(g.geometry.x,g.geometry.y);c==mxConstants.DIRECTION_NORTH?(t.x+=g.geometry.width/2,t.y-=e):c==
+mxConstants.DIRECTION_SOUTH?(t.x+=g.geometry.width/2,t.y+=g.geometry.height+e):(t.x=c==mxConstants.DIRECTION_WEST?t.x-e:t.x+(g.geometry.width+e),t.y+=g.geometry.height/2);var m=this.view.getState(this.model.getParent(b));e=this.view.scale;var p=this.view.translate,g=p.x*e,p=p.y*e;null!=m&&this.model.isVertex(m.cell)&&(g=m.x,p=m.y);this.model.isVertex(b.parent)&&b.geometry.relative&&(t.x+=b.parent.geometry.x,t.y+=b.parent.geometry.y);l=l?null:(new mxRectangle(g+t.x*e,p+t.y*e)).grow(40*e);l=null!=l?
this.getCells(0,0,0,0,null,null,l,null,!0):null;var m=this.view.getState(b),v=null,u=null;if(null!=l){l=l.reverse();for(var x=0;x<l.length;x++)if(!this.isCellLocked(l[x])&&!this.model.isEdge(l[x])&&l[x]!=b)if(!this.model.isAncestor(b,l[x])&&this.isContainer(l[x])&&(null==v||l[x]==this.model.getParent(b)))v=l[x];else if(null==u&&this.isCellConnectable(l[x])&&!this.model.isAncestor(l[x],b)&&!this.isSwimlane(l[x])){var y=this.view.getState(l[x]);null==m||null==y||mxUtils.intersects(m,y)||(u=l[x])}}var G=
-!mxEvent.isShiftDown(f)||mxEvent.isControlDown(f)||n;G&&("1"!=urlParams.sketch||n)&&(c==mxConstants.DIRECTION_NORTH?q.y-=b.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?q.y+=b.geometry.height/2:q.x=c==mxConstants.DIRECTION_WEST?q.x-b.geometry.width/2:q.x+b.geometry.width/2);var H=[],D=u,u=v;n=mxUtils.bind(this,function(g){if(null==t||null!=g||null==u&&k){this.model.beginUpdate();try{if(null==D&&G){var e=this.getAbsoluteParent(null!=g?g:b),e=k?b:this.getCompositeParent(e);D=null!=g?g:this.duplicateCells([e],
-!1)[0];null!=g&&this.addCells([D],this.model.getParent(b),null,null,null,!0);var m=this.getCellGeometry(D);null!=m&&(null!=g&&"1"==urlParams.sketch&&(c==mxConstants.DIRECTION_NORTH?q.y-=m.height/2:c==mxConstants.DIRECTION_SOUTH?q.y+=m.height/2:q.x=c==mxConstants.DIRECTION_WEST?q.x-m.width/2:q.x+m.width/2),m.x=q.x-m.width/2,m.y=q.y-m.height/2);null!=v?(this.addCells([D],v,null,null,null,!0),u=null):G&&!k&&this.addCells([D],this.getDefaultParent(),null,null,null,!0)}var l=mxEvent.isControlDown(f)&&
+!mxEvent.isShiftDown(f)||mxEvent.isControlDown(f)||n;G&&("1"!=urlParams.sketch||n)&&(c==mxConstants.DIRECTION_NORTH?t.y-=b.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?t.y+=b.geometry.height/2:t.x=c==mxConstants.DIRECTION_WEST?t.x-b.geometry.width/2:t.x+b.geometry.width/2);var H=[],D=u,u=v;n=mxUtils.bind(this,function(g){if(null==q||null!=g||null==u&&k){this.model.beginUpdate();try{if(null==D&&G){var e=this.getAbsoluteParent(null!=g?g:b),e=k?b:this.getCompositeParent(e);D=null!=g?g:this.duplicateCells([e],
+!1)[0];null!=g&&this.addCells([D],this.model.getParent(b),null,null,null,!0);var m=this.getCellGeometry(D);null!=m&&(null!=g&&"1"==urlParams.sketch&&(c==mxConstants.DIRECTION_NORTH?t.y-=m.height/2:c==mxConstants.DIRECTION_SOUTH?t.y+=m.height/2:t.x=c==mxConstants.DIRECTION_WEST?t.x-m.width/2:t.x+m.width/2),m.x=t.x-m.width/2,m.y=t.y-m.height/2);null!=v?(this.addCells([D],v,null,null,null,!0),u=null):G&&!k&&this.addCells([D],this.getDefaultParent(),null,null,null,!0)}var l=mxEvent.isControlDown(f)&&
mxEvent.isShiftDown(f)&&G||null==u&&k?null:this.insertEdge(this.model.getParent(b),null,"",b,D,this.createCurrentEdgeStyle());if(null!=l&&this.connectionHandler.insertBeforeSource){var p=null;for(g=b;null!=g.parent&&null!=g.geometry&&g.geometry.relative&&g.parent!=l.parent;)g=this.model.getParent(g);null!=g&&null!=g.parent&&g.parent==l.parent&&(p=g.parent.getIndex(g),this.model.add(g.parent,l,p))}null==u&&null!=D&&null!=b.parent&&k&&c==mxConstants.DIRECTION_WEST&&(p=b.parent.getIndex(b),this.model.add(b.parent,
-D,p));null!=l&&H.push(l);null==u&&null!=D&&H.push(D);null==D&&null!=l&&l.geometry.setTerminalPoint(q,!1);null!=l&&this.fireEvent(new mxEventObject("cellsInserted","cells",[l]))}finally{this.model.endUpdate()}}if(null!=d)d(H);else return H});if(null==t||null!=D||!G||null==u&&k)return n(D);t(g+q.x*e,p+q.y*e,n)};
+D,p));null!=l&&H.push(l);null==u&&null!=D&&H.push(D);null==D&&null!=l&&l.geometry.setTerminalPoint(t,!1);null!=l&&this.fireEvent(new mxEventObject("cellsInserted","cells",[l]))}finally{this.model.endUpdate()}}if(null!=d)d(H);else return H});if(null==q||null!=D||!G||null==u&&k)return n(D);q(g+t.x*e,p+t.y*e,n)};
Graph.prototype.getIndexableText=function(){var b=document.createElement("div"),c=[],e,f;for(f in this.model.cells)if(e=this.model.cells[f],this.model.isVertex(e)||this.model.isEdge(e))this.isHtmlLabel(e)?(b.innerHTML=this.sanitizeHtml(this.getLabel(e)),e=mxUtils.extractTextWithWhitespace([b])):e=this.getLabel(e),e=mxUtils.trim(e.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<e.length&&c.push(e);return c.join(" ")};
Graph.prototype.convertValueToString=function(b){var c=this.model.getValue(b);if(null!=c&&"object"==typeof c){var e=null;if(this.isReplacePlaceholders(b)&&null!=b.getAttribute("placeholder"))for(var c=b.getAttribute("placeholder"),f=b;null==e&&null!=f;)null!=f.value&&"object"==typeof f.value&&(e=f.hasAttribute(c)?null!=f.getAttribute(c)?f.getAttribute(c):"":null),f=this.model.getParent(f);else e=null,Graph.translateDiagram&&null!=Graph.diagramLanguage&&(e=c.getAttribute("label_"+Graph.diagramLanguage)),
null==e&&(e=c.getAttribute("label")||"");return e||""}return mxGraph.prototype.convertValueToString.apply(this,arguments)};Graph.prototype.getLinksForState=function(b){return null!=b&&null!=b.text&&null!=b.text.node?b.text.node.getElementsByTagName("a"):null};Graph.prototype.getLinkForCell=function(b){return null!=b.value&&"object"==typeof b.value?(b=b.value.getAttribute("link"),null!=b&&"javascript:"===b.toLowerCase().substring(0,11)&&(b=b.substring(11)),b):null};
@@ -2467,10 +2467,10 @@ Graph.prototype.updateHorizontalStyle=function(b,c){if(null!=b&&null!=c&&null!=t
Graph.prototype.replaceDefaultColors=function(b,c){if(null!=c){var e=mxUtils.hex2rgb(this.shapeBackgroundColor),f=mxUtils.hex2rgb(this.shapeForegroundColor);this.replaceDefaultColor(c,mxConstants.STYLE_FONTCOLOR,f);this.replaceDefaultColor(c,mxConstants.STYLE_FILLCOLOR,e);this.replaceDefaultColor(c,mxConstants.STYLE_STROKECOLOR,f);this.replaceDefaultColor(c,mxConstants.STYLE_IMAGE_BORDER,f);this.replaceDefaultColor(c,mxConstants.STYLE_IMAGE_BACKGROUND,e);this.replaceDefaultColor(c,mxConstants.STYLE_LABEL_BORDERCOLOR,
f);this.replaceDefaultColor(c,mxConstants.STYLE_SWIMLANE_FILLCOLOR,e);this.replaceDefaultColor(c,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,e)}return c};Graph.prototype.replaceDefaultColor=function(b,c,e){null!=b&&"default"==b[c]&&null!=e&&(b[c]=e)};
Graph.prototype.updateAlternateBounds=function(b,c,e){if(null!=b&&null!=c&&null!=this.layoutManager&&null!=c.alternateBounds){var f=this.layoutManager.getLayout(this.model.getParent(b));null!=f&&f.constructor==mxStackLayout&&(f.horizontal?c.alternateBounds.height=0:c.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(b,c){return mxEvent.isShiftDown(b)||"1"==mxUtils.getValue(c.style,"moveCells","0")};
-Graph.prototype.foldCells=function(b,c,e,f,n){c=null!=c?c:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),b));if(null!=e){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var l=0;l<e.length;l++){var t=this.view.getState(e[l]),d=this.getCellGeometry(e[l]);if(null!=t&&null!=d){var k=Math.round(d.width-t.width/this.view.scale),g=Math.round(d.height-t.height/this.view.scale);if(0!=g||0!=k){var q=this.model.getParent(e[l]),m=this.layoutManager.getLayout(q);
-null==m?null!=n&&this.isMoveCellsEvent(n,t)&&this.moveSiblings(t,q,k,g):null!=n&&mxEvent.isAltDown(n)||m.constructor!=mxStackLayout||m.resizeLast||this.resizeParentStacks(q,m,k,g)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
-Graph.prototype.moveSiblings=function(b,c,e,f){this.model.beginUpdate();try{var n=this.getCellsBeyond(b.x,b.y,c,!0,!0);for(c=0;c<n.length;c++)if(n[c]!=b.cell){var l=this.view.getState(n[c]),t=this.getCellGeometry(n[c]);null!=l&&null!=t&&(t=t.clone(),t.translate(Math.round(e*Math.max(0,Math.min(1,(l.x-b.x)/b.width))),Math.round(f*Math.max(0,Math.min(1,(l.y-b.y)/b.height)))),this.model.setGeometry(n[c],t))}}finally{this.model.endUpdate()}};
-Graph.prototype.resizeParentStacks=function(b,c,e,f){if(null!=this.layoutManager&&null!=c&&c.constructor==mxStackLayout&&!c.resizeLast){this.model.beginUpdate();try{for(var n=c.horizontal;null!=b&&null!=c&&c.constructor==mxStackLayout&&c.horizontal==n&&!c.resizeLast;){var l=this.getCellGeometry(b),t=this.view.getState(b);null!=t&&null!=l&&(l=l.clone(),c.horizontal?l.width+=e+Math.min(0,t.width/this.view.scale-l.width):l.height+=f+Math.min(0,t.height/this.view.scale-l.height),this.model.setGeometry(b,
+Graph.prototype.foldCells=function(b,c,e,f,n){c=null!=c?c:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),b));if(null!=e){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var l=0;l<e.length;l++){var q=this.view.getState(e[l]),d=this.getCellGeometry(e[l]);if(null!=q&&null!=d){var k=Math.round(d.width-q.width/this.view.scale),g=Math.round(d.height-q.height/this.view.scale);if(0!=g||0!=k){var t=this.model.getParent(e[l]),m=this.layoutManager.getLayout(t);
+null==m?null!=n&&this.isMoveCellsEvent(n,q)&&this.moveSiblings(q,t,k,g):null!=n&&mxEvent.isAltDown(n)||m.constructor!=mxStackLayout||m.resizeLast||this.resizeParentStacks(t,m,k,g)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
+Graph.prototype.moveSiblings=function(b,c,e,f){this.model.beginUpdate();try{var n=this.getCellsBeyond(b.x,b.y,c,!0,!0);for(c=0;c<n.length;c++)if(n[c]!=b.cell){var l=this.view.getState(n[c]),q=this.getCellGeometry(n[c]);null!=l&&null!=q&&(q=q.clone(),q.translate(Math.round(e*Math.max(0,Math.min(1,(l.x-b.x)/b.width))),Math.round(f*Math.max(0,Math.min(1,(l.y-b.y)/b.height)))),this.model.setGeometry(n[c],q))}}finally{this.model.endUpdate()}};
+Graph.prototype.resizeParentStacks=function(b,c,e,f){if(null!=this.layoutManager&&null!=c&&c.constructor==mxStackLayout&&!c.resizeLast){this.model.beginUpdate();try{for(var n=c.horizontal;null!=b&&null!=c&&c.constructor==mxStackLayout&&c.horizontal==n&&!c.resizeLast;){var l=this.getCellGeometry(b),q=this.view.getState(b);null!=q&&null!=l&&(l=l.clone(),c.horizontal?l.width+=e+Math.min(0,q.width/this.view.scale-l.width):l.height+=f+Math.min(0,q.height/this.view.scale-l.height),this.model.setGeometry(b,
l));b=this.model.getParent(b);c=this.layoutManager.getLayout(b)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(b){var c=this.getCurrentCellStyle(b);return this.isSwimlane(b)?"0"!=c.container:"1"==c.container};Graph.prototype.isCellConnectable=function(b){var c=this.getCurrentCellStyle(b);return null!=c.connectable?"0"!=c.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)};
Graph.prototype.isLabelMovable=function(b){var c=this.getCurrentCellStyle(b);return null!=c.movableLabel?"0"!=c.movableLabel:mxGraph.prototype.isLabelMovable.apply(this,arguments)};Graph.prototype.selectAll=function(b){b=b||this.getDefaultParent();this.isCellLocked(b)||mxGraph.prototype.selectAll.apply(this,arguments)};Graph.prototype.selectCells=function(b,c,e){e=e||this.getDefaultParent();this.isCellLocked(e)||mxGraph.prototype.selectCells.apply(this,arguments)};
Graph.prototype.getSwimlaneAt=function(b,c,e){var f=mxGraph.prototype.getSwimlaneAt.apply(this,arguments);this.isCellLocked(f)&&(f=null);return f};Graph.prototype.isCellFoldable=function(b){var c=this.getCurrentCellStyle(b);return this.foldingEnabled&&"0"!=mxUtils.getValue(c,mxConstants.STYLE_RESIZABLE,"1")&&("1"==c.treeFolding||!this.isCellLocked(b)&&(this.isContainer(b)&&"0"!=c.collapsible||!this.isContainer(b)&&"1"==c.collapsible))};
@@ -2507,91 +2507,91 @@ HoverIcons.prototype.repaint=function(){this.bbox=null;if(null!=this.currentStat
var c=this.graph.selectionCellsHandler.getHandler(this.currentState.cell);this.graph.isTableRow(this.currentState.cell)&&(c=this.graph.selectionCellsHandler.getHandler(this.graph.model.getParent(this.currentState.cell)));var e=null;null!=c&&(b.x-=c.horizontalOffset/2,b.y-=c.verticalOffset/2,b.width+=c.horizontalOffset,b.height+=c.verticalOffset,null!=c.rotationShape&&null!=c.rotationShape.node&&"hidden"!=c.rotationShape.node.style.visibility&&"none"!=c.rotationShape.node.style.display&&null!=c.rotationShape.boundingBox&&
(e=c.rotationShape.boundingBox));c=mxUtils.bind(this,function(b,c,g){if(null!=e){var d=new mxRectangle(c,g,b.clientWidth,b.clientHeight);mxUtils.intersects(d,e)&&(b==this.arrowUp?g-=d.y+d.height-e.y:b==this.arrowRight?c+=e.x+e.width-d.x:b==this.arrowDown?g+=e.y+e.height-d.y:b==this.arrowLeft&&(c-=d.x+d.width-e.x))}b.style.left=c+"px";b.style.top=g+"px";mxUtils.setOpacity(b,this.inactiveOpacity)});c(this.arrowUp,Math.round(this.currentState.getCenterX()-this.triangleUp.width/2-this.tolerance),Math.round(b.y-
this.triangleUp.height-this.tolerance));c(this.arrowRight,Math.round(b.x+b.width-this.tolerance),Math.round(this.currentState.getCenterY()-this.triangleRight.height/2-this.tolerance));c(this.arrowDown,parseInt(this.arrowUp.style.left),Math.round(b.y+b.height-this.tolerance));c(this.arrowLeft,Math.round(b.x-this.triangleLeft.width-this.tolerance),parseInt(this.arrowRight.style.top));if(this.checkCollisions){var c=this.graph.getCellAt(b.x+b.width+this.triangleRight.width/2,this.currentState.getCenterY()),
-f=this.graph.getCellAt(b.x-this.triangleLeft.width/2,this.currentState.getCenterY()),n=this.graph.getCellAt(this.currentState.getCenterX(),b.y-this.triangleUp.height/2),b=this.graph.getCellAt(this.currentState.getCenterX(),b.y+b.height+this.triangleDown.height/2);null!=c&&c==f&&f==n&&n==b&&(b=n=f=c=null);var l=this.graph.getCellGeometry(this.currentState.cell),t=mxUtils.bind(this,function(b,c){var d=this.graph.model.isVertex(b)&&this.graph.getCellGeometry(b);null==b||this.graph.model.isAncestor(b,
-this.currentState.cell)||this.graph.isSwimlane(b)||!(null==d||null==l||d.height<3*l.height&&d.width<3*l.width)?c.style.visibility="visible":c.style.visibility="hidden"});t(c,this.arrowRight);t(f,this.arrowLeft);t(n,this.arrowUp);t(b,this.arrowDown)}else this.arrowLeft.style.visibility="visible",this.arrowRight.style.visibility="visible",this.arrowUp.style.visibility="visible",this.arrowDown.style.visibility="visible";this.graph.tooltipHandler.isEnabled()?(this.arrowLeft.setAttribute("title",mxResources.get("plusTooltip")),
+f=this.graph.getCellAt(b.x-this.triangleLeft.width/2,this.currentState.getCenterY()),n=this.graph.getCellAt(this.currentState.getCenterX(),b.y-this.triangleUp.height/2),b=this.graph.getCellAt(this.currentState.getCenterX(),b.y+b.height+this.triangleDown.height/2);null!=c&&c==f&&f==n&&n==b&&(b=n=f=c=null);var l=this.graph.getCellGeometry(this.currentState.cell),q=mxUtils.bind(this,function(b,c){var d=this.graph.model.isVertex(b)&&this.graph.getCellGeometry(b);null==b||this.graph.model.isAncestor(b,
+this.currentState.cell)||this.graph.isSwimlane(b)||!(null==d||null==l||d.height<3*l.height&&d.width<3*l.width)?c.style.visibility="visible":c.style.visibility="hidden"});q(c,this.arrowRight);q(f,this.arrowLeft);q(n,this.arrowUp);q(b,this.arrowDown)}else this.arrowLeft.style.visibility="visible",this.arrowRight.style.visibility="visible",this.arrowUp.style.visibility="visible",this.arrowDown.style.visibility="visible";this.graph.tooltipHandler.isEnabled()?(this.arrowLeft.setAttribute("title",mxResources.get("plusTooltip")),
this.arrowRight.setAttribute("title",mxResources.get("plusTooltip")),this.arrowUp.setAttribute("title",mxResources.get("plusTooltip")),this.arrowDown.setAttribute("title",mxResources.get("plusTooltip"))):(this.arrowLeft.removeAttribute("title"),this.arrowRight.removeAttribute("title"),this.arrowUp.removeAttribute("title"),this.arrowDown.removeAttribute("title"))}else this.reset();null!=this.currentState&&(this.bbox=this.computeBoundingBox(),null!=this.bbox&&this.bbox.grow(10))}};
HoverIcons.prototype.computeBoundingBox=function(){var b=this.graph.model.isEdge(this.currentState.cell)?null:mxRectangle.fromRectangle(this.currentState);this.visitNodes(function(c){null!=c.parentNode&&(c=new mxRectangle(c.offsetLeft,c.offsetTop,c.offsetWidth,c.offsetHeight),null==b?b=c:b.add(c))});return b};
HoverIcons.prototype.getState=function(b){if(null!=b)if(b=b.cell,this.graph.getModel().contains(b)){if(this.graph.getModel().isVertex(b)&&!this.graph.isCellConnectable(b)){var c=this.graph.getModel().getParent(b);this.graph.getModel().isVertex(c)&&this.graph.isCellConnectable(c)&&(b=c)}if(this.graph.isCellLocked(b)||this.graph.model.isEdge(b))b=null;b=this.graph.view.getState(b);null!=b&&null==b.style&&(b=null)}else b=null;return b};
HoverIcons.prototype.update=function(b,c,e){if(!this.graph.connectionArrowsEnabled||null!=b&&"0"==mxUtils.getValue(b.style,"allowArrows","1"))this.reset();else{null!=b&&null!=b.cell.geometry&&b.cell.geometry.relative&&this.graph.model.isEdge(b.cell.parent)&&(b=null);var f=null;this.prev!=b||this.isActive()?(this.startTime=(new Date).getTime(),this.prev=b,f=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=b&&(this.updateThread=window.setTimeout(mxUtils.bind(this,function(){this.isActive()||
this.graph.isMouseDown||this.graph.panningHandler.isActive()||(this.prev=b,this.update(b,c,e))}),this.updateDelay+10))):null!=this.startTime&&(f=(new Date).getTime()-this.startTime);this.setDisplay("");null!=this.currentState&&this.currentState!=b&&f<this.activationDelay&&null!=this.bbox&&!mxUtils.contains(this.bbox,c,e)?this.reset(!1):(null!=this.currentState||f>this.activationDelay)&&this.currentState!=b&&(f>this.updateDelay&&null!=b||null==this.bbox||null==c||null==e||!mxUtils.contains(this.bbox,
c,e))&&(null!=b&&this.graph.isEnabled()?(this.removeNodes(),this.setCurrentState(b),this.repaint(),this.graph.connectionHandler.constraintHandler.currentFocus!=b&&this.graph.connectionHandler.constraintHandler.reset()):this.reset())}};
-HoverIcons.prototype.setCurrentState=function(b){"eastwest"!=b.style.portConstraint&&(this.graph.container.appendChild(this.arrowUp),this.graph.container.appendChild(this.arrowDown));this.graph.container.appendChild(this.arrowRight);this.graph.container.appendChild(this.arrowLeft);this.currentState=b};Graph.prototype.createParent=function(b,c,e,f,n){b=this.cloneCell(b);for(var l=0;l<e;l++){var t=this.cloneCell(c),d=this.getCellGeometry(t);null!=d&&(d.x+=l*f,d.y+=l*n);b.insert(t)}return b};
-Graph.prototype.createTable=function(b,c,e,f,n,l,t,d,k){e=null!=e?e:60;f=null!=f?f:40;l=null!=l?l:30;d=null!=d?d:"shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;";k=null!=k?k:"shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;";return this.createParent(this.createVertex(null,
-null,null!=n?n:"",0,0,c*e,b*f+(null!=n?l:0),null!=t?t:"shape=table;startSize="+(null!=n?l:"0")+";container=1;collapsible=0;childLayout=tableLayout;"),this.createParent(this.createVertex(null,null,"",0,0,c*e,f,d),this.createVertex(null,null,"",0,0,e,f,k),c,e,0),b,0,f)};
-Graph.prototype.setTableValues=function(b,c,e){for(var f=this.model.getChildCells(b,!0),n=0;n<f.length;n++)if(null!=e&&(f[n].value=e[n]),null!=c)for(var l=this.model.getChildCells(f[n],!0),t=0;t<l.length;t++)null!=c[n][t]&&(l[t].value=c[n][t]);return b};
-Graph.prototype.createCrossFunctionalSwimlane=function(b,c,e,f,n,l,t,d,k){e=null!=e?e:120;f=null!=f?f:120;t=null!=t?t:"shape=tableRow;horizontal=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;dropTarget=0;fontStyle=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;startSize=40;collapsible=0;recursiveResize=0;expand=0;";d=null!=d?d:"swimlane;swimlaneHead=0;swimlaneBody=0;fontStyle=0;connectable=0;fillColor=none;startSize=40;collapsible=0;recursiveResize=0;expand=0;";
-k=null!=k?k:"swimlane;swimlaneHead=0;swimlaneBody=0;fontStyle=0;connectable=0;fillColor=none;startSize=0;collapsible=0;recursiveResize=0;expand=0;";n=this.createVertex(null,null,null!=n?n:"",0,0,c*e,b*f,null!=l?l:"shape=table;childLayout=tableLayout;"+(null==n?"startSize=0;fillColor=none;":"startSize=40;")+"collapsible=0;recursiveResize=0;expand=0;");l=mxUtils.getValue(this.getCellStyle(n),mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);n.geometry.width+=l;n.geometry.height+=l;t=this.createVertex(null,
-null,"",0,l,c*e+l,f,t);n.insert(this.createParent(t,this.createVertex(null,null,"",l,0,e,f,d),c,e,0));return 1<b?(t.geometry.y=f+l,this.createParent(n,this.createParent(t,this.createVertex(null,null,"",l,0,e,f,k),c,e,0),b-1,0,f)):n};
-Graph.prototype.visitTableCells=function(b,c){for(var e=null,f=this.model.getChildCells(b,!0),n=this.getActualStartSize(b,!0),l=0;l<f.length;l++){for(var t=this.getActualStartSize(f[l],!0),d=this.model.getChildCells(f[l],!0),k=this.getCellStyle(f[l],!0),g=null,q=[],m=0;m<d.length;m++){var p=this.getCellGeometry(d[m]),v={cell:d[m],rospan:1,colspan:1,row:l,col:m,geo:p},p=null!=p.alternateBounds?p.alternateBounds:p;v.point=new mxPoint(p.width+(null!=g?g.point.x:n.x+t.x),p.height+(null!=e&&null!=e[0]?
-e[0].point.y:n.y+t.y));v.actual=v;null!=e&&null!=e[m]&&1<e[m].rowspan?(v.rowspan=e[m].rowspan-1,v.colspan=e[m].colspan,v.actual=e[m].actual):null!=g&&1<g.colspan?(v.rowspan=g.rowspan,v.colspan=g.colspan-1,v.actual=g.actual):(g=this.getCurrentCellStyle(d[m],!0),null!=g&&(v.rowspan=parseInt(g.rowspan||1),v.colspan=parseInt(g.colspan||1)));g=1==mxUtils.getValue(k,mxConstants.STYLE_SWIMLANE_HEAD,1)&&mxUtils.getValue(k,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE;c(v,d.length,f.length,
-n.x+(g?t.x:0),n.y+(g?t.y:0));q.push(v);g=v}e=q}};Graph.prototype.getTableLines=function(b,c,e){var f=[],n=[];(c||e)&&this.visitTableCells(b,mxUtils.bind(this,function(b,t,d,k,g){c&&b.row<d-1&&(null==f[b.row]&&(f[b.row]=[new mxPoint(k,b.point.y)]),1<b.rowspan&&f[b.row].push(null),f[b.row].push(b.point));e&&b.col<t-1&&(null==n[b.col]&&(n[b.col]=[new mxPoint(b.point.x,g)]),1<b.colspan&&n[b.col].push(null),n[b.col].push(b.point))}));return f.concat(n)};
+HoverIcons.prototype.setCurrentState=function(b){"eastwest"!=b.style.portConstraint&&(this.graph.container.appendChild(this.arrowUp),this.graph.container.appendChild(this.arrowDown));this.graph.container.appendChild(this.arrowRight);this.graph.container.appendChild(this.arrowLeft);this.currentState=b};Graph.prototype.createParent=function(b,c,e,f,n){b=this.cloneCell(b);for(var l=0;l<e;l++){var q=this.cloneCell(c),d=this.getCellGeometry(q);null!=d&&(d.x+=l*f,d.y+=l*n);b.insert(q)}return b};
+Graph.prototype.createTable=function(b,c,e,f,n,l,q,d,k){e=null!=e?e:60;f=null!=f?f:40;l=null!=l?l:30;d=null!=d?d:"shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;";k=null!=k?k:"shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;";return this.createParent(this.createVertex(null,
+null,null!=n?n:"",0,0,c*e,b*f+(null!=n?l:0),null!=q?q:"shape=table;startSize="+(null!=n?l:"0")+";container=1;collapsible=0;childLayout=tableLayout;"),this.createParent(this.createVertex(null,null,"",0,0,c*e,f,d),this.createVertex(null,null,"",0,0,e,f,k),c,e,0),b,0,f)};
+Graph.prototype.setTableValues=function(b,c,e){for(var f=this.model.getChildCells(b,!0),n=0;n<f.length;n++)if(null!=e&&(f[n].value=e[n]),null!=c)for(var l=this.model.getChildCells(f[n],!0),q=0;q<l.length;q++)null!=c[n][q]&&(l[q].value=c[n][q]);return b};
+Graph.prototype.createCrossFunctionalSwimlane=function(b,c,e,f,n,l,q,d,k){e=null!=e?e:120;f=null!=f?f:120;q=null!=q?q:"shape=tableRow;horizontal=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;dropTarget=0;fontStyle=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;startSize=40;collapsible=0;recursiveResize=0;expand=0;";d=null!=d?d:"swimlane;swimlaneHead=0;swimlaneBody=0;fontStyle=0;connectable=0;fillColor=none;startSize=40;collapsible=0;recursiveResize=0;expand=0;";
+k=null!=k?k:"swimlane;swimlaneHead=0;swimlaneBody=0;fontStyle=0;connectable=0;fillColor=none;startSize=0;collapsible=0;recursiveResize=0;expand=0;";n=this.createVertex(null,null,null!=n?n:"",0,0,c*e,b*f,null!=l?l:"shape=table;childLayout=tableLayout;"+(null==n?"startSize=0;fillColor=none;":"startSize=40;")+"collapsible=0;recursiveResize=0;expand=0;");l=mxUtils.getValue(this.getCellStyle(n),mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);n.geometry.width+=l;n.geometry.height+=l;q=this.createVertex(null,
+null,"",0,l,c*e+l,f,q);n.insert(this.createParent(q,this.createVertex(null,null,"",l,0,e,f,d),c,e,0));return 1<b?(q.geometry.y=f+l,this.createParent(n,this.createParent(q,this.createVertex(null,null,"",l,0,e,f,k),c,e,0),b-1,0,f)):n};
+Graph.prototype.visitTableCells=function(b,c){for(var e=null,f=this.model.getChildCells(b,!0),n=this.getActualStartSize(b,!0),l=0;l<f.length;l++){for(var q=this.getActualStartSize(f[l],!0),d=this.model.getChildCells(f[l],!0),k=this.getCellStyle(f[l],!0),g=null,t=[],m=0;m<d.length;m++){var p=this.getCellGeometry(d[m]),v={cell:d[m],rospan:1,colspan:1,row:l,col:m,geo:p},p=null!=p.alternateBounds?p.alternateBounds:p;v.point=new mxPoint(p.width+(null!=g?g.point.x:n.x+q.x),p.height+(null!=e&&null!=e[0]?
+e[0].point.y:n.y+q.y));v.actual=v;null!=e&&null!=e[m]&&1<e[m].rowspan?(v.rowspan=e[m].rowspan-1,v.colspan=e[m].colspan,v.actual=e[m].actual):null!=g&&1<g.colspan?(v.rowspan=g.rowspan,v.colspan=g.colspan-1,v.actual=g.actual):(g=this.getCurrentCellStyle(d[m],!0),null!=g&&(v.rowspan=parseInt(g.rowspan||1),v.colspan=parseInt(g.colspan||1)));g=1==mxUtils.getValue(k,mxConstants.STYLE_SWIMLANE_HEAD,1)&&mxUtils.getValue(k,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE;c(v,d.length,f.length,
+n.x+(g?q.x:0),n.y+(g?q.y:0));t.push(v);g=v}e=t}};Graph.prototype.getTableLines=function(b,c,e){var f=[],n=[];(c||e)&&this.visitTableCells(b,mxUtils.bind(this,function(b,q,d,k,g){c&&b.row<d-1&&(null==f[b.row]&&(f[b.row]=[new mxPoint(k,b.point.y)]),1<b.rowspan&&f[b.row].push(null),f[b.row].push(b.point));e&&b.col<q-1&&(null==n[b.col]&&(n[b.col]=[new mxPoint(b.point.x,g)]),1<b.colspan&&n[b.col].push(null),n[b.col].push(b.point))}));return f.concat(n)};
Graph.prototype.isTableCell=function(b){return this.model.isVertex(b)&&this.isTableRow(this.model.getParent(b))};Graph.prototype.isTableRow=function(b){return this.model.isVertex(b)&&this.isTable(this.model.getParent(b))};Graph.prototype.isTable=function(b){b=this.getCellStyle(b);return null!=b&&"tableLayout"==b.childLayout};Graph.prototype.isStack=function(b){b=this.getCellStyle(b);return null!=b&&"stackLayout"==b.childLayout};
Graph.prototype.isStackChild=function(b){return this.model.isVertex(b)&&this.isStack(this.model.getParent(b))};
-Graph.prototype.setTableRowHeight=function(b,c,e){e=null!=e?e:!0;var f=this.getModel();f.beginUpdate();try{var n=this.getCellGeometry(b);if(null!=n){n=n.clone();n.height+=c;f.setGeometry(b,n);var l=f.getParent(b),t=f.getChildCells(l,!0);if(!e){var d=mxUtils.indexOf(t,b);if(d<t.length-1){var k=t[d+1],g=this.getCellGeometry(k);null!=g&&(g=g.clone(),g.y+=c,g.height-=c,f.setGeometry(k,g))}}var q=this.getCellGeometry(l);null!=q&&(e||(e=b==t[t.length-1]),e&&(q=q.clone(),q.height+=c,f.setGeometry(l,q)))}}finally{f.endUpdate()}};
-Graph.prototype.setTableColumnWidth=function(b,c,e){e=null!=e?e:!1;var f=this.getModel(),n=f.getParent(b),l=f.getParent(n),t=f.getChildCells(n,!0);b=mxUtils.indexOf(t,b);var d=b==t.length-1;f.beginUpdate();try{for(var k=f.getChildCells(l,!0),g=0;g<k.length;g++){var n=k[g],t=f.getChildCells(n,!0),q=t[b],m=this.getCellGeometry(q);null!=m&&(m=m.clone(),m.width+=c,null!=m.alternateBounds&&(m.alternateBounds.width+=c),f.setGeometry(q,m));b<t.length-1&&(q=t[b+1],m=this.getCellGeometry(q),null!=m&&(m=m.clone(),
-m.x+=c,e||(m.width-=c,null!=m.alternateBounds&&(m.alternateBounds.width-=c)),f.setGeometry(q,m)))}if(d||e){var p=this.getCellGeometry(l);null!=p&&(p=p.clone(),p.width+=c,f.setGeometry(l,p))}null!=this.layoutManager&&this.layoutManager.executeLayout(l)}finally{f.endUpdate()}};function TableLayout(b){mxGraphLayout.call(this,b)}TableLayout.prototype=new mxStackLayout;TableLayout.prototype.constructor=TableLayout;TableLayout.prototype.isHorizontal=function(){return!1};
+Graph.prototype.setTableRowHeight=function(b,c,e){e=null!=e?e:!0;var f=this.getModel();f.beginUpdate();try{var n=this.getCellGeometry(b);if(null!=n){n=n.clone();n.height+=c;f.setGeometry(b,n);var l=f.getParent(b),q=f.getChildCells(l,!0);if(!e){var d=mxUtils.indexOf(q,b);if(d<q.length-1){var k=q[d+1],g=this.getCellGeometry(k);null!=g&&(g=g.clone(),g.y+=c,g.height-=c,f.setGeometry(k,g))}}var t=this.getCellGeometry(l);null!=t&&(e||(e=b==q[q.length-1]),e&&(t=t.clone(),t.height+=c,f.setGeometry(l,t)))}}finally{f.endUpdate()}};
+Graph.prototype.setTableColumnWidth=function(b,c,e){e=null!=e?e:!1;var f=this.getModel(),n=f.getParent(b),l=f.getParent(n),q=f.getChildCells(n,!0);b=mxUtils.indexOf(q,b);var d=b==q.length-1;f.beginUpdate();try{for(var k=f.getChildCells(l,!0),g=0;g<k.length;g++){var n=k[g],q=f.getChildCells(n,!0),t=q[b],m=this.getCellGeometry(t);null!=m&&(m=m.clone(),m.width+=c,null!=m.alternateBounds&&(m.alternateBounds.width+=c),f.setGeometry(t,m));b<q.length-1&&(t=q[b+1],m=this.getCellGeometry(t),null!=m&&(m=m.clone(),
+m.x+=c,e||(m.width-=c,null!=m.alternateBounds&&(m.alternateBounds.width-=c)),f.setGeometry(t,m)))}if(d||e){var p=this.getCellGeometry(l);null!=p&&(p=p.clone(),p.width+=c,f.setGeometry(l,p))}null!=this.layoutManager&&this.layoutManager.executeLayout(l)}finally{f.endUpdate()}};function TableLayout(b){mxGraphLayout.call(this,b)}TableLayout.prototype=new mxStackLayout;TableLayout.prototype.constructor=TableLayout;TableLayout.prototype.isHorizontal=function(){return!1};
TableLayout.prototype.isVertexIgnored=function(b){return!this.graph.getModel().isVertex(b)||!this.graph.isCellVisible(b)};TableLayout.prototype.getSize=function(b,c){for(var e=0,f=0;f<b.length;f++)if(!this.isVertexIgnored(b[f])){var n=this.graph.getCellGeometry(b[f]);null!=n&&(e+=c?n.width:n.height)}return e};
-TableLayout.prototype.getRowLayout=function(b,c){for(var e=this.graph.model.getChildCells(b,!0),f=this.graph.getActualStartSize(b,!0),n=this.getSize(e,!0),l=c-f.x-f.width,t=[],f=f.x,d=0;d<e.length;d++){var k=this.graph.getCellGeometry(e[d]);null!=k&&(f+=(null!=k.alternateBounds?k.alternateBounds.width:k.width)*l/n,t.push(Math.round(f)))}return t};
-TableLayout.prototype.layoutRow=function(b,c,e,f){var n=this.graph.getModel(),l=n.getChildCells(b,!0);b=this.graph.getActualStartSize(b,!0);var t=b.x,d=0;null!=c&&(c=c.slice(),c.splice(0,0,b.x));for(var k=0;k<l.length;k++){var g=this.graph.getCellGeometry(l[k]);null!=g&&(g=g.clone(),g.y=b.y,g.height=e-b.y-b.height,null!=c?(g.x=c[k],g.width=c[k+1]-g.x,k==l.length-1&&k<c.length-2&&(g.width=f-g.x-b.x-b.width)):(g.x=t,t+=g.width,k==l.length-1?g.width=f-b.x-b.width-d:d+=g.width),g.alternateBounds=new mxRectangle(0,
+TableLayout.prototype.getRowLayout=function(b,c){for(var e=this.graph.model.getChildCells(b,!0),f=this.graph.getActualStartSize(b,!0),n=this.getSize(e,!0),l=c-f.x-f.width,q=[],f=f.x,d=0;d<e.length;d++){var k=this.graph.getCellGeometry(e[d]);null!=k&&(f+=(null!=k.alternateBounds?k.alternateBounds.width:k.width)*l/n,q.push(Math.round(f)))}return q};
+TableLayout.prototype.layoutRow=function(b,c,e,f){var n=this.graph.getModel(),l=n.getChildCells(b,!0);b=this.graph.getActualStartSize(b,!0);var q=b.x,d=0;null!=c&&(c=c.slice(),c.splice(0,0,b.x));for(var k=0;k<l.length;k++){var g=this.graph.getCellGeometry(l[k]);null!=g&&(g=g.clone(),g.y=b.y,g.height=e-b.y-b.height,null!=c?(g.x=c[k],g.width=c[k+1]-g.x,k==l.length-1&&k<c.length-2&&(g.width=f-g.x-b.x-b.width)):(g.x=q,q+=g.width,k==l.length-1?g.width=f-b.x-b.width-d:d+=g.width),g.alternateBounds=new mxRectangle(0,
0,g.width,g.height),n.setGeometry(l[k],g))}return d};
-TableLayout.prototype.execute=function(b){if(null!=b){var c=this.graph.getActualStartSize(b,!0),e=this.graph.getCellGeometry(b),f=this.graph.getCellStyle(b),n="1"==mxUtils.getValue(f,"resizeLastRow","0"),l="1"==mxUtils.getValue(f,"resizeLast","0"),f="1"==mxUtils.getValue(f,"fixedRows","0"),t=this.graph.getModel(),d=0;t.beginUpdate();try{for(var k=e.height-c.y-c.height,g=e.width-c.x-c.width,q=t.getChildCells(b,!0),m=0;m<q.length;m++)t.setVisible(q[m],!0);var p=this.getSize(q,!1);if(0<k&&0<g&&0<q.length&&
-0<p){if(n){var v=this.graph.getCellGeometry(q[q.length-1]);null!=v&&(v=v.clone(),v.height=k-p+v.height,t.setGeometry(q[q.length-1],v))}for(var u=l?null:this.getRowLayout(q[0],g),x=[],y=c.y,m=0;m<q.length;m++)v=this.graph.getCellGeometry(q[m]),null!=v&&(v=v.clone(),v.x=c.x,v.width=g,v.y=Math.round(y),y=n||f?y+v.height:y+v.height/p*k,v.height=Math.round(y)-v.y,t.setGeometry(q[m],v)),d=Math.max(d,this.layoutRow(q[m],u,v.height,g,x));f&&k<p&&(e=e.clone(),e.height=y+c.height,t.setGeometry(b,e));l&&g<d+
-Graph.minTableColumnWidth&&(e=e.clone(),e.width=d+c.width+c.x+Graph.minTableColumnWidth,t.setGeometry(b,e));this.graph.visitTableCells(b,mxUtils.bind(this,function(b){t.setVisible(b.cell,b.actual.cell==b.cell);if(b.actual.cell!=b.cell){if(b.actual.row==b.row){var d=null!=b.geo.alternateBounds?b.geo.alternateBounds:b.geo;b.actual.geo.width+=d.width}b.actual.col==b.col&&(d=null!=b.geo.alternateBounds?b.geo.alternateBounds:b.geo,b.actual.geo.height+=d.height)}}))}else for(m=0;m<q.length;m++)t.setVisible(q[m],
-!1)}finally{t.endUpdate()}}};
+TableLayout.prototype.execute=function(b){if(null!=b){var c=this.graph.getActualStartSize(b,!0),e=this.graph.getCellGeometry(b),f=this.graph.getCellStyle(b),n="1"==mxUtils.getValue(f,"resizeLastRow","0"),l="1"==mxUtils.getValue(f,"resizeLast","0"),f="1"==mxUtils.getValue(f,"fixedRows","0"),q=this.graph.getModel(),d=0;q.beginUpdate();try{for(var k=e.height-c.y-c.height,g=e.width-c.x-c.width,t=q.getChildCells(b,!0),m=0;m<t.length;m++)q.setVisible(t[m],!0);var p=this.getSize(t,!1);if(0<k&&0<g&&0<t.length&&
+0<p){if(n){var v=this.graph.getCellGeometry(t[t.length-1]);null!=v&&(v=v.clone(),v.height=k-p+v.height,q.setGeometry(t[t.length-1],v))}for(var u=l?null:this.getRowLayout(t[0],g),x=[],y=c.y,m=0;m<t.length;m++)v=this.graph.getCellGeometry(t[m]),null!=v&&(v=v.clone(),v.x=c.x,v.width=g,v.y=Math.round(y),y=n||f?y+v.height:y+v.height/p*k,v.height=Math.round(y)-v.y,q.setGeometry(t[m],v)),d=Math.max(d,this.layoutRow(t[m],u,v.height,g,x));f&&k<p&&(e=e.clone(),e.height=y+c.height,q.setGeometry(b,e));l&&g<d+
+Graph.minTableColumnWidth&&(e=e.clone(),e.width=d+c.width+c.x+Graph.minTableColumnWidth,q.setGeometry(b,e));this.graph.visitTableCells(b,mxUtils.bind(this,function(b){q.setVisible(b.cell,b.actual.cell==b.cell);if(b.actual.cell!=b.cell){if(b.actual.row==b.row){var d=null!=b.geo.alternateBounds?b.geo.alternateBounds:b.geo;b.actual.geo.width+=d.width}b.actual.col==b.col&&(d=null!=b.geo.alternateBounds?b.geo.alternateBounds:b.geo,b.actual.geo.height+=d.height)}}))}else for(m=0;m<t.length;m++)q.setVisible(t[m],
+!1)}finally{q.endUpdate()}}};
(function(){var b=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){b.apply(this,arguments);this.validEdges=[]};var c=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(b,d){d=null!=d?d:!0;var g=this.getState(b);null!=g&&d&&this.graph.model.isEdge(g.cell)&&null!=g.style&&1!=g.style[mxConstants.STYLE_CURVED]&&!g.invalid&&this.updateLineJumps(g)&&this.graph.cellRenderer.redraw(g,!1,this.isRendering());g=c.apply(this,
arguments);null!=g&&d&&this.graph.model.isEdge(g.cell)&&null!=g.style&&1!=g.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(g);return g};var e=mxShape.prototype.paint;mxShape.prototype.paint=function(){e.apply(this,arguments);if(null!=this.state&&null!=this.node&&this.state.view.graph.enableFlowAnimation&&this.state.view.graph.model.isEdge(this.state.cell)&&"1"==mxUtils.getValue(this.state.style,"flowAnimation","0")){var b=this.node.getElementsByTagName("path");if(1<b.length){"1"!=mxUtils.getValue(this.state.style,
mxConstants.STYLE_DASHED,"0")&&b[1].setAttribute("stroke-dasharray",8*this.state.view.scale);var d=this.state.view.graph.getFlowAnimationStyle();null!=d&&b[1].setAttribute("class",d.getAttribute("id"))}}};var f=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(b,d){return f.apply(this,arguments)||null!=b.routedPoints&&null!=d.routedPoints&&!mxUtils.equalPoints(d.routedPoints,b.routedPoints)};var n=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=
function(b){n.apply(this,arguments);this.graph.model.isEdge(b.cell)&&1!=b.style[mxConstants.STYLE_CURVED]&&this.updateLineJumps(b)};mxGraphView.prototype.updateLineJumps=function(b){var d=b.absolutePoints;if(Graph.lineJumpsEnabled){var c=null!=b.routedPoints,g=null;if(null!=d&&null!=this.validEdges&&"none"!==mxUtils.getValue(b.style,"jumpStyle","none")){for(var e=function(d,c,e){var k=new mxPoint(c,e);k.type=d;g.push(k);k=null!=b.routedPoints?b.routedPoints[g.length-1]:null;return null==k||k.type!=
-d||k.x!=c||k.y!=e},k=.5*this.scale,c=!1,g=[],f=0;f<d.length-1;f++){for(var l=d[f+1],q=d[f],n=[],t=d[f+2];f<d.length-2&&mxUtils.ptSegDistSq(q.x,q.y,t.x,t.y,l.x,l.y)<1*this.scale*this.scale;)l=t,f++,t=d[f+2];for(var c=e(0,q.x,q.y)||c,O=0;O<this.validEdges.length;O++){var A=this.validEdges[O],C=A.absolutePoints;if(null!=C&&mxUtils.intersects(b,A)&&"1"!=A.style.noJump)for(A=0;A<C.length-1;A++){for(var E=C[A+1],L=C[A],t=C[A+2];A<C.length-2&&mxUtils.ptSegDistSq(L.x,L.y,t.x,t.y,E.x,E.y)<1*this.scale*this.scale;)E=
-t,A++,t=C[A+2];t=mxUtils.intersection(q.x,q.y,l.x,l.y,L.x,L.y,E.x,E.y);if(null!=t&&(Math.abs(t.x-q.x)>k||Math.abs(t.y-q.y)>k)&&(Math.abs(t.x-l.x)>k||Math.abs(t.y-l.y)>k)&&(Math.abs(t.x-L.x)>k||Math.abs(t.y-L.y)>k)&&(Math.abs(t.x-E.x)>k||Math.abs(t.y-E.y)>k)){E=t.x-q.x;L=t.y-q.y;t={distSq:E*E+L*L,x:t.x,y:t.y};for(E=0;E<n.length;E++)if(n[E].distSq>t.distSq){n.splice(E,0,t);t=null;break}null==t||0!=n.length&&n[n.length-1].x===t.x&&n[n.length-1].y===t.y||n.push(t)}}}for(A=0;A<n.length;A++)c=e(1,n[A].x,
-n[A].y)||c}t=d[d.length-1];c=e(0,t.x,t.y)||c}b.routedPoints=g;return c}return!1};var l=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(b,d,c){this.routedPoints=null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)l.apply(this,arguments);else{var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,e=(parseInt(mxUtils.getValue(this.style,
-"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,k=mxUtils.getValue(this.style,"jumpStyle","none"),f=!0,m=null,q=null,p=[],n=null;b.begin();for(var t=0;t<this.state.routedPoints.length;t++){var A=this.state.routedPoints[t],C=new mxPoint(A.x/this.scale,A.y/this.scale);0==t?C=d[0]:t==this.state.routedPoints.length-1&&(C=d[d.length-1]);var E=!1;if(null!=m&&1==A.type){var L=this.state.routedPoints[t+1],A=L.x/this.scale-C.x,L=L.y/this.scale-C.y,A=A*A+L*L;null==n&&(n=new mxPoint(C.x-m.x,C.y-m.y),
-q=Math.sqrt(n.x*n.x+n.y*n.y),0<q?(n.x=n.x*e/q,n.y=n.y*e/q):n=null);A>e*e&&0<q&&(A=m.x-C.x,L=m.y-C.y,A=A*A+L*L,A>e*e&&(E=new mxPoint(C.x-n.x,C.y-n.y),A=new mxPoint(C.x+n.x,C.y+n.y),p.push(E),this.addPoints(b,p,c,g,!1,null,f),p=0>Math.round(n.x)||0==Math.round(n.x)&&0>=Math.round(n.y)?1:-1,f=!1,"sharp"==k?(b.lineTo(E.x-n.y*p,E.y+n.x*p),b.lineTo(A.x-n.y*p,A.y+n.x*p),b.lineTo(A.x,A.y)):"line"==k?(b.moveTo(E.x+n.y*p,E.y-n.x*p),b.lineTo(E.x-n.y*p,E.y+n.x*p),b.moveTo(A.x-n.y*p,A.y+n.x*p),b.lineTo(A.x+n.y*
-p,A.y-n.x*p),b.moveTo(A.x,A.y)):"arc"==k?(p*=1.3,b.curveTo(E.x-n.y*p,E.y+n.x*p,A.x-n.y*p,A.y+n.x*p,A.x,A.y)):(b.moveTo(A.x,A.y),f=!0),p=[A],E=!0))}else n=null;E||(p.push(C),m=C)}this.addPoints(b,p,c,g,!1,null,f);b.stroke()}};var t=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(b,d,c,g){return null!=d&&"centerPerimeter"==d.style[mxConstants.STYLE_PERIMETER]?new mxPoint(d.getCenterX(),d.getCenterY()):t.apply(this,arguments)};var d=mxGraphView.prototype.updateFloatingTerminalPoint;
-mxGraphView.prototype.updateFloatingTerminalPoint=function(b,c,g,e){if(null==c||null==b||"1"!=c.style.snapToPoint&&"1"!=b.style.snapToPoint)d.apply(this,arguments);else{c=this.getTerminalPort(b,c,e);var k=this.getNextPoint(b,g,e),f=this.graph.isOrthogonal(b),m=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),l=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=m)var q=Math.cos(-m),p=Math.sin(-m),k=mxUtils.getRotatedPoint(k,q,p,l);q=parseFloat(b.style[mxConstants.STYLE_PERIMETER_SPACING]||
-0);q+=parseFloat(b.style[e?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);k=this.getPerimeterPoint(c,k,0==m&&f,q);0!=m&&(q=Math.cos(m),p=Math.sin(m),k=mxUtils.getRotatedPoint(k,q,p,l));b.setAbsoluteTerminalPoint(this.snapToAnchorPoint(b,c,g,e,k),e)}};mxGraphView.prototype.snapToAnchorPoint=function(b,d,c,g,e){if(null!=d&&null!=b){b=this.graph.getAllConnectionConstraints(d);g=c=null;if(null!=b)for(var k=0;k<b.length;k++){var f=this.graph.getConnectionPoint(d,
+d||k.x!=c||k.y!=e},k=.5*this.scale,c=!1,g=[],f=0;f<d.length-1;f++){for(var l=d[f+1],t=d[f],n=[],q=d[f+2];f<d.length-2&&mxUtils.ptSegDistSq(t.x,t.y,q.x,q.y,l.x,l.y)<1*this.scale*this.scale;)l=q,f++,q=d[f+2];for(var c=e(0,t.x,t.y)||c,O=0;O<this.validEdges.length;O++){var A=this.validEdges[O],C=A.absolutePoints;if(null!=C&&mxUtils.intersects(b,A)&&"1"!=A.style.noJump)for(A=0;A<C.length-1;A++){for(var E=C[A+1],J=C[A],q=C[A+2];A<C.length-2&&mxUtils.ptSegDistSq(J.x,J.y,q.x,q.y,E.x,E.y)<1*this.scale*this.scale;)E=
+q,A++,q=C[A+2];q=mxUtils.intersection(t.x,t.y,l.x,l.y,J.x,J.y,E.x,E.y);if(null!=q&&(Math.abs(q.x-t.x)>k||Math.abs(q.y-t.y)>k)&&(Math.abs(q.x-l.x)>k||Math.abs(q.y-l.y)>k)&&(Math.abs(q.x-J.x)>k||Math.abs(q.y-J.y)>k)&&(Math.abs(q.x-E.x)>k||Math.abs(q.y-E.y)>k)){E=q.x-t.x;J=q.y-t.y;q={distSq:E*E+J*J,x:q.x,y:q.y};for(E=0;E<n.length;E++)if(n[E].distSq>q.distSq){n.splice(E,0,q);q=null;break}null==q||0!=n.length&&n[n.length-1].x===q.x&&n[n.length-1].y===q.y||n.push(q)}}}for(A=0;A<n.length;A++)c=e(1,n[A].x,
+n[A].y)||c}q=d[d.length-1];c=e(0,q.x,q.y)||c}b.routedPoints=g;return c}return!1};var l=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(b,d,c){this.routedPoints=null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)l.apply(this,arguments);else{var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,e=(parseInt(mxUtils.getValue(this.style,
+"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,k=mxUtils.getValue(this.style,"jumpStyle","none"),f=!0,m=null,t=null,p=[],n=null;b.begin();for(var q=0;q<this.state.routedPoints.length;q++){var A=this.state.routedPoints[q],C=new mxPoint(A.x/this.scale,A.y/this.scale);0==q?C=d[0]:q==this.state.routedPoints.length-1&&(C=d[d.length-1]);var E=!1;if(null!=m&&1==A.type){var J=this.state.routedPoints[q+1],A=J.x/this.scale-C.x,J=J.y/this.scale-C.y,A=A*A+J*J;null==n&&(n=new mxPoint(C.x-m.x,C.y-m.y),
+t=Math.sqrt(n.x*n.x+n.y*n.y),0<t?(n.x=n.x*e/t,n.y=n.y*e/t):n=null);A>e*e&&0<t&&(A=m.x-C.x,J=m.y-C.y,A=A*A+J*J,A>e*e&&(E=new mxPoint(C.x-n.x,C.y-n.y),A=new mxPoint(C.x+n.x,C.y+n.y),p.push(E),this.addPoints(b,p,c,g,!1,null,f),p=0>Math.round(n.x)||0==Math.round(n.x)&&0>=Math.round(n.y)?1:-1,f=!1,"sharp"==k?(b.lineTo(E.x-n.y*p,E.y+n.x*p),b.lineTo(A.x-n.y*p,A.y+n.x*p),b.lineTo(A.x,A.y)):"line"==k?(b.moveTo(E.x+n.y*p,E.y-n.x*p),b.lineTo(E.x-n.y*p,E.y+n.x*p),b.moveTo(A.x-n.y*p,A.y+n.x*p),b.lineTo(A.x+n.y*
+p,A.y-n.x*p),b.moveTo(A.x,A.y)):"arc"==k?(p*=1.3,b.curveTo(E.x-n.y*p,E.y+n.x*p,A.x-n.y*p,A.y+n.x*p,A.x,A.y)):(b.moveTo(A.x,A.y),f=!0),p=[A],E=!0))}else n=null;E||(p.push(C),m=C)}this.addPoints(b,p,c,g,!1,null,f);b.stroke()}};var q=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(b,d,c,g){return null!=d&&"centerPerimeter"==d.style[mxConstants.STYLE_PERIMETER]?new mxPoint(d.getCenterX(),d.getCenterY()):q.apply(this,arguments)};var d=mxGraphView.prototype.updateFloatingTerminalPoint;
+mxGraphView.prototype.updateFloatingTerminalPoint=function(b,c,g,e){if(null==c||null==b||"1"!=c.style.snapToPoint&&"1"!=b.style.snapToPoint)d.apply(this,arguments);else{c=this.getTerminalPort(b,c,e);var k=this.getNextPoint(b,g,e),f=this.graph.isOrthogonal(b),m=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),l=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=m)var t=Math.cos(-m),p=Math.sin(-m),k=mxUtils.getRotatedPoint(k,t,p,l);t=parseFloat(b.style[mxConstants.STYLE_PERIMETER_SPACING]||
+0);t+=parseFloat(b.style[e?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);k=this.getPerimeterPoint(c,k,0==m&&f,t);0!=m&&(t=Math.cos(m),p=Math.sin(m),k=mxUtils.getRotatedPoint(k,t,p,l));b.setAbsoluteTerminalPoint(this.snapToAnchorPoint(b,c,g,e,k),e)}};mxGraphView.prototype.snapToAnchorPoint=function(b,d,c,g,e){if(null!=d&&null!=b){b=this.graph.getAllConnectionConstraints(d);g=c=null;if(null!=b)for(var k=0;k<b.length;k++){var f=this.graph.getConnectionPoint(d,
b[k]);if(null!=f){var m=(f.x-e.x)*(f.x-e.x)+(f.y-e.y)*(f.y-e.y);if(null==g||m<g)c=f,g=m}}null!=c&&(e=c)}return e};var k=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(b,d,c){var g=k.apply(this,arguments);"1"==b.getAttribute("placeholders")&&null!=c.state&&(g=c.state.view.graph.replacePlaceholders(c.state.cell,g));return g};var g=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(b){if(null!=b.style&&"undefined"!==typeof pako){var d=
mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,null);if(null!=d&&"string"===typeof d&&"stencil("==d.substring(0,8))try{var c=d.substring(8,d.length-1),e=mxUtils.parseXml(Graph.decompress(c));return new mxShape(new mxStencil(e.documentElement))}catch(u){null!=window.console&&console.log("Error in shape: "+u)}}return g.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];
mxStencilRegistry.filesLoaded={};
mxStencilRegistry.getStencil=function(b){var c=mxStencilRegistry.stencils[b];if(null==c&&null==mxCellRenderer.defaultShapes[b]&&mxStencilRegistry.dynamicLoading){var e=mxStencilRegistry.getBasenameForStencil(b);if(null!=e){c=mxStencilRegistry.libraries[e];if(null!=c){if(null==mxStencilRegistry.packages[e]){for(var f=0;f<c.length;f++){var n=c[f];if(!mxStencilRegistry.filesLoaded[n])if(mxStencilRegistry.filesLoaded[n]=!0,".xml"==n.toLowerCase().substring(n.length-4,n.length))mxStencilRegistry.loadStencilSet(n,
-null);else if(".js"==n.toLowerCase().substring(n.length-3,n.length))try{if(mxStencilRegistry.allowEval){var l=mxUtils.load(n);null!=l&&200<=l.getStatus()&&299>=l.getStatus()&&eval.call(window,l.getText())}}catch(t){null!=window.console&&console.log("error in getStencil:",b,e,c,n,t)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);c=mxStencilRegistry.stencils[b]}}return c};
+null);else if(".js"==n.toLowerCase().substring(n.length-3,n.length))try{if(mxStencilRegistry.allowEval){var l=mxUtils.load(n);null!=l&&200<=l.getStatus()&&299>=l.getStatus()&&eval.call(window,l.getText())}}catch(q){null!=window.console&&console.log("error in getStencil:",b,e,c,n,q)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);c=mxStencilRegistry.stencils[b]}}return c};
mxStencilRegistry.getBasenameForStencil=function(b){var c=null;if(null!=b&&"string"===typeof b&&(b=b.split("."),0<b.length&&"mxgraph"==b[0]))for(var c=b[1],e=2;e<b.length-1;e++)c+="/"+b[e];return c};
-mxStencilRegistry.loadStencilSet=function(b,c,e,f){var n=mxStencilRegistry.packages[b];if(null!=e&&e||null==n){var l=!1;if(null==n)try{if(f){mxStencilRegistry.loadStencil(b,mxUtils.bind(this,function(e){null!=e&&null!=e.documentElement&&(mxStencilRegistry.packages[b]=e,l=!0,mxStencilRegistry.parseStencilSet(e.documentElement,c,l))}));return}n=mxStencilRegistry.loadStencil(b);mxStencilRegistry.packages[b]=n;l=!0}catch(t){null!=window.console&&console.log("error in loadStencilSet:",b,t)}null!=n&&null!=
+mxStencilRegistry.loadStencilSet=function(b,c,e,f){var n=mxStencilRegistry.packages[b];if(null!=e&&e||null==n){var l=!1;if(null==n)try{if(f){mxStencilRegistry.loadStencil(b,mxUtils.bind(this,function(e){null!=e&&null!=e.documentElement&&(mxStencilRegistry.packages[b]=e,l=!0,mxStencilRegistry.parseStencilSet(e.documentElement,c,l))}));return}n=mxStencilRegistry.loadStencil(b);mxStencilRegistry.packages[b]=n;l=!0}catch(q){null!=window.console&&console.log("error in loadStencilSet:",b,q)}null!=n&&null!=
n.documentElement&&mxStencilRegistry.parseStencilSet(n.documentElement,c,l)}};mxStencilRegistry.loadStencil=function(b,c){if(null!=c)mxUtils.get(b,mxUtils.bind(this,function(b){c(200<=b.getStatus()&&299>=b.getStatus()?b.getXml():null)}));else return mxUtils.load(b).getXml()};mxStencilRegistry.parseStencilSets=function(b){for(var c=0;c<b.length;c++)mxStencilRegistry.parseStencilSet(mxUtils.parseXml(b[c]).documentElement)};
-mxStencilRegistry.parseStencilSet=function(b,c,e){if("stencils"==b.nodeName)for(var f=b.firstChild;null!=f;)"shapes"==f.nodeName&&mxStencilRegistry.parseStencilSet(f,c,e),f=f.nextSibling;else{e=null!=e?e:!0;var f=b.firstChild,n="";b=b.getAttribute("name");for(null!=b&&(n=b+".");null!=f;){if(f.nodeType==mxConstants.NODETYPE_ELEMENT&&(b=f.getAttribute("name"),null!=b)){var n=n.toLowerCase(),l=b.replace(/ /g,"_");e&&mxStencilRegistry.addStencil(n+l.toLowerCase(),new mxStencil(f));if(null!=c){var t=f.getAttribute("w"),
-d=f.getAttribute("h"),t=null==t?80:parseInt(t,10),d=null==d?80:parseInt(d,10);c(n,l,b,t,d)}}f=f.nextSibling}}};
+mxStencilRegistry.parseStencilSet=function(b,c,e){if("stencils"==b.nodeName)for(var f=b.firstChild;null!=f;)"shapes"==f.nodeName&&mxStencilRegistry.parseStencilSet(f,c,e),f=f.nextSibling;else{e=null!=e?e:!0;var f=b.firstChild,n="";b=b.getAttribute("name");for(null!=b&&(n=b+".");null!=f;){if(f.nodeType==mxConstants.NODETYPE_ELEMENT&&(b=f.getAttribute("name"),null!=b)){var n=n.toLowerCase(),l=b.replace(/ /g,"_");e&&mxStencilRegistry.addStencil(n+l.toLowerCase(),new mxStencil(f));if(null!=c){var q=f.getAttribute("w"),
+d=f.getAttribute("h"),q=null==q?80:parseInt(q,10),d=null==d?80:parseInt(d,10);c(n,l,b,q,d)}}f=f.nextSibling}}};
"undefined"!==typeof mxVertexHandler&&function(){function b(){var b=document.createElement("div");b.className="geHint";b.style.whiteSpace="nowrap";b.style.position="absolute";return b}function c(b,d){switch(d){case mxConstants.POINTS:return b;case mxConstants.MILLIMETERS:return(b/mxConstants.PIXELS_PER_MM).toFixed(1);case mxConstants.METERS:return(b/(1E3*mxConstants.PIXELS_PER_MM)).toFixed(4);case mxConstants.INCHES:return(b/mxConstants.PIXELS_PER_INCH).toFixed(2)}}mxConstants.HANDLE_FILLCOLOR="#29b6f2";
mxConstants.HANDLE_STROKECOLOR="#0088cf";mxConstants.VERTEX_SELECTION_COLOR="#00a8ff";mxConstants.OUTLINE_COLOR="#00a8ff";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.EDGE_SELECTION_COLOR="#00a8ff";mxConstants.DEFAULT_VALID_COLOR="#00a8ff";mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff";mxConstants.GUIDE_COLOR="#0088cf";mxConstants.HIGHLIGHT_OPACITY=30;mxConstants.HIGHLIGHT_SIZE=5;mxEdgeHandler.prototype.snapToTerminals=
!0;mxGraphHandler.prototype.guidesEnabled=!0;mxGraphHandler.prototype.removeEmptyParents=!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(b){return!mxEvent.isAltDown(b)};var e=mxGraphLayout.prototype.isVertexIgnored;mxGraphLayout.prototype.isVertexIgnored=function(b){return e.apply(this,arguments)||this.graph.isTableRow(b)||this.graph.isTableCell(b)};var f=mxGraphLayout.prototype.isEdgeIgnored;mxGraphLayout.prototype.isEdgeIgnored=function(b){return f.apply(this,arguments)||
this.graph.isEdgeIgnored(b)};var n=mxConnectionHandler.prototype.isCreateTarget;mxConnectionHandler.prototype.isCreateTarget=function(b){return this.graph.isCloneEvent(b)!=n.apply(this,arguments)};mxConstraintHandler.prototype.createHighlightShape=function(){var b=new mxEllipse(null,this.highlightColor,this.highlightColor,0);b.opacity=mxConstants.HIGHLIGHT_OPACITY;return b};mxConnectionHandler.prototype.livePreview=!0;mxConnectionHandler.prototype.cursor="crosshair";mxConnectionHandler.prototype.createEdgeState=
function(b){b=this.graph.createCurrentEdgeStyle();b=this.graph.createEdge(null,null,null,null,null,b);b=new mxCellState(this.graph.view,b,this.graph.getCellStyle(b));for(var d in this.graph.currentEdgeStyle)b.style[d]=this.graph.currentEdgeStyle[d];b.style=this.graph.postProcessCellStyle(b.cell,b.style);return b};var l=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var b=l.apply(this,arguments);b.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];
-return b};mxConnectionHandler.prototype.updatePreview=function(b){};var t=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var b=t.apply(this,arguments),d=b.getCell;b.getCell=mxUtils.bind(this,function(b){var c=d.apply(this,arguments);this.error=null;return c});return b};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=
+return b};mxConnectionHandler.prototype.updatePreview=function(b){};var q=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var b=q.apply(this,arguments),d=b.getCell;b.getCell=mxUtils.bind(this,function(b){var c=d.apply(this,arguments);this.error=null;return c});return b};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=
function(){for(var b="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";",d="shape curved rounded comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle jumpStyle jumpSize".split(" "),c=0;c<d.length;c++)null!=this.currentEdgeStyle[d[c]]&&(b+=d[c]+"="+this.currentEdgeStyle[d[c]]+";");null!=this.currentEdgeStyle.orthogonalLoop?b+="orthogonalLoop="+this.currentEdgeStyle.orthogonalLoop+";":null!=Graph.prototype.defaultEdgeStyle.orthogonalLoop&&
(b+="orthogonalLoop="+Graph.prototype.defaultEdgeStyle.orthogonalLoop+";");null!=this.currentEdgeStyle.jettySize?b+="jettySize="+this.currentEdgeStyle.jettySize+";":null!=Graph.prototype.defaultEdgeStyle.jettySize&&(b+="jettySize="+Graph.prototype.defaultEdgeStyle.jettySize+";");"elbowEdgeStyle"==this.currentEdgeStyle.edgeStyle&&null!=this.currentEdgeStyle.elbow&&(b+="elbow="+this.currentEdgeStyle.elbow+";");return b=null!=this.currentEdgeStyle.html?b+("html="+this.currentEdgeStyle.html+";"):b+"html=1;"};
Graph.prototype.getPagePadding=function(){return new mxPoint(0,0)};Graph.prototype.loadStylesheet=function(){var b=null!=this.themes?this.themes[this.defaultThemeName]:mxStyleRegistry.dynamicLoading?mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement():null;null!=b&&(new mxCodec(b.ownerDocument)).decode(b,this.getStylesheet())};Graph.prototype.createCellLookup=function(b,d){d=null!=d?d:{};for(var c=0;c<b.length;c++){var g=b[c];d[mxObjectIdentity.get(g)]=g.getId();for(var e=this.model.getChildCount(g),
-k=0;k<e;k++)this.createCellLookup([this.model.getChildAt(g,k)],d)}return d};Graph.prototype.createCellMapping=function(b,d,c){c=null!=c?c:{};for(var g in b){var e=d[g];null==c[e]&&(c[e]=b[g].getId()||"")}return c};Graph.prototype.importGraphModel=function(b,d,c,g){d=null!=d?d:0;c=null!=c?c:0;var e=new mxCodec(b.ownerDocument),k=new mxGraphModel;e.decode(b,k);b=[];var e={},f={},m=k.getChildren(this.cloneCell(k.root,this.isCloneInvalidEdges(),e));if(null!=m){var l=this.createCellLookup([k.root]),m=
-m.slice();this.model.beginUpdate();try{if(1!=m.length||this.isCellLocked(this.getDefaultParent()))for(k=0;k<m.length;k++)q=this.model.getChildren(this.moveCells([m[k]],d,c,!1,this.model.getRoot())[0]),null!=q&&(b=b.concat(q));else{var q=k.getChildren(m[0]);null!=q&&(b=this.moveCells(q,d,c,!1,this.getDefaultParent()),f[k.getChildAt(k.root,0).getId()]=this.getDefaultParent().getId())}if(null!=b&&(this.createCellMapping(e,l,f),this.updateCustomLinks(f,b),g)){this.isGridEnabled()&&(d=this.snap(d),c=this.snap(c));
-var p=this.getBoundingBoxFromGeometry(b,!0);null!=p&&this.moveCells(b,d-p.x,c-p.y)}}finally{this.model.endUpdate()}}return b};Graph.prototype.encodeCells=function(b){for(var d={},c=this.cloneCells(b,null,d),g=new mxDictionary,e=0;e<b.length;e++)g.put(b[e],!0);for(var k=new mxCodec,f=new mxGraphModel,m=f.getChildAt(f.getRoot(),0),e=0;e<c.length;e++){f.add(m,c[e]);var l=this.view.getState(b[e]);if(null!=l){var q=this.getCellGeometry(c[e]);null!=q&&q.relative&&!this.model.isEdge(b[e])&&null==g.get(this.model.getParent(b[e]))&&
-(q.offset=null,q.relative=!1,q.x=l.x/l.view.scale-l.view.translate.x,q.y=l.y/l.view.scale-l.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(d,this.createCellLookup(b)),c);return k.encode(f)};Graph.prototype.isSwimlane=function(b,d){var c=null;null==b||this.model.isEdge(b)||this.model.getParent(b)==this.model.getRoot()||(c=this.getCurrentCellStyle(b,d)[mxConstants.STYLE_SHAPE]);return c==mxConstants.SHAPE_SWIMLANE||"table"==c||"tableRow"==c};var d=Graph.prototype.isExtendParent;Graph.prototype.isExtendParent=
-function(b){var c=this.model.getParent(b);if(null!=c){var g=this.getCurrentCellStyle(c);if(null!=g.expand)return"0"!=g.expand}return d.apply(this,arguments)&&(null==c||!this.isTable(c))};var k=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(b,d,c,g,e,f,m,l){null==l&&(l=this.model.getParent(b),this.isTable(l)||this.isTableRow(l))&&(l=this.getCellAt(f,m,null,!0,!1));c=null;this.model.beginUpdate();try{c=k.apply(this,[b,d,c,g,e,f,m,l]);this.model.setValue(c,"");var q=this.getChildCells(c,
-!0);for(d=0;d<q.length;d++){var p=this.getCellGeometry(q[d]);null!=p&&p.relative&&0<p.x&&this.model.remove(q[d])}var B=this.getChildCells(b,!0);for(d=0;d<B.length;d++)p=this.getCellGeometry(B[d]),null!=p&&p.relative&&0>=p.x&&this.model.remove(B[d]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,null,[c]);this.setCellStyles(mxConstants.STYLE_ENDARROW,mxConstants.NONE,[c]);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,null,[b]);this.setCellStyles(mxConstants.STYLE_STARTARROW,
+k=0;k<e;k++)this.createCellLookup([this.model.getChildAt(g,k)],d)}return d};Graph.prototype.createCellMapping=function(b,d,c){c=null!=c?c:{};for(var g in b){var e=d[g];null==c[e]&&(c[e]=b[g].getId()||"")}return c};Graph.prototype.importGraphModel=function(b,d,c,g){d=null!=d?d:0;c=null!=c?c:0;var e=new mxCodec(b.ownerDocument),k=new mxGraphModel;e.decode(b,k);b=[];var e={},f={},l=k.getChildren(this.cloneCell(k.root,this.isCloneInvalidEdges(),e));if(null!=l){var m=this.createCellLookup([k.root]),l=
+l.slice();this.model.beginUpdate();try{if(1!=l.length||this.isCellLocked(this.getDefaultParent()))for(k=0;k<l.length;k++)t=this.model.getChildren(this.moveCells([l[k]],d,c,!1,this.model.getRoot())[0]),null!=t&&(b=b.concat(t));else{var t=k.getChildren(l[0]);null!=t&&(b=this.moveCells(t,d,c,!1,this.getDefaultParent()),f[k.getChildAt(k.root,0).getId()]=this.getDefaultParent().getId())}if(null!=b&&(this.createCellMapping(e,m,f),this.updateCustomLinks(f,b),g)){this.isGridEnabled()&&(d=this.snap(d),c=this.snap(c));
+var p=this.getBoundingBoxFromGeometry(b,!0);null!=p&&this.moveCells(b,d-p.x,c-p.y)}}finally{this.model.endUpdate()}}return b};Graph.prototype.encodeCells=function(b){for(var d={},c=this.cloneCells(b,null,d),g=new mxDictionary,e=0;e<b.length;e++)g.put(b[e],!0);for(var k=new mxCodec,f=new mxGraphModel,l=f.getChildAt(f.getRoot(),0),e=0;e<c.length;e++){f.add(l,c[e]);var m=this.view.getState(b[e]);if(null!=m){var t=this.getCellGeometry(c[e]);null!=t&&t.relative&&!this.model.isEdge(b[e])&&null==g.get(this.model.getParent(b[e]))&&
+(t.offset=null,t.relative=!1,t.x=m.x/m.view.scale-m.view.translate.x,t.y=m.y/m.view.scale-m.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(d,this.createCellLookup(b)),c);return k.encode(f)};Graph.prototype.isSwimlane=function(b,d){var c=null;null==b||this.model.isEdge(b)||this.model.getParent(b)==this.model.getRoot()||(c=this.getCurrentCellStyle(b,d)[mxConstants.STYLE_SHAPE]);return c==mxConstants.SHAPE_SWIMLANE||"table"==c||"tableRow"==c};var d=Graph.prototype.isExtendParent;Graph.prototype.isExtendParent=
+function(b){var c=this.model.getParent(b);if(null!=c){var g=this.getCurrentCellStyle(c);if(null!=g.expand)return"0"!=g.expand}return d.apply(this,arguments)&&(null==c||!this.isTable(c))};var k=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(b,d,c,g,e,f,l,m){null==m&&(m=this.model.getParent(b),this.isTable(m)||this.isTableRow(m))&&(m=this.getCellAt(f,l,null,!0,!1));c=null;this.model.beginUpdate();try{c=k.apply(this,[b,d,c,g,e,f,l,m]);this.model.setValue(c,"");var t=this.getChildCells(c,
+!0);for(d=0;d<t.length;d++){var p=this.getCellGeometry(t[d]);null!=p&&p.relative&&0<p.x&&this.model.remove(t[d])}var B=this.getChildCells(b,!0);for(d=0;d<B.length;d++)p=this.getCellGeometry(B[d]),null!=p&&p.relative&&0>=p.x&&this.model.remove(B[d]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,null,[c]);this.setCellStyles(mxConstants.STYLE_ENDARROW,mxConstants.NONE,[c]);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,null,[b]);this.setCellStyles(mxConstants.STYLE_STARTARROW,
mxConstants.NONE,[b]);var n=this.model.getTerminal(c,!1);if(null!=n){var u=this.getCurrentCellStyle(n);null!=u&&"1"==u.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[b]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[b]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[c]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[c]))}}finally{this.model.endUpdate()}return c};var g=Graph.prototype.selectCell;Graph.prototype.selectCell=function(b,d,c){if(d||c)g.apply(this,arguments);
else{var e=this.getSelectionCell(),k=null,f=[],m=mxUtils.bind(this,function(d){if(null!=this.view.getState(d)&&(this.model.isVertex(d)||this.model.isEdge(d)))if(f.push(d),d==e)k=f.length-1;else if(b&&null==e&&0<f.length||null!=k&&b&&f.length>k||!b&&0<k)return;for(var c=0;c<this.model.getChildCount(d);c++)m(this.model.getChildAt(d,c))});m(this.model.root);0<f.length&&(k=null!=k?mxUtils.mod(k+(b?1:-1),f.length):0,this.setSelectionCell(f[k]))}};Graph.prototype.swapShapes=function(b,d,c,g,e,k,f){d=!1;
-if(!g&&null!=e&&1==b.length&&(g=this.view.getState(e),c=this.view.getState(b[0]),null!=g&&null!=c&&(null!=k&&mxEvent.isShiftDown(k)||"umlLifeline"==g.style.shape&&"umlLifeline"==c.style.shape)&&(g=this.getCellGeometry(e),k=this.getCellGeometry(b[0]),null!=g&&null!=k))){d=g.clone();g=k.clone();g.x=d.x;g.y=d.y;d.x=k.x;d.y=k.y;this.model.beginUpdate();try{this.model.setGeometry(e,d),this.model.setGeometry(b[0],g)}finally{this.model.endUpdate()}d=!0}return d};var q=Graph.prototype.moveCells;Graph.prototype.moveCells=
+if(!g&&null!=e&&1==b.length&&(g=this.view.getState(e),c=this.view.getState(b[0]),null!=g&&null!=c&&(null!=k&&mxEvent.isShiftDown(k)||"umlLifeline"==g.style.shape&&"umlLifeline"==c.style.shape)&&(g=this.getCellGeometry(e),k=this.getCellGeometry(b[0]),null!=g&&null!=k))){d=g.clone();g=k.clone();g.x=d.x;g.y=d.y;d.x=k.x;d.y=k.y;this.model.beginUpdate();try{this.model.setGeometry(e,d),this.model.setGeometry(b[0],g)}finally{this.model.endUpdate()}d=!0}return d};var t=Graph.prototype.moveCells;Graph.prototype.moveCells=
function(b,d,c,g,e,k,f){if(this.swapShapes(b,d,c,g,e,k,f))return b;f=null!=f?f:{};if(this.isTable(e)){for(var m=[],l=0;l<b.length;l++)this.isTable(b[l])?m=m.concat(this.model.getChildCells(b[l],!0).reverse()):m.push(b[l]);b=m}this.model.beginUpdate();try{m=[];for(l=0;l<b.length;l++)if(null!=e&&this.isTableRow(b[l])){var p=this.model.getParent(b[l]),B=this.getCellGeometry(b[l]);this.isTable(p)&&m.push(p);if(null!=p&&null!=B&&this.isTable(p)&&this.isTable(e)&&(g||p!=e)){if(!g){var n=this.getCellGeometry(p);
-null!=n&&(n=n.clone(),n.height-=B.height,this.model.setGeometry(p,n))}n=this.getCellGeometry(e);null!=n&&(n=n.clone(),n.height+=B.height,this.model.setGeometry(e,n));var u=this.model.getChildCells(e,!0);if(0<u.length){b[l]=g?this.cloneCell(b[l]):b[l];var v=this.model.getChildCells(b[l],!0),ea=this.model.getChildCells(u[0],!0),y=ea.length-v.length;if(0<y)for(var x=0;x<y;x++){var J=this.cloneCell(v[v.length-1]);null!=J&&(J.value="",this.model.add(b[l],J))}else if(0>y)for(x=0;x>y;x--)this.model.remove(v[v.length+
-x-1]);v=this.model.getChildCells(b[l],!0);for(x=0;x<ea.length;x++){var ia=this.getCellGeometry(ea[x]),K=this.getCellGeometry(v[x]);null!=ia&&null!=K&&(K=K.clone(),K.width=ia.width,this.model.setGeometry(v[x],K))}}}}for(var t=q.apply(this,arguments),l=0;l<m.length;l++)!g&&this.model.contains(m[l])&&0==this.model.getChildCount(m[l])&&this.model.remove(m[l]);g&&this.updateCustomLinks(this.createCellMapping(f,this.createCellLookup(b)),t)}finally{this.model.endUpdate()}return t};var m=Graph.prototype.removeCells;
-Graph.prototype.removeCells=function(b,d){var c=[];this.model.beginUpdate();try{for(var g=0;g<b.length;g++)if(this.isTableCell(b[g])){var e=this.model.getParent(b[g]),k=this.model.getParent(e);1==this.model.getChildCount(e)&&1==this.model.getChildCount(k)?0>mxUtils.indexOf(b,k)&&0>mxUtils.indexOf(c,k)&&c.push(k):this.labelChanged(b[g],"")}else{if(this.isTableRow(b[g])&&(k=this.model.getParent(b[g]),0>mxUtils.indexOf(b,k)&&0>mxUtils.indexOf(c,k))){for(var f=this.model.getChildCells(k,!0),l=0,q=0;q<
-f.length;q++)0<=mxUtils.indexOf(b,f[q])&&l++;l==f.length&&c.push(k)}c.push(b[g])}c=m.apply(this,[c,d])}finally{this.model.endUpdate()}return c};Graph.prototype.updateCustomLinks=function(b,d,c){c=null!=c?c:new Graph;for(var g=0;g<d.length;g++)null!=d[g]&&c.updateCustomLinksForCell(b,d[g],c)};Graph.prototype.updateCustomLinksForCell=function(b,d){this.doUpdateCustomLinksForCell(b,d);for(var c=this.model.getChildCount(d),g=0;g<c;g++)this.updateCustomLinksForCell(b,this.model.getChildAt(d,g))};Graph.prototype.doUpdateCustomLinksForCell=
+null!=n&&(n=n.clone(),n.height-=B.height,this.model.setGeometry(p,n))}n=this.getCellGeometry(e);null!=n&&(n=n.clone(),n.height+=B.height,this.model.setGeometry(e,n));var u=this.model.getChildCells(e,!0);if(0<u.length){b[l]=g?this.cloneCell(b[l]):b[l];var v=this.model.getChildCells(b[l],!0),ea=this.model.getChildCells(u[0],!0),y=ea.length-v.length;if(0<y)for(var x=0;x<y;x++){var L=this.cloneCell(v[v.length-1]);null!=L&&(L.value="",this.model.add(b[l],L))}else if(0>y)for(x=0;x>y;x--)this.model.remove(v[v.length+
+x-1]);v=this.model.getChildCells(b[l],!0);for(x=0;x<ea.length;x++){var ia=this.getCellGeometry(ea[x]),K=this.getCellGeometry(v[x]);null!=ia&&null!=K&&(K=K.clone(),K.width=ia.width,this.model.setGeometry(v[x],K))}}}}for(var q=t.apply(this,arguments),l=0;l<m.length;l++)!g&&this.model.contains(m[l])&&0==this.model.getChildCount(m[l])&&this.model.remove(m[l]);g&&this.updateCustomLinks(this.createCellMapping(f,this.createCellLookup(b)),q)}finally{this.model.endUpdate()}return q};var m=Graph.prototype.removeCells;
+Graph.prototype.removeCells=function(b,d){var c=[];this.model.beginUpdate();try{for(var g=0;g<b.length;g++)if(this.isTableCell(b[g])){var e=this.model.getParent(b[g]),k=this.model.getParent(e);1==this.model.getChildCount(e)&&1==this.model.getChildCount(k)?0>mxUtils.indexOf(b,k)&&0>mxUtils.indexOf(c,k)&&c.push(k):this.labelChanged(b[g],"")}else{if(this.isTableRow(b[g])&&(k=this.model.getParent(b[g]),0>mxUtils.indexOf(b,k)&&0>mxUtils.indexOf(c,k))){for(var f=this.model.getChildCells(k,!0),l=0,t=0;t<
+f.length;t++)0<=mxUtils.indexOf(b,f[t])&&l++;l==f.length&&c.push(k)}c.push(b[g])}c=m.apply(this,[c,d])}finally{this.model.endUpdate()}return c};Graph.prototype.updateCustomLinks=function(b,d,c){c=null!=c?c:new Graph;for(var g=0;g<d.length;g++)null!=d[g]&&c.updateCustomLinksForCell(b,d[g],c)};Graph.prototype.updateCustomLinksForCell=function(b,d){this.doUpdateCustomLinksForCell(b,d);for(var c=this.model.getChildCount(d),g=0;g<c;g++)this.updateCustomLinksForCell(b,this.model.getChildAt(d,g))};Graph.prototype.doUpdateCustomLinksForCell=
function(b,d){};Graph.prototype.getAllConnectionConstraints=function(b,d){if(null!=b){var c=mxUtils.getValue(b.style,"points",null);if(null!=c){var g=[];try{for(var e=JSON.parse(c),c=0;c<e.length;c++){var k=e[c];g.push(new mxConnectionConstraint(new mxPoint(k[0],k[1]),2<k.length?"0"!=k[2]:!0,null,3<k.length?k[3]:0,4<k.length?k[4]:0))}}catch(aa){}return g}if(null!=b.shape&&null!=b.shape.bounds){k=b.shape.direction;e=b.shape.bounds;c=b.shape.scale;g=e.width/c;e=e.height/c;if(k==mxConstants.DIRECTION_NORTH||
k==mxConstants.DIRECTION_SOUTH)k=g,g=e,e=k;c=b.shape.getConstraints(b.style,g,e);if(null!=c)return c;if(null!=b.shape.stencil&&null!=b.shape.stencil.constraints)return b.shape.stencil.constraints;if(null!=b.shape.constraints)return b.shape.constraints}}return null};Graph.prototype.flipEdge=function(b){if(null!=b){var d=this.getCurrentCellStyle(b),d=mxUtils.getValue(d,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL;
this.setCellStyles(mxConstants.STYLE_ELBOW,d,[b])}};Graph.prototype.isValidRoot=function(b){for(var d=this.model.getChildCount(b),c=0,g=0;g<d;g++){var e=this.model.getChildAt(b,g);this.model.isVertex(e)&&(e=this.getCellGeometry(e),null==e||e.relative||c++)}return 0<c||this.isContainer(b)};Graph.prototype.isValidDropTarget=function(b,d,c){for(var g=this.getCurrentCellStyle(b),e=!0,k=!0,f=0;f<d.length&&k;f++)e=e&&this.isTable(d[f]),k=k&&this.isTableRow(d[f]);return(1==d.length&&null!=c&&mxEvent.isShiftDown(c)&&
!mxEvent.isControlDown(c)&&!mxEvent.isAltDown(c)||("1"!=mxUtils.getValue(g,"part","0")||this.isContainer(b))&&"0"!=mxUtils.getValue(g,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(b))&&!this.isTableRow(b)&&(!this.isTable(b)||k||e))&&!this.isCellLocked(b)};Graph.prototype.createGroupCell=function(){var b=mxGraph.prototype.createGroupCell.apply(this,arguments);b.setStyle("group");return b};Graph.prototype.isExtendParentsOnAdd=function(b){var d=mxGraph.prototype.isExtendParentsOnAdd.apply(this,
arguments);if(d&&null!=b&&null!=this.layoutManager){var c=this.model.getParent(b);null!=c&&(c=this.layoutManager.getLayout(c),null!=c&&c.constructor==mxStackLayout&&(d=!1))}return d};Graph.prototype.getPreferredSizeForCell=function(b){var d=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=d&&(d.width+=10,d.height+=4,this.gridEnabled&&(d.width=this.snap(d.width),d.height=this.snap(d.height)));return d};Graph.prototype.turnShapes=function(b,d){var c=this.getModel(),g=[];c.beginUpdate();
-try{for(var e=0;e<b.length;e++){var k=b[e];if(c.isEdge(k)){var f=c.getTerminal(k,!0),l=c.getTerminal(k,!1);c.setTerminal(k,l,!0);c.setTerminal(k,f,!1);var m=c.getGeometry(k);if(null!=m){m=m.clone();null!=m.points&&m.points.reverse();var q=m.getTerminalPoint(!0),p=m.getTerminalPoint(!1);m.setTerminalPoint(q,!1);m.setTerminalPoint(p,!0);c.setGeometry(k,m);var B=this.view.getState(k),n=this.view.getState(f),u=this.view.getState(l);if(null!=B){var v=null!=n?this.getConnectionConstraint(B,n,!0):null,ea=
+try{for(var e=0;e<b.length;e++){var k=b[e];if(c.isEdge(k)){var f=c.getTerminal(k,!0),l=c.getTerminal(k,!1);c.setTerminal(k,l,!0);c.setTerminal(k,f,!1);var m=c.getGeometry(k);if(null!=m){m=m.clone();null!=m.points&&m.points.reverse();var t=m.getTerminalPoint(!0),p=m.getTerminalPoint(!1);m.setTerminalPoint(t,!1);m.setTerminalPoint(p,!0);c.setGeometry(k,m);var B=this.view.getState(k),n=this.view.getState(f),u=this.view.getState(l);if(null!=B){var v=null!=n?this.getConnectionConstraint(B,n,!0):null,ea=
null!=u?this.getConnectionConstraint(B,u,!1):null;this.setConnectionConstraint(k,f,!0,ea);this.setConnectionConstraint(k,l,!1,v);var y=mxUtils.getValue(B.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(B.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[k]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,y,[k])}g.push(k)}}else if(c.isVertex(k)&&(m=this.getCellGeometry(k),null!=m)){if(!(this.isTable(k)||
-this.isTableRow(k)||this.isTableCell(k)||this.isSwimlane(k))){m=m.clone();m.x+=m.width/2-m.height/2;m.y+=m.height/2-m.width/2;var x=m.width;m.width=m.height;m.height=x;c.setGeometry(k,m)}var J=this.view.getState(k);if(null!=J){var K=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],t=mxUtils.getValue(J.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,K[mxUtils.mod(mxUtils.indexOf(K,
-t)+(d?-1:1),K.length)],[k])}g.push(k)}}}finally{c.endUpdate()}return g};Graph.prototype.stencilHasPlaceholders=function(b){if(null!=b&&null!=b.fgNode)for(b=b.fgNode.firstChild;null!=b;){if("text"==b.nodeName&&"1"==b.getAttribute("placeholders"))return!0;b=b.nextSibling}return!1};var p=Graph.prototype.processChange;Graph.prototype.processChange=function(b){if(b instanceof mxGeometryChange&&(this.isTableCell(b.cell)||this.isTableRow(b.cell))&&(null==b.previous&&null!=b.geometry||null!=b.previous&&!b.previous.equals(b.geometry))){var d=
+this.isTableRow(k)||this.isTableCell(k)||this.isSwimlane(k))){m=m.clone();m.x+=m.width/2-m.height/2;m.y+=m.height/2-m.width/2;var x=m.width;m.width=m.height;m.height=x;c.setGeometry(k,m)}var L=this.view.getState(k);if(null!=L){var K=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],q=mxUtils.getValue(L.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,K[mxUtils.mod(mxUtils.indexOf(K,
+q)+(d?-1:1),K.length)],[k])}g.push(k)}}}finally{c.endUpdate()}return g};Graph.prototype.stencilHasPlaceholders=function(b){if(null!=b&&null!=b.fgNode)for(b=b.fgNode.firstChild;null!=b;){if("text"==b.nodeName&&"1"==b.getAttribute("placeholders"))return!0;b=b.nextSibling}return!1};var p=Graph.prototype.processChange;Graph.prototype.processChange=function(b){if(b instanceof mxGeometryChange&&(this.isTableCell(b.cell)||this.isTableRow(b.cell))&&(null==b.previous&&null!=b.geometry||null!=b.previous&&!b.previous.equals(b.geometry))){var d=
b.cell;this.isTableCell(d)&&(d=this.model.getParent(d));this.isTableRow(d)&&(d=this.model.getParent(d));var c=this.view.getState(d);null!=c&&null!=c.shape&&(this.view.invalidate(d),c.shape.bounds=null)}p.apply(this,arguments);b instanceof mxValueChange&&null!=b.cell&&null!=b.cell.value&&"object"==typeof b.cell.value&&this.invalidateDescendantsWithPlaceholders(b.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=function(b){b=this.model.getDescendants(b);if(0<b.length)for(var d=0;d<b.length;d++){var c=
this.view.getState(b[d]);null!=c&&null!=c.shape&&null!=c.shape.stencil&&this.stencilHasPlaceholders(c.shape.stencil)?this.removeStateForCell(b[d]):this.isReplacePlaceholders(b[d])&&this.view.invalidate(b[d],!1,!1)}};Graph.prototype.replaceElement=function(b,d){for(var c=b.ownerDocument.createElement(null!=d?d:"span"),g=Array.prototype.slice.call(b.attributes);attr=g.pop();)c.setAttribute(attr.nodeName,attr.nodeValue);c.innerHTML=b.innerHTML;b.parentNode.replaceChild(c,b)};Graph.prototype.processElements=
function(b,d){if(null!=b)for(var c=b.getElementsByTagName("*"),g=0;g<c.length;g++)d(c[g])};Graph.prototype.updateLabelElements=function(b,d,c){b=null!=b?b:this.getSelectionCells();for(var g=document.createElement("div"),e=0;e<b.length;e++)if(this.isHtmlLabel(b[e])){var k=this.convertValueToString(b[e]);if(null!=k&&0<k.length){g.innerHTML=k;for(var f=g.getElementsByTagName(null!=c?c:"*"),m=0;m<f.length;m++)d(f[m]);g.innerHTML!=k&&this.cellLabelChanged(b[e],g.innerHTML)}}};Graph.prototype.cellLabelChanged=
@@ -2614,17 +2614,17 @@ d.getGraphY());(c>k||g>k)&&this.clear()}}else{for(c=d.getSource();null!=c&&"a"!=
e&&"a"!=e.nodeName.toLowerCase();)e=e.parentNode;null==e&&Math.abs(this.scrollLeft-f.container.scrollLeft)<k&&Math.abs(this.scrollTop-f.container.scrollTop)<k&&(null==g.sourceState||!g.isSource(g.sourceState.control))&&((mxEvent.isLeftMouseButton(m)||mxEvent.isMiddleMouseButton(m))&&!mxEvent.isPopupTrigger(m)||mxEvent.isTouchEvent(m))&&(null!=this.currentLink?(e=f.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&e||null==d||d(m,this.currentLink),mxEvent.isConsumed(m)||(m=null!=
this.currentTarget?this.currentTarget:mxEvent.isMiddleMouseButton(m)?"_blank":e?f.linkTarget:"_top",f.openLink(this.currentLink,m),g.consume())):null!=c&&!g.isConsumed()&&Math.abs(this.scrollLeft-f.container.scrollLeft)<k&&Math.abs(this.scrollTop-f.container.scrollTop)<k&&Math.abs(this.startX-g.getGraphX())<k&&Math.abs(this.startY-g.getGraphY())<k&&c(g.getEvent()));this.clear()},activate:function(b){this.currentLink=f.getAbsoluteUrl(f.getLinkForCell(b.cell));null!=this.currentLink&&(this.currentTarget=
f.getLinkTargetForCell(b.cell),f.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(b))},clear:function(){null!=f.container&&(f.container.style.cursor=e);this.currentLink=this.currentState=this.currentTarget=null;null!=this.highlight&&this.highlight.hide();null!=f.tooltipHandler&&f.tooltipHandler.hide()}};f.click=function(b){};f.addMouseListener(m);mxEvent.addListener(document,"mouseleave",function(b){m.clear()})};Graph.prototype.duplicateCells=function(b,d){b=null!=b?
-b:this.getSelectionCells();d=null!=d?d:!0;for(var c=0;c<b.length;c++)this.isTableCell(b[c])&&(b[c]=this.model.getParent(b[c]));b=this.model.getTopmostCells(b);var g=this.getModel(),e=this.gridSize,k=[];g.beginUpdate();try{for(var f={},m=this.createCellLookup(b),l=this.cloneCells(b,!1,f,!0),c=0;c<b.length;c++){var q=g.getParent(b[c]);if(null!=q){var p=this.moveCells([l[c]],e,e,!1)[0];k.push(p);if(d)g.add(q,l[c]);else{var B=q.getIndex(b[c]);g.add(q,l[c],B+1)}if(this.isTable(q)){var n=this.getCellGeometry(l[c]),
-u=this.getCellGeometry(q);null!=n&&null!=u&&(u=u.clone(),u.height+=n.height,g.setGeometry(q,u))}}else k.push(l[c])}this.updateCustomLinks(this.createCellMapping(f,m),l,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",l))}finally{g.endUpdate()}return k};Graph.prototype.insertImage=function(b,d,c){if(null!=b&&null!=this.cellEditor.textarea){for(var g=this.cellEditor.textarea.getElementsByTagName("img"),e=[],k=0;k<g.length;k++)e.push(g[k]);document.execCommand("insertimage",!1,b);b=
+b:this.getSelectionCells();d=null!=d?d:!0;for(var c=0;c<b.length;c++)this.isTableCell(b[c])&&(b[c]=this.model.getParent(b[c]));b=this.model.getTopmostCells(b);var g=this.getModel(),e=this.gridSize,k=[];g.beginUpdate();try{for(var f={},m=this.createCellLookup(b),l=this.cloneCells(b,!1,f,!0),c=0;c<b.length;c++){var t=g.getParent(b[c]);if(null!=t){var p=this.moveCells([l[c]],e,e,!1)[0];k.push(p);if(d)g.add(t,l[c]);else{var B=t.getIndex(b[c]);g.add(t,l[c],B+1)}if(this.isTable(t)){var n=this.getCellGeometry(l[c]),
+u=this.getCellGeometry(t);null!=n&&null!=u&&(u=u.clone(),u.height+=n.height,g.setGeometry(t,u))}}else k.push(l[c])}this.updateCustomLinks(this.createCellMapping(f,m),l,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",l))}finally{g.endUpdate()}return k};Graph.prototype.insertImage=function(b,d,c){if(null!=b&&null!=this.cellEditor.textarea){for(var g=this.cellEditor.textarea.getElementsByTagName("img"),e=[],k=0;k<g.length;k++)e.push(g[k]);document.execCommand("insertimage",!1,b);b=
this.cellEditor.textarea.getElementsByTagName("img");if(b.length==e.length+1)for(k=b.length-1;0<=k;k--)if(0==k||b[k]!=e[k-1]){b[k].setAttribute("width",d);b[k].setAttribute("height",c);break}}};Graph.prototype.insertLink=function(b){if(null!=this.cellEditor.textarea)if(0==b.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var d=this.cellEditor.textarea.getElementsByTagName("a"),c=[],g=0;g<d.length;g++)c.push(d[g]);document.execCommand("createlink",!1,mxUtils.trim(b));d=this.cellEditor.textarea.getElementsByTagName("a");
if(d.length==c.length+1)for(g=d.length-1;0<=g;g--)if(d[g]!=c[g-1]){for(d=d[g].getElementsByTagName("a");0<d.length;){for(c=d[0].parentNode;null!=d[0].firstChild;)c.insertBefore(d[0].firstChild,d[0]);c.removeChild(d[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(b))};Graph.prototype.isCellResizable=function(b){var d=mxGraph.prototype.isCellResizable.apply(this,arguments),c=this.getCurrentCellStyle(b);return!this.isTableCell(b)&&!this.isTableRow(b)&&(d||"0"!=mxUtils.getValue(c,mxConstants.STYLE_RESIZABLE,
"1")&&"wrap"==c[mxConstants.STYLE_WHITE_SPACE])};Graph.prototype.distributeCells=function(b,d){null==d&&(d=this.getSelectionCells());if(null!=d&&1<d.length){for(var c=[],g=null,e=null,k=0;k<d.length;k++)if(this.getModel().isVertex(d[k])){var f=this.view.getState(d[k]);if(null!=f){var m=b?f.getCenterX():f.getCenterY(),g=null!=g?Math.max(g,m):m,e=null!=e?Math.min(e,m):m;c.push(f)}}if(2<c.length){c.sort(function(d,c){return b?d.x-c.x:d.y-c.y});f=this.view.translate;m=this.view.scale;e=e/m-(b?f.x:f.y);
-g=g/m-(b?f.x:f.y);this.getModel().beginUpdate();try{for(var l=(g-e)/(c.length-1),g=e,k=1;k<c.length-1;k++){var q=this.view.getState(this.model.getParent(c[k].cell)),p=this.getCellGeometry(c[k].cell),g=g+l;null!=p&&null!=q&&(p=p.clone(),b?p.x=Math.round(g-p.width/2)-q.origin.x:p.y=Math.round(g-p.height/2)-q.origin.y,this.getModel().setGeometry(c[k].cell,p))}}finally{this.getModel().endUpdate()}}}return d};Graph.prototype.isCloneEvent=function(b){return mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)};
-Graph.prototype.createSvgImageExport=function(){var b=new mxImageExport;b.getLinkForCellState=mxUtils.bind(this,function(b,d){return this.getLinkForCell(b.cell)});return b};Graph.prototype.parseBackgroundImage=function(b){var d=null;null!=b&&0<b.length&&(b=JSON.parse(b),d=new mxImage(b.src,b.width,b.height));return d};Graph.prototype.getBackgroundImageObject=function(b){return b};Graph.prototype.getSvg=function(b,d,c,g,e,k,f,m,l,q,p,B,n,u){var v=null;if(null!=u)for(v=new mxDictionary,p=0;p<u.length;p++)v.put(u[p],
-!0);if(u=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;c=null!=c?c:0;e=null!=e?e:!0;k=null!=k?k:!0;f=null!=f?f:!0;q=null!=q?q:!1;var y="page"==n?this.view.getBackgroundPageBounds():k&&null==v||g||"diagram"==n?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),x=this.view.scale;"diagram"==n&&null!=this.backgroundImage&&(y=mxRectangle.fromRectangle(y),y.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*
-x,(this.view.translate.y+this.backgroundImage.y)*x,this.backgroundImage.width*x,this.backgroundImage.height*x)));if(null==y)throw Error(mxResources.get("drawingEmpty"));var J=mxUtils.createXmlDocument(),K=null!=J.createElementNS?J.createElementNS(mxConstants.NS_SVG,"svg"):J.createElement("svg");null!=b&&(null!=K.style?K.style.backgroundColor=b:K.setAttribute("style","background-color:"+b));null==J.createElementNS?(K.setAttribute("xmlns",mxConstants.NS_SVG),K.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):
-K.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);b=d/x;var t=Math.max(1,Math.ceil(y.width*b)+2*c)+(q&&0==c?5:0),ea=Math.max(1,Math.ceil(y.height*b)+2*c)+(q&&0==c?5:0);K.setAttribute("version","1.1");K.setAttribute("width",t+"px");K.setAttribute("height",ea+"px");K.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+t+" "+ea);J.appendChild(K);var A=null!=J.createElementNS?J.createElementNS(mxConstants.NS_SVG,"g"):J.createElement("g");K.appendChild(A);var I=this.createSvgCanvas(A);
-I.foOffset=e?-.5:0;I.textOffset=e?-.5:0;I.imageOffset=e?-.5:0;I.translate(Math.floor(c/d-y.x/x),Math.floor(c/d-y.y/x));var fa=document.createElement("div"),M=I.getAlternateText;I.getAlternateText=function(b,d,c,g,e,k,f,m,l,q,p,B,n){if(null!=k&&0<this.state.fontSize)try{mxUtils.isNode(k)?k=k.innerText:(fa.innerHTML=k,k=mxUtils.extractTextWithWhitespace(fa.childNodes));for(var u=Math.ceil(2*g/this.state.fontSize),v=[],z=0,va=0;(0==u||z<u)&&va<k.length;){var Ua=k.charCodeAt(va);if(10==Ua||13==Ua){if(0<
+g=g/m-(b?f.x:f.y);this.getModel().beginUpdate();try{for(var l=(g-e)/(c.length-1),g=e,k=1;k<c.length-1;k++){var t=this.view.getState(this.model.getParent(c[k].cell)),p=this.getCellGeometry(c[k].cell),g=g+l;null!=p&&null!=t&&(p=p.clone(),b?p.x=Math.round(g-p.width/2)-t.origin.x:p.y=Math.round(g-p.height/2)-t.origin.y,this.getModel().setGeometry(c[k].cell,p))}}finally{this.getModel().endUpdate()}}}return d};Graph.prototype.isCloneEvent=function(b){return mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)};
+Graph.prototype.createSvgImageExport=function(){var b=new mxImageExport;b.getLinkForCellState=mxUtils.bind(this,function(b,d){return this.getLinkForCell(b.cell)});return b};Graph.prototype.parseBackgroundImage=function(b){var d=null;null!=b&&0<b.length&&(b=JSON.parse(b),d=new mxImage(b.src,b.width,b.height));return d};Graph.prototype.getBackgroundImageObject=function(b){return b};Graph.prototype.getSvg=function(b,d,c,g,e,k,f,m,l,t,p,B,n,u){var v=null;if(null!=u)for(v=new mxDictionary,p=0;p<u.length;p++)v.put(u[p],
+!0);if(u=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;c=null!=c?c:0;e=null!=e?e:!0;k=null!=k?k:!0;f=null!=f?f:!0;t=null!=t?t:!1;var y="page"==n?this.view.getBackgroundPageBounds():k&&null==v||g||"diagram"==n?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),x=this.view.scale;"diagram"==n&&null!=this.backgroundImage&&(y=mxRectangle.fromRectangle(y),y.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*
+x,(this.view.translate.y+this.backgroundImage.y)*x,this.backgroundImage.width*x,this.backgroundImage.height*x)));if(null==y)throw Error(mxResources.get("drawingEmpty"));var L=mxUtils.createXmlDocument(),K=null!=L.createElementNS?L.createElementNS(mxConstants.NS_SVG,"svg"):L.createElement("svg");null!=b&&(null!=K.style?K.style.backgroundColor=b:K.setAttribute("style","background-color:"+b));null==L.createElementNS?(K.setAttribute("xmlns",mxConstants.NS_SVG),K.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):
+K.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);b=d/x;var q=Math.max(1,Math.ceil(y.width*b)+2*c)+(t&&0==c?5:0),ea=Math.max(1,Math.ceil(y.height*b)+2*c)+(t&&0==c?5:0);K.setAttribute("version","1.1");K.setAttribute("width",q+"px");K.setAttribute("height",ea+"px");K.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+q+" "+ea);L.appendChild(K);var A=null!=L.createElementNS?L.createElementNS(mxConstants.NS_SVG,"g"):L.createElement("g");K.appendChild(A);var I=this.createSvgCanvas(A);
+I.foOffset=e?-.5:0;I.textOffset=e?-.5:0;I.imageOffset=e?-.5:0;I.translate(Math.floor(c/d-y.x/x),Math.floor(c/d-y.y/x));var fa=document.createElement("div"),M=I.getAlternateText;I.getAlternateText=function(b,d,c,g,e,k,f,m,l,t,p,B,n){if(null!=k&&0<this.state.fontSize)try{mxUtils.isNode(k)?k=k.innerText:(fa.innerHTML=k,k=mxUtils.extractTextWithWhitespace(fa.childNodes));for(var u=Math.ceil(2*g/this.state.fontSize),v=[],z=0,va=0;(0==u||z<u)&&va<k.length;){var Ua=k.charCodeAt(va);if(10==Ua||13==Ua){if(0<
z)break}else v.push(k.charAt(va)),255>Ua&&z++;va++}v.length<k.length&&1<k.length-v.length&&(k=mxUtils.trim(v.join(""))+"...");return k}catch(Ja){return M.apply(this,arguments)}else return M.apply(this,arguments)};var W=this.backgroundImage;if(null!=W){d=x/d;var ia=this.view.translate,la=new mxRectangle((W.x+ia.x)*d,(W.y+ia.y)*d,W.width*d,W.height*d);mxUtils.intersects(y,la)&&I.image(W.x+ia.x,W.y+ia.y,W.width,W.height,W.src,!0)}I.scale(b);I.textEnabled=f;m=null!=m?m:this.createSvgImageExport();var C=
m.drawCellState,Q=m.getLinkForCellState;m.getLinkForCellState=function(b,d){var c=Q.apply(this,arguments);return null==c||b.view.graph.isCustomLink(c)?null:c};m.getLinkTargetForCellState=function(b,d){return b.view.graph.getLinkTargetForCell(b.cell)};m.drawCellState=function(b,d){for(var c=b.view.graph,g=null!=v?v.get(b.cell):c.isCellSelected(b.cell),e=c.model.getParent(b.cell);!(k&&null==v||g)&&null!=e;)g=null!=v?v.get(e):c.isCellSelected(e),e=c.model.getParent(e);(k&&null==v||g)&&C.apply(this,arguments)};
m.drawState(this.getView().getState(this.model.root),I);this.updateSvgLinks(K,l,!0);this.addForeignObjectWarning(I,K);return K}finally{u&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(b,d){if("0"!=urlParams["svg-warning"]&&0<d.getElementsByTagName("foreignObject").length){var c=b.createElement("switch"),g=b.createElement("g");g.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var e=b.createElement("a");
@@ -2637,12 +2637,12 @@ b&&(d?b.x=c+(c-b.x):b.y=c+(c-b.y))};e(g.getTerminalPoint(!0));e(g.getTerminalPoi
function(b,d){this.model.beginUpdate();try{b=this.model.getTopmostCells(b);for(var c=[],g=0;g<b.length;g++)if(this.model.isEdge(b[g])){var e=this.view.getState(b[g]);null!=e&&this.flipEdgePoints(b[g],d,(d?e.getCenterX():e.getCenterY())/this.view.scale-(d?e.origin.x:e.origin.y)-(d?this.view.translate.x:this.view.translate.y))}else{var k=this.getCellGeometry(b[g]);null!=k&&this.flipChildren(b[g],d,d?k.getCenterX()-k.x:k.getCenterY()-k.y);c.push(b[g])}this.toggleCellStyles(d?mxConstants.STYLE_FLIPH:
mxConstants.STYLE_FLIPV,!1,c)}finally{this.model.endUpdate()}};Graph.prototype.deleteCells=function(b,d){var c=null;if(null!=b&&0<b.length){this.model.beginUpdate();try{for(var g=0;g<b.length;g++){var e=this.model.getParent(b[g]);if(this.isTable(e)){var k=this.getCellGeometry(b[g]),f=this.getCellGeometry(e);null!=k&&null!=f&&(f=f.clone(),f.height-=k.height,this.model.setGeometry(e,f))}}var m=this.selectParentAfterDelete?this.model.getParents(b):null;this.removeCells(b,d)}finally{this.model.endUpdate()}if(null!=
m)for(c=[],g=0;g<m.length;g++)this.model.contains(m[g])&&(this.model.isVertex(m[g])||this.model.isEdge(m[g]))&&c.push(m[g])}return c};Graph.prototype.insertTableColumn=function(b,d){var c=this.getModel();c.beginUpdate();try{var g=b,e=0;if(this.isTableCell(b))var k=c.getParent(b),g=c.getParent(k),e=mxUtils.indexOf(c.getChildCells(k,!0),b);else this.isTableRow(b)?g=c.getParent(b):b=c.getChildCells(g,!0)[0],d||(e=c.getChildCells(b,!0).length-1);for(var f=c.getChildCells(g,!0),m=Graph.minTableColumnWidth,
-k=0;k<f.length;k++){var l=c.getChildCells(f[k],!0)[e],q=c.cloneCell(l,!1),p=this.getCellGeometry(q);q.value=null;q.style=mxUtils.setStyle(mxUtils.setStyle(q.style,"rowspan",null),"colspan",null);if(null!=p){null!=p.alternateBounds&&(p.width=p.alternateBounds.width,p.height=p.alternateBounds.height,p.alternateBounds=null);var m=p.width,B=this.getCellGeometry(f[k]);null!=B&&(p.height=B.height)}c.add(f[k],q,e+(d?0:1))}var n=this.getCellGeometry(g);null!=n&&(n=n.clone(),n.width+=m,c.setGeometry(g,n))}finally{c.endUpdate()}};
+k=0;k<f.length;k++){var l=c.getChildCells(f[k],!0)[e],t=c.cloneCell(l,!1),p=this.getCellGeometry(t);t.value=null;t.style=mxUtils.setStyle(mxUtils.setStyle(t.style,"rowspan",null),"colspan",null);if(null!=p){null!=p.alternateBounds&&(p.width=p.alternateBounds.width,p.height=p.alternateBounds.height,p.alternateBounds=null);var m=p.width,B=this.getCellGeometry(f[k]);null!=B&&(p.height=B.height)}c.add(f[k],t,e+(d?0:1))}var n=this.getCellGeometry(g);null!=n&&(n=n.clone(),n.width+=m,c.setGeometry(g,n))}finally{c.endUpdate()}};
Graph.prototype.deleteLane=function(b){var d=this.getModel();d.beginUpdate();try{var c=null,c="stackLayout"==this.getCurrentCellStyle(b).childLayout?b:d.getParent(b),g=d.getChildCells(c,!0);0==g.length?d.remove(c):(c==b&&(b=g[g.length-1]),d.remove(b))}finally{d.endUpdate()}};Graph.prototype.insertLane=function(b,d){var c=this.getModel();c.beginUpdate();try{var g=null,e=b;if("stackLayout"==this.getCurrentCellStyle(e).childLayout)var g=e,k=c.getChildCells(g,!0),e=k[d?0:k.length-1];else g=c.getParent(e);
var f=g.getIndex(e),e=c.cloneCell(e,!1);e.value=null;c.add(g,e,f+(d?0:1))}finally{c.endUpdate()}};Graph.prototype.insertTableRow=function(b,d){var c=this.getModel();c.beginUpdate();try{var g=b,e=b;if(this.isTableCell(b))e=c.getParent(b),g=c.getParent(e);else if(this.isTableRow(b))g=c.getParent(b);else var k=c.getChildCells(g,!0),e=k[d?0:k.length-1];var f=c.getChildCells(e,!0),m=g.getIndex(e),e=c.cloneCell(e,!1);e.value=null;var l=this.getCellGeometry(e);if(null!=l){for(k=0;k<f.length;k++){b=c.cloneCell(f[k],
-!1);b.value=null;b.style=mxUtils.setStyle(mxUtils.setStyle(b.style,"rowspan",null),"colspan",null);var q=this.getCellGeometry(b);null!=q&&(null!=q.alternateBounds&&(q.width=q.alternateBounds.width,q.height=q.alternateBounds.height,q.alternateBounds=null),q.height=l.height);e.insert(b)}c.add(g,e,m+(d?0:1));var p=this.getCellGeometry(g);null!=p&&(p=p.clone(),p.height+=l.height,c.setGeometry(g,p))}}finally{c.endUpdate()}};Graph.prototype.deleteTableColumn=function(b){var d=this.getModel();d.beginUpdate();
-try{var c=b,g=b;this.isTableCell(b)&&(g=d.getParent(b));this.isTableRow(g)&&(c=d.getParent(g));var e=d.getChildCells(c,!0);if(0==e.length)d.remove(c);else{this.isTableRow(g)||(g=e[0]);var k=d.getChildCells(g,!0);if(1>=k.length)d.remove(c);else{var f=k.length-1;this.isTableCell(b)&&(f=mxUtils.indexOf(k,b));for(g=b=0;g<e.length;g++){var m=d.getChildCells(e[g],!0)[f];d.remove(m);var l=this.getCellGeometry(m);null!=l&&(b=Math.max(b,l.width))}var q=this.getCellGeometry(c);null!=q&&(q=q.clone(),q.width-=
-b,d.setGeometry(c,q))}}}finally{d.endUpdate()}};Graph.prototype.deleteTableRow=function(b){var d=this.getModel();d.beginUpdate();try{var c=b,g=b;this.isTableCell(b)&&(b=g=d.getParent(b));this.isTableRow(b)&&(c=d.getParent(g));var e=d.getChildCells(c,!0);if(1>=e.length)d.remove(c);else{this.isTableRow(g)||(g=e[e.length-1]);d.remove(g);b=0;var k=this.getCellGeometry(g);null!=k&&(b=k.height);var f=this.getCellGeometry(c);null!=f&&(f=f.clone(),f.height-=b,d.setGeometry(c,f))}}finally{d.endUpdate()}};
+!1);b.value=null;b.style=mxUtils.setStyle(mxUtils.setStyle(b.style,"rowspan",null),"colspan",null);var t=this.getCellGeometry(b);null!=t&&(null!=t.alternateBounds&&(t.width=t.alternateBounds.width,t.height=t.alternateBounds.height,t.alternateBounds=null),t.height=l.height);e.insert(b)}c.add(g,e,m+(d?0:1));var p=this.getCellGeometry(g);null!=p&&(p=p.clone(),p.height+=l.height,c.setGeometry(g,p))}}finally{c.endUpdate()}};Graph.prototype.deleteTableColumn=function(b){var d=this.getModel();d.beginUpdate();
+try{var c=b,g=b;this.isTableCell(b)&&(g=d.getParent(b));this.isTableRow(g)&&(c=d.getParent(g));var e=d.getChildCells(c,!0);if(0==e.length)d.remove(c);else{this.isTableRow(g)||(g=e[0]);var k=d.getChildCells(g,!0);if(1>=k.length)d.remove(c);else{var f=k.length-1;this.isTableCell(b)&&(f=mxUtils.indexOf(k,b));for(g=b=0;g<e.length;g++){var m=d.getChildCells(e[g],!0)[f];d.remove(m);var l=this.getCellGeometry(m);null!=l&&(b=Math.max(b,l.width))}var t=this.getCellGeometry(c);null!=t&&(t=t.clone(),t.width-=
+b,d.setGeometry(c,t))}}}finally{d.endUpdate()}};Graph.prototype.deleteTableRow=function(b){var d=this.getModel();d.beginUpdate();try{var c=b,g=b;this.isTableCell(b)&&(b=g=d.getParent(b));this.isTableRow(b)&&(c=d.getParent(g));var e=d.getChildCells(c,!0);if(1>=e.length)d.remove(c);else{this.isTableRow(g)||(g=e[e.length-1]);d.remove(g);b=0;var k=this.getCellGeometry(g);null!=k&&(b=k.height);var f=this.getCellGeometry(c);null!=f&&(f=f.clone(),f.height-=b,d.setGeometry(c,f))}}finally{d.endUpdate()}};
Graph.prototype.insertRow=function(b,d){for(var c=b.tBodies[0],g=c.rows[0].cells,e=0,k=0;k<g.length;k++)var f=g[k].getAttribute("colspan"),e=e+(null!=f?parseInt(f):1);c=c.insertRow(d);for(k=0;k<e;k++)mxUtils.br(c.insertCell(-1));return c.cells[0]};Graph.prototype.deleteRow=function(b,d){b.tBodies[0].deleteRow(d)};Graph.prototype.insertColumn=function(b,d){var c=b.tHead;if(null!=c)for(var g=0;g<c.rows.length;g++){var e=document.createElement("th");c.rows[g].appendChild(e);mxUtils.br(e)}c=b.tBodies[0];
for(g=0;g<c.rows.length;g++)e=c.rows[g].insertCell(d),mxUtils.br(e);return c.rows[0].cells[0<=d?d:c.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(b,d){if(0<=d)for(var c=b.tBodies[0].rows,g=0;g<c.length;g++)c[g].cells.length>d&&c[g].deleteCell(d)};Graph.prototype.pasteHtmlAtCaret=function(b){var d;if(window.getSelection){if(d=window.getSelection(),d.getRangeAt&&d.rangeCount){d=d.getRangeAt(0);d.deleteContents();var c=document.createElement("div");c.innerHTML=b;b=document.createDocumentFragment();
for(var g;g=c.firstChild;)lastNode=b.appendChild(g);d.insertNode(b)}}else(d=document.selection)&&"Control"!=d.type&&d.createRange().pasteHTML(b)};Graph.prototype.createLinkForHint=function(b,d){function c(b,d){b.length>d&&(b=b.substring(0,Math.round(d/2))+"..."+b.substring(b.length-Math.round(d/4)));return b}b=null!=b?b:"javascript:void(0);";if(null==d||0==d.length)d=this.isCustomLink(b)?this.getLinkTitle(b):b;var g=document.createElement("a");g.setAttribute("rel",this.linkRelation);g.setAttribute("href",
@@ -2677,15 +2677,15 @@ this.currentDx)/e-g.x);g=this.roundLength((this.bounds.y+this.currentDy)/e-g.y);
mxStackLayout.prototype.resizeCell=function(b,d){O.apply(this,arguments);var c=this.graph.getCellStyle(b);if(null==c.childLayout){var g=this.graph.model.getParent(b),e=null!=g?this.graph.getCellGeometry(g):null;if(null!=e&&(c=this.graph.getCellStyle(g),"stackLayout"==c.childLayout)){var k=parseFloat(mxUtils.getValue(c,"stackBorder",mxStackLayout.prototype.border)),c="1"==mxUtils.getValue(c,"horizontalStack","1"),f=this.graph.getActualStartSize(g),e=e.clone();c?e.height=d.height+f.y+f.height+2*k:e.width=
d.width+f.x+f.width+2*k;this.graph.model.setGeometry(g,e)}}};var A=mxSelectionCellsHandler.prototype.getHandledSelectionCells;mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function b(b){c.get(b)||(c.put(b,!0),e.push(b))}for(var d=A.apply(this,arguments),c=new mxDictionary,g=this.graph.model,e=[],k=0;k<d.length;k++){var f=d[k];this.graph.isTableCell(f)?b(g.getParent(g.getParent(f))):this.graph.isTableRow(f)&&b(g.getParent(f));b(f)}return e};var C=mxVertexHandler.prototype.createParentHighlightShape;
mxVertexHandler.prototype.createParentHighlightShape=function(b){var d=C.apply(this,arguments);d.stroke="#C0C0C0";d.strokewidth=1;return d};var E=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(b){var d=E.apply(this,arguments);d.stroke="#C0C0C0";d.strokewidth=1;return d};mxVertexHandler.prototype.rotationHandleVSpacing=-12;mxVertexHandler.prototype.getRotationHandlePosition=function(){var b=this.getHandlePadding();return new mxPoint(this.bounds.x+
-this.bounds.width-this.rotationHandleVSpacing+b.x/2,this.bounds.y+this.rotationHandleVSpacing-b.y/2)};mxVertexHandler.prototype.isRecursiveResize=function(b,d){return this.graph.isRecursiveVertexResize(b)&&!mxEvent.isAltDown(d.getEvent())};mxVertexHandler.prototype.isCenteredEvent=function(b,d){return mxEvent.isControlDown(d.getEvent())||mxEvent.isMetaDown(d.getEvent())};var L=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return L.apply(this,
+this.bounds.width-this.rotationHandleVSpacing+b.x/2,this.bounds.y+this.rotationHandleVSpacing-b.y/2)};mxVertexHandler.prototype.isRecursiveResize=function(b,d){return this.graph.isRecursiveVertexResize(b)&&!mxEvent.isAltDown(d.getEvent())};mxVertexHandler.prototype.isCenteredEvent=function(b,d){return mxEvent.isControlDown(d.getEvent())||mxEvent.isMetaDown(d.getEvent())};var J=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return J.apply(this,
arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)&&!this.graph.isTable(this.state.cell)};mxVertexHandler.prototype.getSizerBounds=function(){return this.graph.isTableCell(this.state.cell)?this.graph.view.getState(this.graph.model.getParent(this.graph.model.getParent(this.state.cell))):this.bounds};var N=mxVertexHandler.prototype.isParentHighlightVisible;mxVertexHandler.prototype.isParentHighlightVisible=function(){return N.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&
!this.graph.isTableRow(this.state.cell)};var M=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(b){return b.tableHandle||M.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var b=0;this.graph.isTableRow(this.state.cell)?b=1:this.graph.isTableCell(this.state.cell)&&(b=2);return b};var Q=mxVertexHandler.prototype.getSelectionBorderBounds;
-mxVertexHandler.prototype.getSelectionBorderBounds=function(){return Q.apply(this,arguments).grow(-this.getSelectionBorderInset())};var V=null,X=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){null==V&&(V=mxCellRenderer.defaultShapes.tableLine);var b=X.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var d=function(b,d,c){for(var g=[],e=0;e<b.length;e++){var f=b[e];g.push(null==f?null:new mxPoint((l+f.x+d)*k,(q+f.y+c)*k))}return g},
-c=this,g=this.graph,e=g.model,k=g.view.scale,f=this.state,m=this.selectionBorder,l=this.state.origin.x+g.view.translate.x,q=this.state.origin.y+g.view.translate.y;null==b&&(b=[]);var p=g.view.getCellStates(e.getChildCells(this.state.cell,!0));if(0<p.length){for(var B=e.getChildCells(p[0].cell,!0),n=g.getTableLines(this.state.cell,!1,!0),u=g.getTableLines(this.state.cell,!0,!1),e=0;e<p.length;e++)mxUtils.bind(this,function(e){var l=p[e],q=e<p.length-1?p[e+1]:null,q=null!=q?g.getCellGeometry(q.cell):
-null,B=null!=q&&null!=q.alternateBounds?q.alternateBounds:q,q=null!=u[e]?new V(u[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!1);q.isDashed=m.isDashed;q.svgStrokeTolerance++;l=new mxHandle(l,"row-resize",null,q);l.tableHandle=!0;var n=0;l.shape.node.parentNode.insertBefore(l.shape.node,l.shape.node.parentNode.firstChild);l.redraw=function(){if(null!=this.shape){this.shape.stroke=0==n?mxConstants.NONE:m.stroke;if(this.shape.constructor==V)this.shape.line=d(u[e],0,n),this.shape.updateBoundsFromLine();
+mxVertexHandler.prototype.getSelectionBorderBounds=function(){return Q.apply(this,arguments).grow(-this.getSelectionBorderInset())};var V=null,X=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){null==V&&(V=mxCellRenderer.defaultShapes.tableLine);var b=X.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var d=function(b,d,c){for(var g=[],e=0;e<b.length;e++){var f=b[e];g.push(null==f?null:new mxPoint((l+f.x+d)*k,(t+f.y+c)*k))}return g},
+c=this,g=this.graph,e=g.model,k=g.view.scale,f=this.state,m=this.selectionBorder,l=this.state.origin.x+g.view.translate.x,t=this.state.origin.y+g.view.translate.y;null==b&&(b=[]);var p=g.view.getCellStates(e.getChildCells(this.state.cell,!0));if(0<p.length){for(var B=e.getChildCells(p[0].cell,!0),n=g.getTableLines(this.state.cell,!1,!0),u=g.getTableLines(this.state.cell,!0,!1),e=0;e<p.length;e++)mxUtils.bind(this,function(e){var l=p[e],t=e<p.length-1?p[e+1]:null,t=null!=t?g.getCellGeometry(t.cell):
+null,B=null!=t&&null!=t.alternateBounds?t.alternateBounds:t,t=null!=u[e]?new V(u[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!1);t.isDashed=m.isDashed;t.svgStrokeTolerance++;l=new mxHandle(l,"row-resize",null,t);l.tableHandle=!0;var n=0;l.shape.node.parentNode.insertBefore(l.shape.node,l.shape.node.parentNode.firstChild);l.redraw=function(){if(null!=this.shape){this.shape.stroke=0==n?mxConstants.NONE:m.stroke;if(this.shape.constructor==V)this.shape.line=d(u[e],0,n),this.shape.updateBoundsFromLine();
else{var b=g.getActualStartSize(f.cell,!0);this.shape.bounds.height=1;this.shape.bounds.y=this.state.y+this.state.height+n*k;this.shape.bounds.x=f.x+(e==p.length-1?0:b.x*k);this.shape.bounds.width=f.width-(e==p.length-1?0:b.width+b.x+k)}this.shape.redraw()}};var v=!1;l.setPosition=function(b,d,c){n=Math.max(Graph.minTableRowHeight-b.height,d.y-b.y-b.height);v=mxEvent.isShiftDown(c.getEvent());null!=B&&v&&(n=Math.min(n,B.height-Graph.minTableRowHeight))};l.execute=function(b){if(0!=n)g.setTableRowHeight(this.state.cell,
-n,!v);else if(!c.blockDelayedSelection){var d=g.getCellAt(b.getGraphX(),b.getGraphY())||f.cell;g.graphHandler.selectCellForEvent(d,b)}n=0};l.reset=function(){n=0};b.push(l)})(e);for(e=0;e<B.length;e++)mxUtils.bind(this,function(e){var l=g.view.getState(B[e]),q=g.getCellGeometry(B[e]),p=null!=q.alternateBounds?q.alternateBounds:q;null==l&&(l=new mxCellState(g.view,B[e],g.getCellStyle(B[e])),l.x=f.x+q.x*k,l.y=f.y+q.y*k,l.width=p.width*k,l.height=p.height*k,l.updateCachedBounds());var q=e<B.length-1?
-B[e+1]:null,q=null!=q?g.getCellGeometry(q):null,u=null!=q&&null!=q.alternateBounds?q.alternateBounds:q,q=null!=n[e]?new V(n[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!0);q.isDashed=m.isDashed;q.svgStrokeTolerance++;l=new mxHandle(l,"col-resize",null,q);l.tableHandle=!0;var v=0;l.shape.node.parentNode.insertBefore(l.shape.node,l.shape.node.parentNode.firstChild);l.redraw=function(){if(null!=this.shape){this.shape.stroke=0==v?mxConstants.NONE:m.stroke;if(this.shape.constructor==
+n,!v);else if(!c.blockDelayedSelection){var d=g.getCellAt(b.getGraphX(),b.getGraphY())||f.cell;g.graphHandler.selectCellForEvent(d,b)}n=0};l.reset=function(){n=0};b.push(l)})(e);for(e=0;e<B.length;e++)mxUtils.bind(this,function(e){var l=g.view.getState(B[e]),t=g.getCellGeometry(B[e]),p=null!=t.alternateBounds?t.alternateBounds:t;null==l&&(l=new mxCellState(g.view,B[e],g.getCellStyle(B[e])),l.x=f.x+t.x*k,l.y=f.y+t.y*k,l.width=p.width*k,l.height=p.height*k,l.updateCachedBounds());var t=e<B.length-1?
+B[e+1]:null,t=null!=t?g.getCellGeometry(t):null,u=null!=t&&null!=t.alternateBounds?t.alternateBounds:t,t=null!=n[e]?new V(n[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!0);t.isDashed=m.isDashed;t.svgStrokeTolerance++;l=new mxHandle(l,"col-resize",null,t);l.tableHandle=!0;var v=0;l.shape.node.parentNode.insertBefore(l.shape.node,l.shape.node.parentNode.firstChild);l.redraw=function(){if(null!=this.shape){this.shape.stroke=0==v?mxConstants.NONE:m.stroke;if(this.shape.constructor==
V)this.shape.line=d(n[e],v,0),this.shape.updateBoundsFromLine();else{var b=g.getActualStartSize(f.cell,!0);this.shape.bounds.width=1;this.shape.bounds.x=this.state.x+(p.width+v)*k;this.shape.bounds.y=f.y+(e==B.length-1?0:b.y*k);this.shape.bounds.height=f.height-(e==B.length-1?0:(b.height+b.y)*k)}this.shape.redraw()}};var y=!1;l.setPosition=function(b,d,c){v=Math.max(Graph.minTableColumnWidth-p.width,d.x-b.x-p.width);y=mxEvent.isShiftDown(c.getEvent());null==u||y||(v=Math.min(v,u.width-Graph.minTableColumnWidth))};
l.execute=function(b){if(0!=v)g.setTableColumnWidth(this.state.cell,v,y);else if(!c.blockDelayedSelection){var d=g.getCellAt(b.getGraphX(),b.getGraphY())||f.cell;g.graphHandler.selectCellForEvent(d,b)}v=0};l.positionChanged=function(){};l.reset=function(){v=0};b.push(l)})(e)}}return null!=b?b.reverse():null};var ja=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){ja.apply(this,arguments);if(null!=this.moveHandles)for(var d=0;d<this.moveHandles.length;d++)this.moveHandles[d].style.visibility=
b?"":"hidden";if(null!=this.cornerHandles)for(d=0;d<this.cornerHandles.length;d++)this.cornerHandles[d].node.style.visibility=b?"":"hidden"};mxVertexHandler.prototype.refreshMoveHandles=function(){var b=this.graph.model;if(null!=this.moveHandles){for(var d=0;d<this.moveHandles.length;d++)this.moveHandles[d].parentNode.removeChild(this.moveHandles[d]);this.moveHandles=null}this.moveHandles=[];for(d=0;d<b.getChildCount(this.state.cell);d++)mxUtils.bind(this,function(d){if(null!=d&&b.isVertex(d.cell)){var c=
@@ -2711,11 +2711,11 @@ HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangl
function(b,d){B.apply(this,arguments);mxEvent.isTouchEvent(d.getEvent())&&this.graph.isCellSelected(d.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(b){var d=b.getEvent();return mxEvent.isLeftMouseButton(d)&&(this.useLeftButtonForPanning&&null==b.getState()||mxEvent.isControlDown(d)&&!mxEvent.isShiftDown(d))||this.usePopupTrigger&&mxEvent.isPopupTrigger(d)};mxRubberband.prototype.isSpaceEvent=function(b){return this.graph.isEnabled()&&
!this.graph.isCellLocked(this.graph.getDefaultParent())&&(mxEvent.isControlDown(b.getEvent())||mxEvent.isMetaDown(b.getEvent()))&&mxEvent.isShiftDown(b.getEvent())&&mxEvent.isAltDown(b.getEvent())};mxRubberband.prototype.cancelled=!1;mxRubberband.prototype.cancel=function(){this.isActive()&&(this.cancelled=!0,this.reset())};mxRubberband.prototype.mouseUp=function(b,d){if(this.cancelled)this.cancelled=!1,d.consume();else{var c=null!=this.div&&"none"!=this.div.style.display,g=null,e=null,k=null,f=null;
null!=this.first&&null!=this.currentX&&null!=this.currentY&&(g=this.first.x,e=this.first.y,k=(this.currentX-g)/this.graph.view.scale,f=(this.currentY-e)/this.graph.view.scale,mxEvent.isAltDown(d.getEvent())||(k=this.graph.snap(k),f=this.graph.snap(f),this.graph.isGridEnabled()||(Math.abs(k)<this.graph.tolerance&&(k=0),Math.abs(f)<this.graph.tolerance&&(f=0))));this.reset();if(c){if(this.isSpaceEvent(d)){this.graph.model.beginUpdate();try{for(var l=this.graph.getCellsBeyond(g,e,this.graph.getDefaultParent(),
-!0,!0),c=0;c<l.length;c++)if(this.graph.isCellMovable(l[c])){var m=this.graph.view.getState(l[c]),q=this.graph.getCellGeometry(l[c]);null!=m&&null!=q&&(q=q.clone(),q.translate(k,f),this.graph.model.setGeometry(l[c],q))}}finally{this.graph.model.endUpdate()}}else k=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(k,d.getEvent());d.consume()}}};mxRubberband.prototype.mouseMove=function(b,d){if(!d.isConsumed()&&null!=this.first){var c=mxUtils.getScrollOrigin(this.graph.container),
+!0,!0),c=0;c<l.length;c++)if(this.graph.isCellMovable(l[c])){var m=this.graph.view.getState(l[c]),t=this.graph.getCellGeometry(l[c]);null!=m&&null!=t&&(t=t.clone(),t.translate(k,f),this.graph.model.setGeometry(l[c],t))}}finally{this.graph.model.endUpdate()}}else k=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(k,d.getEvent());d.consume()}}};mxRubberband.prototype.mouseMove=function(b,d){if(!d.isConsumed()&&null!=this.first){var c=mxUtils.getScrollOrigin(this.graph.container),
g=mxUtils.getOffset(this.graph.container);c.x-=g.x;c.y-=g.y;var g=d.getX()+c.x,c=d.getY()+c.y,e=this.first.x-g,k=this.first.y-c,f=this.graph.tolerance;if(null!=this.div||Math.abs(e)>f||Math.abs(k)>f)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(g,c),this.isSpaceEvent(d)?(g=this.x+this.width,c=this.y+this.height,e=this.graph.view.scale,mxEvent.isAltDown(d.getEvent())||(this.width=this.graph.snap(this.width/e)*e,this.height=this.graph.snap(this.height/e)*e,this.graph.isGridEnabled()||
(this.width<this.graph.tolerance&&(this.width=0),this.height<this.graph.tolerance&&(this.height=0)),this.x<this.first.x&&(this.x=g-this.width),this.y<this.first.y&&(this.y=c-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor="white",this.div.style.left=this.x+"px",this.div.style.top=this.y+"px",this.div.style.width=Math.max(0,this.width)+"px",this.div.style.height=this.graph.container.clientHeight+"px",this.div.style.borderWidth=0>=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",
null==this.secondDiv&&(this.secondDiv=this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&
-(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null)),d.consume()}};var J=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);J.apply(this,arguments)};var K=(new Date).getTime(),W=0,fa=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(b,d,c,g){fa.apply(this,arguments);c!=this.currentTerminalState?(K=(new Date).getTime(),
+(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null)),d.consume()}};var L=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);L.apply(this,arguments)};var K=(new Date).getTime(),W=0,fa=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(b,d,c,g){fa.apply(this,arguments);c!=this.currentTerminalState?(K=(new Date).getTime(),
W=0):W=(new Date).getTime()-K;this.currentTerminalState=c};var I=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(b){return null!=this.currentTerminalState&&b.getState()==this.currentTerminalState&&2E3<W||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&I.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(b,d,c){d=null!=b&&0==b;var g=this.state.getVisibleTerminalState(d);
b=null!=b&&(0==b||b>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==b)?this.graph.getConnectionConstraint(this.state,g,d):null;c=null!=(null!=b?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(d),b):null)?c?this.endFixedHandleImage:this.fixedHandleImage:null!=b&&null!=g?c?this.endTerminalHandleImage:this.terminalHandleImage:c?this.endHandleImage:this.handleImage;if(null!=c)return c=new mxImageShape(new mxRectangle(0,0,c.width,c.height),c.src),c.preserveImageAspect=
!1,c;c=mxConstants.HANDLE_SIZE;this.preferHtml&&--c;return new mxRectangleShape(new mxRectangle(0,0,c,c),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var la=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(b,d,c){this.handleImage=d==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:d==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return la.apply(this,arguments)};var oa=mxGraphHandler.prototype.getBoundingBox;
@@ -2740,14 +2740,14 @@ null!=this.moveHandles||1!=this.graph.getSelectionCount()||null!=this.index&&thi
this.moveHandles[b]&&null!=this.moveHandles[b].parentNode&&this.moveHandles[b].parentNode.removeChild(this.moveHandles[b]);this.moveHandles=null}if(null!=this.cornerHandles){for(b=0;b<this.cornerHandles.length;b++)null!=this.cornerHandles[b]&&null!=this.cornerHandles[b].node&&null!=this.cornerHandles[b].node.parentNode&&this.cornerHandles[b].node.parentNode.removeChild(this.cornerHandles[b].node);this.cornerHandles=null}null!=this.linkHint&&(null!=this.linkHint.parentNode&&this.linkHint.parentNode.removeChild(this.linkHint),
this.linkHint=null);null!=this.changeHandler&&(this.graph.getSelectionModel().removeListener(this.changeHandler),this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);null!=this.editingHandler&&(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};var S=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(S.apply(this),null!=this.state&&null!=this.linkHint)){var b=this.state;null!=this.state.text&&
null!=this.state.text.bounds&&(b=new mxRectangle(b.x,b.y,b.width,b.height),b.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(b.x+(b.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(b.y+b.height+Editor.hintOffset)+"px"}};var na=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){na.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var ca=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=
-function(){ca.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getSelectionModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function b(b,d,c){mxShape.call(this);this.line=b;this.stroke=d;this.strokewidth=null!=c?c:1;this.updateBoundsFromLine()}function c(){mxSwimlane.call(this)}function e(){mxSwimlane.call(this)}function f(){mxCylinder.call(this)}function n(){mxCylinder.call(this)}function l(){mxActor.call(this)}function t(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function g(){mxCylinder.call(this)}function q(){mxShape.call(this)}function m(){mxShape.call(this)}
+function(){ca.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getSelectionModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function b(b,d,c){mxShape.call(this);this.line=b;this.stroke=d;this.strokewidth=null!=c?c:1;this.updateBoundsFromLine()}function c(){mxSwimlane.call(this)}function e(){mxSwimlane.call(this)}function f(){mxCylinder.call(this)}function n(){mxCylinder.call(this)}function l(){mxActor.call(this)}function q(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function g(){mxCylinder.call(this)}function t(){mxShape.call(this)}function m(){mxShape.call(this)}
function p(b,d,c,g){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=c;this.strokewidth=null!=g?g:1}function v(){mxActor.call(this)}function u(){mxCylinder.call(this)}function x(){mxCylinder.call(this)}function y(){mxActor.call(this)}function G(){mxActor.call(this)}function H(){mxActor.call(this)}function D(){mxActor.call(this)}function F(){mxActor.call(this)}function O(){mxActor.call(this)}function A(){mxActor.call(this)}function C(b,d){this.canvas=b;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");
this.defaultVariation=d;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,C.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,C.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,C.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,C.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,C.prototype.curveTo);
-this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,C.prototype.arcTo)}function E(){mxRectangleShape.call(this)}function L(){mxRectangleShape.call(this)}function N(){mxActor.call(this)}function M(){mxActor.call(this)}function Q(){mxActor.call(this)}function V(){mxRectangleShape.call(this)}function X(){mxRectangleShape.call(this)}function ja(){mxCylinder.call(this)}function Y(){mxShape.call(this)}function da(){mxShape.call(this)}function ba(){mxEllipse.call(this)}function B(){mxShape.call(this)}
-function J(){mxShape.call(this)}function K(){mxRectangleShape.call(this)}function W(){mxShape.call(this)}function fa(){mxShape.call(this)}function I(){mxShape.call(this)}function la(){mxShape.call(this)}function oa(){mxShape.call(this)}function pa(){mxCylinder.call(this)}function ka(){mxCylinder.call(this)}function qa(){mxRectangleShape.call(this)}function Z(){mxDoubleEllipse.call(this)}function P(){mxDoubleEllipse.call(this)}function sa(){mxArrowConnector.call(this);this.spacing=0}function T(){mxArrowConnector.call(this);
+this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,C.prototype.arcTo)}function E(){mxRectangleShape.call(this)}function J(){mxRectangleShape.call(this)}function N(){mxActor.call(this)}function M(){mxActor.call(this)}function Q(){mxActor.call(this)}function V(){mxRectangleShape.call(this)}function X(){mxRectangleShape.call(this)}function ja(){mxCylinder.call(this)}function Y(){mxShape.call(this)}function da(){mxShape.call(this)}function ba(){mxEllipse.call(this)}function B(){mxShape.call(this)}
+function L(){mxShape.call(this)}function K(){mxRectangleShape.call(this)}function W(){mxShape.call(this)}function fa(){mxShape.call(this)}function I(){mxShape.call(this)}function la(){mxShape.call(this)}function oa(){mxShape.call(this)}function pa(){mxCylinder.call(this)}function ka(){mxCylinder.call(this)}function qa(){mxRectangleShape.call(this)}function Z(){mxDoubleEllipse.call(this)}function P(){mxDoubleEllipse.call(this)}function sa(){mxArrowConnector.call(this);this.spacing=0}function T(){mxArrowConnector.call(this);
this.spacing=0}function ha(){mxActor.call(this)}function ma(){mxRectangleShape.call(this)}function ra(){mxActor.call(this)}function S(){mxActor.call(this)}function na(){mxActor.call(this)}function ca(){mxActor.call(this)}function ea(){mxActor.call(this)}function ia(){mxActor.call(this)}function xa(){mxActor.call(this)}function Aa(){mxActor.call(this)}function ta(){mxActor.call(this)}function ua(){mxActor.call(this)}function aa(){mxEllipse.call(this)}function R(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}
function Ia(){mxRhombus.call(this)}function wa(){mxEllipse.call(this)}function Ba(){mxEllipse.call(this)}function ya(){mxEllipse.call(this)}function Ca(){mxEllipse.call(this)}function Fa(){mxActor.call(this)}function Da(){mxActor.call(this)}function za(){mxActor.call(this)}function U(b,d,c,g){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=c;this.strokewidth=null!=g?g:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Ga(){mxConnector.call(this)}
-function La(b,d,c,g,e,k,f,l,m,q){f+=m;var z=g.clone();g.x-=e*(2*f+m);g.y-=k*(2*f+m);e*=f+m;k*=f+m;return function(){b.ellipse(z.x-e-f,z.y-k-f,2*f,2*f);q?b.fillAndStroke():b.stroke()}}mxUtils.extend(b,mxShape);b.prototype.updateBoundsFromLine=function(){var b=null;if(null!=this.line)for(var d=0;d<this.line.length;d++){var c=this.line[d];null!=c&&(c=new mxRectangle(c.x,c.y,this.strokewidth,this.strokewidth),null==b?b=c:b.add(c))}this.bounds=null!=b?b:new mxRectangle};b.prototype.paintVertexShape=function(b,
+function La(b,d,c,g,e,k,f,l,m,t){f+=m;var z=g.clone();g.x-=e*(2*f+m);g.y-=k*(2*f+m);e*=f+m;k*=f+m;return function(){b.ellipse(z.x-e-f,z.y-k-f,2*f,2*f);t?b.fillAndStroke():b.stroke()}}mxUtils.extend(b,mxShape);b.prototype.updateBoundsFromLine=function(){var b=null;if(null!=this.line)for(var d=0;d<this.line.length;d++){var c=this.line[d];null!=c&&(c=new mxRectangle(c.x,c.y,this.strokewidth,this.strokewidth),null==b?b=c:b.add(c))}this.bounds=null!=b?b:new mxRectangle};b.prototype.paintVertexShape=function(b,
d,c,g,e){this.paintTableLine(b,this.line,0,0)};b.prototype.paintTableLine=function(b,d,c,g){if(null!=d){var z=null;b.begin();for(var e=0;e<d.length;e++){var k=d[e];null!=k&&(null==z?b.moveTo(k.x+c,k.y+g):null!=z&&b.lineTo(k.x+c,k.y+g));z=k}b.end();b.stroke()}};b.prototype.intersectsRectangle=function(b){var d=!1;if(mxShape.prototype.intersectsRectangle.apply(this,arguments)&&null!=this.line)for(var c=null,g=0;g<this.line.length&&!d;g++){var z=this.line[g];null!=z&&null!=c&&(d=mxUtils.rectangleIntersectsSegment(b,
c,z));c=z}return d};mxCellRenderer.registerShape("tableLine",b);mxUtils.extend(c,mxSwimlane);c.prototype.getLabelBounds=function(b){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};c.prototype.paintVertexShape=function(b,d,c,g,e){var z=null!=this.state?this.state.view.graph.isCellCollapsed(this.state.cell):!1,k=this.isHorizontal(),f=this.getTitleSize();0==f||this.outline?ya.prototype.paintVertexShape.apply(this,
arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),b.translate(-d,-c));z||this.outline||!(k&&f<e||!k&&f<g)||this.paintForeground(b,d,c,g,e)};c.prototype.paintForeground=function(b,d,c,g,e){if(null!=this.state){var z=this.flipH,k=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)var f=z,z=k,k=f;b.rotate(-this.getShapeRotation(),z,k,d+g/2,c+e/2);s=this.scale;d=this.bounds.x/s;c=this.bounds.y/s;g=this.bounds.width/s;e=this.bounds.height/
@@ -2756,17 +2756,17 @@ c);mxUtils.extend(e,c);e.prototype.paintForeground=function(){};mxCellRenderer.r
"darkOpacity2",this.darkOpacity2))));b.translate(d,c);b.begin();b.moveTo(0,0);b.lineTo(g-z,0);b.lineTo(g,z);b.lineTo(g,e);b.lineTo(z,e);b.lineTo(0,e-z);b.lineTo(0,0);b.close();b.end();b.fillAndStroke();this.outline||(b.setShadow(!1),0!=k&&(b.setFillAlpha(Math.abs(k)),b.setFillColor(0>k?"#FFFFFF":"#000000"),b.begin(),b.moveTo(0,0),b.lineTo(g-z,0),b.lineTo(g,z),b.lineTo(z,z),b.close(),b.fill()),0!=f&&(b.setFillAlpha(Math.abs(f)),b.setFillColor(0>f?"#FFFFFF":"#000000"),b.begin(),b.moveTo(0,0),b.lineTo(z,
z),b.lineTo(z,e),b.lineTo(0,e-z),b.close(),b.fill()),b.begin(),b.moveTo(z,e),b.lineTo(z,z),b.lineTo(0,0),b.moveTo(z,z),b.lineTo(g,z),b.end(),b.stroke())};f.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)?(b=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(b,b,0,0)):null};mxCellRenderer.registerShape("cube",f);var Sa=Math.tan(mxUtils.toRadians(30)),Ka=(.5-Sa)/2;mxCellRenderer.registerShape("isoRectangle",l);mxUtils.extend(n,
mxCylinder);n.prototype.size=6;n.prototype.paintVertexShape=function(b,d,c,g,e){b.setFillColor(this.stroke);var z=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;b.ellipse(d+.5*(g-z),c+.5*(e-z),z,z);b.fill();b.setFillColor(mxConstants.NONE);b.rect(d,c,g,e);b.fill()};mxCellRenderer.registerShape("waypoint",n);mxUtils.extend(l,mxActor);l.prototype.size=20;l.prototype.redrawPath=function(b,d,c,g,e){d=Math.min(g,e/Sa);b.translate((g-d)/2,(e-d)/2+d/4);b.moveTo(0,
-.25*d);b.lineTo(.5*d,d*Ka);b.lineTo(d,.25*d);b.lineTo(.5*d,(.5-Ka)*d);b.lineTo(0,.25*d);b.close();b.end()};mxCellRenderer.registerShape("isoRectangle",l);mxUtils.extend(t,mxCylinder);t.prototype.size=20;t.prototype.redrawPath=function(b,d,c,g,e,k){d=Math.min(g,e/(.5+Sa));k?(b.moveTo(0,.25*d),b.lineTo(.5*d,(.5-Ka)*d),b.lineTo(d,.25*d),b.moveTo(.5*d,(.5-Ka)*d),b.lineTo(.5*d,(1-Ka)*d)):(b.translate((g-d)/2,(e-d)/2),b.moveTo(0,.25*d),b.lineTo(.5*d,d*Ka),b.lineTo(d,.25*d),b.lineTo(d,.75*d),b.lineTo(.5*
-d,(1-Ka)*d),b.lineTo(0,.75*d),b.close());b.end()};mxCellRenderer.registerShape("isoCube",t);mxUtils.extend(d,mxCylinder);d.prototype.redrawPath=function(b,d,c,g,e,k){d=Math.min(e/2,Math.round(e/8)+this.strokewidth-1);if(k&&null!=this.fill||!k&&null==this.fill)b.moveTo(0,d),b.curveTo(0,2*d,g,2*d,g,d),k||(b.stroke(),b.begin()),b.translate(0,d/2),b.moveTo(0,d),b.curveTo(0,2*d,g,2*d,g,d),k||(b.stroke(),b.begin()),b.translate(0,d/2),b.moveTo(0,d),b.curveTo(0,2*d,g,2*d,g,d),k||(b.stroke(),b.begin()),b.translate(0,
+.25*d);b.lineTo(.5*d,d*Ka);b.lineTo(d,.25*d);b.lineTo(.5*d,(.5-Ka)*d);b.lineTo(0,.25*d);b.close();b.end()};mxCellRenderer.registerShape("isoRectangle",l);mxUtils.extend(q,mxCylinder);q.prototype.size=20;q.prototype.redrawPath=function(b,d,c,g,e,k){d=Math.min(g,e/(.5+Sa));k?(b.moveTo(0,.25*d),b.lineTo(.5*d,(.5-Ka)*d),b.lineTo(d,.25*d),b.moveTo(.5*d,(.5-Ka)*d),b.lineTo(.5*d,(1-Ka)*d)):(b.translate((g-d)/2,(e-d)/2),b.moveTo(0,.25*d),b.lineTo(.5*d,d*Ka),b.lineTo(d,.25*d),b.lineTo(d,.75*d),b.lineTo(.5*
+d,(1-Ka)*d),b.lineTo(0,.75*d),b.close());b.end()};mxCellRenderer.registerShape("isoCube",q);mxUtils.extend(d,mxCylinder);d.prototype.redrawPath=function(b,d,c,g,e,k){d=Math.min(e/2,Math.round(e/8)+this.strokewidth-1);if(k&&null!=this.fill||!k&&null==this.fill)b.moveTo(0,d),b.curveTo(0,2*d,g,2*d,g,d),k||(b.stroke(),b.begin()),b.translate(0,d/2),b.moveTo(0,d),b.curveTo(0,2*d,g,2*d,g,d),k||(b.stroke(),b.begin()),b.translate(0,d/2),b.moveTo(0,d),b.curveTo(0,2*d,g,2*d,g,d),k||(b.stroke(),b.begin()),b.translate(0,
-d);k||(b.moveTo(0,d),b.curveTo(0,-d/3,g,-d/3,g,d),b.lineTo(g,e-d),b.curveTo(g,e+d/3,0,e+d/3,0,e-d),b.close())};d.prototype.getLabelMargins=function(b){return new mxRectangle(0,2.5*Math.min(b.height/2,Math.round(b.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",d);mxUtils.extend(k,mxCylinder);k.prototype.size=30;k.prototype.darkOpacity=0;k.prototype.paintVertexShape=function(b,d,c,g,e){var z=Math.max(0,Math.min(g,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",
this.size))))),k=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity))));b.translate(d,c);b.begin();b.moveTo(0,0);b.lineTo(g-z,0);b.lineTo(g,z);b.lineTo(g,e);b.lineTo(0,e);b.lineTo(0,0);b.close();b.end();b.fillAndStroke();this.outline||(b.setShadow(!1),0!=k&&(b.setFillAlpha(Math.abs(k)),b.setFillColor(0>k?"#FFFFFF":"#000000"),b.begin(),b.moveTo(g-z,0),b.lineTo(g-z,z),b.lineTo(g,z),b.close(),b.fill()),b.begin(),b.moveTo(g-z,0),b.lineTo(g-z,z),b.lineTo(g,z),
-b.end(),b.stroke())};mxCellRenderer.registerShape("note",k);mxUtils.extend(g,k);mxCellRenderer.registerShape("note2",g);g.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(b.height*this.scale,d*this.scale),0,0)}return null};mxUtils.extend(q,mxShape);q.prototype.isoAngle=15;q.prototype.paintVertexShape=function(b,d,c,g,e){var z=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,
-"isoAngle",this.isoAngle))))*Math.PI/200,z=Math.min(g*Math.tan(z),.5*e);b.translate(d,c);b.begin();b.moveTo(.5*g,0);b.lineTo(g,z);b.lineTo(g,e-z);b.lineTo(.5*g,e);b.lineTo(0,e-z);b.lineTo(0,z);b.close();b.fillAndStroke();b.setShadow(!1);b.begin();b.moveTo(0,z);b.lineTo(.5*g,2*z);b.lineTo(g,z);b.moveTo(.5*g,2*z);b.lineTo(.5*g,e);b.stroke()};mxCellRenderer.registerShape("isoCube2",q);mxUtils.extend(m,mxShape);m.prototype.size=15;m.prototype.paintVertexShape=function(b,d,c,g,e){var z=Math.max(0,Math.min(.5*
+b.end(),b.stroke())};mxCellRenderer.registerShape("note",k);mxUtils.extend(g,k);mxCellRenderer.registerShape("note2",g);g.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(b.height*this.scale,d*this.scale),0,0)}return null};mxUtils.extend(t,mxShape);t.prototype.isoAngle=15;t.prototype.paintVertexShape=function(b,d,c,g,e){var z=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,
+"isoAngle",this.isoAngle))))*Math.PI/200,z=Math.min(g*Math.tan(z),.5*e);b.translate(d,c);b.begin();b.moveTo(.5*g,0);b.lineTo(g,z);b.lineTo(g,e-z);b.lineTo(.5*g,e);b.lineTo(0,e-z);b.lineTo(0,z);b.close();b.fillAndStroke();b.setShadow(!1);b.begin();b.moveTo(0,z);b.lineTo(.5*g,2*z);b.lineTo(g,z);b.moveTo(.5*g,2*z);b.lineTo(.5*g,e);b.stroke()};mxCellRenderer.registerShape("isoCube2",t);mxUtils.extend(m,mxShape);m.prototype.size=15;m.prototype.paintVertexShape=function(b,d,c,g,e){var z=Math.max(0,Math.min(.5*
e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.translate(d,c);0==z?(b.rect(0,0,g,e),b.fillAndStroke()):(b.begin(),b.moveTo(0,z),b.arcTo(.5*g,z,0,0,1,.5*g,0),b.arcTo(.5*g,z,0,0,1,g,z),b.lineTo(g,e-z),b.arcTo(.5*g,z,0,0,1,.5*g,e),b.arcTo(.5*g,z,0,0,1,0,e-z),b.close(),b.fillAndStroke(),b.setShadow(!1),b.begin(),b.moveTo(g,z),b.arcTo(.5*g,z,0,0,1,.5*g,2*z),b.arcTo(.5*g,z,0,0,1,0,z),b.stroke())};mxCellRenderer.registerShape("cylinder2",m);mxUtils.extend(p,mxCylinder);p.prototype.size=
15;p.prototype.paintVertexShape=function(b,d,c,g,e){var z=Math.max(0,Math.min(.5*e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),k=mxUtils.getValue(this.style,"lid",!0);b.translate(d,c);0==z?(b.rect(0,0,g,e),b.fillAndStroke()):(b.begin(),k?(b.moveTo(0,z),b.arcTo(.5*g,z,0,0,1,.5*g,0),b.arcTo(.5*g,z,0,0,1,g,z)):(b.moveTo(0,0),b.arcTo(.5*g,z,0,0,0,.5*g,z),b.arcTo(.5*g,z,0,0,0,g,0)),b.lineTo(g,e-z),b.arcTo(.5*g,z,0,0,1,.5*g,e),b.arcTo(.5*g,z,0,0,1,0,e-z),b.close(),b.fillAndStroke(),b.setShadow(!1),
k&&(b.begin(),b.moveTo(g,z),b.arcTo(.5*g,z,0,0,1,.5*g,2*z),b.arcTo(.5*g,z,0,0,1,0,z),b.stroke()))};mxCellRenderer.registerShape("cylinder3",p);mxUtils.extend(v,mxActor);v.prototype.redrawPath=function(b,d,c,g,e){b.moveTo(0,0);b.quadTo(g/2,.5*e,g,0);b.quadTo(.5*g,e/2,g,e);b.quadTo(g/2,.5*e,0,e);b.quadTo(.5*g,e/2,0,0);b.end()};mxCellRenderer.registerShape("switch",v);mxUtils.extend(u,mxCylinder);u.prototype.tabWidth=60;u.prototype.tabHeight=20;u.prototype.tabPosition="right";u.prototype.arcSize=.1;
-u.prototype.paintVertexShape=function(b,d,c,g,e){b.translate(d,c);d=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var z=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),k=mxUtils.getValue(this.style,"rounded",!1),f=mxUtils.getValue(this.style,"absoluteArcSize",!1),l=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f||(l*=Math.min(g,e));
-l=Math.min(l,.5*g,.5*(e-c));d=Math.max(d,l);d=Math.min(g-l,d);k||(l=0);b.begin();"left"==z?(b.moveTo(Math.max(l,0),c),b.lineTo(Math.max(l,0),0),b.lineTo(d,0),b.lineTo(d,c)):(b.moveTo(g-d,c),b.lineTo(g-d,0),b.lineTo(g-Math.max(l,0),0),b.lineTo(g-Math.max(l,0),c));k?(b.moveTo(0,l+c),b.arcTo(l,l,0,0,1,l,c),b.lineTo(g-l,c),b.arcTo(l,l,0,0,1,g,l+c),b.lineTo(g,e-l),b.arcTo(l,l,0,0,1,g-l,e),b.lineTo(l,e),b.arcTo(l,l,0,0,1,0,e-l)):(b.moveTo(0,c),b.lineTo(g,c),b.lineTo(g,e),b.lineTo(0,e));b.close();b.fillAndStroke();
+u.prototype.paintVertexShape=function(b,d,c,g,e){b.translate(d,c);d=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var z=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),k=mxUtils.getValue(this.style,"rounded",!1),f=mxUtils.getValue(this.style,"absoluteArcSize",!1),m=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f||(m*=Math.min(g,e));
+m=Math.min(m,.5*g,.5*(e-c));d=Math.max(d,m);d=Math.min(g-m,d);k||(m=0);b.begin();"left"==z?(b.moveTo(Math.max(m,0),c),b.lineTo(Math.max(m,0),0),b.lineTo(d,0),b.lineTo(d,c)):(b.moveTo(g-d,c),b.lineTo(g-d,0),b.lineTo(g-Math.max(m,0),0),b.lineTo(g-Math.max(m,0),c));k?(b.moveTo(0,m+c),b.arcTo(m,m,0,0,1,m,c),b.lineTo(g-m,c),b.arcTo(m,m,0,0,1,g,m+c),b.lineTo(g,e-m),b.arcTo(m,m,0,0,1,g-m,e),b.lineTo(m,e),b.arcTo(m,m,0,0,1,0,e-m)):(b.moveTo(0,c),b.lineTo(g,c),b.lineTo(g,e),b.lineTo(0,e));b.close();b.fillAndStroke();
b.setShadow(!1);"triangle"==mxUtils.getValue(this.style,"folderSymbol",null)&&(b.begin(),b.moveTo(g-30,c+20),b.lineTo(g-20,c+10),b.lineTo(g-10,c+20),b.close(),b.stroke())};mxCellRenderer.registerShape("folder",u);u.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var c=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,d=mxUtils.getValue(this.style,
"tabHeight",15)*this.scale,g=mxUtils.getValue(this.style,"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1),k=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));e||(k*=Math.min(b.width,b.height));k=Math.min(k,.5*b.width,.5*(b.height-d));g||(k=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(k,0,Math.min(b.width,b.width-c),Math.min(b.height,b.height-d)):new mxRectangle(Math.min(b.width,b.width-c),0,k,Math.min(b.height,b.height-
d))}return new mxRectangle(0,Math.min(b.height,d),0,0)}return null};mxUtils.extend(x,mxCylinder);x.prototype.arcSize=.1;x.prototype.paintVertexShape=function(b,d,c,g,e){b.translate(d,c);var k=mxUtils.getValue(this.style,"rounded",!1),z=mxUtils.getValue(this.style,"absoluteArcSize",!1);d=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));c=mxUtils.getValue(this.style,"umlStateConnection",null);z||(d*=Math.min(g,e));d=Math.min(d,.5*g,.5*e);k||(d=0);k=0;null!=c&&(k=10);b.begin();b.moveTo(k,
@@ -2785,7 +2785,7 @@ g,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):g*Math.max(0,
d=g*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(g,0),new mxPoint(d,0),new mxPoint(d,e/2),new mxPoint(0,e/2),new mxPoint(d,e/2),new mxPoint(d,e),new mxPoint(g,e)],this.isRounded,c,!1);b.end()};mxCellRenderer.registerShape("curlyBracket",O);mxUtils.extend(A,mxActor);A.prototype.redrawPath=function(b,d,c,g,e){b.setStrokeWidth(1);b.setFillColor(this.stroke);
d=g/5;b.rect(0,0,d,e);b.fillAndStroke();b.rect(2*d,0,d,e);b.fillAndStroke();b.rect(4*d,0,d,e);b.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",A);C.prototype.moveTo=function(b,d){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;this.firstX=b;this.firstY=d};C.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};
C.prototype.quadTo=function(b,d,c,g){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=g};C.prototype.curveTo=function(b,d,c,g,e,k){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=k};C.prototype.arcTo=function(b,d,c,g,e,k,f){this.originalArcTo.apply(this.canvas,arguments);this.lastX=k;this.lastY=f};C.prototype.lineTo=function(b,d){if(null!=this.lastX&&null!=this.lastY){var c=function(b){return"number"===typeof b?b?0>b?-1:1:b===b?0:NaN:NaN},g=Math.abs(b-
-this.lastX),e=Math.abs(d-this.lastY),k=Math.sqrt(g*g+e*e);if(2>k){this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;return}var z=Math.round(k/10),f=this.defaultVariation;5>z&&(z=5,f/=3);for(var l=c(b-this.lastX)*g/z,c=c(d-this.lastY)*e/z,g=g/k,e=e/k,k=0;k<z;k++){var m=(Math.random()-.5)*f;this.originalLineTo.call(this.canvas,l*k+this.lastX-m*e,c*k+this.lastY-m*g)}this.originalLineTo.call(this.canvas,b,d)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=
+this.lastX),e=Math.abs(d-this.lastY),k=Math.sqrt(g*g+e*e);if(2>k){this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;return}var z=Math.round(k/10),f=this.defaultVariation;5>z&&(z=5,f/=3);for(var m=c(b-this.lastX)*g/z,c=c(d-this.lastY)*e/z,g=g/k,e=e/k,k=0;k<z;k++){var l=(Math.random()-.5)*f;this.originalLineTo.call(this.canvas,m*k+this.lastX-l*e,c*k+this.lastY-l*g)}this.originalLineTo.call(this.canvas,b,d)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=
d};C.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};mxShape.prototype.defaultJiggle=1.5;var cb=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(b){cb.apply(this,arguments);null==b.handJiggle&&(b.handJiggle=this.createHandJiggle(b))};var db=mxShape.prototype.afterPaint;
mxShape.prototype.afterPaint=function(b){db.apply(this,arguments);null!=b.handJiggle&&(b.handJiggle.destroy(),delete b.handJiggle)};mxShape.prototype.createComicCanvas=function(b){return new C(b,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle))};mxShape.prototype.createHandJiggle=function(b){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"comic","0")?null:this.createComicCanvas(b)};mxRhombus.prototype.defaultJiggle=2;var gb=mxRectangleShape.prototype.isHtmlAllowed;
mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.outline&&(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0")&&"0"==mxUtils.getValue(this.style,"sketch","1"==urlParams.rough?"1":"0"))&&gb.apply(this,arguments)};var hb=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(b,d,c,g,e){if(null==b.handJiggle||b.handJiggle.constructor!=C)hb.apply(this,arguments);else{var k=!0;null!=this.style&&(k="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,
@@ -2793,7 +2793,7 @@ mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.outline&&(null==
k,e*k)),b.moveTo(d+k,c),b.lineTo(d+g-k,c),b.quadTo(d+g,c,d+g,c+k),b.lineTo(d+g,c+e-k),b.quadTo(d+g,c+e,d+g-k,c+e),b.lineTo(d+k,c+e),b.quadTo(d,c+e,d,c+e-k),b.lineTo(d,c+k),b.quadTo(d,c,d+k,c)):(b.moveTo(d,c),b.lineTo(d+g,c),b.lineTo(d+g,c+e),b.lineTo(d,c+e),b.lineTo(d,c)),b.close(),b.end(),b.fillAndStroke()}};mxUtils.extend(E,mxRectangleShape);E.prototype.size=.1;E.prototype.fixedSize=!1;E.prototype.isHtmlAllowed=function(){return!1};E.prototype.getLabelBounds=function(b){if(mxUtils.getValue(this.state.style,
mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)){var d=b.width,c=b.height;b=new mxRectangle(b.x,b.y,d,c);var g=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.max(g,Math.min(d*e,c*e));b.x+=Math.round(g);b.width-=Math.round(2*g)}return b};
E.prototype.paintForeground=function(b,d,c,g,e){var k=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),z=parseFloat(mxUtils.getValue(this.style,"size",this.size)),z=k?Math.max(0,Math.min(g,z)):g*Math.max(0,Math.min(1,z));this.isRounded&&(k=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,z=Math.max(z,Math.min(g*k,e*k)));z=Math.round(z);b.begin();b.moveTo(d+z,c);b.lineTo(d+z,c+e);b.moveTo(d+g-z,c);b.lineTo(d+g-z,c+e);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
-arguments)};mxCellRenderer.registerShape("process",E);mxCellRenderer.registerShape("process2",E);mxUtils.extend(L,mxRectangleShape);L.prototype.paintBackground=function(b,d,c,g,e){b.setFillColor(mxConstants.NONE);b.rect(d,c,g,e);b.fill()};L.prototype.paintForeground=function(b,d,c,g,e){};mxCellRenderer.registerShape("transparent",L);mxUtils.extend(N,mxHexagon);N.prototype.size=30;N.prototype.position=.5;N.prototype.position2=.5;N.prototype.base=20;N.prototype.getLabelMargins=function(){return new mxRectangle(0,
+arguments)};mxCellRenderer.registerShape("process",E);mxCellRenderer.registerShape("process2",E);mxUtils.extend(J,mxRectangleShape);J.prototype.paintBackground=function(b,d,c,g,e){b.setFillColor(mxConstants.NONE);b.rect(d,c,g,e);b.fill()};J.prototype.paintForeground=function(b,d,c,g,e){};mxCellRenderer.registerShape("transparent",J);mxUtils.extend(N,mxHexagon);N.prototype.size=30;N.prototype.position=.5;N.prototype.position2=.5;N.prototype.base=20;N.prototype.getLabelMargins=function(){return new mxRectangle(0,
0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};N.prototype.isRoundable=function(){return!0};N.prototype.redrawPath=function(b,d,c,g,e){d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var k=g*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),z=g*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",
this.position2)))),f=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(b,[new mxPoint(0,0),new mxPoint(g,0),new mxPoint(g,e-c),new mxPoint(Math.min(g,k+f),e-c),new mxPoint(z,e),new mxPoint(Math.max(0,k),e-c),new mxPoint(0,e-c)],this.isRounded,d,!0,[4])};mxCellRenderer.registerShape("callout",N);mxUtils.extend(M,mxActor);M.prototype.size=.2;M.prototype.fixedSize=20;M.prototype.isRoundable=function(){return!0};M.prototype.redrawPath=function(b,d,c,g,e){d=
"0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):g*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(g-d,0),new mxPoint(g,e/2),new mxPoint(g-d,e),new mxPoint(0,e),new mxPoint(d,e/2)],this.isRounded,c,!0);b.end()};mxCellRenderer.registerShape("step",M);
@@ -2801,35 +2801,35 @@ mxUtils.extend(Q,mxHexagon);Q.prototype.size=.25;Q.prototype.fixedSize=20;Q.prot
0),new mxPoint(g-d,0),new mxPoint(g,.5*e),new mxPoint(g-d,e),new mxPoint(d,e),new mxPoint(0,.5*e)],this.isRounded,c,!0)};mxCellRenderer.registerShape("hexagon",Q);mxUtils.extend(V,mxRectangleShape);V.prototype.isHtmlAllowed=function(){return!1};V.prototype.paintForeground=function(b,d,c,g,e){var k=Math.min(g/5,e/5)+1;b.begin();b.moveTo(d+g/2,c+k);b.lineTo(d+g/2,c+e-k);b.moveTo(d+k,c+e/2);b.lineTo(d+g-k,c+e/2);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",
V);var $a=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var d=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+d,b.y+d,b.width-2*d,b.height-2*d)}return b};mxRhombus.prototype.paintVertexShape=function(b,d,c,g,e){$a.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var k=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
0);d+=k;c+=k;g-=2*k;e-=2*k;0<g&&0<e&&(b.setShadow(!1),$a.apply(this,[b,d,c,g,e]))}};mxUtils.extend(X,mxRectangleShape);X.prototype.isHtmlAllowed=function(){return!1};X.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var d=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+d,b.y+d,b.width-2*d,b.height-2*d)}return b};X.prototype.paintForeground=function(b,d,c,g,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var k=
-Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);d+=k;c+=k;g-=2*k;e-=2*k;0<g&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}b.setDashed(!1);var k=0,z;do{z=mxCellRenderer.defaultShapes[this.style["symbol"+k]];if(null!=z){var f=this.style["symbol"+k+"Align"],l=this.style["symbol"+k+"VerticalAlign"],m=this.style["symbol"+k+"Width"],q=this.style["symbol"+k+"Height"],p=this.style["symbol"+k+"Spacing"]||0,B=this.style["symbol"+k+"VSpacing"]||p,va=
-this.style["symbol"+k+"ArcSpacing"];null!=va&&(va*=this.getArcSize(g+this.strokewidth,e+this.strokewidth),p+=va,B+=va);var va=d,Ja=c,va=f==mxConstants.ALIGN_CENTER?va+(g-m)/2:f==mxConstants.ALIGN_RIGHT?va+(g-m-p):va+p,Ja=l==mxConstants.ALIGN_MIDDLE?Ja+(e-q)/2:l==mxConstants.ALIGN_BOTTOM?Ja+(e-q-B):Ja+B;b.save();f=new z;f.style=this.style;z.prototype.paintVertexShape.call(f,b,va,Ja,m,q);b.restore()}k++}while(null!=z)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",
+Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);d+=k;c+=k;g-=2*k;e-=2*k;0<g&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}b.setDashed(!1);var k=0,z;do{z=mxCellRenderer.defaultShapes[this.style["symbol"+k]];if(null!=z){var f=this.style["symbol"+k+"Align"],m=this.style["symbol"+k+"VerticalAlign"],l=this.style["symbol"+k+"Width"],t=this.style["symbol"+k+"Height"],p=this.style["symbol"+k+"Spacing"]||0,B=this.style["symbol"+k+"VSpacing"]||p,va=
+this.style["symbol"+k+"ArcSpacing"];null!=va&&(va*=this.getArcSize(g+this.strokewidth,e+this.strokewidth),p+=va,B+=va);var va=d,Ja=c,va=f==mxConstants.ALIGN_CENTER?va+(g-l)/2:f==mxConstants.ALIGN_RIGHT?va+(g-l-p):va+p,Ja=m==mxConstants.ALIGN_MIDDLE?Ja+(e-t)/2:m==mxConstants.ALIGN_BOTTOM?Ja+(e-t-B):Ja+B;b.save();f=new z;f.style=this.style;z.prototype.paintVertexShape.call(f,b,va,Ja,l,t);b.restore()}k++}while(null!=z)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",
X);mxUtils.extend(ja,mxCylinder);ja.prototype.redrawPath=function(b,d,c,g,e,k){k?(b.moveTo(0,0),b.lineTo(g/2,e/2),b.lineTo(g,0),b.end()):(b.moveTo(0,0),b.lineTo(g,0),b.lineTo(g,e),b.lineTo(0,e),b.close())};mxCellRenderer.registerShape("message",ja);mxUtils.extend(Y,mxShape);Y.prototype.paintBackground=function(b,d,c,g,e){b.translate(d,c);b.ellipse(g/4,0,g/2,e/4);b.fillAndStroke();b.begin();b.moveTo(g/2,e/4);b.lineTo(g/2,2*e/3);b.moveTo(g/2,e/3);b.lineTo(0,e/3);b.moveTo(g/2,e/3);b.lineTo(g,e/3);b.moveTo(g/
2,2*e/3);b.lineTo(0,e);b.moveTo(g/2,2*e/3);b.lineTo(g,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlActor",Y);mxUtils.extend(da,mxShape);da.prototype.getLabelMargins=function(b){return new mxRectangle(b.width/6,0,0,0)};da.prototype.paintBackground=function(b,d,c,g,e){b.translate(d,c);b.begin();b.moveTo(0,e/4);b.lineTo(0,3*e/4);b.end();b.stroke();b.begin();b.moveTo(0,e/2);b.lineTo(g/6,e/2);b.end();b.stroke();b.ellipse(g/6,0,5*g/6,e);b.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",
-da);mxUtils.extend(ba,mxEllipse);ba.prototype.paintVertexShape=function(b,d,c,g,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+g/8,c+e);b.lineTo(d+7*g/8,c+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",ba);mxUtils.extend(B,mxShape);B.prototype.paintVertexShape=function(b,d,c,g,e){b.translate(d,c);b.begin();b.moveTo(g,0);b.lineTo(0,e);b.moveTo(0,0);b.lineTo(g,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlDestroy",B);mxUtils.extend(J,mxShape);
-J.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};J.prototype.paintBackground=function(b,d,c,g,e){b.translate(d,c);b.begin();b.moveTo(3*g/8,e/8*1.1);b.lineTo(5*g/8,0);b.end();b.stroke();b.ellipse(0,e/8,g,7*e/8);b.fillAndStroke()};J.prototype.paintForeground=function(b,d,c,g,e){b.begin();b.moveTo(3*g/8,e/8*1.1);b.lineTo(5*g/8,e/4);b.end();b.stroke()};mxCellRenderer.registerShape("umlControl",J);mxUtils.extend(K,mxRectangleShape);K.prototype.size=
+da);mxUtils.extend(ba,mxEllipse);ba.prototype.paintVertexShape=function(b,d,c,g,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+g/8,c+e);b.lineTo(d+7*g/8,c+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",ba);mxUtils.extend(B,mxShape);B.prototype.paintVertexShape=function(b,d,c,g,e){b.translate(d,c);b.begin();b.moveTo(g,0);b.lineTo(0,e);b.moveTo(0,0);b.lineTo(g,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlDestroy",B);mxUtils.extend(L,mxShape);
+L.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};L.prototype.paintBackground=function(b,d,c,g,e){b.translate(d,c);b.begin();b.moveTo(3*g/8,e/8*1.1);b.lineTo(5*g/8,0);b.end();b.stroke();b.ellipse(0,e/8,g,7*e/8);b.fillAndStroke()};L.prototype.paintForeground=function(b,d,c,g,e){b.begin();b.moveTo(3*g/8,e/8*1.1);b.lineTo(5*g/8,e/4);b.end();b.stroke()};mxCellRenderer.registerShape("umlControl",L);mxUtils.extend(K,mxRectangleShape);K.prototype.size=
40;K.prototype.isHtmlAllowed=function(){return!1};K.prototype.getLabelBounds=function(b){var d=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(b.x,b.y,b.width,d)};K.prototype.paintBackground=function(b,d,c,g,e){var k=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),f=mxUtils.getValue(this.style,"participant");null==f||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,b,d,
c,g,k):(f=this.state.view.graph.cellRenderer.getShape(f),null!=f&&f!=K&&(f=new f,f.apply(this.state),b.save(),f.paintVertexShape(b,d,c,g,k),b.restore()));k<e&&(b.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),b.begin(),b.moveTo(d+g/2,c+k),b.lineTo(d+g/2,c+e),b.end(),b.stroke())};K.prototype.paintForeground=function(b,d,c,g,e){var k=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,b,d,c,g,Math.min(e,
k))};mxCellRenderer.registerShape("umlLifeline",K);mxUtils.extend(W,mxShape);W.prototype.width=60;W.prototype.height=30;W.prototype.corner=10;W.prototype.getLabelMargins=function(b){return new mxRectangle(0,0,b.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),b.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*this.scale))};W.prototype.paintBackground=function(b,d,c,g,e){var k=this.corner,f=Math.min(g,Math.max(k,parseFloat(mxUtils.getValue(this.style,
-"width",this.width)))),z=Math.min(e,Math.max(1.5*k,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),l=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);l!=mxConstants.NONE&&(b.setFillColor(l),b.rect(d,c,g,e),b.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(b,d,c,g,e),b.setGradient(this.fill,this.gradient,d,c,g,e,this.gradientDirection)):b.setFillColor(this.fill);b.begin();
+"width",this.width)))),z=Math.min(e,Math.max(1.5*k,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),m=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);m!=mxConstants.NONE&&(b.setFillColor(m),b.rect(d,c,g,e),b.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(b,d,c,g,e),b.setGradient(this.fill,this.gradient,d,c,g,e,this.gradientDirection)):b.setFillColor(this.fill);b.begin();
b.moveTo(d,c);b.lineTo(d+f,c);b.lineTo(d+f,c+Math.max(0,z-1.5*k));b.lineTo(d+Math.max(0,f-k),c+z);b.lineTo(d,c+z);b.close();b.fillAndStroke();b.begin();b.moveTo(d+f,c);b.lineTo(d+g,c);b.lineTo(d+g,c+e);b.lineTo(d,c+e);b.lineTo(d,c+z);b.stroke()};mxCellRenderer.registerShape("umlFrame",W);mxPerimeter.CenterPerimeter=function(b,d,c,g){return new mxPoint(b.getCenterX(),b.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(b,d,
c,g){g=K.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g)*d.view.scale);d=parseFloat(d.style[mxConstants.STYLE_STROKEWIDTH]||1)*d.view.scale/2-1;c.x<b.getCenterX()&&(d=-1*(d+1));return new mxPoint(b.getCenterX()+d,Math.min(b.y+b.height,Math.max(b.y+g,c.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(b,d,c,g){g=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",
mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(b,d,c,g){g=parseFloat(d.style[mxConstants.STYLE_STROKEWIDTH]||1)*d.view.scale/2-1;null!=d.style.backboneSize&&(g+=parseFloat(d.style.backboneSize)*d.view.scale/2-1);if("south"==d.style[mxConstants.STYLE_DIRECTION]||"north"==d.style[mxConstants.STYLE_DIRECTION])return c.x<b.getCenterX()&&(g=-1*(g+1)),new mxPoint(b.getCenterX()+g,Math.min(b.y+b.height,Math.max(b.y,c.y)));c.y<b.getCenterY()&&(g=-1*(g+1));return new mxPoint(Math.min(b.x+
b.width,Math.max(b.x,c.x)),b.getCenterY()+g)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(b,d,c,g){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(b,new mxRectangle(0,0,0,Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(d.style,"size",N.prototype.size))*d.view.scale))),d.style),d,c,g)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(b,
-d,c,g){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),k=e?D.prototype.fixedSize:D.prototype.size;null!=d&&(k=mxUtils.getValue(d.style,"size",k));e&&(k*=d.view.scale);var f=b.x,z=b.y,l=b.width,m=b.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z),new mxPoint(f+l,z+e),new mxPoint(f+
-l,z+m),new mxPoint(f,z+m-e),new mxPoint(f,z)]):(e=e?Math.max(0,Math.min(.5*l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f+e,z),new mxPoint(f+l,z),new mxPoint(f+l-e,z+m),new mxPoint(f,z+m),new mxPoint(f+e,z)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);g&&(c.x<f||c.x>f+l?b.y=c.y:b.x=c.x);return mxUtils.getPerimeterPoint(z,b,c)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(b,d,c,g){var e="0"!=mxUtils.getValue(d.style,
-"fixedSize","0"),k=e?F.prototype.fixedSize:F.prototype.size;null!=d&&(k=mxUtils.getValue(d.style,"size",k));e&&(k*=d.view.scale);var f=b.x,z=b.y,l=b.width,m=b.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(.5*l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f+e,z),new mxPoint(f+l-e,z),new mxPoint(f+l,z+m),new mxPoint(f,z+m),new mxPoint(f+e,z)]):d==mxConstants.DIRECTION_WEST?
-(e=e?Math.max(0,Math.min(l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z),new mxPoint(f+l,z),new mxPoint(f+l-e,z+m),new mxPoint(f+e,z+m),new mxPoint(f,z)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z+e),new mxPoint(f+l,z),new mxPoint(f+l,z+m),new mxPoint(f,z+m-e),new mxPoint(f,z+e)]):(e=e?Math.max(0,Math.min(m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z),new mxPoint(f+l,z+e),new mxPoint(f+l,z+m-e),new mxPoint(f,z+m),new mxPoint(f,
-z)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);g&&(c.x<f||c.x>f+l?b.y=c.y:b.x=c.x);return mxUtils.getPerimeterPoint(z,b,c)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(b,d,c,g){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),k=e?M.prototype.fixedSize:M.prototype.size;null!=d&&(k=mxUtils.getValue(d.style,"size",k));e&&(k*=d.view.scale);var f=b.x,z=b.y,l=b.width,m=b.height,q=b.getCenterX();b=b.getCenterY();d=null!=
-d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z),new mxPoint(f+l-e,z),new mxPoint(f+l,b),new mxPoint(f+l-e,z+m),new mxPoint(f,z+m),new mxPoint(f+e,b),new mxPoint(f,z)]):d==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f+e,z),new mxPoint(f+l,z),new mxPoint(f+l-e,b),new mxPoint(f+
-l,z+m),new mxPoint(f+e,z+m),new mxPoint(f,b),new mxPoint(f+e,z)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z+e),new mxPoint(q,z),new mxPoint(f+l,z+e),new mxPoint(f+l,z+m),new mxPoint(q,z+m-e),new mxPoint(f,z+m),new mxPoint(f,z+e)]):(e=e?Math.max(0,Math.min(m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z),new mxPoint(q,z+e),new mxPoint(f+l,z),new mxPoint(f+l,z+m-e),new mxPoint(q,z+m),new mxPoint(f,z+m-e),new mxPoint(f,z)]);q=new mxPoint(q,
-b);g&&(c.x<f||c.x>f+l?q.y=c.y:q.x=c.x);return mxUtils.getPerimeterPoint(z,q,c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(b,d,c,g){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),k=e?Q.prototype.fixedSize:Q.prototype.size;null!=d&&(k=mxUtils.getValue(d.style,"size",k));e&&(k*=d.view.scale);var f=b.x,z=b.y,l=b.width,m=b.height,q=b.getCenterX();b=b.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):
-mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(q,z),new mxPoint(f+l,z+e),new mxPoint(f+l,z+m-e),new mxPoint(q,z+m),new mxPoint(f,z+m-e),new mxPoint(f,z+e),new mxPoint(q,z)]):(e=e?Math.max(0,Math.min(l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f+e,z),new mxPoint(f+l-e,z),new mxPoint(f+l,b),new mxPoint(f+l-e,z+m),new mxPoint(f+e,z+m),new mxPoint(f,b),new mxPoint(f+e,z)]);q=new mxPoint(q,
-b);g&&(c.x<f||c.x>f+l?q.y=c.y:q.x=c.x);return mxUtils.getPerimeterPoint(z,q,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(fa,mxShape);fa.prototype.size=10;fa.prototype.paintBackground=function(b,d,c,g,e){var k=parseFloat(mxUtils.getValue(this.style,"size",this.size));b.translate(d,c);b.ellipse((g-k)/2,0,k,k);b.fillAndStroke();b.begin();b.moveTo(g/2,k);b.lineTo(g/2,e);b.end();b.stroke()};mxCellRenderer.registerShape("lollipop",fa);mxUtils.extend(I,mxShape);
+d,c,g){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),k=e?D.prototype.fixedSize:D.prototype.size;null!=d&&(k=mxUtils.getValue(d.style,"size",k));e&&(k*=d.view.scale);var f=b.x,z=b.y,m=b.width,l=b.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z),new mxPoint(f+m,z+e),new mxPoint(f+
+m,z+l),new mxPoint(f,z+l-e),new mxPoint(f,z)]):(e=e?Math.max(0,Math.min(.5*m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f+e,z),new mxPoint(f+m,z),new mxPoint(f+m-e,z+l),new mxPoint(f,z+l),new mxPoint(f+e,z)]);l=b.getCenterX();b=b.getCenterY();b=new mxPoint(l,b);g&&(c.x<f||c.x>f+m?b.y=c.y:b.x=c.x);return mxUtils.getPerimeterPoint(z,b,c)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(b,d,c,g){var e="0"!=mxUtils.getValue(d.style,
+"fixedSize","0"),k=e?F.prototype.fixedSize:F.prototype.size;null!=d&&(k=mxUtils.getValue(d.style,"size",k));e&&(k*=d.view.scale);var f=b.x,z=b.y,m=b.width,l=b.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(.5*m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f+e,z),new mxPoint(f+m-e,z),new mxPoint(f+m,z+l),new mxPoint(f,z+l),new mxPoint(f+e,z)]):d==mxConstants.DIRECTION_WEST?
+(e=e?Math.max(0,Math.min(m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z),new mxPoint(f+m,z),new mxPoint(f+m-e,z+l),new mxPoint(f+e,z+l),new mxPoint(f,z)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z+e),new mxPoint(f+m,z),new mxPoint(f+m,z+l),new mxPoint(f,z+l-e),new mxPoint(f,z+e)]):(e=e?Math.max(0,Math.min(l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z),new mxPoint(f+m,z+e),new mxPoint(f+m,z+l-e),new mxPoint(f,z+l),new mxPoint(f,
+z)]);l=b.getCenterX();b=b.getCenterY();b=new mxPoint(l,b);g&&(c.x<f||c.x>f+m?b.y=c.y:b.x=c.x);return mxUtils.getPerimeterPoint(z,b,c)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(b,d,c,g){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),k=e?M.prototype.fixedSize:M.prototype.size;null!=d&&(k=mxUtils.getValue(d.style,"size",k));e&&(k*=d.view.scale);var f=b.x,z=b.y,m=b.width,l=b.height,t=b.getCenterX();b=b.getCenterY();d=null!=
+d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z),new mxPoint(f+m-e,z),new mxPoint(f+m,b),new mxPoint(f+m-e,z+l),new mxPoint(f,z+l),new mxPoint(f+e,b),new mxPoint(f,z)]):d==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f+e,z),new mxPoint(f+m,z),new mxPoint(f+m-e,b),new mxPoint(f+
+m,z+l),new mxPoint(f+e,z+l),new mxPoint(f,b),new mxPoint(f+e,z)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z+e),new mxPoint(t,z),new mxPoint(f+m,z+e),new mxPoint(f+m,z+l),new mxPoint(t,z+l-e),new mxPoint(f,z+l),new mxPoint(f,z+e)]):(e=e?Math.max(0,Math.min(l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z),new mxPoint(t,z+e),new mxPoint(f+m,z),new mxPoint(f+m,z+l-e),new mxPoint(t,z+l),new mxPoint(f,z+l-e),new mxPoint(f,z)]);t=new mxPoint(t,
+b);g&&(c.x<f||c.x>f+m?t.y=c.y:t.x=c.x);return mxUtils.getPerimeterPoint(z,t,c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(b,d,c,g){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),k=e?Q.prototype.fixedSize:Q.prototype.size;null!=d&&(k=mxUtils.getValue(d.style,"size",k));e&&(k*=d.view.scale);var f=b.x,z=b.y,m=b.width,l=b.height,t=b.getCenterX();b=b.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):
+mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(t,z),new mxPoint(f+m,z+e),new mxPoint(f+m,z+l-e),new mxPoint(t,z+l),new mxPoint(f,z+l-e),new mxPoint(f,z+e),new mxPoint(t,z)]):(e=e?Math.max(0,Math.min(m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f+e,z),new mxPoint(f+m-e,z),new mxPoint(f+m,b),new mxPoint(f+m-e,z+l),new mxPoint(f+e,z+l),new mxPoint(f,b),new mxPoint(f+e,z)]);t=new mxPoint(t,
+b);g&&(c.x<f||c.x>f+m?t.y=c.y:t.x=c.x);return mxUtils.getPerimeterPoint(z,t,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(fa,mxShape);fa.prototype.size=10;fa.prototype.paintBackground=function(b,d,c,g,e){var k=parseFloat(mxUtils.getValue(this.style,"size",this.size));b.translate(d,c);b.ellipse((g-k)/2,0,k,k);b.fillAndStroke();b.begin();b.moveTo(g/2,k);b.lineTo(g/2,e);b.end();b.stroke()};mxCellRenderer.registerShape("lollipop",fa);mxUtils.extend(I,mxShape);
I.prototype.size=10;I.prototype.inset=2;I.prototype.paintBackground=function(b,d,c,g,e){var k=parseFloat(mxUtils.getValue(this.style,"size",this.size)),f=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(d,c);b.begin();b.moveTo(g/2,k+f);b.lineTo(g/2,e);b.end();b.stroke();b.begin();b.moveTo((g-k)/2-f,k/2);b.quadTo((g-k)/2-f,k+f,g/2,k+f);b.quadTo((g+k)/2+f,k+f,(g+k)/2+f,k/2);b.end();b.stroke()};mxCellRenderer.registerShape("requires",I);mxUtils.extend(la,mxShape);
la.prototype.paintBackground=function(b,d,c,g,e){b.translate(d,c);b.begin();b.moveTo(0,0);b.quadTo(g,0,g,e/2);b.quadTo(g,e,0,e);b.end();b.stroke()};mxCellRenderer.registerShape("requiredInterface",la);mxUtils.extend(oa,mxShape);oa.prototype.inset=2;oa.prototype.paintBackground=function(b,d,c,g,e){var k=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(d,c);b.ellipse(0,k,g-2*k,e-2*k);b.fillAndStroke();b.begin();b.moveTo(g/2,0);b.quadTo(g,0,g,e/2);b.quadTo(g,e,
-g/2,e);b.end();b.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",oa);mxUtils.extend(pa,mxCylinder);pa.prototype.jettyWidth=20;pa.prototype.jettyHeight=10;pa.prototype.redrawPath=function(b,d,c,g,e,k){var f=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=f/2;var f=c+f/2,z=Math.min(d,e-d),l=Math.min(z+2*d,e-d);k?(b.moveTo(c,z),b.lineTo(f,z),b.lineTo(f,z+d),b.lineTo(c,z+d),b.moveTo(c,
-l),b.lineTo(f,l),b.lineTo(f,l+d),b.lineTo(c,l+d)):(b.moveTo(c,0),b.lineTo(g,0),b.lineTo(g,e),b.lineTo(c,e),b.lineTo(c,l+d),b.lineTo(0,l+d),b.lineTo(0,l),b.lineTo(c,l),b.lineTo(c,z+d),b.lineTo(0,z+d),b.lineTo(0,z),b.lineTo(c,z),b.close());b.end()};mxCellRenderer.registerShape("module",pa);mxUtils.extend(ka,mxCylinder);ka.prototype.jettyWidth=32;ka.prototype.jettyHeight=12;ka.prototype.redrawPath=function(b,d,c,g,e,k){var f=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,
-"jettyHeight",this.jettyHeight));c=f/2;var f=c+f/2,z=.3*e-d/2,l=.7*e-d/2;k?(b.moveTo(c,z),b.lineTo(f,z),b.lineTo(f,z+d),b.lineTo(c,z+d),b.moveTo(c,l),b.lineTo(f,l),b.lineTo(f,l+d),b.lineTo(c,l+d)):(b.moveTo(c,0),b.lineTo(g,0),b.lineTo(g,e),b.lineTo(c,e),b.lineTo(c,l+d),b.lineTo(0,l+d),b.lineTo(0,l),b.lineTo(c,l),b.lineTo(c,z+d),b.lineTo(0,z+d),b.lineTo(0,z),b.lineTo(c,z),b.close());b.end()};mxCellRenderer.registerShape("component",ka);mxUtils.extend(qa,mxRectangleShape);qa.prototype.paintForeground=
+g/2,e);b.end();b.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",oa);mxUtils.extend(pa,mxCylinder);pa.prototype.jettyWidth=20;pa.prototype.jettyHeight=10;pa.prototype.redrawPath=function(b,d,c,g,e,k){var f=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=f/2;var f=c+f/2,z=Math.min(d,e-d),m=Math.min(z+2*d,e-d);k?(b.moveTo(c,z),b.lineTo(f,z),b.lineTo(f,z+d),b.lineTo(c,z+d),b.moveTo(c,
+m),b.lineTo(f,m),b.lineTo(f,m+d),b.lineTo(c,m+d)):(b.moveTo(c,0),b.lineTo(g,0),b.lineTo(g,e),b.lineTo(c,e),b.lineTo(c,m+d),b.lineTo(0,m+d),b.lineTo(0,m),b.lineTo(c,m),b.lineTo(c,z+d),b.lineTo(0,z+d),b.lineTo(0,z),b.lineTo(c,z),b.close());b.end()};mxCellRenderer.registerShape("module",pa);mxUtils.extend(ka,mxCylinder);ka.prototype.jettyWidth=32;ka.prototype.jettyHeight=12;ka.prototype.redrawPath=function(b,d,c,g,e,k){var f=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,
+"jettyHeight",this.jettyHeight));c=f/2;var f=c+f/2,z=.3*e-d/2,m=.7*e-d/2;k?(b.moveTo(c,z),b.lineTo(f,z),b.lineTo(f,z+d),b.lineTo(c,z+d),b.moveTo(c,m),b.lineTo(f,m),b.lineTo(f,m+d),b.lineTo(c,m+d)):(b.moveTo(c,0),b.lineTo(g,0),b.lineTo(g,e),b.lineTo(c,e),b.lineTo(c,m+d),b.lineTo(0,m+d),b.lineTo(0,m),b.lineTo(c,m),b.lineTo(c,z+d),b.lineTo(0,z+d),b.lineTo(0,z),b.lineTo(c,z),b.close());b.end()};mxCellRenderer.registerShape("component",ka);mxUtils.extend(qa,mxRectangleShape);qa.prototype.paintForeground=
function(b,d,c,g,e){var k=g/2,f=e/2,z=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b.begin();this.addPoints(b,[new mxPoint(d+k,c),new mxPoint(d+g,c+f),new mxPoint(d+k,c+e),new mxPoint(d,c+f)],this.isRounded,z,!0);b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",qa);mxUtils.extend(Z,mxDoubleEllipse);Z.prototype.outerStroke=!0;Z.prototype.paintVertexShape=function(b,d,c,g,e){var k=Math.min(4,
Math.min(g/5,e/5));0<g&&0<e&&(b.ellipse(d+k,c+k,g-2*k,e-2*k),b.fillAndStroke());b.setShadow(!1);this.outerStroke&&(b.ellipse(d,c,g,e),b.stroke())};mxCellRenderer.registerShape("endState",Z);mxUtils.extend(P,Z);P.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",P);mxUtils.extend(sa,mxArrowConnector);sa.prototype.defaultWidth=4;sa.prototype.isOpenEnded=function(){return!0};sa.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,
this.strokewidth-1)};sa.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",sa);mxUtils.extend(T,mxArrowConnector);T.prototype.defaultWidth=10;T.prototype.defaultArrowWidth=20;T.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};T.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};T.prototype.getEdgeWidth=
@@ -2848,9 +2848,9 @@ mxActor);ua.prototype.size=.375;ua.prototype.isRoundable=function(){return!0};ua
mxEllipse);aa.prototype.paintVertexShape=function(b,d,c,g,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+g/2,c+e);b.lineTo(d+g,c+e);b.end();b.stroke()};mxCellRenderer.registerShape("tapeData",aa);mxUtils.extend(R,mxEllipse);R.prototype.paintVertexShape=function(b,d,c,g,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d,c+e/2);b.lineTo(d+g,c+e/2);b.end();b.stroke();b.begin();b.moveTo(d+g/2,c);b.lineTo(d+g/2,c+e);b.end();
b.stroke()};mxCellRenderer.registerShape("orEllipse",R);mxUtils.extend(Ea,mxEllipse);Ea.prototype.paintVertexShape=function(b,d,c,g,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d+.145*g,c+.145*e);b.lineTo(d+.855*g,c+.855*e);b.end();b.stroke();b.begin();b.moveTo(d+.855*g,c+.145*e);b.lineTo(d+.145*g,c+.855*e);b.end();b.stroke()};mxCellRenderer.registerShape("sumEllipse",Ea);mxUtils.extend(Ia,mxRhombus);Ia.prototype.paintVertexShape=function(b,d,c,
g,e){mxRhombus.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d,c+e/2);b.lineTo(d+g,c+e/2);b.end();b.stroke()};mxCellRenderer.registerShape("sortShape",Ia);mxUtils.extend(wa,mxEllipse);wa.prototype.paintVertexShape=function(b,d,c,g,e){b.begin();b.moveTo(d,c);b.lineTo(d+g,c);b.lineTo(d+g/2,c+e/2);b.close();b.fillAndStroke();b.begin();b.moveTo(d,c+e);b.lineTo(d+g,c+e);b.lineTo(d+g/2,c+e/2);b.close();b.fillAndStroke()};mxCellRenderer.registerShape("collate",wa);mxUtils.extend(Ba,
-mxEllipse);Ba.prototype.paintVertexShape=function(b,d,c,g,e){var k=b.state.strokeWidth/2,f=10+2*k,l=c+e-f/2;b.begin();b.moveTo(d,c);b.lineTo(d,c+e);b.moveTo(d+k,l);b.lineTo(d+k+f,l-f/2);b.moveTo(d+k,l);b.lineTo(d+k+f,l+f/2);b.moveTo(d+k,l);b.lineTo(d+g-k,l);b.moveTo(d+g,c);b.lineTo(d+g,c+e);b.moveTo(d+g-k,l);b.lineTo(d+g-f-k,l-f/2);b.moveTo(d+g-k,l);b.lineTo(d+g-f-k,l+f/2);b.end();b.stroke()};mxCellRenderer.registerShape("dimension",Ba);mxUtils.extend(ya,mxEllipse);ya.prototype.drawHidden=!0;ya.prototype.paintVertexShape=
-function(b,d,c,g,e){this.outline||b.setStrokeColor(null);if(null!=this.style){var k=b.pointerEvents,f=null!=this.fill&&this.fill!=mxConstants.NONE;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||f||(b.pointerEvents=!1);var l="1"==mxUtils.getValue(this.style,"top","1"),m="1"==mxUtils.getValue(this.style,"left","1"),z="1"==mxUtils.getValue(this.style,"right","1"),q="1"==mxUtils.getValue(this.style,"bottom","1");this.drawHidden||f||this.outline||l||z||q||m?(b.rect(d,c,g,e),b.fill(),
-b.pointerEvents=k,b.setStrokeColor(this.stroke),b.setLineCap("square"),b.begin(),b.moveTo(d,c),this.outline||l?b.lineTo(d+g,c):b.moveTo(d+g,c),this.outline||z?b.lineTo(d+g,c+e):b.moveTo(d+g,c+e),this.outline||q?b.lineTo(d,c+e):b.moveTo(d,c+e),(this.outline||m)&&b.lineTo(d,c),b.end(),b.stroke(),b.setLineCap("flat")):b.setStrokeColor(this.stroke)}};mxCellRenderer.registerShape("partialRectangle",ya);mxUtils.extend(Ca,mxEllipse);Ca.prototype.paintVertexShape=function(b,d,c,g,e){mxEllipse.prototype.paintVertexShape.apply(this,
+mxEllipse);Ba.prototype.paintVertexShape=function(b,d,c,g,e){var k=b.state.strokeWidth/2,f=10+2*k,m=c+e-f/2;b.begin();b.moveTo(d,c);b.lineTo(d,c+e);b.moveTo(d+k,m);b.lineTo(d+k+f,m-f/2);b.moveTo(d+k,m);b.lineTo(d+k+f,m+f/2);b.moveTo(d+k,m);b.lineTo(d+g-k,m);b.moveTo(d+g,c);b.lineTo(d+g,c+e);b.moveTo(d+g-k,m);b.lineTo(d+g-f-k,m-f/2);b.moveTo(d+g-k,m);b.lineTo(d+g-f-k,m+f/2);b.end();b.stroke()};mxCellRenderer.registerShape("dimension",Ba);mxUtils.extend(ya,mxEllipse);ya.prototype.drawHidden=!0;ya.prototype.paintVertexShape=
+function(b,d,c,g,e){this.outline||b.setStrokeColor(null);if(null!=this.style){var k=b.pointerEvents,f=null!=this.fill&&this.fill!=mxConstants.NONE;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||f||(b.pointerEvents=!1);var m="1"==mxUtils.getValue(this.style,"top","1"),l="1"==mxUtils.getValue(this.style,"left","1"),z="1"==mxUtils.getValue(this.style,"right","1"),t="1"==mxUtils.getValue(this.style,"bottom","1");this.drawHidden||f||this.outline||m||z||t||l?(b.rect(d,c,g,e),b.fill(),
+b.pointerEvents=k,b.setStrokeColor(this.stroke),b.setLineCap("square"),b.begin(),b.moveTo(d,c),this.outline||m?b.lineTo(d+g,c):b.moveTo(d+g,c),this.outline||z?b.lineTo(d+g,c+e):b.moveTo(d+g,c+e),this.outline||t?b.lineTo(d,c+e):b.moveTo(d,c+e),(this.outline||l)&&b.lineTo(d,c),b.end(),b.stroke(),b.setLineCap("flat")):b.setStrokeColor(this.stroke)}};mxCellRenderer.registerShape("partialRectangle",ya);mxUtils.extend(Ca,mxEllipse);Ca.prototype.paintVertexShape=function(b,d,c,g,e){mxEllipse.prototype.paintVertexShape.apply(this,
arguments);b.setShadow(!1);b.begin();"vertical"==mxUtils.getValue(this.style,"line")?(b.moveTo(d+g/2,c),b.lineTo(d+g/2,c+e)):(b.moveTo(d,c+e/2),b.lineTo(d+g,c+e/2));b.end();b.stroke()};mxCellRenderer.registerShape("lineEllipse",Ca);mxUtils.extend(Fa,mxActor);Fa.prototype.redrawPath=function(b,d,c,g,e){d=Math.min(g,e/2);b.moveTo(0,0);b.lineTo(g-d,0);b.quadTo(g,0,g,e/2);b.quadTo(g,e,g-d,e);b.lineTo(0,e);b.close();b.end()};mxCellRenderer.registerShape("delay",Fa);mxUtils.extend(Da,mxActor);Da.prototype.size=
.2;Da.prototype.redrawPath=function(b,d,c,g,e){d=Math.min(e,g);var k=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=(e-k)/2;c=d+k;var f=(g-k)/2,k=f+k;b.moveTo(0,d);b.lineTo(f,d);b.lineTo(f,0);b.lineTo(k,0);b.lineTo(k,d);b.lineTo(g,d);b.lineTo(g,c);b.lineTo(k,c);b.lineTo(k,e);b.lineTo(f,e);b.lineTo(f,c);b.lineTo(0,c);b.close();b.end()};mxCellRenderer.registerShape("cross",Da);mxUtils.extend(za,mxActor);za.prototype.size=.25;za.prototype.redrawPath=function(b,
d,c,g,e){d=Math.min(g,e/2);c=Math.min(g-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*g);b.moveTo(0,e/2);b.lineTo(c,0);b.lineTo(g-d,0);b.quadTo(g,0,g,e/2);b.quadTo(g,e,g-d,e);b.lineTo(c,e);b.close();b.end()};mxCellRenderer.registerShape("display",za);mxUtils.extend(U,mxActor);U.prototype.cst={RECT2:"mxgraph.basic.rect"};U.prototype.customProperties=[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},
@@ -2858,74 +2858,74 @@ d,c,g,e){d=Math.min(g,e/2);c=Math.min(g-d,Math.max(0,parseFloat(mxUtils.getValue
type:"color",defVal:"none"},{name:"gradientColor2",dispName:"Inside Gradient Color",type:"color",defVal:"none"},{name:"gradientDirection2",dispName:"Inside Gradient Direction",type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",dispName:"West"},{val:"north",dispName:"North"},{val:"east",dispName:"East"}]},{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},
{name:"left",dispName:"Left ",type:"bool",defVal:!0},{name:"topLeftStyle",dispName:"Top Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",
dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",
-dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]}];U.prototype.paintVertexShape=function(b,d,c,g,e){b.translate(d,c);this.strictDrawShape(b,0,0,g,e)};U.prototype.strictDrawShape=function(b,d,c,g,e,k){var f=k&&k.rectStyle?k.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),l=k&&k.absoluteCornerSize?k.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",
-this.absoluteCornerSize),m=k&&k.size?k.size:Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),q=k&&k.rectOutline?k.rectOutline:mxUtils.getValue(this.style,"rectOutline",this.rectOutline),p=k&&k.indent?k.indent:Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),B=k&&k.dashed?k.dashed:mxUtils.getValue(this.style,"dashed",!1),z=k&&k.dashPattern?k.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),n=k&&k.relIndent?k.relIndent:
-Math.max(0,Math.min(50,p)),u=k&&k.top?k.top:mxUtils.getValue(this.style,"top",!0),v=k&&k.right?k.right:mxUtils.getValue(this.style,"right",!0),y=k&&k.bottom?k.bottom:mxUtils.getValue(this.style,"bottom",!0),x=k&&k.left?k.left:mxUtils.getValue(this.style,"left",!0),J=k&&k.topLeftStyle?k.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),K=k&&k.topRightStyle?k.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),t=k&&k.bottomRightStyle?k.bottomRightStyle:mxUtils.getValue(this.style,
+dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]}];U.prototype.paintVertexShape=function(b,d,c,g,e){b.translate(d,c);this.strictDrawShape(b,0,0,g,e)};U.prototype.strictDrawShape=function(b,d,c,g,e,k){var f=k&&k.rectStyle?k.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),m=k&&k.absoluteCornerSize?k.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",
+this.absoluteCornerSize),l=k&&k.size?k.size:Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),t=k&&k.rectOutline?k.rectOutline:mxUtils.getValue(this.style,"rectOutline",this.rectOutline),p=k&&k.indent?k.indent:Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),B=k&&k.dashed?k.dashed:mxUtils.getValue(this.style,"dashed",!1),z=k&&k.dashPattern?k.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),n=k&&k.relIndent?k.relIndent:
+Math.max(0,Math.min(50,p)),u=k&&k.top?k.top:mxUtils.getValue(this.style,"top",!0),v=k&&k.right?k.right:mxUtils.getValue(this.style,"right",!0),y=k&&k.bottom?k.bottom:mxUtils.getValue(this.style,"bottom",!0),x=k&&k.left?k.left:mxUtils.getValue(this.style,"left",!0),L=k&&k.topLeftStyle?k.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),K=k&&k.topRightStyle?k.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),q=k&&k.bottomRightStyle?k.bottomRightStyle:mxUtils.getValue(this.style,
"bottomRightStyle","default"),I=k&&k.bottomLeftStyle?k.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),A=k&&k.fillColor?k.fillColor:mxUtils.getValue(this.style,"fillColor","#ffffff");k&&k.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var fa=k&&k.strokeWidth?k.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),M=k&&k.fillColor2?k.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),W=k&&k.gradientColor2?k.gradientColor2:mxUtils.getValue(this.style,
-"gradientColor2","none"),Ja=k&&k.gradientDirection2?k.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),va=k&&k.opacity?k.opacity:mxUtils.getValue(this.style,"opacity","100"),la=Math.max(0,Math.min(50,m));k=U.prototype;b.setDashed(B);z&&""!=z&&b.setDashPattern(z);b.setStrokeWidth(fa);m=Math.min(.5*e,.5*g,m);l||(m=la*Math.min(g,e)/100);m=Math.min(m,.5*Math.min(g,e));l||(p=Math.min(n*Math.min(g,e)/100));p=Math.min(p,.5*Math.min(g,e)-m);(u||v||y||x)&&"frame"!=q&&(b.begin(),
-u?k.moveNW(b,d,c,g,e,f,J,m,x):b.moveTo(0,0),u&&k.paintNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),v&&k.paintNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),y&&k.paintSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),x&&k.paintSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(M),B=l=va,"none"==M&&(l=0),"none"==W&&(B=0),b.setGradient(M,W,0,0,g,e,Ja,l,B),b.begin(),u?k.moveNWInner(b,d,c,g,e,f,J,m,p,u,x):b.moveTo(p,0),k.paintLeftInner(b,
-d,c,g,e,f,I,m,p,y,x),x&&y&&k.paintSWInner(b,d,c,g,e,f,I,m,p,y),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),y&&v&&k.paintSEInner(b,d,c,g,e,f,t,m,p),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),v&&u&&k.paintNEInner(b,d,c,g,e,f,K,m,p),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),u&&x&&k.paintNWInner(b,d,c,g,e,f,J,m,p),b.fill(),"none"==A&&(b.begin(),k.paintFolds(b,d,c,g,e,f,J,K,t,I,m,u,v,y,x),b.stroke()));u||v||y||!x?u||v||!y||x?!u&&!v&&y&&x?"frame"!=q?(b.begin(),k.moveSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,
-e,f,I,m,x),k.paintSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),"double"==q&&(k.moveNWInner(b,d,c,g,e,f,J,m,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),k.paintSWInner(b,d,c,g,e,f,I,m,p,y),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y)),b.stroke()):(b.begin(),k.moveSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),k.paintSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),k.lineNWInner(b,d,c,g,e,f,J,m,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),k.paintSWInner(b,d,c,g,e,f,I,m,p,y),k.paintBottomInner(b,
-d,c,g,e,f,t,m,p,v,y),b.close(),b.fillAndStroke()):u||!v||y||x?!u&&v&&!y&&x?"frame"!=q?(b.begin(),k.moveSW(b,d,c,g,e,f,J,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),"double"==q&&(k.moveNWInner(b,d,c,g,e,f,J,m,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x)),b.stroke(),b.begin(),k.moveNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),"double"==q&&(k.moveSEInner(b,d,c,g,e,f,t,m,p,y),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v)),b.stroke()):(b.begin(),k.moveSW(b,d,c,g,e,f,J,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),
-k.lineNWInner(b,d,c,g,e,f,J,m,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),b.close(),b.fillAndStroke(),b.begin(),k.moveNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.lineSEInner(b,d,c,g,e,f,t,m,p,y),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),b.close(),b.fillAndStroke()):!u&&v&&y&&!x?"frame"!=q?(b.begin(),k.moveNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.paintSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),"double"==q&&(k.moveSWInner(b,d,c,g,e,f,I,m,p,x),k.paintBottomInner(b,
-d,c,g,e,f,t,m,p,v,y),k.paintSEInner(b,d,c,g,e,f,t,m,p),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v)),b.stroke()):(b.begin(),k.moveNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.paintSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),k.lineSWInner(b,d,c,g,e,f,I,m,p,x),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),k.paintSEInner(b,d,c,g,e,f,t,m,p),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),b.close(),b.fillAndStroke()):!u&&v&&y&&x?"frame"!=q?(b.begin(),k.moveNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,
-c,g,e,f,t,m,y),k.paintSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),k.paintSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),"double"==q&&(k.moveNWInner(b,d,c,g,e,f,J,m,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),k.paintSWInner(b,d,c,g,e,f,I,m,p,y),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),k.paintSEInner(b,d,c,g,e,f,t,m,p),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v)),b.stroke()):(b.begin(),k.moveNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.paintSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,
-d,c,g,e,f,I,m,x),k.paintSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),k.lineNWInner(b,d,c,g,e,f,J,m,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),k.paintSWInner(b,d,c,g,e,f,I,m,p,y),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),k.paintSEInner(b,d,c,g,e,f,t,m,p),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),b.close(),b.fillAndStroke()):!u||v||y||x?u&&!v&&!y&&x?"frame"!=q?(b.begin(),k.moveSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),k.paintNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),
-"double"==q&&(k.moveNEInner(b,d,c,g,e,f,K,m,p,v),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),k.paintNWInner(b,d,c,g,e,f,J,m,p),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x)),b.stroke()):(b.begin(),k.moveSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),k.paintNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.lineNEInner(b,d,c,g,e,f,K,m,p,v),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),k.paintNWInner(b,d,c,g,e,f,J,m,p),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),b.close(),b.fillAndStroke()):u&&!v&&y&&!x?"frame"!=
-q?(b.begin(),k.moveNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),"double"==q&&(k.moveNEInner(b,d,c,g,e,f,K,m,p,v),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u)),b.stroke(),b.begin(),k.moveSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),"double"==q&&(k.moveSWInner(b,d,c,g,e,f,I,m,p,x),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y)),b.stroke()):(b.begin(),k.moveNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.lineNEInner(b,d,c,g,e,f,K,m,p,v),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),b.close(),b.fillAndStroke(),
-b.begin(),k.moveSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),k.lineSWInner(b,d,c,g,e,f,I,m,p,x),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),b.close(),b.fillAndStroke()):u&&!v&&y&&x?"frame"!=q?(b.begin(),k.moveSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),k.paintSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),k.paintNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),"double"==q&&(k.moveNEInner(b,d,c,g,e,f,K,m,p,v),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),k.paintNWInner(b,d,c,g,
-e,f,J,m,p),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),k.paintSWInner(b,d,c,g,e,f,I,m,p,y),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y)),b.stroke()):(b.begin(),k.moveSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),k.paintSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),k.paintNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.lineNEInner(b,d,c,g,e,f,K,m,p,v),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),k.paintNWInner(b,d,c,g,e,f,J,m,p),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),k.paintSWInner(b,d,c,
-g,e,f,I,m,p,y),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),b.close(),b.fillAndStroke()):u&&v&&!y&&!x?"frame"!=q?(b.begin(),k.moveNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.paintNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),"double"==q&&(k.moveSEInner(b,d,c,g,e,f,t,m,p,y),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,m,p),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u)),b.stroke()):(b.begin(),k.moveNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.paintNE(b,d,c,
-g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.lineSEInner(b,d,c,g,e,f,t,m,p,y),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,m,p),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),b.close(),b.fillAndStroke()):u&&v&&!y&&x?"frame"!=q?(b.begin(),k.moveSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),k.paintNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.paintNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),"double"==q&&(k.moveSEInner(b,d,c,g,e,f,t,m,p,y),k.paintRightInner(b,
-d,c,g,e,f,K,m,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,m,p),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),k.paintNWInner(b,d,c,g,e,f,J,m,p),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x)),b.stroke()):(b.begin(),k.moveSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),k.paintNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.paintNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.lineSEInner(b,d,c,g,e,f,t,m,p,y),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,m,p),k.paintTopInner(b,d,
-c,g,e,f,J,m,p,x,u),k.paintNWInner(b,d,c,g,e,f,J,m,p),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),b.close(),b.fillAndStroke()):u&&v&&y&&!x?"frame"!=q?(b.begin(),k.moveNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.paintNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.paintSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),"double"==q&&(k.moveSWInner(b,d,c,g,e,f,I,m,p,x),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),k.paintSEInner(b,d,c,g,e,f,t,m,p),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),
-k.paintNEInner(b,d,c,g,e,f,K,m,p),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u)),b.stroke()):(b.begin(),k.moveNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.paintNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.paintSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),k.lineSWInner(b,d,c,g,e,f,I,m,p,x),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),k.paintSEInner(b,d,c,g,e,f,t,m,p),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,m,p),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),
-b.close(),b.fillAndStroke()):u&&v&&y&&x&&("frame"!=q?(b.begin(),k.moveNW(b,d,c,g,e,f,J,m,x),k.paintNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.paintNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.paintSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),k.paintSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),b.close(),"double"==q&&(k.moveSWInner(b,d,c,g,e,f,I,m,p,x),k.paintSWInner(b,d,c,g,e,f,I,m,p,y),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),k.paintSEInner(b,d,c,g,e,f,t,m,
-p),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,m,p),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),k.paintNWInner(b,d,c,g,e,f,J,m,p),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),b.close()),b.stroke()):(b.begin(),k.moveNW(b,d,c,g,e,f,J,m,x),k.paintNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.paintNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.paintSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),k.paintSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),b.close(),
-k.moveSWInner(b,d,c,g,e,f,I,m,p,x),k.paintSWInner(b,d,c,g,e,f,I,m,p,y),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),k.paintSEInner(b,d,c,g,e,f,t,m,p),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,m,p),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),k.paintNWInner(b,d,c,g,e,f,J,m,p),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),b.close(),b.fillAndStroke())):"frame"!=q?(b.begin(),k.moveNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),"double"==q&&(k.moveNEInner(b,d,c,g,e,f,K,m,p,v),k.paintTopInner(b,
-d,c,g,e,f,J,m,p,x,u)),b.stroke()):(b.begin(),k.moveNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.lineNEInner(b,d,c,g,e,f,K,m,p,v),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),k.moveNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),"double"==q&&(k.moveSEInner(b,d,c,g,e,f,t,m,p,y),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v)),b.stroke()):(b.begin(),k.moveNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.lineSEInner(b,d,c,g,e,f,t,m,p,y),k.paintRightInner(b,
-d,c,g,e,f,K,m,p,u,v),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),k.moveSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),"double"==q&&(k.moveSWInner(b,d,c,g,e,f,I,m,p,x),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y)),b.stroke()):(b.begin(),k.moveSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),k.lineSWInner(b,d,c,g,e,f,I,m,p,x),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),k.moveSW(b,d,c,g,e,f,J,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),"double"==
-q&&(k.moveNWInner(b,d,c,g,e,f,J,m,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x)),b.stroke()):(b.begin(),k.moveSW(b,d,c,g,e,f,J,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),k.lineNWInner(b,d,c,g,e,f,J,m,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),b.close(),b.fillAndStroke());b.begin();k.paintFolds(b,d,c,g,e,f,J,K,t,I,m,u,v,y,x);b.stroke()};U.prototype.moveNW=function(b,d,c,g,e,k,f,m,l){"square"==f||"default"==f&&"square"==k||!l?b.moveTo(0,0):b.moveTo(0,m)};U.prototype.moveNE=function(b,d,c,g,e,k,f,m,l){"square"==
-f||"default"==f&&"square"==k||!l?b.moveTo(g,0):b.moveTo(g-m,0)};U.prototype.moveSE=function(b,d,c,g,e,k,f,m,l){"square"==f||"default"==f&&"square"==k||!l?b.moveTo(g,e):b.moveTo(g,e-m)};U.prototype.moveSW=function(b,d,c,g,e,k,f,m,l){"square"==f||"default"==f&&"square"==k||!l?b.moveTo(0,e):b.moveTo(m,e)};U.prototype.paintNW=function(b,d,c,g,e,k,f,m,l){if(l)if("rounded"==f||"default"==f&&"rounded"==k||"invRound"==f||"default"==f&&"invRound"==k){d=0;if("rounded"==f||"default"==f&&"rounded"==k)d=1;b.arcTo(m,
-m,0,0,d,m,0)}else("snip"==f||"default"==f&&"snip"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(m,0);else b.lineTo(0,0)};U.prototype.paintTop=function(b,d,c,g,e,k,f,m,l){"square"==f||"default"==f&&"square"==k||!l?b.lineTo(g,0):b.lineTo(g-m,0)};U.prototype.paintNE=function(b,d,c,g,e,k,f,m,l){if(l)if("rounded"==f||"default"==f&&"rounded"==k||"invRound"==f||"default"==f&&"invRound"==k){d=0;if("rounded"==f||"default"==f&&"rounded"==k)d=1;b.arcTo(m,m,0,0,d,g,m)}else("snip"==f||"default"==f&&"snip"==
-k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(g,m);else b.lineTo(g,0)};U.prototype.paintRight=function(b,d,c,g,e,k,f,m,l){"square"==f||"default"==f&&"square"==k||!l?b.lineTo(g,e):b.lineTo(g,e-m)};U.prototype.paintLeft=function(b,d,c,g,e,k,f,m,l){"square"==f||"default"==f&&"square"==k||!l?b.lineTo(0,0):b.lineTo(0,m)};U.prototype.paintSE=function(b,d,c,g,e,k,f,m,l){if(l)if("rounded"==f||"default"==f&&"rounded"==k||"invRound"==f||"default"==f&&"invRound"==k){d=0;if("rounded"==f||"default"==f&&"rounded"==
-k)d=1;b.arcTo(m,m,0,0,d,g-m,e)}else("snip"==f||"default"==f&&"snip"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(g-m,e);else b.lineTo(g,e)};U.prototype.paintBottom=function(b,d,c,g,e,k,f,m,l){"square"==f||"default"==f&&"square"==k||!l?b.lineTo(0,e):b.lineTo(m,e)};U.prototype.paintSW=function(b,d,c,g,e,k,f,m,l){if(l)if("rounded"==f||"default"==f&&"rounded"==k||"invRound"==f||"default"==f&&"invRound"==k){d=0;if("rounded"==f||"default"==f&&"rounded"==k)d=1;b.arcTo(m,m,0,0,d,0,e-m)}else("snip"==
-f||"default"==f&&"snip"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(0,e-m);else b.lineTo(0,e)};U.prototype.paintNWInner=function(b,d,c,g,e,k,f,m,l){if("rounded"==f||"default"==f&&"rounded"==k)b.arcTo(m-.5*l,m-.5*l,0,0,0,l,.5*l+m);else if("invRound"==f||"default"==f&&"invRound"==k)b.arcTo(m+l,m+l,0,0,1,l,l+m);else if("snip"==f||"default"==f&&"snip"==k)b.lineTo(l,.5*l+m);else if("fold"==f||"default"==f&&"fold"==k)b.lineTo(l+m,l+m),b.lineTo(l,l+m)};U.prototype.paintTopInner=function(b,d,c,g,e,
-k,f,m,l,q,p){q||p?!q&&p?b.lineTo(0,l):q&&!p?b.lineTo(l,0):q?"square"==f||"default"==f&&"square"==k?b.lineTo(l,l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(m+.5*l,l):b.lineTo(m+l,l):b.lineTo(0,l):b.lineTo(0,0)};U.prototype.paintNEInner=function(b,d,c,g,e,k,f,m,l){if("rounded"==f||"default"==f&&"rounded"==k)b.arcTo(m-.5*l,m-.5*l,0,0,0,g-m-.5*l,l);else if("invRound"==f||"default"==f&&"invRound"==k)b.arcTo(m+l,m+l,0,0,1,g-m-l,l);else if("snip"==f||"default"==
-f&&"snip"==k)b.lineTo(g-m-.5*l,l);else if("fold"==f||"default"==f&&"fold"==k)b.lineTo(g-m-l,m+l),b.lineTo(g-m-l,l)};U.prototype.paintRightInner=function(b,d,c,g,e,k,f,m,l,q,p){q||p?!q&&p?b.lineTo(g-l,0):q&&!p?b.lineTo(g,l):q?"square"==f||"default"==f&&"square"==k?b.lineTo(g-l,l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(g-l,m+.5*l):b.lineTo(g-l,m+l):b.lineTo(g-l,0):b.lineTo(g,0)};U.prototype.paintLeftInner=function(b,d,c,g,e,k,f,m,l,q,p){q||p?!q&&p?b.lineTo(l,
-e):q&&!p?b.lineTo(0,e-l):q?"square"==f||"default"==f&&"square"==k?b.lineTo(l,e-l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(l,e-m-.5*l):b.lineTo(l,e-m-l):b.lineTo(l,e):b.lineTo(0,e)};U.prototype.paintSEInner=function(b,d,c,g,e,k,f,m,l){if("rounded"==f||"default"==f&&"rounded"==k)b.arcTo(m-.5*l,m-.5*l,0,0,0,g-l,e-m-.5*l);else if("invRound"==f||"default"==f&&"invRound"==k)b.arcTo(m+l,m+l,0,0,1,g-l,e-m-l);else if("snip"==f||"default"==f&&"snip"==k)b.lineTo(g-
-l,e-m-.5*l);else if("fold"==f||"default"==f&&"fold"==k)b.lineTo(g-m-l,e-m-l),b.lineTo(g-l,e-m-l)};U.prototype.paintBottomInner=function(b,d,c,g,e,k,f,m,l,q,p){q||p?!q&&p?b.lineTo(g,e-l):q&&!p?b.lineTo(g-l,e):"square"==f||"default"==f&&"square"==k||!q?b.lineTo(g-l,e-l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(g-m-.5*l,e-l):b.lineTo(g-m-l,e-l):b.lineTo(g,e)};U.prototype.paintSWInner=function(b,d,c,g,e,k,f,m,l,q){if(!q)b.lineTo(l,e);else if("square"==f||"default"==
-f&&"square"==k)b.lineTo(l,e-l);else if("rounded"==f||"default"==f&&"rounded"==k)b.arcTo(m-.5*l,m-.5*l,0,0,0,m+.5*l,e-l);else if("invRound"==f||"default"==f&&"invRound"==k)b.arcTo(m+l,m+l,0,0,1,m+l,e-l);else if("snip"==f||"default"==f&&"snip"==k)b.lineTo(m+.5*l,e-l);else if("fold"==f||"default"==f&&"fold"==k)b.lineTo(l+m,e-m-l),b.lineTo(l+m,e-l)};U.prototype.moveSWInner=function(b,d,c,g,e,k,f,m,l,q){q?"square"==f||"default"==f&&"square"==k?b.moveTo(l,e-l):"rounded"==f||"default"==f&&"rounded"==k||
-"snip"==f||"default"==f&&"snip"==k?b.moveTo(l,e-m-.5*l):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.moveTo(l,e-m-l):b.moveTo(0,e-l)};U.prototype.lineSWInner=function(b,d,c,g,e,k,f,m,l,q){q?"square"==f||"default"==f&&"square"==k?b.lineTo(l,e-l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(l,e-m-.5*l):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(l,e-m-l):b.lineTo(0,e-l)};U.prototype.moveSEInner=
-function(b,d,c,g,e,k,f,m,l,q){q?"square"==f||"default"==f&&"square"==k?b.moveTo(g-l,e-l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.moveTo(g-l,e-m-.5*l):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.moveTo(g-l,e-m-l):b.moveTo(g-l,e)};U.prototype.lineSEInner=function(b,d,c,g,e,k,f,m,l,q){q?"square"==f||"default"==f&&"square"==k?b.lineTo(g-l,e-l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(g-
-l,e-m-.5*l):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(g-l,e-m-l):b.lineTo(g-l,e)};U.prototype.moveNEInner=function(b,d,c,g,e,k,f,m,l,q){q?"square"==f||"default"==f&&"square"==k||q?b.moveTo(g-l,l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.moveTo(g-l,m+.5*l):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.moveTo(g-l,m+l):b.moveTo(g,l)};U.prototype.lineNEInner=function(b,d,c,g,e,
-k,f,m,l,q){q?"square"==f||"default"==f&&"square"==k||q?b.lineTo(g-l,l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(g-l,m+.5*l):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(g-l,m+l):b.lineTo(g,l)};U.prototype.moveNWInner=function(b,d,c,g,e,k,f,m,l,q,p){q||p?!q&&p?b.moveTo(l,0):q&&!p?b.moveTo(0,l):"square"==f||"default"==f&&"square"==k?b.moveTo(l,l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==
-f&&"snip"==k?b.moveTo(l,m+.5*l):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.moveTo(l,m+l):b.moveTo(0,0)};U.prototype.lineNWInner=function(b,d,c,g,e,k,f,m,l,q,p){q||p?!q&&p?b.lineTo(l,0):q&&!p?b.lineTo(0,l):"square"==f||"default"==f&&"square"==k?b.lineTo(l,l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(l,m+.5*l):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(l,m+l):b.lineTo(0,
-0)};U.prototype.paintFolds=function(b,d,c,g,e,k,f,m,l,q,p,B,n,u,v){if("fold"==k||"fold"==f||"fold"==m||"fold"==l||"fold"==q)("fold"==f||"default"==f&&"fold"==k)&&B&&v&&(b.moveTo(0,p),b.lineTo(p,p),b.lineTo(p,0)),("fold"==m||"default"==m&&"fold"==k)&&B&&n&&(b.moveTo(g-p,0),b.lineTo(g-p,p),b.lineTo(g,p)),("fold"==l||"default"==l&&"fold"==k)&&u&&n&&(b.moveTo(g-p,e),b.lineTo(g-p,e-p),b.lineTo(g,e-p)),("fold"==q||"default"==q&&"fold"==k)&&u&&v&&(b.moveTo(0,e-p),b.lineTo(p,e-p),b.lineTo(p,e))};mxCellRenderer.registerShape(U.prototype.cst.RECT2,
+"gradientColor2","none"),Ja=k&&k.gradientDirection2?k.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),va=k&&k.opacity?k.opacity:mxUtils.getValue(this.style,"opacity","100"),la=Math.max(0,Math.min(50,l));k=U.prototype;b.setDashed(B);z&&""!=z&&b.setDashPattern(z);b.setStrokeWidth(fa);l=Math.min(.5*e,.5*g,l);m||(l=la*Math.min(g,e)/100);l=Math.min(l,.5*Math.min(g,e));m||(p=Math.min(n*Math.min(g,e)/100));p=Math.min(p,.5*Math.min(g,e)-l);(u||v||y||x)&&"frame"!=t&&(b.begin(),
+u?k.moveNW(b,d,c,g,e,f,L,l,x):b.moveTo(0,0),u&&k.paintNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),v&&k.paintNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),y&&k.paintSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),x&&k.paintSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(M),B=m=va,"none"==M&&(m=0),"none"==W&&(B=0),b.setGradient(M,W,0,0,g,e,Ja,m,B),b.begin(),u?k.moveNWInner(b,d,c,g,e,f,L,l,p,u,x):b.moveTo(p,0),k.paintLeftInner(b,
+d,c,g,e,f,I,l,p,y,x),x&&y&&k.paintSWInner(b,d,c,g,e,f,I,l,p,y),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),y&&v&&k.paintSEInner(b,d,c,g,e,f,q,l,p),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),v&&u&&k.paintNEInner(b,d,c,g,e,f,K,l,p),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),u&&x&&k.paintNWInner(b,d,c,g,e,f,L,l,p),b.fill(),"none"==A&&(b.begin(),k.paintFolds(b,d,c,g,e,f,L,K,q,I,l,u,v,y,x),b.stroke()));u||v||y||!x?u||v||!y||x?!u&&!v&&y&&x?"frame"!=t?(b.begin(),k.moveSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,
+e,f,I,l,x),k.paintSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),"double"==t&&(k.moveNWInner(b,d,c,g,e,f,L,l,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),k.paintSWInner(b,d,c,g,e,f,I,l,p,y),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y)),b.stroke()):(b.begin(),k.moveSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),k.paintSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),k.lineNWInner(b,d,c,g,e,f,L,l,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),k.paintSWInner(b,d,c,g,e,f,I,l,p,y),k.paintBottomInner(b,
+d,c,g,e,f,q,l,p,v,y),b.close(),b.fillAndStroke()):u||!v||y||x?!u&&v&&!y&&x?"frame"!=t?(b.begin(),k.moveSW(b,d,c,g,e,f,L,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),"double"==t&&(k.moveNWInner(b,d,c,g,e,f,L,l,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x)),b.stroke(),b.begin(),k.moveNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),"double"==t&&(k.moveSEInner(b,d,c,g,e,f,q,l,p,y),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v)),b.stroke()):(b.begin(),k.moveSW(b,d,c,g,e,f,L,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),
+k.lineNWInner(b,d,c,g,e,f,L,l,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),b.close(),b.fillAndStroke(),b.begin(),k.moveNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.lineSEInner(b,d,c,g,e,f,q,l,p,y),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),b.close(),b.fillAndStroke()):!u&&v&&y&&!x?"frame"!=t?(b.begin(),k.moveNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.paintSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),"double"==t&&(k.moveSWInner(b,d,c,g,e,f,I,l,p,x),k.paintBottomInner(b,
+d,c,g,e,f,q,l,p,v,y),k.paintSEInner(b,d,c,g,e,f,q,l,p),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v)),b.stroke()):(b.begin(),k.moveNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.paintSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),k.lineSWInner(b,d,c,g,e,f,I,l,p,x),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),k.paintSEInner(b,d,c,g,e,f,q,l,p),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),b.close(),b.fillAndStroke()):!u&&v&&y&&x?"frame"!=t?(b.begin(),k.moveNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,
+c,g,e,f,q,l,y),k.paintSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),k.paintSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),"double"==t&&(k.moveNWInner(b,d,c,g,e,f,L,l,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),k.paintSWInner(b,d,c,g,e,f,I,l,p,y),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),k.paintSEInner(b,d,c,g,e,f,q,l,p),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v)),b.stroke()):(b.begin(),k.moveNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.paintSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,
+d,c,g,e,f,I,l,x),k.paintSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),k.lineNWInner(b,d,c,g,e,f,L,l,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),k.paintSWInner(b,d,c,g,e,f,I,l,p,y),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),k.paintSEInner(b,d,c,g,e,f,q,l,p),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),b.close(),b.fillAndStroke()):!u||v||y||x?u&&!v&&!y&&x?"frame"!=t?(b.begin(),k.moveSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),k.paintNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),
+"double"==t&&(k.moveNEInner(b,d,c,g,e,f,K,l,p,v),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),k.paintNWInner(b,d,c,g,e,f,L,l,p),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x)),b.stroke()):(b.begin(),k.moveSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),k.paintNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.lineNEInner(b,d,c,g,e,f,K,l,p,v),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),k.paintNWInner(b,d,c,g,e,f,L,l,p),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),b.close(),b.fillAndStroke()):u&&!v&&y&&!x?"frame"!=
+t?(b.begin(),k.moveNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),"double"==t&&(k.moveNEInner(b,d,c,g,e,f,K,l,p,v),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u)),b.stroke(),b.begin(),k.moveSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),"double"==t&&(k.moveSWInner(b,d,c,g,e,f,I,l,p,x),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y)),b.stroke()):(b.begin(),k.moveNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.lineNEInner(b,d,c,g,e,f,K,l,p,v),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),b.close(),b.fillAndStroke(),
+b.begin(),k.moveSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),k.lineSWInner(b,d,c,g,e,f,I,l,p,x),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),b.close(),b.fillAndStroke()):u&&!v&&y&&x?"frame"!=t?(b.begin(),k.moveSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),k.paintSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),k.paintNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),"double"==t&&(k.moveNEInner(b,d,c,g,e,f,K,l,p,v),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),k.paintNWInner(b,d,c,g,
+e,f,L,l,p),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),k.paintSWInner(b,d,c,g,e,f,I,l,p,y),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y)),b.stroke()):(b.begin(),k.moveSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),k.paintSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),k.paintNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.lineNEInner(b,d,c,g,e,f,K,l,p,v),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),k.paintNWInner(b,d,c,g,e,f,L,l,p),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),k.paintSWInner(b,d,c,
+g,e,f,I,l,p,y),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),b.close(),b.fillAndStroke()):u&&v&&!y&&!x?"frame"!=t?(b.begin(),k.moveNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.paintNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),"double"==t&&(k.moveSEInner(b,d,c,g,e,f,q,l,p,y),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,l,p),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u)),b.stroke()):(b.begin(),k.moveNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.paintNE(b,d,c,
+g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.lineSEInner(b,d,c,g,e,f,q,l,p,y),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,l,p),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),b.close(),b.fillAndStroke()):u&&v&&!y&&x?"frame"!=t?(b.begin(),k.moveSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),k.paintNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.paintNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),"double"==t&&(k.moveSEInner(b,d,c,g,e,f,q,l,p,y),k.paintRightInner(b,
+d,c,g,e,f,K,l,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,l,p),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),k.paintNWInner(b,d,c,g,e,f,L,l,p),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x)),b.stroke()):(b.begin(),k.moveSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),k.paintNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.paintNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.lineSEInner(b,d,c,g,e,f,q,l,p,y),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,l,p),k.paintTopInner(b,d,
+c,g,e,f,L,l,p,x,u),k.paintNWInner(b,d,c,g,e,f,L,l,p),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),b.close(),b.fillAndStroke()):u&&v&&y&&!x?"frame"!=t?(b.begin(),k.moveNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.paintNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.paintSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),"double"==t&&(k.moveSWInner(b,d,c,g,e,f,I,l,p,x),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),k.paintSEInner(b,d,c,g,e,f,q,l,p),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),
+k.paintNEInner(b,d,c,g,e,f,K,l,p),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u)),b.stroke()):(b.begin(),k.moveNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.paintNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.paintSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),k.lineSWInner(b,d,c,g,e,f,I,l,p,x),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),k.paintSEInner(b,d,c,g,e,f,q,l,p),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,l,p),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),
+b.close(),b.fillAndStroke()):u&&v&&y&&x&&("frame"!=t?(b.begin(),k.moveNW(b,d,c,g,e,f,L,l,x),k.paintNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.paintNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.paintSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),k.paintSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),b.close(),"double"==t&&(k.moveSWInner(b,d,c,g,e,f,I,l,p,x),k.paintSWInner(b,d,c,g,e,f,I,l,p,y),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),k.paintSEInner(b,d,c,g,e,f,q,l,
+p),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,l,p),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),k.paintNWInner(b,d,c,g,e,f,L,l,p),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),b.close()),b.stroke()):(b.begin(),k.moveNW(b,d,c,g,e,f,L,l,x),k.paintNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.paintNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.paintSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),k.paintSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),b.close(),
+k.moveSWInner(b,d,c,g,e,f,I,l,p,x),k.paintSWInner(b,d,c,g,e,f,I,l,p,y),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),k.paintSEInner(b,d,c,g,e,f,q,l,p),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,l,p),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),k.paintNWInner(b,d,c,g,e,f,L,l,p),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),b.close(),b.fillAndStroke())):"frame"!=t?(b.begin(),k.moveNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),"double"==t&&(k.moveNEInner(b,d,c,g,e,f,K,l,p,v),k.paintTopInner(b,
+d,c,g,e,f,L,l,p,x,u)),b.stroke()):(b.begin(),k.moveNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.lineNEInner(b,d,c,g,e,f,K,l,p,v),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),b.close(),b.fillAndStroke()):"frame"!=t?(b.begin(),k.moveNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),"double"==t&&(k.moveSEInner(b,d,c,g,e,f,q,l,p,y),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v)),b.stroke()):(b.begin(),k.moveNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.lineSEInner(b,d,c,g,e,f,q,l,p,y),k.paintRightInner(b,
+d,c,g,e,f,K,l,p,u,v),b.close(),b.fillAndStroke()):"frame"!=t?(b.begin(),k.moveSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),"double"==t&&(k.moveSWInner(b,d,c,g,e,f,I,l,p,x),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y)),b.stroke()):(b.begin(),k.moveSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),k.lineSWInner(b,d,c,g,e,f,I,l,p,x),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),b.close(),b.fillAndStroke()):"frame"!=t?(b.begin(),k.moveSW(b,d,c,g,e,f,L,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),"double"==
+t&&(k.moveNWInner(b,d,c,g,e,f,L,l,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x)),b.stroke()):(b.begin(),k.moveSW(b,d,c,g,e,f,L,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),k.lineNWInner(b,d,c,g,e,f,L,l,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),b.close(),b.fillAndStroke());b.begin();k.paintFolds(b,d,c,g,e,f,L,K,q,I,l,u,v,y,x);b.stroke()};U.prototype.moveNW=function(b,d,c,g,e,k,f,l,m){"square"==f||"default"==f&&"square"==k||!m?b.moveTo(0,0):b.moveTo(0,l)};U.prototype.moveNE=function(b,d,c,g,e,k,f,l,m){"square"==
+f||"default"==f&&"square"==k||!m?b.moveTo(g,0):b.moveTo(g-l,0)};U.prototype.moveSE=function(b,d,c,g,e,k,f,l,m){"square"==f||"default"==f&&"square"==k||!m?b.moveTo(g,e):b.moveTo(g,e-l)};U.prototype.moveSW=function(b,d,c,g,e,k,f,l,m){"square"==f||"default"==f&&"square"==k||!m?b.moveTo(0,e):b.moveTo(l,e)};U.prototype.paintNW=function(b,d,c,g,e,k,f,l,m){if(m)if("rounded"==f||"default"==f&&"rounded"==k||"invRound"==f||"default"==f&&"invRound"==k){d=0;if("rounded"==f||"default"==f&&"rounded"==k)d=1;b.arcTo(l,
+l,0,0,d,l,0)}else("snip"==f||"default"==f&&"snip"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(l,0);else b.lineTo(0,0)};U.prototype.paintTop=function(b,d,c,g,e,k,f,l,m){"square"==f||"default"==f&&"square"==k||!m?b.lineTo(g,0):b.lineTo(g-l,0)};U.prototype.paintNE=function(b,d,c,g,e,k,f,l,m){if(m)if("rounded"==f||"default"==f&&"rounded"==k||"invRound"==f||"default"==f&&"invRound"==k){d=0;if("rounded"==f||"default"==f&&"rounded"==k)d=1;b.arcTo(l,l,0,0,d,g,l)}else("snip"==f||"default"==f&&"snip"==
+k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(g,l);else b.lineTo(g,0)};U.prototype.paintRight=function(b,d,c,g,e,k,f,l,m){"square"==f||"default"==f&&"square"==k||!m?b.lineTo(g,e):b.lineTo(g,e-l)};U.prototype.paintLeft=function(b,d,c,g,e,k,f,l,m){"square"==f||"default"==f&&"square"==k||!m?b.lineTo(0,0):b.lineTo(0,l)};U.prototype.paintSE=function(b,d,c,g,e,k,f,l,m){if(m)if("rounded"==f||"default"==f&&"rounded"==k||"invRound"==f||"default"==f&&"invRound"==k){d=0;if("rounded"==f||"default"==f&&"rounded"==
+k)d=1;b.arcTo(l,l,0,0,d,g-l,e)}else("snip"==f||"default"==f&&"snip"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(g-l,e);else b.lineTo(g,e)};U.prototype.paintBottom=function(b,d,c,g,e,k,f,l,m){"square"==f||"default"==f&&"square"==k||!m?b.lineTo(0,e):b.lineTo(l,e)};U.prototype.paintSW=function(b,d,c,g,e,k,f,l,m){if(m)if("rounded"==f||"default"==f&&"rounded"==k||"invRound"==f||"default"==f&&"invRound"==k){d=0;if("rounded"==f||"default"==f&&"rounded"==k)d=1;b.arcTo(l,l,0,0,d,0,e-l)}else("snip"==
+f||"default"==f&&"snip"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(0,e-l);else b.lineTo(0,e)};U.prototype.paintNWInner=function(b,d,c,g,e,k,f,l,m){if("rounded"==f||"default"==f&&"rounded"==k)b.arcTo(l-.5*m,l-.5*m,0,0,0,m,.5*m+l);else if("invRound"==f||"default"==f&&"invRound"==k)b.arcTo(l+m,l+m,0,0,1,m,m+l);else if("snip"==f||"default"==f&&"snip"==k)b.lineTo(m,.5*m+l);else if("fold"==f||"default"==f&&"fold"==k)b.lineTo(m+l,m+l),b.lineTo(m,m+l)};U.prototype.paintTopInner=function(b,d,c,g,e,
+k,f,l,m,t,p){t||p?!t&&p?b.lineTo(0,m):t&&!p?b.lineTo(m,0):t?"square"==f||"default"==f&&"square"==k?b.lineTo(m,m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(l+.5*m,m):b.lineTo(l+m,m):b.lineTo(0,m):b.lineTo(0,0)};U.prototype.paintNEInner=function(b,d,c,g,e,k,f,l,m){if("rounded"==f||"default"==f&&"rounded"==k)b.arcTo(l-.5*m,l-.5*m,0,0,0,g-l-.5*m,m);else if("invRound"==f||"default"==f&&"invRound"==k)b.arcTo(l+m,l+m,0,0,1,g-l-m,m);else if("snip"==f||"default"==
+f&&"snip"==k)b.lineTo(g-l-.5*m,m);else if("fold"==f||"default"==f&&"fold"==k)b.lineTo(g-l-m,l+m),b.lineTo(g-l-m,m)};U.prototype.paintRightInner=function(b,d,c,g,e,k,f,l,m,t,p){t||p?!t&&p?b.lineTo(g-m,0):t&&!p?b.lineTo(g,m):t?"square"==f||"default"==f&&"square"==k?b.lineTo(g-m,m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(g-m,l+.5*m):b.lineTo(g-m,l+m):b.lineTo(g-m,0):b.lineTo(g,0)};U.prototype.paintLeftInner=function(b,d,c,g,e,k,f,l,m,t,p){t||p?!t&&p?b.lineTo(m,
+e):t&&!p?b.lineTo(0,e-m):t?"square"==f||"default"==f&&"square"==k?b.lineTo(m,e-m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(m,e-l-.5*m):b.lineTo(m,e-l-m):b.lineTo(m,e):b.lineTo(0,e)};U.prototype.paintSEInner=function(b,d,c,g,e,k,f,l,m){if("rounded"==f||"default"==f&&"rounded"==k)b.arcTo(l-.5*m,l-.5*m,0,0,0,g-m,e-l-.5*m);else if("invRound"==f||"default"==f&&"invRound"==k)b.arcTo(l+m,l+m,0,0,1,g-m,e-l-m);else if("snip"==f||"default"==f&&"snip"==k)b.lineTo(g-
+m,e-l-.5*m);else if("fold"==f||"default"==f&&"fold"==k)b.lineTo(g-l-m,e-l-m),b.lineTo(g-m,e-l-m)};U.prototype.paintBottomInner=function(b,d,c,g,e,k,f,l,m,t,p){t||p?!t&&p?b.lineTo(g,e-m):t&&!p?b.lineTo(g-m,e):"square"==f||"default"==f&&"square"==k||!t?b.lineTo(g-m,e-m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(g-l-.5*m,e-m):b.lineTo(g-l-m,e-m):b.lineTo(g,e)};U.prototype.paintSWInner=function(b,d,c,g,e,k,f,l,m,t){if(!t)b.lineTo(m,e);else if("square"==f||"default"==
+f&&"square"==k)b.lineTo(m,e-m);else if("rounded"==f||"default"==f&&"rounded"==k)b.arcTo(l-.5*m,l-.5*m,0,0,0,l+.5*m,e-m);else if("invRound"==f||"default"==f&&"invRound"==k)b.arcTo(l+m,l+m,0,0,1,l+m,e-m);else if("snip"==f||"default"==f&&"snip"==k)b.lineTo(l+.5*m,e-m);else if("fold"==f||"default"==f&&"fold"==k)b.lineTo(m+l,e-l-m),b.lineTo(m+l,e-m)};U.prototype.moveSWInner=function(b,d,c,g,e,k,f,l,m,t){t?"square"==f||"default"==f&&"square"==k?b.moveTo(m,e-m):"rounded"==f||"default"==f&&"rounded"==k||
+"snip"==f||"default"==f&&"snip"==k?b.moveTo(m,e-l-.5*m):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.moveTo(m,e-l-m):b.moveTo(0,e-m)};U.prototype.lineSWInner=function(b,d,c,g,e,k,f,l,m,t){t?"square"==f||"default"==f&&"square"==k?b.lineTo(m,e-m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(m,e-l-.5*m):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(m,e-l-m):b.lineTo(0,e-m)};U.prototype.moveSEInner=
+function(b,d,c,g,e,k,f,l,m,t){t?"square"==f||"default"==f&&"square"==k?b.moveTo(g-m,e-m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.moveTo(g-m,e-l-.5*m):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.moveTo(g-m,e-l-m):b.moveTo(g-m,e)};U.prototype.lineSEInner=function(b,d,c,g,e,k,f,l,m,t){t?"square"==f||"default"==f&&"square"==k?b.lineTo(g-m,e-m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(g-
+m,e-l-.5*m):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(g-m,e-l-m):b.lineTo(g-m,e)};U.prototype.moveNEInner=function(b,d,c,g,e,k,f,l,m,t){t?"square"==f||"default"==f&&"square"==k||t?b.moveTo(g-m,m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.moveTo(g-m,l+.5*m):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.moveTo(g-m,l+m):b.moveTo(g,m)};U.prototype.lineNEInner=function(b,d,c,g,e,
+k,f,l,m,t){t?"square"==f||"default"==f&&"square"==k||t?b.lineTo(g-m,m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(g-m,l+.5*m):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(g-m,l+m):b.lineTo(g,m)};U.prototype.moveNWInner=function(b,d,c,g,e,k,f,l,m,t,p){t||p?!t&&p?b.moveTo(m,0):t&&!p?b.moveTo(0,m):"square"==f||"default"==f&&"square"==k?b.moveTo(m,m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==
+f&&"snip"==k?b.moveTo(m,l+.5*m):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.moveTo(m,l+m):b.moveTo(0,0)};U.prototype.lineNWInner=function(b,d,c,g,e,k,f,l,m,t,p){t||p?!t&&p?b.lineTo(m,0):t&&!p?b.lineTo(0,m):"square"==f||"default"==f&&"square"==k?b.lineTo(m,m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(m,l+.5*m):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(m,l+m):b.lineTo(0,
+0)};U.prototype.paintFolds=function(b,d,c,g,e,k,f,l,m,t,p,B,n,u,v){if("fold"==k||"fold"==f||"fold"==l||"fold"==m||"fold"==t)("fold"==f||"default"==f&&"fold"==k)&&B&&v&&(b.moveTo(0,p),b.lineTo(p,p),b.lineTo(p,0)),("fold"==l||"default"==l&&"fold"==k)&&B&&n&&(b.moveTo(g-p,0),b.lineTo(g-p,p),b.lineTo(g,p)),("fold"==m||"default"==m&&"fold"==k)&&u&&n&&(b.moveTo(g-p,e),b.lineTo(g-p,e-p),b.lineTo(g,e-p)),("fold"==t||"default"==t&&"fold"==k)&&u&&v&&(b.moveTo(0,e-p),b.lineTo(p,e-p),b.lineTo(p,e))};mxCellRenderer.registerShape(U.prototype.cst.RECT2,
U);U.prototype.constraints=null;mxUtils.extend(Ga,mxConnector);Ga.prototype.origPaintEdgeShape=Ga.prototype.paintEdgeShape;Ga.prototype.paintEdgeShape=function(b,d,c){for(var g=[],e=0;e<d.length;e++)g.push(mxUtils.clone(d[e]));var e=b.state.dashed,k=b.state.fixDash;Ga.prototype.origPaintEdgeShape.apply(this,[b,g,c]);3<=b.state.strokeWidth&&(g=mxUtils.getValue(this.style,"fillColor",null),null!=g&&(b.setStrokeColor(g),b.setStrokeWidth(b.state.strokeWidth-2),b.setDashed(e,k),Ga.prototype.origPaintEdgeShape.apply(this,
-[b,d,c])))};mxCellRenderer.registerShape("filledEdge",Ga);"undefined"!==typeof StyleFormatPanel&&function(){var b=StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var d=this.editorUi.getSelectionState(),c=b.apply(this,arguments);"umlFrame"==d.style.shape&&c.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"default"});return c}}();mxMarker.addMarker("dash",function(b,d,c,g,e,k,f,m,l,q){var p=e*(f+l+1),B=k*(f+l+1);return function(){b.begin();
-b.moveTo(g.x-p/2-B/2,g.y-B/2+p/2);b.lineTo(g.x+B/2-3*p/2,g.y-3*B/2-p/2);b.stroke()}});mxMarker.addMarker("box",function(b,d,c,g,e,k,f,m,l,q){var p=e*(f+l+1),B=k*(f+l+1),n=g.x+p/2,u=g.y+B/2;g.x-=p;g.y-=B;return function(){b.begin();b.moveTo(n-p/2-B/2,u-B/2+p/2);b.lineTo(n-p/2+B/2,u-B/2-p/2);b.lineTo(n+B/2-3*p/2,u-3*B/2-p/2);b.lineTo(n-B/2-3*p/2,u-3*B/2+p/2);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,c,g,e,k,f,m,l,q){var p=e*(f+l+1),B=k*(f+l+1);return function(){b.begin();
-b.moveTo(g.x-p/2-B/2,g.y-B/2+p/2);b.lineTo(g.x+B/2-3*p/2,g.y-3*B/2-p/2);b.moveTo(g.x-p/2+B/2,g.y-B/2-p/2);b.lineTo(g.x-B/2-3*p/2,g.y-3*B/2+p/2);b.stroke()}});mxMarker.addMarker("circle",La);mxMarker.addMarker("circlePlus",function(b,d,c,g,e,k,f,m,l,q){var p=g.clone(),B=La.apply(this,arguments),n=e*(f+2*l),u=k*(f+2*l);return function(){B.apply(this,arguments);b.begin();b.moveTo(p.x-e*l,p.y-k*l);b.lineTo(p.x-2*n+e*l,p.y-2*u+k*l);b.moveTo(p.x-n-u+k*l,p.y-u+n-e*l);b.lineTo(p.x+u-n-k*l,p.y-u-n+e*l);b.stroke()}});
-mxMarker.addMarker("halfCircle",function(b,d,c,g,e,k,f,m,l,q){var p=e*(f+l+1),B=k*(f+l+1),n=g.clone();g.x-=p;g.y-=B;return function(){b.begin();b.moveTo(n.x-B,n.y+p);b.quadTo(g.x-B,g.y+p,g.x,g.y);b.quadTo(g.x+B,g.y-p,n.x+B,n.y-p);b.stroke()}});mxMarker.addMarker("async",function(b,d,c,g,e,k,f,m,l,q){d=e*l*1.118;c=k*l*1.118;e*=f+l;k*=f+l;var p=g.clone();p.x-=d;p.y-=c;g.x+=1*-e-d;g.y+=1*-k-c;return function(){b.begin();b.moveTo(p.x,p.y);m?b.lineTo(p.x-e-k/2,p.y-k+e/2):b.lineTo(p.x+k/2-e,p.y-k-e/2);
-b.lineTo(p.x-e,p.y-k);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",function(b){b=null!=b?b:2;return function(d,c,g,e,k,f,m,l,q,p){k*=m+q;f*=m+q;var B=e.clone();return function(){d.begin();d.moveTo(B.x,B.y);l?d.lineTo(B.x-k-f/b,B.y-f+k/b):d.lineTo(B.x+f/b-k,B.y-f-k/b);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var ab=function(b,d,c){return Na(b,["width"],d,function(d,g,e,k,f){f=b.shape.getEdgeWidth()*b.view.scale+c;return new mxPoint(k.x+g*d/4+e*f/2,k.y+
-e*d/4-g*f/2)},function(d,g,e,k,f,m){d=Math.sqrt(mxUtils.ptSegDistSq(k.x,k.y,f.x,f.y,m.x,m.y));b.style.width=Math.round(2*d)/b.view.scale-c})},Na=function(b,d,c,g,e){return ga(b,d,function(d){var e=b.absolutePoints,k=e.length-1;d=b.view.translate;var f=b.view.scale,m=c?e[0]:e[k],e=c?e[1]:e[k-1],k=e.x-m.x,l=e.y-m.y,q=Math.sqrt(k*k+l*l),m=g.call(this,q,k/q,l/q,m,e);return new mxPoint(m.x/f-d.x,m.y/f-d.y)},function(d,g,k){var f=b.absolutePoints,m=f.length-1;d=b.view.translate;var l=b.view.scale,q=c?f[0]:
-f[m],f=c?f[1]:f[m-1],m=f.x-q.x,p=f.y-q.y,B=Math.sqrt(m*m+p*p);g.x=(g.x+d.x)*l;g.y=(g.y+d.y)*l;e.call(this,B,m/B,p/B,q,f,g,k)})},Va=function(b){return function(d){return[ga(d,["arrowWidth","arrowSize"],function(d){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",ca.prototype.arrowWidth))),g=Math.max(0,Math.min(b,mxUtils.getValue(this.state.style,"arrowSize",ca.prototype.arrowSize)));return new mxPoint(d.x+(1-g)*d.width,d.y+(1-c)*d.height/2)},function(d,c){this.state.style.arrowWidth=
+[b,d,c])))};mxCellRenderer.registerShape("filledEdge",Ga);"undefined"!==typeof StyleFormatPanel&&function(){var b=StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var d=this.editorUi.getSelectionState(),c=b.apply(this,arguments);"umlFrame"==d.style.shape&&c.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"default"});return c}}();mxMarker.addMarker("dash",function(b,d,c,g,e,k,f,l,m,t){var p=e*(f+m+1),B=k*(f+m+1);return function(){b.begin();
+b.moveTo(g.x-p/2-B/2,g.y-B/2+p/2);b.lineTo(g.x+B/2-3*p/2,g.y-3*B/2-p/2);b.stroke()}});mxMarker.addMarker("box",function(b,d,c,g,e,k,f,l,m,t){var p=e*(f+m+1),B=k*(f+m+1),n=g.x+p/2,u=g.y+B/2;g.x-=p;g.y-=B;return function(){b.begin();b.moveTo(n-p/2-B/2,u-B/2+p/2);b.lineTo(n-p/2+B/2,u-B/2-p/2);b.lineTo(n+B/2-3*p/2,u-3*B/2-p/2);b.lineTo(n-B/2-3*p/2,u-3*B/2+p/2);b.close();t?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,c,g,e,k,f,l,m,t){var p=e*(f+m+1),B=k*(f+m+1);return function(){b.begin();
+b.moveTo(g.x-p/2-B/2,g.y-B/2+p/2);b.lineTo(g.x+B/2-3*p/2,g.y-3*B/2-p/2);b.moveTo(g.x-p/2+B/2,g.y-B/2-p/2);b.lineTo(g.x-B/2-3*p/2,g.y-3*B/2+p/2);b.stroke()}});mxMarker.addMarker("circle",La);mxMarker.addMarker("circlePlus",function(b,d,c,g,e,k,f,l,m,t){var p=g.clone(),B=La.apply(this,arguments),n=e*(f+2*m),u=k*(f+2*m);return function(){B.apply(this,arguments);b.begin();b.moveTo(p.x-e*m,p.y-k*m);b.lineTo(p.x-2*n+e*m,p.y-2*u+k*m);b.moveTo(p.x-n-u+k*m,p.y-u+n-e*m);b.lineTo(p.x+u-n-k*m,p.y-u-n+e*m);b.stroke()}});
+mxMarker.addMarker("halfCircle",function(b,d,c,g,e,k,f,l,m,t){var p=e*(f+m+1),B=k*(f+m+1),n=g.clone();g.x-=p;g.y-=B;return function(){b.begin();b.moveTo(n.x-B,n.y+p);b.quadTo(g.x-B,g.y+p,g.x,g.y);b.quadTo(g.x+B,g.y-p,n.x+B,n.y-p);b.stroke()}});mxMarker.addMarker("async",function(b,d,c,g,e,k,f,l,m,t){d=e*m*1.118;c=k*m*1.118;e*=f+m;k*=f+m;var p=g.clone();p.x-=d;p.y-=c;g.x+=1*-e-d;g.y+=1*-k-c;return function(){b.begin();b.moveTo(p.x,p.y);l?b.lineTo(p.x-e-k/2,p.y-k+e/2):b.lineTo(p.x+k/2-e,p.y-k-e/2);
+b.lineTo(p.x-e,p.y-k);b.close();t?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",function(b){b=null!=b?b:2;return function(d,c,g,e,k,f,l,m,t,p){k*=l+t;f*=l+t;var B=e.clone();return function(){d.begin();d.moveTo(B.x,B.y);m?d.lineTo(B.x-k-f/b,B.y-f+k/b):d.lineTo(B.x+f/b-k,B.y-f-k/b);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var ab=function(b,d,c){return Na(b,["width"],d,function(d,g,e,k,f){f=b.shape.getEdgeWidth()*b.view.scale+c;return new mxPoint(k.x+g*d/4+e*f/2,k.y+
+e*d/4-g*f/2)},function(d,g,e,k,f,l){d=Math.sqrt(mxUtils.ptSegDistSq(k.x,k.y,f.x,f.y,l.x,l.y));b.style.width=Math.round(2*d)/b.view.scale-c})},Na=function(b,d,c,g,e){return ga(b,d,function(d){var e=b.absolutePoints,k=e.length-1;d=b.view.translate;var f=b.view.scale,l=c?e[0]:e[k],e=c?e[1]:e[k-1],k=e.x-l.x,m=e.y-l.y,t=Math.sqrt(k*k+m*m),l=g.call(this,t,k/t,m/t,l,e);return new mxPoint(l.x/f-d.x,l.y/f-d.y)},function(d,g,k){var f=b.absolutePoints,l=f.length-1;d=b.view.translate;var m=b.view.scale,t=c?f[0]:
+f[l],f=c?f[1]:f[l-1],l=f.x-t.x,p=f.y-t.y,B=Math.sqrt(l*l+p*p);g.x=(g.x+d.x)*m;g.y=(g.y+d.y)*m;e.call(this,B,l/B,p/B,t,f,g,k)})},Va=function(b){return function(d){return[ga(d,["arrowWidth","arrowSize"],function(d){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",ca.prototype.arrowWidth))),g=Math.max(0,Math.min(b,mxUtils.getValue(this.state.style,"arrowSize",ca.prototype.arrowSize)));return new mxPoint(d.x+(1-g)*d.width,d.y+(1-c)*d.height/2)},function(d,c){this.state.style.arrowWidth=
Math.max(0,Math.min(1,Math.abs(d.y+d.height/2-c.y)/d.height*2));this.state.style.arrowSize=Math.max(0,Math.min(b,(d.x+d.width-c.x)/d.width))})]}},Wa=function(b){return function(d){return[ga(d,["size"],function(d){var c=Math.max(0,Math.min(.5*d.height,parseFloat(mxUtils.getValue(this.state.style,"size",b))));return new mxPoint(d.x,d.y+c)},function(b,d){this.state.style.size=Math.max(0,d.y-b.y)},!0)]}},Ta=function(b,d,c){return function(g){var e=[ga(g,["size"],function(c){var g=Math.max(0,Math.min(c.width,
Math.min(c.height,parseFloat(mxUtils.getValue(this.state.style,"size",d)))))*b;return new mxPoint(c.x+g,c.y+g)},function(d,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(d.width,c.x-d.x),Math.min(d.height,c.y-d.y)))/b)},!1)];c&&mxUtils.getValue(g.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(Ha(g));return e}},Oa=function(b,d,c,g,e){c=null!=c?c:.5;return function(k){var f=[ga(k,["size"],function(d){var c=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,g=parseFloat(mxUtils.getValue(this.state.style,
"size",c?e:b));return new mxPoint(d.x+Math.max(0,Math.min(.5*d.width,g*(c?1:d.width))),d.getCenterY())},function(b,d,g){b=null!=e&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?d.x-b.x:Math.max(0,Math.min(c,(d.x-b.x)/b.width));this.state.style.size=b},!1,g)];d&&mxUtils.getValue(k.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(Ha(k));return f}},Xa=function(b,d,c){b=null!=b?b:.5;return function(g){var e=[ga(g,["size"],function(g){var e=null!=c?"0"!=mxUtils.getValue(this.state.style,"fixedSize",
"0"):null,k=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,"size",e?c:d)));return new mxPoint(g.x+Math.min(.75*g.width*b,k*(e?.75:.75*g.width)),g.y+g.height/4)},function(d,g){var e=null!=c&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?g.x-d.x:Math.max(0,Math.min(b,(g.x-d.x)/d.width*.75));this.state.style.size=e},!1,!0)];mxUtils.getValue(g.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(Ha(g));return e}},Ma=function(){return function(b){var d=[];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,
!1)&&d.push(Ha(b));return d}},Ha=function(b,d){return ga(b,[mxConstants.STYLE_ARCSIZE],function(c){var g=null!=d?d:c.height/8;if("1"==mxUtils.getValue(b.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(b.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(c.x+c.width-Math.min(c.width/2,e),c.y+g)}e=Math.max(0,parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(c.x+c.width-Math.min(Math.max(c.width/
-2,c.height/2),Math.min(c.width,c.height)*e),c.y+g)},function(d,c,g){"1"==mxUtils.getValue(b.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(d.width,2*(d.x+d.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(d.width-c.x+d.x)/Math.min(d.width,d.height))))})},ga=function(b,d,c,g,e,k,f){var m=new mxHandle(b,null,mxVertexHandler.prototype.secondaryHandleImage);m.execute=function(b){for(var c=
-0;c<d.length;c++)this.copyStyle(d[c]);f&&f(b)};m.getPosition=c;m.setPosition=g;m.ignoreGrid=null!=e?e:!0;if(k){var l=m.positionChanged;m.positionChanged=function(){l.apply(this,arguments);b.view.invalidate(this.state.cell);b.view.validate()}}return m},Pa={link:function(b){return[ab(b,!0,10),ab(b,!1,10)]},flexArrow:function(b){var d=b.view.graph.gridSize/b.view.scale,c=[];mxUtils.getValue(b.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(Na(b,["width",mxConstants.STYLE_STARTSIZE,
-mxConstants.STYLE_ENDSIZE],!0,function(d,c,g,e,k){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;k=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+c*(k+b.shape.strokewidth*b.view.scale)+g*d/2,e.y+g*(k+b.shape.strokewidth*b.view.scale)-c*d/2)},function(c,g,e,k,f,m,l){c=Math.sqrt(mxUtils.ptSegDistSq(k.x,k.y,f.x,f.y,m.x,m.y));g=mxUtils.ptLineDist(k.x,k.y,k.x+e,k.y-g,m.x,m.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*
-(g-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*c)/b.view.scale;if(mxEvent.isShiftDown(l.getEvent())||mxEvent.isControlDown(l.getEvent()))b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE];mxEvent.isAltDown(l.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE])})),c.push(Na(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,
-mxConstants.STYLE_ENDSIZE],!0,function(d,c,g,e,k){d=(b.shape.getStartArrowWidth()-b.shape.strokewidth)*b.view.scale;k=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+c*(k+b.shape.strokewidth*b.view.scale)+g*d/2,e.y+g*(k+b.shape.strokewidth*b.view.scale)-c*d/2)},function(c,g,e,k,f,m,l){c=Math.sqrt(mxUtils.ptSegDistSq(k.x,k.y,f.x,f.y,m.x,m.y));g=mxUtils.ptLineDist(k.x,k.y,k.x+e,k.y-g,m.x,m.y);b.style[mxConstants.STYLE_STARTSIZE]=
-Math.round(100*(g-b.shape.strokewidth)/3)/100/b.view.scale;b.style.startWidth=Math.max(0,Math.round(2*c)-b.shape.getEdgeWidth())/b.view.scale;if(mxEvent.isShiftDown(l.getEvent())||mxEvent.isControlDown(l.getEvent()))b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE],b.style.endWidth=b.style.startWidth;mxEvent.isAltDown(l.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=
+2,c.height/2),Math.min(c.width,c.height)*e),c.y+g)},function(d,c,g){"1"==mxUtils.getValue(b.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(d.width,2*(d.x+d.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(d.width-c.x+d.x)/Math.min(d.width,d.height))))})},ga=function(b,d,c,g,e,k,f){var l=new mxHandle(b,null,mxVertexHandler.prototype.secondaryHandleImage);l.execute=function(b){for(var c=
+0;c<d.length;c++)this.copyStyle(d[c]);f&&f(b)};l.getPosition=c;l.setPosition=g;l.ignoreGrid=null!=e?e:!0;if(k){var m=l.positionChanged;l.positionChanged=function(){m.apply(this,arguments);b.view.invalidate(this.state.cell);b.view.validate()}}return l},Pa={link:function(b){return[ab(b,!0,10),ab(b,!1,10)]},flexArrow:function(b){var d=b.view.graph.gridSize/b.view.scale,c=[];mxUtils.getValue(b.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(Na(b,["width",mxConstants.STYLE_STARTSIZE,
+mxConstants.STYLE_ENDSIZE],!0,function(d,c,g,e,k){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;k=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+c*(k+b.shape.strokewidth*b.view.scale)+g*d/2,e.y+g*(k+b.shape.strokewidth*b.view.scale)-c*d/2)},function(c,g,e,k,f,l,m){c=Math.sqrt(mxUtils.ptSegDistSq(k.x,k.y,f.x,f.y,l.x,l.y));g=mxUtils.ptLineDist(k.x,k.y,k.x+e,k.y-g,l.x,l.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*
+(g-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*c)/b.view.scale;if(mxEvent.isShiftDown(m.getEvent())||mxEvent.isControlDown(m.getEvent()))b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE];mxEvent.isAltDown(m.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE])})),c.push(Na(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,
+mxConstants.STYLE_ENDSIZE],!0,function(d,c,g,e,k){d=(b.shape.getStartArrowWidth()-b.shape.strokewidth)*b.view.scale;k=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+c*(k+b.shape.strokewidth*b.view.scale)+g*d/2,e.y+g*(k+b.shape.strokewidth*b.view.scale)-c*d/2)},function(c,g,e,k,f,l,m){c=Math.sqrt(mxUtils.ptSegDistSq(k.x,k.y,f.x,f.y,l.x,l.y));g=mxUtils.ptLineDist(k.x,k.y,k.x+e,k.y-g,l.x,l.y);b.style[mxConstants.STYLE_STARTSIZE]=
+Math.round(100*(g-b.shape.strokewidth)/3)/100/b.view.scale;b.style.startWidth=Math.max(0,Math.round(2*c)-b.shape.getEdgeWidth())/b.view.scale;if(mxEvent.isShiftDown(m.getEvent())||mxEvent.isControlDown(m.getEvent()))b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE],b.style.endWidth=b.style.startWidth;mxEvent.isAltDown(m.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=
b.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(b.style.startWidth)-parseFloat(b.style.endWidth))<d&&(b.style.startWidth=b.style.endWidth))})));mxUtils.getValue(b.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(Na(b,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,c,g,e,k){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;k=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+
-c*(k+b.shape.strokewidth*b.view.scale)-g*d/2,e.y+g*(k+b.shape.strokewidth*b.view.scale)+c*d/2)},function(c,g,e,k,f,m,l){c=Math.sqrt(mxUtils.ptSegDistSq(k.x,k.y,f.x,f.y,m.x,m.y));g=mxUtils.ptLineDist(k.x,k.y,k.x+e,k.y-g,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(g-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*c)/b.view.scale;if(mxEvent.isShiftDown(l.getEvent())||mxEvent.isControlDown(l.getEvent()))b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE];
-mxEvent.isAltDown(l.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE])})),c.push(Na(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,c,g,e,k){d=(b.shape.getEndArrowWidth()-b.shape.strokewidth)*b.view.scale;k=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+
-c*(k+b.shape.strokewidth*b.view.scale)-g*d/2,e.y+g*(k+b.shape.strokewidth*b.view.scale)+c*d/2)},function(c,g,e,k,f,m,l){c=Math.sqrt(mxUtils.ptSegDistSq(k.x,k.y,f.x,f.y,m.x,m.y));g=mxUtils.ptLineDist(k.x,k.y,k.x+e,k.y-g,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(g-b.shape.strokewidth)/3)/100/b.view.scale;b.style.endWidth=Math.max(0,Math.round(2*c)-b.shape.getEdgeWidth())/b.view.scale;if(mxEvent.isShiftDown(l.getEvent())||mxEvent.isControlDown(l.getEvent()))b.style[mxConstants.STYLE_STARTSIZE]=
-b.style[mxConstants.STYLE_ENDSIZE],b.style.startWidth=b.style.endWidth;mxEvent.isAltDown(l.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(b.style.endWidth)-parseFloat(b.style.startWidth))<d&&(b.style.endWidth=b.style.startWidth))})));return c},swimlane:function(b){var d=[];if(mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED)){var c=
+c*(k+b.shape.strokewidth*b.view.scale)-g*d/2,e.y+g*(k+b.shape.strokewidth*b.view.scale)+c*d/2)},function(c,g,e,k,f,l,m){c=Math.sqrt(mxUtils.ptSegDistSq(k.x,k.y,f.x,f.y,l.x,l.y));g=mxUtils.ptLineDist(k.x,k.y,k.x+e,k.y-g,l.x,l.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(g-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*c)/b.view.scale;if(mxEvent.isShiftDown(m.getEvent())||mxEvent.isControlDown(m.getEvent()))b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE];
+mxEvent.isAltDown(m.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE])})),c.push(Na(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,c,g,e,k){d=(b.shape.getEndArrowWidth()-b.shape.strokewidth)*b.view.scale;k=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+
+c*(k+b.shape.strokewidth*b.view.scale)-g*d/2,e.y+g*(k+b.shape.strokewidth*b.view.scale)+c*d/2)},function(c,g,e,k,f,l,m){c=Math.sqrt(mxUtils.ptSegDistSq(k.x,k.y,f.x,f.y,l.x,l.y));g=mxUtils.ptLineDist(k.x,k.y,k.x+e,k.y-g,l.x,l.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(g-b.shape.strokewidth)/3)/100/b.view.scale;b.style.endWidth=Math.max(0,Math.round(2*c)-b.shape.getEdgeWidth())/b.view.scale;if(mxEvent.isShiftDown(m.getEvent())||mxEvent.isControlDown(m.getEvent()))b.style[mxConstants.STYLE_STARTSIZE]=
+b.style[mxConstants.STYLE_ENDSIZE],b.style.startWidth=b.style.endWidth;mxEvent.isAltDown(m.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(b.style.endWidth)-parseFloat(b.style.startWidth))<d&&(b.style.endWidth=b.style.startWidth))})));return c},swimlane:function(b){var d=[];if(mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED)){var c=
parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));d.push(Ha(b,c/2))}d.push(ga(b,[mxConstants.STYLE_STARTSIZE],function(d){var c=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(d.getCenterX(),d.y+Math.max(0,Math.min(d.height,c))):new mxPoint(d.x+Math.max(0,Math.min(d.width,c)),d.getCenterY())},function(d,c){b.style[mxConstants.STYLE_STARTSIZE]=
1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(d.height,c.y-d.y))):Math.round(Math.max(0,Math.min(d.width,c.x-d.x)))},!1,null,function(d){var c=b.view.graph;if(!mxEvent.isShiftDown(d.getEvent())&&!mxEvent.isControlDown(d.getEvent())&&(c.isTableRow(b.cell)||c.isTableCell(b.cell))){d=c.getSwimlaneDirection(b.style);for(var g=c.model.getParent(b.cell),g=c.model.getChildCells(g,!0),e=[],k=0;k<g.length;k++)g[k]!=b.cell&&c.isSwimlane(g[k])&&c.getSwimlaneDirection(c.getCurrentCellStyle(g[k]))==
d&&e.push(g[k]);c.setCellStyles(mxConstants.STYLE_STARTSIZE,b.style[mxConstants.STYLE_STARTSIZE],e)}}));return d},label:Ma(),ext:Ma(),rectangle:Ma(),triangle:Ma(),rhombus:Ma(),umlLifeline:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",K.prototype.size))));return new mxPoint(b.getCenterX(),b.y+d)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},umlFrame:function(b){return[ga(b,
@@ -2944,16 +2944,16 @@ Math.round(100*Math.max(0,Math.min(1,(d.x-b.x)/b.width)))/100},!1),ga(b,["positi
"dx",na.prototype.dx))),c=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",na.prototype.dy)));return new mxPoint(b.x+(b.width+d)/2,b.y+c)},function(b,d){this.state.style.dx=Math.round(Math.max(0,2*Math.min(b.width/2,d.x-b.x-b.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},singleArrow:Va(1),doubleArrow:Va(.5),folder:function(b){return[ga(b,["tabWidth","tabHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,
"tabWidth",u.prototype.tabWidth))),c=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"tabHeight",u.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",u.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(d=b.width-d);return new mxPoint(b.x+d,b.y+c)},function(b,d){var c=Math.max(0,Math.min(b.width,d.x-b.x));mxUtils.getValue(this.state.style,"tabPosition",u.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=b.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=
Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},document:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",H.prototype.size))));return new mxPoint(b.x+3*b.width/4,b.y+(1-d)*b.height)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},tape:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",G.prototype.size))));
-return new mxPoint(b.getCenterX(),b.y+d*b.height/2)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(d.y-b.y)/b.height*2))},!1)]},isoCube2:function(b){return[ga(b,["isoAngle"],function(b){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",q.isoAngle))))*Math.PI/200;return new mxPoint(b.x,b.y+Math.min(b.width*Math.tan(d),.5*b.height))},function(b,d){this.state.style.isoAngle=Math.max(0,50*(d.y-b.y)/b.height)},!0)]},cylinder2:Wa(m.prototype.size),cylinder3:Wa(p.prototype.size),
+return new mxPoint(b.getCenterX(),b.y+d*b.height/2)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(d.y-b.y)/b.height*2))},!1)]},isoCube2:function(b){return[ga(b,["isoAngle"],function(b){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",t.isoAngle))))*Math.PI/200;return new mxPoint(b.x,b.y+Math.min(b.width*Math.tan(d),.5*b.height))},function(b,d){this.state.style.isoAngle=Math.max(0,50*(d.y-b.y)/b.height)},!0)]},cylinder2:Wa(m.prototype.size),cylinder3:Wa(p.prototype.size),
offPageConnector:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ua.prototype.size))));return new mxPoint(b.getCenterX(),b.y+(1-d)*b.height)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},"mxgraph.basic.rect":function(b){var d=[Graph.createHandle(b,["size"],function(b){var d=Math.max(0,Math.min(b.width/2,b.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));
return new mxPoint(b.x+d,b.y+d)},function(b,d){this.state.style.size=Math.round(100*Math.max(0,Math.min(b.height/2,b.width/2,d.x-b.x)))/100})];b=Graph.createHandle(b,["indent"],function(b){var d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(b.x+.75*b.width,b.y+d*b.height/200)},function(b,d){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(d.y-b.y)/b.height)))/100});d.push(b);return d},step:Oa(M.prototype.size,!0,null,
!0,M.prototype.fixedSize),hexagon:Oa(Q.prototype.size,!0,.5,!0,Q.prototype.fixedSize),curlyBracket:Oa(O.prototype.size,!1),display:Oa(za.prototype.size,!1),cube:Ta(1,f.prototype.size,!1),card:Ta(.5,y.prototype.size,!0),loopLimit:Ta(.5,ta.prototype.size,!0),trapezoid:Xa(.5,F.prototype.size,F.prototype.fixedSize),parallelogram:Xa(1,D.prototype.size,D.prototype.fixedSize)};Graph.createHandle=ga;Graph.handleFactory=Pa;var eb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=
function(){var b=eb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var d=this.state.style.shape;null==mxCellRenderer.defaultShapes[d]&&null==mxStencilRegistry.getStencil(d)?d=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&(d=mxConstants.SHAPE_SWIMLANE);d=Pa[d];null==d&&null!=this.state.shape&&this.state.shape.isRoundable()&&(d=Pa[mxConstants.SHAPE_RECTANGLE]);null!=d&&(d=d(this.state),null!=d&&(b=null==b?d:b.concat(d)))}return b};mxEdgeHandler.prototype.createCustomHandles=
function(){var b=this.state.style.shape;null==mxCellRenderer.defaultShapes[b]&&null==mxStencilRegistry.getStencil(b)&&(b=mxConstants.SHAPE_CONNECTOR);b=Pa[b];return null!=b?b(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Qa=new mxPoint(1,0),Ra=new mxPoint(1,0),Ya=mxUtils.toRadians(-30),Qa=mxUtils.getRotatedPoint(Qa,Math.cos(Ya),Math.sin(Ya)),Za=mxUtils.toRadians(-150),Ra=mxUtils.getRotatedPoint(Ra,Math.cos(Za),Math.sin(Za));mxEdgeStyle.IsometricConnector=function(b,
-d,c,g,e){var k=b.view;g=null!=g&&0<g.length?g[0]:null;var f=b.absolutePoints,m=f[0],f=f[f.length-1];null!=g&&(g=k.transformControlPoint(b,g));null==m&&null!=d&&(m=new mxPoint(d.getCenterX(),d.getCenterY()));null==f&&null!=c&&(f=new mxPoint(c.getCenterX(),c.getCenterY()));var l=Qa.x,q=Qa.y,p=Ra.x,B=Ra.y,n="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=f&&null!=m){b=function(b,d,c){b-=u.x;var g=d-u.y;d=(B*b-p*g)/(l*B-q*p);b=(q*b-l*g)/(q*p-l*B);n?(c&&(u=new mxPoint(u.x+l*d,u.y+
-q*d),e.push(u)),u=new mxPoint(u.x+p*b,u.y+B*b)):(c&&(u=new mxPoint(u.x+p*b,u.y+B*b),e.push(u)),u=new mxPoint(u.x+l*d,u.y+q*d));e.push(u)};var u=m;null==g&&(g=new mxPoint(m.x+(f.x-m.x)/2,m.y+(f.y-m.y)/2));b(g.x,g.y,!0);b(f.x,f.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var fb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(b,d){if(d==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(b);c.snapToTerminals=!1;return c}return fb.apply(this,
-arguments)};l.prototype.constraints=[];t.prototype.getConstraints=function(b,d,c){b=[];var g=Math.tan(mxUtils.toRadians(30)),e=(.5-g)/2,g=Math.min(d,c/(.5+g));d=(d-g)/2;c=(c-g)/2;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c+.25*g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*g,c+g*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+g,c+.25*g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+g,c+.75*g));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,d+.5*g,c+(1-e)*g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c+.75*g));return b};q.prototype.getConstraints=function(b,d,c){b=[];var g=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,g=Math.min(d*Math.tan(g),.5*c);b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
+d,c,g,e){var k=b.view;g=null!=g&&0<g.length?g[0]:null;var f=b.absolutePoints,l=f[0],f=f[f.length-1];null!=g&&(g=k.transformControlPoint(b,g));null==l&&null!=d&&(l=new mxPoint(d.getCenterX(),d.getCenterY()));null==f&&null!=c&&(f=new mxPoint(c.getCenterX(),c.getCenterY()));var m=Qa.x,t=Qa.y,p=Ra.x,B=Ra.y,n="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=f&&null!=l){b=function(b,d,c){b-=u.x;var g=d-u.y;d=(B*b-p*g)/(m*B-t*p);b=(t*b-m*g)/(t*p-m*B);n?(c&&(u=new mxPoint(u.x+m*d,u.y+
+t*d),e.push(u)),u=new mxPoint(u.x+p*b,u.y+B*b)):(c&&(u=new mxPoint(u.x+p*b,u.y+B*b),e.push(u)),u=new mxPoint(u.x+m*d,u.y+t*d));e.push(u)};var u=l;null==g&&(g=new mxPoint(l.x+(f.x-l.x)/2,l.y+(f.y-l.y)/2));b(g.x,g.y,!0);b(f.x,f.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var fb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(b,d){if(d==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(b);c.snapToTerminals=!1;return c}return fb.apply(this,
+arguments)};l.prototype.constraints=[];q.prototype.getConstraints=function(b,d,c){b=[];var g=Math.tan(mxUtils.toRadians(30)),e=(.5-g)/2,g=Math.min(d,c/(.5+g));d=(d-g)/2;c=(c-g)/2;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c+.25*g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*g,c+g*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+g,c+.25*g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+g,c+.75*g));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,d+.5*g,c+(1-e)*g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c+.75*g));return b};t.prototype.getConstraints=function(b,d,c){b=[];var g=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,g=Math.min(d*Math.tan(g),.5*c);b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,d,c-g));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c-g));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g));return b};N.prototype.getConstraints=function(b,d,c){b=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var g=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,
"position",this.position));var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,d,.5*(c-g)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c-g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c-g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(c-g)));d>=2*g&&b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return b};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(.25,
@@ -3003,12 +3003,12 @@ parseFloat(mxUtils.getValue(this.style,"arrowWidth",ca.prototype.arrowWidth)))),
.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];Aa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,
.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];la.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];oa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(b){this.editorUi=b;this.actions={};this.init()}
Actions.prototype.init=function(){function b(b){l.escape();b=l.deleteCells(l.getDeletableCells(l.getSelectionCells()),b);null!=b&&l.setSelectionCells(b)}function c(){if(!l.isSelectionEmpty()){l.getModel().beginUpdate();try{for(var b=l.getSelectionCells(),d=0;d<b.length;d++)l.cellLabelChanged(b[d],"")}finally{l.getModel().endUpdate()}}}function e(b,d,c,e,k){k.getModel().beginUpdate();try{var g=k.getCellGeometry(b);null!=g&&c&&e&&(c/=e,g=g.clone(),1<c?g.height=g.width/c:g.width=g.height*c,k.getModel().setGeometry(b,
-g));k.setCellStyles(mxConstants.STYLE_CLIP_PATH,d,[b]);k.setCellStyles(mxConstants.STYLE_ASPECT,"fixed",[b])}finally{k.getModel().endUpdate()}}var f=this.editorUi,n=f.editor,l=n.graph,t=function(){return Action.prototype.isEnabled.apply(this,arguments)&&l.isEnabled()};this.addAction("new...",function(){l.openLink(f.getUrl())});this.addAction("open...",function(){window.openNew=!0;window.openKey="open";f.openFile()});this.addAction("smartFit",function(){l.popupMenuHandler.hideMenu();var b=l.view.scale,
+g));k.setCellStyles(mxConstants.STYLE_CLIP_PATH,d,[b]);k.setCellStyles(mxConstants.STYLE_ASPECT,"fixed",[b])}finally{k.getModel().endUpdate()}}var f=this.editorUi,n=f.editor,l=n.graph,q=function(){return Action.prototype.isEnabled.apply(this,arguments)&&l.isEnabled()};this.addAction("new...",function(){l.openLink(f.getUrl())});this.addAction("open...",function(){window.openNew=!0;window.openKey="open";f.openFile()});this.addAction("smartFit",function(){l.popupMenuHandler.hideMenu();var b=l.view.scale,
d=l.view.translate.x,c=l.view.translate.y;f.actions.get("resetView").funct();1E-5>Math.abs(b-l.view.scale)&&d==l.view.translate.x&&c==l.view.translate.y&&f.actions.get(l.pageVisible?"fitPage":"fitWindow").funct()});this.addAction("keyPressEnter",function(){l.isEnabled()&&(l.isSelectionEmpty()?f.actions.get("smartFit").funct():l.startEditingAtCell())});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){f.hideDialog()}));
-window.openFile.setConsumer(mxUtils.bind(this,function(b,d){try{var c=mxUtils.parseXml(b);n.graph.setSelectionCells(n.graph.importGraphModel(c.documentElement))}catch(p){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+p.message)}}));f.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=t;this.addAction("save",function(){f.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=t;this.addAction("saveAs...",function(){f.saveFile(!0)},null,
-null,Editor.ctrlKey+"+Shift+S").isEnabled=t;this.addAction("export...",function(){f.showDialog((new ExportDialog(f)).container,300,340,!0,!0)});this.addAction("editDiagram...",function(){var b=new EditDiagramDialog(f);f.showDialog(b.container,620,420,!0,!1);b.init()});this.addAction("pageSetup...",function(){f.showDialog((new PageSetupDialog(f)).container,320,240,!0,!0)}).isEnabled=t;this.addAction("print...",function(){f.showDialog((new PrintDialog(f)).container,300,180,!0,!0)},null,"sprite-print",
-Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(l,null,10,10)});this.addAction("undo",function(){f.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){f.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",function(){var b=null;try{b=f.copyXml(),null!=b&&l.removeCells(b,!1)}catch(q){}null==b&&mxClipboard.cut(l)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){try{f.copyXml()}catch(g){}try{mxClipboard.copy(l)}catch(g){f.handleError(g)}},
-null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())){var b=!1;try{Editor.enableNativeCipboard&&(f.readGraphModelFromClipboard(function(b){if(null!=b){l.getModel().beginUpdate();try{f.pasteXml(b,!0)}finally{l.getModel().endUpdate()}}else mxClipboard.paste(l)}),b=!0)}catch(q){}b||mxClipboard.paste(l)}},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(b){function d(b){if(null!=b){for(var d=!0,c=0;c<
+window.openFile.setConsumer(mxUtils.bind(this,function(b,d){try{var c=mxUtils.parseXml(b);n.graph.setSelectionCells(n.graph.importGraphModel(c.documentElement))}catch(p){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+p.message)}}));f.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=q;this.addAction("save",function(){f.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=q;this.addAction("saveAs...",function(){f.saveFile(!0)},null,
+null,Editor.ctrlKey+"+Shift+S").isEnabled=q;this.addAction("export...",function(){f.showDialog((new ExportDialog(f)).container,300,340,!0,!0)});this.addAction("editDiagram...",function(){var b=new EditDiagramDialog(f);f.showDialog(b.container,620,420,!0,!1);b.init()});this.addAction("pageSetup...",function(){f.showDialog((new PageSetupDialog(f)).container,320,240,!0,!0)}).isEnabled=q;this.addAction("print...",function(){f.showDialog((new PrintDialog(f)).container,300,180,!0,!0)},null,"sprite-print",
+Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(l,null,10,10)});this.addAction("undo",function(){f.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){f.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",function(){var b=null;try{b=f.copyXml(),null!=b&&l.removeCells(b,!1)}catch(t){}null==b&&mxClipboard.cut(l)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){try{f.copyXml()}catch(g){}try{mxClipboard.copy(l)}catch(g){f.handleError(g)}},
+null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())){var b=!1;try{Editor.enableNativeCipboard&&(f.readGraphModelFromClipboard(function(b){if(null!=b){l.getModel().beginUpdate();try{f.pasteXml(b,!0)}finally{l.getModel().endUpdate()}}else mxClipboard.paste(l)}),b=!0)}catch(t){}b||mxClipboard.paste(l)}},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(b){function d(b){if(null!=b){for(var d=!0,c=0;c<
b.length&&d;c++)d=d&&l.model.isEdge(b[c]);var g=l.view.translate,c=l.view.scale,e=g.x,k=g.y,g=null;if(1==b.length&&d){var f=l.getCellGeometry(b[0]);null!=f&&(g=f.getTerminalPoint(!0))}g=null!=g?g:l.getBoundingBoxFromGeometry(b,d);null!=g&&(d=Math.round(l.snap(l.popupMenuHandler.triggerX/c-e)),c=Math.round(l.snap(l.popupMenuHandler.triggerY/c-k)),l.cellsMoved(b,d-g.x,c-g.y))}}function c(){l.getModel().beginUpdate();try{d(mxClipboard.paste(l))}finally{l.getModel().endUpdate()}}if(l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())){b=
!1;try{Editor.enableNativeCipboard&&(f.readGraphModelFromClipboard(function(b){if(null!=b){l.getModel().beginUpdate();try{d(f.pasteXml(b,!0))}finally{l.getModel().endUpdate()}}else c()}),b=!0)}catch(p){}b||c()}});this.addAction("copySize",function(){var b=l.getSelectionCell();l.isEnabled()&&null!=b&&l.getModel().isVertex(b)&&(b=l.getCellGeometry(b),null!=b&&(f.copiedSize=new mxRectangle(b.x,b.y,b.width,b.height)))},null,null,"Alt+Shift+X");this.addAction("pasteSize",function(){if(l.isEnabled()&&!l.isSelectionEmpty()&&
null!=f.copiedSize){l.getModel().beginUpdate();try{for(var b=l.getResizableCells(l.getSelectionCells()),d=0;d<b.length;d++)if(l.getModel().isVertex(b[d])){var c=l.getCellGeometry(b[d]);null!=c&&(c=c.clone(),c.width=f.copiedSize.width,c.height=f.copiedSize.height,l.getModel().setGeometry(b[d],c))}}finally{l.getModel().endUpdate()}}},null,null,"Alt+Shift+V");this.addAction("copyData",function(){var b=l.getSelectionCell()||l.getModel().getRoot();l.isEnabled()&&null!=b&&(b=b.cloneValue(),null==b||isNaN(b.nodeType)||
@@ -3024,10 +3024,10 @@ this.addAction("ungroup",function(){if(l.isEnabled()){var b=l.getEditableCells(l
if(null!=b){for(var d=[],c=0;c<b.length;c++)l.isTableRow(b[c])||l.isTableCell(b[c])||d.push(b[c]);l.removeCellsFromParent(d)}}});this.addAction("edit",function(){l.isEnabled()&&l.startEditingAtCell()},null,null,"F2/Enter");this.addAction("editData...",function(){var b=l.getSelectionCell()||l.getModel().getRoot();f.showDataDialog(b)},null,null,Editor.ctrlKey+"+M");this.addAction("editTooltip...",function(){var b=l.getSelectionCell();if(l.isEnabled()&&null!=b&&l.isCellEditable(b)){var d="";if(mxUtils.isNode(b.value)){var c=
null;Graph.translateDiagram&&null!=Graph.diagramLanguage&&b.value.hasAttribute("tooltip_"+Graph.diagramLanguage)&&(c=b.value.getAttribute("tooltip_"+Graph.diagramLanguage));null==c&&(c=b.value.getAttribute("tooltip"));null!=c&&(d=c)}d=new TextareaDialog(f,mxResources.get("editTooltip")+":",d,function(d){l.setTooltipForCell(b,d)});f.showDialog(d.container,320,200,!0,!0);d.init()}},null,null,"Alt+Shift+T");this.addAction("openLink",function(){var b=l.getLinkForCell(l.getSelectionCell());null!=b&&l.openLink(b)});
this.addAction("editLink...",function(){var b=l.getSelectionCell();if(l.isEnabled()&&null!=b&&l.isCellEditable(b)){var d=l.getLinkForCell(b)||"";f.showLinkDialog(d,mxResources.get("apply"),function(d,c,g){d=mxUtils.trim(d);l.setLinkForCell(b,0<d.length?d:null);l.setAttributeForCell(b,"linkTarget",g)},!0,l.getLinkTargetForCell(b))}},null,null,"Alt+Shift+L");this.put("insertImage",new Action(mxResources.get("image")+"...",function(){l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())&&(l.clearSelection(),
-f.actions.get("image").funct())})).isEnabled=t;this.put("insertLink",new Action(mxResources.get("link")+"...",function(){l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())&&f.showLinkDialog("",mxResources.get("insert"),function(b,d,c){b=mxUtils.trim(b);if(0<b.length){var g=null,e=l.getLinkTitle(b);null!=d&&0<d.length&&(g=d[0].iconUrl,e=d[0].name||d[0].type,e=e.charAt(0).toUpperCase()+e.substring(1),30<e.length&&(e=e.substring(0,30)+"..."));d=new mxCell(e,new mxGeometry(0,0,100,40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+
+f.actions.get("image").funct())})).isEnabled=q;this.put("insertLink",new Action(mxResources.get("link")+"...",function(){l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())&&f.showLinkDialog("",mxResources.get("insert"),function(b,d,c){b=mxUtils.trim(b);if(0<b.length){var g=null,e=l.getLinkTitle(b);null!=d&&0<d.length&&(g=d[0].iconUrl,e=d[0].name||d[0].type,e=e.charAt(0).toUpperCase()+e.substring(1),30<e.length&&(e=e.substring(0,30)+"..."));d=new mxCell(e,new mxGeometry(0,0,100,40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+
(null!=g?"shape=label;imageWidth=16;imageHeight=16;spacingLeft=26;align=left;image="+g:"spacing=10;"));d.vertex=!0;g=l.getCenterInsertPoint(l.getBoundingBoxFromGeometry([d],!0));d.geometry.x=g.x;d.geometry.y=g.y;l.setAttributeForCell(d,"linkTarget",c);l.setLinkForCell(d,b);l.cellSizeUpdated(d,!0);l.getModel().beginUpdate();try{d=l.addCell(d),l.fireEvent(new mxEventObject("cellsInserted","cells",[d]))}finally{l.getModel().endUpdate()}l.setSelectionCell(d);l.scrollCellToVisible(l.getSelectionCell())}},
-!0)})).isEnabled=t;this.addAction("link...",mxUtils.bind(this,function(){if(l.isEnabled())if(l.cellEditor.isContentEditing()){var b=l.getSelectedElement(),d=l.getParentByName(b,"A",l.cellEditor.textarea),c="";if(null==d&&null!=b&&null!=b.getElementsByTagName)for(var e=b.getElementsByTagName("a"),k=0;k<e.length&&null==d;k++)e[k].textContent==b.textContent&&(d=e[k]);null!=d&&"A"==d.nodeName&&(c=d.getAttribute("href")||"",l.selectNode(d));var n=l.cellEditor.saveSelection();f.showLinkDialog(c,mxResources.get("apply"),
-mxUtils.bind(this,function(b){l.cellEditor.restoreSelection(n);null!=b&&l.insertLink(b)}))}else l.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=t;this.addAction("autosize",function(){var b=l.getSelectionCells();if(null!=b){l.getModel().beginUpdate();try{for(var d=0;d<b.length;d++){var c=b[d];0<l.getModel().getChildCount(c)?l.updateGroupBounds([c],0,!0):l.updateCellSize(c)}}finally{l.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+Y");this.addAction("snapToGrid",
+!0)})).isEnabled=q;this.addAction("link...",mxUtils.bind(this,function(){if(l.isEnabled())if(l.cellEditor.isContentEditing()){var b=l.getSelectedElement(),d=l.getParentByName(b,"A",l.cellEditor.textarea),c="";if(null==d&&null!=b&&null!=b.getElementsByTagName)for(var e=b.getElementsByTagName("a"),k=0;k<e.length&&null==d;k++)e[k].textContent==b.textContent&&(d=e[k]);null!=d&&"A"==d.nodeName&&(c=d.getAttribute("href")||"",l.selectNode(d));var n=l.cellEditor.saveSelection();f.showLinkDialog(c,mxResources.get("apply"),
+mxUtils.bind(this,function(b){l.cellEditor.restoreSelection(n);null!=b&&l.insertLink(b)}))}else l.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=q;this.addAction("autosize",function(){var b=l.getSelectionCells();if(null!=b){l.getModel().beginUpdate();try{for(var d=0;d<b.length;d++){var c=b[d];0<l.getModel().getChildCount(c)?l.updateGroupBounds([c],0,!0):l.updateCellSize(c)}}finally{l.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+Y");this.addAction("snapToGrid",
function(){l.snapCellsToGrid(l.getSelectionCells(),l.gridSize)});this.addAction("formattedText",function(){l.stopEditing();var b=l.getCommonStyle(l.getSelectionCells()),b="1"==mxUtils.getValue(b,"html","0")?null:"1";l.getModel().beginUpdate();try{for(var d=l.getEditableCells(l.getSelectionCells()),c=0;c<d.length;c++)if(state=l.getView().getState(d[c]),null!=state){var e=mxUtils.getValue(state.style,"html","0");if("1"==e&&null==b){var k=l.convertValueToString(state.cell);"0"!=mxUtils.getValue(state.style,
"nl2Br","1")&&(k=k.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));var n=document.createElement("div");n.innerHTML=l.sanitizeHtml(k);k=mxUtils.extractTextWithWhitespace(n.childNodes);l.cellLabelChanged(state.cell,k);l.setCellStyles("html",b,[d[c]])}else"0"==e&&"1"==b&&(k=mxUtils.htmlEntities(l.convertValueToString(state.cell),!1),"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(k=k.replace(/\n/g,"<br/>")),l.cellLabelChanged(state.cell,l.sanitizeHtml(k)),l.setCellStyles("html",b,[d[c]]))}f.fireEvent(new mxEventObject("styleChanged",
"keys",["html"],"values",[null!=b?b:"0"],"cells",d))}finally{l.getModel().endUpdate()}});this.addAction("wordWrap",function(){var b=l.getView().getState(l.getSelectionCell()),d="wrap";l.stopEditing();null!=b&&"wrap"==b.style[mxConstants.STYLE_WHITE_SPACE]&&(d=null);l.setCellStyles(mxConstants.STYLE_WHITE_SPACE,d)});this.addAction("rotation",function(){var b="0",d=l.getView().getState(l.getSelectionCell());null!=d&&(b=d.style[mxConstants.STYLE_ROTATION]||b);b=new FilenameDialog(f,b,mxResources.get("apply"),
@@ -3039,10 +3039,10 @@ l.container.clientHeight)/2),l.container.scrollLeft=Math.min(b.x,(l.container.sc
2)}}));this.put("customZoom",new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var b=new FilenameDialog(this.editorUi,parseInt(100*l.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(b){b=parseInt(b);!isNaN(b)&&0<b&&l.zoomTo(b/100)}),mxResources.get("zoom")+" (%)");this.editorUi.showDialog(b.container,300,80,!0,!0);b.init()}),null,null,Editor.ctrlKey+"+0"));this.addAction("pageScale...",mxUtils.bind(this,function(){var b=new FilenameDialog(this.editorUi,
parseInt(100*l.pageScale),mxResources.get("apply"),mxUtils.bind(this,function(b){b=parseInt(b);!isNaN(b)&&0<b&&(b=new ChangePageSetup(f,null,null,null,b/100),b.ignoreColor=!0,b.ignoreImage=!0,l.model.execute(b))}),mxResources.get("pageScale")+" (%)");this.editorUi.showDialog(b.container,300,80,!0,!0);b.init()}));var d=null,d=this.addAction("grid",function(){l.setGridEnabled(!l.isGridEnabled());l.defaultGridEnabled=l.isGridEnabled();f.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,Editor.ctrlKey+
"+Shift+G");d.setToggleAction(!0);d.setSelectedCallback(function(){return l.isGridEnabled()});d.setEnabled(!1);d=this.addAction("guides",function(){l.graphHandler.guidesEnabled=!l.graphHandler.guidesEnabled;f.fireEvent(new mxEventObject("guidesEnabledChanged"))});d.setToggleAction(!0);d.setSelectedCallback(function(){return l.graphHandler.guidesEnabled});d.setEnabled(!1);d=this.addAction("tooltips",function(){l.tooltipHandler.setEnabled(!l.tooltipHandler.isEnabled());f.fireEvent(new mxEventObject("tooltipsEnabledChanged"))});
-d.setToggleAction(!0);d.setSelectedCallback(function(){return l.tooltipHandler.isEnabled()});d=this.addAction("collapseExpand",function(){var b=new ChangePageSetup(f);b.ignoreColor=!0;b.ignoreImage=!0;b.foldingEnabled=!l.foldingEnabled;l.model.execute(b)});d.setToggleAction(!0);d.setSelectedCallback(function(){return l.foldingEnabled});d.isEnabled=t;d=this.addAction("scrollbars",function(){f.setScrollbars(!f.hasScrollbars())});d.setToggleAction(!0);d.setSelectedCallback(function(){return l.scrollbars});
+d.setToggleAction(!0);d.setSelectedCallback(function(){return l.tooltipHandler.isEnabled()});d=this.addAction("collapseExpand",function(){var b=new ChangePageSetup(f);b.ignoreColor=!0;b.ignoreImage=!0;b.foldingEnabled=!l.foldingEnabled;l.model.execute(b)});d.setToggleAction(!0);d.setSelectedCallback(function(){return l.foldingEnabled});d.isEnabled=q;d=this.addAction("scrollbars",function(){f.setScrollbars(!f.hasScrollbars())});d.setToggleAction(!0);d.setSelectedCallback(function(){return l.scrollbars});
d=this.addAction("pageView",mxUtils.bind(this,function(){f.setPageVisible(!l.pageVisible)}));d.setToggleAction(!0);d.setSelectedCallback(function(){return l.pageVisible});d=this.addAction("connectionArrows",function(){l.connectionArrowsEnabled=!l.connectionArrowsEnabled;f.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");d.setToggleAction(!0);d.setSelectedCallback(function(){return l.connectionArrowsEnabled});d=this.addAction("connectionPoints",function(){l.setConnectable(!l.connectionHandler.isEnabled());
-f.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Alt+Shift+P");d.setToggleAction(!0);d.setSelectedCallback(function(){return l.connectionHandler.isEnabled()});d=this.addAction("copyConnect",function(){l.connectionHandler.setCreateTarget(!l.connectionHandler.isCreateTarget());f.fireEvent(new mxEventObject("copyConnectChanged"))});d.setToggleAction(!0);d.setSelectedCallback(function(){return l.connectionHandler.isCreateTarget()});d.isEnabled=t;d=this.addAction("autosave",function(){f.editor.setAutosave(!f.editor.autosave)});
-d.setToggleAction(!0);d.setSelectedCallback(function(){return f.editor.autosave});d.isEnabled=t;d.visible=!1;this.addAction("help",function(){var b="";mxResources.isLanguageSupported(mxClient.language)&&(b="_"+mxClient.language);l.openLink(RESOURCES_PATH+"/help"+b+".html")});var k=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){k||(f.showDialog((new AboutDialog(f)).container,320,280,!0,!0,function(){k=!1}),k=!0)}));d=mxUtils.bind(this,function(b,d,c,e){return this.addAction(b,
+f.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Alt+Shift+P");d.setToggleAction(!0);d.setSelectedCallback(function(){return l.connectionHandler.isEnabled()});d=this.addAction("copyConnect",function(){l.connectionHandler.setCreateTarget(!l.connectionHandler.isCreateTarget());f.fireEvent(new mxEventObject("copyConnectChanged"))});d.setToggleAction(!0);d.setSelectedCallback(function(){return l.connectionHandler.isCreateTarget()});d.isEnabled=q;d=this.addAction("autosave",function(){f.editor.setAutosave(!f.editor.autosave)});
+d.setToggleAction(!0);d.setSelectedCallback(function(){return f.editor.autosave});d.isEnabled=q;d.visible=!1;this.addAction("help",function(){var b="";mxResources.isLanguageSupported(mxClient.language)&&(b="_"+mxClient.language);l.openLink(RESOURCES_PATH+"/help"+b+".html")});var k=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){k||(f.showDialog((new AboutDialog(f)).container,320,280,!0,!0,function(){k=!1}),k=!0)}));d=mxUtils.bind(this,function(b,d,c,e){return this.addAction(b,
function(){if(null!=c&&l.cellEditor.isContentEditing())c();else{l.stopEditing(!1);l.getModel().beginUpdate();try{var b=l.getEditableCells(l.getSelectionCells());l.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,d,b);(d&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?l.updateLabelElements(b,function(b){b.style.fontWeight=null;"B"==b.nodeName&&l.replaceElement(b)}):(d&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?l.updateLabelElements(b,function(b){b.style.fontStyle=null;"I"==b.nodeName&&l.replaceElement(b)}):
(d&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&l.updateLabelElements(b,function(b){b.style.textDecoration=null;"U"==b.nodeName&&l.replaceElement(b)});for(var g=0;g<b.length;g++)0==l.model.getChildCount(b[g])&&l.autoSizeCell(b[g],!1)}finally{l.getModel().endUpdate()}}},null,null,e)});d("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");d("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},Editor.ctrlKey+"+I");
d("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},Editor.ctrlKey+"+U");this.addAction("fontColor...",function(){f.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});this.addAction("strokeColor...",function(){f.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){f.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){f.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});
@@ -3058,13 +3058,13 @@ if(null!=b&&l.getModel().isEdge(b)){var d=n.graph.selectionCellsHandler.getHandl
f.actions.get("removeWaypoint");null!=b.handler&&b.handler.removePoint(b.handler.state,b.index)});this.addAction("clearWaypoints",function(b,d){b=null!=d?d:b;var c=l.getSelectionCells();if(null!=c){c=l.getEditableCells(l.addAllEdges(c));l.getModel().beginUpdate();try{for(var g=0;g<c.length;g++){var e=c[g];if(l.getModel().isEdge(e)){var k=l.getCellGeometry(e);null!=d&&mxEvent.isShiftDown(b)?(l.setCellStyles(mxConstants.STYLE_EXIT_X,null,[e]),l.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[e]),l.setCellStyles(mxConstants.STYLE_ENTRY_X,
null,[e]),l.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[e])):null!=k&&(k=k.clone(),k.points=null,k.x=0,k.y=0,k.offset=null,l.getModel().setGeometry(e,k))}}}finally{l.getModel().endUpdate()}}},null,null,"Alt+Shift+C");d=this.addAction("subscript",mxUtils.bind(this,function(){l.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");d=this.addAction("superscript",mxUtils.bind(this,function(){l.cellEditor.isContentEditing()&&document.execCommand("superscript",
!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...",function(){if(l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())){var b=mxResources.get("image")+" ("+mxResources.get("url")+"):",d=l.getView().getState(l.getSelectionCell()),c="",k=null;null!=d&&(c=d.style[mxConstants.STYLE_IMAGE]||c,k=d.style[mxConstants.STYLE_CLIP_PATH]||k);var n=l.cellEditor.saveSelection();f.showImageDialog(b,c,function(b,d,c,g,k,f){if(l.cellEditor.isContentEditing())l.cellEditor.restoreSelection(n),l.insertImage(b,
-d,c);else{var m=l.getSelectionCells();if(null!=b&&(0<b.length||0<m.length)){var p=null;l.getModel().beginUpdate();try{if(0==m.length){var m=[l.insertVertex(l.getDefaultParent(),null,"",0,0,d,c,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")],q=l.getCenterInsertPoint(l.getBoundingBoxFromGeometry(m,!0));m[0].geometry.x=q.x;m[0].geometry.y=q.y;null!=g&&e(m[0],g,k,f,l);p=m;l.fireEvent(new mxEventObject("cellsInserted","cells",p))}l.setCellStyles(mxConstants.STYLE_IMAGE,
+d,c);else{var m=l.getSelectionCells();if(null!=b&&(0<b.length||0<m.length)){var p=null;l.getModel().beginUpdate();try{if(0==m.length){var m=[l.insertVertex(l.getDefaultParent(),null,"",0,0,d,c,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")],t=l.getCenterInsertPoint(l.getBoundingBoxFromGeometry(m,!0));m[0].geometry.x=t.x;m[0].geometry.y=t.y;null!=g&&e(m[0],g,k,f,l);p=m;l.fireEvent(new mxEventObject("cellsInserted","cells",p))}l.setCellStyles(mxConstants.STYLE_IMAGE,
0<b.length?b:null,m);var u=l.getCurrentCellStyle(m[0]);"image"!=u[mxConstants.STYLE_SHAPE]&&"label"!=u[mxConstants.STYLE_SHAPE]?l.setCellStyles(mxConstants.STYLE_SHAPE,"image",m):0==b.length&&l.setCellStyles(mxConstants.STYLE_SHAPE,null,m);if(1==l.getSelectionCount()&&null!=d&&null!=c){var v=m[0],y=l.getModel().getGeometry(v);null!=y&&(y=y.clone(),y.width=d,y.height=c,l.getModel().setGeometry(v,y));null!=g?e(v,g,k,f,l):l.setCellStyles(mxConstants.STYLE_CLIP_PATH,null,m)}}finally{l.getModel().endUpdate()}null!=
-p&&(l.setSelectionCells(p),l.scrollCellToVisible(p[0]))}}},l.cellEditor.isContentEditing(),!l.cellEditor.isContentEditing(),!0,k)}}).isEnabled=t;this.addAction("crop...",function(){var b=l.getSelectionCell();if(l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())&&null!=b){var d=l.getCurrentCellStyle(b),c=d[mxConstants.STYLE_IMAGE],k=d[mxConstants.STYLE_SHAPE];c&&"image"==k&&(d=new CropImageDialog(f,c,d[mxConstants.STYLE_CLIP_PATH],function(d,c,g){e(b,d,c,g,l)}),f.showDialog(d.container,300,390,!0,
-!0))}}).isEnabled=t;d=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(f,document.body.offsetWidth-280,120,212,200),this.layersWindow.window.addListener("show",mxUtils.bind(this,function(){f.fireEvent(new mxEventObject("layers"))})),this.layersWindow.window.addListener("hide",function(){f.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),f.fireEvent(new mxEventObject("layers")),this.layersWindow.init()):
+p&&(l.setSelectionCells(p),l.scrollCellToVisible(p[0]))}}},l.cellEditor.isContentEditing(),!l.cellEditor.isContentEditing(),!0,k)}}).isEnabled=q;this.addAction("crop...",function(){var b=l.getSelectionCell();if(l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())&&null!=b){var d=l.getCurrentCellStyle(b),c=d[mxConstants.STYLE_IMAGE],k=d[mxConstants.STYLE_SHAPE];c&&"image"==k&&(d=new CropImageDialog(f,c,d[mxConstants.STYLE_CLIP_PATH],function(d,c,g){e(b,d,c,g,l)}),f.showDialog(d.container,300,390,!0,
+!0))}}).isEnabled=q;d=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(f,document.body.offsetWidth-280,120,212,200),this.layersWindow.window.addListener("show",mxUtils.bind(this,function(){f.fireEvent(new mxEventObject("layers"))})),this.layersWindow.window.addListener("hide",function(){f.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),f.fireEvent(new mxEventObject("layers")),this.layersWindow.init()):
this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");d.setToggleAction(!0);d.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));d=this.addAction("formatPanel",mxUtils.bind(this,function(){f.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");d.setToggleAction(!0);d.setSelectedCallback(mxUtils.bind(this,function(){return 0<f.formatWidth}));d=this.addAction("outline",
mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(f,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",mxUtils.bind(this,function(){f.fireEvent(new mxEventObject("outline"))})),this.outlineWindow.window.addListener("hide",function(){f.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),f.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),
-null,null,Editor.ctrlKey+"+Shift+O");d.setToggleAction(!0);d.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}));this.addAction("editConnectionPoints...",function(){var b=l.getSelectionCell();if(l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())&&null!=b){var d=new ConnectionPointsDialog(f,b);f.showDialog(d.container,350,450,!0,!1,function(){d.destroy()});d.init()}}).isEnabled=t};
+null,null,Editor.ctrlKey+"+Shift+O");d.setToggleAction(!0);d.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}));this.addAction("editConnectionPoints...",function(){var b=l.getSelectionCell();if(l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())&&null!=b){var d=new ConnectionPointsDialog(f,b);f.showDialog(d.container,350,450,!0,!1,function(){d.destroy()});d.init()}}).isEnabled=q};
Actions.prototype.addAction=function(b,c,e,f,n){var l;"..."==b.substring(b.length-3)?(b=b.substring(0,b.length-3),l=mxResources.get(b)+"..."):l=mxResources.get(b);return this.put(b,new Action(l,c,e,f,n))};Actions.prototype.put=function(b,c){return this.actions[b]=c};Actions.prototype.get=function(b){return this.actions[b]};function Action(b,c,e,f,n){mxEventSource.call(this);this.label=b;this.funct=this.createFunction(c);this.enabled=null!=e?e:!0;this.iconCls=f;this.shortcut=n;this.visible=!0}
mxUtils.extend(Action,mxEventSource);Action.prototype.createFunction=function(b){return b};Action.prototype.setEnabled=function(b){this.enabled!=b&&(this.enabled=b,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled};Action.prototype.setToggleAction=function(b){this.toggleAction=b};Action.prototype.setSelectedCallback=function(b){this.selectedCallback=b};Action.prototype.isSelected=function(){return this.selectedCallback()};DrawioFile=function(b,c){mxEventSource.call(this);this.ui=b;this.data=c||"";this.created=(new Date).getTime();this.stats={opened:0,merged:0,fileMerged:0,fileReloaded:0,conflicts:0,timeouts:0,saved:0,closed:0,destroyed:0,joined:0,checksumErrors:0,bytesSent:0,bytesReceived:0,msgSent:0,msgReceived:0,cacheHits:0,cacheMiss:0,cacheFail:0}};DrawioFile.SYNC=urlParams.sync||"auto";DrawioFile.LAST_WRITE_WINS=!0;mxUtils.extend(DrawioFile,mxEventSource);DrawioFile.prototype.allChangesSavedKey="allChangesSaved";
DrawioFile.prototype.savingSpinnerKey="saving";DrawioFile.prototype.savingStatusKey="saving";DrawioFile.prototype.autosaveDelay=1500;DrawioFile.prototype.maxAutosaveDelay=3E4;DrawioFile.prototype.optimisticSyncDelay=300;DrawioFile.prototype.autosaveThread=null;DrawioFile.prototype.lastAutosave=null;DrawioFile.prototype.lastSaved=null;DrawioFile.prototype.lastChanged=null;DrawioFile.prototype.opened=null;DrawioFile.prototype.modified=!1;DrawioFile.prototype.shadowModified=!1;
@@ -3072,26 +3072,26 @@ DrawioFile.prototype.data=null;DrawioFile.prototype.shadowPages=null;DrawioFile.
DrawioFile.prototype.getShadowPages=function(){null==this.shadowPages&&(this.shadowPages=this.ui.getPagesForXml(this.data));return this.shadowPages};DrawioFile.prototype.setShadowPages=function(b){this.shadowPages=b};DrawioFile.prototype.synchronizeFile=function(b,c){this.savingFile?null!=c&&c({message:mxResources.get("busy")}):null!=this.sync?this.sync.fileChanged(mxUtils.bind(this,function(e){this.sync.cleanup(b,c,e)}),c):this.updateFile(b,c)};
DrawioFile.prototype.updateFile=function(b,c,e,f){null!=e&&e()||(EditorUi.debug("DrawioFile.updateFile",[this],"invalidChecksum",this.invalidChecksum),this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=c&&c():this.getLatestVersion(mxUtils.bind(this,function(n){try{null!=e&&e()||(EditorUi.debug("DrawioFile.updateFile",[this],"invalidChecksum",this.invalidChecksum,"latestFile",[n]),this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=c&&c():null!=n?this.mergeFile(n,b,c,f):this.reloadFile(b,
c))}catch(l){null!=c&&c(l)}}),c))};
-DrawioFile.prototype.mergeFile=function(b,c,e,f){var n=!0;try{this.stats.fileMerged++;var l=this.getShadowPages(),t=b.getShadowPages();if(null!=t&&0<t.length){var d=[this.ui.diffPages(null!=f?f:l,t)],k=this.ignorePatches(d);this.setShadowPages(t);if(!k){null!=this.sync&&this.sync.sendLocalChanges();this.backupPatch=this.isModified()?this.ui.diffPages(l,this.ui.pages):null;f={};var k={},g=this.ui.patchPages(l,d[0]),q=this.ui.getHashValueForPages(g,f),m=this.ui.getHashValueForPages(t,k);EditorUi.debug("File.mergeFile",
-[this],"file",[b],"patches",d,"backup",this.backupPatch,"checksum",q,"current",m,q==m);if(null!=q&&q!=m){var p=this.compressReportData(this.getAnonymizedXmlForPages(t)),v=this.compressReportData(this.getAnonymizedXmlForPages(g)),u=this.ui.hashValue(b.getCurrentEtag()),x=this.ui.hashValue(this.getCurrentEtag());this.checksumError(e,d,"Shadow Details: "+JSON.stringify(f)+"\nChecksum: "+q+"\nCurrent: "+m+"\nCurrent Details: "+JSON.stringify(k)+"\nFrom: "+u+"\nTo: "+x+"\n\nFile Data:\n"+p+"\nPatched Shadow:\n"+
+DrawioFile.prototype.mergeFile=function(b,c,e,f){var n=!0;try{this.stats.fileMerged++;var l=this.getShadowPages(),q=b.getShadowPages();if(null!=q&&0<q.length){var d=[this.ui.diffPages(null!=f?f:l,q)],k=this.ignorePatches(d);this.setShadowPages(q);if(!k){null!=this.sync&&this.sync.sendLocalChanges();this.backupPatch=this.isModified()?this.ui.diffPages(l,this.ui.pages):null;f={};var k={},g=this.ui.patchPages(l,d[0]),t=this.ui.getHashValueForPages(g,f),m=this.ui.getHashValueForPages(q,k);EditorUi.debug("File.mergeFile",
+[this],"file",[b],"patches",d,"backup",this.backupPatch,"checksum",t,"current",m,t==m);if(null!=t&&t!=m){var p=this.compressReportData(this.getAnonymizedXmlForPages(q)),v=this.compressReportData(this.getAnonymizedXmlForPages(g)),u=this.ui.hashValue(b.getCurrentEtag()),x=this.ui.hashValue(this.getCurrentEtag());this.checksumError(e,d,"Shadow Details: "+JSON.stringify(f)+"\nChecksum: "+t+"\nCurrent: "+m+"\nCurrent Details: "+JSON.stringify(k)+"\nFrom: "+u+"\nTo: "+x+"\n\nFile Data:\n"+p+"\nPatched Shadow:\n"+
v,null,"mergeFile");return}if(null!=this.sync){var y=this.sync.patchRealtime(d,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null);null==y||mxUtils.isEmptyObject(y)||d.push(y)}this.patch(d,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw n=!1,Error(mxResources.get("notADiagramFile"));this.inConflictState=this.invalidChecksum=!1;this.setDescriptor(b.getDescriptor());this.descriptorChanged();this.backupPatch=null;null!=c&&c()}catch(D){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();
null!=e&&e(D);try{if(n)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,D);else{var G=this.getCurrentUser(),H=null!=G?G.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),H,D)}}catch(F){}}};
DrawioFile.prototype.getAnonymizedXmlForPages=function(b){var c=new mxCodec(mxUtils.createXmlDocument()),e=c.document.createElement("mxfile");if(null!=b)for(var f=0;f<b.length;f++){var n=c.encode(new mxGraphModel(b[f].root));"1"!=urlParams.dev&&(n=this.ui.anonymizeNode(n,!0));n.setAttribute("id",b[f].getId());b[f].viewState&&this.ui.editor.graph.saveViewState(b[f].viewState,n,!0);e.appendChild(n)}return mxUtils.getPrettyXml(e)};
DrawioFile.prototype.compressReportData=function(b,c,e){c=null!=c?c:1E4;null!=e&&null!=b&&b.length>e?b=b.substring(0,e)+"[...]":null!=b&&b.length>c&&(b=Graph.compress(b)+"\n");return b};
DrawioFile.prototype.checksumError=function(b,c,e,f,n){this.stats.checksumErrors++;this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=this.sync&&this.sync.updateOnlineState();null!=b&&b();try{if(this.errorReportsEnabled){if(null!=c)for(b=0;b<c.length;b++)this.ui.anonymizePatch(c[b]);var l=mxUtils.bind(this,function(b){var d=this.compressReportData(JSON.stringify(c,null,2));b=null==b?"n/a":this.compressReportData(this.getAnonymizedXmlForPages(this.ui.getPagesForXml(b.data)),
-25E3);this.sendErrorReport("Checksum Error in "+n+" "+this.getHash(),(null!=e?e:"")+"\n\nPatches:\n"+d+(null!=b?"\n\nRemote:\n"+b:""),null,7E4)});null==f?l(null):this.getLatestVersion(mxUtils.bind(this,function(b){null!=b&&b.getCurrentEtag()==f?l(b):l(null)}),function(){})}else{var t=this.getCurrentUser(),d=null!=t?t.id:"unknown";EditorUi.logError("Checksum Error in "+n+" "+this.getId(),null,this.getMode()+"."+this.getId(),"user_"+d+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync")+"-bytes_"+
+25E3);this.sendErrorReport("Checksum Error in "+n+" "+this.getHash(),(null!=e?e:"")+"\n\nPatches:\n"+d+(null!=b?"\n\nRemote:\n"+b:""),null,7E4)});null==f?l(null):this.getLatestVersion(mxUtils.bind(this,function(b){null!=b&&b.getCurrentEtag()==f?l(b):l(null)}),function(){})}else{var q=this.getCurrentUser(),d=null!=q?q.id:"unknown";EditorUi.logError("Checksum Error in "+n+" "+this.getId(),null,this.getMode()+"."+this.getId(),"user_"+d+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync")+"-bytes_"+
JSON.stringify(c).length+"-patches_"+c.length);try{EditorUi.logEvent({category:"CHECKSUM-ERROR-SYNC-FILE-"+this.getHash(),action:n,label:"user_"+d+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync")+"-bytes_"+JSON.stringify(c).length+"-patches_"+c.length})}catch(k){}}}catch(k){}};
-DrawioFile.prototype.sendErrorReport=function(b,c,e,f){try{var n=this.compressReportData(this.getAnonymizedXmlForPages(this.getShadowPages()),25E3),l=this.compressReportData(this.getAnonymizedXmlForPages(this.ui.pages),25E3),t=this.getCurrentUser(),d=null!=t?this.ui.hashValue(t.id):"unknown",k=null!=this.sync?"-client_"+this.sync.clientId:"-nosync",g=this.getTitle(),q=g.lastIndexOf("."),t="xml";0<q&&(t=g.substring(q));var m=null!=e?e.stack:Error().stack;EditorUi.sendReport(b+" "+(new Date).toISOString()+
-":\n\nAppVersion="+navigator.appVersion+"\nFile="+this.ui.hashValue(this.getId())+" ("+this.getMode()+")"+(this.isModified()?" modified":"")+"\nSize/Type="+this.getSize()+" ("+t+")\nUser="+d+k+"\nPrefix="+this.ui.editor.graph.model.prefix+"\nSync="+DrawioFile.SYNC+(null!=this.sync?(this.sync.enabled?" enabled":"")+(this.sync.isConnected()?" connected":""):"")+"\nPlugins="+(null!=mxSettings.settings?mxSettings.getPlugins():"null")+"\n\nStats:\n"+JSON.stringify(this.stats,null,2)+(null!=c?"\n\n"+c:
+DrawioFile.prototype.sendErrorReport=function(b,c,e,f){try{var n=this.compressReportData(this.getAnonymizedXmlForPages(this.getShadowPages()),25E3),l=this.compressReportData(this.getAnonymizedXmlForPages(this.ui.pages),25E3),q=this.getCurrentUser(),d=null!=q?this.ui.hashValue(q.id):"unknown",k=null!=this.sync?"-client_"+this.sync.clientId:"-nosync",g=this.getTitle(),t=g.lastIndexOf("."),q="xml";0<t&&(q=g.substring(t));var m=null!=e?e.stack:Error().stack;EditorUi.sendReport(b+" "+(new Date).toISOString()+
+":\n\nAppVersion="+navigator.appVersion+"\nFile="+this.ui.hashValue(this.getId())+" ("+this.getMode()+")"+(this.isModified()?" modified":"")+"\nSize/Type="+this.getSize()+" ("+q+")\nUser="+d+k+"\nPrefix="+this.ui.editor.graph.model.prefix+"\nSync="+DrawioFile.SYNC+(null!=this.sync?(this.sync.enabled?" enabled":"")+(this.sync.isConnected()?" connected":""):"")+"\nPlugins="+(null!=mxSettings.settings?mxSettings.getPlugins():"null")+"\n\nStats:\n"+JSON.stringify(this.stats,null,2)+(null!=c?"\n\n"+c:
"")+(null!=e?"\n\nError: "+e.message:"")+"\n\nStack:\n"+m+"\n\nShadow:\n"+n+"\n\nData:\n"+l,f)}catch(p){}};
DrawioFile.prototype.reloadFile=function(b,c){try{this.ui.spinner.stop();var e=mxUtils.bind(this,function(){this.stats.fileReloaded++;var c=this.ui.editor.graph.getViewState(),e=this.ui.editor.graph.getSelectionCells(),l=this.ui.currentPage;this.ui.loadFile(this.getHash(),!0,null,mxUtils.bind(this,function(){if(null==this.ui.fileLoadedError){this.ui.restoreViewState(l,c,e);null!=this.backupPatch&&this.patch([this.backupPatch]);var f=this.ui.getCurrentFile();null!=f&&(f.stats=this.stats);null!=b&&
b()}}),!0)});this.isModified()&&null==this.backupPatch?this.ui.confirm(mxResources.get("allChangesLost"),mxUtils.bind(this,function(){this.handleFileSuccess("manual"==DrawioFile.SYNC)}),e,mxResources.get("cancel"),mxResources.get("discardChanges")):e()}catch(f){null!=c&&c(f)}};DrawioFile.prototype.copyFile=function(b,c){this.ui.editor.editAsNew(this.ui.getFileData(!0),this.ui.getCopyFilename(this))};
DrawioFile.prototype.ignorePatches=function(b){var c=!0;if(null!=b)for(var e=0;e<b.length&&c;e++)c=c&&mxUtils.isEmptyObject(b[e]);return c};
-DrawioFile.prototype.patch=function(b,c,e){if(null!=b){var f=this.ui.editor.undoManager,n=f.history.slice(),l=f.indexOfNextAdd,t=this.ui.editor.graph;t.container.style.visibility="hidden";var d=this.changeListenerEnabled;this.changeListenerEnabled=e;var k=t.foldingEnabled,g=t.mathEnabled,q=t.cellRenderer.redraw;t.cellRenderer.redraw=function(b){b.view.graph.isEditing(b.cell)&&(b.view.graph.scrollCellToVisible(b.cell),b.view.graph.cellEditor.resize());q.apply(this,arguments)};t.model.beginUpdate();
-try{this.ui.pages=this.ui.applyPatches(this.ui.pages,b,!0,c,this.isModified()),0==this.ui.pages.length&&this.ui.pages.push(this.ui.createPage()),0>mxUtils.indexOf(this.ui.pages,this.ui.currentPage)&&this.ui.selectPage(this.ui.pages[0],!0)}finally{t.container.style.visibility="";t.model.endUpdate();t.cellRenderer.redraw=q;this.changeListenerEnabled=d;e||(f.history=n,f.indexOfNextAdd=l,f.fireEvent(new mxEventObject(mxEvent.CLEAR)));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)g!=t.mathEnabled?
-(this.ui.editor.updateGraphComponents(),t.refresh()):(k!=t.foldingEnabled?t.view.revalidate():t.view.validate(),t.sizeDidChange());null!=this.sync&&this.isRealtime()&&(this.sync.snapshot=this.ui.clonePages(this.ui.pages));this.ui.updateTabContainer();this.ui.editor.fireEvent(new mxEventObject("pagesPatched","patches",b))}EditorUi.debug("DrawioFile.patch",[this],"patches",b,"resolver",c,"undoable",e)}return b};
+DrawioFile.prototype.patch=function(b,c,e){if(null!=b){var f=this.ui.editor.undoManager,n=f.history.slice(),l=f.indexOfNextAdd,q=this.ui.editor.graph;q.container.style.visibility="hidden";var d=this.changeListenerEnabled;this.changeListenerEnabled=e;var k=q.foldingEnabled,g=q.mathEnabled,t=q.cellRenderer.redraw;q.cellRenderer.redraw=function(b){b.view.graph.isEditing(b.cell)&&(b.view.graph.scrollCellToVisible(b.cell),b.view.graph.cellEditor.resize());t.apply(this,arguments)};q.model.beginUpdate();
+try{this.ui.pages=this.ui.applyPatches(this.ui.pages,b,!0,c,this.isModified()),0==this.ui.pages.length&&this.ui.pages.push(this.ui.createPage()),0>mxUtils.indexOf(this.ui.pages,this.ui.currentPage)&&this.ui.selectPage(this.ui.pages[0],!0)}finally{q.container.style.visibility="";q.model.endUpdate();q.cellRenderer.redraw=t;this.changeListenerEnabled=d;e||(f.history=n,f.indexOfNextAdd=l,f.fireEvent(new mxEventObject(mxEvent.CLEAR)));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)g!=q.mathEnabled?
+(this.ui.editor.updateGraphComponents(),q.refresh()):(k!=q.foldingEnabled?q.view.revalidate():q.view.validate(),q.sizeDidChange());null!=this.sync&&this.isRealtime()&&(this.sync.snapshot=this.ui.clonePages(this.ui.pages));this.ui.updateTabContainer();this.ui.editor.fireEvent(new mxEventObject("pagesPatched","patches",b))}EditorUi.debug("DrawioFile.patch",[this],"patches",b,"resolver",c,"undoable",e)}return b};
DrawioFile.prototype.save=function(b,c,e,f,n,l){try{if(EditorUi.debug("DrawioFile.save",[this],"revision",b,"unloading",f,"overwrite",n,"manual",l,"saving",this.savingFile,"editable",this.isEditable(),"invalidChecksum",this.invalidChecksum),this.isEditable())if(!n&&this.invalidChecksum)if(null!=e)e({message:mxResources.get("checksum")});else throw Error(mxResources.get("checksum"));else this.updateFileData(),this.clearAutosave(),null!=c&&c();else if(null!=e)e({message:mxResources.get("readOnly")});
-else throw Error(mxResources.get("readOnly"));}catch(t){if(null!=e)e(t);else throw t;}};DrawioFile.prototype.createData=function(){var b=this.ui.pages;if(this.isRealtime()&&(this.ui.pages=this.ownPages,null!=this.ui.currentPage)){var c=this.ui.getPageById(this.ui.currentPage.getId(),this.ownPages);null!=c&&(c.viewState=this.ui.editor.graph.getViewState(),c.needsUpdate=!0)}c=this.ui.getFileData(null,null,null,null,null,null,null,null,this,!this.isCompressed());this.ui.pages=b;return c};
+else throw Error(mxResources.get("readOnly"));}catch(q){if(null!=e)e(q);else throw q;}};DrawioFile.prototype.createData=function(){var b=this.ui.pages;if(this.isRealtime()&&(this.ui.pages=this.ownPages,null!=this.ui.currentPage)){var c=this.ui.getPageById(this.ui.currentPage.getId(),this.ownPages);null!=c&&(c.viewState=this.ui.editor.graph.getViewState(),c.needsUpdate=!0)}c=this.ui.getFileData(null,null,null,null,null,null,null,null,this,!this.isCompressed());this.ui.pages=b;return c};
DrawioFile.prototype.updateFileData=function(){this.setData(this.createData());null!=this.sync&&this.sync.fileDataUpdated()};DrawioFile.prototype.isCompressedStorage=function(){return!0};DrawioFile.prototype.isCompressed=function(){var b=null!=this.ui.fileNode?this.ui.fileNode.getAttribute("compressed"):null;return null!=b?"false"!=b:this.isCompressedStorage()&&Editor.compressXml};DrawioFile.prototype.saveAs=function(b,c,e){};DrawioFile.prototype.saveFile=function(b,c,e,f){};
DrawioFile.prototype.getPublicUrl=function(b){b(null)};DrawioFile.prototype.isRestricted=function(){return!1};DrawioFile.prototype.isModified=function(){return this.modified};DrawioFile.prototype.getShadowModified=function(){return this.shadowModified};DrawioFile.prototype.setShadowModified=function(b){this.shadowModified=b};DrawioFile.prototype.setModified=function(b){this.shadowModified=this.modified=b};DrawioFile.prototype.isAutosaveOptional=function(){return!1};
DrawioFile.prototype.isAutosave=function(){return!this.inConflictState&&this.ui.editor.autosave};DrawioFile.prototype.isRenamable=function(){return!1};DrawioFile.prototype.rename=function(b,c,e){};DrawioFile.prototype.isMovable=function(){return!1};DrawioFile.prototype.isTrashed=function(){return!1};DrawioFile.prototype.move=function(b,c,e){};DrawioFile.prototype.share=function(){this.ui.alert(mxResources.get("sharingAvailable"),null,380)};DrawioFile.prototype.getHash=function(){return""};
@@ -3134,7 +3134,7 @@ DrawioFile.prototype.fileChanged=function(b){b=null!=b?b:!0;this.lastChanged=new
null==this.autosaveThread?(this.handleFileSuccess(!0),this.ageStart=null):this.isModified()&&(this.ui.scheduleSanityCheck(),this.ageStart=this.lastChanged)}),mxUtils.bind(this,function(b){this.handleFileError(b)}))):(this.ageStart=null,this.isAutosaveOptional()&&this.ui.editor.autosave||this.inConflictState||this.addUnsavedStatus());null!=this.sync&&b&&this.sync.localFileChanged()};
DrawioFile.prototype.createSecret=function(b){var c=Editor.guid(32);null==this.sync||this.isOptimisticSync()?b(c):this.sync.createToken(c,mxUtils.bind(this,function(e){b(c,e)}),mxUtils.bind(this,function(){b(c)}))};DrawioFile.prototype.fileSaving=function(){null!=this.sync&&this.sync.fileSaving()};
DrawioFile.prototype.fileSaved=function(b,c,e,f,n){this.lastSaved=new Date;this.ageStart=null;try{this.stats.saved++;this.invalidChecksum=this.inConflictState=!1;var l=this.ui.getPagesForXml(b);null==this.sync||this.isOptimisticSync()?(this.setShadowPages(l),null!=this.sync&&(this.sync.lastModified=this.getLastModifiedDate(),this.sync.resetUpdateStatusThread(),this.isRealtime()&&this.sync.scheduleCleanup()),null!=e&&e()):this.sync.fileSaved(l,c,e,f,n)}catch(k){this.invalidChecksum=this.inConflictState=
-!0;this.descriptorChanged();null!=f&&f(k);try{if(this.errorReportsEnabled)this.sendErrorReport("Error in fileSaved",null,k);else{var t=this.getCurrentUser(),d=null!=t?t.id:"unknown";EditorUi.logError("Error in fileSaved",null,this.getMode()+"."+this.getId(),d,k)}}catch(g){}}EditorUi.debug("DrawioFile.fileSaved",[this],"savedData",[b],"inConflictState",this.inConflictState,"invalidChecksum",this.invalidChecksum)};
+!0;this.descriptorChanged();null!=f&&f(k);try{if(this.errorReportsEnabled)this.sendErrorReport("Error in fileSaved",null,k);else{var q=this.getCurrentUser(),d=null!=q?q.id:"unknown";EditorUi.logError("Error in fileSaved",null,this.getMode()+"."+this.getId(),d,k)}}catch(g){}}EditorUi.debug("DrawioFile.fileSaved",[this],"savedData",[b],"inConflictState",this.inConflictState,"invalidChecksum",this.invalidChecksum)};
DrawioFile.prototype.autosave=function(b,c,e,f){null==this.lastAutosave&&(this.lastAutosave=Date.now());b=Date.now()-this.lastAutosave<c?b:0;this.clearAutosave();var n=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=null;this.autosaveThread==n&&(this.autosaveThread=null);EditorUi.debug("DrawioFile.autosave",[this],"thread",n,"saving",this.savingFile,"modified",this.isModified(),"now",this.isAutosaveNow());if(this.isModified()&&this.isAutosaveNow()){var b=this.isAutosaveRevision();
b&&(this.lastAutosaveRevision=(new Date).getTime());this.save(b,mxUtils.bind(this,function(b){this.autosaveCompleted();null!=e&&e(b)}),mxUtils.bind(this,function(b){null!=f&&f(b)}))}else this.isModified()||this.ui.editor.setStatus(""),null!=e&&e(null)}),b);EditorUi.debug("DrawioFile.autosave",[this],"thread",n,"delay",b,"saving",this.savingFile);this.autosaveThread=n};DrawioFile.prototype.isAutosaveNow=function(){return!0};DrawioFile.prototype.autosaveCompleted=function(){};
DrawioFile.prototype.clearAutosave=function(){null!=this.autosaveThread&&(window.clearTimeout(this.autosaveThread),this.autosaveThread=null)};DrawioFile.prototype.isAutosaveRevision=function(){var b=(new Date).getTime();return null==this.lastAutosaveRevision||b-this.lastAutosaveRevision>this.maxAutosaveRevisionDelay};DrawioFile.prototype.descriptorChanged=function(){this.fireEvent(new mxEventObject("descriptorChanged"))};DrawioFile.prototype.contentChanged=function(){this.fireEvent(new mxEventObject("contentChanged"))};
@@ -3143,10 +3143,10 @@ DrawioFile.prototype.removeListeners=function(){null!=this.changeListener&&(this
DrawioFile.prototype.commentsRefreshNeeded=function(){return!0};DrawioFile.prototype.commentsSaveNeeded=function(){return!1};DrawioFile.prototype.getComments=function(b,c){b([])};DrawioFile.prototype.addComment=function(b,c,e){c(Date.now())};DrawioFile.prototype.canReplyToReplies=function(){return!0};DrawioFile.prototype.canComment=function(){return!0};DrawioFile.prototype.newComment=function(b,c){return new DrawioComment(this,null,b,Date.now(),Date.now(),!1,c)};LocalFile=function(b,c,e,f,n,l){DrawioFile.call(this,b,c);this.title=e;this.mode=f?null:App.MODE_DEVICE;this.fileHandle=n;this.desc=l};mxUtils.extend(LocalFile,DrawioFile);LocalFile.prototype.isAutosave=function(){return null!=this.fileHandle&&!this.invalidFileHandle&&DrawioFile.prototype.isAutosave.apply(this,arguments)};LocalFile.prototype.isAutosaveOptional=function(){return null!=this.fileHandle};LocalFile.prototype.getMode=function(){return this.mode};LocalFile.prototype.getTitle=function(){return this.title};
LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(b,c,e){this.saveAs(this.title,c,e)};LocalFile.prototype.saveAs=function(b,c,e){this.saveFile(b,!1,c,e)};LocalFile.prototype.saveAs=function(b,c,e){this.saveFile(b,!1,c,e)};LocalFile.prototype.getDescriptor=function(){return this.desc};LocalFile.prototype.setDescriptor=function(b){this.desc=b};
LocalFile.prototype.getLatestVersion=function(b,c){null==this.fileHandle?b(null):this.ui.loadFileSystemEntry(this.fileHandle,b,c)};
-LocalFile.prototype.saveFile=function(b,c,e,f,n){b!=this.title&&(this.desc=this.fileHandle=null);this.title=b;n||this.updateFileData();var l=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle());this.setShadowModified(!1);var t=this.getData(),d=mxUtils.bind(this,function(){this.setModified(this.getShadowModified());this.contentChanged();null!=e&&e()}),k=mxUtils.bind(this,function(c){if(null!=this.fileHandle){if(!this.savingFile){this.savingFileTime=new Date;this.savingFile=!0;var g=mxUtils.bind(this,
+LocalFile.prototype.saveFile=function(b,c,e,f,n){b!=this.title&&(this.desc=this.fileHandle=null);this.title=b;n||this.updateFileData();var l=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle());this.setShadowModified(!1);var q=this.getData(),d=mxUtils.bind(this,function(){this.setModified(this.getShadowModified());this.contentChanged();null!=e&&e()}),k=mxUtils.bind(this,function(c){if(null!=this.fileHandle){if(!this.savingFile){this.savingFileTime=new Date;this.savingFile=!0;var g=mxUtils.bind(this,
function(b){this.savingFile=!1;null!=f&&f({error:b})});this.saveDraft();this.fileHandle.createWritable().then(mxUtils.bind(this,function(b){this.fileHandle.getFile().then(mxUtils.bind(this,function(e){this.invalidFileHandle=null;this.desc.lastModified==e.lastModified?b.write(l?this.ui.base64ToBlob(c,"image/png"):c).then(mxUtils.bind(this,function(){b.close().then(mxUtils.bind(this,function(){this.fileHandle.getFile().then(mxUtils.bind(this,function(b){try{var c=this.desc;this.savingFile=!1;this.desc=
-b;this.fileSaved(t,c,d,g);this.removeDraft()}catch(y){g(y)}}),g)}),g)}),g):(this.inConflictState=!0,g())}),mxUtils.bind(this,function(b){this.invalidFileHandle=!0;g(b)}))}),g)}}else{if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(c,b,l?"image/png":"text/xml",l);else if(c.length<MAX_REQUEST_SIZE){var e=b.lastIndexOf("."),e=0<e?b.substring(e+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+e+"&xml="+encodeURIComponent(c)+"&filename="+encodeURIComponent(b)+(l?"&binary=1":""))).simulate(document,
-"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}));d()}});l?(c=this.ui.getPngFileProperties(this.ui.fileNode),this.ui.getEmbeddedPng(mxUtils.bind(this,function(b){k(b)}),f,this.ui.getCurrentFile()!=this?t:null,c.scale,c.border)):k(t)};LocalFile.prototype.rename=function(b,c,e){this.title=b;this.descriptorChanged();null!=c&&c()};
+b;this.fileSaved(q,c,d,g);this.removeDraft()}catch(y){g(y)}}),g)}),g)}),g):(this.inConflictState=!0,g())}),mxUtils.bind(this,function(b){this.invalidFileHandle=!0;g(b)}))}),g)}}else{if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(c,b,l?"image/png":"text/xml",l);else if(c.length<MAX_REQUEST_SIZE){var e=b.lastIndexOf("."),e=0<e?b.substring(e+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+e+"&xml="+encodeURIComponent(c)+"&filename="+encodeURIComponent(b)+(l?"&binary=1":""))).simulate(document,
+"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}));d()}});l?(c=this.ui.getPngFileProperties(this.ui.fileNode),this.ui.getEmbeddedPng(mxUtils.bind(this,function(b){k(b)}),f,this.ui.getCurrentFile()!=this?q:null,c.scale,c.border)):k(q)};LocalFile.prototype.rename=function(b,c,e){this.title=b;this.descriptorChanged();null!=c&&c()};
LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.installListeners()};(function(){"undefined"!==typeof html4&&(html4.ATTRIBS["span::data-lucid-content"]=0,html4.ATTRIBS["span::data-lucid-type"]=0,html4.ATTRIBS["font::data-font-src"]=0);Editor.prototype.appName="diagrams.net";Editor.prototype.diagramFileTypes=[{description:"diagramXmlDesc",extension:"drawio",mimeType:"text/xml"},{description:"diagramPngDesc",extension:"png",mimeType:"image/png"},{description:"diagramSvgDesc",extension:"svg",mimeType:"image/svg"},{description:"diagramHtmlDesc",extension:"html",mimeType:"text/html"},
{description:"diagramXmlDesc",extension:"xml",mimeType:"text/xml"}];Editor.prototype.libraryFileTypes=[{description:"Library (.drawiolib, .xml)",extensions:["drawiolib","xml"]}];Editor.prototype.fileExtensions=[{ext:"html",title:"filetypeHtml"},{ext:"png",title:"filetypePng"},{ext:"svg",title:"filetypeSvg"}];Editor.styles=[{},{commonStyle:{fontColor:"#5C5C5C",strokeColor:"#006658",fillColor:"#21C0A5"}},{commonStyle:{fontColor:"#095C86",strokeColor:"#AF45ED",fillColor:"#F694C1"},edgeStyle:{strokeColor:"#60E696"}},
{commonStyle:{fontColor:"#46495D",strokeColor:"#788AA3",fillColor:"#B2C9AB"}},{commonStyle:{fontColor:"#5AA9E6",strokeColor:"#FF6392",fillColor:"#FFE45E"}},{commonStyle:{fontColor:"#1D3557",strokeColor:"#457B9D",fillColor:"#A8DADC"},graph:{background:"#F1FAEE"}},{commonStyle:{fontColor:"#393C56",strokeColor:"#E07A5F",fillColor:"#F2CC8F"},graph:{background:"#F4F1DE",gridColor:"#D4D0C0"}},{commonStyle:{fontColor:"#143642",strokeColor:"#0F8B8D",fillColor:"#FAE5C7"},edgeStyle:{strokeColor:"#A8201A"},
@@ -3196,8 +3196,8 @@ dispName:"Expand",type:"bool",defVal:!0},{name:"part",dispName:"Part",type:"bool
dispName:"Movable Label",type:"bool",defVal:!1,isVisible:function(b,d){var c=0<b.vertices.length?d.editorUi.editor.graph.getCellGeometry(b.vertices[0]):null;return null!=c&&!c.relative}},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},
{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0},{name:"treeFolding",dispName:"Tree Folding",type:"bool",defVal:!1},{name:"treeMoving",dispName:"Tree Moving",type:"bool",defVal:!1},{name:"pointerEvents",dispName:"Pointer Events",type:"bool",defVal:!0,isVisible:function(b,d){var c=mxUtils.getValue(b.style,mxConstants.STYLE_FILLCOLOR,null);return d.editorUi.editor.graph.isSwimlane(b.vertices[0])||null==c||c==mxConstants.NONE||0==mxUtils.getValue(b.style,mxConstants.STYLE_FILL_OPACITY,100)||
0==mxUtils.getValue(b.style,mxConstants.STYLE_OPACITY,100)||null!=b.style.pointerEvents}},{name:"moveCells",dispName:"Move Cells on Fold",type:"bool",defVal:!1,isVisible:function(b,d){return 0<b.vertices.length&&d.editorUi.editor.graph.isContainer(b.vertices[0])}}].concat(Editor.commonProperties);Editor.defaultCsvValue='##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\n#\n## Style to be used for objects not in the CSV. If this is - then such objects are ignored,\n## else they are created using this as their style, eg. whiteSpace=wrap;html=1;\n#\n# unknownStyle: -\n#\n## Optional column name that contains a reference to a named style in styles.\n## Default is the current style for nodes.\n#\n# stylename: -\n#\n## JSON for named styles of the form {"name": "style", "name": "style"} where style is a cell style with\n## placeholders that are replaced once.\n#\n# styles: -\n#\n## JSON for variables in styles of the form {"name": "value", "name": "value"} where name is a string\n## that will replace a placeholder in a style.\n#\n# vars: -\n#\n## Optional column name that contains a reference to a named label in labels.\n## Default is the current label.\n#\n# labelname: -\n#\n## JSON for named labels of the form {"name": "label", "name": "label"} where label is a cell label with\n## placeholders.\n#\n# labels: -\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## If placeholders are used in the style, they are replaced with data from the source.\n## An optional placeholders can be set to target to use data from the target instead.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## In addition to those, an optional source and targetlabel can be used to specify a label\n## that contains placeholders referencing the respective columns in the source or target row.\n## The label is created in the form fromlabel + sourcelabel + label + tolabel + targetlabel.\n## Additional labels can be added by using an optional labels array with entries of the\n## form {"label": string, "x": number, "y": number, "dx": number, "dy": number} where\n## x is from -1 to 1 along the edge, y is orthogonal, and dx/dy are offsets in pixels.\n## An optional placeholders with the string value "source" or "target" can be specified\n## to replace placeholders in the additional label with data from the source or target.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke,refs,manager\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\n#\n## Spacing between parallel edges. Default is 40. Use 0 to disable.\n#\n# edgespacing: 40\n#\n## Name or JSON of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle or a JSON string as used in Layout, Apply.\n## Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nTessa Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Tessa Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nAlison Donovan,System Admin,rdo,Office 3,Tessa Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nEvan Valet,HR Director,tva,Office 4,Tessa Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\n';
-Editor.createRoughCanvas=function(b){var d=rough.canvas({getContext:function(){return b}});d.draw=function(d){var c=d.sets||[];d=d.options||this.getDefaultOptions();for(var g=0;g<c.length;g++){var e=c[g];switch(e.type){case "path":null!=d.stroke&&this._drawToContext(b,e,d);break;case "fillPath":this._drawToContext(b,e,d);break;case "fillSketch":this.fillSketch(b,e,d)}}};d.fillSketch=function(d,c,g){var e=b.state.strokeColor,k=b.state.strokeWidth,f=b.state.strokeAlpha,m=b.state.dashed,l=g.fillWeight;
-0>l&&(l=g.strokeWidth/2);b.setStrokeAlpha(b.state.fillAlpha);b.setStrokeColor(g.fill||"");b.setStrokeWidth(l);b.setDashed(!1);this._drawToContext(d,c,g);b.setDashed(m);b.setStrokeWidth(k);b.setStrokeColor(e);b.setStrokeAlpha(f)};d._drawToContext=function(b,d,c){b.begin();for(var g=0;g<d.ops.length;g++){var e=d.ops[g],k=e.data;switch(e.op){case "move":b.moveTo(k[0],k[1]);break;case "bcurveTo":b.curveTo(k[0],k[1],k[2],k[3],k[4],k[5]);break;case "lineTo":b.lineTo(k[0],k[1])}}b.end();"fillPath"===d.type&&
+Editor.createRoughCanvas=function(b){var d=rough.canvas({getContext:function(){return b}});d.draw=function(d){var c=d.sets||[];d=d.options||this.getDefaultOptions();for(var g=0;g<c.length;g++){var e=c[g];switch(e.type){case "path":null!=d.stroke&&this._drawToContext(b,e,d);break;case "fillPath":this._drawToContext(b,e,d);break;case "fillSketch":this.fillSketch(b,e,d)}}};d.fillSketch=function(d,c,g){var e=b.state.strokeColor,k=b.state.strokeWidth,f=b.state.strokeAlpha,l=b.state.dashed,m=g.fillWeight;
+0>m&&(m=g.strokeWidth/2);b.setStrokeAlpha(b.state.fillAlpha);b.setStrokeColor(g.fill||"");b.setStrokeWidth(m);b.setDashed(!1);this._drawToContext(d,c,g);b.setDashed(l);b.setStrokeWidth(k);b.setStrokeColor(e);b.setStrokeAlpha(f)};d._drawToContext=function(b,d,c){b.begin();for(var g=0;g<d.ops.length;g++){var e=d.ops[g],k=e.data;switch(e.op){case "move":b.moveTo(k[0],k[1]);break;case "bcurveTo":b.curveTo(k[0],k[1],k[2],k[3],k[4],k[5]);break;case "lineTo":b.lineTo(k[0],k[1])}}b.end();"fillPath"===d.type&&
c.filled?b.fill():b.stroke()};return d};(function(){function b(d,c,g){this.canvas=d;this.rc=c;this.shape=g;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.originalBegin=this.canvas.begin;this.canvas.begin=mxUtils.bind(this,b.prototype.begin);this.originalEnd=this.canvas.end;this.canvas.end=mxUtils.bind(this,b.prototype.end);this.originalRect=this.canvas.rect;this.canvas.rect=mxUtils.bind(this,b.prototype.rect);this.originalRoundrect=this.canvas.roundrect;this.canvas.roundrect=
mxUtils.bind(this,b.prototype.roundrect);this.originalEllipse=this.canvas.ellipse;this.canvas.ellipse=mxUtils.bind(this,b.prototype.ellipse);this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,b.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,b.prototype.moveTo);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,b.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,
b.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,b.prototype.arcTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,b.prototype.close);this.originalFill=this.canvas.fill;this.canvas.fill=mxUtils.bind(this,b.prototype.fill);this.originalStroke=this.canvas.stroke;this.canvas.stroke=mxUtils.bind(this,b.prototype.stroke);this.originalFillAndStroke=this.canvas.fillAndStroke;this.canvas.fillAndStroke=mxUtils.bind(this,b.prototype.fillAndStroke);
@@ -3207,20 +3207,20 @@ g.roughness);c.simplification=mxUtils.getValue(this.shape.style,"simplification"
k);c.zigzagOffset=mxUtils.getValue(this.shape.style,"zigzagOffset",k);k=mxUtils.getValue(this.shape.style,"fillWeight",-1);c.fillWeight="auto"==k?-1:k;k=mxUtils.getValue(this.shape.style,"fillStyle","auto");"auto"==k&&(k=mxUtils.hex2rgb(null!=this.shape.state?this.shape.state.view.graph.shapeBackgroundColor:Editor.isDarkMode()?Editor.darkColor:"#ffffff"),k=null!=c.fill&&(null!=e||null!=k&&c.fill==k)?"solid":g.fillStyle);c.fillStyle=k;return c};b.prototype.begin=function(){this.passThrough?this.originalBegin.apply(this.canvas,
arguments):this.path=[]};b.prototype.end=function(){this.passThrough&&this.originalEnd.apply(this.canvas,arguments)};b.prototype.addOp=function(){if(null!=this.path&&(this.path.push(arguments[0]),2<arguments.length))for(var b=2;b<arguments.length;b+=2)this.lastX=arguments[b-1],this.lastY=arguments[b],this.path.push(this.canvas.format(this.lastX)),this.path.push(this.canvas.format(this.lastY))};b.prototype.lineTo=function(b,d){this.passThrough?this.originalLineTo.apply(this.canvas,arguments):(this.addOp(this.lineOp,
b,d),this.lastX=b,this.lastY=d)};b.prototype.moveTo=function(b,d){this.passThrough?this.originalMoveTo.apply(this.canvas,arguments):(this.addOp(this.moveOp,b,d),this.lastX=b,this.lastY=d,this.firstX=b,this.firstY=d)};b.prototype.close=function(){this.passThrough?this.originalClose.apply(this.canvas,arguments):this.addOp(this.closeOp)};b.prototype.quadTo=function(b,d,c,g){this.passThrough?this.originalQuadTo.apply(this.canvas,arguments):(this.addOp(this.quadOp,b,d,c,g),this.lastX=c,this.lastY=g)};
-b.prototype.curveTo=function(b,d,c,g,e,k){this.passThrough?this.originalCurveTo.apply(this.canvas,arguments):(this.addOp(this.curveOp,b,d,c,g,e,k),this.lastX=e,this.lastY=k)};b.prototype.arcTo=function(b,d,c,g,e,k,f){if(this.passThrough)this.originalArcTo.apply(this.canvas,arguments);else{var m=mxUtils.arcToCurves(this.lastX,this.lastY,b,d,c,g,e,k,f);if(null!=m)for(var l=0;l<m.length;l+=6)this.curveTo(m[l],m[l+1],m[l+2],m[l+3],m[l+4],m[l+5]);this.lastX=k;this.lastY=f}};b.prototype.rect=function(b,
+b.prototype.curveTo=function(b,d,c,g,e,k){this.passThrough?this.originalCurveTo.apply(this.canvas,arguments):(this.addOp(this.curveOp,b,d,c,g,e,k),this.lastX=e,this.lastY=k)};b.prototype.arcTo=function(b,d,c,g,e,k,f){if(this.passThrough)this.originalArcTo.apply(this.canvas,arguments);else{var l=mxUtils.arcToCurves(this.lastX,this.lastY,b,d,c,g,e,k,f);if(null!=l)for(var m=0;m<l.length;m+=6)this.curveTo(l[m],l[m+1],l[m+2],l[m+3],l[m+4],l[m+5]);this.lastX=k;this.lastY=f}};b.prototype.rect=function(b,
d,c,g){this.passThrough?this.originalRect.apply(this.canvas,arguments):(this.path=[],this.nextShape=this.rc.generator.rectangle(b,d,c,g,this.getStyle(!0,!0)))};b.prototype.ellipse=function(b,d,c,g){this.passThrough?this.originalEllipse.apply(this.canvas,arguments):(this.path=[],this.nextShape=this.rc.generator.ellipse(b+c/2,d+g/2,c,g,this.getStyle(!0,!0)))};b.prototype.roundrect=function(b,d,c,g,e,k){this.passThrough?this.originalRoundrect.apply(this.canvas,arguments):(this.begin(),this.moveTo(b+
e,d),this.lineTo(b+c-e,d),this.quadTo(b+c,d,b+c,d+k),this.lineTo(b+c,d+g-k),this.quadTo(b+c,d+g,b+c-e,d+g),this.lineTo(b+e,d+g),this.quadTo(b,d+g,b,d+g-k),this.lineTo(b,d+k),this.quadTo(b,d,b+e,d))};b.prototype.drawPath=function(b){if(0<this.path.length){this.passThrough=!0;try{this.rc.path(this.path.join(" "),b)}catch(oa){}this.passThrough=!1}else if(null!=this.nextShape){for(var d in b)this.nextShape.options[d]=b[d];b.stroke!=mxConstants.NONE&&null!=b.stroke||delete this.nextShape.options.stroke;
b.filled||delete this.nextShape.options.fill;this.passThrough=!0;this.rc.draw(this.nextShape);this.passThrough=!1}};b.prototype.stroke=function(){this.passThrough?this.originalStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,!1))};b.prototype.fill=function(){this.passThrough?this.originalFill.apply(this.canvas,arguments):this.drawPath(this.getStyle(!1,!0))};b.prototype.fillAndStroke=function(){this.passThrough?this.originalFillAndStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,
!0))};b.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo;this.canvas.close=this.originalClose;this.canvas.fill=this.originalFill;this.canvas.stroke=this.originalStroke;this.canvas.fillAndStroke=this.originalFillAndStroke;this.canvas.begin=this.originalBegin;this.canvas.end=this.originalEnd;
this.canvas.rect=this.originalRect;this.canvas.ellipse=this.originalEllipse;this.canvas.roundrect=this.originalRoundrect};mxShape.prototype.createRoughCanvas=function(d){return new b(d,Editor.createRoughCanvas(d),this)};var d=mxShape.prototype.createHandJiggle;mxShape.prototype.createHandJiggle=function(b){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"sketch","0")?d.apply(this,arguments):"comic"==mxUtils.getValue(this.style,"sketchStyle","rough")?this.createComicCanvas(b):
this.createRoughCanvas(b)};var c=mxImageShape.prototype.paintVertexShape;mxImageShape.prototype.paintVertexShape=function(b,d,g,e,k){null!=b.handJiggle&&b.handJiggle.passThrough||c.apply(this,arguments)};var g=mxShape.prototype.paint;mxShape.prototype.paint=function(d){var c=d.addTolerance,e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(null!=d.handJiggle&&d.handJiggle.constructor==b&&!this.outline){d.save();var k=this.fill,f=this.stroke;this.stroke=
-this.fill=null;var m=this.configurePointerEvents,l=d.setStrokeColor;d.setStrokeColor=function(){};var p=d.setFillColor;d.setFillColor=function(){};e||null==k||(this.configurePointerEvents=function(){});d.handJiggle.passThrough=!0;g.apply(this,arguments);d.handJiggle.passThrough=!1;d.setFillColor=p;d.setStrokeColor=l;this.configurePointerEvents=m;this.stroke=f;this.fill=k;d.restore();e&&null!=k&&(d.addTolerance=function(){})}g.apply(this,arguments);d.addTolerance=c};var e=mxShape.prototype.paintGlassEffect;
-mxShape.prototype.paintGlassEffect=function(d,c,g,k,f,m){null!=d.handJiggle&&d.handJiggle.constructor==b?(d.handJiggle.passThrough=!0,e.apply(this,arguments),d.handJiggle.passThrough=!1):e.apply(this,arguments)}})();Editor.fastCompress=function(b){return null==b||0==b.length||"undefined"===typeof pako?b:Graph.arrayBufferToString(pako.deflateRaw(b))};Editor.fastDecompress=function(b){return null==b||0==b.length||"undefined"===typeof pako?b:pako.inflateRaw(Graph.stringToArrayBuffer(atob(b)),{to:"string"})};
+this.fill=null;var l=this.configurePointerEvents,m=d.setStrokeColor;d.setStrokeColor=function(){};var p=d.setFillColor;d.setFillColor=function(){};e||null==k||(this.configurePointerEvents=function(){});d.handJiggle.passThrough=!0;g.apply(this,arguments);d.handJiggle.passThrough=!1;d.setFillColor=p;d.setStrokeColor=m;this.configurePointerEvents=l;this.stroke=f;this.fill=k;d.restore();e&&null!=k&&(d.addTolerance=function(){})}g.apply(this,arguments);d.addTolerance=c};var e=mxShape.prototype.paintGlassEffect;
+mxShape.prototype.paintGlassEffect=function(d,c,g,k,f,l){null!=d.handJiggle&&d.handJiggle.constructor==b?(d.handJiggle.passThrough=!0,e.apply(this,arguments),d.handJiggle.passThrough=!1):e.apply(this,arguments)}})();Editor.fastCompress=function(b){return null==b||0==b.length||"undefined"===typeof pako?b:Graph.arrayBufferToString(pako.deflateRaw(b))};Editor.fastDecompress=function(b){return null==b||0==b.length||"undefined"===typeof pako?b:pako.inflateRaw(Graph.stringToArrayBuffer(atob(b)),{to:"string"})};
Editor.extractGraphModel=function(b,d,c){if(null!=b&&"undefined"!==typeof pako){var g=b.ownerDocument.getElementsByTagName("div"),e=[];if(null!=g&&0<g.length)for(var k=0;k<g.length;k++)if("mxgraph"==g[k].getAttribute("class")){e.push(g[k]);break}0<e.length&&(g=e[0].getAttribute("data-mxgraph"),null!=g?(e=JSON.parse(g),null!=e&&null!=e.xml&&(b=mxUtils.parseXml(e.xml),b=b.documentElement)):(e=e[0].getElementsByTagName("div"),0<e.length&&(g=mxUtils.getTextContent(e[0]),g=Graph.decompress(g,null,c),0<
g.length&&(b=mxUtils.parseXml(g),b=b.documentElement))))}if(null!=b&&"svg"==b.nodeName)if(g=b.getAttribute("content"),null!=g&&"<"!=g.charAt(0)&&"%"!=g.charAt(0)&&(g=unescape(window.atob?atob(g):Base64.decode(cont,g))),null!=g&&"%"==g.charAt(0)&&(g=decodeURIComponent(g)),null!=g&&0<g.length)b=mxUtils.parseXml(g).documentElement;else throw{message:mxResources.get("notADiagramFile")};null==b||d||(e=null,"diagram"==b.nodeName?e=b:"mxfile"==b.nodeName&&(g=b.getElementsByTagName("diagram"),0<g.length&&
(e=g[Math.max(0,Math.min(g.length-1,urlParams.page||0))])),null!=e&&(b=Editor.parseDiagramNode(e,c)));null==b||"mxGraphModel"==b.nodeName||d&&"mxfile"==b.nodeName||(b=null);return b};Editor.parseDiagramNode=function(b,d){var c=mxUtils.trim(mxUtils.getTextContent(b)),g=null;0<c.length?(c=Graph.decompress(c,null,d),null!=c&&0<c.length&&(g=mxUtils.parseXml(c).documentElement)):(c=mxUtils.getChildNodes(b),0<c.length&&(g=mxUtils.createXmlDocument(),g.appendChild(g.importNode(c[0],!0)),g=g.documentElement));
return g};Editor.getDiagramNodeXml=function(b){var d=mxUtils.getTextContent(b),c=null;0<d.length?c=Graph.decompress(d):null!=b.firstChild&&(c=mxUtils.getXml(b.firstChild));return c};Editor.extractGraphModelFromPdf=function(b){b=b.substring(b.indexOf(",")+1);b=window.atob&&!mxClient.IS_SF?atob(b):Base64.decode(b,!0);if("%PDF-1.7"==b.substring(0,8)){var d=b.indexOf("EmbeddedFile");if(-1<d){var c=b.indexOf("stream",d)+9;if(0<b.substring(d,c).indexOf("application#2Fvnd.jgraph.mxfile"))return d=b.indexOf("endstream",
-c-1),pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(c,d)),{to:"string"})}return null}for(var c=null,d="",g=0,e=0,k=[],f=null;e<b.length;){var m=b.charCodeAt(e),e=e+1;10!=m&&(d+=String.fromCharCode(m));m=="/Subject (%3Cmxfile".charCodeAt(g)?g++:g=0;if(19==g){var l=b.indexOf("%3C%2Fmxfile%3E)",e)+15,e=e-9;if(l>e){c=b.substring(e,l);break}}10==m&&("endobj"==d?f=null:"obj"==d.substring(d.length-3,d.length)||"xref"==d||"trailer"==d?(f=[],k[d.split(" ")[0]]=f):null!=f&&f.push(d),d="")}null==c&&(c=
+c-1),pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(c,d)),{to:"string"})}return null}for(var c=null,d="",g=0,e=0,k=[],f=null;e<b.length;){var l=b.charCodeAt(e),e=e+1;10!=l&&(d+=String.fromCharCode(l));l=="/Subject (%3Cmxfile".charCodeAt(g)?g++:g=0;if(19==g){var m=b.indexOf("%3C%2Fmxfile%3E)",e)+15,e=e-9;if(m>e){c=b.substring(e,m);break}}10==l&&("endobj"==d?f=null:"obj"==d.substring(d.length-3,d.length)||"xref"==d||"trailer"==d?(f=[],k[d.split(" ")[0]]=f):null!=f&&f.push(d),d="")}null==c&&(c=
Editor.extractGraphModelFromXref(k));null!=c&&(c=decodeURIComponent(c.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return c};Editor.extractGraphModelFromXref=function(b){var d=b.trailer,c=null;null!=d&&(d=/.* \/Info (\d+) (\d+) R/g.exec(d.join("\n")),null!=d&&0<d.length&&(d=b[d[1]],null!=d&&(d=/.* \/Subject (\d+) (\d+) R/g.exec(d.join("\n")),null!=d&&0<d.length&&(b=b[d[1]],null!=b&&(b=b.join("\n"),c=b.substring(1,b.length-1))))));return c};Editor.extractParserError=function(b,d){var c=null,g=null!=
b?b.getElementsByTagName("parsererror"):null;null!=g&&0<g.length&&(c=d||mxResources.get("invalidChars"),g=g[0].getElementsByTagName("div"),0<g.length&&(c=mxUtils.getTextContent(g[0])));return null!=c?mxUtils.trim(c):c};Editor.addRetryToError=function(b,d){if(null!=b){var c=null!=b.error?b.error:b;null==c.retry&&(c.retry=d)}};Editor.configure=function(b,d){if(null!=b){Editor.config=b;Editor.configVersion=b.version;Menus.prototype.defaultFonts=b.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=
b.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=b.defaultColors||ColorDialog.prototype.defaultColors;ColorDialog.prototype.colorNames=b.colorNames||ColorDialog.prototype.colorNames;StyleFormatPanel.prototype.defaultColorSchemes=b.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=b.defaultEdgeLength||Graph.prototype.defaultEdgeLength;DrawioFile.prototype.autosaveDelay=b.autosaveDelay||DrawioFile.prototype.autosaveDelay;
@@ -3250,29 +3250,29 @@ var d=[];b.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\
null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(b)||"https://raw.githubusercontent.com/"===b.substring(0,34)||"https://fonts.googleapis.com/"===b.substring(0,29)||"https://fonts.gstatic.com/"===b.substring(0,26)};Editor.prototype.createImageUrlConverter=function(){var b=new mxUrlConverter;b.updateBaseUrl();var d=b.convert,c=this;b.convert=function(g){if(null!=g){var e="http://"==g.substring(0,7)||"https://"==
g.substring(0,8);e&&!navigator.onLine?g=Editor.svgBrokenImage.src:!e||g.substring(0,b.baseUrl.length)==b.baseUrl||c.crossOriginImages&&c.isCorsEnabledForUrl(g)?"chrome-extension://"==g.substring(0,19)||mxClient.IS_CHROMEAPP||(g=d.apply(this,arguments)):g=PROXY_URL+"?url="+encodeURIComponent(g)}return g};return b};Editor.createSvgDataUri=function(b){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(b)))};Editor.prototype.convertImageToDataUri=function(b,d){try{var c=!0,g=window.setTimeout(mxUtils.bind(this,
function(){c=!1;d(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(b))mxUtils.get(b,mxUtils.bind(this,function(b){window.clearTimeout(g);c&&d(Editor.createSvgDataUri(b.getText()))}),function(){window.clearTimeout(g);c&&d(Editor.svgBrokenImage.src)});else{var e=new Image;this.crossOriginImages&&(e.crossOrigin="anonymous");e.onload=function(){window.clearTimeout(g);if(c)try{var b=document.createElement("canvas"),k=b.getContext("2d");b.height=e.height;b.width=e.width;k.drawImage(e,0,0);
-d(b.toDataURL())}catch(oa){d(Editor.svgBrokenImage.src)}};e.onerror=function(){window.clearTimeout(g);c&&d(Editor.svgBrokenImage.src)};e.src=b}}catch(I){d(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(b,d,c,g){null==g&&(g=this.createImageUrlConverter());var e=0,k=c||{};c=mxUtils.bind(this,function(c,f){for(var m=b.getElementsByTagName(c),l=0;l<m.length;l++)mxUtils.bind(this,function(c){try{if(null!=c){var m=g.convert(c.getAttribute(f));if(null!=m&&"data:"!=m.substring(0,5)){var l=
-k[m];null==l?(e++,this.convertImageToDataUri(m,function(g){null!=g&&(k[m]=g,c.setAttribute(f,g));e--;0==e&&d(b)})):c.setAttribute(f,l)}else null!=m&&c.setAttribute(f,m)}}catch(sa){}})(m[l])});c("image","xlink:href");c("img","src");0==e&&d(b)};Editor.base64Encode=function(b){for(var d="",c=0,g=b.length,e,k,f;c<g;){e=b.charCodeAt(c++)&255;if(c==g){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&
+d(b.toDataURL())}catch(oa){d(Editor.svgBrokenImage.src)}};e.onerror=function(){window.clearTimeout(g);c&&d(Editor.svgBrokenImage.src)};e.src=b}}catch(I){d(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(b,d,c,g){null==g&&(g=this.createImageUrlConverter());var e=0,k=c||{};c=mxUtils.bind(this,function(c,f){for(var l=b.getElementsByTagName(c),m=0;m<l.length;m++)mxUtils.bind(this,function(c){try{if(null!=c){var l=g.convert(c.getAttribute(f));if(null!=l&&"data:"!=l.substring(0,5)){var m=
+k[l];null==m?(e++,this.convertImageToDataUri(l,function(g){null!=g&&(k[l]=g,c.setAttribute(f,g));e--;0==e&&d(b)})):c.setAttribute(f,m)}else null!=l&&c.setAttribute(f,l)}}catch(sa){}})(l[m])});c("image","xlink:href");c("img","src");0==e&&d(b)};Editor.base64Encode=function(b){for(var d="",c=0,g=b.length,e,k,f;c<g;){e=b.charCodeAt(c++)&255;if(c==g){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&
3)<<4);d+="==";break}k=b.charCodeAt(c++);if(c==g){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(k&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((k&15)<<2);d+="=";break}f=b.charCodeAt(c++);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&
-3)<<4|(k&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((k&15)<<2|(f&192)>>6);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f&63)}return d};Editor.prototype.loadUrl=function(b,d,c,g,e,k,f,m){try{var l=!f&&(g||/(\.png)($|\?)/i.test(b)||/(\.jpe?g)($|\?)/i.test(b)||/(\.gif)($|\?)/i.test(b)||/(\.pdf)($|\?)/i.test(b));e=null!=e?e:!0;var p=mxUtils.bind(this,function(){mxUtils.get(b,mxUtils.bind(this,function(b){if(200<=b.getStatus()&&
-299>=b.getStatus()){if(null!=d){var g=b.getText();if(l){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){b=mxUtilsBinaryToArray(b.request.responseBody).toArray();for(var g=Array(b.length),e=0;e<b.length;e++)g[e]=String.fromCharCode(b[e]);g=g.join("")}k=null!=k?k:"data:image/png;base64,";g=k+Editor.base64Encode(g)}d(g)}}else null!=c&&(0==b.getStatus()?c({message:mxResources.get("accessDenied")},b):c({message:mxResources.get("error")+" "+b.getStatus()},
-b))}),function(b){null!=c&&c({message:mxResources.get("error")+" "+b.getStatus()})},l,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:p})},m)});p()}catch(qa){null!=c&&c(qa)}};Editor.prototype.absoluteCssFonts=function(b){var d=null;if(null!=b){var c=b.split("url(");if(0<c.length){d=[c[0]];b=window.location.pathname;var g=null!=b?b.lastIndexOf("/"):-1;0<=g&&(b=b.substring(0,g+1));var g=document.getElementsByTagName("base"),e=null;null!=g&&0<g.length&&(e=g[0].getAttribute("href"));
+3)<<4|(k&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((k&15)<<2|(f&192)>>6);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f&63)}return d};Editor.prototype.loadUrl=function(b,d,c,g,e,k,f,l){try{var m=!f&&(g||/(\.png)($|\?)/i.test(b)||/(\.jpe?g)($|\?)/i.test(b)||/(\.gif)($|\?)/i.test(b)||/(\.pdf)($|\?)/i.test(b));e=null!=e?e:!0;var p=mxUtils.bind(this,function(){mxUtils.get(b,mxUtils.bind(this,function(b){if(200<=b.getStatus()&&
+299>=b.getStatus()){if(null!=d){var g=b.getText();if(m){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){b=mxUtilsBinaryToArray(b.request.responseBody).toArray();for(var g=Array(b.length),e=0;e<b.length;e++)g[e]=String.fromCharCode(b[e]);g=g.join("")}k=null!=k?k:"data:image/png;base64,";g=k+Editor.base64Encode(g)}d(g)}}else null!=c&&(0==b.getStatus()?c({message:mxResources.get("accessDenied")},b):c({message:mxResources.get("error")+" "+b.getStatus()},
+b))}),function(b){null!=c&&c({message:mxResources.get("error")+" "+b.getStatus()})},m,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:p})},l)});p()}catch(qa){null!=c&&c(qa)}};Editor.prototype.absoluteCssFonts=function(b){var d=null;if(null!=b){var c=b.split("url(");if(0<c.length){d=[c[0]];b=window.location.pathname;var g=null!=b?b.lastIndexOf("/"):-1;0<=g&&(b=b.substring(0,g+1));var g=document.getElementsByTagName("base"),e=null;null!=g&&0<g.length&&(e=g[0].getAttribute("href"));
for(var k=1;k<c.length;k++)if(g=c[k].indexOf(")"),0<g){var f=Editor.trimCssUrl(c[k].substring(0,g));this.graph.isRelativeUrl(f)&&(f=null!=e?e+f:window.location.protocol+"//"+window.location.hostname+("/"==f.charAt(0)?"":b)+f);d.push('url("'+f+'"'+c[k].substring(g))}else d.push(c[k])}else d=[b]}return null!=d?d.join(""):null};Editor.prototype.mapFontUrl=function(b,d,c){/^https?:\/\//.test(d)&&!this.isCorsEnabledForUrl(d)&&(d=PROXY_URL+"?url="+encodeURIComponent(d));c(b,d)};Editor.prototype.embedCssFonts=
-function(b,d){var c=b.split("url("),g=0;null==this.cachedFonts&&(this.cachedFonts={});var e=mxUtils.bind(this,function(){if(0==g){for(var b=[c[0]],e=1;e<c.length;e++){var k=c[e].indexOf(")");b.push('url("');b.push(this.cachedFonts[Editor.trimCssUrl(c[e].substring(0,k))]);b.push('"'+c[e].substring(k))}d(b.join(""))}});if(0<c.length){for(var k=1;k<c.length;k++){var f=c[k].indexOf(")"),m=null,l=c[k].indexOf("format(",f);0<l&&(m=Editor.trimCssUrl(c[k].substring(l+7,c[k].indexOf(")",l))));mxUtils.bind(this,
-function(b){if(null==this.cachedFonts[b]){this.cachedFonts[b]=b;g++;var d="application/x-font-ttf";if("svg"==m||/(\.svg)($|\?)/i.test(b))d="image/svg+xml";else if("otf"==m||"embedded-opentype"==m||/(\.otf)($|\?)/i.test(b))d="application/x-font-opentype";else if("woff"==m||/(\.woff)($|\?)/i.test(b))d="application/font-woff";else if("woff2"==m||/(\.woff2)($|\?)/i.test(b))d="application/font-woff2";else if("eot"==m||/(\.eot)($|\?)/i.test(b))d="application/vnd.ms-fontobject";else if("sfnt"==m||/(\.sfnt)($|\?)/i.test(b))d=
-"application/font-sfnt";this.mapFontUrl(d,b,mxUtils.bind(this,function(d,c){this.loadUrl(c,mxUtils.bind(this,function(d){this.cachedFonts[b]=d;g--;e()}),mxUtils.bind(this,function(b){g--;e()}),!0,null,"data:"+d+";charset=utf-8;base64,")}))}})(Editor.trimCssUrl(c[k].substring(0,f)),m)}e()}else d(b)};Editor.prototype.loadFonts=function(b){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(d){this.resolvedFontCss=d;null!=b&&b()})):null!=b&&b()};
+function(b,d){var c=b.split("url("),g=0;null==this.cachedFonts&&(this.cachedFonts={});var e=mxUtils.bind(this,function(){if(0==g){for(var b=[c[0]],e=1;e<c.length;e++){var k=c[e].indexOf(")");b.push('url("');b.push(this.cachedFonts[Editor.trimCssUrl(c[e].substring(0,k))]);b.push('"'+c[e].substring(k))}d(b.join(""))}});if(0<c.length){for(var k=1;k<c.length;k++){var f=c[k].indexOf(")"),l=null,m=c[k].indexOf("format(",f);0<m&&(l=Editor.trimCssUrl(c[k].substring(m+7,c[k].indexOf(")",m))));mxUtils.bind(this,
+function(b){if(null==this.cachedFonts[b]){this.cachedFonts[b]=b;g++;var d="application/x-font-ttf";if("svg"==l||/(\.svg)($|\?)/i.test(b))d="image/svg+xml";else if("otf"==l||"embedded-opentype"==l||/(\.otf)($|\?)/i.test(b))d="application/x-font-opentype";else if("woff"==l||/(\.woff)($|\?)/i.test(b))d="application/font-woff";else if("woff2"==l||/(\.woff2)($|\?)/i.test(b))d="application/font-woff2";else if("eot"==l||/(\.eot)($|\?)/i.test(b))d="application/vnd.ms-fontobject";else if("sfnt"==l||/(\.sfnt)($|\?)/i.test(b))d=
+"application/font-sfnt";this.mapFontUrl(d,b,mxUtils.bind(this,function(d,c){this.loadUrl(c,mxUtils.bind(this,function(d){this.cachedFonts[b]=d;g--;e()}),mxUtils.bind(this,function(b){g--;e()}),!0,null,"data:"+d+";charset=utf-8;base64,")}))}})(Editor.trimCssUrl(c[k].substring(0,f)),l)}e()}else d(b)};Editor.prototype.loadFonts=function(b){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(d){this.resolvedFontCss=d;null!=b&&b()})):null!=b&&b()};
Editor.prototype.createGoogleFontCache=function(){var b={},d;for(d in Graph.fontMapping)Graph.isCssFontUrl(d)&&(b[d]=Graph.fontMapping[d]);return b};Editor.prototype.embedExtFonts=function(b){var d=this.graph.getCustomFonts();if(0<d.length){var c=[],g=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts=this.createGoogleFontCache());for(var e=mxUtils.bind(this,function(){0==g&&this.embedCssFonts(c.join(""),b)}),k=0;k<d.length;k++)mxUtils.bind(this,function(b,d){Graph.isCssFontUrl(d)?null==this.cachedGoogleFonts[d]?
(g++,this.loadUrl(d,mxUtils.bind(this,function(b){this.cachedGoogleFonts[d]=b;c.push(b+"\n");g--;e()}),mxUtils.bind(this,function(b){g--;c.push("@import url("+d+");\n");e()}))):c.push(this.cachedGoogleFonts[d]+"\n"):c.push('@font-face {font-family: "'+b+'";src: url("'+d+'")}\n')})(d[k].name,d[k].url);e()}else b()};Editor.prototype.addMathCss=function(b){b=b.getElementsByTagName("defs");if(null!=b&&0<b.length)for(var d=document.getElementsByTagName("style"),c=0;c<d.length;c++){var g=mxUtils.getTextContent(d[c]);
0>g.indexOf("mxPageSelector")&&0<g.indexOf("MathJax")&&b[0].appendChild(d[c].cloneNode(!0))}};Editor.prototype.addFontCss=function(b,d){d=null!=d?d:this.absoluteCssFonts(this.fontCss);if(null!=d){var c=b.getElementsByTagName("defs"),g=b.ownerDocument;0==c.length?(c=null!=g.createElementNS?g.createElementNS(mxConstants.NS_SVG,"defs"):g.createElement("defs"),null!=b.firstChild?b.insertBefore(c,b.firstChild):b.appendChild(c)):c=c[0];g=null!=g.createElementNS?g.createElementNS(mxConstants.NS_SVG,"style"):
-g.createElement("style");g.setAttribute("type","text/css");mxUtils.setTextContent(g,d);c.appendChild(g)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(b,d,c){var g=mxClient.IS_FF?8192:16384;return Math.min(c,Math.min(g/b,g/d))};Editor.prototype.exportToCanvas=function(b,d,c,g,e,k,f,m,l,p,q,n,u,v,y,x,t,A){try{k=null!=k?k:!0;f=null!=f?f:!0;n=null!=n?n:this.graph;u=null!=u?u:0;var B=l?null:n.background;
-B==mxConstants.NONE&&(B=null);null==B&&(B=g);null==B&&0==l&&(B=x?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(n.getSvg(null,null,u,v,null,f,null,null,null,p,null,x,t,A),mxUtils.bind(this,function(c){try{var g=new Image;g.onload=mxUtils.bind(this,function(){try{var f=function(){mxClient.IS_SF?window.setTimeout(function(){v.drawImage(g,0,0);b(l,c)},0):(v.drawImage(g,0,0),b(l,c))},l=document.createElement("canvas"),p=parseInt(c.getAttribute("width")),q=parseInt(c.getAttribute("height"));
-m=null!=m?m:1;null!=d&&(m=k?Math.min(1,Math.min(3*d/(4*q),d/p)):d/p);m=this.getMaxCanvasScale(p,q,m);p=Math.ceil(m*p);q=Math.ceil(m*q);l.setAttribute("width",p);l.setAttribute("height",q);var v=l.getContext("2d");null!=B&&(v.beginPath(),v.rect(0,0,p,q),v.fillStyle=B,v.fill());1!=m&&v.scale(m,m);if(y){var x=n.view,t=x.scale;x.scale=1;var A=btoa(unescape(encodeURIComponent(x.createSvgGrid(x.gridColor))));x.scale=t;var A="data:image/svg+xml;base64,"+A,M=n.gridSize*x.gridSteps*m,J=n.getGraphBounds(),
-K=x.translate.x*t,I=x.translate.y*t,C=K+(J.x-K)/t-u,Q=I+(J.y-I)/t-u,fa=new Image;fa.onload=function(){try{for(var b=-Math.round(M-mxUtils.mod((K-C)*m,M)),d=-Math.round(M-mxUtils.mod((I-Q)*m,M));b<p;b+=M)for(var c=d;c<q;c+=M)v.drawImage(fa,b/m,c/m);f()}catch(La){null!=e&&e(La)}};fa.onerror=function(b){null!=e&&e(b)};fa.src=A}else f()}catch(za){null!=e&&e(za)}});g.onerror=function(b){null!=e&&e(b)};p&&this.graph.addSvgShadow(c);this.graph.mathEnabled&&this.addMathCss(c);var f=mxUtils.bind(this,function(){try{null!=
-this.resolvedFontCss&&this.addFontCss(c,this.resolvedFontCss),g.src=Editor.createSvgDataUri(mxUtils.getXml(c))}catch(ia){null!=e&&e(ia)}});this.embedExtFonts(mxUtils.bind(this,function(b){try{null!=b&&this.addFontCss(c,b),this.loadFonts(f)}catch(xa){null!=e&&e(xa)}}))}catch(ia){null!=e&&e(ia)}}),c,q)}catch(na){null!=e&&e(na)}};Editor.crcTable=[];for(var n=0;256>n;n++)for(var l=n,t=0;8>t;t++)l=1==(l&1)?3988292384^l>>>1:l>>>1,Editor.crcTable[n]=l;Editor.updateCRC=function(b,d,c,g){for(var e=0;e<g;e++)b=
-Editor.crcTable[(b^d.charCodeAt(c+e))&255]^b>>>8;return b};Editor.crc32=function(b){for(var d=-1,c=0;c<b.length;c++)d=d>>>8^Editor.crcTable[(d^b.charCodeAt(c))&255];return(d^-1)>>>0};Editor.writeGraphModelToPng=function(b,d,c,g,e){function k(b,d){var c=l;l+=d;return b.substring(c,l)}function f(b){b=k(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}function m(b){return String.fromCharCode(b>>24&255,b>>16&255,b>>8&255,b&255)}b=b.substring(b.indexOf(",")+
-1);b=window.atob?atob(b):Base64.decode(b,!0);var l=0;if(k(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(k(b,4),"IHDR"!=k(b,4))null!=e&&e();else{k(b,17);e=b.substring(0,l);do{var p=f(b);if("IDAT"==k(b,4)){e=b.substring(0,l-8);"pHYs"==d&&"dpi"==c?(c=Math.round(g/.0254),c=m(c)+m(c)+String.fromCharCode(1)):c=c+String.fromCharCode(0)+("zTXt"==d?String.fromCharCode(0):"")+g;g=4294967295;g=Editor.updateCRC(g,d,0,4);g=Editor.updateCRC(g,c,0,c.length);e+=m(c.length)+
-d+c+m(g^4294967295);e+=b.substring(l-8,b.length);break}e+=b.substring(l-8,l-4+p);k(b,p);k(b,4)}while(p);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var d=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(b,c){d.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var k=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=
-function(){k.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(b,d){var c=null;null!=b.editor.graph.getModel().getParent(d)?c=d.getId():null!=b.currentPage&&(c=b.currentPage.getId());return c});if(null!=window.StyleFormatPanel){var g=Format.prototype.init;Format.prototype.init=function(){g.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var q=Format.prototype.refresh;
-Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?q.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var b=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=b&&b.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(b){return!1};var m=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(b){b=m.apply(this,arguments);
+g.createElement("style");g.setAttribute("type","text/css");mxUtils.setTextContent(g,d);c.appendChild(g)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(b,d,c){var g=mxClient.IS_FF?8192:16384;return Math.min(c,Math.min(g/b,g/d))};Editor.prototype.exportToCanvas=function(b,d,c,g,e,k,f,l,m,p,t,n,u,v,y,x,q,A){try{k=null!=k?k:!0;f=null!=f?f:!0;n=null!=n?n:this.graph;u=null!=u?u:0;var B=m?null:n.background;
+B==mxConstants.NONE&&(B=null);null==B&&(B=g);null==B&&0==m&&(B=x?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(n.getSvg(null,null,u,v,null,f,null,null,null,p,null,x,q,A),mxUtils.bind(this,function(c){try{var g=new Image;g.onload=mxUtils.bind(this,function(){try{var f=function(){mxClient.IS_SF?window.setTimeout(function(){v.drawImage(g,0,0);b(m,c)},0):(v.drawImage(g,0,0),b(m,c))},m=document.createElement("canvas"),p=parseInt(c.getAttribute("width")),t=parseInt(c.getAttribute("height"));
+l=null!=l?l:1;null!=d&&(l=k?Math.min(1,Math.min(3*d/(4*t),d/p)):d/p);l=this.getMaxCanvasScale(p,t,l);p=Math.ceil(l*p);t=Math.ceil(l*t);m.setAttribute("width",p);m.setAttribute("height",t);var v=m.getContext("2d");null!=B&&(v.beginPath(),v.rect(0,0,p,t),v.fillStyle=B,v.fill());1!=l&&v.scale(l,l);if(y){var x=n.view,q=x.scale;x.scale=1;var A=btoa(unescape(encodeURIComponent(x.createSvgGrid(x.gridColor))));x.scale=q;var A="data:image/svg+xml;base64,"+A,M=n.gridSize*x.gridSteps*l,L=n.getGraphBounds(),
+K=x.translate.x*q,I=x.translate.y*q,C=K+(L.x-K)/q-u,Q=I+(L.y-I)/q-u,fa=new Image;fa.onload=function(){try{for(var b=-Math.round(M-mxUtils.mod((K-C)*l,M)),d=-Math.round(M-mxUtils.mod((I-Q)*l,M));b<p;b+=M)for(var c=d;c<t;c+=M)v.drawImage(fa,b/l,c/l);f()}catch(La){null!=e&&e(La)}};fa.onerror=function(b){null!=e&&e(b)};fa.src=A}else f()}catch(za){null!=e&&e(za)}});g.onerror=function(b){null!=e&&e(b)};p&&this.graph.addSvgShadow(c);this.graph.mathEnabled&&this.addMathCss(c);var f=mxUtils.bind(this,function(){try{null!=
+this.resolvedFontCss&&this.addFontCss(c,this.resolvedFontCss),g.src=Editor.createSvgDataUri(mxUtils.getXml(c))}catch(ia){null!=e&&e(ia)}});this.embedExtFonts(mxUtils.bind(this,function(b){try{null!=b&&this.addFontCss(c,b),this.loadFonts(f)}catch(xa){null!=e&&e(xa)}}))}catch(ia){null!=e&&e(ia)}}),c,t)}catch(na){null!=e&&e(na)}};Editor.crcTable=[];for(var n=0;256>n;n++)for(var l=n,q=0;8>q;q++)l=1==(l&1)?3988292384^l>>>1:l>>>1,Editor.crcTable[n]=l;Editor.updateCRC=function(b,d,c,g){for(var e=0;e<g;e++)b=
+Editor.crcTable[(b^d.charCodeAt(c+e))&255]^b>>>8;return b};Editor.crc32=function(b){for(var d=-1,c=0;c<b.length;c++)d=d>>>8^Editor.crcTable[(d^b.charCodeAt(c))&255];return(d^-1)>>>0};Editor.writeGraphModelToPng=function(b,d,c,g,e){function k(b,d){var c=m;m+=d;return b.substring(c,m)}function f(b){b=k(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}function l(b){return String.fromCharCode(b>>24&255,b>>16&255,b>>8&255,b&255)}b=b.substring(b.indexOf(",")+
+1);b=window.atob?atob(b):Base64.decode(b,!0);var m=0;if(k(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(k(b,4),"IHDR"!=k(b,4))null!=e&&e();else{k(b,17);e=b.substring(0,m);do{var p=f(b);if("IDAT"==k(b,4)){e=b.substring(0,m-8);"pHYs"==d&&"dpi"==c?(c=Math.round(g/.0254),c=l(c)+l(c)+String.fromCharCode(1)):c=c+String.fromCharCode(0)+("zTXt"==d?String.fromCharCode(0):"")+g;g=4294967295;g=Editor.updateCRC(g,d,0,4);g=Editor.updateCRC(g,c,0,c.length);e+=l(c.length)+
+d+c+l(g^4294967295);e+=b.substring(m-8,b.length);break}e+=b.substring(m-8,m-4+p);k(b,p);k(b,4)}while(p);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var d=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(b,c){d.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var k=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=
+function(){k.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(b,d){var c=null;null!=b.editor.graph.getModel().getParent(d)?c=d.getId():null!=b.currentPage&&(c=b.currentPage.getId());return c});if(null!=window.StyleFormatPanel){var g=Format.prototype.init;Format.prototype.init=function(){g.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var t=Format.prototype.refresh;
+Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?t.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var b=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=b&&b.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(b){return!1};var m=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(b){b=m.apply(this,arguments);
this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var d=this.editorUi,c=d.editor.graph,g=this.createOption(mxResources.get("shadow"),function(){return c.shadowVisible},function(b){var g=new ChangePageSetup(d);g.ignoreColor=!0;g.ignoreImage=!0;g.shadowVisible=b;c.model.execute(g)},{install:function(b){this.listener=function(){b(c.shadowVisible)};d.addListener("shadowVisibleChanged",this.listener)},destroy:function(){d.removeListener(this.listener)}});Editor.enableShadowOption||
(g.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(g,60));b.appendChild(g)}return b};var p=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(b){b=p.apply(this,arguments);var d=this.editorUi,c=d.editor.graph;if(c.isEnabled()){var g=d.getCurrentFile();if(null!=g&&g.isAutosaveOptional()){var e=this.createOption(mxResources.get("autosave"),function(){return d.editor.autosave},function(b){d.editor.setAutosave(b);d.editor.autosave&&
g.isModified()&&g.fileChanged()},{install:function(b){this.listener=function(){b(d.editor.autosave)};d.editor.addListener("autosaveChanged",this.listener)},destroy:function(){d.editor.removeListener(this.listener)}});b.appendChild(e)}}if(this.isMathOptionVisible()&&c.isEnabled()&&"undefined"!==typeof MathJax){e=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return c.mathEnabled},function(b){d.actions.get("mathematicalTypesetting").funct()},{install:function(b){this.listener=
@@ -3302,34 +3302,34 @@ font:"#ffffff"}],[{fill:"",stroke:""},{fill:mxConstants.NONE,stroke:""},{fill:"#
function(b,d,c){if(null!=d){var g=function(b){if(null!=b)if(c)for(var g=0;g<b.length;g++)d[b[g].name]=b[g];else for(var e in d){for(var k=!1,g=0;g<b.length;g++)if(b[g].name==e&&b[g].type==d[e].type){k=!0;break}k||delete d[e]}},e=this.editorUi.editor.graph.view.getState(b);null!=e&&null!=e.shape&&(e.shape.commonCustomPropAdded||(e.shape.commonCustomPropAdded=!0,e.shape.customProperties=e.shape.customProperties||[],e.cell.vertex?Array.prototype.push.apply(e.shape.customProperties,Editor.commonVertexProperties):
Array.prototype.push.apply(e.shape.customProperties,Editor.commonEdgeProperties)),g(e.shape.customProperties));b=b.getAttribute("customProperties");if(null!=b)try{g(JSON.parse(b))}catch(I){}}};var v=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var b=this.editorUi.getSelectionState();"image"!=b.style.shape&&!b.containsLabel&&0<b.cells.length&&this.container.appendChild(this.addStyles(this.createPanel()));v.apply(this,arguments);if(Editor.enableCustomProperties){for(var d=
{},c=b.vertices,g=b.edges,e=0;e<c.length;e++)this.findCommonProperties(c[e],d,0==e);for(e=0;e<g.length;e++)this.findCommonProperties(g[e],d,0==c.length&&0==e);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(d).length&&this.container.appendChild(this.addProperties(this.createPanel(),d,b))}};var u=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(b){this.addActions(b,["copyStyle","pasteStyle"]);return u.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=
-!0;StyleFormatPanel.prototype.addProperties=function(b,d,c){function g(b,d,c,g){n.getModel().beginUpdate();try{var e=[],k=[];if(null!=c.index){for(var f=[],m=c.parentRow.nextSibling;m&&m.getAttribute("data-pName")==b;)f.push(m.getAttribute("data-pValue")),m=m.nextSibling;c.index<f.length?null!=g?f.splice(g,1):f[c.index]=d:f.push(d);null!=c.size&&f.length>c.size&&(f=f.slice(0,c.size));d=f.join(",");null!=c.countProperty&&(n.setCellStyles(c.countProperty,f.length,n.getSelectionCells()),e.push(c.countProperty),
-k.push(f.length))}n.setCellStyles(b,d,n.getSelectionCells());e.push(b);k.push(d);if(null!=c.dependentProps)for(b=0;b<c.dependentProps.length;b++){var l=c.dependentPropsDefVal[b],p=c.dependentPropsVals[b];if(p.length>d)p=p.slice(0,d);else for(var u=p.length;u<d;u++)p.push(l);p=p.join(",");n.setCellStyles(c.dependentProps[b],p,n.getSelectionCells());e.push(c.dependentProps[b]);k.push(p)}if("function"==typeof c.onChange)c.onChange(n,d);q.editorUi.fireEvent(new mxEventObject("styleChanged","keys",e,"values",
+!0;StyleFormatPanel.prototype.addProperties=function(b,d,c){function g(b,d,c,g){n.getModel().beginUpdate();try{var e=[],k=[];if(null!=c.index){for(var f=[],l=c.parentRow.nextSibling;l&&l.getAttribute("data-pName")==b;)f.push(l.getAttribute("data-pValue")),l=l.nextSibling;c.index<f.length?null!=g?f.splice(g,1):f[c.index]=d:f.push(d);null!=c.size&&f.length>c.size&&(f=f.slice(0,c.size));d=f.join(",");null!=c.countProperty&&(n.setCellStyles(c.countProperty,f.length,n.getSelectionCells()),e.push(c.countProperty),
+k.push(f.length))}n.setCellStyles(b,d,n.getSelectionCells());e.push(b);k.push(d);if(null!=c.dependentProps)for(b=0;b<c.dependentProps.length;b++){var m=c.dependentPropsDefVal[b],p=c.dependentPropsVals[b];if(p.length>d)p=p.slice(0,d);else for(var u=p.length;u<d;u++)p.push(m);p=p.join(",");n.setCellStyles(c.dependentProps[b],p,n.getSelectionCells());e.push(c.dependentProps[b]);k.push(p)}if("function"==typeof c.onChange)c.onChange(n,d);t.editorUi.fireEvent(new mxEventObject("styleChanged","keys",e,"values",
k,"cells",n.getSelectionCells()))}finally{n.getModel().endUpdate()}}function e(d,c,g){var e=mxUtils.getOffset(b,!0),k=mxUtils.getOffset(d,!0);c.style.position="absolute";c.style.left=k.x-e.x+"px";c.style.top=k.y-e.y+"px";c.style.width=d.offsetWidth+"px";c.style.height=d.offsetHeight-(g?4:0)+"px";c.style.zIndex=5}function k(b,d,c){var e=document.createElement("div");e.style.width="32px";e.style.height="4px";e.style.margin="2px";e.style.border="1px solid black";e.style.background=d&&"none"!=d?d:"url('"+
-Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,function(k){this.editorUi.pickColor(d,function(d){e.style.background="none"==d?"url('"+Dialog.prototype.noColorImage+"')":d;g(b,d,c)});mxEvent.consume(k)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(e);return btn}function f(b,d,c,e,k,f,m){null!=d&&(d=d.split(","),u.push({name:b,values:d,type:c,defVal:e,countProperty:k,parentRow:f,isDeletable:!0,flipBkg:m}));btn=mxUtils.button("+",
-mxUtils.bind(q,function(d){for(var l=f,q=0;null!=l.nextSibling;)if(l.nextSibling.getAttribute("data-pName")==b)l=l.nextSibling,q++;else break;var n={type:c,parentRow:f,index:q,isDeletable:!0,defVal:e,countProperty:k},q=p(b,"",n,0==q%2,m);g(b,e,n);l.parentNode.insertBefore(q,l.nextSibling);mxEvent.consume(d)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function m(b,d,c,g,e,k,f){if(0<e){var m=Array(e);d=null!=d?d.split(","):[];for(var l=0;l<e;l++)m[l]=null!=
-d[l]?d[l]:null!=g?g:"";u.push({name:b,values:m,type:c,defVal:g,parentRow:k,flipBkg:f,size:e})}return document.createElement("div")}function l(b,d,c){var e=document.createElement("input");e.type="checkbox";e.checked="1"==d;mxEvent.addListener(e,"change",function(){g(b,e.checked?"1":"0",c)});return e}function p(d,c,p,n,u){var v=p.dispName,y=p.type,x=document.createElement("tr");x.className="gePropRow"+(u?"Dark":"")+(n?"Alt":"")+" gePropNonHeaderRow";x.setAttribute("data-pName",d);x.setAttribute("data-pValue",
-c);n=!1;null!=p.index&&(x.setAttribute("data-index",p.index),v=(null!=v?v:"")+"["+p.index+"]",n=!0);var t=document.createElement("td");t.className="gePropRowCell";v=mxResources.get(v,null,v);mxUtils.write(t,v);t.setAttribute("title",v);n&&(t.style.textAlign="right");x.appendChild(t);t=document.createElement("td");t.className="gePropRowCell";if("color"==y)t.appendChild(k(d,c,p));else if("bool"==y||"boolean"==y)t.appendChild(l(d,c,p));else if("enum"==y){var B=p.enumList;for(u=0;u<B.length;u++)if(v=
-B[u],v.val==c){mxUtils.write(t,mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(t,"click",mxUtils.bind(q,function(){var k=document.createElement("select");e(t,k);for(var f=0;f<B.length;f++){var m=B[f],l=document.createElement("option");l.value=mxUtils.htmlEntities(m.val);mxUtils.write(l,mxResources.get(m.dispName,null,m.dispName));k.appendChild(l)}k.value=c;b.appendChild(k);mxEvent.addListener(k,"change",function(){var b=mxUtils.htmlEntities(k.value);g(d,b,p)});k.focus();mxEvent.addListener(k,
-"blur",function(){b.removeChild(k)})}))}else"dynamicArr"==y?t.appendChild(f(d,c,p.subType,p.subDefVal,p.countProperty,x,u)):"staticArr"==y?t.appendChild(m(d,c,p.subType,p.subDefVal,p.size,x,u)):"readOnly"==y?(u=document.createElement("input"),u.setAttribute("readonly",""),u.value=c,u.style.width="96px",u.style.borderWidth="0px",t.appendChild(u)):(t.innerHTML=mxUtils.htmlEntities(decodeURIComponent(c)),mxEvent.addListener(t,"click",mxUtils.bind(q,function(){function k(){var b=f.value,b=0==b.length&&
-"string"!=y?0:b;p.allowAuto&&(null!=b.trim&&"auto"==b.trim().toLowerCase()?(b="auto",y="string"):(b=parseFloat(b),b=isNaN(b)?0:b));null!=p.min&&b<p.min?b=p.min:null!=p.max&&b>p.max&&(b=p.max);b=encodeURIComponent(("int"==y?parseInt(b):b)+"");g(d,b,p)}var f=document.createElement("input");e(t,f,!0);f.value=decodeURIComponent(c);f.className="gePropEditor";"int"!=y&&"float"!=y||p.allowAuto||(f.type="number",f.step="int"==y?"1":"any",null!=p.min&&(f.min=parseFloat(p.min)),null!=p.max&&(f.max=parseFloat(p.max)));
-b.appendChild(f);mxEvent.addListener(f,"keypress",function(b){13==b.keyCode&&k()});f.focus();mxEvent.addListener(f,"blur",function(){k()})})));p.isDeletable&&(u=mxUtils.button("-",mxUtils.bind(q,function(b){g(d,"",p,p.index);mxEvent.consume(b)})),u.style.height="16px",u.style.width="25px",u.style["float"]="right",u.className="geColorBtn",t.appendChild(u));x.appendChild(t);return x}var q=this,n=this.editorUi.editor.graph,u=[];b.style.position="relative";b.style.padding="0";var v=document.createElement("table");
-v.className="geProperties";v.style.whiteSpace="nowrap";v.style.width="100%";var y=document.createElement("tr");y.className="gePropHeader";var x=document.createElement("th");x.className="gePropHeaderCell";var t=document.createElement("img");t.src=Sidebar.prototype.expandedImage;t.style.verticalAlign="middle";x.appendChild(t);mxUtils.write(x,mxResources.get("property"));y.style.cursor="pointer";var B=function(){var d=v.querySelectorAll(".gePropNonHeaderRow"),c;if(q.editorUi.propertiesCollapsed){t.src=
-Sidebar.prototype.collapsedImage;c="none";for(var g=b.childNodes.length-1;0<=g;g--)try{var e=b.childNodes[g],k=e.nodeName.toUpperCase();"INPUT"!=k&&"SELECT"!=k||b.removeChild(e)}catch(wa){}}else t.src=Sidebar.prototype.expandedImage,c="";for(g=0;g<d.length;g++)d[g].style.display=c};mxEvent.addListener(y,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;B()});y.appendChild(x);x=document.createElement("th");x.className="gePropHeaderCell";x.innerHTML=mxResources.get("value");
-y.appendChild(x);v.appendChild(y);var A=!1,M=!1,y=null;1==c.vertices.length&&0==c.edges.length?y=c.vertices[0].id:0==c.vertices.length&&1==c.edges.length&&(y=c.edges[0].id);null!=y&&v.appendChild(p("id",mxUtils.htmlEntities(y),{dispName:"ID",type:"readOnly"},!0,!1));for(var J in d)if(y=d[J],"function"!=typeof y.isVisible||y.isVisible(c,this)){var C=null!=c.style[J]?mxUtils.htmlEntities(c.style[J]+""):null!=y.getDefaultValue?y.getDefaultValue(c,this):y.defVal;if("separator"==y.type)M=!M;else{if("staticArr"==
-y.type)y.size=parseInt(c.style[y.sizeProperty]||d[y.sizeProperty].defVal)||0;else if(null!=y.dependentProps){for(var Q=y.dependentProps,K=[],E=[],x=0;x<Q.length;x++){var N=c.style[Q[x]];E.push(d[Q[x]].subDefVal);K.push(null!=N?N.split(","):[])}y.dependentPropsDefVal=E;y.dependentPropsVals=K}v.appendChild(p(J,C,y,A,M));A=!A}}for(x=0;x<u.length;x++)for(y=u[x],d=y.parentRow,c=0;c<y.values.length;c++)J=p(y.name,y.values[c],{type:y.type,parentRow:y.parentRow,isDeletable:y.isDeletable,index:c,defVal:y.defVal,
-countProperty:y.countProperty,size:y.size},0==c%2,y.flipBkg),d.parentNode.insertBefore(J,d.nextSibling),d=J;b.appendChild(v);B();return b};StyleFormatPanel.prototype.addStyles=function(b){function d(b){mxEvent.addListener(b,"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,"mouseleave",function(){b.style.opacity="0.5"})}var c=this.editorUi,g=c.editor.graph,e=document.createElement("div");e.style.whiteSpace="nowrap";e.style.paddingLeft="24px";e.style.paddingRight="20px";b.style.paddingLeft=
-"16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(e);var k="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.position="relative";f.style.textAlign="center";f.style.width="210px";for(var m=[],l=0;l<this.defaultColorSchemes.length;l++){var p=document.createElement("div");p.style.display=
-"inline-block";p.style.width="6px";p.style.height="6px";p.style.marginLeft="4px";p.style.marginRight="3px";p.style.borderRadius="3px";p.style.cursor="pointer";p.style.background="transparent";p.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(b){mxEvent.addListener(p,"click",mxUtils.bind(this,function(){q(b)}))})(l);m.push(p);f.appendChild(p)}var q=mxUtils.bind(this,function(b){null!=m[b]&&(null!=this.format.currentScheme&&null!=m[this.format.currentScheme]&&(m[this.format.currentScheme].style.background=
-"transparent"),this.format.currentScheme=b,n(this.defaultColorSchemes[this.format.currentScheme]),m[this.format.currentScheme].style.background="#84d7ff")}),n=mxUtils.bind(this,function(b){var d=mxUtils.bind(this,function(b){var d=mxUtils.button("",mxUtils.bind(this,function(d){g.getModel().beginUpdate();try{for(var e=c.getSelectionState().cells,f=0;f<e.length;f++){for(var m=g.getModel().getStyle(e[f]),l=0;l<k.length;l++)m=mxUtils.removeStylename(m,k[l]);var p=g.getModel().isVertex(e[f])?g.defaultVertexStyle:
-g.defaultEdgeStyle;null!=b?(mxEvent.isShiftDown(d)||(m=""==b.fill?mxUtils.setStyle(m,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(m,mxConstants.STYLE_FILLCOLOR,b.fill||mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,null)),m=mxUtils.setStyle(m,mxConstants.STYLE_GRADIENTCOLOR,b.gradient||mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isControlDown(d)||mxClient.IS_MAC&&mxEvent.isMetaDown(d)||!g.getModel().isVertex(e[f])||(m=mxUtils.setStyle(m,mxConstants.STYLE_FONTCOLOR,b.font||
-mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null)))),mxEvent.isAltDown(d)||(m=""==b.stroke?mxUtils.setStyle(m,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(m,mxConstants.STYLE_STROKECOLOR,b.stroke||mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,null)))):(m=mxUtils.setStyle(m,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,"#ffffff")),m=mxUtils.setStyle(m,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,"#000000")),m=mxUtils.setStyle(m,
-mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),g.getModel().isVertex(e[f])&&(m=mxUtils.setStyle(m,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null))));g.getModel().setStyle(e[f],m)}}finally{g.getModel().endUpdate()}}));d.className="geStyleButton";d.style.width="36px";d.style.height=10>=this.defaultColorSchemes.length?"24px":"30px";d.style.margin="0px 6px 6px 0px";if(null!=b){var f="1"==urlParams.sketch?"2px solid":"1px solid";
+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(t,function(k){this.editorUi.pickColor(d,function(d){e.style.background="none"==d?"url('"+Dialog.prototype.noColorImage+"')":d;g(b,d,c)});mxEvent.consume(k)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(e);return btn}function f(b,d,c,e,k,f,l){null!=d&&(d=d.split(","),u.push({name:b,values:d,type:c,defVal:e,countProperty:k,parentRow:f,isDeletable:!0,flipBkg:l}));btn=mxUtils.button("+",
+mxUtils.bind(t,function(d){for(var m=f,t=0;null!=m.nextSibling;)if(m.nextSibling.getAttribute("data-pName")==b)m=m.nextSibling,t++;else break;var n={type:c,parentRow:f,index:t,isDeletable:!0,defVal:e,countProperty:k},t=p(b,"",n,0==t%2,l);g(b,e,n);m.parentNode.insertBefore(t,m.nextSibling);mxEvent.consume(d)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function l(b,d,c,g,e,k,f){if(0<e){var l=Array(e);d=null!=d?d.split(","):[];for(var m=0;m<e;m++)l[m]=null!=
+d[m]?d[m]:null!=g?g:"";u.push({name:b,values:l,type:c,defVal:g,parentRow:k,flipBkg:f,size:e})}return document.createElement("div")}function m(b,d,c){var e=document.createElement("input");e.type="checkbox";e.checked="1"==d;mxEvent.addListener(e,"change",function(){g(b,e.checked?"1":"0",c)});return e}function p(d,c,p,n,u){var v=p.dispName,y=p.type,x=document.createElement("tr");x.className="gePropRow"+(u?"Dark":"")+(n?"Alt":"")+" gePropNonHeaderRow";x.setAttribute("data-pName",d);x.setAttribute("data-pValue",
+c);n=!1;null!=p.index&&(x.setAttribute("data-index",p.index),v=(null!=v?v:"")+"["+p.index+"]",n=!0);var q=document.createElement("td");q.className="gePropRowCell";v=mxResources.get(v,null,v);mxUtils.write(q,v);q.setAttribute("title",v);n&&(q.style.textAlign="right");x.appendChild(q);q=document.createElement("td");q.className="gePropRowCell";if("color"==y)q.appendChild(k(d,c,p));else if("bool"==y||"boolean"==y)q.appendChild(m(d,c,p));else if("enum"==y){var B=p.enumList;for(u=0;u<B.length;u++)if(v=
+B[u],v.val==c){mxUtils.write(q,mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(q,"click",mxUtils.bind(t,function(){var k=document.createElement("select");e(q,k);for(var f=0;f<B.length;f++){var l=B[f],m=document.createElement("option");m.value=mxUtils.htmlEntities(l.val);mxUtils.write(m,mxResources.get(l.dispName,null,l.dispName));k.appendChild(m)}k.value=c;b.appendChild(k);mxEvent.addListener(k,"change",function(){var b=mxUtils.htmlEntities(k.value);g(d,b,p)});k.focus();mxEvent.addListener(k,
+"blur",function(){b.removeChild(k)})}))}else"dynamicArr"==y?q.appendChild(f(d,c,p.subType,p.subDefVal,p.countProperty,x,u)):"staticArr"==y?q.appendChild(l(d,c,p.subType,p.subDefVal,p.size,x,u)):"readOnly"==y?(u=document.createElement("input"),u.setAttribute("readonly",""),u.value=c,u.style.width="96px",u.style.borderWidth="0px",q.appendChild(u)):(q.innerHTML=mxUtils.htmlEntities(decodeURIComponent(c)),mxEvent.addListener(q,"click",mxUtils.bind(t,function(){function k(){var b=f.value,b=0==b.length&&
+"string"!=y?0:b;p.allowAuto&&(null!=b.trim&&"auto"==b.trim().toLowerCase()?(b="auto",y="string"):(b=parseFloat(b),b=isNaN(b)?0:b));null!=p.min&&b<p.min?b=p.min:null!=p.max&&b>p.max&&(b=p.max);b=encodeURIComponent(("int"==y?parseInt(b):b)+"");g(d,b,p)}var f=document.createElement("input");e(q,f,!0);f.value=decodeURIComponent(c);f.className="gePropEditor";"int"!=y&&"float"!=y||p.allowAuto||(f.type="number",f.step="int"==y?"1":"any",null!=p.min&&(f.min=parseFloat(p.min)),null!=p.max&&(f.max=parseFloat(p.max)));
+b.appendChild(f);mxEvent.addListener(f,"keypress",function(b){13==b.keyCode&&k()});f.focus();mxEvent.addListener(f,"blur",function(){k()})})));p.isDeletable&&(u=mxUtils.button("-",mxUtils.bind(t,function(b){g(d,"",p,p.index);mxEvent.consume(b)})),u.style.height="16px",u.style.width="25px",u.style["float"]="right",u.className="geColorBtn",q.appendChild(u));x.appendChild(q);return x}var t=this,n=this.editorUi.editor.graph,u=[];b.style.position="relative";b.style.padding="0";var v=document.createElement("table");
+v.className="geProperties";v.style.whiteSpace="nowrap";v.style.width="100%";var y=document.createElement("tr");y.className="gePropHeader";var x=document.createElement("th");x.className="gePropHeaderCell";var q=document.createElement("img");q.src=Sidebar.prototype.expandedImage;q.style.verticalAlign="middle";x.appendChild(q);mxUtils.write(x,mxResources.get("property"));y.style.cursor="pointer";var B=function(){var d=v.querySelectorAll(".gePropNonHeaderRow"),c;if(t.editorUi.propertiesCollapsed){q.src=
+Sidebar.prototype.collapsedImage;c="none";for(var g=b.childNodes.length-1;0<=g;g--)try{var e=b.childNodes[g],k=e.nodeName.toUpperCase();"INPUT"!=k&&"SELECT"!=k||b.removeChild(e)}catch(wa){}}else q.src=Sidebar.prototype.expandedImage,c="";for(g=0;g<d.length;g++)d[g].style.display=c};mxEvent.addListener(y,"click",function(){t.editorUi.propertiesCollapsed=!t.editorUi.propertiesCollapsed;B()});y.appendChild(x);x=document.createElement("th");x.className="gePropHeaderCell";x.innerHTML=mxResources.get("value");
+y.appendChild(x);v.appendChild(y);var A=!1,M=!1,y=null;1==c.vertices.length&&0==c.edges.length?y=c.vertices[0].id:0==c.vertices.length&&1==c.edges.length&&(y=c.edges[0].id);null!=y&&v.appendChild(p("id",mxUtils.htmlEntities(y),{dispName:"ID",type:"readOnly"},!0,!1));for(var L in d)if(y=d[L],"function"!=typeof y.isVisible||y.isVisible(c,this)){var C=null!=c.style[L]?mxUtils.htmlEntities(c.style[L]+""):null!=y.getDefaultValue?y.getDefaultValue(c,this):y.defVal;if("separator"==y.type)M=!M;else{if("staticArr"==
+y.type)y.size=parseInt(c.style[y.sizeProperty]||d[y.sizeProperty].defVal)||0;else if(null!=y.dependentProps){for(var Q=y.dependentProps,K=[],E=[],x=0;x<Q.length;x++){var N=c.style[Q[x]];E.push(d[Q[x]].subDefVal);K.push(null!=N?N.split(","):[])}y.dependentPropsDefVal=E;y.dependentPropsVals=K}v.appendChild(p(L,C,y,A,M));A=!A}}for(x=0;x<u.length;x++)for(y=u[x],d=y.parentRow,c=0;c<y.values.length;c++)L=p(y.name,y.values[c],{type:y.type,parentRow:y.parentRow,isDeletable:y.isDeletable,index:c,defVal:y.defVal,
+countProperty:y.countProperty,size:y.size},0==c%2,y.flipBkg),d.parentNode.insertBefore(L,d.nextSibling),d=L;b.appendChild(v);B();return b};StyleFormatPanel.prototype.addStyles=function(b){function d(b){mxEvent.addListener(b,"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,"mouseleave",function(){b.style.opacity="0.5"})}var c=this.editorUi,g=c.editor.graph,e=document.createElement("div");e.style.whiteSpace="nowrap";e.style.paddingLeft="24px";e.style.paddingRight="20px";b.style.paddingLeft=
+"16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(e);var k="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.position="relative";f.style.textAlign="center";f.style.width="210px";for(var l=[],m=0;m<this.defaultColorSchemes.length;m++){var p=document.createElement("div");p.style.display=
+"inline-block";p.style.width="6px";p.style.height="6px";p.style.marginLeft="4px";p.style.marginRight="3px";p.style.borderRadius="3px";p.style.cursor="pointer";p.style.background="transparent";p.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(b){mxEvent.addListener(p,"click",mxUtils.bind(this,function(){t(b)}))})(m);l.push(p);f.appendChild(p)}var t=mxUtils.bind(this,function(b){null!=l[b]&&(null!=this.format.currentScheme&&null!=l[this.format.currentScheme]&&(l[this.format.currentScheme].style.background=
+"transparent"),this.format.currentScheme=b,n(this.defaultColorSchemes[this.format.currentScheme]),l[this.format.currentScheme].style.background="#84d7ff")}),n=mxUtils.bind(this,function(b){var d=mxUtils.bind(this,function(b){var d=mxUtils.button("",mxUtils.bind(this,function(d){g.getModel().beginUpdate();try{for(var e=c.getSelectionState().cells,f=0;f<e.length;f++){for(var l=g.getModel().getStyle(e[f]),m=0;m<k.length;m++)l=mxUtils.removeStylename(l,k[m]);var p=g.getModel().isVertex(e[f])?g.defaultVertexStyle:
+g.defaultEdgeStyle;null!=b?(mxEvent.isShiftDown(d)||(l=""==b.fill?mxUtils.setStyle(l,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(l,mxConstants.STYLE_FILLCOLOR,b.fill||mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,null)),l=mxUtils.setStyle(l,mxConstants.STYLE_GRADIENTCOLOR,b.gradient||mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isControlDown(d)||mxClient.IS_MAC&&mxEvent.isMetaDown(d)||!g.getModel().isVertex(e[f])||(l=mxUtils.setStyle(l,mxConstants.STYLE_FONTCOLOR,b.font||
+mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null)))),mxEvent.isAltDown(d)||(l=""==b.stroke?mxUtils.setStyle(l,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(l,mxConstants.STYLE_STROKECOLOR,b.stroke||mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,null)))):(l=mxUtils.setStyle(l,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,"#ffffff")),l=mxUtils.setStyle(l,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,"#000000")),l=mxUtils.setStyle(l,
+mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),g.getModel().isVertex(e[f])&&(l=mxUtils.setStyle(l,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null))));g.getModel().setStyle(e[f],l)}}finally{g.getModel().endUpdate()}}));d.className="geStyleButton";d.style.width="36px";d.style.height=10>=this.defaultColorSchemes.length?"24px":"30px";d.style.margin="0px 6px 6px 0px";if(null!=b){var f="1"==urlParams.sketch?"2px solid":"1px solid";
null!=b.gradient?mxClient.IS_IE&&10>document.documentMode?d.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+b.fill+"', EndColorStr='"+b.gradient+"', GradientType=0)":d.style.backgroundImage="linear-gradient("+b.fill+" 0px,"+b.gradient+" 100%)":b.fill==mxConstants.NONE?d.style.background="url('"+Dialog.prototype.noColorImage+"')":d.style.backgroundColor=""==b.fill?mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff"):
b.fill||mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff");d.style.border=b.stroke==mxConstants.NONE?f+" transparent":""==b.stroke?f+" "+mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":Editor.darkColor):f+" "+(b.stroke||mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":Editor.darkColor));null!=b.title&&d.setAttribute("title",b.title)}else{var f=
-mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),m=mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");d.style.backgroundColor=f;d.style.border="1px solid "+m}d.style.borderRadius="0";e.appendChild(d)});e.innerHTML="";for(var f=0;f<b.length;f++)0<f&&0==mxUtils.mod(f,4)&&mxUtils.br(e),d(b[f])});null==this.format.currentScheme?q(Editor.isDarkMode()?1:"1"==urlParams.sketch?5:0):q(this.format.currentScheme);var l=10>=this.defaultColorSchemes.length?
-28:8,u=document.createElement("div");u.style.cssText="position:absolute;left:10px;top:8px;bottom:"+l+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";mxEvent.addListener(u,
-"click",mxUtils.bind(this,function(){q(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var v=document.createElement("div");v.style.cssText="position:absolute;left:202px;top:8px;bottom:"+l+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
-1<this.defaultColorSchemes.length&&(b.appendChild(u),b.appendChild(v));mxEvent.addListener(v,"click",mxUtils.bind(this,function(){q(mxUtils.mod(this.format.currentScheme+1,this.defaultColorSchemes.length))}));d(u);d(v);n(this.defaultColorSchemes[this.format.currentScheme]);10>=this.defaultColorSchemes.length&&b.appendChild(f);return b};StyleFormatPanel.prototype.addEditOps=function(b){var d=this.editorUi.getSelectionState(),c=this.editorUi.editor.graph,g=null;1==d.cells.length&&(g=mxUtils.button(mxResources.get("editStyle"),
+mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),l=mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");d.style.backgroundColor=f;d.style.border="1px solid "+l}d.style.borderRadius="0";e.appendChild(d)});e.innerHTML="";for(var f=0;f<b.length;f++)0<f&&0==mxUtils.mod(f,4)&&mxUtils.br(e),d(b[f])});null==this.format.currentScheme?t(Editor.isDarkMode()?1:"1"==urlParams.sketch?5:0):t(this.format.currentScheme);var m=10>=this.defaultColorSchemes.length?
+28:8,u=document.createElement("div");u.style.cssText="position:absolute;left:10px;top:8px;bottom:"+m+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";mxEvent.addListener(u,
+"click",mxUtils.bind(this,function(){t(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var v=document.createElement("div");v.style.cssText="position:absolute;left:202px;top:8px;bottom:"+m+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
+1<this.defaultColorSchemes.length&&(b.appendChild(u),b.appendChild(v));mxEvent.addListener(v,"click",mxUtils.bind(this,function(){t(mxUtils.mod(this.format.currentScheme+1,this.defaultColorSchemes.length))}));d(u);d(v);n(this.defaultColorSchemes[this.format.currentScheme]);10>=this.defaultColorSchemes.length&&b.appendChild(f);return b};StyleFormatPanel.prototype.addEditOps=function(b){var d=this.editorUi.getSelectionState(),c=this.editorUi.editor.graph,g=null;1==d.cells.length&&(g=mxUtils.button(mxResources.get("editStyle"),
mxUtils.bind(this,function(b){this.editorUi.actions.get("editStyle").funct()})),g.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),g.style.width="210px",g.style.marginBottom="2px",b.appendChild(g));c=1==d.cells.length?c.view.getState(d.cells[0]):null;null!=c&&null!=c.shape&&null!=c.shape.stencil?(d=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(b){this.editorUi.actions.get("editShape").funct()})),d.setAttribute("title",
mxResources.get("editShape")),d.style.marginBottom="2px",null==g?d.style.width="210px":(g.style.width="104px",d.style.width="104px",d.style.marginLeft="2px"),b.appendChild(d)):d.image&&0<d.cells.length&&(d=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(b){this.editorUi.actions.get("image").funct()})),d.setAttribute("title",mxResources.get("editImage")),d.style.marginBottom="2px",null==g?d.style.width="210px":(g.style.width="104px",d.style.width="104px",d.style.marginLeft="2px"),
b.appendChild(d));return b}}Graph.fontMapping={"https://fonts.googleapis.com/css?family=Architects+Daughter":'@font-face { font-family: "Architects Daughter"; src: url('+STYLE_PATH+'/fonts/ArchitectsDaughter-Regular.ttf) format("truetype"); }'};Graph.customFontElements={};Graph.recentCustomFonts={};Graph.isGoogleFontUrl=function(b){return b.substring(0,Editor.GOOGLE_FONTS.length)==Editor.GOOGLE_FONTS};Graph.isCssFontUrl=function(b){return Graph.isGoogleFontUrl(b)};Graph.createFontElement=function(b,
@@ -3339,44 +3339,44 @@ return b};Graph.getFontUrl=function(b,d){var c=Graph.customFontElements[b.toLowe
mxConstants.STYLE_FONTFAMILY,null);null!=c&&Graph.addFont(c,decodeURIComponent(d))}}return b};Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible="0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity="0.4";Graph.prototype.svgShadowBlur="1.7";Graph.prototype.svgShadowSize="3";
Graph.prototype.edgeMode="move"!=urlParams.edge;Graph.prototype.hiddenTags=null;Graph.prototype.defaultMathEnabled=!1;var x=Graph.prototype.init;Graph.prototype.init=function(){function b(b){d=b}x.apply(this,arguments);this.hiddenTags=[];window.mxFreehand&&(this.freehand=new mxFreehand(this));var d=null;mxEvent.addListener(this.container,"mouseenter",b);mxEvent.addListener(this.container,"mousemove",b);mxEvent.addListener(this.container,"mouseleave",function(b){d=null});this.isMouseInsertPoint=function(){return null!=
d};var c=this.getInsertPoint;this.getInsertPoint=function(){return null!=d?this.getPointForEvent(d):c.apply(this,arguments)};var g=this.layoutManager.getLayout;this.layoutManager.getLayout=function(b){var d=this.graph.getCellStyle(b);if(null!=d&&"rack"==d.childLayout){var c=new mxStackLayout(this.graph,!1);c.gridSize=null!=d.rackUnitSize?parseFloat(d.rackUnitSize):"undefined"!==typeof mxRackContainer?mxRackContainer.unitSize:20;c.marginLeft=d.marginLeft||0;c.marginRight=d.marginRight||0;c.marginTop=
-d.marginTop||0;c.marginBottom=d.marginBottom||0;c.allowGaps=d.allowGaps||0;c.horizontal="1"==mxUtils.getValue(d,"horizontalRack","0");c.resizeParent=!1;c.fill=!0;return c}return g.apply(this,arguments)};this.updateGlobalUrlVariables()};var y=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=function(b,d){return Graph.processFontStyle(y.apply(this,arguments))};var G=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,d,c,g,e,k,f,m,l,p,
-q){G.apply(this,arguments);Graph.processFontAttributes(q)};var H=mxText.prototype.redraw;mxText.prototype.redraw=function(){H.apply(this,arguments);null!=this.node&&"DIV"==this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.createTagsDialog=function(b,d,c){function g(){for(var b=f.getSelectionCells(),d=[],c=0;c<b.length;c++)f.isCellVisible(b[c])&&d.push(b[c]);f.setSelectionCells(d)}function e(b){f.hiddenTags=b?[]:m.slice();g();f.refresh()}function k(b,c){p.innerHTML="";if(0<
-b.length){var k=document.createElement("table");k.setAttribute("cellpadding","2");k.style.boxSizing="border-box";k.style.tableLayout="fixed";k.style.width="100%";var l=document.createElement("tbody");if(null!=b&&0<b.length)for(var q=0;q<b.length;q++)(function(b){var k=0>mxUtils.indexOf(f.hiddenTags,b),p=document.createElement("tr"),q=document.createElement("td");q.style.align="center";q.style.width="16px";var n=document.createElement("img");n.setAttribute("src",k?Editor.visibleImage:Editor.hiddenImage);
-n.setAttribute("title",mxResources.get(k?"hideIt":"show",[b]));mxUtils.setOpacity(n,k?75:25);n.style.verticalAlign="middle";n.style.cursor="pointer";n.style.width="16px";if(d||Editor.isDarkMode())n.style.filter="invert(100%)";q.appendChild(n);mxEvent.addListener(n,"click",function(d){var c=mxUtils.indexOf(f.hiddenTags,b);mxEvent.isShiftDown(d)?e(0<=mxUtils.indexOf(f.hiddenTags,b)):(0>c?f.hiddenTags.push(b):0<=c&&f.hiddenTags.splice(c,1),g(),f.refresh());mxEvent.consume(d)});p.appendChild(q);q=document.createElement("td");
-q.style.overflow="hidden";q.style.whiteSpace="nowrap";q.style.textOverflow="ellipsis";q.style.verticalAlign="middle";q.style.cursor="pointer";q.setAttribute("title",b);a=document.createElement("a");mxUtils.write(a,b);a.style.textOverflow="ellipsis";a.style.position="relative";mxUtils.setOpacity(a,k?100:40);q.appendChild(a);mxEvent.addListener(q,"click",function(d){if(mxEvent.isShiftDown(d)){e(!0);var c=f.getCellsForTags([b],null,null,!0);f.isEnabled()?f.setSelectionCells(c):f.highlightCells(c)}else if(k&&
-0<f.hiddenTags.length)e(!0);else{var c=m.slice(),l=mxUtils.indexOf(c,b);c.splice(l,1);f.hiddenTags=c;g();f.refresh()}mxEvent.consume(d)});p.appendChild(q);if(f.isEnabled()){q=document.createElement("td");q.style.verticalAlign="middle";q.style.textAlign="center";q.style.width="18px";if(null==c){q.style.align="center";q.style.width="16px";n=document.createElement("img");n.setAttribute("src",Editor.crossImage);n.setAttribute("title",mxResources.get("removeIt",[b]));mxUtils.setOpacity(n,k?75:25);n.style.verticalAlign=
-"middle";n.style.cursor="pointer";n.style.width="16px";if(d||Editor.isDarkMode())n.style.filter="invert(100%)";mxEvent.addListener(n,"click",function(d){var c=mxUtils.indexOf(m,b);0<=c&&m.splice(c,1);f.removeTagsForCells(f.model.getDescendants(f.model.getRoot()),[b]);f.refresh();mxEvent.consume(d)});q.appendChild(n)}else{var u=document.createElement("input");u.setAttribute("type","checkbox");u.style.margin="0px";u.defaultChecked=null!=c&&0<=mxUtils.indexOf(c,b);u.checked=u.defaultChecked;u.style.background=
-"transparent";u.setAttribute("title",mxResources.get(u.defaultChecked?"removeIt":"add",[b]));mxEvent.addListener(u,"change",function(d){u.checked?f.addTagsForCells(f.getSelectionCells(),[b]):f.removeTagsForCells(f.getSelectionCells(),[b]);mxEvent.consume(d)});q.appendChild(u)}p.appendChild(q)}l.appendChild(p)})(b[q]);k.appendChild(l);p.appendChild(k)}}var f=this,m=f.hiddenTags.slice(),l=document.createElement("div");l.style.userSelect="none";l.style.overflow="hidden";l.style.padding="10px";l.style.height=
-"100%";var p=document.createElement("div");p.style.boxSizing="border-box";p.style.borderRadius="4px";p.style.userSelect="none";p.style.overflow="auto";p.style.position="absolute";p.style.left="10px";p.style.right="10px";p.style.top="10px";p.style.border=f.isEnabled()?"1px solid #808080":"none";p.style.bottom=f.isEnabled()?"48px":"10px";l.appendChild(p);var q=mxUtils.button(mxResources.get("reset"),function(b){f.hiddenTags=[];mxEvent.isShiftDown(b)||(m=f.hiddenTags.slice());g();f.refresh()});q.setAttribute("title",
-mxResources.get("reset"));q.className="geBtn";q.style.margin="0 4px 0 0";var n=mxUtils.button(mxResources.get("add"),function(){null!=c&&c(m,function(b){m=b;u()})});n.setAttribute("title",mxResources.get("add"));n.className="geBtn";n.style.margin="0";f.addListener(mxEvent.ROOT,function(){m=f.hiddenTags.slice()});var u=mxUtils.bind(this,function(d,c){if(b()){for(var g=f.getAllTags(),e=0;e<g.length;e++)0>mxUtils.indexOf(m,g[e])&&m.push(g[e]);m.sort();f.isSelectionEmpty()?k(m):k(m,f.getCommonTagsForCells(f.getSelectionCells()))}});
-f.selectionModel.addListener(mxEvent.CHANGE,u);f.model.addListener(mxEvent.CHANGE,u);f.addListener(mxEvent.REFRESH,u);var v=document.createElement("div");v.style.boxSizing="border-box";v.style.whiteSpace="nowrap";v.style.position="absolute";v.style.overflow="hidden";v.style.bottom="0px";v.style.height="42px";v.style.right="10px";v.style.left="10px";f.isEnabled()&&(v.appendChild(q),v.appendChild(n),l.appendChild(v));return{div:l,refresh:u}};Graph.prototype.getCustomFonts=function(){var b=this.extFonts,
+d.marginTop||0;c.marginBottom=d.marginBottom||0;c.allowGaps=d.allowGaps||0;c.horizontal="1"==mxUtils.getValue(d,"horizontalRack","0");c.resizeParent=!1;c.fill=!0;return c}return g.apply(this,arguments)};this.updateGlobalUrlVariables()};var y=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=function(b,d){return Graph.processFontStyle(y.apply(this,arguments))};var G=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,d,c,g,e,k,f,l,m,p,
+t){G.apply(this,arguments);Graph.processFontAttributes(t)};var H=mxText.prototype.redraw;mxText.prototype.redraw=function(){H.apply(this,arguments);null!=this.node&&"DIV"==this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.createTagsDialog=function(b,d,c){function g(){for(var b=f.getSelectionCells(),d=[],c=0;c<b.length;c++)f.isCellVisible(b[c])&&d.push(b[c]);f.setSelectionCells(d)}function e(b){f.hiddenTags=b?[]:l.slice();g();f.refresh()}function k(b,c){p.innerHTML="";if(0<
+b.length){var k=document.createElement("table");k.setAttribute("cellpadding","2");k.style.boxSizing="border-box";k.style.tableLayout="fixed";k.style.width="100%";var m=document.createElement("tbody");if(null!=b&&0<b.length)for(var t=0;t<b.length;t++)(function(b){var k=0>mxUtils.indexOf(f.hiddenTags,b),p=document.createElement("tr"),t=document.createElement("td");t.style.align="center";t.style.width="16px";var n=document.createElement("img");n.setAttribute("src",k?Editor.visibleImage:Editor.hiddenImage);
+n.setAttribute("title",mxResources.get(k?"hideIt":"show",[b]));mxUtils.setOpacity(n,k?75:25);n.style.verticalAlign="middle";n.style.cursor="pointer";n.style.width="16px";if(d||Editor.isDarkMode())n.style.filter="invert(100%)";t.appendChild(n);mxEvent.addListener(n,"click",function(d){var c=mxUtils.indexOf(f.hiddenTags,b);mxEvent.isShiftDown(d)?e(0<=mxUtils.indexOf(f.hiddenTags,b)):(0>c?f.hiddenTags.push(b):0<=c&&f.hiddenTags.splice(c,1),g(),f.refresh());mxEvent.consume(d)});p.appendChild(t);t=document.createElement("td");
+t.style.overflow="hidden";t.style.whiteSpace="nowrap";t.style.textOverflow="ellipsis";t.style.verticalAlign="middle";t.style.cursor="pointer";t.setAttribute("title",b);a=document.createElement("a");mxUtils.write(a,b);a.style.textOverflow="ellipsis";a.style.position="relative";mxUtils.setOpacity(a,k?100:40);t.appendChild(a);mxEvent.addListener(t,"click",function(d){if(mxEvent.isShiftDown(d)){e(!0);var c=f.getCellsForTags([b],null,null,!0);f.isEnabled()?f.setSelectionCells(c):f.highlightCells(c)}else if(k&&
+0<f.hiddenTags.length)e(!0);else{var c=l.slice(),m=mxUtils.indexOf(c,b);c.splice(m,1);f.hiddenTags=c;g();f.refresh()}mxEvent.consume(d)});p.appendChild(t);if(f.isEnabled()){t=document.createElement("td");t.style.verticalAlign="middle";t.style.textAlign="center";t.style.width="18px";if(null==c){t.style.align="center";t.style.width="16px";n=document.createElement("img");n.setAttribute("src",Editor.crossImage);n.setAttribute("title",mxResources.get("removeIt",[b]));mxUtils.setOpacity(n,k?75:25);n.style.verticalAlign=
+"middle";n.style.cursor="pointer";n.style.width="16px";if(d||Editor.isDarkMode())n.style.filter="invert(100%)";mxEvent.addListener(n,"click",function(d){var c=mxUtils.indexOf(l,b);0<=c&&l.splice(c,1);f.removeTagsForCells(f.model.getDescendants(f.model.getRoot()),[b]);f.refresh();mxEvent.consume(d)});t.appendChild(n)}else{var u=document.createElement("input");u.setAttribute("type","checkbox");u.style.margin="0px";u.defaultChecked=null!=c&&0<=mxUtils.indexOf(c,b);u.checked=u.defaultChecked;u.style.background=
+"transparent";u.setAttribute("title",mxResources.get(u.defaultChecked?"removeIt":"add",[b]));mxEvent.addListener(u,"change",function(d){u.checked?f.addTagsForCells(f.getSelectionCells(),[b]):f.removeTagsForCells(f.getSelectionCells(),[b]);mxEvent.consume(d)});t.appendChild(u)}p.appendChild(t)}m.appendChild(p)})(b[t]);k.appendChild(m);p.appendChild(k)}}var f=this,l=f.hiddenTags.slice(),m=document.createElement("div");m.style.userSelect="none";m.style.overflow="hidden";m.style.padding="10px";m.style.height=
+"100%";var p=document.createElement("div");p.style.boxSizing="border-box";p.style.borderRadius="4px";p.style.userSelect="none";p.style.overflow="auto";p.style.position="absolute";p.style.left="10px";p.style.right="10px";p.style.top="10px";p.style.border=f.isEnabled()?"1px solid #808080":"none";p.style.bottom=f.isEnabled()?"48px":"10px";m.appendChild(p);var t=mxUtils.button(mxResources.get("reset"),function(b){f.hiddenTags=[];mxEvent.isShiftDown(b)||(l=f.hiddenTags.slice());g();f.refresh()});t.setAttribute("title",
+mxResources.get("reset"));t.className="geBtn";t.style.margin="0 4px 0 0";var n=mxUtils.button(mxResources.get("add"),function(){null!=c&&c(l,function(b){l=b;u()})});n.setAttribute("title",mxResources.get("add"));n.className="geBtn";n.style.margin="0";f.addListener(mxEvent.ROOT,function(){l=f.hiddenTags.slice()});var u=mxUtils.bind(this,function(d,c){if(b()){for(var g=f.getAllTags(),e=0;e<g.length;e++)0>mxUtils.indexOf(l,g[e])&&l.push(g[e]);l.sort();f.isSelectionEmpty()?k(l):k(l,f.getCommonTagsForCells(f.getSelectionCells()))}});
+f.selectionModel.addListener(mxEvent.CHANGE,u);f.model.addListener(mxEvent.CHANGE,u);f.addListener(mxEvent.REFRESH,u);var v=document.createElement("div");v.style.boxSizing="border-box";v.style.whiteSpace="nowrap";v.style.position="absolute";v.style.overflow="hidden";v.style.bottom="0px";v.style.height="42px";v.style.right="10px";v.style.left="10px";f.isEnabled()&&(v.appendChild(t),v.appendChild(n),m.appendChild(v));return{div:m,refresh:u}};Graph.prototype.getCustomFonts=function(){var b=this.extFonts,
b=null!=b?b.slice():[],d;for(d in Graph.customFontElements){var c=Graph.customFontElements[d];b.push({name:c.name,url:c.url})}return b};Graph.prototype.setFont=function(b,d){Graph.addFont(b,d);document.execCommand("fontname",!1,b);if(null!=d){var c=this.cellEditor.textarea.getElementsByTagName("font");d=Graph.getFontUrl(b,d);for(var g=0;g<c.length;g++)c[g].getAttribute("face")==b&&c[g].getAttribute("data-font-src")!=d&&c[g].setAttribute("data-font-src",d)}};var D=Graph.prototype.isFastZoomEnabled;
Graph.prototype.isFastZoomEnabled=function(){return D.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};var b=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=b)for(var d in b)this.globalVars[d]=b[d]}catch(K){null!=window.console&&console.log("Error in vars URL parameter: "+K)}};Graph.prototype.getExportVariables=
function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var F=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var d=F.apply(this,arguments);null==d&&null!=this.globalVars&&(d=this.globalVars[b]);return d};Graph.prototype.getDefaultStylesheet=function(){if(null==this.defaultStylesheet){var b=this.themes["default-style2"];this.defaultStylesheet=(new mxCodec(b.ownerDocument)).decode(b)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};
-var O=Graph.prototype.getSvg;Graph.prototype.getSvg=function(b,d,c,g,e,k,f,m,l,p,q,n,u,v){var y=null,x=null,t=null;n||null==this.themes||"darkTheme"!=this.defaultThemeName||(y=this.stylesheet,x=this.shapeForegroundColor,t=this.shapeBackgroundColor,this.shapeForegroundColor="darkTheme"==this.defaultThemeName?"#000000":Editor.lightColor,this.shapeBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":Editor.darkColor,this.stylesheet=this.getDefaultStylesheet(),this.refresh());var A=O.apply(this,
-arguments),B=this.getCustomFonts();if(q&&0<B.length){var M=A.ownerDocument,C=null!=M.createElementNS?M.createElementNS(mxConstants.NS_SVG,"style"):M.createElement("style");null!=M.setAttributeNS?C.setAttributeNS("type","text/css"):C.setAttribute("type","text/css");for(var Q="",I="",E=0;E<B.length;E++){var N=B[E].name,J=B[E].url;Graph.isCssFontUrl(J)?Q+="@import url("+J+");\n":I+='@font-face {\nfont-family: "'+N+'";\nsrc: url("'+J+'");\n}\n'}C.appendChild(M.createTextNode(Q+I));A.getElementsByTagName("defs")[0].appendChild(C)}null!=
-y&&(this.shapeBackgroundColor=t,this.shapeForegroundColor=x,this.stylesheet=y,this.refresh());return A};var A=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var b=A.apply(this,arguments);if(this.mathEnabled){var d=b.drawText;b.drawText=function(b,c){if(null!=b.text&&null!=b.text.value&&b.text.checkBounds()&&(mxUtils.isNode(b.text.value)||b.text.dialect==mxConstants.DIALECT_STRICTHTML)){var g=b.text.getContentNode();if(null!=g){g=g.cloneNode(!0);if(g.getElementsByTagNameNS)for(var e=
+var O=Graph.prototype.getSvg;Graph.prototype.getSvg=function(b,d,c,g,e,k,f,l,m,p,t,n,u,v){var y=null,x=null,q=null;n||null==this.themes||"darkTheme"!=this.defaultThemeName||(y=this.stylesheet,x=this.shapeForegroundColor,q=this.shapeBackgroundColor,this.shapeForegroundColor="darkTheme"==this.defaultThemeName?"#000000":Editor.lightColor,this.shapeBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":Editor.darkColor,this.stylesheet=this.getDefaultStylesheet(),this.refresh());var A=O.apply(this,
+arguments),B=this.getCustomFonts();if(t&&0<B.length){var M=A.ownerDocument,C=null!=M.createElementNS?M.createElementNS(mxConstants.NS_SVG,"style"):M.createElement("style");null!=M.setAttributeNS?C.setAttributeNS("type","text/css"):C.setAttribute("type","text/css");for(var Q="",I="",E=0;E<B.length;E++){var N=B[E].name,J=B[E].url;Graph.isCssFontUrl(J)?Q+="@import url("+J+");\n":I+='@font-face {\nfont-family: "'+N+'";\nsrc: url("'+J+'");\n}\n'}C.appendChild(M.createTextNode(Q+I));A.getElementsByTagName("defs")[0].appendChild(C)}null!=
+y&&(this.shapeBackgroundColor=q,this.shapeForegroundColor=x,this.stylesheet=y,this.refresh());return A};var A=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var b=A.apply(this,arguments);if(this.mathEnabled){var d=b.drawText;b.drawText=function(b,c){if(null!=b.text&&null!=b.text.value&&b.text.checkBounds()&&(mxUtils.isNode(b.text.value)||b.text.dialect==mxConstants.DIALECT_STRICTHTML)){var g=b.text.getContentNode();if(null!=g){g=g.cloneNode(!0);if(g.getElementsByTagNameNS)for(var e=
g.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<e.length;)e[0].parentNode.removeChild(e[0]);null!=g.innerHTML&&(e=b.text.value,b.text.value=g.innerHTML,d.apply(this,arguments),b.text.value=e)}}else d.apply(this,arguments)}}return b};var C=mxCellRenderer.prototype.destroy;mxCellRenderer.prototype.destroy=function(b){C.apply(this,arguments);null!=b.secondLabel&&(b.secondLabel.destroy(),b.secondLabel=null)};mxCellRenderer.prototype.getShapesForState=function(b){return[b.shape,
-b.text,b.secondLabel,b.control]};var E=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){E.apply(this,arguments);this.enumerationState=0};var L=mxGraphView.prototype.stateValidated;mxGraphView.prototype.stateValidated=function(b){null!=b.shape&&this.redrawEnumerationState(b);return L.apply(this,arguments)};mxGraphView.prototype.createEnumerationValue=function(b){b=decodeURIComponent(mxUtils.getValue(b.style,"enumerateValue",""));""==b&&(b=++this.enumerationState);
+b.text,b.secondLabel,b.control]};var E=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){E.apply(this,arguments);this.enumerationState=0};var J=mxGraphView.prototype.stateValidated;mxGraphView.prototype.stateValidated=function(b){null!=b.shape&&this.redrawEnumerationState(b);return J.apply(this,arguments)};mxGraphView.prototype.createEnumerationValue=function(b){b=decodeURIComponent(mxUtils.getValue(b.style,"enumerateValue",""));""==b&&(b=++this.enumerationState);
return'<div style="padding:2px;border:1px solid gray;background:yellow;border-radius:2px;">'+mxUtils.htmlEntities(b)+"</div>"};mxGraphView.prototype.redrawEnumerationState=function(b){var d="1"==mxUtils.getValue(b.style,"enumerate",0);d&&null==b.secondLabel?(b.secondLabel=new mxText("",new mxRectangle,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM),b.secondLabel.size=12,b.secondLabel.state=b,b.secondLabel.dialect=mxConstants.DIALECT_STRICTHTML,this.graph.cellRenderer.initializeLabel(b,b.secondLabel)):
d||null==b.secondLabel||(b.secondLabel.destroy(),b.secondLabel=null);d=b.secondLabel;if(null!=d){var c=b.view.scale,g=this.createEnumerationValue(b);b=this.graph.model.isVertex(b.cell)?new mxRectangle(b.x+b.width-4*c,b.y+4*c,0,0):mxRectangle.fromPoint(b.view.getPoint(b));d.bounds.equals(b)&&d.value==g&&d.scale==c||(d.bounds=b,d.value=g,d.scale=c,d.redraw())}};var N=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){N.apply(this,arguments);if(mxClient.IS_GC&&
null!=this.getDrawPane()){var b=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),
this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),this.webKitForceRepaintNode.style.cssText="position:absolute;",b.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,b.ownerSVGElement))}};var M=Graph.prototype.refresh;Graph.prototype.refresh=function(){M.apply(this,arguments);this.refreshBackgroundImage()};Graph.prototype.refreshBackgroundImage=function(){null!=this.backgroundImage&&null!=this.backgroundImage.originalSrc&&(this.setBackgroundImage(this.backgroundImage),
this.view.validateBackgroundImage())};var Q=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){Q.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(b){"data:action/json,"==b.substring(0,17)&&(b=JSON.parse(b.substring(17)),null!=b.actions&&this.executeCustomActions(b.actions))};Graph.prototype.executeCustomActions=function(b,d){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),
-null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var c=!1,g=0,e=0,k=mxUtils.bind(this,function(){c||(c=!0,this.model.beginUpdate())}),f=mxUtils.bind(this,function(){c&&(c=!1,this.model.endUpdate())}),m=mxUtils.bind(this,function(){0<g&&g--;0==g&&l()}),l=mxUtils.bind(this,function(){if(e<b.length){var c=this.stoppingCustomActions,p=b[e++],q=[];if(null!=p.open)if(f(),this.isCustomLink(p.open)){if(!this.customLinkClicked(p.open))return}else this.openLink(p.open);
-null==p.wait||c||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;m()}),g++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,""!=p.wait?parseInt(p.wait):1E3),f());null!=p.opacity&&null!=p.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(p.opacity,!0)),p.opacity.value);null!=p.fadeIn&&(g++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(p.fadeIn,!0)),0,1,m,c?0:
-p.fadeIn.delay));null!=p.fadeOut&&(g++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(p.fadeOut,!0)),1,0,m,c?0:p.fadeOut.delay));null!=p.wipeIn&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(p.wipeIn,!0),!0)));null!=p.wipeOut&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(p.wipeOut,!0),!1)));null!=p.toggle&&(k(),this.toggleCells(this.getCellsForAction(p.toggle,!0)));if(null!=p.show){k();var n=this.getCellsForAction(p.show,!0);Graph.setOpacityForNodes(this.getNodesForCells(n),
+null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var c=!1,g=0,e=0,k=mxUtils.bind(this,function(){c||(c=!0,this.model.beginUpdate())}),f=mxUtils.bind(this,function(){c&&(c=!1,this.model.endUpdate())}),l=mxUtils.bind(this,function(){0<g&&g--;0==g&&m()}),m=mxUtils.bind(this,function(){if(e<b.length){var c=this.stoppingCustomActions,p=b[e++],t=[];if(null!=p.open)if(f(),this.isCustomLink(p.open)){if(!this.customLinkClicked(p.open))return}else this.openLink(p.open);
+null==p.wait||c||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;l()}),g++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,""!=p.wait?parseInt(p.wait):1E3),f());null!=p.opacity&&null!=p.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(p.opacity,!0)),p.opacity.value);null!=p.fadeIn&&(g++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(p.fadeIn,!0)),0,1,l,c?0:
+p.fadeIn.delay));null!=p.fadeOut&&(g++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(p.fadeOut,!0)),1,0,l,c?0:p.fadeOut.delay));null!=p.wipeIn&&(t=t.concat(this.createWipeAnimations(this.getCellsForAction(p.wipeIn,!0),!0)));null!=p.wipeOut&&(t=t.concat(this.createWipeAnimations(this.getCellsForAction(p.wipeOut,!0),!1)));null!=p.toggle&&(k(),this.toggleCells(this.getCellsForAction(p.toggle,!0)));if(null!=p.show){k();var n=this.getCellsForAction(p.show,!0);Graph.setOpacityForNodes(this.getNodesForCells(n),
1);this.setCellsVisible(n,!0)}null!=p.hide&&(k(),n=this.getCellsForAction(p.hide,!0),Graph.setOpacityForNodes(this.getNodesForCells(n),0),this.setCellsVisible(n,!1));null!=p.toggleStyle&&null!=p.toggleStyle.key&&(k(),this.toggleCellStyles(p.toggleStyle.key,null!=p.toggleStyle.defaultValue?p.toggleStyle.defaultValue:"0",this.getCellsForAction(p.toggleStyle,!0)));null!=p.style&&null!=p.style.key&&(k(),this.setCellStyles(p.style.key,p.style.value,this.getCellsForAction(p.style,!0)));n=[];null!=p.select&&
this.isEnabled()&&(n=this.getCellsForAction(p.select),this.setSelectionCells(n));null!=p.highlight&&(n=this.getCellsForAction(p.highlight),this.highlightCells(n,p.highlight.color,p.highlight.duration,p.highlight.opacity));null!=p.scroll&&(n=this.getCellsForAction(p.scroll));null!=p.viewbox&&this.fitWindow(p.viewbox,p.viewbox.border);0<n.length&&this.scrollCellToVisible(n[0]);if(null!=p.tags){n=[];null!=p.tags.hidden&&(n=n.concat(p.tags.hidden));if(null!=p.tags.visible)for(var u=this.getAllTags(),
-v=0;v<u.length;v++)0>mxUtils.indexOf(p.tags.visible,u[v])&&0>mxUtils.indexOf(n,u[v])&&n.push(u[v]);this.hiddenTags=n;this.refresh()}0<q.length&&(g++,this.executeAnimations(q,m,c?1:p.steps,c?0:p.delay));0==g?l():f()}else this.stoppingCustomActions=this.executingCustomActions=!1,f(),null!=d&&d()});l()}};Graph.prototype.doUpdateCustomLinksForCell=function(b,d){var c=this.getLinkForCell(d);null!=c&&"data:action/json,"==c.substring(0,17)&&this.setLinkForCell(d,this.updateCustomLink(b,c));if(this.isHtmlLabel(d)){var g=
+v=0;v<u.length;v++)0>mxUtils.indexOf(p.tags.visible,u[v])&&0>mxUtils.indexOf(n,u[v])&&n.push(u[v]);this.hiddenTags=n;this.refresh()}0<t.length&&(g++,this.executeAnimations(t,l,c?1:p.steps,c?0:p.delay));0==g?m():f()}else this.stoppingCustomActions=this.executingCustomActions=!1,f(),null!=d&&d()});m()}};Graph.prototype.doUpdateCustomLinksForCell=function(b,d){var c=this.getLinkForCell(d);null!=c&&"data:action/json,"==c.substring(0,17)&&this.setLinkForCell(d,this.updateCustomLink(b,c));if(this.isHtmlLabel(d)){var g=
document.createElement("div");g.innerHTML=this.sanitizeHtml(this.getLabel(d));for(var e=g.getElementsByTagName("a"),k=!1,f=0;f<e.length;f++)c=e[f].getAttribute("href"),null!=c&&"data:action/json,"==c.substring(0,17)&&(e[f].setAttribute("href",this.updateCustomLink(b,c)),k=!0);k&&this.labelChanged(d,g.innerHTML)}};Graph.prototype.updateCustomLink=function(b,d){if("data:action/json,"==d.substring(0,17))try{var c=JSON.parse(d.substring(17));null!=c.actions&&(this.updateCustomLinkActions(b,c.actions),
d="data:action/json,"+JSON.stringify(c))}catch(W){}return d};Graph.prototype.updateCustomLinkActions=function(b,d){for(var c=0;c<d.length;c++){var g=d[c],e;for(e in g)this.updateCustomLinkAction(b,g[e],"cells"),this.updateCustomLinkAction(b,g[e],"excludeCells")}};Graph.prototype.updateCustomLinkAction=function(b,d,c){if(null!=d&&null!=d[c]){for(var g=[],e=0;e<d[c].length;e++)if("*"==d[c][e])g.push(d[c][e]);else{var k=b[d[c][e]];null!=k?""!=k&&g.push(k):g.push(d[c][e])}d[c]=g}};Graph.prototype.getCellsForAction=
function(b,d){var c=this.getCellsById(b.cells).concat(this.getCellsForTags(b.tags,null,d));if(null!=b.excludeCells){for(var g=[],e=0;e<c.length;e++)0>b.excludeCells.indexOf(c[e].id)&&g.push(c[e]);c=g}return c};Graph.prototype.getCellsById=function(b){var d=[];if(null!=b)for(var c=0;c<b.length;c++)if("*"==b[c])var g=this.model.getRoot(),d=d.concat(this.model.filterDescendants(function(b){return b!=g},g));else{var e=this.model.getCell(b[c]);null!=e&&d.push(e)}return d};var V=Graph.prototype.isCellVisible;
Graph.prototype.isCellVisible=function(b){return V.apply(this,arguments)&&!this.isAllTagsHidden(this.getTagsForCell(b))};Graph.prototype.isAllTagsHidden=function(b){if(null==b||0==b.length||0==this.hiddenTags.length)return!1;b=b.split(" ");if(b.length>this.hiddenTags.length)return!1;for(var d=0;d<b.length;d++)if(0>mxUtils.indexOf(this.hiddenTags,b[d]))return!1;return!0};Graph.prototype.getCellsForTags=function(b,d,c,g){var e=[];if(null!=b){d=null!=d?d:this.model.getDescendants(this.model.getRoot());
-for(var k=0,f={},m=0;m<b.length;m++)0<b[m].length&&(f[b[m]]=!0,k++);for(m=0;m<d.length;m++)if(c&&this.model.getParent(d[m])==this.model.root||this.model.isVertex(d[m])||this.model.isEdge(d[m])){var l=this.getTagsForCell(d[m]),p=!1;if(0<l.length&&(l=l.split(" "),l.length>=b.length)){for(var q=p=0;q<l.length&&p<k;q++)null!=f[l[q]]&&p++;p=p==k}p&&(1!=g||this.isCellVisible(d[m]))&&e.push(d[m])}}return e};Graph.prototype.getAllTags=function(){return this.getTagsForCells(this.model.getDescendants(this.model.getRoot()))};
+for(var k=0,f={},l=0;l<b.length;l++)0<b[l].length&&(f[b[l]]=!0,k++);for(l=0;l<d.length;l++)if(c&&this.model.getParent(d[l])==this.model.root||this.model.isVertex(d[l])||this.model.isEdge(d[l])){var m=this.getTagsForCell(d[l]),p=!1;if(0<m.length&&(m=m.split(" "),m.length>=b.length)){for(var t=p=0;t<m.length&&p<k;t++)null!=f[m[t]]&&p++;p=p==k}p&&(1!=g||this.isCellVisible(d[l]))&&e.push(d[l])}}return e};Graph.prototype.getAllTags=function(){return this.getTagsForCells(this.model.getDescendants(this.model.getRoot()))};
Graph.prototype.getCommonTagsForCells=function(b){for(var d=null,c=[],g=0;g<b.length;g++){var e=this.getTagsForCell(b[g]),c=[];if(0<e.length){for(var e=e.split(" "),k={},f=0;f<e.length;f++)if(null==d||null!=d[e[f]])k[e[f]]=!0,c.push(e[f]);d=k}else return[]}return c};Graph.prototype.getTagsForCells=function(b){for(var d=[],c={},g=0;g<b.length;g++){var e=this.getTagsForCell(b[g]);if(0<e.length)for(var e=e.split(" "),k=0;k<e.length;k++)null==c[e[k]]&&(c[e[k]]=!0,d.push(e[k]))}return d};Graph.prototype.getTagsForCell=
-function(b){return this.getAttributeForCell(b,"tags","")};Graph.prototype.addTagsForCells=function(b,d){if(0<b.length&&0<d.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){for(var g=this.getTagsForCell(b[c]),e=g.split(" "),k=!1,f=0;f<d.length;f++){var m=mxUtils.trim(d[f]);""!=m&&0>mxUtils.indexOf(e,m)&&(g=0<g.length?g+" "+m:m,k=!0)}k&&this.setAttributeForCell(b[c],"tags",g)}}finally{this.model.endUpdate()}}};Graph.prototype.removeTagsForCells=function(b,d){if(0<b.length&&0<d.length){this.model.beginUpdate();
-try{for(var c=0;c<b.length;c++){var g=this.getTagsForCell(b[c]);if(0<g.length){for(var e=g.split(" "),k=!1,f=0;f<d.length;f++){var m=mxUtils.indexOf(e,d[f]);0<=m&&(e.splice(m,1),k=!0)}k&&this.setAttributeForCell(b[c],"tags",e.join(" "))}}}finally{this.model.endUpdate()}}};Graph.prototype.toggleCells=function(b){this.model.beginUpdate();try{for(var d=0;d<b.length;d++)this.model.setVisible(b[d],!this.model.isVisible(b[d]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(b,
+function(b){return this.getAttributeForCell(b,"tags","")};Graph.prototype.addTagsForCells=function(b,d){if(0<b.length&&0<d.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){for(var g=this.getTagsForCell(b[c]),e=g.split(" "),k=!1,f=0;f<d.length;f++){var l=mxUtils.trim(d[f]);""!=l&&0>mxUtils.indexOf(e,l)&&(g=0<g.length?g+" "+l:l,k=!0)}k&&this.setAttributeForCell(b[c],"tags",g)}}finally{this.model.endUpdate()}}};Graph.prototype.removeTagsForCells=function(b,d){if(0<b.length&&0<d.length){this.model.beginUpdate();
+try{for(var c=0;c<b.length;c++){var g=this.getTagsForCell(b[c]);if(0<g.length){for(var e=g.split(" "),k=!1,f=0;f<d.length;f++){var l=mxUtils.indexOf(e,d[f]);0<=l&&(e.splice(l,1),k=!0)}k&&this.setAttributeForCell(b[c],"tags",e.join(" "))}}}finally{this.model.endUpdate()}}};Graph.prototype.toggleCells=function(b){this.model.beginUpdate();try{for(var d=0;d<b.length;d++)this.model.setVisible(b[d],!this.model.isVisible(b[d]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(b,
d){this.model.beginUpdate();try{for(var c=0;c<b.length;c++)this.model.setVisible(b[c],d)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(b,d,c,g){for(var e=0;e<b.length;e++)this.highlightCell(b[e],d,c,g)};Graph.prototype.highlightCell=function(b,d,c,g,e){d=null!=d?d:mxConstants.DEFAULT_VALID_COLOR;c=null!=c?c:1E3;b=this.view.getState(b);var k=null;null!=b&&(e=null!=e?e:4,e=Math.max(e+1,mxUtils.getValue(b.style,mxConstants.STYLE_STROKEWIDTH,1)+e),k=new mxCellHighlight(this,
d,e,!1),null!=g&&(k.opacity=g),k.highlight(b),window.setTimeout(function(){null!=k.shape&&(mxUtils.setPrefixedStyle(k.shape.node.style,"transition","all 1200ms ease-in-out"),k.shape.node.style.opacity=0);window.setTimeout(function(){k.destroy()},1200)},c));return k};Graph.prototype.addSvgShadow=function(b,d,c,g){c=null!=c?c:!1;g=null!=g?g:!0;var e=b.ownerDocument,k=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"filter"):e.createElement("filter");k.setAttribute("id",this.shadowId);var f=
null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):e.createElement("feGaussianBlur");f.setAttribute("in","SourceAlpha");f.setAttribute("stdDeviation",this.svgShadowBlur);f.setAttribute("result","blur");k.appendChild(f);f=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feOffset"):e.createElement("feOffset");f.setAttribute("in","blur");f.setAttribute("dx",this.svgShadowSize);f.setAttribute("dy",this.svgShadowSize);f.setAttribute("result","offsetBlur");k.appendChild(f);
@@ -3395,35 +3395,35 @@ mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupN
"/gmdl.xml"];mxStencilRegistry.libraries.gcp2=[SHAPES_PATH+"/mxGCP2.js",STENCIL_PATH+"/gcp2.xml"];mxStencilRegistry.libraries.ibm=[SHAPES_PATH+"/mxIBM.js",STENCIL_PATH+"/ibm.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=
[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.aws4=[SHAPES_PATH+"/mxAWS4.js",STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.aws4b=[SHAPES_PATH+"/mxAWS4.js",STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.uml25=[SHAPES_PATH+"/mxUML25.js"];mxStencilRegistry.libraries.veeam=
[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.veeam2=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam2.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=
-[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(b){var d=null;null!=b&&0<b.length&&("ER"==b.substring(0,2)?d="mxgraph.er":"sysML"==b.substring(0,5)&&(d="mxgraph.sysml"));return d};var X=mxMarker.createMarker;mxMarker.createMarker=function(b,d,c,g,e,k,f,m,l,p){if(null!=c&&null==mxMarker.markers[c]){var q=this.getPackageForType(c);null!=q&&mxStencilRegistry.getStencil(q)}return X.apply(this,arguments)};var ja=mxStencil.prototype.drawShape;mxStencil.prototype.drawShape=function(b,
-d,c,g,e,k){"1"==mxUtils.getValue(d.style,"lineShape",null)&&b.setFillColor(mxUtils.getValue(d.style,mxConstants.STYLE_STROKECOLOR,this.stroke));return ja.apply(this,arguments)};PrintDialog.prototype.create=function(b,d){function c(){v.value=Math.max(1,Math.min(m,Math.max(parseInt(v.value),parseInt(u.value))));u.value=Math.max(1,Math.min(m,Math.min(parseInt(v.value),parseInt(u.value))))}function g(d){function c(d,c,k){var f=d.useCssTransforms,m=d.currentTranslate,l=d.currentScale,p=d.view.translate,
-q=d.view.scale;d.useCssTransforms&&(d.useCssTransforms=!1,d.currentTranslate=new mxPoint(0,0),d.currentScale=1,d.view.translate=new mxPoint(0,0),d.view.scale=1);var n=d.getGraphBounds(),u=0,v=0,x=V.get(),t=1/d.pageScale,C=M.checked;if(C)var t=parseInt(B.value),Q=parseInt(F.value),t=Math.min(x.height*Q/(n.height/d.view.scale),x.width*t/(n.width/d.view.scale));else t=parseInt(A.value)/(100*d.pageScale),isNaN(t)&&(g=1/d.pageScale,A.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*
-g);x.height=Math.ceil(x.height*g);t*=g;!C&&d.pageVisible?(n=d.getPageLayout(),u-=n.x*x.width,v-=n.y*x.height):C=!0;if(null==c){c=PrintDialog.createPrintPreview(d,t,x,0,u,v,C);c.pageSelector=!1;c.mathEnabled=!1;y.checked&&(c.isCellVisible=function(b){return d.isCellSelected(b)});u=b.getCurrentFile();null!=u&&(c.title=u.getTitle());var E=c.writeHead;c.writeHead=function(c){E.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)c.writeln('<style type="text/css">'),c.writeln(Editor.mathJaxWebkitCss),
+[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(b){var d=null;null!=b&&0<b.length&&("ER"==b.substring(0,2)?d="mxgraph.er":"sysML"==b.substring(0,5)&&(d="mxgraph.sysml"));return d};var X=mxMarker.createMarker;mxMarker.createMarker=function(b,d,c,g,e,k,f,l,m,p){if(null!=c&&null==mxMarker.markers[c]){var t=this.getPackageForType(c);null!=t&&mxStencilRegistry.getStencil(t)}return X.apply(this,arguments)};var ja=mxStencil.prototype.drawShape;mxStencil.prototype.drawShape=function(b,
+d,c,g,e,k){"1"==mxUtils.getValue(d.style,"lineShape",null)&&b.setFillColor(mxUtils.getValue(d.style,mxConstants.STYLE_STROKECOLOR,this.stroke));return ja.apply(this,arguments)};PrintDialog.prototype.create=function(b,d){function c(){v.value=Math.max(1,Math.min(l,Math.max(parseInt(v.value),parseInt(u.value))));u.value=Math.max(1,Math.min(l,Math.min(parseInt(v.value),parseInt(u.value))))}function g(d){function c(d,c,k){var f=d.useCssTransforms,l=d.currentTranslate,m=d.currentScale,p=d.view.translate,
+t=d.view.scale;d.useCssTransforms&&(d.useCssTransforms=!1,d.currentTranslate=new mxPoint(0,0),d.currentScale=1,d.view.translate=new mxPoint(0,0),d.view.scale=1);var n=d.getGraphBounds(),u=0,v=0,x=V.get(),q=1/d.pageScale,C=M.checked;if(C)var q=parseInt(B.value),Q=parseInt(F.value),q=Math.min(x.height*Q/(n.height/d.view.scale),x.width*q/(n.width/d.view.scale));else q=parseInt(A.value)/(100*d.pageScale),isNaN(q)&&(g=1/d.pageScale,A.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*
+g);x.height=Math.ceil(x.height*g);q*=g;!C&&d.pageVisible?(n=d.getPageLayout(),u-=n.x*x.width,v-=n.y*x.height):C=!0;if(null==c){c=PrintDialog.createPrintPreview(d,q,x,0,u,v,C);c.pageSelector=!1;c.mathEnabled=!1;y.checked&&(c.isCellVisible=function(b){return d.isCellSelected(b)});u=b.getCurrentFile();null!=u&&(c.title=u.getTitle());var E=c.writeHead;c.writeHead=function(c){E.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)c.writeln('<style type="text/css">'),c.writeln(Editor.mathJaxWebkitCss),
c.writeln("</style>");mxClient.IS_GC&&(c.writeln('<style type="text/css">'),c.writeln("@media print {"),c.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),c.writeln("}"),c.writeln("</style>"));null!=b.editor.fontCss&&(c.writeln('<style type="text/css">'),c.writeln(b.editor.fontCss),c.writeln("</style>"));for(var g=d.getCustomFonts(),e=0;e<g.length;e++){var k=g[e].name,f=g[e].url;Graph.isCssFontUrl(f)?c.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(f)+'" charset="UTF-8" type="text/css">'):
-(c.writeln('<style type="text/css">'),c.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(k)+'";\nsrc: url("'+mxUtils.htmlEntities(f)+'");\n}'),c.writeln("</style>"))}};if("undefined"!==typeof MathJax){var N=c.renderPage;c.renderPage=function(d,c,g,e,k,f){var m=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var l=N.apply(this,arguments);mxClient.NO_FO=m;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||
-!0:l.className="geDisableMathJax";return l}}u=null;v=e.shapeForegroundColor;C=e.shapeBackgroundColor;x=e.enableFlowAnimation;e.enableFlowAnimation=!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(u=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.shapeForegroundColor="#000000",e.shapeBackgroundColor="#ffffff",e.refresh());c.open(null,null,k,!0);e.enableFlowAnimation=x;null!=u&&(e.shapeForegroundColor=v,e.shapeBackgroundColor=C,e.stylesheet=u,e.refresh())}else{x=d.background;if(null==x||""==
-x||x==mxConstants.NONE)x="#ffffff";c.backgroundColor=x;c.autoOrigin=C;c.appendGraph(d,t,u,v,k,!0);k=d.getCustomFonts();if(null!=c.wnd)for(u=0;u<k.length;u++)v=k[u].name,C=k[u].url,Graph.isCssFontUrl(C)?c.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(C)+'" charset="UTF-8" type="text/css">'):(c.wnd.document.writeln('<style type="text/css">'),c.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(v)+'";\nsrc: url("'+mxUtils.htmlEntities(C)+'");\n}'),c.wnd.document.writeln("</style>"))}f&&
-(d.useCssTransforms=f,d.currentTranslate=m,d.currentScale=l,d.view.translate=p,d.view.scale=q);return c}var g=parseInt(Y.value)/100;isNaN(g)&&(g=1,Y.value="100 %");var g=.75*g,k=null,f=e.shapeForegroundColor,m=e.shapeBackgroundColor;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(k=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.shapeForegroundColor="#000000",e.shapeBackgroundColor="#ffffff",e.refresh());var p=u.value,n=v.value,x=!q.checked,t=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,
-q.checked,p,n,M.checked,B.value,F.value,parseInt(A.value)/100,parseInt(Y.value)/100,V.get());else{x&&(x=y.checked||p==l&&n==l);if(!x&&null!=b.pages&&b.pages.length){var C=0,x=b.pages.length-1;q.checked||(C=parseInt(p)-1,x=parseInt(n)-1);for(var Q=C;Q<=x;Q++){var E=b.pages[Q],p=E==b.currentPage?e:null;if(null==p){p=b.createTemporaryGraph(e.stylesheet);p.shapeForegroundColor=e.shapeForegroundColor;p.shapeBackgroundColor=e.shapeBackgroundColor;var n=!0,C=!1,N=null,L=null;null==E.viewState&&null==E.root&&
-b.updatePageRoot(E);null!=E.viewState&&(n=E.viewState.pageVisible,C=E.viewState.mathEnabled,N=E.viewState.background,L=E.viewState.backgroundImage,p.extFonts=E.viewState.extFonts);null!=L&&null!=L.originalSrc&&(L=b.createImageForPageLink(L.originalSrc,E));p.background=N;p.backgroundImage=null!=L?new mxImage(L.src,L.width,L.height,L.x,L.y):null;p.pageVisible=n;p.mathEnabled=C;var G=p.getGraphBounds;p.getGraphBounds=function(){var b=G.apply(this,arguments),d=this.backgroundImage;if(null!=d&&null!=d.width&&
-null!=d.height){var c=this.view.translate,g=this.view.scale,b=mxRectangle.fromRectangle(b);b.add(new mxRectangle((c.x+d.x)*g,(c.y+d.y)*g,d.width*g,d.height*g))}return b};var D=p.getGlobalVariable;p.getGlobalVariable=function(d){return"page"==d?E.getName():"pagenumber"==d?Q+1:"pagecount"==d?null!=b.pages?b.pages.length:1:D.apply(this,arguments)};document.body.appendChild(p.container);b.updatePageRoot(E);p.model.setRoot(E.root)}t=c(p,t,Q!=x);p!=e&&p.container.parentNode.removeChild(p.container)}}else t=
-c(e);null==t?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(t.mathEnabled&&(x=t.wnd.document,d&&(t.wnd.IMMEDIATE_PRINT=!0),x.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),t.closeDocument(),!t.mathEnabled&&d&&PrintDialog.printPreview(t));null!=k&&(e.shapeForegroundColor=f,e.shapeBackgroundColor=m,e.stylesheet=k,e.refresh())}}var e=b.editor.graph,k=document.createElement("div"),f=document.createElement("h3");f.style.width="100%";
-f.style.textAlign="center";f.style.marginTop="0px";mxUtils.write(f,d||mxResources.get("print"));k.appendChild(f);var m=1,l=1,p=document.createElement("div");p.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","all");q.setAttribute("type","radio");q.setAttribute("name","pages-printdialog");p.appendChild(q);f=document.createElement("span");mxUtils.write(f,
-mxResources.get("printAllPages"));p.appendChild(f);mxUtils.br(p);var n=q.cloneNode(!0);q.setAttribute("checked","checked");n.setAttribute("value","range");p.appendChild(n);f=document.createElement("span");mxUtils.write(f,mxResources.get("pages")+":");p.appendChild(f);var u=document.createElement("input");u.style.cssText="margin:0 8px 0 8px;";u.setAttribute("value","1");u.setAttribute("type","number");u.setAttribute("min","1");u.style.width="50px";p.appendChild(u);f=document.createElement("span");
-mxUtils.write(f,mxResources.get("to"));p.appendChild(f);var v=u.cloneNode(!0);p.appendChild(v);mxEvent.addListener(u,"focus",function(){n.checked=!0});mxEvent.addListener(v,"focus",function(){n.checked=!0});mxEvent.addListener(u,"change",c);mxEvent.addListener(v,"change",c);if(null!=b.pages&&(m=b.pages.length,null!=b.currentPage))for(f=0;f<b.pages.length;f++)if(b.currentPage==b.pages[f]){l=f+1;u.value=l;v.value=l;break}u.setAttribute("max",m);v.setAttribute("max",m);b.isPagesEnabled()?1<m&&(k.appendChild(p),
-n.checked=!0):n.checked=!0;mxUtils.br(p);var y=document.createElement("input");y.setAttribute("value","all");y.setAttribute("type","radio");y.style.marginRight="8px";e.isSelectionEmpty()&&y.setAttribute("disabled","disabled");var x=document.createElement("div");x.style.marginBottom="10px";1==m?(y.setAttribute("type","checkbox"),y.style.marginBottom="12px",x.appendChild(y)):(y.setAttribute("name","pages-printdialog"),y.style.marginBottom="8px",p.appendChild(y));f=document.createElement("span");mxUtils.write(f,
-mxResources.get("selectionOnly"));y.parentNode.appendChild(f);1==m&&mxUtils.br(y.parentNode);var t=document.createElement("input");t.style.marginRight="8px";t.setAttribute("value","adjust");t.setAttribute("type","radio");t.setAttribute("name","printZoom");x.appendChild(t);f=document.createElement("span");mxUtils.write(f,mxResources.get("adjustTo"));x.appendChild(f);var A=document.createElement("input");A.style.cssText="margin:0 8px 0 8px;";A.setAttribute("value","100 %");A.style.width="50px";x.appendChild(A);
-mxEvent.addListener(A,"focus",function(){t.checked=!0});k.appendChild(x);var p=p.cloneNode(!1),M=t.cloneNode(!0);M.setAttribute("value","fit");t.setAttribute("checked","checked");f=document.createElement("div");f.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";f.appendChild(M);p.appendChild(f);x=document.createElement("table");x.style.display="inline-block";var C=document.createElement("tbody"),Q=document.createElement("tr"),E=Q.cloneNode(!0),N=document.createElement("td"),
-L=N.cloneNode(!0),G=N.cloneNode(!0),D=N.cloneNode(!0),H=N.cloneNode(!0),ja=N.cloneNode(!0);N.style.textAlign="right";D.style.textAlign="right";mxUtils.write(N,mxResources.get("fitTo"));var B=document.createElement("input");B.style.cssText="margin:0 8px 0 8px;";B.setAttribute("value","1");B.setAttribute("min","1");B.setAttribute("type","number");B.style.width="40px";L.appendChild(B);f=document.createElement("span");mxUtils.write(f,mxResources.get("fitToSheetsAcross"));G.appendChild(f);mxUtils.write(D,
-mxResources.get("fitToBy"));var F=B.cloneNode(!0);H.appendChild(F);mxEvent.addListener(B,"focus",function(){M.checked=!0});mxEvent.addListener(F,"focus",function(){M.checked=!0});f=document.createElement("span");mxUtils.write(f,mxResources.get("fitToSheetsDown"));ja.appendChild(f);Q.appendChild(N);Q.appendChild(L);Q.appendChild(G);E.appendChild(D);E.appendChild(H);E.appendChild(ja);C.appendChild(Q);C.appendChild(E);x.appendChild(C);p.appendChild(x);k.appendChild(p);p=document.createElement("div");
+(c.writeln('<style type="text/css">'),c.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(k)+'";\nsrc: url("'+mxUtils.htmlEntities(f)+'");\n}'),c.writeln("</style>"))}};if("undefined"!==typeof MathJax){var N=c.renderPage;c.renderPage=function(d,c,g,e,k,f){var l=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var m=N.apply(this,arguments);mxClient.NO_FO=l;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||
+!0:m.className="geDisableMathJax";return m}}u=null;v=e.shapeForegroundColor;C=e.shapeBackgroundColor;x=e.enableFlowAnimation;e.enableFlowAnimation=!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(u=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.shapeForegroundColor="#000000",e.shapeBackgroundColor="#ffffff",e.refresh());c.open(null,null,k,!0);e.enableFlowAnimation=x;null!=u&&(e.shapeForegroundColor=v,e.shapeBackgroundColor=C,e.stylesheet=u,e.refresh())}else{x=d.background;if(null==x||""==
+x||x==mxConstants.NONE)x="#ffffff";c.backgroundColor=x;c.autoOrigin=C;c.appendGraph(d,q,u,v,k,!0);k=d.getCustomFonts();if(null!=c.wnd)for(u=0;u<k.length;u++)v=k[u].name,C=k[u].url,Graph.isCssFontUrl(C)?c.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(C)+'" charset="UTF-8" type="text/css">'):(c.wnd.document.writeln('<style type="text/css">'),c.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(v)+'";\nsrc: url("'+mxUtils.htmlEntities(C)+'");\n}'),c.wnd.document.writeln("</style>"))}f&&
+(d.useCssTransforms=f,d.currentTranslate=l,d.currentScale=m,d.view.translate=p,d.view.scale=t);return c}var g=parseInt(Y.value)/100;isNaN(g)&&(g=1,Y.value="100 %");var g=.75*g,k=null,f=e.shapeForegroundColor,l=e.shapeBackgroundColor;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(k=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.shapeForegroundColor="#000000",e.shapeBackgroundColor="#ffffff",e.refresh());var p=u.value,n=v.value,x=!t.checked,q=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,
+t.checked,p,n,M.checked,B.value,F.value,parseInt(A.value)/100,parseInt(Y.value)/100,V.get());else{x&&(x=y.checked||p==m&&n==m);if(!x&&null!=b.pages&&b.pages.length){var C=0,x=b.pages.length-1;t.checked||(C=parseInt(p)-1,x=parseInt(n)-1);for(var Q=C;Q<=x;Q++){var E=b.pages[Q],p=E==b.currentPage?e:null;if(null==p){p=b.createTemporaryGraph(e.stylesheet);p.shapeForegroundColor=e.shapeForegroundColor;p.shapeBackgroundColor=e.shapeBackgroundColor;var n=!0,C=!1,N=null,J=null;null==E.viewState&&null==E.root&&
+b.updatePageRoot(E);null!=E.viewState&&(n=E.viewState.pageVisible,C=E.viewState.mathEnabled,N=E.viewState.background,J=E.viewState.backgroundImage,p.extFonts=E.viewState.extFonts);null!=J&&null!=J.originalSrc&&(J=b.createImageForPageLink(J.originalSrc,E));p.background=N;p.backgroundImage=null!=J?new mxImage(J.src,J.width,J.height,J.x,J.y):null;p.pageVisible=n;p.mathEnabled=C;var G=p.getGraphBounds;p.getGraphBounds=function(){var b=G.apply(this,arguments),d=this.backgroundImage;if(null!=d&&null!=d.width&&
+null!=d.height){var c=this.view.translate,g=this.view.scale,b=mxRectangle.fromRectangle(b);b.add(new mxRectangle((c.x+d.x)*g,(c.y+d.y)*g,d.width*g,d.height*g))}return b};var D=p.getGlobalVariable;p.getGlobalVariable=function(d){return"page"==d?E.getName():"pagenumber"==d?Q+1:"pagecount"==d?null!=b.pages?b.pages.length:1:D.apply(this,arguments)};document.body.appendChild(p.container);b.updatePageRoot(E);p.model.setRoot(E.root)}q=c(p,q,Q!=x);p!=e&&p.container.parentNode.removeChild(p.container)}}else q=
+c(e);null==q?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(q.mathEnabled&&(x=q.wnd.document,d&&(q.wnd.IMMEDIATE_PRINT=!0),x.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),q.closeDocument(),!q.mathEnabled&&d&&PrintDialog.printPreview(q));null!=k&&(e.shapeForegroundColor=f,e.shapeBackgroundColor=l,e.stylesheet=k,e.refresh())}}var e=b.editor.graph,k=document.createElement("div"),f=document.createElement("h3");f.style.width="100%";
+f.style.textAlign="center";f.style.marginTop="0px";mxUtils.write(f,d||mxResources.get("print"));k.appendChild(f);var l=1,m=1,p=document.createElement("div");p.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var t=document.createElement("input");t.style.cssText="margin-right:8px;margin-bottom:8px;";t.setAttribute("value","all");t.setAttribute("type","radio");t.setAttribute("name","pages-printdialog");p.appendChild(t);f=document.createElement("span");mxUtils.write(f,
+mxResources.get("printAllPages"));p.appendChild(f);mxUtils.br(p);var n=t.cloneNode(!0);t.setAttribute("checked","checked");n.setAttribute("value","range");p.appendChild(n);f=document.createElement("span");mxUtils.write(f,mxResources.get("pages")+":");p.appendChild(f);var u=document.createElement("input");u.style.cssText="margin:0 8px 0 8px;";u.setAttribute("value","1");u.setAttribute("type","number");u.setAttribute("min","1");u.style.width="50px";p.appendChild(u);f=document.createElement("span");
+mxUtils.write(f,mxResources.get("to"));p.appendChild(f);var v=u.cloneNode(!0);p.appendChild(v);mxEvent.addListener(u,"focus",function(){n.checked=!0});mxEvent.addListener(v,"focus",function(){n.checked=!0});mxEvent.addListener(u,"change",c);mxEvent.addListener(v,"change",c);if(null!=b.pages&&(l=b.pages.length,null!=b.currentPage))for(f=0;f<b.pages.length;f++)if(b.currentPage==b.pages[f]){m=f+1;u.value=m;v.value=m;break}u.setAttribute("max",l);v.setAttribute("max",l);b.isPagesEnabled()?1<l&&(k.appendChild(p),
+n.checked=!0):n.checked=!0;mxUtils.br(p);var y=document.createElement("input");y.setAttribute("value","all");y.setAttribute("type","radio");y.style.marginRight="8px";e.isSelectionEmpty()&&y.setAttribute("disabled","disabled");var x=document.createElement("div");x.style.marginBottom="10px";1==l?(y.setAttribute("type","checkbox"),y.style.marginBottom="12px",x.appendChild(y)):(y.setAttribute("name","pages-printdialog"),y.style.marginBottom="8px",p.appendChild(y));f=document.createElement("span");mxUtils.write(f,
+mxResources.get("selectionOnly"));y.parentNode.appendChild(f);1==l&&mxUtils.br(y.parentNode);var q=document.createElement("input");q.style.marginRight="8px";q.setAttribute("value","adjust");q.setAttribute("type","radio");q.setAttribute("name","printZoom");x.appendChild(q);f=document.createElement("span");mxUtils.write(f,mxResources.get("adjustTo"));x.appendChild(f);var A=document.createElement("input");A.style.cssText="margin:0 8px 0 8px;";A.setAttribute("value","100 %");A.style.width="50px";x.appendChild(A);
+mxEvent.addListener(A,"focus",function(){q.checked=!0});k.appendChild(x);var p=p.cloneNode(!1),M=q.cloneNode(!0);M.setAttribute("value","fit");q.setAttribute("checked","checked");f=document.createElement("div");f.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";f.appendChild(M);p.appendChild(f);x=document.createElement("table");x.style.display="inline-block";var C=document.createElement("tbody"),Q=document.createElement("tr"),E=Q.cloneNode(!0),N=document.createElement("td"),
+J=N.cloneNode(!0),G=N.cloneNode(!0),D=N.cloneNode(!0),H=N.cloneNode(!0),ja=N.cloneNode(!0);N.style.textAlign="right";D.style.textAlign="right";mxUtils.write(N,mxResources.get("fitTo"));var B=document.createElement("input");B.style.cssText="margin:0 8px 0 8px;";B.setAttribute("value","1");B.setAttribute("min","1");B.setAttribute("type","number");B.style.width="40px";J.appendChild(B);f=document.createElement("span");mxUtils.write(f,mxResources.get("fitToSheetsAcross"));G.appendChild(f);mxUtils.write(D,
+mxResources.get("fitToBy"));var F=B.cloneNode(!0);H.appendChild(F);mxEvent.addListener(B,"focus",function(){M.checked=!0});mxEvent.addListener(F,"focus",function(){M.checked=!0});f=document.createElement("span");mxUtils.write(f,mxResources.get("fitToSheetsDown"));ja.appendChild(f);Q.appendChild(N);Q.appendChild(J);Q.appendChild(G);E.appendChild(D);E.appendChild(H);E.appendChild(ja);C.appendChild(Q);C.appendChild(E);x.appendChild(C);p.appendChild(x);k.appendChild(p);p=document.createElement("div");
f=document.createElement("div");f.style.fontWeight="bold";f.style.marginBottom="12px";mxUtils.write(f,mxResources.get("paperSize"));p.appendChild(f);f=document.createElement("div");f.style.marginBottom="12px";var V=PageSetupDialog.addPageFormatPanel(f,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);p.appendChild(f);f=document.createElement("span");mxUtils.write(f,mxResources.get("pageScale"));p.appendChild(f);var Y=document.createElement("input");Y.style.cssText="margin:0 8px 0 8px;";
Y.setAttribute("value","100 %");Y.style.width="60px";p.appendChild(Y);k.appendChild(p);f=document.createElement("div");f.style.cssText="text-align:right;margin:48px 0 0 0;";p=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});p.className="geBtn";b.editor.cancelFirst&&f.appendChild(p);b.isOffline()||(x=mxUtils.button(mxResources.get("help"),function(){e.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),x.className="geBtn",f.appendChild(x));PrintDialog.previewEnabled&&(x=
mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();g(!1)}),x.className="geBtn",f.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();g(!0)});x.className="geBtn gePrimaryBtn";f.appendChild(x);b.editor.cancelFirst||f.appendChild(p);k.appendChild(f);this.container=k};var Y=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);if(this.page!=this.ui.currentPage){if(null!=
this.page.viewState){this.ignoreColor||(this.page.viewState.background=this.color);if(!this.ignoreImage){var b=this.image;null!=b&&null!=b.src&&Graph.isPageLink(b.src)&&(b={originalSrc:b.src});this.page.viewState.backgroundImage=b}null!=this.format&&(this.page.viewState.pageFormat=this.format);null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled);null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)}}else Y.apply(this,arguments),null!=this.mathEnabled&&
this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible)};Editor.prototype.useCanvasForExport=!1;try{var da=document.createElement("canvas"),ba=new Image;ba.onload=function(){try{da.getContext("2d").drawImage(ba,0,0);var b=da.toDataURL("image/png");Editor.prototype.useCanvasForExport=
-null!=b&&6<b.length}catch(J){}};ba.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(B){}})();
+null!=b&&6<b.length}catch(L){}};ba.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(B){}})();
(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(b,e,f){f.ui=b.ui;return e};b.afterDecode=function(b,e,f){f.previousColor=f.color;f.previousImage=f.image;f.previousFormat=f.format;null!=f.foldingEnabled&&(f.foldingEnabled=!f.foldingEnabled);null!=f.mathEnabled&&(f.mathEnabled=!f.mathEnabled);null!=f.shadowVisible&&(f.shadowVisible=!f.shadowVisible);return f};mxCodecRegistry.register(b)})();
-(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,e,f){f.ui=b.ui;return e};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="17.3.0";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
+(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,e,f){f.ui=b.ui;return e};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="17.4.0";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl="1"==urlParams.dev?"https://app.diagrams.net/cache":window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;
EditorUi.nativeFileSupport=!mxClient.IS_OP&&!EditorUi.isElectronApp&&"1"!=urlParams.extAuth&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.enableHtmlEditOption=!0;EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,
width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(b,c,g,e,f,l,n){l=null!=l?l:0<=b.indexOf("NetworkError")||0<=b.indexOf("SecurityError")||0<=b.indexOf("NS_ERROR_FAILURE")||
@@ -3437,9 +3437,9 @@ null!=b&&6<b.length}catch(p){}};g.src="data:image/svg+xml;base64,"+btoa(unescape
EditorUi.prototype.openLink=function(b,c,g){return this.editor.graph.openLink(b,c,g)};EditorUi.prototype.showSplash=function(b){};EditorUi.prototype.getLocalData=function(b,c){c(localStorage.getItem(b))};EditorUi.prototype.setLocalData=function(b,c,g){localStorage.setItem(b,c);null!=g&&g()};EditorUi.prototype.removeLocalData=function(b,c){localStorage.removeItem(b);c()};EditorUi.prototype.setShareCursorPosition=function(b){this.shareCursorPosition=b;this.fireEvent(new mxEventObject("shareCursorPositionChanged"))};
EditorUi.prototype.isShareCursorPosition=function(){return this.shareCursorPosition};EditorUi.prototype.setMathEnabled=function(b){this.editor.graph.mathEnabled=b;this.editor.updateGraphComponents();this.editor.graph.refresh();this.editor.graph.defaultMathEnabled=b;this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(b){return this.editor.graph.mathEnabled};EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=
function(b){return this.isOfflineApp()||!navigator.onLine||!b&&("1"==urlParams.stealth||"1"==urlParams.lockdown)};EditorUi.prototype.isExternalDataComms=function(){return"1"!=urlParams.offline&&!this.isOffline()&&!this.isOfflineApp()};EditorUi.prototype.createSpinner=function(b,c,g){var d=null==b||null==c;g=null!=g?g:24;var e=new Spinner({lines:12,length:g,width:Math.round(g/3),radius:Math.round(g/2),rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),
-k=e.spin;e.spin=function(g,f){var m=!1;this.active||(k.call(this,g),this.active=!0,null!=f&&(d&&(c=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,b=document.body.clientWidth/2-2),m=document.createElement("div"),m.style.position="absolute",m.style.whiteSpace="nowrap",m.style.background="#4B4243",m.style.color="white",m.style.fontFamily=Editor.defaultHtmlFont,m.style.fontSize="9pt",m.style.padding="6px",m.style.paddingLeft="10px",m.style.paddingRight="10px",m.style.zIndex=
-2E9,m.style.left=Math.max(0,b)+"px",m.style.top=Math.max(0,c+70)+"px",mxUtils.setPrefixedStyle(m.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(m.style,"transform","translate(-50%,-50%)"),Editor.isDarkMode()||mxUtils.setPrefixedStyle(m.style,"boxShadow","2px 2px 3px 0px #ddd"),"..."!=f.substring(f.length-3,f.length)&&"!"!=f.charAt(f.length-1)&&(f+="..."),m.innerHTML=f,g.appendChild(m),e.status=m),this.pause=mxUtils.bind(this,function(){var b=function(){};this.active&&(b=mxUtils.bind(this,function(){this.spin(g,
-f)}));this.stop();return b}),m=!0);return m};var f=e.stop;e.stop=function(){f.call(this);this.active=!1;null!=e.status&&null!=e.status.parentNode&&e.status.parentNode.removeChild(e.status);e.status=null};e.pause=function(){return function(){}};return e};EditorUi.prototype.isCompatibleString=function(b){try{var d=mxUtils.parseXml(b),c=this.editor.extractGraphModel(d.documentElement,!0);return null!=c&&0==c.getElementsByTagName("parsererror").length}catch(q){}return!1};EditorUi.prototype.isVisioData=
+k=e.spin;e.spin=function(g,f){var l=!1;this.active||(k.call(this,g),this.active=!0,null!=f&&(d&&(c=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,b=document.body.clientWidth/2-2),l=document.createElement("div"),l.style.position="absolute",l.style.whiteSpace="nowrap",l.style.background="#4B4243",l.style.color="white",l.style.fontFamily=Editor.defaultHtmlFont,l.style.fontSize="9pt",l.style.padding="6px",l.style.paddingLeft="10px",l.style.paddingRight="10px",l.style.zIndex=
+2E9,l.style.left=Math.max(0,b)+"px",l.style.top=Math.max(0,c+70)+"px",mxUtils.setPrefixedStyle(l.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(l.style,"transform","translate(-50%,-50%)"),Editor.isDarkMode()||mxUtils.setPrefixedStyle(l.style,"boxShadow","2px 2px 3px 0px #ddd"),"..."!=f.substring(f.length-3,f.length)&&"!"!=f.charAt(f.length-1)&&(f+="..."),l.innerHTML=f,g.appendChild(l),e.status=l),this.pause=mxUtils.bind(this,function(){var b=function(){};this.active&&(b=mxUtils.bind(this,function(){this.spin(g,
+f)}));this.stop();return b}),l=!0);return l};var f=e.stop;e.stop=function(){f.call(this);this.active=!1;null!=e.status&&null!=e.status.parentNode&&e.status.parentNode.removeChild(e.status);e.status=null};e.pause=function(){return function(){}};return e};EditorUi.prototype.isCompatibleString=function(b){try{var d=mxUtils.parseXml(b),c=this.editor.extractGraphModel(d.documentElement,!0);return null!=c&&0==c.getElementsByTagName("parsererror").length}catch(t){}return!1};EditorUi.prototype.isVisioData=
function(b){return 8<b.length&&(208==b.charCodeAt(0)&&207==b.charCodeAt(1)&&17==b.charCodeAt(2)&&224==b.charCodeAt(3)&&161==b.charCodeAt(4)&&177==b.charCodeAt(5)&&26==b.charCodeAt(6)&&225==b.charCodeAt(7)||80==b.charCodeAt(0)&&75==b.charCodeAt(1)&&3==b.charCodeAt(2)&&4==b.charCodeAt(3)||80==b.charCodeAt(0)&&75==b.charCodeAt(1)&&3==b.charCodeAt(2)&&6==b.charCodeAt(3))};EditorUi.prototype.isRemoteVisioData=function(b){return 8<b.length&&(208==b.charCodeAt(0)&&207==b.charCodeAt(1)&&17==b.charCodeAt(2)&&
224==b.charCodeAt(3)&&161==b.charCodeAt(4)&&177==b.charCodeAt(5)&&26==b.charCodeAt(6)&&225==b.charCodeAt(7)||60==b.charCodeAt(0)&&63==b.charCodeAt(1)&&120==b.charCodeAt(2)&&109==b.charCodeAt(3)&&108==b.charCodeAt(3))};var b=EditorUi.prototype.createKeyHandler;EditorUi.prototype.createKeyHandler=function(d){var c=b.apply(this,arguments);if(!this.editor.chromeless||this.editor.editable){var g=c.getFunction,e=this.editor.graph,f=this;c.getFunction=function(b){if(e.isSelectionEmpty()&&null!=f.pages&&
0<f.pages.length){var d=f.getSelectedPageIndex();if(mxEvent.isShiftDown(b)){if(37==b.keyCode)return function(){0<d&&f.movePage(d,d-1)};if(38==b.keyCode)return function(){0<d&&f.movePage(d,0)};if(39==b.keyCode)return function(){d<f.pages.length-1&&f.movePage(d,d+1)};if(40==b.keyCode)return function(){d<f.pages.length-1&&f.movePage(d,f.pages.length-1)}}else if(mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b)){if(37==b.keyCode)return function(){0<d&&f.selectNextPage(!1)};if(38==b.keyCode)return function(){0<
@@ -3447,11 +3447,11 @@ d&&f.selectPage(f.pages[0])};if(39==b.keyCode)return function(){d<f.pages.length
15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var f=mxUtils.parseXml(b),l=this.editor.extractGraphModel(f.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),d=null!=l?mxUtils.getXml(l):""}catch(v){}return d};EditorUi.prototype.validateFileData=function(b){if(null!=b&&0<b.length){var d=b.indexOf('<meta charset="utf-8">');0<=d&&(b=b.slice(0,d)+'<meta charset="utf-8"/>'+b.slice(d+23-1,b.length));b=Graph.zapGremlins(b)}return b};
EditorUi.prototype.replaceFileData=function(b){b=this.validateFileData(b);b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:null;var d=null!=b?this.editor.extractGraphModel(b,!0):null;null!=d&&(b=d);if(null!=b){d=this.editor.graph;d.model.beginUpdate();try{var c=null!=this.pages?this.pages.slice():null,e=b.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<e.length||1==e.length&&e[0].hasAttribute("name")){this.fileNode=b;this.pages=null!=this.pages?this.pages:[];for(var f=e.length-
1;0<=f;f--){var l=this.updatePageRoot(new DiagramPage(e[f]));null==l.getName()&&l.setName(mxResources.get("pageWithNumber",[f+1]));d.model.execute(new ChangePage(this,l,0==f?l:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),d.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),
-this.editor.setGraphXml(b),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(f=0;f<c.length;f++)d.model.execute(new ChangePage(this,c[f],null))}finally{d.model.endUpdate()}}};EditorUi.prototype.createFileData=function(b,c,g,e,f,l,n,u,x,y,t){c=null!=c?c:this.editor.graph;f=null!=f?f:!1;x=null!=x?x:!0;var d,k=null;null==g||g.getMode()==App.MODE_DEVICE||g.getMode()==App.MODE_BROWSER?d="_blank":k=d=e;if(null==b)return"";var m=b;if("mxfile"!=m.nodeName.toLowerCase()){if(t){var p=
+this.editor.setGraphXml(b),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(f=0;f<c.length;f++)d.model.execute(new ChangePage(this,c[f],null))}finally{d.model.endUpdate()}}};EditorUi.prototype.createFileData=function(b,c,g,e,f,l,n,u,x,y,q){c=null!=c?c:this.editor.graph;f=null!=f?f:!1;x=null!=x?x:!0;var d,k=null;null==g||g.getMode()==App.MODE_DEVICE||g.getMode()==App.MODE_BROWSER?d="_blank":k=d=e;if(null==b)return"";var m=b;if("mxfile"!=m.nodeName.toLowerCase()){if(q){var p=
b.ownerDocument.createElement("diagram");p.setAttribute("id",Editor.guid());p.appendChild(b)}else{p=Graph.zapGremlins(mxUtils.getXml(b));m=Graph.compress(p);if(Graph.decompress(m)!=p)return p;p=b.ownerDocument.createElement("diagram");p.setAttribute("id",Editor.guid());mxUtils.setTextContent(p,m)}m=b.ownerDocument.createElement("mxfile");m.appendChild(p)}y?(m=m.cloneNode(!0),m.removeAttribute("modified"),m.removeAttribute("host"),m.removeAttribute("agent"),m.removeAttribute("etag"),m.removeAttribute("userAgent"),
m.removeAttribute("version"),m.removeAttribute("editor"),m.removeAttribute("type")):(m.removeAttribute("userAgent"),m.removeAttribute("version"),m.removeAttribute("editor"),m.removeAttribute("pages"),m.removeAttribute("type"),mxClient.IS_CHROMEAPP?m.setAttribute("host","Chrome"):EditorUi.isElectronApp?m.setAttribute("host","Electron"):m.setAttribute("host",window.location.hostname),m.setAttribute("modified",(new Date).toISOString()),m.setAttribute("agent",navigator.appVersion),m.setAttribute("version",
-EditorUi.VERSION),m.setAttribute("etag",Editor.guid()),b=null!=g?g.getMode():this.mode,null!=b&&m.setAttribute("type",b),1<m.getElementsByTagName("diagram").length&&null!=this.pages&&m.setAttribute("pages",this.pages.length));t=t?mxUtils.getPrettyXml(m):mxUtils.getXml(m);if(!l&&!f&&(n||null!=g&&/(\.html)$/i.test(g.getTitle())))t=this.getHtml2(mxUtils.getXml(m),c,null!=g?g.getTitle():null,d,k);else if(l||!f&&null!=g&&/(\.svg)$/i.test(g.getTitle()))null==g||g.getMode()!=App.MODE_DEVICE&&g.getMode()!=
-App.MODE_BROWSER||(e=null),t=this.getEmbeddedSvg(t,c,e,null,u,x,k);return t};EditorUi.prototype.getXmlFileData=function(b,c,g,e){b=null!=b?b:!0;c=null!=c?c:!1;g=null!=g?g:!Editor.compressXml;var d=this.editor.getGraphXml(b,e);if(b&&null!=this.fileNode&&null!=this.currentPage)if(b=function(b){var c=b.getElementsByTagName("mxGraphModel"),c=0<c.length?c[0]:null;null==c&&g?(c=mxUtils.trim(mxUtils.getTextContent(b)),b=b.cloneNode(!1),0<c.length&&(c=Graph.decompress(c),null!=c&&0<c.length&&b.appendChild(mxUtils.parseXml(c).documentElement))):
+EditorUi.VERSION),m.setAttribute("etag",Editor.guid()),b=null!=g?g.getMode():this.mode,null!=b&&m.setAttribute("type",b),1<m.getElementsByTagName("diagram").length&&null!=this.pages&&m.setAttribute("pages",this.pages.length));q=q?mxUtils.getPrettyXml(m):mxUtils.getXml(m);if(!l&&!f&&(n||null!=g&&/(\.html)$/i.test(g.getTitle())))q=this.getHtml2(mxUtils.getXml(m),c,null!=g?g.getTitle():null,d,k);else if(l||!f&&null!=g&&/(\.svg)$/i.test(g.getTitle()))null==g||g.getMode()!=App.MODE_DEVICE&&g.getMode()!=
+App.MODE_BROWSER||(e=null),q=this.getEmbeddedSvg(q,c,e,null,u,x,k);return q};EditorUi.prototype.getXmlFileData=function(b,c,g,e){b=null!=b?b:!0;c=null!=c?c:!1;g=null!=g?g:!Editor.compressXml;var d=this.editor.getGraphXml(b,e);if(b&&null!=this.fileNode&&null!=this.currentPage)if(b=function(b){var c=b.getElementsByTagName("mxGraphModel"),c=0<c.length?c[0]:null;null==c&&g?(c=mxUtils.trim(mxUtils.getTextContent(b)),b=b.cloneNode(!1),0<c.length&&(c=Graph.decompress(c),null!=c&&0<c.length&&b.appendChild(mxUtils.parseXml(c).documentElement))):
null==c||g?b=b.cloneNode(!0):(b=b.cloneNode(!1),mxUtils.setTextContent(b,Graph.compressNode(c)));d.appendChild(b)},EditorUi.removeChildNodes(this.currentPage.node),mxUtils.setTextContent(this.currentPage.node,Graph.compressNode(d)),d=this.fileNode.cloneNode(!1),c)b(this.currentPage.node);else for(c=0;c<this.pages.length;c++){var k=this.pages[c],f=k.node;if(k!=this.currentPage)if(k.needsUpdate){var l=new mxCodec(mxUtils.createXmlDocument()),l=l.encode(new mxGraphModel(k.root));this.editor.graph.saveViewState(k.viewState,
l,null,e);EditorUi.removeChildNodes(f);mxUtils.setTextContent(f,Graph.compressNode(l));delete k.needsUpdate}else e&&(this.updatePageRoot(k),null!=k.viewState.backgroundImage&&(null!=k.viewState.backgroundImage.originalSrc?k.viewState.backgroundImage=this.createImageForPageLink(k.viewState.backgroundImage.originalSrc,k):Graph.isPageLink(k.viewState.backgroundImage.src)&&(k.viewState.backgroundImage=this.createImageForPageLink(k.viewState.backgroundImage.src,k))),null!=k.viewState.backgroundImage&&
null!=k.viewState.backgroundImage.originalSrc&&(l=new mxCodec(mxUtils.createXmlDocument()),l=l.encode(new mxGraphModel(k.root)),this.editor.graph.saveViewState(k.viewState,l,null,e),f=f.cloneNode(!1),mxUtils.setTextContent(f,Graph.compressNode(l))));b(f)}return d};EditorUi.prototype.anonymizeString=function(b,c){for(var d=[],e=0;e<b.length;e++){var k=b.charAt(e);0<=EditorUi.ignoredAnonymizedChars.indexOf(k)?d.push(k):isNaN(parseInt(k))?k.toLowerCase()!=k?d.push(String.fromCharCode(65+Math.round(25*
@@ -3460,32 +3460,32 @@ b[EditorUi.DIFF_INSERT][d].data=mxUtils.getXml(c)}catch(p){b[EditorUi.DIFF_INSER
"["+d[c].style.length+"]"),mxUtils.isEmptyObject(d[c])&&delete d[c];mxUtils.isEmptyObject(d)&&delete f.cells[b]}}),d(EditorUi.DIFF_INSERT),d(EditorUi.DIFF_UPDATE),mxUtils.isEmptyObject(f.cells)&&delete f.cells);mxUtils.isEmptyObject(f)&&delete b[EditorUi.DIFF_UPDATE][e]}mxUtils.isEmptyObject(b[EditorUi.DIFF_UPDATE])&&delete b[EditorUi.DIFF_UPDATE]}return b};EditorUi.prototype.anonymizeAttributes=function(b,c){if(null!=b.attributes)for(var d=0;d<b.attributes.length;d++)"as"!=b.attributes[d].name&&
b.setAttribute(b.attributes[d].name,this.anonymizeString(b.attributes[d].value,c));if(null!=b.childNodes)for(d=0;d<b.childNodes.length;d++)this.anonymizeAttributes(b.childNodes[d],c)};EditorUi.prototype.anonymizeNode=function(b,c){for(var d=b.getElementsByTagName("mxCell"),e=0;e<d.length;e++)null!=d[e].getAttribute("value")&&d[e].setAttribute("value","["+d[e].getAttribute("value").length+"]"),null!=d[e].getAttribute("xmlValue")&&d[e].setAttribute("xmlValue","["+d[e].getAttribute("xmlValue").length+
"]"),null!=d[e].getAttribute("style")&&d[e].setAttribute("style","["+d[e].getAttribute("style").length+"]"),null!=d[e].parentNode&&"root"!=d[e].parentNode.nodeName&&null!=d[e].parentNode.parentNode&&(d[e].setAttribute("id",d[e].parentNode.getAttribute("id")),d[e].parentNode.parentNode.replaceChild(d[e],d[e].parentNode));return b};EditorUi.prototype.synchronizeCurrentFile=function(b){var d=this.getCurrentFile();null!=d&&(d.savingFile?this.handleError({message:mxResources.get("busy")}):!b&&d.invalidChecksum?
-d.handleFileError(null,!0):this.spinner.spin(document.body,mxResources.get("updatingDocument"))&&(d.clearAutosave(),this.editor.setStatus(""),b?d.reloadFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(b){d.handleFileError(b,!0)})):d.synchronizeFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(b){d.handleFileError(b,!0)}))))};EditorUi.prototype.getFileData=function(b,c,e,f,m,l,n,
-u,x,y,t){m=null!=m?m:!0;l=null!=l?l:!1;var d=this.editor.graph;if(c||!b&&null!=x&&/(\.svg)$/i.test(x.getTitle())){var g=null!=d.themes&&"darkTheme"==d.defaultThemeName;y=!1;if(g||null!=this.pages&&this.currentPage!=this.pages[0]){var k=d.getGlobalVariable,d=this.createTemporaryGraph(g?d.getDefaultStylesheet():d.getStylesheet());d.setBackgroundImage=this.editor.graph.setBackgroundImage;d.background=this.editor.graph.background;var p=this.pages[0];this.currentPage==p?d.setBackgroundImage(this.editor.graph.backgroundImage):
-null!=p.viewState&&null!=p.viewState&&d.setBackgroundImage(p.viewState.backgroundImage);d.getGlobalVariable=function(b){return"page"==b?p.getName():"pagenumber"==b?1:k.apply(this,arguments)};document.body.appendChild(d.container);d.model.setRoot(p.root)}}n=null!=n?n:this.getXmlFileData(m,l,y,t);x=null!=x?x:this.getCurrentFile();b=this.createFileData(n,d,x,window.location.href,b,c,e,f,m,u,y);d!=this.editor.graph&&d.container.parentNode.removeChild(d.container);return b};EditorUi.prototype.getHtml=
-function(b,c,e,f,m,l){l=null!=l?l:!0;var d=null,g=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=c){var d=l?c.getGraphBounds():c.getBoundingBox(c.getSelectionCells()),k=c.view.scale;l=Math.floor(d.x/k-c.view.translate.x);k=Math.floor(d.y/k-c.view.translate.y);d=c.background;null==m&&(c=this.getBasenames().join(";"),0<c.length&&(g=EditorUi.drawHost+"/embed.js?s="+c));b.setAttribute("x0",l);b.setAttribute("y0",k)}null!=b&&(b.setAttribute("pan","1"),b.setAttribute("zoom","1"),b.setAttribute("resize",
-"0"),b.setAttribute("fit","0"),b.setAttribute("border","20"),b.setAttribute("links","1"),null!=f&&b.setAttribute("edit",f));null!=m&&(m=m.replace(/&/g,"&amp;"));b=null!=b?Graph.zapGremlins(mxUtils.getXml(b)):"";f=Graph.compress(b);Graph.decompress(f)!=b&&(f=encodeURIComponent(b));return(null==m?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=m?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==m?null!=e?
-"<title>"+mxUtils.htmlEntities(e)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=m?'<meta http-equiv="refresh" content="0;URL=\''+m+"'\"/>\n":"")+"</head>\n<body"+(null==m&&null!=d&&d!=mxConstants.NONE?' style="background-color:'+d+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+f+"</div>\n</div>\n"+(null==m?'<script type="text/javascript" src="'+g+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+
-m+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(b,c,e,f,m){c=window.DRAWIO_VIEWER_URL||EditorUi.drawHost+"/js/viewer-static.min.js";null!=m&&(m=m.replace(/&/g,"&amp;"));b={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:Graph.zapGremlins(b),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(b.page=mxUtils.indexOf(this.pages,this.currentPage));
-return(null==m?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=m?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==m?null!=e?"<title>"+mxUtils.htmlEntities(e)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=m?'<meta http-equiv="refresh" content="0;URL=\''+m+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+
-mxUtils.htmlEntities(JSON.stringify(b))+'"></div>\n'+(null==m?'<script type="text/javascript" src="'+c+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+m+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(b){b=this.validateFileData(b);this.pages=this.fileNode=this.currentPage=null;b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:
+d.handleFileError(null,!0):this.spinner.spin(document.body,mxResources.get("updatingDocument"))&&(d.clearAutosave(),this.editor.setStatus(""),b?d.reloadFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(b){d.handleFileError(b,!0)})):d.synchronizeFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(b){d.handleFileError(b,!0)}))))};EditorUi.prototype.getFileData=function(b,c,e,f,l,p,n,
+u,x,y,q){l=null!=l?l:!0;p=null!=p?p:!1;var d=this.editor.graph;if(c||!b&&null!=x&&/(\.svg)$/i.test(x.getTitle())){var g=null!=d.themes&&"darkTheme"==d.defaultThemeName;y=!1;if(g||null!=this.pages&&this.currentPage!=this.pages[0]){var k=d.getGlobalVariable,d=this.createTemporaryGraph(g?d.getDefaultStylesheet():d.getStylesheet());d.setBackgroundImage=this.editor.graph.setBackgroundImage;d.background=this.editor.graph.background;var m=this.pages[0];this.currentPage==m?d.setBackgroundImage(this.editor.graph.backgroundImage):
+null!=m.viewState&&null!=m.viewState&&d.setBackgroundImage(m.viewState.backgroundImage);d.getGlobalVariable=function(b){return"page"==b?m.getName():"pagenumber"==b?1:k.apply(this,arguments)};document.body.appendChild(d.container);d.model.setRoot(m.root)}}n=null!=n?n:this.getXmlFileData(l,p,y,q);x=null!=x?x:this.getCurrentFile();b=this.createFileData(n,d,x,window.location.href,b,c,e,f,l,u,y);d!=this.editor.graph&&d.container.parentNode.removeChild(d.container);return b};EditorUi.prototype.getHtml=
+function(b,c,e,f,l,p){p=null!=p?p:!0;var d=null,g=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=c){var d=p?c.getGraphBounds():c.getBoundingBox(c.getSelectionCells()),k=c.view.scale;p=Math.floor(d.x/k-c.view.translate.x);k=Math.floor(d.y/k-c.view.translate.y);d=c.background;null==l&&(c=this.getBasenames().join(";"),0<c.length&&(g=EditorUi.drawHost+"/embed.js?s="+c));b.setAttribute("x0",p);b.setAttribute("y0",k)}null!=b&&(b.setAttribute("pan","1"),b.setAttribute("zoom","1"),b.setAttribute("resize",
+"0"),b.setAttribute("fit","0"),b.setAttribute("border","20"),b.setAttribute("links","1"),null!=f&&b.setAttribute("edit",f));null!=l&&(l=l.replace(/&/g,"&amp;"));b=null!=b?Graph.zapGremlins(mxUtils.getXml(b)):"";f=Graph.compress(b);Graph.decompress(f)!=b&&(f=encodeURIComponent(b));return(null==l?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=l?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==l?null!=e?
+"<title>"+mxUtils.htmlEntities(e)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=l?'<meta http-equiv="refresh" content="0;URL=\''+l+"'\"/>\n":"")+"</head>\n<body"+(null==l&&null!=d&&d!=mxConstants.NONE?' style="background-color:'+d+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+f+"</div>\n</div>\n"+(null==l?'<script type="text/javascript" src="'+g+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+
+l+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(b,c,e,f,l){c=window.DRAWIO_VIEWER_URL||EditorUi.drawHost+"/js/viewer-static.min.js";null!=l&&(l=l.replace(/&/g,"&amp;"));b={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:Graph.zapGremlins(b),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(b.page=mxUtils.indexOf(this.pages,this.currentPage));
+return(null==l?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=l?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==l?null!=e?"<title>"+mxUtils.htmlEntities(e)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=l?'<meta http-equiv="refresh" content="0;URL=\''+l+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+
+mxUtils.htmlEntities(JSON.stringify(b))+'"></div>\n'+(null==l?'<script type="text/javascript" src="'+c+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+l+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(b){b=this.validateFileData(b);this.pages=this.fileNode=this.currentPage=null;b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:
null;var d=Editor.extractParserError(b,mxResources.get("invalidOrMissingFile"));if(d)throw Error(mxResources.get("notADiagramFile")+" ("+d+")");d=null!=b?this.editor.extractGraphModel(b,!0):null;null!=d&&(b=d);if(null!=b&&"mxfile"==b.nodeName&&(d=b.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name"))){var c=null;this.fileNode=b;this.pages=[];for(var e=0;e<d.length;e++)null==d[e].getAttribute("id")&&d[e].setAttribute("id",e),b=new DiagramPage(d[e]),
null==b.getName()&&b.setName(mxResources.get("pageWithNumber",[e+1])),this.pages.push(b),null!=urlParams["page-id"]&&b.getId()==urlParams["page-id"]&&(c=b);this.currentPage=null!=c?c:this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];b=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=b&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",
[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var f=urlParams["layer-ids"].split(" ");b={};for(e=0;e<f.length;e++)b[f[e]]=!0;for(var l=this.editor.graph.getModel(),n=l.getChildren(l.root),e=0;e<n.length;e++){var u=n[e];l.setVisible(u,b[u.id]||!1)}}catch(x){}};EditorUi.prototype.getBaseFilename=function(b){var d=this.getCurrentFile(),d=null!=d&&null!=d.getTitle()?d.getTitle():
-this.defaultFilename;if(/(\.xml)$/i.test(d)||/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||/(\.png)$/i.test(d))d=d.substring(0,d.lastIndexOf("."));/(\.drawio)$/i.test(d)&&(d=d.substring(0,d.lastIndexOf(".")));!b&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(d=d+"-"+this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(b,c,e,f,m,l,n,u,x,y,t,H){try{f=null!=f?f:this.editor.graph.isSelectionEmpty();
-var d=this.getBaseFilename("remoteSvg"==b?!1:!m),g=d+("xml"==b||"pdf"==b&&t?".drawio":"")+"."+b;if("xml"==b){var k=Graph.xmlDeclaration+"\n"+this.getFileData(!0,null,null,null,f,m,null,null,null,c);this.saveData(g,b,k,"text/xml")}else if("html"==b)k=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(g,b,k,"text/html");else if("svg"!=b&&"xmlsvg"!=b||!this.spinner.spin(document.body,mxResources.get("export"))){var p,q;if("xmlpng"==b)g=d+".png";else if("jpeg"==b)g=d+".jpg";else if("remoteSvg"==
-b){g=d+".svg";b="svg";var v=parseInt(x);"string"===typeof u&&0<u.indexOf("%")&&(u=parseInt(u)/100);if(0<v){var L=this.editor.graph,N=L.getGraphBounds();p=Math.ceil(N.width*u/L.view.scale+2*v);q=Math.ceil(N.height*u/L.view.scale+2*v)}}this.saveRequest(g,b,mxUtils.bind(this,function(d,c){try{var e=this.editor.graph.pageVisible;0==l&&(this.editor.graph.pageVisible=l);var g=this.createDownloadRequest(d,b,f,c,n,m,u,x,y,t,H,p,q);this.editor.graph.pageVisible=e;return g}catch(B){this.handleError(B)}}))}else{var M=
+this.defaultFilename;if(/(\.xml)$/i.test(d)||/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||/(\.png)$/i.test(d))d=d.substring(0,d.lastIndexOf("."));/(\.drawio)$/i.test(d)&&(d=d.substring(0,d.lastIndexOf(".")));!b&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(d=d+"-"+this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(b,c,e,f,l,p,n,u,x,y,q,H){try{f=null!=f?f:this.editor.graph.isSelectionEmpty();
+var d=this.getBaseFilename("remoteSvg"==b?!1:!l),g=d+("xml"==b||"pdf"==b&&q?".drawio":"")+"."+b;if("xml"==b){var k=Graph.xmlDeclaration+"\n"+this.getFileData(!0,null,null,null,f,l,null,null,null,c);this.saveData(g,b,k,"text/xml")}else if("html"==b)k=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(g,b,k,"text/html");else if("svg"!=b&&"xmlsvg"!=b||!this.spinner.spin(document.body,mxResources.get("export"))){var m,t;if("xmlpng"==b)g=d+".png";else if("jpeg"==b)g=d+".jpg";else if("remoteSvg"==
+b){g=d+".svg";b="svg";var v=parseInt(x);"string"===typeof u&&0<u.indexOf("%")&&(u=parseInt(u)/100);if(0<v){var J=this.editor.graph,N=J.getGraphBounds();m=Math.ceil(N.width*u/J.view.scale+2*v);t=Math.ceil(N.height*u/J.view.scale+2*v)}}this.saveRequest(g,b,mxUtils.bind(this,function(d,c){try{var e=this.editor.graph.pageVisible;0==p&&(this.editor.graph.pageVisible=p);var g=this.createDownloadRequest(d,b,f,c,n,l,u,x,y,q,H,m,t);this.editor.graph.pageVisible=e;return g}catch(B){this.handleError(B)}}))}else{var M=
null,Q=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(g,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(M)}))});if("svg"==b){var G=this.editor.graph.background;if(n||G==mxConstants.NONE)G=null;var X=this.editor.graph.getSvg(G,null,null,null,null,f);e&&this.editor.graph.addSvgShadow(X);this.editor.convertImages(X,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();
-Q(Graph.xmlDeclaration+"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(b))})))}else g=d+".svg",M=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();Q(b)}),f)}}catch(ja){this.handleError(ja)}};EditorUi.prototype.createDownloadRequest=function(b,c,e,f,m,l,n,u,x,y,t,H,D){var d=this.editor.graph,g=d.getGraphBounds();e=this.getFileData(!0,null,null,null,e,0==l?!1:"xmlpng"!=c,null,null,null,!1,"pdf"==c);var k="",p="";if(g.width*g.height>MAX_AREA||e.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};
-y=y?"1":"0";"pdf"==c&&(null!=t?p="&from="+t.from+"&to="+t.to:0==l&&(p="&allPages=1"));"xmlpng"==c&&(y="1",c="png");if(("xmlpng"==c||"svg"==c)&&null!=this.pages&&null!=this.currentPage)for(l=0;l<this.pages.length;l++)if(this.pages[l]==this.currentPage){k="&from="+l;break}l=d.background;"png"!=c&&"pdf"!=c&&"svg"!=c||!m?m||null!=l&&l!=mxConstants.NONE||(l="#ffffff"):l=mxConstants.NONE;m={globalVars:d.getExportVariables()};x&&(m.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});Graph.translateDiagram&&
-(m.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+c+k+p+"&bg="+(null!=l?l:mxConstants.NONE)+"&base64="+f+"&embedXml="+y+"&xml="+encodeURIComponent(e)+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(m))+(null!=n?"&scale="+n:"")+(null!=u?"&border="+u:"")+(H&&isFinite(H)?"&w="+H:"")+(D&&isFinite(D)?"&h="+D:""))};EditorUi.prototype.setMode=function(b,c){this.mode=b};EditorUi.prototype.loadDescriptor=function(b,c,e){var d=
+Q(Graph.xmlDeclaration+"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(b))})))}else g=d+".svg",M=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();Q(b)}),f)}}catch(ja){this.handleError(ja)}};EditorUi.prototype.createDownloadRequest=function(b,c,e,f,l,p,n,u,x,y,q,H,D){var d=this.editor.graph,g=d.getGraphBounds();e=this.getFileData(!0,null,null,null,e,0==p?!1:"xmlpng"!=c,null,null,null,!1,"pdf"==c);var k="",m="";if(g.width*g.height>MAX_AREA||e.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};
+y=y?"1":"0";"pdf"==c&&(null!=q?m="&from="+q.from+"&to="+q.to:0==p&&(m="&allPages=1"));"xmlpng"==c&&(y="1",c="png");if(("xmlpng"==c||"svg"==c)&&null!=this.pages&&null!=this.currentPage)for(p=0;p<this.pages.length;p++)if(this.pages[p]==this.currentPage){k="&from="+p;break}p=d.background;"png"!=c&&"pdf"!=c&&"svg"!=c||!l?l||null!=p&&p!=mxConstants.NONE||(p="#ffffff"):p=mxConstants.NONE;l={globalVars:d.getExportVariables()};x&&(l.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});Graph.translateDiagram&&
+(l.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+c+k+m+"&bg="+(null!=p?p:mxConstants.NONE)+"&base64="+f+"&embedXml="+y+"&xml="+encodeURIComponent(e)+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(l))+(null!=n?"&scale="+n:"")+(null!=u?"&border="+u:"")+(H&&isFinite(H)?"&w="+H:"")+(D&&isFinite(D)?"&h="+D:""))};EditorUi.prototype.setMode=function(b,c){this.mode=b};EditorUi.prototype.loadDescriptor=function(b,c,e){var d=
window.location.hash,g=mxUtils.bind(this,function(e){var g=null!=b.data?b.data:"";null!=e&&0<e.length&&(0<g.length&&(g+="\n"),g+=e);e=new LocalFile(this,"csv"!=b.format&&0<g.length?g:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);e.getHash=function(){return d};this.fileLoaded(e);"csv"==b.format&&this.importCsv(g,mxUtils.bind(this,function(b){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=b.update){var k=
-null!=b.interval?parseInt(b.interval):6E4,f=null,m=mxUtils.bind(this,function(){var d=this.currentPage;mxUtils.post(b.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(b){d===this.currentPage&&(200<=b.getStatus()&&300>=b.getStatus()?(this.updateDiagram(b.getText()),l()):this.handleError({message:mxResources.get("error")+" "+b.getStatus()}))}),mxUtils.bind(this,function(b){this.handleError(b)}))}),l=mxUtils.bind(this,function(){window.clearTimeout(f);
-f=window.setTimeout(m,k)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){l();m()}));l();m()}null!=c&&c()});null!=b.url&&0<b.url.length?this.editor.loadUrl(b.url,mxUtils.bind(this,function(b){g(b)}),mxUtils.bind(this,function(b){null!=e&&e(b)})):g("")};EditorUi.prototype.updateDiagram=function(b){function d(b){var d=new mxCellOverlay(b.image||f.warningImage,b.tooltip,b.align,b.valign,b.offset);d.addListener(mxEvent.CLICK,function(d,c){e.alert(b.tooltip)});return d}var c=null,
-e=this;if(null!=b&&0<b.length&&(c=mxUtils.parseXml(b),b=null!=c?c.documentElement:null,null!=b&&"updates"==b.nodeName)){var f=this.editor.graph,l=f.getModel();l.beginUpdate();var n=null;try{for(b=b.firstChild;null!=b;){if("update"==b.nodeName){var u=l.getCell(b.getAttribute("id"));if(null!=u){try{var x=b.getAttribute("value");if(null!=x){var y=mxUtils.parseXml(x).documentElement;if(null!=y)if("1"==y.getAttribute("replace-value"))l.setValue(u,y);else for(var t=y.attributes,H=0;H<t.length;H++)f.setAttributeForCell(u,
-t[H].nodeName,0<t[H].nodeValue.length?t[H].nodeValue:null)}}catch(N){null!=window.console&&console.log("Error in value for "+u.id+": "+N)}try{var D=b.getAttribute("style");null!=D&&f.model.setStyle(u,D)}catch(N){null!=window.console&&console.log("Error in style for "+u.id+": "+N)}try{var F=b.getAttribute("icon");if(null!=F){var O=0<F.length?JSON.parse(F):null;null!=O&&O.append||f.removeCellOverlays(u);null!=O&&f.addCellOverlay(u,d(O))}}catch(N){null!=window.console&&console.log("Error in icon for "+
-u.id+": "+N)}try{var A=b.getAttribute("geometry");if(null!=A){var A=JSON.parse(A),C=f.getCellGeometry(u);if(null!=C){C=C.clone();for(key in A){var E=parseFloat(A[key]);"dx"==key?C.x+=E:"dy"==key?C.y+=E:"dw"==key?C.width+=E:"dh"==key?C.height+=E:C[key]=parseFloat(A[key])}f.model.setGeometry(u,C)}}}catch(N){null!=window.console&&console.log("Error in icon for "+u.id+": "+N)}}}else if("model"==b.nodeName){for(var L=b.firstChild;null!=L&&L.nodeType!=mxConstants.NODETYPE_ELEMENT;)L=L.nextSibling;null!=
-L&&(new mxCodec(b.firstChild)).decode(L,l)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(f.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))f.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(n=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):1);b=b.nextSibling}}finally{l.endUpdate()}null!=n&&this.chromelessResize&&this.chromelessResize(!0,n)}return c};
+null!=b.interval?parseInt(b.interval):6E4,f=null,l=mxUtils.bind(this,function(){var d=this.currentPage;mxUtils.post(b.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(b){d===this.currentPage&&(200<=b.getStatus()&&300>=b.getStatus()?(this.updateDiagram(b.getText()),m()):this.handleError({message:mxResources.get("error")+" "+b.getStatus()}))}),mxUtils.bind(this,function(b){this.handleError(b)}))}),m=mxUtils.bind(this,function(){window.clearTimeout(f);
+f=window.setTimeout(l,k)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){m();l()}));m();l()}null!=c&&c()});null!=b.url&&0<b.url.length?this.editor.loadUrl(b.url,mxUtils.bind(this,function(b){g(b)}),mxUtils.bind(this,function(b){null!=e&&e(b)})):g("")};EditorUi.prototype.updateDiagram=function(b){function d(b){var d=new mxCellOverlay(b.image||f.warningImage,b.tooltip,b.align,b.valign,b.offset);d.addListener(mxEvent.CLICK,function(d,c){e.alert(b.tooltip)});return d}var c=null,
+e=this;if(null!=b&&0<b.length&&(c=mxUtils.parseXml(b),b=null!=c?c.documentElement:null,null!=b&&"updates"==b.nodeName)){var f=this.editor.graph,l=f.getModel();l.beginUpdate();var n=null;try{for(b=b.firstChild;null!=b;){if("update"==b.nodeName){var u=l.getCell(b.getAttribute("id"));if(null!=u){try{var x=b.getAttribute("value");if(null!=x){var y=mxUtils.parseXml(x).documentElement;if(null!=y)if("1"==y.getAttribute("replace-value"))l.setValue(u,y);else for(var q=y.attributes,H=0;H<q.length;H++)f.setAttributeForCell(u,
+q[H].nodeName,0<q[H].nodeValue.length?q[H].nodeValue:null)}}catch(N){null!=window.console&&console.log("Error in value for "+u.id+": "+N)}try{var D=b.getAttribute("style");null!=D&&f.model.setStyle(u,D)}catch(N){null!=window.console&&console.log("Error in style for "+u.id+": "+N)}try{var F=b.getAttribute("icon");if(null!=F){var O=0<F.length?JSON.parse(F):null;null!=O&&O.append||f.removeCellOverlays(u);null!=O&&f.addCellOverlay(u,d(O))}}catch(N){null!=window.console&&console.log("Error in icon for "+
+u.id+": "+N)}try{var A=b.getAttribute("geometry");if(null!=A){var A=JSON.parse(A),C=f.getCellGeometry(u);if(null!=C){C=C.clone();for(key in A){var E=parseFloat(A[key]);"dx"==key?C.x+=E:"dy"==key?C.y+=E:"dw"==key?C.width+=E:"dh"==key?C.height+=E:C[key]=parseFloat(A[key])}f.model.setGeometry(u,C)}}}catch(N){null!=window.console&&console.log("Error in icon for "+u.id+": "+N)}}}else if("model"==b.nodeName){for(var J=b.firstChild;null!=J&&J.nodeType!=mxConstants.NODETYPE_ELEMENT;)J=J.nextSibling;null!=
+J&&(new mxCodec(b.firstChild)).decode(J,l)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(f.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))f.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(n=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):1);b=b.nextSibling}}finally{l.endUpdate()}null!=n&&this.chromelessResize&&this.chromelessResize(!0,n)}return c};
EditorUi.prototype.getCopyFilename=function(b,c){var d=null!=b&&null!=b.getTitle()?b.getTitle():this.defaultFilename,e="",k=d.lastIndexOf(".");0<=k&&(e=d.substring(k),d=d.substring(0,k));if(c)var f=new Date,k=f.getFullYear(),l=f.getMonth()+1,n=f.getDate(),x=f.getHours(),y=f.getMinutes(),f=f.getSeconds(),d=d+(" "+(k+"-"+l+"-"+n+"-"+x+"-"+y+"-"+f));return d=mxResources.get("copyOf",[d])+e};EditorUi.prototype.fileLoaded=function(b,c){var d=this.getCurrentFile();this.fileEditable=this.fileLoadedError=
null;this.setCurrentFile(null);var e=!1;this.hideDialog();null!=d&&(EditorUi.debug("File.closed",[d]),d.removeListener(this.descriptorChangedListener),d.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var k=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=d&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);!c&&null!=window.location.hash&&0<window.location.hash.length&&
(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();c||this.showSplash()});if(null!=b)try{mxClient.IS_SF&&"min"==uiTheme&&(this.diagramContainer.style.visibility="");this.openingFile=!0;this.setCurrentFile(b);b.addListener("descriptorChanged",this.descriptorChangedListener);b.addListener("contentChanged",this.descriptorChangedListener);b.open();
@@ -3501,22 +3501,22 @@ b,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.cre
function(b){var d=this.sidebar.palettes[b];if(null!=d){for(var c=0;c<d.length;c++)d[c].parentNode.removeChild(d[c]);delete this.sidebar.palettes[b]}};EditorUi.prototype.repositionLibrary=function(b){var d=this.sidebar.container;if(null==b){var c=this.sidebar.palettes["L.scratchpad"];null==c&&(c=this.sidebar.palettes.search);null!=c&&(b=c[c.length-1].nextSibling)}b=null!=b?b:d.firstChild.nextSibling.nextSibling;var c=d.lastChild,e=c.previousSibling;d.insertBefore(c,b);d.insertBefore(e,c)};EditorUi.prototype.loadLibrary=
function(b,c){var d=mxUtils.parseXml(b.getData());if("mxlibrary"==d.documentElement.nodeName){var e=JSON.parse(mxUtils.getTextContent(d.documentElement));this.libraryLoaded(b,e,d.documentElement.getAttribute("title"),c)}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(b){return""};EditorUi.prototype.libraryLoaded=function(b,c,e,f){if(null!=this.sidebar){b.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(b.getHash());".scratchpad"==b.title&&
(this.scratchpad=b);var d=this.sidebar.palettes[b.getHash()],d=null!=d?d[d.length-1].nextSibling:null;this.removeLibrarySidebar(b.getHash());var g=null,k=mxUtils.bind(this,function(d,c){0==d.length&&b.isEditable()?(null==g&&(g=document.createElement("div"),g.className="geDropTarget",mxUtils.write(g,mxResources.get("dragElementsHere"))),c.appendChild(g)):this.addLibraryEntries(d,c)});null!=this.sidebar&&null!=c&&this.sidebar.addEntries(c);null==e&&(e=b.getTitle(),null!=e&&/(\.xml)$/i.test(e)&&(e=e.substring(0,
-e.lastIndexOf("."))));var l=this.sidebar.addPalette(b.getHash(),e,null!=f?f:!0,mxUtils.bind(this,function(b){k(c,b)}));this.repositionLibrary(d);var q=l.parentNode.previousSibling;f=q.getAttribute("title");null!=f&&0<f.length&&".scratchpad"!=b.title&&q.setAttribute("title",this.getLibraryStorageHint(b)+"\n"+f);var n=document.createElement("div");n.style.position="absolute";n.style.right="0px";n.style.top="0px";n.style.padding="8px";n.style.backgroundColor="inherit";q.style.position="relative";var t=
-document.createElement("img");t.setAttribute("src",Editor.crossImage);t.setAttribute("title",mxResources.get("close"));t.setAttribute("valign","absmiddle");t.setAttribute("border","0");t.style.position="relative";t.style.top="2px";t.style.width="14px";t.style.cursor="pointer";t.style.margin="0 3px";Editor.isDarkMode()&&(t.style.filter="invert(100%)");var H=null;if(".scratchpad"!=b.title||this.closableScratchpad)n.appendChild(t),mxEvent.addListener(t,"click",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d)){var c=
-mxUtils.bind(this,function(){this.closeLibrary(b)});null!=H?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(d)}}));if(b.isEditable()){var D=this.editor.graph,F=null,O=mxUtils.bind(this,function(d){this.showLibraryDialog(b.getTitle(),l,c,b,b.getMode());mxEvent.consume(d)}),A=mxUtils.bind(this,function(d){b.setModified(!0);b.isAutosave()?(null!=F&&null!=F.parentNode&&F.parentNode.removeChild(F),F=t.cloneNode(!1),
-F.setAttribute("src",Editor.spinImage),F.setAttribute("title",mxResources.get("saving")),F.style.cursor="default",F.style.marginRight="2px",F.style.marginTop="-2px",n.insertBefore(F,n.firstChild),q.style.paddingRight=18*n.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=F&&null!=F.parentNode&&(F.parentNode.removeChild(F),q.style.paddingRight=18*n.childNodes.length+"px")})):null==H&&(H=t.cloneNode(!1),H.setAttribute("src",Editor.saveImage),H.setAttribute("title",
-mxResources.get("save")),n.insertBefore(H,n.firstChild),mxEvent.addListener(H,"click",mxUtils.bind(this,function(d){this.saveLibrary(b.getTitle(),c,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==H||b.isModified()||(q.style.paddingRight=18*n.childNodes.length+"px",H.parentNode.removeChild(H),H=null)});mxEvent.consume(d)})),q.style.paddingRight=18*n.childNodes.length+"px")}),C=mxUtils.bind(this,function(b,d,e,f){b=D.cloneCells(mxUtils.sortCells(D.model.getTopmostCells(b)));for(var k=
+e.lastIndexOf("."))));var l=this.sidebar.addPalette(b.getHash(),e,null!=f?f:!0,mxUtils.bind(this,function(b){k(c,b)}));this.repositionLibrary(d);var t=l.parentNode.previousSibling;f=t.getAttribute("title");null!=f&&0<f.length&&".scratchpad"!=b.title&&t.setAttribute("title",this.getLibraryStorageHint(b)+"\n"+f);var n=document.createElement("div");n.style.position="absolute";n.style.right="0px";n.style.top="0px";n.style.padding="8px";n.style.backgroundColor="inherit";t.style.position="relative";var q=
+document.createElement("img");q.setAttribute("src",Editor.crossImage);q.setAttribute("title",mxResources.get("close"));q.setAttribute("valign","absmiddle");q.setAttribute("border","0");q.style.position="relative";q.style.top="2px";q.style.width="14px";q.style.cursor="pointer";q.style.margin="0 3px";Editor.isDarkMode()&&(q.style.filter="invert(100%)");var H=null;if(".scratchpad"!=b.title||this.closableScratchpad)n.appendChild(q),mxEvent.addListener(q,"click",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d)){var c=
+mxUtils.bind(this,function(){this.closeLibrary(b)});null!=H?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(d)}}));if(b.isEditable()){var D=this.editor.graph,F=null,O=mxUtils.bind(this,function(d){this.showLibraryDialog(b.getTitle(),l,c,b,b.getMode());mxEvent.consume(d)}),A=mxUtils.bind(this,function(d){b.setModified(!0);b.isAutosave()?(null!=F&&null!=F.parentNode&&F.parentNode.removeChild(F),F=q.cloneNode(!1),
+F.setAttribute("src",Editor.spinImage),F.setAttribute("title",mxResources.get("saving")),F.style.cursor="default",F.style.marginRight="2px",F.style.marginTop="-2px",n.insertBefore(F,n.firstChild),t.style.paddingRight=18*n.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=F&&null!=F.parentNode&&(F.parentNode.removeChild(F),t.style.paddingRight=18*n.childNodes.length+"px")})):null==H&&(H=q.cloneNode(!1),H.setAttribute("src",Editor.saveImage),H.setAttribute("title",
+mxResources.get("save")),n.insertBefore(H,n.firstChild),mxEvent.addListener(H,"click",mxUtils.bind(this,function(d){this.saveLibrary(b.getTitle(),c,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==H||b.isModified()||(t.style.paddingRight=18*n.childNodes.length+"px",H.parentNode.removeChild(H),H=null)});mxEvent.consume(d)})),t.style.paddingRight=18*n.childNodes.length+"px")}),C=mxUtils.bind(this,function(b,d,e,f){b=D.cloneCells(mxUtils.sortCells(D.model.getTopmostCells(b)));for(var k=
0;k<b.length;k++){var m=D.getCellGeometry(b[k]);null!=m&&m.translate(-d.x,-d.y)}l.appendChild(this.sidebar.createVertexTemplateFromCells(b,d.width,d.height,f||"",!0,null,!1));b={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),w:d.width,h:d.height};null!=f&&(b.title=f);c.push(b);A(e);null!=g&&null!=g.parentNode&&0<c.length&&(g.parentNode.removeChild(g),g=null)}),E=mxUtils.bind(this,function(b){if(D.isSelectionEmpty())D.getRubberband().isActive()?(D.getRubberband().execute(b),D.getRubberband().reset()):
this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=D.getSelectionCells(),c=D.view.getBounds(d),e=D.view.scale;c.x/=e;c.y/=e;c.width/=e;c.height/=e;c.x-=D.view.translate.x;c.y-=D.view.translate.y;C(d,c)}mxEvent.consume(b)});mxEvent.addGestureListeners(l,function(){},mxUtils.bind(this,function(b){D.isMouseDown&&null!=D.panningManager&&null!=D.graphHandler.first&&(D.graphHandler.suspend(),null!=D.graphHandler.hint&&(D.graphHandler.hint.style.visibility=
"hidden"),l.style.backgroundColor="#f1f3f4",l.style.cursor="copy",D.panningManager.stop(),D.autoScroll=!1,mxEvent.consume(b))}),mxUtils.bind(this,function(b){D.isMouseDown&&null!=D.panningManager&&null!=D.graphHandler&&(l.style.backgroundColor="",l.style.cursor="default",this.sidebar.showTooltips=!0,D.panningManager.stop(),D.graphHandler.reset(),D.isMouseDown=!1,D.autoScroll=!0,E(b),mxEvent.consume(b))}));mxEvent.addListener(l,"mouseleave",mxUtils.bind(this,function(b){D.isMouseDown&&null!=D.graphHandler.first&&
(D.graphHandler.resume(),null!=D.graphHandler.hint&&(D.graphHandler.hint.style.visibility="visible"),l.style.backgroundColor="",l.style.cursor="",D.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(l,"dragover",mxUtils.bind(this,function(b){l.style.backgroundColor="#f1f3f4";b.dataTransfer.dropEffect="copy";l.style.cursor="copy";this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()})),mxEvent.addListener(l,"drop",mxUtils.bind(this,function(b){l.style.cursor="";l.style.backgroundColor=
-"";0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(d,e,f,m,p,q,n,u,v){if(null!=d&&"image/"==e.substring(0,6))d="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(d),d=[new mxCell("",new mxGeometry(0,0,p,q),d)],d[0].vertex=!0,C(d,new mxRectangle(0,0,p,q),b,mxEvent.isAltDown(b)?null:n.substring(0,n.lastIndexOf(".")).replace(/_/g," ")),null!=g&&null!=g.parentNode&&0<c.length&&
+"";0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(d,e,f,m,p,t,n,u,v){if(null!=d&&"image/"==e.substring(0,6))d="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(d),d=[new mxCell("",new mxGeometry(0,0,p,t),d)],d[0].vertex=!0,C(d,new mxRectangle(0,0,p,t),b,mxEvent.isAltDown(b)?null:n.substring(0,n.lastIndexOf(".")).replace(/_/g," ")),null!=g&&null!=g.parentNode&&0<c.length&&
(g.parentNode.removeChild(g),g=null);else{var y=!1,x=mxUtils.bind(this,function(d,e){if(null!=d&&"application/pdf"==e){var f=Editor.extractGraphModelFromPdf(d);null!=f&&0<f.length&&(d=f)}if(null!=d)if(f=mxUtils.parseXml(d),"mxlibrary"==f.documentElement.nodeName)try{var m=JSON.parse(mxUtils.getTextContent(f.documentElement));k(m,l);c=c.concat(m);A(b);this.spinner.stop();y=!0}catch(ka){}else if("mxfile"==f.documentElement.nodeName)try{for(var p=f.documentElement.getElementsByTagName("diagram"),m=0;m<
-p.length;m++){var q=this.stringToCells(Editor.getDiagramNodeXml(p[m])),n=this.editor.graph.getBoundingBoxFromGeometry(q);C(q,new mxRectangle(0,0,n.width,n.height),b)}y=!0}catch(ka){null!=window.console&&console.log("error in drop handler:",ka)}y||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=g&&null!=g.parentNode&&0<c.length&&(g.parentNode.removeChild(g),g=null)});null!=v&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?this.importVisio(v,
+p.length;m++){var t=this.stringToCells(Editor.getDiagramNodeXml(p[m])),n=this.editor.graph.getBoundingBoxFromGeometry(t);C(t,new mxRectangle(0,0,n.width,n.height),b)}y=!0}catch(ka){null!=window.console&&console.log("error in drop handler:",ka)}y||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=g&&null!=g.parentNode&&0<c.length&&(g.parentNode.removeChild(g),g=null)});null!=v&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?this.importVisio(v,
function(b){x(b,"text/xml")},null,n):(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,n)&&null!=v?this.isExternalDataComms()?this.parseFile(v,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?x(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("notInOffline"))):
-x(d,e)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(l,"dragleave",function(b){l.style.cursor="";l.style.backgroundColor="";b.stopPropagation();b.preventDefault()}));t=t.cloneNode(!1);t.setAttribute("src",Editor.editImage);t.setAttribute("title",mxResources.get("edit"));n.insertBefore(t,n.firstChild);mxEvent.addListener(t,"click",O);mxEvent.addListener(l,"dblclick",function(b){mxEvent.getSource(b)==l&&O(b)});f=t.cloneNode(!1);f.setAttribute("src",Editor.plusImage);f.setAttribute("title",
-mxResources.get("add"));n.insertBefore(f,n.firstChild);mxEvent.addListener(f,"click",E);this.isOffline()||".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(f=document.createElement("span"),f.setAttribute("title",mxResources.get("help")),f.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;cursor:pointer;",mxUtils.write(f,"?"),mxEvent.addGestureListeners(f,mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(b)})),n.insertBefore(f,n.firstChild))}q.appendChild(n);
-q.style.paddingRight=18*n.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(b,c){for(var d=0;d<b.length;d++){var e=b[d],f=e.data;if(null!=f){var f=this.convertDataUri(f),k="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==e.aspect&&(k+="aspect=fixed;");c.appendChild(this.sidebar.createVertexTemplate(k+"image="+f,e.w,e.h,"",e.title||"",!1,null,!0))}else null!=e.xml&&(f=this.stringToCells(Graph.decompress(e.xml)),0<f.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(f,
+x(d,e)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(l,"dragleave",function(b){l.style.cursor="";l.style.backgroundColor="";b.stopPropagation();b.preventDefault()}));q=q.cloneNode(!1);q.setAttribute("src",Editor.editImage);q.setAttribute("title",mxResources.get("edit"));n.insertBefore(q,n.firstChild);mxEvent.addListener(q,"click",O);mxEvent.addListener(l,"dblclick",function(b){mxEvent.getSource(b)==l&&O(b)});f=q.cloneNode(!1);f.setAttribute("src",Editor.plusImage);f.setAttribute("title",
+mxResources.get("add"));n.insertBefore(f,n.firstChild);mxEvent.addListener(f,"click",E);this.isOffline()||".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(f=document.createElement("span"),f.setAttribute("title",mxResources.get("help")),f.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;cursor:pointer;",mxUtils.write(f,"?"),mxEvent.addGestureListeners(f,mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(b)})),n.insertBefore(f,n.firstChild))}t.appendChild(n);
+t.style.paddingRight=18*n.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(b,c){for(var d=0;d<b.length;d++){var e=b[d],f=e.data;if(null!=f){var f=this.convertDataUri(f),k="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==e.aspect&&(k+="aspect=fixed;");c.appendChild(this.sidebar.createVertexTemplate(k+"image="+f,e.w,e.h,"",e.title||"",!1,null,!0))}else null!=e.xml&&(f=this.stringToCells(Graph.decompress(e.xml)),0<f.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(f,
e.w,e.h,e.title||"",!0,null,!0)))}};EditorUi.prototype.getResource=function(b){return null!=b?b[mxLanguage]||b.main:null};EditorUi.prototype.footerHeight=0;"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64);EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground="linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground=
"rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38):Editor.isDarkMode()&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor=Editor.darkColor,Format.inactiveTabBackgroundColor="black",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.shapeBackgroundColor=Editor.darkColor,Graph.prototype.shapeForegroundColor=Editor.lightColor,Graph.prototype.defaultPageBackgroundColor=Editor.darkColor,Graph.prototype.defaultPageBorderColor=
"#505759",BaseFormatPanel.prototype.buttonBackgroundColor=Editor.darkColor,mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxConstants.DROP_TARGET_COLOR="#00ff00");Editor.sketchFontFamily="Architects Daughter";Editor.sketchFontSource="https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter";Editor.sketchFonts=[{fontFamily:Editor.sketchFontFamily,fontUrl:decodeURIComponent(Editor.sketchFontSource)}];"1"==urlParams.sketch&&("undefined"!==
@@ -3526,8 +3526,8 @@ null,b);c.ignoreColor=!0;this.editor.graph.model.execute(c)}});var d=new Backgro
arguments);this.editor.graph.addListener("viewStateChanged",mxUtils.bind(this,function(b){this.editor.graph.isSelectionEmpty()&&d.refresh()}));return d};EditorUi.prototype.createSidebarFooterContainer=function(){var b=this.createDiv("geSidebarContainer geSidebarFooter");b.style.position="absolute";b.style.overflow="hidden";var c=document.createElement("a");c.className="geTitle";c.style.color="#DF6C0C";c.style.fontWeight="bold";c.style.height="100%";c.style.paddingTop="9px";c.innerHTML="<span>+</span>";
var e=c.getElementsByTagName("span")[0];e.style.fontSize="18px";e.style.marginRight="5px";mxUtils.write(c,mxResources.get("moreShapes")+"...");mxEvent.addListener(c,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(c,"click",mxUtils.bind(this,function(b){this.actions.get("shapes").funct();mxEvent.consume(b)}));b.appendChild(c);return b};EditorUi.prototype.handleError=function(b,c,e,f,l,p,n){var d=null!=this.spinner&&null!=this.spinner.pause?
this.spinner.pause():function(){},g=null!=b&&null!=b.error?b.error:b;if(null!=b&&null!=b.stack&&null!=b.message)try{n?null!=window.console&&console.error("EditorUi.handleError:",b):EditorUi.logError("Caught: "+(""==b.message&&null!=b.name)?b.name:b.message,b.filename,b.lineNumber,b.columnNumber,b,"INFO")}catch(F){}if(null!=g||null!=c){n=mxUtils.htmlEntities(mxResources.get("unknownError"));var k=mxResources.get("ok"),m=null;c=null!=c?c:mxResources.get("error");if(null!=g){null!=g.retry&&(k=mxResources.get("cancel"),
-m=function(){d();g.retry()});if(404==g.code||404==g.status||403==g.code){n=403==g.code?null!=g.message?mxUtils.htmlEntities(g.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=l?l:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var q=null!=l?null:null!=p?p:window.location.hash;if(null!=q&&("#G"==q.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==
-q.substring(0,45))&&(null!=b&&null!=b.error&&(null!=b.error.errors&&0<b.error.errors.length&&"fileAccess"==b.error.errors[0].reason||null!=b.error.data&&0<b.error.data.length&&"fileAccess"==b.error.data[0].reason)||404==g.code||404==g.status)){q="#U"==q.substring(0,2)?q.substring(45,q.lastIndexOf("%26ex")):q.substring(2);this.showError(c,n,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+q);this.handleError(b,c,e,f,l)}),
+m=function(){d();g.retry()});if(404==g.code||404==g.status||403==g.code){n=403==g.code?null!=g.message?mxUtils.htmlEntities(g.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=l?l:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var t=null!=l?null:null!=p?p:window.location.hash;if(null!=t&&("#G"==t.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==
+t.substring(0,45))&&(null!=b&&null!=b.error&&(null!=b.error.errors&&0<b.error.errors.length&&"fileAccess"==b.error.errors[0].reason||null!=b.error.data&&0<b.error.data.length&&"fileAccess"==b.error.data[0].reason)||404==g.code||404==g.status)){t="#U"==t.substring(0,2)?t.substring(45,t.lastIndexOf("%26ex")):t.substring(2);this.showError(c,n,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+t);this.handleError(b,c,e,f,l)}),
m,mxResources.get("changeUser"),mxUtils.bind(this,function(){function b(){g.innerHTML="";for(var b=0;b<d.length;b++){var c=document.createElement("option");mxUtils.write(c,d[b].displayName);c.value=b;g.appendChild(c);c=document.createElement("option");c.innerHTML="&nbsp;&nbsp;&nbsp;";mxUtils.write(c,"<"+d[b].email+">");c.setAttribute("disabled","disabled");g.appendChild(c)}c=document.createElement("option");mxUtils.write(c,mxResources.get("addAccount"));c.value=d.length;g.appendChild(c)}var d=this.drive.getUsersList(),
c=document.createElement("div"),e=document.createElement("span");e.style.marginTop="6px";mxUtils.write(e,mxResources.get("changeUser")+": ");c.appendChild(e);var g=document.createElement("select");g.style.width="200px";b();mxEvent.addListener(g,"change",mxUtils.bind(this,function(){var c=g.value,e=d.length!=c;e&&this.drive.setUser(d[c]);this.drive.authorize(e,mxUtils.bind(this,function(){e||(d=this.drive.getUsersList(),b())}),mxUtils.bind(this,function(b){this.handleError(b)}),!0)}));c.appendChild(g);
c=new CustomDialog(this,c,mxUtils.bind(this,function(){this.loadFile(window.location.hash.substr(1),!0)}));this.showDialog(c.container,300,100,!0,!0)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.hideDialog();null!=e&&e()}),480,150);return}}null!=g.message?n=""==g.message&&null!=g.name?mxUtils.htmlEntities(g.name):mxUtils.htmlEntities(g.message):null!=g.response&&null!=g.response.error?n=mxUtils.htmlEntities(g.response.error):"undefined"!==typeof window.App&&(g.code==App.ERROR_TIMEOUT?
@@ -3536,15 +3536,15 @@ mxUtils.htmlEntities(g.ownerEmail))}));this.showError(c,n,k,e,m,null,null,p,v,nu
c()},function(){d();null!=e&&e()},f,l,null,null,null,null,g);this.showDialog(b.container,340,46+g,!0,p);b.init()};EditorUi.prototype.showBanner=function(b,c,e,f){var d=!1;if(!(this.bannerShowing||this["hideBanner"+b]||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings["close"+b])){var g=document.createElement("div");g.style.cssText="position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:"+
mxPopupMenu.prototype.zIndex+";";mxUtils.setPrefixedStyle(g.style,"box-shadow","1px 1px 2px 0px #ddd");mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,120%)");mxUtils.setPrefixedStyle(g.style,"transition","all 1s ease");g.className="geBtn gePrimaryBtn";d=document.createElement("img");d.setAttribute("src",IMAGE_PATH+"/logo.png");d.setAttribute("border","0");d.setAttribute("align","absmiddle");d.style.cssText="margin-top:-4px;margin-left:8px;margin-right:12px;width:26px;height:26px;";g.appendChild(d);
d=document.createElement("img");d.setAttribute("src",Dialog.prototype.closeImage);d.setAttribute("title",mxResources.get(f?"doNotShowAgain":"close"));d.setAttribute("border","0");d.style.cssText="position:absolute;right:10px;top:12px;filter:invert(1);padding:6px;margin:-6px;cursor:default;";g.appendChild(d);mxUtils.write(g,c);document.body.appendChild(g);this.bannerShowing=!0;c=document.createElement("div");c.style.cssText="font-size:11px;text-align:center;font-weight:normal;";var k=document.createElement("input");
-k.setAttribute("type","checkbox");k.setAttribute("id","geDoNotShowAgainCheckbox");k.style.marginRight="6px";if(!f){c.appendChild(k);var l=document.createElement("label");l.setAttribute("for","geDoNotShowAgainCheckbox");mxUtils.write(l,mxResources.get("doNotShowAgain"));c.appendChild(l);g.style.paddingBottom="30px";g.appendChild(c)}var q=mxUtils.bind(this,function(){null!=g.parentNode&&(g.parentNode.removeChild(g),this.bannerShowing=!1,k.checked||f)&&(this["hideBanner"+b]=!0,isLocalStorage&&null!=
-mxSettings.settings&&(mxSettings.settings["close"+b]=Date.now(),mxSettings.save()))});mxEvent.addListener(d,"click",mxUtils.bind(this,function(b){mxEvent.consume(b);q()}));var n=mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,120%)");window.setTimeout(mxUtils.bind(this,function(){q()}),1E3)});mxEvent.addListener(g,"click",mxUtils.bind(this,function(b){var d=mxEvent.getSource(b);d!=k&&d!=l?(null!=e&&e(),q(),mxEvent.consume(b)):n()}));window.setTimeout(mxUtils.bind(this,
+k.setAttribute("type","checkbox");k.setAttribute("id","geDoNotShowAgainCheckbox");k.style.marginRight="6px";if(!f){c.appendChild(k);var l=document.createElement("label");l.setAttribute("for","geDoNotShowAgainCheckbox");mxUtils.write(l,mxResources.get("doNotShowAgain"));c.appendChild(l);g.style.paddingBottom="30px";g.appendChild(c)}var t=mxUtils.bind(this,function(){null!=g.parentNode&&(g.parentNode.removeChild(g),this.bannerShowing=!1,k.checked||f)&&(this["hideBanner"+b]=!0,isLocalStorage&&null!=
+mxSettings.settings&&(mxSettings.settings["close"+b]=Date.now(),mxSettings.save()))});mxEvent.addListener(d,"click",mxUtils.bind(this,function(b){mxEvent.consume(b);t()}));var n=mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,120%)");window.setTimeout(mxUtils.bind(this,function(){t()}),1E3)});mxEvent.addListener(g,"click",mxUtils.bind(this,function(b){var d=mxEvent.getSource(b);d!=k&&d!=l?(null!=e&&e(),t(),mxEvent.consume(b)):n()}));window.setTimeout(mxUtils.bind(this,
function(){mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(n,3E4);d=!0}return d};EditorUi.prototype.setCurrentFile=function(b){null!=b&&(b.opened=new Date);this.currentFile=b};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=function(){return this.editor.isExportToCanvas()};EditorUi.prototype.createImageDataUri=function(b,c,e,f){b=b.toDataURL("image/"+e);if(null!=b&&6<b.length)null!=c&&(b=Editor.writeGraphModelToPng(b,
"tEXt","mxfile",encodeURIComponent(c))),0<f&&(b=Editor.writeGraphModelToPng(b,"pHYs","dpi",f));else throw{message:mxResources.get("unknownError")};return b};EditorUi.prototype.saveCanvas=function(b,c,e,f,l){var d="jpeg"==e?"jpg":e;f=this.getBaseFilename(f)+(null!=c?".drawio":"")+"."+d;b=this.createImageDataUri(b,c,e,l);this.saveData(f,d,b.substring(b.lastIndexOf(",")+1),"image/"+e,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&
"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.showTextDialog=function(b,c){var d=new TextareaDialog(this,b,c,null,null,mxResources.get("close"));this.showDialog(d.container,620,460,!0,!0,null,null,null,null,!0);d.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(b,c,e,f,l,p){"text/xml"!=e||/(\.drawio)$/i.test(c)||/(\.xml)$/i.test(c)||
/(\.svg)$/i.test(c)||/(\.html)$/i.test(c)||(c=c+"."+(null!=p?p:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)b=f?this.base64ToBlob(b,e):new Blob([b],{type:e}),navigator.msSaveOrOpenBlob(b,c);else if(mxClient.IS_IE)e=window.open("about:blank","_blank"),null==e?mxUtils.popup(b,!0):(e.document.write(b),e.document.close(),e.document.execCommand("SaveAs",!0,c),e.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==e||"image/"!=e.substring(0,6)?this.showTextDialog(c+":",
b):this.openInNewWindow(b,e,f);else{var d=document.createElement("a");p=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof d.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var g=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);p=65==(g?parseInt(g[2],10):!1)?!1:p}if(p||this.isOffline()){d.href=URL.createObjectURL(f?this.base64ToBlob(b,e):new Blob([b],{type:e}));p?d.download=c:d.setAttribute("target","_blank");document.body.appendChild(d);try{window.setTimeout(function(){URL.revokeObjectURL(d.href)},
2E4),d.click(),d.parentNode.removeChild(d)}catch(x){}}else this.createEchoRequest(b,c,e,f,l).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(b,c,e,f,l,p){b="xml="+encodeURIComponent(b);return new mxXmlRequest(SAVE_URL,b+(null!=e?"&mime="+e:"")+(null!=l?"&format="+l:"")+(null!=p?"&base64="+p:"")+(null!=c?"&filename="+encodeURIComponent(c):"")+(f?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(b,c){c=c||"";for(var d=atob(b),e=d.length,f=Math.ceil(e/1024),k=Array(f),
-l=0;l<f;++l){for(var n=1024*l,x=Math.min(n+1024,e),y=Array(x-n),t=0;n<x;++t,++n)y[t]=d[n].charCodeAt(0);k[l]=new Uint8Array(y)}return new Blob(k,{type:c})};EditorUi.prototype.saveLocalFile=function(b,c,e,f,l,p,n,u){p=null!=p?p:!1;n=null!=n?n:"vsdx"!=l&&(!mxClient.IS_IOS||!navigator.standalone);l=this.getServiceCount(p);isLocalStorage&&l++;var d=4>=l?2:6<l?4:3;c=new CreateDialog(this,c,mxUtils.bind(this,function(d,c){try{if("_blank"==c)if(null!=e&&"image/"==e.substring(0,6))this.openInNewWindow(b,
+l=0;l<f;++l){for(var n=1024*l,x=Math.min(n+1024,e),y=Array(x-n),q=0;n<x;++q,++n)y[q]=d[n].charCodeAt(0);k[l]=new Uint8Array(y)}return new Blob(k,{type:c})};EditorUi.prototype.saveLocalFile=function(b,c,e,f,l,p,n,u){p=null!=p?p:!1;n=null!=n?n:"vsdx"!=l&&(!mxClient.IS_IOS||!navigator.standalone);l=this.getServiceCount(p);isLocalStorage&&l++;var d=4>=l?2:6<l?4:3;c=new CreateDialog(this,c,mxUtils.bind(this,function(d,c){try{if("_blank"==c)if(null!=e&&"image/"==e.substring(0,6))this.openInNewWindow(b,
e,f);else if(null!=e&&"text/html"==e.substring(0,9)){var g=new EmbedDialog(this,b);this.showDialog(g.container,450,240,!0,!0);g.init()}else{var k=window.open("about:blank");null==k?mxUtils.popup(b,!0):(k.document.write("<pre>"+mxUtils.htmlEntities(b,!1)+"</pre>"),k.document.close())}else c==App.MODE_DEVICE||"download"==c?this.doSaveLocalFile(b,d,e,f,null,u):null!=d&&0<d.length&&this.pickFolder(c,mxUtils.bind(this,function(g){try{this.exportFile(b,d,e,f,c,g)}catch(O){this.handleError(O)}}))}catch(F){this.handleError(F)}}),
mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,p,n,null,1<l,d,b,e,f);p=this.isServices(l)?l>d?390:280:160;this.showDialog(c.container,420,p,!0,!0);c.init()};EditorUi.prototype.openInNewWindow=function(b,c,e){var d=window.open("about:blank");null==d||null==d.document?mxUtils.popup(b,!0):("image/svg+xml"!=c||mxClient.IS_SVG?"image/svg+xml"==c?d.document.write("<html>"+b+"</html>"):(b=e?b:btoa(unescape(encodeURIComponent(b))),d.document.write('<html><img style="max-width:100%;" src="data:'+
c+";base64,"+b+'"/></html>')):d.document.write("<html><pre>"+mxUtils.htmlEntities(b,!1)+"</pre></html>"),d.document.close())};var f=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.isChromelessImageExportEnabled=function(){return"draw.io"!=this.getServiceName()||/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname)};EditorUi.prototype.addChromelessToolbarItems=function(b){if(null!=urlParams.tags){this.tagsDialog=this.tagsComponent=null;
@@ -3561,10 +3561,10 @@ this.exportDialog.style.zIndex=e.zIndex;var g=new Spinner({lines:8,length:6,widt
Editor.defaultBorder);mxEvent.addListener(this.editor.graph.container,"click",d);document.body.appendChild(this.exportDialog)}mxEvent.consume(b)}),Editor.cameraImage,mxResources.get("export"))}};EditorUi.prototype.saveData=function(b,c,e,f,l){this.isLocalFileSave()?this.saveLocalFile(e,b,f,l,c):this.saveRequest(b,c,mxUtils.bind(this,function(b,d){return this.createEchoRequest(e,b,f,l,c,d)}),e,l,f)};EditorUi.prototype.saveRequest=function(b,c,e,f,l,p,n){n=null!=n?n:!mxClient.IS_IOS||!navigator.standalone;
var d=this.getServiceCount(!1);isLocalStorage&&d++;var g=4>=d?2:6<d?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(b,d){if("_blank"==d||null!=b&&0<b.length){var g=e("_blank"==d?null:b,d==App.MODE_DEVICE||"download"==d||null==d||"_blank"==d?"0":"1");null!=g&&(d==App.MODE_DEVICE||"download"==d||"_blank"==d?g.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(e){p=null!=p?p:"pdf"==c?"application/pdf":"image/"+c;if(null!=f)try{this.exportFile(f,b,p,!0,d,e)}catch(F){this.handleError(F)}else this.spinner.spin(document.body,
mxResources.get("saving"))&&g.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=g.getStatus()&&299>=g.getStatus())try{this.exportFile(g.getText(),b,p,!0,d,e)}catch(F){this.handleError(F)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(b){this.spinner.stop();this.handleError(b)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,n,null,1<d,g,f,p,l);d=this.isServices(d)?4<d?390:280:160;this.showDialog(b.container,
-420,d,!0,!0);b.init()};EditorUi.prototype.isServices=function(b){return 1!=b};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(b,c,e,f,l,p){};EditorUi.prototype.pickFolder=function(b,c,e){c(null)};EditorUi.prototype.exportSvg=function(b,c,e,f,l,p,n,u,t,y,G,H,D,F){if(this.spinner.spin(document.body,mxResources.get("export")))try{var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;var g=c?null:this.editor.graph.background;g==mxConstants.NONE&&
+420,d,!0,!0);b.init()};EditorUi.prototype.isServices=function(b){return 1!=b};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(b,c,e,f,l,p){};EditorUi.prototype.pickFolder=function(b,c,e){c(null)};EditorUi.prototype.exportSvg=function(b,c,e,f,l,p,n,u,q,y,G,H,D,F){if(this.spinner.spin(document.body,mxResources.get("export")))try{var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;var g=c?null:this.editor.graph.background;g==mxConstants.NONE&&
(g=null);null==g&&0==c&&(g=G?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var k=this.editor.graph.getSvg(g,b,n,u,null,e,null,null,"blank"==y?"_blank":"self"==y?"_top":null,null,!D,G,H);f&&this.editor.graph.addSvgShadow(k);var m=this.getBaseFilename()+(l?".drawio":"")+".svg";F=null!=F?F:mxUtils.bind(this,function(b){this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(m,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),
-mxUtils.bind(this,function(){mxUtils.popup(b)}))});var q=mxUtils.bind(this,function(b){this.spinner.stop();l&&b.setAttribute("content",this.getFileData(!0,null,null,null,e,t,null,null,null,!1));F(Graph.xmlDeclaration+"\n"+(l?Graph.svgFileComment+"\n":"")+Graph.svgDoctype+"\n"+mxUtils.getXml(b))});this.editor.graph.mathEnabled&&this.editor.addMathCss(k);var v=mxUtils.bind(this,function(b){p?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(b,q,this.thumbImageCache)):
-q(b)});D?this.embedFonts(k,v):(this.editor.addFontCss(k),v(k))}catch(M){this.handleError(M)}};EditorUi.prototype.addRadiobox=function(b,c,e,f,l,p,n){return this.addCheckbox(b,e,f,l,p,n,!0,c)};EditorUi.prototype.addCheckbox=function(b,c,e,f,l,p,n,u){p=null!=p?p:!0;var d=document.createElement("input");d.style.marginRight="8px";d.style.marginTop="16px";d.setAttribute("type",n?"radio":"checkbox");n="geCheckbox-"+Editor.guid();d.id=n;null!=u&&d.setAttribute("name",u);e&&(d.setAttribute("checked","checked"),
+mxUtils.bind(this,function(){mxUtils.popup(b)}))});var t=mxUtils.bind(this,function(b){this.spinner.stop();l&&b.setAttribute("content",this.getFileData(!0,null,null,null,e,q,null,null,null,!1));F(Graph.xmlDeclaration+"\n"+(l?Graph.svgFileComment+"\n":"")+Graph.svgDoctype+"\n"+mxUtils.getXml(b))});this.editor.graph.mathEnabled&&this.editor.addMathCss(k);var v=mxUtils.bind(this,function(b){p?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(b,t,this.thumbImageCache)):
+t(b)});D?this.embedFonts(k,v):(this.editor.addFontCss(k),v(k))}catch(M){this.handleError(M)}};EditorUi.prototype.addRadiobox=function(b,c,e,f,l,p,n){return this.addCheckbox(b,e,f,l,p,n,!0,c)};EditorUi.prototype.addCheckbox=function(b,c,e,f,l,p,n,u){p=null!=p?p:!0;var d=document.createElement("input");d.style.marginRight="8px";d.style.marginTop="16px";d.setAttribute("type",n?"radio":"checkbox");n="geCheckbox-"+Editor.guid();d.id=n;null!=u&&d.setAttribute("name",u);e&&(d.setAttribute("checked","checked"),
d.defaultChecked=!0);f&&d.setAttribute("disabled","disabled");p&&(b.appendChild(d),e=document.createElement("label"),mxUtils.write(e,c),e.setAttribute("for",n),b.appendChild(e),l||mxUtils.br(b));return d};EditorUi.prototype.addEditButton=function(b,c){var d=this.addCheckbox(b,mxResources.get("edit")+":",!0,null,!0);d.style.marginLeft="24px";var e=this.getCurrentFile(),f="";null!=e&&e.getMode()!=App.MODE_DEVICE&&e.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var k=document.createElement("select");
k.style.maxWidth="200px";k.style.width="auto";k.style.marginLeft="8px";k.style.marginRight="10px";k.className="geBtn";e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("makeCopy"));k.appendChild(e);e=document.createElement("option");e.setAttribute("value","custom");mxUtils.write(e,mxResources.get("custom")+"...");k.appendChild(e);b.appendChild(k);mxEvent.addListener(k,"change",mxUtils.bind(this,function(){if("custom"==k.value){var b=new FilenameDialog(this,
f,mxResources.get("ok"),function(b){null!=b?f=b:k.value="blank"},mxResources.get("url"),null,null,null,null,function(){k.value="blank"});this.showDialog(b.container,300,80,!0,!1);b.init()}}));mxEvent.addListener(d,"change",mxUtils.bind(this,function(){d.checked&&(null==c||c.checked)?k.removeAttribute("disabled"):k.setAttribute("disabled","disabled")}));mxUtils.br(b);return{getLink:function(){return d.checked?"blank"===k.value?"_blank":f:null},getEditInput:function(){return d},getEditSelect:function(){return k}}};
@@ -3572,58 +3572,58 @@ EditorUi.prototype.addLinkSection=function(b,c){function d(){var b=document.crea
e.style.width="100px";e.style.padding="0px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));e.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));e.appendChild(f);f=document.createElement("option");f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));
e.appendChild(f);c&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),e.appendChild(f));b.appendChild(e);mxUtils.write(b,mxResources.get("borderColor")+":");var k="#0000ff",l=null,l=mxUtils.button("",mxUtils.bind(this,function(b){this.pickColor(k||"none",function(b){k=b;d()});mxEvent.consume(b)}));d();l.style.padding=mxClient.IS_FF?"4px 2px 4px 2px":"4px";l.style.marginLeft="4px";l.style.height=
"22px";l.style.width="22px";l.style.position="relative";l.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";l.className="geColorBtn";b.appendChild(l);mxUtils.br(b);return{getColor:function(){return k},getTarget:function(){return e.value},focus:function(){e.focus()}}};EditorUi.prototype.createUrlParameters=function(b,c,e,f,l,p,n){n=null!=n?n:[];f&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&"1"!=urlParams.dev||n.push("lightbox=1"),"auto"!=b&&n.push("target="+b),null!=
-c&&c!=mxConstants.NONE&&n.push("highlight="+("#"==c.charAt(0)?c.substring(1):c)),null!=l&&0<l.length&&n.push("edit="+encodeURIComponent(l)),p&&n.push("layers=1"),this.editor.graph.foldingEnabled&&n.push("nav=1"));e&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&n.push("page-id="+this.currentPage.getId());return n};EditorUi.prototype.createLink=function(b,c,e,f,l,p,n,u,t,y){t=this.createUrlParameters(b,c,e,f,l,p,t);b=this.getCurrentFile();c=!0;null!=n?e="#U"+encodeURIComponent(n):
-(b=this.getCurrentFile(),u||null==b||b.constructor!=window.DriveFile?e="#R"+encodeURIComponent(e?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(e="#"+b.getHash(),c=!1));c&&null!=b&&null!=b.getTitle()&&b.getTitle()!=this.defaultFilename&&t.push("title="+encodeURIComponent(b.getTitle()));y&&1<e.length&&(t.push("open="+e.substring(1)),e="");return(f&&"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
-!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<t.length?"?"+t.join("&"):"")+e};EditorUi.prototype.createHtml=function(b,c,e,f,l,p,n,u,t,y,G,H){this.getBasenames();var d={};""!=l&&l!=mxConstants.NONE&&(d.highlight=l);"auto"!==f&&(d.target=f);y||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;e=parseInt(e);isNaN(e)||100==e||(d.zoom=e/100);e=[];n&&(e.push("pages"),d.resize=!0,null!=this.pages&&null!=this.currentPage&&(d.page=mxUtils.indexOf(this.pages,
-this.currentPage)));c&&(e.push("zoom"),d.resize=!0);u&&e.push("layers");t&&e.push("tags");0<e.length&&(y&&e.push("lightbox"),d.toolbar=e.join(" "));null!=G&&0<G.length&&(d.edit=G);null!=b?d.url=b:d.xml=this.getFileData(!0,null,null,null,null,!n);c='<div class="mxgraph" style="'+(p?"max-width:100%;":"")+(""!=e?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(d))+'"></div>';b=null!=b?"&fetch="+encodeURIComponent(b):"";H(c,'<script type="text/javascript" src="'+
+c&&c!=mxConstants.NONE&&n.push("highlight="+("#"==c.charAt(0)?c.substring(1):c)),null!=l&&0<l.length&&n.push("edit="+encodeURIComponent(l)),p&&n.push("layers=1"),this.editor.graph.foldingEnabled&&n.push("nav=1"));e&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&n.push("page-id="+this.currentPage.getId());return n};EditorUi.prototype.createLink=function(b,c,e,f,l,p,n,u,q,y){q=this.createUrlParameters(b,c,e,f,l,p,q);b=this.getCurrentFile();c=!0;null!=n?e="#U"+encodeURIComponent(n):
+(b=this.getCurrentFile(),u||null==b||b.constructor!=window.DriveFile?e="#R"+encodeURIComponent(e?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(e="#"+b.getHash(),c=!1));c&&null!=b&&null!=b.getTitle()&&b.getTitle()!=this.defaultFilename&&q.push("title="+encodeURIComponent(b.getTitle()));y&&1<e.length&&(q.push("open="+e.substring(1)),e="");return(f&&"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
+!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<q.length?"?"+q.join("&"):"")+e};EditorUi.prototype.createHtml=function(b,c,e,f,l,p,n,u,q,y,G,H){this.getBasenames();var d={};""!=l&&l!=mxConstants.NONE&&(d.highlight=l);"auto"!==f&&(d.target=f);y||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;e=parseInt(e);isNaN(e)||100==e||(d.zoom=e/100);e=[];n&&(e.push("pages"),d.resize=!0,null!=this.pages&&null!=this.currentPage&&(d.page=mxUtils.indexOf(this.pages,
+this.currentPage)));c&&(e.push("zoom"),d.resize=!0);u&&e.push("layers");q&&e.push("tags");0<e.length&&(y&&e.push("lightbox"),d.toolbar=e.join(" "));null!=G&&0<G.length&&(d.edit=G);null!=b?d.url=b:d.xml=this.getFileData(!0,null,null,null,null,!n);c='<div class="mxgraph" style="'+(p?"max-width:100%;":"")+(""!=e?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(d))+'"></div>';b=null!=b?"&fetch="+encodeURIComponent(b):"";H(c,'<script type="text/javascript" src="'+
(0<b.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+b:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.DRAWIO_VIEWER_URL?window.DRAWIO_VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(b,c,e,f){var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=document.createElement("h3");mxUtils.write(g,mxResources.get("html"));g.style.cssText=
"width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(g);var k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var l=document.createElement("input");l.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";l.setAttribute("value","url");l.setAttribute("type","radio");l.setAttribute("name","type-embedhtmldialog");g=l.cloneNode(!0);g.setAttribute("value","copy");k.appendChild(g);var n=document.createElement("span");
-mxUtils.write(n,mxResources.get("includeCopyOfMyDiagram"));k.appendChild(n);mxUtils.br(k);k.appendChild(l);n=document.createElement("span");mxUtils.write(n,mxResources.get("publicDiagramUrl"));k.appendChild(n);var q=this.getCurrentFile();null==e&&null!=q&&q.constructor==window.DriveFile&&(n=document.createElement("a"),n.style.paddingLeft="12px",n.style.color="gray",n.style.cursor="pointer",mxUtils.write(n,mxResources.get("share")),k.appendChild(n),mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.hideDialog();
-this.drive.showPermissions(q.getId())})));g.setAttribute("checked","checked");null==e&&l.setAttribute("disabled","disabled");d.appendChild(k);var t=this.addLinkSection(d),H=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,":");var D=document.createElement("input");D.setAttribute("type","text");D.style.marginRight="16px";D.style.width="60px";D.style.marginLeft="4px";D.style.marginRight="12px";D.value="100%";d.appendChild(D);var F=this.addCheckbox(d,mxResources.get("fit"),!0),
-k=null!=this.pages&&1<this.pages.length,O=O=this.addCheckbox(d,mxResources.get("allPages"),k,!k),A=this.addCheckbox(d,mxResources.get("layers"),!0),C=this.addCheckbox(d,mxResources.get("tags"),!0),E=this.addCheckbox(d,mxResources.get("lightbox"),!0),k=EditorUi.enableHtmlEditOption?d:d.cloneNode(),L=this.addEditButton(k,E),N=L.getEditInput();N.style.marginBottom="16px";mxEvent.addListener(E,"change",function(){E.checked?N.removeAttribute("disabled"):N.setAttribute("disabled","disabled");N.checked&&
-E.checked?L.getEditSelect().removeAttribute("disabled"):L.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){f(l.checked?e:null,H.checked,D.value,t.getTarget(),t.getColor(),F.checked,O.checked,A.checked,C.checked,E.checked,EditorUi.enableHtmlEditOption?L.getLink():null)}),null,b,c);this.showDialog(b.container,340,430,!0,!0);g.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,e,f,l,p,n,u){var d=document.createElement("div");d.style.whiteSpace=
-"nowrap";var g=document.createElement("h3");mxUtils.write(g,b||mxResources.get("link"));g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(g);var k=this.getCurrentFile();b=0;if(null==k||k.constructor!=window.DriveFile||c)n=null!=n?n:"https://www.diagrams.net/doc/faq/publish-diagram-as-link";else{b=80;n=null!=n?n:"https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram";g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
+mxUtils.write(n,mxResources.get("includeCopyOfMyDiagram"));k.appendChild(n);mxUtils.br(k);k.appendChild(l);n=document.createElement("span");mxUtils.write(n,mxResources.get("publicDiagramUrl"));k.appendChild(n);var t=this.getCurrentFile();null==e&&null!=t&&t.constructor==window.DriveFile&&(n=document.createElement("a"),n.style.paddingLeft="12px",n.style.color="gray",n.style.cursor="pointer",mxUtils.write(n,mxResources.get("share")),k.appendChild(n),mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.hideDialog();
+this.drive.showPermissions(t.getId())})));g.setAttribute("checked","checked");null==e&&l.setAttribute("disabled","disabled");d.appendChild(k);var q=this.addLinkSection(d),H=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,":");var D=document.createElement("input");D.setAttribute("type","text");D.style.marginRight="16px";D.style.width="60px";D.style.marginLeft="4px";D.style.marginRight="12px";D.value="100%";d.appendChild(D);var F=this.addCheckbox(d,mxResources.get("fit"),!0),
+k=null!=this.pages&&1<this.pages.length,O=O=this.addCheckbox(d,mxResources.get("allPages"),k,!k),A=this.addCheckbox(d,mxResources.get("layers"),!0),C=this.addCheckbox(d,mxResources.get("tags"),!0),E=this.addCheckbox(d,mxResources.get("lightbox"),!0),J=null,k=380;if(EditorUi.enableHtmlEditOption){var J=this.addEditButton(d,E),N=J.getEditInput();N.style.marginBottom="16px";k+=50;mxEvent.addListener(E,"change",function(){E.checked?N.removeAttribute("disabled"):N.setAttribute("disabled","disabled");N.checked&&
+E.checked?J.getEditSelect().removeAttribute("disabled"):J.getEditSelect().setAttribute("disabled","disabled")})}b=new CustomDialog(this,d,mxUtils.bind(this,function(){f(l.checked?e:null,H.checked,D.value,q.getTarget(),q.getColor(),F.checked,O.checked,A.checked,C.checked,E.checked,null!=J?J.getLink():null)}),null,b,c);this.showDialog(b.container,340,k,!0,!0);g.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,e,f,l,p,n,u){var d=document.createElement("div");d.style.whiteSpace="nowrap";
+var g=document.createElement("h3");mxUtils.write(g,b||mxResources.get("link"));g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(g);var k=this.getCurrentFile();b=0;if(null==k||k.constructor!=window.DriveFile||c)n=null!=n?n:"https://www.diagrams.net/doc/faq/publish-diagram-as-link";else{b=80;n=null!=n?n:"https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram";g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
var m=document.createElement("div");m.style.whiteSpace="normal";mxUtils.write(m,mxResources.get("linkAccountRequired"));g.appendChild(m);m=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(k.getId())}));m.style.marginTop="12px";m.className="geBtn";g.appendChild(m);d.appendChild(g);m=document.createElement("a");m.style.paddingLeft="12px";m.style.color="gray";m.style.fontSize="11px";m.style.cursor="pointer";mxUtils.write(m,mxResources.get("check"));g.appendChild(m);
-mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(b.container,300,80,!0,!1);b.init()}))}))}var q=null,t=null;if(null!=e||null!=f)b+=30,mxUtils.write(d,mxResources.get("width")+":"),q=document.createElement("input"),
-q.setAttribute("type","text"),q.style.marginRight="16px",q.style.width="50px",q.style.marginLeft="6px",q.style.marginRight="16px",q.style.marginBottom="10px",q.value="100%",d.appendChild(q),mxUtils.write(d,mxResources.get("height")+":"),t=document.createElement("input"),t.setAttribute("type","text"),t.style.width="50px",t.style.marginLeft="6px",t.style.marginBottom="10px",t.value=f+"px",d.appendChild(t),mxUtils.br(d);var v=this.addLinkSection(d,p);e=null!=this.pages&&1<this.pages.length;var A=null;
-if(null==k||k.constructor!=window.DriveFile||c)A=this.addCheckbox(d,mxResources.get("allPages"),e,!e);var C=this.addCheckbox(d,mxResources.get("lightbox"),!0,null,null,!p),E=this.addEditButton(d,C),L=E.getEditInput();p&&(L.style.marginLeft=C.style.marginLeft,C.style.display="none",b-=20);var N=this.addCheckbox(d,mxResources.get("layers"),!0);N.style.marginLeft=L.style.marginLeft;N.style.marginTop="8px";var M=this.addCheckbox(d,mxResources.get("tags"),!0);M.style.marginLeft=L.style.marginLeft;M.style.marginBottom=
-"16px";M.style.marginTop="16px";mxEvent.addListener(C,"change",function(){C.checked?(N.removeAttribute("disabled"),L.removeAttribute("disabled")):(N.setAttribute("disabled","disabled"),L.setAttribute("disabled","disabled"));L.checked&&C.checked?E.getEditSelect().removeAttribute("disabled"):E.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){l(v.getTarget(),v.getColor(),null==A?!0:A.checked,C.checked,E.getLink(),N.checked,null!=q?q.value:null,
-null!=t?t.value:null,M.checked)}),null,mxResources.get("create"),n,u);this.showDialog(c.container,340,300+b,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)):v.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,f,l){var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=document.createElement("h3");mxUtils.write(g,mxResources.get("image"));g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+
+mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(b.container,300,80,!0,!1);b.init()}))}))}var t=null,q=null;if(null!=e||null!=f)b+=30,mxUtils.write(d,mxResources.get("width")+":"),t=document.createElement("input"),
+t.setAttribute("type","text"),t.style.marginRight="16px",t.style.width="50px",t.style.marginLeft="6px",t.style.marginRight="16px",t.style.marginBottom="10px",t.value="100%",d.appendChild(t),mxUtils.write(d,mxResources.get("height")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=f+"px",d.appendChild(q),mxUtils.br(d);var v=this.addLinkSection(d,p);e=null!=this.pages&&1<this.pages.length;var A=null;
+if(null==k||k.constructor!=window.DriveFile||c)A=this.addCheckbox(d,mxResources.get("allPages"),e,!e);var C=this.addCheckbox(d,mxResources.get("lightbox"),!0,null,null,!p),E=this.addEditButton(d,C),J=E.getEditInput();p&&(J.style.marginLeft=C.style.marginLeft,C.style.display="none",b-=20);var N=this.addCheckbox(d,mxResources.get("layers"),!0);N.style.marginLeft=J.style.marginLeft;N.style.marginTop="8px";var M=this.addCheckbox(d,mxResources.get("tags"),!0);M.style.marginLeft=J.style.marginLeft;M.style.marginBottom=
+"16px";M.style.marginTop="16px";mxEvent.addListener(C,"change",function(){C.checked?(N.removeAttribute("disabled"),J.removeAttribute("disabled")):(N.setAttribute("disabled","disabled"),J.setAttribute("disabled","disabled"));J.checked&&C.checked?E.getEditSelect().removeAttribute("disabled"):E.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){l(v.getTarget(),v.getColor(),null==A?!0:A.checked,C.checked,E.getLink(),N.checked,null!=t?t.value:null,
+null!=q?q.value:null,M.checked)}),null,mxResources.get("create"),n,u);this.showDialog(c.container,340,300+b,!0,!0);null!=t?(t.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null)):v.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,f,l){var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=document.createElement("h3");mxUtils.write(g,mxResources.get("image"));g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+
(l?"10":"4")+"px";d.appendChild(g);if(l){mxUtils.write(d,mxResources.get("zoom")+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.marginRight="16px";k.style.width="60px";k.style.marginLeft="4px";k.style.marginRight="12px";k.value=this.lastExportZoom||"100%";d.appendChild(k);mxUtils.write(d,mxResources.get("borderWidth")+":");var m=document.createElement("input");m.setAttribute("type","text");m.style.marginRight="16px";m.style.width="60px";m.style.marginLeft="4px";m.value=
-this.lastExportBorder||"0";d.appendChild(m);mxUtils.br(d)}var n=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),q=f?null:this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),Editor.defaultIncludeDiagram),g=this.editor.graph,t=f?null:this.addCheckbox(d,mxResources.get("transparentBackground"),g.background==mxConstants.NONE||null==g.background);null!=t&&(t.style.marginBottom="16px");b=new CustomDialog(this,d,mxUtils.bind(this,function(){var b=parseInt(k.value)/
-100||1,d=parseInt(m.value)||0;e(!n.checked,null!=q?q.checked:!1,null!=t?t.checked:!1,b,d)}),null,b,c);this.showDialog(b.container,300,(l?25:0)+(f?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(b,c,e,f,l,p,n,u,t){n=null!=n?n:Editor.defaultIncludeDiagram;var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=this.editor.graph,k="jpeg"==u?220:300,m=document.createElement("h3");mxUtils.write(m,b);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";
-d.appendChild(m);mxUtils.write(d,mxResources.get("zoom")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight="12px";q.value=this.lastExportZoom||"100%";d.appendChild(q);mxUtils.write(d,mxResources.get("borderWidth")+":");var v=document.createElement("input");v.setAttribute("type","text");v.style.marginRight="16px";v.style.width="60px";v.style.marginLeft="4px";v.value=this.lastExportBorder||
-"0";d.appendChild(v);mxUtils.br(d);var x=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,g.isSelectionEmpty()),C=document.createElement("input");C.style.marginTop="16px";C.style.marginRight="8px";C.style.marginLeft="24px";C.setAttribute("disabled","disabled");C.setAttribute("type","checkbox");var E=document.createElement("select");E.style.marginTop="16px";E.style.marginLeft="8px";b=["selectionOnly","diagram","page"];for(var L={},m=0;m<b.length;m++)if(!g.isSelectionEmpty()||"selectionOnly"!=
-b[m]){var N=document.createElement("option");mxUtils.write(N,mxResources.get(b[m]));N.setAttribute("value",b[m]);E.appendChild(N);L[b[m]]=N}t?(mxUtils.write(d,mxResources.get("size")+":"),d.appendChild(E),mxUtils.br(d),k+=26,mxEvent.addListener(E,"change",function(){"selectionOnly"==E.value&&(x.checked=!0)})):p&&(d.appendChild(C),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),k+=30,mxEvent.addListener(x,"change",function(){x.checked?C.removeAttribute("disabled"):C.setAttribute("disabled",
-"disabled")}));g.isSelectionEmpty()?t&&(x.style.display="none",x.nextSibling.style.display="none",x.nextSibling.nextSibling.style.display="none",k-=30):(E.value="diagram",C.setAttribute("checked","checked"),C.defaultChecked=!0,mxEvent.addListener(x,"change",function(){E.value=x.checked?"selectionOnly":"diagram"}));var M=this.addCheckbox(d,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=u),Q=null;Editor.isDarkMode()&&(Q=this.addCheckbox(d,mxResources.get("dark"),!0),k+=26);var V=this.addCheckbox(d,
+this.lastExportBorder||"0";d.appendChild(m);mxUtils.br(d)}var n=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),t=f?null:this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),Editor.defaultIncludeDiagram),g=this.editor.graph,q=f?null:this.addCheckbox(d,mxResources.get("transparentBackground"),g.background==mxConstants.NONE||null==g.background);null!=q&&(q.style.marginBottom="16px");b=new CustomDialog(this,d,mxUtils.bind(this,function(){var b=parseInt(k.value)/
+100||1,d=parseInt(m.value)||0;e(!n.checked,null!=t?t.checked:!1,null!=q?q.checked:!1,b,d)}),null,b,c);this.showDialog(b.container,300,(l?25:0)+(f?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(b,c,e,f,l,p,n,u,q){n=null!=n?n:Editor.defaultIncludeDiagram;var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=this.editor.graph,k="jpeg"==u?220:300,m=document.createElement("h3");mxUtils.write(m,b);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";
+d.appendChild(m);mxUtils.write(d,mxResources.get("zoom")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight="12px";t.value=this.lastExportZoom||"100%";d.appendChild(t);mxUtils.write(d,mxResources.get("borderWidth")+":");var v=document.createElement("input");v.setAttribute("type","text");v.style.marginRight="16px";v.style.width="60px";v.style.marginLeft="4px";v.value=this.lastExportBorder||
+"0";d.appendChild(v);mxUtils.br(d);var x=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,g.isSelectionEmpty()),C=document.createElement("input");C.style.marginTop="16px";C.style.marginRight="8px";C.style.marginLeft="24px";C.setAttribute("disabled","disabled");C.setAttribute("type","checkbox");var E=document.createElement("select");E.style.marginTop="16px";E.style.marginLeft="8px";b=["selectionOnly","diagram","page"];for(var J={},m=0;m<b.length;m++)if(!g.isSelectionEmpty()||"selectionOnly"!=
+b[m]){var N=document.createElement("option");mxUtils.write(N,mxResources.get(b[m]));N.setAttribute("value",b[m]);E.appendChild(N);J[b[m]]=N}q?(mxUtils.write(d,mxResources.get("size")+":"),d.appendChild(E),mxUtils.br(d),k+=26,mxEvent.addListener(E,"change",function(){"selectionOnly"==E.value&&(x.checked=!0)})):p&&(d.appendChild(C),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),k+=30,mxEvent.addListener(x,"change",function(){x.checked?C.removeAttribute("disabled"):C.setAttribute("disabled",
+"disabled")}));g.isSelectionEmpty()?q&&(x.style.display="none",x.nextSibling.style.display="none",x.nextSibling.nextSibling.style.display="none",k-=30):(E.value="diagram",C.setAttribute("checked","checked"),C.defaultChecked=!0,mxEvent.addListener(x,"change",function(){E.value=x.checked?"selectionOnly":"diagram"}));var M=this.addCheckbox(d,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=u),Q=null;Editor.isDarkMode()&&(Q=this.addCheckbox(d,mxResources.get("dark"),!0),k+=26);var V=this.addCheckbox(d,
mxResources.get("shadow"),g.shadowVisible),X=null;if("png"==u||"jpeg"==u)X=this.addCheckbox(d,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),k+=30;var ja=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=u);ja.style.marginBottom="16px";var Y=document.createElement("input");Y.style.marginBottom="16px";Y.style.marginRight="8px";Y.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||Y.setAttribute("disabled","disabled");var da=
document.createElement("select");da.style.maxWidth="260px";da.style.marginLeft="8px";da.style.marginRight="10px";da.style.marginBottom="16px";da.className="geBtn";p=document.createElement("option");p.setAttribute("value","none");mxUtils.write(p,mxResources.get("noChange"));da.appendChild(p);p=document.createElement("option");p.setAttribute("value","embedFonts");mxUtils.write(p,mxResources.get("embedFonts"));da.appendChild(p);p=document.createElement("option");p.setAttribute("value","lblToSvg");mxUtils.write(p,
-mxResources.get("lblToSvg"));da.appendChild(p);this.isOffline()&&p.setAttribute("disabled","disabled");mxEvent.addListener(da,"change",mxUtils.bind(this,function(){"lblToSvg"==da.value?(Y.checked=!0,Y.setAttribute("disabled","disabled"),L.page.style.display="none","page"==E.value&&(E.value="diagram"),V.checked=!1,V.setAttribute("disabled","disabled"),B.style.display="inline-block",ba.style.display="none"):"disabled"==Y.getAttribute("disabled")&&(Y.checked=!1,Y.removeAttribute("disabled"),V.removeAttribute("disabled"),
-L.page.style.display="",B.style.display="none",ba.style.display="")}));c&&(d.appendChild(Y),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),mxUtils.write(d,mxResources.get("txtSettings")+":"),d.appendChild(da),mxUtils.br(d),k+=60);var ba=document.createElement("select");ba.style.maxWidth="260px";ba.style.marginLeft="8px";ba.style.marginRight="10px";ba.className="geBtn";c=document.createElement("option");c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));ba.appendChild(c);
+mxResources.get("lblToSvg"));da.appendChild(p);this.isOffline()&&p.setAttribute("disabled","disabled");mxEvent.addListener(da,"change",mxUtils.bind(this,function(){"lblToSvg"==da.value?(Y.checked=!0,Y.setAttribute("disabled","disabled"),J.page.style.display="none","page"==E.value&&(E.value="diagram"),V.checked=!1,V.setAttribute("disabled","disabled"),B.style.display="inline-block",ba.style.display="none"):"disabled"==Y.getAttribute("disabled")&&(Y.checked=!1,Y.removeAttribute("disabled"),V.removeAttribute("disabled"),
+J.page.style.display="",B.style.display="none",ba.style.display="")}));c&&(d.appendChild(Y),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),mxUtils.write(d,mxResources.get("txtSettings")+":"),d.appendChild(da),mxUtils.br(d),k+=60);var ba=document.createElement("select");ba.style.maxWidth="260px";ba.style.marginLeft="8px";ba.style.marginRight="10px";ba.className="geBtn";c=document.createElement("option");c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));ba.appendChild(c);
c=document.createElement("option");c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("openInNewWindow"));ba.appendChild(c);c=document.createElement("option");c.setAttribute("value","self");mxUtils.write(c,mxResources.get("openInThisWindow"));ba.appendChild(c);var B=document.createElement("div");mxUtils.write(B,mxResources.get("LinksLost"));B.style.margin="7px";B.style.display="none";"svg"==u&&(mxUtils.write(d,mxResources.get("links")+":"),d.appendChild(ba),d.appendChild(B),mxUtils.br(d),
-mxUtils.br(d),k+=50);e=new CustomDialog(this,d,mxUtils.bind(this,function(){this.lastExportBorder=v.value;this.lastExportZoom=q.value;l(q.value,M.checked,!x.checked,V.checked,ja.checked,Y.checked,v.value,C.checked,!1,ba.value,null!=X?X.checked:null,null!=Q?Q.checked:null,E.value,"embedFonts"==da.value,"lblToSvg"==da.value)}),null,e,f);this.showDialog(e.container,340,k,!0,!0,null,null,null,null,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",
-!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,e,f,l){var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=this.editor.graph;if(null!=c){var k=document.createElement("h3");mxUtils.write(k,c);k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(k)}var m=this.addCheckbox(d,mxResources.get("fit"),!0),n=this.addCheckbox(d,mxResources.get("shadow"),g.shadowVisible&&f,!f),q=this.addCheckbox(d,e),t=this.addCheckbox(d,mxResources.get("lightbox"),
-!0),D=this.addEditButton(d,t),F=D.getEditInput(),O=1<g.model.getChildCount(g.model.getRoot()),A=this.addCheckbox(d,mxResources.get("layers"),O,!O);A.style.marginLeft=F.style.marginLeft;A.style.marginBottom="12px";A.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?(O&&A.removeAttribute("disabled"),F.removeAttribute("disabled")):(A.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"));F.checked&&t.checked?D.getEditSelect().removeAttribute("disabled"):D.getEditSelect().setAttribute("disabled",
-"disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){b(m.checked,n.checked,q.checked,t.checked,D.getLink(),A.checked)}),null,mxResources.get("embed"),l);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,e,f,l,p,n,u){function d(d){var c=" ",m="";f&&(c=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
-EditorUi.lightboxHost+"/?client=1"+(null!=k?"&page="+k:"")+(l?"&edit=_blank":"")+(p?"&layers=1":"")+"');}})(this);\"",m+="cursor:pointer;");b&&(m+="max-width:100%;");var q="";e&&(q=' width="'+Math.round(g.width)+'" height="'+Math.round(g.height)+'"');n('<img src="'+d+'"'+q+(""!=m?' style="'+m+'"':"")+c+"/>")}var g=this.editor.graph.getGraphBounds(),k=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(b){var c=f?this.getFileData(!0):null;b=
-this.createImageDataUri(b,c,"png");d(b)}),null,null,null,mxUtils.bind(this,function(b){u({message:mxResources.get("unknownError")})}),null,!0,e?2:1,null,c,null,null,Editor.defaultBorder);else if(c=this.getFileData(!0),g.width*g.height<=MAX_AREA&&c.length<=MAX_REQUEST_SIZE){var m="";e&&(m="&w="+Math.round(2*g.width)+"&h="+Math.round(2*g.height));var q=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(f?"1":"0")+m+"&xml="+encodeURIComponent(c));q.send(mxUtils.bind(this,function(){200<=q.getStatus()&&
-299>=q.getStatus()?d("data:image/png;base64,"+q.getText()):u({message:mxResources.get("unknownError")})}))}else u({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(b,c,e,f,l,p,n){var d=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!e),g=d.getElementsByTagName("a");if(null!=g)for(var k=0;k<g.length;k++){var m=g[k].getAttribute("href");null!=m&&"#"==m.charAt(0)&&"_blank"==g[k].getAttribute("target")&&g[k].removeAttribute("target")}f&&
-d.setAttribute("content",this.getFileData(!0));c&&this.editor.graph.addSvgShadow(d);if(e){var q=" ",t="";f&&(q="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(l?"&edit=_blank":"")+(p?"&layers=1":
-"")+"');}})(this);\"",t+="cursor:pointer;");b&&(t+="max-width:100%;");this.editor.convertImages(d,mxUtils.bind(this,function(b){n('<img src="'+Editor.createSvgDataUri(mxUtils.getXml(b))+'"'+(""!=t?' style="'+t+'"':"")+q+"/>")}))}else t="",f&&(c=this.getSelectedPageIndex(),d.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('"+
-EditorUi.lightboxHost+"/?client=1"+(null!=c?"&page="+c:"")+(l?"&edit=_blank":"")+(p?"&layers=1":"")+"');}}})(this);"),t+="cursor:pointer;"),b&&(b=parseInt(d.getAttribute("width")),l=parseInt(d.getAttribute("height")),d.setAttribute("viewBox","-0.5 -0.5 "+b+" "+l),t+="max-width:100%;max-height:"+l+"px;",d.removeAttribute("height")),""!=t&&d.setAttribute("style",t),this.editor.addFontCss(d),this.editor.graph.mathEnabled&&this.editor.addMathCss(d),n(mxUtils.getXml(d))};EditorUi.prototype.timeSince=function(b){b=
+mxUtils.br(d),k+=50);e=new CustomDialog(this,d,mxUtils.bind(this,function(){this.lastExportBorder=v.value;this.lastExportZoom=t.value;l(t.value,M.checked,!x.checked,V.checked,ja.checked,Y.checked,v.value,C.checked,!1,ba.value,null!=X?X.checked:null,null!=Q?Q.checked:null,E.value,"embedFonts"==da.value,"lblToSvg"==da.value)}),null,e,f);this.showDialog(e.container,340,k,!0,!0,null,null,null,null,!0);t.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?t.select():document.execCommand("selectAll",
+!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,e,f,l){var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=this.editor.graph;if(null!=c){var k=document.createElement("h3");mxUtils.write(k,c);k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(k)}var m=this.addCheckbox(d,mxResources.get("fit"),!0),n=this.addCheckbox(d,mxResources.get("shadow"),g.shadowVisible&&f,!f),t=this.addCheckbox(d,e),q=this.addCheckbox(d,mxResources.get("lightbox"),
+!0),D=this.addEditButton(d,q),F=D.getEditInput(),O=1<g.model.getChildCount(g.model.getRoot()),A=this.addCheckbox(d,mxResources.get("layers"),O,!O);A.style.marginLeft=F.style.marginLeft;A.style.marginBottom="12px";A.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(O&&A.removeAttribute("disabled"),F.removeAttribute("disabled")):(A.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"));F.checked&&q.checked?D.getEditSelect().removeAttribute("disabled"):D.getEditSelect().setAttribute("disabled",
+"disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){b(m.checked,n.checked,t.checked,q.checked,D.getLink(),A.checked)}),null,mxResources.get("embed"),l);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,e,f,l,p,n,u){function d(d){var c=" ",m="";f&&(c=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
+EditorUi.lightboxHost+"/?client=1"+(null!=k?"&page="+k:"")+(l?"&edit=_blank":"")+(p?"&layers=1":"")+"');}})(this);\"",m+="cursor:pointer;");b&&(m+="max-width:100%;");var t="";e&&(t=' width="'+Math.round(g.width)+'" height="'+Math.round(g.height)+'"');n('<img src="'+d+'"'+t+(""!=m?' style="'+m+'"':"")+c+"/>")}var g=this.editor.graph.getGraphBounds(),k=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(b){var c=f?this.getFileData(!0):null;b=
+this.createImageDataUri(b,c,"png");d(b)}),null,null,null,mxUtils.bind(this,function(b){u({message:mxResources.get("unknownError")})}),null,!0,e?2:1,null,c,null,null,Editor.defaultBorder);else if(c=this.getFileData(!0),g.width*g.height<=MAX_AREA&&c.length<=MAX_REQUEST_SIZE){var m="";e&&(m="&w="+Math.round(2*g.width)+"&h="+Math.round(2*g.height));var t=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(f?"1":"0")+m+"&xml="+encodeURIComponent(c));t.send(mxUtils.bind(this,function(){200<=t.getStatus()&&
+299>=t.getStatus()?d("data:image/png;base64,"+t.getText()):u({message:mxResources.get("unknownError")})}))}else u({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(b,c,e,f,l,p,n){var d=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!e),g=d.getElementsByTagName("a");if(null!=g)for(var k=0;k<g.length;k++){var m=g[k].getAttribute("href");null!=m&&"#"==m.charAt(0)&&"_blank"==g[k].getAttribute("target")&&g[k].removeAttribute("target")}f&&
+d.setAttribute("content",this.getFileData(!0));c&&this.editor.graph.addSvgShadow(d);if(e){var t=" ",q="";f&&(t="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(l?"&edit=_blank":"")+(p?"&layers=1":
+"")+"');}})(this);\"",q+="cursor:pointer;");b&&(q+="max-width:100%;");this.editor.convertImages(d,mxUtils.bind(this,function(b){n('<img src="'+Editor.createSvgDataUri(mxUtils.getXml(b))+'"'+(""!=q?' style="'+q+'"':"")+t+"/>")}))}else q="",f&&(c=this.getSelectedPageIndex(),d.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('"+
+EditorUi.lightboxHost+"/?client=1"+(null!=c?"&page="+c:"")+(l?"&edit=_blank":"")+(p?"&layers=1":"")+"');}}})(this);"),q+="cursor:pointer;"),b&&(b=parseInt(d.getAttribute("width")),l=parseInt(d.getAttribute("height")),d.setAttribute("viewBox","-0.5 -0.5 "+b+" "+l),q+="max-width:100%;max-height:"+l+"px;",d.removeAttribute("height")),""!=q&&d.setAttribute("style",q),this.editor.addFontCss(d),this.editor.graph.mathEnabled&&this.editor.addMathCss(d),n(mxUtils.getXml(d))};EditorUi.prototype.timeSince=function(b){b=
Math.floor((new Date-b)/1E3);var d=Math.floor(b/31536E3);if(1<d)return d+" "+mxResources.get("years");d=Math.floor(b/2592E3);if(1<d)return d+" "+mxResources.get("months");d=Math.floor(b/86400);if(1<d)return d+" "+mxResources.get("days");d=Math.floor(b/3600);if(1<d)return d+" "+mxResources.get("hours");d=Math.floor(b/60);return 1<d?d+" "+mxResources.get("minutes"):1==d?d+" "+mxResources.get("minute"):null};EditorUi.prototype.decodeNodeIntoGraph=function(b,c){if(null!=b){var d=null;if("diagram"==b.nodeName)d=
b;else if("mxfile"==b.nodeName){var e=b.getElementsByTagName("diagram");if(0<e.length){var d=e[0],f=c.getGlobalVariable;c.getGlobalVariable=function(b){return"page"==b?d.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==b?1:f.apply(this,arguments)}}}null!=d&&(b=Editor.parseDiagramNode(d))}e=this.editor.graph;try{this.editor.graph=c,this.editor.setGraphXml(b)}catch(p){}finally{this.editor.graph=e}return b};EditorUi.prototype.getPngFileProperties=function(b){var d=1,c=0;if(null!=
b){if(b.hasAttribute("scale")){var e=parseFloat(b.getAttribute("scale"));!isNaN(e)&&0<e&&(d=e)}b.hasAttribute("border")&&(e=parseInt(b.getAttribute("border")),!isNaN(e)&&0<e&&(c=e))}return{scale:d,border:c}};EditorUi.prototype.getEmbeddedPng=function(b,c,e,f,l){try{var d=this.editor.graph,g=null!=d.themes&&"darkTheme"==d.defaultThemeName,k=null;if(null!=e&&0<e.length)d=this.createTemporaryGraph(g?d.getDefaultStylesheet():d.getStylesheet()),document.body.appendChild(d.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(e).documentElement,
!0),d),k=e;else if(g||null!=this.pages&&this.currentPage!=this.pages[0]){var d=this.createTemporaryGraph(g?d.getDefaultStylesheet():d.getStylesheet()),m=d.getGlobalVariable;d.setBackgroundImage=this.editor.graph.setBackgroundImage;var n=this.pages[0];this.currentPage==n?d.setBackgroundImage(this.editor.graph.backgroundImage):null!=n.viewState&&null!=n.viewState&&d.setBackgroundImage(n.viewState.backgroundImage);d.getGlobalVariable=function(b){return"page"==b?n.getName():"pagenumber"==b?1:m.apply(this,
arguments)};document.body.appendChild(d.container);d.model.setRoot(n.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(e){try{null==k&&(k=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var g=e.toDataURL("image/png"),g=Editor.writeGraphModelToPng(g,"tEXt","mxfile",encodeURIComponent(k));b(g.substring(g.lastIndexOf(",")+1));d!=this.editor.graph&&d.container.parentNode.removeChild(d.container)}catch(D){null!=c&&c(D)}}),null,null,null,mxUtils.bind(this,function(b){null!=c&&
-c(b)}),null,null,f,null,d.shadowVisible,null,d,l,null,null,null,"diagram",null)}catch(G){null!=c&&c(G)}};EditorUi.prototype.getEmbeddedSvg=function(b,c,e,f,l,p,n,u,t,y,G,H,D){u=null!=u?u:!0;G=null!=G?G:0;n=null!=t?t:c.background;n==mxConstants.NONE&&(n=null);p=c.getSvg(n,y,G,null,null,p,null,null,null,c.shadowVisible||H,null,D,"diagram");(c.shadowVisible||H)&&c.addSvgShadow(p,null,null,0==G);null!=b&&p.setAttribute("content",b);null!=e&&p.setAttribute("resource",e);var d=mxUtils.bind(this,function(b){b=
+c(b)}),null,null,f,null,d.shadowVisible,null,d,l,null,null,null,"diagram",null)}catch(G){null!=c&&c(G)}};EditorUi.prototype.getEmbeddedSvg=function(b,c,e,f,l,p,n,u,q,y,G,H,D){u=null!=u?u:!0;G=null!=G?G:0;n=null!=q?q:c.background;n==mxConstants.NONE&&(n=null);p=c.getSvg(n,y,G,null,null,p,null,null,null,c.shadowVisible||H,null,D,"diagram");(c.shadowVisible||H)&&c.addSvgShadow(p,null,null,0==G);null!=b&&p.setAttribute("content",b);null!=e&&p.setAttribute("resource",e);var d=mxUtils.bind(this,function(b){b=
(f?"":Graph.xmlDeclaration+"\n"+Graph.svgFileComment+"\n"+Graph.svgDoctype+"\n")+mxUtils.getXml(b);null!=l&&l(b);return b});c.mathEnabled&&this.editor.addMathCss(p);if(null!=l)this.embedFonts(p,mxUtils.bind(this,function(b){u?this.editor.convertImages(b,mxUtils.bind(this,function(b){d(b)})):d(b)}));else return d(p)};EditorUi.prototype.embedFonts=function(b,c){this.editor.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(b,this.editor.resolvedFontCss),
-this.editor.embedExtFonts(mxUtils.bind(this,function(d){try{null!=d&&this.editor.addFontCss(b,d),c(b)}catch(q){c(b)}}))}catch(g){c(b)}}))};EditorUi.prototype.exportImage=function(b,c,e,f,l,p,n,u,t,y,G,H,D){t=null!=t?t:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(b){this.spinner.stop();try{this.saveCanvas(b,
-l?this.getFileData(!0,null,null,null,e,u):null,t,null==this.pages||0==this.pages.length,G)}catch(A){this.handleError(A)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,e,b||1,c,f,null,null,p,n,y,H,D)}catch(O){this.spinner.stop(),this.handleError(O)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,e,f,l,p,n){c=null!=c?c:0;e=null!=e?e:0;var d=[];try{var g=
-this.editor.graph;if(null!=b&&0<b.length){g.model.beginUpdate();try{var k=mxUtils.parseXml(b);b={};var m=this.editor.extractGraphModel(k.documentElement,null!=this.pages);if(null!=m&&"mxfile"==m.nodeName&&null!=this.pages){var q=m.getElementsByTagName("diagram");if(1==q.length&&!p){if(m=Editor.parseDiagramNode(q[0]),null!=this.currentPage&&(b[q[0].getAttribute("id")]=this.currentPage.getId(),this.isBlankFile())){var t=q[0].getAttribute("name");null!=t&&""!=t&&this.editor.graph.model.execute(new RenamePage(this,
-this.currentPage,t))}}else if(0<q.length){p=[];var v=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(b[q[0].getAttribute("id")]=this.pages[0].getId(),m=Editor.parseDiagramNode(q[0]),f=!1,v=1);for(;v<q.length;v++){var O=q[v].getAttribute("id");q[v].removeAttribute("id");var A=this.updatePageRoot(new DiagramPage(q[v]));b[O]=q[v].getAttribute("id");var C=this.pages.length;null==A.getName()&&A.setName(mxResources.get("pageWithNumber",[C+1]));g.model.execute(new ChangePage(this,A,A,C,
-!0));p.push(A)}this.updatePageLinks(b,p)}}if(null!=m&&"mxGraphModel"===m.nodeName){d=g.importGraphModel(m,c,e,f);if(null!=d)for(v=0;v<d.length;v++)this.updatePageLinksForCell(b,d[v]);var E=g.parseBackgroundImage(m.getAttribute("backgroundImage"));if(null!=E&&null!=E.originalSrc){this.updateBackgroundPageLink(b,E);var L=new ChangePageSetup(this,null,E);L.ignoreColor=!0;g.model.execute(L)}}n&&this.insertHandler(d,null,null,g.defaultVertexStyle,g.defaultEdgeStyle,!1,!0)}finally{g.model.endUpdate()}}}catch(N){if(l)throw N;
-this.handleError(N)}return d};EditorUi.prototype.updatePageLinks=function(b,c){for(var d=0;d<c.length;d++)this.updatePageLinksForCell(b,c[d].root),null!=c[d].viewState&&this.updateBackgroundPageLink(b,c[d].viewState.backgroundImage)};EditorUi.prototype.updateBackgroundPageLink=function(b,c){try{if(null!=c&&Graph.isPageLink(c.originalSrc)){var d=b[c.originalSrc.substring(c.originalSrc.indexOf(",")+1)];null!=d&&(c.originalSrc="data:page/id,"+d)}}catch(q){}};EditorUi.prototype.updatePageLinksForCell=
+this.editor.embedExtFonts(mxUtils.bind(this,function(d){try{null!=d&&this.editor.addFontCss(b,d),c(b)}catch(t){c(b)}}))}catch(g){c(b)}}))};EditorUi.prototype.exportImage=function(b,c,e,f,l,p,n,u,q,y,G,H,D){q=null!=q?q:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(b){this.spinner.stop();try{this.saveCanvas(b,
+l?this.getFileData(!0,null,null,null,e,u):null,q,null==this.pages||0==this.pages.length,G)}catch(A){this.handleError(A)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,e,b||1,c,f,null,null,p,n,y,H,D)}catch(O){this.spinner.stop(),this.handleError(O)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,e,f,l,p,n){c=null!=c?c:0;e=null!=e?e:0;var d=[];try{var g=
+this.editor.graph;if(null!=b&&0<b.length){g.model.beginUpdate();try{var k=mxUtils.parseXml(b);b={};var m=this.editor.extractGraphModel(k.documentElement,null!=this.pages);if(null!=m&&"mxfile"==m.nodeName&&null!=this.pages){var t=m.getElementsByTagName("diagram");if(1==t.length&&!p){if(m=Editor.parseDiagramNode(t[0]),null!=this.currentPage&&(b[t[0].getAttribute("id")]=this.currentPage.getId(),this.isBlankFile())){var q=t[0].getAttribute("name");null!=q&&""!=q&&this.editor.graph.model.execute(new RenamePage(this,
+this.currentPage,q))}}else if(0<t.length){p=[];var v=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(b[t[0].getAttribute("id")]=this.pages[0].getId(),m=Editor.parseDiagramNode(t[0]),f=!1,v=1);for(;v<t.length;v++){var O=t[v].getAttribute("id");t[v].removeAttribute("id");var A=this.updatePageRoot(new DiagramPage(t[v]));b[O]=t[v].getAttribute("id");var C=this.pages.length;null==A.getName()&&A.setName(mxResources.get("pageWithNumber",[C+1]));g.model.execute(new ChangePage(this,A,A,C,
+!0));p.push(A)}this.updatePageLinks(b,p)}}if(null!=m&&"mxGraphModel"===m.nodeName){d=g.importGraphModel(m,c,e,f);if(null!=d)for(v=0;v<d.length;v++)this.updatePageLinksForCell(b,d[v]);var E=g.parseBackgroundImage(m.getAttribute("backgroundImage"));if(null!=E&&null!=E.originalSrc){this.updateBackgroundPageLink(b,E);var J=new ChangePageSetup(this,null,E);J.ignoreColor=!0;g.model.execute(J)}}n&&this.insertHandler(d,null,null,g.defaultVertexStyle,g.defaultEdgeStyle,!1,!0)}finally{g.model.endUpdate()}}}catch(N){if(l)throw N;
+this.handleError(N)}return d};EditorUi.prototype.updatePageLinks=function(b,c){for(var d=0;d<c.length;d++)this.updatePageLinksForCell(b,c[d].root),null!=c[d].viewState&&this.updateBackgroundPageLink(b,c[d].viewState.backgroundImage)};EditorUi.prototype.updateBackgroundPageLink=function(b,c){try{if(null!=c&&Graph.isPageLink(c.originalSrc)){var d=b[c.originalSrc.substring(c.originalSrc.indexOf(",")+1)];null!=d&&(c.originalSrc="data:page/id,"+d)}}catch(t){}};EditorUi.prototype.updatePageLinksForCell=
function(b,c){var d=document.createElement("div"),e=this.editor.graph,f=e.getLinkForCell(c);null!=f&&e.setLinkForCell(c,this.updatePageLink(b,f));if(e.isHtmlLabel(c)){d.innerHTML=e.sanitizeHtml(e.getLabel(c));for(var k=d.getElementsByTagName("a"),l=!1,n=0;n<k.length;n++)f=k[n].getAttribute("href"),null!=f&&(k[n].setAttribute("href",this.updatePageLink(b,f)),l=!0);l&&e.labelChanged(c,d.innerHTML)}for(n=0;n<e.model.getChildCount(c);n++)this.updatePageLinksForCell(b,e.model.getChildAt(c,n))};EditorUi.prototype.updatePageLink=
function(b,c){if(Graph.isPageLink(c)){var d=b[c.substring(c.indexOf(",")+1)];c=null!=d?"data:page/id,"+d:null}else if("data:action/json,"==c.substring(0,17))try{var e=JSON.parse(c.substring(17));if(null!=e.actions){for(var f=0;f<e.actions.length;f++){var k=e.actions[f];if(null!=k.open&&Graph.isPageLink(k.open)){var l=k.open.substring(k.open.indexOf(",")+1),d=b[l];null!=d?k.open="data:page/id,"+d:null==this.getPageById(l)&&delete k.open}}c="data:action/json,"+JSON.stringify(e)}}catch(u){}return c};
EditorUi.prototype.isRemoteVisioFormat=function(b){return/(\.v(sd|dx))($|\?)/i.test(b)||/(\.vs(s|x))($|\?)/i.test(b)};EditorUi.prototype.importVisio=function(b,c,e,f,l){f=null!=f?f:b.name;e=null!=e?e:mxUtils.bind(this,function(b){this.handleError(b)});var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var d=this.isRemoteVisioFormat(f);try{var g="UNKNOWN-VISIO",k=f.lastIndexOf(".");if(0<=k&&k<f.length)g=f.substring(k+1).toUpperCase();else{var m=f.lastIndexOf("/");0<=
@@ -3639,45 +3639,45 @@ if(0<c.length){var g=parseFloat(c[0].getAttribute("width")),k=parseFloat(c[0].ge
g):mxscript("js/extensions.min.js",g))};EditorUi.prototype.generatePlantUmlImage=function(b,c,e,f){function d(b,d,c){c1=b>>2;c2=(b&3)<<4|d>>4;c3=(d&15)<<2|c>>6;c4=c&63;r="";r+=g(c1&63);r+=g(c2&63);r+=g(c3&63);return r+=g(c4&63)}function g(b){if(10>b)return String.fromCharCode(48+b);b-=10;if(26>b)return String.fromCharCode(65+b);b-=26;if(26>b)return String.fromCharCode(97+b);b-=26;return 0==b?"-":1==b?"_":"?"}var k=new XMLHttpRequest;k.open("GET",("txt"==c?PLANT_URL+"/txt/":"png"==c?PLANT_URL+"/png/":
PLANT_URL+"/svg/")+function(b){r="";for(i=0;i<b.length;i+=3)r=i+2==b.length?r+d(b.charCodeAt(i),b.charCodeAt(i+1),0):i+1==b.length?r+d(b.charCodeAt(i),0,0):r+d(b.charCodeAt(i),b.charCodeAt(i+1),b.charCodeAt(i+2));return r}(Graph.arrayBufferToString(pako.deflateRaw(b))),!0);"txt"!=c&&(k.responseType="blob");k.onload=function(b){if(200<=this.status&&300>this.status)if("txt"==c)e(this.response);else{var d=new FileReader;d.readAsDataURL(this.response);d.onloadend=function(b){var c=new Image;c.onload=
function(){try{var b=c.width,g=c.height;if(0==b&&0==g){var k=d.result,l=k.indexOf(","),m=decodeURIComponent(escape(atob(k.substring(l+1)))),p=mxUtils.parseXml(m).getElementsByTagName("svg");0<p.length&&(b=parseFloat(p[0].getAttribute("width")),g=parseFloat(p[0].getAttribute("height")))}e(d.result,b,g)}catch(E){f(E)}};c.src=d.result};d.onerror=function(b){f(b)}}else f(b)};k.onerror=function(b){f(b)};k.send()};EditorUi.prototype.insertAsPreText=function(b,c,e){var d=this.editor.graph,g=null;d.getModel().beginUpdate();
-try{g=d.insertVertex(null,null,"<pre>"+b+"</pre>",c,e,1,1,"text;html=1;align=left;verticalAlign=top;"),d.updateCellSize(g,!0)}finally{d.getModel().endUpdate()}return g};EditorUi.prototype.insertTextAt=function(b,c,e,f,l,p,n,t){p=null!=p?p:!0;n=null!=n?n:!0;if(null!=b)if(Graph.fileSupport&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b))this.isOffline()?this.showError(mxResources.get("error"),mxResources.get("notInOffline")):this.parseFileData(b.replace(/\s+/g," "),mxUtils.bind(this,function(b){4==
-b.readyState&&200<=b.status&&299>=b.status&&this.editor.graph.setSelectionCells(this.insertTextAt(b.responseText,c,e,!0))}));else if("data:"==b.substring(0,5)||!this.isOffline()&&(l||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b))){var d=this.editor.graph;if("data:application/pdf;base64,"==b.substring(0,28)){var g=Editor.extractGraphModelFromPdf(b);if(null!=g&&0<g.length)return this.importXml(g,c,e,p,!0,t)}if(Editor.isPngDataUrl(b)&&(g=Editor.extractGraphModelFromPng(b),null!=g&&0<g.length))return this.importXml(g,
-c,e,p,!0,t);if("data:image/svg+xml;"==b.substring(0,19))try{g=null;"data:image/svg+xml;base64,"==b.substring(0,26)?(g=b.substring(b.indexOf(",")+1),g=window.atob&&!mxClient.IS_SF?atob(g):Base64.decode(g,!0)):g=decodeURIComponent(b.substring(b.indexOf(",")+1));var k=this.importXml(g,c,e,p,!0,t);if(0<k.length)return k}catch(D){}this.loadImage(b,mxUtils.bind(this,function(g){if("data:"==b.substring(0,5))this.resizeImage(g,b,mxUtils.bind(this,function(b,g,f){d.setSelectionCell(d.insertVertex(null,null,
+try{g=d.insertVertex(null,null,"<pre>"+b+"</pre>",c,e,1,1,"text;html=1;align=left;verticalAlign=top;"),d.updateCellSize(g,!0)}finally{d.getModel().endUpdate()}return g};EditorUi.prototype.insertTextAt=function(b,c,e,f,l,p,n,q){p=null!=p?p:!0;n=null!=n?n:!0;if(null!=b)if(Graph.fileSupport&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b))this.isOffline()?this.showError(mxResources.get("error"),mxResources.get("notInOffline")):this.parseFileData(b.replace(/\s+/g," "),mxUtils.bind(this,function(b){4==
+b.readyState&&200<=b.status&&299>=b.status&&this.editor.graph.setSelectionCells(this.insertTextAt(b.responseText,c,e,!0))}));else if("data:"==b.substring(0,5)||!this.isOffline()&&(l||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b))){var d=this.editor.graph;if("data:application/pdf;base64,"==b.substring(0,28)){var g=Editor.extractGraphModelFromPdf(b);if(null!=g&&0<g.length)return this.importXml(g,c,e,p,!0,q)}if(Editor.isPngDataUrl(b)&&(g=Editor.extractGraphModelFromPng(b),null!=g&&0<g.length))return this.importXml(g,
+c,e,p,!0,q);if("data:image/svg+xml;"==b.substring(0,19))try{g=null;"data:image/svg+xml;base64,"==b.substring(0,26)?(g=b.substring(b.indexOf(",")+1),g=window.atob&&!mxClient.IS_SF?atob(g):Base64.decode(g,!0)):g=decodeURIComponent(b.substring(b.indexOf(",")+1));var k=this.importXml(g,c,e,p,!0,q);if(0<k.length)return k}catch(D){}this.loadImage(b,mxUtils.bind(this,function(g){if("data:"==b.substring(0,5))this.resizeImage(g,b,mxUtils.bind(this,function(b,g,f){d.setSelectionCell(d.insertVertex(null,null,
"",d.snap(c),d.snap(e),g,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(b)+";"))}),n,this.maxImageSize);else{var f=Math.min(1,Math.min(this.maxImageSize/g.width,this.maxImageSize/g.height)),k=Math.round(g.width*f);g=Math.round(g.height*f);d.setSelectionCell(d.insertVertex(null,null,"",d.snap(c),d.snap(e),k,g,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
-b+";"))}}),mxUtils.bind(this,function(){var g=null;d.getModel().beginUpdate();try{g=d.insertVertex(d.getDefaultParent(),null,b,d.snap(c),d.snap(e),1,1,"text;"+(f?"html=1;":"")),d.updateCellSize(g),d.fireEvent(new mxEventObject("textInserted","cells",[g]))}finally{d.getModel().endUpdate()}d.setSelectionCell(g)}))}else{b=Graph.zapGremlins(mxUtils.trim(b));if(this.isCompatibleString(b))return this.importXml(b,c,e,p,null,t);if(0<b.length)if(this.isLucidChartData(b))this.convertLucidChart(b,mxUtils.bind(this,
-function(b){this.editor.graph.setSelectionCells(this.importXml(b,c,e,p,null,t))}),mxUtils.bind(this,function(b){this.handleError(b)}));else{d=this.editor.graph;l=null;d.getModel().beginUpdate();try{l=d.insertVertex(d.getDefaultParent(),null,"",d.snap(c),d.snap(e),1,1,"text;whiteSpace=wrap;"+(f?"html=1;":""));d.fireEvent(new mxEventObject("textInserted","cells",[l]));"<"==b.charAt(0)&&b.indexOf(">")==b.length-1&&(b=mxUtils.htmlEntities(b));b.length>this.maxTextBytes&&(b=b.substring(0,this.maxTextBytes)+
+b+";"))}}),mxUtils.bind(this,function(){var g=null;d.getModel().beginUpdate();try{g=d.insertVertex(d.getDefaultParent(),null,b,d.snap(c),d.snap(e),1,1,"text;"+(f?"html=1;":"")),d.updateCellSize(g),d.fireEvent(new mxEventObject("textInserted","cells",[g]))}finally{d.getModel().endUpdate()}d.setSelectionCell(g)}))}else{b=Graph.zapGremlins(mxUtils.trim(b));if(this.isCompatibleString(b))return this.importXml(b,c,e,p,null,q);if(0<b.length)if(this.isLucidChartData(b))this.convertLucidChart(b,mxUtils.bind(this,
+function(b){this.editor.graph.setSelectionCells(this.importXml(b,c,e,p,null,q))}),mxUtils.bind(this,function(b){this.handleError(b)}));else{d=this.editor.graph;l=null;d.getModel().beginUpdate();try{l=d.insertVertex(d.getDefaultParent(),null,"",d.snap(c),d.snap(e),1,1,"text;whiteSpace=wrap;"+(f?"html=1;":""));d.fireEvent(new mxEventObject("textInserted","cells",[l]));"<"==b.charAt(0)&&b.indexOf(">")==b.length-1&&(b=mxUtils.htmlEntities(b));b.length>this.maxTextBytes&&(b=b.substring(0,this.maxTextBytes)+
"...");l.value=b;d.updateCellSize(l);if(0<this.maxTextWidth&&l.geometry.width>this.maxTextWidth){var m=d.getPreferredSizeForCell(l,this.maxTextWidth);l.geometry.width=m.width;l.geometry.height=m.height}Graph.isLink(l.value)&&d.setLinkForCell(l,l.value);l.geometry.width+=d.gridSize;l.geometry.height+=d.gridSize}finally{d.getModel().endUpdate()}return[l]}}return[]};EditorUi.prototype.formatFileSize=function(b){var d=-1;do b/=1024,d++;while(1024<b);return Math.max(b,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[d]};
EditorUi.prototype.convertDataUri=function(b){if("data:"==b.substring(0,5)){var d=b.indexOf(";");0<d&&(b=b.substring(0,d)+b.substring(b.indexOf(",",d+1)))}return b};EditorUi.prototype.isRemoteFileFormat=function(b,c){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(b)};EditorUi.prototype.isLucidChartData=function(b){return null!=b&&('{"state":"{\\"Properties\\":'==b.substring(0,26)||'{"Properties":'==b.substring(0,14))};EditorUi.prototype.importLocalFile=function(b,c){if(b&&Graph.fileSupport){if(null==
this.importFileInputElt){var d=document.createElement("input");d.setAttribute("type","file");mxEvent.addListener(d,"change",mxUtils.bind(this,function(){null!=d.files&&(this.importFiles(d.files,null,null,this.maxImageSize),d.type="",d.type="file",d.value="")}));d.style.display="none";document.body.appendChild(d);this.importFileInputElt=d}this.importFileInputElt.click()}else{window.openNew=!1;window.openKey="import";window.listBrowserFiles=mxUtils.bind(this,function(b,d){StorageFile.listFiles(this,
"F",b,d)});window.openBrowserFile=mxUtils.bind(this,function(b,d,c){StorageFile.getFileContent(this,b,d,c)});window.deleteBrowserFile=mxUtils.bind(this,function(b,d,c){StorageFile.deleteFile(this,b,d,c)});if(!c){var e=Editor.useLocalStorage;Editor.useLocalStorage=!b}window.openFile=new OpenFile(mxUtils.bind(this,function(b){this.hideDialog(b)}));window.openFile.setConsumer(mxUtils.bind(this,function(b,d){if(null!=d&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(d)){var c=new Blob([b],{type:"application/octet-stream"});
this.importVisio(c,mxUtils.bind(this,function(b){this.importXml(b,0,0,!0)}),null,d)}else this.editor.graph.setSelectionCells(this.importXml(b,0,0,!0))}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null});if(!c){var f=this.dialog,k=f.close;this.dialog.close=mxUtils.bind(this,function(b){Editor.useLocalStorage=e;k.apply(f,arguments);b&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};
EditorUi.prototype.importZipFile=function(b,c,e){var d=this,g=mxUtils.bind(this,function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(b).then(function(g){if(mxUtils.isEmptyObject(g.files))e();else{var f=0,k,l=!1;g.forEach(function(b,d){var g=d.name.toLowerCase();"diagram/diagram.xml"==g?(l=!0,d.async("string").then(function(b){0==b.indexOf("<mxfile ")?c(b):e()})):0==g.indexOf("versions/")&&(g=parseInt(g.substr(9)),g>f&&(f=g,k=d))});0<f?k.async("string").then(function(g){(new XMLHttpRequest).upload&&
-d.isRemoteFileFormat(g,b.name)?d.isOffline()?d.showError(mxResources.get("error"),mxResources.get("notInOffline"),null,e):d.parseFileData(g,mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?c(b.responseText):e())}),b.name):e()}):l||e()}},function(b){e(b)}):e()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?g():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",g))};EditorUi.prototype.importFile=function(b,c,e,f,l,n,t,u,x,y,G,H){y=null!=
-y?y:!0;var d=!1,g=null,k=mxUtils.bind(this,function(b){var d=null;null!=b&&"<mxlibrary"==b.substring(0,10)?this.loadLibrary(new LocalLibrary(this,b,t)):d=this.importXml(b,e,f,y,null,null!=H?mxEvent.isControlDown(H):null);null!=u&&u(d)});"image"==c.substring(0,5)?(x=!1,"image/png"==c.substring(0,9)&&(c=G?null:this.extractGraphModelFromPng(b),null!=c&&0<c.length&&(g=this.importXml(c,e,f,y,null,null!=H?mxEvent.isControlDown(H):null),x=!0)),x||(c=this.editor.graph,x=b.indexOf(";"),0<x&&(b=b.substring(0,
-x)+b.substring(b.indexOf(",",x+1))),y&&c.isGridEnabled()&&(e=c.snap(e),f=c.snap(f)),g=[c.insertVertex(null,null,"",e,f,l,n,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b+";")])):/(\.*<graphml )/.test(b)?(d=!0,this.importGraphML(b,k)):null!=x&&null!=t&&(/(\.v(dx|sdx?))($|\?)/i.test(t)||/(\.vs(x|sx?))($|\?)/i.test(t))?(d=!0,this.importVisio(x,k)):(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,t)?this.isOffline()?
-this.showError(mxResources.get("error"),mxResources.get("notInOffline")):(d=!0,l=mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?k(b.responseText):null!=u&&u(null))}),null!=b?this.parseFileData(b,l,t):this.parseFile(x,l,t)):0==b.indexOf("PK")&&null!=x?(d=!0,this.importZipFile(x,k,mxUtils.bind(this,function(){g=this.insertTextAt(this.validateFileData(b),e,f,!0,null,y);u(g)}))):/(\.v(sd|dx))($|\?)/i.test(t)||/(\.vs(s|x))($|\?)/i.test(t)||(g=this.insertTextAt(this.validateFileData(b),
-e,f,!0,null,y,null,null!=H?mxEvent.isControlDown(H):null));d||null==u||u(g);return g};EditorUi.prototype.importFiles=function(b,c,e,f,l,n,t,u,x,y,G,H,D){f=null!=f?f:this.maxImageSize;y=null!=y?y:this.maxImageBytes;var d=null!=c&&null!=e,g=!0;c=null!=c?c:0;e=null!=e?e:0;var k=!1;if(!mxClient.IS_CHROMEAPP&&null!=b)for(var m=G||this.resampleThreshold,p=0;p<b.length;p++)if("image/svg"!==b[p].type.substring(0,9)&&"image/"===b[p].type.substring(0,6)&&b[p].size>m){k=!0;break}var q=mxUtils.bind(this,function(){var k=
-this.editor.graph,m=k.gridSize;l=null!=l?l:mxUtils.bind(this,function(b,c,e,g,f,k,l,m,n){try{return null!=b&&"<mxlibrary"==b.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,b,l)),null):this.importFile(b,c,e,g,f,k,l,m,n,d,H,D)}catch(oa){return this.handleError(oa),null}});n=null!=n?n:mxUtils.bind(this,function(b){k.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=b.length,q=p,v=[],x=mxUtils.bind(this,function(b,d){v[b]=d;if(0==
---q){this.spinner.stop();if(null!=u)u(v);else{var c=[];k.getModel().beginUpdate();try{for(var e=0;e<v.length;e++){var g=v[e]();null!=g&&(c=c.concat(g))}}finally{k.getModel().endUpdate()}}n(c)}}),A=0;A<p;A++)mxUtils.bind(this,function(d){var n=b[d];if(null!=n){var p=new FileReader;p.onload=mxUtils.bind(this,function(b){if(null==t||t(n))if("image/"==n.type.substring(0,6))if("image/svg"==n.type.substring(0,9)){var p=Graph.clipSvgDataUri(b.target.result),q=p.indexOf(","),q=decodeURIComponent(escape(atob(p.substring(q+
-1)))),u=mxUtils.parseXml(q),q=u.getElementsByTagName("svg");if(0<q.length){var q=q[0],v=H?null:q.getAttribute("content");null!=v&&"<"!=v.charAt(0)&&"%"!=v.charAt(0)&&(v=unescape(window.atob?atob(v):Base64.decode(v,!0)));null!=v&&"%"==v.charAt(0)&&(v=decodeURIComponent(v));null==v||"<mxfile "!==v.substring(0,8)&&"<mxGraphModel "!==v.substring(0,14)?x(d,mxUtils.bind(this,function(){try{if(null!=u){var b=u.getElementsByTagName("svg");if(0<b.length){var g=b[0],q=g.getAttribute("width"),t=g.getAttribute("height"),
-q=null!=q&&"%"!=q.charAt(q.length-1)?parseFloat(q):NaN,t=null!=t&&"%"!=t.charAt(t.length-1)?parseFloat(t):NaN,y=g.getAttribute("viewBox");if(null==y||0==y.length)g.setAttribute("viewBox","0 0 "+q+" "+t);else if(isNaN(q)||isNaN(t)){var v=y.split(" ");3<v.length&&(q=parseFloat(v[2]),t=parseFloat(v[3]))}p=Editor.createSvgDataUri(mxUtils.getXml(g));var x=Math.min(1,Math.min(f/Math.max(1,q)),f/Math.max(1,t)),A=l(p,n.type,c+d*m,e+d*m,Math.max(1,Math.round(q*x)),Math.max(1,Math.round(t*x)),n.name);if(isNaN(q)||
-isNaN(t)){var M=new Image;M.onload=mxUtils.bind(this,function(){q=Math.max(1,M.width);t=Math.max(1,M.height);A[0].geometry.width=q;A[0].geometry.height=t;g.setAttribute("viewBox","0 0 "+q+" "+t);p=Editor.createSvgDataUri(mxUtils.getXml(g));var b=p.indexOf(";");0<b&&(p=p.substring(0,b)+p.substring(p.indexOf(",",b+1)));k.setCellStyles("image",p,[A[0]])});M.src=Editor.createSvgDataUri(mxUtils.getXml(g))}return A}}}catch(ra){}return null})):x(d,mxUtils.bind(this,function(){return l(v,"text/xml",c+d*m,
-e+d*m,0,0,n.name)}))}else x(d,mxUtils.bind(this,function(){return null}))}else{q=!1;if("image/png"==n.type){var A=H?null:this.extractGraphModelFromPng(b.target.result);if(null!=A&&0<A.length){var M=new Image;M.src=b.target.result;x(d,mxUtils.bind(this,function(){return l(A,"text/xml",c+d*m,e+d*m,M.width,M.height,n.name)}));q=!0}}q||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,
-function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(b.target.result,mxUtils.bind(this,function(k){this.resizeImage(k,b.target.result,mxUtils.bind(this,function(b,k,p){x(d,mxUtils.bind(this,function(){if(null!=b&&b.length<y){var q=g&&this.isResampleImageSize(n.size,G)?Math.min(1,Math.min(f/k,f/p)):1;return l(b,n.type,c+d*m,e+d*m,Math.round(k*q),Math.round(p*q),n.name)}this.handleError({message:mxResources.get("imageTooBig")});
-return null}))}),g,f,G,n.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else p=b.target.result,l(p,n.type,c+d*m,e+d*m,240,160,n.name,function(b){x(d,function(){return b})},n)});/(\.v(dx|sdx?))($|\?)/i.test(n.name)||/(\.vs(x|sx?))($|\?)/i.test(n.name)?l(null,n.type,c+d*m,e+d*m,240,160,n.name,function(b){x(d,function(){return b})},n):"image"==n.type.substring(0,5)||"application/pdf"==n.type?p.readAsDataURL(n):p.readAsText(n)}})(A)});if(k){k=
-[];for(p=0;p<b.length;p++)k.push(b[p]);b=k;this.confirmImageResize(function(b){g=b;q()},x)}else q()};EditorUi.prototype.isBlankFile=function(){return null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",[1])};EditorUi.prototype.confirmImageResize=function(b,c){c=null!=c?c:!1;var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},e=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():
+d.isRemoteFileFormat(g,b.name)?d.isOffline()?d.showError(mxResources.get("error"),mxResources.get("notInOffline"),null,e):d.parseFileData(g,mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?c(b.responseText):e())}),b.name):e()}):l||e()}},function(b){e(b)}):e()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?g():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",g))};EditorUi.prototype.importFile=function(b,c,e,f,l,p,n,q,x,y,G,H){y=null!=
+y?y:!0;var d=!1,g=null,k=mxUtils.bind(this,function(b){var d=null;null!=b&&"<mxlibrary"==b.substring(0,10)?this.loadLibrary(new LocalLibrary(this,b,n)):d=this.importXml(b,e,f,y,null,null!=H?mxEvent.isControlDown(H):null);null!=q&&q(d)});"image"==c.substring(0,5)?(x=!1,"image/png"==c.substring(0,9)&&(c=G?null:this.extractGraphModelFromPng(b),null!=c&&0<c.length&&(g=this.importXml(c,e,f,y,null,null!=H?mxEvent.isControlDown(H):null),x=!0)),x||(c=this.editor.graph,x=b.indexOf(";"),0<x&&(b=b.substring(0,
+x)+b.substring(b.indexOf(",",x+1))),y&&c.isGridEnabled()&&(e=c.snap(e),f=c.snap(f)),g=[c.insertVertex(null,null,"",e,f,l,p,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b+";")])):/(\.*<graphml )/.test(b)?(d=!0,this.importGraphML(b,k)):null!=x&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?(d=!0,this.importVisio(x,k)):(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,n)?this.isOffline()?
+this.showError(mxResources.get("error"),mxResources.get("notInOffline")):(d=!0,l=mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?k(b.responseText):null!=q&&q(null))}),null!=b?this.parseFileData(b,l,n):this.parseFile(x,l,n)):0==b.indexOf("PK")&&null!=x?(d=!0,this.importZipFile(x,k,mxUtils.bind(this,function(){g=this.insertTextAt(this.validateFileData(b),e,f,!0,null,y);q(g)}))):/(\.v(sd|dx))($|\?)/i.test(n)||/(\.vs(s|x))($|\?)/i.test(n)||(g=this.insertTextAt(this.validateFileData(b),
+e,f,!0,null,y,null,null!=H?mxEvent.isControlDown(H):null));d||null==q||q(g);return g};EditorUi.prototype.importFiles=function(b,c,e,f,l,p,n,q,x,y,G,H,D){f=null!=f?f:this.maxImageSize;y=null!=y?y:this.maxImageBytes;var d=null!=c&&null!=e,g=!0;c=null!=c?c:0;e=null!=e?e:0;var k=!1;if(!mxClient.IS_CHROMEAPP&&null!=b)for(var m=G||this.resampleThreshold,t=0;t<b.length;t++)if("image/svg"!==b[t].type.substring(0,9)&&"image/"===b[t].type.substring(0,6)&&b[t].size>m){k=!0;break}var u=mxUtils.bind(this,function(){var k=
+this.editor.graph,m=k.gridSize;l=null!=l?l:mxUtils.bind(this,function(b,c,e,g,f,k,l,m,p){try{return null!=b&&"<mxlibrary"==b.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,b,l)),null):this.importFile(b,c,e,g,f,k,l,m,p,d,H,D)}catch(oa){return this.handleError(oa),null}});p=null!=p?p:mxUtils.bind(this,function(b){k.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var t=b.length,u=t,v=[],x=mxUtils.bind(this,function(b,d){v[b]=d;if(0==
+--u){this.spinner.stop();if(null!=q)q(v);else{var c=[];k.getModel().beginUpdate();try{for(var e=0;e<v.length;e++){var g=v[e]();null!=g&&(c=c.concat(g))}}finally{k.getModel().endUpdate()}}p(c)}}),A=0;A<t;A++)mxUtils.bind(this,function(d){var p=b[d];if(null!=p){var t=new FileReader;t.onload=mxUtils.bind(this,function(b){if(null==n||n(p))if("image/"==p.type.substring(0,6))if("image/svg"==p.type.substring(0,9)){var t=Graph.clipSvgDataUri(b.target.result),q=t.indexOf(","),q=decodeURIComponent(escape(atob(t.substring(q+
+1)))),u=mxUtils.parseXml(q),q=u.getElementsByTagName("svg");if(0<q.length){var q=q[0],v=H?null:q.getAttribute("content");null!=v&&"<"!=v.charAt(0)&&"%"!=v.charAt(0)&&(v=unescape(window.atob?atob(v):Base64.decode(v,!0)));null!=v&&"%"==v.charAt(0)&&(v=decodeURIComponent(v));null==v||"<mxfile "!==v.substring(0,8)&&"<mxGraphModel "!==v.substring(0,14)?x(d,mxUtils.bind(this,function(){try{if(null!=u){var b=u.getElementsByTagName("svg");if(0<b.length){var g=b[0],n=g.getAttribute("width"),q=g.getAttribute("height"),
+n=null!=n&&"%"!=n.charAt(n.length-1)?parseFloat(n):NaN,q=null!=q&&"%"!=q.charAt(q.length-1)?parseFloat(q):NaN,y=g.getAttribute("viewBox");if(null==y||0==y.length)g.setAttribute("viewBox","0 0 "+n+" "+q);else if(isNaN(n)||isNaN(q)){var v=y.split(" ");3<v.length&&(n=parseFloat(v[2]),q=parseFloat(v[3]))}t=Editor.createSvgDataUri(mxUtils.getXml(g));var x=Math.min(1,Math.min(f/Math.max(1,n)),f/Math.max(1,q)),A=l(t,p.type,c+d*m,e+d*m,Math.max(1,Math.round(n*x)),Math.max(1,Math.round(q*x)),p.name);if(isNaN(n)||
+isNaN(q)){var M=new Image;M.onload=mxUtils.bind(this,function(){n=Math.max(1,M.width);q=Math.max(1,M.height);A[0].geometry.width=n;A[0].geometry.height=q;g.setAttribute("viewBox","0 0 "+n+" "+q);t=Editor.createSvgDataUri(mxUtils.getXml(g));var b=t.indexOf(";");0<b&&(t=t.substring(0,b)+t.substring(t.indexOf(",",b+1)));k.setCellStyles("image",t,[A[0]])});M.src=Editor.createSvgDataUri(mxUtils.getXml(g))}return A}}}catch(ra){}return null})):x(d,mxUtils.bind(this,function(){return l(v,"text/xml",c+d*m,
+e+d*m,0,0,p.name)}))}else x(d,mxUtils.bind(this,function(){return null}))}else{q=!1;if("image/png"==p.type){var A=H?null:this.extractGraphModelFromPng(b.target.result);if(null!=A&&0<A.length){var M=new Image;M.src=b.target.result;x(d,mxUtils.bind(this,function(){return l(A,"text/xml",c+d*m,e+d*m,M.width,M.height,p.name)}));q=!0}}q||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,
+function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(b.target.result,mxUtils.bind(this,function(k){this.resizeImage(k,b.target.result,mxUtils.bind(this,function(b,k,n){x(d,mxUtils.bind(this,function(){if(null!=b&&b.length<y){var t=g&&this.isResampleImageSize(p.size,G)?Math.min(1,Math.min(f/k,f/n)):1;return l(b,p.type,c+d*m,e+d*m,Math.round(k*t),Math.round(n*t),p.name)}this.handleError({message:mxResources.get("imageTooBig")});
+return null}))}),g,f,G,p.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else t=b.target.result,l(t,p.type,c+d*m,e+d*m,240,160,p.name,function(b){x(d,function(){return b})},p)});/(\.v(dx|sdx?))($|\?)/i.test(p.name)||/(\.vs(x|sx?))($|\?)/i.test(p.name)?l(null,p.type,c+d*m,e+d*m,240,160,p.name,function(b){x(d,function(){return b})},p):"image"==p.type.substring(0,5)||"application/pdf"==p.type?t.readAsDataURL(p):t.readAsText(p)}})(A)});if(k){k=
+[];for(t=0;t<b.length;t++)k.push(b[t]);b=k;this.confirmImageResize(function(b){g=b;u()},x)}else u()};EditorUi.prototype.isBlankFile=function(){return null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",[1])};EditorUi.prototype.confirmImageResize=function(b,c){c=null!=c?c:!1;var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},e=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():
null,f=function(e,g){if(e||c)mxSettings.setResizeImages(e?g:null),mxSettings.save();d();b(g)};null==e||c?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(b){f(b,!0)},function(b){f(b,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container,340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,
!0,!0):f(!1,e)};EditorUi.prototype.parseFile=function(b,c,e){e=null!=e?e:b.name;var d=new FileReader;d.onload=mxUtils.bind(this,function(){this.parseFileData(d.result,c,e)});d.readAsText(b)};EditorUi.prototype.parseFileData=function(b,c,e){var d=new XMLHttpRequest;d.open("POST",OPEN_URL);d.setRequestHeader("Content-Type","application/x-www-form-urlencoded");d.onreadystatechange=function(){c(d)};d.send("format=xml&filename="+encodeURIComponent(e)+"&data="+encodeURIComponent(b));try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",
-action:"size_"+file.size})}catch(m){}};EditorUi.prototype.isResampleImageSize=function(b,c){c=null!=c?c:this.resampleThreshold;return b>c};EditorUi.prototype.resizeImage=function(b,c,e,f,l,n,t){l=null!=l?l:this.maxImageSize;var d=Math.max(1,b.width),g=Math.max(1,b.height);if(f&&this.isResampleImageSize(null!=t?t:c.length,n))try{var k=Math.max(d/l,g/l);if(1<k){var m=Math.round(d/k),p=Math.round(g/k),q=document.createElement("canvas");q.width=m;q.height=p;q.getContext("2d").drawImage(b,0,0,m,p);var v=
-q.toDataURL();if(v.length<c.length){var O=document.createElement("canvas");O.width=m;O.height=p;var A=O.toDataURL();v!==A&&(c=v,d=m,g=p)}}}catch(C){}e(c,d,g)};EditorUi.prototype.extractGraphModelFromPng=function(b){return Editor.extractGraphModelFromPng(b)};EditorUi.prototype.loadImage=function(b,c,e){try{var d=new Image;d.onload=function(){d.width=0<d.width?d.width:120;d.height=0<d.height?d.height:120;c(d)};null!=e&&(d.onerror=e);d.src=b}catch(m){if(null!=e)e(m);else throw m;}};EditorUi.prototype.getDefaultSketchMode=
+action:"size_"+file.size})}catch(m){}};EditorUi.prototype.isResampleImageSize=function(b,c){c=null!=c?c:this.resampleThreshold;return b>c};EditorUi.prototype.resizeImage=function(b,c,e,f,l,p,n){l=null!=l?l:this.maxImageSize;var d=Math.max(1,b.width),g=Math.max(1,b.height);if(f&&this.isResampleImageSize(null!=n?n:c.length,p))try{var k=Math.max(d/l,g/l);if(1<k){var m=Math.round(d/k),t=Math.round(g/k),q=document.createElement("canvas");q.width=m;q.height=t;q.getContext("2d").drawImage(b,0,0,m,t);var v=
+q.toDataURL();if(v.length<c.length){var O=document.createElement("canvas");O.width=m;O.height=t;var A=O.toDataURL();v!==A&&(c=v,d=m,g=t)}}}catch(C){}e(c,d,g)};EditorUi.prototype.extractGraphModelFromPng=function(b){return Editor.extractGraphModelFromPng(b)};EditorUi.prototype.loadImage=function(b,c,e){try{var d=new Image;d.onload=function(){d.width=0<d.width?d.width:120;d.height=0<d.height?d.height:120;c(d)};null!=e&&(d.onerror=e);d.src=b}catch(m){if(null!=e)e(m);else throw m;}};EditorUi.prototype.getDefaultSketchMode=
function(){var b="ac.draw.io"==window.location.host?"1":"0";return"0"!=(null!=urlParams.rough?urlParams.rough:b)};var n=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();this.isSettingsEnabled()&&("1"==urlParams.sketch&&this.doSetSketchMode(null!=mxSettings.settings.sketchMode&&null==urlParams.rough?mxSettings.settings.sketchMode:this.getDefaultSketchMode()),null!=mxSettings.settings.sidebarTitles&&(Sidebar.prototype.sidebarTitles=
mxSettings.settings.sidebarTitles),this.formatWidth=mxSettings.getFormatWidth());var b=this,c=this.editor.graph;Editor.isDarkMode()&&(c.view.defaultGridColor=mxGraphView.prototype.defaultDarkGridColor);Graph.touchStyle&&(c.panningHandler.isPanningTrigger=function(b){var d=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(d)&&!c.freehand.isDrawing()||mxEvent.isPopupTrigger(d)&&(null==b.getState()||mxEvent.isControlDown(d)||mxEvent.isShiftDown(d))});c.cellEditor.editPlantUmlData=function(d,
e,g){var f=JSON.parse(g);e=new TextareaDialog(b,mxResources.get("plantUml")+":",f.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generatePlantUmlImage(e,f.format,function(g,k,l){b.spinner.stop();c.getModel().beginUpdate();try{if("txt"==f.format)c.labelChanged(d,"<pre>"+g+"</pre>"),c.updateCellSize(d,!0);else{c.setCellStyles("image",b.convertDataUri(g),[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=k,m.height=l,c.cellsResized([d],[m],!1))}c.setAttributeForCell(d,
"plantUmlData",JSON.stringify({data:e,format:f.format}))}finally{c.getModel().endUpdate()}},function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};c.cellEditor.editMermaidData=function(d,e,g){var f=JSON.parse(g);e=new TextareaDialog(b,mxResources.get("mermaid")+":",f.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generateMermaidImage(e,f.config,function(g,k,l){b.spinner.stop();c.getModel().beginUpdate();try{c.setCellStyles("image",
g,[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=Math.max(m.width,k),m.height=Math.max(m.height,l),c.cellsResized([d],[m],!1));c.setAttributeForCell(d,"mermaidData",JSON.stringify({data:e,config:f.config},null,2))}finally{c.getModel().endUpdate()}},function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};var e=c.cellEditor.startEditing;c.cellEditor.startEditing=function(d,g){try{var f=this.graph.getAttributeForCell(d,"plantUmlData");if(null!=
-f)this.editPlantUmlData(d,g,f);else if(f=this.graph.getAttributeForCell(d,"mermaidData"),null!=f)this.editMermaidData(d,g,f);else{var k=c.getCellStyle(d);"1"==mxUtils.getValue(k,"metaEdit","0")?b.showDataDialog(d):e.apply(this,arguments)}}catch(M){b.handleError(M)}};c.getLinkTitle=function(d){return b.getLinkTitle(d)};c.customLinkClicked=function(d){var c=!1;try{b.handleCustomLink(d),c=!0}catch(L){b.handleError(L)}return c};var f=c.parseBackgroundImage;c.parseBackgroundImage=function(b){var d=f.apply(this,
+f)this.editPlantUmlData(d,g,f);else if(f=this.graph.getAttributeForCell(d,"mermaidData"),null!=f)this.editMermaidData(d,g,f);else{var k=c.getCellStyle(d);"1"==mxUtils.getValue(k,"metaEdit","0")?b.showDataDialog(d):e.apply(this,arguments)}}catch(M){b.handleError(M)}};c.getLinkTitle=function(d){return b.getLinkTitle(d)};c.customLinkClicked=function(d){var c=!1;try{b.handleCustomLink(d),c=!0}catch(J){b.handleError(J)}return c};var f=c.parseBackgroundImage;c.parseBackgroundImage=function(b){var d=f.apply(this,
arguments);null!=d&&null!=d.src&&Graph.isPageLink(d.src)&&(d={originalSrc:d.src});return d};var l=c.setBackgroundImage;c.setBackgroundImage=function(d){null!=d&&null!=d.originalSrc&&(d=b.createImageForPageLink(d.originalSrc,b.currentPage,this));l.apply(this,arguments)};this.editor.addListener("pageRenamed",mxUtils.bind(this,function(){c.refreshBackgroundImage()}));this.editor.addListener("pageMoved",mxUtils.bind(this,function(){c.refreshBackgroundImage()}));this.editor.addListener("pagesPatched",
mxUtils.bind(this,function(b,d){var e=null!=c.backgroundImage?c.backgroundImage.originalSrc:null;if(null!=e){var g=e.indexOf(",");if(0<g)for(var e=e.substring(g+1),g=d.getProperty("patches"),f=0;f<g.length;f++)if(null!=g[f][EditorUi.DIFF_UPDATE]&&null!=g[f][EditorUi.DIFF_UPDATE][e]||null!=g[f][EditorUi.DIFF_REMOVE]&&0<=mxUtils.indexOf(g[f][EditorUi.DIFF_REMOVE],e)){c.refreshBackgroundImage();break}}}));var p=c.getBackgroundImageObject;c.getBackgroundImageObject=function(d,c){var e=p.apply(this,arguments);
-if(null!=e&&null!=e.originalSrc)if(!c)e={src:e.originalSrc};else if(c&&null!=this.themes&&"darkTheme"==this.defaultThemeName){var g=this.stylesheet,f=this.shapeForegroundColor,k=this.shapeBackgroundColor;this.stylesheet=this.getDefaultStylesheet();this.shapeBackgroundColor="#ffffff";this.shapeForegroundColor="#000000";e=b.createImageForPageLink(e.originalSrc);this.shapeBackgroundColor=k;this.shapeForegroundColor=f;this.stylesheet=g}return e};var t=this.clearDefaultStyle;this.clearDefaultStyle=function(){t.apply(this,
+if(null!=e&&null!=e.originalSrc)if(!c)e={src:e.originalSrc};else if(c&&null!=this.themes&&"darkTheme"==this.defaultThemeName){var g=this.stylesheet,f=this.shapeForegroundColor,k=this.shapeBackgroundColor;this.stylesheet=this.getDefaultStylesheet();this.shapeBackgroundColor="#ffffff";this.shapeForegroundColor="#000000";e=b.createImageForPageLink(e.originalSrc);this.shapeBackgroundColor=k;this.shapeForegroundColor=f;this.stylesheet=g}return e};var q=this.clearDefaultStyle;this.clearDefaultStyle=function(){q.apply(this,
arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://www.diagrams.net/doc/faq/predefined-placeholders");if(/viewer\.diagrams\.net$/.test(window.location.hostname)||/embed\.diagrams\.net$/.test(window.location.hostname))this.editor.editBlankUrl="https://app.diagrams.net/";var u=b.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1");return u.apply(this,arguments)};
var x=c.addClickHandler;c.addClickHandler=function(b,d,e){var g=d;d=function(b,d){if(null==d){var e=mxEvent.getSource(b);"a"==e.nodeName.toLowerCase()&&(d=e.getAttribute("href"))}null!=d&&c.isCustomLink(d)&&(mxEvent.isTouchEvent(b)||!mxEvent.isPopupTrigger(b))&&c.customLinkClicked(d)&&mxEvent.consume(b);null!=g&&g(b,d)};x.call(this,b,d,e)};n.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var y=Menus.prototype.addPopupMenuEditItems;
this.menus.addPopupMenuEditItems=function(d,c,e){b.editor.graph.isSelectionEmpty()?y.apply(this,arguments):b.menus.addMenuItems(d,"delete - cut copy copyAsImage - duplicate".split(" "),null,e)}}b.actions.get("print").funct=function(){b.showDialog((new PrintDialog(b)).container,360,null!=b.pages&&1<b.pages.length?470:390,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var G=c.getExportVariables;c.getExportVariables=function(){var d=G.apply(this,arguments),c=b.getCurrentFile();null!=
@@ -3693,9 +3693,9 @@ mxSettings.save()}),this.ruler=!this.canvasSupported||9==document.documentMode||
c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var O=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==this.styleInput?!0:O.apply(this,arguments)}}F=document.getElementById("geInfo");null!=F&&F.parentNode.removeChild(F);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var A=null;mxEvent.addListener(c.container,"dragleave",
function(b){c.isEnabled()&&(null!=A&&(A.parentNode.removeChild(A),A=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(b){null==A&&(!mxClient.IS_IE||10<document.documentMode)&&(A=this.highlightElement(c.container));null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(c.container,"drop",mxUtils.bind(this,function(b){null!=A&&(A.parentNode.removeChild(A),A=null);if(c.isEnabled()){var d=
mxUtils.convertPoint(c.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),e=b.dataTransfer.files,g=c.view.translate,f=c.view.scale,k=d.x/f-g.x,l=d.y/f-g.y;if(0<e.length)d=1==e.length&&this.isBlankFile()&&!this.canUndo()&&("image/svg"===e[0].type.substring(0,9)||"image/"!==e[0].type.substring(0,6)||/(\.drawio.png)$/i.test(e[0].name)),"1"!=urlParams.embed&&(mxEvent.isShiftDown(b)||d)?(!mxEvent.isShiftDown(b)&&d&&null!=this.getCurrentFile()&&this.fileLoaded(null),this.openFiles(e,!0)):(mxEvent.isAltDown(b)&&
-(l=k=null),this.importFiles(e,k,l,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b),b));else{mxEvent.isAltDown(b)&&(l=k=0);var m=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,e=this.extractGraphModelFromEvent(b,null!=this.pages);if(null!=e)c.setSelectionCells(this.importXml(e,k,l,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){var n=b.dataTransfer.getData("text/html"),e=document.createElement("div");
-e.innerHTML=c.sanitizeHtml(n);var p=null,d=e.getElementsByTagName("img");null!=d&&1==d.length?(n=d[0].getAttribute("src"),null==n&&(n=d[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(n)||(p=!0)):(d=e.getElementsByTagName("a"),null!=d&&1==d.length?n=d[0].getAttribute("href"):(e=e.getElementsByTagName("pre"),null!=e&&1==e.length&&(n=mxUtils.getTextContent(e[0]))));var q=!0,t=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(n,k,l,!0,p,null,q,mxEvent.isControlDown(b)))});
-p&&null!=n&&n.length>this.resampleThreshold?this.confirmImageResize(function(b){q=b;t()},mxEvent.isControlDown(b)):t()}else null!=m&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)?this.loadImage(decodeURIComponent(m),mxUtils.bind(this,function(b){var d=Math.max(1,b.width);b=Math.max(1,b.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,b));c.setSelectionCell(c.insertVertex(null,null,"",k,l,d*e,b*e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
+(l=k=null),this.importFiles(e,k,l,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b),b));else{mxEvent.isAltDown(b)&&(l=k=0);var m=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,e=this.extractGraphModelFromEvent(b,null!=this.pages);if(null!=e)c.setSelectionCells(this.importXml(e,k,l,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){var p=b.dataTransfer.getData("text/html"),e=document.createElement("div");
+e.innerHTML=c.sanitizeHtml(p);var n=null,d=e.getElementsByTagName("img");null!=d&&1==d.length?(p=d[0].getAttribute("src"),null==p&&(p=d[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(p)||(n=!0)):(d=e.getElementsByTagName("a"),null!=d&&1==d.length?p=d[0].getAttribute("href"):(e=e.getElementsByTagName("pre"),null!=e&&1==e.length&&(p=mxUtils.getTextContent(e[0]))));var t=!0,q=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(p,k,l,!0,n,null,t,mxEvent.isControlDown(b)))});
+n&&null!=p&&p.length>this.resampleThreshold?this.confirmImageResize(function(b){t=b;q()},mxEvent.isControlDown(b)):q()}else null!=m&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)?this.loadImage(decodeURIComponent(m),mxUtils.bind(this,function(b){var d=Math.max(1,b.width);b=Math.max(1,b.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,b));c.setSelectionCell(c.insertVertex(null,null,"",k,l,d*e,b*e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
m+";"))}),mxUtils.bind(this,function(b){c.setSelectionCells(this.insertTextAt(m,k,l,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&c.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),k,l,!0))}}b.stopPropagation();b.preventDefault()}),!1)}c.enableFlowAnimation=!0;this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var b=this.editor.graph;b.container.addEventListener("paste",
mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d))try{for(var c=d.clipboardData||d.originalEvent.clipboardData,e=!1,f=0;f<c.types.length;f++)if("text/"===c.types[f].substring(0,5)){e=!0;break}if(!e){var k=c.items;for(index in k){var l=k[index];if("file"===l.kind){if(b.isEditing())this.importFiles([l.getAsFile()],0,0,this.maxImageSize,function(d,c,e,g,f,k){b.insertImage(d,f,k)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()});else{var n=
this.editor.graph.getInsertPoint();this.importFiles([l.getAsFile()],n.x,n.y,this.maxImageSize);mxEvent.consume(d)}break}}}}catch(x){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function b(){window.setTimeout(function(){e.innerHTML="&nbsp;";e.focus();document.execCommand("selectAll",!1,null)},0)}var c=this.editor.graph,e=document.createElement("div");e.setAttribute("autocomplete","off");e.setAttribute("autocorrect","off");e.setAttribute("autocapitalize","off");e.setAttribute("spellcheck",
@@ -3716,14 +3716,14 @@ mxSettings.save()}));this.editor.graph.pageFormat=null!=this.editor.graph.defaul
this.addListener("gridColorChanged",mxUtils.bind(this,function(b,c){mxSettings.setGridColor(this.editor.graph.view.gridColor,Editor.isDarkMode());mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(b,c){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave=mxSettings.getAutosave();null!=this.sidebar&&(null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes?(this.sidebar.searchShapes(decodeURIComponent(urlParams["search-shapes"])),
this.sidebar.showEntries("search")):(this.sidebar.showPalette("search",mxSettings.settings.search),this.editor.chromeless&&!this.editor.editable||!(mxSettings.settings.isNew||8>=parseInt(mxSettings.settings.version||0))||(this.toggleScratchpad(),mxSettings.save())));this.addListener("formatWidthChanged",function(){mxSettings.setFormatWidth(this.formatWidth);mxSettings.save()})}};EditorUi.prototype.copyImage=function(b,c,e){try{null!=navigator.clipboard&&this.spinner.spin(document.body,mxResources.get("exporting"))&&
this.editor.exportToCanvas(mxUtils.bind(this,function(b,d){try{this.spinner.stop();var e=this.createImageDataUri(b,c,"png"),g=parseInt(d.getAttribute("width")),f=parseInt(d.getAttribute("height"));this.writeImageToClipboard(e,g,f,mxUtils.bind(this,function(b){this.handleError(b)}))}catch(x){this.handleError(x)}}),null,null,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,null,null!=e?e:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,
-null,null,null,10,null,null,!1,null,0<b.length?b:null)}catch(q){this.handleError(q)}};EditorUi.prototype.writeImageToClipboard=function(b,c,e,f){var d=this.base64ToBlob(b.substring(b.indexOf(",")+1),"image/png");b=new ClipboardItem({"image/png":d,"text/html":new Blob(['<img src="'+b+'" width="'+c+'" height="'+e+'">'],{type:"text/html"})});navigator.clipboard.write([b])["catch"](f)};EditorUi.prototype.copyCells=function(b,c){var d=this.editor.graph;if(d.isSelectionEmpty())b.innerHTML="";else{var e=
+null,null,null,10,null,null,!1,null,0<b.length?b:null)}catch(t){this.handleError(t)}};EditorUi.prototype.writeImageToClipboard=function(b,c,e,f){var d=this.base64ToBlob(b.substring(b.indexOf(",")+1),"image/png");b=new ClipboardItem({"image/png":d,"text/html":new Blob(['<img src="'+b+'" width="'+c+'" height="'+e+'">'],{type:"text/html"})});navigator.clipboard.write([b])["catch"](f)};EditorUi.prototype.copyCells=function(b,c){var d=this.editor.graph;if(d.isSelectionEmpty())b.innerHTML="";else{var e=
mxUtils.sortCells(d.model.getTopmostCells(d.getSelectionCells())),f=mxUtils.getXml(d.encodeCells(e));mxUtils.setTextContent(b,encodeURIComponent(f));c?(d.removeCells(e,!1),d.lastPasteXml=null):(d.lastPasteXml=f,d.pasteCounter=0);b.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.copyXml=function(){var b=null;if(Editor.enableNativeCipboard){var c=this.editor.graph;c.isSelectionEmpty()||(b=mxUtils.sortCells(c.getExportableCells(c.model.getTopmostCells(c.getSelectionCells()))),
c=mxUtils.getXml(c.encodeCells(b)),navigator.clipboard.writeText(c))}return b};EditorUi.prototype.pasteXml=function(b,c,e,f){var d=this.editor.graph,g=null;d.lastPasteXml==b?d.pasteCounter++:(d.lastPasteXml=b,d.pasteCounter=0);var k=d.pasteCounter*d.gridSize;if(e||this.isCompatibleString(b))g=this.importXml(b,k,k),d.setSelectionCells(g);else if(c&&1==d.getSelectionCount()){k=d.getStartEditingCell(d.getSelectionCell(),f);if(/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b)&&"image"==d.getCurrentCellStyle(k)[mxConstants.STYLE_SHAPE])d.setCellStyles(mxConstants.STYLE_IMAGE,
b,[k]);else{d.model.beginUpdate();try{d.labelChanged(k,b),Graph.isLink(b)&&d.setLinkForCell(k,b)}finally{d.model.endUpdate()}}d.setSelectionCell(k)}else g=d.getInsertPoint(),d.isMouseInsertPoint()&&(k=0,d.lastPasteXml==b&&0<d.pasteCounter&&d.pasteCounter--),g=this.insertTextAt(b,g.x+k,g.y+k,!0),d.setSelectionCells(g);d.isSelectionEmpty()||(d.scrollCellToVisible(d.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell())));return g};EditorUi.prototype.pasteCells=
function(b,c,e,f){if(!mxEvent.isConsumed(b)){var d=c,g=!1;if(e&&null!=b.clipboardData&&b.clipboardData.getData){var k=b.clipboardData.getData("text/plain"),l=!1;if(null!=k&&0<k.length&&"%3CmxGraphModel%3E"==k.substring(0,18)){var n=decodeURIComponent(k);this.isCompatibleString(n)&&(l=!0,k=n)}l=l?null:b.clipboardData.getData("text/html");null!=l&&0<l.length?(d=this.parseHtmlData(l),g="text/plain"!=d.getAttribute("data-type")):null!=k&&0<k.length&&(d=document.createElement("div"),mxUtils.setTextContent(d,
l))}k=d.getElementsByTagName("span");if(null!=k&&0<k.length&&"application/vnd.lucid.chart.objects"===k[0].getAttribute("data-lucid-type"))e=k[0].getAttribute("data-lucid-content"),null!=e&&0<e.length&&(this.convertLucidChart(e,mxUtils.bind(this,function(b){var d=this.editor.graph;d.lastPasteXml==b?d.pasteCounter++:(d.lastPasteXml=b,d.pasteCounter=0);var c=d.pasteCounter*d.gridSize;d.setSelectionCells(this.importXml(b,c,c));d.scrollCellToVisible(d.getSelectionCell())}),mxUtils.bind(this,function(b){this.handleError(b)})),
-mxEvent.consume(b));else{g=g?d.innerHTML:mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText);l=!1;try{var q=g.lastIndexOf("%3E");0<=q&&q<g.length-3&&(g=g.substring(0,q+3))}catch(H){}try{k=d.getElementsByTagName("span"),n=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(g),this.isCompatibleString(n)&&(l=!0,g=n)}catch(H){}try{if(null!=g&&0<g.length){this.pasteXml(g,f,l,b);try{mxEvent.consume(b)}catch(H){}}else if(!e){var t=this.editor.graph;
-t.lastPasteXml=null;t.pasteCounter=0}}catch(H){this.handleError(H)}}}c.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(b){if(Graph.fileSupport)for(var d=null,c=0;c<b.length;c++)mxEvent.addListener(b[c],"dragleave",function(b){null!=d&&(d.parentNode.removeChild(d),d=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(b[c],"dragover",mxUtils.bind(this,function(b){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==d&&(!mxClient.IS_IE||10<document.documentMode&&
+mxEvent.consume(b));else{g=g?d.innerHTML:mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText);l=!1;try{var t=g.lastIndexOf("%3E");0<=t&&t<g.length-3&&(g=g.substring(0,t+3))}catch(H){}try{k=d.getElementsByTagName("span"),n=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(g),this.isCompatibleString(n)&&(l=!0,g=n)}catch(H){}try{if(null!=g&&0<g.length){this.pasteXml(g,f,l,b);try{mxEvent.consume(b)}catch(H){}}else if(!e){var q=this.editor.graph;
+q.lastPasteXml=null;q.pasteCounter=0}}catch(H){this.handleError(H)}}}c.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(b){if(Graph.fileSupport)for(var d=null,c=0;c<b.length;c++)mxEvent.addListener(b[c],"dragleave",function(b){null!=d&&(d.parentNode.removeChild(d),d=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(b[c],"dragover",mxUtils.bind(this,function(b){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==d&&(!mxClient.IS_IE||10<document.documentMode&&
12>document.documentMode)&&(d=this.highlightElement());b.stopPropagation();b.preventDefault()})),mxEvent.addListener(b[c],"drop",mxUtils.bind(this,function(b){null!=d&&(d.parentNode.removeChild(d),d=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<b.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b)):this.openFiles(b.dataTransfer.files,!0);
else{var c=this.extractGraphModelFromEvent(b);if(null==c){var e=null!=b.dataTransfer?b.dataTransfer:b.clipboardData;null!=e&&(10==document.documentMode||11==document.documentMode?c=e.getData("Text"):(c=null,c=0<=mxUtils.indexOf(e.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(e.types,"text/html")?e.getData("text/html"):null,null!=c&&0<c.length?(e=document.createElement("div"),e.innerHTML=this.editor.graph.sanitizeHtml(c),e=e.getElementsByTagName("img"),0<e.length&&
(c=e[0].getAttribute("src"))):0<=mxUtils.indexOf(e.types,"text/plain")&&(c=e.getData("text/plain"))),null!=c&&(Editor.isPngDataUrl(c)?(c=Editor.extractGraphModelFromPng(c),null!=c&&0<c.length&&this.openLocalFile(c,null,!0)):this.isRemoteFileFormat(c)?this.isOffline()?this.showError(mxResources.get("error"),mxResources.get("notInOffline")):(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(c))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&this.openLocalFile(b.getText(),
@@ -3748,14 +3748,14 @@ scale:d.view.scale,page:d.view.getBackgroundPageBounds()}};EditorUi.prototype.se
point:this.embedExitPoint,exit:null!=b?!b:!0,data:Editor.createSvgDataUri(d)}),"*")}),null,null,!0,e,1,this.embedExportBorder)}else b||c.postMessage(JSON.stringify({event:"exit",point:this.embedExitPoint}),"*");b||(this.diagramContainer.removeAttribute("data-bounds"),Editor.inlineFullscreen=!1,d.model.clear(),this.editor.undoManager.clear(),this.setBackgroundImage(null),this.editor.modified=!1,this.fireEvent(new mxEventObject("editInlineStop")))};EditorUi.prototype.installMessageHandler=function(b){var d=
null,c=!1,e=!1,f=null,l=mxUtils.bind(this,function(b,d){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,l);mxEvent.addListener(window,"message",mxUtils.bind(this,function(g){if(g.source==(window.opener||window.parent)){var k=g.data,l=null,m=mxUtils.bind(this,function(b){if(null!=b&&"function"===typeof b.charAt&&"<"!=
b.charAt(0))try{Editor.isPngDataUrl(b)?b=Editor.extractGraphModelFromPng(b):"data:image/svg+xml;base64,"==b.substring(0,26)?b=atob(b.substring(26)):"data:image/svg+xml;utf8,"==b.substring(0,24)&&(b=b.substring(24)),null!=b&&("%"==b.charAt(0)?b=decodeURIComponent(b):"<"!=b.charAt(0)&&(b=Graph.decompress(b)))}catch(la){}return b});if("json"==urlParams.proto){var p=!1;try{k=JSON.parse(k)}catch(I){k=null}try{if(null==k)return;if("dialog"==k.action){this.showError(null!=k.titleKey?mxResources.get(k.titleKey):
-k.title,null!=k.messageKey?mxResources.get(k.messageKey):k.message,null!=k.buttonKey?mxResources.get(k.buttonKey):k.button);null!=k.modified&&(this.editor.modified=k.modified);return}if("layout"==k.action){this.executeLayoutList(k.layouts);return}if("prompt"==k.action){this.spinner.stop();var q=new FilenameDialog(this,k.defaultValue||"",null!=k.okKey?mxResources.get(k.okKey):k.ok,function(b){null!=b?n.postMessage(JSON.stringify({event:"prompt",value:b,message:k}),"*"):n.postMessage(JSON.stringify({event:"prompt-cancel",
-message:k}),"*")},null!=k.titleKey?mxResources.get(k.titleKey):k.title);this.showDialog(q.container,300,80,!0,!1);q.init();return}if("draft"==k.action){var t=m(k.xml);this.spinner.stop();q=new DraftDialog(this,mxResources.get("draftFound",[k.name||this.defaultFilename]),t,mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"edit",message:k}),"*")}),mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"discard",
-message:k}),"*")}),k.editKey?mxResources.get(k.editKey):null,k.discardKey?mxResources.get(k.discardKey):null,k.ignore?mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"ignore",message:k}),"*")}):null);this.showDialog(q.container,640,480,!0,!1,mxUtils.bind(this,function(b){b&&this.actions.get("exit").funct()}));try{q.init()}catch(I){n.postMessage(JSON.stringify({event:"draft",error:I.toString(),message:k}),"*")}return}if("template"==k.action){this.spinner.stop();
-var u=1==k.enableRecent,v=1==k.enableSearch,x=1==k.enableCustomTemp;if("1"==urlParams.newTempDlg&&!k.templatesOnly&&null!=k.callback){var L=this.getCurrentUser(),N=new TemplatesDialog(this,function(b,d,c){b=b||this.emptyDiagramXml;n.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:d,tempUrl:c.url,libs:c.libs,builtIn:null!=c.info&&null!=c.info.custContentId,message:k}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=L?L.id:
-null,u?mxUtils.bind(this,function(b,d,c){this.remoteInvoke("getRecentDiagrams",[c],null,b,d)}):null,v?mxUtils.bind(this,function(b,d,c,e){this.remoteInvoke("searchDiagrams",[b,e],null,d,c)}):null,mxUtils.bind(this,function(b,d,c){this.remoteInvoke("getFileContent",[b.url],null,d,c)}),null,x?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(N.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}q=
+k.title,null!=k.messageKey?mxResources.get(k.messageKey):k.message,null!=k.buttonKey?mxResources.get(k.buttonKey):k.button);null!=k.modified&&(this.editor.modified=k.modified);return}if("layout"==k.action){this.executeLayoutList(k.layouts);return}if("prompt"==k.action){this.spinner.stop();var t=new FilenameDialog(this,k.defaultValue||"",null!=k.okKey?mxResources.get(k.okKey):k.ok,function(b){null!=b?n.postMessage(JSON.stringify({event:"prompt",value:b,message:k}),"*"):n.postMessage(JSON.stringify({event:"prompt-cancel",
+message:k}),"*")},null!=k.titleKey?mxResources.get(k.titleKey):k.title);this.showDialog(t.container,300,80,!0,!1);t.init();return}if("draft"==k.action){var q=m(k.xml);this.spinner.stop();t=new DraftDialog(this,mxResources.get("draftFound",[k.name||this.defaultFilename]),q,mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"edit",message:k}),"*")}),mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"discard",
+message:k}),"*")}),k.editKey?mxResources.get(k.editKey):null,k.discardKey?mxResources.get(k.discardKey):null,k.ignore?mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"ignore",message:k}),"*")}):null);this.showDialog(t.container,640,480,!0,!1,mxUtils.bind(this,function(b){b&&this.actions.get("exit").funct()}));try{t.init()}catch(I){n.postMessage(JSON.stringify({event:"draft",error:I.toString(),message:k}),"*")}return}if("template"==k.action){this.spinner.stop();
+var u=1==k.enableRecent,v=1==k.enableSearch,x=1==k.enableCustomTemp;if("1"==urlParams.newTempDlg&&!k.templatesOnly&&null!=k.callback){var J=this.getCurrentUser(),N=new TemplatesDialog(this,function(b,d,c){b=b||this.emptyDiagramXml;n.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:d,tempUrl:c.url,libs:c.libs,builtIn:null!=c.info&&null!=c.info.custContentId,message:k}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=J?J.id:
+null,u?mxUtils.bind(this,function(b,d,c){this.remoteInvoke("getRecentDiagrams",[c],null,b,d)}):null,v?mxUtils.bind(this,function(b,d,c,e){this.remoteInvoke("searchDiagrams",[b,e],null,d,c)}):null,mxUtils.bind(this,function(b,d,c){this.remoteInvoke("getFileContent",[b.url],null,d,c)}),null,x?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(N.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}t=
new NewDialog(this,!1,k.templatesOnly?!1:null!=k.callback,mxUtils.bind(this,function(d,c,e,f){d=d||this.emptyDiagramXml;null!=k.callback?n.postMessage(JSON.stringify({event:"template",xml:d,blank:d==this.emptyDiagramXml,name:c,tempUrl:e,libs:f,builtIn:!0,message:k}),"*"):(b(d,g,d!=this.emptyDiagramXml,k.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,u?mxUtils.bind(this,function(b){this.remoteInvoke("getRecentDiagrams",[null],null,b,function(){b(null,
-"Network Error!")})}):null,v?mxUtils.bind(this,function(b,d){this.remoteInvoke("searchDiagrams",[b,null],null,d,function(){d(null,"Network Error!")})}):null,mxUtils.bind(this,function(b,d,c){n.postMessage(JSON.stringify({event:"template",docUrl:b,info:d,name:c}),"*")}),null,null,x?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,1==k.withoutType);this.showDialog(q.container,620,460,!0,!1,mxUtils.bind(this,function(b){this.sidebar.hideTooltip();
-b&&this.actions.get("exit").funct()}));q.init();return}if("textContent"==k.action){var M=this.getDiagramTextContent();n.postMessage(JSON.stringify({event:"textContent",data:M,message:k}),"*");return}if("status"==k.action){null!=k.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(k.messageKey))):null!=k.message&&this.editor.setStatus(mxUtils.htmlEntities(k.message));null!=k.modified&&(this.editor.modified=k.modified);return}if("spinner"==k.action){var Q=null!=k.messageKey?mxResources.get(k.messageKey):
+"Network Error!")})}):null,v?mxUtils.bind(this,function(b,d){this.remoteInvoke("searchDiagrams",[b,null],null,d,function(){d(null,"Network Error!")})}):null,mxUtils.bind(this,function(b,d,c){n.postMessage(JSON.stringify({event:"template",docUrl:b,info:d,name:c}),"*")}),null,null,x?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,1==k.withoutType);this.showDialog(t.container,620,460,!0,!1,mxUtils.bind(this,function(b){this.sidebar.hideTooltip();
+b&&this.actions.get("exit").funct()}));t.init();return}if("textContent"==k.action){var M=this.getDiagramTextContent();n.postMessage(JSON.stringify({event:"textContent",data:M,message:k}),"*");return}if("status"==k.action){null!=k.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(k.messageKey))):null!=k.message&&this.editor.setStatus(mxUtils.htmlEntities(k.message));null!=k.modified&&(this.editor.modified=k.modified);return}if("spinner"==k.action){var Q=null!=k.messageKey?mxResources.get(k.messageKey):
k.message;null==k.show||k.show?this.spinner.spin(document.body,Q):this.spinner.stop();return}if("exit"==k.action){this.actions.get("exit").funct();return}if("viewport"==k.action){null!=k.viewport&&(this.embedViewport=k.viewport);return}if("snapshot"==k.action){this.sendEmbeddedSvgExport(!0);return}if("export"==k.action){if("png"==k.format||"xmlpng"==k.format){if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin)){var V=null!=k.xml?k.xml:
this.getFileData(!0);this.editor.graph.setEnabled(!1);var X=this.editor.graph,ja=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);this.spinner.stop();var d=this.createLoadMessage("export");d.format=k.format;d.message=k;d.data=b;d.xml=V;n.postMessage(JSON.stringify(d),"*")}),Y=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(V)));X!=this.editor.graph&&X.container.parentNode.removeChild(X.container);
ja(b)}),da=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var ba=mxUtils.bind(this,function(){if(null!=this.pages&&this.currentPage.getId()!=da){var b=X.getGlobalVariable;X=this.createTemporaryGraph(X.getStylesheet());for(var d,c=0;c<this.pages.length;c++)if(this.pages[c].getId()==da){d=this.updatePageRoot(this.pages[c]);break}null==d&&(d=this.currentPage);X.getGlobalVariable=function(c){return"page"==c?d.getName():"pagenumber"==
@@ -3766,35 +3766,35 @@ this.getHtml(d,this.editor.graph),b.xml=mxUtils.getXml(d),b.format=k.format;else
k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin))&&this.getEmbeddedSvg(b.xml,this.editor.graph,null,!0,c,null,null,k.embedImages,d,k.scale,k.border,k.shadow,k.keepTheme);else if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin))this.editor.graph.setEnabled(!1),d=this.editor.graph.getSvg(d,k.scale,k.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||k.shadow,null,k.keepTheme),
(this.editor.graph.shadowVisible||k.shadow)&&this.editor.graph.addSvgShadow(d),this.embedFonts(d,mxUtils.bind(this,function(b){k.embedImages||null==k.embedImages?this.editor.convertImages(b,mxUtils.bind(this,function(b){c(mxUtils.getXml(b))})):c(mxUtils.getXml(b))}));return}n.postMessage(JSON.stringify(b),"*")}),null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(k.xml),c=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(ba)},0):ba()):ba();return}if("load"==k.action){p=
k.toSketch;e=1==k.autosave;this.hideDialog();null!=k.modified&&null==urlParams.modified&&(urlParams.modified=k.modified);null!=k.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=k.saveAndExit);null!=k.noSaveBtn&&null==urlParams.noSaveBtn&&(urlParams.noSaveBtn=k.noSaveBtn);if(null!=k.rough){var B=Editor.sketchMode;this.doSetSketchMode(k.rough);B!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=k.dark&&(B=Editor.darkMode,this.doSetDarkMode(k.dark),B!=
-Editor.darkMode&&this.fireEvent(new mxEventObject("darkModeChanged")));null!=k.border&&(this.embedExportBorder=k.border);null!=k.background&&(this.embedExportBackground=k.background);null!=k.viewport&&(this.embedViewport=k.viewport);this.embedExitPoint=null;if(null!=k.rect){var J=this.embedExportBorder;this.diagramContainer.style.border="2px solid #295fcc";this.diagramContainer.style.top=k.rect.top+"px";this.diagramContainer.style.left=k.rect.left+"px";this.diagramContainer.style.height=k.rect.height+
-"px";this.diagramContainer.style.width=k.rect.width+"px";this.diagramContainer.style.bottom="";this.diagramContainer.style.right="";l=mxUtils.bind(this,function(){var b=this.editor.graph,d=b.maxFitScale;b.maxFitScale=k.maxFitScale;b.fit(2*J);b.maxFitScale=d;b.container.scrollTop-=2*J;b.container.scrollLeft-=2*J;this.fireEvent(new mxEventObject("editInlineStart","data",[k]))})}null!=k.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=k.noExitBtn);null!=k.title&&null!=this.buttonContainer&&
-(t=document.createElement("span"),mxUtils.write(t,k.title),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(t),this.embedFilenameSpan=t);try{k.libs&&this.sidebar.showEntries(k.libs)}catch(I){}k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):null!=k.descriptor?k.descriptor:k.xml}else{if("merge"==k.action){var K=this.getCurrentFile();null!=K&&(t=m(k.xml),null!=t&&""!=t&&K.mergeFile(new LocalFile(this,t),function(){n.postMessage(JSON.stringify({event:"merge",
-message:k}),"*")},function(b){n.postMessage(JSON.stringify({event:"merge",message:k,error:b}),"*")}))}else"remoteInvokeReady"==k.action?this.handleRemoteInvokeReady(n):"remoteInvoke"==k.action?this.handleRemoteInvoke(k,g.origin):"remoteInvokeResponse"==k.action?this.handleRemoteInvokeResponse(k):n.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(k)}),"*");return}}catch(I){this.handleError(I)}}var W=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<
-this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),fa=mxUtils.bind(this,function(g,k){c=!0;try{b(g,k,null,p)}catch(pa){this.handleError(pa)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");f=W();e&&null==d&&(d=mxUtils.bind(this,function(b,d){var e=W();if(e!=f&&!c){var g=this.createLoadMessage("autosave");g.xml=e;(window.opener||window.parent).postMessage(JSON.stringify(g),"*")}f=e}),this.editor.graph.model.addListener(mxEvent.CHANGE,d),this.editor.graph.addListener("gridSizeChanged",
-d),this.editor.graph.addListener("shadowVisibleChanged",d),this.addListener("pageFormatChanged",d),this.addListener("pageScaleChanged",d),this.addListener("backgroundColorChanged",d),this.addListener("backgroundImageChanged",d),this.addListener("foldingEnabledChanged",d),this.addListener("mathEnabledChanged",d),this.addListener("gridEnabledChanged",d),this.addListener("guidesEnabledChanged",d),this.addListener("pageViewChanged",d));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var m=this.createLoadMessage("load");
-m.xml=g;n.postMessage(JSON.stringify(m),"*")}null!=l&&l()});null!=k&&"function"===typeof k.substring&&"data:application/vnd.visio;base64,"==k.substring(0,34)?(m="0M8R4KGxGuE"==k.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(k.substring(k.indexOf(",")+1)),function(b){fa(b,g)},mxUtils.bind(this,function(b){this.handleError(b)}),m)):null!=k&&"function"===typeof k.substring&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(k,"")?this.isOffline()?this.showError(mxResources.get("error"),
-mxResources.get("notInOffline")):this.parseFileData(k,mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&"<mxGraphModel"==b.responseText.substring(0,13)&&fa(b.responseText,g)}),""):null!=k&&"function"===typeof k.substring&&this.isLucidChartData(k)?this.convertLucidChart(k,mxUtils.bind(this,function(b){fa(b)}),mxUtils.bind(this,function(b){this.handleError(b)})):null==k||"object"!==typeof k||null==k.format||null==k.data&&null==k.url?(k=m(k),fa(k,g)):this.loadDescriptor(k,
-mxUtils.bind(this,function(b){fa(W(),g)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var n=window.opener||window.parent,l="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMessage(l,"*");if("json"==urlParams.proto){var t=this.editor.graph.openLink;this.editor.graph.openLink=function(b,d,c){t.apply(this,arguments);n.postMessage(JSON.stringify({event:"openLink",href:b,target:d,allowOpener:c}),"*")}}};EditorUi.prototype.addEmbedButtons=
-function(){if(null!=this.menubar&&"1"!=urlParams.embedInline){var b=document.createElement("div");b.style.display="inline-block";b.style.position="absolute";b.style.paddingTop="atlas"==uiTheme||"1"==urlParams.atlas?"2px":"0px";b.style.paddingLeft="8px";b.style.paddingBottom="2px";var c=document.createElement("button");c.className="geBigButton";var e=c;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var f="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");
-mxUtils.write(c,f);c.setAttribute("title",f);mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));b.appendChild(c)}}else mxUtils.write(c,mxResources.get("save")),c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),
-c.setAttribute("title",mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),b.appendChild(c),e=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),e="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,e),c.setAttribute("title",e),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",
-mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),e=c);e.style.marginRight="20px";this.toolbar.container.appendChild(b);this.toolbar.staticElements.push(b);b.style.right="atlas"==uiTheme||"1"==urlParams.atlas?"42px":"52px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(b){this.importCsv(b)}),
-null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};EditorUi.prototype.executeLayoutList=function(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var k=new window[b[f].layout](d);if(null!=b[f].config)for(var l in b[f].config)k[l]=b[f].config[l];this.executeLayout(function(){k.execute(d.getDefaultParent(),
-0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],k=[],l={};if(0<d.length){for(var n={},t=this.editor.graph,y=null,G=null,H=null,D=null,F=null,O=null,A=null,C="whiteSpace=wrap;html=1;",E=null,L=null,N="",M="auto",Q="auto",V=null,X=null,ja=40,Y=40,da=100,ba=0,B=function(){null!=c?c(R):(t.setSelectionCells(R),t.scrollCellToVisible(t.getSelectionCell()))},J=t.getFreeInsertPoint(),K=J.x,W=J.y,J=W,fa=null,I="auto",L=null,la=[],oa=null,
-pa=null,ka=0;ka<d.length&&"#"==d[ka].charAt(0);){b=d[ka];for(ka++;ka<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[ka].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[ka].substring(1)),ka++;if("#"!=b.charAt(1)){var qa=b.indexOf(":");if(0<qa){var Z=mxUtils.trim(b.substring(1,qa)),P=mxUtils.trim(b.substring(qa+1));"label"==Z?fa=t.sanitizeHtml(P):"labelname"==Z&&0<P.length&&"-"!=P?F=P:"labels"==Z&&0<P.length&&"-"!=P?A=JSON.parse(P):"style"==Z?G=P:"parentstyle"==Z?C=P:"unknownStyle"==Z&&"-"!=P?O=
-P:"stylename"==Z&&0<P.length&&"-"!=P?D=P:"styles"==Z&&0<P.length&&"-"!=P?H=JSON.parse(P):"vars"==Z&&0<P.length&&"-"!=P?y=JSON.parse(P):"identity"==Z&&0<P.length&&"-"!=P?E=P:"parent"==Z&&0<P.length&&"-"!=P?L=P:"namespace"==Z&&0<P.length&&"-"!=P?N=P:"width"==Z?M=P:"height"==Z?Q=P:"left"==Z&&0<P.length?V=P:"top"==Z&&0<P.length?X=P:"ignore"==Z?pa=P.split(","):"connect"==Z?la.push(JSON.parse(P)):"link"==Z?oa=P:"padding"==Z?ba=parseFloat(P):"edgespacing"==Z?ja=parseFloat(P):"nodespacing"==Z?Y=parseFloat(P):
-"levelspacing"==Z?da=parseFloat(P):"layout"==Z&&(I=P)}}}if(null==d[ka])throw Error(mxResources.get("invalidOrMissingFile"));for(var sa=this.editor.csvToArray(d[ka]),Z=qa=null,P=[],T=0;T<sa.length;T++)E==sa[T]&&(qa=T),L==sa[T]&&(Z=T),P.push(mxUtils.trim(sa[T]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==fa&&(fa="%"+P[0]+"%");if(null!=la)for(var ha=0;ha<la.length;ha++)null==n[la[ha].to]&&(n[la[ha].to]={});E=[];for(T=ka+1;T<d.length;T++){var ma=this.editor.csvToArray(d[T]);
-if(null==ma){var ra=40<d[T].length?d[T].substring(0,40)+"...":d[T];throw Error(ra+" ("+T+"):\n"+mxResources.get("containsValidationErrors"));}0<ma.length&&E.push(ma)}t.model.beginUpdate();try{for(T=0;T<E.length;T++){var ma=E[T],S=null,na=null!=qa?N+ma[qa]:null;null!=na&&(S=t.model.getCell(na));var d=null!=S,ca=new mxCell(fa,new mxGeometry(K,J,0,0),G||"whiteSpace=wrap;html=1;");ca.vertex=!0;ca.id=na;for(var ea=0;ea<ma.length;ea++)t.setAttributeForCell(ca,P[ea],ma[ea]);if(null!=F&&null!=A){var ia=A[ca.getAttribute(F)];
-null!=ia&&t.labelChanged(ca,ia)}if(null!=D&&null!=H){var xa=H[ca.getAttribute(D)];null!=xa&&(ca.style=xa)}t.setAttributeForCell(ca,"placeholders","1");ca.style=t.replacePlaceholders(ca,ca.style,y);d?(0>mxUtils.indexOf(k,S)&&k.push(S),t.fireEvent(new mxEventObject("cellsInserted","cells",[S]))):t.fireEvent(new mxEventObject("cellsInserted","cells",[ca]));S=ca;if(!d)for(ha=0;ha<la.length;ha++)n[la[ha].to][S.getAttribute(la[ha].to)]=S;null!=oa&&"link"!=oa&&(t.setLinkForCell(S,S.getAttribute(oa)),t.setAttributeForCell(S,
-oa,null));var Aa=this.editor.graph.getPreferredSizeForCell(S),L=null!=Z?t.model.getCell(N+ma[Z]):null;if(S.vertex){ra=null!=L?0:K;ka=null!=L?0:W;null!=V&&null!=S.getAttribute(V)&&(S.geometry.x=ra+parseFloat(S.getAttribute(V)));null!=X&&null!=S.getAttribute(X)&&(S.geometry.y=ka+parseFloat(S.getAttribute(X)));var ta="@"==M.charAt(0)?S.getAttribute(M.substring(1)):null;S.geometry.width=null!=ta&&"auto"!=ta?parseFloat(S.getAttribute(M.substring(1))):"auto"==M||"auto"==ta?Aa.width+ba:parseFloat(M);var ua=
-"@"==Q.charAt(0)?S.getAttribute(Q.substring(1)):null;S.geometry.height=null!=ua&&"auto"!=ua?parseFloat(ua):"auto"==Q||"auto"==ua?Aa.height+ba:parseFloat(Q);J+=S.geometry.height+Y}d?(null==l[na]&&(l[na]=[]),l[na].push(S)):(e.push(S),null!=L?(L.style=t.replacePlaceholders(L,C,y),t.addCell(S,L),f.push(L)):k.push(t.addCell(S)))}for(T=0;T<f.length;T++)ta="@"==M.charAt(0)?f[T].getAttribute(M.substring(1)):null,ua="@"==Q.charAt(0)?f[T].getAttribute(Q.substring(1)):null,"auto"!=M&&"auto"!=ta||"auto"!=Q&&
-"auto"!=ua||t.updateGroupBounds([f[T]],ba,!0);for(var aa=k.slice(),R=k.slice(),ha=0;ha<la.length;ha++)for(var Ea=la[ha],T=0;T<e.length;T++){var S=e[T],Ia=mxUtils.bind(this,function(b,c,d){var e=c.getAttribute(d.from);if(null!=e&&""!=e)for(var e=e.split(","),g=0;g<e.length;g++){var f=n[d.to][e[g]];if(null==f&&null!=O){f=new mxCell(e[g],new mxGeometry(K,W,0,0),O);f.style=t.replacePlaceholders(c,f.style,y);var l=this.editor.graph.getPreferredSizeForCell(f);f.geometry.width=l.width+ba;f.geometry.height=
-l.height+ba;n[d.to][e[g]]=f;f.vertex=!0;f.id=e[g];k.push(t.addCell(f))}if(null!=f){l=d.label;null!=d.fromlabel&&(l=(c.getAttribute(d.fromlabel)||"")+(l||""));null!=d.sourcelabel&&(l=t.replacePlaceholders(c,d.sourcelabel,y)+(l||""));null!=d.tolabel&&(l=(l||"")+(f.getAttribute(d.tolabel)||""));null!=d.targetlabel&&(l=(l||"")+t.replacePlaceholders(f,d.targetlabel,y));var m="target"==d.placeholders==!d.invert?f:b,m=null!=d.style?t.replacePlaceholders(m,d.style,y):t.createCurrentEdgeStyle(),l=t.insertEdge(null,
-null,l||"",d.invert?f:b,d.invert?b:f,m);if(null!=d.labels)for(m=0;m<d.labels.length;m++){var p=d.labels[m],q=new mxCell(p.label||m,new mxGeometry(null!=p.x?p.x:0,null!=p.y?p.y:0,0,0),"resizable=0;html=1;");q.vertex=!0;q.connectable=!1;q.geometry.relative=!0;null!=p.placeholders&&(q.value=t.replacePlaceholders("target"==p.placeholders==!d.invert?f:b,q.value,y));if(null!=p.dx||null!=p.dy)q.geometry.offset=new mxPoint(null!=p.dx?p.dx:0,null!=p.dy?p.dy:0);l.insert(q)}R.push(l);mxUtils.remove(d.invert?
-b:f,aa)}}});Ia(S,S,Ea);if(null!=l[S.id])for(ea=0;ea<l[S.id].length;ea++)Ia(S,l[S.id][ea],Ea)}if(null!=pa)for(T=0;T<e.length;T++)for(S=e[T],ea=0;ea<pa.length;ea++)t.setAttributeForCell(S,mxUtils.trim(pa[ea]),null);if(0<k.length){var wa=new mxParallelEdgeLayout(t);wa.spacing=ja;wa.checkOverlap=!0;var Ba=function(){0<wa.spacing&&wa.execute(t.getDefaultParent());for(var b=0;b<k.length;b++){var d=t.getCellGeometry(k[b]);d.x=Math.round(t.snap(d.x));d.y=Math.round(t.snap(d.y));"auto"==M&&(d.width=Math.round(t.snap(d.width)));
-"auto"==Q&&(d.height=Math.round(t.snap(d.height)))}};if("["==I.charAt(0)){var ya=B;t.view.validate();this.executeLayoutList(JSON.parse(I),function(){Ba();ya()});B=null}else if("circle"==I){var Ca=new mxCircleLayout(t);Ca.disableEdgeStyle=!1;Ca.resetEdges=!1;var Fa=Ca.isVertexIgnored;Ca.isVertexIgnored=function(b){return Fa.apply(this,arguments)||0>mxUtils.indexOf(k,b)};this.executeLayout(function(){Ca.execute(t.getDefaultParent());Ba()},!0,B);B=null}else if("horizontaltree"==I||"verticaltree"==I||
-"auto"==I&&R.length==2*k.length-1&&1==aa.length){t.view.validate();var Da=new mxCompactTreeLayout(t,"horizontaltree"==I);Da.levelDistance=Y;Da.edgeRouting=!1;Da.resetEdges=!1;this.executeLayout(function(){Da.execute(t.getDefaultParent(),0<aa.length?aa[0]:null)},!0,B);B=null}else if("horizontalflow"==I||"verticalflow"==I||"auto"==I&&1==aa.length){t.view.validate();var za=new mxHierarchicalLayout(t,"horizontalflow"==I?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);za.intraCellSpacing=Y;za.parallelEdgeSpacing=
-ja;za.interRankCellSpacing=da;za.disableEdgeStyle=!1;this.executeLayout(function(){za.execute(t.getDefaultParent(),R);t.moveCells(R,K,W)},!0,B);B=null}else if("organic"==I||"auto"==I&&R.length>k.length){t.view.validate();var U=new mxFastOrganicLayout(t);U.forceConstant=3*Y;U.disableEdgeStyle=!1;U.resetEdges=!1;var Ga=U.isVertexIgnored;U.isVertexIgnored=function(b){return Ga.apply(this,arguments)||0>mxUtils.indexOf(k,b)};this.executeLayout(function(){U.execute(t.getDefaultParent());Ba()},!0,B);B=null}}this.hideDialog()}finally{t.model.endUpdate()}null!=
+Editor.darkMode&&this.fireEvent(new mxEventObject("darkModeChanged")));null!=k.border&&(this.embedExportBorder=k.border);null!=k.background&&(this.embedExportBackground=k.background);null!=k.viewport&&(this.embedViewport=k.viewport);this.embedExitPoint=null;if(null!=k.rect){var L=this.embedExportBorder;this.diagramContainer.style.border="2px solid #295fcc";this.diagramContainer.style.top=k.rect.top+"px";this.diagramContainer.style.left=k.rect.left+"px";this.diagramContainer.style.height=k.rect.height+
+"px";this.diagramContainer.style.width=k.rect.width+"px";this.diagramContainer.style.bottom="";this.diagramContainer.style.right="";l=mxUtils.bind(this,function(){var b=this.editor.graph,d=b.maxFitScale;b.maxFitScale=k.maxFitScale;b.fit(2*L);b.maxFitScale=d;b.container.scrollTop-=2*L;b.container.scrollLeft-=2*L;this.fireEvent(new mxEventObject("editInlineStart","data",[k]))})}null!=k.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=k.noExitBtn);null!=k.title&&null!=this.buttonContainer&&
+(q=document.createElement("span"),q.style.marginLeft="4px",mxUtils.write(q,k.title),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(q),this.embedFilenameSpan=q);try{k.libs&&this.sidebar.showEntries(k.libs)}catch(I){}k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):null!=k.descriptor?k.descriptor:k.xml}else{if("merge"==k.action){var K=this.getCurrentFile();null!=K&&(q=m(k.xml),null!=q&&""!=q&&K.mergeFile(new LocalFile(this,
+q),function(){n.postMessage(JSON.stringify({event:"merge",message:k}),"*")},function(b){n.postMessage(JSON.stringify({event:"merge",message:k,error:b}),"*")}))}else"remoteInvokeReady"==k.action?this.handleRemoteInvokeReady(n):"remoteInvoke"==k.action?this.handleRemoteInvoke(k,g.origin):"remoteInvokeResponse"==k.action?this.handleRemoteInvokeResponse(k):n.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(k)}),"*");return}}catch(I){this.handleError(I)}}var W=mxUtils.bind(this,function(){return"0"!=
+urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),fa=mxUtils.bind(this,function(g,k){c=!0;try{b(g,k,null,p)}catch(pa){this.handleError(pa)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");f=W();e&&null==d&&(d=mxUtils.bind(this,function(b,d){var e=W();if(e!=f&&!c){var g=this.createLoadMessage("autosave");g.xml=e;(window.opener||window.parent).postMessage(JSON.stringify(g),"*")}f=e}),this.editor.graph.model.addListener(mxEvent.CHANGE,
+d),this.editor.graph.addListener("gridSizeChanged",d),this.editor.graph.addListener("shadowVisibleChanged",d),this.addListener("pageFormatChanged",d),this.addListener("pageScaleChanged",d),this.addListener("backgroundColorChanged",d),this.addListener("backgroundImageChanged",d),this.addListener("foldingEnabledChanged",d),this.addListener("mathEnabledChanged",d),this.addListener("gridEnabledChanged",d),this.addListener("guidesEnabledChanged",d),this.addListener("pageViewChanged",d));if("1"==urlParams.returnbounds||
+"json"==urlParams.proto){var m=this.createLoadMessage("load");m.xml=g;n.postMessage(JSON.stringify(m),"*")}null!=l&&l()});null!=k&&"function"===typeof k.substring&&"data:application/vnd.visio;base64,"==k.substring(0,34)?(m="0M8R4KGxGuE"==k.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(k.substring(k.indexOf(",")+1)),function(b){fa(b,g)},mxUtils.bind(this,function(b){this.handleError(b)}),m)):null!=k&&"function"===typeof k.substring&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(k,
+"")?this.isOffline()?this.showError(mxResources.get("error"),mxResources.get("notInOffline")):this.parseFileData(k,mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&"<mxGraphModel"==b.responseText.substring(0,13)&&fa(b.responseText,g)}),""):null!=k&&"function"===typeof k.substring&&this.isLucidChartData(k)?this.convertLucidChart(k,mxUtils.bind(this,function(b){fa(b)}),mxUtils.bind(this,function(b){this.handleError(b)})):null==k||"object"!==typeof k||null==k.format||null==
+k.data&&null==k.url?(k=m(k),fa(k,g)):this.loadDescriptor(k,mxUtils.bind(this,function(b){fa(W(),g)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var n=window.opener||window.parent,l="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMessage(l,"*");if("json"==urlParams.proto){var q=this.editor.graph.openLink;this.editor.graph.openLink=function(b,d,c){q.apply(this,arguments);n.postMessage(JSON.stringify({event:"openLink",
+href:b,target:d,allowOpener:c}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar&&"1"!=urlParams.embedInline){var b=document.createElement("div");b.style.display="inline-block";b.style.position="absolute";b.style.paddingTop="atlas"==uiTheme||"1"==urlParams.atlas?"2px":"0px";b.style.paddingLeft="8px";b.style.paddingBottom="2px";var c=document.createElement("button");c.className="geBigButton";var e=c;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var f="1"==urlParams.publishClose?
+mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(c,f);c.setAttribute("title",f);mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));b.appendChild(c)}}else mxUtils.write(c,mxResources.get("save")),c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),"1"==urlParams.saveAndExit&&(c=document.createElement("a"),
+mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),b.appendChild(c),e=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),e="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,e),c.setAttribute("title",e),c.className="geBigButton geBigStandardButton",
+c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),e=c);e.style.marginRight="20px";this.toolbar.container.appendChild(b);this.toolbar.staticElements.push(b);b.style.right="atlas"==uiTheme||"1"==urlParams.atlas?"42px":"52px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,
+function(b){this.importCsv(b)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};EditorUi.prototype.executeLayoutList=function(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var k=new window[b[f].layout](d);if(null!=b[f].config)for(var l in b[f].config)k[l]=b[f].config[l];this.executeLayout(function(){k.execute(d.getDefaultParent(),
+0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],k=[],l={};if(0<d.length){for(var n={},q=this.editor.graph,y=null,G=null,H=null,D=null,F=null,O=null,A=null,C="whiteSpace=wrap;html=1;",E=null,J=null,N="",M="auto",Q="auto",V=null,X=null,ja=40,Y=40,da=100,ba=0,B=function(){null!=c?c(R):(q.setSelectionCells(R),q.scrollCellToVisible(q.getSelectionCell()))},L=q.getFreeInsertPoint(),K=L.x,W=L.y,L=W,fa=null,I="auto",J=null,la=[],oa=null,
+pa=null,ka=0;ka<d.length&&"#"==d[ka].charAt(0);){b=d[ka];for(ka++;ka<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[ka].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[ka].substring(1)),ka++;if("#"!=b.charAt(1)){var qa=b.indexOf(":");if(0<qa){var Z=mxUtils.trim(b.substring(1,qa)),P=mxUtils.trim(b.substring(qa+1));"label"==Z?fa=q.sanitizeHtml(P):"labelname"==Z&&0<P.length&&"-"!=P?F=P:"labels"==Z&&0<P.length&&"-"!=P?A=JSON.parse(P):"style"==Z?G=P:"parentstyle"==Z?C=P:"unknownStyle"==Z&&"-"!=P?O=
+P:"stylename"==Z&&0<P.length&&"-"!=P?D=P:"styles"==Z&&0<P.length&&"-"!=P?H=JSON.parse(P):"vars"==Z&&0<P.length&&"-"!=P?y=JSON.parse(P):"identity"==Z&&0<P.length&&"-"!=P?E=P:"parent"==Z&&0<P.length&&"-"!=P?J=P:"namespace"==Z&&0<P.length&&"-"!=P?N=P:"width"==Z?M=P:"height"==Z?Q=P:"left"==Z&&0<P.length?V=P:"top"==Z&&0<P.length?X=P:"ignore"==Z?pa=P.split(","):"connect"==Z?la.push(JSON.parse(P)):"link"==Z?oa=P:"padding"==Z?ba=parseFloat(P):"edgespacing"==Z?ja=parseFloat(P):"nodespacing"==Z?Y=parseFloat(P):
+"levelspacing"==Z?da=parseFloat(P):"layout"==Z&&(I=P)}}}if(null==d[ka])throw Error(mxResources.get("invalidOrMissingFile"));for(var sa=this.editor.csvToArray(d[ka]),Z=qa=null,P=[],T=0;T<sa.length;T++)E==sa[T]&&(qa=T),J==sa[T]&&(Z=T),P.push(mxUtils.trim(sa[T]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==fa&&(fa="%"+P[0]+"%");if(null!=la)for(var ha=0;ha<la.length;ha++)null==n[la[ha].to]&&(n[la[ha].to]={});E=[];for(T=ka+1;T<d.length;T++){var ma=this.editor.csvToArray(d[T]);
+if(null==ma){var ra=40<d[T].length?d[T].substring(0,40)+"...":d[T];throw Error(ra+" ("+T+"):\n"+mxResources.get("containsValidationErrors"));}0<ma.length&&E.push(ma)}q.model.beginUpdate();try{for(T=0;T<E.length;T++){var ma=E[T],S=null,na=null!=qa?N+ma[qa]:null;null!=na&&(S=q.model.getCell(na));var d=null!=S,ca=new mxCell(fa,new mxGeometry(K,L,0,0),G||"whiteSpace=wrap;html=1;");ca.vertex=!0;ca.id=na;for(var ea=0;ea<ma.length;ea++)q.setAttributeForCell(ca,P[ea],ma[ea]);if(null!=F&&null!=A){var ia=A[ca.getAttribute(F)];
+null!=ia&&q.labelChanged(ca,ia)}if(null!=D&&null!=H){var xa=H[ca.getAttribute(D)];null!=xa&&(ca.style=xa)}q.setAttributeForCell(ca,"placeholders","1");ca.style=q.replacePlaceholders(ca,ca.style,y);d?(0>mxUtils.indexOf(k,S)&&k.push(S),q.fireEvent(new mxEventObject("cellsInserted","cells",[S]))):q.fireEvent(new mxEventObject("cellsInserted","cells",[ca]));S=ca;if(!d)for(ha=0;ha<la.length;ha++)n[la[ha].to][S.getAttribute(la[ha].to)]=S;null!=oa&&"link"!=oa&&(q.setLinkForCell(S,S.getAttribute(oa)),q.setAttributeForCell(S,
+oa,null));var Aa=this.editor.graph.getPreferredSizeForCell(S),J=null!=Z?q.model.getCell(N+ma[Z]):null;if(S.vertex){ra=null!=J?0:K;ka=null!=J?0:W;null!=V&&null!=S.getAttribute(V)&&(S.geometry.x=ra+parseFloat(S.getAttribute(V)));null!=X&&null!=S.getAttribute(X)&&(S.geometry.y=ka+parseFloat(S.getAttribute(X)));var ta="@"==M.charAt(0)?S.getAttribute(M.substring(1)):null;S.geometry.width=null!=ta&&"auto"!=ta?parseFloat(S.getAttribute(M.substring(1))):"auto"==M||"auto"==ta?Aa.width+ba:parseFloat(M);var ua=
+"@"==Q.charAt(0)?S.getAttribute(Q.substring(1)):null;S.geometry.height=null!=ua&&"auto"!=ua?parseFloat(ua):"auto"==Q||"auto"==ua?Aa.height+ba:parseFloat(Q);L+=S.geometry.height+Y}d?(null==l[na]&&(l[na]=[]),l[na].push(S)):(e.push(S),null!=J?(J.style=q.replacePlaceholders(J,C,y),q.addCell(S,J),f.push(J)):k.push(q.addCell(S)))}for(T=0;T<f.length;T++)ta="@"==M.charAt(0)?f[T].getAttribute(M.substring(1)):null,ua="@"==Q.charAt(0)?f[T].getAttribute(Q.substring(1)):null,"auto"!=M&&"auto"!=ta||"auto"!=Q&&
+"auto"!=ua||q.updateGroupBounds([f[T]],ba,!0);for(var aa=k.slice(),R=k.slice(),ha=0;ha<la.length;ha++)for(var Ea=la[ha],T=0;T<e.length;T++){var S=e[T],Ia=mxUtils.bind(this,function(b,c,d){var e=c.getAttribute(d.from);if(null!=e&&""!=e)for(var e=e.split(","),g=0;g<e.length;g++){var f=n[d.to][e[g]];if(null==f&&null!=O){f=new mxCell(e[g],new mxGeometry(K,W,0,0),O);f.style=q.replacePlaceholders(c,f.style,y);var l=this.editor.graph.getPreferredSizeForCell(f);f.geometry.width=l.width+ba;f.geometry.height=
+l.height+ba;n[d.to][e[g]]=f;f.vertex=!0;f.id=e[g];k.push(q.addCell(f))}if(null!=f){l=d.label;null!=d.fromlabel&&(l=(c.getAttribute(d.fromlabel)||"")+(l||""));null!=d.sourcelabel&&(l=q.replacePlaceholders(c,d.sourcelabel,y)+(l||""));null!=d.tolabel&&(l=(l||"")+(f.getAttribute(d.tolabel)||""));null!=d.targetlabel&&(l=(l||"")+q.replacePlaceholders(f,d.targetlabel,y));var m="target"==d.placeholders==!d.invert?f:b,m=null!=d.style?q.replacePlaceholders(m,d.style,y):q.createCurrentEdgeStyle(),l=q.insertEdge(null,
+null,l||"",d.invert?f:b,d.invert?b:f,m);if(null!=d.labels)for(m=0;m<d.labels.length;m++){var p=d.labels[m],t=new mxCell(p.label||m,new mxGeometry(null!=p.x?p.x:0,null!=p.y?p.y:0,0,0),"resizable=0;html=1;");t.vertex=!0;t.connectable=!1;t.geometry.relative=!0;null!=p.placeholders&&(t.value=q.replacePlaceholders("target"==p.placeholders==!d.invert?f:b,t.value,y));if(null!=p.dx||null!=p.dy)t.geometry.offset=new mxPoint(null!=p.dx?p.dx:0,null!=p.dy?p.dy:0);l.insert(t)}R.push(l);mxUtils.remove(d.invert?
+b:f,aa)}}});Ia(S,S,Ea);if(null!=l[S.id])for(ea=0;ea<l[S.id].length;ea++)Ia(S,l[S.id][ea],Ea)}if(null!=pa)for(T=0;T<e.length;T++)for(S=e[T],ea=0;ea<pa.length;ea++)q.setAttributeForCell(S,mxUtils.trim(pa[ea]),null);if(0<k.length){var wa=new mxParallelEdgeLayout(q);wa.spacing=ja;wa.checkOverlap=!0;var Ba=function(){0<wa.spacing&&wa.execute(q.getDefaultParent());for(var b=0;b<k.length;b++){var d=q.getCellGeometry(k[b]);d.x=Math.round(q.snap(d.x));d.y=Math.round(q.snap(d.y));"auto"==M&&(d.width=Math.round(q.snap(d.width)));
+"auto"==Q&&(d.height=Math.round(q.snap(d.height)))}};if("["==I.charAt(0)){var ya=B;q.view.validate();this.executeLayoutList(JSON.parse(I),function(){Ba();ya()});B=null}else if("circle"==I){var Ca=new mxCircleLayout(q);Ca.disableEdgeStyle=!1;Ca.resetEdges=!1;var Fa=Ca.isVertexIgnored;Ca.isVertexIgnored=function(b){return Fa.apply(this,arguments)||0>mxUtils.indexOf(k,b)};this.executeLayout(function(){Ca.execute(q.getDefaultParent());Ba()},!0,B);B=null}else if("horizontaltree"==I||"verticaltree"==I||
+"auto"==I&&R.length==2*k.length-1&&1==aa.length){q.view.validate();var Da=new mxCompactTreeLayout(q,"horizontaltree"==I);Da.levelDistance=Y;Da.edgeRouting=!1;Da.resetEdges=!1;this.executeLayout(function(){Da.execute(q.getDefaultParent(),0<aa.length?aa[0]:null)},!0,B);B=null}else if("horizontalflow"==I||"verticalflow"==I||"auto"==I&&1==aa.length){q.view.validate();var za=new mxHierarchicalLayout(q,"horizontalflow"==I?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);za.intraCellSpacing=Y;za.parallelEdgeSpacing=
+ja;za.interRankCellSpacing=da;za.disableEdgeStyle=!1;this.executeLayout(function(){za.execute(q.getDefaultParent(),R);q.moveCells(R,K,W)},!0,B);B=null}else if("organic"==I||"auto"==I&&R.length>k.length){q.view.validate();var U=new mxFastOrganicLayout(q);U.forceConstant=3*Y;U.disableEdgeStyle=!1;U.resetEdges=!1;var Ga=U.isVertexIgnored;U.isVertexIgnored=function(b){return Ga.apply(this,arguments)||0>mxUtils.indexOf(k,b)};this.executeLayout(function(){U.execute(q.getDefaultParent());Ba()},!0,B);B=null}}this.hideDialog()}finally{q.model.endUpdate()}null!=
B&&B()}}catch(La){this.handleError(La)}};EditorUi.prototype.getSearch=function(b){var d="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var c="?",e;for(e in urlParams)0>mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(d+=c+e+"="+urlParams[e],c="&")}else d=window.location.search;return d};EditorUi.prototype.getUrl=function(b){b=null!=b?b:window.location.pathname;var d=0<b.indexOf("?")?1:0;if("1"==urlParams.offline)b+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),
e;for(e in urlParams)0>mxUtils.indexOf(c,e)&&(b=0==d?b+"?":b+"&",null!=urlParams[e]&&(b+=e+"="+urlParams[e],d++))}return b};EditorUi.prototype.showLinkDialog=function(b,c,e,f,l){b=new LinkDialog(this,b,c,e,!0,f,l);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=function(b){var c=1;null==this.drive&&"function"!==typeof window.DriveClient||c++;null==this.dropbox&&"function"!==typeof window.DropboxClient||c++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||
c++;null!=this.gitHub&&c++;null!=this.gitLab&&c++;b&&isLocalStorage&&"1"==urlParams.browser&&c++;return c};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var b=this.getCurrentFile(),c=null!=b||"1"==urlParams.embed&&this.editor.graph.isEnabled();this.menus.get("viewPanels").setEnabled(c);this.menus.get("viewZoom").setEnabled(c);var e=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==b||b.isRestricted());this.actions.get("makeCopy").setEnabled(!e);
@@ -3804,61 +3804,61 @@ EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateU
c=this.getCurrentFile(),e=this.getSelectionState(),f=this.isDiagramActive();this.actions.get("pageSetup").setEnabled(f);this.actions.get("autosave").setEnabled(null!=c&&c.isEditable()&&c.isAutosaveOptional());this.actions.get("guides").setEnabled(f);this.actions.get("editData").setEnabled(b.isEnabled());this.actions.get("shadowVisible").setEnabled(f);this.actions.get("connectionArrows").setEnabled(f);this.actions.get("connectionPoints").setEnabled(f);this.actions.get("copyStyle").setEnabled(f&&!b.isSelectionEmpty());
this.actions.get("pasteStyle").setEnabled(f&&0<e.cells.length);this.actions.get("editGeometry").setEnabled(0<e.vertices.length);this.actions.get("createShape").setEnabled(f);this.actions.get("createRevision").setEnabled(f);this.actions.get("moveToFolder").setEnabled(null!=c);this.actions.get("makeCopy").setEnabled(null!=c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(f&&(null==c||!c.isRestricted()));this.actions.get("publishLink").setEnabled(null!=c&&!c.isRestricted());this.actions.get("tags").setEnabled("hidden"!=
this.diagramContainer.style.visibility);this.actions.get("layers").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("outline").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("rename").setEnabled(null!=c&&c.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=c&&!c.isRestricted());c=this.actions.get("findReplace");c.setEnabled("hidden"!=this.diagramContainer.style.visibility);
-c.label=mxResources.get("find")+(b.isEnabled()?"/"+mxResources.get("replace"):"")+"...";b=b.view.getState(b.getSelectionCell());this.actions.get("editShape").setEnabled(f&&null!=b&&null!=b.shape&&null!=b.shape.stencil)};var t=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);t.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=
-!1,ExportDialog.exportFile=function(b,c,e,f,l,n,t,u){var d=b.editor.graph;if("xml"==e)b.hideDialog(),b.saveData(c,"xml",mxUtils.getXml(b.editor.getGraphXml()),"text/xml");else if("svg"==e)b.hideDialog(),b.saveData(c,"svg",mxUtils.getXml(d.getSvg(f,l,n)),"image/svg+xml");else{var g=b.getFileData(!0,null,null,null,null,!0),k=d.getGraphBounds(),m=Math.floor(k.width*l/d.view.scale),p=Math.floor(k.height*l/d.view.scale);if(g.length<=MAX_REQUEST_SIZE&&m*p<MAX_AREA)if(b.hideDialog(),"png"!=e&&"jpg"!=e&&
-"jpeg"!=e||!b.isExportToCanvas()){var q={globalVars:d.getExportVariables()};u&&(q.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});b.saveRequest(c,e,function(b,c){return new mxXmlRequest(EXPORT_URL,"format="+e+"&base64="+(c||"0")+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(q))+(0<t?"&dpi="+t:"")+"&bg="+(null!=f?f:"none")+"&w="+m+"&h="+p+"&border="+n+"&xml="+encodeURIComponent(g))})}else"png"==e?b.exportImage(l,null==f||"none"==
-f,!0,!1,!1,n,!0,!1,null,u,t):b.exportImage(l,!1,!0,!1,!1,n,!0,!1,"jpeg",u);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=this.pages)for(var e=0;e<this.pages.length;e++){var f=b;this.currentPage!=this.pages[e]&&(f=this.createTemporaryGraph(b.getStylesheet()),this.updatePageRoot(this.pages[e]),f.model.setRoot(this.pages[e].root));c+=this.pages[e].getName()+" "+f.getIndexableText()+
+c.label=mxResources.get("find")+(b.isEnabled()?"/"+mxResources.get("replace"):"")+"...";b=b.view.getState(b.getSelectionCell());this.actions.get("editShape").setEnabled(f&&null!=b&&null!=b.shape&&null!=b.shape.stencil)};var q=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);q.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=
+!1,ExportDialog.exportFile=function(b,c,e,f,l,n,q,u){var d=b.editor.graph;if("xml"==e)b.hideDialog(),b.saveData(c,"xml",mxUtils.getXml(b.editor.getGraphXml()),"text/xml");else if("svg"==e)b.hideDialog(),b.saveData(c,"svg",mxUtils.getXml(d.getSvg(f,l,n)),"image/svg+xml");else{var g=b.getFileData(!0,null,null,null,null,!0),k=d.getGraphBounds(),m=Math.floor(k.width*l/d.view.scale),p=Math.floor(k.height*l/d.view.scale);if(g.length<=MAX_REQUEST_SIZE&&m*p<MAX_AREA)if(b.hideDialog(),"png"!=e&&"jpg"!=e&&
+"jpeg"!=e||!b.isExportToCanvas()){var t={globalVars:d.getExportVariables()};u&&(t.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});b.saveRequest(c,e,function(b,c){return new mxXmlRequest(EXPORT_URL,"format="+e+"&base64="+(c||"0")+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(t))+(0<q?"&dpi="+q:"")+"&bg="+(null!=f?f:"none")+"&w="+m+"&h="+p+"&border="+n+"&xml="+encodeURIComponent(g))})}else"png"==e?b.exportImage(l,null==f||"none"==
+f,!0,!1,!1,n,!0,!1,null,u,q):b.exportImage(l,!1,!0,!1,!1,n,!0,!1,"jpeg",u);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=this.pages)for(var e=0;e<this.pages.length;e++){var f=b;this.currentPage!=this.pages[e]&&(f=this.createTemporaryGraph(b.getStylesheet()),this.updatePageRoot(this.pages[e]),f.model.setRoot(this.pages[e].root));c+=this.pages[e].getName()+" "+f.getIndexableText()+
" "}else c=b.getIndexableText();this.editor.graph.setEnabled(!0);return c};EditorUi.prototype.showRemotelyStoredLibrary=function(b){var c={},d=document.createElement("div");d.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxUtils.htmlEntities(b));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(e);var f=document.createElement("div");f.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";f.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+
-IMAGE_PATH+'/spin.gif"></div>';var l={};try{var n=mxSettings.getCustomLibraries();for(b=0;b<n.length;b++){var t=n[b];if("R"==t.substring(0,1)){var x=JSON.parse(decodeURIComponent(t.substring(1)));l[x[0]]={id:x[0],title:x[1],downloadUrl:x[2]}}}}catch(y){}this.remoteInvoke("getCustomLibraries",null,null,function(b){f.innerHTML="";if(0==b.length)f.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var d=0;d<
+IMAGE_PATH+'/spin.gif"></div>';var l={};try{var n=mxSettings.getCustomLibraries();for(b=0;b<n.length;b++){var q=n[b];if("R"==q.substring(0,1)){var x=JSON.parse(decodeURIComponent(q.substring(1)));l[x[0]]={id:x[0],title:x[1],downloadUrl:x[2]}}}}catch(y){}this.remoteInvoke("getCustomLibraries",null,null,function(b){f.innerHTML="";if(0==b.length)f.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var d=0;d<
b.length;d++){var e=b[d];l[e.id]&&(c[e.id]=e);var g=this.addCheckbox(f,e.title,l[e.id]);(function(b,d){mxEvent.addListener(d,"change",function(){this.checked?c[b.id]=b:delete c[b.id]})})(e,g)}},mxUtils.bind(this,function(b){f.innerHTML="";var c=document.createElement("div");c.style.padding="8px";c.style.textAlign="center";mxUtils.write(c,mxResources.get("error")+": ");mxUtils.write(c,null!=b&&null!=b.message?b.message:mxResources.get("unknownError"));f.appendChild(c)}));d.appendChild(f);d=new CustomDialog(this,
d,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var b=0,d;for(d in c)null==l[d]&&(b++,mxUtils.bind(this,function(c){this.remoteInvoke("getFileContent",[c.downloadUrl],null,mxUtils.bind(this,function(d){b--;0==b&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,d,c))}catch(F){this.handleError(F,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){b--;0==b&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(c[d]));
for(d in l)c[d]||this.closeLibrary(new RemoteLibrary(this,null,l[d]));0==b&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(d.container,340,390,!0,!0,null,null,null,null,!0)};EditorUi.prototype.remoteInvokableFns={getDiagramTextContent:{isAsync:!1},getLocalStorageFile:{isAsync:!1,allowedDomains:["app.diagrams.net"]},getLocalStorageFileNames:{isAsync:!1,allowedDomains:["app.diagrams.net"]},setMigratedFlag:{isAsync:!1,allowedDomains:["app.diagrams.net"]}};
EditorUi.prototype.remoteInvokeCallbacks=[];EditorUi.prototype.remoteInvokeQueue=[];EditorUi.prototype.handleRemoteInvokeReady=function(b){this.remoteWin=b;for(var c=0;c<this.remoteInvokeQueue.length;c++)b.postMessage(this.remoteInvokeQueue[c],"*");this.remoteInvokeQueue=[]};EditorUi.prototype.handleRemoteInvokeResponse=function(b){var c=b.msgMarkers,d=this.remoteInvokeCallbacks[c.callbackId];if(null==d)throw Error("No callback for "+(null!=c?c.callbackId:"null"));b.error?d.error&&d.error(b.error.errResp):
d.callback&&d.callback.apply(this,b.resp);this.remoteInvokeCallbacks[c.callbackId]=null};EditorUi.prototype.remoteInvoke=function(b,c,e,f,l){var d=!0,g=window.setTimeout(mxUtils.bind(this,function(){d=!1;l({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.timeout),k=mxUtils.bind(this,function(){window.clearTimeout(g);d&&f.apply(this,arguments)}),m=mxUtils.bind(this,function(){window.clearTimeout(g);d&&l.apply(this,arguments)});e=e||{};e.callbackId=this.remoteInvokeCallbacks.length;
this.remoteInvokeCallbacks.push({callback:k,error:m});b=JSON.stringify({event:"remoteInvoke",funtionName:b,functionArgs:c,msgMarkers:e});null!=this.remoteWin?this.remoteWin.postMessage(b,"*"):this.remoteInvokeQueue.push(b)};EditorUi.prototype.handleRemoteInvoke=function(b,c){var d=mxUtils.bind(this,function(c,d){var e={event:"remoteInvokeResponse",msgMarkers:b.msgMarkers};null!=d?e.error={errResp:d}:null!=c&&(e.resp=c);this.remoteWin.postMessage(JSON.stringify(e),"*")});try{var e=b.funtionName,f=
-this.remoteInvokableFns[e];if(null!=f&&"function"===typeof this[e]){if(f.allowedDomains){for(var k=!1,l=0;l<f.allowedDomains.length;l++)if(c=="https://"+f.allowedDomains[l]){k=!0;break}if(!k){d(null,"Invalid Call: "+e+" is not allowed.");return}}var n=b.functionArgs;Array.isArray(n)||(n=[]);if(f.isAsync)n.push(function(){d(Array.prototype.slice.apply(arguments))}),n.push(function(b){d(null,b||"Unkown Error")}),this[e].apply(this,n);else{var t=this[e].apply(this,n);d([t])}}else d(null,"Invalid Call: "+
+this.remoteInvokableFns[e];if(null!=f&&"function"===typeof this[e]){if(f.allowedDomains){for(var k=!1,l=0;l<f.allowedDomains.length;l++)if(c=="https://"+f.allowedDomains[l]){k=!0;break}if(!k){d(null,"Invalid Call: "+e+" is not allowed.");return}}var n=b.functionArgs;Array.isArray(n)||(n=[]);if(f.isAsync)n.push(function(){d(Array.prototype.slice.apply(arguments))}),n.push(function(b){d(null,b||"Unkown Error")}),this[e].apply(this,n);else{var q=this[e].apply(this,n);d([q])}}else d(null,"Invalid Call: "+
e+" is not found.")}catch(y){d(null,"Invalid Call: An error occurred, "+y.message)}};EditorUi.prototype.openDatabase=function(b,c){if(null==this.database){var d=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=d)try{var e=d.open("database",2);e.onupgradeneeded=function(b){try{var d=e.result;1>b.oldVersion&&d.createObjectStore("objects",{keyPath:"key"});2>b.oldVersion&&(d.createObjectStore("files",{keyPath:"title"}),d.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=
isLocalStorage)}catch(v){null!=c&&c(v)}};e.onsuccess=mxUtils.bind(this,function(c){var d=e.result;this.database=d;EditorUi.migrateStorageFiles&&(StorageFile.migrate(d),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(b){if(!b||"1"==urlParams.forceMigration){var c=document.createElement("iframe");c.style.display="none";c.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+
urlParams.forceMigration);document.body.appendChild(c);var d=!0,e=!1,g,f=0,k=mxUtils.bind(this,function(){e=!0;this.setDatabaseItem(".drawioMigrated3",!0);c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"setMigratedFlag"}),"*")}),l=mxUtils.bind(this,function(){f++;m()}),m=mxUtils.bind(this,function(){try{if(f>=g.length)k();else{var b=g[f];StorageFile.getFileContent(this,b,mxUtils.bind(this,function(d){null==d||".scratchpad"==b&&d==this.emptyLibraryXml?c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",
-funtionName:"getLocalStorageFile",functionArgs:[b]}),"*"):l()}),l)}}catch(E){console.log(E)}}),n=mxUtils.bind(this,function(b){try{this.setDatabaseItem(null,[{title:b.title,size:b.data.length,lastModified:Date.now(),type:b.isLib?"L":"F"},{title:b.title,data:b.data}],l,l,["filesInfo","files"])}catch(E){console.log(E)}});b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var f={};try{f=JSON.parse(b.data)}catch(L){}"init"==f.event?(c.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),
-"*"),c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=f.event||e||(d?null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?(g=f.resp[0],d=!1,m()):k():null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?n(f.resp[0]):l())}}catch(L){console.log(L)}});window.addEventListener("message",b)}})));b(d);d.onversionchange=function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(m){null!=c&&c(m)}else null!=c&&c()}else b(this.database)};
+funtionName:"getLocalStorageFile",functionArgs:[b]}),"*"):l()}),l)}}catch(E){console.log(E)}}),n=mxUtils.bind(this,function(b){try{this.setDatabaseItem(null,[{title:b.title,size:b.data.length,lastModified:Date.now(),type:b.isLib?"L":"F"},{title:b.title,data:b.data}],l,l,["filesInfo","files"])}catch(E){console.log(E)}});b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var f={};try{f=JSON.parse(b.data)}catch(J){}"init"==f.event?(c.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),
+"*"),c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=f.event||e||(d?null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?(g=f.resp[0],d=!1,m()):k():null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?n(f.resp[0]):l())}}catch(J){console.log(J)}});window.addEventListener("message",b)}})));b(d);d.onversionchange=function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(m){null!=c&&c(m)}else null!=c&&c()}else b(this.database)};
EditorUi.prototype.setDatabaseItem=function(b,c,e,f,l){this.openDatabase(mxUtils.bind(this,function(d){try{l=l||"objects";Array.isArray(l)||(l=[l],b=[b],c=[c]);var g=d.transaction(l,"readwrite");g.oncomplete=e;g.onerror=f;for(d=0;d<l.length;d++)g.objectStore(l[d]).put(null!=b&&null!=b[d]?{key:b[d],data:c[d]}:c[d])}catch(u){null!=f&&f(u)}}),f)};EditorUi.prototype.removeDatabaseItem=function(b,c,e,f){this.openDatabase(mxUtils.bind(this,function(d){f=f||"objects";Array.isArray(f)||(f=[f],b=[b]);d=d.transaction(f,
"readwrite");d.oncomplete=c;d.onerror=e;for(var g=0;g<f.length;g++)d.objectStore(f[g])["delete"](b[g])}),e)};EditorUi.prototype.getDatabaseItem=function(b,c,e,f){this.openDatabase(mxUtils.bind(this,function(d){try{f=f||"objects";var g=d.transaction([f],"readonly").objectStore(f).get(b);g.onsuccess=function(){c(g.result)};g.onerror=e}catch(v){null!=e&&e(v)}}),e)};EditorUi.prototype.getDatabaseItems=function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=e||"objects";var g=d.transaction([e],
"readonly").objectStore(e).openCursor(IDBKeyRange.lowerBound(0)),f=[];g.onsuccess=function(c){null==c.target.result?b(f):(f.push(c.target.result.value),c.target.result["continue"]())};g.onerror=c}catch(v){null!=c&&c(v)}}),c)};EditorUi.prototype.getDatabaseItemKeys=function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=e||"objects";var g=d.transaction([e],"readonly").objectStore(e).getAllKeys();g.onsuccess=function(){b(g.result)};g.onerror=c}catch(p){null!=c&&c(p)}}),c)};EditorUi.prototype.commentsSupported=
function(){var b=this.getCurrentFile();return null!=b?b.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsRefreshNeeded():!0};EditorUi.prototype.commentsSaveNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsSaveNeeded():!1};EditorUi.prototype.getComments=function(b,c){var d=this.getCurrentFile();null!=d?d.getComments(b,c):b([])};EditorUi.prototype.addComment=function(b,c,e){var d=this.getCurrentFile();
null!=d?d.addComment(b,c,e):c(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var b=this.getCurrentFile();return null!=b?b.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var b=this.getCurrentFile();return null!=b?b.canComment():!0};EditorUi.prototype.newComment=function(b,c){var d=this.getCurrentFile();return null!=d?d.newComment(b,c):new DrawioComment(this,null,b,Date.now(),Date.now(),!1,c)};EditorUi.prototype.isRevisionHistorySupported=function(){var b=this.getCurrentFile();
return null!=b&&b.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(b,c){var d=this.getCurrentFile();null!=d&&d.getRevisions?d.getRevisions(b,c):c({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var b=this.getCurrentFile();return null!=b&&(b.constructor==DriveFile&&b.isEditable()||b.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(b){b.setRequestHeader("Content-Language",
-"da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(b,c,e,f,l,n,t,u){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(b,c,e,f,l,n,t,u)};EditorUi.prototype.loadFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(b)};EditorUi.prototype.createSvgDataUri=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(b)};EditorUi.prototype.embedCssFonts=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");
-return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,e,f,l,n,t,u,x,y,G,H,D,F,O,A){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,f,l,n,t,u,x,y,G,H,D,F,O,A)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");
+"da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(b,c,e,f,l,n,q,u){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(b,c,e,f,l,n,q,u)};EditorUi.prototype.loadFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(b)};EditorUi.prototype.createSvgDataUri=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(b)};EditorUi.prototype.embedCssFonts=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");
+return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,e,f,l,n,q,u,x,y,G,H,D,F,O,A){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,f,l,n,q,u,x,y,G,H,D,F,O,A)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");
return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(b,c,e,f){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");return this.editor.convertImages(b,c,e,f)};EditorUi.prototype.convertImageToDataUri=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(b,c)};EditorUi.prototype.base64Encode=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(b)};EditorUi.prototype.updateCRC=
function(b,c,e,f){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(b,c,e,f)};EditorUi.prototype.crc32=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");return Editor.crc32(b)};EditorUi.prototype.writeGraphModelToPng=function(b,c,e,f,l){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(b,c,e,f,l)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=
urlParams.forceMigration)return null;for(var b=[],c=0;c<localStorage.length;c++){var e=localStorage.key(c),f=localStorage.getItem(e);if(0<e.length&&(".scratchpad"==e||"."!=e.charAt(0))&&0<f.length){var l="<mxfile "===f.substring(0,8)||"<?xml"===f.substring(0,5)||"\x3c!--[if IE]>"===f.substring(0,12),f="<mxlibrary>"===f.substring(0,11);(l||f)&&b.push(e)}}return b};EditorUi.prototype.getLocalStorageFile=function(b){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;
var c=localStorage.getItem(b);return{title:b,data:c,isLib:"<mxlibrary>"===c.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
-var CommentsWindow=function(b,c,e,f,n,l){function t(){for(var b=H.getElementsByTagName("div"),c=0,d=0;d<b.length;d++)"none"!=b[d].style.display&&b[d].parentNode==H&&c++;D.style.display=0==c?"block":"none"}function d(b,c,d,e){function f(){c.removeChild(l);c.removeChild(m);k.style.display="block";g.style.display="block"}x={div:c,comment:b,saveCallback:d,deleteOnCancel:e};var g=c.querySelector(".geCommentTxt"),k=c.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
-"geCommentEditTxtArea";l.style.minHeight=g.offsetHeight+"px";l.value=b.content;c.insertBefore(l,g);var m=document.createElement("div");m.className="geCommentEditBtns";var n=mxUtils.button(mxResources.get("cancel"),function(){e?(c.parentNode.removeChild(c),t()):f();x=null});n.className="geCommentEditBtn";m.appendChild(n);var p=mxUtils.button(mxResources.get("save"),function(){g.innerHTML="";b.content=l.value;mxUtils.write(g,b.content);f();d(b);x=null});mxEvent.addListener(l,"keydown",mxUtils.bind(this,
+var CommentsWindow=function(b,c,e,f,n,l){function q(){for(var b=H.getElementsByTagName("div"),c=0,d=0;d<b.length;d++)"none"!=b[d].style.display&&b[d].parentNode==H&&c++;D.style.display=0==c?"block":"none"}function d(b,c,d,e){function f(){c.removeChild(l);c.removeChild(m);k.style.display="block";g.style.display="block"}x={div:c,comment:b,saveCallback:d,deleteOnCancel:e};var g=c.querySelector(".geCommentTxt"),k=c.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
+"geCommentEditTxtArea";l.style.minHeight=g.offsetHeight+"px";l.value=b.content;c.insertBefore(l,g);var m=document.createElement("div");m.className="geCommentEditBtns";var n=mxUtils.button(mxResources.get("cancel"),function(){e?(c.parentNode.removeChild(c),q()):f();x=null});n.className="geCommentEditBtn";m.appendChild(n);var p=mxUtils.button(mxResources.get("save"),function(){g.innerHTML="";b.content=l.value;mxUtils.write(g,b.content);f();d(b);x=null});mxEvent.addListener(l,"keydown",mxUtils.bind(this,
function(b){mxEvent.isConsumed(b)||((mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b))&&13==b.keyCode?(p.click(),mxEvent.consume(b)):27==b.keyCode&&(n.click(),mxEvent.consume(b)))}));p.focus();p.className="geCommentEditBtn gePrimaryBtn";m.appendChild(p);c.insertBefore(m,g);k.style.display="none";g.style.display="none";l.focus()}function k(c,d){d.innerHTML="";var e=new Date(c.modifiedDate),f=b.timeSince(e);null==f&&(f=mxResources.get("lessThanAMinute"));mxUtils.write(d,mxResources.get("timeAgo",
-[f],"{1} ago"));d.setAttribute("title",e.toLocaleDateString()+" "+e.toLocaleTimeString())}function g(b){var c=document.createElement("img");c.className="geCommentBusyImg";c.src=IMAGE_PATH+"/spin.gif";b.appendChild(c);b.busyImg=c}function q(b){b.style.border="1px solid red";b.removeChild(b.busyImg)}function m(b){b.style.border="";b.removeChild(b.busyImg)}function p(c,e,f,l,n){function y(b,d,e){var f=document.createElement("li");f.className="geCommentAction";var g=document.createElement("a");g.className=
-"geCommentActionLnk";mxUtils.write(g,b);f.appendChild(g);mxEvent.addListener(g,"click",function(b){d(b,c);b.preventDefault();mxEvent.consume(b)});V.appendChild(f);e&&(f.style.display="none")}function M(){function b(c){d.push(e);if(null!=c.replies)for(var f=0;f<c.replies.length;f++)e=e.nextSibling,b(c.replies[f])}var d=[],e=C;b(c);return{pdiv:e,replies:d}}function Q(e,f,k,n,t){function u(){g(y);c.addReply(A,function(b){A.id=b;c.replies.push(A);m(y);k&&k()},function(c){v();q(y);b.handleError(c,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},n,t)}function v(){d(A,y,function(b){u()},!0)}var x=M().pdiv,A=b.newComment(e,b.getCurrentUser());A.pCommentId=c.id;null==c.replies&&(c.replies=[]);var y=p(A,c.replies,x,l+1);f?v():u()}if(n||!c.isResolved){D.style.display="none";var C=document.createElement("div");C.className="geCommentContainer";C.setAttribute("data-commentId",c.id);C.style.marginLeft=20*l+5+"px";c.isResolved&&!Editor.isDarkMode()&&(C.style.backgroundColor="ghostWhite");
-var B=document.createElement("div");B.className="geCommentHeader";var E=document.createElement("img");E.className="geCommentUserImg";E.src=c.user.pictureUrl||Editor.userImage;B.appendChild(E);E=document.createElement("div");E.className="geCommentHeaderTxt";B.appendChild(E);var L=document.createElement("div");L.className="geCommentUsername";mxUtils.write(L,c.user.displayName||"");E.appendChild(L);L=document.createElement("div");L.className="geCommentDate";L.setAttribute("data-commentId",c.id);k(c,
-L);E.appendChild(L);C.appendChild(B);B=document.createElement("div");B.className="geCommentTxt";mxUtils.write(B,c.content||"");C.appendChild(B);c.isLocked&&(C.style.opacity="0.5");B=document.createElement("div");B.className="geCommentActions";var V=document.createElement("ul");V.className="geCommentActionsList";B.appendChild(V);v||c.isLocked||0!=l&&!u||y(mxResources.get("reply"),function(){Q("",!0)},c.isResolved);E=b.getCurrentUser();null==E||E.id!=c.user.id||v||c.isLocked||(y(mxResources.get("edit"),
-function(){function e(){d(c,C,function(){g(C);c.editComment(c.content,function(){m(C)},function(c){q(C);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}e()},c.isResolved),y(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){g(C);c.deleteComment(function(b){if(!0===b){b=C.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var d=C.querySelectorAll(".geCommentAction");for(b=
-0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);m(C);C.style.opacity="0.5"}else{d=M(c).replies;for(b=0;b<d.length;b++)H.removeChild(d[b]);for(b=0;b<e.length;b++)if(e[b]==c){e.splice(b,1);break}D.style.display=0==H.getElementsByTagName("div").length?"block":"none"}},function(c){q(C);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));v||c.isLocked||0!=l||y(c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(b){function d(){var d=
-b.target;d.innerHTML="";c.isResolved=!c.isResolved;mxUtils.write(d,c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var e=c.isResolved?"none":"",f=M(c).replies,g=Editor.isDarkMode()?"transparent":c.isResolved?"ghostWhite":"white",k=0;k<f.length;k++){f[k].style.backgroundColor=g;for(var l=f[k].querySelectorAll(".geCommentAction"),m=0;m<l.length;m++)l[m]!=d.parentNode&&(l[m].style.display=e);A||(f[k].style.display="none")}t()}c.isResolved?Q(mxResources.get("reOpened")+": ",!0,
+[f],"{1} ago"));d.setAttribute("title",e.toLocaleDateString()+" "+e.toLocaleTimeString())}function g(b){var c=document.createElement("img");c.className="geCommentBusyImg";c.src=IMAGE_PATH+"/spin.gif";b.appendChild(c);b.busyImg=c}function t(b){b.style.border="1px solid red";b.removeChild(b.busyImg)}function m(b){b.style.border="";b.removeChild(b.busyImg)}function p(c,e,f,l,n){function y(b,d,e){var f=document.createElement("li");f.className="geCommentAction";var g=document.createElement("a");g.className=
+"geCommentActionLnk";mxUtils.write(g,b);f.appendChild(g);mxEvent.addListener(g,"click",function(b){d(b,c);b.preventDefault();mxEvent.consume(b)});V.appendChild(f);e&&(f.style.display="none")}function M(){function b(c){d.push(e);if(null!=c.replies)for(var f=0;f<c.replies.length;f++)e=e.nextSibling,b(c.replies[f])}var d=[],e=C;b(c);return{pdiv:e,replies:d}}function Q(e,f,k,n,q){function u(){g(y);c.addReply(A,function(b){A.id=b;c.replies.push(A);m(y);k&&k()},function(c){v();t(y);b.handleError(c,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},n,q)}function v(){d(A,y,function(b){u()},!0)}var x=M().pdiv,A=b.newComment(e,b.getCurrentUser());A.pCommentId=c.id;null==c.replies&&(c.replies=[]);var y=p(A,c.replies,x,l+1);f?v():u()}if(n||!c.isResolved){D.style.display="none";var C=document.createElement("div");C.className="geCommentContainer";C.setAttribute("data-commentId",c.id);C.style.marginLeft=20*l+5+"px";c.isResolved&&!Editor.isDarkMode()&&(C.style.backgroundColor="ghostWhite");
+var B=document.createElement("div");B.className="geCommentHeader";var E=document.createElement("img");E.className="geCommentUserImg";E.src=c.user.pictureUrl||Editor.userImage;B.appendChild(E);E=document.createElement("div");E.className="geCommentHeaderTxt";B.appendChild(E);var J=document.createElement("div");J.className="geCommentUsername";mxUtils.write(J,c.user.displayName||"");E.appendChild(J);J=document.createElement("div");J.className="geCommentDate";J.setAttribute("data-commentId",c.id);k(c,
+J);E.appendChild(J);C.appendChild(B);B=document.createElement("div");B.className="geCommentTxt";mxUtils.write(B,c.content||"");C.appendChild(B);c.isLocked&&(C.style.opacity="0.5");B=document.createElement("div");B.className="geCommentActions";var V=document.createElement("ul");V.className="geCommentActionsList";B.appendChild(V);v||c.isLocked||0!=l&&!u||y(mxResources.get("reply"),function(){Q("",!0)},c.isResolved);E=b.getCurrentUser();null==E||E.id!=c.user.id||v||c.isLocked||(y(mxResources.get("edit"),
+function(){function e(){d(c,C,function(){g(C);c.editComment(c.content,function(){m(C)},function(c){t(C);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}e()},c.isResolved),y(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){g(C);c.deleteComment(function(b){if(!0===b){b=C.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var d=C.querySelectorAll(".geCommentAction");for(b=
+0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);m(C);C.style.opacity="0.5"}else{d=M(c).replies;for(b=0;b<d.length;b++)H.removeChild(d[b]);for(b=0;b<e.length;b++)if(e[b]==c){e.splice(b,1);break}D.style.display=0==H.getElementsByTagName("div").length?"block":"none"}},function(c){t(C);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));v||c.isLocked||0!=l||y(c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(b){function d(){var d=
+b.target;d.innerHTML="";c.isResolved=!c.isResolved;mxUtils.write(d,c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var e=c.isResolved?"none":"",f=M(c).replies,g=Editor.isDarkMode()?"transparent":c.isResolved?"ghostWhite":"white",k=0;k<f.length;k++){f[k].style.backgroundColor=g;for(var l=f[k].querySelectorAll(".geCommentAction"),n=0;n<l.length;n++)l[n]!=d.parentNode&&(l[n].style.display=e);A||(f[k].style.display="none")}q()}c.isResolved?Q(mxResources.get("reOpened")+": ",!0,
d,!1,!0):Q(mxResources.get("markedAsResolved"),!1,d,!0)});C.appendChild(B);null!=f?H.insertBefore(C,f.nextSibling):H.appendChild(C);for(f=0;null!=c.replies&&f<c.replies.length;f++)B=c.replies[f],B.isResolved=c.isResolved,p(B,c.replies,null,l+1,n);null!=x&&(x.comment.id==c.id?(n=c.content,c.content=x.comment.content,d(c,C,x.saveCallback,x.deleteOnCancel),c.content=n):null==x.comment.id&&x.comment.pCommentId==c.id&&(H.appendChild(x.div),d(x.comment,x.div,x.saveCallback,x.deleteOnCancel)));return C}}
var v=!b.canComment(),u=b.canReplyToReplies(),x=null,y=document.createElement("div");y.className="geCommentsWin";y.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var G=EditorUi.compactUi?"26px":"30px",H=document.createElement("div");H.className="geCommentsList";H.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";H.style.bottom=parseInt(G)+7+"px";y.appendChild(H);var D=document.createElement("span");D.style.cssText="display:none;padding-top:10px;text-align:center;";
mxUtils.write(D,mxResources.get("noCommentsFound"));var F=document.createElement("div");F.className="geToolbarContainer geCommentsToolbar";F.style.height=G;F.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";F.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";G=document.createElement("a");G.className="geButton";if(!v){var O=G.cloneNode();O.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';O.setAttribute("title",mxResources.get("create")+
-"...");mxEvent.addListener(O,"click",function(c){function e(){d(f,k,function(c){g(k);b.addComment(c,function(b){c.id=b;C.push(c);m(k)},function(c){q(k);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var f=b.newComment("",b.getCurrentUser()),k=p(f,C,null,0);e();c.preventDefault();mxEvent.consume(c)});F.appendChild(O)}O=G.cloneNode();O.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';O.setAttribute("title",mxResources.get("showResolved"));
+"...");mxEvent.addListener(O,"click",function(c){function e(){d(f,k,function(c){g(k);b.addComment(c,function(b){c.id=b;C.push(c);m(k)},function(c){t(k);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var f=b.newComment("",b.getCurrentUser()),k=p(f,C,null,0);e();c.preventDefault();mxEvent.consume(c)});F.appendChild(O)}O=G.cloneNode();O.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';O.setAttribute("title",mxResources.get("showResolved"));
var A=!1;Editor.isDarkMode()&&(O.style.filter="invert(100%)");mxEvent.addListener(O,"click",function(b){this.className=(A=!A)?"geButton geCheckedBtn":"geButton";E();b.preventDefault();mxEvent.consume(b)});F.appendChild(O);b.commentsRefreshNeeded()&&(O=G.cloneNode(),O.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',O.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(O.style.filter="invert(100%)"),mxEvent.addListener(O,"click",function(b){E();
b.preventDefault();mxEvent.consume(b)}),F.appendChild(O));b.commentsSaveNeeded()&&(G=G.cloneNode(),G.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',G.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(G.style.filter="invert(100%)"),mxEvent.addListener(G,"click",function(b){l();b.preventDefault();mxEvent.consume(b)}),F.appendChild(G));y.appendChild(F);var C=[],E=mxUtils.bind(this,function(){this.hasError=!1;if(null!=x)try{x.div=x.div.cloneNode(!0);
var c=x.div.querySelector(".geCommentEditTxtArea"),e=x.div.querySelector(".geCommentEditBtns");x.comment.content=c.value;c.parentNode.removeChild(c);e.parentNode.removeChild(e)}catch(Q){b.handleError(Q)}H.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";u=b.canReplyToReplies();b.commentsSupported()?b.getComments(function(b){function c(b){if(null!=b){b.sort(function(b,c){return new Date(b.modifiedDate)-
new Date(c.modifiedDate)});for(var d=0;d<b.length;d++)c(b[d].replies)}}b.sort(function(b,c){return new Date(b.modifiedDate)-new Date(c.modifiedDate)});H.innerHTML="";H.appendChild(D);D.style.display="block";C=b;for(b=0;b<C.length;b++)c(C[b].replies),p(C[b],C,null,0,A);null!=x&&null==x.comment.id&&null==x.comment.pCommentId&&(H.appendChild(x.div),d(x.comment,x.div,x.saveCallback,x.deleteOnCancel))},mxUtils.bind(this,function(b){H.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(b&&b.message?
": "+b.message:""));this.hasError=!0})):H.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});E();this.refreshComments=E;F=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(k(c,e),e=0;null!=c.replies&&e<c.replies.length;e++)b(c.replies[e])}if(this.window.isVisible()){for(var c=H.querySelectorAll(".geCommentDate"),d={},e=0;e<c.length;e++){var f=c[e];d[f.getAttribute("data-commentId")]=f}for(e=0;e<C.length;e++)b(C[e])}});setInterval(F,6E4);this.refreshCommentsTime=F;this.window=
new mxWindow(mxResources.get("comments"),y,c,e,f,n,!0,!0);this.window.minimumSize=new mxRectangle(0,0,300,200);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.window.setLocation=function(b,c){var d=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||
-document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));c=Math.max(0,Math.min(c,d-this.table.clientHeight-48));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};var L=mxUtils.bind(this,function(){var b=this.window.getX(),c=this.window.getY();this.window.setLocation(b,c)});mxEvent.addListener(window,"resize",L);this.destroy=function(){mxEvent.removeListener(window,"resize",L);this.window.destroy()}},ConfirmDialog=function(b,c,e,
-f,n,l,t,d,k,g,q){var m=document.createElement("div");m.style.textAlign="center";q=null!=q?q:44;var p=document.createElement("div");p.style.padding="6px";p.style.overflow="auto";p.style.maxHeight=q+"px";p.style.lineHeight="1.2em";mxUtils.write(p,c);m.appendChild(p);null!=g&&(p=document.createElement("div"),p.style.padding="6px 0 6px 0",c=document.createElement("img"),c.setAttribute("src",g),p.appendChild(c),m.appendChild(p));g=document.createElement("div");g.style.textAlign="center";g.style.whiteSpace=
-"nowrap";var v=document.createElement("input");v.setAttribute("type","checkbox");l=mxUtils.button(l||mxResources.get("cancel"),function(){b.hideDialog();null!=f&&f(v.checked)});l.className="geBtn";null!=d&&(l.innerHTML=d+"<br>"+l.innerHTML,l.style.paddingBottom="8px",l.style.paddingTop="8px",l.style.height="auto",l.style.width="40%");b.editor.cancelFirst&&g.appendChild(l);var u=mxUtils.button(n||mxResources.get("ok"),function(){b.hideDialog();null!=e&&e(v.checked)});g.appendChild(u);null!=t?(u.innerHTML=
-t+"<br>"+u.innerHTML+"<br>",u.style.paddingBottom="8px",u.style.paddingTop="8px",u.style.height="auto",u.className="geBtn",u.style.width="40%"):u.className="geBtn gePrimaryBtn";b.editor.cancelFirst||g.appendChild(l);m.appendChild(g);k?(g.style.marginTop="10px",p=document.createElement("p"),p.style.marginTop="20px",p.style.marginBottom="0px",p.appendChild(v),n=document.createElement("span"),mxUtils.write(n," "+mxResources.get("rememberThisSetting")),p.appendChild(n),m.appendChild(p),mxEvent.addListener(n,
+document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));c=Math.max(0,Math.min(c,d-this.table.clientHeight-48));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};var J=mxUtils.bind(this,function(){var b=this.window.getX(),c=this.window.getY();this.window.setLocation(b,c)});mxEvent.addListener(window,"resize",J);this.destroy=function(){mxEvent.removeListener(window,"resize",J);this.window.destroy()}},ConfirmDialog=function(b,c,e,
+f,n,l,q,d,k,g,t){var m=document.createElement("div");m.style.textAlign="center";t=null!=t?t:44;var p=document.createElement("div");p.style.padding="6px";p.style.overflow="auto";p.style.maxHeight=t+"px";p.style.lineHeight="1.2em";mxUtils.write(p,c);m.appendChild(p);null!=g&&(p=document.createElement("div"),p.style.padding="6px 0 6px 0",c=document.createElement("img"),c.setAttribute("src",g),p.appendChild(c),m.appendChild(p));g=document.createElement("div");g.style.textAlign="center";g.style.whiteSpace=
+"nowrap";var v=document.createElement("input");v.setAttribute("type","checkbox");l=mxUtils.button(l||mxResources.get("cancel"),function(){b.hideDialog();null!=f&&f(v.checked)});l.className="geBtn";null!=d&&(l.innerHTML=d+"<br>"+l.innerHTML,l.style.paddingBottom="8px",l.style.paddingTop="8px",l.style.height="auto",l.style.width="40%");b.editor.cancelFirst&&g.appendChild(l);var u=mxUtils.button(n||mxResources.get("ok"),function(){b.hideDialog();null!=e&&e(v.checked)});g.appendChild(u);null!=q?(u.innerHTML=
+q+"<br>"+u.innerHTML+"<br>",u.style.paddingBottom="8px",u.style.paddingTop="8px",u.style.height="auto",u.className="geBtn",u.style.width="40%"):u.className="geBtn gePrimaryBtn";b.editor.cancelFirst||g.appendChild(l);m.appendChild(g);k?(g.style.marginTop="10px",p=document.createElement("p"),p.style.marginTop="20px",p.style.marginBottom="0px",p.appendChild(v),n=document.createElement("span"),mxUtils.write(n," "+mxResources.get("rememberThisSetting")),p.appendChild(n),m.appendChild(p),mxEvent.addListener(n,
"click",function(b){v.checked=!v.checked;mxEvent.consume(b)})):g.style.marginTop="12px";this.init=function(){u.focus()};this.container=m};function DiagramPage(b,c){this.node=b;null!=c?this.node.setAttribute("id",c):null==this.getId()&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
DiagramPage.prototype.setName=function(b){null==b?this.node.removeAttribute("name"):this.node.setAttribute("name",b)};function RenamePage(b,c,e){this.ui=b;this.page=c;this.previous=this.name=e}RenamePage.prototype.execute=function(){var b=this.page.getName();this.page.setName(this.previous);this.name=this.previous;this.previous=b;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))};
function MovePage(b,c,e){this.ui=b;this.oldIndex=c;this.newIndex=e}MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var b=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=b;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))};
@@ -3870,14 +3870,14 @@ ChangePage.prototype.execute=function(){this.ui.editor.fireEvent(new mxEventObje
EditorUi.prototype.getPageIndex=function(b){var c=null;if(null!=this.pages&&null!=b)for(var e=0;e<this.pages.length;e++)if(this.pages[e]==b){c=e;break}return c};EditorUi.prototype.getPageById=function(b,c){c=null!=c?c:this.pages;if(null!=c)for(var e=0;e<c.length;e++)if(c[e].getId()==b)return c[e];return null};
EditorUi.prototype.createImageForPageLink=function(b,c,e){var f=b.indexOf(","),n=null;0<f&&(f=this.getPageById(b.substring(f+1)),null!=f&&f!=c&&(n=this.getImageForPage(f,c,e),n.originalSrc=b));null==n&&(n={originalSrc:b});return n};
EditorUi.prototype.getImageForPage=function(b,c,e){e=null!=e?e:this.editor.graph;var f=e.getGlobalVariable,n=this.createTemporaryGraph(e.getStylesheet());n.defaultPageBackgroundColor=e.defaultPageBackgroundColor;n.shapeBackgroundColor=e.shapeBackgroundColor;n.shapeForegroundColor=e.shapeForegroundColor;var l=this.getPageIndex(null!=c?c:this.currentPage);n.getGlobalVariable=function(b){return"pagenumber"==b?l+1:"page"==b&&null!=c?c.getName():f.apply(this,arguments)};document.body.appendChild(n.container);
-this.updatePageRoot(b);n.model.setRoot(b.root);b=Graph.foreignObjectWarningText;Graph.foreignObjectWarningText="";e=n.getSvg(null,null,null,null,null,null,null,null,null,null,null,!0);var t=n.getGraphBounds();document.body.removeChild(n.container);Graph.foreignObjectWarningText=b;return new mxImage(Editor.createSvgDataUri(mxUtils.getXml(e)),t.width,t.height,t.x,t.y)};
+this.updatePageRoot(b);n.model.setRoot(b.root);b=Graph.foreignObjectWarningText;Graph.foreignObjectWarningText="";e=n.getSvg(null,null,null,null,null,null,null,null,null,null,null,!0);var q=n.getGraphBounds();document.body.removeChild(n.container);Graph.foreignObjectWarningText=b;return new mxImage(Editor.createSvgDataUri(mxUtils.getXml(e)),q.width,q.height,q.x,q.y)};
EditorUi.prototype.initPages=function(){if(!this.editor.graph.standalone){this.actions.addAction("previousPage",mxUtils.bind(this,function(){this.selectNextPage(!1)}));this.actions.addAction("nextPage",mxUtils.bind(this,function(){this.selectNextPage(!0)}));this.isPagesEnabled()&&(this.keyHandler.bindAction(33,!0,"previousPage",!0),this.keyHandler.bindAction(34,!0,"nextPage",!0));var b=this.editor.graph,c=b.view.validateBackground;b.view.validateBackground=mxUtils.bind(this,function(){if(null!=this.tabContainer){var e=
this.tabContainer.style.height;this.tabContainer.style.height=null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.pages?"0px":this.tabContainerHeight+"px";e!=this.tabContainer.style.height&&this.refresh(!1)}c.apply(b.view,arguments)});var e=null,f=mxUtils.bind(this,function(){this.updateTabContainer();var c=this.currentPage;null!=c&&c!=e&&(null==c.viewState||null==c.viewState.scrollLeft?(this.resetScrollbars(),b.isLightboxView()&&this.lightboxFit(),null!=this.chromelessResize&&
(b.container.scrollLeft=0,b.container.scrollTop=0,this.chromelessResize())):(b.container.scrollLeft=b.view.translate.x*b.view.scale+c.viewState.scrollLeft,b.container.scrollTop=b.view.translate.y*b.view.scale+c.viewState.scrollTop),e=c);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?1!=MathJax.Hub.queue.pending||null==this.editor||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){null!=
this.editor&&this.editor.graph.refresh()})):"undefined"===typeof Editor.MathJaxClear||null!=this.editor&&this.editor.graph.mathEnabled||Editor.MathJaxClear()});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(b,c){for(var e=c.getProperty("edit").changes,d=0;d<e.length;d++)if(e[d]instanceof SelectPage||e[d]instanceof RenamePage||e[d]instanceof MovePage||e[d]instanceof mxRootChange){f();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)}};
EditorUi.prototype.restoreViewState=function(b,c,e){b=null!=b?this.getPageById(b.getId()):null;var f=this.editor.graph;null!=b&&null!=this.currentPage&&null!=this.pages&&(b!=this.currentPage?this.selectPage(b,!0,c):(f.setViewState(c),this.editor.updateGraphComponents(),f.view.revalidate(),f.sizeDidChange()),f.container.scrollLeft=f.view.translate.x*f.view.scale+c.scrollLeft,f.container.scrollTop=f.view.translate.y*f.view.scale+c.scrollTop,f.restoreSelection(e))};
-Graph.prototype.createViewState=function(b){var c=b.getAttribute("page"),e=parseFloat(b.getAttribute("pageScale")),f=parseFloat(b.getAttribute("pageWidth")),n=parseFloat(b.getAttribute("pageHeight")),l=b.getAttribute("background"),t=this.parseBackgroundImage(b.getAttribute("backgroundImage")),d=b.getAttribute("extFonts");if(d)try{d=d.split("|").map(function(b){b=b.split("^");return{name:b[0],url:b[1]}})}catch(k){console.log("ExtFonts format error: "+k.message)}return{gridEnabled:"0"!=b.getAttribute("grid"),
-gridSize:parseFloat(b.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=b.getAttribute("guides"),foldingEnabled:"0"!=b.getAttribute("fold"),shadowVisible:"1"==b.getAttribute("shadow"),pageVisible:this.isLightboxView()?!1:null!=c?"0"!=c:this.defaultPageVisible,background:null!=l&&0<l.length?l:null,backgroundImage:t,pageScale:isNaN(e)?mxGraph.prototype.pageScale:e,pageFormat:isNaN(f)||isNaN(n)?"undefined"===typeof mxSettings||null!=this.defaultPageFormat?mxGraph.prototype.pageFormat:
+Graph.prototype.createViewState=function(b){var c=b.getAttribute("page"),e=parseFloat(b.getAttribute("pageScale")),f=parseFloat(b.getAttribute("pageWidth")),n=parseFloat(b.getAttribute("pageHeight")),l=b.getAttribute("background"),q=this.parseBackgroundImage(b.getAttribute("backgroundImage")),d=b.getAttribute("extFonts");if(d)try{d=d.split("|").map(function(b){b=b.split("^");return{name:b[0],url:b[1]}})}catch(k){console.log("ExtFonts format error: "+k.message)}return{gridEnabled:"0"!=b.getAttribute("grid"),
+gridSize:parseFloat(b.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=b.getAttribute("guides"),foldingEnabled:"0"!=b.getAttribute("fold"),shadowVisible:"1"==b.getAttribute("shadow"),pageVisible:this.isLightboxView()?!1:null!=c?"0"!=c:this.defaultPageVisible,background:null!=l&&0<l.length?l:null,backgroundImage:q,pageScale:isNaN(e)?mxGraph.prototype.pageScale:e,pageFormat:isNaN(f)||isNaN(n)?"undefined"===typeof mxSettings||null!=this.defaultPageFormat?mxGraph.prototype.pageFormat:
mxSettings.getPageFormat():new mxRectangle(0,0,f,n),tooltips:"0"!=b.getAttribute("tooltips"),connect:"0"!=b.getAttribute("connect"),arrows:"0"!=b.getAttribute("arrows"),mathEnabled:"1"==b.getAttribute("math"),selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1,hiddenTags:[],extFonts:d||[]}};
Graph.prototype.saveViewState=function(b,c,e,f){e||(c.setAttribute("grid",(null==b?this.defaultGridEnabled:b.gridEnabled)?"1":"0"),c.setAttribute("page",(null==b?this.defaultPageVisible:b.pageVisible)?"1":"0"),c.setAttribute("gridSize",null!=b?b.gridSize:mxGraph.prototype.gridSize),c.setAttribute("guides",null==b||b.guidesEnabled?"1":"0"),c.setAttribute("tooltips",null==b||b.tooltips?"1":"0"),c.setAttribute("connect",null==b||b.connect?"1":"0"),c.setAttribute("arrows",null==b||b.arrows?"1":"0"),c.setAttribute("fold",
null==b||b.foldingEnabled?"1":"0"));c.setAttribute("pageScale",null!=b&&null!=b.pageScale?b.pageScale:mxGraph.prototype.pageScale);e=null!=b?b.pageFormat:"undefined"===typeof mxSettings||null!=this.defaultPageFormat?mxGraph.prototype.pageFormat:mxSettings.getPageFormat();null!=e&&(c.setAttribute("pageWidth",e.width),c.setAttribute("pageHeight",e.height));null!=b&&(null!=b.background&&c.setAttribute("background",b.background),f=this.getBackgroundImageObject(b.backgroundImage,f),null!=f&&c.setAttribute("backgroundImage",
@@ -3898,7 +3898,7 @@ EditorUi.prototype.selectNextPage=function(b){var c=this.currentPage;null!=c&&nu
EditorUi.prototype.insertPage=function(b,c){if(this.editor.graph.isEnabled()){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);b=null!=b?b:this.createPage(null,this.createPageId());c=null!=c?c:this.pages.length;var e=new ChangePage(this,b,b,c);this.editor.graph.model.execute(e)}return b};EditorUi.prototype.createPageId=function(){var b;do b=Editor.guid();while(null!=this.getPageById(b));return b};
EditorUi.prototype.createPage=function(b,c){var e=new DiagramPage(this.fileNode.ownerDocument.createElement("diagram"),c);e.setName(null!=b?b:this.createPageName());this.initDiagramNode(e);return e};EditorUi.prototype.createPageName=function(){for(var b={},c=0;c<this.pages.length;c++){var e=this.pages[c].getName();null!=e&&0<e.length&&(b[e]=e)}c=this.pages.length;do e=mxResources.get("pageWithNumber",[++c]);while(null!=b[e]);return e};
EditorUi.prototype.removePage=function(b){try{var c=this.editor.graph,e=mxUtils.indexOf(this.pages,b);if(c.isEnabled()&&0<=e){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);c.model.beginUpdate();try{var f=this.currentPage;f==b&&1<this.pages.length?(e==this.pages.length-1?e--:e++,f=this.pages[e]):1>=this.pages.length&&(f=this.insertPage(),c.model.execute(new RenamePage(this,f,mxResources.get("pageWithNumber",[1]))));c.model.execute(new ChangePage(this,b,f))}finally{c.model.endUpdate()}}}catch(n){this.handleError(n)}return b};
-EditorUi.prototype.duplicatePage=function(b,c){var e=null;try{var f=this.editor.graph;if(f.isEnabled()){f.isEditing()&&f.stopEditing();var n=b.node.cloneNode(!1);n.removeAttribute("id");var l={},t=f.createCellLookup([f.model.root]),e=new DiagramPage(n);e.root=f.cloneCell(f.model.root,null,l);var d=new mxGraphModel;d.prefix=Editor.guid()+"-";d.setRoot(e.root);f.updateCustomLinks(f.createCellMapping(l,t),[e.root]);e.viewState=b==this.currentPage?f.getViewState():b.viewState;this.initDiagramNode(e);
+EditorUi.prototype.duplicatePage=function(b,c){var e=null;try{var f=this.editor.graph;if(f.isEnabled()){f.isEditing()&&f.stopEditing();var n=b.node.cloneNode(!1);n.removeAttribute("id");var l={},q=f.createCellLookup([f.model.root]),e=new DiagramPage(n);e.root=f.cloneCell(f.model.root,null,l);var d=new mxGraphModel;d.prefix=Editor.guid()+"-";d.setRoot(e.root);f.updateCustomLinks(f.createCellMapping(l,q),[e.root]);e.viewState=b==this.currentPage?f.getViewState():b.viewState;this.initDiagramNode(e);
e.viewState.scale=1;e.viewState.scrollLeft=null;e.viewState.scrollTop=null;e.viewState.currentRoot=null;e.viewState.defaultParent=null;e.setName(c);e=this.insertPage(e,mxUtils.indexOf(this.pages,b)+1)}}catch(k){this.handleError(k)}return e};EditorUi.prototype.initDiagramNode=function(b){var c=(new mxCodec(mxUtils.createXmlDocument())).encode(new mxGraphModel(b.root));this.editor.graph.saveViewState(b.viewState,c);mxUtils.setTextContent(b.node,Graph.compressNode(c))};
EditorUi.prototype.clonePages=function(b){for(var c=[],e=0;e<b.length;e++)c.push(this.clonePage(b[e]));return c};EditorUi.prototype.clonePage=function(b){this.updatePageRoot(b);var c=new DiagramPage(b.node.cloneNode(!0)),e=b==this.currentPage?this.editor.graph.getViewState():b.viewState;c.viewState=mxUtils.clone(e,EditorUi.transientViewStateProperties);c.root=this.editor.graph.model.cloneCell(b.root,null,!0);return c};
EditorUi.prototype.renamePage=function(b){if(this.editor.graph.isEnabled()){var c=new FilenameDialog(this,b.getName(),mxResources.get("rename"),mxUtils.bind(this,function(c){null!=c&&0<c.length&&this.editor.graph.model.execute(new RenamePage(this,b,c))}),mxResources.get("rename"));this.showDialog(c.container,300,80,!0,!0);c.init()}return b};EditorUi.prototype.movePage=function(b,c){this.editor.graph.model.execute(new MovePage(this,b,c))};
@@ -3906,9 +3906,9 @@ EditorUi.prototype.createTabContainer=function(){var b=document.createElement("d
EditorUi.prototype.updateTabContainer=function(){if(null!=this.tabContainer&&null!=this.pages){var b=this.editor.graph,c=document.createElement("div");c.style.position="relative";c.style.display="inline-block";c.style.verticalAlign="top";c.style.height=this.tabContainer.style.height;c.style.whiteSpace="nowrap";c.style.overflow="hidden";c.style.fontSize="13px";c.style.marginLeft="30px";for(var e=this.editor.isChromelessView()?29:59,f=Math.min(140,Math.max(20,(this.tabContainer.clientWidth-e)/this.pages.length)+
1),n=null,l=0;l<this.pages.length;l++)mxUtils.bind(this,function(d,e){this.pages[d]==this.currentPage?(e.className="geActivePage",e.style.backgroundColor=Editor.isDarkMode()?Editor.darkColor:"#fff"):e.className="geInactivePage";e.setAttribute("draggable","true");mxEvent.addListener(e,"dragstart",mxUtils.bind(this,function(c){b.isEnabled()?(mxClient.IS_FF&&c.dataTransfer.setData("Text","<diagram/>"),n=d):mxEvent.consume(c)}));mxEvent.addListener(e,"dragend",mxUtils.bind(this,function(b){n=null;b.stopPropagation();
b.preventDefault()}));mxEvent.addListener(e,"dragover",mxUtils.bind(this,function(b){null!=n&&(b.dataTransfer.dropEffect="move");b.stopPropagation();b.preventDefault()}));mxEvent.addListener(e,"drop",mxUtils.bind(this,function(b){null!=n&&d!=n&&this.movePage(n,d);b.stopPropagation();b.preventDefault()}));c.appendChild(e)})(l,this.createTabForPage(this.pages[l],f,this.pages[l]!=this.currentPage,l+1));this.tabContainer.innerHTML="";this.tabContainer.appendChild(c);f=this.createPageMenuTab();this.tabContainer.appendChild(f);
-f=null;this.isPageInsertTabVisible()&&(f=this.createPageInsertTab(),this.tabContainer.appendChild(f));if(c.clientWidth>this.tabContainer.clientWidth-e){null!=f&&(f.style.position="absolute",f.style.right="0px",c.style.marginRight="30px");var t=this.createControlTab(4,"&nbsp;&#10094;&nbsp;");t.style.position="absolute";t.style.right=this.editor.chromeless?"29px":"55px";t.style.fontSize="13pt";this.tabContainer.appendChild(t);var d=this.createControlTab(4,"&nbsp;&#10095;");d.style.position="absolute";
-d.style.right=this.editor.chromeless?"0px":"29px";d.style.fontSize="13pt";this.tabContainer.appendChild(d);var k=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));c.style.width=k+"px";mxEvent.addListener(t,"click",mxUtils.bind(this,function(b){c.scrollLeft-=Math.max(20,k-20);mxUtils.setOpacity(t,0<c.scrollLeft?100:50);mxUtils.setOpacity(d,c.scrollLeft<c.scrollWidth-c.clientWidth?100:50);mxEvent.consume(b)}));mxUtils.setOpacity(t,0<c.scrollLeft?100:50);mxUtils.setOpacity(d,
-c.scrollLeft<c.scrollWidth-c.clientWidth?100:50);mxEvent.addListener(d,"click",mxUtils.bind(this,function(b){c.scrollLeft+=Math.max(20,k-20);mxUtils.setOpacity(t,0<c.scrollLeft?100:50);mxUtils.setOpacity(d,c.scrollLeft<c.scrollWidth-c.clientWidth?100:50);mxEvent.consume(b)}))}}};EditorUi.prototype.isPageInsertTabVisible=function(){return 1==urlParams.embed||null!=this.getCurrentFile()&&this.getCurrentFile().isEditable()};
+f=null;this.isPageInsertTabVisible()&&(f=this.createPageInsertTab(),this.tabContainer.appendChild(f));if(c.clientWidth>this.tabContainer.clientWidth-e){null!=f&&(f.style.position="absolute",f.style.right="0px",c.style.marginRight="30px");var q=this.createControlTab(4,"&nbsp;&#10094;&nbsp;");q.style.position="absolute";q.style.right=this.editor.chromeless?"29px":"55px";q.style.fontSize="13pt";this.tabContainer.appendChild(q);var d=this.createControlTab(4,"&nbsp;&#10095;");d.style.position="absolute";
+d.style.right=this.editor.chromeless?"0px":"29px";d.style.fontSize="13pt";this.tabContainer.appendChild(d);var k=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));c.style.width=k+"px";mxEvent.addListener(q,"click",mxUtils.bind(this,function(b){c.scrollLeft-=Math.max(20,k-20);mxUtils.setOpacity(q,0<c.scrollLeft?100:50);mxUtils.setOpacity(d,c.scrollLeft<c.scrollWidth-c.clientWidth?100:50);mxEvent.consume(b)}));mxUtils.setOpacity(q,0<c.scrollLeft?100:50);mxUtils.setOpacity(d,
+c.scrollLeft<c.scrollWidth-c.clientWidth?100:50);mxEvent.addListener(d,"click",mxUtils.bind(this,function(b){c.scrollLeft+=Math.max(20,k-20);mxUtils.setOpacity(q,0<c.scrollLeft?100:50);mxUtils.setOpacity(d,c.scrollLeft<c.scrollWidth-c.clientWidth?100:50);mxEvent.consume(b)}))}}};EditorUi.prototype.isPageInsertTabVisible=function(){return 1==urlParams.embed||null!=this.getCurrentFile()&&this.getCurrentFile().isEditable()};
EditorUi.prototype.createTab=function(b){var c=document.createElement("div");c.style.display="inline-block";c.style.whiteSpace="nowrap";c.style.boxSizing="border-box";c.style.position="relative";c.style.overflow="hidden";c.style.textAlign="center";c.style.marginLeft="-1px";c.style.height=this.tabContainer.clientHeight+"px";c.style.padding="12px 4px 8px 4px";c.style.border=Editor.isDarkMode()?"1px solid #505759":"1px solid #e8eaed";c.style.borderTopStyle="none";c.style.borderBottomStyle="none";c.style.backgroundColor=
this.tabContainer.style.backgroundColor;c.style.cursor="move";c.style.color="gray";b&&(mxEvent.addListener(c,"mouseenter",mxUtils.bind(this,function(b){this.editor.graph.isMouseDown||(c.style.backgroundColor=Editor.isDarkMode()?"black":"#e8eaed",mxEvent.consume(b))})),mxEvent.addListener(c,"mouseleave",mxUtils.bind(this,function(b){c.style.backgroundColor=this.tabContainer.style.backgroundColor;mxEvent.consume(b)})));return c};
EditorUi.prototype.createControlTab=function(b,c,e){e=this.createTab(null!=e?e:!0);e.style.lineHeight=this.tabContainerHeight+"px";e.style.paddingTop=b+"px";e.style.cursor="pointer";e.style.width="30px";e.innerHTML=c;null!=e.firstChild&&null!=e.firstChild.style&&mxUtils.setOpacity(e.firstChild,40);return e};
@@ -3919,29 +3919,29 @@ mxResources.get("copyOf",[g.getName()]))}),d)}}c&&(b.addSeparator(d),f(),b.addSe
EditorUi.prototype.createPageInsertTab=function(){var b=this.createControlTab(4,'<div class="geSprite geSprite-plus"></div>');b.setAttribute("title",mxResources.get("insertPage"));mxEvent.addListener(b,"click",mxUtils.bind(this,function(b){this.insertPage();mxEvent.consume(b)}));var c=b.getElementsByTagName("div")[0];c.style.display="inline-block";c.style.width="21px";c.style.height="21px";return b};
EditorUi.prototype.createTabForPage=function(b,c,e,f){e=this.createTab(e);var n=b.getName()||mxResources.get("untitled"),l=b.getId();e.setAttribute("title",n+(null!=l?" ("+l+")":"")+" ["+f+"]");mxUtils.write(e,n);e.style.maxWidth=c+"px";e.style.width=c+"px";this.addTabListeners(b,e);42<c&&(e.style.textOverflow="ellipsis");return e};
EditorUi.prototype.addTabListeners=function(b,c){mxEvent.disableContextMenu(c);var e=this.editor.graph;mxEvent.addListener(c,"dblclick",mxUtils.bind(this,function(c){this.renamePage(b);mxEvent.consume(c)}));var f=!1,n=!1;mxEvent.addGestureListeners(c,mxUtils.bind(this,function(c){f=null!=this.currentMenu;n=b==this.currentPage;e.isMouseDown||n||this.selectPage(b)}),null,mxUtils.bind(this,function(l){if(e.isEnabled()&&!e.isMouseDown&&(mxEvent.isTouchEvent(l)&&n||mxEvent.isPopupTrigger(l))){e.popupMenuHandler.hideMenu();
-this.hideCurrentMenu();if(!mxEvent.isTouchEvent(l)||!f){var t=new mxPopupMenu(this.createPageMenu(b));t.div.className+=" geMenubarMenu";t.smartSeparators=!0;t.showDisabled=!0;t.autoExpand=!0;t.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(t,arguments);this.resetCurrentMenu();t.destroy()});var d=mxEvent.getClientX(l),k=mxEvent.getClientY(l);t.popup(d,k,null,l);this.setCurrentMenu(t,c)}mxEvent.consume(l)}}))};
+this.hideCurrentMenu();if(!mxEvent.isTouchEvent(l)||!f){var q=new mxPopupMenu(this.createPageMenu(b));q.div.className+=" geMenubarMenu";q.smartSeparators=!0;q.showDisabled=!0;q.autoExpand=!0;q.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(q,arguments);this.resetCurrentMenu();q.destroy()});var d=mxEvent.getClientX(l),k=mxEvent.getClientY(l);q.popup(d,k,null,l);this.setCurrentMenu(q,c)}mxEvent.consume(l)}}))};
EditorUi.prototype.getLinkForPage=function(b,c,e){if(!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp){var f=this.getCurrentFile();if(null!=f&&f.constructor!=LocalFile&&"draw.io"==this.getServiceName()){var n=this.getSearch("create title mode url drive splash state clibs ui viewbox hide-pages sketch".split(" ")),n=n+((0==n.length?"?":"&")+"page-id="+b.getId());null!=c&&(n+="&"+c.join("&"));return(e&&"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?
EditorUi.drawHost:"https://"+window.location.host)+"/"+n+"#"+f.getHash()}}return null};
EditorUi.prototype.createPageMenu=function(b,c){return mxUtils.bind(this,function(e,f){var n=this.editor.graph;e.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,b)+1)}),f);e.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(b)}),f);e.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(b,c)}),f);null!=this.getLinkForPage(b)&&(e.addSeparator(f),e.addItem(mxResources.get("link"),
-null,mxUtils.bind(this,function(){this.showPublishLinkDialog(mxResources.get("url"),!0,null,null,mxUtils.bind(this,function(c,e,d,f,g,q){c=this.createUrlParameters(c,e,d,f,g,q);d||c.push("hide-pages=1");n.isSelectionEmpty()||(d=n.getBoundingBox(n.getSelectionCells()),e=n.view.translate,g=n.view.scale,d.width/=g,d.height/=g,d.x=d.x/g-e.x,d.y=d.y/g-e.y,c.push("viewbox="+encodeURIComponent(JSON.stringify({x:Math.round(d.x),y:Math.round(d.y),width:Math.round(d.width),height:Math.round(d.height),border:100}))));
+null,mxUtils.bind(this,function(){this.showPublishLinkDialog(mxResources.get("url"),!0,null,null,mxUtils.bind(this,function(c,e,d,f,g,t){c=this.createUrlParameters(c,e,d,f,g,t);d||c.push("hide-pages=1");n.isSelectionEmpty()||(d=n.getBoundingBox(n.getSelectionCells()),e=n.view.translate,g=n.view.scale,d.width/=g,d.height/=g,d.x=d.x/g-e.x,d.y=d.y/g-e.y,c.push("viewbox="+encodeURIComponent(JSON.stringify({x:Math.round(d.x),y:Math.round(d.y),width:Math.round(d.width),height:Math.round(d.height),border:100}))));
f=new EmbedDialog(this,this.getLinkForPage(b,c,f));this.showDialog(f.container,450,240,!0,!0);f.init()}))})));e.addSeparator(f);e.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(b,mxResources.get("copyOf",[b.getName()]))}),f);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||"draw.io"!=this.getServiceName()||(e.addSeparator(f),e.addItem(mxResources.get("openInNewWindow"),null,mxUtils.bind(this,function(){this.editor.editAsNew(this.getFileData(!0,null,null,null,
!0,!0))}),f))})};(function(){var b=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(c){b.apply(this,arguments);this.updateTabContainer()}})();(function(){mxCodecRegistry.getCodec(ChangePageSetup).exclude.push("page")})();(function(){var b=new mxObjectCodec(new MovePage,["ui"]);b.beforeDecode=function(b,e,f){f.ui=b.ui;return e};b.afterDecode=function(b,e,f){b=f.oldIndex;f.oldIndex=f.newIndex;f.newIndex=b;return f};mxCodecRegistry.register(b)})();
(function(){var b=new mxObjectCodec(new RenamePage,["ui","page"]);b.beforeDecode=function(b,e,f){f.ui=b.ui;return e};b.afterDecode=function(b,e,f){b=f.previous;f.previous=f.name;f.name=b;return f};mxCodecRegistry.register(b)})();
(function(){var b=new mxObjectCodec(new ChangePage,"ui relatedPage index neverShown page previousPage".split(" "));b.afterEncode=function(b,e,f){f.setAttribute("relatedPage",e.relatedPage.getId());null==e.index&&(f.setAttribute("name",e.relatedPage.getName()),null!=e.relatedPage.viewState&&f.setAttribute("viewState",JSON.stringify(e.relatedPage.viewState,function(b,c){return 0>mxUtils.indexOf(EditorUi.transientViewStateProperties,b)?c:void 0})),null!=e.relatedPage.root&&b.encodeCell(e.relatedPage.root,
f));return f};b.beforeDecode=function(b,e,f){f.ui=b.ui;f.relatedPage=f.ui.getPageById(e.getAttribute("relatedPage"));if(null==f.relatedPage){var c=e.ownerDocument.createElement("diagram");c.setAttribute("id",e.getAttribute("relatedPage"));c.setAttribute("name",e.getAttribute("name"));f.relatedPage=new DiagramPage(c);c=e.getAttribute("viewState");null!=c&&(f.relatedPage.viewState=JSON.parse(c),e.removeAttribute("viewState"));e=e.cloneNode(!0);c=e.firstChild;if(null!=c)for(f.relatedPage.root=b.decodeCell(c,
-!1),f=c.nextSibling,c.parentNode.removeChild(c),c=f;null!=c;){f=c.nextSibling;if(c.nodeType==mxConstants.NODETYPE_ELEMENT){var l=c.getAttribute("id");null==b.lookup(l)&&b.decodeCell(c)}c.parentNode.removeChild(c);c=f}}return e};b.afterDecode=function(b,e,f){f.index=f.previousIndex;return f};mxCodecRegistry.register(b)})();(function(){EditorUi.prototype.altShiftActions[68]="selectDescendants";var b=Graph.prototype.foldCells;Graph.prototype.foldCells=function(c,e,l,t,d){e=null!=e?e:!1;null==l&&(l=this.getFoldableCells(this.getSelectionCells(),c));this.stopEditing();this.model.beginUpdate();try{for(var f=l.slice(),g=0;g<l.length;g++)"1"==mxUtils.getValue(this.getCurrentCellStyle(l[g]),"treeFolding","0")&&this.foldTreeCell(c,l[g]);l=f;l=b.apply(this,arguments)}finally{this.model.endUpdate()}return l};Graph.prototype.foldTreeCell=
-function(b,c){this.model.beginUpdate();try{var e=[];this.traverse(c,!0,mxUtils.bind(this,function(b,f){var d=null!=f&&this.isTreeEdge(f);d&&e.push(f);b==c||null!=f&&!d||e.push(b);return(null==f||d)&&(b==c||!this.model.isCollapsed(b))}));this.model.setCollapsed(c,b);for(var f=0;f<e.length;f++)this.model.setVisible(e[f],!b)}finally{this.model.endUpdate()}};Graph.prototype.isTreeEdge=function(b){return!this.isEdgeIgnored(b)};Graph.prototype.getTreeEdges=function(b,c,e,t,d,k){return this.model.filterCells(this.getEdges(b,
-c,e,t,d,k),mxUtils.bind(this,function(b){return this.isTreeEdge(b)}))};Graph.prototype.getIncomingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!0,!1,!1)};Graph.prototype.getOutgoingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!1,!0,!1)};var c=EditorUi.prototype.init;EditorUi.prototype.init=function(){c.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(b){return x.isVertex(b)&&e(b)}function c(b){var c=
-!1;null!=b&&(c="1"==u.getCurrentCellStyle(b).treeMoving);return c}function e(b){var c=!1;null!=b&&(b=x.getParent(b),c=u.view.getState(b),c="tree"==(null!=c?c.style:u.getCellStyle(b)).containerType);return c}function t(b){var c=!1;null!=b&&(b=x.getParent(b),c=u.view.getState(b),u.view.getState(b),c=null!=(null!=c?c.style:u.getCellStyle(b)).childLayout);return c}function d(b){b=u.view.getState(b);if(null!=b){var c=u.getIncomingTreeEdges(b.cell);if(0<c.length&&(c=u.view.getState(c[0]),null!=c&&(c=c.absolutePoints,
+!1),f=c.nextSibling,c.parentNode.removeChild(c),c=f;null!=c;){f=c.nextSibling;if(c.nodeType==mxConstants.NODETYPE_ELEMENT){var l=c.getAttribute("id");null==b.lookup(l)&&b.decodeCell(c)}c.parentNode.removeChild(c);c=f}}return e};b.afterDecode=function(b,e,f){f.index=f.previousIndex;return f};mxCodecRegistry.register(b)})();(function(){EditorUi.prototype.altShiftActions[68]="selectDescendants";var b=Graph.prototype.foldCells;Graph.prototype.foldCells=function(c,e,l,q,d){e=null!=e?e:!1;null==l&&(l=this.getFoldableCells(this.getSelectionCells(),c));this.stopEditing();this.model.beginUpdate();try{for(var f=l.slice(),g=0;g<l.length;g++)"1"==mxUtils.getValue(this.getCurrentCellStyle(l[g]),"treeFolding","0")&&this.foldTreeCell(c,l[g]);l=f;l=b.apply(this,arguments)}finally{this.model.endUpdate()}return l};Graph.prototype.foldTreeCell=
+function(b,c){this.model.beginUpdate();try{var e=[];this.traverse(c,!0,mxUtils.bind(this,function(b,f){var d=null!=f&&this.isTreeEdge(f);d&&e.push(f);b==c||null!=f&&!d||e.push(b);return(null==f||d)&&(b==c||!this.model.isCollapsed(b))}));this.model.setCollapsed(c,b);for(var f=0;f<e.length;f++)this.model.setVisible(e[f],!b)}finally{this.model.endUpdate()}};Graph.prototype.isTreeEdge=function(b){return!this.isEdgeIgnored(b)};Graph.prototype.getTreeEdges=function(b,c,e,q,d,k){return this.model.filterCells(this.getEdges(b,
+c,e,q,d,k),mxUtils.bind(this,function(b){return this.isTreeEdge(b)}))};Graph.prototype.getIncomingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!0,!1,!1)};Graph.prototype.getOutgoingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!1,!0,!1)};var c=EditorUi.prototype.init;EditorUi.prototype.init=function(){c.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(b){return x.isVertex(b)&&e(b)}function c(b){var c=
+!1;null!=b&&(c="1"==u.getCurrentCellStyle(b).treeMoving);return c}function e(b){var c=!1;null!=b&&(b=x.getParent(b),c=u.view.getState(b),c="tree"==(null!=c?c.style:u.getCellStyle(b)).containerType);return c}function q(b){var c=!1;null!=b&&(b=x.getParent(b),c=u.view.getState(b),u.view.getState(b),c=null!=(null!=c?c.style:u.getCellStyle(b)).childLayout);return c}function d(b){b=u.view.getState(b);if(null!=b){var c=u.getIncomingTreeEdges(b.cell);if(0<c.length&&(c=u.view.getState(c[0]),null!=c&&(c=c.absolutePoints,
null!=c&&0<c.length&&(c=c[c.length-1],null!=c)))){if(c.y==b.y&&Math.abs(c.x-b.getCenterX())<b.width/2)return mxConstants.DIRECTION_SOUTH;if(c.y==b.y+b.height&&Math.abs(c.x-b.getCenterX())<b.width/2)return mxConstants.DIRECTION_NORTH;if(c.x>b.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function k(b,c){c=null!=c?c:!0;u.model.beginUpdate();try{var e=u.model.getParent(b),f=u.getIncomingTreeEdges(b),g=u.cloneCells([f[0],b]);u.model.setTerminal(g[0],u.model.getTerminal(f[0],
!0),!0);var k=d(b),l=e.geometry;k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH?g[1].geometry.x+=c?b.geometry.width+10:-g[1].geometry.width-10:g[1].geometry.y+=c?b.geometry.height+10:-g[1].geometry.height-10;u.view.currentRoot!=e&&(g[1].geometry.x-=l.x,g[1].geometry.y-=l.y);var m=u.view.getState(b),n=u.view.scale;if(null!=m){var p=mxRectangle.fromRectangle(m);k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH?p.x+=(c?b.geometry.width+10:-g[1].geometry.width-10)*n:p.y+=(c?
-b.geometry.height+10:-g[1].geometry.height-10)*n;var t=u.getOutgoingTreeEdges(u.model.getTerminal(f[0],!0));if(null!=t){for(var q=k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH,v=l=f=0;v<t.length;v++){var x=u.model.getTerminal(t[v],!1);if(k==d(x)){var A=u.view.getState(x);x!=b&&null!=A&&(q&&c!=A.getCenterX()<m.getCenterX()||!q&&c!=A.getCenterY()<m.getCenterY())&&mxUtils.intersects(p,A)&&(f=10+Math.max(f,(Math.min(p.x+p.width,A.x+A.width)-Math.max(p.x,A.x))/n),l=10+Math.max(l,(Math.min(p.y+
-p.height,A.y+A.height)-Math.max(p.y,A.y))/n))}}q?l=0:f=0;for(v=0;v<t.length;v++)if(x=u.model.getTerminal(t[v],!1),k==d(x)&&(A=u.view.getState(x),x!=b&&null!=A&&(q&&c!=A.getCenterX()<m.getCenterX()||!q&&c!=A.getCenterY()<m.getCenterY()))){var y=[];u.traverse(A.cell,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&y.push(c);(null==c||d)&&y.push(b);return null==c||d});u.moveCells(y,(c?1:-1)*f,(c?1:-1)*l)}}}return u.addCells(g,e)}finally{u.model.endUpdate()}}function g(b){u.model.beginUpdate();try{var c=
+b.geometry.height+10:-g[1].geometry.height-10)*n;var q=u.getOutgoingTreeEdges(u.model.getTerminal(f[0],!0));if(null!=q){for(var t=k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH,v=l=f=0;v<q.length;v++){var x=u.model.getTerminal(q[v],!1);if(k==d(x)){var A=u.view.getState(x);x!=b&&null!=A&&(t&&c!=A.getCenterX()<m.getCenterX()||!t&&c!=A.getCenterY()<m.getCenterY())&&mxUtils.intersects(p,A)&&(f=10+Math.max(f,(Math.min(p.x+p.width,A.x+A.width)-Math.max(p.x,A.x))/n),l=10+Math.max(l,(Math.min(p.y+
+p.height,A.y+A.height)-Math.max(p.y,A.y))/n))}}t?l=0:f=0;for(v=0;v<q.length;v++)if(x=u.model.getTerminal(q[v],!1),k==d(x)&&(A=u.view.getState(x),x!=b&&null!=A&&(t&&c!=A.getCenterX()<m.getCenterX()||!t&&c!=A.getCenterY()<m.getCenterY()))){var y=[];u.traverse(A.cell,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&y.push(c);(null==c||d)&&y.push(b);return null==c||d});u.moveCells(y,(c?1:-1)*f,(c?1:-1)*l)}}}return u.addCells(g,e)}finally{u.model.endUpdate()}}function g(b){u.model.beginUpdate();try{var c=
d(b),e=u.getIncomingTreeEdges(b),f=u.cloneCells([e[0],b]);u.model.setTerminal(e[0],f[1],!1);u.model.setTerminal(f[0],f[1],!0);u.model.setTerminal(f[0],b,!1);var g=u.model.getParent(b),k=g.geometry,l=[];u.view.currentRoot!=g&&(f[1].geometry.x-=k.x,f[1].geometry.y-=k.y);u.traverse(b,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});var m=b.geometry.width+40,n=b.geometry.height+40;c==mxConstants.DIRECTION_SOUTH?m=0:c==mxConstants.DIRECTION_NORTH?
-(m=0,n=-n):c==mxConstants.DIRECTION_WEST?(m=-m,n=0):c==mxConstants.DIRECTION_EAST&&(n=0);u.moveCells(l,m,n);return u.addCells(f,g)}finally{u.model.endUpdate()}}function q(b,c){u.model.beginUpdate();try{var e=u.model.getParent(b),f=u.getIncomingTreeEdges(b),g=d(b);0==f.length&&(f=[u.createEdge(e,null,"",null,null,u.createCurrentEdgeStyle())],g=c);var k=u.cloneCells([f[0],b]);u.model.setTerminal(k[0],b,!0);if(null==u.model.getTerminal(k[0],!1)){u.model.setTerminal(k[0],k[1],!1);var l=u.getCellStyle(k[1]).newEdgeStyle;
-if(null!=l)try{var m=JSON.parse(l),n;for(n in m)u.setCellStyles(n,m[n],[k[0]]),"edgeStyle"==n&&"elbowEdgeStyle"==m[n]&&u.setCellStyles("elbow",g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[k[0]])}catch(oa){}}var f=u.getOutgoingTreeEdges(b),p=e.geometry,l=[];u.view.currentRoot==e&&(p=new mxRectangle);for(m=0;m<f.length;m++){var t=u.model.getTerminal(f[m],!1);null!=t&&l.push(t)}var q=u.view.getBounds(l),v=u.view.translate,A=u.view.scale;g==mxConstants.DIRECTION_SOUTH?
-(k[1].geometry.x=null==q?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(q.x+q.width)/A-v.x-p.x+10,k[1].geometry.y+=k[1].geometry.height-p.y+40):g==mxConstants.DIRECTION_NORTH?(k[1].geometry.x=null==q?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(q.x+q.width)/A-v.x+-p.x+10,k[1].geometry.y-=k[1].geometry.height+p.y+40):(k[1].geometry.x=g==mxConstants.DIRECTION_WEST?k[1].geometry.x-(k[1].geometry.width+p.x+40):k[1].geometry.x+(k[1].geometry.width-p.x+40),k[1].geometry.y=null==q?b.geometry.y+
-(b.geometry.height-k[1].geometry.height)/2:(q.y+q.height)/A-v.y+-p.y+10);return u.addCells(k,e)}finally{u.model.endUpdate()}}function m(b,c,d){b=u.getOutgoingTreeEdges(b);d=u.view.getState(d);var e=[];if(null!=d&&null!=b){for(var f=0;f<b.length;f++){var g=u.view.getState(u.model.getTerminal(b[f],!1));null!=g&&(!c&&Math.min(g.x+g.width,d.x+d.width)>=Math.max(g.x,d.x)||c&&Math.min(g.y+g.height,d.y+d.height)>=Math.max(g.y,d.y))&&e.push(g)}e.sort(function(b,d){return c?b.x+b.width-d.x-d.width:b.y+b.height-
+(m=0,n=-n):c==mxConstants.DIRECTION_WEST?(m=-m,n=0):c==mxConstants.DIRECTION_EAST&&(n=0);u.moveCells(l,m,n);return u.addCells(f,g)}finally{u.model.endUpdate()}}function t(b,c){u.model.beginUpdate();try{var e=u.model.getParent(b),f=u.getIncomingTreeEdges(b),g=d(b);0==f.length&&(f=[u.createEdge(e,null,"",null,null,u.createCurrentEdgeStyle())],g=c);var k=u.cloneCells([f[0],b]);u.model.setTerminal(k[0],b,!0);if(null==u.model.getTerminal(k[0],!1)){u.model.setTerminal(k[0],k[1],!1);var l=u.getCellStyle(k[1]).newEdgeStyle;
+if(null!=l)try{var m=JSON.parse(l),n;for(n in m)u.setCellStyles(n,m[n],[k[0]]),"edgeStyle"==n&&"elbowEdgeStyle"==m[n]&&u.setCellStyles("elbow",g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[k[0]])}catch(oa){}}var f=u.getOutgoingTreeEdges(b),p=e.geometry,l=[];u.view.currentRoot==e&&(p=new mxRectangle);for(m=0;m<f.length;m++){var q=u.model.getTerminal(f[m],!1);null!=q&&l.push(q)}var t=u.view.getBounds(l),v=u.view.translate,A=u.view.scale;g==mxConstants.DIRECTION_SOUTH?
+(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/A-v.x-p.x+10,k[1].geometry.y+=k[1].geometry.height-p.y+40):g==mxConstants.DIRECTION_NORTH?(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/A-v.x+-p.x+10,k[1].geometry.y-=k[1].geometry.height+p.y+40):(k[1].geometry.x=g==mxConstants.DIRECTION_WEST?k[1].geometry.x-(k[1].geometry.width+p.x+40):k[1].geometry.x+(k[1].geometry.width-p.x+40),k[1].geometry.y=null==t?b.geometry.y+
+(b.geometry.height-k[1].geometry.height)/2:(t.y+t.height)/A-v.y+-p.y+10);return u.addCells(k,e)}finally{u.model.endUpdate()}}function m(b,c,d){b=u.getOutgoingTreeEdges(b);d=u.view.getState(d);var e=[];if(null!=d&&null!=b){for(var f=0;f<b.length;f++){var g=u.view.getState(u.model.getTerminal(b[f],!1));null!=g&&(!c&&Math.min(g.x+g.width,d.x+d.width)>=Math.max(g.x,d.x)||c&&Math.min(g.y+g.height,d.y+d.height)>=Math.max(g.y,d.y))&&e.push(g)}e.sort(function(b,d){return c?b.x+b.width-d.x-d.width:b.y+b.height-
d.y-d.height})}return e}function p(b,c){var e=d(b),f=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST;(e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST)==f&&e!=c?v.actions.get("selectParent").funct():e==c?(f=u.getOutgoingTreeEdges(b),null!=f&&0<f.length&&u.setSelectionCell(u.model.getTerminal(f[0],!1))):(e=u.getIncomingTreeEdges(b),null!=e&&0<e.length&&(f=m(u.model.getTerminal(e[0],!0),f,b),e=u.view.getState(b),null!=e&&(e=mxUtils.indexOf(f,e),0<=e&&(e+=c==mxConstants.DIRECTION_NORTH||
c==mxConstants.DIRECTION_WEST?-1:1,0<=e&&e<=f.length-1&&u.setSelectionCell(f[e].cell)))))}var v=this,u=v.editor.graph,x=u.getModel(),y=v.menus.createPopupMenu;v.menus.createPopupMenu=function(c,d,e){y.apply(this,arguments);if(1==u.getSelectionCount()){d=u.getSelectionCell();var f=u.getOutgoingTreeEdges(d);c.addSeparator();0<f.length&&(b(u.getSelectionCell())&&this.addMenuItems(c,["selectChildren"],null,e),this.addMenuItems(c,["selectDescendants"],null,e));b(u.getSelectionCell())?(c.addSeparator(),
0<u.getIncomingTreeEdges(d).length&&this.addMenuItems(c,["selectSiblings","selectParent"],null,e)):0<u.model.getEdgeCount(d)&&this.addMenuItems(c,["selectConnections"],null,e)}};v.actions.addAction("selectChildren",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var b=u.getSelectionCell(),b=u.getOutgoingTreeEdges(b);if(null!=b){for(var c=[],d=0;d<b.length;d++)c.push(u.model.getTerminal(b[d],!1));u.setSelectionCells(c)}}},null,null,"Alt+Shift+X");v.actions.addAction("selectSiblings",function(){if(u.isEnabled()&&
@@ -3949,16 +3949,16 @@ c==mxConstants.DIRECTION_WEST?-1:1,0<=e&&e<=f.length-1&&u.setSelectionCell(f[e].
!0))}},null,null,"Alt+Shift+P");v.actions.addAction("selectDescendants",function(b,c){var d=u.getSelectionCell();if(u.isEnabled()&&u.model.isVertex(d)){if(null!=c&&mxEvent.isAltDown(c))u.setSelectionCells(u.model.getTreeEdges(d,null==c||!mxEvent.isShiftDown(c),null==c||!mxEvent.isControlDown(c)));else{var e=[];u.traverse(d,!0,function(b,d){var f=null!=d&&u.isTreeEdge(d);f&&e.push(d);null!=d&&!f||null!=c&&mxEvent.isShiftDown(c)||e.push(b);return null==d||f})}u.setSelectionCells(e)}},null,null,"Alt+Shift+D");
var G=u.removeCells;u.removeCells=function(c,d){d=null!=d?d:!0;null==c&&(c=this.getDeletableCells(this.getSelectionCells()));d&&(c=this.getDeletableCells(this.addAllEdges(c)));for(var f=[],g=0;g<c.length;g++){var k=c[g];x.isEdge(k)&&e(k)&&(f.push(k),k=x.getTerminal(k,!1));if(b(k)){var l=[];u.traverse(k,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});0<l.length&&(f=f.concat(l),k=u.getIncomingTreeEdges(c[g]),c=c.concat(k))}else null!=k&&f.push(c[g])}c=
f;return G.apply(this,arguments)};v.hoverIcons.getStateAt=function(c,d,e){return b(c.cell)?null:this.graph.view.getState(this.graph.getCellAt(d,e))};var H=u.duplicateCells;u.duplicateCells=function(c,d){c=null!=c?c:this.getSelectionCells();for(var e=c.slice(0),f=0;f<e.length;f++){var g=u.view.getState(e[f]);if(null!=g&&b(g.cell))for(var k=u.getIncomingTreeEdges(g.cell),g=0;g<k.length;g++)mxUtils.remove(k[g],c)}this.model.beginUpdate();try{var l=H.call(this,c,d);if(l.length==c.length)for(f=0;f<c.length;f++)if(b(c[f])){var m=
-u.getIncomingTreeEdges(l[f]),k=u.getIncomingTreeEdges(c[f]);if(0==m.length&&0<k.length){var n=this.cloneCell(k[0]);this.addEdge(n,u.getDefaultParent(),this.model.getTerminal(k[0],!0),l[f])}}}finally{this.model.endUpdate()}return l};var D=u.moveCells;u.moveCells=function(c,d,e,f,g,k,l){var m=null;this.model.beginUpdate();try{var n=g,p=this.getCurrentCellStyle(g);if(null!=c&&b(g)&&"1"==mxUtils.getValue(p,"treeFolding","0")){for(var t=0;t<c.length;t++)if(b(c[t])||u.model.isEdge(c[t])&&null==u.model.getTerminal(c[t],
-!0)){g=u.model.getParent(c[t]);break}if(null!=n&&g!=n&&null!=this.view.getState(c[0])){var q=u.getIncomingTreeEdges(c[0]);if(0<q.length){var v=u.view.getState(u.model.getTerminal(q[0],!0));if(null!=v){var A=u.view.getState(n);null!=A&&(d=(A.getCenterX()-v.getCenterX())/u.view.scale,e=(A.getCenterY()-v.getCenterY())/u.view.scale)}}}}m=D.apply(this,arguments);if(null!=m&&null!=c&&m.length==c.length)for(t=0;t<m.length;t++)if(this.model.isEdge(m[t]))b(n)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[t],
-!0))&&this.model.setTerminal(m[t],n,!0);else if(b(c[t])&&(q=u.getIncomingTreeEdges(c[t]),0<q.length))if(!f)b(n)&&0>mxUtils.indexOf(c,this.model.getTerminal(q[0],!0))&&this.model.setTerminal(q[0],n,!0);else if(0==u.getIncomingTreeEdges(m[t]).length){p=n;if(null==p||p==u.model.getParent(c[t]))p=u.model.getTerminal(q[0],!0);f=this.cloneCell(q[0]);this.addEdge(f,u.getDefaultParent(),p,m[t])}}finally{this.model.endUpdate()}return m};if(null!=v.sidebar){var F=v.sidebar.dropAndConnect;v.sidebar.dropAndConnect=
+u.getIncomingTreeEdges(l[f]),k=u.getIncomingTreeEdges(c[f]);if(0==m.length&&0<k.length){var n=this.cloneCell(k[0]);this.addEdge(n,u.getDefaultParent(),this.model.getTerminal(k[0],!0),l[f])}}}finally{this.model.endUpdate()}return l};var D=u.moveCells;u.moveCells=function(c,d,e,f,g,k,l){var m=null;this.model.beginUpdate();try{var n=g,p=this.getCurrentCellStyle(g);if(null!=c&&b(g)&&"1"==mxUtils.getValue(p,"treeFolding","0")){for(var q=0;q<c.length;q++)if(b(c[q])||u.model.isEdge(c[q])&&null==u.model.getTerminal(c[q],
+!0)){g=u.model.getParent(c[q]);break}if(null!=n&&g!=n&&null!=this.view.getState(c[0])){var t=u.getIncomingTreeEdges(c[0]);if(0<t.length){var v=u.view.getState(u.model.getTerminal(t[0],!0));if(null!=v){var A=u.view.getState(n);null!=A&&(d=(A.getCenterX()-v.getCenterX())/u.view.scale,e=(A.getCenterY()-v.getCenterY())/u.view.scale)}}}}m=D.apply(this,arguments);if(null!=m&&null!=c&&m.length==c.length)for(q=0;q<m.length;q++)if(this.model.isEdge(m[q]))b(n)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[q],
+!0))&&this.model.setTerminal(m[q],n,!0);else if(b(c[q])&&(t=u.getIncomingTreeEdges(c[q]),0<t.length))if(!f)b(n)&&0>mxUtils.indexOf(c,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],n,!0);else if(0==u.getIncomingTreeEdges(m[q]).length){p=n;if(null==p||p==u.model.getParent(c[q]))p=u.model.getTerminal(t[0],!0);f=this.cloneCell(t[0]);this.addEdge(f,u.getDefaultParent(),p,m[q])}}finally{this.model.endUpdate()}return m};if(null!=v.sidebar){var F=v.sidebar.dropAndConnect;v.sidebar.dropAndConnect=
function(c,d,e,f){var g=u.model,k=null;g.beginUpdate();try{if(k=F.apply(this,arguments),b(c))for(var l=0;l<k.length;l++)if(g.isEdge(k[l])&&null==g.getTerminal(k[l],!0)){g.setTerminal(k[l],c,!0);var m=u.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var O={88:v.actions.get("selectChildren"),84:v.actions.get("selectSubtree"),80:v.actions.get("selectParent"),83:v.actions.get("selectSiblings")},A=v.onKeyDown;v.onKeyDown=function(c){try{if(u.isEnabled()&&
-!u.isEditing()&&b(u.getSelectionCell())&&1==u.getSelectionCount()){var d=null;0<u.getIncomingTreeEdges(u.getSelectionCell()).length&&(9==c.which?d=mxEvent.isShiftDown(c)?g(u.getSelectionCell()):q(u.getSelectionCell()):13==c.which&&(d=k(u.getSelectionCell(),!mxEvent.isShiftDown(c))));if(null!=d&&0<d.length)1==d.length&&u.model.isEdge(d[0])?u.setSelectionCell(u.model.getTerminal(d[0],!1)):u.setSelectionCell(d[d.length-1]),null!=v.hoverIcons&&v.hoverIcons.update(u.view.getState(u.getSelectionCell())),
+!u.isEditing()&&b(u.getSelectionCell())&&1==u.getSelectionCount()){var d=null;0<u.getIncomingTreeEdges(u.getSelectionCell()).length&&(9==c.which?d=mxEvent.isShiftDown(c)?g(u.getSelectionCell()):t(u.getSelectionCell()):13==c.which&&(d=k(u.getSelectionCell(),!mxEvent.isShiftDown(c))));if(null!=d&&0<d.length)1==d.length&&u.model.isEdge(d[0])?u.setSelectionCell(u.model.getTerminal(d[0],!1)):u.setSelectionCell(d[d.length-1]),null!=v.hoverIcons&&v.hoverIcons.update(u.view.getState(u.getSelectionCell())),
u.startEditingAtCell(u.getSelectionCell()),mxEvent.consume(c);else if(mxEvent.isAltDown(c)&&mxEvent.isShiftDown(c)){var e=O[c.keyCode];null!=e&&(e.funct(c),mxEvent.consume(c))}else 37==c.keyCode?(p(u.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(c)):38==c.keyCode?(p(u.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(c)):39==c.keyCode?(p(u.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(c)):40==c.keyCode&&(p(u.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
-mxEvent.consume(c))}}catch(ja){v.handleError(ja)}mxEvent.isConsumed(c)||A.apply(this,arguments)};var C=u.connectVertex;u.connectVertex=function(c,e,f,l,m,n,p){var t=u.getIncomingTreeEdges(c);if(b(c)){var v=d(c),A=v==mxConstants.DIRECTION_EAST||v==mxConstants.DIRECTION_WEST,x=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return v==e||0==t.length?q(c,e):A==x?g(c):k(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return C.apply(this,arguments)};u.getSubtree=function(d){var e=
-[d];!c(d)&&!b(d)||t(d)||u.traverse(d,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&0>mxUtils.indexOf(e,c)&&e.push(c);(null==c||d)&&0>mxUtils.indexOf(e,b)&&e.push(b);return null==c||d});return e};var E=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){E.apply(this,arguments);(c(this.state.cell)||b(this.state.cell))&&!t(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
+mxEvent.consume(c))}}catch(ja){v.handleError(ja)}mxEvent.isConsumed(c)||A.apply(this,arguments)};var C=u.connectVertex;u.connectVertex=function(c,e,f,l,m,n,p){var q=u.getIncomingTreeEdges(c);if(b(c)){var v=d(c),A=v==mxConstants.DIRECTION_EAST||v==mxConstants.DIRECTION_WEST,x=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return v==e||0==q.length?t(c,e):A==x?g(c):k(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return C.apply(this,arguments)};u.getSubtree=function(d){var e=
+[d];!c(d)&&!b(d)||q(d)||u.traverse(d,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&0>mxUtils.indexOf(e,c)&&e.push(c);(null==c||d)&&0>mxUtils.indexOf(e,b)&&e.push(b);return null==c||d});return e};var E=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){E.apply(this,arguments);(c(this.state.cell)||b(this.state.cell))&&!q(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
"Move Subtree"),this.moveHandle.style.position="absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="24px",this.moveHandle.style.height="24px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(b){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSubtree(this.state.cell));this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(b);
-this.graph.isMouseDown=!0;v.hoverIcons.reset();mxEvent.consume(b)})))};var L=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){L.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var N=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){N.apply(this,
+this.graph.isMouseDown=!0;v.hoverIcons.reset();mxEvent.consume(b)})))};var J=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){J.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var N=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){N.apply(this,
arguments);null!=this.moveHandle&&(this.moveHandle.style.display=b?"":"none")};var M=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(b,c){M.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var e=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var b=e.apply(this,arguments),c=this.graph;return b.concat([this.addEntry("tree container",
function(){var b=new mxCell("Tree Container",new mxGeometry(0,0,400,320),"swimlane;startSize=20;horizontal=1;containerType=tree;");b.vertex=!0;var c=new mxCell("Parent",new mxGeometry(140,60,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');c.vertex=!0;var d=new mxCell("Child",new mxGeometry(140,140,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
d.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");e.geometry.relative=!0;e.edge=!0;c.insertEdge(e,!0);d.insertEdge(e,!1);b.insert(e);b.insert(c);b.insert(d);return sb.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree mindmap mindmaps central idea branch topic",function(){var b=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;startSize=20;horizontal=1;containerType=tree;");
@@ -3993,12 +3993,12 @@ arguments)};mxClient.IS_SF&&(this.window.div.onselectstart=mxUtils.bind(this,fun
mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'<path d="M 3 7 L 7 3 L 11 7" stroke="#C0C0C0" stroke-width="2" fill="none"/>').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'<path d="M 3 3 L 7 7 L 11 3" stroke="#C0C0C0" stroke-width="2" fill="none"/>').src;mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke-width="2" style="stroke-opacity:0.4" stroke="#ffffff"/><path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#29b6f2"/>');
mxOutline.prototype.sizerImage=null;mxConstants.VERTEX_SELECTION_COLOR="#C0C0C0";mxConstants.EDGE_SELECTION_COLOR="#C0C0C0";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.DEFAULT_VALID_COLOR="#29b6f2";mxConstants.GUIDE_COLOR="#C0C0C0";mxConstants.HIGHLIGHT_STROKEWIDTH=5;mxConstants.HIGHLIGHT_OPACITY=35;mxConstants.OUTLINE_COLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#fff";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity=
"0.4";Graph.prototype.svgShadowSize="0.6";Graph.prototype.svgShadowBlur="1.2";Format.inactiveTabBackgroundColor="#f0f0f0";mxGraphHandler.prototype.previewColor="#C0C0C0";mxRubberband.prototype.defaultOpacity=50;HoverIcons.prototype.inactiveOpacity=25;Format.prototype.showCloseButton=!1;EditorUi.prototype.closableScratchpad=!1;EditorUi.prototype.toolbarHeight="1"==urlParams.sketch?1:46;EditorUi.prototype.footerHeight=0;Graph.prototype.editAfterInsert="1"!=urlParams.sketch&&!mxClient.IS_IOS&&!mxClient.IS_ANDROID;
-EditorUi.prototype.setDarkMode=function(b){this.spinner.spin(document.body,mxResources.get("working")+"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetDarkMode(b);null==urlParams.dark&&(mxSettings.settings.darkMode=b,mxSettings.save());this.fireEvent(new mxEventObject("darkModeChanged"))}),0)};var t=document.createElement("link");t.setAttribute("rel","stylesheet");t.setAttribute("href",STYLE_PATH+"/dark.css");t.setAttribute("charset","UTF-8");t.setAttribute("type",
+EditorUi.prototype.setDarkMode=function(b){this.spinner.spin(document.body,mxResources.get("working")+"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetDarkMode(b);null==urlParams.dark&&(mxSettings.settings.darkMode=b,mxSettings.save());this.fireEvent(new mxEventObject("darkModeChanged"))}),0)};var q=document.createElement("link");q.setAttribute("rel","stylesheet");q.setAttribute("href",STYLE_PATH+"/dark.css");q.setAttribute("charset","UTF-8");q.setAttribute("type",
"text/css");EditorUi.prototype.doSetDarkMode=function(b){if(Editor.darkMode!=b){var c=this.editor.graph;Editor.darkMode=b;this.spinner.opts.color=Editor.isDarkMode()?"#c0c0c0":"#000";c.view.gridColor=Editor.isDarkMode()?c.view.defaultDarkGridColor:c.view.defaultGridColor;c.defaultPageBackgroundColor="1"==urlParams.embedInline?"transparent":Editor.isDarkMode()?Editor.darkColor:"#ffffff";c.defaultPageBorderColor=Editor.isDarkMode()?"#505759":"#ffffff";c.shapeBackgroundColor=Editor.isDarkMode()?Editor.darkColor:
"#ffffff";c.shapeForegroundColor=Editor.isDarkMode()?Editor.lightColor:"#000000";c.defaultThemeName=Editor.isDarkMode()?"darkTheme":"default-style2";c.graphHandler.previewColor=Editor.isDarkMode()?"#cccccc":"black";document.body.style.backgroundColor="1"==urlParams.embedInline?"transparent":Editor.isDarkMode()?Editor.darkColor:"#ffffff";c.loadStylesheet();null!=this.actions.layersWindow&&(b=this.actions.layersWindow.window.isVisible(),this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.destroy(),
this.actions.layersWindow=null,b&&window.setTimeout(this.actions.get("layers").funct,0));null!=this.menus.commentsWindow&&(this.menus.commentsWindow.window.setVisible(!1),this.menus.commentsWindow.destroy(),this.menus.commentsWindow=null);null!=this.ruler&&this.ruler.updateStyle();Graph.prototype.defaultPageBackgroundColor=c.defaultPageBackgroundColor;Graph.prototype.defaultPageBorderColor=c.defaultPageBorderColor;Graph.prototype.shapeBackgroundColor=c.shapeBackgroundColor;Graph.prototype.shapeForegroundColor=
c.shapeForegroundColor;Graph.prototype.defaultThemeName=c.defaultThemeName;StyleFormatPanel.prototype.defaultStrokeColor=Editor.isDarkMode()?"#cccccc":"black";BaseFormatPanel.prototype.buttonBackgroundColor=Editor.isDarkMode()?Editor.darkColor:"white";Format.inactiveTabBackgroundColor=Editor.isDarkMode()?"black":"#f0f0f0";Dialog.backdropColor=Editor.isDarkMode()?Editor.darkColor:"white";mxConstants.DROP_TARGET_COLOR=Editor.isDarkMode()?"#00ff00":"#0000FF";Editor.helpImage=Editor.isDarkMode()&&mxClient.IS_SVG?
-Editor.darkHelpImage:Editor.lightHelpImage;Editor.checkmarkImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;d.innerHTML=Editor.createMinimalCss();Editor.darkMode?null==t.parentNode&&document.getElementsByTagName("head")[0].appendChild(t):null!=t.parentNode&&t.parentNode.removeChild(t)}};Editor.createMinimalCss=function(){return"* { -webkit-font-smoothing: antialiased; }html body td.mxWindowTitle > div > img { padding: 8px 4px; }"+(Editor.isDarkMode()?
+Editor.darkHelpImage:Editor.lightHelpImage;Editor.checkmarkImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;d.innerHTML=Editor.createMinimalCss();Editor.darkMode?null==q.parentNode&&document.getElementsByTagName("head")[0].appendChild(q):null!=q.parentNode&&q.parentNode.removeChild(q)}};Editor.createMinimalCss=function(){return"* { -webkit-font-smoothing: antialiased; }html body td.mxWindowTitle > div > img { padding: 8px 4px; }"+(Editor.isDarkMode()?
"html body td.mxWindowTitle > div > img { margin: -4px; }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 div.geToolbarContainer a.geInverted { filter: none; }html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem { color: #353535; }html > body > div > .geToolbarContainer { border: 1px solid #c0c0c0 !important; box-shadow: none !important; }html > body.geEditor > div > a.geItem { background-color: #2a2a2a; color: #cccccc; border-color: #505759; }html body .geTabContainer, html body .geTabContainer div, html body .geMenubarContainer { border-color: #505759 !important; }html body .mxCellEditor { color: #f0f0f0; }":
"html body div.geToolbarContainer a.geInverted { filter: invert(1); }html body.geEditor .geTabContainer div { border-color: #e5e5e5 !important; }")+'html > body > div > a.geItem { background-color: #ffffff; color: #707070; border-top: 1px solid lightgray; border-left: 1px solid lightgray; }html body .geMenubarContainer { border-bottom:1px solid lightgray;background-color:#ffffff; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0; }html body .geSidebarContainer *:not(svg *) { font-size:9pt; }html body table.mxWindow td.mxWindowPane div.mxWindowPane *:not(svg *) { font-size:9pt; }table.mxWindow * :not(svg *) { font-size:13px; }html body .mxWindow { z-index: 3; }html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700; border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }html body a.geMenuItem { opacity: 0.75; cursor: pointer; user-select: none; }html body a.geMenuItem[disabled] { opacity: 0.2; }html body a.geMenuItem[disabled]:active { opacity: 0.2; }html body div.geActivePage { opacity: 0.7; }html body a.geMenuItem:active { opacity: 0.2; }html body .geToolbarButton { opacity: 0.3; }html body .geToolbarButton:active { opacity: 0.15; }html body .geStatus:active { opacity: 0.5; }.geStatus > div { box-sizing: border-box; max-width: 100%; text-overflow: ellipsis; }html body .geStatus { padding-top:3px !important; }html body .geMenubarContainer .geStatus { margin-top: 0px !important; }html table.mxPopupMenu tr.mxPopupMenuItemHover:active { opacity: 0.7; }html body .geDialog input, html body .geToolbarContainer input, html body .mxWindow input {padding: 2px; display: inline-block; }html body .mxWindow input[type="checkbox"] {padding: 0px; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: '+
(Editor.isDarkMode()?Editor.darkColor:"#fff")+" !important; border: none !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: "+(Editor.isDarkMode()?"#cccccc":"#353535")+" !important; border-style: solid; border-width: 1px; border-color: rgb(216, 216, 216); }html body div.diagramContainer button:hover, html body .mxWindow button:hover, html body .geDialog button:hover { border-color: rgb(177, 177, 177); }html body div.diagramContainer button:active, html body .mxWindow button:active, html body .geDialog button:active { opacity: 0.6; }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:0px; padding: 0 2px 4px 2px; } html body div.geToolbarContainer a.geColorBtn { margin: 2px; } html body .mxWindow td.mxWindowPane input, html body .mxWindow td.mxWindowPane select, html body .mxWindow td.mxWindowPane textarea, html body .mxWindow td.mxWindowPane radio { padding: 0px; box-sizing: border-box; }.geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); "+
@@ -4007,8 +4007,8 @@ Editor.darkHelpImage:Editor.lightHelpImage;Editor.checkmarkImage=Editor.isDarkMo
(Editor.isDarkMode()?Editor.darkColor:"rgb(249, 249, 249)")+" !important; color: #A0A0A0 !important; } html div.geActivePage { background: "+(Editor.isDarkMode()?Editor.darkColor:"#fff")+" !important; "+(Editor.isDarkMode()?"":"color: #353535 !important; } ")+"html div.mxRubberband { border:1px solid; border-color: #29b6f2 !important; background:rgba(41,182,242,0.4) !important; } html body div.mxPopupMenu { border-radius:5px; border:1px solid #c0c0c0; padding:5px 0 5px 0; box-shadow: 0px 4px 17px -4px rgba(96,96,96,1); } html table.mxPopupMenu td.mxPopupMenuItem { color: "+
(Editor.isDarkMode()?"#cccccc":"#353535")+"; font-size: 14px; padding-top: 4px; padding-bottom: 4px; }html table.mxPopupMenu tr.mxPopupMenuItemHover { background-color: "+(Editor.isDarkMode()?"#000000":"#29b6f2")+"; }html tr.mxPopupMenuItemHover td.mxPopupMenuItem, html tr.mxPopupMenuItemHover td.mxPopupMenuItem span { color: "+(Editor.isDarkMode()?"#cccccc":"#ffffff")+" !important; }html tr.mxPopupMenuItem, html td.mxPopupMenuItem { transition-property: none !important; }html table.mxPopupMenu hr { height: 2px; background-color: rgba(0,0,0,.07); margin: 5px 0; }html body td.mxWindowTitle { padding-right: 14px; }html td.mxWindowTitle div { top: 0px !important; }"+
(mxClient.IS_IOS?"html input[type=checkbox], html input[type=radio] { height:12px; }":"")+("1"==urlParams.sketch?"a.geStatus > div { overflow: hidden; text-overflow: ellipsis; max-width: 100%; }":"")};var d=document.createElement("style");d.type="text/css";d.innerHTML=Editor.createMinimalCss();document.getElementsByTagName("head")[0].appendChild(d);Editor.prototype.isChromelessView=function(){return!1};Graph.prototype.isLightboxView=function(){return!1};var k=EditorUi.prototype.updateTabContainer;
-EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="1"==urlParams.sketch?"0px":this.tabContainerHeight+"px");k.apply(this,arguments)};var g=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){g.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var q=Menus.prototype.addShortcut;Menus.prototype.addShortcut=function(b,
-c){null!=c.shortcut&&900>f&&!mxClient.IS_IOS?b.firstChild.nextSibling.setAttribute("title",c.shortcut):q.apply(this,arguments)};var m=App.prototype.updateUserElement;App.prototype.updateUserElement=function(){m.apply(this,arguments);if(null!=this.userElement){var b=this.userElement;b.style.cssText="position:relative;margin-right:4px;cursor:pointer;display:"+b.style.display;b.className="geToolbarButton";b.innerHTML="";b.style.backgroundImage="url("+Editor.userImage+")";b.style.backgroundPosition="center center";
+EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="1"==urlParams.sketch?"0px":this.tabContainerHeight+"px");k.apply(this,arguments)};var g=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){g.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var t=Menus.prototype.addShortcut;Menus.prototype.addShortcut=function(b,
+c){null!=c.shortcut&&900>f&&!mxClient.IS_IOS?b.firstChild.nextSibling.setAttribute("title",c.shortcut):t.apply(this,arguments)};var m=App.prototype.updateUserElement;App.prototype.updateUserElement=function(){m.apply(this,arguments);if(null!=this.userElement){var b=this.userElement;b.style.cssText="position:relative;margin-right:4px;cursor:pointer;display:"+b.style.display;b.className="geToolbarButton";b.innerHTML="";b.style.backgroundImage="url("+Editor.userImage+")";b.style.backgroundPosition="center center";
b.style.backgroundRepeat="no-repeat";b.style.backgroundSize="24px 24px";b.style.height="24px";b.style.width="24px";b.style.cssFloat="right";b.setAttribute("title",mxResources.get("changeUser"));if("none"!=b.style.display){b.style.display="inline-block";var c=this.getCurrentFile();if(null!=c&&c.isRealtimeEnabled()&&c.isRealtimeSupported()){var d=document.createElement("img");d.setAttribute("border","0");d.style.position="absolute";d.style.left="18px";d.style.top="2px";d.style.width="12px";d.style.height=
"12px";d.style.cursor="default";var e=c.getRealtimeError(),f=c.getRealtimeState(),c=mxResources.get("realtimeCollaboration");1==f?(d.src=Editor.syncImage,c+=" ("+mxResources.get("online")+")"):(d.src=Editor.syncProblemImage,c=null!=e&&null!=e.message?c+(" ("+e.message+")"):c+(" ("+mxResources.get("disconnected")+")"));mxEvent.addListener(d,"click",mxUtils.bind(this,function(b){this.showError(mxResources.get("realtimeCollaboration"),mxUtils.htmlEntities(1==f?mxResources.get("online"):null!=e&&null!=
e.message?e.message:mxResources.get("disconnected")));mxEvent.consume(b)}));d.setAttribute("title",c);b.style.paddingRight="4px";b.appendChild(d)}}}};var p=App.prototype.updateButtonContainer;App.prototype.updateButtonContainer=function(){p.apply(this,arguments);if(null!=this.shareButton){var b=this.shareButton;b.style.cssText="display:inline-block;position:relative;box-sizing:border-box;margin-right:4px;cursor:pointer;";b.className="geToolbarButton";b.innerHTML="";b.style.backgroundImage="url("+
@@ -4073,12 +4073,12 @@ m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight/2-1+"px";m.rightRes
""}),oa=mxUtils.bind(this,function(){xa.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";la()}),y=mxUtils.bind(this,function(){oa();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",oa);m.addListener("editInlineStart",
y);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",y);m.addListener("editInlineStop",mxUtils.bind(this,function(b){m.diagramContainer.style.width="10px";m.diagramContainer.style.height="10px";m.diagramContainer.style.border="";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";I.style.visibility="hidden";F.style.visibility="hidden";G.style.display="none"}));if(null!=m.hoverIcons){var pa=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||
pa.apply(this,arguments)}}if(null!=n.freehand){var ka=n.freehand.createStyle;n.freehand.createStyle=function(b){return ka.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){G.className="geToolbarContainer";F.className="geToolbarContainer";I.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=G;var qa=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){qa||(m.statusContainer.style.display=
-"none")});var Z=mxUtils.bind(this,function(b){null!=m.notificationBtn&&(null!=b?m.notificationBtn.setAttribute("title",b):m.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed?(p.style.visibility=14>p.clientWidth?"hidden":"",m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&"function"===typeof m.statusContainer.firstChild.getAttribute&&null==m.statusContainer.firstChild.getAttribute("class")){var b=
+"none")});var Z=mxUtils.bind(this,function(b){null!=m.notificationBtn&&(null!=b?m.notificationBtn.setAttribute("title",b):m.notificationBtn.removeAttribute("title"))});p.style.visibility=14>p.clientWidth?"hidden":"";m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if("1"!=urlParams.embed)if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&"function"===typeof m.statusContainer.firstChild.getAttribute&&null==m.statusContainer.firstChild.getAttribute("class")){var b=
null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):m.editor.getStatus();Z(b);var c=m.getCurrentFile(),c=null!=c?c.savingStatusKey:DrawioFile.prototype.savingStatusKey;b==mxResources.get(c)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(c))+'..."src="'+Editor.tailSpin+'">',m.statusContainer.style.display="inline-block",qa=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display=
-"none",qa=!1)}else m.statusContainer.style.display="inline-block",Z(null),qa=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}))):m.editor.addListener("statusChanged",mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));R=c("diagram",null,Editor.menuImage);R.style.boxShadow="none";R.style.padding="6px";R.style.margin="0px";I.appendChild(R);mxEvent.disableContextMenu(R);mxEvent.addGestureListeners(R,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||
-mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&this.appIconClicked(b)}),null,null);m.statusContainer.style.position="";m.statusContainer.style.display="none";m.statusContainer.style.margin="0px";m.statusContainer.style.padding="6px 0px";m.statusContainer.style.maxWidth=Math.min(f-240,280)+"px";m.statusContainer.style.display="inline-block";m.statusContainer.style.textOverflow="ellipsis";m.buttonContainer.style.position="";m.buttonContainer.style.paddingRight="0px";m.buttonContainer.style.display=
-"inline-block";var P=document.createElement("a");P.style.padding="0px";P.style.boxShadow="none";P.className="geMenuItem";P.style.display="inline-block";P.style.width="40px";P.style.height="12px";P.style.marginBottom="-2px";P.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";P.style.backgroundPosition="top center";P.style.backgroundRepeat="no-repeat";P.setAttribute("title","Minimize");var sa=!1,T=mxUtils.bind(this,function(){G.innerHTML="";if(!sa){var b=function(b,c,f){b=d("",b.funct,
-null,c,b,f);b.style.width="40px";b.style.opacity="0.7";return e(b,null,"pointer")},e=function(b,c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=null!=d?d:"default";b.style.margin="2px 0px";G.appendChild(b);mxUtils.br(G);return b};e(m.sidebar.createVertexTemplate("text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",60,30,"Text",mxResources.get("text"),!0,!1,null,!0,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");e(m.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;shadow=1;size=20;pointerEvents=1;",
+"none",qa=!1)}else m.statusContainer.style.display="inline-block",Z(null),qa=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}));R=c("diagram",null,Editor.menuImage);R.style.boxShadow="none";R.style.padding="6px";R.style.margin="0px";I.appendChild(R);mxEvent.disableContextMenu(R);mxEvent.addGestureListeners(R,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&this.appIconClicked(b)}),null,null);
+m.statusContainer.style.position="";m.statusContainer.style.display="none";m.statusContainer.style.margin="0px";m.statusContainer.style.padding="6px 0px";m.statusContainer.style.maxWidth=Math.min(f-240,280)+"px";m.statusContainer.style.display="inline-block";m.statusContainer.style.textOverflow="ellipsis";m.buttonContainer.style.position="";m.buttonContainer.style.paddingRight="0px";m.buttonContainer.style.display="inline-block";var P=document.createElement("a");P.style.padding="0px";P.style.boxShadow=
+"none";P.className="geMenuItem";P.style.display="inline-block";P.style.width="40px";P.style.height="12px";P.style.marginBottom="-2px";P.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";P.style.backgroundPosition="top center";P.style.backgroundRepeat="no-repeat";P.setAttribute("title","Minimize");var sa=!1,T=mxUtils.bind(this,function(){G.innerHTML="";if(!sa){var b=function(b,c,f){b=d("",b.funct,null,c,b,f);b.style.width="40px";b.style.opacity="0.7";return e(b,null,"pointer")},e=
+function(b,c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=null!=d?d:"default";b.style.margin="2px 0px";G.appendChild(b);mxUtils.br(G);return b};e(m.sidebar.createVertexTemplate("text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",60,30,"Text",mxResources.get("text"),!0,!1,null,!0,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");e(m.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;shadow=1;size=20;pointerEvents=1;",
140,160,"",mxResources.get("note"),!0,!1,null,!0),mxResources.get("note"));e(m.sidebar.createVertexTemplate("rounded=0;whiteSpace=wrap;html=1;",160,80,"",mxResources.get("rectangle"),!0,!1,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");e(m.sidebar.createVertexTemplate("ellipse;whiteSpace=wrap;html=1;",160,100,"",mxResources.get("ellipse"),!0,!1,null,!0),mxResources.get("ellipse"));(function(){var b=new mxCell("",new mxGeometry(0,0,n.defaultEdgeLength,0),"edgeStyle=none;orthogonalLoop=1;jettySize=auto;html=1;");
b.geometry.setTerminalPoint(new mxPoint(0,0),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,0),!1);b.geometry.points=[];b.geometry.relative=!0;b.edge=!0;e(m.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,b.geometry.height,mxResources.get("line"),!0,null,!0,!1),mxResources.get("line"));b=b.clone();b.style="edgeStyle=none;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;rounded=1;startSize=8;endSize=8;";b.geometry.width=n.defaultEdgeLength+20;b.geometry.setTerminalPoint(new mxPoint(0,
20),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,20),!1);b=e(m.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,40,mxResources.get("arrow"),!0,null,!0,!1),mxResources.get("arrow"));b.style.borderBottom="1px solid "+(Editor.isDarkMode()?"#505050":"lightgray");b.style.paddingBottom="14px";b.style.marginBottom="14px"})();b(m.actions.get("insertFreehand"),mxResources.get("freehand"),Editor.freehandImage);var f=m.actions.get("toggleShapes");b(f,mxResources.get("shapes")+" ("+f.shortcut+
@@ -4101,7 +4101,7 @@ m.setGraphEnabled=function(){Ia.apply(this,arguments);null!=this.tabContainer&&(
"text";G.style.transform="";mxEvent.addGestureListeners(m.diagramContainer.parentNode,function(b){mxEvent.getSource(b)==m.diagramContainer.parentNode&&(m.embedExitPoint=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b)),m.sendEmbeddedSvgExport())});l=document.createElement("div");l.style.position="absolute";l.style.width="10px";l.style.height="10px";l.style.borderRadius="5px";l.style.border="1px solid gray";l.style.background="#ffffff";l.style.cursor="row-resize";m.diagramContainer.parentNode.appendChild(l);
m.bottomResizer=l;var Ba=null,ya=null,Ca=null,Fa=null;mxEvent.addGestureListeners(l,function(b){Fa=parseInt(m.diagramContainer.style.height);ya=mxEvent.getClientY(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});l=l.cloneNode(!1);l.style.cursor="col-resize";m.diagramContainer.parentNode.appendChild(l);m.rightResizer=l;mxEvent.addGestureListeners(l,function(b){Ca=parseInt(m.diagramContainer.style.width);Ba=mxEvent.getClientX(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});mxEvent.addGestureListeners(document.body,
null,function(b){var c=!1;null!=Ba&&(m.diagramContainer.style.width=Math.max(20,Ca+mxEvent.getClientX(b)-Ba)+"px",c=!0);null!=ya&&(m.diagramContainer.style.height=Math.max(20,Fa+mxEvent.getClientY(b)-ya)+"px",c=!0);c&&((window.opener||window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:m.diagramContainer.getBoundingClientRect()}),"*"),la(),m.refresh())},function(b){null==Ba&&null==ya||mxEvent.consume(b);ya=Ba=null});this.diagramContainer.style.borderRadius=
-"4px";document.body.style.backgroundColor="transparent";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";I.style.visibility="hidden";F.style.visibility="hidden";G.style.display="none"}"1"==urlParams.prefetchFonts&&m.editor.loadFonts()}}};(function(){var b=!1;"min"!=uiTheme||b||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),b=!0);var c=EditorUi.initTheme;EditorUi.initTheme=function(){c.apply(this,arguments);"min"!=uiTheme||b||(this.initMinimalTheme(),b=!0)}})();DrawioComment=function(b,c,e,f,n,l,t){this.file=b;this.id=c;this.content=e;this.modifiedDate=f;this.createdDate=n;this.isResolved=l;this.user=t;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,c,e,f,n){c()};DrawioComment.prototype.editComment=function(b,c,e){c()};DrawioComment.prototype.deleteComment=function(b,c){b()};DrawioUser=function(b,c,e,f,n){this.id=b;this.email=c;this.displayName=e;this.pictureUrl=f;this.locale=n};mxResources.parse('# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*\n# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE\nabout=About\naboutDrawio=About draw.io\naccessDenied=Access Denied\naction=Action\nactualSize=Actual Size\nadd=Add\naddAccount=Add account\naddedFile=Added {1}\naddImages=Add Images\naddImageUrl=Add Image URL\naddLayer=Add Layer\naddProperty=Add Property\naddress=Address\naddToExistingDrawing=Add to Existing Drawing\naddWaypoint=Add Waypoint\nadjustTo=Adjust to\nadvanced=Advanced\nalign=Align\nalignment=Alignment\nallChangesLost=All changes will be lost!\nallPages=All Pages\nallProjects=All Projects\nallSpaces=All Spaces\nallTags=All Tags\nanchor=Anchor\nandroid=Android\nangle=Angle\narc=Arc\nareYouSure=Are you sure?\nensureDataSaved=Please ensure your data is saved before closing.\nallChangesSaved=All changes saved\nallChangesSavedInDrive=All changes saved in Drive\nallowPopups=Allow pop-ups to avoid this dialog.\nallowRelativeUrl=Allow relative URL\nalreadyConnected=Nodes already connected\napply=Apply\narchiMate21=ArchiMate 2.1\narrange=Arrange\narrow=Arrow\narrows=Arrows\nasNew=As New\natlas=Atlas\nauthor=Author\nauthorizationRequired=Authorization required\nauthorizeThisAppIn=Authorize this app in {1}:\nauthorize=Authorize\nauthorizing=Authorizing\nautomatic=Automatic\nautosave=Autosave\nautosize=Autosize\nattachments=Attachments\naws=AWS\naws3d=AWS 3D\nazure=Azure\nback=Back\nbackground=Background\nbackgroundColor=Background Color\nbackgroundImage=Background Image\nbasic=Basic\nbeta=beta\nblankDrawing=Blank Drawing\nblankDiagram=Blank Diagram\nblock=Block\nblockquote=Blockquote\nblog=Blog\nbold=Bold\nbootstrap=Bootstrap\nborder=Border\nborderColor=Border Color\nborderWidth=Border Width\nbottom=Bottom\nbottomAlign=Bottom Align\nbottomLeft=Bottom Left\nbottomRight=Bottom Right\nbpmn=BPMN\nbringForward=Bring Forward\nbrowser=Browser\nbulletedList=Bulleted List\nbusiness=Business\nbusy=Operation in progress\ncabinets=Cabinets\ncancel=Cancel\ncenter=Center\ncannotLoad=Load attempts failed. Please try again later.\ncannotLogin=Log in attempts failed. Please try again later.\ncannotOpenFile=Cannot open file\nchange=Change\nchangeOrientation=Change Orientation\nchangeUser=Change user\nchangeStorage=Change storage\nchangesNotSaved=Changes have not been saved\nclassDiagram=Class Diagram\nuserJoined={1} has joined\nuserLeft={1} has left\nchatWindowTitle=Chat\nchooseAnOption=Choose an option\nchromeApp=Chrome App\ncollaborativeEditingNotice=Important Notice for Collaborative Editing\ncompare=Compare\ncompressed=Compressed\ncommitMessage=Commit Message\nconfigLinkWarn=This link configures draw.io. Only click OK if you trust whoever gave you it!\nconfigLinkConfirm=Click OK to configure and restart draw.io.\ncontainer=Container\ncsv=CSV\ndark=Dark\ndiagramXmlDesc=XML File\ndiagramHtmlDesc=HTML File\ndiagramPngDesc=Editable Bitmap Image\ndiagramSvgDesc=Editable Vector Image\ndidYouMeanToExportToPdf=Did you mean to export to PDF?\ndraftFound=A draft for \'{1}\' has been found. Load it into the editor or discard it to continue.\ndraftRevisionMismatch=There is a different version of this diagram on a shared draft of this page. Please edit the diagram from the draft to ensure you are working with the latest version.\nselectDraft=Select a draft to continue editing:\ndragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?\ndropboxCharsNotAllowed=The following characters are not allowed: / : ? * " |\ncheck=Check\nchecksum=Checksum\ncircle=Circle\ncisco=Cisco\nclassic=Classic\nclearDefaultStyle=Clear Default Style\nclearWaypoints=Clear Waypoints\nclipart=Clipart\nclose=Close\nclosingFile=Closing file\nrealtimeCollaboration=Real-Time Collaboration\ncollaborator=Collaborator\ncollaborators=Collaborators\ncollapse=Collapse\ncollapseExpand=Collapse/Expand\ncollapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size\ncollapsible=Collapsible\ncomic=Comic\ncomment=Comment\ncommentsNotes=Comments/Notes\ncompress=Compress\nconfiguration=Configuration\nconnect=Connect\nconnecting=Connecting\nconnectWithDrive=Connect with Google Drive\nconnection=Connection\nconnectionArrows=Connection Arrows\nconnectionPoints=Connection Points\nconstrainProportions=Constrain Proportions\ncontainsValidationErrors=Contains validation errors\ncopiedToClipboard=Copied to clipboard\ncopy=Copy\ncopyConnect=Copy on connect\ncopyCreated=A copy of the file was created.\ncopyData=Copy Data\ncopyOf=Copy of {1}\ncopyOfDrawing=Copy of Drawing\ncopySize=Copy Size\ncopyStyle=Copy Style\ncreate=Create\ncreateNewDiagram=Create New Diagram\ncreateRevision=Create Revision\ncreateShape=Create Shape\ncrop=Crop\ncurved=Curved\ncustom=Custom\ncurrent=Current\ncurrentPage=Current page\ncut=Cut\ndashed=Dashed\ndecideLater=Decide later\ndefault=Default\ndelete=Delete\ndeleteColumn=Delete Column\ndeleteLibrary401=Insufficient permissions to delete this library\ndeleteLibrary404=Selected library could not be found\ndeleteLibrary500=Error deleting library\ndeleteLibraryConfirm=You are about to permanently delete this library. Are you sure you want to do this?\ndeleteRow=Delete Row\ndescription=Description\ndevice=Device\ndiagram=Diagram\ndiagramContent=Diagram Content\ndiagramLocked=Diagram has been locked to prevent further data loss.\ndiagramLockedBySince=The diagram is locked by {1} since {2} ago\ndiagramName=Diagram Name\ndiagramIsPublic=Diagram is public\ndiagramIsNotPublic=Diagram is not public\ndiamond=Diamond\ndiamondThin=Diamond (thin)\ndidYouKnow=Did you know...\ndirection=Direction\ndiscard=Discard\ndiscardChangesAndReconnect=Discard Changes and Reconnect\ngoogleDriveMissingClickHere=Google Drive missing? Click here!\ndiscardChanges=Discard Changes\ndisconnected=Disconnected\ndistribute=Distribute\ndone=Done\ndoNotShowAgain=Do not show again\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Get Desktop\ndownloadAs=Download as\nclickHereToSave=Click here to save.\ndpi=DPI\ndraftDiscarded=Draft discarded\ndraftSaved=Draft saved\ndragElementsHere=Drag elements here\ndragImagesHere=Drag images or URLs here\ndragUrlsHere=Drag URLs here\ndraw.io=draw.io\ndrawing=Drawing{1}\ndrawingEmpty=Drawing is empty\ndrawingTooLarge=Drawing is too large\ndrawioForWork=Draw.io for GSuite\ndropbox=Dropbox\nduplicate=Duplicate\nduplicateIt=Duplicate {1}\ndivider=Divider\ndx=Dx\ndy=Dy\neast=East\nedit=Edit\neditData=Edit Data\neditDiagram=Edit Diagram\neditGeometry=Edit Geometry\neditImage=Edit Image\neditImageUrl=Edit Image URL\neditLink=Edit Link\neditShape=Edit Shape\neditStyle=Edit Style\neditText=Edit Text\neditTooltip=Edit Tooltip\nglass=Glass\ngoogleImages=Google Images\nimageSearch=Image Search\neip=EIP\nembed=Embed\nembedFonts=Embed Fonts\nembedImages=Embed Images\nmainEmbedNotice=Paste this into the page\nelectrical=Electrical\nellipse=Ellipse\nembedNotice=Paste this once at the end of the page\nenterGroup=Enter Group\nenterName=Enter Name\nenterPropertyName=Enter Property Name\nenterValue=Enter Value\nentityRelation=Entity Relation\nentityRelationshipDiagram=Entity Relationship Diagram\nerror=Error\nerrorDeletingFile=Error deleting file\nerrorLoadingFile=Error loading file\nerrorRenamingFile=Error renaming file\nerrorRenamingFileNotFound=Error renaming file. File was not found.\nerrorRenamingFileForbidden=Error renaming file. Insufficient access rights.\nerrorSavingDraft=Error saving draft\nerrorSavingFile=Error saving file\nerrorSavingFileUnknown=Error authorizing with Google\'s servers. Please refresh the page to re-attempt.\nerrorSavingFileForbidden=Error saving file. Insufficient access rights.\nerrorSavingFileNameConflict=Could not save diagram. Current page already contains file named \'{1}\'.\nerrorSavingFileNotFound=Error saving file. File was not found.\nerrorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.\nerrorSavingFileSessionTimeout=Your session has ended. Please <a target=\'_blank\' href=\'{1}\'>{2}</a> and return to this tab to try to save again.\nerrorSendingFeedback=Error sending feedback.\nerrorUpdatingPreview=Error updating preview.\nexit=Exit\nexitGroup=Exit Group\nexpand=Expand\nexport=Export\nexporting=Exporting\nexportAs=Export as\nexportOptionsDisabled=Export options disabled\nexportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.\nexternalChanges=External Changes\nextras=Extras\nfacebook=Facebook\nfailedToSaveTryReconnect=Failed to save, trying to reconnect\nfeatureRequest=Feature Request\nfeedback=Feedback\nfeedbackSent=Feedback successfully sent.\nfloorplans=Floorplans\nfile=File\nfileChangedOverwriteDialog=The file has been modified. Do you want to save the file and overwrite those changes?\nfileChangedSyncDialog=The file has been modified.\nfileChangedSync=The file has been modified. Click here to synchronize.\noverwrite=Overwrite\nsynchronize=Synchronize\nfilename=Filename\nfileExists=File already exists\nfileMovedToTrash=File was moved to trash\nfileNearlyFullSeeFaq=File nearly full, please see FAQ\nfileNotFound=File not found\nrepositoryNotFound=Repository not found\nfileNotFoundOrDenied=The file was not found. It does not exist or you do not have access.\nfileNotLoaded=File not loaded\nfileNotSaved=File not saved\nfileOpenLocation=How would you like to open these file(s)?\nfiletypeHtml=.html causes file to save as HTML with redirect to cloud URL\nfiletypePng=.png causes file to save as PNG with embedded data\nfiletypeSvg=.svg causes file to save as SVG with embedded data\nfileWillBeSavedInAppFolder={1} will be saved in the app folder.\nfill=Fill\nfillColor=Fill Color\nfilterCards=Filter Cards\nfind=Find\nfit=Fit\nfitContainer=Resize Container\nfitIntoContainer=Fit into Container\nfitPage=Fit Page\nfitPageWidth=Fit Page Width\nfitTo=Fit to\nfitToSheetsAcross=sheet(s) across\nfitToBy=by\nfitToSheetsDown=sheet(s) down\nfitTwoPages=Two Pages\nfitWindow=Fit Window\nflip=Flip\nflipH=Flip Horizontal\nflipV=Flip Vertical\nflowchart=Flowchart\nfolder=Folder\nfont=Font\nfontColor=Font Color\nfontFamily=Font Family\nfontSize=Font Size\nforbidden=You are not authorized to access this file\nformat=Format\nformatPanel=Format Panel\nformatted=Formatted\nformattedText=Formatted Text\nformatPng=PNG\nformatGif=GIF\nformatJpg=JPEG\nformatPdf=PDF\nformatSql=SQL\nformatSvg=SVG\nformatHtmlEmbedded=HTML\nformatSvgEmbedded=SVG (with XML)\nformatVsdx=VSDX\nformatVssx=VSSX\nformatXmlPlain=XML (Plain)\nformatXml=XML\nforum=Discussion/Help Forums\nfreehand=Freehand\nfromTemplate=From Template\nfromTemplateUrl=From Template URL\nfromText=From Text\nfromUrl=From URL\nfromThisPage=From this page\nfullscreen=Fullscreen\ngap=Gap\ngcp=GCP\ngeneral=General\ngetNotionChromeExtension=Get the Notion Chrome Extension\ngithub=GitHub\ngitlab=GitLab\ngliffy=Gliffy\nglobal=Global\ngoogleDocs=Google Docs\ngoogleDrive=Google Drive\ngoogleGadget=Google Gadget\ngooglePlus=Google+\ngoogleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:\ngoogleSlides=Google Slides\ngoogleSites=Google Sites\ngoogleSheets=Google Sheets\ngradient=Gradient\ngradientColor=Color\ngrid=Grid\ngridColor=Grid Color\ngridSize=Grid Size\ngroup=Group\nguides=Guides\nhateApp=I hate draw.io\nheading=Heading\nheight=Height\nhelp=Help\nhelpTranslate=Help us translate this application\nhide=Hide\nhideIt=Hide {1}\nhidden=Hidden\nhome=Home\nhorizontal=Horizontal\nhorizontalFlow=Horizontal Flow\nhorizontalTree=Horizontal Tree\nhowTranslate=How good is the translation in your language?\nhtml=HTML\nhtmlText=HTML Text\nid=ID\niframe=IFrame\nignore=Ignore\nimage=Image\nimageUrl=Image URL\nimages=Images\nimagePreviewError=This image couldn\'t be loaded for preview. Please check the URL.\nimageTooBig=Image too big\nimgur=Imgur\nimport=Import\nimportFrom=Import from\nincludeCopyOfMyDiagram=Include a copy of my diagram\nincreaseIndent=Increase Indent\ndecreaseIndent=Decrease Indent\ninsert=Insert\ninsertColumnBefore=Insert Column Left\ninsertColumnAfter=Insert Column Right\ninsertEllipse=Insert Ellipse\ninsertImage=Insert Image\ninsertHorizontalRule=Insert Horizontal Rule\ninsertLink=Insert Link\ninsertPage=Insert Page\ninsertRectangle=Insert Rectangle\ninsertRhombus=Insert Rhombus\ninsertRowBefore=Insert Row Above\ninsertRowAfter=Insert Row After\ninsertText=Insert Text\ninserting=Inserting\ninstallApp=Install App\ninvalidFilename=Diagram names must not contain the following characters: / | : ; { } < > & + ? = "\ninvalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.\ninvalidInput=Invalid input\ninvalidName=Invalid name\ninvalidOrMissingFile=Invalid or missing file\ninvalidPublicUrl=Invalid public URL\nisometric=Isometric\nios=iOS\nitalic=Italic\nkennedy=Kennedy\nkeyboardShortcuts=Keyboard Shortcuts\nlabels=Labels\nlayers=Layers\nlandscape=Landscape\nlanguage=Language\nleanMapping=Lean Mapping\nlastChange=Last change {1} ago\nlessThanAMinute=less than a minute\nlicensingError=Licensing Error\nlicenseHasExpired=The license for {1} has expired on {2}. Click here.\nlicenseRequired=This feature requires draw.io to be licensed.\nlicenseWillExpire=The license for {1} will expire on {2}. Click here.\nlineJumps=Line jumps\nlinkAccountRequired=If the diagram is not public a Google account is required to view the link.\nlinkText=Link Text\nlist=List\nminute=minute\nminutes=minutes\nhours=hours\ndays=days\nmonths=months\nyears=years\nrestartForChangeRequired=Changes will take effect after a restart of the application.\nlaneColor=Lanecolor\nlastModified=Last modified\nlayout=Layout\nleft=Left\nleftAlign=Left Align\nleftToRight=Left to right\nlibraryTooltip=Drag and drop shapes here or click + to insert. Double click to edit.\nlightbox=Lightbox\nline=Line\nlineend=Line end\nlineheight=Line Height\nlinestart=Line start\nlinewidth=Linewidth\nlink=Link\nlinks=Links\nloading=Loading\nlockUnlock=Lock/Unlock\nloggedOut=Logged Out\nlogIn=log in\nloveIt=I love {1}\nlucidchart=Lucidchart\nmaps=Maps\nmathematicalTypesetting=Mathematical Typesetting\nmakeCopy=Make a Copy\nmanual=Manual\nmerge=Merge\nmermaid=Mermaid\nmicrosoftOffice=Microsoft Office\nmicrosoftExcel=Microsoft Excel\nmicrosoftPowerPoint=Microsoft PowerPoint\nmicrosoftWord=Microsoft Word\nmiddle=Middle\nminimal=Minimal\nmisc=Misc\nmockups=Mockups\nmodificationDate=Modification date\nmodifiedBy=Modified by\nmore=More\nmoreResults=More Results\nmoreShapes=More Shapes\nmove=Move\nmoveToFolder=Move to Folder\nmoving=Moving\nmoveSelectionTo=Move selection to {1}\nname=Name\nnavigation=Navigation\nnetwork=Network\nnetworking=Networking\nnew=New\nnewLibrary=New Library\nnextPage=Next Page\nno=No\nnoPickFolder=No, pick folder\nnoAttachments=No attachments found\nnoColor=No Color\nnoFiles=No Files\nnoFileSelected=No file selected\nnoLibraries=No libraries found\nnoMoreResults=No more results\nnone=None\nnoOtherViewers=No other viewers\nnoPlugins=No plugins\nnoPreview=No preview\nnoResponse=No response from server\nnoResultsFor=No results for \'{1}\'\nnoRevisions=No revisions\nnoSearchResults=No search results found\nnoPageContentOrNotSaved=No anchors found on this page or it hasn\'t been saved yet\nnormal=Normal\nnorth=North\nnotADiagramFile=Not a diagram file\nnotALibraryFile=Not a library file\nnotAvailable=Not available\nnotAUtf8File=Not a UTF-8 file\nnotConnected=Not connected\nnote=Note\nnotion=Notion\nnotSatisfiedWithImport=Not satisfied with the import?\nnotUsingService=Not using {1}?\nnumberedList=Numbered list\noffline=Offline\nok=OK\noneDrive=OneDrive\nonline=Online\nopacity=Opacity\nopen=Open\nopenArrow=Open Arrow\nopenExistingDiagram=Open Existing Diagram\nopenFile=Open File\nopenFrom=Open from\nopenLibrary=Open Library\nopenLibraryFrom=Open Library from\nopenLink=Open Link\nopenInNewWindow=Open in New Window\nopenInThisWindow=Open in This Window\nopenIt=Open {1}\nopenRecent=Open Recent\nopenSupported=Supported formats are files saved from this software (.xml), .vsdx and .gliffy\noptions=Options\norganic=Organic\norgChart=Org Chart\northogonal=Orthogonal\notherViewer=other viewer\notherViewers=other viewers\noutline=Outline\noval=Oval\npage=Page\npageContent=Page Content\npageNotFound=Page not found\npageWithNumber=Page-{1}\npages=Pages\npageView=Page View\npageSetup=Page Setup\npageScale=Page Scale\npan=Pan\npanTooltip=Space+Drag to pan\npaperSize=Paper Size\npattern=Pattern\nparallels=Parallels\npaste=Paste\npasteData=Paste Data\npasteHere=Paste here\npasteSize=Paste Size\npasteStyle=Paste Style\nperimeter=Perimeter\npermissionAnyone=Anyone can edit\npermissionAuthor=Owner and admins can edit\npickFolder=Pick a folder\npickLibraryDialogTitle=Select Library\npublicDiagramUrl=Public URL of the diagram\nplaceholders=Placeholders\nplantUml=PlantUML\nplugins=Plugins\npluginUrl=Plugin URL\npluginWarning=The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n\nplusTooltip=Click to connect and clone (ctrl+click to clone, shift+click to connect). Drag to connect (ctrl+drag to clone).\nportrait=Portrait\nposition=Position\nposterPrint=Poster Print\npreferences=Preferences\npreview=Preview\npreviousPage=Previous Page\nprint=Print\nprintAllPages=Print All Pages\nprocEng=Proc. Eng.\nproject=Project\npriority=Priority\nproperties=Properties\npublish=Publish\nquickStart=Quick Start Video\nrack=Rack\nradial=Radial\nradialTree=Radial Tree\nreadOnly=Read-only\nreconnecting=Reconnecting\nrecentlyUpdated=Recently Updated\nrecentlyViewed=Recently Viewed\nrectangle=Rectangle\nredirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.\nrealtimeTimeout=It looks like you\'ve made a few changes while offline. We\'re sorry, these changes cannot be saved.\nredo=Redo\nrefresh=Refresh\nregularExpression=Regular Expression\nrelative=Relative\nrelativeUrlNotAllowed=Relative URL not allowed\nrememberMe=Remember me\nrememberThisSetting=Remember this setting\nremoveFormat=Clear Formatting\nremoveFromGroup=Remove from Group\nremoveIt=Remove {1}\nremoveWaypoint=Remove Waypoint\nrename=Rename\nrenamed=Renamed\nrenameIt=Rename {1}\nrenaming=Renaming\nreplace=Replace\nreplaceIt={1} already exists. Do you want to replace it?\nreplaceExistingDrawing=Replace existing drawing\nrequired=required\nreset=Reset\nresetView=Reset View\nresize=Resize\nresizeLargeImages=Do you want to resize large images to make the application run faster?\nretina=Retina\nresponsive=Responsive\nrestore=Restore\nrestoring=Restoring\nretryingIn=Retrying in {1} second(s)\nretryingLoad=Load failed. Retrying...\nretryingLogin=Login time out. Retrying...\nreverse=Reverse\nrevision=Revision\nrevisionHistory=Revision History\nrhombus=Rhombus\nright=Right\nrightAlign=Right Align\nrightToLeft=Right to left\nrotate=Rotate\nrotateTooltip=Click and drag to rotate, click to turn shape only by 90 degrees\nrotation=Rotation\nrounded=Rounded\nsave=Save\nsaveAndExit=Save & Exit\nsaveAs=Save as\nsaveAsXmlFile=Save as XML file?\nsaved=Saved\nsaveDiagramFirst=Please save the diagram first\nsaveDiagramsTo=Save diagrams to\nsaveLibrary403=Insufficient permissions to edit this library\nsaveLibrary500=There was an error while saving the library\nsaveLibraryReadOnly=Could not save library while read-only mode is active\nsaving=Saving\nscratchpad=Scratchpad\nscrollbars=Scrollbars\nsearch=Search\nsearchShapes=Search Shapes\nselectAll=Select All\nselectionOnly=Selection Only\nselectCard=Select Card\nselectEdges=Select Edges\nselectFile=Select File\nselectFolder=Select Folder\nselectFont=Select Font\nselectNone=Select None\nselectTemplate=Select Template\nselectVertices=Select Vertices\nsendBackward=Send Backward\nsendMessage=Send\nsendYourFeedback=Send your feedback\nserviceUnavailableOrBlocked=Service unavailable or blocked\nsessionExpired=Your session has expired. Please refresh the browser window.\nsessionTimeoutOnSave=Your session has timed out and you have been disconnected from the Google Drive. Press OK to login and save.\nsetAsDefaultStyle=Set as Default Style\nshadow=Shadow\nshape=Shape\nshapes=Shapes\nshare=Share\nshareCursor=Share Cursor\nshareLink=Link for shared editing\nsharingAvailable=Sharing available for Google Drive and OneDrive files.\nsharp=Sharp\nshow=Show\nshowStartScreen=Show Start Screen\nsidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.\nsigns=Signs\nsignOut=Sign out\nsimple=Simple\nsimpleArrow=Simple Arrow\nsimpleViewer=Simple Viewer\nsize=Size\nsketch=Sketch\nsnapToGrid=Snap to Grid\nsolid=Solid\nsourceSpacing=Source Spacing\nsouth=South\nsoftware=Software\nspace=Space\nspacing=Spacing\nspecialLink=Special Link\nstandard=Standard\nstartDrawing=Start drawing\nstopDrawing=Stop drawing\nstarting=Starting\nstraight=Straight\nstrikethrough=Strikethrough\nstrokeColor=Line Color\nstyle=Style\nsubscript=Subscript\nsummary=Summary\nsuperscript=Superscript\nsupport=Support\nswimlaneDiagram=Swimlane Diagram\nsysml=SysML\ntags=Tags\ntable=Table\ntables=Tables\ntakeOver=Take Over\ntargetSpacing=Target Spacing\ntemplate=Template\ntemplates=Templates\ntext=Text\ntextAlignment=Text Alignment\ntextOpacity=Text Opacity\ntheme=Theme\ntimeout=Timeout\ntitle=Title\nto=to\ntoBack=To Back\ntoFront=To Front\ntooLargeUseDownload=Too large, use download instead.\ntoolbar=Toolbar\ntooltips=Tooltips\ntop=Top\ntopAlign=Top Align\ntopLeft=Top Left\ntopRight=Top Right\ntransparent=Transparent\ntransparentBackground=Transparent Background\ntrello=Trello\ntryAgain=Try again\ntryOpeningViaThisPage=Try opening via this page\nturn=Rotate shape only by 90°\ntype=Type\ntwitter=Twitter\numl=UML\nunderline=Underline\nundo=Undo\nungroup=Ungroup\nunmerge=Unmerge\nunsavedChanges=Unsaved changes\nunsavedChangesClickHereToSave=Unsaved changes. Click here to save.\nuntitled=Untitled\nuntitledDiagram=Untitled Diagram\nuntitledLayer=Untitled Layer\nuntitledLibrary=Untitled Library\nunknownError=Unknown error\nupdateFile=Update {1}\nupdatingDocument=Updating Document. Please wait...\nupdatingPreview=Updating Preview. Please wait...\nupdatingSelection=Updating Selection. Please wait...\nupload=Upload\nurl=URL\nuseOffline=Use Offline\nuseRootFolder=Use root folder?\nuserManual=User Manual\nvertical=Vertical\nverticalFlow=Vertical Flow\nverticalTree=Vertical Tree\nview=View\nviewerSettings=Viewer Settings\nviewUrl=Link to view: {1}\nvoiceAssistant=Voice Assistant (beta)\nwarning=Warning\nwaypoints=Waypoints\nwest=West\nwidth=Width\nwiki=Wiki\nwordWrap=Word Wrap\nwritingDirection=Writing Direction\nyes=Yes\nyourEmailAddress=Your email address\nzoom=Zoom\nzoomIn=Zoom In\nzoomOut=Zoom Out\nbasic=Basic\nbusinessprocess=Business Processes\ncharts=Charts\nengineering=Engineering\nflowcharts=Flowcharts\ngmdl=Material Design\nmindmaps=Mindmaps\nmockups=Mockups\nnetworkdiagrams=Network Diagrams\nnothingIsSelected=Nothing is selected\nother=Other\nsoftwaredesign=Software Design\nvenndiagrams=Venn Diagrams\nwebEmailOrOther=Web, email or any other internet address\nwebLink=Web Link\nwireframes=Wireframes\nproperty=Property\nvalue=Value\nshowMore=Show More\nshowLess=Show Less\nmyDiagrams=My Diagrams\nallDiagrams=All Diagrams\nrecentlyUsed=Recently used\nlistView=List view\ngridView=Grid view\nresultsFor=Results for \'{1}\'\noneDriveCharsNotAllowed=The following characters are not allowed: ~ " # % * : < > ? / { | }\noneDriveInvalidDeviceName=The specified device name is invalid\nofficeNotLoggedOD=You are not logged in to OneDrive. Please open draw.io task pane and login first.\nofficeSelectSingleDiag=Please select a single draw.io diagram only without other contents.\nofficeSelectDiag=Please select a draw.io diagram.\nofficeCannotFindDiagram=Cannot find a draw.io diagram in the selection\nnoDiagrams=No diagrams found\nauthFailed=Authentication failed\nofficeFailedAuthMsg=Unable to successfully authenticate user or authorize application.\nconvertingDiagramFailed=Converting diagram failed\nofficeCopyImgErrMsg=Due to some limitations in the host application, the image could not be inserted. Please manually copy the image then paste it to the document.\ninsertingImageFailed=Inserting image failed\nofficeCopyImgInst=Instructions: Right-click the image below. Select "Copy image" from the context menu. Then, in the document, right-click and select "Paste" from the context menu.\nfolderEmpty=Folder is empty\nrecent=Recent\nsharedWithMe=Shared With Me\nsharepointSites=Sharepoint Sites\nerrorFetchingFolder=Error fetching folder items\nerrorAuthOD=Error authenticating to OneDrive\nofficeMainHeader=Adds draw.io diagrams to your document.\nofficeStepsHeader=This add-in performs the following steps:\nofficeStep1=Connects to Microsoft OneDrive, Google Drive or your device.\nofficeStep2=Select a draw.io diagram.\nofficeStep3=Insert the diagram into the document.\nofficeAuthPopupInfo=Please complete the authentication in the pop-up window.\nofficeSelDiag=Select draw.io Diagram:\nfiles=Files\nshared=Shared\nsharepoint=Sharepoint\nofficeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.\nofficeClickToEdit=Click icon to start editing:\npasteDiagram=Paste draw.io diagram here\nconnectOD=Connect to OneDrive\nselectChildren=Select Children\nselectSiblings=Select Siblings\nselectParent=Select Parent\nselectDescendants=Select Descendants\nlastSaved=Last saved {1} ago\nresolve=Resolve\nreopen=Re-open\nshowResolved=Show Resolved\nreply=Reply\nobjectNotFound=Object not found\nreOpened=Re-opened\nmarkedAsResolved=Marked as resolved\nnoCommentsFound=No comments found\ncomments=Comments\ntimeAgo={1} ago\nconfluenceCloud=Confluence Cloud\nlibraries=Libraries\nconfAnchor=Confluence Page Anchor\nconfTimeout=The connection has timed out\nconfSrvTakeTooLong=The server at {1} is taking too long to respond.\nconfCannotInsertNew=Cannot insert draw.io diagram to a new Confluence page\nconfSaveTry=Please save the page and try again.\nconfCannotGetID=Unable to determine page ID\nconfContactAdmin=Please contact your Confluence administrator.\nreadErr=Read Error\neditingErr=Editing Error\nconfExtEditNotPossible=This diagram cannot be edited externally. Please try editing it while editing the page\nconfEditedExt=Diagram/Page edited externally\ndiagNotFound=Diagram Not Found\nconfEditedExtRefresh=Diagram/Page is edited externally. Please refresh the page.\nconfCannotEditDraftDelOrExt=Cannot edit diagrams in a draft page, diagram is deleted from the page, or diagram is edited externally. Please check the page.\nretBack=Return back\nconfDiagNotPublished=The diagram does not belong to a published page\ncreatedByDraw=Created by draw.io\nfilenameShort=Filename too short\ninvalidChars=Invalid characters\nalreadyExst={1} already exists\ndraftReadErr=Draft Read Error\ndiagCantLoad=Diagram cannot be loaded\ndraftWriteErr=Draft Write Error\ndraftCantCreate=Draft could not be created\nconfDuplName=Duplicate diagram name detected. Please pick another name.\nconfSessionExpired=Looks like your session expired. Log in again to keep working.\nlogin=Login\ndrawPrev=draw.io preview\ndrawDiag=draw.io diagram\ninvalidCallFnNotFound=Invalid Call: {1} not found\ninvalidCallErrOccured=Invalid Call: An error occurred, {1}\nanonymous=Anonymous\nconfGotoPage=Go to containing page\nshowComments=Show Comments\nconfError=Error: {1}\ngliffyImport=Gliffy Import\ngliffyImportInst1=Click the "Start Import" button to import all Gliffy diagrams to draw.io.\ngliffyImportInst2=Please note that the import procedure will take some time and the browser window must remain open until the import is completed.\nstartImport=Start Import\ndrawConfig=draw.io Configuration\ncustomLib=Custom Libraries\ncustomTemp=Custom Templates\npageIdsExp=Page IDs Export\ndrawReindex=draw.io re-indexing (beta)\nworking=Working\ndrawConfigNotFoundInst=draw.io Configuration Space (DRAWIOCONFIG) does not exist. This space is needed to store draw.io configuration files and custom libraries/templates.\ncreateConfSp=Create Config Space\nunexpErrRefresh=Unexpected error, please refresh the page and try again.\nconfigJSONInst=Write draw.io JSON configuration in the editor below then click save. If you need help, please refer to\nthisPage=this page\ncurCustLib=Current Custom Libraries\nlibName=Library Name\naction=Action\ndrawConfID=draw.io Config ID\naddLibInst=Click the "Add Library" button to upload a new library.\naddLib=Add Library\ncustomTempInst1=Custom templates are draw.io diagrams saved in children pages of\ncustomTempInst2=For more details, please refer to\ntempsPage=Templates page\npageIdsExpInst1=Select export target, then click the "Start Export" button to export all pages IDs.\npageIdsExpInst2=Please note that the export procedure will take some time and the browser window must remain open until the export is completed.\nstartExp=Start Export\nrefreshDrawIndex=Refresh draw.io Diagrams Index\nreindexInst1=Click the "Start Indexing" button to refresh draw.io diagrams index.\nreindexInst2=Please note that the indexing procedure will take some time and the browser window must remain open until the indexing is completed.\nstartIndexing=Start Indexing\nconfAPageFoundFetch=Page "{1}" found. Fetching\nconfAAllDiagDone=All {1} diagrams processed. Process finished.\nconfAStartedProcessing=Started processing page "{1}"\nconfAAllDiagInPageDone=All {1} diagrams in page "{2}" processed successfully.\nconfAPartialDiagDone={1} out of {2} {3} diagrams in page "{4}" processed successfully.\nconfAUpdatePageFailed=Updating page "{1}" failed.\nconfANoDiagFoundInPage=No {1} diagrams found in page "{2}".\nconfAFetchPageFailed=Fetching the page failed.\nconfANoDiagFound=No {1} diagrams found. Process finished.\nconfASearchFailed=Searching for {1} diagrams failed. Please try again later.\nconfAGliffyDiagFound={2} diagram "{1}" found. Importing\nconfAGliffyDiagImported={2} diagram "{1}" imported successfully.\nconfASavingImpGliffyFailed=Saving imported {2} diagram "{1}" failed.\nconfAImportedFromByDraw=Imported from "{1}" by draw.io\nconfAImportGliffyFailed=Importing {2} diagram "{1}" failed.\nconfAFetchGliffyFailed=Fetching {2} diagram "{1}" failed.\nconfACheckBrokenDiagLnk=Checking for broken diagrams links.\nconfADelDiagLinkOf=Deleting diagram link of "{1}"\nconfADupLnk=(duplicate link)\nconfADelDiagLnkFailed=Deleting diagram link of "{1}" failed.\nconfAUnexpErrProcessPage=Unexpected error during processing the page with id: {1}\nconfADiagFoundIndex=Diagram "{1}" found. Indexing\nconfADiagIndexSucc=Diagram "{1}" indexed successfully.\nconfAIndexDiagFailed=Indexing diagram "{1}" failed.\nconfASkipDiagOtherPage=Skipped "{1}" as it belongs to another page!\nconfADiagUptoDate=Diagram "{1}" is up to date.\nconfACheckPagesWDraw=Checking pages having draw.io diagrams.\nconfAErrOccured=An error occurred!\nsavedSucc=Saved successfully\nconfASaveFailedErr=Saving Failed (Unexpected Error)\ncharacter=Character\nconfAConfPageDesc=This page contains draw.io configuration file (configuration.json) as attachment\nconfALibPageDesc=This page contains draw.io custom libraries as attachments\nconfATempPageDesc=This page contains draw.io custom templates as attachments\nworking=Working\nconfAConfSpaceDesc=This space is used to store draw.io configuration files and custom libraries/templates\nconfANoCustLib=No Custom Libraries\ndelFailed=Delete failed!\nshowID=Show ID\nconfAIncorrectLibFileType=Incorrect file type. Libraries should be XML files.\nuploading=Uploading\nconfALibExist=This library already exists\nconfAUploadSucc=Uploaded successfully\nconfAUploadFailErr=Upload Failed (Unexpected Error)\nhiResPreview=High Res Preview\nofficeNotLoggedGD=You are not logged in to Google Drive. Please open draw.io task pane and login first.\nofficePopupInfo=Please complete the process in the pop-up window.\npickODFile=Pick OneDrive File\ncreateODFile=Create OneDrive File\npickGDriveFile=Pick Google Drive File\ncreateGDriveFile=Create Google Drive File\npickDeviceFile=Pick Device File\nvsdNoConfig="vsdurl" is not configured\nruler=Ruler\nunits=Units\npoints=Points\ninches=Inches\nmillimeters=Millimeters\nconfEditDraftDelOrExt=This diagram is in a draft page, is deleted from the page, or is edited externally. It will be saved as a new attachment version and may not be reflected in the page.\nconfDiagEditedExt=Diagram is edited in another session. It will be saved as a new attachment version but the page will show other session\'s modifications.\nmacroNotFound=Macro Not Found\nconfAInvalidPageIdsFormat=Incorrect Page IDs file format\nconfACollectingCurPages=Collecting current pages\nconfABuildingPagesMap=Building pages mapping\nconfAProcessDrawDiag=Started processing imported draw.io diagrams\nconfAProcessDrawDiagDone=Finished processing imported draw.io diagrams\nconfAProcessImpPages=Started processing imported pages\nconfAErrPrcsDiagInPage=Error processing draw.io diagrams in page "{1}"\nconfAPrcsDiagInPage=Processing draw.io diagrams in page "{1}"\nconfAImpDiagram=Importing diagram "{1}"\nconfAImpDiagramFailed=Importing diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported.\nconfAImpDiagramError=Error importing diagram "{1}". Cannot fetch or save the diagram. Cannot fix this diagram links.\nconfAUpdateDgrmCCFailed=Updating link to diagram "{1}" failed.\nconfImpDiagramSuccess=Updating diagram "{1}" done successfully.\nconfANoLnksInDrgm=No links to update in: {1}\nconfAUpdateLnkToPg=Updated link to page: "{1}" in diagram: "{2}"\nconfAUpdateLBLnkToPg=Updated lightbox link to page: "{1}" in diagram: "{2}"\nconfAUpdateLnkBase=Updated base URL from: "{1}" to: "{2}" in diagram: "{3}"\nconfAPageIdsImpDone=Page IDs Import finished\nconfAPrcsMacrosInPage=Processing draw.io macros in page "{1}"\nconfAErrFetchPage=Error fetching page "{1}"\nconfAFixingMacro=Fixing macro of diagram "{1}"\nconfAErrReadingExpFile=Error reading export file\nconfAPrcsDiagInPageDone=Processing draw.io diagrams in page "{1}" finished\nconfAFixingMacroSkipped=Fixing macro of diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported.\npageIdsExpTrg=Export target\nconfALucidDiagImgImported={2} diagram "{1}" image extracted successfully\nconfASavingLucidDiagImgFailed=Extracting {2} diagram "{1}" image failed\nconfGetInfoFailed=Fetching file info from {1} failed.\nconfCheckCacheFailed=Cannot get cached file info.\nconfReadFileErr=Cannot read "{1}" file from {2}.\nconfSaveCacheFailed=Unexpected error. Cannot save cached file\norgChartType=Org Chart Type\nlinear=Linear\nhanger2=Hanger 2\nhanger4=Hanger 4\nfishbone1=Fishbone 1\nfishbone2=Fishbone 2\n1ColumnLeft=Single Column Left\n1ColumnRight=Single Column Right\nsmart=Smart\nparentChildSpacing=Parent Child Spacing\nsiblingSpacing=Sibling Spacing\nconfNoPermErr=Sorry, you don\'t have enough permissions to view this embedded diagram from page {1}\ncopyAsImage=Copy as Image\nlucidImport=Lucidchart Import\nlucidImportInst1=Click the "Start Import" button to import all Lucidchart diagrams.\ninstallFirst=Please install {1} first\ndrawioChromeExt=draw.io Chrome Extension\nloginFirstThen=Please login to {1} first, then {2}\nerrFetchDocList=Error: Couldn\'t fetch documents list\nbuiltinPlugins=Built-in Plugins\nextPlugins=External Plugins\nbackupFound=Backup file found\nchromeOnly=This feature only works in Google Chrome\nmsgDeleted=This message has been deleted\nconfAErrFetchDrawList=Error fetching diagrams list. Some diagrams are skipped.\nconfAErrCheckDrawDiag=Cannot check diagram {1}\nconfAErrFetchPageList=Error fetching pages list\nconfADiagImportIncom={1} diagram "{2}" is imported partially and may have missing shapes\ninvalidSel=Invalid selection\ndiagNameEmptyErr=Diagram name cannot be empty\nopenDiagram=Open Diagram\nnewDiagram=New diagram\neditable=Editable\nconfAReimportStarted=Re-import {1} diagrams started...\nspaceFilter=Filter by spaces\ncurViewState=Current Viewer State\npageLayers=Page and Layers\ncustomize=Customize\nfirstPage=First Page (All Layers)\ncurEditorState=Current Editor State\nnoAnchorsFound=No anchors found\nattachment=Attachment\ncurDiagram=Current Diagram\nrecentDiags=Recent Diagrams\ncsvImport=CSV Import\nchooseFile=Choose a file...\nchoose=Choose\ngdriveFname=Google Drive filename\nwidthOfViewer=Width of the viewer (px)\nheightOfViewer=Height of the viewer (px)\nautoSetViewerSize=Automatically set the size of the viewer\nthumbnail=Thumbnail\nprevInDraw=Preview in draw.io\nonedriveFname=OneDrive filename\ndiagFname=Diagram filename\ndiagUrl=Diagram URL\nshowDiag=Show Diagram\ndiagPreview=Diagram Preview\ncsvFileUrl=CSV File URL\ngenerate=Generate\nselectDiag2Insert=Please select a diagram to insert it.\nerrShowingDiag=Unexpected error. Cannot show diagram\nnoRecentDiags=No recent diagrams found\nfetchingRecentFailed=Failed to fetch recent diagrams\nuseSrch2FindDiags=Use the search box to find draw.io diagrams\ncantReadChckPerms=Cannot read the specified diagram. Please check you have read permission on that file.\ncantFetchChckPerms=Cannot fetch diagram info. Please check you have read permission on that file.\nsearchFailed=Searching failed. Please try again later.\nplsTypeStr=Please type a search string.\nunsupportedFileChckUrl=Unsupported file. Please check the specified URL\ndiagNotFoundChckUrl=Diagram not found or cannot be accessed. Please check the specified URL\ncsvNotFoundChckUrl=CSV file not found or cannot be accessed. Please check the specified URL\ncantReadUpload=Cannot read the uploaded diagram\nselect=Select\nerrCantGetIdType=Unexpected Error: Cannot get content id or type.\nerrGAuthWinBlocked=Error: Google Authentication window blocked\nauthDrawAccess=Authorize draw.io to access {1}\nconnTimeout=The connection has timed out\nerrAuthSrvc=Error authenticating to {1}\nplsSelectFile=Please select a file\nmustBgtZ={1} must be greater than zero\ncantLoadPrev=Cannot load file preview.\nerrAccessFile=Error: Access Denied. You do not have permission to access "{1}".\nnoPrevAvail=No preview is available.\npersonalAccNotSup=Personal accounts are not supported.\nerrSavingTryLater=Error occurred during saving, please try again later.\nplsEnterFld=Please enter {1}\ninvalidDiagUrl=Invalid Diagram URL\nunsupportedVsdx=Unsupported vsdx file\nunsupportedImg=Unsupported image file\nunsupportedFormat=Unsupported file format\nplsSelectSingleFile=Please select a single file only\nattCorrupt=Attachment file "{1}" is corrupted\nloadAttFailed=Failed to load attachment "{1}"\nembedDrawDiag=Embed draw.io Diagram\naddDiagram=Add Diagram\nembedDiagram=Embed Diagram\neditOwningPg=Edit owning page\ndeepIndexing=Deep Indexing (Index diagrams that aren\'t used in any page also)\nconfADeepIndexStarted=Deep Indexing Started\nconfADeepIndexDone=Deep Indexing Done\nofficeNoDiagramsSelected=No diagrams found in the selection\nofficeNoDiagramsInDoc=No diagrams found in the document\nofficeNotSupported=This feature is not supported in this host application\nsomeImagesFailed={1} out of {2} failed due to the following errors\nimportingNoUsedDiagrams=Importing {1} Diagrams not used in pages\nimportingDrafts=Importing {1} Diagrams in drafts\nprocessingDrafts=Processing drafts\nupdatingDrafts=Updating drafts\nupdateDrafts=Update drafts\nnotifications=Notifications\ndrawioImp=draw.io Import\nconfALibsImp=Importing draw.io Libraries\nconfALibsImpFailed=Importing {1} library failed\ncontributors=Contributors\ndrawDiagrams=draw.io Diagrams\nerrFileNotFoundOrNoPer=Error: Access Denied. File not found or you do not have permission to access "{1}" on {2}.\nconfACheckPagesWEmbed=Checking pages having embedded draw.io diagrams.\nconfADelBrokenEmbedDiagLnk=Removing broken embedded diagram links\nreplaceWith=Replace with\nreplaceAll=Replace All\nconfASkipDiagModified=Skipped "{1}" as it was modified after initial import\nreplFind=Replace/Find\nmatchesRepl={1} matches replaced\ndraftErrDataLoss=An error occurred while reading the draft file. The diagram cannot be edited now to prevent any possible data loss. Please try again later or contact support.\nibm=IBM\nlinkToDiagramHint=Add a link to this diagram. The diagram can only be edited from the page that owns it.\nlinkToDiagram=Link to Diagram\nchangedBy=Changed By\nlastModifiedOn=Last modified on\nsearchResults=Search Results\nshowAllTemps=Show all templates\nnotionToken=Notion Token\nselectDB=Select Database\nnoDBs=No Databases\ndiagramEdited={1} diagram "{2}" edited\nconfDraftPermissionErr=Draft cannot be written. Do you have attachment write/read permission on this page?\nconfDraftTooBigErr=Draft size is too large. Pease check "Attachment Maximum Size" of "Attachment Settings" in Confluence Configuration?\nowner=Owner\nrepository=Repository\nbranch=Branch\nmeters=Meters\nteamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)\ncontactOwner=Contact Owner\nviewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.\nwebsite=Website\ncheck4Updates=Check for updates\nattWriteFailedRetry={1}: Attachment write failed, trying again in {2} seconds...\nconfPartialPageList=We couldn\'t fetch all pages due to an error in Confluence. Continuing using {1} pages only.\nspellCheck=Spell checker\nnoChange=No Change\nlblToSvg=Convert labels to SVG\ntxtSettings=Text Settings\nLinksLost=Links will be lost\narcSize=Arc Size\neditConnectionPoints=Edit Connection Points\nnotInOffline=Not supported while offline\nnotInDesktop=Not supported in Desktop App\nconfConfigSpaceArchived=draw.io Configuration space (DRAWIOCONFIG) is archived. Please restore it first.\nconfACleanOldVerStarted=Cleaning old diagram draft versions started\nconfACleanOldVerDone=Cleaning old diagram draft versions finished\nconfACleaningFile=Cleaning diagram draft "{1}" old versions\nconfAFileCleaned=Cleaning diagram draft "{1}" done\nconfAFileCleanFailed=Cleaning diagram draft "{1}" failed\nconfACleanOnly=Clean Diagram Drafts Only\nbrush=Brush\n');Graph.prototype.defaultThemes["default-style2"]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="default"/><add as="strokeColor" value="default"/><add as="fontColor" value="default"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="default"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="default"/><add as="fontColor" value="default"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="edgeLabel" extend="text"><add as="labelBackgroundColor" value="default"/><add as="fontSize" value="11"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="default"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="default"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="default"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="default"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add></mxStylesheet>').documentElement;
+"4px";document.body.style.backgroundColor="transparent";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";I.style.visibility="hidden";F.style.visibility="hidden";G.style.display="none"}"1"==urlParams.prefetchFonts&&m.editor.loadFonts()}}};(function(){var b=!1;"min"!=uiTheme||b||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),b=!0);var c=EditorUi.initTheme;EditorUi.initTheme=function(){c.apply(this,arguments);"min"!=uiTheme||b||(this.initMinimalTheme(),b=!0)}})();DrawioComment=function(b,c,e,f,n,l,q){this.file=b;this.id=c;this.content=e;this.modifiedDate=f;this.createdDate=n;this.isResolved=l;this.user=q;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,c,e,f,n){c()};DrawioComment.prototype.editComment=function(b,c,e){c()};DrawioComment.prototype.deleteComment=function(b,c){b()};DrawioUser=function(b,c,e,f,n){this.id=b;this.email=c;this.displayName=e;this.pictureUrl=f;this.locale=n};mxResources.parse('# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*\n# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE\nabout=About\naboutDrawio=About draw.io\naccessDenied=Access Denied\naction=Action\nactualSize=Actual Size\nadd=Add\naddAccount=Add account\naddedFile=Added {1}\naddImages=Add Images\naddImageUrl=Add Image URL\naddLayer=Add Layer\naddProperty=Add Property\naddress=Address\naddToExistingDrawing=Add to Existing Drawing\naddWaypoint=Add Waypoint\nadjustTo=Adjust to\nadvanced=Advanced\nalign=Align\nalignment=Alignment\nallChangesLost=All changes will be lost!\nallPages=All Pages\nallProjects=All Projects\nallSpaces=All Spaces\nallTags=All Tags\nanchor=Anchor\nandroid=Android\nangle=Angle\narc=Arc\nareYouSure=Are you sure?\nensureDataSaved=Please ensure your data is saved before closing.\nallChangesSaved=All changes saved\nallChangesSavedInDrive=All changes saved in Drive\nallowPopups=Allow pop-ups to avoid this dialog.\nallowRelativeUrl=Allow relative URL\nalreadyConnected=Nodes already connected\napply=Apply\narchiMate21=ArchiMate 2.1\narrange=Arrange\narrow=Arrow\narrows=Arrows\nasNew=As New\natlas=Atlas\nauthor=Author\nauthorizationRequired=Authorization required\nauthorizeThisAppIn=Authorize this app in {1}:\nauthorize=Authorize\nauthorizing=Authorizing\nautomatic=Automatic\nautosave=Autosave\nautosize=Autosize\nattachments=Attachments\naws=AWS\naws3d=AWS 3D\nazure=Azure\nback=Back\nbackground=Background\nbackgroundColor=Background Color\nbackgroundImage=Background Image\nbasic=Basic\nbeta=beta\nblankDrawing=Blank Drawing\nblankDiagram=Blank Diagram\nblock=Block\nblockquote=Blockquote\nblog=Blog\nbold=Bold\nbootstrap=Bootstrap\nborder=Border\nborderColor=Border Color\nborderWidth=Border Width\nbottom=Bottom\nbottomAlign=Bottom Align\nbottomLeft=Bottom Left\nbottomRight=Bottom Right\nbpmn=BPMN\nbringForward=Bring Forward\nbrowser=Browser\nbulletedList=Bulleted List\nbusiness=Business\nbusy=Operation in progress\ncabinets=Cabinets\ncancel=Cancel\ncenter=Center\ncannotLoad=Load attempts failed. Please try again later.\ncannotLogin=Log in attempts failed. Please try again later.\ncannotOpenFile=Cannot open file\nchange=Change\nchangeOrientation=Change Orientation\nchangeUser=Change user\nchangeStorage=Change storage\nchangesNotSaved=Changes have not been saved\nclassDiagram=Class Diagram\nuserJoined={1} has joined\nuserLeft={1} has left\nchatWindowTitle=Chat\nchooseAnOption=Choose an option\nchromeApp=Chrome App\ncollaborativeEditingNotice=Important Notice for Collaborative Editing\ncompare=Compare\ncompressed=Compressed\ncommitMessage=Commit Message\nconfigLinkWarn=This link configures draw.io. Only click OK if you trust whoever gave you it!\nconfigLinkConfirm=Click OK to configure and restart draw.io.\ncontainer=Container\ncsv=CSV\ndark=Dark\ndiagramXmlDesc=XML File\ndiagramHtmlDesc=HTML File\ndiagramPngDesc=Editable Bitmap Image\ndiagramSvgDesc=Editable Vector Image\ndidYouMeanToExportToPdf=Did you mean to export to PDF?\ndraftFound=A draft for \'{1}\' has been found. Load it into the editor or discard it to continue.\ndraftRevisionMismatch=There is a different version of this diagram on a shared draft of this page. Please edit the diagram from the draft to ensure you are working with the latest version.\nselectDraft=Select a draft to continue editing:\ndragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?\ndropboxCharsNotAllowed=The following characters are not allowed: / : ? * " |\ncheck=Check\nchecksum=Checksum\ncircle=Circle\ncisco=Cisco\nclassic=Classic\nclearDefaultStyle=Clear Default Style\nclearWaypoints=Clear Waypoints\nclipart=Clipart\nclose=Close\nclosingFile=Closing file\nrealtimeCollaboration=Real-Time Collaboration\ncollaborator=Collaborator\ncollaborators=Collaborators\ncollapse=Collapse\ncollapseExpand=Collapse/Expand\ncollapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size\ncollapsible=Collapsible\ncomic=Comic\ncomment=Comment\ncommentsNotes=Comments/Notes\ncompress=Compress\nconfiguration=Configuration\nconnect=Connect\nconnecting=Connecting\nconnectWithDrive=Connect with Google Drive\nconnection=Connection\nconnectionArrows=Connection Arrows\nconnectionPoints=Connection Points\nconstrainProportions=Constrain Proportions\ncontainsValidationErrors=Contains validation errors\ncopiedToClipboard=Copied to clipboard\ncopy=Copy\ncopyConnect=Copy on connect\ncopyCreated=A copy of the file was created.\ncopyData=Copy Data\ncopyOf=Copy of {1}\ncopyOfDrawing=Copy of Drawing\ncopySize=Copy Size\ncopyStyle=Copy Style\ncreate=Create\ncreateNewDiagram=Create New Diagram\ncreateRevision=Create Revision\ncreateShape=Create Shape\ncrop=Crop\ncurved=Curved\ncustom=Custom\ncurrent=Current\ncurrentPage=Current page\ncut=Cut\ndashed=Dashed\ndecideLater=Decide later\ndefault=Default\ndelete=Delete\ndeleteColumn=Delete Column\ndeleteLibrary401=Insufficient permissions to delete this library\ndeleteLibrary404=Selected library could not be found\ndeleteLibrary500=Error deleting library\ndeleteLibraryConfirm=You are about to permanently delete this library. Are you sure you want to do this?\ndeleteRow=Delete Row\ndescription=Description\ndevice=Device\ndiagram=Diagram\ndiagramContent=Diagram Content\ndiagramLocked=Diagram has been locked to prevent further data loss.\ndiagramLockedBySince=The diagram is locked by {1} since {2} ago\ndiagramName=Diagram Name\ndiagramIsPublic=Diagram is public\ndiagramIsNotPublic=Diagram is not public\ndiamond=Diamond\ndiamondThin=Diamond (thin)\ndidYouKnow=Did you know...\ndirection=Direction\ndiscard=Discard\ndiscardChangesAndReconnect=Discard Changes and Reconnect\ngoogleDriveMissingClickHere=Google Drive missing? Click here!\ndiscardChanges=Discard Changes\ndisconnected=Disconnected\ndistribute=Distribute\ndone=Done\ndoNotShowAgain=Do not show again\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Get Desktop\ndownloadAs=Download as\nclickHereToSave=Click here to save.\ndpi=DPI\ndraftDiscarded=Draft discarded\ndraftSaved=Draft saved\ndragElementsHere=Drag elements here\ndragImagesHere=Drag images or URLs here\ndragUrlsHere=Drag URLs here\ndraw.io=draw.io\ndrawing=Drawing{1}\ndrawingEmpty=Drawing is empty\ndrawingTooLarge=Drawing is too large\ndrawioForWork=Draw.io for GSuite\ndropbox=Dropbox\nduplicate=Duplicate\nduplicateIt=Duplicate {1}\ndivider=Divider\ndx=Dx\ndy=Dy\neast=East\nedit=Edit\neditData=Edit Data\neditDiagram=Edit Diagram\neditGeometry=Edit Geometry\neditImage=Edit Image\neditImageUrl=Edit Image URL\neditLink=Edit Link\neditShape=Edit Shape\neditStyle=Edit Style\neditText=Edit Text\neditTooltip=Edit Tooltip\nglass=Glass\ngoogleImages=Google Images\nimageSearch=Image Search\neip=EIP\nembed=Embed\nembedFonts=Embed Fonts\nembedImages=Embed Images\nmainEmbedNotice=Paste this into the page\nelectrical=Electrical\nellipse=Ellipse\nembedNotice=Paste this once at the end of the page\nenterGroup=Enter Group\nenterName=Enter Name\nenterPropertyName=Enter Property Name\nenterValue=Enter Value\nentityRelation=Entity Relation\nentityRelationshipDiagram=Entity Relationship Diagram\nerror=Error\nerrorDeletingFile=Error deleting file\nerrorLoadingFile=Error loading file\nerrorRenamingFile=Error renaming file\nerrorRenamingFileNotFound=Error renaming file. File was not found.\nerrorRenamingFileForbidden=Error renaming file. Insufficient access rights.\nerrorSavingDraft=Error saving draft\nerrorSavingFile=Error saving file\nerrorSavingFileUnknown=Error authorizing with Google\'s servers. Please refresh the page to re-attempt.\nerrorSavingFileForbidden=Error saving file. Insufficient access rights.\nerrorSavingFileNameConflict=Could not save diagram. Current page already contains file named \'{1}\'.\nerrorSavingFileNotFound=Error saving file. File was not found.\nerrorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.\nerrorSavingFileSessionTimeout=Your session has ended. Please <a target=\'_blank\' href=\'{1}\'>{2}</a> and return to this tab to try to save again.\nerrorSendingFeedback=Error sending feedback.\nerrorUpdatingPreview=Error updating preview.\nexit=Exit\nexitGroup=Exit Group\nexpand=Expand\nexport=Export\nexporting=Exporting\nexportAs=Export as\nexportOptionsDisabled=Export options disabled\nexportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.\nexternalChanges=External Changes\nextras=Extras\nfacebook=Facebook\nfailedToSaveTryReconnect=Failed to save, trying to reconnect\nfeatureRequest=Feature Request\nfeedback=Feedback\nfeedbackSent=Feedback successfully sent.\nfloorplans=Floorplans\nfile=File\nfileChangedOverwriteDialog=The file has been modified. Do you want to save the file and overwrite those changes?\nfileChangedSyncDialog=The file has been modified.\nfileChangedSync=The file has been modified. Click here to synchronize.\noverwrite=Overwrite\nsynchronize=Synchronize\nfilename=Filename\nfileExists=File already exists\nfileMovedToTrash=File was moved to trash\nfileNearlyFullSeeFaq=File nearly full, please see FAQ\nfileNotFound=File not found\nrepositoryNotFound=Repository not found\nfileNotFoundOrDenied=The file was not found. It does not exist or you do not have access.\nfileNotLoaded=File not loaded\nfileNotSaved=File not saved\nfileOpenLocation=How would you like to open these file(s)?\nfiletypeHtml=.html causes file to save as HTML with redirect to cloud URL\nfiletypePng=.png causes file to save as PNG with embedded data\nfiletypeSvg=.svg causes file to save as SVG with embedded data\nfileWillBeSavedInAppFolder={1} will be saved in the app folder.\nfill=Fill\nfillColor=Fill Color\nfilterCards=Filter Cards\nfind=Find\nfit=Fit\nfitContainer=Resize Container\nfitIntoContainer=Fit into Container\nfitPage=Fit Page\nfitPageWidth=Fit Page Width\nfitTo=Fit to\nfitToSheetsAcross=sheet(s) across\nfitToBy=by\nfitToSheetsDown=sheet(s) down\nfitTwoPages=Two Pages\nfitWindow=Fit Window\nflip=Flip\nflipH=Flip Horizontal\nflipV=Flip Vertical\nflowchart=Flowchart\nfolder=Folder\nfont=Font\nfontColor=Font Color\nfontFamily=Font Family\nfontSize=Font Size\nforbidden=You are not authorized to access this file\nformat=Format\nformatPanel=Format Panel\nformatted=Formatted\nformattedText=Formatted Text\nformatPng=PNG\nformatGif=GIF\nformatJpg=JPEG\nformatPdf=PDF\nformatSql=SQL\nformatSvg=SVG\nformatHtmlEmbedded=HTML\nformatSvgEmbedded=SVG (with XML)\nformatVsdx=VSDX\nformatVssx=VSSX\nformatXmlPlain=XML (Plain)\nformatXml=XML\nforum=Discussion/Help Forums\nfreehand=Freehand\nfromTemplate=From Template\nfromTemplateUrl=From Template URL\nfromText=From Text\nfromUrl=From URL\nfromThisPage=From this page\nfullscreen=Fullscreen\ngap=Gap\ngcp=GCP\ngeneral=General\ngetNotionChromeExtension=Get the Notion Chrome Extension\ngithub=GitHub\ngitlab=GitLab\ngliffy=Gliffy\nglobal=Global\ngoogleDocs=Google Docs\ngoogleDrive=Google Drive\ngoogleGadget=Google Gadget\ngooglePlus=Google+\ngoogleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:\ngoogleSlides=Google Slides\ngoogleSites=Google Sites\ngoogleSheets=Google Sheets\ngradient=Gradient\ngradientColor=Color\ngrid=Grid\ngridColor=Grid Color\ngridSize=Grid Size\ngroup=Group\nguides=Guides\nhateApp=I hate draw.io\nheading=Heading\nheight=Height\nhelp=Help\nhelpTranslate=Help us translate this application\nhide=Hide\nhideIt=Hide {1}\nhidden=Hidden\nhome=Home\nhorizontal=Horizontal\nhorizontalFlow=Horizontal Flow\nhorizontalTree=Horizontal Tree\nhowTranslate=How good is the translation in your language?\nhtml=HTML\nhtmlText=HTML Text\nid=ID\niframe=IFrame\nignore=Ignore\nimage=Image\nimageUrl=Image URL\nimages=Images\nimagePreviewError=This image couldn\'t be loaded for preview. Please check the URL.\nimageTooBig=Image too big\nimgur=Imgur\nimport=Import\nimportFrom=Import from\nincludeCopyOfMyDiagram=Include a copy of my diagram\nincreaseIndent=Increase Indent\ndecreaseIndent=Decrease Indent\ninsert=Insert\ninsertColumnBefore=Insert Column Left\ninsertColumnAfter=Insert Column Right\ninsertEllipse=Insert Ellipse\ninsertImage=Insert Image\ninsertHorizontalRule=Insert Horizontal Rule\ninsertLink=Insert Link\ninsertPage=Insert Page\ninsertRectangle=Insert Rectangle\ninsertRhombus=Insert Rhombus\ninsertRowBefore=Insert Row Above\ninsertRowAfter=Insert Row After\ninsertText=Insert Text\ninserting=Inserting\ninstallApp=Install App\ninvalidFilename=Diagram names must not contain the following characters: / | : ; { } < > & + ? = "\ninvalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.\ninvalidInput=Invalid input\ninvalidName=Invalid name\ninvalidOrMissingFile=Invalid or missing file\ninvalidPublicUrl=Invalid public URL\nisometric=Isometric\nios=iOS\nitalic=Italic\nkennedy=Kennedy\nkeyboardShortcuts=Keyboard Shortcuts\nlabels=Labels\nlayers=Layers\nlandscape=Landscape\nlanguage=Language\nleanMapping=Lean Mapping\nlastChange=Last change {1} ago\nlessThanAMinute=less than a minute\nlicensingError=Licensing Error\nlicenseHasExpired=The license for {1} has expired on {2}. Click here.\nlicenseRequired=This feature requires draw.io to be licensed.\nlicenseWillExpire=The license for {1} will expire on {2}. Click here.\nlineJumps=Line jumps\nlinkAccountRequired=If the diagram is not public a Google account is required to view the link.\nlinkText=Link Text\nlist=List\nminute=minute\nminutes=minutes\nhours=hours\ndays=days\nmonths=months\nyears=years\nrestartForChangeRequired=Changes will take effect after a restart of the application.\nlaneColor=Lanecolor\nlastModified=Last modified\nlayout=Layout\nleft=Left\nleftAlign=Left Align\nleftToRight=Left to right\nlibraryTooltip=Drag and drop shapes here or click + to insert. Double click to edit.\nlightbox=Lightbox\nline=Line\nlineend=Line end\nlineheight=Line Height\nlinestart=Line start\nlinewidth=Linewidth\nlink=Link\nlinks=Links\nloading=Loading\nlockUnlock=Lock/Unlock\nloggedOut=Logged Out\nlogIn=log in\nloveIt=I love {1}\nlucidchart=Lucidchart\nmaps=Maps\nmathematicalTypesetting=Mathematical Typesetting\nmakeCopy=Make a Copy\nmanual=Manual\nmerge=Merge\nmermaid=Mermaid\nmicrosoftOffice=Microsoft Office\nmicrosoftExcel=Microsoft Excel\nmicrosoftPowerPoint=Microsoft PowerPoint\nmicrosoftWord=Microsoft Word\nmiddle=Middle\nminimal=Minimal\nmisc=Misc\nmockups=Mockups\nmodificationDate=Modification date\nmodifiedBy=Modified by\nmore=More\nmoreResults=More Results\nmoreShapes=More Shapes\nmove=Move\nmoveToFolder=Move to Folder\nmoving=Moving\nmoveSelectionTo=Move selection to {1}\nname=Name\nnavigation=Navigation\nnetwork=Network\nnetworking=Networking\nnew=New\nnewLibrary=New Library\nnextPage=Next Page\nno=No\nnoPickFolder=No, pick folder\nnoAttachments=No attachments found\nnoColor=No Color\nnoFiles=No Files\nnoFileSelected=No file selected\nnoLibraries=No libraries found\nnoMoreResults=No more results\nnone=None\nnoOtherViewers=No other viewers\nnoPlugins=No plugins\nnoPreview=No preview\nnoResponse=No response from server\nnoResultsFor=No results for \'{1}\'\nnoRevisions=No revisions\nnoSearchResults=No search results found\nnoPageContentOrNotSaved=No anchors found on this page or it hasn\'t been saved yet\nnormal=Normal\nnorth=North\nnotADiagramFile=Not a diagram file\nnotALibraryFile=Not a library file\nnotAvailable=Not available\nnotAUtf8File=Not a UTF-8 file\nnotConnected=Not connected\nnote=Note\nnotion=Notion\nnotSatisfiedWithImport=Not satisfied with the import?\nnotUsingService=Not using {1}?\nnumberedList=Numbered list\noffline=Offline\nok=OK\noneDrive=OneDrive\nonline=Online\nopacity=Opacity\nopen=Open\nopenArrow=Open Arrow\nopenExistingDiagram=Open Existing Diagram\nopenFile=Open File\nopenFrom=Open from\nopenLibrary=Open Library\nopenLibraryFrom=Open Library from\nopenLink=Open Link\nopenInNewWindow=Open in New Window\nopenInThisWindow=Open in This Window\nopenIt=Open {1}\nopenRecent=Open Recent\nopenSupported=Supported formats are files saved from this software (.xml), .vsdx and .gliffy\noptions=Options\norganic=Organic\norgChart=Org Chart\northogonal=Orthogonal\notherViewer=other viewer\notherViewers=other viewers\noutline=Outline\noval=Oval\npage=Page\npageContent=Page Content\npageNotFound=Page not found\npageWithNumber=Page-{1}\npages=Pages\npageView=Page View\npageSetup=Page Setup\npageScale=Page Scale\npan=Pan\npanTooltip=Space+Drag to pan\npaperSize=Paper Size\npattern=Pattern\nparallels=Parallels\npaste=Paste\npasteData=Paste Data\npasteHere=Paste here\npasteSize=Paste Size\npasteStyle=Paste Style\nperimeter=Perimeter\npermissionAnyone=Anyone can edit\npermissionAuthor=Owner and admins can edit\npickFolder=Pick a folder\npickLibraryDialogTitle=Select Library\npublicDiagramUrl=Public URL of the diagram\nplaceholders=Placeholders\nplantUml=PlantUML\nplugins=Plugins\npluginUrl=Plugin URL\npluginWarning=The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n\nplusTooltip=Click to connect and clone (ctrl+click to clone, shift+click to connect). Drag to connect (ctrl+drag to clone).\nportrait=Portrait\nposition=Position\nposterPrint=Poster Print\npreferences=Preferences\npreview=Preview\npreviousPage=Previous Page\nprint=Print\nprintAllPages=Print All Pages\nprocEng=Proc. Eng.\nproject=Project\npriority=Priority\nproperties=Properties\npublish=Publish\nquickStart=Quick Start Video\nrack=Rack\nradial=Radial\nradialTree=Radial Tree\nreadOnly=Read-only\nreconnecting=Reconnecting\nrecentlyUpdated=Recently Updated\nrecentlyViewed=Recently Viewed\nrectangle=Rectangle\nredirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.\nrealtimeTimeout=It looks like you\'ve made a few changes while offline. We\'re sorry, these changes cannot be saved.\nredo=Redo\nrefresh=Refresh\nregularExpression=Regular Expression\nrelative=Relative\nrelativeUrlNotAllowed=Relative URL not allowed\nrememberMe=Remember me\nrememberThisSetting=Remember this setting\nremoveFormat=Clear Formatting\nremoveFromGroup=Remove from Group\nremoveIt=Remove {1}\nremoveWaypoint=Remove Waypoint\nrename=Rename\nrenamed=Renamed\nrenameIt=Rename {1}\nrenaming=Renaming\nreplace=Replace\nreplaceIt={1} already exists. Do you want to replace it?\nreplaceExistingDrawing=Replace existing drawing\nrequired=required\nreset=Reset\nresetView=Reset View\nresize=Resize\nresizeLargeImages=Do you want to resize large images to make the application run faster?\nretina=Retina\nresponsive=Responsive\nrestore=Restore\nrestoring=Restoring\nretryingIn=Retrying in {1} second(s)\nretryingLoad=Load failed. Retrying...\nretryingLogin=Login time out. Retrying...\nreverse=Reverse\nrevision=Revision\nrevisionHistory=Revision History\nrhombus=Rhombus\nright=Right\nrightAlign=Right Align\nrightToLeft=Right to left\nrotate=Rotate\nrotateTooltip=Click and drag to rotate, click to turn shape only by 90 degrees\nrotation=Rotation\nrounded=Rounded\nsave=Save\nsaveAndExit=Save & Exit\nsaveAs=Save as\nsaveAsXmlFile=Save as XML file?\nsaved=Saved\nsaveDiagramFirst=Please save the diagram first\nsaveDiagramsTo=Save diagrams to\nsaveLibrary403=Insufficient permissions to edit this library\nsaveLibrary500=There was an error while saving the library\nsaveLibraryReadOnly=Could not save library while read-only mode is active\nsaving=Saving\nscratchpad=Scratchpad\nscrollbars=Scrollbars\nsearch=Search\nsearchShapes=Search Shapes\nselectAll=Select All\nselectionOnly=Selection Only\nselectCard=Select Card\nselectEdges=Select Edges\nselectFile=Select File\nselectFolder=Select Folder\nselectFont=Select Font\nselectNone=Select None\nselectTemplate=Select Template\nselectVertices=Select Vertices\nsendBackward=Send Backward\nsendMessage=Send\nsendYourFeedback=Send your feedback\nserviceUnavailableOrBlocked=Service unavailable or blocked\nsessionExpired=Your session has expired. Please refresh the browser window.\nsessionTimeoutOnSave=Your session has timed out and you have been disconnected from the Google Drive. Press OK to login and save.\nsetAsDefaultStyle=Set as Default Style\nshadow=Shadow\nshape=Shape\nshapes=Shapes\nshare=Share\nshareCursor=Share Cursor\nshareLink=Link for shared editing\nsharingAvailable=Sharing available for Google Drive and OneDrive files.\nsharp=Sharp\nshow=Show\nshowStartScreen=Show Start Screen\nsidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.\nsigns=Signs\nsignOut=Sign out\nsimple=Simple\nsimpleArrow=Simple Arrow\nsimpleViewer=Simple Viewer\nsize=Size\nsketch=Sketch\nsnapToGrid=Snap to Grid\nsolid=Solid\nsourceSpacing=Source Spacing\nsouth=South\nsoftware=Software\nspace=Space\nspacing=Spacing\nspecialLink=Special Link\nstandard=Standard\nstartDrawing=Start drawing\nstopDrawing=Stop drawing\nstarting=Starting\nstraight=Straight\nstrikethrough=Strikethrough\nstrokeColor=Line Color\nstyle=Style\nsubscript=Subscript\nsummary=Summary\nsuperscript=Superscript\nsupport=Support\nswimlaneDiagram=Swimlane Diagram\nsysml=SysML\ntags=Tags\ntable=Table\ntables=Tables\ntakeOver=Take Over\ntargetSpacing=Target Spacing\ntemplate=Template\ntemplates=Templates\ntext=Text\ntextAlignment=Text Alignment\ntextOpacity=Text Opacity\ntheme=Theme\ntimeout=Timeout\ntitle=Title\nto=to\ntoBack=To Back\ntoFront=To Front\ntooLargeUseDownload=Too large, use download instead.\ntoolbar=Toolbar\ntooltips=Tooltips\ntop=Top\ntopAlign=Top Align\ntopLeft=Top Left\ntopRight=Top Right\ntransparent=Transparent\ntransparentBackground=Transparent Background\ntrello=Trello\ntryAgain=Try again\ntryOpeningViaThisPage=Try opening via this page\nturn=Rotate shape only by 90°\ntype=Type\ntwitter=Twitter\numl=UML\nunderline=Underline\nundo=Undo\nungroup=Ungroup\nunmerge=Unmerge\nunsavedChanges=Unsaved changes\nunsavedChangesClickHereToSave=Unsaved changes. Click here to save.\nuntitled=Untitled\nuntitledDiagram=Untitled Diagram\nuntitledLayer=Untitled Layer\nuntitledLibrary=Untitled Library\nunknownError=Unknown error\nupdateFile=Update {1}\nupdatingDocument=Updating Document. Please wait...\nupdatingPreview=Updating Preview. Please wait...\nupdatingSelection=Updating Selection. Please wait...\nupload=Upload\nurl=URL\nuseOffline=Use Offline\nuseRootFolder=Use root folder?\nuserManual=User Manual\nvertical=Vertical\nverticalFlow=Vertical Flow\nverticalTree=Vertical Tree\nview=View\nviewerSettings=Viewer Settings\nviewUrl=Link to view: {1}\nvoiceAssistant=Voice Assistant (beta)\nwarning=Warning\nwaypoints=Waypoints\nwest=West\nwidth=Width\nwiki=Wiki\nwordWrap=Word Wrap\nwritingDirection=Writing Direction\nyes=Yes\nyourEmailAddress=Your email address\nzoom=Zoom\nzoomIn=Zoom In\nzoomOut=Zoom Out\nbasic=Basic\nbusinessprocess=Business Processes\ncharts=Charts\nengineering=Engineering\nflowcharts=Flowcharts\ngmdl=Material Design\nmindmaps=Mindmaps\nmockups=Mockups\nnetworkdiagrams=Network Diagrams\nnothingIsSelected=Nothing is selected\nother=Other\nsoftwaredesign=Software Design\nvenndiagrams=Venn Diagrams\nwebEmailOrOther=Web, email or any other internet address\nwebLink=Web Link\nwireframes=Wireframes\nproperty=Property\nvalue=Value\nshowMore=Show More\nshowLess=Show Less\nmyDiagrams=My Diagrams\nallDiagrams=All Diagrams\nrecentlyUsed=Recently used\nlistView=List view\ngridView=Grid view\nresultsFor=Results for \'{1}\'\noneDriveCharsNotAllowed=The following characters are not allowed: ~ " # % * : < > ? / { | }\noneDriveInvalidDeviceName=The specified device name is invalid\nofficeNotLoggedOD=You are not logged in to OneDrive. Please open draw.io task pane and login first.\nofficeSelectSingleDiag=Please select a single draw.io diagram only without other contents.\nofficeSelectDiag=Please select a draw.io diagram.\nofficeCannotFindDiagram=Cannot find a draw.io diagram in the selection\nnoDiagrams=No diagrams found\nauthFailed=Authentication failed\nofficeFailedAuthMsg=Unable to successfully authenticate user or authorize application.\nconvertingDiagramFailed=Converting diagram failed\nofficeCopyImgErrMsg=Due to some limitations in the host application, the image could not be inserted. Please manually copy the image then paste it to the document.\ninsertingImageFailed=Inserting image failed\nofficeCopyImgInst=Instructions: Right-click the image below. Select "Copy image" from the context menu. Then, in the document, right-click and select "Paste" from the context menu.\nfolderEmpty=Folder is empty\nrecent=Recent\nsharedWithMe=Shared With Me\nsharepointSites=Sharepoint Sites\nerrorFetchingFolder=Error fetching folder items\nerrorAuthOD=Error authenticating to OneDrive\nofficeMainHeader=Adds draw.io diagrams to your document.\nofficeStepsHeader=This add-in performs the following steps:\nofficeStep1=Connects to Microsoft OneDrive, Google Drive or your device.\nofficeStep2=Select a draw.io diagram.\nofficeStep3=Insert the diagram into the document.\nofficeAuthPopupInfo=Please complete the authentication in the pop-up window.\nofficeSelDiag=Select draw.io Diagram:\nfiles=Files\nshared=Shared\nsharepoint=Sharepoint\nofficeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.\nofficeClickToEdit=Click icon to start editing:\npasteDiagram=Paste draw.io diagram here\nconnectOD=Connect to OneDrive\nselectChildren=Select Children\nselectSiblings=Select Siblings\nselectParent=Select Parent\nselectDescendants=Select Descendants\nlastSaved=Last saved {1} ago\nresolve=Resolve\nreopen=Re-open\nshowResolved=Show Resolved\nreply=Reply\nobjectNotFound=Object not found\nreOpened=Re-opened\nmarkedAsResolved=Marked as resolved\nnoCommentsFound=No comments found\ncomments=Comments\ntimeAgo={1} ago\nconfluenceCloud=Confluence Cloud\nlibraries=Libraries\nconfAnchor=Confluence Page Anchor\nconfTimeout=The connection has timed out\nconfSrvTakeTooLong=The server at {1} is taking too long to respond.\nconfCannotInsertNew=Cannot insert draw.io diagram to a new Confluence page\nconfSaveTry=Please save the page and try again.\nconfCannotGetID=Unable to determine page ID\nconfContactAdmin=Please contact your Confluence administrator.\nreadErr=Read Error\neditingErr=Editing Error\nconfExtEditNotPossible=This diagram cannot be edited externally. Please try editing it while editing the page\nconfEditedExt=Diagram/Page edited externally\ndiagNotFound=Diagram Not Found\nconfEditedExtRefresh=Diagram/Page is edited externally. Please refresh the page.\nconfCannotEditDraftDelOrExt=Cannot edit diagrams in a draft page, diagram is deleted from the page, or diagram is edited externally. Please check the page.\nretBack=Return back\nconfDiagNotPublished=The diagram does not belong to a published page\ncreatedByDraw=Created by draw.io\nfilenameShort=Filename too short\ninvalidChars=Invalid characters\nalreadyExst={1} already exists\ndraftReadErr=Draft Read Error\ndiagCantLoad=Diagram cannot be loaded\ndraftWriteErr=Draft Write Error\ndraftCantCreate=Draft could not be created\nconfDuplName=Duplicate diagram name detected. Please pick another name.\nconfSessionExpired=Looks like your session expired. Log in again to keep working.\nlogin=Login\ndrawPrev=draw.io preview\ndrawDiag=draw.io diagram\ninvalidCallFnNotFound=Invalid Call: {1} not found\ninvalidCallErrOccured=Invalid Call: An error occurred, {1}\nanonymous=Anonymous\nconfGotoPage=Go to containing page\nshowComments=Show Comments\nconfError=Error: {1}\ngliffyImport=Gliffy Import\ngliffyImportInst1=Click the "Start Import" button to import all Gliffy diagrams to draw.io.\ngliffyImportInst2=Please note that the import procedure will take some time and the browser window must remain open until the import is completed.\nstartImport=Start Import\ndrawConfig=draw.io Configuration\ncustomLib=Custom Libraries\ncustomTemp=Custom Templates\npageIdsExp=Page IDs Export\ndrawReindex=draw.io re-indexing (beta)\nworking=Working\ndrawConfigNotFoundInst=draw.io Configuration Space (DRAWIOCONFIG) does not exist. This space is needed to store draw.io configuration files and custom libraries/templates.\ncreateConfSp=Create Config Space\nunexpErrRefresh=Unexpected error, please refresh the page and try again.\nconfigJSONInst=Write draw.io JSON configuration in the editor below then click save. If you need help, please refer to\nthisPage=this page\ncurCustLib=Current Custom Libraries\nlibName=Library Name\naction=Action\ndrawConfID=draw.io Config ID\naddLibInst=Click the "Add Library" button to upload a new library.\naddLib=Add Library\ncustomTempInst1=Custom templates are draw.io diagrams saved in children pages of\ncustomTempInst2=For more details, please refer to\ntempsPage=Templates page\npageIdsExpInst1=Select export target, then click the "Start Export" button to export all pages IDs.\npageIdsExpInst2=Please note that the export procedure will take some time and the browser window must remain open until the export is completed.\nstartExp=Start Export\nrefreshDrawIndex=Refresh draw.io Diagrams Index\nreindexInst1=Click the "Start Indexing" button to refresh draw.io diagrams index.\nreindexInst2=Please note that the indexing procedure will take some time and the browser window must remain open until the indexing is completed.\nstartIndexing=Start Indexing\nconfAPageFoundFetch=Page "{1}" found. Fetching\nconfAAllDiagDone=All {1} diagrams processed. Process finished.\nconfAStartedProcessing=Started processing page "{1}"\nconfAAllDiagInPageDone=All {1} diagrams in page "{2}" processed successfully.\nconfAPartialDiagDone={1} out of {2} {3} diagrams in page "{4}" processed successfully.\nconfAUpdatePageFailed=Updating page "{1}" failed.\nconfANoDiagFoundInPage=No {1} diagrams found in page "{2}".\nconfAFetchPageFailed=Fetching the page failed.\nconfANoDiagFound=No {1} diagrams found. Process finished.\nconfASearchFailed=Searching for {1} diagrams failed. Please try again later.\nconfAGliffyDiagFound={2} diagram "{1}" found. Importing\nconfAGliffyDiagImported={2} diagram "{1}" imported successfully.\nconfASavingImpGliffyFailed=Saving imported {2} diagram "{1}" failed.\nconfAImportedFromByDraw=Imported from "{1}" by draw.io\nconfAImportGliffyFailed=Importing {2} diagram "{1}" failed.\nconfAFetchGliffyFailed=Fetching {2} diagram "{1}" failed.\nconfACheckBrokenDiagLnk=Checking for broken diagrams links.\nconfADelDiagLinkOf=Deleting diagram link of "{1}"\nconfADupLnk=(duplicate link)\nconfADelDiagLnkFailed=Deleting diagram link of "{1}" failed.\nconfAUnexpErrProcessPage=Unexpected error during processing the page with id: {1}\nconfADiagFoundIndex=Diagram "{1}" found. Indexing\nconfADiagIndexSucc=Diagram "{1}" indexed successfully.\nconfAIndexDiagFailed=Indexing diagram "{1}" failed.\nconfASkipDiagOtherPage=Skipped "{1}" as it belongs to another page!\nconfADiagUptoDate=Diagram "{1}" is up to date.\nconfACheckPagesWDraw=Checking pages having draw.io diagrams.\nconfAErrOccured=An error occurred!\nsavedSucc=Saved successfully\nconfASaveFailedErr=Saving Failed (Unexpected Error)\ncharacter=Character\nconfAConfPageDesc=This page contains draw.io configuration file (configuration.json) as attachment\nconfALibPageDesc=This page contains draw.io custom libraries as attachments\nconfATempPageDesc=This page contains draw.io custom templates as attachments\nworking=Working\nconfAConfSpaceDesc=This space is used to store draw.io configuration files and custom libraries/templates\nconfANoCustLib=No Custom Libraries\ndelFailed=Delete failed!\nshowID=Show ID\nconfAIncorrectLibFileType=Incorrect file type. Libraries should be XML files.\nuploading=Uploading\nconfALibExist=This library already exists\nconfAUploadSucc=Uploaded successfully\nconfAUploadFailErr=Upload Failed (Unexpected Error)\nhiResPreview=High Res Preview\nofficeNotLoggedGD=You are not logged in to Google Drive. Please open draw.io task pane and login first.\nofficePopupInfo=Please complete the process in the pop-up window.\npickODFile=Pick OneDrive File\ncreateODFile=Create OneDrive File\npickGDriveFile=Pick Google Drive File\ncreateGDriveFile=Create Google Drive File\npickDeviceFile=Pick Device File\nvsdNoConfig="vsdurl" is not configured\nruler=Ruler\nunits=Units\npoints=Points\ninches=Inches\nmillimeters=Millimeters\nconfEditDraftDelOrExt=This diagram is in a draft page, is deleted from the page, or is edited externally. It will be saved as a new attachment version and may not be reflected in the page.\nconfDiagEditedExt=Diagram is edited in another session. It will be saved as a new attachment version but the page will show other session\'s modifications.\nmacroNotFound=Macro Not Found\nconfAInvalidPageIdsFormat=Incorrect Page IDs file format\nconfACollectingCurPages=Collecting current pages\nconfABuildingPagesMap=Building pages mapping\nconfAProcessDrawDiag=Started processing imported draw.io diagrams\nconfAProcessDrawDiagDone=Finished processing imported draw.io diagrams\nconfAProcessImpPages=Started processing imported pages\nconfAErrPrcsDiagInPage=Error processing draw.io diagrams in page "{1}"\nconfAPrcsDiagInPage=Processing draw.io diagrams in page "{1}"\nconfAImpDiagram=Importing diagram "{1}"\nconfAImpDiagramFailed=Importing diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported.\nconfAImpDiagramError=Error importing diagram "{1}". Cannot fetch or save the diagram. Cannot fix this diagram links.\nconfAUpdateDgrmCCFailed=Updating link to diagram "{1}" failed.\nconfImpDiagramSuccess=Updating diagram "{1}" done successfully.\nconfANoLnksInDrgm=No links to update in: {1}\nconfAUpdateLnkToPg=Updated link to page: "{1}" in diagram: "{2}"\nconfAUpdateLBLnkToPg=Updated lightbox link to page: "{1}" in diagram: "{2}"\nconfAUpdateLnkBase=Updated base URL from: "{1}" to: "{2}" in diagram: "{3}"\nconfAPageIdsImpDone=Page IDs Import finished\nconfAPrcsMacrosInPage=Processing draw.io macros in page "{1}"\nconfAErrFetchPage=Error fetching page "{1}"\nconfAFixingMacro=Fixing macro of diagram "{1}"\nconfAErrReadingExpFile=Error reading export file\nconfAPrcsDiagInPageDone=Processing draw.io diagrams in page "{1}" finished\nconfAFixingMacroSkipped=Fixing macro of diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported.\npageIdsExpTrg=Export target\nconfALucidDiagImgImported={2} diagram "{1}" image extracted successfully\nconfASavingLucidDiagImgFailed=Extracting {2} diagram "{1}" image failed\nconfGetInfoFailed=Fetching file info from {1} failed.\nconfCheckCacheFailed=Cannot get cached file info.\nconfReadFileErr=Cannot read "{1}" file from {2}.\nconfSaveCacheFailed=Unexpected error. Cannot save cached file\norgChartType=Org Chart Type\nlinear=Linear\nhanger2=Hanger 2\nhanger4=Hanger 4\nfishbone1=Fishbone 1\nfishbone2=Fishbone 2\n1ColumnLeft=Single Column Left\n1ColumnRight=Single Column Right\nsmart=Smart\nparentChildSpacing=Parent Child Spacing\nsiblingSpacing=Sibling Spacing\nconfNoPermErr=Sorry, you don\'t have enough permissions to view this embedded diagram from page {1}\ncopyAsImage=Copy as Image\nlucidImport=Lucidchart Import\nlucidImportInst1=Click the "Start Import" button to import all Lucidchart diagrams.\ninstallFirst=Please install {1} first\ndrawioChromeExt=draw.io Chrome Extension\nloginFirstThen=Please login to {1} first, then {2}\nerrFetchDocList=Error: Couldn\'t fetch documents list\nbuiltinPlugins=Built-in Plugins\nextPlugins=External Plugins\nbackupFound=Backup file found\nchromeOnly=This feature only works in Google Chrome\nmsgDeleted=This message has been deleted\nconfAErrFetchDrawList=Error fetching diagrams list. Some diagrams are skipped.\nconfAErrCheckDrawDiag=Cannot check diagram {1}\nconfAErrFetchPageList=Error fetching pages list\nconfADiagImportIncom={1} diagram "{2}" is imported partially and may have missing shapes\ninvalidSel=Invalid selection\ndiagNameEmptyErr=Diagram name cannot be empty\nopenDiagram=Open Diagram\nnewDiagram=New diagram\neditable=Editable\nconfAReimportStarted=Re-import {1} diagrams started...\nspaceFilter=Filter by spaces\ncurViewState=Current Viewer State\npageLayers=Page and Layers\ncustomize=Customize\nfirstPage=First Page (All Layers)\ncurEditorState=Current Editor State\nnoAnchorsFound=No anchors found\nattachment=Attachment\ncurDiagram=Current Diagram\nrecentDiags=Recent Diagrams\ncsvImport=CSV Import\nchooseFile=Choose a file...\nchoose=Choose\ngdriveFname=Google Drive filename\nwidthOfViewer=Width of the viewer (px)\nheightOfViewer=Height of the viewer (px)\nautoSetViewerSize=Automatically set the size of the viewer\nthumbnail=Thumbnail\nprevInDraw=Preview in draw.io\nonedriveFname=OneDrive filename\ndiagFname=Diagram filename\ndiagUrl=Diagram URL\nshowDiag=Show Diagram\ndiagPreview=Diagram Preview\ncsvFileUrl=CSV File URL\ngenerate=Generate\nselectDiag2Insert=Please select a diagram to insert it.\nerrShowingDiag=Unexpected error. Cannot show diagram\nnoRecentDiags=No recent diagrams found\nfetchingRecentFailed=Failed to fetch recent diagrams\nuseSrch2FindDiags=Use the search box to find draw.io diagrams\ncantReadChckPerms=Cannot read the specified diagram. Please check you have read permission on that file.\ncantFetchChckPerms=Cannot fetch diagram info. Please check you have read permission on that file.\nsearchFailed=Searching failed. Please try again later.\nplsTypeStr=Please type a search string.\nunsupportedFileChckUrl=Unsupported file. Please check the specified URL\ndiagNotFoundChckUrl=Diagram not found or cannot be accessed. Please check the specified URL\ncsvNotFoundChckUrl=CSV file not found or cannot be accessed. Please check the specified URL\ncantReadUpload=Cannot read the uploaded diagram\nselect=Select\nerrCantGetIdType=Unexpected Error: Cannot get content id or type.\nerrGAuthWinBlocked=Error: Google Authentication window blocked\nauthDrawAccess=Authorize draw.io to access {1}\nconnTimeout=The connection has timed out\nerrAuthSrvc=Error authenticating to {1}\nplsSelectFile=Please select a file\nmustBgtZ={1} must be greater than zero\ncantLoadPrev=Cannot load file preview.\nerrAccessFile=Error: Access Denied. You do not have permission to access "{1}".\nnoPrevAvail=No preview is available.\npersonalAccNotSup=Personal accounts are not supported.\nerrSavingTryLater=Error occurred during saving, please try again later.\nplsEnterFld=Please enter {1}\ninvalidDiagUrl=Invalid Diagram URL\nunsupportedVsdx=Unsupported vsdx file\nunsupportedImg=Unsupported image file\nunsupportedFormat=Unsupported file format\nplsSelectSingleFile=Please select a single file only\nattCorrupt=Attachment file "{1}" is corrupted\nloadAttFailed=Failed to load attachment "{1}"\nembedDrawDiag=Embed draw.io Diagram\naddDiagram=Add Diagram\nembedDiagram=Embed Diagram\neditOwningPg=Edit owning page\ndeepIndexing=Deep Indexing (Index diagrams that aren\'t used in any page also)\nconfADeepIndexStarted=Deep Indexing Started\nconfADeepIndexDone=Deep Indexing Done\nofficeNoDiagramsSelected=No diagrams found in the selection\nofficeNoDiagramsInDoc=No diagrams found in the document\nofficeNotSupported=This feature is not supported in this host application\nsomeImagesFailed={1} out of {2} failed due to the following errors\nimportingNoUsedDiagrams=Importing {1} Diagrams not used in pages\nimportingDrafts=Importing {1} Diagrams in drafts\nprocessingDrafts=Processing drafts\nupdatingDrafts=Updating drafts\nupdateDrafts=Update drafts\nnotifications=Notifications\ndrawioImp=draw.io Import\nconfALibsImp=Importing draw.io Libraries\nconfALibsImpFailed=Importing {1} library failed\ncontributors=Contributors\ndrawDiagrams=draw.io Diagrams\nerrFileNotFoundOrNoPer=Error: Access Denied. File not found or you do not have permission to access "{1}" on {2}.\nconfACheckPagesWEmbed=Checking pages having embedded draw.io diagrams.\nconfADelBrokenEmbedDiagLnk=Removing broken embedded diagram links\nreplaceWith=Replace with\nreplaceAll=Replace All\nconfASkipDiagModified=Skipped "{1}" as it was modified after initial import\nreplFind=Replace/Find\nmatchesRepl={1} matches replaced\ndraftErrDataLoss=An error occurred while reading the draft file. The diagram cannot be edited now to prevent any possible data loss. Please try again later or contact support.\nibm=IBM\nlinkToDiagramHint=Add a link to this diagram. The diagram can only be edited from the page that owns it.\nlinkToDiagram=Link to Diagram\nchangedBy=Changed By\nlastModifiedOn=Last modified on\nsearchResults=Search Results\nshowAllTemps=Show all templates\nnotionToken=Notion Token\nselectDB=Select Database\nnoDBs=No Databases\ndiagramEdited={1} diagram "{2}" edited\nconfDraftPermissionErr=Draft cannot be written. Do you have attachment write/read permission on this page?\nconfDraftTooBigErr=Draft size is too large. Pease check "Attachment Maximum Size" of "Attachment Settings" in Confluence Configuration?\nowner=Owner\nrepository=Repository\nbranch=Branch\nmeters=Meters\nteamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)\ncontactOwner=Contact Owner\nviewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.\nwebsite=Website\ncheck4Updates=Check for updates\nattWriteFailedRetry={1}: Attachment write failed, trying again in {2} seconds...\nconfPartialPageList=We couldn\'t fetch all pages due to an error in Confluence. Continuing using {1} pages only.\nspellCheck=Spell checker\nnoChange=No Change\nlblToSvg=Convert labels to SVG\ntxtSettings=Text Settings\nLinksLost=Links will be lost\narcSize=Arc Size\neditConnectionPoints=Edit Connection Points\nnotInOffline=Not supported while offline\nnotInDesktop=Not supported in Desktop App\nconfConfigSpaceArchived=draw.io Configuration space (DRAWIOCONFIG) is archived. Please restore it first.\nconfACleanOldVerStarted=Cleaning old diagram draft versions started\nconfACleanOldVerDone=Cleaning old diagram draft versions finished\nconfACleaningFile=Cleaning diagram draft "{1}" old versions\nconfAFileCleaned=Cleaning diagram draft "{1}" done\nconfAFileCleanFailed=Cleaning diagram draft "{1}" failed\nconfACleanOnly=Clean Diagram Drafts Only\nbrush=Brush\n');Graph.prototype.defaultThemes["default-style2"]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="default"/><add as="strokeColor" value="default"/><add as="fontColor" value="default"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="default"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="default"/><add as="fontColor" value="default"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="edgeLabel" extend="text"><add as="labelBackgroundColor" value="default"/><add as="fontSize" value="11"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="default"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="default"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="default"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="default"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add></mxStylesheet>').documentElement;
Graph.prototype.defaultThemes.darkTheme=Graph.prototype.defaultThemes["default-style2"];GraphViewer=function(b,c,e){this.init(b,c,e)};mxUtils.extend(GraphViewer,mxEventSource);GraphViewer.prototype.editBlankUrl="https://app.diagrams.net/";GraphViewer.prototype.imageBaseUrl="https://viewer.diagrams.net/";GraphViewer.prototype.toolbarHeight="BackCompat"==document.compatMode?24:26;GraphViewer.prototype.lightboxChrome=!0;GraphViewer.prototype.lightboxZIndex=999;GraphViewer.prototype.toolbarZIndex=999;GraphViewer.prototype.autoFit=!1;GraphViewer.prototype.autoCrop=!1;
GraphViewer.prototype.autoOrigin=!0;GraphViewer.prototype.center=!1;GraphViewer.prototype.forceCenter=!1;GraphViewer.prototype.allowZoomIn=!1;GraphViewer.prototype.allowZoomOut=!0;GraphViewer.prototype.showTitleAsTooltip=!1;GraphViewer.prototype.checkVisibleState=!0;GraphViewer.prototype.minHeight=28;GraphViewer.prototype.minWidth=100;GraphViewer.prototype.responsive=!1;
GraphViewer.prototype.init=function(b,c,e){this.graphConfig=null!=e?e:{};this.autoFit=null!=this.graphConfig["auto-fit"]?this.graphConfig["auto-fit"]:this.autoFit;this.autoCrop=null!=this.graphConfig["auto-crop"]?this.graphConfig["auto-crop"]:this.autoCrop;this.autoOrigin=null!=this.graphConfig["auto-origin"]?this.graphConfig["auto-origin"]:this.autoOrigin;this.allowZoomOut=null!=this.graphConfig["allow-zoom-out"]?this.graphConfig["allow-zoom-out"]:this.allowZoomOut;this.allowZoomIn=null!=this.graphConfig["allow-zoom-in"]?
@@ -4131,17 +4131,17 @@ this.toolbar&&(this.toolbar.style.width=Math.max(this.minToolbarWidth,b.offsetWi
(this.allowZoomIn?null:1),this.graph.fit(null,null,null,null,null,!0),(this.center||0==this.graphConfig.resize&&""!=b.style.height)&&this.graph.center(),this.graph.maxFitScale=null,0==this.graphConfig.resize&&""!=b.style.height||this.updateContainerHeight(b,Math.max(this.minHeight,this.graph.getGraphBounds().height+2*this.graph.border+1)),this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale},n=d,window.setTimeout(mxUtils.bind(this,function(){this.handlingResize=
!1}),0))});GraphViewer.useResizeSensor&&(9>=document.documentMode?(mxEvent.addListener(window,"resize",f),this.graph.addListener("size",f)):new ResizeSensor(this.graph.container,f));if(this.graphConfig.resize||(this.zoomEnabled||!this.autoFit)&&0!=this.graphConfig.resize)this.graph.minimumContainerSize=new mxRectangle(0,0,this.minWidth,this.minHeight),this.graph.resizeContainer=!0;else if(!this.widthIsEmpty||""!=b.style.height&&this.autoFit||this.updateContainerWidth(b,c.width+2*this.graph.border),
0==this.graphConfig.resize&&""!=b.style.height||this.updateContainerHeight(b,Math.max(this.minHeight,c.height+2*this.graph.border+1)),!this.zoomEnabled&&this.autoFit){var l=n=null,f=mxUtils.bind(this,function(){window.clearTimeout(l);this.handlingResize||(l=window.setTimeout(mxUtils.bind(this,this.fitGraph),100))});GraphViewer.useResizeSensor&&(9>=document.documentMode?mxEvent.addListener(window,"resize",f):new ResizeSensor(this.graph.container,f))}else 9>=document.documentMode||this.graph.addListener("size",
-f);var t=mxUtils.bind(this,function(d){var e=b.style.minWidth;this.widthIsEmpty&&(b.style.minWidth="100%");var f=null!=this.graphConfig["max-height"]?this.graphConfig["max-height"]:""!=b.style.height&&this.autoFit?b.offsetHeight:void 0;0<b.offsetWidth&&null==d&&this.allowZoomOut&&(this.allowZoomIn||c.width+2*this.graph.border>b.offsetWidth||c.height+2*this.graph.border>f)?(d=null,null!=f&&c.height+2*this.graph.border>f-2&&(d=(f-2*this.graph.border-2)/c.height),this.fitGraph(d)):this.widthIsEmpty||
-null!=d||0!=this.graphConfig.resize||""==b.style.height?(d=null!=d?d:new mxPoint,this.graph.view.setTranslate(Math.floor(this.graph.border-c.x/this.graph.view.scale)+d.x,Math.floor(this.graph.border-c.y/this.graph.view.scale)+d.y),n=b.offsetWidth):this.graph.center((!this.widthIsEmpty||c.width<this.minWidth)&&1!=this.graphConfig.resize);b.style.minWidth=e});8==document.documentMode?window.setTimeout(t,0):t();this.positionGraph=function(b){c=this.graph.getGraphBounds();n=null;t(b)}};
+f);var q=mxUtils.bind(this,function(d){var e=b.style.minWidth;this.widthIsEmpty&&(b.style.minWidth="100%");var f=null!=this.graphConfig["max-height"]?this.graphConfig["max-height"]:""!=b.style.height&&this.autoFit?b.offsetHeight:void 0;0<b.offsetWidth&&null==d&&this.allowZoomOut&&(this.allowZoomIn||c.width+2*this.graph.border>b.offsetWidth||c.height+2*this.graph.border>f)?(d=null,null!=f&&c.height+2*this.graph.border>f-2&&(d=(f-2*this.graph.border-2)/c.height),this.fitGraph(d)):this.widthIsEmpty||
+null!=d||0!=this.graphConfig.resize||""==b.style.height?(d=null!=d?d:new mxPoint,this.graph.view.setTranslate(Math.floor(this.graph.border-c.x/this.graph.view.scale)+d.x,Math.floor(this.graph.border-c.y/this.graph.view.scale)+d.y),n=b.offsetWidth):this.graph.center((!this.widthIsEmpty||c.width<this.minWidth)&&1!=this.graphConfig.resize);b.style.minWidth=e});8==document.documentMode?window.setTimeout(q,0):q();this.positionGraph=function(b){c=this.graph.getGraphBounds();n=null;q(b)}};
GraphViewer.prototype.crop=function(){var b=this.graph,c=b.getGraphBounds(),e=b.border,f=b.view.scale;b.view.setTranslate(null!=c.x?Math.floor(b.view.translate.x-c.x/f+e):e,null!=c.y?Math.floor(b.view.translate.y-c.y/f+e):e)};GraphViewer.prototype.updateContainerWidth=function(b,c){b.style.width=c+"px"};GraphViewer.prototype.updateContainerHeight=function(b,c){if(this.forceCenter||this.zoomEnabled||!this.autoFit||"BackCompat"==document.compatMode||8==document.documentMode)b.style.height=c+"px"};
-GraphViewer.prototype.showLayers=function(b,c){var e=this.graphConfig.layers,e=null!=e&&0<e.length?e.split(" "):[],f=this.graphConfig.layerIds,n=null!=f&&0<f.length,l=!1;if(0<e.length||n||null!=c){var t=null!=c?c.getModel():null,l=b.getModel();l.beginUpdate();try{var d=l.getChildCount(l.root);if(null==t){var t=!1,k={};if(n)for(var g=0;g<f.length;g++){var q=l.getCell(f[g]);null!=q&&(t=!0,k[q.id]=!0)}else for(g=0;g<e.length;g++)q=l.getChildAt(l.root,parseInt(e[g])),null!=q&&(t=!0,k[q.id]=!0);for(g=
-0;t&&g<d;g++)q=l.getChildAt(l.root,g),l.setVisible(q,k[q.id]||!1)}else for(g=0;g<d;g++)l.setVisible(l.getChildAt(l.root,g),t.isVisible(t.getChildAt(t.root,g)))}finally{l.endUpdate()}l=!0}return l};
+GraphViewer.prototype.showLayers=function(b,c){var e=this.graphConfig.layers,e=null!=e&&0<e.length?e.split(" "):[],f=this.graphConfig.layerIds,n=null!=f&&0<f.length,l=!1;if(0<e.length||n||null!=c){var q=null!=c?c.getModel():null,l=b.getModel();l.beginUpdate();try{var d=l.getChildCount(l.root);if(null==q){var q=!1,k={};if(n)for(var g=0;g<f.length;g++){var t=l.getCell(f[g]);null!=t&&(q=!0,k[t.id]=!0)}else for(g=0;g<e.length;g++)t=l.getChildAt(l.root,parseInt(e[g])),null!=t&&(q=!0,k[t.id]=!0);for(g=
+0;q&&g<d;g++)t=l.getChildAt(l.root,g),l.setVisible(t,k[t.id]||!1)}else for(g=0;g<d;g++)l.setVisible(l.getChildAt(l.root,g),q.isVisible(q.getChildAt(q.root,g)))}finally{l.endUpdate()}l=!0}return l};
GraphViewer.prototype.addToolbar=function(){function b(b,c,d,f){var g=document.createElement("div");g.style.borderRight="1px solid #d0d0d0";g.style.padding="3px 6px 3px 6px";mxEvent.addListener(g,"click",b);null!=d&&g.setAttribute("title",d);g.style.display="inline-block";b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",c);b.style.width="18px";null==f||f?(mxEvent.addListener(g,"mouseenter",function(){g.style.backgroundColor="#ddd"}),mxEvent.addListener(g,"mouseleave",
-function(){g.style.backgroundColor="#eee"}),mxUtils.setOpacity(b,60),g.style.cursor="pointer"):mxUtils.setOpacity(g,30);g.appendChild(b);e.appendChild(g);q++;return g}var c=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?c.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(c.style.marginTop=this.toolbarHeight+"px");var e=c.ownerDocument.createElement("div");e.style.position="absolute";e.style.overflow="hidden";e.style.boxSizing="border-box";
+function(){g.style.backgroundColor="#eee"}),mxUtils.setOpacity(b,60),g.style.cursor="pointer"):mxUtils.setOpacity(g,30);g.appendChild(b);e.appendChild(g);t++;return g}var c=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?c.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(c.style.marginTop=this.toolbarHeight+"px");var e=c.ownerDocument.createElement("div");e.style.position="absolute";e.style.overflow="hidden";e.style.boxSizing="border-box";
e.style.whiteSpace="nowrap";e.style.textAlign="left";e.style.zIndex=this.toolbarZIndex;e.style.backgroundColor="#eee";e.style.height=this.toolbarHeight+"px";this.toolbar=e;if("inline"==this.graphConfig["toolbar-position"]){mxUtils.setPrefixedStyle(e.style,"transition","opacity 100ms ease-in-out");mxUtils.setOpacity(e,30);var f=null,n=null,l=mxUtils.bind(this,function(b){null!=f&&(window.clearTimeout(f),fadeThead=null);null!=n&&(window.clearTimeout(n),fadeThead2=null);f=window.setTimeout(mxUtils.bind(this,
-function(){mxUtils.setOpacity(e,0);f=null;n=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";n=null}),100)}),b||200)}),t=mxUtils.bind(this,function(b){null!=f&&(window.clearTimeout(f),fadeThead=null);null!=n&&(window.clearTimeout(n),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,b||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(t(30),l())}));mxEvent.addListener(e,mxClient.IS_POINTER?
-"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(b){t(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(b){t(100);mxEvent.consume(b)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||t(30)}));var d=this.graph,k=d.getTolerance();d.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(b,c){this.startX=c.getGraphX();this.startY=c.getGraphY();
-this.scrollLeft=d.container.scrollLeft;this.scrollTop=d.container.scrollTop},mouseMove:function(b,c){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-d.container.scrollLeft)<k&&Math.abs(this.scrollTop-d.container.scrollTop)<k&&Math.abs(this.startX-c.getGraphX())<k&&Math.abs(this.startY-c.getGraphY())<k&&(0<parseFloat(e.style.opacity||0)?l():t(30))}})}for(var g=this.toolbarItems,q=0,m=null,p=null,v=null,u=null,x=0;x<g.length;x++){var y=g[x];if("pages"==y){u=c.ownerDocument.createElement("div");
+function(){mxUtils.setOpacity(e,0);f=null;n=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";n=null}),100)}),b||200)}),q=mxUtils.bind(this,function(b){null!=f&&(window.clearTimeout(f),fadeThead=null);null!=n&&(window.clearTimeout(n),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,b||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(q(30),l())}));mxEvent.addListener(e,mxClient.IS_POINTER?
+"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(b){q(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(b){q(100);mxEvent.consume(b)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||q(30)}));var d=this.graph,k=d.getTolerance();d.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(b,c){this.startX=c.getGraphX();this.startY=c.getGraphY();
+this.scrollLeft=d.container.scrollLeft;this.scrollTop=d.container.scrollTop},mouseMove:function(b,c){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-d.container.scrollLeft)<k&&Math.abs(this.scrollTop-d.container.scrollTop)<k&&Math.abs(this.startX-c.getGraphX())<k&&Math.abs(this.startY-c.getGraphY())<k&&(0<parseFloat(e.style.opacity||0)?l():q(30))}})}for(var g=this.toolbarItems,t=0,m=null,p=null,v=null,u=null,x=0;x<g.length;x++){var y=g[x];if("pages"==y){u=c.ownerDocument.createElement("div");
u.style.cssText="display:inline-block;position:relative;top:5px;padding:0 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;;cursor:default;";mxUtils.setOpacity(u,70);var G=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");G.style.borderRightStyle="none";G.style.paddingLeft="0px";G.style.paddingRight="0px";e.appendChild(u);var H=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage+
1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");H.style.paddingLeft="0px";H.style.paddingRight="0px";y=mxUtils.bind(this,function(){u.innerHTML="";mxUtils.write(u,this.currentPage+1+" / "+this.diagrams.length);u.style.display=1<this.diagrams.length?"inline-block":"none";G.style.display=u.style.display;H.style.display=u.style.display});this.addListener("graphChanged",y);y()}else if("zoom"==y)this.zoomEnabled&&(b(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,
mxResources.get("zoomOut")||"Zoom Out"),b(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),b(mxUtils.bind(this,function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==y){if(this.layersEnabled){var D=this.graph.getModel(),F=b(mxUtils.bind(this,function(b){if(null!=m)m.parentNode.removeChild(m),
@@ -4151,8 +4151,8 @@ m=null;else{m=this.graph.createLayersDialog(mxUtils.bind(this,function(){if(this
"inline-block":"none"}}else if("tags"==y){if(this.tagsEnabled){var O=b(mxUtils.bind(this,function(b){null==p&&(p=this.graph.createTagsDialog(mxUtils.bind(this,function(){return!0})),p.div.getElementsByTagName("div")[0].style.position="",p.div.style.maxHeight="160px",p.div.style.maxWidth="120px",p.div.style.padding="2px",p.div.style.overflow="auto",p.div.style.height="auto",p.div.style.position="fixed",p.div.style.fontFamily=Editor.defaultHtmlFont,p.div.style.fontSize="11px",p.div.style.backgroundColor=
"#eee",p.div.style.color="#000",p.div.style.border="1px solid #d0d0d0",p.div.style.zIndex=this.toolbarZIndex+1,mxUtils.setOpacity(p.div,80));if(null!=v)v.parentNode.removeChild(v),v=null;else{v=p.div;mxEvent.addListener(v,"mouseleave",function(){v.parentNode.removeChild(v);v=null});b=O.getBoundingClientRect();var c=mxUtils.getDocumentScrollOrigin(document);v.style.left=c.x+b.left-1+"px";v.style.top=c.y+b.bottom-2+"px";document.body.appendChild(v);p.refresh()}}),Editor.tagsImage,mxResources.get("tags")||
"Tags");D.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){O.style.display=0<this.graph.getAllTags().length?"inline-block":"none"}));O.style.display=0<this.graph.getAllTags().length?"inline-block":"none"}}else"lightbox"==y?this.lightboxEnabled&&b(mxUtils.bind(this,function(){this.showLightbox()}),Editor.fullscreenImage,mxResources.get("fullscreen")||"Fullscreen"):null!=this.graphConfig["toolbar-buttons"]&&(y=this.graphConfig["toolbar-buttons"][y],null!=y&&(y.elem=b(null==y.enabled||y.enabled?
-y.handler:function(){},y.image,y.title,y.enabled)))}null!=this.graph.minimumContainerSize&&(this.graph.minimumContainerSize.width=34*q);null!=this.graphConfig.title&&(g=c.ownerDocument.createElement("div"),g.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",g.setAttribute("title",this.graphConfig.title),mxUtils.write(g,this.graphConfig.title),mxUtils.setOpacity(g,70),e.appendChild(g),this.filename=
-g);this.minToolbarWidth=34*q;var A=c.style.border,C=mxUtils.bind(this,function(){e.style.width="inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,c.offsetWidth)+"px";e.style.border="1px solid #d0d0d0";if(1!=this.graphConfig["toolbar-nohide"]){var b=c.getBoundingClientRect(),d=mxUtils.getScrollOrigin(document.body),d="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-d.x,top:-d.y},b={left:b.left-d.left,top:b.top-d.top,bottom:b.bottom-
+y.handler:function(){},y.image,y.title,y.enabled)))}null!=this.graph.minimumContainerSize&&(this.graph.minimumContainerSize.width=34*t);null!=this.graphConfig.title&&(g=c.ownerDocument.createElement("div"),g.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",g.setAttribute("title",this.graphConfig.title),mxUtils.write(g,this.graphConfig.title),mxUtils.setOpacity(g,70),e.appendChild(g),this.filename=
+g);this.minToolbarWidth=34*t;var A=c.style.border,C=mxUtils.bind(this,function(){e.style.width="inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,c.offsetWidth)+"px";e.style.border="1px solid #d0d0d0";if(1!=this.graphConfig["toolbar-nohide"]){var b=c.getBoundingClientRect(),d=mxUtils.getScrollOrigin(document.body),d="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-d.x,top:-d.y},b={left:b.left-d.left,top:b.top-d.top,bottom:b.bottom-
d.top,right:b.right-d.left};e.style.left=b.left+"px";"bottom"==this.graphConfig["toolbar-position"]?e.style.top=b.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(e.style.marginTop=-this.toolbarHeight+"px",e.style.top=b.top+1+"px"):e.style.top=b.top+"px";"1px solid transparent"==A&&(c.style.border="1px solid #d0d0d0");document.body.appendChild(e);var f=mxUtils.bind(this,function(){null!=e.parentNode&&e.parentNode.removeChild(e);null!=m&&(m.parentNode.removeChild(m),m=null);c.style.border=
A});mxEvent.addListener(document,"mousemove",function(b){for(b=mxEvent.getSource(b);null!=b;){if(b==c||b==e||b==m)return;b=b.parentNode}f()});mxEvent.addListener(document.body,"mouseleave",function(b){f()})}else e.style.top=-this.toolbarHeight+"px",c.appendChild(e)});1!=this.graphConfig["toolbar-nohide"]?mxEvent.addListener(c,"mouseenter",C):C();this.responsive&&"undefined"!==typeof ResizeObserver&&(new ResizeObserver(function(){null!=e.parentNode&&C()})).observe(c)};
GraphViewer.prototype.disableButton=function(b){var c=this.graphConfig["toolbar-buttons"]?this.graphConfig["toolbar-buttons"][b]:null;null!=c&&(mxUtils.setOpacity(c.elem,30),mxEvent.removeListener(c.elem,"click",c.handler),mxEvent.addListener(c.elem,"mouseenter",function(){c.elem.style.backgroundColor="#eee"}))};
@@ -4164,20 +4164,20 @@ this.graphConfig.highlight&&(e.highlight=this.graphConfig.highlight.substring(1)
GraphViewer.prototype.showLocalLightbox=function(){mxUtils.getDocumentScrollOrigin(document);var b=document.createElement("div");b.style.cssText="position:fixed;top:0;left:0;bottom:0;right:0;";b.style.zIndex=this.lightboxZIndex;b.style.backgroundColor="#000000";mxUtils.setOpacity(b,70);document.body.appendChild(b);var c=document.createElement("img");c.setAttribute("border","0");c.setAttribute("src",Editor.closeBlackImage);c.style.cssText="position:fixed;top:32px;right:32px;";c.style.cursor="pointer";
mxEvent.addListener(c,"click",function(){f.destroy()});urlParams.pages="1";urlParams.page=this.currentPage;urlParams["page-id"]=this.graphConfig.pageId;urlParams["layer-ids"]=null!=this.graphConfig.layerIds&&0<this.graphConfig.layerIds.length?this.graphConfig.layerIds.join(" "):null;urlParams.nav=0!=this.graphConfig.nav?"1":"0";urlParams.layers=this.layersEnabled?"1":"0";this.tagsEnabled&&(urlParams.tags="{}");if(null==document.documentMode||10<=document.documentMode)Editor.prototype.editButtonLink=
this.graphConfig.edit,Editor.prototype.editButtonFunc=this.graphConfig.editFunc;EditorUi.prototype.updateActionStates=function(){};EditorUi.prototype.addBeforeUnloadListener=function(){};EditorUi.prototype.addChromelessClickHandler=function(){};var e=Graph.prototype.shadowId;Graph.prototype.shadowId="lightboxDropShadow";var f=new EditorUi(new Editor(!0),document.createElement("div"),!0);f.editor.editBlankUrl=this.editBlankUrl;f.editor.graph.shadowId="lightboxDropShadow";Graph.prototype.shadowId=e;
-f.refresh=function(){};var n=mxUtils.bind(this,function(b){27==b.keyCode&&f.destroy()}),l=f.destroy;f.destroy=function(){mxEvent.removeListener(document.documentElement,"keydown",n);document.body.removeChild(b);document.body.removeChild(c);document.body.style.overflow="auto";GraphViewer.resizeSensorEnabled=!0;l.apply(this,arguments)};var t=f.editor.graph,d=t.container;d.style.overflow="hidden";this.lightboxChrome?(d.style.border="1px solid #c0c0c0",d.style.margin="40px",mxEvent.addListener(document.documentElement,
-"keydown",n)):(b.style.display="none",c.style.display="none");var k=this;t.getImageFromBundles=function(b){return k.getImageUrl(b)};var g=f.createTemporaryGraph;f.createTemporaryGraph=function(){var b=g.apply(this,arguments);b.getImageFromBundles=function(b){return k.getImageUrl(b)};return b};this.graphConfig.move&&(t.isMoveCellsEvent=function(b){return!0});mxUtils.setPrefixedStyle(d.style,"border-radius","4px");d.style.position="fixed";GraphViewer.resizeSensorEnabled=!1;document.body.style.overflow=
-"hidden";mxClient.IS_SF||mxClient.IS_EDGE||(mxUtils.setPrefixedStyle(d.style,"transform","rotateY(90deg)"),mxUtils.setPrefixedStyle(d.style,"transition","all .25s ease-in-out"));this.addClickHandler(t,f);window.setTimeout(mxUtils.bind(this,function(){d.style.outline="none";d.style.zIndex=this.lightboxZIndex;c.style.zIndex=this.lightboxZIndex;document.body.appendChild(d);document.body.appendChild(c);f.setFileData(this.xml);mxUtils.setPrefixedStyle(d.style,"transform","rotateY(0deg)");f.chromelessToolbar.style.bottom=
-"60px";f.chromelessToolbar.style.zIndex=this.lightboxZIndex;document.body.appendChild(f.chromelessToolbar);f.getEditBlankXml=mxUtils.bind(this,function(){return this.xml});f.lightboxFit();f.chromelessResize();this.showLayers(t,this.graph);mxEvent.addListener(b,"click",function(){f.destroy()})}),0);return f};
+f.refresh=function(){};var n=mxUtils.bind(this,function(b){27==b.keyCode&&f.destroy()}),l=f.destroy;f.destroy=function(){mxEvent.removeListener(document.documentElement,"keydown",n);document.body.removeChild(b);document.body.removeChild(c);document.body.style.overflow="auto";GraphViewer.resizeSensorEnabled=!0;l.apply(this,arguments)};var q=f.editor.graph,d=q.container;d.style.overflow="hidden";this.lightboxChrome?(d.style.border="1px solid #c0c0c0",d.style.margin="40px",mxEvent.addListener(document.documentElement,
+"keydown",n)):(b.style.display="none",c.style.display="none");var k=this;q.getImageFromBundles=function(b){return k.getImageUrl(b)};var g=f.createTemporaryGraph;f.createTemporaryGraph=function(){var b=g.apply(this,arguments);b.getImageFromBundles=function(b){return k.getImageUrl(b)};return b};this.graphConfig.move&&(q.isMoveCellsEvent=function(b){return!0});mxUtils.setPrefixedStyle(d.style,"border-radius","4px");d.style.position="fixed";GraphViewer.resizeSensorEnabled=!1;document.body.style.overflow=
+"hidden";mxClient.IS_SF||mxClient.IS_EDGE||(mxUtils.setPrefixedStyle(d.style,"transform","rotateY(90deg)"),mxUtils.setPrefixedStyle(d.style,"transition","all .25s ease-in-out"));this.addClickHandler(q,f);window.setTimeout(mxUtils.bind(this,function(){d.style.outline="none";d.style.zIndex=this.lightboxZIndex;c.style.zIndex=this.lightboxZIndex;document.body.appendChild(d);document.body.appendChild(c);f.setFileData(this.xml);mxUtils.setPrefixedStyle(d.style,"transform","rotateY(0deg)");f.chromelessToolbar.style.bottom=
+"60px";f.chromelessToolbar.style.zIndex=this.lightboxZIndex;document.body.appendChild(f.chromelessToolbar);f.getEditBlankXml=mxUtils.bind(this,function(){return this.xml});f.lightboxFit();f.chromelessResize();this.showLayers(q,this.graph);mxEvent.addListener(b,"click",function(){f.destroy()})}),0);return f};
GraphViewer.prototype.updateTitle=function(b){b=b||"";this.showTitleAsTooltip&&null!=this.graph&&null!=this.graph.container&&this.graph.container.setAttribute("title",b);null!=this.filename&&(this.filename.innerHTML="",mxUtils.write(this.filename,b),this.filename.setAttribute("title",b))};
GraphViewer.processElements=function(b){mxUtils.forEach(GraphViewer.getElementsByClassName(b||"mxgraph"),function(b){try{b.innerHTML="",GraphViewer.createViewerForElement(b)}catch(e){b.innerHTML=e.message,null!=window.console&&console.error(e)}})};
GraphViewer.getElementsByClassName=function(b){if(document.getElementsByClassName){var c=document.getElementsByClassName(b);b=[];for(var e=0;e<c.length;e++)b.push(c[e]);return b}for(var f=document.getElementsByTagName("*"),c=[],e=0;e<f.length;e++){var n=f[e].className;null!=n&&0<n.length&&(n=n.split(" "),0<=mxUtils.indexOf(n,b)&&c.push(f[e]))}return c};
GraphViewer.createViewerForElement=function(b,c){var e=b.getAttribute("data-mxgraph");if(null!=e){var f=JSON.parse(e),n=function(e){e=mxUtils.parseXml(e);e=new GraphViewer(b,e.documentElement,f);null!=c&&c(e)};null!=f.url?GraphViewer.getUrl(f.url,function(b){n(b)}):n(f.xml)}};
GraphViewer.initCss=function(){try{var b=document.createElement("style");b.type="text/css";b.innerHTML="div.mxTooltip {\n-webkit-box-shadow: 3px 3px 12px #C0C0C0;\n-moz-box-shadow: 3px 3px 12px #C0C0C0;\nbox-shadow: 3px 3px 12px #C0C0C0;\nbackground: #FFFFCC;\nborder-style: solid;\nborder-width: 1px;\nborder-color: black;\nfont-family: Arial;\nfont-size: 8pt;\nposition: absolute;\ncursor: default;\npadding: 4px;\ncolor: black;}\ntd.mxPopupMenuIcon div {\nwidth:16px;\nheight:16px;}\nhtml div.mxPopupMenu {\n-webkit-box-shadow:2px 2px 3px #d5d5d5;\n-moz-box-shadow:2px 2px 3px #d5d5d5;\nbox-shadow:2px 2px 3px #d5d5d5;\n_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d0d0d0',Positive='true');\nbackground:white;\nposition:absolute;\nborder:3px solid #e7e7e7;\npadding:3px;}\nhtml table.mxPopupMenu {\nborder-collapse:collapse;\nmargin:0px;}\nhtml td.mxPopupMenuItem {\npadding:7px 30px 7px 30px;\nfont-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;}\nhtml td.mxPopupMenuIcon {\nbackground-color:white;\npadding:0px;}\ntd.mxPopupMenuIcon .geIcon {\npadding:2px;\npadding-bottom:4px;\nmargin:2px;\nborder:1px solid transparent;\nopacity:0.5;\n_width:26px;\n_height:26px;}\ntd.mxPopupMenuIcon .geIcon:hover {\nborder:1px solid gray;\nborder-radius:2px;\nopacity:1;}\nhtml tr.mxPopupMenuItemHover {\nbackground-color: #eeeeee;\ncolor: black;}\ntable.mxPopupMenu hr {\ncolor:#cccccc;\nbackground-color:#cccccc;\nborder:none;\nheight:1px;}\ntable.mxPopupMenu tr {\tfont-size:4pt;}\n.geDialog { font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;\nborder:none;\nmargin:0px;}\n.geDialog {\tposition:absolute;\tbackground:white;\toverflow:hidden;\tpadding:30px;\tborder:1px solid #acacac;\t-webkit-box-shadow:0px 0px 2px 2px #d5d5d5;\t-moz-box-shadow:0px 0px 2px 2px #d5d5d5;\tbox-shadow:0px 0px 2px 2px #d5d5d5;\t_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d5d5d5', Positive='true');\tz-index: 2;}.geDialogClose {\tposition:absolute;\twidth:9px;\theight:9px;\topacity:0.5;\tcursor:pointer;\t_filter:alpha(opacity=50);}.geDialogClose:hover {\topacity:1;}.geDialogTitle {\tbox-sizing:border-box;\twhite-space:nowrap;\tbackground:rgb(229, 229, 229);\tborder-bottom:1px solid rgb(192, 192, 192);\tfont-size:15px;\tfont-weight:bold;\ttext-align:center;\tcolor:rgb(35, 86, 149);}.geDialogFooter {\tbackground:whiteSmoke;\twhite-space:nowrap;\ttext-align:right;\tbox-sizing:border-box;\tborder-top:1px solid #e5e5e5;\tcolor:darkGray;}\n.geBtn {\tbackground-color: #f5f5f5;\tborder-radius: 2px;\tborder: 1px solid #d8d8d8;\tcolor: #333;\tcursor: default;\tfont-size: 11px;\tfont-weight: bold;\theight: 29px;\tline-height: 27px;\tmargin: 0 0 0 8px;\tmin-width: 72px;\toutline: 0;\tpadding: 0 8px;\tcursor: pointer;}.geBtn:hover, .geBtn:focus {\t-webkit-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\t-moz-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tbox-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tborder: 1px solid #c6c6c6;\tbackground-color: #f8f8f8;\tbackground-image: linear-gradient(#f8f8f8 0px,#f1f1f1 100%);\tcolor: #111;}.geBtn:disabled {\topacity: .5;}.gePrimaryBtn {\tbackground-color: #4d90fe;\tbackground-image: linear-gradient(#4d90fe 0px,#4787ed 100%);\tborder: 1px solid #3079ed;\tcolor: #fff;}.gePrimaryBtn:hover, .gePrimaryBtn:focus {\tbackground-color: #357ae8;\tbackground-image: linear-gradient(#4d90fe 0px,#357ae8 100%);\tborder: 1px solid #2f5bb7;\tcolor: #fff;}.gePrimaryBtn:disabled {\topacity: .5;}";document.getElementsByTagName("head")[0].appendChild(b)}catch(c){}};
GraphViewer.cachedUrls={};GraphViewer.getUrl=function(b,c,e){if(null!=GraphViewer.cachedUrls[b])c(GraphViewer.cachedUrls[b]);else{var f=null!=navigator.userAgent&&0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;f.open("GET",b);f.onload=function(){c(null!=f.getText?f.getText():f.responseText)};f.onerror=e;f.send()}};GraphViewer.resizeSensorEnabled=!0;GraphViewer.useResizeSensor=!0;
-(function(){var b=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(b){return window.setTimeout(b,20)},c=function(e,f){function n(){this.q=[];this.add=function(b){this.q.push(b)};var b,c;this.call=function(){b=0;for(c=this.q.length;b<c;b++)this.q[b].call()}}function l(b,c){return b.currentStyle?b.currentStyle[c]:window.getComputedStyle?window.getComputedStyle(b,null).getPropertyValue(c):b.style[c]}function t(c,d){if(!c.resizedAttached)c.resizedAttached=
+(function(){var b=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(b){return window.setTimeout(b,20)},c=function(e,f){function n(){this.q=[];this.add=function(b){this.q.push(b)};var b,c;this.call=function(){b=0;for(c=this.q.length;b<c;b++)this.q[b].call()}}function l(b,c){return b.currentStyle?b.currentStyle[c]:window.getComputedStyle?window.getComputedStyle(b,null).getPropertyValue(c):b.style[c]}function q(c,d){if(!c.resizedAttached)c.resizedAttached=
new n,c.resizedAttached.add(d);else if(c.resizedAttached){c.resizedAttached.add(d);return}c.resizeSensor=document.createElement("div");c.resizeSensor.className="resize-sensor";c.resizeSensor.style.cssText="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;";c.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s;"></div></div><div class="resize-sensor-shrink" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s; width: 200%; height: 200%"></div></div>';
c.appendChild(c.resizeSensor);"static"==l(c,"position")&&(c.style.position="relative");var e=c.resizeSensor.childNodes[0],f=e.childNodes[0],g=c.resizeSensor.childNodes[1],k=function(){f.style.width="100000px";f.style.height="100000px";e.scrollLeft=1E5;e.scrollTop=1E5;g.scrollLeft=1E5;g.scrollTop=1E5};k();var m=!1,p=function(){c.resizedAttached&&(m&&(c.resizedAttached.call(),m=!1),b(p))};b(p);var q,t,O,A,C=function(){if((O=c.offsetWidth)!=q||(A=c.offsetHeight)!=t)m=!0,q=O,t=A;k()},E=function(b,c,d){b.attachEvent?
-b.attachEvent("on"+c,d):b.addEventListener(c,d)};E(e,"scroll",C);E(g,"scroll",C)}var d=function(){GraphViewer.resizeSensorEnabled&&f()},k=Object.prototype.toString.call(e),g="[object Array]"===k||"[object NodeList]"===k||"[object HTMLCollection]"===k||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(g)for(var k=0,q=e.length;k<q;k++)t(e[k],d);else t(e,d);this.detach=function(){if(g)for(var b=0,d=e.length;b<d;b++)c.detach(e[b]);else c.detach(e)}};
+b.attachEvent("on"+c,d):b.addEventListener(c,d)};E(e,"scroll",C);E(g,"scroll",C)}var d=function(){GraphViewer.resizeSensorEnabled&&f()},k=Object.prototype.toString.call(e),g="[object Array]"===k||"[object NodeList]"===k||"[object HTMLCollection]"===k||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(g)for(var k=0,t=e.length;k<t;k++)q(e[k],d);else q(e,d);this.detach=function(){if(g)for(var b=0,d=e.length;b<d;b++)c.detach(e[b]);else c.detach(e)}};
c.detach=function(b){b.resizeSensor&&(b.removeChild(b.resizeSensor),delete b.resizeSensor,delete b.resizedAttached)};window.ResizeSensor=c})();
function mxBpmnShape(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxBpmnShape,mxShape);
mxBpmnShape.prototype.customProperties=[{name:"symbol",dispName:"Event",type:"enum",defVal:"general",enumList:[{val:"general",dispName:"General"},{val:"message",dispName:"Message"},{val:"timer",dispName:"Timer"},{val:"escalation",dispName:"Escalation"},{val:"conditional",dispName:"Conditional"},{val:"link",dispName:"Link"},{val:"error",dispName:"Error"},{val:"cancel",dispName:"Cancel"},{val:"compensation",dispName:"Compensation"},{val:"signal",dispName:"Signal"},{val:"multiple",dispName:"Multiple"},
diff --git a/src/main/webapp/js/viewer.min.js b/src/main/webapp/js/viewer.min.js
index 4565abb5..b2c78ba2 100644
--- a/src/main/webapp/js/viewer.min.js
+++ b/src/main/webapp/js/viewer.min.js
@@ -202,7 +202,7 @@ a),DRAWIO_GITLAB_URL=a);a=urlParams["gitlab-id"];null!=a&&(DRAWIO_GITLAB_ID=a);w
if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local||"1"==urlParams.lockdown)urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0";
"se.diagrams.net"==window.location.hostname&&(urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0",urlParams.plugins="0",urlParams.mode="google",urlParams.lockdown="1",window.DRAWIO_GOOGLE_APP_ID=window.DRAWIO_GOOGLE_APP_ID||"184079235871",window.DRAWIO_GOOGLE_CLIENT_ID=window.DRAWIO_GOOGLE_CLIENT_ID||"184079235871-pjf5nn0lff27lk8qf0770gmffiv9gt61.apps.googleusercontent.com");"trello"==urlParams.mode&&(urlParams.tr="1");
"embed.diagrams.net"==window.location.hostname&&(urlParams.embed="1");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";
-window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"17.3.0",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"17.4.0",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&2<navigator.maxTouchPoints,IS_WEBVIEW:/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&
0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!==
@@ -2060,7 +2060,7 @@ Editor.outlineImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53M
Editor.saveImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMThweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMThweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE5IDEydjdINXYtN0gzdjdjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtN2gtMnptLTYgLjY3bDIuNTktMi41OEwxNyAxMS41bC01IDUtNS01IDEuNDEtMS40MUwxMSAxMi42N1YzaDJ2OS42N3oiLz48L3N2Zz4=";
Editor.roughFillStyles=[{val:"auto",dispName:"Auto"},{val:"hachure",dispName:"Hachure"},{val:"solid",dispName:"Solid"},{val:"zigzag",dispName:"ZigZag"},{val:"cross-hatch",dispName:"Cross Hatch"},{val:"dashed",dispName:"Dashed"},{val:"zigzag-line",dispName:"ZigZag Line"}];Editor.themes=null;Editor.ctrlKey=mxClient.IS_MAC?"Cmd":"Ctrl";Editor.hintOffset=20;Editor.shapePickerHoverDelay=300;Editor.fitWindowBorders=null;Editor.popupsAllowed=null!=window.urlParams?"1"!=urlParams.noDevice:!0;
Editor.simpleLabels=!1;Editor.enableNativeCipboard=window==window.top&&!mxClient.IS_FF&&null!=navigator.clipboard;Editor.sketchMode=!1;Editor.darkMode=!1;Editor.darkColor="#2a2a2a";Editor.lightColor="#f0f0f0";Editor.isPngDataUrl=function(b){return null!=b&&"data:image/png;"==b.substring(0,15)};Editor.isPngData=function(b){return 8<b.length&&137==b.charCodeAt(0)&&80==b.charCodeAt(1)&&78==b.charCodeAt(2)&&71==b.charCodeAt(3)&&13==b.charCodeAt(4)&&10==b.charCodeAt(5)&&26==b.charCodeAt(6)&&10==b.charCodeAt(7)};
-Editor.extractGraphModelFromPng=function(b){var c=null;try{var e=b.substring(b.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(e):Base64.decode(e,!0);EditorUi.parsePng(f,mxUtils.bind(this,function(b,e,t){b=f.substring(b+8,b+8+t);"zTXt"==e?(t=b.indexOf(String.fromCharCode(0)),"mxGraphModel"==b.substring(0,t)&&(b=pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(t+2)),{to:"string"}).replace(/\+/g," "),null!=b&&0<b.length&&(c=b))):"tEXt"==e&&(b=b.split(String.fromCharCode(0)),1<b.length&&("mxGraphModel"==
+Editor.extractGraphModelFromPng=function(b){var c=null;try{var e=b.substring(b.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(e):Base64.decode(e,!0);EditorUi.parsePng(f,mxUtils.bind(this,function(b,e,q){b=f.substring(b+8,b+8+q);"zTXt"==e?(q=b.indexOf(String.fromCharCode(0)),"mxGraphModel"==b.substring(0,q)&&(b=pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(q+2)),{to:"string"}).replace(/\+/g," "),null!=b&&0<b.length&&(c=b))):"tEXt"==e&&(b=b.split(String.fromCharCode(0)),1<b.length&&("mxGraphModel"==
b[0]||"mxfile"==b[0])&&(c=b[1]));if(null!=c||"IDAT"==e)return!0}))}catch(n){}null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));return c};Editor.isDarkMode=function(b){return Editor.darkMode||"dark"==uiTheme};Editor.helpImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkHelpImage:Editor.lightHelpImage;Editor.checkmarkImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;mxUtils.extend(Editor,mxEventSource);
Editor.prototype.originalNoForeignObject=mxClient.NO_FO;Editor.prototype.transparentImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhMAAwAIAAAP///wAAACH5BAEAAAAALAAAAAAwADAAAAIxhI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8egpAAA7":IMAGE_PATH+"/transparent.gif";Editor.prototype.extendCanvas=!0;Editor.prototype.chromeless=!1;Editor.prototype.cancelFirst=!0;Editor.prototype.enabled=!0;Editor.prototype.filename=null;Editor.prototype.modified=!1;Editor.prototype.autosave=!0;
Editor.prototype.initialTopSpacing=0;Editor.prototype.appName=document.title;Editor.prototype.editBlankUrl=window.location.protocol+"//"+window.location.host+"/";Editor.prototype.defaultGraphOverflow="hidden";Editor.prototype.init=function(){};Editor.prototype.isChromelessView=function(){return this.chromeless};Editor.prototype.setAutosave=function(b){this.autosave=b;this.fireEvent(new mxEventObject("autosaveChanged"))};Editor.prototype.getEditBlankUrl=function(b){return this.editBlankUrl+b};
@@ -2080,53 +2080,53 @@ Editor.prototype.setFilename=function(b){this.filename=b};
Editor.prototype.createUndoManager=function(){var b=this.graph,c=new mxUndoManager;this.undoListener=function(b,e){c.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(b,c){this.undoListener.apply(this,arguments)});b.getModel().addListener(mxEvent.UNDO,e);b.getView().addListener(mxEvent.UNDO,e);e=function(c,e){var f=b.getSelectionCellsForChanges(e.getProperty("edit").changes,function(b){return!(b instanceof mxChildChange)});if(0<f.length){b.getModel();for(var n=[],d=0;d<
f.length;d++)null!=b.view.getState(f[d])&&n.push(f[d]);b.setSelectionCells(n)}};c.addListener(mxEvent.UNDO,e);c.addListener(mxEvent.REDO,e);return c};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(b){this.consumer=this.producer=null;this.done=b;this.args=null};OpenFile.prototype.setConsumer=function(b){this.consumer=b;this.execute()};
OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};OpenFile.prototype.error=function(b){this.cancel(!0);mxUtils.alert(b)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(b){null!=this.done&&this.done(null!=b?b:!0)};
-function Dialog(b,c,e,f,n,l,t,d,k,g,q){var m=k?57:0,p=e,v=f,u=k?0:64,x=Editor.inlineFullscreen||null==b.embedViewport?mxUtils.getDocumentSize():mxUtils.clone(b.embedViewport);null==b.embedViewport&&null!=window.innerHeight&&(x.height=window.innerHeight);var y=x.height,G=Math.max(1,Math.round((x.width-e-u)/2)),H=Math.max(1,Math.round((y-f-b.footerHeight)/3));c.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-u):e;f=Math.min(f,y-u);0<b.dialogs.length&&(this.zIndex+=
+function Dialog(b,c,e,f,n,l,q,d,k,g,t){var m=k?57:0,p=e,v=f,u=k?0:64,x=Editor.inlineFullscreen||null==b.embedViewport?mxUtils.getDocumentSize():mxUtils.clone(b.embedViewport);null==b.embedViewport&&null!=window.innerHeight&&(x.height=window.innerHeight);var y=x.height,G=Math.max(1,Math.round((x.width-e-u)/2)),H=Math.max(1,Math.round((y-f-b.footerHeight)/3));c.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-u):e;f=Math.min(f,y-u);0<b.dialogs.length&&(this.zIndex+=
2*b.dialogs.length);null==this.bg&&(this.bg=b.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=Dialog.backdropColor,this.bg.style.height=y+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));x=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=x.x+"px";this.bg.style.top=x.y+"px";G+=x.x;H+=x.y;Editor.inlineFullscreen||null==b.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px",
H+=b.embedViewport.y,G+=b.embedViewport.x);n&&document.body.appendChild(this.bg);var D=b.createDiv(k?"geTransDialog":"geDialog");n=this.getPosition(G,H,e,f);G=n.x;H=n.y;D.style.width=e+"px";D.style.height=f+"px";D.style.left=G+"px";D.style.top=H+"px";D.style.zIndex=this.zIndex;D.appendChild(c);document.body.appendChild(D);!d&&c.clientHeight>D.clientHeight-u&&(c.style.overflowY="auto");c.style.overflowX="hidden";if(l&&(l=document.createElement("img"),l.setAttribute("src",Dialog.prototype.closeImage),
-l.setAttribute("title",mxResources.get("close")),l.className="geDialogClose",l.style.top=H+14+"px",l.style.left=G+e+38-m+"px",l.style.zIndex=this.zIndex,mxEvent.addListener(l,"click",mxUtils.bind(this,function(){b.hideDialog(!0)})),document.body.appendChild(l),this.dialogImg=l,!q)){var F=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(b){F=!0}),null,mxUtils.bind(this,function(d){F&&(b.hideDialog(!0),F=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=g){var k=g();
+l.setAttribute("title",mxResources.get("close")),l.className="geDialogClose",l.style.top=H+14+"px",l.style.left=G+e+38-m+"px",l.style.zIndex=this.zIndex,mxEvent.addListener(l,"click",mxUtils.bind(this,function(){b.hideDialog(!0)})),document.body.appendChild(l),this.dialogImg=l,!t)){var F=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(b){F=!0}),null,mxUtils.bind(this,function(d){F&&(b.hideDialog(!0),F=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=g){var k=g();
null!=k&&(p=e=k.w,v=f=k.h)}k=mxUtils.getDocumentSize();y=k.height;this.bg.style.height=y+"px";Editor.inlineFullscreen||null==b.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px");G=Math.max(1,Math.round((k.width-e-u)/2));H=Math.max(1,Math.round((y-f-b.footerHeight)/3));e=null!=document.body?Math.min(p,document.body.scrollWidth-u):p;f=Math.min(v,y-u);k=this.getPosition(G,H,e,f);G=k.x;H=k.y;D.style.left=G+"px";D.style.top=H+"px";D.style.width=e+"px";D.style.height=f+"px";!d&&
-c.clientHeight>D.clientHeight-u&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=H+14+"px",this.dialogImg.style.left=G+e+38-m+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=t;this.container=D;b.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
+c.clientHeight>D.clientHeight-u&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=H+14+"px",this.dialogImg.style.left=G+e+38-m+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=q;this.container=D;b.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
Dialog.prototype.noColorImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzRDlBMUUwODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzRDlBMUUxODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTNEOUExREU4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTNEOUExREY4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5xh3fmAAAABlBMVEX////MzMw46qqDAAAAGElEQVR42mJggAJGKGAYIIGBth8KAAIMAEUQAIElnLuQAAAAAElFTkSuQmCC":IMAGE_PATH+
"/nocolor.png";Dialog.prototype.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEV7mr3///+wksspAAAAAnRSTlP/AOW3MEoAAAAdSURBVAgdY9jXwCDDwNDRwHCwgeExmASygSL7GgB12QiqNHZZIwAAAABJRU5ErkJggg==":IMAGE_PATH+"/close.png";
Dialog.prototype.clearImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQAKAIABAMDAwP///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUIzOEM1NzI4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUIzOEM1NzM4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QjM4QzU3MDg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QjM4QzU3MTg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAEALAAAAAANAAoAAAIXTGCJebD9jEOTqRlttXdrB32PJ2ncyRQAOw==":IMAGE_PATH+
"/clear.gif";Dialog.prototype.bgOpacity=80;Dialog.prototype.getPosition=function(b,c){return new mxPoint(b,c)};Dialog.prototype.close=function(b,c){if(null!=this.onDialogClose){if(0==this.onDialogClose(b,c))return!1;this.onDialogClose=null}null!=this.dialogImg&&(this.dialogImg.parentNode.removeChild(this.dialogImg),this.dialogImg=null);null!=this.bg&&null!=this.bg.parentNode&&this.bg.parentNode.removeChild(this.bg);mxEvent.removeListener(window,"resize",this.resizeListener);this.container.parentNode.removeChild(this.container)};
-var ErrorDialog=function(b,c,e,f,n,l,t,d,k,g,q){k=null!=k?k:!0;var m=document.createElement("div");m.style.textAlign="center";if(null!=c){var p=document.createElement("div");p.style.padding="0px";p.style.margin="0px";p.style.fontSize="18px";p.style.paddingBottom="16px";p.style.marginBottom="10px";p.style.borderBottom="1px solid #c0c0c0";p.style.color="gray";p.style.whiteSpace="nowrap";p.style.textOverflow="ellipsis";p.style.overflow="hidden";mxUtils.write(p,c);p.setAttribute("title",c);m.appendChild(p)}c=
-document.createElement("div");c.style.lineHeight="1.2em";c.style.padding="6px";c.innerHTML=e;m.appendChild(c);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=l&&(c=mxUtils.button(mxResources.get("tryAgain"),function(){b.hideDialog();l()}),c.className="geBtn",e.appendChild(c),e.style.textAlign="center");null!=g&&(g=mxUtils.button(g,function(){null!=q&&q()}),g.className="geBtn",e.appendChild(g));var v=mxUtils.button(f,function(){k&&b.hideDialog();null!=n&&n()});
-v.className="geBtn";e.appendChild(v);null!=t&&(f=mxUtils.button(t,function(){k&&b.hideDialog();null!=d&&d()}),f.className="geBtn gePrimaryBtn",e.appendChild(f));this.init=function(){v.focus()};m.appendChild(e);this.container=m},PrintDialog=function(b,c){this.create(b,c)};
-PrintDialog.prototype.create=function(b){function c(b){var c=d.checked||g.checked,k=parseInt(m.value)/100;isNaN(k)&&(k=1,m.value="100%");var k=.75*k,f=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,l=1/e.pageScale;if(c){var p=d.checked?1:parseInt(q.value);isNaN(p)||(l=mxUtils.getScaleForPageCount(p,e,f))}e.getGraphBounds();var v=p=0,f=mxRectangle.fromRectangle(f);f.width=Math.ceil(f.width*k);f.height=Math.ceil(f.height*k);l*=k;!c&&e.pageVisible?(k=e.getPageLayout(),p-=k.x*f.width,v-=k.y*f.height):
-c=!0;c=PrintDialog.createPrintPreview(e,l,f,0,p,v,c);c.open();b&&PrintDialog.printPreview(c)}var e=b.editor.graph,f,n,l=document.createElement("table");l.style.width="100%";l.style.height="100%";var t=document.createElement("tbody");f=document.createElement("tr");var d=document.createElement("input");d.setAttribute("type","checkbox");n=document.createElement("td");n.setAttribute("colspan","2");n.style.fontSize="10pt";n.appendChild(d);var k=document.createElement("span");mxUtils.write(k," "+mxResources.get("fitPage"));
-n.appendChild(k);mxEvent.addListener(k,"click",function(b){d.checked=!d.checked;g.checked=!d.checked;mxEvent.consume(b)});mxEvent.addListener(d,"change",function(){g.checked=!d.checked});f.appendChild(n);t.appendChild(f);f=f.cloneNode(!1);var g=document.createElement("input");g.setAttribute("type","checkbox");n=document.createElement("td");n.style.fontSize="10pt";n.appendChild(g);k=document.createElement("span");mxUtils.write(k," "+mxResources.get("posterPrint")+":");n.appendChild(k);mxEvent.addListener(k,
-"click",function(b){g.checked=!g.checked;d.checked=!g.checked;mxEvent.consume(b)});f.appendChild(n);var q=document.createElement("input");q.setAttribute("value","1");q.setAttribute("type","number");q.setAttribute("min","1");q.setAttribute("size","4");q.setAttribute("disabled","disabled");q.style.width="50px";n=document.createElement("td");n.style.fontSize="10pt";n.appendChild(q);mxUtils.write(n," "+mxResources.get("pages")+" (max)");f.appendChild(n);t.appendChild(f);mxEvent.addListener(g,"change",
-function(){g.checked?q.removeAttribute("disabled"):q.setAttribute("disabled","disabled");d.checked=!g.checked});f=f.cloneNode(!1);n=document.createElement("td");mxUtils.write(n,mxResources.get("pageScale")+":");f.appendChild(n);n=document.createElement("td");var m=document.createElement("input");m.setAttribute("value","100 %");m.setAttribute("size","5");m.style.width="50px";n.appendChild(m);f.appendChild(n);t.appendChild(f);f=document.createElement("tr");n=document.createElement("td");n.colSpan=2;
+var ErrorDialog=function(b,c,e,f,n,l,q,d,k,g,t){k=null!=k?k:!0;var m=document.createElement("div");m.style.textAlign="center";if(null!=c){var p=document.createElement("div");p.style.padding="0px";p.style.margin="0px";p.style.fontSize="18px";p.style.paddingBottom="16px";p.style.marginBottom="10px";p.style.borderBottom="1px solid #c0c0c0";p.style.color="gray";p.style.whiteSpace="nowrap";p.style.textOverflow="ellipsis";p.style.overflow="hidden";mxUtils.write(p,c);p.setAttribute("title",c);m.appendChild(p)}c=
+document.createElement("div");c.style.lineHeight="1.2em";c.style.padding="6px";c.innerHTML=e;m.appendChild(c);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=l&&(c=mxUtils.button(mxResources.get("tryAgain"),function(){b.hideDialog();l()}),c.className="geBtn",e.appendChild(c),e.style.textAlign="center");null!=g&&(g=mxUtils.button(g,function(){null!=t&&t()}),g.className="geBtn",e.appendChild(g));var v=mxUtils.button(f,function(){k&&b.hideDialog();null!=n&&n()});
+v.className="geBtn";e.appendChild(v);null!=q&&(f=mxUtils.button(q,function(){k&&b.hideDialog();null!=d&&d()}),f.className="geBtn gePrimaryBtn",e.appendChild(f));this.init=function(){v.focus()};m.appendChild(e);this.container=m},PrintDialog=function(b,c){this.create(b,c)};
+PrintDialog.prototype.create=function(b){function c(b){var c=d.checked||g.checked,k=parseInt(m.value)/100;isNaN(k)&&(k=1,m.value="100%");var k=.75*k,f=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,l=1/e.pageScale;if(c){var p=d.checked?1:parseInt(t.value);isNaN(p)||(l=mxUtils.getScaleForPageCount(p,e,f))}e.getGraphBounds();var v=p=0,f=mxRectangle.fromRectangle(f);f.width=Math.ceil(f.width*k);f.height=Math.ceil(f.height*k);l*=k;!c&&e.pageVisible?(k=e.getPageLayout(),p-=k.x*f.width,v-=k.y*f.height):
+c=!0;c=PrintDialog.createPrintPreview(e,l,f,0,p,v,c);c.open();b&&PrintDialog.printPreview(c)}var e=b.editor.graph,f,n,l=document.createElement("table");l.style.width="100%";l.style.height="100%";var q=document.createElement("tbody");f=document.createElement("tr");var d=document.createElement("input");d.setAttribute("type","checkbox");n=document.createElement("td");n.setAttribute("colspan","2");n.style.fontSize="10pt";n.appendChild(d);var k=document.createElement("span");mxUtils.write(k," "+mxResources.get("fitPage"));
+n.appendChild(k);mxEvent.addListener(k,"click",function(b){d.checked=!d.checked;g.checked=!d.checked;mxEvent.consume(b)});mxEvent.addListener(d,"change",function(){g.checked=!d.checked});f.appendChild(n);q.appendChild(f);f=f.cloneNode(!1);var g=document.createElement("input");g.setAttribute("type","checkbox");n=document.createElement("td");n.style.fontSize="10pt";n.appendChild(g);k=document.createElement("span");mxUtils.write(k," "+mxResources.get("posterPrint")+":");n.appendChild(k);mxEvent.addListener(k,
+"click",function(b){g.checked=!g.checked;d.checked=!g.checked;mxEvent.consume(b)});f.appendChild(n);var t=document.createElement("input");t.setAttribute("value","1");t.setAttribute("type","number");t.setAttribute("min","1");t.setAttribute("size","4");t.setAttribute("disabled","disabled");t.style.width="50px";n=document.createElement("td");n.style.fontSize="10pt";n.appendChild(t);mxUtils.write(n," "+mxResources.get("pages")+" (max)");f.appendChild(n);q.appendChild(f);mxEvent.addListener(g,"change",
+function(){g.checked?t.removeAttribute("disabled"):t.setAttribute("disabled","disabled");d.checked=!g.checked});f=f.cloneNode(!1);n=document.createElement("td");mxUtils.write(n,mxResources.get("pageScale")+":");f.appendChild(n);n=document.createElement("td");var m=document.createElement("input");m.setAttribute("value","100 %");m.setAttribute("size","5");m.style.width="50px";n.appendChild(m);f.appendChild(n);q.appendChild(f);f=document.createElement("tr");n=document.createElement("td");n.colSpan=2;
n.style.paddingTop="20px";n.setAttribute("align","right");k=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});k.className="geBtn";b.editor.cancelFirst&&n.appendChild(k);if(PrintDialog.previewEnabled){var p=mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();c(!1)});p.className="geBtn";n.appendChild(p)}p=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();c(!0)});p.className="geBtn gePrimaryBtn";n.appendChild(p);b.editor.cancelFirst||
-n.appendChild(k);f.appendChild(n);t.appendChild(f);l.appendChild(t);this.container=l};PrintDialog.printPreview=function(b){try{if(null!=b.wnd){var c=function(){b.wnd.focus();b.wnd.print();b.wnd.close()};mxClient.IS_GC?window.setTimeout(c,500):c()}}catch(e){}};
-PrintDialog.createPrintPreview=function(b,c,e,f,n,l,t){c=new mxPrintPreview(b,c,e,f,n,l);c.title=mxResources.get("preview");c.printBackgroundImage=!0;c.autoOrigin=t;b=b.background;if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";c.backgroundColor=b;var d=c.writeHead;c.writeHead=function(b){d.apply(this,arguments);b.writeln('<style type="text/css">');b.writeln("@media screen {");b.writeln(" body > div { padding:30px;box-sizing:content-box; }");b.writeln("}");b.writeln("</style>")};return c};
+n.appendChild(k);f.appendChild(n);q.appendChild(f);l.appendChild(q);this.container=l};PrintDialog.printPreview=function(b){try{if(null!=b.wnd){var c=function(){b.wnd.focus();b.wnd.print();b.wnd.close()};mxClient.IS_GC?window.setTimeout(c,500):c()}}catch(e){}};
+PrintDialog.createPrintPreview=function(b,c,e,f,n,l,q){c=new mxPrintPreview(b,c,e,f,n,l);c.title=mxResources.get("preview");c.printBackgroundImage=!0;c.autoOrigin=q;b=b.background;if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";c.backgroundColor=b;var d=c.writeHead;c.writeHead=function(b){d.apply(this,arguments);b.writeln('<style type="text/css">');b.writeln("@media screen {");b.writeln(" body > div { padding:30px;box-sizing:content-box; }");b.writeln("}");b.writeln("</style>")};return c};
PrintDialog.previewEnabled=!0;
-var PageSetupDialog=function(b){function c(){null==q||q==mxConstants.NONE?(g.style.backgroundColor="",g.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(g.style.backgroundColor=q,g.style.backgroundImage="")}function e(){var d=u;null!=d&&Graph.isPageLink(d.src)&&(d=b.createImageForPageLink(d.src,null));null!=d&&null!=d.src?(v.setAttribute("src",d.src),v.style.display=""):(v.removeAttribute("src"),v.style.display="none")}var f=b.editor.graph,n,l,t=document.createElement("table");t.style.width=
-"100%";t.style.height="100%";var d=document.createElement("tbody");n=document.createElement("tr");l=document.createElement("td");l.style.verticalAlign="top";l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("paperSize")+":");n.appendChild(l);l=document.createElement("td");l.style.verticalAlign="top";l.style.fontSize="10pt";var k=PageSetupDialog.addPageFormatPanel(l,"pagesetupdialog",f.pageFormat);n.appendChild(l);d.appendChild(n);n=document.createElement("tr");l=document.createElement("td");
-mxUtils.write(l,mxResources.get("background")+":");n.appendChild(l);l=document.createElement("td");l.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var g=document.createElement("button");g.style.width="22px";g.style.height="22px";g.style.cursor="pointer";g.style.marginRight="20px";g.style.backgroundPosition="center center";g.style.backgroundRepeat="no-repeat";mxClient.IS_FF&&(g.style.position="relative",g.style.top="-6px");var q=f.background;c();mxEvent.addListener(g,
-"click",function(d){b.pickColor(q||"none",function(b){q=b;c()});mxEvent.consume(d)});l.appendChild(g);mxUtils.write(l,mxResources.get("gridSize")+":");var m=document.createElement("input");m.setAttribute("type","number");m.setAttribute("min","0");m.style.width="40px";m.style.marginLeft="6px";m.value=f.getGridSize();l.appendChild(m);mxEvent.addListener(m,"change",function(){var b=parseInt(m.value);m.value=Math.max(1,isNaN(b)?f.getGridSize():b)});n.appendChild(l);d.appendChild(n);n=document.createElement("tr");
+var PageSetupDialog=function(b){function c(){null==t||t==mxConstants.NONE?(g.style.backgroundColor="",g.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(g.style.backgroundColor=t,g.style.backgroundImage="")}function e(){var d=u;null!=d&&Graph.isPageLink(d.src)&&(d=b.createImageForPageLink(d.src,null));null!=d&&null!=d.src?(v.setAttribute("src",d.src),v.style.display=""):(v.removeAttribute("src"),v.style.display="none")}var f=b.editor.graph,n,l,q=document.createElement("table");q.style.width=
+"100%";q.style.height="100%";var d=document.createElement("tbody");n=document.createElement("tr");l=document.createElement("td");l.style.verticalAlign="top";l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("paperSize")+":");n.appendChild(l);l=document.createElement("td");l.style.verticalAlign="top";l.style.fontSize="10pt";var k=PageSetupDialog.addPageFormatPanel(l,"pagesetupdialog",f.pageFormat);n.appendChild(l);d.appendChild(n);n=document.createElement("tr");l=document.createElement("td");
+mxUtils.write(l,mxResources.get("background")+":");n.appendChild(l);l=document.createElement("td");l.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var g=document.createElement("button");g.style.width="22px";g.style.height="22px";g.style.cursor="pointer";g.style.marginRight="20px";g.style.backgroundPosition="center center";g.style.backgroundRepeat="no-repeat";mxClient.IS_FF&&(g.style.position="relative",g.style.top="-6px");var t=f.background;c();mxEvent.addListener(g,
+"click",function(d){b.pickColor(t||"none",function(b){t=b;c()});mxEvent.consume(d)});l.appendChild(g);mxUtils.write(l,mxResources.get("gridSize")+":");var m=document.createElement("input");m.setAttribute("type","number");m.setAttribute("min","0");m.style.width="40px";m.style.marginLeft="6px";m.value=f.getGridSize();l.appendChild(m);mxEvent.addListener(m,"change",function(){var b=parseInt(m.value);m.value=Math.max(1,isNaN(b)?f.getGridSize():b)});n.appendChild(l);d.appendChild(n);n=document.createElement("tr");
l=document.createElement("td");mxUtils.write(l,mxResources.get("image")+":");n.appendChild(l);l=document.createElement("td");var p=document.createElement("button");p.className="geBtn";p.style.margin="0px";mxUtils.write(p,mxResources.get("change")+"...");var v=document.createElement("img");v.setAttribute("valign","middle");v.style.verticalAlign="middle";v.style.border="1px solid lightGray";v.style.borderRadius="4px";v.style.marginRight="14px";v.style.maxWidth="100px";v.style.cursor="pointer";v.style.height=
"60px";v.style.padding="4px";var u=f.backgroundImage,x=function(d){b.showBackgroundImageDialog(function(b,d){d||(u=b,e())},u);mxEvent.consume(d)};mxEvent.addListener(p,"click",x);mxEvent.addListener(v,"click",x);e();l.appendChild(v);l.appendChild(p);n.appendChild(l);d.appendChild(n);n=document.createElement("tr");l=document.createElement("td");l.colSpan=2;l.style.paddingTop="16px";l.setAttribute("align","right");p=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});p.className="geBtn";
-b.editor.cancelFirst&&l.appendChild(p);x=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();var d=parseInt(m.value);isNaN(d)||f.gridSize===d||f.setGridSize(d);d=new ChangePageSetup(b,q,u,k.get());d.ignoreColor=f.background==q;d.ignoreImage=(null!=f.backgroundImage?f.backgroundImage.src:null)===(null!=u?u.src:null);f.pageFormat.width==d.previousFormat.width&&f.pageFormat.height==d.previousFormat.height&&d.ignoreColor&&d.ignoreImage||f.model.execute(d)});x.className="geBtn gePrimaryBtn";
-l.appendChild(x);b.editor.cancelFirst||l.appendChild(p);n.appendChild(l);d.appendChild(n);t.appendChild(d);this.container=t};
+b.editor.cancelFirst&&l.appendChild(p);x=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();var d=parseInt(m.value);isNaN(d)||f.gridSize===d||f.setGridSize(d);d=new ChangePageSetup(b,t,u,k.get());d.ignoreColor=f.background==t;d.ignoreImage=(null!=f.backgroundImage?f.backgroundImage.src:null)===(null!=u?u.src:null);f.pageFormat.width==d.previousFormat.width&&f.pageFormat.height==d.previousFormat.height&&d.ignoreColor&&d.ignoreImage||f.model.execute(d)});x.className="geBtn gePrimaryBtn";
+l.appendChild(x);b.editor.cancelFirst||l.appendChild(p);n.appendChild(l);d.appendChild(n);q.appendChild(d);this.container=q};
PageSetupDialog.addPageFormatPanel=function(b,c,e,f){function n(b,c,g){if(g||m!=document.activeElement&&p!=document.activeElement){b=!1;for(c=0;c<u.length;c++)g=u[c],H?"custom"==g.key&&(d.value=g.key,H=!1):null!=g.format&&("a4"==g.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==g.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==g.format.width&&
-e.height==g.format.height?(d.value=g.key,l.setAttribute("checked","checked"),l.defaultChecked=!0,l.checked=!0,t.removeAttribute("checked"),t.defaultChecked=!1,t.checked=!1,b=!0):e.width==g.format.height&&e.height==g.format.width&&(d.value=g.key,l.removeAttribute("checked"),l.defaultChecked=!1,l.checked=!1,t.setAttribute("checked","checked"),t.defaultChecked=!0,b=t.checked=!0));b?(k.style.display="",q.style.display="none"):(m.value=e.width/100,p.value=e.height/100,l.setAttribute("checked","checked"),
-d.value="custom",k.style.display="none",q.style.display="")}}c="format-"+c;var l=document.createElement("input");l.setAttribute("name",c);l.setAttribute("type","radio");l.setAttribute("value","portrait");var t=document.createElement("input");t.setAttribute("name",c);t.setAttribute("type","radio");t.setAttribute("value","landscape");var d=document.createElement("select");d.style.marginBottom="8px";d.style.borderRadius="4px";d.style.border="1px solid rgb(160, 160, 160)";d.style.width="206px";var k=
-document.createElement("div");k.style.marginLeft="4px";k.style.width="210px";k.style.height="24px";l.style.marginRight="6px";k.appendChild(l);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));k.appendChild(c);t.style.marginLeft="10px";t.style.marginRight="6px";k.appendChild(t);var g=document.createElement("span");g.style.width="100px";mxUtils.write(g,mxResources.get("landscape"));k.appendChild(g);var q=document.createElement("div");q.style.marginLeft=
-"4px";q.style.width="210px";q.style.height="24px";var m=document.createElement("input");m.setAttribute("size","7");m.style.textAlign="right";q.appendChild(m);mxUtils.write(q," in x ");var p=document.createElement("input");p.setAttribute("size","7");p.style.textAlign="right";q.appendChild(p);mxUtils.write(q," in");k.style.display="none";q.style.display="none";for(var v={},u=PageSetupDialog.getFormats(),x=0;x<u.length;x++){var y=u[x];v[y.key]=y;var G=document.createElement("option");G.setAttribute("value",
-y.key);mxUtils.write(G,y.title);d.appendChild(G)}var H=!1;n();b.appendChild(d);mxUtils.br(b);b.appendChild(k);b.appendChild(q);var D=e,F=function(b,c){var g=v[d.value];null!=g.format?(m.value=g.format.width/100,p.value=g.format.height/100,q.style.display="none",k.style.display=""):(k.style.display="none",q.style.display="");g=parseFloat(m.value);if(isNaN(g)||0>=g)m.value=e.width/100;g=parseFloat(p.value);if(isNaN(g)||0>=g)p.value=e.height/100;g=new mxRectangle(0,0,Math.floor(100*parseFloat(m.value)),
-Math.floor(100*parseFloat(p.value)));"custom"!=d.value&&t.checked&&(g=new mxRectangle(0,0,g.height,g.width));c&&H||g.width==D.width&&g.height==D.height||(D=g,null!=f&&f(D))};mxEvent.addListener(c,"click",function(b){l.checked=!0;F(b);mxEvent.consume(b)});mxEvent.addListener(g,"click",function(b){t.checked=!0;F(b);mxEvent.consume(b)});mxEvent.addListener(m,"blur",F);mxEvent.addListener(m,"click",F);mxEvent.addListener(p,"blur",F);mxEvent.addListener(p,"click",F);mxEvent.addListener(t,"change",F);mxEvent.addListener(l,
+e.height==g.format.height?(d.value=g.key,l.setAttribute("checked","checked"),l.defaultChecked=!0,l.checked=!0,q.removeAttribute("checked"),q.defaultChecked=!1,q.checked=!1,b=!0):e.width==g.format.height&&e.height==g.format.width&&(d.value=g.key,l.removeAttribute("checked"),l.defaultChecked=!1,l.checked=!1,q.setAttribute("checked","checked"),q.defaultChecked=!0,b=q.checked=!0));b?(k.style.display="",t.style.display="none"):(m.value=e.width/100,p.value=e.height/100,l.setAttribute("checked","checked"),
+d.value="custom",k.style.display="none",t.style.display="")}}c="format-"+c;var l=document.createElement("input");l.setAttribute("name",c);l.setAttribute("type","radio");l.setAttribute("value","portrait");var q=document.createElement("input");q.setAttribute("name",c);q.setAttribute("type","radio");q.setAttribute("value","landscape");var d=document.createElement("select");d.style.marginBottom="8px";d.style.borderRadius="4px";d.style.border="1px solid rgb(160, 160, 160)";d.style.width="206px";var k=
+document.createElement("div");k.style.marginLeft="4px";k.style.width="210px";k.style.height="24px";l.style.marginRight="6px";k.appendChild(l);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));k.appendChild(c);q.style.marginLeft="10px";q.style.marginRight="6px";k.appendChild(q);var g=document.createElement("span");g.style.width="100px";mxUtils.write(g,mxResources.get("landscape"));k.appendChild(g);var t=document.createElement("div");t.style.marginLeft=
+"4px";t.style.width="210px";t.style.height="24px";var m=document.createElement("input");m.setAttribute("size","7");m.style.textAlign="right";t.appendChild(m);mxUtils.write(t," in x ");var p=document.createElement("input");p.setAttribute("size","7");p.style.textAlign="right";t.appendChild(p);mxUtils.write(t," in");k.style.display="none";t.style.display="none";for(var v={},u=PageSetupDialog.getFormats(),x=0;x<u.length;x++){var y=u[x];v[y.key]=y;var G=document.createElement("option");G.setAttribute("value",
+y.key);mxUtils.write(G,y.title);d.appendChild(G)}var H=!1;n();b.appendChild(d);mxUtils.br(b);b.appendChild(k);b.appendChild(t);var D=e,F=function(b,c){var g=v[d.value];null!=g.format?(m.value=g.format.width/100,p.value=g.format.height/100,t.style.display="none",k.style.display=""):(k.style.display="none",t.style.display="");g=parseFloat(m.value);if(isNaN(g)||0>=g)m.value=e.width/100;g=parseFloat(p.value);if(isNaN(g)||0>=g)p.value=e.height/100;g=new mxRectangle(0,0,Math.floor(100*parseFloat(m.value)),
+Math.floor(100*parseFloat(p.value)));"custom"!=d.value&&q.checked&&(g=new mxRectangle(0,0,g.height,g.width));c&&H||g.width==D.width&&g.height==D.height||(D=g,null!=f&&f(D))};mxEvent.addListener(c,"click",function(b){l.checked=!0;F(b);mxEvent.consume(b)});mxEvent.addListener(g,"click",function(b){q.checked=!0;F(b);mxEvent.consume(b)});mxEvent.addListener(m,"blur",F);mxEvent.addListener(m,"click",F);mxEvent.addListener(p,"blur",F);mxEvent.addListener(p,"click",F);mxEvent.addListener(q,"change",F);mxEvent.addListener(l,
"change",F);mxEvent.addListener(d,"change",function(b){H="custom"==d.value;F(b,!0)});F();return{set:function(b){e=b;n(null,null,!0)},get:function(){return D},widthInput:m,heightInput:p}};
PageSetupDialog.getFormats=function(){return[{key:"letter",title:'US-Letter (8,5" x 11")',format:mxConstants.PAGE_FORMAT_LETTER_PORTRAIT},{key:"legal",title:'US-Legal (8,5" x 14")',format:new mxRectangle(0,0,850,1400)},{key:"tabloid",title:'US-Tabloid (11" x 17")',format:new mxRectangle(0,0,1100,1700)},{key:"executive",title:'US-Executive (7" x 10")',format:new mxRectangle(0,0,700,1E3)},{key:"a0",title:"A0 (841 mm x 1189 mm)",format:new mxRectangle(0,0,3300,4681)},{key:"a1",title:"A1 (594 mm x 841 mm)",
format:new mxRectangle(0,0,2339,3300)},{key:"a2",title:"A2 (420 mm x 594 mm)",format:new mxRectangle(0,0,1654,2336)},{key:"a3",title:"A3 (297 mm x 420 mm)",format:new mxRectangle(0,0,1169,1654)},{key:"a4",title:"A4 (210 mm x 297 mm)",format:mxConstants.PAGE_FORMAT_A4_PORTRAIT},{key:"a5",title:"A5 (148 mm x 210 mm)",format:new mxRectangle(0,0,583,827)},{key:"a6",title:"A6 (105 mm x 148 mm)",format:new mxRectangle(0,0,413,583)},{key:"a7",title:"A7 (74 mm x 105 mm)",format:new mxRectangle(0,0,291,413)},
{key:"b4",title:"B4 (250 mm x 353 mm)",format:new mxRectangle(0,0,980,1390)},{key:"b5",title:"B5 (176 mm x 250 mm)",format:new mxRectangle(0,0,690,980)},{key:"16-9",title:"16:9 (1600 x 900)",format:new mxRectangle(0,0,900,1600)},{key:"16-10",title:"16:10 (1920 x 1200)",format:new mxRectangle(0,0,1200,1920)},{key:"4-3",title:"4:3 (1600 x 1200)",format:new mxRectangle(0,0,1200,1600)},{key:"custom",title:mxResources.get("custom"),format:null}]};
-var FilenameDialog=function(b,c,e,f,n,l,t,d,k,g,q,m){k=null!=k?k:!0;var p,v,u=document.createElement("table"),x=document.createElement("tbody");u.style.position="absolute";u.style.top="30px";u.style.left="20px";p=document.createElement("tr");v=document.createElement("td");v.style.textOverflow="ellipsis";v.style.textAlign="right";v.style.maxWidth="100px";v.style.fontSize="10pt";v.style.width="84px";mxUtils.write(v,(n||mxResources.get("filename"))+":");p.appendChild(v);var y=document.createElement("input");
-y.setAttribute("value",c||"");y.style.marginLeft="4px";y.style.width=null!=m?m+"px":"180px";var G=mxUtils.button(e,function(){if(null==l||l(y.value))k&&b.hideDialog(),f(y.value)});G.className="geBtn gePrimaryBtn";this.init=function(){if(null!=n||null==t)if(y.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?y.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var b=u.parentNode;if(null!=b){var d=null;mxEvent.addListener(b,"dragleave",function(b){null!=d&&(d.style.backgroundColor=
+var FilenameDialog=function(b,c,e,f,n,l,q,d,k,g,t,m){k=null!=k?k:!0;var p,v,u=document.createElement("table"),x=document.createElement("tbody");u.style.position="absolute";u.style.top="30px";u.style.left="20px";p=document.createElement("tr");v=document.createElement("td");v.style.textOverflow="ellipsis";v.style.textAlign="right";v.style.maxWidth="100px";v.style.fontSize="10pt";v.style.width="84px";mxUtils.write(v,(n||mxResources.get("filename"))+":");p.appendChild(v);var y=document.createElement("input");
+y.setAttribute("value",c||"");y.style.marginLeft="4px";y.style.width=null!=m?m+"px":"180px";var G=mxUtils.button(e,function(){if(null==l||l(y.value))k&&b.hideDialog(),f(y.value)});G.className="geBtn gePrimaryBtn";this.init=function(){if(null!=n||null==q)if(y.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?y.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var b=u.parentNode;if(null!=b){var d=null;mxEvent.addListener(b,"dragleave",function(b){null!=d&&(d.style.backgroundColor=
"",d=null);b.stopPropagation();b.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(b){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=y,d.style.backgroundColor="#ebf2f9");b.stopPropagation();b.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=d&&(d.style.backgroundColor="",d=null);0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")&&(y.value=decodeURIComponent(b.dataTransfer.getData("text/uri-list")),G.click());b.stopPropagation();
-b.preventDefault()}))}}};v=document.createElement("td");v.style.whiteSpace="nowrap";v.appendChild(y);p.appendChild(v);if(null!=n||null==t)x.appendChild(p),null!=q&&(v.appendChild(FilenameDialog.createTypeHint(b,y,q)),null!=b.editor.diagramFileTypes&&(p=document.createElement("tr"),v=document.createElement("td"),v.style.textOverflow="ellipsis",v.style.textAlign="right",v.style.maxWidth="100px",v.style.fontSize="10pt",v.style.width="84px",mxUtils.write(v,mxResources.get("type")+":"),p.appendChild(v),
-v=document.createElement("td"),v.style.whiteSpace="nowrap",p.appendChild(v),c=FilenameDialog.createFileTypes(b,y,b.editor.diagramFileTypes),c.style.marginLeft="4px",c.style.width="198px",v.appendChild(c),y.style.width=null!=m?m-40+"px":"190px",p.appendChild(v),x.appendChild(p)));null!=t&&(p=document.createElement("tr"),v=document.createElement("td"),v.colSpan=2,v.appendChild(t),p.appendChild(v),x.appendChild(p));p=document.createElement("tr");v=document.createElement("td");v.colSpan=2;v.style.paddingTop=
-null!=q?"12px":"20px";v.style.whiteSpace="nowrap";v.setAttribute("align","right");q=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog();null!=g&&g()});q.className="geBtn";b.editor.cancelFirst&&v.appendChild(q);null!=d&&(m=mxUtils.button(mxResources.get("help"),function(){b.editor.graph.openLink(d)}),m.className="geBtn",v.appendChild(m));mxEvent.addListener(y,"keypress",function(b){13==b.keyCode&&G.click()});v.appendChild(G);b.editor.cancelFirst||v.appendChild(q);p.appendChild(v);x.appendChild(p);
+b.preventDefault()}))}}};v=document.createElement("td");v.style.whiteSpace="nowrap";v.appendChild(y);p.appendChild(v);if(null!=n||null==q)x.appendChild(p),null!=t&&(v.appendChild(FilenameDialog.createTypeHint(b,y,t)),null!=b.editor.diagramFileTypes&&(p=document.createElement("tr"),v=document.createElement("td"),v.style.textOverflow="ellipsis",v.style.textAlign="right",v.style.maxWidth="100px",v.style.fontSize="10pt",v.style.width="84px",mxUtils.write(v,mxResources.get("type")+":"),p.appendChild(v),
+v=document.createElement("td"),v.style.whiteSpace="nowrap",p.appendChild(v),c=FilenameDialog.createFileTypes(b,y,b.editor.diagramFileTypes),c.style.marginLeft="4px",c.style.width="198px",v.appendChild(c),y.style.width=null!=m?m-40+"px":"190px",p.appendChild(v),x.appendChild(p)));null!=q&&(p=document.createElement("tr"),v=document.createElement("td"),v.colSpan=2,v.appendChild(q),p.appendChild(v),x.appendChild(p));p=document.createElement("tr");v=document.createElement("td");v.colSpan=2;v.style.paddingTop=
+null!=t?"12px":"20px";v.style.whiteSpace="nowrap";v.setAttribute("align","right");t=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog();null!=g&&g()});t.className="geBtn";b.editor.cancelFirst&&v.appendChild(t);null!=d&&(m=mxUtils.button(mxResources.get("help"),function(){b.editor.graph.openLink(d)}),m.className="geBtn",v.appendChild(m));mxEvent.addListener(y,"keypress",function(b){13==b.keyCode&&G.click()});v.appendChild(G);b.editor.cancelFirst||v.appendChild(t);p.appendChild(v);x.appendChild(p);
u.appendChild(x);this.container=u};FilenameDialog.filenameHelpLink=null;
FilenameDialog.createTypeHint=function(b,c,e){var f=document.createElement("img");f.style.backgroundPosition="center bottom";f.style.backgroundRepeat="no-repeat";f.style.margin="2px 0 0 4px";f.style.verticalAlign="top";f.style.cursor="pointer";f.style.height="16px";f.style.width="16px";mxUtils.setOpacity(f,70);var n=function(){f.setAttribute("src",Editor.helpImage);f.setAttribute("title",mxResources.get("help"));for(var b=0;b<e.length;b++)if(0<e[b].ext.length&&c.value.toLowerCase().substring(c.value.length-
e[b].ext.length-1)=="."+e[b].ext){f.setAttribute("title",mxResources.get(e[b].title));break}};mxEvent.addListener(c,"keyup",n);mxEvent.addListener(c,"change",n);mxEvent.addListener(f,"click",function(c){var e=f.getAttribute("title");f.getAttribute("src")==Editor.helpImage?b.editor.graph.openLink(FilenameDialog.filenameHelpLink):""!=e&&b.showError(null,e,mxResources.get("help"),function(){b.editor.graph.openLink(FilenameDialog.filenameHelpLink)},null,mxResources.get("ok"),null,null,null,340,90);mxEvent.consume(c)});
@@ -2141,7 +2141,7 @@ mxGraphView.prototype.validateBackgroundStyles=function(){var b=this.graph,d=nul
b.defaultPageBorderColor,b.container.className="geDiagramContainer geDiagramBackdrop",c.style.backgroundImage="none",c.style.backgroundColor=""):(b.container.className="geDiagramContainer",c.style.backgroundPosition=e,c.style.backgroundColor=d,c.style.backgroundImage=g)};mxGraphView.prototype.createSvgGrid=function(b){for(var d=this.graph.gridSize*this.scale;d<this.minGridSize;)d*=2;for(var c=this.gridSteps*d,g=[],e=1;e<this.gridSteps;e++){var f=e*d;g.push("M 0 "+f+" L "+c+" "+f+" M "+f+" 0 L "+f+
" "+c)}return'<svg width="'+c+'" height="'+c+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+c+'" height="'+c+'" patternUnits="userSpaceOnUse"><path d="'+g.join(" ")+'" fill="none" stroke="'+b+'" opacity="0.2" stroke-width="1"/><path d="M '+c+" 0 L 0 0 0 "+c+'" fill="none" stroke="'+b+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(c,d){b.apply(this,arguments);
if(null!=this.shiftPreview1){var k=this.view.canvas;null!=k.ownerSVGElement&&(k=k.ownerSVGElement);var g=this.gridSize*this.view.scale*this.view.gridSteps,g=-Math.round(g-mxUtils.mod(this.view.translate.x*this.view.scale+c,g))+"px "+-Math.round(g-mxUtils.mod(this.view.translate.y*this.view.scale+d,g))+"px";k.style.backgroundPosition=g}};mxGraph.prototype.updatePageBreaks=function(b,d,c){var g=this.view.scale,k=this.view.translate,e=this.pageFormat,f=g*this.pageScale,l=this.view.getBackgroundPageBounds();
-d=l.width;c=l.height;var u=new mxRectangle(g*k.x,g*k.y,e.width*f,e.height*f),n=(b=b&&Math.min(u.width,u.height)>this.minPageBreakDist)?Math.ceil(c/u.height)-1:0,t=b?Math.ceil(d/u.width)-1:0,G=l.x+d,H=l.y+c;null==this.horizontalPageBreaks&&0<n&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<t&&(this.verticalPageBreaks=[]);b=mxUtils.bind(this,function(b){if(null!=b){for(var d=b==this.horizontalPageBreaks?n:t,c=0;c<=d;c++){var g=b==this.horizontalPageBreaks?[new mxPoint(Math.round(l.x),
+d=l.width;c=l.height;var u=new mxRectangle(g*k.x,g*k.y,e.width*f,e.height*f),n=(b=b&&Math.min(u.width,u.height)>this.minPageBreakDist)?Math.ceil(c/u.height)-1:0,q=b?Math.ceil(d/u.width)-1:0,G=l.x+d,H=l.y+c;null==this.horizontalPageBreaks&&0<n&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<q&&(this.verticalPageBreaks=[]);b=mxUtils.bind(this,function(b){if(null!=b){for(var d=b==this.horizontalPageBreaks?n:q,c=0;c<=d;c++){var g=b==this.horizontalPageBreaks?[new mxPoint(Math.round(l.x),
Math.round(l.y+(c+1)*u.height)),new mxPoint(Math.round(G),Math.round(l.y+(c+1)*u.height))]:[new mxPoint(Math.round(l.x+(c+1)*u.width),Math.round(l.y)),new mxPoint(Math.round(l.x+(c+1)*u.width),Math.round(H))];null!=b[c]?(b[c].points=g,b[c].redraw()):(g=new mxPolyline(g,this.pageBreakColor),g.dialect=this.dialect,g.isDashed=this.pageBreakDashed,g.pointerEvents=!1,g.init(this.view.backgroundPane),g.redraw(),b[c]=g)}for(c=d;c<b.length;c++)b[c].destroy();b.splice(d,b.length-d)}});b(this.horizontalPageBreaks);
b(this.verticalPageBreaks)};var c=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(b,d,k){for(var g=0;g<d.length;g++){if(this.graph.isTableCell(d[g])||this.graph.isTableRow(d[g]))return!1;if(this.graph.getModel().isVertex(d[g])){var e=this.graph.getCellGeometry(d[g]);if(null!=e&&e.relative)return!1}}return c.apply(this,arguments)};var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var b=
e.apply(this,arguments);b.intersects=mxUtils.bind(this,function(d,c){return this.isConnecting()?!0:mxCellMarker.prototype.intersects.apply(b,arguments)});return b};mxGraphView.prototype.createBackgroundPageShape=function(b){return new mxRectangleShape(b,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var b=this.getGraphBounds(),d=0<b.width?b.x/this.scale-this.translate.x:0,c=0<b.height?b.y/this.scale-this.translate.y:0,g=this.graph.pageFormat,
@@ -2151,11 +2151,11 @@ function(b,d,c){var g,k=this.graph.model.getParent(b);if(d)g=this.graph.model.is
this.graph.isCellSelected(b)&&!this.graph.isToggleEvent(c.getEvent())||this.graph.isTableCell(b)&&this.graph.isCellSelected(k);return g};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(b){b=b.getCell();for(var d=this.graph.getModel(),c=d.getParent(b),g=this.graph.view.getState(c),e=this.graph.isCellSelected(b);null!=g&&(d.isVertex(c)||d.isEdge(c));){var f=this.graph.isCellSelected(c),e=e||f;if(f||!e&&(this.graph.isTableCell(b)||this.graph.isTableRow(b)))b=c;c=d.getParent(c)}return b}})();EditorUi=function(b,c,e){mxEventSource.call(this);this.destroyFunctions=[];this.editor=b||new Editor;this.container=c||document.body;var f=this.editor.graph;f.lightbox=e;var n=f.getGraphBounds;f.getGraphBounds=function(){var b=n.apply(this,arguments),d=this.backgroundImage;if(null!=d&&null!=d.width&&null!=d.height){var c=this.view.translate,g=this.view.scale,b=mxRectangle.fromRectangle(b);b.add(new mxRectangle((c.x+d.x)*g,(c.y+d.y)*g,d.width*g,d.height*g))}return b};f.useCssTransforms&&(this.lazyZoomDelay=
0);mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);this.selectionStateListener=mxUtils.bind(this,function(b,d){this.clearSelectionState()});f.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionStateListener);
f.getModel().addListener(mxEvent.CHANGE,this.selectionStateListener);f.addListener(mxEvent.EDITING_STARTED,this.selectionStateListener);f.addListener(mxEvent.EDITING_STOPPED,this.selectionStateListener);f.getView().addListener("unitChanged",this.selectionStateListener);this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,f.isEnabled=function(){return!1},f.panningHandler.isForcePanningEvent=function(b){return!mxEvent.isPopupTrigger(b.getEvent())});this.actions=new Actions(this);this.menus=
-this.createMenus();if(!f.standalone){var l="rounded shadow glass dashed dashPattern labelBackgroundColor labelBorderColor comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle pointerEvents".split(" "),t="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" "),
+this.createMenus();if(!f.standalone){var l="rounded shadow glass dashed dashPattern labelBackgroundColor labelBorderColor comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle pointerEvents".split(" "),q="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" "),
d="curved sourcePerimeterSpacing targetPerimeterSpacing startArrow startFill startSize endArrow endFill endSize".split(" ");this.setDefaultStyle=function(b){try{var d=f.getCellStyle(b,!1),c=[],g=[],k;for(k in d)c.push(d[k]),g.push(k);f.getModel().isEdge(b)?f.currentEdgeStyle={}:f.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",g,"values",c,"cells",[b]))}catch(da){this.handleError(da)}};this.clearDefaultStyle=function(){f.currentEdgeStyle=mxUtils.clone(f.defaultEdgeStyle);
-f.currentVertexStyle=mxUtils.clone(f.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var k=["fontFamily","fontSource","fontSize","fontColor"];for(c=0;c<k.length;c++)0>mxUtils.indexOf(l,k[c])&&l.push(k[c]);var g="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),q=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],
-["fillColor","gradientColor","gradientDirection"],["opacity"],["html"]];for(c=0;c<q.length;c++)for(e=0;e<q[c].length;e++)l.push(q[c][e]);for(c=0;c<t.length;c++)0>mxUtils.indexOf(l,t[c])&&l.push(t[c]);var m=function(b,c,g,k,e,m,p){k=null!=k?k:f.currentVertexStyle;e=null!=e?e:f.currentEdgeStyle;m=null!=m?m:!0;g=null!=g?g:f.getModel();if(p){p=[];for(var B=0;B<b.length;B++)p=p.concat(g.getDescendants(b[B]));b=p}g.beginUpdate();try{for(B=0;B<b.length;B++){var u=b[B],n;if(c)n=["fontSize","fontFamily","fontColor"];
-else{var v=g.getStyle(u),y=null!=v?v.split(";"):[];n=l.slice();for(var t=0;t<y.length;t++){var x=y[t],Q=x.indexOf("=");if(0<=Q){var A=x.substring(0,Q),ja=mxUtils.indexOf(n,A);0<=ja&&n.splice(ja,1);for(p=0;p<q.length;p++){var X=q[p];if(0<=mxUtils.indexOf(X,A))for(var M=0;M<X.length;M++){var G=mxUtils.indexOf(n,X[M]);0<=G&&n.splice(G,1)}}}}}var F=g.isEdge(u);p=F?e:k;for(var C=g.getStyle(u),t=0;t<n.length;t++){var A=n[t],V=p[A];null!=V&&"edgeStyle"!=A&&("shape"!=A||F)&&(!F||m||0>mxUtils.indexOf(d,A))&&
+f.currentVertexStyle=mxUtils.clone(f.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var k=["fontFamily","fontSource","fontSize","fontColor"];for(c=0;c<k.length;c++)0>mxUtils.indexOf(l,k[c])&&l.push(k[c]);var g="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),t=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],
+["fillColor","gradientColor","gradientDirection"],["opacity"],["html"]];for(c=0;c<t.length;c++)for(e=0;e<t[c].length;e++)l.push(t[c][e]);for(c=0;c<q.length;c++)0>mxUtils.indexOf(l,q[c])&&l.push(q[c]);var m=function(b,c,g,k,e,m,p){k=null!=k?k:f.currentVertexStyle;e=null!=e?e:f.currentEdgeStyle;m=null!=m?m:!0;g=null!=g?g:f.getModel();if(p){p=[];for(var B=0;B<b.length;B++)p=p.concat(g.getDescendants(b[B]));b=p}g.beginUpdate();try{for(B=0;B<b.length;B++){var u=b[B],n;if(c)n=["fontSize","fontFamily","fontColor"];
+else{var v=g.getStyle(u),y=null!=v?v.split(";"):[];n=l.slice();for(var q=0;q<y.length;q++){var x=y[q],Q=x.indexOf("=");if(0<=Q){var A=x.substring(0,Q),ja=mxUtils.indexOf(n,A);0<=ja&&n.splice(ja,1);for(p=0;p<t.length;p++){var X=t[p];if(0<=mxUtils.indexOf(X,A))for(var M=0;M<X.length;M++){var G=mxUtils.indexOf(n,X[M]);0<=G&&n.splice(G,1)}}}}}var F=g.isEdge(u);p=F?e:k;for(var C=g.getStyle(u),q=0;q<n.length;q++){var A=n[q],V=p[A];null!=V&&"edgeStyle"!=A&&("shape"!=A||F)&&(!F||m||0>mxUtils.indexOf(d,A))&&
(C=mxUtils.setStyle(C,A,V))}Editor.simpleLabels&&(C=mxUtils.setStyle(mxUtils.setStyle(C,"html",null),"whiteSpace",null));g.setStyle(u,C)}}finally{g.endUpdate()}return b};f.addListener("cellsInserted",function(b,d){m(d.getProperty("cells"),null,null,null,null,!0,!0)});f.addListener("textInserted",function(b,d){m(d.getProperty("cells"),!0)});this.insertHandler=m;this.createDivs();this.createUi();this.refresh();var p=mxUtils.bind(this,function(b){null==b&&(b=window.event);return f.isEditing()||null!=
b&&this.isSelectionAllowed(b)});this.container==document.body&&(this.menubarContainer.onselectstart=p,this.menubarContainer.onmousedown=p,this.toolbarContainer.onselectstart=p,this.toolbarContainer.onmousedown=p,this.diagramContainer.onselectstart=p,this.diagramContainer.onmousedown=p,this.sidebarContainer.onselectstart=p,this.sidebarContainer.onmousedown=p,this.formatContainer.onselectstart=p,this.formatContainer.onmousedown=p,this.footerContainer.onselectstart=p,this.footerContainer.onmousedown=
p,null!=this.tabContainer&&(this.tabContainer.onselectstart=p));!this.editor.chromeless||this.editor.editable?(c=function(b){if(null!=b){var d=mxEvent.getSource(b);if("A"==d.nodeName)for(;null!=d;){if("geHint"==d.className)return!0;d=d.parentNode}}return p(b)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",c):this.diagramContainer.oncontextmenu=c):f.panningHandler.usePopupTrigger=!1;f.init(this.diagramContainer);
@@ -2163,12 +2163,12 @@ mxClient.IS_SVG&&null!=f.view.getDrawPane()&&(c=f.view.getDrawPane().ownerSVGEle
0<mxEvent.getClientY(b)-d.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var u=!1,x=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(b,d){return u||x.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(b){32!=b.which||f.isEditing()?mxEvent.isConsumed(b)||27!=b.keyCode||this.hideDialog(null,!0):(u=!0,this.hoverIcons.reset(),f.container.style.cursor="move",
f.isEditing()||mxEvent.getSource(b)!=f.container||mxEvent.consume(b))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(b){f.container.style.cursor="";u=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var y=f.panningHandler.isForcePanningEvent;f.panningHandler.isForcePanningEvent=function(b){return y.apply(this,arguments)||u||mxEvent.isMouseEvent(b.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(b.getEvent()))&&(!mxEvent.isControlDown(b.getEvent())&&
mxEvent.isRightMouseButton(b.getEvent())||mxEvent.isMiddleMouseButton(b.getEvent()))};var G=f.cellEditor.isStopEditingEvent;f.cellEditor.isStopEditingEvent=function(b){return G.apply(this,arguments)||13==b.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxClient.IS_SF&&mxEvent.isShiftDown(b))};var H=f.isZoomWheelEvent;f.isZoomWheelEvent=function(){return u||H.apply(this,arguments)};var D=!1,F=null,O=null,A=null,C=mxUtils.bind(this,function(){if(null!=this.toolbar&&
-D!=f.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var c=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),d.push(b));b=c}b=this.toolbar.fontMenu;c=this.toolbar.sizeMenu;if(null==A)this.toolbar.createTextToolbar();else{for(var g=0;g<A.length;g++)this.toolbar.container.appendChild(A[g]);this.toolbar.fontMenu=F;this.toolbar.sizeMenu=O}D=f.cellEditor.isContentEditing();F=b;O=c;A=d}}),E=this,L=f.cellEditor.startEditing;
-f.cellEditor.startEditing=function(){L.apply(this,arguments);C();if(f.cellEditor.isContentEditing()){var b=!1,d=function(){b||(b=!0,window.setTimeout(function(){var d=f.getSelectedEditingElement();null!=d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=E.toolbar&&(E.toolbar.setFontName(Graph.stripQuotes(d.fontFamily)),E.toolbar.setFontSize(parseInt(d.fontSize))));b=!1},0))};mxEvent.addListener(f.cellEditor.textarea,"input",d);mxEvent.addListener(f.cellEditor.textarea,"touchend",d);mxEvent.addListener(f.cellEditor.textarea,
+D!=f.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var c=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),d.push(b));b=c}b=this.toolbar.fontMenu;c=this.toolbar.sizeMenu;if(null==A)this.toolbar.createTextToolbar();else{for(var g=0;g<A.length;g++)this.toolbar.container.appendChild(A[g]);this.toolbar.fontMenu=F;this.toolbar.sizeMenu=O}D=f.cellEditor.isContentEditing();F=b;O=c;A=d}}),E=this,J=f.cellEditor.startEditing;
+f.cellEditor.startEditing=function(){J.apply(this,arguments);C();if(f.cellEditor.isContentEditing()){var b=!1,d=function(){b||(b=!0,window.setTimeout(function(){var d=f.getSelectedEditingElement();null!=d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=E.toolbar&&(E.toolbar.setFontName(Graph.stripQuotes(d.fontFamily)),E.toolbar.setFontSize(parseInt(d.fontSize))));b=!1},0))};mxEvent.addListener(f.cellEditor.textarea,"input",d);mxEvent.addListener(f.cellEditor.textarea,"touchend",d);mxEvent.addListener(f.cellEditor.textarea,
"mouseup",d);mxEvent.addListener(f.cellEditor.textarea,"keyup",d);d()}};var N=f.cellEditor.stopEditing;f.cellEditor.stopEditing=function(b,d){try{N.apply(this,arguments),C()}catch(X){E.handleError(X)}};f.container.setAttribute("tabindex","0");f.container.style.cursor="default";if(window.self===window.top&&null!=f.container.parentNode)try{f.container.focus()}catch(Q){}var M=f.fireMouseEvent;f.fireMouseEvent=function(b,d,c){b==mxEvent.MOUSE_DOWN&&this.container.focus();M.apply(this,arguments)};f.popupMenuHandler.autoExpand=
!0;null!=this.menus&&(f.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(b,d,c){this.menus.createPopupMenu(b,d,c)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(b){f.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(b);this.getKeyHandler=function(){return keyHandler};f.connectionHandler.addListener(mxEvent.CONNECT,function(b,d){var c=[d.getProperty("cell")];d.getProperty("terminalInserted")&&(c.push(d.getProperty("terminal")),window.setTimeout(function(){null!=
-E.hoverIcons&&E.hoverIcons.update(f.view.getState(c[c.length-1]))},0));m(c)});this.addListener("styleChanged",mxUtils.bind(this,function(b,d){var c=d.getProperty("cells"),e=!1,q=!1;if(0<c.length)for(var m=0;m<c.length&&(e=f.getModel().isVertex(c[m])||e,!(q=f.getModel().isEdge(c[m])||q)||!e);m++);else q=e=!0;for(var c=d.getProperty("keys"),p=d.getProperty("values"),m=0;m<c.length;m++){var B=0<=mxUtils.indexOf(k,c[m]);if("strokeColor"!=c[m]||null!=p[m]&&"none"!=p[m])if(0<=mxUtils.indexOf(t,c[m]))q||
-0<=mxUtils.indexOf(g,c[m])?null==p[m]?delete f.currentEdgeStyle[c[m]]:f.currentEdgeStyle[c[m]]=p[m]:e&&0<=mxUtils.indexOf(l,c[m])&&(null==p[m]?delete f.currentVertexStyle[c[m]]:f.currentVertexStyle[c[m]]=p[m]);else if(0<=mxUtils.indexOf(l,c[m])){if(e||B)null==p[m]?delete f.currentVertexStyle[c[m]]:f.currentVertexStyle[c[m]]=p[m];if(q||B||0<=mxUtils.indexOf(g,c[m]))null==p[m]?delete f.currentEdgeStyle[c[m]]:f.currentEdgeStyle[c[m]]=p[m]}}null!=this.toolbar&&(this.toolbar.setFontName(f.currentVertexStyle.fontFamily||
+E.hoverIcons&&E.hoverIcons.update(f.view.getState(c[c.length-1]))},0));m(c)});this.addListener("styleChanged",mxUtils.bind(this,function(b,d){var c=d.getProperty("cells"),e=!1,t=!1;if(0<c.length)for(var m=0;m<c.length&&(e=f.getModel().isVertex(c[m])||e,!(t=f.getModel().isEdge(c[m])||t)||!e);m++);else t=e=!0;for(var c=d.getProperty("keys"),p=d.getProperty("values"),m=0;m<c.length;m++){var B=0<=mxUtils.indexOf(k,c[m]);if("strokeColor"!=c[m]||null!=p[m]&&"none"!=p[m])if(0<=mxUtils.indexOf(q,c[m]))t||
+0<=mxUtils.indexOf(g,c[m])?null==p[m]?delete f.currentEdgeStyle[c[m]]:f.currentEdgeStyle[c[m]]=p[m]:e&&0<=mxUtils.indexOf(l,c[m])&&(null==p[m]?delete f.currentVertexStyle[c[m]]:f.currentVertexStyle[c[m]]=p[m]);else if(0<=mxUtils.indexOf(l,c[m])){if(e||B)null==p[m]?delete f.currentVertexStyle[c[m]]:f.currentVertexStyle[c[m]]=p[m];if(t||B||0<=mxUtils.indexOf(g,c[m]))null==p[m]?delete f.currentEdgeStyle[c[m]]:f.currentEdgeStyle[c[m]]=p[m]}}null!=this.toolbar&&(this.toolbar.setFontName(f.currentVertexStyle.fontFamily||
Menus.prototype.defaultFont),this.toolbar.setFontSize(f.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==f.currentEdgeStyle.edgeStyle&&"1"==f.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==f.currentEdgeStyle.edgeStyle||"none"==f.currentEdgeStyle.edgeStyle||null==f.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==
f.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==f.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==f.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==f.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==f.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==f.currentEdgeStyle.shape?
"geSprite geSprite-linkedge":"flexArrow"==f.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==f.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",f.currentEdgeStyle.shape,f.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(f.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=
@@ -2176,7 +2176,7 @@ this.getCssClassForMarker("end",f.currentEdgeStyle.shape,f.currentEdgeStyle[mxCo
this.toolbar.setFontSize(d)}),f.getSelectionModel().addListener(mxEvent.CHANGE,b),f.getModel().addListener(mxEvent.CHANGE,b));f.addListener(mxEvent.CELLS_ADDED,function(b,d){var c=d.getProperty("cells"),g=d.getProperty("parent");null!=g&&f.getModel().isLayer(g)&&!f.isCellVisible(g)&&null!=c&&0<c.length&&f.getModel().setVisible(g,!0)});this.gestureHandler=mxUtils.bind(this,function(b){null!=this.currentMenu&&mxEvent.getSource(b)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document,
this.gestureHandler);this.resizeHandler=mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,function(){null!=this.editor.graph&&this.refresh()}),0)});mxEvent.addListener(window,"resize",this.resizeHandler);this.orientationChangeHandler=mxUtils.bind(this,function(){this.refresh()});mxEvent.addListener(window,"orientationchange",this.orientationChangeHandler);mxClient.IS_IOS&&!window.navigator.standalone&&"undefined"!==typeof Menus&&(this.scrollHandler=mxUtils.bind(this,function(){window.scrollTo(0,
0)}),mxEvent.addListener(window,"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){f.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){f.view.validateBackground()}));f.addListener("gridSizeChanged",mxUtils.bind(this,function(){f.isGridEnabled()&&f.view.validateBackground()}));this.editor.resetGraph()}this.init();
-f.standalone||this.open()};EditorUi.compactUi=!0;EditorUi.parsePng=function(b,c,e){function f(b,c){var d=l;l+=c;return b.substring(d,l)}function n(b){b=f(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}var l=0;if(f(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(b,4),"IHDR"!=f(b,4))null!=e&&e();else{f(b,17);do{e=n(b);var t=f(b,4);if(null!=c&&c(l-8,t,e))break;value=f(b,e);f(b,4);if("IEND"==t)break}while(e)}};
+f.standalone||this.open()};EditorUi.compactUi=!0;EditorUi.parsePng=function(b,c,e){function f(b,c){var d=l;l+=c;return b.substring(d,l)}function n(b){b=f(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}var l=0;if(f(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(b,4),"IHDR"!=f(b,4))null!=e&&e();else{f(b,17);do{e=n(b);var q=f(b,4);if(null!=c&&c(l-8,q,e))break;value=f(b,e);f(b,4);if("IEND"==q)break}while(e)}};
mxUtils.extend(EditorUi,mxEventSource);EditorUi.prototype.splitSize=mxClient.IS_TOUCH||mxClient.IS_POINTER?12:8;EditorUi.prototype.menubarHeight=30;EditorUi.prototype.formatEnabled=!0;EditorUi.prototype.formatWidth=240;EditorUi.prototype.toolbarHeight=38;EditorUi.prototype.footerHeight=28;EditorUi.prototype.sidebarFooterHeight=34;EditorUi.prototype.hsplitPosition=640>=screen.width?118:"large"!=urlParams["sidebar-entries"]?212:240;EditorUi.prototype.allowAnimation=!0;
EditorUi.prototype.lightboxMaxFitScale=2;EditorUi.prototype.lightboxVerticalDivider=4;EditorUi.prototype.hsplitClickEnabled=!1;
EditorUi.prototype.init=function(){var b=this.editor.graph;if(!b.standalone){"0"!=urlParams["shape-picker"]&&this.installShapePicker();mxEvent.addListener(b.container,"scroll",mxUtils.bind(this,function(){b.tooltipHandler.hide();null!=b.connectionHandler&&null!=b.connectionHandler.constraintHandler&&b.connectionHandler.constraintHandler.reset()}));b.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){b.tooltipHandler.hide();var c=b.getRubberband();null!=c&&c.cancel()}));mxEvent.addListener(b.container,
@@ -2184,24 +2184,24 @@ EditorUi.prototype.init=function(){var b=this.editor.graph;if(!b.standalone){"0"
arguments);e.updateActionStates()};b.editLink=e.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()}};EditorUi.prototype.clearSelectionState=function(){this.selectionState=null};EditorUi.prototype.getSelectionState=function(){null==this.selectionState&&(this.selectionState=this.createSelectionState());return this.selectionState};
EditorUi.prototype.createSelectionState=function(){for(var b=this.editor.graph,c=b.getSelectionCells(),e=this.initSelectionState(),f=!0,n=0;n<c.length;n++){var l=b.getCurrentCellStyle(c[n]);"0"!=mxUtils.getValue(l,mxConstants.STYLE_EDITABLE,"1")&&(this.updateSelectionStateForCell(e,c[n],c,f),f=!1)}this.updateSelectionStateForTableCells(e);return e};
EditorUi.prototype.initSelectionState=function(){return{vertices:[],edges:[],cells:[],x:null,y:null,width:null,height:null,style:{},containsImage:!1,containsLabel:!1,fill:!0,glass:!0,rounded:!0,autoSize:!1,image:!0,shadow:!0,lineJumps:!0,resizable:!0,table:!1,cell:!1,row:!1,movable:!0,rotatable:!0,stroke:!0,swimlane:!1,unlocked:this.editor.graph.isEnabled(),connections:!1}};
-EditorUi.prototype.updateSelectionStateForTableCells=function(b){if(1<b.cells.length&&b.cell){for(var c=mxUtils.sortCells(b.cells),e=this.editor.graph.model,f=e.getParent(c[0]),n=e.getParent(f),l=f.getIndex(c[0]),t=n.getIndex(f),d=null,k=1,g=1,q=0,m=t<n.getChildCount()-1?e.getChildAt(e.getChildAt(n,t+1),l):null;q<c.length-1;){var p=c[++q];null==m||m!=p||null!=d&&k!=d||(d=k,k=0,g++,f=e.getParent(m),m=t+g<n.getChildCount()?e.getChildAt(e.getChildAt(n,t+g),l):null);var v=this.editor.graph.view.getState(p);
-if(p==e.getChildAt(f,l+k)&&null!=v&&1==mxUtils.getValue(v.style,"colspan",1)&&1==mxUtils.getValue(v.style,"rowspan",1))k++;else break}q==g*k-1&&(b.mergeCell=c[0],b.colspan=k,b.rowspan=g)}};
+EditorUi.prototype.updateSelectionStateForTableCells=function(b){if(1<b.cells.length&&b.cell){for(var c=mxUtils.sortCells(b.cells),e=this.editor.graph.model,f=e.getParent(c[0]),n=e.getParent(f),l=f.getIndex(c[0]),q=n.getIndex(f),d=null,k=1,g=1,t=0,m=q<n.getChildCount()-1?e.getChildAt(e.getChildAt(n,q+1),l):null;t<c.length-1;){var p=c[++t];null==m||m!=p||null!=d&&k!=d||(d=k,k=0,g++,f=e.getParent(m),m=q+g<n.getChildCount()?e.getChildAt(e.getChildAt(n,q+g),l):null);var v=this.editor.graph.view.getState(p);
+if(p==e.getChildAt(f,l+k)&&null!=v&&1==mxUtils.getValue(v.style,"colspan",1)&&1==mxUtils.getValue(v.style,"rowspan",1))k++;else break}t==g*k-1&&(b.mergeCell=c[0],b.colspan=k,b.rowspan=g)}};
EditorUi.prototype.updateSelectionStateForCell=function(b,c,e,f){e=this.editor.graph;b.cells.push(c);if(e.getModel().isVertex(c)){b.connections=0<e.model.getEdgeCount(c);b.unlocked=b.unlocked&&!e.isCellLocked(c);b.resizable=b.resizable&&e.isCellResizable(c);b.rotatable=b.rotatable&&e.isCellRotatable(c);b.movable=b.movable&&e.isCellMovable(c)&&!e.isTableRow(c)&&!e.isTableCell(c);b.swimlane=b.swimlane||e.isSwimlane(c);b.table=b.table||e.isTable(c);b.cell=b.cell||e.isTableCell(c);b.row=b.row||e.isTableRow(c);
b.vertices.push(c);var n=e.getCellGeometry(c);if(null!=n&&(0<n.width?null==b.width?b.width=n.width:b.width!=n.width&&(b.width=""):b.containsLabel=!0,0<n.height?null==b.height?b.height=n.height:b.height!=n.height&&(b.height=""):b.containsLabel=!0,!n.relative||null!=n.offset)){var l=n.relative?n.offset.x:n.x,n=n.relative?n.offset.y:n.y;null==b.x?b.x=l:b.x!=l&&(b.x="");null==b.y?b.y=n:b.y!=n&&(b.y="")}}else e.getModel().isEdge(c)&&(b.edges.push(c),b.connections=!0,b.resizable=!1,b.rotatable=!1,b.movable=
!1);c=e.view.getState(c);null!=c&&(b.autoSize=b.autoSize||e.isAutoSizeState(c),b.glass=b.glass&&e.isGlassState(c),b.rounded=b.rounded&&e.isRoundedState(c),b.lineJumps=b.lineJumps&&e.isLineJumpState(c),b.image=b.image&&e.isImageState(c),b.shadow=b.shadow&&e.isShadowState(c),b.fill=b.fill&&e.isFillState(c),b.stroke=b.stroke&&e.isStrokeState(c),l=mxUtils.getValue(c.style,mxConstants.STYLE_SHAPE,null),b.containsImage=b.containsImage||"image"==l,e.mergeStyle(c.style,b.style,f))};
EditorUi.prototype.installShapePicker=function(){var b=this.editor.graph,c=this;b.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,d){"mouseDown"==d.getProperty("eventName")&&c.hideShapePicker()}));var e=mxUtils.bind(this,function(){c.hideShapePicker(!0)});b.addListener("wheel",e);b.addListener(mxEvent.ESCAPE,e);b.view.addListener(mxEvent.SCALE,e);b.view.addListener(mxEvent.SCALE_AND_TRANSLATE,e);b.getSelectionModel().addListener(mxEvent.CHANGE,e);var f=b.popupMenuHandler.isMenuShowing;
b.popupMenuHandler.isMenuShowing=function(){return f.apply(this,arguments)||null!=c.shapePicker};var n=b.dblClick;b.dblClick=function(d,g){if(this.isEnabled())if(null!=g||null==c.sidebar||mxEvent.isShiftDown(d)||b.isCellLocked(b.getDefaultParent()))n.apply(this,arguments);else{var k=mxUtils.convertPoint(this.container,mxEvent.getClientX(d),mxEvent.getClientY(d));mxEvent.consume(d);window.setTimeout(mxUtils.bind(this,function(){c.showShapePicker(k.x,k.y)}),30)}};if(null!=this.hoverIcons){this.hoverIcons.addListener("reset",
-e);var l=this.hoverIcons.drag;this.hoverIcons.drag=function(){c.hideShapePicker();l.apply(this,arguments)};var t=this.hoverIcons.execute;this.hoverIcons.execute=function(d,g,e){var k=e.getEvent();this.graph.isCloneEvent(k)||mxEvent.isShiftDown(k)?t.apply(this,arguments):this.graph.connectVertex(d.cell,g,this.graph.defaultEdgeLength,k,null,null,mxUtils.bind(this,function(k,f,q){var m=b.getCompositeParent(d.cell);k=b.getCellGeometry(m);for(e.consume();null!=m&&b.model.isVertex(m)&&null!=k&&k.relative;)cell=
-m,m=b.model.getParent(cell),k=b.getCellGeometry(m);window.setTimeout(mxUtils.bind(this,function(){c.showShapePicker(e.getGraphX(),e.getGraphY(),m,mxUtils.bind(this,function(d){q(d);null!=c.hoverIcons&&c.hoverIcons.update(b.view.getState(d))}),g)}),30)}),mxUtils.bind(this,function(b){this.graph.selectCellsForConnectVertex(b,k,this)}))};var d=null;this.hoverIcons.addListener("focus",mxUtils.bind(this,function(k,g){null!=d&&window.clearTimeout(d);d=window.setTimeout(mxUtils.bind(this,function(){var d=
-g.getProperty("arrow"),k=g.getProperty("direction"),e=g.getProperty("event"),d=d.getBoundingClientRect(),f=mxUtils.getOffset(b.container),l=b.container.scrollLeft+d.x-f.x,f=b.container.scrollTop+d.y-f.y,n=b.getCompositeParent(null!=this.hoverIcons.currentState?this.hoverIcons.currentState.cell:null),t=c.showShapePicker(l,f,n,mxUtils.bind(this,function(d){null!=d&&b.connectVertex(n,k,b.defaultEdgeLength,e,!0,!0,function(g,k,e){e(d);null!=c.hoverIcons&&c.hoverIcons.update(b.view.getState(d))},function(d){b.selectCellsForConnectVertex(d)},
-e,this.hoverIcons)}),k,!0);this.centerShapePicker(t,d,l,f,k);mxUtils.setOpacity(t,30);mxEvent.addListener(t,"mouseenter",function(){mxUtils.setOpacity(t,100)});mxEvent.addListener(t,"mouseleave",function(){c.hideShapePicker()})}),Editor.shapePickerHoverDelay)}));this.hoverIcons.addListener("blur",mxUtils.bind(this,function(b,c){null!=d&&window.clearTimeout(d)}))}};
+e);var l=this.hoverIcons.drag;this.hoverIcons.drag=function(){c.hideShapePicker();l.apply(this,arguments)};var q=this.hoverIcons.execute;this.hoverIcons.execute=function(d,g,e){var k=e.getEvent();this.graph.isCloneEvent(k)||mxEvent.isShiftDown(k)?q.apply(this,arguments):this.graph.connectVertex(d.cell,g,this.graph.defaultEdgeLength,k,null,null,mxUtils.bind(this,function(k,f,t){var m=b.getCompositeParent(d.cell);k=b.getCellGeometry(m);for(e.consume();null!=m&&b.model.isVertex(m)&&null!=k&&k.relative;)cell=
+m,m=b.model.getParent(cell),k=b.getCellGeometry(m);window.setTimeout(mxUtils.bind(this,function(){c.showShapePicker(e.getGraphX(),e.getGraphY(),m,mxUtils.bind(this,function(d){t(d);null!=c.hoverIcons&&c.hoverIcons.update(b.view.getState(d))}),g)}),30)}),mxUtils.bind(this,function(b){this.graph.selectCellsForConnectVertex(b,k,this)}))};var d=null;this.hoverIcons.addListener("focus",mxUtils.bind(this,function(k,g){null!=d&&window.clearTimeout(d);d=window.setTimeout(mxUtils.bind(this,function(){var d=
+g.getProperty("arrow"),k=g.getProperty("direction"),e=g.getProperty("event"),d=d.getBoundingClientRect(),f=mxUtils.getOffset(b.container),l=b.container.scrollLeft+d.x-f.x,f=b.container.scrollTop+d.y-f.y,n=b.getCompositeParent(null!=this.hoverIcons.currentState?this.hoverIcons.currentState.cell:null),q=c.showShapePicker(l,f,n,mxUtils.bind(this,function(d){null!=d&&b.connectVertex(n,k,b.defaultEdgeLength,e,!0,!0,function(g,k,e){e(d);null!=c.hoverIcons&&c.hoverIcons.update(b.view.getState(d))},function(d){b.selectCellsForConnectVertex(d)},
+e,this.hoverIcons)}),k,!0);this.centerShapePicker(q,d,l,f,k);mxUtils.setOpacity(q,30);mxEvent.addListener(q,"mouseenter",function(){mxUtils.setOpacity(q,100)});mxEvent.addListener(q,"mouseleave",function(){c.hideShapePicker()})}),Editor.shapePickerHoverDelay)}));this.hoverIcons.addListener("blur",mxUtils.bind(this,function(b,c){null!=d&&window.clearTimeout(d)}))}};
EditorUi.prototype.centerShapePicker=function(b,c,e,f,n){if(n==mxConstants.DIRECTION_EAST||n==mxConstants.DIRECTION_WEST)b.style.width="40px";var l=b.getBoundingClientRect();n==mxConstants.DIRECTION_NORTH?(e-=l.width/2-10,f-=l.height+6):n==mxConstants.DIRECTION_SOUTH?(e-=l.width/2-10,f+=c.height+6):n==mxConstants.DIRECTION_WEST?(e-=l.width+6,f-=l.height/2-10):n==mxConstants.DIRECTION_EAST&&(e+=c.width+6,f-=l.height/2-10);b.style.left=e+"px";b.style.top=f+"px"};
EditorUi.prototype.showShapePicker=function(b,c,e,f,n,l){b=this.createShapePicker(b,c,e,f,n,mxUtils.bind(this,function(){this.hideShapePicker()}),this.getCellsForShapePicker(e,l),l);null!=b&&(null==this.hoverIcons||l||this.hoverIcons.reset(),l=this.editor.graph,l.popupMenuHandler.hideMenu(),l.tooltipHandler.hideTooltip(),this.hideCurrentMenu(),this.hideShapePicker(),this.shapePickerCallback=f,this.shapePicker=b);return b};
-EditorUi.prototype.createShapePicker=function(b,c,e,f,n,l,t,d){var k=null;if(null!=t&&0<t.length){var g=this,q=this.editor.graph,k=document.createElement("div");n=q.view.getState(e);var m=null==e||null!=n&&q.isTransparentState(n)?null:q.copyStyle(e);e=6>t.length?35*t.length:140;k.className="geToolbarContainer geSidebarContainer";k.style.cssText="position:absolute;left:"+b+"px;top:"+c+"px;width:"+e+"px;border-radius:10px;padding:4px;text-align:center;box-shadow:0px 0px 3px 1px #d1d1d1;padding: 6px 0 8px 0;z-index: "+
-mxPopupMenu.prototype.zIndex+1+";";d||mxUtils.setPrefixedStyle(k.style,"transform","translate(-22px,-22px)");null!=q.background&&q.background!=mxConstants.NONE&&(k.style.backgroundColor=q.background);q.container.appendChild(k);e=mxUtils.bind(this,function(d){var e=document.createElement("a");e.className="geItem";e.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:3px 0 0 3px;";k.appendChild(e);null!=m&&"1"!=urlParams.sketch?
-this.sidebar.graph.pasteStyle(m,[d]):g.insertHandler([d],""!=d.value&&"1"!=urlParams.sketch,this.sidebar.graph.model);this.sidebar.createThumb([d],25,25,e,null,!0,!1,d.geometry.width,d.geometry.height);mxEvent.addListener(e,"click",function(){var k=q.cloneCell(d);if(null!=f)f(k);else{k.geometry.x=q.snap(Math.round(b/q.view.scale)-q.view.translate.x-d.geometry.width/2);k.geometry.y=q.snap(Math.round(c/q.view.scale)-q.view.translate.y-d.geometry.height/2);q.model.beginUpdate();try{q.addCell(k)}finally{q.model.endUpdate()}q.setSelectionCell(k);
-q.scrollCellToVisible(k);q.startEditingAtCell(k);null!=g.hoverIcons&&g.hoverIcons.update(q.view.getState(k))}null!=l&&l()})});for(n=0;n<(d?Math.min(t.length,4):t.length);n++)e(t[n]);t=k.offsetTop+k.clientHeight-(q.container.scrollTop+q.container.offsetHeight);0<t&&(k.style.top=Math.max(q.container.scrollTop+22,c-t)+"px");t=k.offsetLeft+k.clientWidth-(q.container.scrollLeft+q.container.offsetWidth);0<t&&(k.style.left=Math.max(q.container.scrollLeft+22,b-t)+"px")}return k};
-EditorUi.prototype.getCellsForShapePicker=function(b,c){var e=mxUtils.bind(this,function(b,c,e,t){return this.editor.graph.createVertex(null,null,t||"",0,0,c||120,e||60,b,!1)});return[null!=b?this.editor.graph.cloneCell(b):e("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;",40,20,"Text"),e("whiteSpace=wrap;html=1;"),e("ellipse;whiteSpace=wrap;html=1;"),e("rhombus;whiteSpace=wrap;html=1;",80,80),e("rounded=1;whiteSpace=wrap;html=1;"),
+EditorUi.prototype.createShapePicker=function(b,c,e,f,n,l,q,d){var k=null;if(null!=q&&0<q.length){var g=this,t=this.editor.graph,k=document.createElement("div");n=t.view.getState(e);var m=null==e||null!=n&&t.isTransparentState(n)?null:t.copyStyle(e);e=6>q.length?35*q.length:140;k.className="geToolbarContainer geSidebarContainer";k.style.cssText="position:absolute;left:"+b+"px;top:"+c+"px;width:"+e+"px;border-radius:10px;padding:4px;text-align:center;box-shadow:0px 0px 3px 1px #d1d1d1;padding: 6px 0 8px 0;z-index: "+
+mxPopupMenu.prototype.zIndex+1+";";d||mxUtils.setPrefixedStyle(k.style,"transform","translate(-22px,-22px)");null!=t.background&&t.background!=mxConstants.NONE&&(k.style.backgroundColor=t.background);t.container.appendChild(k);e=mxUtils.bind(this,function(d){var e=document.createElement("a");e.className="geItem";e.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:3px 0 0 3px;";k.appendChild(e);null!=m&&"1"!=urlParams.sketch?
+this.sidebar.graph.pasteStyle(m,[d]):g.insertHandler([d],""!=d.value&&"1"!=urlParams.sketch,this.sidebar.graph.model);this.sidebar.createThumb([d],25,25,e,null,!0,!1,d.geometry.width,d.geometry.height);mxEvent.addListener(e,"click",function(){var k=t.cloneCell(d);if(null!=f)f(k);else{k.geometry.x=t.snap(Math.round(b/t.view.scale)-t.view.translate.x-d.geometry.width/2);k.geometry.y=t.snap(Math.round(c/t.view.scale)-t.view.translate.y-d.geometry.height/2);t.model.beginUpdate();try{t.addCell(k)}finally{t.model.endUpdate()}t.setSelectionCell(k);
+t.scrollCellToVisible(k);t.startEditingAtCell(k);null!=g.hoverIcons&&g.hoverIcons.update(t.view.getState(k))}null!=l&&l()})});for(n=0;n<(d?Math.min(q.length,4):q.length);n++)e(q[n]);q=k.offsetTop+k.clientHeight-(t.container.scrollTop+t.container.offsetHeight);0<q&&(k.style.top=Math.max(t.container.scrollTop+22,c-q)+"px");q=k.offsetLeft+k.clientWidth-(t.container.scrollLeft+t.container.offsetWidth);0<q&&(k.style.left=Math.max(t.container.scrollLeft+22,b-q)+"px")}return k};
+EditorUi.prototype.getCellsForShapePicker=function(b,c){var e=mxUtils.bind(this,function(b,c,e,q){return this.editor.graph.createVertex(null,null,q||"",0,0,c||120,e||60,b,!1)});return[null!=b?this.editor.graph.cloneCell(b):e("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;",40,20,"Text"),e("whiteSpace=wrap;html=1;"),e("ellipse;whiteSpace=wrap;html=1;"),e("rhombus;whiteSpace=wrap;html=1;",80,80),e("rounded=1;whiteSpace=wrap;html=1;"),
e("shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;"),e("shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,60),e("shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;",120,80),e("shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,80),e("shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;"),e("triangle;whiteSpace=wrap;html=1;",60,80),e("shape=document;whiteSpace=wrap;html=1;boundedLbl=1;",
120,80),e("shape=tape;whiteSpace=wrap;html=1;",120,100),e("ellipse;shape=cloud;whiteSpace=wrap;html=1;",120,80),e("shape=singleArrow;whiteSpace=wrap;html=1;arrowWidth=0.4;arrowSize=0.4;",80,60),e("shape=waypoint;sketch=0;size=6;pointerEvents=1;points=[];fillColor=none;resizable=0;rotatable=0;perimeter=centerPerimeter;snapToPoint=1;",40,40)]};
EditorUi.prototype.hideShapePicker=function(b){null!=this.shapePicker&&(this.shapePicker.parentNode.removeChild(this.shapePicker),this.shapePicker=null,b||null==this.shapePickerCallback||this.shapePickerCallback(),this.shapePickerCallback=null)};
@@ -2219,16 +2219,16 @@ EditorUi.prototype.initClipboard=function(){var b=this,c=mxClipboard.cut;mxClipb
null;c.cellEditor.isContentEditing()?document.execCommand("paste",!1,null):f=e.apply(this,arguments);b.updatePasteActionStates();return f};var f=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){f.apply(this,arguments);b.updatePasteActionStates()};var n=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(c,e){n.apply(this,arguments);b.updatePasteActionStates()};this.updatePasteActionStates()};
EditorUi.prototype.lazyZoomDelay=20;EditorUi.prototype.wheelZoomDelay=400;EditorUi.prototype.buttonZoomDelay=600;
EditorUi.prototype.initCanvas=function(){var b=this.editor.graph;b.timerAutoScroll=!0;b.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((b.container.offsetWidth-34)/b.view.scale)),Math.max(0,Math.round((b.container.offsetHeight-34)/b.view.scale)))};b.view.getBackgroundPageBounds=function(){var b=this.graph.getPageLayout(),d=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+b.x*d.width),this.scale*(this.translate.y+b.y*d.height),this.scale*b.width*d.width,
-this.scale*b.height*d.height)};b.getPreferredPageSize=function(b,d,c){b=this.getPageLayout();d=this.getPageSize();return new mxRectangle(0,0,b.width*d.width,b.height*d.height)};var c=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=c=mxUtils.bind(this,function(d,c,g,k){if(null!=b.container&&!b.isViewer()){g=null!=g?g:0;k=null!=k?k:0;var e=b.pageVisible?b.view.getBackgroundPageBounds():b.getGraphBounds(),f=mxUtils.hasScrollbars(b.container),m=b.view.translate,q=b.view.scale,l=mxRectangle.fromRectangle(e);
-l.x=l.x/q-m.x;l.y=l.y/q-m.y;l.width/=q;l.height/=q;var m=b.container.scrollTop,p=b.container.scrollLeft,n=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)n+=3;var u=b.container.offsetWidth-n,n=b.container.offsetHeight-n;d=d?Math.max(.3,Math.min(c||1,u/l.width)):q;c=(u-d*l.width)/2/d;var v=0==this.lightboxVerticalDivider?0:(n-d*l.height)/this.lightboxVerticalDivider/d;f&&(c=Math.max(c,0),v=Math.max(v,0));if(f||e.width<u||e.height<n)b.view.scaleAndTranslate(d,Math.floor(c-
-l.x),Math.floor(v-l.y)),b.container.scrollTop=m*d/q,b.container.scrollLeft=p*d/q;else if(0!=g||0!=k)e=b.view.translate,b.view.setTranslate(Math.floor(e.x+g/q),Math.floor(e.y+k/q))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var f=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",f);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",f)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
+this.scale*b.height*d.height)};b.getPreferredPageSize=function(b,d,c){b=this.getPageLayout();d=this.getPageSize();return new mxRectangle(0,0,b.width*d.width,b.height*d.height)};var c=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=c=mxUtils.bind(this,function(d,c,g,k){if(null!=b.container&&!b.isViewer()){g=null!=g?g:0;k=null!=k?k:0;var e=b.pageVisible?b.view.getBackgroundPageBounds():b.getGraphBounds(),f=mxUtils.hasScrollbars(b.container),m=b.view.translate,t=b.view.scale,l=mxRectangle.fromRectangle(e);
+l.x=l.x/t-m.x;l.y=l.y/t-m.y;l.width/=t;l.height/=t;var m=b.container.scrollTop,p=b.container.scrollLeft,n=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)n+=3;var u=b.container.offsetWidth-n,n=b.container.offsetHeight-n;d=d?Math.max(.3,Math.min(c||1,u/l.width)):t;c=(u-d*l.width)/2/d;var v=0==this.lightboxVerticalDivider?0:(n-d*l.height)/this.lightboxVerticalDivider/d;f&&(c=Math.max(c,0),v=Math.max(v,0));if(f||e.width<u||e.height<n)b.view.scaleAndTranslate(d,Math.floor(c-
+l.x),Math.floor(v-l.y)),b.container.scrollTop=m*d/t,b.container.scrollLeft=p*d/t;else if(0!=g||0!=k)e=b.view.translate,b.view.setTranslate(Math.floor(e.x+g/t),Math.floor(e.y+k/t))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var f=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",f);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",f)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(d){b.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(d){b.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){var n=JSON.parse(decodeURIComponent(urlParams["toolbar-config"]||"{}"));this.chromelessToolbar=document.createElement("div");this.chromelessToolbar.style.position="fixed";this.chromelessToolbar.style.overflow="hidden";this.chromelessToolbar.style.boxSizing=
"border-box";this.chromelessToolbar.style.whiteSpace="nowrap";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left=b.isViewer()?"0":"50%";mxClient.IS_IE||mxClient.IS_IE11?(this.chromelessToolbar.style.backgroundColor="#ffffff",this.chromelessToolbar.style.border="3px solid black"):this.chromelessToolbar.style.backgroundColor="#000000";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","16px");mxUtils.setPrefixedStyle(this.chromelessToolbar.style,
-"transition","opacity 600ms ease-in-out");var l=mxUtils.bind(this,function(){var d=mxUtils.getCurrentStyle(b.container);b.isViewer()?this.chromelessToolbar.style.top="0":this.chromelessToolbar.style.bottom=(null!=d?parseInt(d["margin-bottom"]||0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",l);l();var t=0,l=mxUtils.bind(this,function(b,d,c){t++;var g=document.createElement("span");g.style.paddingLeft="8px";g.style.paddingRight=
+"transition","opacity 600ms ease-in-out");var l=mxUtils.bind(this,function(){var d=mxUtils.getCurrentStyle(b.container);b.isViewer()?this.chromelessToolbar.style.top="0":this.chromelessToolbar.style.bottom=(null!=d?parseInt(d["margin-bottom"]||0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",l);l();var q=0,l=mxUtils.bind(this,function(b,d,c){q++;var g=document.createElement("span");g.style.paddingLeft="8px";g.style.paddingRight=
"8px";g.style.cursor="pointer";mxEvent.addListener(g,"click",b);null!=c&&g.setAttribute("title",c);b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",d);b.style.width="36px";b.style.filter="invert(100%)";g.appendChild(b);this.chromelessToolbar.appendChild(g);return g});null!=n.backBtn&&l(mxUtils.bind(this,function(b){window.location.href=n.backBtn.url;mxEvent.consume(b)}),Editor.backImage,mxResources.get("back",null,"Back"));if(this.isPagesEnabled()){var d=l(mxUtils.bind(this,
function(b){this.actions.get("previousPage").funct();mxEvent.consume(b)}),Editor.previousImage,mxResources.get("previousPage")),k=document.createElement("div");k.style.fontFamily=Editor.defaultHtmlFont;k.style.display="inline-block";k.style.verticalAlign="top";k.style.fontWeight="bold";k.style.marginTop="8px";k.style.fontSize="14px";k.style.color=mxClient.IS_IE||mxClient.IS_IE11?"#000000":"#ffffff";this.chromelessToolbar.appendChild(k);var g=l(mxUtils.bind(this,function(b){this.actions.get("nextPage").funct();
-mxEvent.consume(b)}),Editor.nextImage,mxResources.get("nextPage")),q=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(k.innerHTML="",mxUtils.write(k,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});d.style.paddingLeft="0px";d.style.paddingRight="4px";g.style.paddingLeft="4px";g.style.paddingRight="0px";var m=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(g.style.display="",d.style.display=
-"",k.style.display="inline-block"):(g.style.display="none",d.style.display="none",k.style.display="none");q()});this.editor.addListener("resetGraphView",m);this.editor.addListener("pageSelected",q)}l(mxUtils.bind(this,function(b){this.actions.get("zoomOut").funct();mxEvent.consume(b)}),Editor.zoomOutImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");l(mxUtils.bind(this,function(b){this.actions.get("zoomIn").funct();mxEvent.consume(b)}),Editor.zoomInImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");
+mxEvent.consume(b)}),Editor.nextImage,mxResources.get("nextPage")),t=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(k.innerHTML="",mxUtils.write(k,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});d.style.paddingLeft="0px";d.style.paddingRight="4px";g.style.paddingLeft="4px";g.style.paddingRight="0px";var m=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(g.style.display="",d.style.display=
+"",k.style.display="inline-block"):(g.style.display="none",d.style.display="none",k.style.display="none");t()});this.editor.addListener("resetGraphView",m);this.editor.addListener("pageSelected",t)}l(mxUtils.bind(this,function(b){this.actions.get("zoomOut").funct();mxEvent.consume(b)}),Editor.zoomOutImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");l(mxUtils.bind(this,function(b){this.actions.get("zoomIn").funct();mxEvent.consume(b)}),Editor.zoomInImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");
l(mxUtils.bind(this,function(d){b.isLightboxView()?(1==b.view.scale?this.lightboxFit():b.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(d)}),Editor.zoomFitImage,mxResources.get("fit"));var p=null,v=null,u=mxUtils.bind(this,function(b){null!=p&&(window.clearTimeout(p),p=null);null!=v&&(window.clearTimeout(v),v=null);p=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);p=null;v=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display=
"none";v=null}),600)}),b||200)}),x=mxUtils.bind(this,function(b){null!=p&&(window.clearTimeout(p),p=null);null!=v&&(window.clearTimeout(v),v=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,b||30)});if("1"==urlParams.layers){this.layersDialog=null;var y=l(mxUtils.bind(this,function(d){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=b.createLayersDialog(null,!0);mxEvent.addListener(this.layersDialog,
"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var c=y.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily=Editor.defaultHtmlFont;this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.left=c.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+
@@ -2241,15 +2241,15 @@ mxUtils.bind(this,function(d){b.tooltipHandler.resetTimer();b.tooltipHandler.hid
c.getGraphX();this.startY=c.getGraphY();this.scrollLeft=b.container.scrollLeft;this.scrollTop=b.container.scrollTop},mouseMove:function(b,d){},mouseUp:function(d,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-b.container.scrollLeft)<D&&Math.abs(this.scrollTop-b.container.scrollTop)<D&&Math.abs(this.startX-c.getGraphX())<D&&Math.abs(this.startY-c.getGraphY())<D&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?u():x(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var F=
b.view.validate;b.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var b=this.graph.getPagePadding(),d=this.graph.getPageSize();this.translate.x=b.x-(this.x0||0)*d.width;this.translate.y=b.y-(this.y0||0)*d.height}F.apply(this,arguments)};if(!b.isViewer()){var O=b.sizeDidChange;b.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var d=this.getPageLayout(),c=this.getPagePadding(),g=this.getPageSize(),k=Math.ceil(2*
c.x+d.width*g.width),e=Math.ceil(2*c.y+d.height*g.height),f=b.minimumGraphSize;if(null==f||f.width!=k||f.height!=e)b.minimumGraphSize=new mxRectangle(0,0,k,e);k=c.x-d.x*g.width;c=c.y-d.y*g.height;this.autoTranslate||this.view.translate.x==k&&this.view.translate.y==c?O.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=d.x,this.view.y0=d.y,d=b.view.translate.x,g=b.view.translate.y,b.view.setTranslate(k,c),b.container.scrollLeft+=Math.round((k-d)*b.view.scale),b.container.scrollTop+=Math.round((c-
-g)*b.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var A=b.view.getBackgroundPane(),C=b.view.getDrawPane();b.cumulativeZoomFactor=1;var E=null,L=null,N=null,M=null,Q=null,V=function(d){null!=E&&window.clearTimeout(E);0<=d&&window.setTimeout(function(){if(!b.isMouseDown||M)E=window.setTimeout(mxUtils.bind(this,function(){b.isFastZoomEnabled()&&(null!=b.view.backgroundPageShape&&null!=b.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(b.view.backgroundPageShape.node.style,
+g)*b.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var A=b.view.getBackgroundPane(),C=b.view.getDrawPane();b.cumulativeZoomFactor=1;var E=null,J=null,N=null,M=null,Q=null,V=function(d){null!=E&&window.clearTimeout(E);0<=d&&window.setTimeout(function(){if(!b.isMouseDown||M)E=window.setTimeout(mxUtils.bind(this,function(){b.isFastZoomEnabled()&&(null!=b.view.backgroundPageShape&&null!=b.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(b.view.backgroundPageShape.node.style,
"transform-origin",null),mxUtils.setPrefixedStyle(b.view.backgroundPageShape.node.style,"transform",null)),C.style.transformOrigin="",A.style.transformOrigin="",mxClient.IS_SF?(C.style.transform="scale(1)",A.style.transform="scale(1)",window.setTimeout(function(){C.style.transform="";A.style.transform=""},0)):(C.style.transform="",A.style.transform=""),b.view.getDecoratorPane().style.opacity="",b.view.getOverlayPane().style.opacity="");var d=new mxPoint(b.container.scrollLeft,b.container.scrollTop),
-g=mxUtils.getOffset(b.container),k=b.view.scale,f=0,m=0;null!=L&&(f=b.container.offsetWidth/2-L.x+g.x,m=b.container.offsetHeight/2-L.y+g.y);b.zoom(b.cumulativeZoomFactor,null,b.isFastZoomEnabled()?20:null);b.view.scale!=k&&(null!=N&&(f+=d.x-N.x,m+=d.y-N.y),null!=c&&e.chromelessResize(!1,null,f*(b.cumulativeZoomFactor-1),m*(b.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(b.container)||0==f&&0==m||(b.container.scrollLeft-=f*(b.cumulativeZoomFactor-1),b.container.scrollTop-=m*(b.cumulativeZoomFactor-
-1)));null!=Q&&C.setAttribute("filter",Q);b.cumulativeZoomFactor=1;Q=M=L=N=E=null}),null!=d?d:b.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)};b.lazyZoom=function(d,c,g,k){k=null!=k?k:this.zoomFactor;(c=c||!b.scrollbars)&&(L=new mxPoint(b.container.offsetLeft+b.container.clientWidth/2,b.container.offsetTop+b.container.clientHeight/2));d?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=k,this.cumulativeZoomFactor=
+g=mxUtils.getOffset(b.container),k=b.view.scale,f=0,t=0;null!=J&&(f=b.container.offsetWidth/2-J.x+g.x,t=b.container.offsetHeight/2-J.y+g.y);b.zoom(b.cumulativeZoomFactor,null,b.isFastZoomEnabled()?20:null);b.view.scale!=k&&(null!=N&&(f+=d.x-N.x,t+=d.y-N.y),null!=c&&e.chromelessResize(!1,null,f*(b.cumulativeZoomFactor-1),t*(b.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(b.container)||0==f&&0==t||(b.container.scrollLeft-=f*(b.cumulativeZoomFactor-1),b.container.scrollTop-=t*(b.cumulativeZoomFactor-
+1)));null!=Q&&C.setAttribute("filter",Q);b.cumulativeZoomFactor=1;Q=M=J=N=E=null}),null!=d?d:b.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)};b.lazyZoom=function(d,c,g,k){k=null!=k?k:this.zoomFactor;(c=c||!b.scrollbars)&&(J=new mxPoint(b.container.offsetLeft+b.container.clientWidth/2,b.container.offsetTop+b.container.clientHeight/2));d?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=k,this.cumulativeZoomFactor=
Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=k,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,160))/this.view.scale;b.isFastZoomEnabled()&&(null==Q&&""!=C.getAttribute("filter")&&
-(Q=C.getAttribute("filter"),C.removeAttribute("filter")),N=new mxPoint(b.container.scrollLeft,b.container.scrollTop),d=c||null==L?b.container.scrollLeft+b.container.clientWidth/2:L.x+b.container.scrollLeft-b.container.offsetLeft,k=c||null==L?b.container.scrollTop+b.container.clientHeight/2:L.y+b.container.scrollTop-b.container.offsetTop,C.style.transformOrigin=d+"px "+k+"px",C.style.transform="scale("+this.cumulativeZoomFactor+")",A.style.transformOrigin=d+"px "+k+"px",A.style.transform="scale("+
-this.cumulativeZoomFactor+")",null!=b.view.backgroundPageShape&&null!=b.view.backgroundPageShape.node&&(d=b.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(d.style,"transform-origin",(c||null==L?b.container.clientWidth/2+b.container.scrollLeft-d.offsetLeft+"px":L.x+b.container.scrollLeft-d.offsetLeft-b.container.offsetLeft+"px")+" "+(c||null==L?b.container.clientHeight/2+b.container.scrollTop-d.offsetTop+"px":L.y+b.container.scrollTop-d.offsetTop-b.container.offsetTop+"px")),mxUtils.setPrefixedStyle(d.style,
+(Q=C.getAttribute("filter"),C.removeAttribute("filter")),N=new mxPoint(b.container.scrollLeft,b.container.scrollTop),d=c||null==J?b.container.scrollLeft+b.container.clientWidth/2:J.x+b.container.scrollLeft-b.container.offsetLeft,k=c||null==J?b.container.scrollTop+b.container.clientHeight/2:J.y+b.container.scrollTop-b.container.offsetTop,C.style.transformOrigin=d+"px "+k+"px",C.style.transform="scale("+this.cumulativeZoomFactor+")",A.style.transformOrigin=d+"px "+k+"px",A.style.transform="scale("+
+this.cumulativeZoomFactor+")",null!=b.view.backgroundPageShape&&null!=b.view.backgroundPageShape.node&&(d=b.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(d.style,"transform-origin",(c||null==J?b.container.clientWidth/2+b.container.scrollLeft-d.offsetLeft+"px":J.x+b.container.scrollLeft-d.offsetLeft-b.container.offsetLeft+"px")+" "+(c||null==J?b.container.clientHeight/2+b.container.scrollTop-d.offsetTop+"px":J.y+b.container.scrollTop-d.offsetTop-b.container.offsetTop+"px")),mxUtils.setPrefixedStyle(d.style,
"transform","scale("+this.cumulativeZoomFactor+")")),b.view.getDecoratorPane().style.opacity="0",b.view.getOverlayPane().style.opacity="0",null!=e.hoverIcons&&e.hoverIcons.reset());V(b.isFastZoomEnabled()?g:0)};mxEvent.addGestureListeners(b.container,function(b){null!=E&&window.clearTimeout(E)},null,function(d){1!=b.cumulativeZoomFactor&&V(0)});mxEvent.addListener(b.container,"scroll",function(d){null==E||b.isMouseDown||1==b.cumulativeZoomFactor||V(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,
-function(d,c,g,k,e){b.fireEvent(new mxEventObject("wheel"));if(null==this.dialogs||0==this.dialogs.length)if(!b.scrollbars&&!g&&b.isScrollWheelEvent(d))g=b.view.getTranslate(),k=40/b.view.scale,mxEvent.isShiftDown(d)?b.view.setTranslate(g.x+(c?-k:k),g.y):b.view.setTranslate(g.x,g.y+(c?k:-k));else if(g||b.isZoomWheelEvent(d))for(var f=mxEvent.getSource(d);null!=f;){if(f==b.container)return b.tooltipHandler.hideTooltip(),L=null!=k&&null!=e?new mxPoint(k,e):new mxPoint(mxEvent.getClientX(d),mxEvent.getClientY(d)),
+function(d,c,g,k,e){b.fireEvent(new mxEventObject("wheel"));if(null==this.dialogs||0==this.dialogs.length)if(!b.scrollbars&&!g&&b.isScrollWheelEvent(d))g=b.view.getTranslate(),k=40/b.view.scale,mxEvent.isShiftDown(d)?b.view.setTranslate(g.x+(c?-k:k),g.y):b.view.setTranslate(g.x,g.y+(c?k:-k));else if(g||b.isZoomWheelEvent(d))for(var f=mxEvent.getSource(d);null!=f;){if(f==b.container)return b.tooltipHandler.hideTooltip(),J=null!=k&&null!=e?new mxPoint(k,e):new mxPoint(mxEvent.getClientX(d),mxEvent.getClientY(d)),
M=g,g=b.zoomFactor,k=null,d.ctrlKey&&null!=d.deltaY&&40>Math.abs(d.deltaY)&&Math.round(d.deltaY)!=d.deltaY?g=1+Math.abs(d.deltaY)/20*(g-1):null!=d.movementY&&"pointermove"==d.type&&(g=1+Math.max(1,Math.abs(d.movementY))/20*(g-1),k=-1),b.lazyZoom(c,null,k,g),mxEvent.consume(d),!1;f=f.parentNode}}),b.container);b.panningHandler.zoomGraph=function(d){b.cumulativeZoomFactor=d.scale;b.lazyZoom(0<d.scale,!0);mxEvent.consume(d)}};
EditorUi.prototype.addChromelessToolbarItems=function(b){b(mxUtils.bind(this,function(b){this.actions.get("print").funct();mxEvent.consume(b)}),Editor.printImage,mxResources.get("print"))};EditorUi.prototype.isPagesEnabled=function(){return this.editor.editable||"1"!=urlParams["hide-pages"]};EditorUi.prototype.createTemporaryGraph=function(b){return Graph.createOffscreenGraph(b)};EditorUi.prototype.addChromelessClickHandler=function(){var b=urlParams.highlight;null!=b&&0<b.length&&(b="#"+b);this.editor.graph.addClickHandler(b)};
EditorUi.prototype.toggleFormatPanel=function(b){b=null!=b?b:0==this.formatWidth;null!=this.format&&(this.formatWidth=b?240:0,this.formatContainer.style.display=b?"":"none",this.refresh(),this.format.refresh(),this.fireEvent(new mxEventObject("formatWidthChanged")))};
@@ -2283,10 +2283,10 @@ this.actions.get("exitGroup").setEnabled(null!=b.view.currentRoot);this.actions.
this.actions.get("selectAll").setEnabled(e);this.actions.get("selectNone").setEnabled(e);f=1==c.vertices.length&&b.isCellFoldable(c.vertices[0]);this.actions.get("expand").setEnabled(f);this.actions.get("collapse").setEnabled(f);this.menus.get("navigation").setEnabled(0<c.cells.length||null!=b.view.currentRoot);this.menus.get("layout").setEnabled(e);this.menus.get("insert").setEnabled(e);this.menus.get("direction").setEnabled(c.unlocked&&1==c.vertices.length);this.menus.get("distribute").setEnabled(c.unlocked&&
1<c.vertices.length);this.menus.get("align").setEnabled(c.unlocked&&0<c.cells.length);this.updatePasteActionStates()};EditorUi.prototype.zeroOffset=new mxPoint(0,0);EditorUi.prototype.getDiagramContainerOffset=function(){return this.zeroOffset};
EditorUi.prototype.refresh=function(b){b=null!=b?b:!0;var c=this.container.clientWidth,e=this.container.clientHeight;this.container==document.body&&(c=document.body.clientWidth||document.documentElement.clientWidth,e=document.documentElement.clientHeight);var f=0;mxClient.IS_IOS&&!window.navigator.standalone&&"undefined"!==typeof Menus&&window.innerHeight!=document.documentElement.clientHeight&&(f=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));var n=Math.max(0,Math.min(this.hsplitPosition,
-c-this.splitSize-20)),c=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",c+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",c+=this.toolbarHeight);0<c&&(c+=1);var l=0;if(null!=this.sidebarFooterContainer){var t=this.footerHeight+f,l=Math.max(0,Math.min(e-c-t,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=n+"px";this.sidebarFooterContainer.style.height=
-l+"px";this.sidebarFooterContainer.style.bottom=t+"px"}e=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=c+"px";this.sidebarContainer.style.width=n+"px";this.formatContainer.style.top=c+"px";this.formatContainer.style.width=e+"px";this.formatContainer.style.display=null!=this.format?"":"none";var t=this.getDiagramContainerOffset(),d=null!=this.hsplit.parentNode?n+this.splitSize:0;this.footerContainer.style.height=this.footerHeight+"px";this.hsplit.style.top=this.sidebarContainer.style.top;
+c-this.splitSize-20)),c=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",c+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",c+=this.toolbarHeight);0<c&&(c+=1);var l=0;if(null!=this.sidebarFooterContainer){var q=this.footerHeight+f,l=Math.max(0,Math.min(e-c-q,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=n+"px";this.sidebarFooterContainer.style.height=
+l+"px";this.sidebarFooterContainer.style.bottom=q+"px"}e=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=c+"px";this.sidebarContainer.style.width=n+"px";this.formatContainer.style.top=c+"px";this.formatContainer.style.width=e+"px";this.formatContainer.style.display=null!=this.format?"":"none";var q=this.getDiagramContainerOffset(),d=null!=this.hsplit.parentNode?n+this.splitSize:0;this.footerContainer.style.height=this.footerHeight+"px";this.hsplit.style.top=this.sidebarContainer.style.top;
this.hsplit.style.bottom=this.footerHeight+f+"px";this.hsplit.style.left=n+"px";this.footerContainer.style.display=0==this.footerHeight?"none":"";null!=this.tabContainer&&(this.tabContainer.style.left=d+"px");0<this.footerHeight&&(this.footerContainer.style.bottom=f+"px");n=0;null!=this.tabContainer&&(this.tabContainer.style.bottom=this.footerHeight+f+"px",this.tabContainer.style.right=this.diagramContainer.style.right,n=this.tabContainer.clientHeight);this.sidebarContainer.style.bottom=this.footerHeight+
-l+f+"px";this.formatContainer.style.bottom=this.footerHeight+f+"px";"1"!=urlParams.embedInline&&(this.diagramContainer.style.left=d+t.x+"px",this.diagramContainer.style.top=c+t.y+"px",this.diagramContainer.style.right=e+"px",this.diagramContainer.style.bottom=this.footerHeight+f+n+"px");b&&this.editor.graph.sizeDidChange()};EditorUi.prototype.createTabContainer=function(){return null};
+l+f+"px";this.formatContainer.style.bottom=this.footerHeight+f+"px";"1"!=urlParams.embedInline&&(this.diagramContainer.style.left=d+q.x+"px",this.diagramContainer.style.top=c+q.y+"px",this.diagramContainer.style.right=e+"px",this.diagramContainer.style.bottom=this.footerHeight+f+n+"px");b&&this.editor.graph.sizeDidChange()};EditorUi.prototype.createTabContainer=function(){return null};
EditorUi.prototype.createDivs=function(){this.menubarContainer=this.createDiv("geMenubarContainer");this.toolbarContainer=this.createDiv("geToolbarContainer");this.sidebarContainer=this.createDiv("geSidebarContainer");this.formatContainer=this.createDiv("geSidebarContainer geFormatContainer");this.diagramContainer=this.createDiv("geDiagramContainer");this.footerContainer=this.createDiv("geFooterContainer");this.hsplit=this.createDiv("geHsplit");this.hsplit.setAttribute("title",mxResources.get("collapseExpand"));
this.menubarContainer.style.top="0px";this.menubarContainer.style.left="0px";this.menubarContainer.style.right="0px";this.toolbarContainer.style.left="0px";this.toolbarContainer.style.right="0px";this.sidebarContainer.style.left="0px";this.formatContainer.style.right="0px";this.formatContainer.style.zIndex="1";this.diagramContainer.style.right=(null!=this.format?this.formatWidth:0)+"px";this.footerContainer.style.left="0px";this.footerContainer.style.right="0px";this.footerContainer.style.bottom=
"0px";this.footerContainer.style.zIndex=mxPopupMenu.prototype.zIndex-3;this.hsplit.style.width=this.splitSize+"px";if(this.sidebarFooterContainer=this.createSidebarFooterContainer())this.sidebarFooterContainer.style.left="0px";this.editor.chromeless?this.diagramContainer.style.border="none":this.tabContainer=this.createTabContainer()};EditorUi.prototype.createSidebarFooterContainer=function(){return null};
@@ -2295,18 +2295,18 @@ this.sidebar=this.editor.chromeless?null:this.createSidebar(this.sidebarContaine
this.container.appendChild(this.sidebarFooterContainer);this.container.appendChild(this.diagramContainer);null!=this.container&&null!=this.tabContainer&&this.container.appendChild(this.tabContainer);this.toolbar=this.editor.chromeless?null:this.createToolbar(this.createDiv("geToolbar"));null!=this.toolbar&&(this.toolbarContainer.appendChild(this.toolbar.container),this.container.appendChild(this.toolbarContainer));null!=this.sidebar&&(this.container.appendChild(this.hsplit),this.addSplitHandler(this.hsplit,
!0,0,mxUtils.bind(this,function(b){this.hsplitPosition=b;this.refresh()})))};EditorUi.prototype.createStatusContainer=function(){var b=document.createElement("a");b.className="geItem geStatus";return b};EditorUi.prototype.setStatusText=function(b){this.statusContainer.innerHTML=b};EditorUi.prototype.createToolbar=function(b){return new Toolbar(this,b)};EditorUi.prototype.createSidebar=function(b){return new Sidebar(this,b)};EditorUi.prototype.createFormat=function(b){return new Format(this,b)};
EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")};EditorUi.prototype.createDiv=function(b){var c=document.createElement("div");c.className=b;return c};
-EditorUi.prototype.addSplitHandler=function(b,c,e,f){function n(b){if(null!=t){var m=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b));f(Math.max(0,d+(c?m.x-t.x:t.y-m.y)-e));mxEvent.consume(b);d!=q()&&(k=!0,g=null)}}function l(b){n(b);t=d=null}var t=null,d=null,k=!0,g=null;mxClient.IS_POINTER&&(b.style.touchAction="none");var q=mxUtils.bind(this,function(){var d=parseInt(c?b.style.left:b.style.bottom);c||(d=d+e-this.footerHeight);return d});mxEvent.addGestureListeners(b,function(b){t=new mxPoint(mxEvent.getClientX(b),
-mxEvent.getClientY(b));d=q();k=!1;mxEvent.consume(b)});mxEvent.addListener(b,"click",mxUtils.bind(this,function(b){if(!k&&this.hsplitClickEnabled){var d=null!=g?g-e:0;g=q();f(d);mxEvent.consume(b)}}));mxEvent.addGestureListeners(document,null,n,l);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,n,l)})};
+EditorUi.prototype.addSplitHandler=function(b,c,e,f){function n(b){if(null!=q){var m=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b));f(Math.max(0,d+(c?m.x-q.x:q.y-m.y)-e));mxEvent.consume(b);d!=t()&&(k=!0,g=null)}}function l(b){n(b);q=d=null}var q=null,d=null,k=!0,g=null;mxClient.IS_POINTER&&(b.style.touchAction="none");var t=mxUtils.bind(this,function(){var d=parseInt(c?b.style.left:b.style.bottom);c||(d=d+e-this.footerHeight);return d});mxEvent.addGestureListeners(b,function(b){q=new mxPoint(mxEvent.getClientX(b),
+mxEvent.getClientY(b));d=t();k=!1;mxEvent.consume(b)});mxEvent.addListener(b,"click",mxUtils.bind(this,function(b){if(!k&&this.hsplitClickEnabled){var d=null!=g?g-e:0;g=t();f(d);mxEvent.consume(b)}}));mxEvent.addGestureListeners(document,null,n,l);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,n,l)})};
EditorUi.prototype.handleError=function(b,c,e,f,n){b=null!=b&&null!=b.error?b.error:b;if(null!=b||null!=c){n=mxUtils.htmlEntities(mxResources.get("unknownError"));var l=mxResources.get("ok");c=null!=c?c:mxResources.get("error");null!=b&&null!=b.message&&(n=mxUtils.htmlEntities(b.message));this.showError(c,n,l,e,null,null,null,null,null,null,null,null,f?e:null)}else null!=e&&e()};
-EditorUi.prototype.showError=function(b,c,e,f,n,l,t,d,k,g,q,m,p){b=new ErrorDialog(this,b,c,e||mxResources.get("ok"),f,n,l,t,m,d,k);c=Math.ceil(null!=c?c.length/50:1);this.showDialog(b.container,g||340,q||100+20*c,!0,!1,p);b.init()};EditorUi.prototype.showDialog=function(b,c,e,f,n,l,t,d,k,g){this.editor.graph.tooltipHandler.resetTimer();this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,b,c,e,f,n,l,t,d,k,g);this.dialogs.push(this.dialog)};
+EditorUi.prototype.showError=function(b,c,e,f,n,l,q,d,k,g,t,m,p){b=new ErrorDialog(this,b,c,e||mxResources.get("ok"),f,n,l,q,m,d,k);c=Math.ceil(null!=c?c.length/50:1);this.showDialog(b.container,g||340,t||100+20*c,!0,!1,p);b.init()};EditorUi.prototype.showDialog=function(b,c,e,f,n,l,q,d,k,g){this.editor.graph.tooltipHandler.resetTimer();this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,b,c,e,f,n,l,q,d,k,g);this.dialogs.push(this.dialog)};
EditorUi.prototype.hideDialog=function(b,c,e){null!=this.dialogs&&0<this.dialogs.length&&(null==e||e==this.dialog.container.firstChild)&&(e=this.dialogs.pop(),0==e.close(b,c)?this.dialogs.push(e):(this.dialog=0<this.dialogs.length?this.dialogs[this.dialogs.length-1]:null,this.editor.fireEvent(new mxEventObject("hideDialog")),null==this.dialog&&"hidden"!=this.editor.graph.container.style.visibility&&window.setTimeout(mxUtils.bind(this,function(){this.editor.graph.isEditing()&&null!=this.editor.graph.cellEditor.textarea?
-this.editor.graph.cellEditor.textarea.focus():(mxUtils.clearSelection(),this.editor.graph.container.focus())}),0)))};EditorUi.prototype.ctrlEnter=function(){var b=this.editor.graph;if(b.isEnabled())try{for(var c=b.getSelectionCells(),e=new mxDictionary,f=[],n=0;n<c.length;n++){var l=b.isTableCell(c[n])?b.model.getParent(c[n]):c[n];null==l||e.get(l)||(e.put(l,!0),f.push(l))}b.setSelectionCells(b.duplicateCells(f,!1))}catch(t){this.handleError(t)}};
+this.editor.graph.cellEditor.textarea.focus():(mxUtils.clearSelection(),this.editor.graph.container.focus())}),0)))};EditorUi.prototype.ctrlEnter=function(){var b=this.editor.graph;if(b.isEnabled())try{for(var c=b.getSelectionCells(),e=new mxDictionary,f=[],n=0;n<c.length;n++){var l=b.isTableCell(c[n])?b.model.getParent(c[n]):c[n];null==l||e.get(l)||(e.put(l,!0),f.push(l))}b.setSelectionCells(b.duplicateCells(f,!1))}catch(q){this.handleError(q)}};
EditorUi.prototype.pickColor=function(b,c){var e=this.editor.graph,f=e.cellEditor.saveSelection(),n=230+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12)),l=new ColorDialog(this,mxUtils.rgba2hex(b)||"none",function(b){e.cellEditor.restoreSelection(f);c(b)},function(){e.cellEditor.restoreSelection(f)});this.showDialog(l.container,230,n,!0,!1);l.init()};
EditorUi.prototype.openFile=function(){window.openFile=new OpenFile(mxUtils.bind(this,function(b){this.hideDialog(b)}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:320,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null})};
EditorUi.prototype.extractGraphModelFromHtml=function(b){var c=null;try{var e=b.indexOf("&lt;mxGraphModel ");if(0<=e){var f=b.lastIndexOf("&lt;/mxGraphModel&gt;");f>e&&(c=b.substring(e,f+21).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}}catch(n){}return c};
EditorUi.prototype.readGraphModelFromClipboard=function(b){this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(c){null!=c?b(c):this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(c){if(null!=c){var e=decodeURIComponent(c);this.isCompatibleString(e)&&(c=e)}b(c)}),"text")}),"html")};
EditorUi.prototype.readGraphModelFromClipboardWithType=function(b,c){navigator.clipboard.read().then(mxUtils.bind(this,function(e){if(null!=e&&0<e.length&&"html"==c&&0<=mxUtils.indexOf(e[0].types,"text/html"))e[0].getType("text/html").then(mxUtils.bind(this,function(c){c.text().then(mxUtils.bind(this,function(c){try{var e=this.parseHtmlData(c),f="text/plain"!=e.getAttribute("data-type")?e.innerHTML:mxUtils.trim(null==e.innerText?mxUtils.getTextContent(e):e.innerText);try{var d=f.lastIndexOf("%3E");
-0<=d&&d<f.length-3&&(f=f.substring(0,d+3))}catch(q){}try{var k=e.getElementsByTagName("span"),g=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(f);this.isCompatibleString(g)&&(f=g)}catch(q){}}catch(q){}b(this.isCompatibleString(f)?f:null)}))["catch"](function(c){b(null)})}))["catch"](function(c){b(null)});else if(null!=e&&0<e.length&&"text"==c&&0<=mxUtils.indexOf(e[0].types,"text/plain"))e[0].getType("text/plain").then(function(c){c.text().then(function(c){b(c)})["catch"](function(){b(null)})})["catch"](function(){b(null)});
+0<=d&&d<f.length-3&&(f=f.substring(0,d+3))}catch(t){}try{var k=e.getElementsByTagName("span"),g=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(f);this.isCompatibleString(g)&&(f=g)}catch(t){}}catch(t){}b(this.isCompatibleString(f)?f:null)}))["catch"](function(c){b(null)})}))["catch"](function(c){b(null)});else if(null!=e&&0<e.length&&"text"==c&&0<=mxUtils.indexOf(e[0].types,"text/plain"))e[0].getType("text/plain").then(function(c){c.text().then(function(c){b(c)})["catch"](function(){b(null)})})["catch"](function(){b(null)});
else b(null)}))["catch"](function(c){b(null)})};
EditorUi.prototype.parseHtmlData=function(b){var c=null;if(null!=b&&0<b.length){var e="<meta "==b.substring(0,6),c=document.createElement("div");c.innerHTML=(e?'<meta charset="utf-8">':"")+this.editor.graph.sanitizeHtml(b);asHtml=!0;b=c.getElementsByTagName("style");if(null!=b)for(;0<b.length;)b[0].parentNode.removeChild(b[0]);null!=c.firstChild&&c.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=c.firstChild.nextSibling&&c.firstChild.nextSibling.nodeType==mxConstants.NODETYPE_ELEMENT&&"META"==
c.firstChild.nodeName&&"A"==c.firstChild.nextSibling.nodeName&&null==c.firstChild.nextSibling.nextSibling&&(b=null==c.firstChild.nextSibling.innerText?mxUtils.getTextContent(c.firstChild.nextSibling):c.firstChild.nextSibling.innerText,b==c.firstChild.nextSibling.getAttribute("href")&&(mxUtils.setTextContent(c,b),asHtml=!1));e=e&&null!=c.firstChild?c.firstChild.nextSibling:c.firstChild;null!=e&&null==e.nextSibling&&e.nodeType==mxConstants.NODETYPE_ELEMENT&&"IMG"==e.nodeName?(b=e.getAttribute("src"),
@@ -2316,18 +2316,18 @@ EditorUi.prototype.extractGraphModelFromEvent=function(b){var c=null,e=null;null
EditorUi.prototype.save=function(b){if(null!=b){this.editor.graph.isEditing()&&this.editor.graph.stopEditing();var c=mxUtils.getXml(this.editor.getGraphXml());try{if(Editor.useLocalStorage){if(null!=localStorage.getItem(b)&&!mxUtils.confirm(mxResources.get("replaceIt",[b])))return;localStorage.setItem(b,c);this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saved"))+" "+new Date)}else if(c.length<MAX_REQUEST_SIZE)(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(b)+"&xml="+encodeURIComponent(c))).simulate(document,
"_blank");else{mxUtils.alert(mxResources.get("drawingTooLarge"));mxUtils.popup(c);return}this.editor.setModified(!1);this.editor.setFilename(b);this.updateDocumentTitle()}catch(e){this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("errorSavingFile")))}}};
EditorUi.prototype.executeLayout=function(b,c,e){var f=this.editor.graph;if(f.isEnabled()){f.getModel().beginUpdate();try{b()}catch(n){throw n;}finally{this.allowAnimation&&c&&(null==navigator.userAgent||0>navigator.userAgent.indexOf("Camino"))?(b=new mxMorphing(f),b.addListener(mxEvent.DONE,mxUtils.bind(this,function(){f.getModel().endUpdate();null!=e&&e()})),b.startAnimation()):(f.getModel().endUpdate(),null!=e&&e())}}};
-EditorUi.prototype.showImageDialog=function(b,c,e,f){f=this.editor.graph.cellEditor;var n=f.saveSelection(),l=mxUtils.prompt(b,c);f.restoreSelection(n);if(null!=l&&0<l.length){var t=new Image;t.onload=function(){e(l,t.width,t.height)};t.onerror=function(){e(null);mxUtils.alert(mxResources.get("fileNotFound"))};t.src=l}else e(null)};EditorUi.prototype.showLinkDialog=function(b,c,e){b=new LinkDialog(this,b,c,e);this.showDialog(b.container,420,90,!0,!0);b.init()};
+EditorUi.prototype.showImageDialog=function(b,c,e,f){f=this.editor.graph.cellEditor;var n=f.saveSelection(),l=mxUtils.prompt(b,c);f.restoreSelection(n);if(null!=l&&0<l.length){var q=new Image;q.onload=function(){e(l,q.width,q.height)};q.onerror=function(){e(null);mxUtils.alert(mxResources.get("fileNotFound"))};q.src=l}else e(null)};EditorUi.prototype.showLinkDialog=function(b,c,e){b=new LinkDialog(this,b,c,e);this.showDialog(b.container,420,90,!0,!0);b.init()};
EditorUi.prototype.showDataDialog=function(b){null!=b&&(b=new EditDataDialog(this,b),this.showDialog(b.container,480,420,!0,!1,null,!1),b.init())};
EditorUi.prototype.showBackgroundImageDialog=function(b,c){b=null!=b?b:mxUtils.bind(this,function(b){b=new ChangePageSetup(this,null,b);b.ignoreColor=!0;this.editor.graph.model.execute(b)});var e=mxUtils.prompt(mxResources.get("backgroundImage"),null!=c?c.src:"");null!=e&&0<e.length?(c=new Image,c.onload=function(){b(new mxImage(e,c.width,c.height),!1)},c.onerror=function(){b(null,!0);mxUtils.alert(mxResources.get("fileNotFound"))},c.src=e):b(null)};
EditorUi.prototype.setBackgroundImage=function(b){this.editor.graph.setBackgroundImage(b);this.editor.graph.view.validateBackgroundImage();this.fireEvent(new mxEventObject("backgroundImageChanged"))};EditorUi.prototype.confirm=function(b,c,e){mxUtils.confirm(b)?null!=c&&c():null!=e&&e()};EditorUi.prototype.createOutline=function(b){var c=new mxOutline(this.editor.graph);mxEvent.addListener(window,"resize",function(){c.update(!1)});return c};
EditorUi.prototype.altShiftActions={67:"clearWaypoints",65:"connectionArrows",76:"editLink",80:"connectionPoints",84:"editTooltip",86:"pasteSize",88:"copySize",66:"copyData",69:"pasteData"};
EditorUi.prototype.createKeyHandler=function(b){function c(b,d,c){if(!f.isSelectionEmpty()&&f.isEnabled())if(d=null!=d?d:1,c){f.getModel().beginUpdate();try{var g=f.getSelectionCells();for(c=0;c<g.length;c++)if(f.getModel().isVertex(g[c])&&f.isCellResizable(g[c])){var k=f.getCellGeometry(g[c]);null!=k&&(k=k.clone(),37==b?k.width=Math.max(0,k.width-d):38==b?k.height=Math.max(0,k.height-d):39==b?k.width+=d:40==b&&(k.height+=d),f.getModel().setGeometry(g[c],k))}}finally{f.getModel().endUpdate()}}else{var g=
-f.getSelectionCell(),k=f.model.getParent(g),e=f.getView().scale;c=null;1==f.getSelectionCount()&&f.model.isVertex(g)&&null!=f.layoutManager&&!f.isCellLocked(g)&&(c=f.layoutManager.getLayout(k));if(null!=c&&c.constructor==mxStackLayout)d=k.getIndex(g),37==b||38==b?f.model.add(k,g,Math.max(0,d-1)):39!=b&&40!=b||f.model.add(k,g,Math.min(f.model.getChildCount(k),d+1));else{var q=f.graphHandler;null!=q&&(null==q.first&&q.start(f.getSelectionCell(),0,0,f.getSelectionCells()),null!=q.first&&(k=g=0,37==b?
-g=-d:38==b?k=-d:39==b?g=d:40==b&&(k=d),q.currentDx+=g*e,q.currentDy+=k*e,q.checkPreview(),q.updatePreview()),null!=t&&window.clearTimeout(t),t=window.setTimeout(function(){if(null!=q.first){var b=q.roundLength(q.currentDx/e),d=q.roundLength(q.currentDy/e);q.moveCells(q.cells,b,d);q.reset()}},400))}}}var e=this,f=this.editor.graph,n=new mxKeyHandler(f),l=n.isEventIgnored;n.isEventIgnored=function(b){return!(mxEvent.isShiftDown(b)&&9==b.keyCode)&&(!this.isControlDown(b)||mxEvent.isShiftDown(b)||90!=
-b.keyCode&&89!=b.keyCode&&188!=b.keyCode&&190!=b.keyCode&&85!=b.keyCode)&&(66!=b.keyCode&&73!=b.keyCode||!this.isControlDown(b)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&!mxClient.IS_SF)&&l.apply(this,arguments)};n.isEnabledForEvent=function(b){return!mxEvent.isConsumed(b)&&this.isGraphEvent(b)&&this.isEnabled()&&(null==e.dialogs||0==e.dialogs.length)};n.isControlDown=function(b){return mxEvent.isControlDown(b)||mxClient.IS_MAC&&b.metaKey};var t=null,d={37:mxConstants.DIRECTION_WEST,
+f.getSelectionCell(),k=f.model.getParent(g),e=f.getView().scale;c=null;1==f.getSelectionCount()&&f.model.isVertex(g)&&null!=f.layoutManager&&!f.isCellLocked(g)&&(c=f.layoutManager.getLayout(k));if(null!=c&&c.constructor==mxStackLayout)d=k.getIndex(g),37==b||38==b?f.model.add(k,g,Math.max(0,d-1)):39!=b&&40!=b||f.model.add(k,g,Math.min(f.model.getChildCount(k),d+1));else{var t=f.graphHandler;null!=t&&(null==t.first&&t.start(f.getSelectionCell(),0,0,f.getSelectionCells()),null!=t.first&&(k=g=0,37==b?
+g=-d:38==b?k=-d:39==b?g=d:40==b&&(k=d),t.currentDx+=g*e,t.currentDy+=k*e,t.checkPreview(),t.updatePreview()),null!=q&&window.clearTimeout(q),q=window.setTimeout(function(){if(null!=t.first){var b=t.roundLength(t.currentDx/e),d=t.roundLength(t.currentDy/e);t.moveCells(t.cells,b,d);t.reset()}},400))}}}var e=this,f=this.editor.graph,n=new mxKeyHandler(f),l=n.isEventIgnored;n.isEventIgnored=function(b){return!(mxEvent.isShiftDown(b)&&9==b.keyCode)&&(!this.isControlDown(b)||mxEvent.isShiftDown(b)||90!=
+b.keyCode&&89!=b.keyCode&&188!=b.keyCode&&190!=b.keyCode&&85!=b.keyCode)&&(66!=b.keyCode&&73!=b.keyCode||!this.isControlDown(b)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&!mxClient.IS_SF)&&l.apply(this,arguments)};n.isEnabledForEvent=function(b){return!mxEvent.isConsumed(b)&&this.isGraphEvent(b)&&this.isEnabled()&&(null==e.dialogs||0==e.dialogs.length)};n.isControlDown=function(b){return mxEvent.isControlDown(b)||mxClient.IS_MAC&&b.metaKey};var q=null,d={37:mxConstants.DIRECTION_WEST,
38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},k=n.getFunction;mxKeyHandler.prototype.getFunction=function(b){if(f.isEnabled()){if(mxEvent.isShiftDown(b)&&mxEvent.isAltDown(b)){var g=e.actions.get(e.altShiftActions[b.keyCode]);if(null!=g)return g.funct}if(null!=d[b.keyCode]&&!f.isSelectionEmpty())if(!this.isControlDown(b)&&mxEvent.isShiftDown(b)&&mxEvent.isAltDown(b)){if(f.model.isVertex(f.getSelectionCell()))return function(){var c=f.connectVertex(f.getSelectionCell(),
d[b.keyCode],f.defaultEdgeLength,b,!0);null!=c&&0<c.length&&(1==c.length&&f.model.isEdge(c[0])?f.setSelectionCell(f.model.getTerminal(c[0],!1)):f.setSelectionCell(c[c.length-1]),f.scrollCellToVisible(f.getSelectionCell()),null!=e.hoverIcons&&e.hoverIcons.update(f.view.getState(f.getSelectionCell())))}}else return this.isControlDown(b)?function(){c(b.keyCode,mxEvent.isShiftDown(b)?f.gridSize:null,!0)}:function(){c(b.keyCode,mxEvent.isShiftDown(b)?f.gridSize:null)}}return k.apply(this,arguments)};n.bindAction=
-mxUtils.bind(this,function(b,d,c,g){var k=this.actions.get(c);null!=k&&(c=function(){k.isEnabled()&&k.funct()},d?g?n.bindControlShiftKey(b,c):n.bindControlKey(b,c):g?n.bindShiftKey(b,c):n.bindKey(b,c))});var g=this,q=n.escape;n.escape=function(b){q.apply(this,arguments)};n.enter=function(){};n.bindControlShiftKey(36,function(){f.exitGroup()});n.bindControlShiftKey(35,function(){f.enterGroup()});n.bindShiftKey(36,function(){f.home()});n.bindKey(35,function(){f.refresh()});n.bindAction(107,!0,"zoomIn");
+mxUtils.bind(this,function(b,d,c,g){var k=this.actions.get(c);null!=k&&(c=function(){k.isEnabled()&&k.funct()},d?g?n.bindControlShiftKey(b,c):n.bindControlKey(b,c):g?n.bindShiftKey(b,c):n.bindKey(b,c))});var g=this,t=n.escape;n.escape=function(b){t.apply(this,arguments)};n.enter=function(){};n.bindControlShiftKey(36,function(){f.exitGroup()});n.bindControlShiftKey(35,function(){f.enterGroup()});n.bindShiftKey(36,function(){f.home()});n.bindKey(35,function(){f.refresh()});n.bindAction(107,!0,"zoomIn");
n.bindAction(109,!0,"zoomOut");n.bindAction(80,!0,"print");n.bindAction(79,!0,"outline",!0);if(!this.editor.chromeless||this.editor.editable)n.bindControlKey(36,function(){f.isEnabled()&&f.foldCells(!0)}),n.bindControlKey(35,function(){f.isEnabled()&&f.foldCells(!1)}),n.bindControlKey(13,function(){g.ctrlEnter()}),n.bindAction(8,!1,"delete"),n.bindAction(8,!0,"deleteAll"),n.bindAction(8,!1,"deleteLabels",!0),n.bindAction(46,!1,"delete"),n.bindAction(46,!0,"deleteAll"),n.bindAction(46,!1,"deleteLabels",
!0),n.bindAction(36,!1,"resetView"),n.bindAction(72,!0,"fitWindow",!0),n.bindAction(74,!0,"fitPage"),n.bindAction(74,!0,"fitTwoPages",!0),n.bindAction(48,!0,"customZoom"),n.bindAction(82,!0,"turn"),n.bindAction(82,!0,"clearDefaultStyle",!0),n.bindAction(83,!0,"save"),n.bindAction(83,!0,"saveAs",!0),n.bindAction(65,!0,"selectAll"),n.bindAction(65,!0,"selectNone",!0),n.bindAction(73,!0,"selectVertices",!0),n.bindAction(69,!0,"selectEdges",!0),n.bindAction(69,!0,"editStyle"),n.bindAction(66,!0,"bold"),
n.bindAction(66,!0,"toBack",!0),n.bindAction(70,!0,"toFront",!0),n.bindAction(68,!0,"duplicate"),n.bindAction(68,!0,"setAsDefaultStyle",!0),n.bindAction(90,!0,"undo"),n.bindAction(89,!0,"autosize",!0),n.bindAction(88,!0,"cut"),n.bindAction(67,!0,"copy"),n.bindAction(86,!0,"paste"),n.bindAction(71,!0,"group"),n.bindAction(77,!0,"editData"),n.bindAction(71,!0,"grid",!0),n.bindAction(73,!0,"italic"),n.bindAction(76,!0,"lockUnlock"),n.bindAction(76,!0,"layers",!0),n.bindAction(80,!0,"formatPanel",!0),
@@ -2337,29 +2337,29 @@ null!=this.editor&&(this.editor.destroy(),this.editor=null);null!=this.menubar&&
this.keyupHandler),this.keyupHandler=null);null!=this.resizeHandler&&(mxEvent.removeListener(window,"resize",this.resizeHandler),this.resizeHandler=null);null!=this.gestureHandler&&(mxEvent.removeGestureListeners(document,this.gestureHandler),this.gestureHandler=null);null!=this.orientationChangeHandler&&(mxEvent.removeListener(window,"orientationchange",this.orientationChangeHandler),this.orientationChangeHandler=null);null!=this.scrollHandler&&(mxEvent.removeListener(window,"scroll",this.scrollHandler),
this.scrollHandler=null);if(null!=this.destroyFunctions){for(b=0;b<this.destroyFunctions.length;b++)this.destroyFunctions[b]();this.destroyFunctions=null}for(var c=[this.menubarContainer,this.toolbarContainer,this.sidebarContainer,this.formatContainer,this.diagramContainer,this.footerContainer,this.chromelessToolbar,this.hsplit,this.sidebarFooterContainer,this.layersDialog],b=0;b<c.length;b++)null!=c[b]&&null!=c[b].parentNode&&c[b].parentNode.removeChild(c[b])};"undefined"!==typeof html4&&(html4.ATTRIBS["a::target"]=0,html4.ATTRIBS["source::src"]=0,html4.ATTRIBS["video::src"]=0);(function(){var b=[["nbsp","160"],["shy","173"]],c=mxUtils.parseXml;mxUtils.parseXml=function(e){for(var f=0;f<b.length;f++)e=e.replace(new RegExp("&"+b[f][0]+";","g"),"&#"+b[f][1]+";");return c(e)}})();
Date.prototype.toISOString||function(){function b(b){b=String(b);1===b.length&&(b="0"+b);return b}Date.prototype.toISOString=function(){return this.getUTCFullYear()+"-"+b(this.getUTCMonth()+1)+"-"+b(this.getUTCDate())+"T"+b(this.getUTCHours())+":"+b(this.getUTCMinutes())+":"+b(this.getUTCSeconds())+"."+String((this.getUTCMilliseconds()/1E3).toFixed(3)).slice(2,5)+"Z"}}();Date.now||(Date.now=function(){return(new Date).getTime()});
-Uint8Array.from||(Uint8Array.from=function(){var b=Object.prototype.toString,c=function(c){return"function"===typeof c||"[object Function]"===b.call(c)},e=Math.pow(2,53)-1;return function(b){var f=Object(b);if(null==b)throw new TypeError("Array.from requires an array-like object - not null or undefined");var l=1<arguments.length?arguments[1]:void 0,t;if("undefined"!==typeof l){if(!c(l))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(t=
-arguments[2])}var d;d=Number(f.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),e);for(var k=c(this)?Object(new this(d)):Array(d),g=0,q;g<d;)q=f[g],k[g]=l?"undefined"===typeof t?l(q,g):l.call(t,q,g):q,g+=1;k.length=d;return k}}());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";
+Uint8Array.from||(Uint8Array.from=function(){var b=Object.prototype.toString,c=function(c){return"function"===typeof c||"[object Function]"===b.call(c)},e=Math.pow(2,53)-1;return function(b){var f=Object(b);if(null==b)throw new TypeError("Array.from requires an array-like object - not null or undefined");var l=1<arguments.length?arguments[1]:void 0,q;if("undefined"!==typeof l){if(!c(l))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(q=
+arguments[2])}var d;d=Number(f.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),e);for(var k=c(this)?Object(new this(d)):Array(d),g=0,t;g<d;)t=f[g],k[g]=l?"undefined"===typeof q?l(t,g):l.call(q,t,g):t,g+=1;k.length=d;return k}}());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";
mxConstants.VML_SHADOWCOLOR="#d0d0d0";mxGraph.prototype.pageBreakColor="#c0c0c0";mxGraph.prototype.pageScale=1;(function(){try{if(null!=navigator&&null!=navigator.language){var b=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===b||"en-ca"===b||"es-mx"===b?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(c){}})();mxText.prototype.baseSpacingTop=5;mxText.prototype.baseSpacingBottom=1;mxGraphModel.prototype.ignoreRelativeEdgeParent=!1;
mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif";mxGraphView.prototype.gridSteps=4;mxGraphView.prototype.minGridSize=4;mxGraphView.prototype.defaultGridColor="#d0d0d0";mxGraphView.prototype.defaultDarkGridColor="#6e6e6e";mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultGridColor;mxGraphView.prototype.unit=mxConstants.POINTS;
mxGraphView.prototype.setUnit=function(b){this.unit!=b&&(this.unit=b,this.fireEvent(new mxEventObject("unitChanged","unit",b)))};mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]";mxShape.prototype.getConstraints=function(b,c,e){return null};
mxImageShape.prototype.getImageDataUri=function(){var b=this.image;if("data:image/svg+xml;base64,"==b.substring(0,26)&&null!=this.style&&"1"==mxUtils.getValue(this.style,"clipSvg","0")){if(null==this.clippedSvg||this.clippedImage!=b)this.clippedSvg=Graph.clipSvgDataUri(b,!0),this.clippedImage=b;b=this.clippedSvg}return b};
Graph=function(b,c,e,f,n,l){mxGraph.call(this,b,c,e,f);this.themes=n||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);this.standalone=null!=l?l:!1;b=this.baseUrl;c=b.indexOf("//");this.domainPathUrl=this.domainUrl="";0<c&&(c=b.indexOf("/",c+2),0<c&&(this.domainUrl=b.substring(0,c)),c=b.lastIndexOf("/"),0<c&&(this.domainPathUrl=b.substring(0,c+1)));this.isHtmlLabel=function(b){b=this.getCurrentCellStyle(b);
-return null!=b?"1"==b.html||"wrap"==b[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var t=null,d=null,k=null,g=null,q=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,c){if("mouseDown"==c.getProperty("eventName")&&this.isEnabled()){var e=c.getProperty("event"),f=e.getState(),l=this.view.scale;if(!mxEvent.isAltDown(e.getEvent())&&null!=f)if(this.model.isEdge(f.cell))if(t=new mxPoint(e.getGraphX(),e.getGraphY()),q=this.isCellSelected(f.cell),k=f,d=e,null!=f.text&&null!=
+return null!=b?"1"==b.html||"wrap"==b[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var q=null,d=null,k=null,g=null,t=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,c){if("mouseDown"==c.getProperty("eventName")&&this.isEnabled()){var e=c.getProperty("event"),f=e.getState(),l=this.view.scale;if(!mxEvent.isAltDown(e.getEvent())&&null!=f)if(this.model.isEdge(f.cell))if(q=new mxPoint(e.getGraphX(),e.getGraphY()),t=this.isCellSelected(f.cell),k=f,d=e,null!=f.text&&null!=
f.text.boundingBox&&mxUtils.contains(f.text.boundingBox,e.getGraphX(),e.getGraphY()))g=mxEvent.LABEL_HANDLE;else{var m=this.selectionCellsHandler.getHandler(f.cell);null!=m&&null!=m.bends&&0<m.bends.length&&(g=m.getHandleForEvent(e))}else if(!this.panningHandler.isActive()&&!mxEvent.isControlDown(e.getEvent())&&(m=this.selectionCellsHandler.getHandler(f.cell),null==m||null==m.getHandleForEvent(e))){var p=new mxRectangle(e.getGraphX()-1,e.getGraphY()-1),B=mxEvent.isTouchEvent(e.getEvent())?mxShape.prototype.svgStrokeTolerance-
1:(mxShape.prototype.svgStrokeTolerance+2)/2,m=B+2;p.grow(B);if(this.isTableCell(f.cell)&&!this.isCellSelected(f.cell)&&!(mxUtils.contains(f,e.getGraphX()-m,e.getGraphY()-m)&&mxUtils.contains(f,e.getGraphX()-m,e.getGraphY()+m)&&mxUtils.contains(f,e.getGraphX()+m,e.getGraphY()+m)&&mxUtils.contains(f,e.getGraphX()+m,e.getGraphY()-m))){var n=this.model.getParent(f.cell),m=this.model.getParent(n);if(!this.isCellSelected(m)){var B=B*l,u=2*B;if(this.model.getChildAt(m,0)!=n&&mxUtils.intersects(p,new mxRectangle(f.x,
f.y-B,f.width,u))||this.model.getChildAt(n,0)!=f.cell&&mxUtils.intersects(p,new mxRectangle(f.x-B,f.y,u,f.height))||mxUtils.intersects(p,new mxRectangle(f.x,f.y+f.height-B,f.width,u))||mxUtils.intersects(p,new mxRectangle(f.x+f.width-B,f.y,u,f.height)))n=this.selectionCellsHandler.isHandled(m),this.selectCellForEvent(m,e.getEvent()),m=this.selectionCellsHandler.getHandler(m),null!=m&&(B=m.getHandleForEvent(e),null!=B&&(m.start(e.getGraphX(),e.getGraphY(),B),m.blockDelayedSelection=!n,e.consume()))}}for(;!e.isConsumed()&&
null!=f&&(this.isTableCell(f.cell)||this.isTableRow(f.cell)||this.isTable(f.cell));)this.isSwimlane(f.cell)&&(m=this.getActualStartSize(f.cell),(0<m.x||0<m.width)&&mxUtils.intersects(p,new mxRectangle(f.x+(m.x-m.width-1)*l+(0==m.x?f.width:0),f.y,1,f.height))||(0<m.y||0<m.height)&&mxUtils.intersects(p,new mxRectangle(f.x,f.y+(m.y-m.height-1)*l+(0==m.y?f.height:0),f.width,1)))&&(this.selectCellForEvent(f.cell,e.getEvent()),m=this.selectionCellsHandler.getHandler(f.cell),null!=m&&(B=mxEvent.CUSTOM_HANDLE-
-m.customHandles.length+1,m.start(e.getGraphX(),e.getGraphY(),B),e.consume())),f=this.view.getState(this.model.getParent(f.cell))}}}));this.addMouseListener({mouseDown:function(b,d){},mouseMove:mxUtils.bind(this,function(b,c){var e=this.selectionCellsHandler.handlers.map,f;for(f in e)if(null!=e[f].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isAltDown(c.getEvent())){var m=this.tolerance;if(null!=t&&null!=k&&null!=d){if(e=k,Math.abs(t.x-c.getGraphX())>m||Math.abs(t.y-
-c.getGraphY())>m){var l=this.selectionCellsHandler.getHandler(e.cell);null==l&&this.model.isEdge(e.cell)&&(l=this.createHandler(e));if(null!=l&&null!=l.bends&&0<l.bends.length){f=l.getHandleForEvent(d);var p=this.view.getEdgeStyle(e),m=p==mxEdgeStyle.EntityRelation;q||g!=mxEvent.LABEL_HANDLE||(f=g);if(m&&0!=f&&f!=l.bends.length-1&&f!=mxEvent.LABEL_HANDLE)!m||null==e.visibleSourceState&&null==e.visibleTargetState||(this.graphHandler.reset(),c.consume());else if(f==mxEvent.LABEL_HANDLE||0==f||null!=
-e.visibleSourceState||f==l.bends.length-1||null!=e.visibleTargetState)m||f==mxEvent.LABEL_HANDLE||(m=e.absolutePoints,null!=m&&(null==p&&null==f||p==mxEdgeStyle.OrthConnector)&&(f=g,null==f&&(f=new mxRectangle(t.x,t.y),f.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(f,m[0].x,m[0].y)?f=0:mxUtils.contains(f,m[m.length-1].x,m[m.length-1].y)?f=l.bends.length-1:null!=p&&(2==m.length||3==m.length&&(0==Math.round(m[0].x-m[1].x)&&0==Math.round(m[1].x-m[2].x)||0==Math.round(m[0].y-m[1].y)&&
-0==Math.round(m[1].y-m[2].y)))?f=2:(f=mxUtils.findNearestSegment(e,t.x,t.y),f=null==p?mxEvent.VIRTUAL_HANDLE-f:f+1))),null==f&&(f=mxEvent.VIRTUAL_HANDLE)),l.start(c.getGraphX(),c.getGraphX(),f),c.consume(),this.graphHandler.reset()}null!=l&&(this.selectionCellsHandler.isHandlerActive(l)?this.isCellSelected(e.cell)||(this.selectionCellsHandler.handlers.put(e.cell,l),this.selectCellForEvent(e.cell,c.getEvent())):this.isCellSelected(e.cell)||l.destroy());q=!1;t=d=k=g=null}}else if(e=c.getState(),null!=
+m.customHandles.length+1,m.start(e.getGraphX(),e.getGraphY(),B),e.consume())),f=this.view.getState(this.model.getParent(f.cell))}}}));this.addMouseListener({mouseDown:function(b,d){},mouseMove:mxUtils.bind(this,function(b,c){var e=this.selectionCellsHandler.handlers.map,f;for(f in e)if(null!=e[f].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isAltDown(c.getEvent())){var m=this.tolerance;if(null!=q&&null!=k&&null!=d){if(e=k,Math.abs(q.x-c.getGraphX())>m||Math.abs(q.y-
+c.getGraphY())>m){var l=this.selectionCellsHandler.getHandler(e.cell);null==l&&this.model.isEdge(e.cell)&&(l=this.createHandler(e));if(null!=l&&null!=l.bends&&0<l.bends.length){f=l.getHandleForEvent(d);var p=this.view.getEdgeStyle(e),m=p==mxEdgeStyle.EntityRelation;t||g!=mxEvent.LABEL_HANDLE||(f=g);if(m&&0!=f&&f!=l.bends.length-1&&f!=mxEvent.LABEL_HANDLE)!m||null==e.visibleSourceState&&null==e.visibleTargetState||(this.graphHandler.reset(),c.consume());else if(f==mxEvent.LABEL_HANDLE||0==f||null!=
+e.visibleSourceState||f==l.bends.length-1||null!=e.visibleTargetState)m||f==mxEvent.LABEL_HANDLE||(m=e.absolutePoints,null!=m&&(null==p&&null==f||p==mxEdgeStyle.OrthConnector)&&(f=g,null==f&&(f=new mxRectangle(q.x,q.y),f.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(f,m[0].x,m[0].y)?f=0:mxUtils.contains(f,m[m.length-1].x,m[m.length-1].y)?f=l.bends.length-1:null!=p&&(2==m.length||3==m.length&&(0==Math.round(m[0].x-m[1].x)&&0==Math.round(m[1].x-m[2].x)||0==Math.round(m[0].y-m[1].y)&&
+0==Math.round(m[1].y-m[2].y)))?f=2:(f=mxUtils.findNearestSegment(e,q.x,q.y),f=null==p?mxEvent.VIRTUAL_HANDLE-f:f+1))),null==f&&(f=mxEvent.VIRTUAL_HANDLE)),l.start(c.getGraphX(),c.getGraphX(),f),c.consume(),this.graphHandler.reset()}null!=l&&(this.selectionCellsHandler.isHandlerActive(l)?this.isCellSelected(e.cell)||(this.selectionCellsHandler.handlers.put(e.cell,l),this.selectCellForEvent(e.cell,c.getEvent())):this.isCellSelected(e.cell)||l.destroy());t=!1;q=d=k=g=null}}else if(e=c.getState(),null!=
e&&this.isCellEditable(e.cell)){l=null;if(this.model.isEdge(e.cell)){if(f=new mxRectangle(c.getGraphX(),c.getGraphY()),f.grow(mxEdgeHandler.prototype.handleImage.width/2),m=e.absolutePoints,null!=m)if(null!=e.text&&null!=e.text.boundingBox&&mxUtils.contains(e.text.boundingBox,c.getGraphX(),c.getGraphY()))l="move";else if(mxUtils.contains(f,m[0].x,m[0].y)||mxUtils.contains(f,m[m.length-1].x,m[m.length-1].y))l="pointer";else if(null!=e.visibleSourceState||null!=e.visibleTargetState)f=this.view.getEdgeStyle(e),
l="crosshair",f!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(e)&&(f=mxUtils.findNearestSegment(e,c.getGraphX(),c.getGraphY()),f<m.length-1&&0<=f&&(l=0==Math.round(m[f].x-m[f+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(c.getEvent())){m=mxShape.prototype.svgStrokeTolerance/2;f=new mxRectangle(c.getGraphX(),c.getGraphY());f.grow(m);if(this.isTableCell(e.cell)&&(m=this.model.getParent(e.cell),p=this.model.getParent(m),!this.isCellSelected(p)))if(mxUtils.intersects(f,new mxRectangle(e.x,
e.y-2,e.width,4))&&this.model.getChildAt(p,0)!=m||mxUtils.intersects(f,new mxRectangle(e.x,e.y+e.height-2,e.width,4)))l="row-resize";else if(mxUtils.intersects(f,new mxRectangle(e.x-2,e.y,4,e.height))&&this.model.getChildAt(m,0)!=e.cell||mxUtils.intersects(f,new mxRectangle(e.x+e.width-2,e.y,4,e.height)))l="col-resize";for(m=e;null==l&&null!=m&&(this.isTableCell(m.cell)||this.isTableRow(m.cell)||this.isTable(m.cell));){if(this.isSwimlane(m.cell)){var p=this.getActualStartSize(m.cell),B=this.view.scale;
-(0<p.x||0<p.width)&&mxUtils.intersects(f,new mxRectangle(m.x+(p.x-p.width-1)*B+(0==p.x?m.width*B:0),m.y,1,m.height))?l="col-resize":(0<p.y||0<p.height)&&mxUtils.intersects(f,new mxRectangle(m.x,m.y+(p.y-p.height-1)*B+(0==p.y?m.height:0),m.width,1))&&(l="row-resize")}m=this.view.getState(this.model.getParent(m.cell))}}null!=l&&e.setCursor(l)}}}),mouseUp:mxUtils.bind(this,function(b,c){g=t=d=k=null})})}this.cellRenderer.minSvgStrokeWidth=.1;this.cellRenderer.getLabelValue=function(b){var d=mxCellRenderer.prototype.getLabelValue.apply(this,
+(0<p.x||0<p.width)&&mxUtils.intersects(f,new mxRectangle(m.x+(p.x-p.width-1)*B+(0==p.x?m.width*B:0),m.y,1,m.height))?l="col-resize":(0<p.y||0<p.height)&&mxUtils.intersects(f,new mxRectangle(m.x,m.y+(p.y-p.height-1)*B+(0==p.y?m.height:0),m.width,1))&&(l="row-resize")}m=this.view.getState(this.model.getParent(m.cell))}}null!=l&&e.setCursor(l)}}}),mouseUp:mxUtils.bind(this,function(b,c){g=q=d=k=null})})}this.cellRenderer.minSvgStrokeWidth=.1;this.cellRenderer.getLabelValue=function(b){var d=mxCellRenderer.prototype.getLabelValue.apply(this,
arguments);b.view.graph.isHtmlLabel(b.cell)&&(d=1!=b.style.html?mxUtils.htmlEntities(d,!1):b.view.graph.sanitizeHtml(d));return d};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0);this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);
-this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(b,d){return!1};this.alternateEdgeStyle="vertical";null==f&&this.loadStylesheet();var m=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=function(){var b=m.apply(this,arguments);if(this.graph.pageVisible){for(var d=[],c=this.graph.pageFormat,g=this.graph.pageScale,k=c.width*g,c=c.height*g,g=this.graph.view.translate,e=this.graph.view.scale,f=this.graph.getPageLayout(),q=0;q<f.width;q++)d.push(new mxRectangle(((f.x+
-q)*k+g.x)*e,(f.y*c+g.y)*e,k*e,c*e));for(q=1;q<f.height;q++)d.push(new mxRectangle((f.x*k+g.x)*e,((f.y+q)*c+g.y)*e,k*e,c*e));b=d.concat(b)}return b};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=function(b,d){return null==b.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(b){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,
+this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(b,d){return!1};this.alternateEdgeStyle="vertical";null==f&&this.loadStylesheet();var m=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=function(){var b=m.apply(this,arguments);if(this.graph.pageVisible){for(var d=[],c=this.graph.pageFormat,g=this.graph.pageScale,k=c.width*g,c=c.height*g,g=this.graph.view.translate,e=this.graph.view.scale,f=this.graph.getPageLayout(),t=0;t<f.width;t++)d.push(new mxRectangle(((f.x+
+t)*k+g.x)*e,(f.y*c+g.y)*e,k*e,c*e));for(t=1;t<f.height;t++)d.push(new mxRectangle((f.x*k+g.x)*e,((f.y+t)*c+g.y)*e,k*e,c*e));b=d.concat(b)}return b};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=function(b,d){return null==b.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(b){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,
arguments)};var p=this.graphHandler.getCells;this.graphHandler.getCells=function(b){for(var d=p.apply(this,arguments),c=new mxDictionary,g=[],k=0;k<d.length;k++){var e=this.graph.isTableCell(b)&&this.graph.isTableCell(d[k])&&this.graph.isCellSelected(d[k])?this.graph.model.getParent(d[k]):this.graph.isTableRow(b)&&this.graph.isTableRow(d[k])&&this.graph.isCellSelected(d[k])?d[k]:this.graph.getCompositeParent(d[k]);null==e||c.get(e)||(c.put(e,!0),g.push(e))}return g};var v=this.graphHandler.start;
this.graphHandler.start=function(b,d,c,g){var k=!1;this.graph.isTableCell(b)&&(this.graph.isCellSelected(b)?k=!0:b=this.graph.model.getParent(b));k||this.graph.isTableRow(b)&&this.graph.isCellSelected(b)||(b=this.graph.getCompositeParent(b));v.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(b,d){d=this.graph.getCompositeParent(d);return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var u=new mxRubberband(this);this.getRubberband=function(){return u};
var x=(new Date).getTime(),y=0,G=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var b=this.currentState;G.apply(this,arguments);b!=this.currentState?(x=(new Date).getTime(),y=0):y=(new Date).getTime()-x};var H=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(b){return null!=this.currentState&&b.getState()==this.currentState&&2E3<y||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect",
@@ -2367,8 +2367,8 @@ var x=(new Date).getTime(),y=0,G=this.connectionHandler.mouseMove;this.connectio
mxUtils.bind(this,function(){this.isEnabled()&&(O=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=O)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(b){return mxEvent.isMouseEvent(b.getEvent())};var A=this.click;this.click=function(b){var d=null==b.state&&null!=b.sourceState&&this.isCellLocked(b.sourceState.cell);if(this.isEnabled()&&
!d||b.isConsumed())return A.apply(this,arguments);var c=d?b.sourceState.cell:b.getCell();null!=c&&(c=this.getClickableLinkForCell(c),null!=c&&(this.isCustomLink(c)?this.customLinkClicked(c):this.openLink(c)));this.isEnabled()&&d&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};var C=this.tooltipHandler.show;this.tooltipHandler.show=function(){C.apply(this,arguments);if(null!=this.div)for(var b=this.div.getElementsByTagName("a"),d=0;d<b.length;d++)null!=
b[d].getAttribute("href")&&null==b[d].getAttribute("target")&&b[d].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};this.getCursorForMouseEvent=function(b){var d=null==b.state&&null!=b.sourceState&&this.isCellLocked(b.sourceState.cell);return this.getCursorForCell(d?b.sourceState.cell:b.getCell())};var E=this.getCursorForCell;this.getCursorForCell=function(b){if(!this.isEnabled()||this.isCellLocked(b)){if(null!=this.getClickableLinkForCell(b))return"pointer";
-if(this.isCellLocked(b))return"default"}return E.apply(this,arguments)};this.selectRegion=function(b,d){var c=mxEvent.isAltDown(d)?b:null,c=this.getCells(b.x,b.y,b.width,b.height,null,null,c,function(b){return"1"==mxUtils.getValue(b.style,"locked","0")},!0);if(this.isToggleEvent(d))for(var g=0;g<c.length;g++)this.selectCellForEvent(c[g],d);else this.selectCellsForEvent(c,d);return c};var L=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(b,d,c){return this.graph.isCellSelected(b)?
-!1:L.apply(this,arguments)};this.isCellLocked=function(b){for(;null!=b;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(b),"locked","0"))return!0;b=this.model.getParent(b)}return!1};var N=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,d){if("mouseDown"==d.getProperty("eventName")){var c=d.getProperty("event").getState();N=null==c||this.isSelectionEmpty()||this.isCellSelected(c.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,
+if(this.isCellLocked(b))return"default"}return E.apply(this,arguments)};this.selectRegion=function(b,d){var c=mxEvent.isAltDown(d)?b:null,c=this.getCells(b.x,b.y,b.width,b.height,null,null,c,function(b){return"1"==mxUtils.getValue(b.style,"locked","0")},!0);if(this.isToggleEvent(d))for(var g=0;g<c.length;g++)this.selectCellForEvent(c[g],d);else this.selectCellsForEvent(c,d);return c};var J=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(b,d,c){return this.graph.isCellSelected(b)?
+!1:J.apply(this,arguments)};this.isCellLocked=function(b){for(;null!=b;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(b),"locked","0"))return!0;b=this.model.getParent(b)}return!1};var N=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,d){if("mouseDown"==d.getProperty("eventName")){var c=d.getProperty("event").getState();N=null==c||this.isSelectionEmpty()||this.isCellSelected(c.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,
function(b,d){if(!mxEvent.isMultiTouchEvent(d)){var c=d.getProperty("event"),g=d.getProperty("cell");null==g?(c=mxUtils.convertPoint(this.container,mxEvent.getClientX(c),mxEvent.getClientY(c)),u.start(c.x,c.y)):null!=N?this.addSelectionCells(N):1<this.getSelectionCount()&&this.isCellSelected(g)&&this.removeSelectionCell(g);N=null;d.consume()}}));this.connectionHandler.selectCells=function(b,d){this.graph.setSelectionCell(d||b)};this.connectionHandler.constraintHandler.isStateIgnored=function(b,d){var c=
b.view.graph;return d&&(c.isCellSelected(b.cell)||c.isTableRow(b.cell)&&c.selectionCellsHandler.isHandled(c.model.getParent(b.cell)))};this.selectionModel.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){var b=this.connectionHandler.constraintHandler;null!=b.currentFocus&&b.isStateIgnored(b.currentFocus,!0)&&(b.currentFocus=null,b.constraints=null,b.destroyIcons());b.destroyFocusHighlight()}));Graph.touchStyle&&this.initTouch();var M=this.updateMouseEvent;this.updateMouseEvent=function(b){b=
M.apply(this,arguments);null!=b.state&&this.isCellLocked(b.getCell())&&(b.state=null);return b}}this.currentTranslate=new mxPoint(0,0)};Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;Graph.fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList&&(null==window.urlParams||"0"!=urlParams.filesupport);Graph.translateDiagram="1"==urlParams["translate-diagram"];
@@ -2386,14 +2386,14 @@ Graph.setTransitionForNodes=function(b,c){for(var e=0;e<b.length;e++)mxUtils.set
Graph.sanitizeHtml=function(b,c){return html_sanitize(b,function(b){return null!=b&&"javascript:"!==b.toString().toLowerCase().substring(0,11)?b:null},function(b){return b})};
Graph.sanitizeSvg=function(b){function c(c){for(c=b.getElementsByTagName(c);0<c.length;)c[0].parentNode.removeChild(c[0])}for(var e=b.getElementsByTagName("*"),f=0;f<e.length;f++)for(var n=0;n<e[f].attributes.length;n++){var l=e[f].attributes[n];2<l.name.length&&"on"==l.name.toLowerCase().substring(0,2)&&e[f].removeAttribute(l.name)}c("meta");c("script");c("metadata")};
Graph.clipSvgDataUri=function(b,c){if(!mxClient.IS_IE&&!mxClient.IS_IE11&&null!=b&&"data:image/svg+xml;base64,"==b.substring(0,26))try{var e=document.createElement("div");e.style.position="absolute";e.style.visibility="hidden";var f=decodeURIComponent(escape(atob(b.substring(26)))),n=f.indexOf("<svg");if(0<=n){e.innerHTML=f.substring(n);Graph.sanitizeSvg(e);var l=e.getElementsByTagName("svg");if(0<l.length){if(c||null!=l[0].getAttribute("preserveAspectRatio")){document.body.appendChild(e);try{var n=
-f=1,t=l[0].getAttribute("width"),d=l[0].getAttribute("height"),t=null!=t&&"%"!=t.charAt(t.length-1)?parseFloat(t):NaN,d=null!=d&&"%"!=d.charAt(d.length-1)?parseFloat(d):NaN,k=l[0].getAttribute("viewBox");if(null!=k&&!isNaN(t)&&!isNaN(d)){var g=k.split(" ");4<=k.length&&(f=parseFloat(g[2])/t,n=parseFloat(g[3])/d)}var q=l[0].getBBox();0<q.width&&0<q.height&&(e.getElementsByTagName("svg")[0].setAttribute("viewBox",q.x+" "+q.y+" "+q.width+" "+q.height),e.getElementsByTagName("svg")[0].setAttribute("width",
-q.width/f),e.getElementsByTagName("svg")[0].setAttribute("height",q.height/n))}catch(m){}finally{document.body.removeChild(e)}}b=Editor.createSvgDataUri(mxUtils.getXml(l[0]))}}}catch(m){}return b};Graph.stripQuotes=function(b){null!=b&&("'"==b.charAt(0)&&(b=b.substring(1)),"'"==b.charAt(b.length-1)&&(b=b.substring(0,b.length-1)),'"'==b.charAt(0)&&(b=b.substring(1)),'"'==b.charAt(b.length-1)&&(b=b.substring(0,b.length-1)));return b};
+f=1,q=l[0].getAttribute("width"),d=l[0].getAttribute("height"),q=null!=q&&"%"!=q.charAt(q.length-1)?parseFloat(q):NaN,d=null!=d&&"%"!=d.charAt(d.length-1)?parseFloat(d):NaN,k=l[0].getAttribute("viewBox");if(null!=k&&!isNaN(q)&&!isNaN(d)){var g=k.split(" ");4<=k.length&&(f=parseFloat(g[2])/q,n=parseFloat(g[3])/d)}var t=l[0].getBBox();0<t.width&&0<t.height&&(e.getElementsByTagName("svg")[0].setAttribute("viewBox",t.x+" "+t.y+" "+t.width+" "+t.height),e.getElementsByTagName("svg")[0].setAttribute("width",
+t.width/f),e.getElementsByTagName("svg")[0].setAttribute("height",t.height/n))}catch(m){}finally{document.body.removeChild(e)}}b=Editor.createSvgDataUri(mxUtils.getXml(l[0]))}}}catch(m){}return b};Graph.stripQuotes=function(b){null!=b&&("'"==b.charAt(0)&&(b=b.substring(1)),"'"==b.charAt(b.length-1)&&(b=b.substring(0,b.length-1)),'"'==b.charAt(0)&&(b=b.substring(1)),'"'==b.charAt(b.length-1)&&(b=b.substring(0,b.length-1)));return b};
Graph.createRemoveIcon=function(b,c){var e=document.createElement("img");e.setAttribute("src",Dialog.prototype.clearImage);e.setAttribute("title",b);e.setAttribute("width","13");e.setAttribute("height","10");e.style.marginLeft="4px";e.style.marginBottom="-1px";e.style.cursor="pointer";mxEvent.addListener(e,"click",c);return e};Graph.isPageLink=function(b){return null!=b&&"data:page/id,"==b.substring(0,13)};Graph.isLink=function(b){return null!=b&&Graph.linkPattern.test(b)};Graph.linkPattern=/^(https?:\/\/)?((([a-z\d]([a-z\d-]*[a-z\d])*)\.)+[a-z]{2,}|((\d{1,3}\.){3}\d{1,3}))(\:\d+)?(\/[-a-z\d%_.~+]*)*(\?[;&a-z\d%_.~+=-]*)?(\#[-a-z\d_]*)?$/i;
mxUtils.extend(Graph,mxGraph);Graph.prototype.minFitScale=null;Graph.prototype.maxFitScale=null;Graph.prototype.linkPolicy="frame"==urlParams.target?"blank":urlParams.target||"auto";Graph.prototype.linkTarget="frame"==urlParams.target?"_self":"_blank";Graph.prototype.linkRelation="nofollow noopener noreferrer";Graph.prototype.defaultScrollbars=!0;Graph.prototype.defaultPageVisible=!0;Graph.prototype.defaultGridEnabled="0"!=urlParams.grid;Graph.prototype.lightbox=!1;
Graph.prototype.defaultPageBackgroundColor="#ffffff";Graph.prototype.defaultPageBorderColor="#ffffff";Graph.prototype.shapeForegroundColor="#000000";Graph.prototype.shapeBackgroundColor="#ffffff";Graph.prototype.scrollTileSize=new mxRectangle(0,0,400,400);Graph.prototype.transparentBackground=!0;Graph.prototype.selectParentAfterDelete=!1;Graph.prototype.defaultEdgeLength=80;Graph.prototype.edgeMode=!1;Graph.prototype.connectionArrowsEnabled=!0;
Graph.prototype.placeholderPattern=RegExp("%(date{.*}|[^%^{^}^ ^\"^ '^=^;]+)%","g");Graph.prototype.absoluteUrlPattern=/^(?:[a-z]+:)?\/\//i;Graph.prototype.defaultThemeName="default";Graph.prototype.defaultThemes={};Graph.prototype.baseUrl=null!=urlParams.base?decodeURIComponent(urlParams.base):(window!=window.top?document.referrer:document.location.toString()).split("#")[0];Graph.prototype.editAfterInsert=!1;Graph.prototype.builtInProperties=["label","tooltip","placeholders","placeholder"];
Graph.prototype.standalone=!1;Graph.prototype.enableFlowAnimation=!1;Graph.prototype.roundableShapes="label rectangle internalStorage corner parallelogram swimlane triangle trapezoid ext step tee process link rhombus offPageConnector loopLimit hexagon manualInput card curlyBracket singleArrow callout doubleArrow flexArrow umlLifeline".split(" ");
-Graph.prototype.init=function(b){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(b,c){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var e=b.view.graph.tolerance,f=!0,t=null,d=mxUtils.bind(this,function(b){f=!0;t=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b))}),k=mxUtils.bind(this,function(b){f=f&&null!=t&&Math.abs(t.x-mxEvent.getClientX(b))<e&&Math.abs(t.y-mxEvent.getClientY(b))<e}),g=mxUtils.bind(this,function(d){if(f)for(var g=mxEvent.getSource(d);null!=
+Graph.prototype.init=function(b){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(b,c){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var e=b.view.graph.tolerance,f=!0,q=null,d=mxUtils.bind(this,function(b){f=!0;q=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b))}),k=mxUtils.bind(this,function(b){f=f&&null!=q&&Math.abs(q.x-mxEvent.getClientX(b))<e&&Math.abs(q.y-mxEvent.getClientY(b))<e}),g=mxUtils.bind(this,function(d){if(f)for(var g=mxEvent.getSource(d);null!=
g&&g!=c.node;){if("a"==g.nodeName.toLowerCase()){b.view.graph.labelLinkClicked(b,g,d);break}g=g.parentNode}});mxEvent.addGestureListeners(c.node,d,k,g);mxEvent.addListener(c.node,"click",function(b){mxEvent.consume(b)})};if(null!=this.tooltipHandler){var c=this.tooltipHandler.init;this.tooltipHandler.init=function(){c.apply(this,arguments);null!=this.div&&mxEvent.addListener(this.div,"click",mxUtils.bind(this,function(b){var c=mxEvent.getSource(b);"A"==c.nodeName&&(c=c.getAttribute("href"),null!=
c&&this.graph.isCustomLink(c)&&(mxEvent.isTouchEvent(b)||!mxEvent.isPopupTrigger(b))&&this.graph.customLinkClicked(c)&&mxEvent.consume(b))}))}}this.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,c){if(null!=this.container&&this.flowAnimationStyle){var e=this.flowAnimationStyle.getAttribute("id");this.flowAnimationStyle.innerHTML=this.getFlowAnimationStyleCss(e)}}));this.initLayoutManager()};
(function(){Graph.prototype.useCssTransforms=!1;Graph.prototype.currentScale=1;Graph.prototype.currentTranslate=new mxPoint(0,0);Graph.prototype.isFillState=function(b){return!this.isSpecialColor(b.style[mxConstants.STYLE_FILLCOLOR])&&"1"!=mxUtils.getValue(b.style,"lineShape",null)&&(this.model.isVertex(b.cell)||"arrow"==mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,null)||"filledEdge"==mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,null)||"flexArrow"==mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,
@@ -2404,7 +2404,7 @@ d,0==c)}return d};Graph.prototype.mergeStyle=function(b,d,c){if(null!=b){var g={
mxConstants.STYLE_STARTSIZE,0)));if(this.isTableRow(b)&&(!this.isSwimlane(b)||0==c)&&""==this.getLabel(b)&&0<this.model.getChildCount(b))for(c=0;c<this.model.getChildCount(b);c++){var g=this.model.getChildAt(b,c);if(this.isCellEditable(g)){b=g;break}}return b};Graph.prototype.copyStyle=function(b){return this.getCellStyle(b,!1)};Graph.prototype.pasteStyle=function(b,d,c){c=null!=c?c:Graph.pasteStyles;Graph.removeKeys(b,function(b){return 0>mxUtils.indexOf(c,b)});this.updateCellStyles(b,d)};Graph.prototype.updateCellStyles=
function(b,d){this.model.beginUpdate();try{for(var c=0;c<d.length;c++)if(this.model.isVertex(d[c])||this.model.isEdge(d[c])){var g=this.getCellStyle(d[c],!1),e;for(e in b){var f=b[e];g[e]!=f&&this.setCellStyles(e,f,[d[c]])}}}finally{this.model.endUpdate()}};Graph.prototype.isFastZoomEnabled=function(){return"nocss"!=urlParams.zoom&&!mxClient.NO_FO&&!mxClient.IS_EDGE&&!this.useCssTransforms&&(this.isCssTransformsSupported()||mxClient.IS_IOS)};Graph.prototype.isCssTransformsSupported=function(){return this.dialect==
mxConstants.DIALECT_SVG&&!mxClient.NO_FO&&(!this.lightbox||!mxClient.IS_SF)};Graph.prototype.getCellAt=function(b,d,c,g,e,f){this.useCssTransforms&&(b=b/this.currentScale-this.currentTranslate.x,d=d/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(b,d,c,g,e,f){g=null!=g?g:!0;e=null!=e?e:!0;null==c&&(c=this.getCurrentRoot(),null==c&&(c=this.getModel().getRoot()));if(null!=c)for(var k=this.model.getChildCount(c)-1;0<=
-k;k--){var m=this.model.getChildAt(c,k),q=this.getScaledCellAt(b,d,m,g,e,f);if(null!=q)return q;if(this.isCellVisible(m)&&(e&&this.model.isEdge(m)||g&&this.model.isVertex(m))&&(q=this.view.getState(m),null!=q&&(null==f||!f(q,b,d))&&this.intersects(q,b,d)))return m}return null};Graph.prototype.isRecursiveVertexResize=function(b){return!this.isSwimlane(b.cell)&&0<this.model.getChildCount(b.cell)&&!this.isCellCollapsed(b.cell)&&"1"==mxUtils.getValue(b.style,"recursiveResize","1")&&null==mxUtils.getValue(b.style,
+k;k--){var m=this.model.getChildAt(c,k),t=this.getScaledCellAt(b,d,m,g,e,f);if(null!=t)return t;if(this.isCellVisible(m)&&(e&&this.model.isEdge(m)||g&&this.model.isVertex(m))&&(t=this.view.getState(m),null!=t&&(null==f||!f(t,b,d))&&this.intersects(t,b,d)))return m}return null};Graph.prototype.isRecursiveVertexResize=function(b){return!this.isSwimlane(b.cell)&&0<this.model.getChildCount(b.cell)&&!this.isCellCollapsed(b.cell)&&"1"==mxUtils.getValue(b.style,"recursiveResize","1")&&null==mxUtils.getValue(b.style,
"childLayout",null)};Graph.prototype.getAbsoluteParent=function(b){for(var d=this.getCellGeometry(b);null!=d&&d.relative;)b=this.getModel().getParent(b),d=this.getCellGeometry(b);return b};Graph.prototype.isPart=function(b){return"1"==mxUtils.getValue(this.getCurrentCellStyle(b),"part","0")||this.isTableCell(b)||this.isTableRow(b)};Graph.prototype.getCompositeParent=function(b){for(;this.isPart(b);){var d=this.model.getParent(b);if(!this.model.isVertex(d))break;b=d}return b};Graph.prototype.filterSelectionCells=
function(b){var d=this.getSelectionCells();if(null!=b){for(var c=[],g=0;g<d.length;g++)b(d[g])||c.push(d[g]);d=c}return d};var b=mxGraph.prototype.scrollRectToVisible;Graph.prototype.scrollRectToVisible=function(c){if(this.useCssTransforms){var d=this.currentScale,e=this.currentTranslate;c=new mxRectangle((c.x+2*e.x)*d-e.x,(c.y+2*e.y)*d-e.y,c.width*d,c.height*d)}b.apply(this,arguments)};mxCellHighlight.prototype.getStrokeWidth=function(b){b=this.strokeWidth;this.graph.useCssTransforms&&(b/=this.graph.currentScale);
return b};mxGraphView.prototype.getGraphBounds=function(){var b=this.graphBounds;if(this.graph.useCssTransforms)var d=this.graph.currentTranslate,c=this.graph.currentScale,b=new mxRectangle((b.x+d.x)*c,(b.y+d.y)*c,b.width*c,b.height*c);return b};mxGraphView.prototype.viewStateChanged=function(){this.graph.useCssTransforms?this.validate():this.revalidate();this.graph.sizeDidChange()};var c=mxGraphView.prototype.validate;mxGraphView.prototype.validate=function(b){this.graph.useCssTransforms&&(this.graph.currentScale=
@@ -2424,10 +2424,10 @@ e.childLayout)return f=new mxCompactTreeLayout(this.graph),f.horizontal="1"==mxU
Graph.prototype.getDataForCells=function(b){for(var c=[],e=0;e<b.length;e++){var f=null!=b[e].value?b[e].value.attributes:null,n={};n.id=b[e].id;if(null!=f)for(var l=0;l<f.length;l++)n[f[l].nodeName]=f[l].nodeValue;else n.label=this.convertValueToString(b[e]);c.push(n)}return c};
Graph.prototype.getNodesForCells=function(b){for(var c=[],e=0;e<b.length;e++){var f=this.view.getState(b[e]);if(null!=f){for(var n=this.cellRenderer.getShapesForState(f),l=0;l<n.length;l++)null!=n[l]&&null!=n[l].node&&c.push(n[l].node);null!=f.control&&null!=f.control.node&&c.push(f.control.node)}}return c};
Graph.prototype.createWipeAnimations=function(b,c){for(var e=[],f=0;f<b.length;f++){var n=this.view.getState(b[f]);null!=n&&null!=n.shape&&(this.model.isEdge(n.cell)&&null!=n.absolutePoints&&1<n.absolutePoints.length?e.push(this.createEdgeWipeAnimation(n,c)):this.model.isVertex(n.cell)&&null!=n.shape.bounds&&e.push(this.createVertexWipeAnimation(n,c)))}return e};
-Graph.prototype.createEdgeWipeAnimation=function(b,c){var e=b.absolutePoints.slice(),f=b.segments,n=b.length,l=e.length;return{execute:mxUtils.bind(this,function(t,d){if(null!=b.shape){var k=[e[0]],g=t/d;c||(g=1-g);for(var q=n*g,m=1;m<l;m++)if(q<=f[m-1]){k.push(new mxPoint(e[m-1].x+(e[m].x-e[m-1].x)*q/f[m-1],e[m-1].y+(e[m].y-e[m-1].y)*q/f[m-1]));break}else q-=f[m-1],k.push(e[m]);b.shape.points=k;b.shape.redraw();0==t&&Graph.setOpacityForNodes(this.getNodesForCells([b.cell]),1);null!=b.text&&null!=
+Graph.prototype.createEdgeWipeAnimation=function(b,c){var e=b.absolutePoints.slice(),f=b.segments,n=b.length,l=e.length;return{execute:mxUtils.bind(this,function(q,d){if(null!=b.shape){var k=[e[0]],g=q/d;c||(g=1-g);for(var t=n*g,m=1;m<l;m++)if(t<=f[m-1]){k.push(new mxPoint(e[m-1].x+(e[m].x-e[m-1].x)*t/f[m-1],e[m-1].y+(e[m].y-e[m-1].y)*t/f[m-1]));break}else t-=f[m-1],k.push(e[m]);b.shape.points=k;b.shape.redraw();0==q&&Graph.setOpacityForNodes(this.getNodesForCells([b.cell]),1);null!=b.text&&null!=
b.text.node&&(b.text.node.style.opacity=g)}}),stop:mxUtils.bind(this,function(){null!=b.shape&&(b.shape.points=e,b.shape.redraw(),null!=b.text&&null!=b.text.node&&(b.text.node.style.opacity=""),Graph.setOpacityForNodes(this.getNodesForCells([b.cell]),c?1:0))})}};
Graph.prototype.createVertexWipeAnimation=function(b,c){var e=new mxRectangle.fromRectangle(b.shape.bounds);return{execute:mxUtils.bind(this,function(f,n){if(null!=b.shape){var l=f/n;c||(l=1-l);b.shape.bounds=new mxRectangle(e.x,e.y,e.width*l,e.height);b.shape.redraw();0==f&&Graph.setOpacityForNodes(this.getNodesForCells([b.cell]),1);null!=b.text&&null!=b.text.node&&(b.text.node.style.opacity=l)}}),stop:mxUtils.bind(this,function(){null!=b.shape&&(b.shape.bounds=e,b.shape.redraw(),null!=b.text&&null!=
-b.text.node&&(b.text.node.style.opacity=""),Graph.setOpacityForNodes(this.getNodesForCells([b.cell]),c?1:0))})}};Graph.prototype.executeAnimations=function(b,c,e,f){e=null!=e?e:30;f=null!=f?f:30;var n=null,l=0,t=mxUtils.bind(this,function(){if(l==e||this.stoppingCustomActions){window.clearInterval(n);for(var d=0;d<b.length;d++)b[d].stop();null!=c&&c()}else for(d=0;d<b.length;d++)b[d].execute(l,e);l++}),n=window.setInterval(t,f);t()};
+b.text.node&&(b.text.node.style.opacity=""),Graph.setOpacityForNodes(this.getNodesForCells([b.cell]),c?1:0))})}};Graph.prototype.executeAnimations=function(b,c,e,f){e=null!=e?e:30;f=null!=f?f:30;var n=null,l=0,q=mxUtils.bind(this,function(){if(l==e||this.stoppingCustomActions){window.clearInterval(n);for(var d=0;d<b.length;d++)b[d].stop();null!=c&&c()}else for(d=0;d<b.length;d++)b[d].execute(l,e);l++}),n=window.setInterval(q,f);q()};
Graph.prototype.getPageSize=function(){return this.pageVisible?new mxRectangle(0,0,this.pageFormat.width*this.pageScale,this.pageFormat.height*this.pageScale):this.scrollTileSize};
Graph.prototype.getPageLayout=function(){var b=this.getPageSize(),c=this.getGraphBounds();if(0==c.width||0==c.height)return new mxRectangle(0,0,1,1);var e=Math.floor(Math.ceil(c.x/this.view.scale-this.view.translate.x)/b.width),f=Math.floor(Math.ceil(c.y/this.view.scale-this.view.translate.y)/b.height);return new mxRectangle(e,f,Math.ceil((Math.floor((c.x+c.width)/this.view.scale)-this.view.translate.x)/b.width)-e,Math.ceil((Math.floor((c.y+c.height)/this.view.scale)-this.view.translate.y)/b.height)-
f)};Graph.prototype.sanitizeHtml=function(b,c){return Graph.sanitizeHtml(b,c)};Graph.prototype.updatePlaceholders=function(){var b=!1,c;for(c in this.model.cells){var e=this.model.cells[c];this.isReplacePlaceholders(e)&&(this.view.invalidate(e,!1,!1),b=!0)}b&&this.view.validate()};Graph.prototype.isReplacePlaceholders=function(b){return null!=b.value&&"object"==typeof b.value&&"1"==b.value.getAttribute("placeholders")};
@@ -2437,28 +2437,28 @@ Graph.prototype.getLabel=function(b){var c=mxGraph.prototype.getLabel.apply(this
Graph.prototype.setGridSize=function(b){this.gridSize=b;this.fireEvent(new mxEventObject("gridSizeChanged"))};Graph.prototype.setDefaultParent=function(b){this.defaultParent=b;this.fireEvent(new mxEventObject("defaultParentChanged"))};Graph.prototype.getClickableLinkForCell=function(b){do{var c=this.getLinkForCell(b);if(null!=c)return c;b=this.model.getParent(b)}while(null!=b);return null};
Graph.prototype.getGlobalVariable=function(b){var c=null;"date"==b?c=(new Date).toLocaleDateString():"time"==b?c=(new Date).toLocaleTimeString():"timestamp"==b?c=(new Date).toLocaleString():"date{"==b.substring(0,5)&&(b=b.substring(5,b.length-1),c=this.formatDate(new Date,b));return c};
Graph.prototype.formatDate=function(b,c,e){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",
-shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var f=this.dateFormatCache,n=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,l=/[^-+\dA-Z]/g,t=function(b,d){b=String(b);for(d=d||2;b.length<d;)b="0"+b;return b};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(b)||
-/\d/.test(b)||(c=b,b=void 0);b=b?new Date(b):new Date;if(isNaN(b))throw SyntaxError("invalid date");c=String(f.masks[c]||c||f.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),e=!0);var d=e?"getUTC":"get",k=b[d+"Date"](),g=b[d+"Day"](),q=b[d+"Month"](),m=b[d+"FullYear"](),p=b[d+"Hours"](),v=b[d+"Minutes"](),u=b[d+"Seconds"](),d=b[d+"Milliseconds"](),x=e?0:b.getTimezoneOffset(),y={d:k,dd:t(k),ddd:f.i18n.dayNames[g],dddd:f.i18n.dayNames[g+7],m:q+1,mm:t(q+1),mmm:f.i18n.monthNames[q],mmmm:f.i18n.monthNames[q+
-12],yy:String(m).slice(2),yyyy:m,h:p%12||12,hh:t(p%12||12),H:p,HH:t(p),M:v,MM:t(v),s:u,ss:t(u),l:t(d,3),L:t(99<d?Math.round(d/10):d),t:12>p?"a":"p",tt:12>p?"am":"pm",T:12>p?"A":"P",TT:12>p?"AM":"PM",Z:e?"UTC":(String(b).match(n)||[""]).pop().replace(l,""),o:(0<x?"-":"+")+t(100*Math.floor(Math.abs(x)/60)+Math.abs(x)%60,4),S:["th","st","nd","rd"][3<k%10?0:(10!=k%100-k%10)*k%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(b){return b in y?y[b]:b.slice(1,
+shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var f=this.dateFormatCache,n=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,l=/[^-+\dA-Z]/g,q=function(b,d){b=String(b);for(d=d||2;b.length<d;)b="0"+b;return b};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(b)||
+/\d/.test(b)||(c=b,b=void 0);b=b?new Date(b):new Date;if(isNaN(b))throw SyntaxError("invalid date");c=String(f.masks[c]||c||f.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),e=!0);var d=e?"getUTC":"get",k=b[d+"Date"](),g=b[d+"Day"](),t=b[d+"Month"](),m=b[d+"FullYear"](),p=b[d+"Hours"](),v=b[d+"Minutes"](),u=b[d+"Seconds"](),d=b[d+"Milliseconds"](),x=e?0:b.getTimezoneOffset(),y={d:k,dd:q(k),ddd:f.i18n.dayNames[g],dddd:f.i18n.dayNames[g+7],m:t+1,mm:q(t+1),mmm:f.i18n.monthNames[t],mmmm:f.i18n.monthNames[t+
+12],yy:String(m).slice(2),yyyy:m,h:p%12||12,hh:q(p%12||12),H:p,HH:q(p),M:v,MM:q(v),s:u,ss:q(u),l:q(d,3),L:q(99<d?Math.round(d/10):d),t:12>p?"a":"p",tt:12>p?"am":"pm",T:12>p?"A":"P",TT:12>p?"AM":"PM",Z:e?"UTC":(String(b).match(n)||[""]).pop().replace(l,""),o:(0<x?"-":"+")+q(100*Math.floor(Math.abs(x)/60)+Math.abs(x)%60,4),S:["th","st","nd","rd"][3<k%10?0:(10!=k%100-k%10)*k%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(b){return b in y?y[b]:b.slice(1,
b.length-1)})};Graph.prototype.getLayerForCells=function(b){var c=null;if(0<b.length){for(c=b[0];!this.model.isLayer(c);)c=this.model.getParent(c);for(var e=1;e<b.length;e++)if(!this.model.isAncestor(c,b[e])){c=null;break}}return c};
-Graph.prototype.createLayersDialog=function(b,c){var e=document.createElement("div");e.style.position="absolute";for(var f=this.getModel(),n=f.getChildCount(f.root),l=0;l<n;l++)mxUtils.bind(this,function(l){function d(){f.isVisible(l)?(q.setAttribute("src",Editor.visibleImage),mxUtils.setOpacity(g,75)):(q.setAttribute("src",Editor.hiddenImage),mxUtils.setOpacity(g,25))}var k=this.convertValueToString(l)||mxResources.get("background")||"Background",g=document.createElement("div");g.style.overflow=
-"hidden";g.style.textOverflow="ellipsis";g.style.padding="2px";g.style.whiteSpace="nowrap";g.style.cursor="pointer";g.setAttribute("title",mxResources.get(f.isVisible(l)?"hideIt":"show",[k]));var q=document.createElement("img");q.setAttribute("draggable","false");q.setAttribute("align","absmiddle");q.setAttribute("border","0");q.style.position="relative";q.style.width="16px";q.style.padding="0px 6px 0 4px";c&&(q.style.filter="invert(100%)",q.style.top="-2px");g.appendChild(q);mxUtils.write(g,k);e.appendChild(g);
+Graph.prototype.createLayersDialog=function(b,c){var e=document.createElement("div");e.style.position="absolute";for(var f=this.getModel(),n=f.getChildCount(f.root),l=0;l<n;l++)mxUtils.bind(this,function(l){function d(){f.isVisible(l)?(t.setAttribute("src",Editor.visibleImage),mxUtils.setOpacity(g,75)):(t.setAttribute("src",Editor.hiddenImage),mxUtils.setOpacity(g,25))}var k=this.convertValueToString(l)||mxResources.get("background")||"Background",g=document.createElement("div");g.style.overflow=
+"hidden";g.style.textOverflow="ellipsis";g.style.padding="2px";g.style.whiteSpace="nowrap";g.style.cursor="pointer";g.setAttribute("title",mxResources.get(f.isVisible(l)?"hideIt":"show",[k]));var t=document.createElement("img");t.setAttribute("draggable","false");t.setAttribute("align","absmiddle");t.setAttribute("border","0");t.style.position="relative";t.style.width="16px";t.style.padding="0px 6px 0 4px";c&&(t.style.filter="invert(100%)",t.style.top="-2px");g.appendChild(t);mxUtils.write(g,k);e.appendChild(g);
mxEvent.addListener(g,"click",function(){f.setVisible(l,!f.isVisible(l));d();null!=b&&b(l)});d()})(f.getChildAt(f.root,l));return e};
-Graph.prototype.replacePlaceholders=function(b,c,e,f){f=[];if(null!=c){for(var n=0;match=this.placeholderPattern.exec(c);){var l=match[0];if(2<l.length&&"%label%"!=l&&"%tooltip%"!=l){var t=null;if(match.index>n&&"%"==c.charAt(match.index-1))t=l.substring(1);else{var d=l.substring(1,l.length-1);if("id"==d)t=b.id;else if(0>d.indexOf("{"))for(var k=b;null==t&&null!=k;)null!=k.value&&"object"==typeof k.value&&(Graph.translateDiagram&&null!=Graph.diagramLanguage&&(t=k.getAttribute(d+"_"+Graph.diagramLanguage)),
-null==t&&(t=k.hasAttribute(d)?null!=k.getAttribute(d)?k.getAttribute(d):"":null)),k=this.model.getParent(k);null==t&&(t=this.getGlobalVariable(d));null==t&&null!=e&&(t=e[d])}f.push(c.substring(n,match.index)+(null!=t?t:l));n=match.index+l.length}}f.push(c.substring(n))}return f.join("")};Graph.prototype.restoreSelection=function(b){if(null!=b&&0<b.length){for(var c=[],e=0;e<b.length;e++){var f=this.model.getCell(b[e].id);null!=f&&c.push(f)}this.setSelectionCells(c)}else this.clearSelection()};
+Graph.prototype.replacePlaceholders=function(b,c,e,f){f=[];if(null!=c){for(var n=0;match=this.placeholderPattern.exec(c);){var l=match[0];if(2<l.length&&"%label%"!=l&&"%tooltip%"!=l){var q=null;if(match.index>n&&"%"==c.charAt(match.index-1))q=l.substring(1);else{var d=l.substring(1,l.length-1);if("id"==d)q=b.id;else if(0>d.indexOf("{"))for(var k=b;null==q&&null!=k;)null!=k.value&&"object"==typeof k.value&&(Graph.translateDiagram&&null!=Graph.diagramLanguage&&(q=k.getAttribute(d+"_"+Graph.diagramLanguage)),
+null==q&&(q=k.hasAttribute(d)?null!=k.getAttribute(d)?k.getAttribute(d):"":null)),k=this.model.getParent(k);null==q&&(q=this.getGlobalVariable(d));null==q&&null!=e&&(q=e[d])}f.push(c.substring(n,match.index)+(null!=q?q:l));n=match.index+l.length}}f.push(c.substring(n))}return f.join("")};Graph.prototype.restoreSelection=function(b){if(null!=b&&0<b.length){for(var c=[],e=0;e<b.length;e++){var f=this.model.getCell(b[e].id);null!=f&&c.push(f)}this.setSelectionCells(c)}else this.clearSelection()};
Graph.prototype.selectCellForEvent=function(b,c){mxEvent.isShiftDown(c)&&!this.isSelectionEmpty()&&this.selectTableRange(this.getSelectionCell(),b)||mxGraph.prototype.selectCellForEvent.apply(this,arguments)};
-Graph.prototype.selectTableRange=function(b,c){var e=!1;if(this.isTableCell(b)&&this.isTableCell(c)){var f=this.model.getParent(b),n=this.model.getParent(f),l=this.model.getParent(c);if(n==this.model.getParent(l)){for(var t=f.getIndex(b),d=n.getIndex(f),k=l.getIndex(c),g=n.getIndex(l),l=Math.max(d,g),f=Math.min(t,k),t=Math.max(t,k),k=[],d=Math.min(d,g);d<=l;d++)for(var g=this.model.getChildAt(n,d),q=f;q<=t;q++)k.push(this.model.getChildAt(g,q));0<k.length&&(1<k.length||1<this.getSelectionCount()||
+Graph.prototype.selectTableRange=function(b,c){var e=!1;if(this.isTableCell(b)&&this.isTableCell(c)){var f=this.model.getParent(b),n=this.model.getParent(f),l=this.model.getParent(c);if(n==this.model.getParent(l)){for(var q=f.getIndex(b),d=n.getIndex(f),k=l.getIndex(c),g=n.getIndex(l),l=Math.max(d,g),f=Math.min(q,k),q=Math.max(q,k),k=[],d=Math.min(d,g);d<=l;d++)for(var g=this.model.getChildAt(n,d),t=f;t<=q;t++)k.push(this.model.getChildAt(g,t));0<k.length&&(1<k.length||1<this.getSelectionCount()||
!this.isCellSelected(k[0]))&&(this.setSelectionCells(k),e=!0)}}return e};
Graph.prototype.snapCellsToGrid=function(b,c){this.getModel().beginUpdate();try{for(var e=0;e<b.length;e++){var f=b[e],n=this.getCellGeometry(f);if(null!=n){n=n.clone();if(this.getModel().isVertex(f))n.x=Math.round(n.x/c)*c,n.y=Math.round(n.y/c)*c,n.width=Math.round(n.width/c)*c,n.height=Math.round(n.height/c)*c;else if(this.getModel().isEdge(f)&&null!=n.points)for(var l=0;l<n.points.length;l++)n.points[l].x=Math.round(n.points[l].x/c)*c,n.points[l].y=Math.round(n.points[l].y/c)*c;this.getModel().setGeometry(f,
n)}}}finally{this.getModel().endUpdate()}};Graph.prototype.selectCellsForConnectVertex=function(b,c,e){2==b.length&&this.model.isVertex(b[1])?(this.setSelectionCell(b[1]),this.scrollCellToVisible(b[1]),null!=e&&(mxEvent.isTouchEvent(c)?e.update(e.getState(this.view.getState(b[1]))):e.reset())):this.setSelectionCells(b)};
Graph.prototype.isCloneConnectSource=function(b){var c=null;null!=this.layoutManager&&(c=this.layoutManager.getLayout(this.model.getParent(b)));return this.isTableRow(b)||this.isTableCell(b)||null!=c&&c.constructor==mxStackLayout};
-Graph.prototype.connectVertex=function(b,c,e,f,n,l,t,d){l=l?l:!1;if(b.geometry.relative&&this.model.isEdge(b.parent))return[];for(;b.geometry.relative&&this.model.isVertex(b.parent);)b=b.parent;var k=this.isCloneConnectSource(b),g=k?b:this.getCompositeParent(b),q=b.geometry.relative&&null!=b.parent.geometry?new mxPoint(b.parent.geometry.width*b.geometry.x,b.parent.geometry.height*b.geometry.y):new mxPoint(g.geometry.x,g.geometry.y);c==mxConstants.DIRECTION_NORTH?(q.x+=g.geometry.width/2,q.y-=e):c==
-mxConstants.DIRECTION_SOUTH?(q.x+=g.geometry.width/2,q.y+=g.geometry.height+e):(q.x=c==mxConstants.DIRECTION_WEST?q.x-e:q.x+(g.geometry.width+e),q.y+=g.geometry.height/2);var m=this.view.getState(this.model.getParent(b));e=this.view.scale;var p=this.view.translate,g=p.x*e,p=p.y*e;null!=m&&this.model.isVertex(m.cell)&&(g=m.x,p=m.y);this.model.isVertex(b.parent)&&b.geometry.relative&&(q.x+=b.parent.geometry.x,q.y+=b.parent.geometry.y);l=l?null:(new mxRectangle(g+q.x*e,p+q.y*e)).grow(40*e);l=null!=l?
+Graph.prototype.connectVertex=function(b,c,e,f,n,l,q,d){l=l?l:!1;if(b.geometry.relative&&this.model.isEdge(b.parent))return[];for(;b.geometry.relative&&this.model.isVertex(b.parent);)b=b.parent;var k=this.isCloneConnectSource(b),g=k?b:this.getCompositeParent(b),t=b.geometry.relative&&null!=b.parent.geometry?new mxPoint(b.parent.geometry.width*b.geometry.x,b.parent.geometry.height*b.geometry.y):new mxPoint(g.geometry.x,g.geometry.y);c==mxConstants.DIRECTION_NORTH?(t.x+=g.geometry.width/2,t.y-=e):c==
+mxConstants.DIRECTION_SOUTH?(t.x+=g.geometry.width/2,t.y+=g.geometry.height+e):(t.x=c==mxConstants.DIRECTION_WEST?t.x-e:t.x+(g.geometry.width+e),t.y+=g.geometry.height/2);var m=this.view.getState(this.model.getParent(b));e=this.view.scale;var p=this.view.translate,g=p.x*e,p=p.y*e;null!=m&&this.model.isVertex(m.cell)&&(g=m.x,p=m.y);this.model.isVertex(b.parent)&&b.geometry.relative&&(t.x+=b.parent.geometry.x,t.y+=b.parent.geometry.y);l=l?null:(new mxRectangle(g+t.x*e,p+t.y*e)).grow(40*e);l=null!=l?
this.getCells(0,0,0,0,null,null,l,null,!0):null;var m=this.view.getState(b),v=null,u=null;if(null!=l){l=l.reverse();for(var x=0;x<l.length;x++)if(!this.isCellLocked(l[x])&&!this.model.isEdge(l[x])&&l[x]!=b)if(!this.model.isAncestor(b,l[x])&&this.isContainer(l[x])&&(null==v||l[x]==this.model.getParent(b)))v=l[x];else if(null==u&&this.isCellConnectable(l[x])&&!this.model.isAncestor(l[x],b)&&!this.isSwimlane(l[x])){var y=this.view.getState(l[x]);null==m||null==y||mxUtils.intersects(m,y)||(u=l[x])}}var G=
-!mxEvent.isShiftDown(f)||mxEvent.isControlDown(f)||n;G&&("1"!=urlParams.sketch||n)&&(c==mxConstants.DIRECTION_NORTH?q.y-=b.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?q.y+=b.geometry.height/2:q.x=c==mxConstants.DIRECTION_WEST?q.x-b.geometry.width/2:q.x+b.geometry.width/2);var H=[],D=u,u=v;n=mxUtils.bind(this,function(g){if(null==t||null!=g||null==u&&k){this.model.beginUpdate();try{if(null==D&&G){var e=this.getAbsoluteParent(null!=g?g:b),e=k?b:this.getCompositeParent(e);D=null!=g?g:this.duplicateCells([e],
-!1)[0];null!=g&&this.addCells([D],this.model.getParent(b),null,null,null,!0);var m=this.getCellGeometry(D);null!=m&&(null!=g&&"1"==urlParams.sketch&&(c==mxConstants.DIRECTION_NORTH?q.y-=m.height/2:c==mxConstants.DIRECTION_SOUTH?q.y+=m.height/2:q.x=c==mxConstants.DIRECTION_WEST?q.x-m.width/2:q.x+m.width/2),m.x=q.x-m.width/2,m.y=q.y-m.height/2);null!=v?(this.addCells([D],v,null,null,null,!0),u=null):G&&!k&&this.addCells([D],this.getDefaultParent(),null,null,null,!0)}var l=mxEvent.isControlDown(f)&&
+!mxEvent.isShiftDown(f)||mxEvent.isControlDown(f)||n;G&&("1"!=urlParams.sketch||n)&&(c==mxConstants.DIRECTION_NORTH?t.y-=b.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?t.y+=b.geometry.height/2:t.x=c==mxConstants.DIRECTION_WEST?t.x-b.geometry.width/2:t.x+b.geometry.width/2);var H=[],D=u,u=v;n=mxUtils.bind(this,function(g){if(null==q||null!=g||null==u&&k){this.model.beginUpdate();try{if(null==D&&G){var e=this.getAbsoluteParent(null!=g?g:b),e=k?b:this.getCompositeParent(e);D=null!=g?g:this.duplicateCells([e],
+!1)[0];null!=g&&this.addCells([D],this.model.getParent(b),null,null,null,!0);var m=this.getCellGeometry(D);null!=m&&(null!=g&&"1"==urlParams.sketch&&(c==mxConstants.DIRECTION_NORTH?t.y-=m.height/2:c==mxConstants.DIRECTION_SOUTH?t.y+=m.height/2:t.x=c==mxConstants.DIRECTION_WEST?t.x-m.width/2:t.x+m.width/2),m.x=t.x-m.width/2,m.y=t.y-m.height/2);null!=v?(this.addCells([D],v,null,null,null,!0),u=null):G&&!k&&this.addCells([D],this.getDefaultParent(),null,null,null,!0)}var l=mxEvent.isControlDown(f)&&
mxEvent.isShiftDown(f)&&G||null==u&&k?null:this.insertEdge(this.model.getParent(b),null,"",b,D,this.createCurrentEdgeStyle());if(null!=l&&this.connectionHandler.insertBeforeSource){var p=null;for(g=b;null!=g.parent&&null!=g.geometry&&g.geometry.relative&&g.parent!=l.parent;)g=this.model.getParent(g);null!=g&&null!=g.parent&&g.parent==l.parent&&(p=g.parent.getIndex(g),this.model.add(g.parent,l,p))}null==u&&null!=D&&null!=b.parent&&k&&c==mxConstants.DIRECTION_WEST&&(p=b.parent.getIndex(b),this.model.add(b.parent,
-D,p));null!=l&&H.push(l);null==u&&null!=D&&H.push(D);null==D&&null!=l&&l.geometry.setTerminalPoint(q,!1);null!=l&&this.fireEvent(new mxEventObject("cellsInserted","cells",[l]))}finally{this.model.endUpdate()}}if(null!=d)d(H);else return H});if(null==t||null!=D||!G||null==u&&k)return n(D);t(g+q.x*e,p+q.y*e,n)};
+D,p));null!=l&&H.push(l);null==u&&null!=D&&H.push(D);null==D&&null!=l&&l.geometry.setTerminalPoint(t,!1);null!=l&&this.fireEvent(new mxEventObject("cellsInserted","cells",[l]))}finally{this.model.endUpdate()}}if(null!=d)d(H);else return H});if(null==q||null!=D||!G||null==u&&k)return n(D);q(g+t.x*e,p+t.y*e,n)};
Graph.prototype.getIndexableText=function(){var b=document.createElement("div"),c=[],e,f;for(f in this.model.cells)if(e=this.model.cells[f],this.model.isVertex(e)||this.model.isEdge(e))this.isHtmlLabel(e)?(b.innerHTML=this.sanitizeHtml(this.getLabel(e)),e=mxUtils.extractTextWithWhitespace([b])):e=this.getLabel(e),e=mxUtils.trim(e.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<e.length&&c.push(e);return c.join(" ")};
Graph.prototype.convertValueToString=function(b){var c=this.model.getValue(b);if(null!=c&&"object"==typeof c){var e=null;if(this.isReplacePlaceholders(b)&&null!=b.getAttribute("placeholder"))for(var c=b.getAttribute("placeholder"),f=b;null==e&&null!=f;)null!=f.value&&"object"==typeof f.value&&(e=f.hasAttribute(c)?null!=f.getAttribute(c)?f.getAttribute(c):"":null),f=this.model.getParent(f);else e=null,Graph.translateDiagram&&null!=Graph.diagramLanguage&&(e=c.getAttribute("label_"+Graph.diagramLanguage)),
null==e&&(e=c.getAttribute("label")||"");return e||""}return mxGraph.prototype.convertValueToString.apply(this,arguments)};Graph.prototype.getLinksForState=function(b){return null!=b&&null!=b.text&&null!=b.text.node?b.text.node.getElementsByTagName("a"):null};Graph.prototype.getLinkForCell=function(b){return null!=b.value&&"object"==typeof b.value?(b=b.value.getAttribute("link"),null!=b&&"javascript:"===b.toLowerCase().substring(0,11)&&(b=b.substring(11)),b):null};
@@ -2467,10 +2467,10 @@ Graph.prototype.updateHorizontalStyle=function(b,c){if(null!=b&&null!=c&&null!=t
Graph.prototype.replaceDefaultColors=function(b,c){if(null!=c){var e=mxUtils.hex2rgb(this.shapeBackgroundColor),f=mxUtils.hex2rgb(this.shapeForegroundColor);this.replaceDefaultColor(c,mxConstants.STYLE_FONTCOLOR,f);this.replaceDefaultColor(c,mxConstants.STYLE_FILLCOLOR,e);this.replaceDefaultColor(c,mxConstants.STYLE_STROKECOLOR,f);this.replaceDefaultColor(c,mxConstants.STYLE_IMAGE_BORDER,f);this.replaceDefaultColor(c,mxConstants.STYLE_IMAGE_BACKGROUND,e);this.replaceDefaultColor(c,mxConstants.STYLE_LABEL_BORDERCOLOR,
f);this.replaceDefaultColor(c,mxConstants.STYLE_SWIMLANE_FILLCOLOR,e);this.replaceDefaultColor(c,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,e)}return c};Graph.prototype.replaceDefaultColor=function(b,c,e){null!=b&&"default"==b[c]&&null!=e&&(b[c]=e)};
Graph.prototype.updateAlternateBounds=function(b,c,e){if(null!=b&&null!=c&&null!=this.layoutManager&&null!=c.alternateBounds){var f=this.layoutManager.getLayout(this.model.getParent(b));null!=f&&f.constructor==mxStackLayout&&(f.horizontal?c.alternateBounds.height=0:c.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(b,c){return mxEvent.isShiftDown(b)||"1"==mxUtils.getValue(c.style,"moveCells","0")};
-Graph.prototype.foldCells=function(b,c,e,f,n){c=null!=c?c:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),b));if(null!=e){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var l=0;l<e.length;l++){var t=this.view.getState(e[l]),d=this.getCellGeometry(e[l]);if(null!=t&&null!=d){var k=Math.round(d.width-t.width/this.view.scale),g=Math.round(d.height-t.height/this.view.scale);if(0!=g||0!=k){var q=this.model.getParent(e[l]),m=this.layoutManager.getLayout(q);
-null==m?null!=n&&this.isMoveCellsEvent(n,t)&&this.moveSiblings(t,q,k,g):null!=n&&mxEvent.isAltDown(n)||m.constructor!=mxStackLayout||m.resizeLast||this.resizeParentStacks(q,m,k,g)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
-Graph.prototype.moveSiblings=function(b,c,e,f){this.model.beginUpdate();try{var n=this.getCellsBeyond(b.x,b.y,c,!0,!0);for(c=0;c<n.length;c++)if(n[c]!=b.cell){var l=this.view.getState(n[c]),t=this.getCellGeometry(n[c]);null!=l&&null!=t&&(t=t.clone(),t.translate(Math.round(e*Math.max(0,Math.min(1,(l.x-b.x)/b.width))),Math.round(f*Math.max(0,Math.min(1,(l.y-b.y)/b.height)))),this.model.setGeometry(n[c],t))}}finally{this.model.endUpdate()}};
-Graph.prototype.resizeParentStacks=function(b,c,e,f){if(null!=this.layoutManager&&null!=c&&c.constructor==mxStackLayout&&!c.resizeLast){this.model.beginUpdate();try{for(var n=c.horizontal;null!=b&&null!=c&&c.constructor==mxStackLayout&&c.horizontal==n&&!c.resizeLast;){var l=this.getCellGeometry(b),t=this.view.getState(b);null!=t&&null!=l&&(l=l.clone(),c.horizontal?l.width+=e+Math.min(0,t.width/this.view.scale-l.width):l.height+=f+Math.min(0,t.height/this.view.scale-l.height),this.model.setGeometry(b,
+Graph.prototype.foldCells=function(b,c,e,f,n){c=null!=c?c:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),b));if(null!=e){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var l=0;l<e.length;l++){var q=this.view.getState(e[l]),d=this.getCellGeometry(e[l]);if(null!=q&&null!=d){var k=Math.round(d.width-q.width/this.view.scale),g=Math.round(d.height-q.height/this.view.scale);if(0!=g||0!=k){var t=this.model.getParent(e[l]),m=this.layoutManager.getLayout(t);
+null==m?null!=n&&this.isMoveCellsEvent(n,q)&&this.moveSiblings(q,t,k,g):null!=n&&mxEvent.isAltDown(n)||m.constructor!=mxStackLayout||m.resizeLast||this.resizeParentStacks(t,m,k,g)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
+Graph.prototype.moveSiblings=function(b,c,e,f){this.model.beginUpdate();try{var n=this.getCellsBeyond(b.x,b.y,c,!0,!0);for(c=0;c<n.length;c++)if(n[c]!=b.cell){var l=this.view.getState(n[c]),q=this.getCellGeometry(n[c]);null!=l&&null!=q&&(q=q.clone(),q.translate(Math.round(e*Math.max(0,Math.min(1,(l.x-b.x)/b.width))),Math.round(f*Math.max(0,Math.min(1,(l.y-b.y)/b.height)))),this.model.setGeometry(n[c],q))}}finally{this.model.endUpdate()}};
+Graph.prototype.resizeParentStacks=function(b,c,e,f){if(null!=this.layoutManager&&null!=c&&c.constructor==mxStackLayout&&!c.resizeLast){this.model.beginUpdate();try{for(var n=c.horizontal;null!=b&&null!=c&&c.constructor==mxStackLayout&&c.horizontal==n&&!c.resizeLast;){var l=this.getCellGeometry(b),q=this.view.getState(b);null!=q&&null!=l&&(l=l.clone(),c.horizontal?l.width+=e+Math.min(0,q.width/this.view.scale-l.width):l.height+=f+Math.min(0,q.height/this.view.scale-l.height),this.model.setGeometry(b,
l));b=this.model.getParent(b);c=this.layoutManager.getLayout(b)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(b){var c=this.getCurrentCellStyle(b);return this.isSwimlane(b)?"0"!=c.container:"1"==c.container};Graph.prototype.isCellConnectable=function(b){var c=this.getCurrentCellStyle(b);return null!=c.connectable?"0"!=c.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)};
Graph.prototype.isLabelMovable=function(b){var c=this.getCurrentCellStyle(b);return null!=c.movableLabel?"0"!=c.movableLabel:mxGraph.prototype.isLabelMovable.apply(this,arguments)};Graph.prototype.selectAll=function(b){b=b||this.getDefaultParent();this.isCellLocked(b)||mxGraph.prototype.selectAll.apply(this,arguments)};Graph.prototype.selectCells=function(b,c,e){e=e||this.getDefaultParent();this.isCellLocked(e)||mxGraph.prototype.selectCells.apply(this,arguments)};
Graph.prototype.getSwimlaneAt=function(b,c,e){var f=mxGraph.prototype.getSwimlaneAt.apply(this,arguments);this.isCellLocked(f)&&(f=null);return f};Graph.prototype.isCellFoldable=function(b){var c=this.getCurrentCellStyle(b);return this.foldingEnabled&&"0"!=mxUtils.getValue(c,mxConstants.STYLE_RESIZABLE,"1")&&("1"==c.treeFolding||!this.isCellLocked(b)&&(this.isContainer(b)&&"0"!=c.collapsible||!this.isContainer(b)&&"1"==c.collapsible))};
@@ -2507,91 +2507,91 @@ HoverIcons.prototype.repaint=function(){this.bbox=null;if(null!=this.currentStat
var c=this.graph.selectionCellsHandler.getHandler(this.currentState.cell);this.graph.isTableRow(this.currentState.cell)&&(c=this.graph.selectionCellsHandler.getHandler(this.graph.model.getParent(this.currentState.cell)));var e=null;null!=c&&(b.x-=c.horizontalOffset/2,b.y-=c.verticalOffset/2,b.width+=c.horizontalOffset,b.height+=c.verticalOffset,null!=c.rotationShape&&null!=c.rotationShape.node&&"hidden"!=c.rotationShape.node.style.visibility&&"none"!=c.rotationShape.node.style.display&&null!=c.rotationShape.boundingBox&&
(e=c.rotationShape.boundingBox));c=mxUtils.bind(this,function(b,c,g){if(null!=e){var d=new mxRectangle(c,g,b.clientWidth,b.clientHeight);mxUtils.intersects(d,e)&&(b==this.arrowUp?g-=d.y+d.height-e.y:b==this.arrowRight?c+=e.x+e.width-d.x:b==this.arrowDown?g+=e.y+e.height-d.y:b==this.arrowLeft&&(c-=d.x+d.width-e.x))}b.style.left=c+"px";b.style.top=g+"px";mxUtils.setOpacity(b,this.inactiveOpacity)});c(this.arrowUp,Math.round(this.currentState.getCenterX()-this.triangleUp.width/2-this.tolerance),Math.round(b.y-
this.triangleUp.height-this.tolerance));c(this.arrowRight,Math.round(b.x+b.width-this.tolerance),Math.round(this.currentState.getCenterY()-this.triangleRight.height/2-this.tolerance));c(this.arrowDown,parseInt(this.arrowUp.style.left),Math.round(b.y+b.height-this.tolerance));c(this.arrowLeft,Math.round(b.x-this.triangleLeft.width-this.tolerance),parseInt(this.arrowRight.style.top));if(this.checkCollisions){var c=this.graph.getCellAt(b.x+b.width+this.triangleRight.width/2,this.currentState.getCenterY()),
-f=this.graph.getCellAt(b.x-this.triangleLeft.width/2,this.currentState.getCenterY()),n=this.graph.getCellAt(this.currentState.getCenterX(),b.y-this.triangleUp.height/2),b=this.graph.getCellAt(this.currentState.getCenterX(),b.y+b.height+this.triangleDown.height/2);null!=c&&c==f&&f==n&&n==b&&(b=n=f=c=null);var l=this.graph.getCellGeometry(this.currentState.cell),t=mxUtils.bind(this,function(b,c){var d=this.graph.model.isVertex(b)&&this.graph.getCellGeometry(b);null==b||this.graph.model.isAncestor(b,
-this.currentState.cell)||this.graph.isSwimlane(b)||!(null==d||null==l||d.height<3*l.height&&d.width<3*l.width)?c.style.visibility="visible":c.style.visibility="hidden"});t(c,this.arrowRight);t(f,this.arrowLeft);t(n,this.arrowUp);t(b,this.arrowDown)}else this.arrowLeft.style.visibility="visible",this.arrowRight.style.visibility="visible",this.arrowUp.style.visibility="visible",this.arrowDown.style.visibility="visible";this.graph.tooltipHandler.isEnabled()?(this.arrowLeft.setAttribute("title",mxResources.get("plusTooltip")),
+f=this.graph.getCellAt(b.x-this.triangleLeft.width/2,this.currentState.getCenterY()),n=this.graph.getCellAt(this.currentState.getCenterX(),b.y-this.triangleUp.height/2),b=this.graph.getCellAt(this.currentState.getCenterX(),b.y+b.height+this.triangleDown.height/2);null!=c&&c==f&&f==n&&n==b&&(b=n=f=c=null);var l=this.graph.getCellGeometry(this.currentState.cell),q=mxUtils.bind(this,function(b,c){var d=this.graph.model.isVertex(b)&&this.graph.getCellGeometry(b);null==b||this.graph.model.isAncestor(b,
+this.currentState.cell)||this.graph.isSwimlane(b)||!(null==d||null==l||d.height<3*l.height&&d.width<3*l.width)?c.style.visibility="visible":c.style.visibility="hidden"});q(c,this.arrowRight);q(f,this.arrowLeft);q(n,this.arrowUp);q(b,this.arrowDown)}else this.arrowLeft.style.visibility="visible",this.arrowRight.style.visibility="visible",this.arrowUp.style.visibility="visible",this.arrowDown.style.visibility="visible";this.graph.tooltipHandler.isEnabled()?(this.arrowLeft.setAttribute("title",mxResources.get("plusTooltip")),
this.arrowRight.setAttribute("title",mxResources.get("plusTooltip")),this.arrowUp.setAttribute("title",mxResources.get("plusTooltip")),this.arrowDown.setAttribute("title",mxResources.get("plusTooltip"))):(this.arrowLeft.removeAttribute("title"),this.arrowRight.removeAttribute("title"),this.arrowUp.removeAttribute("title"),this.arrowDown.removeAttribute("title"))}else this.reset();null!=this.currentState&&(this.bbox=this.computeBoundingBox(),null!=this.bbox&&this.bbox.grow(10))}};
HoverIcons.prototype.computeBoundingBox=function(){var b=this.graph.model.isEdge(this.currentState.cell)?null:mxRectangle.fromRectangle(this.currentState);this.visitNodes(function(c){null!=c.parentNode&&(c=new mxRectangle(c.offsetLeft,c.offsetTop,c.offsetWidth,c.offsetHeight),null==b?b=c:b.add(c))});return b};
HoverIcons.prototype.getState=function(b){if(null!=b)if(b=b.cell,this.graph.getModel().contains(b)){if(this.graph.getModel().isVertex(b)&&!this.graph.isCellConnectable(b)){var c=this.graph.getModel().getParent(b);this.graph.getModel().isVertex(c)&&this.graph.isCellConnectable(c)&&(b=c)}if(this.graph.isCellLocked(b)||this.graph.model.isEdge(b))b=null;b=this.graph.view.getState(b);null!=b&&null==b.style&&(b=null)}else b=null;return b};
HoverIcons.prototype.update=function(b,c,e){if(!this.graph.connectionArrowsEnabled||null!=b&&"0"==mxUtils.getValue(b.style,"allowArrows","1"))this.reset();else{null!=b&&null!=b.cell.geometry&&b.cell.geometry.relative&&this.graph.model.isEdge(b.cell.parent)&&(b=null);var f=null;this.prev!=b||this.isActive()?(this.startTime=(new Date).getTime(),this.prev=b,f=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=b&&(this.updateThread=window.setTimeout(mxUtils.bind(this,function(){this.isActive()||
this.graph.isMouseDown||this.graph.panningHandler.isActive()||(this.prev=b,this.update(b,c,e))}),this.updateDelay+10))):null!=this.startTime&&(f=(new Date).getTime()-this.startTime);this.setDisplay("");null!=this.currentState&&this.currentState!=b&&f<this.activationDelay&&null!=this.bbox&&!mxUtils.contains(this.bbox,c,e)?this.reset(!1):(null!=this.currentState||f>this.activationDelay)&&this.currentState!=b&&(f>this.updateDelay&&null!=b||null==this.bbox||null==c||null==e||!mxUtils.contains(this.bbox,
c,e))&&(null!=b&&this.graph.isEnabled()?(this.removeNodes(),this.setCurrentState(b),this.repaint(),this.graph.connectionHandler.constraintHandler.currentFocus!=b&&this.graph.connectionHandler.constraintHandler.reset()):this.reset())}};
-HoverIcons.prototype.setCurrentState=function(b){"eastwest"!=b.style.portConstraint&&(this.graph.container.appendChild(this.arrowUp),this.graph.container.appendChild(this.arrowDown));this.graph.container.appendChild(this.arrowRight);this.graph.container.appendChild(this.arrowLeft);this.currentState=b};Graph.prototype.createParent=function(b,c,e,f,n){b=this.cloneCell(b);for(var l=0;l<e;l++){var t=this.cloneCell(c),d=this.getCellGeometry(t);null!=d&&(d.x+=l*f,d.y+=l*n);b.insert(t)}return b};
-Graph.prototype.createTable=function(b,c,e,f,n,l,t,d,k){e=null!=e?e:60;f=null!=f?f:40;l=null!=l?l:30;d=null!=d?d:"shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;";k=null!=k?k:"shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;";return this.createParent(this.createVertex(null,
-null,null!=n?n:"",0,0,c*e,b*f+(null!=n?l:0),null!=t?t:"shape=table;startSize="+(null!=n?l:"0")+";container=1;collapsible=0;childLayout=tableLayout;"),this.createParent(this.createVertex(null,null,"",0,0,c*e,f,d),this.createVertex(null,null,"",0,0,e,f,k),c,e,0),b,0,f)};
-Graph.prototype.setTableValues=function(b,c,e){for(var f=this.model.getChildCells(b,!0),n=0;n<f.length;n++)if(null!=e&&(f[n].value=e[n]),null!=c)for(var l=this.model.getChildCells(f[n],!0),t=0;t<l.length;t++)null!=c[n][t]&&(l[t].value=c[n][t]);return b};
-Graph.prototype.createCrossFunctionalSwimlane=function(b,c,e,f,n,l,t,d,k){e=null!=e?e:120;f=null!=f?f:120;t=null!=t?t:"shape=tableRow;horizontal=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;dropTarget=0;fontStyle=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;startSize=40;collapsible=0;recursiveResize=0;expand=0;";d=null!=d?d:"swimlane;swimlaneHead=0;swimlaneBody=0;fontStyle=0;connectable=0;fillColor=none;startSize=40;collapsible=0;recursiveResize=0;expand=0;";
-k=null!=k?k:"swimlane;swimlaneHead=0;swimlaneBody=0;fontStyle=0;connectable=0;fillColor=none;startSize=0;collapsible=0;recursiveResize=0;expand=0;";n=this.createVertex(null,null,null!=n?n:"",0,0,c*e,b*f,null!=l?l:"shape=table;childLayout=tableLayout;"+(null==n?"startSize=0;fillColor=none;":"startSize=40;")+"collapsible=0;recursiveResize=0;expand=0;");l=mxUtils.getValue(this.getCellStyle(n),mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);n.geometry.width+=l;n.geometry.height+=l;t=this.createVertex(null,
-null,"",0,l,c*e+l,f,t);n.insert(this.createParent(t,this.createVertex(null,null,"",l,0,e,f,d),c,e,0));return 1<b?(t.geometry.y=f+l,this.createParent(n,this.createParent(t,this.createVertex(null,null,"",l,0,e,f,k),c,e,0),b-1,0,f)):n};
-Graph.prototype.visitTableCells=function(b,c){for(var e=null,f=this.model.getChildCells(b,!0),n=this.getActualStartSize(b,!0),l=0;l<f.length;l++){for(var t=this.getActualStartSize(f[l],!0),d=this.model.getChildCells(f[l],!0),k=this.getCellStyle(f[l],!0),g=null,q=[],m=0;m<d.length;m++){var p=this.getCellGeometry(d[m]),v={cell:d[m],rospan:1,colspan:1,row:l,col:m,geo:p},p=null!=p.alternateBounds?p.alternateBounds:p;v.point=new mxPoint(p.width+(null!=g?g.point.x:n.x+t.x),p.height+(null!=e&&null!=e[0]?
-e[0].point.y:n.y+t.y));v.actual=v;null!=e&&null!=e[m]&&1<e[m].rowspan?(v.rowspan=e[m].rowspan-1,v.colspan=e[m].colspan,v.actual=e[m].actual):null!=g&&1<g.colspan?(v.rowspan=g.rowspan,v.colspan=g.colspan-1,v.actual=g.actual):(g=this.getCurrentCellStyle(d[m],!0),null!=g&&(v.rowspan=parseInt(g.rowspan||1),v.colspan=parseInt(g.colspan||1)));g=1==mxUtils.getValue(k,mxConstants.STYLE_SWIMLANE_HEAD,1)&&mxUtils.getValue(k,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE;c(v,d.length,f.length,
-n.x+(g?t.x:0),n.y+(g?t.y:0));q.push(v);g=v}e=q}};Graph.prototype.getTableLines=function(b,c,e){var f=[],n=[];(c||e)&&this.visitTableCells(b,mxUtils.bind(this,function(b,t,d,k,g){c&&b.row<d-1&&(null==f[b.row]&&(f[b.row]=[new mxPoint(k,b.point.y)]),1<b.rowspan&&f[b.row].push(null),f[b.row].push(b.point));e&&b.col<t-1&&(null==n[b.col]&&(n[b.col]=[new mxPoint(b.point.x,g)]),1<b.colspan&&n[b.col].push(null),n[b.col].push(b.point))}));return f.concat(n)};
+HoverIcons.prototype.setCurrentState=function(b){"eastwest"!=b.style.portConstraint&&(this.graph.container.appendChild(this.arrowUp),this.graph.container.appendChild(this.arrowDown));this.graph.container.appendChild(this.arrowRight);this.graph.container.appendChild(this.arrowLeft);this.currentState=b};Graph.prototype.createParent=function(b,c,e,f,n){b=this.cloneCell(b);for(var l=0;l<e;l++){var q=this.cloneCell(c),d=this.getCellGeometry(q);null!=d&&(d.x+=l*f,d.y+=l*n);b.insert(q)}return b};
+Graph.prototype.createTable=function(b,c,e,f,n,l,q,d,k){e=null!=e?e:60;f=null!=f?f:40;l=null!=l?l:30;d=null!=d?d:"shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;";k=null!=k?k:"shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;";return this.createParent(this.createVertex(null,
+null,null!=n?n:"",0,0,c*e,b*f+(null!=n?l:0),null!=q?q:"shape=table;startSize="+(null!=n?l:"0")+";container=1;collapsible=0;childLayout=tableLayout;"),this.createParent(this.createVertex(null,null,"",0,0,c*e,f,d),this.createVertex(null,null,"",0,0,e,f,k),c,e,0),b,0,f)};
+Graph.prototype.setTableValues=function(b,c,e){for(var f=this.model.getChildCells(b,!0),n=0;n<f.length;n++)if(null!=e&&(f[n].value=e[n]),null!=c)for(var l=this.model.getChildCells(f[n],!0),q=0;q<l.length;q++)null!=c[n][q]&&(l[q].value=c[n][q]);return b};
+Graph.prototype.createCrossFunctionalSwimlane=function(b,c,e,f,n,l,q,d,k){e=null!=e?e:120;f=null!=f?f:120;q=null!=q?q:"shape=tableRow;horizontal=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;dropTarget=0;fontStyle=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;startSize=40;collapsible=0;recursiveResize=0;expand=0;";d=null!=d?d:"swimlane;swimlaneHead=0;swimlaneBody=0;fontStyle=0;connectable=0;fillColor=none;startSize=40;collapsible=0;recursiveResize=0;expand=0;";
+k=null!=k?k:"swimlane;swimlaneHead=0;swimlaneBody=0;fontStyle=0;connectable=0;fillColor=none;startSize=0;collapsible=0;recursiveResize=0;expand=0;";n=this.createVertex(null,null,null!=n?n:"",0,0,c*e,b*f,null!=l?l:"shape=table;childLayout=tableLayout;"+(null==n?"startSize=0;fillColor=none;":"startSize=40;")+"collapsible=0;recursiveResize=0;expand=0;");l=mxUtils.getValue(this.getCellStyle(n),mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);n.geometry.width+=l;n.geometry.height+=l;q=this.createVertex(null,
+null,"",0,l,c*e+l,f,q);n.insert(this.createParent(q,this.createVertex(null,null,"",l,0,e,f,d),c,e,0));return 1<b?(q.geometry.y=f+l,this.createParent(n,this.createParent(q,this.createVertex(null,null,"",l,0,e,f,k),c,e,0),b-1,0,f)):n};
+Graph.prototype.visitTableCells=function(b,c){for(var e=null,f=this.model.getChildCells(b,!0),n=this.getActualStartSize(b,!0),l=0;l<f.length;l++){for(var q=this.getActualStartSize(f[l],!0),d=this.model.getChildCells(f[l],!0),k=this.getCellStyle(f[l],!0),g=null,t=[],m=0;m<d.length;m++){var p=this.getCellGeometry(d[m]),v={cell:d[m],rospan:1,colspan:1,row:l,col:m,geo:p},p=null!=p.alternateBounds?p.alternateBounds:p;v.point=new mxPoint(p.width+(null!=g?g.point.x:n.x+q.x),p.height+(null!=e&&null!=e[0]?
+e[0].point.y:n.y+q.y));v.actual=v;null!=e&&null!=e[m]&&1<e[m].rowspan?(v.rowspan=e[m].rowspan-1,v.colspan=e[m].colspan,v.actual=e[m].actual):null!=g&&1<g.colspan?(v.rowspan=g.rowspan,v.colspan=g.colspan-1,v.actual=g.actual):(g=this.getCurrentCellStyle(d[m],!0),null!=g&&(v.rowspan=parseInt(g.rowspan||1),v.colspan=parseInt(g.colspan||1)));g=1==mxUtils.getValue(k,mxConstants.STYLE_SWIMLANE_HEAD,1)&&mxUtils.getValue(k,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE;c(v,d.length,f.length,
+n.x+(g?q.x:0),n.y+(g?q.y:0));t.push(v);g=v}e=t}};Graph.prototype.getTableLines=function(b,c,e){var f=[],n=[];(c||e)&&this.visitTableCells(b,mxUtils.bind(this,function(b,q,d,k,g){c&&b.row<d-1&&(null==f[b.row]&&(f[b.row]=[new mxPoint(k,b.point.y)]),1<b.rowspan&&f[b.row].push(null),f[b.row].push(b.point));e&&b.col<q-1&&(null==n[b.col]&&(n[b.col]=[new mxPoint(b.point.x,g)]),1<b.colspan&&n[b.col].push(null),n[b.col].push(b.point))}));return f.concat(n)};
Graph.prototype.isTableCell=function(b){return this.model.isVertex(b)&&this.isTableRow(this.model.getParent(b))};Graph.prototype.isTableRow=function(b){return this.model.isVertex(b)&&this.isTable(this.model.getParent(b))};Graph.prototype.isTable=function(b){b=this.getCellStyle(b);return null!=b&&"tableLayout"==b.childLayout};Graph.prototype.isStack=function(b){b=this.getCellStyle(b);return null!=b&&"stackLayout"==b.childLayout};
Graph.prototype.isStackChild=function(b){return this.model.isVertex(b)&&this.isStack(this.model.getParent(b))};
-Graph.prototype.setTableRowHeight=function(b,c,e){e=null!=e?e:!0;var f=this.getModel();f.beginUpdate();try{var n=this.getCellGeometry(b);if(null!=n){n=n.clone();n.height+=c;f.setGeometry(b,n);var l=f.getParent(b),t=f.getChildCells(l,!0);if(!e){var d=mxUtils.indexOf(t,b);if(d<t.length-1){var k=t[d+1],g=this.getCellGeometry(k);null!=g&&(g=g.clone(),g.y+=c,g.height-=c,f.setGeometry(k,g))}}var q=this.getCellGeometry(l);null!=q&&(e||(e=b==t[t.length-1]),e&&(q=q.clone(),q.height+=c,f.setGeometry(l,q)))}}finally{f.endUpdate()}};
-Graph.prototype.setTableColumnWidth=function(b,c,e){e=null!=e?e:!1;var f=this.getModel(),n=f.getParent(b),l=f.getParent(n),t=f.getChildCells(n,!0);b=mxUtils.indexOf(t,b);var d=b==t.length-1;f.beginUpdate();try{for(var k=f.getChildCells(l,!0),g=0;g<k.length;g++){var n=k[g],t=f.getChildCells(n,!0),q=t[b],m=this.getCellGeometry(q);null!=m&&(m=m.clone(),m.width+=c,null!=m.alternateBounds&&(m.alternateBounds.width+=c),f.setGeometry(q,m));b<t.length-1&&(q=t[b+1],m=this.getCellGeometry(q),null!=m&&(m=m.clone(),
-m.x+=c,e||(m.width-=c,null!=m.alternateBounds&&(m.alternateBounds.width-=c)),f.setGeometry(q,m)))}if(d||e){var p=this.getCellGeometry(l);null!=p&&(p=p.clone(),p.width+=c,f.setGeometry(l,p))}null!=this.layoutManager&&this.layoutManager.executeLayout(l)}finally{f.endUpdate()}};function TableLayout(b){mxGraphLayout.call(this,b)}TableLayout.prototype=new mxStackLayout;TableLayout.prototype.constructor=TableLayout;TableLayout.prototype.isHorizontal=function(){return!1};
+Graph.prototype.setTableRowHeight=function(b,c,e){e=null!=e?e:!0;var f=this.getModel();f.beginUpdate();try{var n=this.getCellGeometry(b);if(null!=n){n=n.clone();n.height+=c;f.setGeometry(b,n);var l=f.getParent(b),q=f.getChildCells(l,!0);if(!e){var d=mxUtils.indexOf(q,b);if(d<q.length-1){var k=q[d+1],g=this.getCellGeometry(k);null!=g&&(g=g.clone(),g.y+=c,g.height-=c,f.setGeometry(k,g))}}var t=this.getCellGeometry(l);null!=t&&(e||(e=b==q[q.length-1]),e&&(t=t.clone(),t.height+=c,f.setGeometry(l,t)))}}finally{f.endUpdate()}};
+Graph.prototype.setTableColumnWidth=function(b,c,e){e=null!=e?e:!1;var f=this.getModel(),n=f.getParent(b),l=f.getParent(n),q=f.getChildCells(n,!0);b=mxUtils.indexOf(q,b);var d=b==q.length-1;f.beginUpdate();try{for(var k=f.getChildCells(l,!0),g=0;g<k.length;g++){var n=k[g],q=f.getChildCells(n,!0),t=q[b],m=this.getCellGeometry(t);null!=m&&(m=m.clone(),m.width+=c,null!=m.alternateBounds&&(m.alternateBounds.width+=c),f.setGeometry(t,m));b<q.length-1&&(t=q[b+1],m=this.getCellGeometry(t),null!=m&&(m=m.clone(),
+m.x+=c,e||(m.width-=c,null!=m.alternateBounds&&(m.alternateBounds.width-=c)),f.setGeometry(t,m)))}if(d||e){var p=this.getCellGeometry(l);null!=p&&(p=p.clone(),p.width+=c,f.setGeometry(l,p))}null!=this.layoutManager&&this.layoutManager.executeLayout(l)}finally{f.endUpdate()}};function TableLayout(b){mxGraphLayout.call(this,b)}TableLayout.prototype=new mxStackLayout;TableLayout.prototype.constructor=TableLayout;TableLayout.prototype.isHorizontal=function(){return!1};
TableLayout.prototype.isVertexIgnored=function(b){return!this.graph.getModel().isVertex(b)||!this.graph.isCellVisible(b)};TableLayout.prototype.getSize=function(b,c){for(var e=0,f=0;f<b.length;f++)if(!this.isVertexIgnored(b[f])){var n=this.graph.getCellGeometry(b[f]);null!=n&&(e+=c?n.width:n.height)}return e};
-TableLayout.prototype.getRowLayout=function(b,c){for(var e=this.graph.model.getChildCells(b,!0),f=this.graph.getActualStartSize(b,!0),n=this.getSize(e,!0),l=c-f.x-f.width,t=[],f=f.x,d=0;d<e.length;d++){var k=this.graph.getCellGeometry(e[d]);null!=k&&(f+=(null!=k.alternateBounds?k.alternateBounds.width:k.width)*l/n,t.push(Math.round(f)))}return t};
-TableLayout.prototype.layoutRow=function(b,c,e,f){var n=this.graph.getModel(),l=n.getChildCells(b,!0);b=this.graph.getActualStartSize(b,!0);var t=b.x,d=0;null!=c&&(c=c.slice(),c.splice(0,0,b.x));for(var k=0;k<l.length;k++){var g=this.graph.getCellGeometry(l[k]);null!=g&&(g=g.clone(),g.y=b.y,g.height=e-b.y-b.height,null!=c?(g.x=c[k],g.width=c[k+1]-g.x,k==l.length-1&&k<c.length-2&&(g.width=f-g.x-b.x-b.width)):(g.x=t,t+=g.width,k==l.length-1?g.width=f-b.x-b.width-d:d+=g.width),g.alternateBounds=new mxRectangle(0,
+TableLayout.prototype.getRowLayout=function(b,c){for(var e=this.graph.model.getChildCells(b,!0),f=this.graph.getActualStartSize(b,!0),n=this.getSize(e,!0),l=c-f.x-f.width,q=[],f=f.x,d=0;d<e.length;d++){var k=this.graph.getCellGeometry(e[d]);null!=k&&(f+=(null!=k.alternateBounds?k.alternateBounds.width:k.width)*l/n,q.push(Math.round(f)))}return q};
+TableLayout.prototype.layoutRow=function(b,c,e,f){var n=this.graph.getModel(),l=n.getChildCells(b,!0);b=this.graph.getActualStartSize(b,!0);var q=b.x,d=0;null!=c&&(c=c.slice(),c.splice(0,0,b.x));for(var k=0;k<l.length;k++){var g=this.graph.getCellGeometry(l[k]);null!=g&&(g=g.clone(),g.y=b.y,g.height=e-b.y-b.height,null!=c?(g.x=c[k],g.width=c[k+1]-g.x,k==l.length-1&&k<c.length-2&&(g.width=f-g.x-b.x-b.width)):(g.x=q,q+=g.width,k==l.length-1?g.width=f-b.x-b.width-d:d+=g.width),g.alternateBounds=new mxRectangle(0,
0,g.width,g.height),n.setGeometry(l[k],g))}return d};
-TableLayout.prototype.execute=function(b){if(null!=b){var c=this.graph.getActualStartSize(b,!0),e=this.graph.getCellGeometry(b),f=this.graph.getCellStyle(b),n="1"==mxUtils.getValue(f,"resizeLastRow","0"),l="1"==mxUtils.getValue(f,"resizeLast","0"),f="1"==mxUtils.getValue(f,"fixedRows","0"),t=this.graph.getModel(),d=0;t.beginUpdate();try{for(var k=e.height-c.y-c.height,g=e.width-c.x-c.width,q=t.getChildCells(b,!0),m=0;m<q.length;m++)t.setVisible(q[m],!0);var p=this.getSize(q,!1);if(0<k&&0<g&&0<q.length&&
-0<p){if(n){var v=this.graph.getCellGeometry(q[q.length-1]);null!=v&&(v=v.clone(),v.height=k-p+v.height,t.setGeometry(q[q.length-1],v))}for(var u=l?null:this.getRowLayout(q[0],g),x=[],y=c.y,m=0;m<q.length;m++)v=this.graph.getCellGeometry(q[m]),null!=v&&(v=v.clone(),v.x=c.x,v.width=g,v.y=Math.round(y),y=n||f?y+v.height:y+v.height/p*k,v.height=Math.round(y)-v.y,t.setGeometry(q[m],v)),d=Math.max(d,this.layoutRow(q[m],u,v.height,g,x));f&&k<p&&(e=e.clone(),e.height=y+c.height,t.setGeometry(b,e));l&&g<d+
-Graph.minTableColumnWidth&&(e=e.clone(),e.width=d+c.width+c.x+Graph.minTableColumnWidth,t.setGeometry(b,e));this.graph.visitTableCells(b,mxUtils.bind(this,function(b){t.setVisible(b.cell,b.actual.cell==b.cell);if(b.actual.cell!=b.cell){if(b.actual.row==b.row){var d=null!=b.geo.alternateBounds?b.geo.alternateBounds:b.geo;b.actual.geo.width+=d.width}b.actual.col==b.col&&(d=null!=b.geo.alternateBounds?b.geo.alternateBounds:b.geo,b.actual.geo.height+=d.height)}}))}else for(m=0;m<q.length;m++)t.setVisible(q[m],
-!1)}finally{t.endUpdate()}}};
+TableLayout.prototype.execute=function(b){if(null!=b){var c=this.graph.getActualStartSize(b,!0),e=this.graph.getCellGeometry(b),f=this.graph.getCellStyle(b),n="1"==mxUtils.getValue(f,"resizeLastRow","0"),l="1"==mxUtils.getValue(f,"resizeLast","0"),f="1"==mxUtils.getValue(f,"fixedRows","0"),q=this.graph.getModel(),d=0;q.beginUpdate();try{for(var k=e.height-c.y-c.height,g=e.width-c.x-c.width,t=q.getChildCells(b,!0),m=0;m<t.length;m++)q.setVisible(t[m],!0);var p=this.getSize(t,!1);if(0<k&&0<g&&0<t.length&&
+0<p){if(n){var v=this.graph.getCellGeometry(t[t.length-1]);null!=v&&(v=v.clone(),v.height=k-p+v.height,q.setGeometry(t[t.length-1],v))}for(var u=l?null:this.getRowLayout(t[0],g),x=[],y=c.y,m=0;m<t.length;m++)v=this.graph.getCellGeometry(t[m]),null!=v&&(v=v.clone(),v.x=c.x,v.width=g,v.y=Math.round(y),y=n||f?y+v.height:y+v.height/p*k,v.height=Math.round(y)-v.y,q.setGeometry(t[m],v)),d=Math.max(d,this.layoutRow(t[m],u,v.height,g,x));f&&k<p&&(e=e.clone(),e.height=y+c.height,q.setGeometry(b,e));l&&g<d+
+Graph.minTableColumnWidth&&(e=e.clone(),e.width=d+c.width+c.x+Graph.minTableColumnWidth,q.setGeometry(b,e));this.graph.visitTableCells(b,mxUtils.bind(this,function(b){q.setVisible(b.cell,b.actual.cell==b.cell);if(b.actual.cell!=b.cell){if(b.actual.row==b.row){var d=null!=b.geo.alternateBounds?b.geo.alternateBounds:b.geo;b.actual.geo.width+=d.width}b.actual.col==b.col&&(d=null!=b.geo.alternateBounds?b.geo.alternateBounds:b.geo,b.actual.geo.height+=d.height)}}))}else for(m=0;m<t.length;m++)q.setVisible(t[m],
+!1)}finally{q.endUpdate()}}};
(function(){var b=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){b.apply(this,arguments);this.validEdges=[]};var c=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(b,d){d=null!=d?d:!0;var g=this.getState(b);null!=g&&d&&this.graph.model.isEdge(g.cell)&&null!=g.style&&1!=g.style[mxConstants.STYLE_CURVED]&&!g.invalid&&this.updateLineJumps(g)&&this.graph.cellRenderer.redraw(g,!1,this.isRendering());g=c.apply(this,
arguments);null!=g&&d&&this.graph.model.isEdge(g.cell)&&null!=g.style&&1!=g.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(g);return g};var e=mxShape.prototype.paint;mxShape.prototype.paint=function(){e.apply(this,arguments);if(null!=this.state&&null!=this.node&&this.state.view.graph.enableFlowAnimation&&this.state.view.graph.model.isEdge(this.state.cell)&&"1"==mxUtils.getValue(this.state.style,"flowAnimation","0")){var b=this.node.getElementsByTagName("path");if(1<b.length){"1"!=mxUtils.getValue(this.state.style,
mxConstants.STYLE_DASHED,"0")&&b[1].setAttribute("stroke-dasharray",8*this.state.view.scale);var d=this.state.view.graph.getFlowAnimationStyle();null!=d&&b[1].setAttribute("class",d.getAttribute("id"))}}};var f=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(b,d){return f.apply(this,arguments)||null!=b.routedPoints&&null!=d.routedPoints&&!mxUtils.equalPoints(d.routedPoints,b.routedPoints)};var n=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=
function(b){n.apply(this,arguments);this.graph.model.isEdge(b.cell)&&1!=b.style[mxConstants.STYLE_CURVED]&&this.updateLineJumps(b)};mxGraphView.prototype.updateLineJumps=function(b){var d=b.absolutePoints;if(Graph.lineJumpsEnabled){var c=null!=b.routedPoints,g=null;if(null!=d&&null!=this.validEdges&&"none"!==mxUtils.getValue(b.style,"jumpStyle","none")){for(var e=function(d,c,e){var k=new mxPoint(c,e);k.type=d;g.push(k);k=null!=b.routedPoints?b.routedPoints[g.length-1]:null;return null==k||k.type!=
-d||k.x!=c||k.y!=e},k=.5*this.scale,c=!1,g=[],f=0;f<d.length-1;f++){for(var l=d[f+1],q=d[f],n=[],t=d[f+2];f<d.length-2&&mxUtils.ptSegDistSq(q.x,q.y,t.x,t.y,l.x,l.y)<1*this.scale*this.scale;)l=t,f++,t=d[f+2];for(var c=e(0,q.x,q.y)||c,O=0;O<this.validEdges.length;O++){var A=this.validEdges[O],C=A.absolutePoints;if(null!=C&&mxUtils.intersects(b,A)&&"1"!=A.style.noJump)for(A=0;A<C.length-1;A++){for(var E=C[A+1],L=C[A],t=C[A+2];A<C.length-2&&mxUtils.ptSegDistSq(L.x,L.y,t.x,t.y,E.x,E.y)<1*this.scale*this.scale;)E=
-t,A++,t=C[A+2];t=mxUtils.intersection(q.x,q.y,l.x,l.y,L.x,L.y,E.x,E.y);if(null!=t&&(Math.abs(t.x-q.x)>k||Math.abs(t.y-q.y)>k)&&(Math.abs(t.x-l.x)>k||Math.abs(t.y-l.y)>k)&&(Math.abs(t.x-L.x)>k||Math.abs(t.y-L.y)>k)&&(Math.abs(t.x-E.x)>k||Math.abs(t.y-E.y)>k)){E=t.x-q.x;L=t.y-q.y;t={distSq:E*E+L*L,x:t.x,y:t.y};for(E=0;E<n.length;E++)if(n[E].distSq>t.distSq){n.splice(E,0,t);t=null;break}null==t||0!=n.length&&n[n.length-1].x===t.x&&n[n.length-1].y===t.y||n.push(t)}}}for(A=0;A<n.length;A++)c=e(1,n[A].x,
-n[A].y)||c}t=d[d.length-1];c=e(0,t.x,t.y)||c}b.routedPoints=g;return c}return!1};var l=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(b,d,c){this.routedPoints=null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)l.apply(this,arguments);else{var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,e=(parseInt(mxUtils.getValue(this.style,
-"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,k=mxUtils.getValue(this.style,"jumpStyle","none"),f=!0,m=null,q=null,p=[],n=null;b.begin();for(var t=0;t<this.state.routedPoints.length;t++){var A=this.state.routedPoints[t],C=new mxPoint(A.x/this.scale,A.y/this.scale);0==t?C=d[0]:t==this.state.routedPoints.length-1&&(C=d[d.length-1]);var E=!1;if(null!=m&&1==A.type){var L=this.state.routedPoints[t+1],A=L.x/this.scale-C.x,L=L.y/this.scale-C.y,A=A*A+L*L;null==n&&(n=new mxPoint(C.x-m.x,C.y-m.y),
-q=Math.sqrt(n.x*n.x+n.y*n.y),0<q?(n.x=n.x*e/q,n.y=n.y*e/q):n=null);A>e*e&&0<q&&(A=m.x-C.x,L=m.y-C.y,A=A*A+L*L,A>e*e&&(E=new mxPoint(C.x-n.x,C.y-n.y),A=new mxPoint(C.x+n.x,C.y+n.y),p.push(E),this.addPoints(b,p,c,g,!1,null,f),p=0>Math.round(n.x)||0==Math.round(n.x)&&0>=Math.round(n.y)?1:-1,f=!1,"sharp"==k?(b.lineTo(E.x-n.y*p,E.y+n.x*p),b.lineTo(A.x-n.y*p,A.y+n.x*p),b.lineTo(A.x,A.y)):"line"==k?(b.moveTo(E.x+n.y*p,E.y-n.x*p),b.lineTo(E.x-n.y*p,E.y+n.x*p),b.moveTo(A.x-n.y*p,A.y+n.x*p),b.lineTo(A.x+n.y*
-p,A.y-n.x*p),b.moveTo(A.x,A.y)):"arc"==k?(p*=1.3,b.curveTo(E.x-n.y*p,E.y+n.x*p,A.x-n.y*p,A.y+n.x*p,A.x,A.y)):(b.moveTo(A.x,A.y),f=!0),p=[A],E=!0))}else n=null;E||(p.push(C),m=C)}this.addPoints(b,p,c,g,!1,null,f);b.stroke()}};var t=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(b,d,c,g){return null!=d&&"centerPerimeter"==d.style[mxConstants.STYLE_PERIMETER]?new mxPoint(d.getCenterX(),d.getCenterY()):t.apply(this,arguments)};var d=mxGraphView.prototype.updateFloatingTerminalPoint;
-mxGraphView.prototype.updateFloatingTerminalPoint=function(b,c,g,e){if(null==c||null==b||"1"!=c.style.snapToPoint&&"1"!=b.style.snapToPoint)d.apply(this,arguments);else{c=this.getTerminalPort(b,c,e);var k=this.getNextPoint(b,g,e),f=this.graph.isOrthogonal(b),m=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),l=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=m)var q=Math.cos(-m),p=Math.sin(-m),k=mxUtils.getRotatedPoint(k,q,p,l);q=parseFloat(b.style[mxConstants.STYLE_PERIMETER_SPACING]||
-0);q+=parseFloat(b.style[e?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);k=this.getPerimeterPoint(c,k,0==m&&f,q);0!=m&&(q=Math.cos(m),p=Math.sin(m),k=mxUtils.getRotatedPoint(k,q,p,l));b.setAbsoluteTerminalPoint(this.snapToAnchorPoint(b,c,g,e,k),e)}};mxGraphView.prototype.snapToAnchorPoint=function(b,d,c,g,e){if(null!=d&&null!=b){b=this.graph.getAllConnectionConstraints(d);g=c=null;if(null!=b)for(var k=0;k<b.length;k++){var f=this.graph.getConnectionPoint(d,
+d||k.x!=c||k.y!=e},k=.5*this.scale,c=!1,g=[],f=0;f<d.length-1;f++){for(var l=d[f+1],t=d[f],n=[],q=d[f+2];f<d.length-2&&mxUtils.ptSegDistSq(t.x,t.y,q.x,q.y,l.x,l.y)<1*this.scale*this.scale;)l=q,f++,q=d[f+2];for(var c=e(0,t.x,t.y)||c,O=0;O<this.validEdges.length;O++){var A=this.validEdges[O],C=A.absolutePoints;if(null!=C&&mxUtils.intersects(b,A)&&"1"!=A.style.noJump)for(A=0;A<C.length-1;A++){for(var E=C[A+1],J=C[A],q=C[A+2];A<C.length-2&&mxUtils.ptSegDistSq(J.x,J.y,q.x,q.y,E.x,E.y)<1*this.scale*this.scale;)E=
+q,A++,q=C[A+2];q=mxUtils.intersection(t.x,t.y,l.x,l.y,J.x,J.y,E.x,E.y);if(null!=q&&(Math.abs(q.x-t.x)>k||Math.abs(q.y-t.y)>k)&&(Math.abs(q.x-l.x)>k||Math.abs(q.y-l.y)>k)&&(Math.abs(q.x-J.x)>k||Math.abs(q.y-J.y)>k)&&(Math.abs(q.x-E.x)>k||Math.abs(q.y-E.y)>k)){E=q.x-t.x;J=q.y-t.y;q={distSq:E*E+J*J,x:q.x,y:q.y};for(E=0;E<n.length;E++)if(n[E].distSq>q.distSq){n.splice(E,0,q);q=null;break}null==q||0!=n.length&&n[n.length-1].x===q.x&&n[n.length-1].y===q.y||n.push(q)}}}for(A=0;A<n.length;A++)c=e(1,n[A].x,
+n[A].y)||c}q=d[d.length-1];c=e(0,q.x,q.y)||c}b.routedPoints=g;return c}return!1};var l=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(b,d,c){this.routedPoints=null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)l.apply(this,arguments);else{var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,e=(parseInt(mxUtils.getValue(this.style,
+"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,k=mxUtils.getValue(this.style,"jumpStyle","none"),f=!0,m=null,t=null,p=[],n=null;b.begin();for(var q=0;q<this.state.routedPoints.length;q++){var A=this.state.routedPoints[q],C=new mxPoint(A.x/this.scale,A.y/this.scale);0==q?C=d[0]:q==this.state.routedPoints.length-1&&(C=d[d.length-1]);var E=!1;if(null!=m&&1==A.type){var J=this.state.routedPoints[q+1],A=J.x/this.scale-C.x,J=J.y/this.scale-C.y,A=A*A+J*J;null==n&&(n=new mxPoint(C.x-m.x,C.y-m.y),
+t=Math.sqrt(n.x*n.x+n.y*n.y),0<t?(n.x=n.x*e/t,n.y=n.y*e/t):n=null);A>e*e&&0<t&&(A=m.x-C.x,J=m.y-C.y,A=A*A+J*J,A>e*e&&(E=new mxPoint(C.x-n.x,C.y-n.y),A=new mxPoint(C.x+n.x,C.y+n.y),p.push(E),this.addPoints(b,p,c,g,!1,null,f),p=0>Math.round(n.x)||0==Math.round(n.x)&&0>=Math.round(n.y)?1:-1,f=!1,"sharp"==k?(b.lineTo(E.x-n.y*p,E.y+n.x*p),b.lineTo(A.x-n.y*p,A.y+n.x*p),b.lineTo(A.x,A.y)):"line"==k?(b.moveTo(E.x+n.y*p,E.y-n.x*p),b.lineTo(E.x-n.y*p,E.y+n.x*p),b.moveTo(A.x-n.y*p,A.y+n.x*p),b.lineTo(A.x+n.y*
+p,A.y-n.x*p),b.moveTo(A.x,A.y)):"arc"==k?(p*=1.3,b.curveTo(E.x-n.y*p,E.y+n.x*p,A.x-n.y*p,A.y+n.x*p,A.x,A.y)):(b.moveTo(A.x,A.y),f=!0),p=[A],E=!0))}else n=null;E||(p.push(C),m=C)}this.addPoints(b,p,c,g,!1,null,f);b.stroke()}};var q=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(b,d,c,g){return null!=d&&"centerPerimeter"==d.style[mxConstants.STYLE_PERIMETER]?new mxPoint(d.getCenterX(),d.getCenterY()):q.apply(this,arguments)};var d=mxGraphView.prototype.updateFloatingTerminalPoint;
+mxGraphView.prototype.updateFloatingTerminalPoint=function(b,c,g,e){if(null==c||null==b||"1"!=c.style.snapToPoint&&"1"!=b.style.snapToPoint)d.apply(this,arguments);else{c=this.getTerminalPort(b,c,e);var k=this.getNextPoint(b,g,e),f=this.graph.isOrthogonal(b),m=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),l=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=m)var t=Math.cos(-m),p=Math.sin(-m),k=mxUtils.getRotatedPoint(k,t,p,l);t=parseFloat(b.style[mxConstants.STYLE_PERIMETER_SPACING]||
+0);t+=parseFloat(b.style[e?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);k=this.getPerimeterPoint(c,k,0==m&&f,t);0!=m&&(t=Math.cos(m),p=Math.sin(m),k=mxUtils.getRotatedPoint(k,t,p,l));b.setAbsoluteTerminalPoint(this.snapToAnchorPoint(b,c,g,e,k),e)}};mxGraphView.prototype.snapToAnchorPoint=function(b,d,c,g,e){if(null!=d&&null!=b){b=this.graph.getAllConnectionConstraints(d);g=c=null;if(null!=b)for(var k=0;k<b.length;k++){var f=this.graph.getConnectionPoint(d,
b[k]);if(null!=f){var m=(f.x-e.x)*(f.x-e.x)+(f.y-e.y)*(f.y-e.y);if(null==g||m<g)c=f,g=m}}null!=c&&(e=c)}return e};var k=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(b,d,c){var g=k.apply(this,arguments);"1"==b.getAttribute("placeholders")&&null!=c.state&&(g=c.state.view.graph.replacePlaceholders(c.state.cell,g));return g};var g=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(b){if(null!=b.style&&"undefined"!==typeof pako){var d=
mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,null);if(null!=d&&"string"===typeof d&&"stencil("==d.substring(0,8))try{var c=d.substring(8,d.length-1),e=mxUtils.parseXml(Graph.decompress(c));return new mxShape(new mxStencil(e.documentElement))}catch(u){null!=window.console&&console.log("Error in shape: "+u)}}return g.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];
mxStencilRegistry.filesLoaded={};
mxStencilRegistry.getStencil=function(b){var c=mxStencilRegistry.stencils[b];if(null==c&&null==mxCellRenderer.defaultShapes[b]&&mxStencilRegistry.dynamicLoading){var e=mxStencilRegistry.getBasenameForStencil(b);if(null!=e){c=mxStencilRegistry.libraries[e];if(null!=c){if(null==mxStencilRegistry.packages[e]){for(var f=0;f<c.length;f++){var n=c[f];if(!mxStencilRegistry.filesLoaded[n])if(mxStencilRegistry.filesLoaded[n]=!0,".xml"==n.toLowerCase().substring(n.length-4,n.length))mxStencilRegistry.loadStencilSet(n,
-null);else if(".js"==n.toLowerCase().substring(n.length-3,n.length))try{if(mxStencilRegistry.allowEval){var l=mxUtils.load(n);null!=l&&200<=l.getStatus()&&299>=l.getStatus()&&eval.call(window,l.getText())}}catch(t){null!=window.console&&console.log("error in getStencil:",b,e,c,n,t)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);c=mxStencilRegistry.stencils[b]}}return c};
+null);else if(".js"==n.toLowerCase().substring(n.length-3,n.length))try{if(mxStencilRegistry.allowEval){var l=mxUtils.load(n);null!=l&&200<=l.getStatus()&&299>=l.getStatus()&&eval.call(window,l.getText())}}catch(q){null!=window.console&&console.log("error in getStencil:",b,e,c,n,q)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);c=mxStencilRegistry.stencils[b]}}return c};
mxStencilRegistry.getBasenameForStencil=function(b){var c=null;if(null!=b&&"string"===typeof b&&(b=b.split("."),0<b.length&&"mxgraph"==b[0]))for(var c=b[1],e=2;e<b.length-1;e++)c+="/"+b[e];return c};
-mxStencilRegistry.loadStencilSet=function(b,c,e,f){var n=mxStencilRegistry.packages[b];if(null!=e&&e||null==n){var l=!1;if(null==n)try{if(f){mxStencilRegistry.loadStencil(b,mxUtils.bind(this,function(e){null!=e&&null!=e.documentElement&&(mxStencilRegistry.packages[b]=e,l=!0,mxStencilRegistry.parseStencilSet(e.documentElement,c,l))}));return}n=mxStencilRegistry.loadStencil(b);mxStencilRegistry.packages[b]=n;l=!0}catch(t){null!=window.console&&console.log("error in loadStencilSet:",b,t)}null!=n&&null!=
+mxStencilRegistry.loadStencilSet=function(b,c,e,f){var n=mxStencilRegistry.packages[b];if(null!=e&&e||null==n){var l=!1;if(null==n)try{if(f){mxStencilRegistry.loadStencil(b,mxUtils.bind(this,function(e){null!=e&&null!=e.documentElement&&(mxStencilRegistry.packages[b]=e,l=!0,mxStencilRegistry.parseStencilSet(e.documentElement,c,l))}));return}n=mxStencilRegistry.loadStencil(b);mxStencilRegistry.packages[b]=n;l=!0}catch(q){null!=window.console&&console.log("error in loadStencilSet:",b,q)}null!=n&&null!=
n.documentElement&&mxStencilRegistry.parseStencilSet(n.documentElement,c,l)}};mxStencilRegistry.loadStencil=function(b,c){if(null!=c)mxUtils.get(b,mxUtils.bind(this,function(b){c(200<=b.getStatus()&&299>=b.getStatus()?b.getXml():null)}));else return mxUtils.load(b).getXml()};mxStencilRegistry.parseStencilSets=function(b){for(var c=0;c<b.length;c++)mxStencilRegistry.parseStencilSet(mxUtils.parseXml(b[c]).documentElement)};
-mxStencilRegistry.parseStencilSet=function(b,c,e){if("stencils"==b.nodeName)for(var f=b.firstChild;null!=f;)"shapes"==f.nodeName&&mxStencilRegistry.parseStencilSet(f,c,e),f=f.nextSibling;else{e=null!=e?e:!0;var f=b.firstChild,n="";b=b.getAttribute("name");for(null!=b&&(n=b+".");null!=f;){if(f.nodeType==mxConstants.NODETYPE_ELEMENT&&(b=f.getAttribute("name"),null!=b)){var n=n.toLowerCase(),l=b.replace(/ /g,"_");e&&mxStencilRegistry.addStencil(n+l.toLowerCase(),new mxStencil(f));if(null!=c){var t=f.getAttribute("w"),
-d=f.getAttribute("h"),t=null==t?80:parseInt(t,10),d=null==d?80:parseInt(d,10);c(n,l,b,t,d)}}f=f.nextSibling}}};
+mxStencilRegistry.parseStencilSet=function(b,c,e){if("stencils"==b.nodeName)for(var f=b.firstChild;null!=f;)"shapes"==f.nodeName&&mxStencilRegistry.parseStencilSet(f,c,e),f=f.nextSibling;else{e=null!=e?e:!0;var f=b.firstChild,n="";b=b.getAttribute("name");for(null!=b&&(n=b+".");null!=f;){if(f.nodeType==mxConstants.NODETYPE_ELEMENT&&(b=f.getAttribute("name"),null!=b)){var n=n.toLowerCase(),l=b.replace(/ /g,"_");e&&mxStencilRegistry.addStencil(n+l.toLowerCase(),new mxStencil(f));if(null!=c){var q=f.getAttribute("w"),
+d=f.getAttribute("h"),q=null==q?80:parseInt(q,10),d=null==d?80:parseInt(d,10);c(n,l,b,q,d)}}f=f.nextSibling}}};
"undefined"!==typeof mxVertexHandler&&function(){function b(){var b=document.createElement("div");b.className="geHint";b.style.whiteSpace="nowrap";b.style.position="absolute";return b}function c(b,d){switch(d){case mxConstants.POINTS:return b;case mxConstants.MILLIMETERS:return(b/mxConstants.PIXELS_PER_MM).toFixed(1);case mxConstants.METERS:return(b/(1E3*mxConstants.PIXELS_PER_MM)).toFixed(4);case mxConstants.INCHES:return(b/mxConstants.PIXELS_PER_INCH).toFixed(2)}}mxConstants.HANDLE_FILLCOLOR="#29b6f2";
mxConstants.HANDLE_STROKECOLOR="#0088cf";mxConstants.VERTEX_SELECTION_COLOR="#00a8ff";mxConstants.OUTLINE_COLOR="#00a8ff";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.EDGE_SELECTION_COLOR="#00a8ff";mxConstants.DEFAULT_VALID_COLOR="#00a8ff";mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff";mxConstants.GUIDE_COLOR="#0088cf";mxConstants.HIGHLIGHT_OPACITY=30;mxConstants.HIGHLIGHT_SIZE=5;mxEdgeHandler.prototype.snapToTerminals=
!0;mxGraphHandler.prototype.guidesEnabled=!0;mxGraphHandler.prototype.removeEmptyParents=!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(b){return!mxEvent.isAltDown(b)};var e=mxGraphLayout.prototype.isVertexIgnored;mxGraphLayout.prototype.isVertexIgnored=function(b){return e.apply(this,arguments)||this.graph.isTableRow(b)||this.graph.isTableCell(b)};var f=mxGraphLayout.prototype.isEdgeIgnored;mxGraphLayout.prototype.isEdgeIgnored=function(b){return f.apply(this,arguments)||
this.graph.isEdgeIgnored(b)};var n=mxConnectionHandler.prototype.isCreateTarget;mxConnectionHandler.prototype.isCreateTarget=function(b){return this.graph.isCloneEvent(b)!=n.apply(this,arguments)};mxConstraintHandler.prototype.createHighlightShape=function(){var b=new mxEllipse(null,this.highlightColor,this.highlightColor,0);b.opacity=mxConstants.HIGHLIGHT_OPACITY;return b};mxConnectionHandler.prototype.livePreview=!0;mxConnectionHandler.prototype.cursor="crosshair";mxConnectionHandler.prototype.createEdgeState=
function(b){b=this.graph.createCurrentEdgeStyle();b=this.graph.createEdge(null,null,null,null,null,b);b=new mxCellState(this.graph.view,b,this.graph.getCellStyle(b));for(var d in this.graph.currentEdgeStyle)b.style[d]=this.graph.currentEdgeStyle[d];b.style=this.graph.postProcessCellStyle(b.cell,b.style);return b};var l=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var b=l.apply(this,arguments);b.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];
-return b};mxConnectionHandler.prototype.updatePreview=function(b){};var t=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var b=t.apply(this,arguments),d=b.getCell;b.getCell=mxUtils.bind(this,function(b){var c=d.apply(this,arguments);this.error=null;return c});return b};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=
+return b};mxConnectionHandler.prototype.updatePreview=function(b){};var q=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var b=q.apply(this,arguments),d=b.getCell;b.getCell=mxUtils.bind(this,function(b){var c=d.apply(this,arguments);this.error=null;return c});return b};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=
function(){for(var b="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";",d="shape curved rounded comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle jumpStyle jumpSize".split(" "),c=0;c<d.length;c++)null!=this.currentEdgeStyle[d[c]]&&(b+=d[c]+"="+this.currentEdgeStyle[d[c]]+";");null!=this.currentEdgeStyle.orthogonalLoop?b+="orthogonalLoop="+this.currentEdgeStyle.orthogonalLoop+";":null!=Graph.prototype.defaultEdgeStyle.orthogonalLoop&&
(b+="orthogonalLoop="+Graph.prototype.defaultEdgeStyle.orthogonalLoop+";");null!=this.currentEdgeStyle.jettySize?b+="jettySize="+this.currentEdgeStyle.jettySize+";":null!=Graph.prototype.defaultEdgeStyle.jettySize&&(b+="jettySize="+Graph.prototype.defaultEdgeStyle.jettySize+";");"elbowEdgeStyle"==this.currentEdgeStyle.edgeStyle&&null!=this.currentEdgeStyle.elbow&&(b+="elbow="+this.currentEdgeStyle.elbow+";");return b=null!=this.currentEdgeStyle.html?b+("html="+this.currentEdgeStyle.html+";"):b+"html=1;"};
Graph.prototype.getPagePadding=function(){return new mxPoint(0,0)};Graph.prototype.loadStylesheet=function(){var b=null!=this.themes?this.themes[this.defaultThemeName]:mxStyleRegistry.dynamicLoading?mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement():null;null!=b&&(new mxCodec(b.ownerDocument)).decode(b,this.getStylesheet())};Graph.prototype.createCellLookup=function(b,d){d=null!=d?d:{};for(var c=0;c<b.length;c++){var g=b[c];d[mxObjectIdentity.get(g)]=g.getId();for(var e=this.model.getChildCount(g),
-k=0;k<e;k++)this.createCellLookup([this.model.getChildAt(g,k)],d)}return d};Graph.prototype.createCellMapping=function(b,d,c){c=null!=c?c:{};for(var g in b){var e=d[g];null==c[e]&&(c[e]=b[g].getId()||"")}return c};Graph.prototype.importGraphModel=function(b,d,c,g){d=null!=d?d:0;c=null!=c?c:0;var e=new mxCodec(b.ownerDocument),k=new mxGraphModel;e.decode(b,k);b=[];var e={},f={},m=k.getChildren(this.cloneCell(k.root,this.isCloneInvalidEdges(),e));if(null!=m){var l=this.createCellLookup([k.root]),m=
-m.slice();this.model.beginUpdate();try{if(1!=m.length||this.isCellLocked(this.getDefaultParent()))for(k=0;k<m.length;k++)q=this.model.getChildren(this.moveCells([m[k]],d,c,!1,this.model.getRoot())[0]),null!=q&&(b=b.concat(q));else{var q=k.getChildren(m[0]);null!=q&&(b=this.moveCells(q,d,c,!1,this.getDefaultParent()),f[k.getChildAt(k.root,0).getId()]=this.getDefaultParent().getId())}if(null!=b&&(this.createCellMapping(e,l,f),this.updateCustomLinks(f,b),g)){this.isGridEnabled()&&(d=this.snap(d),c=this.snap(c));
-var p=this.getBoundingBoxFromGeometry(b,!0);null!=p&&this.moveCells(b,d-p.x,c-p.y)}}finally{this.model.endUpdate()}}return b};Graph.prototype.encodeCells=function(b){for(var d={},c=this.cloneCells(b,null,d),g=new mxDictionary,e=0;e<b.length;e++)g.put(b[e],!0);for(var k=new mxCodec,f=new mxGraphModel,m=f.getChildAt(f.getRoot(),0),e=0;e<c.length;e++){f.add(m,c[e]);var l=this.view.getState(b[e]);if(null!=l){var q=this.getCellGeometry(c[e]);null!=q&&q.relative&&!this.model.isEdge(b[e])&&null==g.get(this.model.getParent(b[e]))&&
-(q.offset=null,q.relative=!1,q.x=l.x/l.view.scale-l.view.translate.x,q.y=l.y/l.view.scale-l.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(d,this.createCellLookup(b)),c);return k.encode(f)};Graph.prototype.isSwimlane=function(b,d){var c=null;null==b||this.model.isEdge(b)||this.model.getParent(b)==this.model.getRoot()||(c=this.getCurrentCellStyle(b,d)[mxConstants.STYLE_SHAPE]);return c==mxConstants.SHAPE_SWIMLANE||"table"==c||"tableRow"==c};var d=Graph.prototype.isExtendParent;Graph.prototype.isExtendParent=
-function(b){var c=this.model.getParent(b);if(null!=c){var g=this.getCurrentCellStyle(c);if(null!=g.expand)return"0"!=g.expand}return d.apply(this,arguments)&&(null==c||!this.isTable(c))};var k=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(b,d,c,g,e,f,m,l){null==l&&(l=this.model.getParent(b),this.isTable(l)||this.isTableRow(l))&&(l=this.getCellAt(f,m,null,!0,!1));c=null;this.model.beginUpdate();try{c=k.apply(this,[b,d,c,g,e,f,m,l]);this.model.setValue(c,"");var q=this.getChildCells(c,
-!0);for(d=0;d<q.length;d++){var p=this.getCellGeometry(q[d]);null!=p&&p.relative&&0<p.x&&this.model.remove(q[d])}var B=this.getChildCells(b,!0);for(d=0;d<B.length;d++)p=this.getCellGeometry(B[d]),null!=p&&p.relative&&0>=p.x&&this.model.remove(B[d]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,null,[c]);this.setCellStyles(mxConstants.STYLE_ENDARROW,mxConstants.NONE,[c]);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,null,[b]);this.setCellStyles(mxConstants.STYLE_STARTARROW,
+k=0;k<e;k++)this.createCellLookup([this.model.getChildAt(g,k)],d)}return d};Graph.prototype.createCellMapping=function(b,d,c){c=null!=c?c:{};for(var g in b){var e=d[g];null==c[e]&&(c[e]=b[g].getId()||"")}return c};Graph.prototype.importGraphModel=function(b,d,c,g){d=null!=d?d:0;c=null!=c?c:0;var e=new mxCodec(b.ownerDocument),k=new mxGraphModel;e.decode(b,k);b=[];var e={},f={},l=k.getChildren(this.cloneCell(k.root,this.isCloneInvalidEdges(),e));if(null!=l){var m=this.createCellLookup([k.root]),l=
+l.slice();this.model.beginUpdate();try{if(1!=l.length||this.isCellLocked(this.getDefaultParent()))for(k=0;k<l.length;k++)t=this.model.getChildren(this.moveCells([l[k]],d,c,!1,this.model.getRoot())[0]),null!=t&&(b=b.concat(t));else{var t=k.getChildren(l[0]);null!=t&&(b=this.moveCells(t,d,c,!1,this.getDefaultParent()),f[k.getChildAt(k.root,0).getId()]=this.getDefaultParent().getId())}if(null!=b&&(this.createCellMapping(e,m,f),this.updateCustomLinks(f,b),g)){this.isGridEnabled()&&(d=this.snap(d),c=this.snap(c));
+var p=this.getBoundingBoxFromGeometry(b,!0);null!=p&&this.moveCells(b,d-p.x,c-p.y)}}finally{this.model.endUpdate()}}return b};Graph.prototype.encodeCells=function(b){for(var d={},c=this.cloneCells(b,null,d),g=new mxDictionary,e=0;e<b.length;e++)g.put(b[e],!0);for(var k=new mxCodec,f=new mxGraphModel,l=f.getChildAt(f.getRoot(),0),e=0;e<c.length;e++){f.add(l,c[e]);var m=this.view.getState(b[e]);if(null!=m){var t=this.getCellGeometry(c[e]);null!=t&&t.relative&&!this.model.isEdge(b[e])&&null==g.get(this.model.getParent(b[e]))&&
+(t.offset=null,t.relative=!1,t.x=m.x/m.view.scale-m.view.translate.x,t.y=m.y/m.view.scale-m.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(d,this.createCellLookup(b)),c);return k.encode(f)};Graph.prototype.isSwimlane=function(b,d){var c=null;null==b||this.model.isEdge(b)||this.model.getParent(b)==this.model.getRoot()||(c=this.getCurrentCellStyle(b,d)[mxConstants.STYLE_SHAPE]);return c==mxConstants.SHAPE_SWIMLANE||"table"==c||"tableRow"==c};var d=Graph.prototype.isExtendParent;Graph.prototype.isExtendParent=
+function(b){var c=this.model.getParent(b);if(null!=c){var g=this.getCurrentCellStyle(c);if(null!=g.expand)return"0"!=g.expand}return d.apply(this,arguments)&&(null==c||!this.isTable(c))};var k=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(b,d,c,g,e,f,l,m){null==m&&(m=this.model.getParent(b),this.isTable(m)||this.isTableRow(m))&&(m=this.getCellAt(f,l,null,!0,!1));c=null;this.model.beginUpdate();try{c=k.apply(this,[b,d,c,g,e,f,l,m]);this.model.setValue(c,"");var t=this.getChildCells(c,
+!0);for(d=0;d<t.length;d++){var p=this.getCellGeometry(t[d]);null!=p&&p.relative&&0<p.x&&this.model.remove(t[d])}var B=this.getChildCells(b,!0);for(d=0;d<B.length;d++)p=this.getCellGeometry(B[d]),null!=p&&p.relative&&0>=p.x&&this.model.remove(B[d]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,null,[c]);this.setCellStyles(mxConstants.STYLE_ENDARROW,mxConstants.NONE,[c]);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,null,[b]);this.setCellStyles(mxConstants.STYLE_STARTARROW,
mxConstants.NONE,[b]);var n=this.model.getTerminal(c,!1);if(null!=n){var u=this.getCurrentCellStyle(n);null!=u&&"1"==u.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[b]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[b]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[c]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[c]))}}finally{this.model.endUpdate()}return c};var g=Graph.prototype.selectCell;Graph.prototype.selectCell=function(b,d,c){if(d||c)g.apply(this,arguments);
else{var e=this.getSelectionCell(),k=null,f=[],m=mxUtils.bind(this,function(d){if(null!=this.view.getState(d)&&(this.model.isVertex(d)||this.model.isEdge(d)))if(f.push(d),d==e)k=f.length-1;else if(b&&null==e&&0<f.length||null!=k&&b&&f.length>k||!b&&0<k)return;for(var c=0;c<this.model.getChildCount(d);c++)m(this.model.getChildAt(d,c))});m(this.model.root);0<f.length&&(k=null!=k?mxUtils.mod(k+(b?1:-1),f.length):0,this.setSelectionCell(f[k]))}};Graph.prototype.swapShapes=function(b,d,c,g,e,k,f){d=!1;
-if(!g&&null!=e&&1==b.length&&(g=this.view.getState(e),c=this.view.getState(b[0]),null!=g&&null!=c&&(null!=k&&mxEvent.isShiftDown(k)||"umlLifeline"==g.style.shape&&"umlLifeline"==c.style.shape)&&(g=this.getCellGeometry(e),k=this.getCellGeometry(b[0]),null!=g&&null!=k))){d=g.clone();g=k.clone();g.x=d.x;g.y=d.y;d.x=k.x;d.y=k.y;this.model.beginUpdate();try{this.model.setGeometry(e,d),this.model.setGeometry(b[0],g)}finally{this.model.endUpdate()}d=!0}return d};var q=Graph.prototype.moveCells;Graph.prototype.moveCells=
+if(!g&&null!=e&&1==b.length&&(g=this.view.getState(e),c=this.view.getState(b[0]),null!=g&&null!=c&&(null!=k&&mxEvent.isShiftDown(k)||"umlLifeline"==g.style.shape&&"umlLifeline"==c.style.shape)&&(g=this.getCellGeometry(e),k=this.getCellGeometry(b[0]),null!=g&&null!=k))){d=g.clone();g=k.clone();g.x=d.x;g.y=d.y;d.x=k.x;d.y=k.y;this.model.beginUpdate();try{this.model.setGeometry(e,d),this.model.setGeometry(b[0],g)}finally{this.model.endUpdate()}d=!0}return d};var t=Graph.prototype.moveCells;Graph.prototype.moveCells=
function(b,d,c,g,e,k,f){if(this.swapShapes(b,d,c,g,e,k,f))return b;f=null!=f?f:{};if(this.isTable(e)){for(var m=[],l=0;l<b.length;l++)this.isTable(b[l])?m=m.concat(this.model.getChildCells(b[l],!0).reverse()):m.push(b[l]);b=m}this.model.beginUpdate();try{m=[];for(l=0;l<b.length;l++)if(null!=e&&this.isTableRow(b[l])){var p=this.model.getParent(b[l]),B=this.getCellGeometry(b[l]);this.isTable(p)&&m.push(p);if(null!=p&&null!=B&&this.isTable(p)&&this.isTable(e)&&(g||p!=e)){if(!g){var n=this.getCellGeometry(p);
-null!=n&&(n=n.clone(),n.height-=B.height,this.model.setGeometry(p,n))}n=this.getCellGeometry(e);null!=n&&(n=n.clone(),n.height+=B.height,this.model.setGeometry(e,n));var u=this.model.getChildCells(e,!0);if(0<u.length){b[l]=g?this.cloneCell(b[l]):b[l];var v=this.model.getChildCells(b[l],!0),ea=this.model.getChildCells(u[0],!0),y=ea.length-v.length;if(0<y)for(var x=0;x<y;x++){var J=this.cloneCell(v[v.length-1]);null!=J&&(J.value="",this.model.add(b[l],J))}else if(0>y)for(x=0;x>y;x--)this.model.remove(v[v.length+
-x-1]);v=this.model.getChildCells(b[l],!0);for(x=0;x<ea.length;x++){var ia=this.getCellGeometry(ea[x]),K=this.getCellGeometry(v[x]);null!=ia&&null!=K&&(K=K.clone(),K.width=ia.width,this.model.setGeometry(v[x],K))}}}}for(var t=q.apply(this,arguments),l=0;l<m.length;l++)!g&&this.model.contains(m[l])&&0==this.model.getChildCount(m[l])&&this.model.remove(m[l]);g&&this.updateCustomLinks(this.createCellMapping(f,this.createCellLookup(b)),t)}finally{this.model.endUpdate()}return t};var m=Graph.prototype.removeCells;
-Graph.prototype.removeCells=function(b,d){var c=[];this.model.beginUpdate();try{for(var g=0;g<b.length;g++)if(this.isTableCell(b[g])){var e=this.model.getParent(b[g]),k=this.model.getParent(e);1==this.model.getChildCount(e)&&1==this.model.getChildCount(k)?0>mxUtils.indexOf(b,k)&&0>mxUtils.indexOf(c,k)&&c.push(k):this.labelChanged(b[g],"")}else{if(this.isTableRow(b[g])&&(k=this.model.getParent(b[g]),0>mxUtils.indexOf(b,k)&&0>mxUtils.indexOf(c,k))){for(var f=this.model.getChildCells(k,!0),l=0,q=0;q<
-f.length;q++)0<=mxUtils.indexOf(b,f[q])&&l++;l==f.length&&c.push(k)}c.push(b[g])}c=m.apply(this,[c,d])}finally{this.model.endUpdate()}return c};Graph.prototype.updateCustomLinks=function(b,d,c){c=null!=c?c:new Graph;for(var g=0;g<d.length;g++)null!=d[g]&&c.updateCustomLinksForCell(b,d[g],c)};Graph.prototype.updateCustomLinksForCell=function(b,d){this.doUpdateCustomLinksForCell(b,d);for(var c=this.model.getChildCount(d),g=0;g<c;g++)this.updateCustomLinksForCell(b,this.model.getChildAt(d,g))};Graph.prototype.doUpdateCustomLinksForCell=
+null!=n&&(n=n.clone(),n.height-=B.height,this.model.setGeometry(p,n))}n=this.getCellGeometry(e);null!=n&&(n=n.clone(),n.height+=B.height,this.model.setGeometry(e,n));var u=this.model.getChildCells(e,!0);if(0<u.length){b[l]=g?this.cloneCell(b[l]):b[l];var v=this.model.getChildCells(b[l],!0),ea=this.model.getChildCells(u[0],!0),y=ea.length-v.length;if(0<y)for(var x=0;x<y;x++){var L=this.cloneCell(v[v.length-1]);null!=L&&(L.value="",this.model.add(b[l],L))}else if(0>y)for(x=0;x>y;x--)this.model.remove(v[v.length+
+x-1]);v=this.model.getChildCells(b[l],!0);for(x=0;x<ea.length;x++){var ia=this.getCellGeometry(ea[x]),K=this.getCellGeometry(v[x]);null!=ia&&null!=K&&(K=K.clone(),K.width=ia.width,this.model.setGeometry(v[x],K))}}}}for(var q=t.apply(this,arguments),l=0;l<m.length;l++)!g&&this.model.contains(m[l])&&0==this.model.getChildCount(m[l])&&this.model.remove(m[l]);g&&this.updateCustomLinks(this.createCellMapping(f,this.createCellLookup(b)),q)}finally{this.model.endUpdate()}return q};var m=Graph.prototype.removeCells;
+Graph.prototype.removeCells=function(b,d){var c=[];this.model.beginUpdate();try{for(var g=0;g<b.length;g++)if(this.isTableCell(b[g])){var e=this.model.getParent(b[g]),k=this.model.getParent(e);1==this.model.getChildCount(e)&&1==this.model.getChildCount(k)?0>mxUtils.indexOf(b,k)&&0>mxUtils.indexOf(c,k)&&c.push(k):this.labelChanged(b[g],"")}else{if(this.isTableRow(b[g])&&(k=this.model.getParent(b[g]),0>mxUtils.indexOf(b,k)&&0>mxUtils.indexOf(c,k))){for(var f=this.model.getChildCells(k,!0),l=0,t=0;t<
+f.length;t++)0<=mxUtils.indexOf(b,f[t])&&l++;l==f.length&&c.push(k)}c.push(b[g])}c=m.apply(this,[c,d])}finally{this.model.endUpdate()}return c};Graph.prototype.updateCustomLinks=function(b,d,c){c=null!=c?c:new Graph;for(var g=0;g<d.length;g++)null!=d[g]&&c.updateCustomLinksForCell(b,d[g],c)};Graph.prototype.updateCustomLinksForCell=function(b,d){this.doUpdateCustomLinksForCell(b,d);for(var c=this.model.getChildCount(d),g=0;g<c;g++)this.updateCustomLinksForCell(b,this.model.getChildAt(d,g))};Graph.prototype.doUpdateCustomLinksForCell=
function(b,d){};Graph.prototype.getAllConnectionConstraints=function(b,d){if(null!=b){var c=mxUtils.getValue(b.style,"points",null);if(null!=c){var g=[];try{for(var e=JSON.parse(c),c=0;c<e.length;c++){var k=e[c];g.push(new mxConnectionConstraint(new mxPoint(k[0],k[1]),2<k.length?"0"!=k[2]:!0,null,3<k.length?k[3]:0,4<k.length?k[4]:0))}}catch(aa){}return g}if(null!=b.shape&&null!=b.shape.bounds){k=b.shape.direction;e=b.shape.bounds;c=b.shape.scale;g=e.width/c;e=e.height/c;if(k==mxConstants.DIRECTION_NORTH||
k==mxConstants.DIRECTION_SOUTH)k=g,g=e,e=k;c=b.shape.getConstraints(b.style,g,e);if(null!=c)return c;if(null!=b.shape.stencil&&null!=b.shape.stencil.constraints)return b.shape.stencil.constraints;if(null!=b.shape.constraints)return b.shape.constraints}}return null};Graph.prototype.flipEdge=function(b){if(null!=b){var d=this.getCurrentCellStyle(b),d=mxUtils.getValue(d,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL;
this.setCellStyles(mxConstants.STYLE_ELBOW,d,[b])}};Graph.prototype.isValidRoot=function(b){for(var d=this.model.getChildCount(b),c=0,g=0;g<d;g++){var e=this.model.getChildAt(b,g);this.model.isVertex(e)&&(e=this.getCellGeometry(e),null==e||e.relative||c++)}return 0<c||this.isContainer(b)};Graph.prototype.isValidDropTarget=function(b,d,c){for(var g=this.getCurrentCellStyle(b),e=!0,k=!0,f=0;f<d.length&&k;f++)e=e&&this.isTable(d[f]),k=k&&this.isTableRow(d[f]);return(1==d.length&&null!=c&&mxEvent.isShiftDown(c)&&
!mxEvent.isControlDown(c)&&!mxEvent.isAltDown(c)||("1"!=mxUtils.getValue(g,"part","0")||this.isContainer(b))&&"0"!=mxUtils.getValue(g,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(b))&&!this.isTableRow(b)&&(!this.isTable(b)||k||e))&&!this.isCellLocked(b)};Graph.prototype.createGroupCell=function(){var b=mxGraph.prototype.createGroupCell.apply(this,arguments);b.setStyle("group");return b};Graph.prototype.isExtendParentsOnAdd=function(b){var d=mxGraph.prototype.isExtendParentsOnAdd.apply(this,
arguments);if(d&&null!=b&&null!=this.layoutManager){var c=this.model.getParent(b);null!=c&&(c=this.layoutManager.getLayout(c),null!=c&&c.constructor==mxStackLayout&&(d=!1))}return d};Graph.prototype.getPreferredSizeForCell=function(b){var d=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=d&&(d.width+=10,d.height+=4,this.gridEnabled&&(d.width=this.snap(d.width),d.height=this.snap(d.height)));return d};Graph.prototype.turnShapes=function(b,d){var c=this.getModel(),g=[];c.beginUpdate();
-try{for(var e=0;e<b.length;e++){var k=b[e];if(c.isEdge(k)){var f=c.getTerminal(k,!0),l=c.getTerminal(k,!1);c.setTerminal(k,l,!0);c.setTerminal(k,f,!1);var m=c.getGeometry(k);if(null!=m){m=m.clone();null!=m.points&&m.points.reverse();var q=m.getTerminalPoint(!0),p=m.getTerminalPoint(!1);m.setTerminalPoint(q,!1);m.setTerminalPoint(p,!0);c.setGeometry(k,m);var B=this.view.getState(k),n=this.view.getState(f),u=this.view.getState(l);if(null!=B){var v=null!=n?this.getConnectionConstraint(B,n,!0):null,ea=
+try{for(var e=0;e<b.length;e++){var k=b[e];if(c.isEdge(k)){var f=c.getTerminal(k,!0),l=c.getTerminal(k,!1);c.setTerminal(k,l,!0);c.setTerminal(k,f,!1);var m=c.getGeometry(k);if(null!=m){m=m.clone();null!=m.points&&m.points.reverse();var t=m.getTerminalPoint(!0),p=m.getTerminalPoint(!1);m.setTerminalPoint(t,!1);m.setTerminalPoint(p,!0);c.setGeometry(k,m);var B=this.view.getState(k),n=this.view.getState(f),u=this.view.getState(l);if(null!=B){var v=null!=n?this.getConnectionConstraint(B,n,!0):null,ea=
null!=u?this.getConnectionConstraint(B,u,!1):null;this.setConnectionConstraint(k,f,!0,ea);this.setConnectionConstraint(k,l,!1,v);var y=mxUtils.getValue(B.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(B.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[k]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,y,[k])}g.push(k)}}else if(c.isVertex(k)&&(m=this.getCellGeometry(k),null!=m)){if(!(this.isTable(k)||
-this.isTableRow(k)||this.isTableCell(k)||this.isSwimlane(k))){m=m.clone();m.x+=m.width/2-m.height/2;m.y+=m.height/2-m.width/2;var x=m.width;m.width=m.height;m.height=x;c.setGeometry(k,m)}var J=this.view.getState(k);if(null!=J){var K=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],t=mxUtils.getValue(J.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,K[mxUtils.mod(mxUtils.indexOf(K,
-t)+(d?-1:1),K.length)],[k])}g.push(k)}}}finally{c.endUpdate()}return g};Graph.prototype.stencilHasPlaceholders=function(b){if(null!=b&&null!=b.fgNode)for(b=b.fgNode.firstChild;null!=b;){if("text"==b.nodeName&&"1"==b.getAttribute("placeholders"))return!0;b=b.nextSibling}return!1};var p=Graph.prototype.processChange;Graph.prototype.processChange=function(b){if(b instanceof mxGeometryChange&&(this.isTableCell(b.cell)||this.isTableRow(b.cell))&&(null==b.previous&&null!=b.geometry||null!=b.previous&&!b.previous.equals(b.geometry))){var d=
+this.isTableRow(k)||this.isTableCell(k)||this.isSwimlane(k))){m=m.clone();m.x+=m.width/2-m.height/2;m.y+=m.height/2-m.width/2;var x=m.width;m.width=m.height;m.height=x;c.setGeometry(k,m)}var L=this.view.getState(k);if(null!=L){var K=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],q=mxUtils.getValue(L.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,K[mxUtils.mod(mxUtils.indexOf(K,
+q)+(d?-1:1),K.length)],[k])}g.push(k)}}}finally{c.endUpdate()}return g};Graph.prototype.stencilHasPlaceholders=function(b){if(null!=b&&null!=b.fgNode)for(b=b.fgNode.firstChild;null!=b;){if("text"==b.nodeName&&"1"==b.getAttribute("placeholders"))return!0;b=b.nextSibling}return!1};var p=Graph.prototype.processChange;Graph.prototype.processChange=function(b){if(b instanceof mxGeometryChange&&(this.isTableCell(b.cell)||this.isTableRow(b.cell))&&(null==b.previous&&null!=b.geometry||null!=b.previous&&!b.previous.equals(b.geometry))){var d=
b.cell;this.isTableCell(d)&&(d=this.model.getParent(d));this.isTableRow(d)&&(d=this.model.getParent(d));var c=this.view.getState(d);null!=c&&null!=c.shape&&(this.view.invalidate(d),c.shape.bounds=null)}p.apply(this,arguments);b instanceof mxValueChange&&null!=b.cell&&null!=b.cell.value&&"object"==typeof b.cell.value&&this.invalidateDescendantsWithPlaceholders(b.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=function(b){b=this.model.getDescendants(b);if(0<b.length)for(var d=0;d<b.length;d++){var c=
this.view.getState(b[d]);null!=c&&null!=c.shape&&null!=c.shape.stencil&&this.stencilHasPlaceholders(c.shape.stencil)?this.removeStateForCell(b[d]):this.isReplacePlaceholders(b[d])&&this.view.invalidate(b[d],!1,!1)}};Graph.prototype.replaceElement=function(b,d){for(var c=b.ownerDocument.createElement(null!=d?d:"span"),g=Array.prototype.slice.call(b.attributes);attr=g.pop();)c.setAttribute(attr.nodeName,attr.nodeValue);c.innerHTML=b.innerHTML;b.parentNode.replaceChild(c,b)};Graph.prototype.processElements=
function(b,d){if(null!=b)for(var c=b.getElementsByTagName("*"),g=0;g<c.length;g++)d(c[g])};Graph.prototype.updateLabelElements=function(b,d,c){b=null!=b?b:this.getSelectionCells();for(var g=document.createElement("div"),e=0;e<b.length;e++)if(this.isHtmlLabel(b[e])){var k=this.convertValueToString(b[e]);if(null!=k&&0<k.length){g.innerHTML=k;for(var f=g.getElementsByTagName(null!=c?c:"*"),m=0;m<f.length;m++)d(f[m]);g.innerHTML!=k&&this.cellLabelChanged(b[e],g.innerHTML)}}};Graph.prototype.cellLabelChanged=
@@ -2614,17 +2614,17 @@ d.getGraphY());(c>k||g>k)&&this.clear()}}else{for(c=d.getSource();null!=c&&"a"!=
e&&"a"!=e.nodeName.toLowerCase();)e=e.parentNode;null==e&&Math.abs(this.scrollLeft-f.container.scrollLeft)<k&&Math.abs(this.scrollTop-f.container.scrollTop)<k&&(null==g.sourceState||!g.isSource(g.sourceState.control))&&((mxEvent.isLeftMouseButton(m)||mxEvent.isMiddleMouseButton(m))&&!mxEvent.isPopupTrigger(m)||mxEvent.isTouchEvent(m))&&(null!=this.currentLink?(e=f.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&e||null==d||d(m,this.currentLink),mxEvent.isConsumed(m)||(m=null!=
this.currentTarget?this.currentTarget:mxEvent.isMiddleMouseButton(m)?"_blank":e?f.linkTarget:"_top",f.openLink(this.currentLink,m),g.consume())):null!=c&&!g.isConsumed()&&Math.abs(this.scrollLeft-f.container.scrollLeft)<k&&Math.abs(this.scrollTop-f.container.scrollTop)<k&&Math.abs(this.startX-g.getGraphX())<k&&Math.abs(this.startY-g.getGraphY())<k&&c(g.getEvent()));this.clear()},activate:function(b){this.currentLink=f.getAbsoluteUrl(f.getLinkForCell(b.cell));null!=this.currentLink&&(this.currentTarget=
f.getLinkTargetForCell(b.cell),f.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(b))},clear:function(){null!=f.container&&(f.container.style.cursor=e);this.currentLink=this.currentState=this.currentTarget=null;null!=this.highlight&&this.highlight.hide();null!=f.tooltipHandler&&f.tooltipHandler.hide()}};f.click=function(b){};f.addMouseListener(m);mxEvent.addListener(document,"mouseleave",function(b){m.clear()})};Graph.prototype.duplicateCells=function(b,d){b=null!=b?
-b:this.getSelectionCells();d=null!=d?d:!0;for(var c=0;c<b.length;c++)this.isTableCell(b[c])&&(b[c]=this.model.getParent(b[c]));b=this.model.getTopmostCells(b);var g=this.getModel(),e=this.gridSize,k=[];g.beginUpdate();try{for(var f={},m=this.createCellLookup(b),l=this.cloneCells(b,!1,f,!0),c=0;c<b.length;c++){var q=g.getParent(b[c]);if(null!=q){var p=this.moveCells([l[c]],e,e,!1)[0];k.push(p);if(d)g.add(q,l[c]);else{var B=q.getIndex(b[c]);g.add(q,l[c],B+1)}if(this.isTable(q)){var n=this.getCellGeometry(l[c]),
-u=this.getCellGeometry(q);null!=n&&null!=u&&(u=u.clone(),u.height+=n.height,g.setGeometry(q,u))}}else k.push(l[c])}this.updateCustomLinks(this.createCellMapping(f,m),l,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",l))}finally{g.endUpdate()}return k};Graph.prototype.insertImage=function(b,d,c){if(null!=b&&null!=this.cellEditor.textarea){for(var g=this.cellEditor.textarea.getElementsByTagName("img"),e=[],k=0;k<g.length;k++)e.push(g[k]);document.execCommand("insertimage",!1,b);b=
+b:this.getSelectionCells();d=null!=d?d:!0;for(var c=0;c<b.length;c++)this.isTableCell(b[c])&&(b[c]=this.model.getParent(b[c]));b=this.model.getTopmostCells(b);var g=this.getModel(),e=this.gridSize,k=[];g.beginUpdate();try{for(var f={},m=this.createCellLookup(b),l=this.cloneCells(b,!1,f,!0),c=0;c<b.length;c++){var t=g.getParent(b[c]);if(null!=t){var p=this.moveCells([l[c]],e,e,!1)[0];k.push(p);if(d)g.add(t,l[c]);else{var B=t.getIndex(b[c]);g.add(t,l[c],B+1)}if(this.isTable(t)){var n=this.getCellGeometry(l[c]),
+u=this.getCellGeometry(t);null!=n&&null!=u&&(u=u.clone(),u.height+=n.height,g.setGeometry(t,u))}}else k.push(l[c])}this.updateCustomLinks(this.createCellMapping(f,m),l,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",l))}finally{g.endUpdate()}return k};Graph.prototype.insertImage=function(b,d,c){if(null!=b&&null!=this.cellEditor.textarea){for(var g=this.cellEditor.textarea.getElementsByTagName("img"),e=[],k=0;k<g.length;k++)e.push(g[k]);document.execCommand("insertimage",!1,b);b=
this.cellEditor.textarea.getElementsByTagName("img");if(b.length==e.length+1)for(k=b.length-1;0<=k;k--)if(0==k||b[k]!=e[k-1]){b[k].setAttribute("width",d);b[k].setAttribute("height",c);break}}};Graph.prototype.insertLink=function(b){if(null!=this.cellEditor.textarea)if(0==b.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var d=this.cellEditor.textarea.getElementsByTagName("a"),c=[],g=0;g<d.length;g++)c.push(d[g]);document.execCommand("createlink",!1,mxUtils.trim(b));d=this.cellEditor.textarea.getElementsByTagName("a");
if(d.length==c.length+1)for(g=d.length-1;0<=g;g--)if(d[g]!=c[g-1]){for(d=d[g].getElementsByTagName("a");0<d.length;){for(c=d[0].parentNode;null!=d[0].firstChild;)c.insertBefore(d[0].firstChild,d[0]);c.removeChild(d[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(b))};Graph.prototype.isCellResizable=function(b){var d=mxGraph.prototype.isCellResizable.apply(this,arguments),c=this.getCurrentCellStyle(b);return!this.isTableCell(b)&&!this.isTableRow(b)&&(d||"0"!=mxUtils.getValue(c,mxConstants.STYLE_RESIZABLE,
"1")&&"wrap"==c[mxConstants.STYLE_WHITE_SPACE])};Graph.prototype.distributeCells=function(b,d){null==d&&(d=this.getSelectionCells());if(null!=d&&1<d.length){for(var c=[],g=null,e=null,k=0;k<d.length;k++)if(this.getModel().isVertex(d[k])){var f=this.view.getState(d[k]);if(null!=f){var m=b?f.getCenterX():f.getCenterY(),g=null!=g?Math.max(g,m):m,e=null!=e?Math.min(e,m):m;c.push(f)}}if(2<c.length){c.sort(function(d,c){return b?d.x-c.x:d.y-c.y});f=this.view.translate;m=this.view.scale;e=e/m-(b?f.x:f.y);
-g=g/m-(b?f.x:f.y);this.getModel().beginUpdate();try{for(var l=(g-e)/(c.length-1),g=e,k=1;k<c.length-1;k++){var q=this.view.getState(this.model.getParent(c[k].cell)),p=this.getCellGeometry(c[k].cell),g=g+l;null!=p&&null!=q&&(p=p.clone(),b?p.x=Math.round(g-p.width/2)-q.origin.x:p.y=Math.round(g-p.height/2)-q.origin.y,this.getModel().setGeometry(c[k].cell,p))}}finally{this.getModel().endUpdate()}}}return d};Graph.prototype.isCloneEvent=function(b){return mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)};
-Graph.prototype.createSvgImageExport=function(){var b=new mxImageExport;b.getLinkForCellState=mxUtils.bind(this,function(b,d){return this.getLinkForCell(b.cell)});return b};Graph.prototype.parseBackgroundImage=function(b){var d=null;null!=b&&0<b.length&&(b=JSON.parse(b),d=new mxImage(b.src,b.width,b.height));return d};Graph.prototype.getBackgroundImageObject=function(b){return b};Graph.prototype.getSvg=function(b,d,c,g,e,k,f,m,l,q,p,B,n,u){var v=null;if(null!=u)for(v=new mxDictionary,p=0;p<u.length;p++)v.put(u[p],
-!0);if(u=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;c=null!=c?c:0;e=null!=e?e:!0;k=null!=k?k:!0;f=null!=f?f:!0;q=null!=q?q:!1;var y="page"==n?this.view.getBackgroundPageBounds():k&&null==v||g||"diagram"==n?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),x=this.view.scale;"diagram"==n&&null!=this.backgroundImage&&(y=mxRectangle.fromRectangle(y),y.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*
-x,(this.view.translate.y+this.backgroundImage.y)*x,this.backgroundImage.width*x,this.backgroundImage.height*x)));if(null==y)throw Error(mxResources.get("drawingEmpty"));var J=mxUtils.createXmlDocument(),K=null!=J.createElementNS?J.createElementNS(mxConstants.NS_SVG,"svg"):J.createElement("svg");null!=b&&(null!=K.style?K.style.backgroundColor=b:K.setAttribute("style","background-color:"+b));null==J.createElementNS?(K.setAttribute("xmlns",mxConstants.NS_SVG),K.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):
-K.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);b=d/x;var t=Math.max(1,Math.ceil(y.width*b)+2*c)+(q&&0==c?5:0),ea=Math.max(1,Math.ceil(y.height*b)+2*c)+(q&&0==c?5:0);K.setAttribute("version","1.1");K.setAttribute("width",t+"px");K.setAttribute("height",ea+"px");K.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+t+" "+ea);J.appendChild(K);var A=null!=J.createElementNS?J.createElementNS(mxConstants.NS_SVG,"g"):J.createElement("g");K.appendChild(A);var I=this.createSvgCanvas(A);
-I.foOffset=e?-.5:0;I.textOffset=e?-.5:0;I.imageOffset=e?-.5:0;I.translate(Math.floor(c/d-y.x/x),Math.floor(c/d-y.y/x));var fa=document.createElement("div"),M=I.getAlternateText;I.getAlternateText=function(b,d,c,g,e,k,f,m,l,q,p,B,n){if(null!=k&&0<this.state.fontSize)try{mxUtils.isNode(k)?k=k.innerText:(fa.innerHTML=k,k=mxUtils.extractTextWithWhitespace(fa.childNodes));for(var u=Math.ceil(2*g/this.state.fontSize),v=[],z=0,va=0;(0==u||z<u)&&va<k.length;){var Ua=k.charCodeAt(va);if(10==Ua||13==Ua){if(0<
+g=g/m-(b?f.x:f.y);this.getModel().beginUpdate();try{for(var l=(g-e)/(c.length-1),g=e,k=1;k<c.length-1;k++){var t=this.view.getState(this.model.getParent(c[k].cell)),p=this.getCellGeometry(c[k].cell),g=g+l;null!=p&&null!=t&&(p=p.clone(),b?p.x=Math.round(g-p.width/2)-t.origin.x:p.y=Math.round(g-p.height/2)-t.origin.y,this.getModel().setGeometry(c[k].cell,p))}}finally{this.getModel().endUpdate()}}}return d};Graph.prototype.isCloneEvent=function(b){return mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)};
+Graph.prototype.createSvgImageExport=function(){var b=new mxImageExport;b.getLinkForCellState=mxUtils.bind(this,function(b,d){return this.getLinkForCell(b.cell)});return b};Graph.prototype.parseBackgroundImage=function(b){var d=null;null!=b&&0<b.length&&(b=JSON.parse(b),d=new mxImage(b.src,b.width,b.height));return d};Graph.prototype.getBackgroundImageObject=function(b){return b};Graph.prototype.getSvg=function(b,d,c,g,e,k,f,m,l,t,p,B,n,u){var v=null;if(null!=u)for(v=new mxDictionary,p=0;p<u.length;p++)v.put(u[p],
+!0);if(u=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;c=null!=c?c:0;e=null!=e?e:!0;k=null!=k?k:!0;f=null!=f?f:!0;t=null!=t?t:!1;var y="page"==n?this.view.getBackgroundPageBounds():k&&null==v||g||"diagram"==n?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),x=this.view.scale;"diagram"==n&&null!=this.backgroundImage&&(y=mxRectangle.fromRectangle(y),y.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*
+x,(this.view.translate.y+this.backgroundImage.y)*x,this.backgroundImage.width*x,this.backgroundImage.height*x)));if(null==y)throw Error(mxResources.get("drawingEmpty"));var L=mxUtils.createXmlDocument(),K=null!=L.createElementNS?L.createElementNS(mxConstants.NS_SVG,"svg"):L.createElement("svg");null!=b&&(null!=K.style?K.style.backgroundColor=b:K.setAttribute("style","background-color:"+b));null==L.createElementNS?(K.setAttribute("xmlns",mxConstants.NS_SVG),K.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):
+K.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);b=d/x;var q=Math.max(1,Math.ceil(y.width*b)+2*c)+(t&&0==c?5:0),ea=Math.max(1,Math.ceil(y.height*b)+2*c)+(t&&0==c?5:0);K.setAttribute("version","1.1");K.setAttribute("width",q+"px");K.setAttribute("height",ea+"px");K.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+q+" "+ea);L.appendChild(K);var A=null!=L.createElementNS?L.createElementNS(mxConstants.NS_SVG,"g"):L.createElement("g");K.appendChild(A);var I=this.createSvgCanvas(A);
+I.foOffset=e?-.5:0;I.textOffset=e?-.5:0;I.imageOffset=e?-.5:0;I.translate(Math.floor(c/d-y.x/x),Math.floor(c/d-y.y/x));var fa=document.createElement("div"),M=I.getAlternateText;I.getAlternateText=function(b,d,c,g,e,k,f,m,l,t,p,B,n){if(null!=k&&0<this.state.fontSize)try{mxUtils.isNode(k)?k=k.innerText:(fa.innerHTML=k,k=mxUtils.extractTextWithWhitespace(fa.childNodes));for(var u=Math.ceil(2*g/this.state.fontSize),v=[],z=0,va=0;(0==u||z<u)&&va<k.length;){var Ua=k.charCodeAt(va);if(10==Ua||13==Ua){if(0<
z)break}else v.push(k.charAt(va)),255>Ua&&z++;va++}v.length<k.length&&1<k.length-v.length&&(k=mxUtils.trim(v.join(""))+"...");return k}catch(Ja){return M.apply(this,arguments)}else return M.apply(this,arguments)};var W=this.backgroundImage;if(null!=W){d=x/d;var ia=this.view.translate,la=new mxRectangle((W.x+ia.x)*d,(W.y+ia.y)*d,W.width*d,W.height*d);mxUtils.intersects(y,la)&&I.image(W.x+ia.x,W.y+ia.y,W.width,W.height,W.src,!0)}I.scale(b);I.textEnabled=f;m=null!=m?m:this.createSvgImageExport();var C=
m.drawCellState,Q=m.getLinkForCellState;m.getLinkForCellState=function(b,d){var c=Q.apply(this,arguments);return null==c||b.view.graph.isCustomLink(c)?null:c};m.getLinkTargetForCellState=function(b,d){return b.view.graph.getLinkTargetForCell(b.cell)};m.drawCellState=function(b,d){for(var c=b.view.graph,g=null!=v?v.get(b.cell):c.isCellSelected(b.cell),e=c.model.getParent(b.cell);!(k&&null==v||g)&&null!=e;)g=null!=v?v.get(e):c.isCellSelected(e),e=c.model.getParent(e);(k&&null==v||g)&&C.apply(this,arguments)};
m.drawState(this.getView().getState(this.model.root),I);this.updateSvgLinks(K,l,!0);this.addForeignObjectWarning(I,K);return K}finally{u&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(b,d){if("0"!=urlParams["svg-warning"]&&0<d.getElementsByTagName("foreignObject").length){var c=b.createElement("switch"),g=b.createElement("g");g.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var e=b.createElement("a");
@@ -2637,12 +2637,12 @@ b&&(d?b.x=c+(c-b.x):b.y=c+(c-b.y))};e(g.getTerminalPoint(!0));e(g.getTerminalPoi
function(b,d){this.model.beginUpdate();try{b=this.model.getTopmostCells(b);for(var c=[],g=0;g<b.length;g++)if(this.model.isEdge(b[g])){var e=this.view.getState(b[g]);null!=e&&this.flipEdgePoints(b[g],d,(d?e.getCenterX():e.getCenterY())/this.view.scale-(d?e.origin.x:e.origin.y)-(d?this.view.translate.x:this.view.translate.y))}else{var k=this.getCellGeometry(b[g]);null!=k&&this.flipChildren(b[g],d,d?k.getCenterX()-k.x:k.getCenterY()-k.y);c.push(b[g])}this.toggleCellStyles(d?mxConstants.STYLE_FLIPH:
mxConstants.STYLE_FLIPV,!1,c)}finally{this.model.endUpdate()}};Graph.prototype.deleteCells=function(b,d){var c=null;if(null!=b&&0<b.length){this.model.beginUpdate();try{for(var g=0;g<b.length;g++){var e=this.model.getParent(b[g]);if(this.isTable(e)){var k=this.getCellGeometry(b[g]),f=this.getCellGeometry(e);null!=k&&null!=f&&(f=f.clone(),f.height-=k.height,this.model.setGeometry(e,f))}}var m=this.selectParentAfterDelete?this.model.getParents(b):null;this.removeCells(b,d)}finally{this.model.endUpdate()}if(null!=
m)for(c=[],g=0;g<m.length;g++)this.model.contains(m[g])&&(this.model.isVertex(m[g])||this.model.isEdge(m[g]))&&c.push(m[g])}return c};Graph.prototype.insertTableColumn=function(b,d){var c=this.getModel();c.beginUpdate();try{var g=b,e=0;if(this.isTableCell(b))var k=c.getParent(b),g=c.getParent(k),e=mxUtils.indexOf(c.getChildCells(k,!0),b);else this.isTableRow(b)?g=c.getParent(b):b=c.getChildCells(g,!0)[0],d||(e=c.getChildCells(b,!0).length-1);for(var f=c.getChildCells(g,!0),m=Graph.minTableColumnWidth,
-k=0;k<f.length;k++){var l=c.getChildCells(f[k],!0)[e],q=c.cloneCell(l,!1),p=this.getCellGeometry(q);q.value=null;q.style=mxUtils.setStyle(mxUtils.setStyle(q.style,"rowspan",null),"colspan",null);if(null!=p){null!=p.alternateBounds&&(p.width=p.alternateBounds.width,p.height=p.alternateBounds.height,p.alternateBounds=null);var m=p.width,B=this.getCellGeometry(f[k]);null!=B&&(p.height=B.height)}c.add(f[k],q,e+(d?0:1))}var n=this.getCellGeometry(g);null!=n&&(n=n.clone(),n.width+=m,c.setGeometry(g,n))}finally{c.endUpdate()}};
+k=0;k<f.length;k++){var l=c.getChildCells(f[k],!0)[e],t=c.cloneCell(l,!1),p=this.getCellGeometry(t);t.value=null;t.style=mxUtils.setStyle(mxUtils.setStyle(t.style,"rowspan",null),"colspan",null);if(null!=p){null!=p.alternateBounds&&(p.width=p.alternateBounds.width,p.height=p.alternateBounds.height,p.alternateBounds=null);var m=p.width,B=this.getCellGeometry(f[k]);null!=B&&(p.height=B.height)}c.add(f[k],t,e+(d?0:1))}var n=this.getCellGeometry(g);null!=n&&(n=n.clone(),n.width+=m,c.setGeometry(g,n))}finally{c.endUpdate()}};
Graph.prototype.deleteLane=function(b){var d=this.getModel();d.beginUpdate();try{var c=null,c="stackLayout"==this.getCurrentCellStyle(b).childLayout?b:d.getParent(b),g=d.getChildCells(c,!0);0==g.length?d.remove(c):(c==b&&(b=g[g.length-1]),d.remove(b))}finally{d.endUpdate()}};Graph.prototype.insertLane=function(b,d){var c=this.getModel();c.beginUpdate();try{var g=null,e=b;if("stackLayout"==this.getCurrentCellStyle(e).childLayout)var g=e,k=c.getChildCells(g,!0),e=k[d?0:k.length-1];else g=c.getParent(e);
var f=g.getIndex(e),e=c.cloneCell(e,!1);e.value=null;c.add(g,e,f+(d?0:1))}finally{c.endUpdate()}};Graph.prototype.insertTableRow=function(b,d){var c=this.getModel();c.beginUpdate();try{var g=b,e=b;if(this.isTableCell(b))e=c.getParent(b),g=c.getParent(e);else if(this.isTableRow(b))g=c.getParent(b);else var k=c.getChildCells(g,!0),e=k[d?0:k.length-1];var f=c.getChildCells(e,!0),m=g.getIndex(e),e=c.cloneCell(e,!1);e.value=null;var l=this.getCellGeometry(e);if(null!=l){for(k=0;k<f.length;k++){b=c.cloneCell(f[k],
-!1);b.value=null;b.style=mxUtils.setStyle(mxUtils.setStyle(b.style,"rowspan",null),"colspan",null);var q=this.getCellGeometry(b);null!=q&&(null!=q.alternateBounds&&(q.width=q.alternateBounds.width,q.height=q.alternateBounds.height,q.alternateBounds=null),q.height=l.height);e.insert(b)}c.add(g,e,m+(d?0:1));var p=this.getCellGeometry(g);null!=p&&(p=p.clone(),p.height+=l.height,c.setGeometry(g,p))}}finally{c.endUpdate()}};Graph.prototype.deleteTableColumn=function(b){var d=this.getModel();d.beginUpdate();
-try{var c=b,g=b;this.isTableCell(b)&&(g=d.getParent(b));this.isTableRow(g)&&(c=d.getParent(g));var e=d.getChildCells(c,!0);if(0==e.length)d.remove(c);else{this.isTableRow(g)||(g=e[0]);var k=d.getChildCells(g,!0);if(1>=k.length)d.remove(c);else{var f=k.length-1;this.isTableCell(b)&&(f=mxUtils.indexOf(k,b));for(g=b=0;g<e.length;g++){var m=d.getChildCells(e[g],!0)[f];d.remove(m);var l=this.getCellGeometry(m);null!=l&&(b=Math.max(b,l.width))}var q=this.getCellGeometry(c);null!=q&&(q=q.clone(),q.width-=
-b,d.setGeometry(c,q))}}}finally{d.endUpdate()}};Graph.prototype.deleteTableRow=function(b){var d=this.getModel();d.beginUpdate();try{var c=b,g=b;this.isTableCell(b)&&(b=g=d.getParent(b));this.isTableRow(b)&&(c=d.getParent(g));var e=d.getChildCells(c,!0);if(1>=e.length)d.remove(c);else{this.isTableRow(g)||(g=e[e.length-1]);d.remove(g);b=0;var k=this.getCellGeometry(g);null!=k&&(b=k.height);var f=this.getCellGeometry(c);null!=f&&(f=f.clone(),f.height-=b,d.setGeometry(c,f))}}finally{d.endUpdate()}};
+!1);b.value=null;b.style=mxUtils.setStyle(mxUtils.setStyle(b.style,"rowspan",null),"colspan",null);var t=this.getCellGeometry(b);null!=t&&(null!=t.alternateBounds&&(t.width=t.alternateBounds.width,t.height=t.alternateBounds.height,t.alternateBounds=null),t.height=l.height);e.insert(b)}c.add(g,e,m+(d?0:1));var p=this.getCellGeometry(g);null!=p&&(p=p.clone(),p.height+=l.height,c.setGeometry(g,p))}}finally{c.endUpdate()}};Graph.prototype.deleteTableColumn=function(b){var d=this.getModel();d.beginUpdate();
+try{var c=b,g=b;this.isTableCell(b)&&(g=d.getParent(b));this.isTableRow(g)&&(c=d.getParent(g));var e=d.getChildCells(c,!0);if(0==e.length)d.remove(c);else{this.isTableRow(g)||(g=e[0]);var k=d.getChildCells(g,!0);if(1>=k.length)d.remove(c);else{var f=k.length-1;this.isTableCell(b)&&(f=mxUtils.indexOf(k,b));for(g=b=0;g<e.length;g++){var m=d.getChildCells(e[g],!0)[f];d.remove(m);var l=this.getCellGeometry(m);null!=l&&(b=Math.max(b,l.width))}var t=this.getCellGeometry(c);null!=t&&(t=t.clone(),t.width-=
+b,d.setGeometry(c,t))}}}finally{d.endUpdate()}};Graph.prototype.deleteTableRow=function(b){var d=this.getModel();d.beginUpdate();try{var c=b,g=b;this.isTableCell(b)&&(b=g=d.getParent(b));this.isTableRow(b)&&(c=d.getParent(g));var e=d.getChildCells(c,!0);if(1>=e.length)d.remove(c);else{this.isTableRow(g)||(g=e[e.length-1]);d.remove(g);b=0;var k=this.getCellGeometry(g);null!=k&&(b=k.height);var f=this.getCellGeometry(c);null!=f&&(f=f.clone(),f.height-=b,d.setGeometry(c,f))}}finally{d.endUpdate()}};
Graph.prototype.insertRow=function(b,d){for(var c=b.tBodies[0],g=c.rows[0].cells,e=0,k=0;k<g.length;k++)var f=g[k].getAttribute("colspan"),e=e+(null!=f?parseInt(f):1);c=c.insertRow(d);for(k=0;k<e;k++)mxUtils.br(c.insertCell(-1));return c.cells[0]};Graph.prototype.deleteRow=function(b,d){b.tBodies[0].deleteRow(d)};Graph.prototype.insertColumn=function(b,d){var c=b.tHead;if(null!=c)for(var g=0;g<c.rows.length;g++){var e=document.createElement("th");c.rows[g].appendChild(e);mxUtils.br(e)}c=b.tBodies[0];
for(g=0;g<c.rows.length;g++)e=c.rows[g].insertCell(d),mxUtils.br(e);return c.rows[0].cells[0<=d?d:c.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(b,d){if(0<=d)for(var c=b.tBodies[0].rows,g=0;g<c.length;g++)c[g].cells.length>d&&c[g].deleteCell(d)};Graph.prototype.pasteHtmlAtCaret=function(b){var d;if(window.getSelection){if(d=window.getSelection(),d.getRangeAt&&d.rangeCount){d=d.getRangeAt(0);d.deleteContents();var c=document.createElement("div");c.innerHTML=b;b=document.createDocumentFragment();
for(var g;g=c.firstChild;)lastNode=b.appendChild(g);d.insertNode(b)}}else(d=document.selection)&&"Control"!=d.type&&d.createRange().pasteHTML(b)};Graph.prototype.createLinkForHint=function(b,d){function c(b,d){b.length>d&&(b=b.substring(0,Math.round(d/2))+"..."+b.substring(b.length-Math.round(d/4)));return b}b=null!=b?b:"javascript:void(0);";if(null==d||0==d.length)d=this.isCustomLink(b)?this.getLinkTitle(b):b;var g=document.createElement("a");g.setAttribute("rel",this.linkRelation);g.setAttribute("href",
@@ -2677,15 +2677,15 @@ this.currentDx)/e-g.x);g=this.roundLength((this.bounds.y+this.currentDy)/e-g.y);
mxStackLayout.prototype.resizeCell=function(b,d){O.apply(this,arguments);var c=this.graph.getCellStyle(b);if(null==c.childLayout){var g=this.graph.model.getParent(b),e=null!=g?this.graph.getCellGeometry(g):null;if(null!=e&&(c=this.graph.getCellStyle(g),"stackLayout"==c.childLayout)){var k=parseFloat(mxUtils.getValue(c,"stackBorder",mxStackLayout.prototype.border)),c="1"==mxUtils.getValue(c,"horizontalStack","1"),f=this.graph.getActualStartSize(g),e=e.clone();c?e.height=d.height+f.y+f.height+2*k:e.width=
d.width+f.x+f.width+2*k;this.graph.model.setGeometry(g,e)}}};var A=mxSelectionCellsHandler.prototype.getHandledSelectionCells;mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function b(b){c.get(b)||(c.put(b,!0),e.push(b))}for(var d=A.apply(this,arguments),c=new mxDictionary,g=this.graph.model,e=[],k=0;k<d.length;k++){var f=d[k];this.graph.isTableCell(f)?b(g.getParent(g.getParent(f))):this.graph.isTableRow(f)&&b(g.getParent(f));b(f)}return e};var C=mxVertexHandler.prototype.createParentHighlightShape;
mxVertexHandler.prototype.createParentHighlightShape=function(b){var d=C.apply(this,arguments);d.stroke="#C0C0C0";d.strokewidth=1;return d};var E=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(b){var d=E.apply(this,arguments);d.stroke="#C0C0C0";d.strokewidth=1;return d};mxVertexHandler.prototype.rotationHandleVSpacing=-12;mxVertexHandler.prototype.getRotationHandlePosition=function(){var b=this.getHandlePadding();return new mxPoint(this.bounds.x+
-this.bounds.width-this.rotationHandleVSpacing+b.x/2,this.bounds.y+this.rotationHandleVSpacing-b.y/2)};mxVertexHandler.prototype.isRecursiveResize=function(b,d){return this.graph.isRecursiveVertexResize(b)&&!mxEvent.isAltDown(d.getEvent())};mxVertexHandler.prototype.isCenteredEvent=function(b,d){return mxEvent.isControlDown(d.getEvent())||mxEvent.isMetaDown(d.getEvent())};var L=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return L.apply(this,
+this.bounds.width-this.rotationHandleVSpacing+b.x/2,this.bounds.y+this.rotationHandleVSpacing-b.y/2)};mxVertexHandler.prototype.isRecursiveResize=function(b,d){return this.graph.isRecursiveVertexResize(b)&&!mxEvent.isAltDown(d.getEvent())};mxVertexHandler.prototype.isCenteredEvent=function(b,d){return mxEvent.isControlDown(d.getEvent())||mxEvent.isMetaDown(d.getEvent())};var J=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return J.apply(this,
arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)&&!this.graph.isTable(this.state.cell)};mxVertexHandler.prototype.getSizerBounds=function(){return this.graph.isTableCell(this.state.cell)?this.graph.view.getState(this.graph.model.getParent(this.graph.model.getParent(this.state.cell))):this.bounds};var N=mxVertexHandler.prototype.isParentHighlightVisible;mxVertexHandler.prototype.isParentHighlightVisible=function(){return N.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&
!this.graph.isTableRow(this.state.cell)};var M=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(b){return b.tableHandle||M.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var b=0;this.graph.isTableRow(this.state.cell)?b=1:this.graph.isTableCell(this.state.cell)&&(b=2);return b};var Q=mxVertexHandler.prototype.getSelectionBorderBounds;
-mxVertexHandler.prototype.getSelectionBorderBounds=function(){return Q.apply(this,arguments).grow(-this.getSelectionBorderInset())};var V=null,X=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){null==V&&(V=mxCellRenderer.defaultShapes.tableLine);var b=X.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var d=function(b,d,c){for(var g=[],e=0;e<b.length;e++){var f=b[e];g.push(null==f?null:new mxPoint((l+f.x+d)*k,(q+f.y+c)*k))}return g},
-c=this,g=this.graph,e=g.model,k=g.view.scale,f=this.state,m=this.selectionBorder,l=this.state.origin.x+g.view.translate.x,q=this.state.origin.y+g.view.translate.y;null==b&&(b=[]);var p=g.view.getCellStates(e.getChildCells(this.state.cell,!0));if(0<p.length){for(var B=e.getChildCells(p[0].cell,!0),n=g.getTableLines(this.state.cell,!1,!0),u=g.getTableLines(this.state.cell,!0,!1),e=0;e<p.length;e++)mxUtils.bind(this,function(e){var l=p[e],q=e<p.length-1?p[e+1]:null,q=null!=q?g.getCellGeometry(q.cell):
-null,B=null!=q&&null!=q.alternateBounds?q.alternateBounds:q,q=null!=u[e]?new V(u[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!1);q.isDashed=m.isDashed;q.svgStrokeTolerance++;l=new mxHandle(l,"row-resize",null,q);l.tableHandle=!0;var n=0;l.shape.node.parentNode.insertBefore(l.shape.node,l.shape.node.parentNode.firstChild);l.redraw=function(){if(null!=this.shape){this.shape.stroke=0==n?mxConstants.NONE:m.stroke;if(this.shape.constructor==V)this.shape.line=d(u[e],0,n),this.shape.updateBoundsFromLine();
+mxVertexHandler.prototype.getSelectionBorderBounds=function(){return Q.apply(this,arguments).grow(-this.getSelectionBorderInset())};var V=null,X=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){null==V&&(V=mxCellRenderer.defaultShapes.tableLine);var b=X.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var d=function(b,d,c){for(var g=[],e=0;e<b.length;e++){var f=b[e];g.push(null==f?null:new mxPoint((l+f.x+d)*k,(t+f.y+c)*k))}return g},
+c=this,g=this.graph,e=g.model,k=g.view.scale,f=this.state,m=this.selectionBorder,l=this.state.origin.x+g.view.translate.x,t=this.state.origin.y+g.view.translate.y;null==b&&(b=[]);var p=g.view.getCellStates(e.getChildCells(this.state.cell,!0));if(0<p.length){for(var B=e.getChildCells(p[0].cell,!0),n=g.getTableLines(this.state.cell,!1,!0),u=g.getTableLines(this.state.cell,!0,!1),e=0;e<p.length;e++)mxUtils.bind(this,function(e){var l=p[e],t=e<p.length-1?p[e+1]:null,t=null!=t?g.getCellGeometry(t.cell):
+null,B=null!=t&&null!=t.alternateBounds?t.alternateBounds:t,t=null!=u[e]?new V(u[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!1);t.isDashed=m.isDashed;t.svgStrokeTolerance++;l=new mxHandle(l,"row-resize",null,t);l.tableHandle=!0;var n=0;l.shape.node.parentNode.insertBefore(l.shape.node,l.shape.node.parentNode.firstChild);l.redraw=function(){if(null!=this.shape){this.shape.stroke=0==n?mxConstants.NONE:m.stroke;if(this.shape.constructor==V)this.shape.line=d(u[e],0,n),this.shape.updateBoundsFromLine();
else{var b=g.getActualStartSize(f.cell,!0);this.shape.bounds.height=1;this.shape.bounds.y=this.state.y+this.state.height+n*k;this.shape.bounds.x=f.x+(e==p.length-1?0:b.x*k);this.shape.bounds.width=f.width-(e==p.length-1?0:b.width+b.x+k)}this.shape.redraw()}};var v=!1;l.setPosition=function(b,d,c){n=Math.max(Graph.minTableRowHeight-b.height,d.y-b.y-b.height);v=mxEvent.isShiftDown(c.getEvent());null!=B&&v&&(n=Math.min(n,B.height-Graph.minTableRowHeight))};l.execute=function(b){if(0!=n)g.setTableRowHeight(this.state.cell,
-n,!v);else if(!c.blockDelayedSelection){var d=g.getCellAt(b.getGraphX(),b.getGraphY())||f.cell;g.graphHandler.selectCellForEvent(d,b)}n=0};l.reset=function(){n=0};b.push(l)})(e);for(e=0;e<B.length;e++)mxUtils.bind(this,function(e){var l=g.view.getState(B[e]),q=g.getCellGeometry(B[e]),p=null!=q.alternateBounds?q.alternateBounds:q;null==l&&(l=new mxCellState(g.view,B[e],g.getCellStyle(B[e])),l.x=f.x+q.x*k,l.y=f.y+q.y*k,l.width=p.width*k,l.height=p.height*k,l.updateCachedBounds());var q=e<B.length-1?
-B[e+1]:null,q=null!=q?g.getCellGeometry(q):null,u=null!=q&&null!=q.alternateBounds?q.alternateBounds:q,q=null!=n[e]?new V(n[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!0);q.isDashed=m.isDashed;q.svgStrokeTolerance++;l=new mxHandle(l,"col-resize",null,q);l.tableHandle=!0;var v=0;l.shape.node.parentNode.insertBefore(l.shape.node,l.shape.node.parentNode.firstChild);l.redraw=function(){if(null!=this.shape){this.shape.stroke=0==v?mxConstants.NONE:m.stroke;if(this.shape.constructor==
+n,!v);else if(!c.blockDelayedSelection){var d=g.getCellAt(b.getGraphX(),b.getGraphY())||f.cell;g.graphHandler.selectCellForEvent(d,b)}n=0};l.reset=function(){n=0};b.push(l)})(e);for(e=0;e<B.length;e++)mxUtils.bind(this,function(e){var l=g.view.getState(B[e]),t=g.getCellGeometry(B[e]),p=null!=t.alternateBounds?t.alternateBounds:t;null==l&&(l=new mxCellState(g.view,B[e],g.getCellStyle(B[e])),l.x=f.x+t.x*k,l.y=f.y+t.y*k,l.width=p.width*k,l.height=p.height*k,l.updateCachedBounds());var t=e<B.length-1?
+B[e+1]:null,t=null!=t?g.getCellGeometry(t):null,u=null!=t&&null!=t.alternateBounds?t.alternateBounds:t,t=null!=n[e]?new V(n[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!0);t.isDashed=m.isDashed;t.svgStrokeTolerance++;l=new mxHandle(l,"col-resize",null,t);l.tableHandle=!0;var v=0;l.shape.node.parentNode.insertBefore(l.shape.node,l.shape.node.parentNode.firstChild);l.redraw=function(){if(null!=this.shape){this.shape.stroke=0==v?mxConstants.NONE:m.stroke;if(this.shape.constructor==
V)this.shape.line=d(n[e],v,0),this.shape.updateBoundsFromLine();else{var b=g.getActualStartSize(f.cell,!0);this.shape.bounds.width=1;this.shape.bounds.x=this.state.x+(p.width+v)*k;this.shape.bounds.y=f.y+(e==B.length-1?0:b.y*k);this.shape.bounds.height=f.height-(e==B.length-1?0:(b.height+b.y)*k)}this.shape.redraw()}};var y=!1;l.setPosition=function(b,d,c){v=Math.max(Graph.minTableColumnWidth-p.width,d.x-b.x-p.width);y=mxEvent.isShiftDown(c.getEvent());null==u||y||(v=Math.min(v,u.width-Graph.minTableColumnWidth))};
l.execute=function(b){if(0!=v)g.setTableColumnWidth(this.state.cell,v,y);else if(!c.blockDelayedSelection){var d=g.getCellAt(b.getGraphX(),b.getGraphY())||f.cell;g.graphHandler.selectCellForEvent(d,b)}v=0};l.positionChanged=function(){};l.reset=function(){v=0};b.push(l)})(e)}}return null!=b?b.reverse():null};var ja=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){ja.apply(this,arguments);if(null!=this.moveHandles)for(var d=0;d<this.moveHandles.length;d++)this.moveHandles[d].style.visibility=
b?"":"hidden";if(null!=this.cornerHandles)for(d=0;d<this.cornerHandles.length;d++)this.cornerHandles[d].node.style.visibility=b?"":"hidden"};mxVertexHandler.prototype.refreshMoveHandles=function(){var b=this.graph.model;if(null!=this.moveHandles){for(var d=0;d<this.moveHandles.length;d++)this.moveHandles[d].parentNode.removeChild(this.moveHandles[d]);this.moveHandles=null}this.moveHandles=[];for(d=0;d<b.getChildCount(this.state.cell);d++)mxUtils.bind(this,function(d){if(null!=d&&b.isVertex(d.cell)){var c=
@@ -2711,11 +2711,11 @@ HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangl
function(b,d){B.apply(this,arguments);mxEvent.isTouchEvent(d.getEvent())&&this.graph.isCellSelected(d.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(b){var d=b.getEvent();return mxEvent.isLeftMouseButton(d)&&(this.useLeftButtonForPanning&&null==b.getState()||mxEvent.isControlDown(d)&&!mxEvent.isShiftDown(d))||this.usePopupTrigger&&mxEvent.isPopupTrigger(d)};mxRubberband.prototype.isSpaceEvent=function(b){return this.graph.isEnabled()&&
!this.graph.isCellLocked(this.graph.getDefaultParent())&&(mxEvent.isControlDown(b.getEvent())||mxEvent.isMetaDown(b.getEvent()))&&mxEvent.isShiftDown(b.getEvent())&&mxEvent.isAltDown(b.getEvent())};mxRubberband.prototype.cancelled=!1;mxRubberband.prototype.cancel=function(){this.isActive()&&(this.cancelled=!0,this.reset())};mxRubberband.prototype.mouseUp=function(b,d){if(this.cancelled)this.cancelled=!1,d.consume();else{var c=null!=this.div&&"none"!=this.div.style.display,g=null,e=null,k=null,f=null;
null!=this.first&&null!=this.currentX&&null!=this.currentY&&(g=this.first.x,e=this.first.y,k=(this.currentX-g)/this.graph.view.scale,f=(this.currentY-e)/this.graph.view.scale,mxEvent.isAltDown(d.getEvent())||(k=this.graph.snap(k),f=this.graph.snap(f),this.graph.isGridEnabled()||(Math.abs(k)<this.graph.tolerance&&(k=0),Math.abs(f)<this.graph.tolerance&&(f=0))));this.reset();if(c){if(this.isSpaceEvent(d)){this.graph.model.beginUpdate();try{for(var l=this.graph.getCellsBeyond(g,e,this.graph.getDefaultParent(),
-!0,!0),c=0;c<l.length;c++)if(this.graph.isCellMovable(l[c])){var m=this.graph.view.getState(l[c]),q=this.graph.getCellGeometry(l[c]);null!=m&&null!=q&&(q=q.clone(),q.translate(k,f),this.graph.model.setGeometry(l[c],q))}}finally{this.graph.model.endUpdate()}}else k=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(k,d.getEvent());d.consume()}}};mxRubberband.prototype.mouseMove=function(b,d){if(!d.isConsumed()&&null!=this.first){var c=mxUtils.getScrollOrigin(this.graph.container),
+!0,!0),c=0;c<l.length;c++)if(this.graph.isCellMovable(l[c])){var m=this.graph.view.getState(l[c]),t=this.graph.getCellGeometry(l[c]);null!=m&&null!=t&&(t=t.clone(),t.translate(k,f),this.graph.model.setGeometry(l[c],t))}}finally{this.graph.model.endUpdate()}}else k=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(k,d.getEvent());d.consume()}}};mxRubberband.prototype.mouseMove=function(b,d){if(!d.isConsumed()&&null!=this.first){var c=mxUtils.getScrollOrigin(this.graph.container),
g=mxUtils.getOffset(this.graph.container);c.x-=g.x;c.y-=g.y;var g=d.getX()+c.x,c=d.getY()+c.y,e=this.first.x-g,k=this.first.y-c,f=this.graph.tolerance;if(null!=this.div||Math.abs(e)>f||Math.abs(k)>f)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(g,c),this.isSpaceEvent(d)?(g=this.x+this.width,c=this.y+this.height,e=this.graph.view.scale,mxEvent.isAltDown(d.getEvent())||(this.width=this.graph.snap(this.width/e)*e,this.height=this.graph.snap(this.height/e)*e,this.graph.isGridEnabled()||
(this.width<this.graph.tolerance&&(this.width=0),this.height<this.graph.tolerance&&(this.height=0)),this.x<this.first.x&&(this.x=g-this.width),this.y<this.first.y&&(this.y=c-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor="white",this.div.style.left=this.x+"px",this.div.style.top=this.y+"px",this.div.style.width=Math.max(0,this.width)+"px",this.div.style.height=this.graph.container.clientHeight+"px",this.div.style.borderWidth=0>=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",
null==this.secondDiv&&(this.secondDiv=this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&
-(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null)),d.consume()}};var J=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);J.apply(this,arguments)};var K=(new Date).getTime(),W=0,fa=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(b,d,c,g){fa.apply(this,arguments);c!=this.currentTerminalState?(K=(new Date).getTime(),
+(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null)),d.consume()}};var L=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);L.apply(this,arguments)};var K=(new Date).getTime(),W=0,fa=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(b,d,c,g){fa.apply(this,arguments);c!=this.currentTerminalState?(K=(new Date).getTime(),
W=0):W=(new Date).getTime()-K;this.currentTerminalState=c};var I=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(b){return null!=this.currentTerminalState&&b.getState()==this.currentTerminalState&&2E3<W||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&I.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(b,d,c){d=null!=b&&0==b;var g=this.state.getVisibleTerminalState(d);
b=null!=b&&(0==b||b>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==b)?this.graph.getConnectionConstraint(this.state,g,d):null;c=null!=(null!=b?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(d),b):null)?c?this.endFixedHandleImage:this.fixedHandleImage:null!=b&&null!=g?c?this.endTerminalHandleImage:this.terminalHandleImage:c?this.endHandleImage:this.handleImage;if(null!=c)return c=new mxImageShape(new mxRectangle(0,0,c.width,c.height),c.src),c.preserveImageAspect=
!1,c;c=mxConstants.HANDLE_SIZE;this.preferHtml&&--c;return new mxRectangleShape(new mxRectangle(0,0,c,c),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var la=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(b,d,c){this.handleImage=d==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:d==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return la.apply(this,arguments)};var oa=mxGraphHandler.prototype.getBoundingBox;
@@ -2740,14 +2740,14 @@ null!=this.moveHandles||1!=this.graph.getSelectionCount()||null!=this.index&&thi
this.moveHandles[b]&&null!=this.moveHandles[b].parentNode&&this.moveHandles[b].parentNode.removeChild(this.moveHandles[b]);this.moveHandles=null}if(null!=this.cornerHandles){for(b=0;b<this.cornerHandles.length;b++)null!=this.cornerHandles[b]&&null!=this.cornerHandles[b].node&&null!=this.cornerHandles[b].node.parentNode&&this.cornerHandles[b].node.parentNode.removeChild(this.cornerHandles[b].node);this.cornerHandles=null}null!=this.linkHint&&(null!=this.linkHint.parentNode&&this.linkHint.parentNode.removeChild(this.linkHint),
this.linkHint=null);null!=this.changeHandler&&(this.graph.getSelectionModel().removeListener(this.changeHandler),this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);null!=this.editingHandler&&(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};var S=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(S.apply(this),null!=this.state&&null!=this.linkHint)){var b=this.state;null!=this.state.text&&
null!=this.state.text.bounds&&(b=new mxRectangle(b.x,b.y,b.width,b.height),b.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(b.x+(b.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(b.y+b.height+Editor.hintOffset)+"px"}};var na=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){na.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var ca=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=
-function(){ca.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getSelectionModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function b(b,d,c){mxShape.call(this);this.line=b;this.stroke=d;this.strokewidth=null!=c?c:1;this.updateBoundsFromLine()}function c(){mxSwimlane.call(this)}function e(){mxSwimlane.call(this)}function f(){mxCylinder.call(this)}function n(){mxCylinder.call(this)}function l(){mxActor.call(this)}function t(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function g(){mxCylinder.call(this)}function q(){mxShape.call(this)}function m(){mxShape.call(this)}
+function(){ca.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getSelectionModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function b(b,d,c){mxShape.call(this);this.line=b;this.stroke=d;this.strokewidth=null!=c?c:1;this.updateBoundsFromLine()}function c(){mxSwimlane.call(this)}function e(){mxSwimlane.call(this)}function f(){mxCylinder.call(this)}function n(){mxCylinder.call(this)}function l(){mxActor.call(this)}function q(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function g(){mxCylinder.call(this)}function t(){mxShape.call(this)}function m(){mxShape.call(this)}
function p(b,d,c,g){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=c;this.strokewidth=null!=g?g:1}function v(){mxActor.call(this)}function u(){mxCylinder.call(this)}function x(){mxCylinder.call(this)}function y(){mxActor.call(this)}function G(){mxActor.call(this)}function H(){mxActor.call(this)}function D(){mxActor.call(this)}function F(){mxActor.call(this)}function O(){mxActor.call(this)}function A(){mxActor.call(this)}function C(b,d){this.canvas=b;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");
this.defaultVariation=d;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,C.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,C.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,C.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,C.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,C.prototype.curveTo);
-this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,C.prototype.arcTo)}function E(){mxRectangleShape.call(this)}function L(){mxRectangleShape.call(this)}function N(){mxActor.call(this)}function M(){mxActor.call(this)}function Q(){mxActor.call(this)}function V(){mxRectangleShape.call(this)}function X(){mxRectangleShape.call(this)}function ja(){mxCylinder.call(this)}function Y(){mxShape.call(this)}function da(){mxShape.call(this)}function ba(){mxEllipse.call(this)}function B(){mxShape.call(this)}
-function J(){mxShape.call(this)}function K(){mxRectangleShape.call(this)}function W(){mxShape.call(this)}function fa(){mxShape.call(this)}function I(){mxShape.call(this)}function la(){mxShape.call(this)}function oa(){mxShape.call(this)}function pa(){mxCylinder.call(this)}function ka(){mxCylinder.call(this)}function qa(){mxRectangleShape.call(this)}function Z(){mxDoubleEllipse.call(this)}function P(){mxDoubleEllipse.call(this)}function sa(){mxArrowConnector.call(this);this.spacing=0}function T(){mxArrowConnector.call(this);
+this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,C.prototype.arcTo)}function E(){mxRectangleShape.call(this)}function J(){mxRectangleShape.call(this)}function N(){mxActor.call(this)}function M(){mxActor.call(this)}function Q(){mxActor.call(this)}function V(){mxRectangleShape.call(this)}function X(){mxRectangleShape.call(this)}function ja(){mxCylinder.call(this)}function Y(){mxShape.call(this)}function da(){mxShape.call(this)}function ba(){mxEllipse.call(this)}function B(){mxShape.call(this)}
+function L(){mxShape.call(this)}function K(){mxRectangleShape.call(this)}function W(){mxShape.call(this)}function fa(){mxShape.call(this)}function I(){mxShape.call(this)}function la(){mxShape.call(this)}function oa(){mxShape.call(this)}function pa(){mxCylinder.call(this)}function ka(){mxCylinder.call(this)}function qa(){mxRectangleShape.call(this)}function Z(){mxDoubleEllipse.call(this)}function P(){mxDoubleEllipse.call(this)}function sa(){mxArrowConnector.call(this);this.spacing=0}function T(){mxArrowConnector.call(this);
this.spacing=0}function ha(){mxActor.call(this)}function ma(){mxRectangleShape.call(this)}function ra(){mxActor.call(this)}function S(){mxActor.call(this)}function na(){mxActor.call(this)}function ca(){mxActor.call(this)}function ea(){mxActor.call(this)}function ia(){mxActor.call(this)}function xa(){mxActor.call(this)}function Aa(){mxActor.call(this)}function ta(){mxActor.call(this)}function ua(){mxActor.call(this)}function aa(){mxEllipse.call(this)}function R(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}
function Ia(){mxRhombus.call(this)}function wa(){mxEllipse.call(this)}function Ba(){mxEllipse.call(this)}function ya(){mxEllipse.call(this)}function Ca(){mxEllipse.call(this)}function Fa(){mxActor.call(this)}function Da(){mxActor.call(this)}function za(){mxActor.call(this)}function U(b,d,c,g){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=c;this.strokewidth=null!=g?g:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Ga(){mxConnector.call(this)}
-function La(b,d,c,g,e,k,f,l,m,q){f+=m;var z=g.clone();g.x-=e*(2*f+m);g.y-=k*(2*f+m);e*=f+m;k*=f+m;return function(){b.ellipse(z.x-e-f,z.y-k-f,2*f,2*f);q?b.fillAndStroke():b.stroke()}}mxUtils.extend(b,mxShape);b.prototype.updateBoundsFromLine=function(){var b=null;if(null!=this.line)for(var d=0;d<this.line.length;d++){var c=this.line[d];null!=c&&(c=new mxRectangle(c.x,c.y,this.strokewidth,this.strokewidth),null==b?b=c:b.add(c))}this.bounds=null!=b?b:new mxRectangle};b.prototype.paintVertexShape=function(b,
+function La(b,d,c,g,e,k,f,l,m,t){f+=m;var z=g.clone();g.x-=e*(2*f+m);g.y-=k*(2*f+m);e*=f+m;k*=f+m;return function(){b.ellipse(z.x-e-f,z.y-k-f,2*f,2*f);t?b.fillAndStroke():b.stroke()}}mxUtils.extend(b,mxShape);b.prototype.updateBoundsFromLine=function(){var b=null;if(null!=this.line)for(var d=0;d<this.line.length;d++){var c=this.line[d];null!=c&&(c=new mxRectangle(c.x,c.y,this.strokewidth,this.strokewidth),null==b?b=c:b.add(c))}this.bounds=null!=b?b:new mxRectangle};b.prototype.paintVertexShape=function(b,
d,c,g,e){this.paintTableLine(b,this.line,0,0)};b.prototype.paintTableLine=function(b,d,c,g){if(null!=d){var z=null;b.begin();for(var e=0;e<d.length;e++){var k=d[e];null!=k&&(null==z?b.moveTo(k.x+c,k.y+g):null!=z&&b.lineTo(k.x+c,k.y+g));z=k}b.end();b.stroke()}};b.prototype.intersectsRectangle=function(b){var d=!1;if(mxShape.prototype.intersectsRectangle.apply(this,arguments)&&null!=this.line)for(var c=null,g=0;g<this.line.length&&!d;g++){var z=this.line[g];null!=z&&null!=c&&(d=mxUtils.rectangleIntersectsSegment(b,
c,z));c=z}return d};mxCellRenderer.registerShape("tableLine",b);mxUtils.extend(c,mxSwimlane);c.prototype.getLabelBounds=function(b){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};c.prototype.paintVertexShape=function(b,d,c,g,e){var z=null!=this.state?this.state.view.graph.isCellCollapsed(this.state.cell):!1,k=this.isHorizontal(),f=this.getTitleSize();0==f||this.outline?ya.prototype.paintVertexShape.apply(this,
arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),b.translate(-d,-c));z||this.outline||!(k&&f<e||!k&&f<g)||this.paintForeground(b,d,c,g,e)};c.prototype.paintForeground=function(b,d,c,g,e){if(null!=this.state){var z=this.flipH,k=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)var f=z,z=k,k=f;b.rotate(-this.getShapeRotation(),z,k,d+g/2,c+e/2);s=this.scale;d=this.bounds.x/s;c=this.bounds.y/s;g=this.bounds.width/s;e=this.bounds.height/
@@ -2756,17 +2756,17 @@ c);mxUtils.extend(e,c);e.prototype.paintForeground=function(){};mxCellRenderer.r
"darkOpacity2",this.darkOpacity2))));b.translate(d,c);b.begin();b.moveTo(0,0);b.lineTo(g-z,0);b.lineTo(g,z);b.lineTo(g,e);b.lineTo(z,e);b.lineTo(0,e-z);b.lineTo(0,0);b.close();b.end();b.fillAndStroke();this.outline||(b.setShadow(!1),0!=k&&(b.setFillAlpha(Math.abs(k)),b.setFillColor(0>k?"#FFFFFF":"#000000"),b.begin(),b.moveTo(0,0),b.lineTo(g-z,0),b.lineTo(g,z),b.lineTo(z,z),b.close(),b.fill()),0!=f&&(b.setFillAlpha(Math.abs(f)),b.setFillColor(0>f?"#FFFFFF":"#000000"),b.begin(),b.moveTo(0,0),b.lineTo(z,
z),b.lineTo(z,e),b.lineTo(0,e-z),b.close(),b.fill()),b.begin(),b.moveTo(z,e),b.lineTo(z,z),b.lineTo(0,0),b.moveTo(z,z),b.lineTo(g,z),b.end(),b.stroke())};f.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)?(b=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(b,b,0,0)):null};mxCellRenderer.registerShape("cube",f);var Sa=Math.tan(mxUtils.toRadians(30)),Ka=(.5-Sa)/2;mxCellRenderer.registerShape("isoRectangle",l);mxUtils.extend(n,
mxCylinder);n.prototype.size=6;n.prototype.paintVertexShape=function(b,d,c,g,e){b.setFillColor(this.stroke);var z=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;b.ellipse(d+.5*(g-z),c+.5*(e-z),z,z);b.fill();b.setFillColor(mxConstants.NONE);b.rect(d,c,g,e);b.fill()};mxCellRenderer.registerShape("waypoint",n);mxUtils.extend(l,mxActor);l.prototype.size=20;l.prototype.redrawPath=function(b,d,c,g,e){d=Math.min(g,e/Sa);b.translate((g-d)/2,(e-d)/2+d/4);b.moveTo(0,
-.25*d);b.lineTo(.5*d,d*Ka);b.lineTo(d,.25*d);b.lineTo(.5*d,(.5-Ka)*d);b.lineTo(0,.25*d);b.close();b.end()};mxCellRenderer.registerShape("isoRectangle",l);mxUtils.extend(t,mxCylinder);t.prototype.size=20;t.prototype.redrawPath=function(b,d,c,g,e,k){d=Math.min(g,e/(.5+Sa));k?(b.moveTo(0,.25*d),b.lineTo(.5*d,(.5-Ka)*d),b.lineTo(d,.25*d),b.moveTo(.5*d,(.5-Ka)*d),b.lineTo(.5*d,(1-Ka)*d)):(b.translate((g-d)/2,(e-d)/2),b.moveTo(0,.25*d),b.lineTo(.5*d,d*Ka),b.lineTo(d,.25*d),b.lineTo(d,.75*d),b.lineTo(.5*
-d,(1-Ka)*d),b.lineTo(0,.75*d),b.close());b.end()};mxCellRenderer.registerShape("isoCube",t);mxUtils.extend(d,mxCylinder);d.prototype.redrawPath=function(b,d,c,g,e,k){d=Math.min(e/2,Math.round(e/8)+this.strokewidth-1);if(k&&null!=this.fill||!k&&null==this.fill)b.moveTo(0,d),b.curveTo(0,2*d,g,2*d,g,d),k||(b.stroke(),b.begin()),b.translate(0,d/2),b.moveTo(0,d),b.curveTo(0,2*d,g,2*d,g,d),k||(b.stroke(),b.begin()),b.translate(0,d/2),b.moveTo(0,d),b.curveTo(0,2*d,g,2*d,g,d),k||(b.stroke(),b.begin()),b.translate(0,
+.25*d);b.lineTo(.5*d,d*Ka);b.lineTo(d,.25*d);b.lineTo(.5*d,(.5-Ka)*d);b.lineTo(0,.25*d);b.close();b.end()};mxCellRenderer.registerShape("isoRectangle",l);mxUtils.extend(q,mxCylinder);q.prototype.size=20;q.prototype.redrawPath=function(b,d,c,g,e,k){d=Math.min(g,e/(.5+Sa));k?(b.moveTo(0,.25*d),b.lineTo(.5*d,(.5-Ka)*d),b.lineTo(d,.25*d),b.moveTo(.5*d,(.5-Ka)*d),b.lineTo(.5*d,(1-Ka)*d)):(b.translate((g-d)/2,(e-d)/2),b.moveTo(0,.25*d),b.lineTo(.5*d,d*Ka),b.lineTo(d,.25*d),b.lineTo(d,.75*d),b.lineTo(.5*
+d,(1-Ka)*d),b.lineTo(0,.75*d),b.close());b.end()};mxCellRenderer.registerShape("isoCube",q);mxUtils.extend(d,mxCylinder);d.prototype.redrawPath=function(b,d,c,g,e,k){d=Math.min(e/2,Math.round(e/8)+this.strokewidth-1);if(k&&null!=this.fill||!k&&null==this.fill)b.moveTo(0,d),b.curveTo(0,2*d,g,2*d,g,d),k||(b.stroke(),b.begin()),b.translate(0,d/2),b.moveTo(0,d),b.curveTo(0,2*d,g,2*d,g,d),k||(b.stroke(),b.begin()),b.translate(0,d/2),b.moveTo(0,d),b.curveTo(0,2*d,g,2*d,g,d),k||(b.stroke(),b.begin()),b.translate(0,
-d);k||(b.moveTo(0,d),b.curveTo(0,-d/3,g,-d/3,g,d),b.lineTo(g,e-d),b.curveTo(g,e+d/3,0,e+d/3,0,e-d),b.close())};d.prototype.getLabelMargins=function(b){return new mxRectangle(0,2.5*Math.min(b.height/2,Math.round(b.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",d);mxUtils.extend(k,mxCylinder);k.prototype.size=30;k.prototype.darkOpacity=0;k.prototype.paintVertexShape=function(b,d,c,g,e){var z=Math.max(0,Math.min(g,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",
this.size))))),k=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity))));b.translate(d,c);b.begin();b.moveTo(0,0);b.lineTo(g-z,0);b.lineTo(g,z);b.lineTo(g,e);b.lineTo(0,e);b.lineTo(0,0);b.close();b.end();b.fillAndStroke();this.outline||(b.setShadow(!1),0!=k&&(b.setFillAlpha(Math.abs(k)),b.setFillColor(0>k?"#FFFFFF":"#000000"),b.begin(),b.moveTo(g-z,0),b.lineTo(g-z,z),b.lineTo(g,z),b.close(),b.fill()),b.begin(),b.moveTo(g-z,0),b.lineTo(g-z,z),b.lineTo(g,z),
-b.end(),b.stroke())};mxCellRenderer.registerShape("note",k);mxUtils.extend(g,k);mxCellRenderer.registerShape("note2",g);g.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(b.height*this.scale,d*this.scale),0,0)}return null};mxUtils.extend(q,mxShape);q.prototype.isoAngle=15;q.prototype.paintVertexShape=function(b,d,c,g,e){var z=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,
-"isoAngle",this.isoAngle))))*Math.PI/200,z=Math.min(g*Math.tan(z),.5*e);b.translate(d,c);b.begin();b.moveTo(.5*g,0);b.lineTo(g,z);b.lineTo(g,e-z);b.lineTo(.5*g,e);b.lineTo(0,e-z);b.lineTo(0,z);b.close();b.fillAndStroke();b.setShadow(!1);b.begin();b.moveTo(0,z);b.lineTo(.5*g,2*z);b.lineTo(g,z);b.moveTo(.5*g,2*z);b.lineTo(.5*g,e);b.stroke()};mxCellRenderer.registerShape("isoCube2",q);mxUtils.extend(m,mxShape);m.prototype.size=15;m.prototype.paintVertexShape=function(b,d,c,g,e){var z=Math.max(0,Math.min(.5*
+b.end(),b.stroke())};mxCellRenderer.registerShape("note",k);mxUtils.extend(g,k);mxCellRenderer.registerShape("note2",g);g.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(b.height*this.scale,d*this.scale),0,0)}return null};mxUtils.extend(t,mxShape);t.prototype.isoAngle=15;t.prototype.paintVertexShape=function(b,d,c,g,e){var z=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,
+"isoAngle",this.isoAngle))))*Math.PI/200,z=Math.min(g*Math.tan(z),.5*e);b.translate(d,c);b.begin();b.moveTo(.5*g,0);b.lineTo(g,z);b.lineTo(g,e-z);b.lineTo(.5*g,e);b.lineTo(0,e-z);b.lineTo(0,z);b.close();b.fillAndStroke();b.setShadow(!1);b.begin();b.moveTo(0,z);b.lineTo(.5*g,2*z);b.lineTo(g,z);b.moveTo(.5*g,2*z);b.lineTo(.5*g,e);b.stroke()};mxCellRenderer.registerShape("isoCube2",t);mxUtils.extend(m,mxShape);m.prototype.size=15;m.prototype.paintVertexShape=function(b,d,c,g,e){var z=Math.max(0,Math.min(.5*
e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.translate(d,c);0==z?(b.rect(0,0,g,e),b.fillAndStroke()):(b.begin(),b.moveTo(0,z),b.arcTo(.5*g,z,0,0,1,.5*g,0),b.arcTo(.5*g,z,0,0,1,g,z),b.lineTo(g,e-z),b.arcTo(.5*g,z,0,0,1,.5*g,e),b.arcTo(.5*g,z,0,0,1,0,e-z),b.close(),b.fillAndStroke(),b.setShadow(!1),b.begin(),b.moveTo(g,z),b.arcTo(.5*g,z,0,0,1,.5*g,2*z),b.arcTo(.5*g,z,0,0,1,0,z),b.stroke())};mxCellRenderer.registerShape("cylinder2",m);mxUtils.extend(p,mxCylinder);p.prototype.size=
15;p.prototype.paintVertexShape=function(b,d,c,g,e){var z=Math.max(0,Math.min(.5*e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),k=mxUtils.getValue(this.style,"lid",!0);b.translate(d,c);0==z?(b.rect(0,0,g,e),b.fillAndStroke()):(b.begin(),k?(b.moveTo(0,z),b.arcTo(.5*g,z,0,0,1,.5*g,0),b.arcTo(.5*g,z,0,0,1,g,z)):(b.moveTo(0,0),b.arcTo(.5*g,z,0,0,0,.5*g,z),b.arcTo(.5*g,z,0,0,0,g,0)),b.lineTo(g,e-z),b.arcTo(.5*g,z,0,0,1,.5*g,e),b.arcTo(.5*g,z,0,0,1,0,e-z),b.close(),b.fillAndStroke(),b.setShadow(!1),
k&&(b.begin(),b.moveTo(g,z),b.arcTo(.5*g,z,0,0,1,.5*g,2*z),b.arcTo(.5*g,z,0,0,1,0,z),b.stroke()))};mxCellRenderer.registerShape("cylinder3",p);mxUtils.extend(v,mxActor);v.prototype.redrawPath=function(b,d,c,g,e){b.moveTo(0,0);b.quadTo(g/2,.5*e,g,0);b.quadTo(.5*g,e/2,g,e);b.quadTo(g/2,.5*e,0,e);b.quadTo(.5*g,e/2,0,0);b.end()};mxCellRenderer.registerShape("switch",v);mxUtils.extend(u,mxCylinder);u.prototype.tabWidth=60;u.prototype.tabHeight=20;u.prototype.tabPosition="right";u.prototype.arcSize=.1;
-u.prototype.paintVertexShape=function(b,d,c,g,e){b.translate(d,c);d=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var z=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),k=mxUtils.getValue(this.style,"rounded",!1),f=mxUtils.getValue(this.style,"absoluteArcSize",!1),l=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f||(l*=Math.min(g,e));
-l=Math.min(l,.5*g,.5*(e-c));d=Math.max(d,l);d=Math.min(g-l,d);k||(l=0);b.begin();"left"==z?(b.moveTo(Math.max(l,0),c),b.lineTo(Math.max(l,0),0),b.lineTo(d,0),b.lineTo(d,c)):(b.moveTo(g-d,c),b.lineTo(g-d,0),b.lineTo(g-Math.max(l,0),0),b.lineTo(g-Math.max(l,0),c));k?(b.moveTo(0,l+c),b.arcTo(l,l,0,0,1,l,c),b.lineTo(g-l,c),b.arcTo(l,l,0,0,1,g,l+c),b.lineTo(g,e-l),b.arcTo(l,l,0,0,1,g-l,e),b.lineTo(l,e),b.arcTo(l,l,0,0,1,0,e-l)):(b.moveTo(0,c),b.lineTo(g,c),b.lineTo(g,e),b.lineTo(0,e));b.close();b.fillAndStroke();
+u.prototype.paintVertexShape=function(b,d,c,g,e){b.translate(d,c);d=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var z=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),k=mxUtils.getValue(this.style,"rounded",!1),f=mxUtils.getValue(this.style,"absoluteArcSize",!1),m=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f||(m*=Math.min(g,e));
+m=Math.min(m,.5*g,.5*(e-c));d=Math.max(d,m);d=Math.min(g-m,d);k||(m=0);b.begin();"left"==z?(b.moveTo(Math.max(m,0),c),b.lineTo(Math.max(m,0),0),b.lineTo(d,0),b.lineTo(d,c)):(b.moveTo(g-d,c),b.lineTo(g-d,0),b.lineTo(g-Math.max(m,0),0),b.lineTo(g-Math.max(m,0),c));k?(b.moveTo(0,m+c),b.arcTo(m,m,0,0,1,m,c),b.lineTo(g-m,c),b.arcTo(m,m,0,0,1,g,m+c),b.lineTo(g,e-m),b.arcTo(m,m,0,0,1,g-m,e),b.lineTo(m,e),b.arcTo(m,m,0,0,1,0,e-m)):(b.moveTo(0,c),b.lineTo(g,c),b.lineTo(g,e),b.lineTo(0,e));b.close();b.fillAndStroke();
b.setShadow(!1);"triangle"==mxUtils.getValue(this.style,"folderSymbol",null)&&(b.begin(),b.moveTo(g-30,c+20),b.lineTo(g-20,c+10),b.lineTo(g-10,c+20),b.close(),b.stroke())};mxCellRenderer.registerShape("folder",u);u.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var c=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,d=mxUtils.getValue(this.style,
"tabHeight",15)*this.scale,g=mxUtils.getValue(this.style,"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1),k=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));e||(k*=Math.min(b.width,b.height));k=Math.min(k,.5*b.width,.5*(b.height-d));g||(k=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(k,0,Math.min(b.width,b.width-c),Math.min(b.height,b.height-d)):new mxRectangle(Math.min(b.width,b.width-c),0,k,Math.min(b.height,b.height-
d))}return new mxRectangle(0,Math.min(b.height,d),0,0)}return null};mxUtils.extend(x,mxCylinder);x.prototype.arcSize=.1;x.prototype.paintVertexShape=function(b,d,c,g,e){b.translate(d,c);var k=mxUtils.getValue(this.style,"rounded",!1),z=mxUtils.getValue(this.style,"absoluteArcSize",!1);d=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));c=mxUtils.getValue(this.style,"umlStateConnection",null);z||(d*=Math.min(g,e));d=Math.min(d,.5*g,.5*e);k||(d=0);k=0;null!=c&&(k=10);b.begin();b.moveTo(k,
@@ -2785,7 +2785,7 @@ g,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):g*Math.max(0,
d=g*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(g,0),new mxPoint(d,0),new mxPoint(d,e/2),new mxPoint(0,e/2),new mxPoint(d,e/2),new mxPoint(d,e),new mxPoint(g,e)],this.isRounded,c,!1);b.end()};mxCellRenderer.registerShape("curlyBracket",O);mxUtils.extend(A,mxActor);A.prototype.redrawPath=function(b,d,c,g,e){b.setStrokeWidth(1);b.setFillColor(this.stroke);
d=g/5;b.rect(0,0,d,e);b.fillAndStroke();b.rect(2*d,0,d,e);b.fillAndStroke();b.rect(4*d,0,d,e);b.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",A);C.prototype.moveTo=function(b,d){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;this.firstX=b;this.firstY=d};C.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};
C.prototype.quadTo=function(b,d,c,g){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=g};C.prototype.curveTo=function(b,d,c,g,e,k){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=k};C.prototype.arcTo=function(b,d,c,g,e,k,f){this.originalArcTo.apply(this.canvas,arguments);this.lastX=k;this.lastY=f};C.prototype.lineTo=function(b,d){if(null!=this.lastX&&null!=this.lastY){var c=function(b){return"number"===typeof b?b?0>b?-1:1:b===b?0:NaN:NaN},g=Math.abs(b-
-this.lastX),e=Math.abs(d-this.lastY),k=Math.sqrt(g*g+e*e);if(2>k){this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;return}var z=Math.round(k/10),f=this.defaultVariation;5>z&&(z=5,f/=3);for(var l=c(b-this.lastX)*g/z,c=c(d-this.lastY)*e/z,g=g/k,e=e/k,k=0;k<z;k++){var m=(Math.random()-.5)*f;this.originalLineTo.call(this.canvas,l*k+this.lastX-m*e,c*k+this.lastY-m*g)}this.originalLineTo.call(this.canvas,b,d)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=
+this.lastX),e=Math.abs(d-this.lastY),k=Math.sqrt(g*g+e*e);if(2>k){this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;return}var z=Math.round(k/10),f=this.defaultVariation;5>z&&(z=5,f/=3);for(var m=c(b-this.lastX)*g/z,c=c(d-this.lastY)*e/z,g=g/k,e=e/k,k=0;k<z;k++){var l=(Math.random()-.5)*f;this.originalLineTo.call(this.canvas,m*k+this.lastX-l*e,c*k+this.lastY-l*g)}this.originalLineTo.call(this.canvas,b,d)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=
d};C.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};mxShape.prototype.defaultJiggle=1.5;var cb=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(b){cb.apply(this,arguments);null==b.handJiggle&&(b.handJiggle=this.createHandJiggle(b))};var db=mxShape.prototype.afterPaint;
mxShape.prototype.afterPaint=function(b){db.apply(this,arguments);null!=b.handJiggle&&(b.handJiggle.destroy(),delete b.handJiggle)};mxShape.prototype.createComicCanvas=function(b){return new C(b,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle))};mxShape.prototype.createHandJiggle=function(b){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"comic","0")?null:this.createComicCanvas(b)};mxRhombus.prototype.defaultJiggle=2;var gb=mxRectangleShape.prototype.isHtmlAllowed;
mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.outline&&(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0")&&"0"==mxUtils.getValue(this.style,"sketch","1"==urlParams.rough?"1":"0"))&&gb.apply(this,arguments)};var hb=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(b,d,c,g,e){if(null==b.handJiggle||b.handJiggle.constructor!=C)hb.apply(this,arguments);else{var k=!0;null!=this.style&&(k="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,
@@ -2793,7 +2793,7 @@ mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.outline&&(null==
k,e*k)),b.moveTo(d+k,c),b.lineTo(d+g-k,c),b.quadTo(d+g,c,d+g,c+k),b.lineTo(d+g,c+e-k),b.quadTo(d+g,c+e,d+g-k,c+e),b.lineTo(d+k,c+e),b.quadTo(d,c+e,d,c+e-k),b.lineTo(d,c+k),b.quadTo(d,c,d+k,c)):(b.moveTo(d,c),b.lineTo(d+g,c),b.lineTo(d+g,c+e),b.lineTo(d,c+e),b.lineTo(d,c)),b.close(),b.end(),b.fillAndStroke()}};mxUtils.extend(E,mxRectangleShape);E.prototype.size=.1;E.prototype.fixedSize=!1;E.prototype.isHtmlAllowed=function(){return!1};E.prototype.getLabelBounds=function(b){if(mxUtils.getValue(this.state.style,
mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)){var d=b.width,c=b.height;b=new mxRectangle(b.x,b.y,d,c);var g=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.max(g,Math.min(d*e,c*e));b.x+=Math.round(g);b.width-=Math.round(2*g)}return b};
E.prototype.paintForeground=function(b,d,c,g,e){var k=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),z=parseFloat(mxUtils.getValue(this.style,"size",this.size)),z=k?Math.max(0,Math.min(g,z)):g*Math.max(0,Math.min(1,z));this.isRounded&&(k=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,z=Math.max(z,Math.min(g*k,e*k)));z=Math.round(z);b.begin();b.moveTo(d+z,c);b.lineTo(d+z,c+e);b.moveTo(d+g-z,c);b.lineTo(d+g-z,c+e);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
-arguments)};mxCellRenderer.registerShape("process",E);mxCellRenderer.registerShape("process2",E);mxUtils.extend(L,mxRectangleShape);L.prototype.paintBackground=function(b,d,c,g,e){b.setFillColor(mxConstants.NONE);b.rect(d,c,g,e);b.fill()};L.prototype.paintForeground=function(b,d,c,g,e){};mxCellRenderer.registerShape("transparent",L);mxUtils.extend(N,mxHexagon);N.prototype.size=30;N.prototype.position=.5;N.prototype.position2=.5;N.prototype.base=20;N.prototype.getLabelMargins=function(){return new mxRectangle(0,
+arguments)};mxCellRenderer.registerShape("process",E);mxCellRenderer.registerShape("process2",E);mxUtils.extend(J,mxRectangleShape);J.prototype.paintBackground=function(b,d,c,g,e){b.setFillColor(mxConstants.NONE);b.rect(d,c,g,e);b.fill()};J.prototype.paintForeground=function(b,d,c,g,e){};mxCellRenderer.registerShape("transparent",J);mxUtils.extend(N,mxHexagon);N.prototype.size=30;N.prototype.position=.5;N.prototype.position2=.5;N.prototype.base=20;N.prototype.getLabelMargins=function(){return new mxRectangle(0,
0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};N.prototype.isRoundable=function(){return!0};N.prototype.redrawPath=function(b,d,c,g,e){d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var k=g*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),z=g*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",
this.position2)))),f=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(b,[new mxPoint(0,0),new mxPoint(g,0),new mxPoint(g,e-c),new mxPoint(Math.min(g,k+f),e-c),new mxPoint(z,e),new mxPoint(Math.max(0,k),e-c),new mxPoint(0,e-c)],this.isRounded,d,!0,[4])};mxCellRenderer.registerShape("callout",N);mxUtils.extend(M,mxActor);M.prototype.size=.2;M.prototype.fixedSize=20;M.prototype.isRoundable=function(){return!0};M.prototype.redrawPath=function(b,d,c,g,e){d=
"0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):g*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(g-d,0),new mxPoint(g,e/2),new mxPoint(g-d,e),new mxPoint(0,e),new mxPoint(d,e/2)],this.isRounded,c,!0);b.end()};mxCellRenderer.registerShape("step",M);
@@ -2801,35 +2801,35 @@ mxUtils.extend(Q,mxHexagon);Q.prototype.size=.25;Q.prototype.fixedSize=20;Q.prot
0),new mxPoint(g-d,0),new mxPoint(g,.5*e),new mxPoint(g-d,e),new mxPoint(d,e),new mxPoint(0,.5*e)],this.isRounded,c,!0)};mxCellRenderer.registerShape("hexagon",Q);mxUtils.extend(V,mxRectangleShape);V.prototype.isHtmlAllowed=function(){return!1};V.prototype.paintForeground=function(b,d,c,g,e){var k=Math.min(g/5,e/5)+1;b.begin();b.moveTo(d+g/2,c+k);b.lineTo(d+g/2,c+e-k);b.moveTo(d+k,c+e/2);b.lineTo(d+g-k,c+e/2);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",
V);var $a=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var d=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+d,b.y+d,b.width-2*d,b.height-2*d)}return b};mxRhombus.prototype.paintVertexShape=function(b,d,c,g,e){$a.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var k=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
0);d+=k;c+=k;g-=2*k;e-=2*k;0<g&&0<e&&(b.setShadow(!1),$a.apply(this,[b,d,c,g,e]))}};mxUtils.extend(X,mxRectangleShape);X.prototype.isHtmlAllowed=function(){return!1};X.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var d=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+d,b.y+d,b.width-2*d,b.height-2*d)}return b};X.prototype.paintForeground=function(b,d,c,g,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var k=
-Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);d+=k;c+=k;g-=2*k;e-=2*k;0<g&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}b.setDashed(!1);var k=0,z;do{z=mxCellRenderer.defaultShapes[this.style["symbol"+k]];if(null!=z){var f=this.style["symbol"+k+"Align"],l=this.style["symbol"+k+"VerticalAlign"],m=this.style["symbol"+k+"Width"],q=this.style["symbol"+k+"Height"],p=this.style["symbol"+k+"Spacing"]||0,B=this.style["symbol"+k+"VSpacing"]||p,va=
-this.style["symbol"+k+"ArcSpacing"];null!=va&&(va*=this.getArcSize(g+this.strokewidth,e+this.strokewidth),p+=va,B+=va);var va=d,Ja=c,va=f==mxConstants.ALIGN_CENTER?va+(g-m)/2:f==mxConstants.ALIGN_RIGHT?va+(g-m-p):va+p,Ja=l==mxConstants.ALIGN_MIDDLE?Ja+(e-q)/2:l==mxConstants.ALIGN_BOTTOM?Ja+(e-q-B):Ja+B;b.save();f=new z;f.style=this.style;z.prototype.paintVertexShape.call(f,b,va,Ja,m,q);b.restore()}k++}while(null!=z)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",
+Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);d+=k;c+=k;g-=2*k;e-=2*k;0<g&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}b.setDashed(!1);var k=0,z;do{z=mxCellRenderer.defaultShapes[this.style["symbol"+k]];if(null!=z){var f=this.style["symbol"+k+"Align"],m=this.style["symbol"+k+"VerticalAlign"],l=this.style["symbol"+k+"Width"],t=this.style["symbol"+k+"Height"],p=this.style["symbol"+k+"Spacing"]||0,B=this.style["symbol"+k+"VSpacing"]||p,va=
+this.style["symbol"+k+"ArcSpacing"];null!=va&&(va*=this.getArcSize(g+this.strokewidth,e+this.strokewidth),p+=va,B+=va);var va=d,Ja=c,va=f==mxConstants.ALIGN_CENTER?va+(g-l)/2:f==mxConstants.ALIGN_RIGHT?va+(g-l-p):va+p,Ja=m==mxConstants.ALIGN_MIDDLE?Ja+(e-t)/2:m==mxConstants.ALIGN_BOTTOM?Ja+(e-t-B):Ja+B;b.save();f=new z;f.style=this.style;z.prototype.paintVertexShape.call(f,b,va,Ja,l,t);b.restore()}k++}while(null!=z)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",
X);mxUtils.extend(ja,mxCylinder);ja.prototype.redrawPath=function(b,d,c,g,e,k){k?(b.moveTo(0,0),b.lineTo(g/2,e/2),b.lineTo(g,0),b.end()):(b.moveTo(0,0),b.lineTo(g,0),b.lineTo(g,e),b.lineTo(0,e),b.close())};mxCellRenderer.registerShape("message",ja);mxUtils.extend(Y,mxShape);Y.prototype.paintBackground=function(b,d,c,g,e){b.translate(d,c);b.ellipse(g/4,0,g/2,e/4);b.fillAndStroke();b.begin();b.moveTo(g/2,e/4);b.lineTo(g/2,2*e/3);b.moveTo(g/2,e/3);b.lineTo(0,e/3);b.moveTo(g/2,e/3);b.lineTo(g,e/3);b.moveTo(g/
2,2*e/3);b.lineTo(0,e);b.moveTo(g/2,2*e/3);b.lineTo(g,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlActor",Y);mxUtils.extend(da,mxShape);da.prototype.getLabelMargins=function(b){return new mxRectangle(b.width/6,0,0,0)};da.prototype.paintBackground=function(b,d,c,g,e){b.translate(d,c);b.begin();b.moveTo(0,e/4);b.lineTo(0,3*e/4);b.end();b.stroke();b.begin();b.moveTo(0,e/2);b.lineTo(g/6,e/2);b.end();b.stroke();b.ellipse(g/6,0,5*g/6,e);b.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",
-da);mxUtils.extend(ba,mxEllipse);ba.prototype.paintVertexShape=function(b,d,c,g,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+g/8,c+e);b.lineTo(d+7*g/8,c+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",ba);mxUtils.extend(B,mxShape);B.prototype.paintVertexShape=function(b,d,c,g,e){b.translate(d,c);b.begin();b.moveTo(g,0);b.lineTo(0,e);b.moveTo(0,0);b.lineTo(g,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlDestroy",B);mxUtils.extend(J,mxShape);
-J.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};J.prototype.paintBackground=function(b,d,c,g,e){b.translate(d,c);b.begin();b.moveTo(3*g/8,e/8*1.1);b.lineTo(5*g/8,0);b.end();b.stroke();b.ellipse(0,e/8,g,7*e/8);b.fillAndStroke()};J.prototype.paintForeground=function(b,d,c,g,e){b.begin();b.moveTo(3*g/8,e/8*1.1);b.lineTo(5*g/8,e/4);b.end();b.stroke()};mxCellRenderer.registerShape("umlControl",J);mxUtils.extend(K,mxRectangleShape);K.prototype.size=
+da);mxUtils.extend(ba,mxEllipse);ba.prototype.paintVertexShape=function(b,d,c,g,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+g/8,c+e);b.lineTo(d+7*g/8,c+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",ba);mxUtils.extend(B,mxShape);B.prototype.paintVertexShape=function(b,d,c,g,e){b.translate(d,c);b.begin();b.moveTo(g,0);b.lineTo(0,e);b.moveTo(0,0);b.lineTo(g,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlDestroy",B);mxUtils.extend(L,mxShape);
+L.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};L.prototype.paintBackground=function(b,d,c,g,e){b.translate(d,c);b.begin();b.moveTo(3*g/8,e/8*1.1);b.lineTo(5*g/8,0);b.end();b.stroke();b.ellipse(0,e/8,g,7*e/8);b.fillAndStroke()};L.prototype.paintForeground=function(b,d,c,g,e){b.begin();b.moveTo(3*g/8,e/8*1.1);b.lineTo(5*g/8,e/4);b.end();b.stroke()};mxCellRenderer.registerShape("umlControl",L);mxUtils.extend(K,mxRectangleShape);K.prototype.size=
40;K.prototype.isHtmlAllowed=function(){return!1};K.prototype.getLabelBounds=function(b){var d=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(b.x,b.y,b.width,d)};K.prototype.paintBackground=function(b,d,c,g,e){var k=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),f=mxUtils.getValue(this.style,"participant");null==f||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,b,d,
c,g,k):(f=this.state.view.graph.cellRenderer.getShape(f),null!=f&&f!=K&&(f=new f,f.apply(this.state),b.save(),f.paintVertexShape(b,d,c,g,k),b.restore()));k<e&&(b.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),b.begin(),b.moveTo(d+g/2,c+k),b.lineTo(d+g/2,c+e),b.end(),b.stroke())};K.prototype.paintForeground=function(b,d,c,g,e){var k=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,b,d,c,g,Math.min(e,
k))};mxCellRenderer.registerShape("umlLifeline",K);mxUtils.extend(W,mxShape);W.prototype.width=60;W.prototype.height=30;W.prototype.corner=10;W.prototype.getLabelMargins=function(b){return new mxRectangle(0,0,b.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),b.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*this.scale))};W.prototype.paintBackground=function(b,d,c,g,e){var k=this.corner,f=Math.min(g,Math.max(k,parseFloat(mxUtils.getValue(this.style,
-"width",this.width)))),z=Math.min(e,Math.max(1.5*k,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),l=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);l!=mxConstants.NONE&&(b.setFillColor(l),b.rect(d,c,g,e),b.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(b,d,c,g,e),b.setGradient(this.fill,this.gradient,d,c,g,e,this.gradientDirection)):b.setFillColor(this.fill);b.begin();
+"width",this.width)))),z=Math.min(e,Math.max(1.5*k,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),m=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);m!=mxConstants.NONE&&(b.setFillColor(m),b.rect(d,c,g,e),b.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(b,d,c,g,e),b.setGradient(this.fill,this.gradient,d,c,g,e,this.gradientDirection)):b.setFillColor(this.fill);b.begin();
b.moveTo(d,c);b.lineTo(d+f,c);b.lineTo(d+f,c+Math.max(0,z-1.5*k));b.lineTo(d+Math.max(0,f-k),c+z);b.lineTo(d,c+z);b.close();b.fillAndStroke();b.begin();b.moveTo(d+f,c);b.lineTo(d+g,c);b.lineTo(d+g,c+e);b.lineTo(d,c+e);b.lineTo(d,c+z);b.stroke()};mxCellRenderer.registerShape("umlFrame",W);mxPerimeter.CenterPerimeter=function(b,d,c,g){return new mxPoint(b.getCenterX(),b.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(b,d,
c,g){g=K.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g)*d.view.scale);d=parseFloat(d.style[mxConstants.STYLE_STROKEWIDTH]||1)*d.view.scale/2-1;c.x<b.getCenterX()&&(d=-1*(d+1));return new mxPoint(b.getCenterX()+d,Math.min(b.y+b.height,Math.max(b.y+g,c.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(b,d,c,g){g=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",
mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(b,d,c,g){g=parseFloat(d.style[mxConstants.STYLE_STROKEWIDTH]||1)*d.view.scale/2-1;null!=d.style.backboneSize&&(g+=parseFloat(d.style.backboneSize)*d.view.scale/2-1);if("south"==d.style[mxConstants.STYLE_DIRECTION]||"north"==d.style[mxConstants.STYLE_DIRECTION])return c.x<b.getCenterX()&&(g=-1*(g+1)),new mxPoint(b.getCenterX()+g,Math.min(b.y+b.height,Math.max(b.y,c.y)));c.y<b.getCenterY()&&(g=-1*(g+1));return new mxPoint(Math.min(b.x+
b.width,Math.max(b.x,c.x)),b.getCenterY()+g)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(b,d,c,g){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(b,new mxRectangle(0,0,0,Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(d.style,"size",N.prototype.size))*d.view.scale))),d.style),d,c,g)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(b,
-d,c,g){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),k=e?D.prototype.fixedSize:D.prototype.size;null!=d&&(k=mxUtils.getValue(d.style,"size",k));e&&(k*=d.view.scale);var f=b.x,z=b.y,l=b.width,m=b.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z),new mxPoint(f+l,z+e),new mxPoint(f+
-l,z+m),new mxPoint(f,z+m-e),new mxPoint(f,z)]):(e=e?Math.max(0,Math.min(.5*l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f+e,z),new mxPoint(f+l,z),new mxPoint(f+l-e,z+m),new mxPoint(f,z+m),new mxPoint(f+e,z)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);g&&(c.x<f||c.x>f+l?b.y=c.y:b.x=c.x);return mxUtils.getPerimeterPoint(z,b,c)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(b,d,c,g){var e="0"!=mxUtils.getValue(d.style,
-"fixedSize","0"),k=e?F.prototype.fixedSize:F.prototype.size;null!=d&&(k=mxUtils.getValue(d.style,"size",k));e&&(k*=d.view.scale);var f=b.x,z=b.y,l=b.width,m=b.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(.5*l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f+e,z),new mxPoint(f+l-e,z),new mxPoint(f+l,z+m),new mxPoint(f,z+m),new mxPoint(f+e,z)]):d==mxConstants.DIRECTION_WEST?
-(e=e?Math.max(0,Math.min(l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z),new mxPoint(f+l,z),new mxPoint(f+l-e,z+m),new mxPoint(f+e,z+m),new mxPoint(f,z)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z+e),new mxPoint(f+l,z),new mxPoint(f+l,z+m),new mxPoint(f,z+m-e),new mxPoint(f,z+e)]):(e=e?Math.max(0,Math.min(m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z),new mxPoint(f+l,z+e),new mxPoint(f+l,z+m-e),new mxPoint(f,z+m),new mxPoint(f,
-z)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);g&&(c.x<f||c.x>f+l?b.y=c.y:b.x=c.x);return mxUtils.getPerimeterPoint(z,b,c)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(b,d,c,g){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),k=e?M.prototype.fixedSize:M.prototype.size;null!=d&&(k=mxUtils.getValue(d.style,"size",k));e&&(k*=d.view.scale);var f=b.x,z=b.y,l=b.width,m=b.height,q=b.getCenterX();b=b.getCenterY();d=null!=
-d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z),new mxPoint(f+l-e,z),new mxPoint(f+l,b),new mxPoint(f+l-e,z+m),new mxPoint(f,z+m),new mxPoint(f+e,b),new mxPoint(f,z)]):d==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f+e,z),new mxPoint(f+l,z),new mxPoint(f+l-e,b),new mxPoint(f+
-l,z+m),new mxPoint(f+e,z+m),new mxPoint(f,b),new mxPoint(f+e,z)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z+e),new mxPoint(q,z),new mxPoint(f+l,z+e),new mxPoint(f+l,z+m),new mxPoint(q,z+m-e),new mxPoint(f,z+m),new mxPoint(f,z+e)]):(e=e?Math.max(0,Math.min(m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z),new mxPoint(q,z+e),new mxPoint(f+l,z),new mxPoint(f+l,z+m-e),new mxPoint(q,z+m),new mxPoint(f,z+m-e),new mxPoint(f,z)]);q=new mxPoint(q,
-b);g&&(c.x<f||c.x>f+l?q.y=c.y:q.x=c.x);return mxUtils.getPerimeterPoint(z,q,c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(b,d,c,g){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),k=e?Q.prototype.fixedSize:Q.prototype.size;null!=d&&(k=mxUtils.getValue(d.style,"size",k));e&&(k*=d.view.scale);var f=b.x,z=b.y,l=b.width,m=b.height,q=b.getCenterX();b=b.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):
-mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(q,z),new mxPoint(f+l,z+e),new mxPoint(f+l,z+m-e),new mxPoint(q,z+m),new mxPoint(f,z+m-e),new mxPoint(f,z+e),new mxPoint(q,z)]):(e=e?Math.max(0,Math.min(l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f+e,z),new mxPoint(f+l-e,z),new mxPoint(f+l,b),new mxPoint(f+l-e,z+m),new mxPoint(f+e,z+m),new mxPoint(f,b),new mxPoint(f+e,z)]);q=new mxPoint(q,
-b);g&&(c.x<f||c.x>f+l?q.y=c.y:q.x=c.x);return mxUtils.getPerimeterPoint(z,q,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(fa,mxShape);fa.prototype.size=10;fa.prototype.paintBackground=function(b,d,c,g,e){var k=parseFloat(mxUtils.getValue(this.style,"size",this.size));b.translate(d,c);b.ellipse((g-k)/2,0,k,k);b.fillAndStroke();b.begin();b.moveTo(g/2,k);b.lineTo(g/2,e);b.end();b.stroke()};mxCellRenderer.registerShape("lollipop",fa);mxUtils.extend(I,mxShape);
+d,c,g){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),k=e?D.prototype.fixedSize:D.prototype.size;null!=d&&(k=mxUtils.getValue(d.style,"size",k));e&&(k*=d.view.scale);var f=b.x,z=b.y,m=b.width,l=b.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z),new mxPoint(f+m,z+e),new mxPoint(f+
+m,z+l),new mxPoint(f,z+l-e),new mxPoint(f,z)]):(e=e?Math.max(0,Math.min(.5*m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f+e,z),new mxPoint(f+m,z),new mxPoint(f+m-e,z+l),new mxPoint(f,z+l),new mxPoint(f+e,z)]);l=b.getCenterX();b=b.getCenterY();b=new mxPoint(l,b);g&&(c.x<f||c.x>f+m?b.y=c.y:b.x=c.x);return mxUtils.getPerimeterPoint(z,b,c)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(b,d,c,g){var e="0"!=mxUtils.getValue(d.style,
+"fixedSize","0"),k=e?F.prototype.fixedSize:F.prototype.size;null!=d&&(k=mxUtils.getValue(d.style,"size",k));e&&(k*=d.view.scale);var f=b.x,z=b.y,m=b.width,l=b.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(.5*m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f+e,z),new mxPoint(f+m-e,z),new mxPoint(f+m,z+l),new mxPoint(f,z+l),new mxPoint(f+e,z)]):d==mxConstants.DIRECTION_WEST?
+(e=e?Math.max(0,Math.min(m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z),new mxPoint(f+m,z),new mxPoint(f+m-e,z+l),new mxPoint(f+e,z+l),new mxPoint(f,z)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z+e),new mxPoint(f+m,z),new mxPoint(f+m,z+l),new mxPoint(f,z+l-e),new mxPoint(f,z+e)]):(e=e?Math.max(0,Math.min(l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z),new mxPoint(f+m,z+e),new mxPoint(f+m,z+l-e),new mxPoint(f,z+l),new mxPoint(f,
+z)]);l=b.getCenterX();b=b.getCenterY();b=new mxPoint(l,b);g&&(c.x<f||c.x>f+m?b.y=c.y:b.x=c.x);return mxUtils.getPerimeterPoint(z,b,c)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(b,d,c,g){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),k=e?M.prototype.fixedSize:M.prototype.size;null!=d&&(k=mxUtils.getValue(d.style,"size",k));e&&(k*=d.view.scale);var f=b.x,z=b.y,m=b.width,l=b.height,t=b.getCenterX();b=b.getCenterY();d=null!=
+d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z),new mxPoint(f+m-e,z),new mxPoint(f+m,b),new mxPoint(f+m-e,z+l),new mxPoint(f,z+l),new mxPoint(f+e,b),new mxPoint(f,z)]):d==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f+e,z),new mxPoint(f+m,z),new mxPoint(f+m-e,b),new mxPoint(f+
+m,z+l),new mxPoint(f+e,z+l),new mxPoint(f,b),new mxPoint(f+e,z)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z+e),new mxPoint(t,z),new mxPoint(f+m,z+e),new mxPoint(f+m,z+l),new mxPoint(t,z+l-e),new mxPoint(f,z+l),new mxPoint(f,z+e)]):(e=e?Math.max(0,Math.min(l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(f,z),new mxPoint(t,z+e),new mxPoint(f+m,z),new mxPoint(f+m,z+l-e),new mxPoint(t,z+l),new mxPoint(f,z+l-e),new mxPoint(f,z)]);t=new mxPoint(t,
+b);g&&(c.x<f||c.x>f+m?t.y=c.y:t.x=c.x);return mxUtils.getPerimeterPoint(z,t,c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(b,d,c,g){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),k=e?Q.prototype.fixedSize:Q.prototype.size;null!=d&&(k=mxUtils.getValue(d.style,"size",k));e&&(k*=d.view.scale);var f=b.x,z=b.y,m=b.width,l=b.height,t=b.getCenterX();b=b.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):
+mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(l,k)):l*Math.max(0,Math.min(1,k)),z=[new mxPoint(t,z),new mxPoint(f+m,z+e),new mxPoint(f+m,z+l-e),new mxPoint(t,z+l),new mxPoint(f,z+l-e),new mxPoint(f,z+e),new mxPoint(t,z)]):(e=e?Math.max(0,Math.min(m,k)):m*Math.max(0,Math.min(1,k)),z=[new mxPoint(f+e,z),new mxPoint(f+m-e,z),new mxPoint(f+m,b),new mxPoint(f+m-e,z+l),new mxPoint(f+e,z+l),new mxPoint(f,b),new mxPoint(f+e,z)]);t=new mxPoint(t,
+b);g&&(c.x<f||c.x>f+m?t.y=c.y:t.x=c.x);return mxUtils.getPerimeterPoint(z,t,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(fa,mxShape);fa.prototype.size=10;fa.prototype.paintBackground=function(b,d,c,g,e){var k=parseFloat(mxUtils.getValue(this.style,"size",this.size));b.translate(d,c);b.ellipse((g-k)/2,0,k,k);b.fillAndStroke();b.begin();b.moveTo(g/2,k);b.lineTo(g/2,e);b.end();b.stroke()};mxCellRenderer.registerShape("lollipop",fa);mxUtils.extend(I,mxShape);
I.prototype.size=10;I.prototype.inset=2;I.prototype.paintBackground=function(b,d,c,g,e){var k=parseFloat(mxUtils.getValue(this.style,"size",this.size)),f=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(d,c);b.begin();b.moveTo(g/2,k+f);b.lineTo(g/2,e);b.end();b.stroke();b.begin();b.moveTo((g-k)/2-f,k/2);b.quadTo((g-k)/2-f,k+f,g/2,k+f);b.quadTo((g+k)/2+f,k+f,(g+k)/2+f,k/2);b.end();b.stroke()};mxCellRenderer.registerShape("requires",I);mxUtils.extend(la,mxShape);
la.prototype.paintBackground=function(b,d,c,g,e){b.translate(d,c);b.begin();b.moveTo(0,0);b.quadTo(g,0,g,e/2);b.quadTo(g,e,0,e);b.end();b.stroke()};mxCellRenderer.registerShape("requiredInterface",la);mxUtils.extend(oa,mxShape);oa.prototype.inset=2;oa.prototype.paintBackground=function(b,d,c,g,e){var k=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(d,c);b.ellipse(0,k,g-2*k,e-2*k);b.fillAndStroke();b.begin();b.moveTo(g/2,0);b.quadTo(g,0,g,e/2);b.quadTo(g,e,
-g/2,e);b.end();b.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",oa);mxUtils.extend(pa,mxCylinder);pa.prototype.jettyWidth=20;pa.prototype.jettyHeight=10;pa.prototype.redrawPath=function(b,d,c,g,e,k){var f=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=f/2;var f=c+f/2,z=Math.min(d,e-d),l=Math.min(z+2*d,e-d);k?(b.moveTo(c,z),b.lineTo(f,z),b.lineTo(f,z+d),b.lineTo(c,z+d),b.moveTo(c,
-l),b.lineTo(f,l),b.lineTo(f,l+d),b.lineTo(c,l+d)):(b.moveTo(c,0),b.lineTo(g,0),b.lineTo(g,e),b.lineTo(c,e),b.lineTo(c,l+d),b.lineTo(0,l+d),b.lineTo(0,l),b.lineTo(c,l),b.lineTo(c,z+d),b.lineTo(0,z+d),b.lineTo(0,z),b.lineTo(c,z),b.close());b.end()};mxCellRenderer.registerShape("module",pa);mxUtils.extend(ka,mxCylinder);ka.prototype.jettyWidth=32;ka.prototype.jettyHeight=12;ka.prototype.redrawPath=function(b,d,c,g,e,k){var f=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,
-"jettyHeight",this.jettyHeight));c=f/2;var f=c+f/2,z=.3*e-d/2,l=.7*e-d/2;k?(b.moveTo(c,z),b.lineTo(f,z),b.lineTo(f,z+d),b.lineTo(c,z+d),b.moveTo(c,l),b.lineTo(f,l),b.lineTo(f,l+d),b.lineTo(c,l+d)):(b.moveTo(c,0),b.lineTo(g,0),b.lineTo(g,e),b.lineTo(c,e),b.lineTo(c,l+d),b.lineTo(0,l+d),b.lineTo(0,l),b.lineTo(c,l),b.lineTo(c,z+d),b.lineTo(0,z+d),b.lineTo(0,z),b.lineTo(c,z),b.close());b.end()};mxCellRenderer.registerShape("component",ka);mxUtils.extend(qa,mxRectangleShape);qa.prototype.paintForeground=
+g/2,e);b.end();b.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",oa);mxUtils.extend(pa,mxCylinder);pa.prototype.jettyWidth=20;pa.prototype.jettyHeight=10;pa.prototype.redrawPath=function(b,d,c,g,e,k){var f=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=f/2;var f=c+f/2,z=Math.min(d,e-d),m=Math.min(z+2*d,e-d);k?(b.moveTo(c,z),b.lineTo(f,z),b.lineTo(f,z+d),b.lineTo(c,z+d),b.moveTo(c,
+m),b.lineTo(f,m),b.lineTo(f,m+d),b.lineTo(c,m+d)):(b.moveTo(c,0),b.lineTo(g,0),b.lineTo(g,e),b.lineTo(c,e),b.lineTo(c,m+d),b.lineTo(0,m+d),b.lineTo(0,m),b.lineTo(c,m),b.lineTo(c,z+d),b.lineTo(0,z+d),b.lineTo(0,z),b.lineTo(c,z),b.close());b.end()};mxCellRenderer.registerShape("module",pa);mxUtils.extend(ka,mxCylinder);ka.prototype.jettyWidth=32;ka.prototype.jettyHeight=12;ka.prototype.redrawPath=function(b,d,c,g,e,k){var f=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,
+"jettyHeight",this.jettyHeight));c=f/2;var f=c+f/2,z=.3*e-d/2,m=.7*e-d/2;k?(b.moveTo(c,z),b.lineTo(f,z),b.lineTo(f,z+d),b.lineTo(c,z+d),b.moveTo(c,m),b.lineTo(f,m),b.lineTo(f,m+d),b.lineTo(c,m+d)):(b.moveTo(c,0),b.lineTo(g,0),b.lineTo(g,e),b.lineTo(c,e),b.lineTo(c,m+d),b.lineTo(0,m+d),b.lineTo(0,m),b.lineTo(c,m),b.lineTo(c,z+d),b.lineTo(0,z+d),b.lineTo(0,z),b.lineTo(c,z),b.close());b.end()};mxCellRenderer.registerShape("component",ka);mxUtils.extend(qa,mxRectangleShape);qa.prototype.paintForeground=
function(b,d,c,g,e){var k=g/2,f=e/2,z=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b.begin();this.addPoints(b,[new mxPoint(d+k,c),new mxPoint(d+g,c+f),new mxPoint(d+k,c+e),new mxPoint(d,c+f)],this.isRounded,z,!0);b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",qa);mxUtils.extend(Z,mxDoubleEllipse);Z.prototype.outerStroke=!0;Z.prototype.paintVertexShape=function(b,d,c,g,e){var k=Math.min(4,
Math.min(g/5,e/5));0<g&&0<e&&(b.ellipse(d+k,c+k,g-2*k,e-2*k),b.fillAndStroke());b.setShadow(!1);this.outerStroke&&(b.ellipse(d,c,g,e),b.stroke())};mxCellRenderer.registerShape("endState",Z);mxUtils.extend(P,Z);P.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",P);mxUtils.extend(sa,mxArrowConnector);sa.prototype.defaultWidth=4;sa.prototype.isOpenEnded=function(){return!0};sa.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,
this.strokewidth-1)};sa.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",sa);mxUtils.extend(T,mxArrowConnector);T.prototype.defaultWidth=10;T.prototype.defaultArrowWidth=20;T.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};T.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};T.prototype.getEdgeWidth=
@@ -2848,9 +2848,9 @@ mxActor);ua.prototype.size=.375;ua.prototype.isRoundable=function(){return!0};ua
mxEllipse);aa.prototype.paintVertexShape=function(b,d,c,g,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+g/2,c+e);b.lineTo(d+g,c+e);b.end();b.stroke()};mxCellRenderer.registerShape("tapeData",aa);mxUtils.extend(R,mxEllipse);R.prototype.paintVertexShape=function(b,d,c,g,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d,c+e/2);b.lineTo(d+g,c+e/2);b.end();b.stroke();b.begin();b.moveTo(d+g/2,c);b.lineTo(d+g/2,c+e);b.end();
b.stroke()};mxCellRenderer.registerShape("orEllipse",R);mxUtils.extend(Ea,mxEllipse);Ea.prototype.paintVertexShape=function(b,d,c,g,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d+.145*g,c+.145*e);b.lineTo(d+.855*g,c+.855*e);b.end();b.stroke();b.begin();b.moveTo(d+.855*g,c+.145*e);b.lineTo(d+.145*g,c+.855*e);b.end();b.stroke()};mxCellRenderer.registerShape("sumEllipse",Ea);mxUtils.extend(Ia,mxRhombus);Ia.prototype.paintVertexShape=function(b,d,c,
g,e){mxRhombus.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d,c+e/2);b.lineTo(d+g,c+e/2);b.end();b.stroke()};mxCellRenderer.registerShape("sortShape",Ia);mxUtils.extend(wa,mxEllipse);wa.prototype.paintVertexShape=function(b,d,c,g,e){b.begin();b.moveTo(d,c);b.lineTo(d+g,c);b.lineTo(d+g/2,c+e/2);b.close();b.fillAndStroke();b.begin();b.moveTo(d,c+e);b.lineTo(d+g,c+e);b.lineTo(d+g/2,c+e/2);b.close();b.fillAndStroke()};mxCellRenderer.registerShape("collate",wa);mxUtils.extend(Ba,
-mxEllipse);Ba.prototype.paintVertexShape=function(b,d,c,g,e){var k=b.state.strokeWidth/2,f=10+2*k,l=c+e-f/2;b.begin();b.moveTo(d,c);b.lineTo(d,c+e);b.moveTo(d+k,l);b.lineTo(d+k+f,l-f/2);b.moveTo(d+k,l);b.lineTo(d+k+f,l+f/2);b.moveTo(d+k,l);b.lineTo(d+g-k,l);b.moveTo(d+g,c);b.lineTo(d+g,c+e);b.moveTo(d+g-k,l);b.lineTo(d+g-f-k,l-f/2);b.moveTo(d+g-k,l);b.lineTo(d+g-f-k,l+f/2);b.end();b.stroke()};mxCellRenderer.registerShape("dimension",Ba);mxUtils.extend(ya,mxEllipse);ya.prototype.drawHidden=!0;ya.prototype.paintVertexShape=
-function(b,d,c,g,e){this.outline||b.setStrokeColor(null);if(null!=this.style){var k=b.pointerEvents,f=null!=this.fill&&this.fill!=mxConstants.NONE;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||f||(b.pointerEvents=!1);var l="1"==mxUtils.getValue(this.style,"top","1"),m="1"==mxUtils.getValue(this.style,"left","1"),z="1"==mxUtils.getValue(this.style,"right","1"),q="1"==mxUtils.getValue(this.style,"bottom","1");this.drawHidden||f||this.outline||l||z||q||m?(b.rect(d,c,g,e),b.fill(),
-b.pointerEvents=k,b.setStrokeColor(this.stroke),b.setLineCap("square"),b.begin(),b.moveTo(d,c),this.outline||l?b.lineTo(d+g,c):b.moveTo(d+g,c),this.outline||z?b.lineTo(d+g,c+e):b.moveTo(d+g,c+e),this.outline||q?b.lineTo(d,c+e):b.moveTo(d,c+e),(this.outline||m)&&b.lineTo(d,c),b.end(),b.stroke(),b.setLineCap("flat")):b.setStrokeColor(this.stroke)}};mxCellRenderer.registerShape("partialRectangle",ya);mxUtils.extend(Ca,mxEllipse);Ca.prototype.paintVertexShape=function(b,d,c,g,e){mxEllipse.prototype.paintVertexShape.apply(this,
+mxEllipse);Ba.prototype.paintVertexShape=function(b,d,c,g,e){var k=b.state.strokeWidth/2,f=10+2*k,m=c+e-f/2;b.begin();b.moveTo(d,c);b.lineTo(d,c+e);b.moveTo(d+k,m);b.lineTo(d+k+f,m-f/2);b.moveTo(d+k,m);b.lineTo(d+k+f,m+f/2);b.moveTo(d+k,m);b.lineTo(d+g-k,m);b.moveTo(d+g,c);b.lineTo(d+g,c+e);b.moveTo(d+g-k,m);b.lineTo(d+g-f-k,m-f/2);b.moveTo(d+g-k,m);b.lineTo(d+g-f-k,m+f/2);b.end();b.stroke()};mxCellRenderer.registerShape("dimension",Ba);mxUtils.extend(ya,mxEllipse);ya.prototype.drawHidden=!0;ya.prototype.paintVertexShape=
+function(b,d,c,g,e){this.outline||b.setStrokeColor(null);if(null!=this.style){var k=b.pointerEvents,f=null!=this.fill&&this.fill!=mxConstants.NONE;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||f||(b.pointerEvents=!1);var m="1"==mxUtils.getValue(this.style,"top","1"),l="1"==mxUtils.getValue(this.style,"left","1"),z="1"==mxUtils.getValue(this.style,"right","1"),t="1"==mxUtils.getValue(this.style,"bottom","1");this.drawHidden||f||this.outline||m||z||t||l?(b.rect(d,c,g,e),b.fill(),
+b.pointerEvents=k,b.setStrokeColor(this.stroke),b.setLineCap("square"),b.begin(),b.moveTo(d,c),this.outline||m?b.lineTo(d+g,c):b.moveTo(d+g,c),this.outline||z?b.lineTo(d+g,c+e):b.moveTo(d+g,c+e),this.outline||t?b.lineTo(d,c+e):b.moveTo(d,c+e),(this.outline||l)&&b.lineTo(d,c),b.end(),b.stroke(),b.setLineCap("flat")):b.setStrokeColor(this.stroke)}};mxCellRenderer.registerShape("partialRectangle",ya);mxUtils.extend(Ca,mxEllipse);Ca.prototype.paintVertexShape=function(b,d,c,g,e){mxEllipse.prototype.paintVertexShape.apply(this,
arguments);b.setShadow(!1);b.begin();"vertical"==mxUtils.getValue(this.style,"line")?(b.moveTo(d+g/2,c),b.lineTo(d+g/2,c+e)):(b.moveTo(d,c+e/2),b.lineTo(d+g,c+e/2));b.end();b.stroke()};mxCellRenderer.registerShape("lineEllipse",Ca);mxUtils.extend(Fa,mxActor);Fa.prototype.redrawPath=function(b,d,c,g,e){d=Math.min(g,e/2);b.moveTo(0,0);b.lineTo(g-d,0);b.quadTo(g,0,g,e/2);b.quadTo(g,e,g-d,e);b.lineTo(0,e);b.close();b.end()};mxCellRenderer.registerShape("delay",Fa);mxUtils.extend(Da,mxActor);Da.prototype.size=
.2;Da.prototype.redrawPath=function(b,d,c,g,e){d=Math.min(e,g);var k=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=(e-k)/2;c=d+k;var f=(g-k)/2,k=f+k;b.moveTo(0,d);b.lineTo(f,d);b.lineTo(f,0);b.lineTo(k,0);b.lineTo(k,d);b.lineTo(g,d);b.lineTo(g,c);b.lineTo(k,c);b.lineTo(k,e);b.lineTo(f,e);b.lineTo(f,c);b.lineTo(0,c);b.close();b.end()};mxCellRenderer.registerShape("cross",Da);mxUtils.extend(za,mxActor);za.prototype.size=.25;za.prototype.redrawPath=function(b,
d,c,g,e){d=Math.min(g,e/2);c=Math.min(g-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*g);b.moveTo(0,e/2);b.lineTo(c,0);b.lineTo(g-d,0);b.quadTo(g,0,g,e/2);b.quadTo(g,e,g-d,e);b.lineTo(c,e);b.close();b.end()};mxCellRenderer.registerShape("display",za);mxUtils.extend(U,mxActor);U.prototype.cst={RECT2:"mxgraph.basic.rect"};U.prototype.customProperties=[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},
@@ -2858,74 +2858,74 @@ d,c,g,e){d=Math.min(g,e/2);c=Math.min(g-d,Math.max(0,parseFloat(mxUtils.getValue
type:"color",defVal:"none"},{name:"gradientColor2",dispName:"Inside Gradient Color",type:"color",defVal:"none"},{name:"gradientDirection2",dispName:"Inside Gradient Direction",type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",dispName:"West"},{val:"north",dispName:"North"},{val:"east",dispName:"East"}]},{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},
{name:"left",dispName:"Left ",type:"bool",defVal:!0},{name:"topLeftStyle",dispName:"Top Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",
dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",
-dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]}];U.prototype.paintVertexShape=function(b,d,c,g,e){b.translate(d,c);this.strictDrawShape(b,0,0,g,e)};U.prototype.strictDrawShape=function(b,d,c,g,e,k){var f=k&&k.rectStyle?k.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),l=k&&k.absoluteCornerSize?k.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",
-this.absoluteCornerSize),m=k&&k.size?k.size:Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),q=k&&k.rectOutline?k.rectOutline:mxUtils.getValue(this.style,"rectOutline",this.rectOutline),p=k&&k.indent?k.indent:Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),B=k&&k.dashed?k.dashed:mxUtils.getValue(this.style,"dashed",!1),z=k&&k.dashPattern?k.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),n=k&&k.relIndent?k.relIndent:
-Math.max(0,Math.min(50,p)),u=k&&k.top?k.top:mxUtils.getValue(this.style,"top",!0),v=k&&k.right?k.right:mxUtils.getValue(this.style,"right",!0),y=k&&k.bottom?k.bottom:mxUtils.getValue(this.style,"bottom",!0),x=k&&k.left?k.left:mxUtils.getValue(this.style,"left",!0),J=k&&k.topLeftStyle?k.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),K=k&&k.topRightStyle?k.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),t=k&&k.bottomRightStyle?k.bottomRightStyle:mxUtils.getValue(this.style,
+dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]}];U.prototype.paintVertexShape=function(b,d,c,g,e){b.translate(d,c);this.strictDrawShape(b,0,0,g,e)};U.prototype.strictDrawShape=function(b,d,c,g,e,k){var f=k&&k.rectStyle?k.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),m=k&&k.absoluteCornerSize?k.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",
+this.absoluteCornerSize),l=k&&k.size?k.size:Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),t=k&&k.rectOutline?k.rectOutline:mxUtils.getValue(this.style,"rectOutline",this.rectOutline),p=k&&k.indent?k.indent:Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),B=k&&k.dashed?k.dashed:mxUtils.getValue(this.style,"dashed",!1),z=k&&k.dashPattern?k.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),n=k&&k.relIndent?k.relIndent:
+Math.max(0,Math.min(50,p)),u=k&&k.top?k.top:mxUtils.getValue(this.style,"top",!0),v=k&&k.right?k.right:mxUtils.getValue(this.style,"right",!0),y=k&&k.bottom?k.bottom:mxUtils.getValue(this.style,"bottom",!0),x=k&&k.left?k.left:mxUtils.getValue(this.style,"left",!0),L=k&&k.topLeftStyle?k.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),K=k&&k.topRightStyle?k.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),q=k&&k.bottomRightStyle?k.bottomRightStyle:mxUtils.getValue(this.style,
"bottomRightStyle","default"),I=k&&k.bottomLeftStyle?k.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),A=k&&k.fillColor?k.fillColor:mxUtils.getValue(this.style,"fillColor","#ffffff");k&&k.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var fa=k&&k.strokeWidth?k.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),M=k&&k.fillColor2?k.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),W=k&&k.gradientColor2?k.gradientColor2:mxUtils.getValue(this.style,
-"gradientColor2","none"),Ja=k&&k.gradientDirection2?k.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),va=k&&k.opacity?k.opacity:mxUtils.getValue(this.style,"opacity","100"),la=Math.max(0,Math.min(50,m));k=U.prototype;b.setDashed(B);z&&""!=z&&b.setDashPattern(z);b.setStrokeWidth(fa);m=Math.min(.5*e,.5*g,m);l||(m=la*Math.min(g,e)/100);m=Math.min(m,.5*Math.min(g,e));l||(p=Math.min(n*Math.min(g,e)/100));p=Math.min(p,.5*Math.min(g,e)-m);(u||v||y||x)&&"frame"!=q&&(b.begin(),
-u?k.moveNW(b,d,c,g,e,f,J,m,x):b.moveTo(0,0),u&&k.paintNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),v&&k.paintNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),y&&k.paintSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),x&&k.paintSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(M),B=l=va,"none"==M&&(l=0),"none"==W&&(B=0),b.setGradient(M,W,0,0,g,e,Ja,l,B),b.begin(),u?k.moveNWInner(b,d,c,g,e,f,J,m,p,u,x):b.moveTo(p,0),k.paintLeftInner(b,
-d,c,g,e,f,I,m,p,y,x),x&&y&&k.paintSWInner(b,d,c,g,e,f,I,m,p,y),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),y&&v&&k.paintSEInner(b,d,c,g,e,f,t,m,p),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),v&&u&&k.paintNEInner(b,d,c,g,e,f,K,m,p),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),u&&x&&k.paintNWInner(b,d,c,g,e,f,J,m,p),b.fill(),"none"==A&&(b.begin(),k.paintFolds(b,d,c,g,e,f,J,K,t,I,m,u,v,y,x),b.stroke()));u||v||y||!x?u||v||!y||x?!u&&!v&&y&&x?"frame"!=q?(b.begin(),k.moveSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,
-e,f,I,m,x),k.paintSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),"double"==q&&(k.moveNWInner(b,d,c,g,e,f,J,m,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),k.paintSWInner(b,d,c,g,e,f,I,m,p,y),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y)),b.stroke()):(b.begin(),k.moveSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),k.paintSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),k.lineNWInner(b,d,c,g,e,f,J,m,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),k.paintSWInner(b,d,c,g,e,f,I,m,p,y),k.paintBottomInner(b,
-d,c,g,e,f,t,m,p,v,y),b.close(),b.fillAndStroke()):u||!v||y||x?!u&&v&&!y&&x?"frame"!=q?(b.begin(),k.moveSW(b,d,c,g,e,f,J,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),"double"==q&&(k.moveNWInner(b,d,c,g,e,f,J,m,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x)),b.stroke(),b.begin(),k.moveNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),"double"==q&&(k.moveSEInner(b,d,c,g,e,f,t,m,p,y),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v)),b.stroke()):(b.begin(),k.moveSW(b,d,c,g,e,f,J,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),
-k.lineNWInner(b,d,c,g,e,f,J,m,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),b.close(),b.fillAndStroke(),b.begin(),k.moveNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.lineSEInner(b,d,c,g,e,f,t,m,p,y),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),b.close(),b.fillAndStroke()):!u&&v&&y&&!x?"frame"!=q?(b.begin(),k.moveNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.paintSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),"double"==q&&(k.moveSWInner(b,d,c,g,e,f,I,m,p,x),k.paintBottomInner(b,
-d,c,g,e,f,t,m,p,v,y),k.paintSEInner(b,d,c,g,e,f,t,m,p),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v)),b.stroke()):(b.begin(),k.moveNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.paintSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),k.lineSWInner(b,d,c,g,e,f,I,m,p,x),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),k.paintSEInner(b,d,c,g,e,f,t,m,p),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),b.close(),b.fillAndStroke()):!u&&v&&y&&x?"frame"!=q?(b.begin(),k.moveNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,
-c,g,e,f,t,m,y),k.paintSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),k.paintSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),"double"==q&&(k.moveNWInner(b,d,c,g,e,f,J,m,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),k.paintSWInner(b,d,c,g,e,f,I,m,p,y),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),k.paintSEInner(b,d,c,g,e,f,t,m,p),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v)),b.stroke()):(b.begin(),k.moveNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.paintSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,
-d,c,g,e,f,I,m,x),k.paintSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),k.lineNWInner(b,d,c,g,e,f,J,m,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),k.paintSWInner(b,d,c,g,e,f,I,m,p,y),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),k.paintSEInner(b,d,c,g,e,f,t,m,p),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),b.close(),b.fillAndStroke()):!u||v||y||x?u&&!v&&!y&&x?"frame"!=q?(b.begin(),k.moveSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),k.paintNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),
-"double"==q&&(k.moveNEInner(b,d,c,g,e,f,K,m,p,v),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),k.paintNWInner(b,d,c,g,e,f,J,m,p),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x)),b.stroke()):(b.begin(),k.moveSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),k.paintNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.lineNEInner(b,d,c,g,e,f,K,m,p,v),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),k.paintNWInner(b,d,c,g,e,f,J,m,p),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),b.close(),b.fillAndStroke()):u&&!v&&y&&!x?"frame"!=
-q?(b.begin(),k.moveNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),"double"==q&&(k.moveNEInner(b,d,c,g,e,f,K,m,p,v),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u)),b.stroke(),b.begin(),k.moveSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),"double"==q&&(k.moveSWInner(b,d,c,g,e,f,I,m,p,x),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y)),b.stroke()):(b.begin(),k.moveNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.lineNEInner(b,d,c,g,e,f,K,m,p,v),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),b.close(),b.fillAndStroke(),
-b.begin(),k.moveSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),k.lineSWInner(b,d,c,g,e,f,I,m,p,x),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),b.close(),b.fillAndStroke()):u&&!v&&y&&x?"frame"!=q?(b.begin(),k.moveSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),k.paintSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),k.paintNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),"double"==q&&(k.moveNEInner(b,d,c,g,e,f,K,m,p,v),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),k.paintNWInner(b,d,c,g,
-e,f,J,m,p),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),k.paintSWInner(b,d,c,g,e,f,I,m,p,y),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y)),b.stroke()):(b.begin(),k.moveSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),k.paintSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),k.paintNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.lineNEInner(b,d,c,g,e,f,K,m,p,v),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),k.paintNWInner(b,d,c,g,e,f,J,m,p),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),k.paintSWInner(b,d,c,
-g,e,f,I,m,p,y),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),b.close(),b.fillAndStroke()):u&&v&&!y&&!x?"frame"!=q?(b.begin(),k.moveNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.paintNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),"double"==q&&(k.moveSEInner(b,d,c,g,e,f,t,m,p,y),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,m,p),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u)),b.stroke()):(b.begin(),k.moveNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.paintNE(b,d,c,
-g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.lineSEInner(b,d,c,g,e,f,t,m,p,y),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,m,p),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),b.close(),b.fillAndStroke()):u&&v&&!y&&x?"frame"!=q?(b.begin(),k.moveSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),k.paintNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.paintNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),"double"==q&&(k.moveSEInner(b,d,c,g,e,f,t,m,p,y),k.paintRightInner(b,
-d,c,g,e,f,K,m,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,m,p),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),k.paintNWInner(b,d,c,g,e,f,J,m,p),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x)),b.stroke()):(b.begin(),k.moveSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),k.paintNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.paintNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.lineSEInner(b,d,c,g,e,f,t,m,p,y),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,m,p),k.paintTopInner(b,d,
-c,g,e,f,J,m,p,x,u),k.paintNWInner(b,d,c,g,e,f,J,m,p),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),b.close(),b.fillAndStroke()):u&&v&&y&&!x?"frame"!=q?(b.begin(),k.moveNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.paintNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.paintSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),"double"==q&&(k.moveSWInner(b,d,c,g,e,f,I,m,p,x),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),k.paintSEInner(b,d,c,g,e,f,t,m,p),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),
-k.paintNEInner(b,d,c,g,e,f,K,m,p),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u)),b.stroke()):(b.begin(),k.moveNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.paintNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.paintSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),k.lineSWInner(b,d,c,g,e,f,I,m,p,x),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),k.paintSEInner(b,d,c,g,e,f,t,m,p),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,m,p),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),
-b.close(),b.fillAndStroke()):u&&v&&y&&x&&("frame"!=q?(b.begin(),k.moveNW(b,d,c,g,e,f,J,m,x),k.paintNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.paintNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.paintSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),k.paintSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),b.close(),"double"==q&&(k.moveSWInner(b,d,c,g,e,f,I,m,p,x),k.paintSWInner(b,d,c,g,e,f,I,m,p,y),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),k.paintSEInner(b,d,c,g,e,f,t,m,
-p),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,m,p),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),k.paintNWInner(b,d,c,g,e,f,J,m,p),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),b.close()),b.stroke()):(b.begin(),k.moveNW(b,d,c,g,e,f,J,m,x),k.paintNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.paintNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.paintSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),k.paintSW(b,d,c,g,e,f,I,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),b.close(),
-k.moveSWInner(b,d,c,g,e,f,I,m,p,x),k.paintSWInner(b,d,c,g,e,f,I,m,p,y),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),k.paintSEInner(b,d,c,g,e,f,t,m,p),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,m,p),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),k.paintNWInner(b,d,c,g,e,f,J,m,p),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),b.close(),b.fillAndStroke())):"frame"!=q?(b.begin(),k.moveNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),"double"==q&&(k.moveNEInner(b,d,c,g,e,f,K,m,p,v),k.paintTopInner(b,
-d,c,g,e,f,J,m,p,x,u)),b.stroke()):(b.begin(),k.moveNW(b,d,c,g,e,f,J,m,x),k.paintTop(b,d,c,g,e,f,K,m,v),k.lineNEInner(b,d,c,g,e,f,K,m,p,v),k.paintTopInner(b,d,c,g,e,f,J,m,p,x,u),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),k.moveNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),"double"==q&&(k.moveSEInner(b,d,c,g,e,f,t,m,p,y),k.paintRightInner(b,d,c,g,e,f,K,m,p,u,v)),b.stroke()):(b.begin(),k.moveNE(b,d,c,g,e,f,K,m,u),k.paintRight(b,d,c,g,e,f,t,m,y),k.lineSEInner(b,d,c,g,e,f,t,m,p,y),k.paintRightInner(b,
-d,c,g,e,f,K,m,p,u,v),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),k.moveSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),"double"==q&&(k.moveSWInner(b,d,c,g,e,f,I,m,p,x),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y)),b.stroke()):(b.begin(),k.moveSE(b,d,c,g,e,f,t,m,v),k.paintBottom(b,d,c,g,e,f,I,m,x),k.lineSWInner(b,d,c,g,e,f,I,m,p,x),k.paintBottomInner(b,d,c,g,e,f,t,m,p,v,y),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),k.moveSW(b,d,c,g,e,f,J,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),"double"==
-q&&(k.moveNWInner(b,d,c,g,e,f,J,m,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x)),b.stroke()):(b.begin(),k.moveSW(b,d,c,g,e,f,J,m,y),k.paintLeft(b,d,c,g,e,f,J,m,u),k.lineNWInner(b,d,c,g,e,f,J,m,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,m,p,y,x),b.close(),b.fillAndStroke());b.begin();k.paintFolds(b,d,c,g,e,f,J,K,t,I,m,u,v,y,x);b.stroke()};U.prototype.moveNW=function(b,d,c,g,e,k,f,m,l){"square"==f||"default"==f&&"square"==k||!l?b.moveTo(0,0):b.moveTo(0,m)};U.prototype.moveNE=function(b,d,c,g,e,k,f,m,l){"square"==
-f||"default"==f&&"square"==k||!l?b.moveTo(g,0):b.moveTo(g-m,0)};U.prototype.moveSE=function(b,d,c,g,e,k,f,m,l){"square"==f||"default"==f&&"square"==k||!l?b.moveTo(g,e):b.moveTo(g,e-m)};U.prototype.moveSW=function(b,d,c,g,e,k,f,m,l){"square"==f||"default"==f&&"square"==k||!l?b.moveTo(0,e):b.moveTo(m,e)};U.prototype.paintNW=function(b,d,c,g,e,k,f,m,l){if(l)if("rounded"==f||"default"==f&&"rounded"==k||"invRound"==f||"default"==f&&"invRound"==k){d=0;if("rounded"==f||"default"==f&&"rounded"==k)d=1;b.arcTo(m,
-m,0,0,d,m,0)}else("snip"==f||"default"==f&&"snip"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(m,0);else b.lineTo(0,0)};U.prototype.paintTop=function(b,d,c,g,e,k,f,m,l){"square"==f||"default"==f&&"square"==k||!l?b.lineTo(g,0):b.lineTo(g-m,0)};U.prototype.paintNE=function(b,d,c,g,e,k,f,m,l){if(l)if("rounded"==f||"default"==f&&"rounded"==k||"invRound"==f||"default"==f&&"invRound"==k){d=0;if("rounded"==f||"default"==f&&"rounded"==k)d=1;b.arcTo(m,m,0,0,d,g,m)}else("snip"==f||"default"==f&&"snip"==
-k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(g,m);else b.lineTo(g,0)};U.prototype.paintRight=function(b,d,c,g,e,k,f,m,l){"square"==f||"default"==f&&"square"==k||!l?b.lineTo(g,e):b.lineTo(g,e-m)};U.prototype.paintLeft=function(b,d,c,g,e,k,f,m,l){"square"==f||"default"==f&&"square"==k||!l?b.lineTo(0,0):b.lineTo(0,m)};U.prototype.paintSE=function(b,d,c,g,e,k,f,m,l){if(l)if("rounded"==f||"default"==f&&"rounded"==k||"invRound"==f||"default"==f&&"invRound"==k){d=0;if("rounded"==f||"default"==f&&"rounded"==
-k)d=1;b.arcTo(m,m,0,0,d,g-m,e)}else("snip"==f||"default"==f&&"snip"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(g-m,e);else b.lineTo(g,e)};U.prototype.paintBottom=function(b,d,c,g,e,k,f,m,l){"square"==f||"default"==f&&"square"==k||!l?b.lineTo(0,e):b.lineTo(m,e)};U.prototype.paintSW=function(b,d,c,g,e,k,f,m,l){if(l)if("rounded"==f||"default"==f&&"rounded"==k||"invRound"==f||"default"==f&&"invRound"==k){d=0;if("rounded"==f||"default"==f&&"rounded"==k)d=1;b.arcTo(m,m,0,0,d,0,e-m)}else("snip"==
-f||"default"==f&&"snip"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(0,e-m);else b.lineTo(0,e)};U.prototype.paintNWInner=function(b,d,c,g,e,k,f,m,l){if("rounded"==f||"default"==f&&"rounded"==k)b.arcTo(m-.5*l,m-.5*l,0,0,0,l,.5*l+m);else if("invRound"==f||"default"==f&&"invRound"==k)b.arcTo(m+l,m+l,0,0,1,l,l+m);else if("snip"==f||"default"==f&&"snip"==k)b.lineTo(l,.5*l+m);else if("fold"==f||"default"==f&&"fold"==k)b.lineTo(l+m,l+m),b.lineTo(l,l+m)};U.prototype.paintTopInner=function(b,d,c,g,e,
-k,f,m,l,q,p){q||p?!q&&p?b.lineTo(0,l):q&&!p?b.lineTo(l,0):q?"square"==f||"default"==f&&"square"==k?b.lineTo(l,l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(m+.5*l,l):b.lineTo(m+l,l):b.lineTo(0,l):b.lineTo(0,0)};U.prototype.paintNEInner=function(b,d,c,g,e,k,f,m,l){if("rounded"==f||"default"==f&&"rounded"==k)b.arcTo(m-.5*l,m-.5*l,0,0,0,g-m-.5*l,l);else if("invRound"==f||"default"==f&&"invRound"==k)b.arcTo(m+l,m+l,0,0,1,g-m-l,l);else if("snip"==f||"default"==
-f&&"snip"==k)b.lineTo(g-m-.5*l,l);else if("fold"==f||"default"==f&&"fold"==k)b.lineTo(g-m-l,m+l),b.lineTo(g-m-l,l)};U.prototype.paintRightInner=function(b,d,c,g,e,k,f,m,l,q,p){q||p?!q&&p?b.lineTo(g-l,0):q&&!p?b.lineTo(g,l):q?"square"==f||"default"==f&&"square"==k?b.lineTo(g-l,l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(g-l,m+.5*l):b.lineTo(g-l,m+l):b.lineTo(g-l,0):b.lineTo(g,0)};U.prototype.paintLeftInner=function(b,d,c,g,e,k,f,m,l,q,p){q||p?!q&&p?b.lineTo(l,
-e):q&&!p?b.lineTo(0,e-l):q?"square"==f||"default"==f&&"square"==k?b.lineTo(l,e-l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(l,e-m-.5*l):b.lineTo(l,e-m-l):b.lineTo(l,e):b.lineTo(0,e)};U.prototype.paintSEInner=function(b,d,c,g,e,k,f,m,l){if("rounded"==f||"default"==f&&"rounded"==k)b.arcTo(m-.5*l,m-.5*l,0,0,0,g-l,e-m-.5*l);else if("invRound"==f||"default"==f&&"invRound"==k)b.arcTo(m+l,m+l,0,0,1,g-l,e-m-l);else if("snip"==f||"default"==f&&"snip"==k)b.lineTo(g-
-l,e-m-.5*l);else if("fold"==f||"default"==f&&"fold"==k)b.lineTo(g-m-l,e-m-l),b.lineTo(g-l,e-m-l)};U.prototype.paintBottomInner=function(b,d,c,g,e,k,f,m,l,q,p){q||p?!q&&p?b.lineTo(g,e-l):q&&!p?b.lineTo(g-l,e):"square"==f||"default"==f&&"square"==k||!q?b.lineTo(g-l,e-l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(g-m-.5*l,e-l):b.lineTo(g-m-l,e-l):b.lineTo(g,e)};U.prototype.paintSWInner=function(b,d,c,g,e,k,f,m,l,q){if(!q)b.lineTo(l,e);else if("square"==f||"default"==
-f&&"square"==k)b.lineTo(l,e-l);else if("rounded"==f||"default"==f&&"rounded"==k)b.arcTo(m-.5*l,m-.5*l,0,0,0,m+.5*l,e-l);else if("invRound"==f||"default"==f&&"invRound"==k)b.arcTo(m+l,m+l,0,0,1,m+l,e-l);else if("snip"==f||"default"==f&&"snip"==k)b.lineTo(m+.5*l,e-l);else if("fold"==f||"default"==f&&"fold"==k)b.lineTo(l+m,e-m-l),b.lineTo(l+m,e-l)};U.prototype.moveSWInner=function(b,d,c,g,e,k,f,m,l,q){q?"square"==f||"default"==f&&"square"==k?b.moveTo(l,e-l):"rounded"==f||"default"==f&&"rounded"==k||
-"snip"==f||"default"==f&&"snip"==k?b.moveTo(l,e-m-.5*l):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.moveTo(l,e-m-l):b.moveTo(0,e-l)};U.prototype.lineSWInner=function(b,d,c,g,e,k,f,m,l,q){q?"square"==f||"default"==f&&"square"==k?b.lineTo(l,e-l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(l,e-m-.5*l):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(l,e-m-l):b.lineTo(0,e-l)};U.prototype.moveSEInner=
-function(b,d,c,g,e,k,f,m,l,q){q?"square"==f||"default"==f&&"square"==k?b.moveTo(g-l,e-l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.moveTo(g-l,e-m-.5*l):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.moveTo(g-l,e-m-l):b.moveTo(g-l,e)};U.prototype.lineSEInner=function(b,d,c,g,e,k,f,m,l,q){q?"square"==f||"default"==f&&"square"==k?b.lineTo(g-l,e-l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(g-
-l,e-m-.5*l):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(g-l,e-m-l):b.lineTo(g-l,e)};U.prototype.moveNEInner=function(b,d,c,g,e,k,f,m,l,q){q?"square"==f||"default"==f&&"square"==k||q?b.moveTo(g-l,l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.moveTo(g-l,m+.5*l):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.moveTo(g-l,m+l):b.moveTo(g,l)};U.prototype.lineNEInner=function(b,d,c,g,e,
-k,f,m,l,q){q?"square"==f||"default"==f&&"square"==k||q?b.lineTo(g-l,l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(g-l,m+.5*l):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(g-l,m+l):b.lineTo(g,l)};U.prototype.moveNWInner=function(b,d,c,g,e,k,f,m,l,q,p){q||p?!q&&p?b.moveTo(l,0):q&&!p?b.moveTo(0,l):"square"==f||"default"==f&&"square"==k?b.moveTo(l,l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==
-f&&"snip"==k?b.moveTo(l,m+.5*l):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.moveTo(l,m+l):b.moveTo(0,0)};U.prototype.lineNWInner=function(b,d,c,g,e,k,f,m,l,q,p){q||p?!q&&p?b.lineTo(l,0):q&&!p?b.lineTo(0,l):"square"==f||"default"==f&&"square"==k?b.lineTo(l,l):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(l,m+.5*l):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(l,m+l):b.lineTo(0,
-0)};U.prototype.paintFolds=function(b,d,c,g,e,k,f,m,l,q,p,B,n,u,v){if("fold"==k||"fold"==f||"fold"==m||"fold"==l||"fold"==q)("fold"==f||"default"==f&&"fold"==k)&&B&&v&&(b.moveTo(0,p),b.lineTo(p,p),b.lineTo(p,0)),("fold"==m||"default"==m&&"fold"==k)&&B&&n&&(b.moveTo(g-p,0),b.lineTo(g-p,p),b.lineTo(g,p)),("fold"==l||"default"==l&&"fold"==k)&&u&&n&&(b.moveTo(g-p,e),b.lineTo(g-p,e-p),b.lineTo(g,e-p)),("fold"==q||"default"==q&&"fold"==k)&&u&&v&&(b.moveTo(0,e-p),b.lineTo(p,e-p),b.lineTo(p,e))};mxCellRenderer.registerShape(U.prototype.cst.RECT2,
+"gradientColor2","none"),Ja=k&&k.gradientDirection2?k.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),va=k&&k.opacity?k.opacity:mxUtils.getValue(this.style,"opacity","100"),la=Math.max(0,Math.min(50,l));k=U.prototype;b.setDashed(B);z&&""!=z&&b.setDashPattern(z);b.setStrokeWidth(fa);l=Math.min(.5*e,.5*g,l);m||(l=la*Math.min(g,e)/100);l=Math.min(l,.5*Math.min(g,e));m||(p=Math.min(n*Math.min(g,e)/100));p=Math.min(p,.5*Math.min(g,e)-l);(u||v||y||x)&&"frame"!=t&&(b.begin(),
+u?k.moveNW(b,d,c,g,e,f,L,l,x):b.moveTo(0,0),u&&k.paintNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),v&&k.paintNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),y&&k.paintSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),x&&k.paintSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(M),B=m=va,"none"==M&&(m=0),"none"==W&&(B=0),b.setGradient(M,W,0,0,g,e,Ja,m,B),b.begin(),u?k.moveNWInner(b,d,c,g,e,f,L,l,p,u,x):b.moveTo(p,0),k.paintLeftInner(b,
+d,c,g,e,f,I,l,p,y,x),x&&y&&k.paintSWInner(b,d,c,g,e,f,I,l,p,y),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),y&&v&&k.paintSEInner(b,d,c,g,e,f,q,l,p),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),v&&u&&k.paintNEInner(b,d,c,g,e,f,K,l,p),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),u&&x&&k.paintNWInner(b,d,c,g,e,f,L,l,p),b.fill(),"none"==A&&(b.begin(),k.paintFolds(b,d,c,g,e,f,L,K,q,I,l,u,v,y,x),b.stroke()));u||v||y||!x?u||v||!y||x?!u&&!v&&y&&x?"frame"!=t?(b.begin(),k.moveSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,
+e,f,I,l,x),k.paintSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),"double"==t&&(k.moveNWInner(b,d,c,g,e,f,L,l,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),k.paintSWInner(b,d,c,g,e,f,I,l,p,y),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y)),b.stroke()):(b.begin(),k.moveSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),k.paintSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),k.lineNWInner(b,d,c,g,e,f,L,l,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),k.paintSWInner(b,d,c,g,e,f,I,l,p,y),k.paintBottomInner(b,
+d,c,g,e,f,q,l,p,v,y),b.close(),b.fillAndStroke()):u||!v||y||x?!u&&v&&!y&&x?"frame"!=t?(b.begin(),k.moveSW(b,d,c,g,e,f,L,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),"double"==t&&(k.moveNWInner(b,d,c,g,e,f,L,l,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x)),b.stroke(),b.begin(),k.moveNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),"double"==t&&(k.moveSEInner(b,d,c,g,e,f,q,l,p,y),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v)),b.stroke()):(b.begin(),k.moveSW(b,d,c,g,e,f,L,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),
+k.lineNWInner(b,d,c,g,e,f,L,l,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),b.close(),b.fillAndStroke(),b.begin(),k.moveNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.lineSEInner(b,d,c,g,e,f,q,l,p,y),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),b.close(),b.fillAndStroke()):!u&&v&&y&&!x?"frame"!=t?(b.begin(),k.moveNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.paintSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),"double"==t&&(k.moveSWInner(b,d,c,g,e,f,I,l,p,x),k.paintBottomInner(b,
+d,c,g,e,f,q,l,p,v,y),k.paintSEInner(b,d,c,g,e,f,q,l,p),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v)),b.stroke()):(b.begin(),k.moveNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.paintSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),k.lineSWInner(b,d,c,g,e,f,I,l,p,x),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),k.paintSEInner(b,d,c,g,e,f,q,l,p),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),b.close(),b.fillAndStroke()):!u&&v&&y&&x?"frame"!=t?(b.begin(),k.moveNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,
+c,g,e,f,q,l,y),k.paintSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),k.paintSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),"double"==t&&(k.moveNWInner(b,d,c,g,e,f,L,l,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),k.paintSWInner(b,d,c,g,e,f,I,l,p,y),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),k.paintSEInner(b,d,c,g,e,f,q,l,p),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v)),b.stroke()):(b.begin(),k.moveNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.paintSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,
+d,c,g,e,f,I,l,x),k.paintSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),k.lineNWInner(b,d,c,g,e,f,L,l,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),k.paintSWInner(b,d,c,g,e,f,I,l,p,y),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),k.paintSEInner(b,d,c,g,e,f,q,l,p),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),b.close(),b.fillAndStroke()):!u||v||y||x?u&&!v&&!y&&x?"frame"!=t?(b.begin(),k.moveSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),k.paintNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),
+"double"==t&&(k.moveNEInner(b,d,c,g,e,f,K,l,p,v),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),k.paintNWInner(b,d,c,g,e,f,L,l,p),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x)),b.stroke()):(b.begin(),k.moveSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),k.paintNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.lineNEInner(b,d,c,g,e,f,K,l,p,v),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),k.paintNWInner(b,d,c,g,e,f,L,l,p),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),b.close(),b.fillAndStroke()):u&&!v&&y&&!x?"frame"!=
+t?(b.begin(),k.moveNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),"double"==t&&(k.moveNEInner(b,d,c,g,e,f,K,l,p,v),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u)),b.stroke(),b.begin(),k.moveSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),"double"==t&&(k.moveSWInner(b,d,c,g,e,f,I,l,p,x),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y)),b.stroke()):(b.begin(),k.moveNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.lineNEInner(b,d,c,g,e,f,K,l,p,v),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),b.close(),b.fillAndStroke(),
+b.begin(),k.moveSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),k.lineSWInner(b,d,c,g,e,f,I,l,p,x),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),b.close(),b.fillAndStroke()):u&&!v&&y&&x?"frame"!=t?(b.begin(),k.moveSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),k.paintSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),k.paintNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),"double"==t&&(k.moveNEInner(b,d,c,g,e,f,K,l,p,v),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),k.paintNWInner(b,d,c,g,
+e,f,L,l,p),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),k.paintSWInner(b,d,c,g,e,f,I,l,p,y),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y)),b.stroke()):(b.begin(),k.moveSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),k.paintSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),k.paintNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.lineNEInner(b,d,c,g,e,f,K,l,p,v),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),k.paintNWInner(b,d,c,g,e,f,L,l,p),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),k.paintSWInner(b,d,c,
+g,e,f,I,l,p,y),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),b.close(),b.fillAndStroke()):u&&v&&!y&&!x?"frame"!=t?(b.begin(),k.moveNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.paintNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),"double"==t&&(k.moveSEInner(b,d,c,g,e,f,q,l,p,y),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,l,p),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u)),b.stroke()):(b.begin(),k.moveNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.paintNE(b,d,c,
+g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.lineSEInner(b,d,c,g,e,f,q,l,p,y),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,l,p),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),b.close(),b.fillAndStroke()):u&&v&&!y&&x?"frame"!=t?(b.begin(),k.moveSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),k.paintNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.paintNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),"double"==t&&(k.moveSEInner(b,d,c,g,e,f,q,l,p,y),k.paintRightInner(b,
+d,c,g,e,f,K,l,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,l,p),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),k.paintNWInner(b,d,c,g,e,f,L,l,p),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x)),b.stroke()):(b.begin(),k.moveSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),k.paintNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.paintNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.lineSEInner(b,d,c,g,e,f,q,l,p,y),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,l,p),k.paintTopInner(b,d,
+c,g,e,f,L,l,p,x,u),k.paintNWInner(b,d,c,g,e,f,L,l,p),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),b.close(),b.fillAndStroke()):u&&v&&y&&!x?"frame"!=t?(b.begin(),k.moveNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.paintNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.paintSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),"double"==t&&(k.moveSWInner(b,d,c,g,e,f,I,l,p,x),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),k.paintSEInner(b,d,c,g,e,f,q,l,p),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),
+k.paintNEInner(b,d,c,g,e,f,K,l,p),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u)),b.stroke()):(b.begin(),k.moveNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.paintNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.paintSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),k.lineSWInner(b,d,c,g,e,f,I,l,p,x),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),k.paintSEInner(b,d,c,g,e,f,q,l,p),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,l,p),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),
+b.close(),b.fillAndStroke()):u&&v&&y&&x&&("frame"!=t?(b.begin(),k.moveNW(b,d,c,g,e,f,L,l,x),k.paintNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.paintNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.paintSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),k.paintSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),b.close(),"double"==t&&(k.moveSWInner(b,d,c,g,e,f,I,l,p,x),k.paintSWInner(b,d,c,g,e,f,I,l,p,y),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),k.paintSEInner(b,d,c,g,e,f,q,l,
+p),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,l,p),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),k.paintNWInner(b,d,c,g,e,f,L,l,p),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),b.close()),b.stroke()):(b.begin(),k.moveNW(b,d,c,g,e,f,L,l,x),k.paintNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.paintNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.paintSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),k.paintSW(b,d,c,g,e,f,I,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),b.close(),
+k.moveSWInner(b,d,c,g,e,f,I,l,p,x),k.paintSWInner(b,d,c,g,e,f,I,l,p,y),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),k.paintSEInner(b,d,c,g,e,f,q,l,p),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v),k.paintNEInner(b,d,c,g,e,f,K,l,p),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),k.paintNWInner(b,d,c,g,e,f,L,l,p),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),b.close(),b.fillAndStroke())):"frame"!=t?(b.begin(),k.moveNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),"double"==t&&(k.moveNEInner(b,d,c,g,e,f,K,l,p,v),k.paintTopInner(b,
+d,c,g,e,f,L,l,p,x,u)),b.stroke()):(b.begin(),k.moveNW(b,d,c,g,e,f,L,l,x),k.paintTop(b,d,c,g,e,f,K,l,v),k.lineNEInner(b,d,c,g,e,f,K,l,p,v),k.paintTopInner(b,d,c,g,e,f,L,l,p,x,u),b.close(),b.fillAndStroke()):"frame"!=t?(b.begin(),k.moveNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),"double"==t&&(k.moveSEInner(b,d,c,g,e,f,q,l,p,y),k.paintRightInner(b,d,c,g,e,f,K,l,p,u,v)),b.stroke()):(b.begin(),k.moveNE(b,d,c,g,e,f,K,l,u),k.paintRight(b,d,c,g,e,f,q,l,y),k.lineSEInner(b,d,c,g,e,f,q,l,p,y),k.paintRightInner(b,
+d,c,g,e,f,K,l,p,u,v),b.close(),b.fillAndStroke()):"frame"!=t?(b.begin(),k.moveSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),"double"==t&&(k.moveSWInner(b,d,c,g,e,f,I,l,p,x),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y)),b.stroke()):(b.begin(),k.moveSE(b,d,c,g,e,f,q,l,v),k.paintBottom(b,d,c,g,e,f,I,l,x),k.lineSWInner(b,d,c,g,e,f,I,l,p,x),k.paintBottomInner(b,d,c,g,e,f,q,l,p,v,y),b.close(),b.fillAndStroke()):"frame"!=t?(b.begin(),k.moveSW(b,d,c,g,e,f,L,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),"double"==
+t&&(k.moveNWInner(b,d,c,g,e,f,L,l,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x)),b.stroke()):(b.begin(),k.moveSW(b,d,c,g,e,f,L,l,y),k.paintLeft(b,d,c,g,e,f,L,l,u),k.lineNWInner(b,d,c,g,e,f,L,l,p,u,x),k.paintLeftInner(b,d,c,g,e,f,I,l,p,y,x),b.close(),b.fillAndStroke());b.begin();k.paintFolds(b,d,c,g,e,f,L,K,q,I,l,u,v,y,x);b.stroke()};U.prototype.moveNW=function(b,d,c,g,e,k,f,l,m){"square"==f||"default"==f&&"square"==k||!m?b.moveTo(0,0):b.moveTo(0,l)};U.prototype.moveNE=function(b,d,c,g,e,k,f,l,m){"square"==
+f||"default"==f&&"square"==k||!m?b.moveTo(g,0):b.moveTo(g-l,0)};U.prototype.moveSE=function(b,d,c,g,e,k,f,l,m){"square"==f||"default"==f&&"square"==k||!m?b.moveTo(g,e):b.moveTo(g,e-l)};U.prototype.moveSW=function(b,d,c,g,e,k,f,l,m){"square"==f||"default"==f&&"square"==k||!m?b.moveTo(0,e):b.moveTo(l,e)};U.prototype.paintNW=function(b,d,c,g,e,k,f,l,m){if(m)if("rounded"==f||"default"==f&&"rounded"==k||"invRound"==f||"default"==f&&"invRound"==k){d=0;if("rounded"==f||"default"==f&&"rounded"==k)d=1;b.arcTo(l,
+l,0,0,d,l,0)}else("snip"==f||"default"==f&&"snip"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(l,0);else b.lineTo(0,0)};U.prototype.paintTop=function(b,d,c,g,e,k,f,l,m){"square"==f||"default"==f&&"square"==k||!m?b.lineTo(g,0):b.lineTo(g-l,0)};U.prototype.paintNE=function(b,d,c,g,e,k,f,l,m){if(m)if("rounded"==f||"default"==f&&"rounded"==k||"invRound"==f||"default"==f&&"invRound"==k){d=0;if("rounded"==f||"default"==f&&"rounded"==k)d=1;b.arcTo(l,l,0,0,d,g,l)}else("snip"==f||"default"==f&&"snip"==
+k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(g,l);else b.lineTo(g,0)};U.prototype.paintRight=function(b,d,c,g,e,k,f,l,m){"square"==f||"default"==f&&"square"==k||!m?b.lineTo(g,e):b.lineTo(g,e-l)};U.prototype.paintLeft=function(b,d,c,g,e,k,f,l,m){"square"==f||"default"==f&&"square"==k||!m?b.lineTo(0,0):b.lineTo(0,l)};U.prototype.paintSE=function(b,d,c,g,e,k,f,l,m){if(m)if("rounded"==f||"default"==f&&"rounded"==k||"invRound"==f||"default"==f&&"invRound"==k){d=0;if("rounded"==f||"default"==f&&"rounded"==
+k)d=1;b.arcTo(l,l,0,0,d,g-l,e)}else("snip"==f||"default"==f&&"snip"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(g-l,e);else b.lineTo(g,e)};U.prototype.paintBottom=function(b,d,c,g,e,k,f,l,m){"square"==f||"default"==f&&"square"==k||!m?b.lineTo(0,e):b.lineTo(l,e)};U.prototype.paintSW=function(b,d,c,g,e,k,f,l,m){if(m)if("rounded"==f||"default"==f&&"rounded"==k||"invRound"==f||"default"==f&&"invRound"==k){d=0;if("rounded"==f||"default"==f&&"rounded"==k)d=1;b.arcTo(l,l,0,0,d,0,e-l)}else("snip"==
+f||"default"==f&&"snip"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(0,e-l);else b.lineTo(0,e)};U.prototype.paintNWInner=function(b,d,c,g,e,k,f,l,m){if("rounded"==f||"default"==f&&"rounded"==k)b.arcTo(l-.5*m,l-.5*m,0,0,0,m,.5*m+l);else if("invRound"==f||"default"==f&&"invRound"==k)b.arcTo(l+m,l+m,0,0,1,m,m+l);else if("snip"==f||"default"==f&&"snip"==k)b.lineTo(m,.5*m+l);else if("fold"==f||"default"==f&&"fold"==k)b.lineTo(m+l,m+l),b.lineTo(m,m+l)};U.prototype.paintTopInner=function(b,d,c,g,e,
+k,f,l,m,t,p){t||p?!t&&p?b.lineTo(0,m):t&&!p?b.lineTo(m,0):t?"square"==f||"default"==f&&"square"==k?b.lineTo(m,m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(l+.5*m,m):b.lineTo(l+m,m):b.lineTo(0,m):b.lineTo(0,0)};U.prototype.paintNEInner=function(b,d,c,g,e,k,f,l,m){if("rounded"==f||"default"==f&&"rounded"==k)b.arcTo(l-.5*m,l-.5*m,0,0,0,g-l-.5*m,m);else if("invRound"==f||"default"==f&&"invRound"==k)b.arcTo(l+m,l+m,0,0,1,g-l-m,m);else if("snip"==f||"default"==
+f&&"snip"==k)b.lineTo(g-l-.5*m,m);else if("fold"==f||"default"==f&&"fold"==k)b.lineTo(g-l-m,l+m),b.lineTo(g-l-m,m)};U.prototype.paintRightInner=function(b,d,c,g,e,k,f,l,m,t,p){t||p?!t&&p?b.lineTo(g-m,0):t&&!p?b.lineTo(g,m):t?"square"==f||"default"==f&&"square"==k?b.lineTo(g-m,m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(g-m,l+.5*m):b.lineTo(g-m,l+m):b.lineTo(g-m,0):b.lineTo(g,0)};U.prototype.paintLeftInner=function(b,d,c,g,e,k,f,l,m,t,p){t||p?!t&&p?b.lineTo(m,
+e):t&&!p?b.lineTo(0,e-m):t?"square"==f||"default"==f&&"square"==k?b.lineTo(m,e-m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(m,e-l-.5*m):b.lineTo(m,e-l-m):b.lineTo(m,e):b.lineTo(0,e)};U.prototype.paintSEInner=function(b,d,c,g,e,k,f,l,m){if("rounded"==f||"default"==f&&"rounded"==k)b.arcTo(l-.5*m,l-.5*m,0,0,0,g-m,e-l-.5*m);else if("invRound"==f||"default"==f&&"invRound"==k)b.arcTo(l+m,l+m,0,0,1,g-m,e-l-m);else if("snip"==f||"default"==f&&"snip"==k)b.lineTo(g-
+m,e-l-.5*m);else if("fold"==f||"default"==f&&"fold"==k)b.lineTo(g-l-m,e-l-m),b.lineTo(g-m,e-l-m)};U.prototype.paintBottomInner=function(b,d,c,g,e,k,f,l,m,t,p){t||p?!t&&p?b.lineTo(g,e-m):t&&!p?b.lineTo(g-m,e):"square"==f||"default"==f&&"square"==k||!t?b.lineTo(g-m,e-m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(g-l-.5*m,e-m):b.lineTo(g-l-m,e-m):b.lineTo(g,e)};U.prototype.paintSWInner=function(b,d,c,g,e,k,f,l,m,t){if(!t)b.lineTo(m,e);else if("square"==f||"default"==
+f&&"square"==k)b.lineTo(m,e-m);else if("rounded"==f||"default"==f&&"rounded"==k)b.arcTo(l-.5*m,l-.5*m,0,0,0,l+.5*m,e-m);else if("invRound"==f||"default"==f&&"invRound"==k)b.arcTo(l+m,l+m,0,0,1,l+m,e-m);else if("snip"==f||"default"==f&&"snip"==k)b.lineTo(l+.5*m,e-m);else if("fold"==f||"default"==f&&"fold"==k)b.lineTo(m+l,e-l-m),b.lineTo(m+l,e-m)};U.prototype.moveSWInner=function(b,d,c,g,e,k,f,l,m,t){t?"square"==f||"default"==f&&"square"==k?b.moveTo(m,e-m):"rounded"==f||"default"==f&&"rounded"==k||
+"snip"==f||"default"==f&&"snip"==k?b.moveTo(m,e-l-.5*m):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.moveTo(m,e-l-m):b.moveTo(0,e-m)};U.prototype.lineSWInner=function(b,d,c,g,e,k,f,l,m,t){t?"square"==f||"default"==f&&"square"==k?b.lineTo(m,e-m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(m,e-l-.5*m):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(m,e-l-m):b.lineTo(0,e-m)};U.prototype.moveSEInner=
+function(b,d,c,g,e,k,f,l,m,t){t?"square"==f||"default"==f&&"square"==k?b.moveTo(g-m,e-m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.moveTo(g-m,e-l-.5*m):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.moveTo(g-m,e-l-m):b.moveTo(g-m,e)};U.prototype.lineSEInner=function(b,d,c,g,e,k,f,l,m,t){t?"square"==f||"default"==f&&"square"==k?b.lineTo(g-m,e-m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(g-
+m,e-l-.5*m):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(g-m,e-l-m):b.lineTo(g-m,e)};U.prototype.moveNEInner=function(b,d,c,g,e,k,f,l,m,t){t?"square"==f||"default"==f&&"square"==k||t?b.moveTo(g-m,m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.moveTo(g-m,l+.5*m):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.moveTo(g-m,l+m):b.moveTo(g,m)};U.prototype.lineNEInner=function(b,d,c,g,e,
+k,f,l,m,t){t?"square"==f||"default"==f&&"square"==k||t?b.lineTo(g-m,m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(g-m,l+.5*m):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(g-m,l+m):b.lineTo(g,m)};U.prototype.moveNWInner=function(b,d,c,g,e,k,f,l,m,t,p){t||p?!t&&p?b.moveTo(m,0):t&&!p?b.moveTo(0,m):"square"==f||"default"==f&&"square"==k?b.moveTo(m,m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==
+f&&"snip"==k?b.moveTo(m,l+.5*m):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.moveTo(m,l+m):b.moveTo(0,0)};U.prototype.lineNWInner=function(b,d,c,g,e,k,f,l,m,t,p){t||p?!t&&p?b.lineTo(m,0):t&&!p?b.lineTo(0,m):"square"==f||"default"==f&&"square"==k?b.lineTo(m,m):"rounded"==f||"default"==f&&"rounded"==k||"snip"==f||"default"==f&&"snip"==k?b.lineTo(m,l+.5*m):("invRound"==f||"default"==f&&"invRound"==k||"fold"==f||"default"==f&&"fold"==k)&&b.lineTo(m,l+m):b.lineTo(0,
+0)};U.prototype.paintFolds=function(b,d,c,g,e,k,f,l,m,t,p,B,n,u,v){if("fold"==k||"fold"==f||"fold"==l||"fold"==m||"fold"==t)("fold"==f||"default"==f&&"fold"==k)&&B&&v&&(b.moveTo(0,p),b.lineTo(p,p),b.lineTo(p,0)),("fold"==l||"default"==l&&"fold"==k)&&B&&n&&(b.moveTo(g-p,0),b.lineTo(g-p,p),b.lineTo(g,p)),("fold"==m||"default"==m&&"fold"==k)&&u&&n&&(b.moveTo(g-p,e),b.lineTo(g-p,e-p),b.lineTo(g,e-p)),("fold"==t||"default"==t&&"fold"==k)&&u&&v&&(b.moveTo(0,e-p),b.lineTo(p,e-p),b.lineTo(p,e))};mxCellRenderer.registerShape(U.prototype.cst.RECT2,
U);U.prototype.constraints=null;mxUtils.extend(Ga,mxConnector);Ga.prototype.origPaintEdgeShape=Ga.prototype.paintEdgeShape;Ga.prototype.paintEdgeShape=function(b,d,c){for(var g=[],e=0;e<d.length;e++)g.push(mxUtils.clone(d[e]));var e=b.state.dashed,k=b.state.fixDash;Ga.prototype.origPaintEdgeShape.apply(this,[b,g,c]);3<=b.state.strokeWidth&&(g=mxUtils.getValue(this.style,"fillColor",null),null!=g&&(b.setStrokeColor(g),b.setStrokeWidth(b.state.strokeWidth-2),b.setDashed(e,k),Ga.prototype.origPaintEdgeShape.apply(this,
-[b,d,c])))};mxCellRenderer.registerShape("filledEdge",Ga);"undefined"!==typeof StyleFormatPanel&&function(){var b=StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var d=this.editorUi.getSelectionState(),c=b.apply(this,arguments);"umlFrame"==d.style.shape&&c.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"default"});return c}}();mxMarker.addMarker("dash",function(b,d,c,g,e,k,f,m,l,q){var p=e*(f+l+1),B=k*(f+l+1);return function(){b.begin();
-b.moveTo(g.x-p/2-B/2,g.y-B/2+p/2);b.lineTo(g.x+B/2-3*p/2,g.y-3*B/2-p/2);b.stroke()}});mxMarker.addMarker("box",function(b,d,c,g,e,k,f,m,l,q){var p=e*(f+l+1),B=k*(f+l+1),n=g.x+p/2,u=g.y+B/2;g.x-=p;g.y-=B;return function(){b.begin();b.moveTo(n-p/2-B/2,u-B/2+p/2);b.lineTo(n-p/2+B/2,u-B/2-p/2);b.lineTo(n+B/2-3*p/2,u-3*B/2-p/2);b.lineTo(n-B/2-3*p/2,u-3*B/2+p/2);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,c,g,e,k,f,m,l,q){var p=e*(f+l+1),B=k*(f+l+1);return function(){b.begin();
-b.moveTo(g.x-p/2-B/2,g.y-B/2+p/2);b.lineTo(g.x+B/2-3*p/2,g.y-3*B/2-p/2);b.moveTo(g.x-p/2+B/2,g.y-B/2-p/2);b.lineTo(g.x-B/2-3*p/2,g.y-3*B/2+p/2);b.stroke()}});mxMarker.addMarker("circle",La);mxMarker.addMarker("circlePlus",function(b,d,c,g,e,k,f,m,l,q){var p=g.clone(),B=La.apply(this,arguments),n=e*(f+2*l),u=k*(f+2*l);return function(){B.apply(this,arguments);b.begin();b.moveTo(p.x-e*l,p.y-k*l);b.lineTo(p.x-2*n+e*l,p.y-2*u+k*l);b.moveTo(p.x-n-u+k*l,p.y-u+n-e*l);b.lineTo(p.x+u-n-k*l,p.y-u-n+e*l);b.stroke()}});
-mxMarker.addMarker("halfCircle",function(b,d,c,g,e,k,f,m,l,q){var p=e*(f+l+1),B=k*(f+l+1),n=g.clone();g.x-=p;g.y-=B;return function(){b.begin();b.moveTo(n.x-B,n.y+p);b.quadTo(g.x-B,g.y+p,g.x,g.y);b.quadTo(g.x+B,g.y-p,n.x+B,n.y-p);b.stroke()}});mxMarker.addMarker("async",function(b,d,c,g,e,k,f,m,l,q){d=e*l*1.118;c=k*l*1.118;e*=f+l;k*=f+l;var p=g.clone();p.x-=d;p.y-=c;g.x+=1*-e-d;g.y+=1*-k-c;return function(){b.begin();b.moveTo(p.x,p.y);m?b.lineTo(p.x-e-k/2,p.y-k+e/2):b.lineTo(p.x+k/2-e,p.y-k-e/2);
-b.lineTo(p.x-e,p.y-k);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",function(b){b=null!=b?b:2;return function(d,c,g,e,k,f,m,l,q,p){k*=m+q;f*=m+q;var B=e.clone();return function(){d.begin();d.moveTo(B.x,B.y);l?d.lineTo(B.x-k-f/b,B.y-f+k/b):d.lineTo(B.x+f/b-k,B.y-f-k/b);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var ab=function(b,d,c){return Na(b,["width"],d,function(d,g,e,k,f){f=b.shape.getEdgeWidth()*b.view.scale+c;return new mxPoint(k.x+g*d/4+e*f/2,k.y+
-e*d/4-g*f/2)},function(d,g,e,k,f,m){d=Math.sqrt(mxUtils.ptSegDistSq(k.x,k.y,f.x,f.y,m.x,m.y));b.style.width=Math.round(2*d)/b.view.scale-c})},Na=function(b,d,c,g,e){return ga(b,d,function(d){var e=b.absolutePoints,k=e.length-1;d=b.view.translate;var f=b.view.scale,m=c?e[0]:e[k],e=c?e[1]:e[k-1],k=e.x-m.x,l=e.y-m.y,q=Math.sqrt(k*k+l*l),m=g.call(this,q,k/q,l/q,m,e);return new mxPoint(m.x/f-d.x,m.y/f-d.y)},function(d,g,k){var f=b.absolutePoints,m=f.length-1;d=b.view.translate;var l=b.view.scale,q=c?f[0]:
-f[m],f=c?f[1]:f[m-1],m=f.x-q.x,p=f.y-q.y,B=Math.sqrt(m*m+p*p);g.x=(g.x+d.x)*l;g.y=(g.y+d.y)*l;e.call(this,B,m/B,p/B,q,f,g,k)})},Va=function(b){return function(d){return[ga(d,["arrowWidth","arrowSize"],function(d){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",ca.prototype.arrowWidth))),g=Math.max(0,Math.min(b,mxUtils.getValue(this.state.style,"arrowSize",ca.prototype.arrowSize)));return new mxPoint(d.x+(1-g)*d.width,d.y+(1-c)*d.height/2)},function(d,c){this.state.style.arrowWidth=
+[b,d,c])))};mxCellRenderer.registerShape("filledEdge",Ga);"undefined"!==typeof StyleFormatPanel&&function(){var b=StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var d=this.editorUi.getSelectionState(),c=b.apply(this,arguments);"umlFrame"==d.style.shape&&c.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"default"});return c}}();mxMarker.addMarker("dash",function(b,d,c,g,e,k,f,l,m,t){var p=e*(f+m+1),B=k*(f+m+1);return function(){b.begin();
+b.moveTo(g.x-p/2-B/2,g.y-B/2+p/2);b.lineTo(g.x+B/2-3*p/2,g.y-3*B/2-p/2);b.stroke()}});mxMarker.addMarker("box",function(b,d,c,g,e,k,f,l,m,t){var p=e*(f+m+1),B=k*(f+m+1),n=g.x+p/2,u=g.y+B/2;g.x-=p;g.y-=B;return function(){b.begin();b.moveTo(n-p/2-B/2,u-B/2+p/2);b.lineTo(n-p/2+B/2,u-B/2-p/2);b.lineTo(n+B/2-3*p/2,u-3*B/2-p/2);b.lineTo(n-B/2-3*p/2,u-3*B/2+p/2);b.close();t?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,c,g,e,k,f,l,m,t){var p=e*(f+m+1),B=k*(f+m+1);return function(){b.begin();
+b.moveTo(g.x-p/2-B/2,g.y-B/2+p/2);b.lineTo(g.x+B/2-3*p/2,g.y-3*B/2-p/2);b.moveTo(g.x-p/2+B/2,g.y-B/2-p/2);b.lineTo(g.x-B/2-3*p/2,g.y-3*B/2+p/2);b.stroke()}});mxMarker.addMarker("circle",La);mxMarker.addMarker("circlePlus",function(b,d,c,g,e,k,f,l,m,t){var p=g.clone(),B=La.apply(this,arguments),n=e*(f+2*m),u=k*(f+2*m);return function(){B.apply(this,arguments);b.begin();b.moveTo(p.x-e*m,p.y-k*m);b.lineTo(p.x-2*n+e*m,p.y-2*u+k*m);b.moveTo(p.x-n-u+k*m,p.y-u+n-e*m);b.lineTo(p.x+u-n-k*m,p.y-u-n+e*m);b.stroke()}});
+mxMarker.addMarker("halfCircle",function(b,d,c,g,e,k,f,l,m,t){var p=e*(f+m+1),B=k*(f+m+1),n=g.clone();g.x-=p;g.y-=B;return function(){b.begin();b.moveTo(n.x-B,n.y+p);b.quadTo(g.x-B,g.y+p,g.x,g.y);b.quadTo(g.x+B,g.y-p,n.x+B,n.y-p);b.stroke()}});mxMarker.addMarker("async",function(b,d,c,g,e,k,f,l,m,t){d=e*m*1.118;c=k*m*1.118;e*=f+m;k*=f+m;var p=g.clone();p.x-=d;p.y-=c;g.x+=1*-e-d;g.y+=1*-k-c;return function(){b.begin();b.moveTo(p.x,p.y);l?b.lineTo(p.x-e-k/2,p.y-k+e/2):b.lineTo(p.x+k/2-e,p.y-k-e/2);
+b.lineTo(p.x-e,p.y-k);b.close();t?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",function(b){b=null!=b?b:2;return function(d,c,g,e,k,f,l,m,t,p){k*=l+t;f*=l+t;var B=e.clone();return function(){d.begin();d.moveTo(B.x,B.y);m?d.lineTo(B.x-k-f/b,B.y-f+k/b):d.lineTo(B.x+f/b-k,B.y-f-k/b);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var ab=function(b,d,c){return Na(b,["width"],d,function(d,g,e,k,f){f=b.shape.getEdgeWidth()*b.view.scale+c;return new mxPoint(k.x+g*d/4+e*f/2,k.y+
+e*d/4-g*f/2)},function(d,g,e,k,f,l){d=Math.sqrt(mxUtils.ptSegDistSq(k.x,k.y,f.x,f.y,l.x,l.y));b.style.width=Math.round(2*d)/b.view.scale-c})},Na=function(b,d,c,g,e){return ga(b,d,function(d){var e=b.absolutePoints,k=e.length-1;d=b.view.translate;var f=b.view.scale,l=c?e[0]:e[k],e=c?e[1]:e[k-1],k=e.x-l.x,m=e.y-l.y,t=Math.sqrt(k*k+m*m),l=g.call(this,t,k/t,m/t,l,e);return new mxPoint(l.x/f-d.x,l.y/f-d.y)},function(d,g,k){var f=b.absolutePoints,l=f.length-1;d=b.view.translate;var m=b.view.scale,t=c?f[0]:
+f[l],f=c?f[1]:f[l-1],l=f.x-t.x,p=f.y-t.y,B=Math.sqrt(l*l+p*p);g.x=(g.x+d.x)*m;g.y=(g.y+d.y)*m;e.call(this,B,l/B,p/B,t,f,g,k)})},Va=function(b){return function(d){return[ga(d,["arrowWidth","arrowSize"],function(d){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",ca.prototype.arrowWidth))),g=Math.max(0,Math.min(b,mxUtils.getValue(this.state.style,"arrowSize",ca.prototype.arrowSize)));return new mxPoint(d.x+(1-g)*d.width,d.y+(1-c)*d.height/2)},function(d,c){this.state.style.arrowWidth=
Math.max(0,Math.min(1,Math.abs(d.y+d.height/2-c.y)/d.height*2));this.state.style.arrowSize=Math.max(0,Math.min(b,(d.x+d.width-c.x)/d.width))})]}},Wa=function(b){return function(d){return[ga(d,["size"],function(d){var c=Math.max(0,Math.min(.5*d.height,parseFloat(mxUtils.getValue(this.state.style,"size",b))));return new mxPoint(d.x,d.y+c)},function(b,d){this.state.style.size=Math.max(0,d.y-b.y)},!0)]}},Ta=function(b,d,c){return function(g){var e=[ga(g,["size"],function(c){var g=Math.max(0,Math.min(c.width,
Math.min(c.height,parseFloat(mxUtils.getValue(this.state.style,"size",d)))))*b;return new mxPoint(c.x+g,c.y+g)},function(d,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(d.width,c.x-d.x),Math.min(d.height,c.y-d.y)))/b)},!1)];c&&mxUtils.getValue(g.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(Ha(g));return e}},Oa=function(b,d,c,g,e){c=null!=c?c:.5;return function(k){var f=[ga(k,["size"],function(d){var c=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,g=parseFloat(mxUtils.getValue(this.state.style,
"size",c?e:b));return new mxPoint(d.x+Math.max(0,Math.min(.5*d.width,g*(c?1:d.width))),d.getCenterY())},function(b,d,g){b=null!=e&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?d.x-b.x:Math.max(0,Math.min(c,(d.x-b.x)/b.width));this.state.style.size=b},!1,g)];d&&mxUtils.getValue(k.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(Ha(k));return f}},Xa=function(b,d,c){b=null!=b?b:.5;return function(g){var e=[ga(g,["size"],function(g){var e=null!=c?"0"!=mxUtils.getValue(this.state.style,"fixedSize",
"0"):null,k=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,"size",e?c:d)));return new mxPoint(g.x+Math.min(.75*g.width*b,k*(e?.75:.75*g.width)),g.y+g.height/4)},function(d,g){var e=null!=c&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?g.x-d.x:Math.max(0,Math.min(b,(g.x-d.x)/d.width*.75));this.state.style.size=e},!1,!0)];mxUtils.getValue(g.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(Ha(g));return e}},Ma=function(){return function(b){var d=[];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,
!1)&&d.push(Ha(b));return d}},Ha=function(b,d){return ga(b,[mxConstants.STYLE_ARCSIZE],function(c){var g=null!=d?d:c.height/8;if("1"==mxUtils.getValue(b.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(b.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(c.x+c.width-Math.min(c.width/2,e),c.y+g)}e=Math.max(0,parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(c.x+c.width-Math.min(Math.max(c.width/
-2,c.height/2),Math.min(c.width,c.height)*e),c.y+g)},function(d,c,g){"1"==mxUtils.getValue(b.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(d.width,2*(d.x+d.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(d.width-c.x+d.x)/Math.min(d.width,d.height))))})},ga=function(b,d,c,g,e,k,f){var m=new mxHandle(b,null,mxVertexHandler.prototype.secondaryHandleImage);m.execute=function(b){for(var c=
-0;c<d.length;c++)this.copyStyle(d[c]);f&&f(b)};m.getPosition=c;m.setPosition=g;m.ignoreGrid=null!=e?e:!0;if(k){var l=m.positionChanged;m.positionChanged=function(){l.apply(this,arguments);b.view.invalidate(this.state.cell);b.view.validate()}}return m},Pa={link:function(b){return[ab(b,!0,10),ab(b,!1,10)]},flexArrow:function(b){var d=b.view.graph.gridSize/b.view.scale,c=[];mxUtils.getValue(b.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(Na(b,["width",mxConstants.STYLE_STARTSIZE,
-mxConstants.STYLE_ENDSIZE],!0,function(d,c,g,e,k){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;k=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+c*(k+b.shape.strokewidth*b.view.scale)+g*d/2,e.y+g*(k+b.shape.strokewidth*b.view.scale)-c*d/2)},function(c,g,e,k,f,m,l){c=Math.sqrt(mxUtils.ptSegDistSq(k.x,k.y,f.x,f.y,m.x,m.y));g=mxUtils.ptLineDist(k.x,k.y,k.x+e,k.y-g,m.x,m.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*
-(g-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*c)/b.view.scale;if(mxEvent.isShiftDown(l.getEvent())||mxEvent.isControlDown(l.getEvent()))b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE];mxEvent.isAltDown(l.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE])})),c.push(Na(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,
-mxConstants.STYLE_ENDSIZE],!0,function(d,c,g,e,k){d=(b.shape.getStartArrowWidth()-b.shape.strokewidth)*b.view.scale;k=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+c*(k+b.shape.strokewidth*b.view.scale)+g*d/2,e.y+g*(k+b.shape.strokewidth*b.view.scale)-c*d/2)},function(c,g,e,k,f,m,l){c=Math.sqrt(mxUtils.ptSegDistSq(k.x,k.y,f.x,f.y,m.x,m.y));g=mxUtils.ptLineDist(k.x,k.y,k.x+e,k.y-g,m.x,m.y);b.style[mxConstants.STYLE_STARTSIZE]=
-Math.round(100*(g-b.shape.strokewidth)/3)/100/b.view.scale;b.style.startWidth=Math.max(0,Math.round(2*c)-b.shape.getEdgeWidth())/b.view.scale;if(mxEvent.isShiftDown(l.getEvent())||mxEvent.isControlDown(l.getEvent()))b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE],b.style.endWidth=b.style.startWidth;mxEvent.isAltDown(l.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=
+2,c.height/2),Math.min(c.width,c.height)*e),c.y+g)},function(d,c,g){"1"==mxUtils.getValue(b.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(d.width,2*(d.x+d.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(d.width-c.x+d.x)/Math.min(d.width,d.height))))})},ga=function(b,d,c,g,e,k,f){var l=new mxHandle(b,null,mxVertexHandler.prototype.secondaryHandleImage);l.execute=function(b){for(var c=
+0;c<d.length;c++)this.copyStyle(d[c]);f&&f(b)};l.getPosition=c;l.setPosition=g;l.ignoreGrid=null!=e?e:!0;if(k){var m=l.positionChanged;l.positionChanged=function(){m.apply(this,arguments);b.view.invalidate(this.state.cell);b.view.validate()}}return l},Pa={link:function(b){return[ab(b,!0,10),ab(b,!1,10)]},flexArrow:function(b){var d=b.view.graph.gridSize/b.view.scale,c=[];mxUtils.getValue(b.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(Na(b,["width",mxConstants.STYLE_STARTSIZE,
+mxConstants.STYLE_ENDSIZE],!0,function(d,c,g,e,k){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;k=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+c*(k+b.shape.strokewidth*b.view.scale)+g*d/2,e.y+g*(k+b.shape.strokewidth*b.view.scale)-c*d/2)},function(c,g,e,k,f,l,m){c=Math.sqrt(mxUtils.ptSegDistSq(k.x,k.y,f.x,f.y,l.x,l.y));g=mxUtils.ptLineDist(k.x,k.y,k.x+e,k.y-g,l.x,l.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*
+(g-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*c)/b.view.scale;if(mxEvent.isShiftDown(m.getEvent())||mxEvent.isControlDown(m.getEvent()))b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE];mxEvent.isAltDown(m.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE])})),c.push(Na(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,
+mxConstants.STYLE_ENDSIZE],!0,function(d,c,g,e,k){d=(b.shape.getStartArrowWidth()-b.shape.strokewidth)*b.view.scale;k=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+c*(k+b.shape.strokewidth*b.view.scale)+g*d/2,e.y+g*(k+b.shape.strokewidth*b.view.scale)-c*d/2)},function(c,g,e,k,f,l,m){c=Math.sqrt(mxUtils.ptSegDistSq(k.x,k.y,f.x,f.y,l.x,l.y));g=mxUtils.ptLineDist(k.x,k.y,k.x+e,k.y-g,l.x,l.y);b.style[mxConstants.STYLE_STARTSIZE]=
+Math.round(100*(g-b.shape.strokewidth)/3)/100/b.view.scale;b.style.startWidth=Math.max(0,Math.round(2*c)-b.shape.getEdgeWidth())/b.view.scale;if(mxEvent.isShiftDown(m.getEvent())||mxEvent.isControlDown(m.getEvent()))b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE],b.style.endWidth=b.style.startWidth;mxEvent.isAltDown(m.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=
b.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(b.style.startWidth)-parseFloat(b.style.endWidth))<d&&(b.style.startWidth=b.style.endWidth))})));mxUtils.getValue(b.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(Na(b,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,c,g,e,k){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;k=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+
-c*(k+b.shape.strokewidth*b.view.scale)-g*d/2,e.y+g*(k+b.shape.strokewidth*b.view.scale)+c*d/2)},function(c,g,e,k,f,m,l){c=Math.sqrt(mxUtils.ptSegDistSq(k.x,k.y,f.x,f.y,m.x,m.y));g=mxUtils.ptLineDist(k.x,k.y,k.x+e,k.y-g,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(g-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*c)/b.view.scale;if(mxEvent.isShiftDown(l.getEvent())||mxEvent.isControlDown(l.getEvent()))b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE];
-mxEvent.isAltDown(l.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE])})),c.push(Na(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,c,g,e,k){d=(b.shape.getEndArrowWidth()-b.shape.strokewidth)*b.view.scale;k=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+
-c*(k+b.shape.strokewidth*b.view.scale)-g*d/2,e.y+g*(k+b.shape.strokewidth*b.view.scale)+c*d/2)},function(c,g,e,k,f,m,l){c=Math.sqrt(mxUtils.ptSegDistSq(k.x,k.y,f.x,f.y,m.x,m.y));g=mxUtils.ptLineDist(k.x,k.y,k.x+e,k.y-g,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(g-b.shape.strokewidth)/3)/100/b.view.scale;b.style.endWidth=Math.max(0,Math.round(2*c)-b.shape.getEdgeWidth())/b.view.scale;if(mxEvent.isShiftDown(l.getEvent())||mxEvent.isControlDown(l.getEvent()))b.style[mxConstants.STYLE_STARTSIZE]=
-b.style[mxConstants.STYLE_ENDSIZE],b.style.startWidth=b.style.endWidth;mxEvent.isAltDown(l.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(b.style.endWidth)-parseFloat(b.style.startWidth))<d&&(b.style.endWidth=b.style.startWidth))})));return c},swimlane:function(b){var d=[];if(mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED)){var c=
+c*(k+b.shape.strokewidth*b.view.scale)-g*d/2,e.y+g*(k+b.shape.strokewidth*b.view.scale)+c*d/2)},function(c,g,e,k,f,l,m){c=Math.sqrt(mxUtils.ptSegDistSq(k.x,k.y,f.x,f.y,l.x,l.y));g=mxUtils.ptLineDist(k.x,k.y,k.x+e,k.y-g,l.x,l.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(g-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*c)/b.view.scale;if(mxEvent.isShiftDown(m.getEvent())||mxEvent.isControlDown(m.getEvent()))b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE];
+mxEvent.isAltDown(m.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE])})),c.push(Na(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,c,g,e,k){d=(b.shape.getEndArrowWidth()-b.shape.strokewidth)*b.view.scale;k=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+
+c*(k+b.shape.strokewidth*b.view.scale)-g*d/2,e.y+g*(k+b.shape.strokewidth*b.view.scale)+c*d/2)},function(c,g,e,k,f,l,m){c=Math.sqrt(mxUtils.ptSegDistSq(k.x,k.y,f.x,f.y,l.x,l.y));g=mxUtils.ptLineDist(k.x,k.y,k.x+e,k.y-g,l.x,l.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(g-b.shape.strokewidth)/3)/100/b.view.scale;b.style.endWidth=Math.max(0,Math.round(2*c)-b.shape.getEdgeWidth())/b.view.scale;if(mxEvent.isShiftDown(m.getEvent())||mxEvent.isControlDown(m.getEvent()))b.style[mxConstants.STYLE_STARTSIZE]=
+b.style[mxConstants.STYLE_ENDSIZE],b.style.startWidth=b.style.endWidth;mxEvent.isAltDown(m.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(b.style.endWidth)-parseFloat(b.style.startWidth))<d&&(b.style.endWidth=b.style.startWidth))})));return c},swimlane:function(b){var d=[];if(mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED)){var c=
parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));d.push(Ha(b,c/2))}d.push(ga(b,[mxConstants.STYLE_STARTSIZE],function(d){var c=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(d.getCenterX(),d.y+Math.max(0,Math.min(d.height,c))):new mxPoint(d.x+Math.max(0,Math.min(d.width,c)),d.getCenterY())},function(d,c){b.style[mxConstants.STYLE_STARTSIZE]=
1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(d.height,c.y-d.y))):Math.round(Math.max(0,Math.min(d.width,c.x-d.x)))},!1,null,function(d){var c=b.view.graph;if(!mxEvent.isShiftDown(d.getEvent())&&!mxEvent.isControlDown(d.getEvent())&&(c.isTableRow(b.cell)||c.isTableCell(b.cell))){d=c.getSwimlaneDirection(b.style);for(var g=c.model.getParent(b.cell),g=c.model.getChildCells(g,!0),e=[],k=0;k<g.length;k++)g[k]!=b.cell&&c.isSwimlane(g[k])&&c.getSwimlaneDirection(c.getCurrentCellStyle(g[k]))==
d&&e.push(g[k]);c.setCellStyles(mxConstants.STYLE_STARTSIZE,b.style[mxConstants.STYLE_STARTSIZE],e)}}));return d},label:Ma(),ext:Ma(),rectangle:Ma(),triangle:Ma(),rhombus:Ma(),umlLifeline:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",K.prototype.size))));return new mxPoint(b.getCenterX(),b.y+d)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},umlFrame:function(b){return[ga(b,
@@ -2944,16 +2944,16 @@ Math.round(100*Math.max(0,Math.min(1,(d.x-b.x)/b.width)))/100},!1),ga(b,["positi
"dx",na.prototype.dx))),c=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",na.prototype.dy)));return new mxPoint(b.x+(b.width+d)/2,b.y+c)},function(b,d){this.state.style.dx=Math.round(Math.max(0,2*Math.min(b.width/2,d.x-b.x-b.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},singleArrow:Va(1),doubleArrow:Va(.5),folder:function(b){return[ga(b,["tabWidth","tabHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,
"tabWidth",u.prototype.tabWidth))),c=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"tabHeight",u.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",u.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(d=b.width-d);return new mxPoint(b.x+d,b.y+c)},function(b,d){var c=Math.max(0,Math.min(b.width,d.x-b.x));mxUtils.getValue(this.state.style,"tabPosition",u.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=b.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=
Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},document:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",H.prototype.size))));return new mxPoint(b.x+3*b.width/4,b.y+(1-d)*b.height)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},tape:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",G.prototype.size))));
-return new mxPoint(b.getCenterX(),b.y+d*b.height/2)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(d.y-b.y)/b.height*2))},!1)]},isoCube2:function(b){return[ga(b,["isoAngle"],function(b){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",q.isoAngle))))*Math.PI/200;return new mxPoint(b.x,b.y+Math.min(b.width*Math.tan(d),.5*b.height))},function(b,d){this.state.style.isoAngle=Math.max(0,50*(d.y-b.y)/b.height)},!0)]},cylinder2:Wa(m.prototype.size),cylinder3:Wa(p.prototype.size),
+return new mxPoint(b.getCenterX(),b.y+d*b.height/2)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(d.y-b.y)/b.height*2))},!1)]},isoCube2:function(b){return[ga(b,["isoAngle"],function(b){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",t.isoAngle))))*Math.PI/200;return new mxPoint(b.x,b.y+Math.min(b.width*Math.tan(d),.5*b.height))},function(b,d){this.state.style.isoAngle=Math.max(0,50*(d.y-b.y)/b.height)},!0)]},cylinder2:Wa(m.prototype.size),cylinder3:Wa(p.prototype.size),
offPageConnector:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ua.prototype.size))));return new mxPoint(b.getCenterX(),b.y+(1-d)*b.height)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},"mxgraph.basic.rect":function(b){var d=[Graph.createHandle(b,["size"],function(b){var d=Math.max(0,Math.min(b.width/2,b.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));
return new mxPoint(b.x+d,b.y+d)},function(b,d){this.state.style.size=Math.round(100*Math.max(0,Math.min(b.height/2,b.width/2,d.x-b.x)))/100})];b=Graph.createHandle(b,["indent"],function(b){var d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(b.x+.75*b.width,b.y+d*b.height/200)},function(b,d){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(d.y-b.y)/b.height)))/100});d.push(b);return d},step:Oa(M.prototype.size,!0,null,
!0,M.prototype.fixedSize),hexagon:Oa(Q.prototype.size,!0,.5,!0,Q.prototype.fixedSize),curlyBracket:Oa(O.prototype.size,!1),display:Oa(za.prototype.size,!1),cube:Ta(1,f.prototype.size,!1),card:Ta(.5,y.prototype.size,!0),loopLimit:Ta(.5,ta.prototype.size,!0),trapezoid:Xa(.5,F.prototype.size,F.prototype.fixedSize),parallelogram:Xa(1,D.prototype.size,D.prototype.fixedSize)};Graph.createHandle=ga;Graph.handleFactory=Pa;var eb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=
function(){var b=eb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var d=this.state.style.shape;null==mxCellRenderer.defaultShapes[d]&&null==mxStencilRegistry.getStencil(d)?d=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&(d=mxConstants.SHAPE_SWIMLANE);d=Pa[d];null==d&&null!=this.state.shape&&this.state.shape.isRoundable()&&(d=Pa[mxConstants.SHAPE_RECTANGLE]);null!=d&&(d=d(this.state),null!=d&&(b=null==b?d:b.concat(d)))}return b};mxEdgeHandler.prototype.createCustomHandles=
function(){var b=this.state.style.shape;null==mxCellRenderer.defaultShapes[b]&&null==mxStencilRegistry.getStencil(b)&&(b=mxConstants.SHAPE_CONNECTOR);b=Pa[b];return null!=b?b(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Qa=new mxPoint(1,0),Ra=new mxPoint(1,0),Ya=mxUtils.toRadians(-30),Qa=mxUtils.getRotatedPoint(Qa,Math.cos(Ya),Math.sin(Ya)),Za=mxUtils.toRadians(-150),Ra=mxUtils.getRotatedPoint(Ra,Math.cos(Za),Math.sin(Za));mxEdgeStyle.IsometricConnector=function(b,
-d,c,g,e){var k=b.view;g=null!=g&&0<g.length?g[0]:null;var f=b.absolutePoints,m=f[0],f=f[f.length-1];null!=g&&(g=k.transformControlPoint(b,g));null==m&&null!=d&&(m=new mxPoint(d.getCenterX(),d.getCenterY()));null==f&&null!=c&&(f=new mxPoint(c.getCenterX(),c.getCenterY()));var l=Qa.x,q=Qa.y,p=Ra.x,B=Ra.y,n="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=f&&null!=m){b=function(b,d,c){b-=u.x;var g=d-u.y;d=(B*b-p*g)/(l*B-q*p);b=(q*b-l*g)/(q*p-l*B);n?(c&&(u=new mxPoint(u.x+l*d,u.y+
-q*d),e.push(u)),u=new mxPoint(u.x+p*b,u.y+B*b)):(c&&(u=new mxPoint(u.x+p*b,u.y+B*b),e.push(u)),u=new mxPoint(u.x+l*d,u.y+q*d));e.push(u)};var u=m;null==g&&(g=new mxPoint(m.x+(f.x-m.x)/2,m.y+(f.y-m.y)/2));b(g.x,g.y,!0);b(f.x,f.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var fb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(b,d){if(d==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(b);c.snapToTerminals=!1;return c}return fb.apply(this,
-arguments)};l.prototype.constraints=[];t.prototype.getConstraints=function(b,d,c){b=[];var g=Math.tan(mxUtils.toRadians(30)),e=(.5-g)/2,g=Math.min(d,c/(.5+g));d=(d-g)/2;c=(c-g)/2;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c+.25*g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*g,c+g*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+g,c+.25*g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+g,c+.75*g));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,d+.5*g,c+(1-e)*g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c+.75*g));return b};q.prototype.getConstraints=function(b,d,c){b=[];var g=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,g=Math.min(d*Math.tan(g),.5*c);b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
+d,c,g,e){var k=b.view;g=null!=g&&0<g.length?g[0]:null;var f=b.absolutePoints,l=f[0],f=f[f.length-1];null!=g&&(g=k.transformControlPoint(b,g));null==l&&null!=d&&(l=new mxPoint(d.getCenterX(),d.getCenterY()));null==f&&null!=c&&(f=new mxPoint(c.getCenterX(),c.getCenterY()));var m=Qa.x,t=Qa.y,p=Ra.x,B=Ra.y,n="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=f&&null!=l){b=function(b,d,c){b-=u.x;var g=d-u.y;d=(B*b-p*g)/(m*B-t*p);b=(t*b-m*g)/(t*p-m*B);n?(c&&(u=new mxPoint(u.x+m*d,u.y+
+t*d),e.push(u)),u=new mxPoint(u.x+p*b,u.y+B*b)):(c&&(u=new mxPoint(u.x+p*b,u.y+B*b),e.push(u)),u=new mxPoint(u.x+m*d,u.y+t*d));e.push(u)};var u=l;null==g&&(g=new mxPoint(l.x+(f.x-l.x)/2,l.y+(f.y-l.y)/2));b(g.x,g.y,!0);b(f.x,f.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var fb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(b,d){if(d==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(b);c.snapToTerminals=!1;return c}return fb.apply(this,
+arguments)};l.prototype.constraints=[];q.prototype.getConstraints=function(b,d,c){b=[];var g=Math.tan(mxUtils.toRadians(30)),e=(.5-g)/2,g=Math.min(d,c/(.5+g));d=(d-g)/2;c=(c-g)/2;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c+.25*g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*g,c+g*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+g,c+.25*g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+g,c+.75*g));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,d+.5*g,c+(1-e)*g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c+.75*g));return b};t.prototype.getConstraints=function(b,d,c){b=[];var g=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,g=Math.min(d*Math.tan(g),.5*c);b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,d,c-g));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c-g));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g));return b};N.prototype.getConstraints=function(b,d,c){b=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var g=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,
"position",this.position));var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,d,.5*(c-g)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c-g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c-g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(c-g)));d>=2*g&&b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return b};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(.25,
@@ -3003,12 +3003,12 @@ parseFloat(mxUtils.getValue(this.style,"arrowWidth",ca.prototype.arrowWidth)))),
.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];Aa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,
.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];la.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];oa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(b){this.editorUi=b;this.actions={};this.init()}
Actions.prototype.init=function(){function b(b){l.escape();b=l.deleteCells(l.getDeletableCells(l.getSelectionCells()),b);null!=b&&l.setSelectionCells(b)}function c(){if(!l.isSelectionEmpty()){l.getModel().beginUpdate();try{for(var b=l.getSelectionCells(),d=0;d<b.length;d++)l.cellLabelChanged(b[d],"")}finally{l.getModel().endUpdate()}}}function e(b,d,c,e,k){k.getModel().beginUpdate();try{var g=k.getCellGeometry(b);null!=g&&c&&e&&(c/=e,g=g.clone(),1<c?g.height=g.width/c:g.width=g.height*c,k.getModel().setGeometry(b,
-g));k.setCellStyles(mxConstants.STYLE_CLIP_PATH,d,[b]);k.setCellStyles(mxConstants.STYLE_ASPECT,"fixed",[b])}finally{k.getModel().endUpdate()}}var f=this.editorUi,n=f.editor,l=n.graph,t=function(){return Action.prototype.isEnabled.apply(this,arguments)&&l.isEnabled()};this.addAction("new...",function(){l.openLink(f.getUrl())});this.addAction("open...",function(){window.openNew=!0;window.openKey="open";f.openFile()});this.addAction("smartFit",function(){l.popupMenuHandler.hideMenu();var b=l.view.scale,
+g));k.setCellStyles(mxConstants.STYLE_CLIP_PATH,d,[b]);k.setCellStyles(mxConstants.STYLE_ASPECT,"fixed",[b])}finally{k.getModel().endUpdate()}}var f=this.editorUi,n=f.editor,l=n.graph,q=function(){return Action.prototype.isEnabled.apply(this,arguments)&&l.isEnabled()};this.addAction("new...",function(){l.openLink(f.getUrl())});this.addAction("open...",function(){window.openNew=!0;window.openKey="open";f.openFile()});this.addAction("smartFit",function(){l.popupMenuHandler.hideMenu();var b=l.view.scale,
d=l.view.translate.x,c=l.view.translate.y;f.actions.get("resetView").funct();1E-5>Math.abs(b-l.view.scale)&&d==l.view.translate.x&&c==l.view.translate.y&&f.actions.get(l.pageVisible?"fitPage":"fitWindow").funct()});this.addAction("keyPressEnter",function(){l.isEnabled()&&(l.isSelectionEmpty()?f.actions.get("smartFit").funct():l.startEditingAtCell())});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){f.hideDialog()}));
-window.openFile.setConsumer(mxUtils.bind(this,function(b,d){try{var c=mxUtils.parseXml(b);n.graph.setSelectionCells(n.graph.importGraphModel(c.documentElement))}catch(p){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+p.message)}}));f.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=t;this.addAction("save",function(){f.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=t;this.addAction("saveAs...",function(){f.saveFile(!0)},null,
-null,Editor.ctrlKey+"+Shift+S").isEnabled=t;this.addAction("export...",function(){f.showDialog((new ExportDialog(f)).container,300,340,!0,!0)});this.addAction("editDiagram...",function(){var b=new EditDiagramDialog(f);f.showDialog(b.container,620,420,!0,!1);b.init()});this.addAction("pageSetup...",function(){f.showDialog((new PageSetupDialog(f)).container,320,240,!0,!0)}).isEnabled=t;this.addAction("print...",function(){f.showDialog((new PrintDialog(f)).container,300,180,!0,!0)},null,"sprite-print",
-Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(l,null,10,10)});this.addAction("undo",function(){f.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){f.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",function(){var b=null;try{b=f.copyXml(),null!=b&&l.removeCells(b,!1)}catch(q){}null==b&&mxClipboard.cut(l)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){try{f.copyXml()}catch(g){}try{mxClipboard.copy(l)}catch(g){f.handleError(g)}},
-null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())){var b=!1;try{Editor.enableNativeCipboard&&(f.readGraphModelFromClipboard(function(b){if(null!=b){l.getModel().beginUpdate();try{f.pasteXml(b,!0)}finally{l.getModel().endUpdate()}}else mxClipboard.paste(l)}),b=!0)}catch(q){}b||mxClipboard.paste(l)}},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(b){function d(b){if(null!=b){for(var d=!0,c=0;c<
+window.openFile.setConsumer(mxUtils.bind(this,function(b,d){try{var c=mxUtils.parseXml(b);n.graph.setSelectionCells(n.graph.importGraphModel(c.documentElement))}catch(p){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+p.message)}}));f.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=q;this.addAction("save",function(){f.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=q;this.addAction("saveAs...",function(){f.saveFile(!0)},null,
+null,Editor.ctrlKey+"+Shift+S").isEnabled=q;this.addAction("export...",function(){f.showDialog((new ExportDialog(f)).container,300,340,!0,!0)});this.addAction("editDiagram...",function(){var b=new EditDiagramDialog(f);f.showDialog(b.container,620,420,!0,!1);b.init()});this.addAction("pageSetup...",function(){f.showDialog((new PageSetupDialog(f)).container,320,240,!0,!0)}).isEnabled=q;this.addAction("print...",function(){f.showDialog((new PrintDialog(f)).container,300,180,!0,!0)},null,"sprite-print",
+Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(l,null,10,10)});this.addAction("undo",function(){f.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){f.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",function(){var b=null;try{b=f.copyXml(),null!=b&&l.removeCells(b,!1)}catch(t){}null==b&&mxClipboard.cut(l)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){try{f.copyXml()}catch(g){}try{mxClipboard.copy(l)}catch(g){f.handleError(g)}},
+null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())){var b=!1;try{Editor.enableNativeCipboard&&(f.readGraphModelFromClipboard(function(b){if(null!=b){l.getModel().beginUpdate();try{f.pasteXml(b,!0)}finally{l.getModel().endUpdate()}}else mxClipboard.paste(l)}),b=!0)}catch(t){}b||mxClipboard.paste(l)}},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(b){function d(b){if(null!=b){for(var d=!0,c=0;c<
b.length&&d;c++)d=d&&l.model.isEdge(b[c]);var g=l.view.translate,c=l.view.scale,e=g.x,k=g.y,g=null;if(1==b.length&&d){var f=l.getCellGeometry(b[0]);null!=f&&(g=f.getTerminalPoint(!0))}g=null!=g?g:l.getBoundingBoxFromGeometry(b,d);null!=g&&(d=Math.round(l.snap(l.popupMenuHandler.triggerX/c-e)),c=Math.round(l.snap(l.popupMenuHandler.triggerY/c-k)),l.cellsMoved(b,d-g.x,c-g.y))}}function c(){l.getModel().beginUpdate();try{d(mxClipboard.paste(l))}finally{l.getModel().endUpdate()}}if(l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())){b=
!1;try{Editor.enableNativeCipboard&&(f.readGraphModelFromClipboard(function(b){if(null!=b){l.getModel().beginUpdate();try{d(f.pasteXml(b,!0))}finally{l.getModel().endUpdate()}}else c()}),b=!0)}catch(p){}b||c()}});this.addAction("copySize",function(){var b=l.getSelectionCell();l.isEnabled()&&null!=b&&l.getModel().isVertex(b)&&(b=l.getCellGeometry(b),null!=b&&(f.copiedSize=new mxRectangle(b.x,b.y,b.width,b.height)))},null,null,"Alt+Shift+X");this.addAction("pasteSize",function(){if(l.isEnabled()&&!l.isSelectionEmpty()&&
null!=f.copiedSize){l.getModel().beginUpdate();try{for(var b=l.getResizableCells(l.getSelectionCells()),d=0;d<b.length;d++)if(l.getModel().isVertex(b[d])){var c=l.getCellGeometry(b[d]);null!=c&&(c=c.clone(),c.width=f.copiedSize.width,c.height=f.copiedSize.height,l.getModel().setGeometry(b[d],c))}}finally{l.getModel().endUpdate()}}},null,null,"Alt+Shift+V");this.addAction("copyData",function(){var b=l.getSelectionCell()||l.getModel().getRoot();l.isEnabled()&&null!=b&&(b=b.cloneValue(),null==b||isNaN(b.nodeType)||
@@ -3024,10 +3024,10 @@ this.addAction("ungroup",function(){if(l.isEnabled()){var b=l.getEditableCells(l
if(null!=b){for(var d=[],c=0;c<b.length;c++)l.isTableRow(b[c])||l.isTableCell(b[c])||d.push(b[c]);l.removeCellsFromParent(d)}}});this.addAction("edit",function(){l.isEnabled()&&l.startEditingAtCell()},null,null,"F2/Enter");this.addAction("editData...",function(){var b=l.getSelectionCell()||l.getModel().getRoot();f.showDataDialog(b)},null,null,Editor.ctrlKey+"+M");this.addAction("editTooltip...",function(){var b=l.getSelectionCell();if(l.isEnabled()&&null!=b&&l.isCellEditable(b)){var d="";if(mxUtils.isNode(b.value)){var c=
null;Graph.translateDiagram&&null!=Graph.diagramLanguage&&b.value.hasAttribute("tooltip_"+Graph.diagramLanguage)&&(c=b.value.getAttribute("tooltip_"+Graph.diagramLanguage));null==c&&(c=b.value.getAttribute("tooltip"));null!=c&&(d=c)}d=new TextareaDialog(f,mxResources.get("editTooltip")+":",d,function(d){l.setTooltipForCell(b,d)});f.showDialog(d.container,320,200,!0,!0);d.init()}},null,null,"Alt+Shift+T");this.addAction("openLink",function(){var b=l.getLinkForCell(l.getSelectionCell());null!=b&&l.openLink(b)});
this.addAction("editLink...",function(){var b=l.getSelectionCell();if(l.isEnabled()&&null!=b&&l.isCellEditable(b)){var d=l.getLinkForCell(b)||"";f.showLinkDialog(d,mxResources.get("apply"),function(d,c,g){d=mxUtils.trim(d);l.setLinkForCell(b,0<d.length?d:null);l.setAttributeForCell(b,"linkTarget",g)},!0,l.getLinkTargetForCell(b))}},null,null,"Alt+Shift+L");this.put("insertImage",new Action(mxResources.get("image")+"...",function(){l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())&&(l.clearSelection(),
-f.actions.get("image").funct())})).isEnabled=t;this.put("insertLink",new Action(mxResources.get("link")+"...",function(){l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())&&f.showLinkDialog("",mxResources.get("insert"),function(b,d,c){b=mxUtils.trim(b);if(0<b.length){var g=null,e=l.getLinkTitle(b);null!=d&&0<d.length&&(g=d[0].iconUrl,e=d[0].name||d[0].type,e=e.charAt(0).toUpperCase()+e.substring(1),30<e.length&&(e=e.substring(0,30)+"..."));d=new mxCell(e,new mxGeometry(0,0,100,40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+
+f.actions.get("image").funct())})).isEnabled=q;this.put("insertLink",new Action(mxResources.get("link")+"...",function(){l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())&&f.showLinkDialog("",mxResources.get("insert"),function(b,d,c){b=mxUtils.trim(b);if(0<b.length){var g=null,e=l.getLinkTitle(b);null!=d&&0<d.length&&(g=d[0].iconUrl,e=d[0].name||d[0].type,e=e.charAt(0).toUpperCase()+e.substring(1),30<e.length&&(e=e.substring(0,30)+"..."));d=new mxCell(e,new mxGeometry(0,0,100,40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+
(null!=g?"shape=label;imageWidth=16;imageHeight=16;spacingLeft=26;align=left;image="+g:"spacing=10;"));d.vertex=!0;g=l.getCenterInsertPoint(l.getBoundingBoxFromGeometry([d],!0));d.geometry.x=g.x;d.geometry.y=g.y;l.setAttributeForCell(d,"linkTarget",c);l.setLinkForCell(d,b);l.cellSizeUpdated(d,!0);l.getModel().beginUpdate();try{d=l.addCell(d),l.fireEvent(new mxEventObject("cellsInserted","cells",[d]))}finally{l.getModel().endUpdate()}l.setSelectionCell(d);l.scrollCellToVisible(l.getSelectionCell())}},
-!0)})).isEnabled=t;this.addAction("link...",mxUtils.bind(this,function(){if(l.isEnabled())if(l.cellEditor.isContentEditing()){var b=l.getSelectedElement(),d=l.getParentByName(b,"A",l.cellEditor.textarea),c="";if(null==d&&null!=b&&null!=b.getElementsByTagName)for(var e=b.getElementsByTagName("a"),k=0;k<e.length&&null==d;k++)e[k].textContent==b.textContent&&(d=e[k]);null!=d&&"A"==d.nodeName&&(c=d.getAttribute("href")||"",l.selectNode(d));var n=l.cellEditor.saveSelection();f.showLinkDialog(c,mxResources.get("apply"),
-mxUtils.bind(this,function(b){l.cellEditor.restoreSelection(n);null!=b&&l.insertLink(b)}))}else l.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=t;this.addAction("autosize",function(){var b=l.getSelectionCells();if(null!=b){l.getModel().beginUpdate();try{for(var d=0;d<b.length;d++){var c=b[d];0<l.getModel().getChildCount(c)?l.updateGroupBounds([c],0,!0):l.updateCellSize(c)}}finally{l.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+Y");this.addAction("snapToGrid",
+!0)})).isEnabled=q;this.addAction("link...",mxUtils.bind(this,function(){if(l.isEnabled())if(l.cellEditor.isContentEditing()){var b=l.getSelectedElement(),d=l.getParentByName(b,"A",l.cellEditor.textarea),c="";if(null==d&&null!=b&&null!=b.getElementsByTagName)for(var e=b.getElementsByTagName("a"),k=0;k<e.length&&null==d;k++)e[k].textContent==b.textContent&&(d=e[k]);null!=d&&"A"==d.nodeName&&(c=d.getAttribute("href")||"",l.selectNode(d));var n=l.cellEditor.saveSelection();f.showLinkDialog(c,mxResources.get("apply"),
+mxUtils.bind(this,function(b){l.cellEditor.restoreSelection(n);null!=b&&l.insertLink(b)}))}else l.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=q;this.addAction("autosize",function(){var b=l.getSelectionCells();if(null!=b){l.getModel().beginUpdate();try{for(var d=0;d<b.length;d++){var c=b[d];0<l.getModel().getChildCount(c)?l.updateGroupBounds([c],0,!0):l.updateCellSize(c)}}finally{l.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+Y");this.addAction("snapToGrid",
function(){l.snapCellsToGrid(l.getSelectionCells(),l.gridSize)});this.addAction("formattedText",function(){l.stopEditing();var b=l.getCommonStyle(l.getSelectionCells()),b="1"==mxUtils.getValue(b,"html","0")?null:"1";l.getModel().beginUpdate();try{for(var d=l.getEditableCells(l.getSelectionCells()),c=0;c<d.length;c++)if(state=l.getView().getState(d[c]),null!=state){var e=mxUtils.getValue(state.style,"html","0");if("1"==e&&null==b){var k=l.convertValueToString(state.cell);"0"!=mxUtils.getValue(state.style,
"nl2Br","1")&&(k=k.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));var n=document.createElement("div");n.innerHTML=l.sanitizeHtml(k);k=mxUtils.extractTextWithWhitespace(n.childNodes);l.cellLabelChanged(state.cell,k);l.setCellStyles("html",b,[d[c]])}else"0"==e&&"1"==b&&(k=mxUtils.htmlEntities(l.convertValueToString(state.cell),!1),"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(k=k.replace(/\n/g,"<br/>")),l.cellLabelChanged(state.cell,l.sanitizeHtml(k)),l.setCellStyles("html",b,[d[c]]))}f.fireEvent(new mxEventObject("styleChanged",
"keys",["html"],"values",[null!=b?b:"0"],"cells",d))}finally{l.getModel().endUpdate()}});this.addAction("wordWrap",function(){var b=l.getView().getState(l.getSelectionCell()),d="wrap";l.stopEditing();null!=b&&"wrap"==b.style[mxConstants.STYLE_WHITE_SPACE]&&(d=null);l.setCellStyles(mxConstants.STYLE_WHITE_SPACE,d)});this.addAction("rotation",function(){var b="0",d=l.getView().getState(l.getSelectionCell());null!=d&&(b=d.style[mxConstants.STYLE_ROTATION]||b);b=new FilenameDialog(f,b,mxResources.get("apply"),
@@ -3039,10 +3039,10 @@ l.container.clientHeight)/2),l.container.scrollLeft=Math.min(b.x,(l.container.sc
2)}}));this.put("customZoom",new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var b=new FilenameDialog(this.editorUi,parseInt(100*l.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(b){b=parseInt(b);!isNaN(b)&&0<b&&l.zoomTo(b/100)}),mxResources.get("zoom")+" (%)");this.editorUi.showDialog(b.container,300,80,!0,!0);b.init()}),null,null,Editor.ctrlKey+"+0"));this.addAction("pageScale...",mxUtils.bind(this,function(){var b=new FilenameDialog(this.editorUi,
parseInt(100*l.pageScale),mxResources.get("apply"),mxUtils.bind(this,function(b){b=parseInt(b);!isNaN(b)&&0<b&&(b=new ChangePageSetup(f,null,null,null,b/100),b.ignoreColor=!0,b.ignoreImage=!0,l.model.execute(b))}),mxResources.get("pageScale")+" (%)");this.editorUi.showDialog(b.container,300,80,!0,!0);b.init()}));var d=null,d=this.addAction("grid",function(){l.setGridEnabled(!l.isGridEnabled());l.defaultGridEnabled=l.isGridEnabled();f.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,Editor.ctrlKey+
"+Shift+G");d.setToggleAction(!0);d.setSelectedCallback(function(){return l.isGridEnabled()});d.setEnabled(!1);d=this.addAction("guides",function(){l.graphHandler.guidesEnabled=!l.graphHandler.guidesEnabled;f.fireEvent(new mxEventObject("guidesEnabledChanged"))});d.setToggleAction(!0);d.setSelectedCallback(function(){return l.graphHandler.guidesEnabled});d.setEnabled(!1);d=this.addAction("tooltips",function(){l.tooltipHandler.setEnabled(!l.tooltipHandler.isEnabled());f.fireEvent(new mxEventObject("tooltipsEnabledChanged"))});
-d.setToggleAction(!0);d.setSelectedCallback(function(){return l.tooltipHandler.isEnabled()});d=this.addAction("collapseExpand",function(){var b=new ChangePageSetup(f);b.ignoreColor=!0;b.ignoreImage=!0;b.foldingEnabled=!l.foldingEnabled;l.model.execute(b)});d.setToggleAction(!0);d.setSelectedCallback(function(){return l.foldingEnabled});d.isEnabled=t;d=this.addAction("scrollbars",function(){f.setScrollbars(!f.hasScrollbars())});d.setToggleAction(!0);d.setSelectedCallback(function(){return l.scrollbars});
+d.setToggleAction(!0);d.setSelectedCallback(function(){return l.tooltipHandler.isEnabled()});d=this.addAction("collapseExpand",function(){var b=new ChangePageSetup(f);b.ignoreColor=!0;b.ignoreImage=!0;b.foldingEnabled=!l.foldingEnabled;l.model.execute(b)});d.setToggleAction(!0);d.setSelectedCallback(function(){return l.foldingEnabled});d.isEnabled=q;d=this.addAction("scrollbars",function(){f.setScrollbars(!f.hasScrollbars())});d.setToggleAction(!0);d.setSelectedCallback(function(){return l.scrollbars});
d=this.addAction("pageView",mxUtils.bind(this,function(){f.setPageVisible(!l.pageVisible)}));d.setToggleAction(!0);d.setSelectedCallback(function(){return l.pageVisible});d=this.addAction("connectionArrows",function(){l.connectionArrowsEnabled=!l.connectionArrowsEnabled;f.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");d.setToggleAction(!0);d.setSelectedCallback(function(){return l.connectionArrowsEnabled});d=this.addAction("connectionPoints",function(){l.setConnectable(!l.connectionHandler.isEnabled());
-f.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Alt+Shift+P");d.setToggleAction(!0);d.setSelectedCallback(function(){return l.connectionHandler.isEnabled()});d=this.addAction("copyConnect",function(){l.connectionHandler.setCreateTarget(!l.connectionHandler.isCreateTarget());f.fireEvent(new mxEventObject("copyConnectChanged"))});d.setToggleAction(!0);d.setSelectedCallback(function(){return l.connectionHandler.isCreateTarget()});d.isEnabled=t;d=this.addAction("autosave",function(){f.editor.setAutosave(!f.editor.autosave)});
-d.setToggleAction(!0);d.setSelectedCallback(function(){return f.editor.autosave});d.isEnabled=t;d.visible=!1;this.addAction("help",function(){var b="";mxResources.isLanguageSupported(mxClient.language)&&(b="_"+mxClient.language);l.openLink(RESOURCES_PATH+"/help"+b+".html")});var k=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){k||(f.showDialog((new AboutDialog(f)).container,320,280,!0,!0,function(){k=!1}),k=!0)}));d=mxUtils.bind(this,function(b,d,c,e){return this.addAction(b,
+f.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Alt+Shift+P");d.setToggleAction(!0);d.setSelectedCallback(function(){return l.connectionHandler.isEnabled()});d=this.addAction("copyConnect",function(){l.connectionHandler.setCreateTarget(!l.connectionHandler.isCreateTarget());f.fireEvent(new mxEventObject("copyConnectChanged"))});d.setToggleAction(!0);d.setSelectedCallback(function(){return l.connectionHandler.isCreateTarget()});d.isEnabled=q;d=this.addAction("autosave",function(){f.editor.setAutosave(!f.editor.autosave)});
+d.setToggleAction(!0);d.setSelectedCallback(function(){return f.editor.autosave});d.isEnabled=q;d.visible=!1;this.addAction("help",function(){var b="";mxResources.isLanguageSupported(mxClient.language)&&(b="_"+mxClient.language);l.openLink(RESOURCES_PATH+"/help"+b+".html")});var k=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){k||(f.showDialog((new AboutDialog(f)).container,320,280,!0,!0,function(){k=!1}),k=!0)}));d=mxUtils.bind(this,function(b,d,c,e){return this.addAction(b,
function(){if(null!=c&&l.cellEditor.isContentEditing())c();else{l.stopEditing(!1);l.getModel().beginUpdate();try{var b=l.getEditableCells(l.getSelectionCells());l.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,d,b);(d&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?l.updateLabelElements(b,function(b){b.style.fontWeight=null;"B"==b.nodeName&&l.replaceElement(b)}):(d&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?l.updateLabelElements(b,function(b){b.style.fontStyle=null;"I"==b.nodeName&&l.replaceElement(b)}):
(d&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&l.updateLabelElements(b,function(b){b.style.textDecoration=null;"U"==b.nodeName&&l.replaceElement(b)});for(var g=0;g<b.length;g++)0==l.model.getChildCount(b[g])&&l.autoSizeCell(b[g],!1)}finally{l.getModel().endUpdate()}}},null,null,e)});d("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");d("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},Editor.ctrlKey+"+I");
d("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},Editor.ctrlKey+"+U");this.addAction("fontColor...",function(){f.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});this.addAction("strokeColor...",function(){f.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){f.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){f.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});
@@ -3058,13 +3058,13 @@ if(null!=b&&l.getModel().isEdge(b)){var d=n.graph.selectionCellsHandler.getHandl
f.actions.get("removeWaypoint");null!=b.handler&&b.handler.removePoint(b.handler.state,b.index)});this.addAction("clearWaypoints",function(b,d){b=null!=d?d:b;var c=l.getSelectionCells();if(null!=c){c=l.getEditableCells(l.addAllEdges(c));l.getModel().beginUpdate();try{for(var g=0;g<c.length;g++){var e=c[g];if(l.getModel().isEdge(e)){var k=l.getCellGeometry(e);null!=d&&mxEvent.isShiftDown(b)?(l.setCellStyles(mxConstants.STYLE_EXIT_X,null,[e]),l.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[e]),l.setCellStyles(mxConstants.STYLE_ENTRY_X,
null,[e]),l.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[e])):null!=k&&(k=k.clone(),k.points=null,k.x=0,k.y=0,k.offset=null,l.getModel().setGeometry(e,k))}}}finally{l.getModel().endUpdate()}}},null,null,"Alt+Shift+C");d=this.addAction("subscript",mxUtils.bind(this,function(){l.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");d=this.addAction("superscript",mxUtils.bind(this,function(){l.cellEditor.isContentEditing()&&document.execCommand("superscript",
!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...",function(){if(l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())){var b=mxResources.get("image")+" ("+mxResources.get("url")+"):",d=l.getView().getState(l.getSelectionCell()),c="",k=null;null!=d&&(c=d.style[mxConstants.STYLE_IMAGE]||c,k=d.style[mxConstants.STYLE_CLIP_PATH]||k);var n=l.cellEditor.saveSelection();f.showImageDialog(b,c,function(b,d,c,g,k,f){if(l.cellEditor.isContentEditing())l.cellEditor.restoreSelection(n),l.insertImage(b,
-d,c);else{var m=l.getSelectionCells();if(null!=b&&(0<b.length||0<m.length)){var p=null;l.getModel().beginUpdate();try{if(0==m.length){var m=[l.insertVertex(l.getDefaultParent(),null,"",0,0,d,c,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")],q=l.getCenterInsertPoint(l.getBoundingBoxFromGeometry(m,!0));m[0].geometry.x=q.x;m[0].geometry.y=q.y;null!=g&&e(m[0],g,k,f,l);p=m;l.fireEvent(new mxEventObject("cellsInserted","cells",p))}l.setCellStyles(mxConstants.STYLE_IMAGE,
+d,c);else{var m=l.getSelectionCells();if(null!=b&&(0<b.length||0<m.length)){var p=null;l.getModel().beginUpdate();try{if(0==m.length){var m=[l.insertVertex(l.getDefaultParent(),null,"",0,0,d,c,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")],t=l.getCenterInsertPoint(l.getBoundingBoxFromGeometry(m,!0));m[0].geometry.x=t.x;m[0].geometry.y=t.y;null!=g&&e(m[0],g,k,f,l);p=m;l.fireEvent(new mxEventObject("cellsInserted","cells",p))}l.setCellStyles(mxConstants.STYLE_IMAGE,
0<b.length?b:null,m);var u=l.getCurrentCellStyle(m[0]);"image"!=u[mxConstants.STYLE_SHAPE]&&"label"!=u[mxConstants.STYLE_SHAPE]?l.setCellStyles(mxConstants.STYLE_SHAPE,"image",m):0==b.length&&l.setCellStyles(mxConstants.STYLE_SHAPE,null,m);if(1==l.getSelectionCount()&&null!=d&&null!=c){var v=m[0],y=l.getModel().getGeometry(v);null!=y&&(y=y.clone(),y.width=d,y.height=c,l.getModel().setGeometry(v,y));null!=g?e(v,g,k,f,l):l.setCellStyles(mxConstants.STYLE_CLIP_PATH,null,m)}}finally{l.getModel().endUpdate()}null!=
-p&&(l.setSelectionCells(p),l.scrollCellToVisible(p[0]))}}},l.cellEditor.isContentEditing(),!l.cellEditor.isContentEditing(),!0,k)}}).isEnabled=t;this.addAction("crop...",function(){var b=l.getSelectionCell();if(l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())&&null!=b){var d=l.getCurrentCellStyle(b),c=d[mxConstants.STYLE_IMAGE],k=d[mxConstants.STYLE_SHAPE];c&&"image"==k&&(d=new CropImageDialog(f,c,d[mxConstants.STYLE_CLIP_PATH],function(d,c,g){e(b,d,c,g,l)}),f.showDialog(d.container,300,390,!0,
-!0))}}).isEnabled=t;d=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(f,document.body.offsetWidth-280,120,212,200),this.layersWindow.window.addListener("show",mxUtils.bind(this,function(){f.fireEvent(new mxEventObject("layers"))})),this.layersWindow.window.addListener("hide",function(){f.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),f.fireEvent(new mxEventObject("layers")),this.layersWindow.init()):
+p&&(l.setSelectionCells(p),l.scrollCellToVisible(p[0]))}}},l.cellEditor.isContentEditing(),!l.cellEditor.isContentEditing(),!0,k)}}).isEnabled=q;this.addAction("crop...",function(){var b=l.getSelectionCell();if(l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())&&null!=b){var d=l.getCurrentCellStyle(b),c=d[mxConstants.STYLE_IMAGE],k=d[mxConstants.STYLE_SHAPE];c&&"image"==k&&(d=new CropImageDialog(f,c,d[mxConstants.STYLE_CLIP_PATH],function(d,c,g){e(b,d,c,g,l)}),f.showDialog(d.container,300,390,!0,
+!0))}}).isEnabled=q;d=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(f,document.body.offsetWidth-280,120,212,200),this.layersWindow.window.addListener("show",mxUtils.bind(this,function(){f.fireEvent(new mxEventObject("layers"))})),this.layersWindow.window.addListener("hide",function(){f.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),f.fireEvent(new mxEventObject("layers")),this.layersWindow.init()):
this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");d.setToggleAction(!0);d.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));d=this.addAction("formatPanel",mxUtils.bind(this,function(){f.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");d.setToggleAction(!0);d.setSelectedCallback(mxUtils.bind(this,function(){return 0<f.formatWidth}));d=this.addAction("outline",
mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(f,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",mxUtils.bind(this,function(){f.fireEvent(new mxEventObject("outline"))})),this.outlineWindow.window.addListener("hide",function(){f.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),f.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),
-null,null,Editor.ctrlKey+"+Shift+O");d.setToggleAction(!0);d.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}));this.addAction("editConnectionPoints...",function(){var b=l.getSelectionCell();if(l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())&&null!=b){var d=new ConnectionPointsDialog(f,b);f.showDialog(d.container,350,450,!0,!1,function(){d.destroy()});d.init()}}).isEnabled=t};
+null,null,Editor.ctrlKey+"+Shift+O");d.setToggleAction(!0);d.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}));this.addAction("editConnectionPoints...",function(){var b=l.getSelectionCell();if(l.isEnabled()&&!l.isCellLocked(l.getDefaultParent())&&null!=b){var d=new ConnectionPointsDialog(f,b);f.showDialog(d.container,350,450,!0,!1,function(){d.destroy()});d.init()}}).isEnabled=q};
Actions.prototype.addAction=function(b,c,e,f,n){var l;"..."==b.substring(b.length-3)?(b=b.substring(0,b.length-3),l=mxResources.get(b)+"..."):l=mxResources.get(b);return this.put(b,new Action(l,c,e,f,n))};Actions.prototype.put=function(b,c){return this.actions[b]=c};Actions.prototype.get=function(b){return this.actions[b]};function Action(b,c,e,f,n){mxEventSource.call(this);this.label=b;this.funct=this.createFunction(c);this.enabled=null!=e?e:!0;this.iconCls=f;this.shortcut=n;this.visible=!0}
mxUtils.extend(Action,mxEventSource);Action.prototype.createFunction=function(b){return b};Action.prototype.setEnabled=function(b){this.enabled!=b&&(this.enabled=b,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled};Action.prototype.setToggleAction=function(b){this.toggleAction=b};Action.prototype.setSelectedCallback=function(b){this.selectedCallback=b};Action.prototype.isSelected=function(){return this.selectedCallback()};DrawioFile=function(b,c){mxEventSource.call(this);this.ui=b;this.data=c||"";this.created=(new Date).getTime();this.stats={opened:0,merged:0,fileMerged:0,fileReloaded:0,conflicts:0,timeouts:0,saved:0,closed:0,destroyed:0,joined:0,checksumErrors:0,bytesSent:0,bytesReceived:0,msgSent:0,msgReceived:0,cacheHits:0,cacheMiss:0,cacheFail:0}};DrawioFile.SYNC=urlParams.sync||"auto";DrawioFile.LAST_WRITE_WINS=!0;mxUtils.extend(DrawioFile,mxEventSource);DrawioFile.prototype.allChangesSavedKey="allChangesSaved";
DrawioFile.prototype.savingSpinnerKey="saving";DrawioFile.prototype.savingStatusKey="saving";DrawioFile.prototype.autosaveDelay=1500;DrawioFile.prototype.maxAutosaveDelay=3E4;DrawioFile.prototype.optimisticSyncDelay=300;DrawioFile.prototype.autosaveThread=null;DrawioFile.prototype.lastAutosave=null;DrawioFile.prototype.lastSaved=null;DrawioFile.prototype.lastChanged=null;DrawioFile.prototype.opened=null;DrawioFile.prototype.modified=!1;DrawioFile.prototype.shadowModified=!1;
@@ -3072,26 +3072,26 @@ DrawioFile.prototype.data=null;DrawioFile.prototype.shadowPages=null;DrawioFile.
DrawioFile.prototype.getShadowPages=function(){null==this.shadowPages&&(this.shadowPages=this.ui.getPagesForXml(this.data));return this.shadowPages};DrawioFile.prototype.setShadowPages=function(b){this.shadowPages=b};DrawioFile.prototype.synchronizeFile=function(b,c){this.savingFile?null!=c&&c({message:mxResources.get("busy")}):null!=this.sync?this.sync.fileChanged(mxUtils.bind(this,function(e){this.sync.cleanup(b,c,e)}),c):this.updateFile(b,c)};
DrawioFile.prototype.updateFile=function(b,c,e,f){null!=e&&e()||(EditorUi.debug("DrawioFile.updateFile",[this],"invalidChecksum",this.invalidChecksum),this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=c&&c():this.getLatestVersion(mxUtils.bind(this,function(n){try{null!=e&&e()||(EditorUi.debug("DrawioFile.updateFile",[this],"invalidChecksum",this.invalidChecksum,"latestFile",[n]),this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=c&&c():null!=n?this.mergeFile(n,b,c,f):this.reloadFile(b,
c))}catch(l){null!=c&&c(l)}}),c))};
-DrawioFile.prototype.mergeFile=function(b,c,e,f){var n=!0;try{this.stats.fileMerged++;var l=this.getShadowPages(),t=b.getShadowPages();if(null!=t&&0<t.length){var d=[this.ui.diffPages(null!=f?f:l,t)],k=this.ignorePatches(d);this.setShadowPages(t);if(!k){null!=this.sync&&this.sync.sendLocalChanges();this.backupPatch=this.isModified()?this.ui.diffPages(l,this.ui.pages):null;f={};var k={},g=this.ui.patchPages(l,d[0]),q=this.ui.getHashValueForPages(g,f),m=this.ui.getHashValueForPages(t,k);EditorUi.debug("File.mergeFile",
-[this],"file",[b],"patches",d,"backup",this.backupPatch,"checksum",q,"current",m,q==m);if(null!=q&&q!=m){var p=this.compressReportData(this.getAnonymizedXmlForPages(t)),v=this.compressReportData(this.getAnonymizedXmlForPages(g)),u=this.ui.hashValue(b.getCurrentEtag()),x=this.ui.hashValue(this.getCurrentEtag());this.checksumError(e,d,"Shadow Details: "+JSON.stringify(f)+"\nChecksum: "+q+"\nCurrent: "+m+"\nCurrent Details: "+JSON.stringify(k)+"\nFrom: "+u+"\nTo: "+x+"\n\nFile Data:\n"+p+"\nPatched Shadow:\n"+
+DrawioFile.prototype.mergeFile=function(b,c,e,f){var n=!0;try{this.stats.fileMerged++;var l=this.getShadowPages(),q=b.getShadowPages();if(null!=q&&0<q.length){var d=[this.ui.diffPages(null!=f?f:l,q)],k=this.ignorePatches(d);this.setShadowPages(q);if(!k){null!=this.sync&&this.sync.sendLocalChanges();this.backupPatch=this.isModified()?this.ui.diffPages(l,this.ui.pages):null;f={};var k={},g=this.ui.patchPages(l,d[0]),t=this.ui.getHashValueForPages(g,f),m=this.ui.getHashValueForPages(q,k);EditorUi.debug("File.mergeFile",
+[this],"file",[b],"patches",d,"backup",this.backupPatch,"checksum",t,"current",m,t==m);if(null!=t&&t!=m){var p=this.compressReportData(this.getAnonymizedXmlForPages(q)),v=this.compressReportData(this.getAnonymizedXmlForPages(g)),u=this.ui.hashValue(b.getCurrentEtag()),x=this.ui.hashValue(this.getCurrentEtag());this.checksumError(e,d,"Shadow Details: "+JSON.stringify(f)+"\nChecksum: "+t+"\nCurrent: "+m+"\nCurrent Details: "+JSON.stringify(k)+"\nFrom: "+u+"\nTo: "+x+"\n\nFile Data:\n"+p+"\nPatched Shadow:\n"+
v,null,"mergeFile");return}if(null!=this.sync){var y=this.sync.patchRealtime(d,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null);null==y||mxUtils.isEmptyObject(y)||d.push(y)}this.patch(d,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw n=!1,Error(mxResources.get("notADiagramFile"));this.inConflictState=this.invalidChecksum=!1;this.setDescriptor(b.getDescriptor());this.descriptorChanged();this.backupPatch=null;null!=c&&c()}catch(D){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();
null!=e&&e(D);try{if(n)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,D);else{var G=this.getCurrentUser(),H=null!=G?G.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),H,D)}}catch(F){}}};
DrawioFile.prototype.getAnonymizedXmlForPages=function(b){var c=new mxCodec(mxUtils.createXmlDocument()),e=c.document.createElement("mxfile");if(null!=b)for(var f=0;f<b.length;f++){var n=c.encode(new mxGraphModel(b[f].root));"1"!=urlParams.dev&&(n=this.ui.anonymizeNode(n,!0));n.setAttribute("id",b[f].getId());b[f].viewState&&this.ui.editor.graph.saveViewState(b[f].viewState,n,!0);e.appendChild(n)}return mxUtils.getPrettyXml(e)};
DrawioFile.prototype.compressReportData=function(b,c,e){c=null!=c?c:1E4;null!=e&&null!=b&&b.length>e?b=b.substring(0,e)+"[...]":null!=b&&b.length>c&&(b=Graph.compress(b)+"\n");return b};
DrawioFile.prototype.checksumError=function(b,c,e,f,n){this.stats.checksumErrors++;this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=this.sync&&this.sync.updateOnlineState();null!=b&&b();try{if(this.errorReportsEnabled){if(null!=c)for(b=0;b<c.length;b++)this.ui.anonymizePatch(c[b]);var l=mxUtils.bind(this,function(b){var d=this.compressReportData(JSON.stringify(c,null,2));b=null==b?"n/a":this.compressReportData(this.getAnonymizedXmlForPages(this.ui.getPagesForXml(b.data)),
-25E3);this.sendErrorReport("Checksum Error in "+n+" "+this.getHash(),(null!=e?e:"")+"\n\nPatches:\n"+d+(null!=b?"\n\nRemote:\n"+b:""),null,7E4)});null==f?l(null):this.getLatestVersion(mxUtils.bind(this,function(b){null!=b&&b.getCurrentEtag()==f?l(b):l(null)}),function(){})}else{var t=this.getCurrentUser(),d=null!=t?t.id:"unknown";EditorUi.logError("Checksum Error in "+n+" "+this.getId(),null,this.getMode()+"."+this.getId(),"user_"+d+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync")+"-bytes_"+
+25E3);this.sendErrorReport("Checksum Error in "+n+" "+this.getHash(),(null!=e?e:"")+"\n\nPatches:\n"+d+(null!=b?"\n\nRemote:\n"+b:""),null,7E4)});null==f?l(null):this.getLatestVersion(mxUtils.bind(this,function(b){null!=b&&b.getCurrentEtag()==f?l(b):l(null)}),function(){})}else{var q=this.getCurrentUser(),d=null!=q?q.id:"unknown";EditorUi.logError("Checksum Error in "+n+" "+this.getId(),null,this.getMode()+"."+this.getId(),"user_"+d+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync")+"-bytes_"+
JSON.stringify(c).length+"-patches_"+c.length);try{EditorUi.logEvent({category:"CHECKSUM-ERROR-SYNC-FILE-"+this.getHash(),action:n,label:"user_"+d+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync")+"-bytes_"+JSON.stringify(c).length+"-patches_"+c.length})}catch(k){}}}catch(k){}};
-DrawioFile.prototype.sendErrorReport=function(b,c,e,f){try{var n=this.compressReportData(this.getAnonymizedXmlForPages(this.getShadowPages()),25E3),l=this.compressReportData(this.getAnonymizedXmlForPages(this.ui.pages),25E3),t=this.getCurrentUser(),d=null!=t?this.ui.hashValue(t.id):"unknown",k=null!=this.sync?"-client_"+this.sync.clientId:"-nosync",g=this.getTitle(),q=g.lastIndexOf("."),t="xml";0<q&&(t=g.substring(q));var m=null!=e?e.stack:Error().stack;EditorUi.sendReport(b+" "+(new Date).toISOString()+
-":\n\nAppVersion="+navigator.appVersion+"\nFile="+this.ui.hashValue(this.getId())+" ("+this.getMode()+")"+(this.isModified()?" modified":"")+"\nSize/Type="+this.getSize()+" ("+t+")\nUser="+d+k+"\nPrefix="+this.ui.editor.graph.model.prefix+"\nSync="+DrawioFile.SYNC+(null!=this.sync?(this.sync.enabled?" enabled":"")+(this.sync.isConnected()?" connected":""):"")+"\nPlugins="+(null!=mxSettings.settings?mxSettings.getPlugins():"null")+"\n\nStats:\n"+JSON.stringify(this.stats,null,2)+(null!=c?"\n\n"+c:
+DrawioFile.prototype.sendErrorReport=function(b,c,e,f){try{var n=this.compressReportData(this.getAnonymizedXmlForPages(this.getShadowPages()),25E3),l=this.compressReportData(this.getAnonymizedXmlForPages(this.ui.pages),25E3),q=this.getCurrentUser(),d=null!=q?this.ui.hashValue(q.id):"unknown",k=null!=this.sync?"-client_"+this.sync.clientId:"-nosync",g=this.getTitle(),t=g.lastIndexOf("."),q="xml";0<t&&(q=g.substring(t));var m=null!=e?e.stack:Error().stack;EditorUi.sendReport(b+" "+(new Date).toISOString()+
+":\n\nAppVersion="+navigator.appVersion+"\nFile="+this.ui.hashValue(this.getId())+" ("+this.getMode()+")"+(this.isModified()?" modified":"")+"\nSize/Type="+this.getSize()+" ("+q+")\nUser="+d+k+"\nPrefix="+this.ui.editor.graph.model.prefix+"\nSync="+DrawioFile.SYNC+(null!=this.sync?(this.sync.enabled?" enabled":"")+(this.sync.isConnected()?" connected":""):"")+"\nPlugins="+(null!=mxSettings.settings?mxSettings.getPlugins():"null")+"\n\nStats:\n"+JSON.stringify(this.stats,null,2)+(null!=c?"\n\n"+c:
"")+(null!=e?"\n\nError: "+e.message:"")+"\n\nStack:\n"+m+"\n\nShadow:\n"+n+"\n\nData:\n"+l,f)}catch(p){}};
DrawioFile.prototype.reloadFile=function(b,c){try{this.ui.spinner.stop();var e=mxUtils.bind(this,function(){this.stats.fileReloaded++;var c=this.ui.editor.graph.getViewState(),e=this.ui.editor.graph.getSelectionCells(),l=this.ui.currentPage;this.ui.loadFile(this.getHash(),!0,null,mxUtils.bind(this,function(){if(null==this.ui.fileLoadedError){this.ui.restoreViewState(l,c,e);null!=this.backupPatch&&this.patch([this.backupPatch]);var f=this.ui.getCurrentFile();null!=f&&(f.stats=this.stats);null!=b&&
b()}}),!0)});this.isModified()&&null==this.backupPatch?this.ui.confirm(mxResources.get("allChangesLost"),mxUtils.bind(this,function(){this.handleFileSuccess("manual"==DrawioFile.SYNC)}),e,mxResources.get("cancel"),mxResources.get("discardChanges")):e()}catch(f){null!=c&&c(f)}};DrawioFile.prototype.copyFile=function(b,c){this.ui.editor.editAsNew(this.ui.getFileData(!0),this.ui.getCopyFilename(this))};
DrawioFile.prototype.ignorePatches=function(b){var c=!0;if(null!=b)for(var e=0;e<b.length&&c;e++)c=c&&mxUtils.isEmptyObject(b[e]);return c};
-DrawioFile.prototype.patch=function(b,c,e){if(null!=b){var f=this.ui.editor.undoManager,n=f.history.slice(),l=f.indexOfNextAdd,t=this.ui.editor.graph;t.container.style.visibility="hidden";var d=this.changeListenerEnabled;this.changeListenerEnabled=e;var k=t.foldingEnabled,g=t.mathEnabled,q=t.cellRenderer.redraw;t.cellRenderer.redraw=function(b){b.view.graph.isEditing(b.cell)&&(b.view.graph.scrollCellToVisible(b.cell),b.view.graph.cellEditor.resize());q.apply(this,arguments)};t.model.beginUpdate();
-try{this.ui.pages=this.ui.applyPatches(this.ui.pages,b,!0,c,this.isModified()),0==this.ui.pages.length&&this.ui.pages.push(this.ui.createPage()),0>mxUtils.indexOf(this.ui.pages,this.ui.currentPage)&&this.ui.selectPage(this.ui.pages[0],!0)}finally{t.container.style.visibility="";t.model.endUpdate();t.cellRenderer.redraw=q;this.changeListenerEnabled=d;e||(f.history=n,f.indexOfNextAdd=l,f.fireEvent(new mxEventObject(mxEvent.CLEAR)));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)g!=t.mathEnabled?
-(this.ui.editor.updateGraphComponents(),t.refresh()):(k!=t.foldingEnabled?t.view.revalidate():t.view.validate(),t.sizeDidChange());null!=this.sync&&this.isRealtime()&&(this.sync.snapshot=this.ui.clonePages(this.ui.pages));this.ui.updateTabContainer();this.ui.editor.fireEvent(new mxEventObject("pagesPatched","patches",b))}EditorUi.debug("DrawioFile.patch",[this],"patches",b,"resolver",c,"undoable",e)}return b};
+DrawioFile.prototype.patch=function(b,c,e){if(null!=b){var f=this.ui.editor.undoManager,n=f.history.slice(),l=f.indexOfNextAdd,q=this.ui.editor.graph;q.container.style.visibility="hidden";var d=this.changeListenerEnabled;this.changeListenerEnabled=e;var k=q.foldingEnabled,g=q.mathEnabled,t=q.cellRenderer.redraw;q.cellRenderer.redraw=function(b){b.view.graph.isEditing(b.cell)&&(b.view.graph.scrollCellToVisible(b.cell),b.view.graph.cellEditor.resize());t.apply(this,arguments)};q.model.beginUpdate();
+try{this.ui.pages=this.ui.applyPatches(this.ui.pages,b,!0,c,this.isModified()),0==this.ui.pages.length&&this.ui.pages.push(this.ui.createPage()),0>mxUtils.indexOf(this.ui.pages,this.ui.currentPage)&&this.ui.selectPage(this.ui.pages[0],!0)}finally{q.container.style.visibility="";q.model.endUpdate();q.cellRenderer.redraw=t;this.changeListenerEnabled=d;e||(f.history=n,f.indexOfNextAdd=l,f.fireEvent(new mxEventObject(mxEvent.CLEAR)));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)g!=q.mathEnabled?
+(this.ui.editor.updateGraphComponents(),q.refresh()):(k!=q.foldingEnabled?q.view.revalidate():q.view.validate(),q.sizeDidChange());null!=this.sync&&this.isRealtime()&&(this.sync.snapshot=this.ui.clonePages(this.ui.pages));this.ui.updateTabContainer();this.ui.editor.fireEvent(new mxEventObject("pagesPatched","patches",b))}EditorUi.debug("DrawioFile.patch",[this],"patches",b,"resolver",c,"undoable",e)}return b};
DrawioFile.prototype.save=function(b,c,e,f,n,l){try{if(EditorUi.debug("DrawioFile.save",[this],"revision",b,"unloading",f,"overwrite",n,"manual",l,"saving",this.savingFile,"editable",this.isEditable(),"invalidChecksum",this.invalidChecksum),this.isEditable())if(!n&&this.invalidChecksum)if(null!=e)e({message:mxResources.get("checksum")});else throw Error(mxResources.get("checksum"));else this.updateFileData(),this.clearAutosave(),null!=c&&c();else if(null!=e)e({message:mxResources.get("readOnly")});
-else throw Error(mxResources.get("readOnly"));}catch(t){if(null!=e)e(t);else throw t;}};DrawioFile.prototype.createData=function(){var b=this.ui.pages;if(this.isRealtime()&&(this.ui.pages=this.ownPages,null!=this.ui.currentPage)){var c=this.ui.getPageById(this.ui.currentPage.getId(),this.ownPages);null!=c&&(c.viewState=this.ui.editor.graph.getViewState(),c.needsUpdate=!0)}c=this.ui.getFileData(null,null,null,null,null,null,null,null,this,!this.isCompressed());this.ui.pages=b;return c};
+else throw Error(mxResources.get("readOnly"));}catch(q){if(null!=e)e(q);else throw q;}};DrawioFile.prototype.createData=function(){var b=this.ui.pages;if(this.isRealtime()&&(this.ui.pages=this.ownPages,null!=this.ui.currentPage)){var c=this.ui.getPageById(this.ui.currentPage.getId(),this.ownPages);null!=c&&(c.viewState=this.ui.editor.graph.getViewState(),c.needsUpdate=!0)}c=this.ui.getFileData(null,null,null,null,null,null,null,null,this,!this.isCompressed());this.ui.pages=b;return c};
DrawioFile.prototype.updateFileData=function(){this.setData(this.createData());null!=this.sync&&this.sync.fileDataUpdated()};DrawioFile.prototype.isCompressedStorage=function(){return!0};DrawioFile.prototype.isCompressed=function(){var b=null!=this.ui.fileNode?this.ui.fileNode.getAttribute("compressed"):null;return null!=b?"false"!=b:this.isCompressedStorage()&&Editor.compressXml};DrawioFile.prototype.saveAs=function(b,c,e){};DrawioFile.prototype.saveFile=function(b,c,e,f){};
DrawioFile.prototype.getPublicUrl=function(b){b(null)};DrawioFile.prototype.isRestricted=function(){return!1};DrawioFile.prototype.isModified=function(){return this.modified};DrawioFile.prototype.getShadowModified=function(){return this.shadowModified};DrawioFile.prototype.setShadowModified=function(b){this.shadowModified=b};DrawioFile.prototype.setModified=function(b){this.shadowModified=this.modified=b};DrawioFile.prototype.isAutosaveOptional=function(){return!1};
DrawioFile.prototype.isAutosave=function(){return!this.inConflictState&&this.ui.editor.autosave};DrawioFile.prototype.isRenamable=function(){return!1};DrawioFile.prototype.rename=function(b,c,e){};DrawioFile.prototype.isMovable=function(){return!1};DrawioFile.prototype.isTrashed=function(){return!1};DrawioFile.prototype.move=function(b,c,e){};DrawioFile.prototype.share=function(){this.ui.alert(mxResources.get("sharingAvailable"),null,380)};DrawioFile.prototype.getHash=function(){return""};
@@ -3134,7 +3134,7 @@ DrawioFile.prototype.fileChanged=function(b){b=null!=b?b:!0;this.lastChanged=new
null==this.autosaveThread?(this.handleFileSuccess(!0),this.ageStart=null):this.isModified()&&(this.ui.scheduleSanityCheck(),this.ageStart=this.lastChanged)}),mxUtils.bind(this,function(b){this.handleFileError(b)}))):(this.ageStart=null,this.isAutosaveOptional()&&this.ui.editor.autosave||this.inConflictState||this.addUnsavedStatus());null!=this.sync&&b&&this.sync.localFileChanged()};
DrawioFile.prototype.createSecret=function(b){var c=Editor.guid(32);null==this.sync||this.isOptimisticSync()?b(c):this.sync.createToken(c,mxUtils.bind(this,function(e){b(c,e)}),mxUtils.bind(this,function(){b(c)}))};DrawioFile.prototype.fileSaving=function(){null!=this.sync&&this.sync.fileSaving()};
DrawioFile.prototype.fileSaved=function(b,c,e,f,n){this.lastSaved=new Date;this.ageStart=null;try{this.stats.saved++;this.invalidChecksum=this.inConflictState=!1;var l=this.ui.getPagesForXml(b);null==this.sync||this.isOptimisticSync()?(this.setShadowPages(l),null!=this.sync&&(this.sync.lastModified=this.getLastModifiedDate(),this.sync.resetUpdateStatusThread(),this.isRealtime()&&this.sync.scheduleCleanup()),null!=e&&e()):this.sync.fileSaved(l,c,e,f,n)}catch(k){this.invalidChecksum=this.inConflictState=
-!0;this.descriptorChanged();null!=f&&f(k);try{if(this.errorReportsEnabled)this.sendErrorReport("Error in fileSaved",null,k);else{var t=this.getCurrentUser(),d=null!=t?t.id:"unknown";EditorUi.logError("Error in fileSaved",null,this.getMode()+"."+this.getId(),d,k)}}catch(g){}}EditorUi.debug("DrawioFile.fileSaved",[this],"savedData",[b],"inConflictState",this.inConflictState,"invalidChecksum",this.invalidChecksum)};
+!0;this.descriptorChanged();null!=f&&f(k);try{if(this.errorReportsEnabled)this.sendErrorReport("Error in fileSaved",null,k);else{var q=this.getCurrentUser(),d=null!=q?q.id:"unknown";EditorUi.logError("Error in fileSaved",null,this.getMode()+"."+this.getId(),d,k)}}catch(g){}}EditorUi.debug("DrawioFile.fileSaved",[this],"savedData",[b],"inConflictState",this.inConflictState,"invalidChecksum",this.invalidChecksum)};
DrawioFile.prototype.autosave=function(b,c,e,f){null==this.lastAutosave&&(this.lastAutosave=Date.now());b=Date.now()-this.lastAutosave<c?b:0;this.clearAutosave();var n=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=null;this.autosaveThread==n&&(this.autosaveThread=null);EditorUi.debug("DrawioFile.autosave",[this],"thread",n,"saving",this.savingFile,"modified",this.isModified(),"now",this.isAutosaveNow());if(this.isModified()&&this.isAutosaveNow()){var b=this.isAutosaveRevision();
b&&(this.lastAutosaveRevision=(new Date).getTime());this.save(b,mxUtils.bind(this,function(b){this.autosaveCompleted();null!=e&&e(b)}),mxUtils.bind(this,function(b){null!=f&&f(b)}))}else this.isModified()||this.ui.editor.setStatus(""),null!=e&&e(null)}),b);EditorUi.debug("DrawioFile.autosave",[this],"thread",n,"delay",b,"saving",this.savingFile);this.autosaveThread=n};DrawioFile.prototype.isAutosaveNow=function(){return!0};DrawioFile.prototype.autosaveCompleted=function(){};
DrawioFile.prototype.clearAutosave=function(){null!=this.autosaveThread&&(window.clearTimeout(this.autosaveThread),this.autosaveThread=null)};DrawioFile.prototype.isAutosaveRevision=function(){var b=(new Date).getTime();return null==this.lastAutosaveRevision||b-this.lastAutosaveRevision>this.maxAutosaveRevisionDelay};DrawioFile.prototype.descriptorChanged=function(){this.fireEvent(new mxEventObject("descriptorChanged"))};DrawioFile.prototype.contentChanged=function(){this.fireEvent(new mxEventObject("contentChanged"))};
@@ -3143,10 +3143,10 @@ DrawioFile.prototype.removeListeners=function(){null!=this.changeListener&&(this
DrawioFile.prototype.commentsRefreshNeeded=function(){return!0};DrawioFile.prototype.commentsSaveNeeded=function(){return!1};DrawioFile.prototype.getComments=function(b,c){b([])};DrawioFile.prototype.addComment=function(b,c,e){c(Date.now())};DrawioFile.prototype.canReplyToReplies=function(){return!0};DrawioFile.prototype.canComment=function(){return!0};DrawioFile.prototype.newComment=function(b,c){return new DrawioComment(this,null,b,Date.now(),Date.now(),!1,c)};LocalFile=function(b,c,e,f,n,l){DrawioFile.call(this,b,c);this.title=e;this.mode=f?null:App.MODE_DEVICE;this.fileHandle=n;this.desc=l};mxUtils.extend(LocalFile,DrawioFile);LocalFile.prototype.isAutosave=function(){return null!=this.fileHandle&&!this.invalidFileHandle&&DrawioFile.prototype.isAutosave.apply(this,arguments)};LocalFile.prototype.isAutosaveOptional=function(){return null!=this.fileHandle};LocalFile.prototype.getMode=function(){return this.mode};LocalFile.prototype.getTitle=function(){return this.title};
LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(b,c,e){this.saveAs(this.title,c,e)};LocalFile.prototype.saveAs=function(b,c,e){this.saveFile(b,!1,c,e)};LocalFile.prototype.saveAs=function(b,c,e){this.saveFile(b,!1,c,e)};LocalFile.prototype.getDescriptor=function(){return this.desc};LocalFile.prototype.setDescriptor=function(b){this.desc=b};
LocalFile.prototype.getLatestVersion=function(b,c){null==this.fileHandle?b(null):this.ui.loadFileSystemEntry(this.fileHandle,b,c)};
-LocalFile.prototype.saveFile=function(b,c,e,f,n){b!=this.title&&(this.desc=this.fileHandle=null);this.title=b;n||this.updateFileData();var l=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle());this.setShadowModified(!1);var t=this.getData(),d=mxUtils.bind(this,function(){this.setModified(this.getShadowModified());this.contentChanged();null!=e&&e()}),k=mxUtils.bind(this,function(c){if(null!=this.fileHandle){if(!this.savingFile){this.savingFileTime=new Date;this.savingFile=!0;var g=mxUtils.bind(this,
+LocalFile.prototype.saveFile=function(b,c,e,f,n){b!=this.title&&(this.desc=this.fileHandle=null);this.title=b;n||this.updateFileData();var l=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle());this.setShadowModified(!1);var q=this.getData(),d=mxUtils.bind(this,function(){this.setModified(this.getShadowModified());this.contentChanged();null!=e&&e()}),k=mxUtils.bind(this,function(c){if(null!=this.fileHandle){if(!this.savingFile){this.savingFileTime=new Date;this.savingFile=!0;var g=mxUtils.bind(this,
function(b){this.savingFile=!1;null!=f&&f({error:b})});this.saveDraft();this.fileHandle.createWritable().then(mxUtils.bind(this,function(b){this.fileHandle.getFile().then(mxUtils.bind(this,function(e){this.invalidFileHandle=null;this.desc.lastModified==e.lastModified?b.write(l?this.ui.base64ToBlob(c,"image/png"):c).then(mxUtils.bind(this,function(){b.close().then(mxUtils.bind(this,function(){this.fileHandle.getFile().then(mxUtils.bind(this,function(b){try{var c=this.desc;this.savingFile=!1;this.desc=
-b;this.fileSaved(t,c,d,g);this.removeDraft()}catch(y){g(y)}}),g)}),g)}),g):(this.inConflictState=!0,g())}),mxUtils.bind(this,function(b){this.invalidFileHandle=!0;g(b)}))}),g)}}else{if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(c,b,l?"image/png":"text/xml",l);else if(c.length<MAX_REQUEST_SIZE){var e=b.lastIndexOf("."),e=0<e?b.substring(e+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+e+"&xml="+encodeURIComponent(c)+"&filename="+encodeURIComponent(b)+(l?"&binary=1":""))).simulate(document,
-"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}));d()}});l?(c=this.ui.getPngFileProperties(this.ui.fileNode),this.ui.getEmbeddedPng(mxUtils.bind(this,function(b){k(b)}),f,this.ui.getCurrentFile()!=this?t:null,c.scale,c.border)):k(t)};LocalFile.prototype.rename=function(b,c,e){this.title=b;this.descriptorChanged();null!=c&&c()};
+b;this.fileSaved(q,c,d,g);this.removeDraft()}catch(y){g(y)}}),g)}),g)}),g):(this.inConflictState=!0,g())}),mxUtils.bind(this,function(b){this.invalidFileHandle=!0;g(b)}))}),g)}}else{if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(c,b,l?"image/png":"text/xml",l);else if(c.length<MAX_REQUEST_SIZE){var e=b.lastIndexOf("."),e=0<e?b.substring(e+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+e+"&xml="+encodeURIComponent(c)+"&filename="+encodeURIComponent(b)+(l?"&binary=1":""))).simulate(document,
+"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}));d()}});l?(c=this.ui.getPngFileProperties(this.ui.fileNode),this.ui.getEmbeddedPng(mxUtils.bind(this,function(b){k(b)}),f,this.ui.getCurrentFile()!=this?q:null,c.scale,c.border)):k(q)};LocalFile.prototype.rename=function(b,c,e){this.title=b;this.descriptorChanged();null!=c&&c()};
LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.installListeners()};(function(){"undefined"!==typeof html4&&(html4.ATTRIBS["span::data-lucid-content"]=0,html4.ATTRIBS["span::data-lucid-type"]=0,html4.ATTRIBS["font::data-font-src"]=0);Editor.prototype.appName="diagrams.net";Editor.prototype.diagramFileTypes=[{description:"diagramXmlDesc",extension:"drawio",mimeType:"text/xml"},{description:"diagramPngDesc",extension:"png",mimeType:"image/png"},{description:"diagramSvgDesc",extension:"svg",mimeType:"image/svg"},{description:"diagramHtmlDesc",extension:"html",mimeType:"text/html"},
{description:"diagramXmlDesc",extension:"xml",mimeType:"text/xml"}];Editor.prototype.libraryFileTypes=[{description:"Library (.drawiolib, .xml)",extensions:["drawiolib","xml"]}];Editor.prototype.fileExtensions=[{ext:"html",title:"filetypeHtml"},{ext:"png",title:"filetypePng"},{ext:"svg",title:"filetypeSvg"}];Editor.styles=[{},{commonStyle:{fontColor:"#5C5C5C",strokeColor:"#006658",fillColor:"#21C0A5"}},{commonStyle:{fontColor:"#095C86",strokeColor:"#AF45ED",fillColor:"#F694C1"},edgeStyle:{strokeColor:"#60E696"}},
{commonStyle:{fontColor:"#46495D",strokeColor:"#788AA3",fillColor:"#B2C9AB"}},{commonStyle:{fontColor:"#5AA9E6",strokeColor:"#FF6392",fillColor:"#FFE45E"}},{commonStyle:{fontColor:"#1D3557",strokeColor:"#457B9D",fillColor:"#A8DADC"},graph:{background:"#F1FAEE"}},{commonStyle:{fontColor:"#393C56",strokeColor:"#E07A5F",fillColor:"#F2CC8F"},graph:{background:"#F4F1DE",gridColor:"#D4D0C0"}},{commonStyle:{fontColor:"#143642",strokeColor:"#0F8B8D",fillColor:"#FAE5C7"},edgeStyle:{strokeColor:"#A8201A"},
@@ -3196,8 +3196,8 @@ dispName:"Expand",type:"bool",defVal:!0},{name:"part",dispName:"Part",type:"bool
dispName:"Movable Label",type:"bool",defVal:!1,isVisible:function(b,d){var c=0<b.vertices.length?d.editorUi.editor.graph.getCellGeometry(b.vertices[0]):null;return null!=c&&!c.relative}},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},
{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0},{name:"treeFolding",dispName:"Tree Folding",type:"bool",defVal:!1},{name:"treeMoving",dispName:"Tree Moving",type:"bool",defVal:!1},{name:"pointerEvents",dispName:"Pointer Events",type:"bool",defVal:!0,isVisible:function(b,d){var c=mxUtils.getValue(b.style,mxConstants.STYLE_FILLCOLOR,null);return d.editorUi.editor.graph.isSwimlane(b.vertices[0])||null==c||c==mxConstants.NONE||0==mxUtils.getValue(b.style,mxConstants.STYLE_FILL_OPACITY,100)||
0==mxUtils.getValue(b.style,mxConstants.STYLE_OPACITY,100)||null!=b.style.pointerEvents}},{name:"moveCells",dispName:"Move Cells on Fold",type:"bool",defVal:!1,isVisible:function(b,d){return 0<b.vertices.length&&d.editorUi.editor.graph.isContainer(b.vertices[0])}}].concat(Editor.commonProperties);Editor.defaultCsvValue='##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\n#\n## Style to be used for objects not in the CSV. If this is - then such objects are ignored,\n## else they are created using this as their style, eg. whiteSpace=wrap;html=1;\n#\n# unknownStyle: -\n#\n## Optional column name that contains a reference to a named style in styles.\n## Default is the current style for nodes.\n#\n# stylename: -\n#\n## JSON for named styles of the form {"name": "style", "name": "style"} where style is a cell style with\n## placeholders that are replaced once.\n#\n# styles: -\n#\n## JSON for variables in styles of the form {"name": "value", "name": "value"} where name is a string\n## that will replace a placeholder in a style.\n#\n# vars: -\n#\n## Optional column name that contains a reference to a named label in labels.\n## Default is the current label.\n#\n# labelname: -\n#\n## JSON for named labels of the form {"name": "label", "name": "label"} where label is a cell label with\n## placeholders.\n#\n# labels: -\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## If placeholders are used in the style, they are replaced with data from the source.\n## An optional placeholders can be set to target to use data from the target instead.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## In addition to those, an optional source and targetlabel can be used to specify a label\n## that contains placeholders referencing the respective columns in the source or target row.\n## The label is created in the form fromlabel + sourcelabel + label + tolabel + targetlabel.\n## Additional labels can be added by using an optional labels array with entries of the\n## form {"label": string, "x": number, "y": number, "dx": number, "dy": number} where\n## x is from -1 to 1 along the edge, y is orthogonal, and dx/dy are offsets in pixels.\n## An optional placeholders with the string value "source" or "target" can be specified\n## to replace placeholders in the additional label with data from the source or target.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke,refs,manager\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\n#\n## Spacing between parallel edges. Default is 40. Use 0 to disable.\n#\n# edgespacing: 40\n#\n## Name or JSON of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle or a JSON string as used in Layout, Apply.\n## Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nTessa Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Tessa Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nAlison Donovan,System Admin,rdo,Office 3,Tessa Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nEvan Valet,HR Director,tva,Office 4,Tessa Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\n';
-Editor.createRoughCanvas=function(b){var d=rough.canvas({getContext:function(){return b}});d.draw=function(d){var c=d.sets||[];d=d.options||this.getDefaultOptions();for(var g=0;g<c.length;g++){var e=c[g];switch(e.type){case "path":null!=d.stroke&&this._drawToContext(b,e,d);break;case "fillPath":this._drawToContext(b,e,d);break;case "fillSketch":this.fillSketch(b,e,d)}}};d.fillSketch=function(d,c,g){var e=b.state.strokeColor,k=b.state.strokeWidth,f=b.state.strokeAlpha,m=b.state.dashed,l=g.fillWeight;
-0>l&&(l=g.strokeWidth/2);b.setStrokeAlpha(b.state.fillAlpha);b.setStrokeColor(g.fill||"");b.setStrokeWidth(l);b.setDashed(!1);this._drawToContext(d,c,g);b.setDashed(m);b.setStrokeWidth(k);b.setStrokeColor(e);b.setStrokeAlpha(f)};d._drawToContext=function(b,d,c){b.begin();for(var g=0;g<d.ops.length;g++){var e=d.ops[g],k=e.data;switch(e.op){case "move":b.moveTo(k[0],k[1]);break;case "bcurveTo":b.curveTo(k[0],k[1],k[2],k[3],k[4],k[5]);break;case "lineTo":b.lineTo(k[0],k[1])}}b.end();"fillPath"===d.type&&
+Editor.createRoughCanvas=function(b){var d=rough.canvas({getContext:function(){return b}});d.draw=function(d){var c=d.sets||[];d=d.options||this.getDefaultOptions();for(var g=0;g<c.length;g++){var e=c[g];switch(e.type){case "path":null!=d.stroke&&this._drawToContext(b,e,d);break;case "fillPath":this._drawToContext(b,e,d);break;case "fillSketch":this.fillSketch(b,e,d)}}};d.fillSketch=function(d,c,g){var e=b.state.strokeColor,k=b.state.strokeWidth,f=b.state.strokeAlpha,l=b.state.dashed,m=g.fillWeight;
+0>m&&(m=g.strokeWidth/2);b.setStrokeAlpha(b.state.fillAlpha);b.setStrokeColor(g.fill||"");b.setStrokeWidth(m);b.setDashed(!1);this._drawToContext(d,c,g);b.setDashed(l);b.setStrokeWidth(k);b.setStrokeColor(e);b.setStrokeAlpha(f)};d._drawToContext=function(b,d,c){b.begin();for(var g=0;g<d.ops.length;g++){var e=d.ops[g],k=e.data;switch(e.op){case "move":b.moveTo(k[0],k[1]);break;case "bcurveTo":b.curveTo(k[0],k[1],k[2],k[3],k[4],k[5]);break;case "lineTo":b.lineTo(k[0],k[1])}}b.end();"fillPath"===d.type&&
c.filled?b.fill():b.stroke()};return d};(function(){function b(d,c,g){this.canvas=d;this.rc=c;this.shape=g;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.originalBegin=this.canvas.begin;this.canvas.begin=mxUtils.bind(this,b.prototype.begin);this.originalEnd=this.canvas.end;this.canvas.end=mxUtils.bind(this,b.prototype.end);this.originalRect=this.canvas.rect;this.canvas.rect=mxUtils.bind(this,b.prototype.rect);this.originalRoundrect=this.canvas.roundrect;this.canvas.roundrect=
mxUtils.bind(this,b.prototype.roundrect);this.originalEllipse=this.canvas.ellipse;this.canvas.ellipse=mxUtils.bind(this,b.prototype.ellipse);this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,b.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,b.prototype.moveTo);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,b.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,
b.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,b.prototype.arcTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,b.prototype.close);this.originalFill=this.canvas.fill;this.canvas.fill=mxUtils.bind(this,b.prototype.fill);this.originalStroke=this.canvas.stroke;this.canvas.stroke=mxUtils.bind(this,b.prototype.stroke);this.originalFillAndStroke=this.canvas.fillAndStroke;this.canvas.fillAndStroke=mxUtils.bind(this,b.prototype.fillAndStroke);
@@ -3207,20 +3207,20 @@ g.roughness);c.simplification=mxUtils.getValue(this.shape.style,"simplification"
k);c.zigzagOffset=mxUtils.getValue(this.shape.style,"zigzagOffset",k);k=mxUtils.getValue(this.shape.style,"fillWeight",-1);c.fillWeight="auto"==k?-1:k;k=mxUtils.getValue(this.shape.style,"fillStyle","auto");"auto"==k&&(k=mxUtils.hex2rgb(null!=this.shape.state?this.shape.state.view.graph.shapeBackgroundColor:Editor.isDarkMode()?Editor.darkColor:"#ffffff"),k=null!=c.fill&&(null!=e||null!=k&&c.fill==k)?"solid":g.fillStyle);c.fillStyle=k;return c};b.prototype.begin=function(){this.passThrough?this.originalBegin.apply(this.canvas,
arguments):this.path=[]};b.prototype.end=function(){this.passThrough&&this.originalEnd.apply(this.canvas,arguments)};b.prototype.addOp=function(){if(null!=this.path&&(this.path.push(arguments[0]),2<arguments.length))for(var b=2;b<arguments.length;b+=2)this.lastX=arguments[b-1],this.lastY=arguments[b],this.path.push(this.canvas.format(this.lastX)),this.path.push(this.canvas.format(this.lastY))};b.prototype.lineTo=function(b,d){this.passThrough?this.originalLineTo.apply(this.canvas,arguments):(this.addOp(this.lineOp,
b,d),this.lastX=b,this.lastY=d)};b.prototype.moveTo=function(b,d){this.passThrough?this.originalMoveTo.apply(this.canvas,arguments):(this.addOp(this.moveOp,b,d),this.lastX=b,this.lastY=d,this.firstX=b,this.firstY=d)};b.prototype.close=function(){this.passThrough?this.originalClose.apply(this.canvas,arguments):this.addOp(this.closeOp)};b.prototype.quadTo=function(b,d,c,g){this.passThrough?this.originalQuadTo.apply(this.canvas,arguments):(this.addOp(this.quadOp,b,d,c,g),this.lastX=c,this.lastY=g)};
-b.prototype.curveTo=function(b,d,c,g,e,k){this.passThrough?this.originalCurveTo.apply(this.canvas,arguments):(this.addOp(this.curveOp,b,d,c,g,e,k),this.lastX=e,this.lastY=k)};b.prototype.arcTo=function(b,d,c,g,e,k,f){if(this.passThrough)this.originalArcTo.apply(this.canvas,arguments);else{var m=mxUtils.arcToCurves(this.lastX,this.lastY,b,d,c,g,e,k,f);if(null!=m)for(var l=0;l<m.length;l+=6)this.curveTo(m[l],m[l+1],m[l+2],m[l+3],m[l+4],m[l+5]);this.lastX=k;this.lastY=f}};b.prototype.rect=function(b,
+b.prototype.curveTo=function(b,d,c,g,e,k){this.passThrough?this.originalCurveTo.apply(this.canvas,arguments):(this.addOp(this.curveOp,b,d,c,g,e,k),this.lastX=e,this.lastY=k)};b.prototype.arcTo=function(b,d,c,g,e,k,f){if(this.passThrough)this.originalArcTo.apply(this.canvas,arguments);else{var l=mxUtils.arcToCurves(this.lastX,this.lastY,b,d,c,g,e,k,f);if(null!=l)for(var m=0;m<l.length;m+=6)this.curveTo(l[m],l[m+1],l[m+2],l[m+3],l[m+4],l[m+5]);this.lastX=k;this.lastY=f}};b.prototype.rect=function(b,
d,c,g){this.passThrough?this.originalRect.apply(this.canvas,arguments):(this.path=[],this.nextShape=this.rc.generator.rectangle(b,d,c,g,this.getStyle(!0,!0)))};b.prototype.ellipse=function(b,d,c,g){this.passThrough?this.originalEllipse.apply(this.canvas,arguments):(this.path=[],this.nextShape=this.rc.generator.ellipse(b+c/2,d+g/2,c,g,this.getStyle(!0,!0)))};b.prototype.roundrect=function(b,d,c,g,e,k){this.passThrough?this.originalRoundrect.apply(this.canvas,arguments):(this.begin(),this.moveTo(b+
e,d),this.lineTo(b+c-e,d),this.quadTo(b+c,d,b+c,d+k),this.lineTo(b+c,d+g-k),this.quadTo(b+c,d+g,b+c-e,d+g),this.lineTo(b+e,d+g),this.quadTo(b,d+g,b,d+g-k),this.lineTo(b,d+k),this.quadTo(b,d,b+e,d))};b.prototype.drawPath=function(b){if(0<this.path.length){this.passThrough=!0;try{this.rc.path(this.path.join(" "),b)}catch(oa){}this.passThrough=!1}else if(null!=this.nextShape){for(var d in b)this.nextShape.options[d]=b[d];b.stroke!=mxConstants.NONE&&null!=b.stroke||delete this.nextShape.options.stroke;
b.filled||delete this.nextShape.options.fill;this.passThrough=!0;this.rc.draw(this.nextShape);this.passThrough=!1}};b.prototype.stroke=function(){this.passThrough?this.originalStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,!1))};b.prototype.fill=function(){this.passThrough?this.originalFill.apply(this.canvas,arguments):this.drawPath(this.getStyle(!1,!0))};b.prototype.fillAndStroke=function(){this.passThrough?this.originalFillAndStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,
!0))};b.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo;this.canvas.close=this.originalClose;this.canvas.fill=this.originalFill;this.canvas.stroke=this.originalStroke;this.canvas.fillAndStroke=this.originalFillAndStroke;this.canvas.begin=this.originalBegin;this.canvas.end=this.originalEnd;
this.canvas.rect=this.originalRect;this.canvas.ellipse=this.originalEllipse;this.canvas.roundrect=this.originalRoundrect};mxShape.prototype.createRoughCanvas=function(d){return new b(d,Editor.createRoughCanvas(d),this)};var d=mxShape.prototype.createHandJiggle;mxShape.prototype.createHandJiggle=function(b){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"sketch","0")?d.apply(this,arguments):"comic"==mxUtils.getValue(this.style,"sketchStyle","rough")?this.createComicCanvas(b):
this.createRoughCanvas(b)};var c=mxImageShape.prototype.paintVertexShape;mxImageShape.prototype.paintVertexShape=function(b,d,g,e,k){null!=b.handJiggle&&b.handJiggle.passThrough||c.apply(this,arguments)};var g=mxShape.prototype.paint;mxShape.prototype.paint=function(d){var c=d.addTolerance,e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(null!=d.handJiggle&&d.handJiggle.constructor==b&&!this.outline){d.save();var k=this.fill,f=this.stroke;this.stroke=
-this.fill=null;var m=this.configurePointerEvents,l=d.setStrokeColor;d.setStrokeColor=function(){};var p=d.setFillColor;d.setFillColor=function(){};e||null==k||(this.configurePointerEvents=function(){});d.handJiggle.passThrough=!0;g.apply(this,arguments);d.handJiggle.passThrough=!1;d.setFillColor=p;d.setStrokeColor=l;this.configurePointerEvents=m;this.stroke=f;this.fill=k;d.restore();e&&null!=k&&(d.addTolerance=function(){})}g.apply(this,arguments);d.addTolerance=c};var e=mxShape.prototype.paintGlassEffect;
-mxShape.prototype.paintGlassEffect=function(d,c,g,k,f,m){null!=d.handJiggle&&d.handJiggle.constructor==b?(d.handJiggle.passThrough=!0,e.apply(this,arguments),d.handJiggle.passThrough=!1):e.apply(this,arguments)}})();Editor.fastCompress=function(b){return null==b||0==b.length||"undefined"===typeof pako?b:Graph.arrayBufferToString(pako.deflateRaw(b))};Editor.fastDecompress=function(b){return null==b||0==b.length||"undefined"===typeof pako?b:pako.inflateRaw(Graph.stringToArrayBuffer(atob(b)),{to:"string"})};
+this.fill=null;var l=this.configurePointerEvents,m=d.setStrokeColor;d.setStrokeColor=function(){};var p=d.setFillColor;d.setFillColor=function(){};e||null==k||(this.configurePointerEvents=function(){});d.handJiggle.passThrough=!0;g.apply(this,arguments);d.handJiggle.passThrough=!1;d.setFillColor=p;d.setStrokeColor=m;this.configurePointerEvents=l;this.stroke=f;this.fill=k;d.restore();e&&null!=k&&(d.addTolerance=function(){})}g.apply(this,arguments);d.addTolerance=c};var e=mxShape.prototype.paintGlassEffect;
+mxShape.prototype.paintGlassEffect=function(d,c,g,k,f,l){null!=d.handJiggle&&d.handJiggle.constructor==b?(d.handJiggle.passThrough=!0,e.apply(this,arguments),d.handJiggle.passThrough=!1):e.apply(this,arguments)}})();Editor.fastCompress=function(b){return null==b||0==b.length||"undefined"===typeof pako?b:Graph.arrayBufferToString(pako.deflateRaw(b))};Editor.fastDecompress=function(b){return null==b||0==b.length||"undefined"===typeof pako?b:pako.inflateRaw(Graph.stringToArrayBuffer(atob(b)),{to:"string"})};
Editor.extractGraphModel=function(b,d,c){if(null!=b&&"undefined"!==typeof pako){var g=b.ownerDocument.getElementsByTagName("div"),e=[];if(null!=g&&0<g.length)for(var k=0;k<g.length;k++)if("mxgraph"==g[k].getAttribute("class")){e.push(g[k]);break}0<e.length&&(g=e[0].getAttribute("data-mxgraph"),null!=g?(e=JSON.parse(g),null!=e&&null!=e.xml&&(b=mxUtils.parseXml(e.xml),b=b.documentElement)):(e=e[0].getElementsByTagName("div"),0<e.length&&(g=mxUtils.getTextContent(e[0]),g=Graph.decompress(g,null,c),0<
g.length&&(b=mxUtils.parseXml(g),b=b.documentElement))))}if(null!=b&&"svg"==b.nodeName)if(g=b.getAttribute("content"),null!=g&&"<"!=g.charAt(0)&&"%"!=g.charAt(0)&&(g=unescape(window.atob?atob(g):Base64.decode(cont,g))),null!=g&&"%"==g.charAt(0)&&(g=decodeURIComponent(g)),null!=g&&0<g.length)b=mxUtils.parseXml(g).documentElement;else throw{message:mxResources.get("notADiagramFile")};null==b||d||(e=null,"diagram"==b.nodeName?e=b:"mxfile"==b.nodeName&&(g=b.getElementsByTagName("diagram"),0<g.length&&
(e=g[Math.max(0,Math.min(g.length-1,urlParams.page||0))])),null!=e&&(b=Editor.parseDiagramNode(e,c)));null==b||"mxGraphModel"==b.nodeName||d&&"mxfile"==b.nodeName||(b=null);return b};Editor.parseDiagramNode=function(b,d){var c=mxUtils.trim(mxUtils.getTextContent(b)),g=null;0<c.length?(c=Graph.decompress(c,null,d),null!=c&&0<c.length&&(g=mxUtils.parseXml(c).documentElement)):(c=mxUtils.getChildNodes(b),0<c.length&&(g=mxUtils.createXmlDocument(),g.appendChild(g.importNode(c[0],!0)),g=g.documentElement));
return g};Editor.getDiagramNodeXml=function(b){var d=mxUtils.getTextContent(b),c=null;0<d.length?c=Graph.decompress(d):null!=b.firstChild&&(c=mxUtils.getXml(b.firstChild));return c};Editor.extractGraphModelFromPdf=function(b){b=b.substring(b.indexOf(",")+1);b=window.atob&&!mxClient.IS_SF?atob(b):Base64.decode(b,!0);if("%PDF-1.7"==b.substring(0,8)){var d=b.indexOf("EmbeddedFile");if(-1<d){var c=b.indexOf("stream",d)+9;if(0<b.substring(d,c).indexOf("application#2Fvnd.jgraph.mxfile"))return d=b.indexOf("endstream",
-c-1),pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(c,d)),{to:"string"})}return null}for(var c=null,d="",g=0,e=0,k=[],f=null;e<b.length;){var m=b.charCodeAt(e),e=e+1;10!=m&&(d+=String.fromCharCode(m));m=="/Subject (%3Cmxfile".charCodeAt(g)?g++:g=0;if(19==g){var l=b.indexOf("%3C%2Fmxfile%3E)",e)+15,e=e-9;if(l>e){c=b.substring(e,l);break}}10==m&&("endobj"==d?f=null:"obj"==d.substring(d.length-3,d.length)||"xref"==d||"trailer"==d?(f=[],k[d.split(" ")[0]]=f):null!=f&&f.push(d),d="")}null==c&&(c=
+c-1),pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(c,d)),{to:"string"})}return null}for(var c=null,d="",g=0,e=0,k=[],f=null;e<b.length;){var l=b.charCodeAt(e),e=e+1;10!=l&&(d+=String.fromCharCode(l));l=="/Subject (%3Cmxfile".charCodeAt(g)?g++:g=0;if(19==g){var m=b.indexOf("%3C%2Fmxfile%3E)",e)+15,e=e-9;if(m>e){c=b.substring(e,m);break}}10==l&&("endobj"==d?f=null:"obj"==d.substring(d.length-3,d.length)||"xref"==d||"trailer"==d?(f=[],k[d.split(" ")[0]]=f):null!=f&&f.push(d),d="")}null==c&&(c=
Editor.extractGraphModelFromXref(k));null!=c&&(c=decodeURIComponent(c.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return c};Editor.extractGraphModelFromXref=function(b){var d=b.trailer,c=null;null!=d&&(d=/.* \/Info (\d+) (\d+) R/g.exec(d.join("\n")),null!=d&&0<d.length&&(d=b[d[1]],null!=d&&(d=/.* \/Subject (\d+) (\d+) R/g.exec(d.join("\n")),null!=d&&0<d.length&&(b=b[d[1]],null!=b&&(b=b.join("\n"),c=b.substring(1,b.length-1))))));return c};Editor.extractParserError=function(b,d){var c=null,g=null!=
b?b.getElementsByTagName("parsererror"):null;null!=g&&0<g.length&&(c=d||mxResources.get("invalidChars"),g=g[0].getElementsByTagName("div"),0<g.length&&(c=mxUtils.getTextContent(g[0])));return null!=c?mxUtils.trim(c):c};Editor.addRetryToError=function(b,d){if(null!=b){var c=null!=b.error?b.error:b;null==c.retry&&(c.retry=d)}};Editor.configure=function(b,d){if(null!=b){Editor.config=b;Editor.configVersion=b.version;Menus.prototype.defaultFonts=b.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=
b.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=b.defaultColors||ColorDialog.prototype.defaultColors;ColorDialog.prototype.colorNames=b.colorNames||ColorDialog.prototype.colorNames;StyleFormatPanel.prototype.defaultColorSchemes=b.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=b.defaultEdgeLength||Graph.prototype.defaultEdgeLength;DrawioFile.prototype.autosaveDelay=b.autosaveDelay||DrawioFile.prototype.autosaveDelay;
@@ -3250,29 +3250,29 @@ var d=[];b.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\
null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(b)||"https://raw.githubusercontent.com/"===b.substring(0,34)||"https://fonts.googleapis.com/"===b.substring(0,29)||"https://fonts.gstatic.com/"===b.substring(0,26)};Editor.prototype.createImageUrlConverter=function(){var b=new mxUrlConverter;b.updateBaseUrl();var d=b.convert,c=this;b.convert=function(g){if(null!=g){var e="http://"==g.substring(0,7)||"https://"==
g.substring(0,8);e&&!navigator.onLine?g=Editor.svgBrokenImage.src:!e||g.substring(0,b.baseUrl.length)==b.baseUrl||c.crossOriginImages&&c.isCorsEnabledForUrl(g)?"chrome-extension://"==g.substring(0,19)||mxClient.IS_CHROMEAPP||(g=d.apply(this,arguments)):g=PROXY_URL+"?url="+encodeURIComponent(g)}return g};return b};Editor.createSvgDataUri=function(b){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(b)))};Editor.prototype.convertImageToDataUri=function(b,d){try{var c=!0,g=window.setTimeout(mxUtils.bind(this,
function(){c=!1;d(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(b))mxUtils.get(b,mxUtils.bind(this,function(b){window.clearTimeout(g);c&&d(Editor.createSvgDataUri(b.getText()))}),function(){window.clearTimeout(g);c&&d(Editor.svgBrokenImage.src)});else{var e=new Image;this.crossOriginImages&&(e.crossOrigin="anonymous");e.onload=function(){window.clearTimeout(g);if(c)try{var b=document.createElement("canvas"),k=b.getContext("2d");b.height=e.height;b.width=e.width;k.drawImage(e,0,0);
-d(b.toDataURL())}catch(oa){d(Editor.svgBrokenImage.src)}};e.onerror=function(){window.clearTimeout(g);c&&d(Editor.svgBrokenImage.src)};e.src=b}}catch(I){d(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(b,d,c,g){null==g&&(g=this.createImageUrlConverter());var e=0,k=c||{};c=mxUtils.bind(this,function(c,f){for(var m=b.getElementsByTagName(c),l=0;l<m.length;l++)mxUtils.bind(this,function(c){try{if(null!=c){var m=g.convert(c.getAttribute(f));if(null!=m&&"data:"!=m.substring(0,5)){var l=
-k[m];null==l?(e++,this.convertImageToDataUri(m,function(g){null!=g&&(k[m]=g,c.setAttribute(f,g));e--;0==e&&d(b)})):c.setAttribute(f,l)}else null!=m&&c.setAttribute(f,m)}}catch(sa){}})(m[l])});c("image","xlink:href");c("img","src");0==e&&d(b)};Editor.base64Encode=function(b){for(var d="",c=0,g=b.length,e,k,f;c<g;){e=b.charCodeAt(c++)&255;if(c==g){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&
+d(b.toDataURL())}catch(oa){d(Editor.svgBrokenImage.src)}};e.onerror=function(){window.clearTimeout(g);c&&d(Editor.svgBrokenImage.src)};e.src=b}}catch(I){d(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(b,d,c,g){null==g&&(g=this.createImageUrlConverter());var e=0,k=c||{};c=mxUtils.bind(this,function(c,f){for(var l=b.getElementsByTagName(c),m=0;m<l.length;m++)mxUtils.bind(this,function(c){try{if(null!=c){var l=g.convert(c.getAttribute(f));if(null!=l&&"data:"!=l.substring(0,5)){var m=
+k[l];null==m?(e++,this.convertImageToDataUri(l,function(g){null!=g&&(k[l]=g,c.setAttribute(f,g));e--;0==e&&d(b)})):c.setAttribute(f,m)}else null!=l&&c.setAttribute(f,l)}}catch(sa){}})(l[m])});c("image","xlink:href");c("img","src");0==e&&d(b)};Editor.base64Encode=function(b){for(var d="",c=0,g=b.length,e,k,f;c<g;){e=b.charCodeAt(c++)&255;if(c==g){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&
3)<<4);d+="==";break}k=b.charCodeAt(c++);if(c==g){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(k&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((k&15)<<2);d+="=";break}f=b.charCodeAt(c++);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&
-3)<<4|(k&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((k&15)<<2|(f&192)>>6);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f&63)}return d};Editor.prototype.loadUrl=function(b,d,c,g,e,k,f,m){try{var l=!f&&(g||/(\.png)($|\?)/i.test(b)||/(\.jpe?g)($|\?)/i.test(b)||/(\.gif)($|\?)/i.test(b)||/(\.pdf)($|\?)/i.test(b));e=null!=e?e:!0;var p=mxUtils.bind(this,function(){mxUtils.get(b,mxUtils.bind(this,function(b){if(200<=b.getStatus()&&
-299>=b.getStatus()){if(null!=d){var g=b.getText();if(l){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){b=mxUtilsBinaryToArray(b.request.responseBody).toArray();for(var g=Array(b.length),e=0;e<b.length;e++)g[e]=String.fromCharCode(b[e]);g=g.join("")}k=null!=k?k:"data:image/png;base64,";g=k+Editor.base64Encode(g)}d(g)}}else null!=c&&(0==b.getStatus()?c({message:mxResources.get("accessDenied")},b):c({message:mxResources.get("error")+" "+b.getStatus()},
-b))}),function(b){null!=c&&c({message:mxResources.get("error")+" "+b.getStatus()})},l,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:p})},m)});p()}catch(qa){null!=c&&c(qa)}};Editor.prototype.absoluteCssFonts=function(b){var d=null;if(null!=b){var c=b.split("url(");if(0<c.length){d=[c[0]];b=window.location.pathname;var g=null!=b?b.lastIndexOf("/"):-1;0<=g&&(b=b.substring(0,g+1));var g=document.getElementsByTagName("base"),e=null;null!=g&&0<g.length&&(e=g[0].getAttribute("href"));
+3)<<4|(k&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((k&15)<<2|(f&192)>>6);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f&63)}return d};Editor.prototype.loadUrl=function(b,d,c,g,e,k,f,l){try{var m=!f&&(g||/(\.png)($|\?)/i.test(b)||/(\.jpe?g)($|\?)/i.test(b)||/(\.gif)($|\?)/i.test(b)||/(\.pdf)($|\?)/i.test(b));e=null!=e?e:!0;var p=mxUtils.bind(this,function(){mxUtils.get(b,mxUtils.bind(this,function(b){if(200<=b.getStatus()&&
+299>=b.getStatus()){if(null!=d){var g=b.getText();if(m){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){b=mxUtilsBinaryToArray(b.request.responseBody).toArray();for(var g=Array(b.length),e=0;e<b.length;e++)g[e]=String.fromCharCode(b[e]);g=g.join("")}k=null!=k?k:"data:image/png;base64,";g=k+Editor.base64Encode(g)}d(g)}}else null!=c&&(0==b.getStatus()?c({message:mxResources.get("accessDenied")},b):c({message:mxResources.get("error")+" "+b.getStatus()},
+b))}),function(b){null!=c&&c({message:mxResources.get("error")+" "+b.getStatus()})},m,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:p})},l)});p()}catch(qa){null!=c&&c(qa)}};Editor.prototype.absoluteCssFonts=function(b){var d=null;if(null!=b){var c=b.split("url(");if(0<c.length){d=[c[0]];b=window.location.pathname;var g=null!=b?b.lastIndexOf("/"):-1;0<=g&&(b=b.substring(0,g+1));var g=document.getElementsByTagName("base"),e=null;null!=g&&0<g.length&&(e=g[0].getAttribute("href"));
for(var k=1;k<c.length;k++)if(g=c[k].indexOf(")"),0<g){var f=Editor.trimCssUrl(c[k].substring(0,g));this.graph.isRelativeUrl(f)&&(f=null!=e?e+f:window.location.protocol+"//"+window.location.hostname+("/"==f.charAt(0)?"":b)+f);d.push('url("'+f+'"'+c[k].substring(g))}else d.push(c[k])}else d=[b]}return null!=d?d.join(""):null};Editor.prototype.mapFontUrl=function(b,d,c){/^https?:\/\//.test(d)&&!this.isCorsEnabledForUrl(d)&&(d=PROXY_URL+"?url="+encodeURIComponent(d));c(b,d)};Editor.prototype.embedCssFonts=
-function(b,d){var c=b.split("url("),g=0;null==this.cachedFonts&&(this.cachedFonts={});var e=mxUtils.bind(this,function(){if(0==g){for(var b=[c[0]],e=1;e<c.length;e++){var k=c[e].indexOf(")");b.push('url("');b.push(this.cachedFonts[Editor.trimCssUrl(c[e].substring(0,k))]);b.push('"'+c[e].substring(k))}d(b.join(""))}});if(0<c.length){for(var k=1;k<c.length;k++){var f=c[k].indexOf(")"),m=null,l=c[k].indexOf("format(",f);0<l&&(m=Editor.trimCssUrl(c[k].substring(l+7,c[k].indexOf(")",l))));mxUtils.bind(this,
-function(b){if(null==this.cachedFonts[b]){this.cachedFonts[b]=b;g++;var d="application/x-font-ttf";if("svg"==m||/(\.svg)($|\?)/i.test(b))d="image/svg+xml";else if("otf"==m||"embedded-opentype"==m||/(\.otf)($|\?)/i.test(b))d="application/x-font-opentype";else if("woff"==m||/(\.woff)($|\?)/i.test(b))d="application/font-woff";else if("woff2"==m||/(\.woff2)($|\?)/i.test(b))d="application/font-woff2";else if("eot"==m||/(\.eot)($|\?)/i.test(b))d="application/vnd.ms-fontobject";else if("sfnt"==m||/(\.sfnt)($|\?)/i.test(b))d=
-"application/font-sfnt";this.mapFontUrl(d,b,mxUtils.bind(this,function(d,c){this.loadUrl(c,mxUtils.bind(this,function(d){this.cachedFonts[b]=d;g--;e()}),mxUtils.bind(this,function(b){g--;e()}),!0,null,"data:"+d+";charset=utf-8;base64,")}))}})(Editor.trimCssUrl(c[k].substring(0,f)),m)}e()}else d(b)};Editor.prototype.loadFonts=function(b){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(d){this.resolvedFontCss=d;null!=b&&b()})):null!=b&&b()};
+function(b,d){var c=b.split("url("),g=0;null==this.cachedFonts&&(this.cachedFonts={});var e=mxUtils.bind(this,function(){if(0==g){for(var b=[c[0]],e=1;e<c.length;e++){var k=c[e].indexOf(")");b.push('url("');b.push(this.cachedFonts[Editor.trimCssUrl(c[e].substring(0,k))]);b.push('"'+c[e].substring(k))}d(b.join(""))}});if(0<c.length){for(var k=1;k<c.length;k++){var f=c[k].indexOf(")"),l=null,m=c[k].indexOf("format(",f);0<m&&(l=Editor.trimCssUrl(c[k].substring(m+7,c[k].indexOf(")",m))));mxUtils.bind(this,
+function(b){if(null==this.cachedFonts[b]){this.cachedFonts[b]=b;g++;var d="application/x-font-ttf";if("svg"==l||/(\.svg)($|\?)/i.test(b))d="image/svg+xml";else if("otf"==l||"embedded-opentype"==l||/(\.otf)($|\?)/i.test(b))d="application/x-font-opentype";else if("woff"==l||/(\.woff)($|\?)/i.test(b))d="application/font-woff";else if("woff2"==l||/(\.woff2)($|\?)/i.test(b))d="application/font-woff2";else if("eot"==l||/(\.eot)($|\?)/i.test(b))d="application/vnd.ms-fontobject";else if("sfnt"==l||/(\.sfnt)($|\?)/i.test(b))d=
+"application/font-sfnt";this.mapFontUrl(d,b,mxUtils.bind(this,function(d,c){this.loadUrl(c,mxUtils.bind(this,function(d){this.cachedFonts[b]=d;g--;e()}),mxUtils.bind(this,function(b){g--;e()}),!0,null,"data:"+d+";charset=utf-8;base64,")}))}})(Editor.trimCssUrl(c[k].substring(0,f)),l)}e()}else d(b)};Editor.prototype.loadFonts=function(b){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(d){this.resolvedFontCss=d;null!=b&&b()})):null!=b&&b()};
Editor.prototype.createGoogleFontCache=function(){var b={},d;for(d in Graph.fontMapping)Graph.isCssFontUrl(d)&&(b[d]=Graph.fontMapping[d]);return b};Editor.prototype.embedExtFonts=function(b){var d=this.graph.getCustomFonts();if(0<d.length){var c=[],g=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts=this.createGoogleFontCache());for(var e=mxUtils.bind(this,function(){0==g&&this.embedCssFonts(c.join(""),b)}),k=0;k<d.length;k++)mxUtils.bind(this,function(b,d){Graph.isCssFontUrl(d)?null==this.cachedGoogleFonts[d]?
(g++,this.loadUrl(d,mxUtils.bind(this,function(b){this.cachedGoogleFonts[d]=b;c.push(b+"\n");g--;e()}),mxUtils.bind(this,function(b){g--;c.push("@import url("+d+");\n");e()}))):c.push(this.cachedGoogleFonts[d]+"\n"):c.push('@font-face {font-family: "'+b+'";src: url("'+d+'")}\n')})(d[k].name,d[k].url);e()}else b()};Editor.prototype.addMathCss=function(b){b=b.getElementsByTagName("defs");if(null!=b&&0<b.length)for(var d=document.getElementsByTagName("style"),c=0;c<d.length;c++){var g=mxUtils.getTextContent(d[c]);
0>g.indexOf("mxPageSelector")&&0<g.indexOf("MathJax")&&b[0].appendChild(d[c].cloneNode(!0))}};Editor.prototype.addFontCss=function(b,d){d=null!=d?d:this.absoluteCssFonts(this.fontCss);if(null!=d){var c=b.getElementsByTagName("defs"),g=b.ownerDocument;0==c.length?(c=null!=g.createElementNS?g.createElementNS(mxConstants.NS_SVG,"defs"):g.createElement("defs"),null!=b.firstChild?b.insertBefore(c,b.firstChild):b.appendChild(c)):c=c[0];g=null!=g.createElementNS?g.createElementNS(mxConstants.NS_SVG,"style"):
-g.createElement("style");g.setAttribute("type","text/css");mxUtils.setTextContent(g,d);c.appendChild(g)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(b,d,c){var g=mxClient.IS_FF?8192:16384;return Math.min(c,Math.min(g/b,g/d))};Editor.prototype.exportToCanvas=function(b,d,c,g,e,k,f,m,l,p,q,n,u,v,y,x,t,A){try{k=null!=k?k:!0;f=null!=f?f:!0;n=null!=n?n:this.graph;u=null!=u?u:0;var B=l?null:n.background;
-B==mxConstants.NONE&&(B=null);null==B&&(B=g);null==B&&0==l&&(B=x?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(n.getSvg(null,null,u,v,null,f,null,null,null,p,null,x,t,A),mxUtils.bind(this,function(c){try{var g=new Image;g.onload=mxUtils.bind(this,function(){try{var f=function(){mxClient.IS_SF?window.setTimeout(function(){v.drawImage(g,0,0);b(l,c)},0):(v.drawImage(g,0,0),b(l,c))},l=document.createElement("canvas"),p=parseInt(c.getAttribute("width")),q=parseInt(c.getAttribute("height"));
-m=null!=m?m:1;null!=d&&(m=k?Math.min(1,Math.min(3*d/(4*q),d/p)):d/p);m=this.getMaxCanvasScale(p,q,m);p=Math.ceil(m*p);q=Math.ceil(m*q);l.setAttribute("width",p);l.setAttribute("height",q);var v=l.getContext("2d");null!=B&&(v.beginPath(),v.rect(0,0,p,q),v.fillStyle=B,v.fill());1!=m&&v.scale(m,m);if(y){var x=n.view,t=x.scale;x.scale=1;var A=btoa(unescape(encodeURIComponent(x.createSvgGrid(x.gridColor))));x.scale=t;var A="data:image/svg+xml;base64,"+A,M=n.gridSize*x.gridSteps*m,J=n.getGraphBounds(),
-K=x.translate.x*t,I=x.translate.y*t,C=K+(J.x-K)/t-u,Q=I+(J.y-I)/t-u,fa=new Image;fa.onload=function(){try{for(var b=-Math.round(M-mxUtils.mod((K-C)*m,M)),d=-Math.round(M-mxUtils.mod((I-Q)*m,M));b<p;b+=M)for(var c=d;c<q;c+=M)v.drawImage(fa,b/m,c/m);f()}catch(La){null!=e&&e(La)}};fa.onerror=function(b){null!=e&&e(b)};fa.src=A}else f()}catch(za){null!=e&&e(za)}});g.onerror=function(b){null!=e&&e(b)};p&&this.graph.addSvgShadow(c);this.graph.mathEnabled&&this.addMathCss(c);var f=mxUtils.bind(this,function(){try{null!=
-this.resolvedFontCss&&this.addFontCss(c,this.resolvedFontCss),g.src=Editor.createSvgDataUri(mxUtils.getXml(c))}catch(ia){null!=e&&e(ia)}});this.embedExtFonts(mxUtils.bind(this,function(b){try{null!=b&&this.addFontCss(c,b),this.loadFonts(f)}catch(xa){null!=e&&e(xa)}}))}catch(ia){null!=e&&e(ia)}}),c,q)}catch(na){null!=e&&e(na)}};Editor.crcTable=[];for(var n=0;256>n;n++)for(var l=n,t=0;8>t;t++)l=1==(l&1)?3988292384^l>>>1:l>>>1,Editor.crcTable[n]=l;Editor.updateCRC=function(b,d,c,g){for(var e=0;e<g;e++)b=
-Editor.crcTable[(b^d.charCodeAt(c+e))&255]^b>>>8;return b};Editor.crc32=function(b){for(var d=-1,c=0;c<b.length;c++)d=d>>>8^Editor.crcTable[(d^b.charCodeAt(c))&255];return(d^-1)>>>0};Editor.writeGraphModelToPng=function(b,d,c,g,e){function k(b,d){var c=l;l+=d;return b.substring(c,l)}function f(b){b=k(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}function m(b){return String.fromCharCode(b>>24&255,b>>16&255,b>>8&255,b&255)}b=b.substring(b.indexOf(",")+
-1);b=window.atob?atob(b):Base64.decode(b,!0);var l=0;if(k(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(k(b,4),"IHDR"!=k(b,4))null!=e&&e();else{k(b,17);e=b.substring(0,l);do{var p=f(b);if("IDAT"==k(b,4)){e=b.substring(0,l-8);"pHYs"==d&&"dpi"==c?(c=Math.round(g/.0254),c=m(c)+m(c)+String.fromCharCode(1)):c=c+String.fromCharCode(0)+("zTXt"==d?String.fromCharCode(0):"")+g;g=4294967295;g=Editor.updateCRC(g,d,0,4);g=Editor.updateCRC(g,c,0,c.length);e+=m(c.length)+
-d+c+m(g^4294967295);e+=b.substring(l-8,b.length);break}e+=b.substring(l-8,l-4+p);k(b,p);k(b,4)}while(p);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var d=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(b,c){d.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var k=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=
-function(){k.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(b,d){var c=null;null!=b.editor.graph.getModel().getParent(d)?c=d.getId():null!=b.currentPage&&(c=b.currentPage.getId());return c});if(null!=window.StyleFormatPanel){var g=Format.prototype.init;Format.prototype.init=function(){g.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var q=Format.prototype.refresh;
-Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?q.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var b=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=b&&b.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(b){return!1};var m=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(b){b=m.apply(this,arguments);
+g.createElement("style");g.setAttribute("type","text/css");mxUtils.setTextContent(g,d);c.appendChild(g)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(b,d,c){var g=mxClient.IS_FF?8192:16384;return Math.min(c,Math.min(g/b,g/d))};Editor.prototype.exportToCanvas=function(b,d,c,g,e,k,f,l,m,p,t,n,u,v,y,x,q,A){try{k=null!=k?k:!0;f=null!=f?f:!0;n=null!=n?n:this.graph;u=null!=u?u:0;var B=m?null:n.background;
+B==mxConstants.NONE&&(B=null);null==B&&(B=g);null==B&&0==m&&(B=x?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(n.getSvg(null,null,u,v,null,f,null,null,null,p,null,x,q,A),mxUtils.bind(this,function(c){try{var g=new Image;g.onload=mxUtils.bind(this,function(){try{var f=function(){mxClient.IS_SF?window.setTimeout(function(){v.drawImage(g,0,0);b(m,c)},0):(v.drawImage(g,0,0),b(m,c))},m=document.createElement("canvas"),p=parseInt(c.getAttribute("width")),t=parseInt(c.getAttribute("height"));
+l=null!=l?l:1;null!=d&&(l=k?Math.min(1,Math.min(3*d/(4*t),d/p)):d/p);l=this.getMaxCanvasScale(p,t,l);p=Math.ceil(l*p);t=Math.ceil(l*t);m.setAttribute("width",p);m.setAttribute("height",t);var v=m.getContext("2d");null!=B&&(v.beginPath(),v.rect(0,0,p,t),v.fillStyle=B,v.fill());1!=l&&v.scale(l,l);if(y){var x=n.view,q=x.scale;x.scale=1;var A=btoa(unescape(encodeURIComponent(x.createSvgGrid(x.gridColor))));x.scale=q;var A="data:image/svg+xml;base64,"+A,M=n.gridSize*x.gridSteps*l,L=n.getGraphBounds(),
+K=x.translate.x*q,I=x.translate.y*q,C=K+(L.x-K)/q-u,Q=I+(L.y-I)/q-u,fa=new Image;fa.onload=function(){try{for(var b=-Math.round(M-mxUtils.mod((K-C)*l,M)),d=-Math.round(M-mxUtils.mod((I-Q)*l,M));b<p;b+=M)for(var c=d;c<t;c+=M)v.drawImage(fa,b/l,c/l);f()}catch(La){null!=e&&e(La)}};fa.onerror=function(b){null!=e&&e(b)};fa.src=A}else f()}catch(za){null!=e&&e(za)}});g.onerror=function(b){null!=e&&e(b)};p&&this.graph.addSvgShadow(c);this.graph.mathEnabled&&this.addMathCss(c);var f=mxUtils.bind(this,function(){try{null!=
+this.resolvedFontCss&&this.addFontCss(c,this.resolvedFontCss),g.src=Editor.createSvgDataUri(mxUtils.getXml(c))}catch(ia){null!=e&&e(ia)}});this.embedExtFonts(mxUtils.bind(this,function(b){try{null!=b&&this.addFontCss(c,b),this.loadFonts(f)}catch(xa){null!=e&&e(xa)}}))}catch(ia){null!=e&&e(ia)}}),c,t)}catch(na){null!=e&&e(na)}};Editor.crcTable=[];for(var n=0;256>n;n++)for(var l=n,q=0;8>q;q++)l=1==(l&1)?3988292384^l>>>1:l>>>1,Editor.crcTable[n]=l;Editor.updateCRC=function(b,d,c,g){for(var e=0;e<g;e++)b=
+Editor.crcTable[(b^d.charCodeAt(c+e))&255]^b>>>8;return b};Editor.crc32=function(b){for(var d=-1,c=0;c<b.length;c++)d=d>>>8^Editor.crcTable[(d^b.charCodeAt(c))&255];return(d^-1)>>>0};Editor.writeGraphModelToPng=function(b,d,c,g,e){function k(b,d){var c=m;m+=d;return b.substring(c,m)}function f(b){b=k(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}function l(b){return String.fromCharCode(b>>24&255,b>>16&255,b>>8&255,b&255)}b=b.substring(b.indexOf(",")+
+1);b=window.atob?atob(b):Base64.decode(b,!0);var m=0;if(k(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(k(b,4),"IHDR"!=k(b,4))null!=e&&e();else{k(b,17);e=b.substring(0,m);do{var p=f(b);if("IDAT"==k(b,4)){e=b.substring(0,m-8);"pHYs"==d&&"dpi"==c?(c=Math.round(g/.0254),c=l(c)+l(c)+String.fromCharCode(1)):c=c+String.fromCharCode(0)+("zTXt"==d?String.fromCharCode(0):"")+g;g=4294967295;g=Editor.updateCRC(g,d,0,4);g=Editor.updateCRC(g,c,0,c.length);e+=l(c.length)+
+d+c+l(g^4294967295);e+=b.substring(m-8,b.length);break}e+=b.substring(m-8,m-4+p);k(b,p);k(b,4)}while(p);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var d=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(b,c){d.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var k=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=
+function(){k.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(b,d){var c=null;null!=b.editor.graph.getModel().getParent(d)?c=d.getId():null!=b.currentPage&&(c=b.currentPage.getId());return c});if(null!=window.StyleFormatPanel){var g=Format.prototype.init;Format.prototype.init=function(){g.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var t=Format.prototype.refresh;
+Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?t.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var b=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=b&&b.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(b){return!1};var m=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(b){b=m.apply(this,arguments);
this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var d=this.editorUi,c=d.editor.graph,g=this.createOption(mxResources.get("shadow"),function(){return c.shadowVisible},function(b){var g=new ChangePageSetup(d);g.ignoreColor=!0;g.ignoreImage=!0;g.shadowVisible=b;c.model.execute(g)},{install:function(b){this.listener=function(){b(c.shadowVisible)};d.addListener("shadowVisibleChanged",this.listener)},destroy:function(){d.removeListener(this.listener)}});Editor.enableShadowOption||
(g.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(g,60));b.appendChild(g)}return b};var p=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(b){b=p.apply(this,arguments);var d=this.editorUi,c=d.editor.graph;if(c.isEnabled()){var g=d.getCurrentFile();if(null!=g&&g.isAutosaveOptional()){var e=this.createOption(mxResources.get("autosave"),function(){return d.editor.autosave},function(b){d.editor.setAutosave(b);d.editor.autosave&&
g.isModified()&&g.fileChanged()},{install:function(b){this.listener=function(){b(d.editor.autosave)};d.editor.addListener("autosaveChanged",this.listener)},destroy:function(){d.editor.removeListener(this.listener)}});b.appendChild(e)}}if(this.isMathOptionVisible()&&c.isEnabled()&&"undefined"!==typeof MathJax){e=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return c.mathEnabled},function(b){d.actions.get("mathematicalTypesetting").funct()},{install:function(b){this.listener=
@@ -3302,34 +3302,34 @@ font:"#ffffff"}],[{fill:"",stroke:""},{fill:mxConstants.NONE,stroke:""},{fill:"#
function(b,d,c){if(null!=d){var g=function(b){if(null!=b)if(c)for(var g=0;g<b.length;g++)d[b[g].name]=b[g];else for(var e in d){for(var k=!1,g=0;g<b.length;g++)if(b[g].name==e&&b[g].type==d[e].type){k=!0;break}k||delete d[e]}},e=this.editorUi.editor.graph.view.getState(b);null!=e&&null!=e.shape&&(e.shape.commonCustomPropAdded||(e.shape.commonCustomPropAdded=!0,e.shape.customProperties=e.shape.customProperties||[],e.cell.vertex?Array.prototype.push.apply(e.shape.customProperties,Editor.commonVertexProperties):
Array.prototype.push.apply(e.shape.customProperties,Editor.commonEdgeProperties)),g(e.shape.customProperties));b=b.getAttribute("customProperties");if(null!=b)try{g(JSON.parse(b))}catch(I){}}};var v=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var b=this.editorUi.getSelectionState();"image"!=b.style.shape&&!b.containsLabel&&0<b.cells.length&&this.container.appendChild(this.addStyles(this.createPanel()));v.apply(this,arguments);if(Editor.enableCustomProperties){for(var d=
{},c=b.vertices,g=b.edges,e=0;e<c.length;e++)this.findCommonProperties(c[e],d,0==e);for(e=0;e<g.length;e++)this.findCommonProperties(g[e],d,0==c.length&&0==e);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(d).length&&this.container.appendChild(this.addProperties(this.createPanel(),d,b))}};var u=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(b){this.addActions(b,["copyStyle","pasteStyle"]);return u.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=
-!0;StyleFormatPanel.prototype.addProperties=function(b,d,c){function g(b,d,c,g){n.getModel().beginUpdate();try{var e=[],k=[];if(null!=c.index){for(var f=[],m=c.parentRow.nextSibling;m&&m.getAttribute("data-pName")==b;)f.push(m.getAttribute("data-pValue")),m=m.nextSibling;c.index<f.length?null!=g?f.splice(g,1):f[c.index]=d:f.push(d);null!=c.size&&f.length>c.size&&(f=f.slice(0,c.size));d=f.join(",");null!=c.countProperty&&(n.setCellStyles(c.countProperty,f.length,n.getSelectionCells()),e.push(c.countProperty),
-k.push(f.length))}n.setCellStyles(b,d,n.getSelectionCells());e.push(b);k.push(d);if(null!=c.dependentProps)for(b=0;b<c.dependentProps.length;b++){var l=c.dependentPropsDefVal[b],p=c.dependentPropsVals[b];if(p.length>d)p=p.slice(0,d);else for(var u=p.length;u<d;u++)p.push(l);p=p.join(",");n.setCellStyles(c.dependentProps[b],p,n.getSelectionCells());e.push(c.dependentProps[b]);k.push(p)}if("function"==typeof c.onChange)c.onChange(n,d);q.editorUi.fireEvent(new mxEventObject("styleChanged","keys",e,"values",
+!0;StyleFormatPanel.prototype.addProperties=function(b,d,c){function g(b,d,c,g){n.getModel().beginUpdate();try{var e=[],k=[];if(null!=c.index){for(var f=[],l=c.parentRow.nextSibling;l&&l.getAttribute("data-pName")==b;)f.push(l.getAttribute("data-pValue")),l=l.nextSibling;c.index<f.length?null!=g?f.splice(g,1):f[c.index]=d:f.push(d);null!=c.size&&f.length>c.size&&(f=f.slice(0,c.size));d=f.join(",");null!=c.countProperty&&(n.setCellStyles(c.countProperty,f.length,n.getSelectionCells()),e.push(c.countProperty),
+k.push(f.length))}n.setCellStyles(b,d,n.getSelectionCells());e.push(b);k.push(d);if(null!=c.dependentProps)for(b=0;b<c.dependentProps.length;b++){var m=c.dependentPropsDefVal[b],p=c.dependentPropsVals[b];if(p.length>d)p=p.slice(0,d);else for(var u=p.length;u<d;u++)p.push(m);p=p.join(",");n.setCellStyles(c.dependentProps[b],p,n.getSelectionCells());e.push(c.dependentProps[b]);k.push(p)}if("function"==typeof c.onChange)c.onChange(n,d);t.editorUi.fireEvent(new mxEventObject("styleChanged","keys",e,"values",
k,"cells",n.getSelectionCells()))}finally{n.getModel().endUpdate()}}function e(d,c,g){var e=mxUtils.getOffset(b,!0),k=mxUtils.getOffset(d,!0);c.style.position="absolute";c.style.left=k.x-e.x+"px";c.style.top=k.y-e.y+"px";c.style.width=d.offsetWidth+"px";c.style.height=d.offsetHeight-(g?4:0)+"px";c.style.zIndex=5}function k(b,d,c){var e=document.createElement("div");e.style.width="32px";e.style.height="4px";e.style.margin="2px";e.style.border="1px solid black";e.style.background=d&&"none"!=d?d:"url('"+
-Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,function(k){this.editorUi.pickColor(d,function(d){e.style.background="none"==d?"url('"+Dialog.prototype.noColorImage+"')":d;g(b,d,c)});mxEvent.consume(k)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(e);return btn}function f(b,d,c,e,k,f,m){null!=d&&(d=d.split(","),u.push({name:b,values:d,type:c,defVal:e,countProperty:k,parentRow:f,isDeletable:!0,flipBkg:m}));btn=mxUtils.button("+",
-mxUtils.bind(q,function(d){for(var l=f,q=0;null!=l.nextSibling;)if(l.nextSibling.getAttribute("data-pName")==b)l=l.nextSibling,q++;else break;var n={type:c,parentRow:f,index:q,isDeletable:!0,defVal:e,countProperty:k},q=p(b,"",n,0==q%2,m);g(b,e,n);l.parentNode.insertBefore(q,l.nextSibling);mxEvent.consume(d)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function m(b,d,c,g,e,k,f){if(0<e){var m=Array(e);d=null!=d?d.split(","):[];for(var l=0;l<e;l++)m[l]=null!=
-d[l]?d[l]:null!=g?g:"";u.push({name:b,values:m,type:c,defVal:g,parentRow:k,flipBkg:f,size:e})}return document.createElement("div")}function l(b,d,c){var e=document.createElement("input");e.type="checkbox";e.checked="1"==d;mxEvent.addListener(e,"change",function(){g(b,e.checked?"1":"0",c)});return e}function p(d,c,p,n,u){var v=p.dispName,y=p.type,x=document.createElement("tr");x.className="gePropRow"+(u?"Dark":"")+(n?"Alt":"")+" gePropNonHeaderRow";x.setAttribute("data-pName",d);x.setAttribute("data-pValue",
-c);n=!1;null!=p.index&&(x.setAttribute("data-index",p.index),v=(null!=v?v:"")+"["+p.index+"]",n=!0);var t=document.createElement("td");t.className="gePropRowCell";v=mxResources.get(v,null,v);mxUtils.write(t,v);t.setAttribute("title",v);n&&(t.style.textAlign="right");x.appendChild(t);t=document.createElement("td");t.className="gePropRowCell";if("color"==y)t.appendChild(k(d,c,p));else if("bool"==y||"boolean"==y)t.appendChild(l(d,c,p));else if("enum"==y){var B=p.enumList;for(u=0;u<B.length;u++)if(v=
-B[u],v.val==c){mxUtils.write(t,mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(t,"click",mxUtils.bind(q,function(){var k=document.createElement("select");e(t,k);for(var f=0;f<B.length;f++){var m=B[f],l=document.createElement("option");l.value=mxUtils.htmlEntities(m.val);mxUtils.write(l,mxResources.get(m.dispName,null,m.dispName));k.appendChild(l)}k.value=c;b.appendChild(k);mxEvent.addListener(k,"change",function(){var b=mxUtils.htmlEntities(k.value);g(d,b,p)});k.focus();mxEvent.addListener(k,
-"blur",function(){b.removeChild(k)})}))}else"dynamicArr"==y?t.appendChild(f(d,c,p.subType,p.subDefVal,p.countProperty,x,u)):"staticArr"==y?t.appendChild(m(d,c,p.subType,p.subDefVal,p.size,x,u)):"readOnly"==y?(u=document.createElement("input"),u.setAttribute("readonly",""),u.value=c,u.style.width="96px",u.style.borderWidth="0px",t.appendChild(u)):(t.innerHTML=mxUtils.htmlEntities(decodeURIComponent(c)),mxEvent.addListener(t,"click",mxUtils.bind(q,function(){function k(){var b=f.value,b=0==b.length&&
-"string"!=y?0:b;p.allowAuto&&(null!=b.trim&&"auto"==b.trim().toLowerCase()?(b="auto",y="string"):(b=parseFloat(b),b=isNaN(b)?0:b));null!=p.min&&b<p.min?b=p.min:null!=p.max&&b>p.max&&(b=p.max);b=encodeURIComponent(("int"==y?parseInt(b):b)+"");g(d,b,p)}var f=document.createElement("input");e(t,f,!0);f.value=decodeURIComponent(c);f.className="gePropEditor";"int"!=y&&"float"!=y||p.allowAuto||(f.type="number",f.step="int"==y?"1":"any",null!=p.min&&(f.min=parseFloat(p.min)),null!=p.max&&(f.max=parseFloat(p.max)));
-b.appendChild(f);mxEvent.addListener(f,"keypress",function(b){13==b.keyCode&&k()});f.focus();mxEvent.addListener(f,"blur",function(){k()})})));p.isDeletable&&(u=mxUtils.button("-",mxUtils.bind(q,function(b){g(d,"",p,p.index);mxEvent.consume(b)})),u.style.height="16px",u.style.width="25px",u.style["float"]="right",u.className="geColorBtn",t.appendChild(u));x.appendChild(t);return x}var q=this,n=this.editorUi.editor.graph,u=[];b.style.position="relative";b.style.padding="0";var v=document.createElement("table");
-v.className="geProperties";v.style.whiteSpace="nowrap";v.style.width="100%";var y=document.createElement("tr");y.className="gePropHeader";var x=document.createElement("th");x.className="gePropHeaderCell";var t=document.createElement("img");t.src=Sidebar.prototype.expandedImage;t.style.verticalAlign="middle";x.appendChild(t);mxUtils.write(x,mxResources.get("property"));y.style.cursor="pointer";var B=function(){var d=v.querySelectorAll(".gePropNonHeaderRow"),c;if(q.editorUi.propertiesCollapsed){t.src=
-Sidebar.prototype.collapsedImage;c="none";for(var g=b.childNodes.length-1;0<=g;g--)try{var e=b.childNodes[g],k=e.nodeName.toUpperCase();"INPUT"!=k&&"SELECT"!=k||b.removeChild(e)}catch(wa){}}else t.src=Sidebar.prototype.expandedImage,c="";for(g=0;g<d.length;g++)d[g].style.display=c};mxEvent.addListener(y,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;B()});y.appendChild(x);x=document.createElement("th");x.className="gePropHeaderCell";x.innerHTML=mxResources.get("value");
-y.appendChild(x);v.appendChild(y);var A=!1,M=!1,y=null;1==c.vertices.length&&0==c.edges.length?y=c.vertices[0].id:0==c.vertices.length&&1==c.edges.length&&(y=c.edges[0].id);null!=y&&v.appendChild(p("id",mxUtils.htmlEntities(y),{dispName:"ID",type:"readOnly"},!0,!1));for(var J in d)if(y=d[J],"function"!=typeof y.isVisible||y.isVisible(c,this)){var C=null!=c.style[J]?mxUtils.htmlEntities(c.style[J]+""):null!=y.getDefaultValue?y.getDefaultValue(c,this):y.defVal;if("separator"==y.type)M=!M;else{if("staticArr"==
-y.type)y.size=parseInt(c.style[y.sizeProperty]||d[y.sizeProperty].defVal)||0;else if(null!=y.dependentProps){for(var Q=y.dependentProps,K=[],E=[],x=0;x<Q.length;x++){var N=c.style[Q[x]];E.push(d[Q[x]].subDefVal);K.push(null!=N?N.split(","):[])}y.dependentPropsDefVal=E;y.dependentPropsVals=K}v.appendChild(p(J,C,y,A,M));A=!A}}for(x=0;x<u.length;x++)for(y=u[x],d=y.parentRow,c=0;c<y.values.length;c++)J=p(y.name,y.values[c],{type:y.type,parentRow:y.parentRow,isDeletable:y.isDeletable,index:c,defVal:y.defVal,
-countProperty:y.countProperty,size:y.size},0==c%2,y.flipBkg),d.parentNode.insertBefore(J,d.nextSibling),d=J;b.appendChild(v);B();return b};StyleFormatPanel.prototype.addStyles=function(b){function d(b){mxEvent.addListener(b,"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,"mouseleave",function(){b.style.opacity="0.5"})}var c=this.editorUi,g=c.editor.graph,e=document.createElement("div");e.style.whiteSpace="nowrap";e.style.paddingLeft="24px";e.style.paddingRight="20px";b.style.paddingLeft=
-"16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(e);var k="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.position="relative";f.style.textAlign="center";f.style.width="210px";for(var m=[],l=0;l<this.defaultColorSchemes.length;l++){var p=document.createElement("div");p.style.display=
-"inline-block";p.style.width="6px";p.style.height="6px";p.style.marginLeft="4px";p.style.marginRight="3px";p.style.borderRadius="3px";p.style.cursor="pointer";p.style.background="transparent";p.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(b){mxEvent.addListener(p,"click",mxUtils.bind(this,function(){q(b)}))})(l);m.push(p);f.appendChild(p)}var q=mxUtils.bind(this,function(b){null!=m[b]&&(null!=this.format.currentScheme&&null!=m[this.format.currentScheme]&&(m[this.format.currentScheme].style.background=
-"transparent"),this.format.currentScheme=b,n(this.defaultColorSchemes[this.format.currentScheme]),m[this.format.currentScheme].style.background="#84d7ff")}),n=mxUtils.bind(this,function(b){var d=mxUtils.bind(this,function(b){var d=mxUtils.button("",mxUtils.bind(this,function(d){g.getModel().beginUpdate();try{for(var e=c.getSelectionState().cells,f=0;f<e.length;f++){for(var m=g.getModel().getStyle(e[f]),l=0;l<k.length;l++)m=mxUtils.removeStylename(m,k[l]);var p=g.getModel().isVertex(e[f])?g.defaultVertexStyle:
-g.defaultEdgeStyle;null!=b?(mxEvent.isShiftDown(d)||(m=""==b.fill?mxUtils.setStyle(m,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(m,mxConstants.STYLE_FILLCOLOR,b.fill||mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,null)),m=mxUtils.setStyle(m,mxConstants.STYLE_GRADIENTCOLOR,b.gradient||mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isControlDown(d)||mxClient.IS_MAC&&mxEvent.isMetaDown(d)||!g.getModel().isVertex(e[f])||(m=mxUtils.setStyle(m,mxConstants.STYLE_FONTCOLOR,b.font||
-mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null)))),mxEvent.isAltDown(d)||(m=""==b.stroke?mxUtils.setStyle(m,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(m,mxConstants.STYLE_STROKECOLOR,b.stroke||mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,null)))):(m=mxUtils.setStyle(m,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,"#ffffff")),m=mxUtils.setStyle(m,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,"#000000")),m=mxUtils.setStyle(m,
-mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),g.getModel().isVertex(e[f])&&(m=mxUtils.setStyle(m,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null))));g.getModel().setStyle(e[f],m)}}finally{g.getModel().endUpdate()}}));d.className="geStyleButton";d.style.width="36px";d.style.height=10>=this.defaultColorSchemes.length?"24px":"30px";d.style.margin="0px 6px 6px 0px";if(null!=b){var f="1"==urlParams.sketch?"2px solid":"1px solid";
+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(t,function(k){this.editorUi.pickColor(d,function(d){e.style.background="none"==d?"url('"+Dialog.prototype.noColorImage+"')":d;g(b,d,c)});mxEvent.consume(k)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(e);return btn}function f(b,d,c,e,k,f,l){null!=d&&(d=d.split(","),u.push({name:b,values:d,type:c,defVal:e,countProperty:k,parentRow:f,isDeletable:!0,flipBkg:l}));btn=mxUtils.button("+",
+mxUtils.bind(t,function(d){for(var m=f,t=0;null!=m.nextSibling;)if(m.nextSibling.getAttribute("data-pName")==b)m=m.nextSibling,t++;else break;var n={type:c,parentRow:f,index:t,isDeletable:!0,defVal:e,countProperty:k},t=p(b,"",n,0==t%2,l);g(b,e,n);m.parentNode.insertBefore(t,m.nextSibling);mxEvent.consume(d)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function l(b,d,c,g,e,k,f){if(0<e){var l=Array(e);d=null!=d?d.split(","):[];for(var m=0;m<e;m++)l[m]=null!=
+d[m]?d[m]:null!=g?g:"";u.push({name:b,values:l,type:c,defVal:g,parentRow:k,flipBkg:f,size:e})}return document.createElement("div")}function m(b,d,c){var e=document.createElement("input");e.type="checkbox";e.checked="1"==d;mxEvent.addListener(e,"change",function(){g(b,e.checked?"1":"0",c)});return e}function p(d,c,p,n,u){var v=p.dispName,y=p.type,x=document.createElement("tr");x.className="gePropRow"+(u?"Dark":"")+(n?"Alt":"")+" gePropNonHeaderRow";x.setAttribute("data-pName",d);x.setAttribute("data-pValue",
+c);n=!1;null!=p.index&&(x.setAttribute("data-index",p.index),v=(null!=v?v:"")+"["+p.index+"]",n=!0);var q=document.createElement("td");q.className="gePropRowCell";v=mxResources.get(v,null,v);mxUtils.write(q,v);q.setAttribute("title",v);n&&(q.style.textAlign="right");x.appendChild(q);q=document.createElement("td");q.className="gePropRowCell";if("color"==y)q.appendChild(k(d,c,p));else if("bool"==y||"boolean"==y)q.appendChild(m(d,c,p));else if("enum"==y){var B=p.enumList;for(u=0;u<B.length;u++)if(v=
+B[u],v.val==c){mxUtils.write(q,mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(q,"click",mxUtils.bind(t,function(){var k=document.createElement("select");e(q,k);for(var f=0;f<B.length;f++){var l=B[f],m=document.createElement("option");m.value=mxUtils.htmlEntities(l.val);mxUtils.write(m,mxResources.get(l.dispName,null,l.dispName));k.appendChild(m)}k.value=c;b.appendChild(k);mxEvent.addListener(k,"change",function(){var b=mxUtils.htmlEntities(k.value);g(d,b,p)});k.focus();mxEvent.addListener(k,
+"blur",function(){b.removeChild(k)})}))}else"dynamicArr"==y?q.appendChild(f(d,c,p.subType,p.subDefVal,p.countProperty,x,u)):"staticArr"==y?q.appendChild(l(d,c,p.subType,p.subDefVal,p.size,x,u)):"readOnly"==y?(u=document.createElement("input"),u.setAttribute("readonly",""),u.value=c,u.style.width="96px",u.style.borderWidth="0px",q.appendChild(u)):(q.innerHTML=mxUtils.htmlEntities(decodeURIComponent(c)),mxEvent.addListener(q,"click",mxUtils.bind(t,function(){function k(){var b=f.value,b=0==b.length&&
+"string"!=y?0:b;p.allowAuto&&(null!=b.trim&&"auto"==b.trim().toLowerCase()?(b="auto",y="string"):(b=parseFloat(b),b=isNaN(b)?0:b));null!=p.min&&b<p.min?b=p.min:null!=p.max&&b>p.max&&(b=p.max);b=encodeURIComponent(("int"==y?parseInt(b):b)+"");g(d,b,p)}var f=document.createElement("input");e(q,f,!0);f.value=decodeURIComponent(c);f.className="gePropEditor";"int"!=y&&"float"!=y||p.allowAuto||(f.type="number",f.step="int"==y?"1":"any",null!=p.min&&(f.min=parseFloat(p.min)),null!=p.max&&(f.max=parseFloat(p.max)));
+b.appendChild(f);mxEvent.addListener(f,"keypress",function(b){13==b.keyCode&&k()});f.focus();mxEvent.addListener(f,"blur",function(){k()})})));p.isDeletable&&(u=mxUtils.button("-",mxUtils.bind(t,function(b){g(d,"",p,p.index);mxEvent.consume(b)})),u.style.height="16px",u.style.width="25px",u.style["float"]="right",u.className="geColorBtn",q.appendChild(u));x.appendChild(q);return x}var t=this,n=this.editorUi.editor.graph,u=[];b.style.position="relative";b.style.padding="0";var v=document.createElement("table");
+v.className="geProperties";v.style.whiteSpace="nowrap";v.style.width="100%";var y=document.createElement("tr");y.className="gePropHeader";var x=document.createElement("th");x.className="gePropHeaderCell";var q=document.createElement("img");q.src=Sidebar.prototype.expandedImage;q.style.verticalAlign="middle";x.appendChild(q);mxUtils.write(x,mxResources.get("property"));y.style.cursor="pointer";var B=function(){var d=v.querySelectorAll(".gePropNonHeaderRow"),c;if(t.editorUi.propertiesCollapsed){q.src=
+Sidebar.prototype.collapsedImage;c="none";for(var g=b.childNodes.length-1;0<=g;g--)try{var e=b.childNodes[g],k=e.nodeName.toUpperCase();"INPUT"!=k&&"SELECT"!=k||b.removeChild(e)}catch(wa){}}else q.src=Sidebar.prototype.expandedImage,c="";for(g=0;g<d.length;g++)d[g].style.display=c};mxEvent.addListener(y,"click",function(){t.editorUi.propertiesCollapsed=!t.editorUi.propertiesCollapsed;B()});y.appendChild(x);x=document.createElement("th");x.className="gePropHeaderCell";x.innerHTML=mxResources.get("value");
+y.appendChild(x);v.appendChild(y);var A=!1,M=!1,y=null;1==c.vertices.length&&0==c.edges.length?y=c.vertices[0].id:0==c.vertices.length&&1==c.edges.length&&(y=c.edges[0].id);null!=y&&v.appendChild(p("id",mxUtils.htmlEntities(y),{dispName:"ID",type:"readOnly"},!0,!1));for(var L in d)if(y=d[L],"function"!=typeof y.isVisible||y.isVisible(c,this)){var C=null!=c.style[L]?mxUtils.htmlEntities(c.style[L]+""):null!=y.getDefaultValue?y.getDefaultValue(c,this):y.defVal;if("separator"==y.type)M=!M;else{if("staticArr"==
+y.type)y.size=parseInt(c.style[y.sizeProperty]||d[y.sizeProperty].defVal)||0;else if(null!=y.dependentProps){for(var Q=y.dependentProps,K=[],E=[],x=0;x<Q.length;x++){var N=c.style[Q[x]];E.push(d[Q[x]].subDefVal);K.push(null!=N?N.split(","):[])}y.dependentPropsDefVal=E;y.dependentPropsVals=K}v.appendChild(p(L,C,y,A,M));A=!A}}for(x=0;x<u.length;x++)for(y=u[x],d=y.parentRow,c=0;c<y.values.length;c++)L=p(y.name,y.values[c],{type:y.type,parentRow:y.parentRow,isDeletable:y.isDeletable,index:c,defVal:y.defVal,
+countProperty:y.countProperty,size:y.size},0==c%2,y.flipBkg),d.parentNode.insertBefore(L,d.nextSibling),d=L;b.appendChild(v);B();return b};StyleFormatPanel.prototype.addStyles=function(b){function d(b){mxEvent.addListener(b,"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,"mouseleave",function(){b.style.opacity="0.5"})}var c=this.editorUi,g=c.editor.graph,e=document.createElement("div");e.style.whiteSpace="nowrap";e.style.paddingLeft="24px";e.style.paddingRight="20px";b.style.paddingLeft=
+"16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(e);var k="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.position="relative";f.style.textAlign="center";f.style.width="210px";for(var l=[],m=0;m<this.defaultColorSchemes.length;m++){var p=document.createElement("div");p.style.display=
+"inline-block";p.style.width="6px";p.style.height="6px";p.style.marginLeft="4px";p.style.marginRight="3px";p.style.borderRadius="3px";p.style.cursor="pointer";p.style.background="transparent";p.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(b){mxEvent.addListener(p,"click",mxUtils.bind(this,function(){t(b)}))})(m);l.push(p);f.appendChild(p)}var t=mxUtils.bind(this,function(b){null!=l[b]&&(null!=this.format.currentScheme&&null!=l[this.format.currentScheme]&&(l[this.format.currentScheme].style.background=
+"transparent"),this.format.currentScheme=b,n(this.defaultColorSchemes[this.format.currentScheme]),l[this.format.currentScheme].style.background="#84d7ff")}),n=mxUtils.bind(this,function(b){var d=mxUtils.bind(this,function(b){var d=mxUtils.button("",mxUtils.bind(this,function(d){g.getModel().beginUpdate();try{for(var e=c.getSelectionState().cells,f=0;f<e.length;f++){for(var l=g.getModel().getStyle(e[f]),m=0;m<k.length;m++)l=mxUtils.removeStylename(l,k[m]);var p=g.getModel().isVertex(e[f])?g.defaultVertexStyle:
+g.defaultEdgeStyle;null!=b?(mxEvent.isShiftDown(d)||(l=""==b.fill?mxUtils.setStyle(l,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(l,mxConstants.STYLE_FILLCOLOR,b.fill||mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,null)),l=mxUtils.setStyle(l,mxConstants.STYLE_GRADIENTCOLOR,b.gradient||mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isControlDown(d)||mxClient.IS_MAC&&mxEvent.isMetaDown(d)||!g.getModel().isVertex(e[f])||(l=mxUtils.setStyle(l,mxConstants.STYLE_FONTCOLOR,b.font||
+mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null)))),mxEvent.isAltDown(d)||(l=""==b.stroke?mxUtils.setStyle(l,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(l,mxConstants.STYLE_STROKECOLOR,b.stroke||mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,null)))):(l=mxUtils.setStyle(l,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,"#ffffff")),l=mxUtils.setStyle(l,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,"#000000")),l=mxUtils.setStyle(l,
+mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),g.getModel().isVertex(e[f])&&(l=mxUtils.setStyle(l,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null))));g.getModel().setStyle(e[f],l)}}finally{g.getModel().endUpdate()}}));d.className="geStyleButton";d.style.width="36px";d.style.height=10>=this.defaultColorSchemes.length?"24px":"30px";d.style.margin="0px 6px 6px 0px";if(null!=b){var f="1"==urlParams.sketch?"2px solid":"1px solid";
null!=b.gradient?mxClient.IS_IE&&10>document.documentMode?d.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+b.fill+"', EndColorStr='"+b.gradient+"', GradientType=0)":d.style.backgroundImage="linear-gradient("+b.fill+" 0px,"+b.gradient+" 100%)":b.fill==mxConstants.NONE?d.style.background="url('"+Dialog.prototype.noColorImage+"')":d.style.backgroundColor=""==b.fill?mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff"):
b.fill||mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff");d.style.border=b.stroke==mxConstants.NONE?f+" transparent":""==b.stroke?f+" "+mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":Editor.darkColor):f+" "+(b.stroke||mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":Editor.darkColor));null!=b.title&&d.setAttribute("title",b.title)}else{var f=
-mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),m=mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");d.style.backgroundColor=f;d.style.border="1px solid "+m}d.style.borderRadius="0";e.appendChild(d)});e.innerHTML="";for(var f=0;f<b.length;f++)0<f&&0==mxUtils.mod(f,4)&&mxUtils.br(e),d(b[f])});null==this.format.currentScheme?q(Editor.isDarkMode()?1:"1"==urlParams.sketch?5:0):q(this.format.currentScheme);var l=10>=this.defaultColorSchemes.length?
-28:8,u=document.createElement("div");u.style.cssText="position:absolute;left:10px;top:8px;bottom:"+l+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";mxEvent.addListener(u,
-"click",mxUtils.bind(this,function(){q(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var v=document.createElement("div");v.style.cssText="position:absolute;left:202px;top:8px;bottom:"+l+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
-1<this.defaultColorSchemes.length&&(b.appendChild(u),b.appendChild(v));mxEvent.addListener(v,"click",mxUtils.bind(this,function(){q(mxUtils.mod(this.format.currentScheme+1,this.defaultColorSchemes.length))}));d(u);d(v);n(this.defaultColorSchemes[this.format.currentScheme]);10>=this.defaultColorSchemes.length&&b.appendChild(f);return b};StyleFormatPanel.prototype.addEditOps=function(b){var d=this.editorUi.getSelectionState(),c=this.editorUi.editor.graph,g=null;1==d.cells.length&&(g=mxUtils.button(mxResources.get("editStyle"),
+mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),l=mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");d.style.backgroundColor=f;d.style.border="1px solid "+l}d.style.borderRadius="0";e.appendChild(d)});e.innerHTML="";for(var f=0;f<b.length;f++)0<f&&0==mxUtils.mod(f,4)&&mxUtils.br(e),d(b[f])});null==this.format.currentScheme?t(Editor.isDarkMode()?1:"1"==urlParams.sketch?5:0):t(this.format.currentScheme);var m=10>=this.defaultColorSchemes.length?
+28:8,u=document.createElement("div");u.style.cssText="position:absolute;left:10px;top:8px;bottom:"+m+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";mxEvent.addListener(u,
+"click",mxUtils.bind(this,function(){t(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var v=document.createElement("div");v.style.cssText="position:absolute;left:202px;top:8px;bottom:"+m+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
+1<this.defaultColorSchemes.length&&(b.appendChild(u),b.appendChild(v));mxEvent.addListener(v,"click",mxUtils.bind(this,function(){t(mxUtils.mod(this.format.currentScheme+1,this.defaultColorSchemes.length))}));d(u);d(v);n(this.defaultColorSchemes[this.format.currentScheme]);10>=this.defaultColorSchemes.length&&b.appendChild(f);return b};StyleFormatPanel.prototype.addEditOps=function(b){var d=this.editorUi.getSelectionState(),c=this.editorUi.editor.graph,g=null;1==d.cells.length&&(g=mxUtils.button(mxResources.get("editStyle"),
mxUtils.bind(this,function(b){this.editorUi.actions.get("editStyle").funct()})),g.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),g.style.width="210px",g.style.marginBottom="2px",b.appendChild(g));c=1==d.cells.length?c.view.getState(d.cells[0]):null;null!=c&&null!=c.shape&&null!=c.shape.stencil?(d=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(b){this.editorUi.actions.get("editShape").funct()})),d.setAttribute("title",
mxResources.get("editShape")),d.style.marginBottom="2px",null==g?d.style.width="210px":(g.style.width="104px",d.style.width="104px",d.style.marginLeft="2px"),b.appendChild(d)):d.image&&0<d.cells.length&&(d=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(b){this.editorUi.actions.get("image").funct()})),d.setAttribute("title",mxResources.get("editImage")),d.style.marginBottom="2px",null==g?d.style.width="210px":(g.style.width="104px",d.style.width="104px",d.style.marginLeft="2px"),
b.appendChild(d));return b}}Graph.fontMapping={"https://fonts.googleapis.com/css?family=Architects+Daughter":'@font-face { font-family: "Architects Daughter"; src: url('+STYLE_PATH+'/fonts/ArchitectsDaughter-Regular.ttf) format("truetype"); }'};Graph.customFontElements={};Graph.recentCustomFonts={};Graph.isGoogleFontUrl=function(b){return b.substring(0,Editor.GOOGLE_FONTS.length)==Editor.GOOGLE_FONTS};Graph.isCssFontUrl=function(b){return Graph.isGoogleFontUrl(b)};Graph.createFontElement=function(b,
@@ -3339,44 +3339,44 @@ return b};Graph.getFontUrl=function(b,d){var c=Graph.customFontElements[b.toLowe
mxConstants.STYLE_FONTFAMILY,null);null!=c&&Graph.addFont(c,decodeURIComponent(d))}}return b};Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible="0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity="0.4";Graph.prototype.svgShadowBlur="1.7";Graph.prototype.svgShadowSize="3";
Graph.prototype.edgeMode="move"!=urlParams.edge;Graph.prototype.hiddenTags=null;Graph.prototype.defaultMathEnabled=!1;var x=Graph.prototype.init;Graph.prototype.init=function(){function b(b){d=b}x.apply(this,arguments);this.hiddenTags=[];window.mxFreehand&&(this.freehand=new mxFreehand(this));var d=null;mxEvent.addListener(this.container,"mouseenter",b);mxEvent.addListener(this.container,"mousemove",b);mxEvent.addListener(this.container,"mouseleave",function(b){d=null});this.isMouseInsertPoint=function(){return null!=
d};var c=this.getInsertPoint;this.getInsertPoint=function(){return null!=d?this.getPointForEvent(d):c.apply(this,arguments)};var g=this.layoutManager.getLayout;this.layoutManager.getLayout=function(b){var d=this.graph.getCellStyle(b);if(null!=d&&"rack"==d.childLayout){var c=new mxStackLayout(this.graph,!1);c.gridSize=null!=d.rackUnitSize?parseFloat(d.rackUnitSize):"undefined"!==typeof mxRackContainer?mxRackContainer.unitSize:20;c.marginLeft=d.marginLeft||0;c.marginRight=d.marginRight||0;c.marginTop=
-d.marginTop||0;c.marginBottom=d.marginBottom||0;c.allowGaps=d.allowGaps||0;c.horizontal="1"==mxUtils.getValue(d,"horizontalRack","0");c.resizeParent=!1;c.fill=!0;return c}return g.apply(this,arguments)};this.updateGlobalUrlVariables()};var y=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=function(b,d){return Graph.processFontStyle(y.apply(this,arguments))};var G=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,d,c,g,e,k,f,m,l,p,
-q){G.apply(this,arguments);Graph.processFontAttributes(q)};var H=mxText.prototype.redraw;mxText.prototype.redraw=function(){H.apply(this,arguments);null!=this.node&&"DIV"==this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.createTagsDialog=function(b,d,c){function g(){for(var b=f.getSelectionCells(),d=[],c=0;c<b.length;c++)f.isCellVisible(b[c])&&d.push(b[c]);f.setSelectionCells(d)}function e(b){f.hiddenTags=b?[]:m.slice();g();f.refresh()}function k(b,c){p.innerHTML="";if(0<
-b.length){var k=document.createElement("table");k.setAttribute("cellpadding","2");k.style.boxSizing="border-box";k.style.tableLayout="fixed";k.style.width="100%";var l=document.createElement("tbody");if(null!=b&&0<b.length)for(var q=0;q<b.length;q++)(function(b){var k=0>mxUtils.indexOf(f.hiddenTags,b),p=document.createElement("tr"),q=document.createElement("td");q.style.align="center";q.style.width="16px";var n=document.createElement("img");n.setAttribute("src",k?Editor.visibleImage:Editor.hiddenImage);
-n.setAttribute("title",mxResources.get(k?"hideIt":"show",[b]));mxUtils.setOpacity(n,k?75:25);n.style.verticalAlign="middle";n.style.cursor="pointer";n.style.width="16px";if(d||Editor.isDarkMode())n.style.filter="invert(100%)";q.appendChild(n);mxEvent.addListener(n,"click",function(d){var c=mxUtils.indexOf(f.hiddenTags,b);mxEvent.isShiftDown(d)?e(0<=mxUtils.indexOf(f.hiddenTags,b)):(0>c?f.hiddenTags.push(b):0<=c&&f.hiddenTags.splice(c,1),g(),f.refresh());mxEvent.consume(d)});p.appendChild(q);q=document.createElement("td");
-q.style.overflow="hidden";q.style.whiteSpace="nowrap";q.style.textOverflow="ellipsis";q.style.verticalAlign="middle";q.style.cursor="pointer";q.setAttribute("title",b);a=document.createElement("a");mxUtils.write(a,b);a.style.textOverflow="ellipsis";a.style.position="relative";mxUtils.setOpacity(a,k?100:40);q.appendChild(a);mxEvent.addListener(q,"click",function(d){if(mxEvent.isShiftDown(d)){e(!0);var c=f.getCellsForTags([b],null,null,!0);f.isEnabled()?f.setSelectionCells(c):f.highlightCells(c)}else if(k&&
-0<f.hiddenTags.length)e(!0);else{var c=m.slice(),l=mxUtils.indexOf(c,b);c.splice(l,1);f.hiddenTags=c;g();f.refresh()}mxEvent.consume(d)});p.appendChild(q);if(f.isEnabled()){q=document.createElement("td");q.style.verticalAlign="middle";q.style.textAlign="center";q.style.width="18px";if(null==c){q.style.align="center";q.style.width="16px";n=document.createElement("img");n.setAttribute("src",Editor.crossImage);n.setAttribute("title",mxResources.get("removeIt",[b]));mxUtils.setOpacity(n,k?75:25);n.style.verticalAlign=
-"middle";n.style.cursor="pointer";n.style.width="16px";if(d||Editor.isDarkMode())n.style.filter="invert(100%)";mxEvent.addListener(n,"click",function(d){var c=mxUtils.indexOf(m,b);0<=c&&m.splice(c,1);f.removeTagsForCells(f.model.getDescendants(f.model.getRoot()),[b]);f.refresh();mxEvent.consume(d)});q.appendChild(n)}else{var u=document.createElement("input");u.setAttribute("type","checkbox");u.style.margin="0px";u.defaultChecked=null!=c&&0<=mxUtils.indexOf(c,b);u.checked=u.defaultChecked;u.style.background=
-"transparent";u.setAttribute("title",mxResources.get(u.defaultChecked?"removeIt":"add",[b]));mxEvent.addListener(u,"change",function(d){u.checked?f.addTagsForCells(f.getSelectionCells(),[b]):f.removeTagsForCells(f.getSelectionCells(),[b]);mxEvent.consume(d)});q.appendChild(u)}p.appendChild(q)}l.appendChild(p)})(b[q]);k.appendChild(l);p.appendChild(k)}}var f=this,m=f.hiddenTags.slice(),l=document.createElement("div");l.style.userSelect="none";l.style.overflow="hidden";l.style.padding="10px";l.style.height=
-"100%";var p=document.createElement("div");p.style.boxSizing="border-box";p.style.borderRadius="4px";p.style.userSelect="none";p.style.overflow="auto";p.style.position="absolute";p.style.left="10px";p.style.right="10px";p.style.top="10px";p.style.border=f.isEnabled()?"1px solid #808080":"none";p.style.bottom=f.isEnabled()?"48px":"10px";l.appendChild(p);var q=mxUtils.button(mxResources.get("reset"),function(b){f.hiddenTags=[];mxEvent.isShiftDown(b)||(m=f.hiddenTags.slice());g();f.refresh()});q.setAttribute("title",
-mxResources.get("reset"));q.className="geBtn";q.style.margin="0 4px 0 0";var n=mxUtils.button(mxResources.get("add"),function(){null!=c&&c(m,function(b){m=b;u()})});n.setAttribute("title",mxResources.get("add"));n.className="geBtn";n.style.margin="0";f.addListener(mxEvent.ROOT,function(){m=f.hiddenTags.slice()});var u=mxUtils.bind(this,function(d,c){if(b()){for(var g=f.getAllTags(),e=0;e<g.length;e++)0>mxUtils.indexOf(m,g[e])&&m.push(g[e]);m.sort();f.isSelectionEmpty()?k(m):k(m,f.getCommonTagsForCells(f.getSelectionCells()))}});
-f.selectionModel.addListener(mxEvent.CHANGE,u);f.model.addListener(mxEvent.CHANGE,u);f.addListener(mxEvent.REFRESH,u);var v=document.createElement("div");v.style.boxSizing="border-box";v.style.whiteSpace="nowrap";v.style.position="absolute";v.style.overflow="hidden";v.style.bottom="0px";v.style.height="42px";v.style.right="10px";v.style.left="10px";f.isEnabled()&&(v.appendChild(q),v.appendChild(n),l.appendChild(v));return{div:l,refresh:u}};Graph.prototype.getCustomFonts=function(){var b=this.extFonts,
+d.marginTop||0;c.marginBottom=d.marginBottom||0;c.allowGaps=d.allowGaps||0;c.horizontal="1"==mxUtils.getValue(d,"horizontalRack","0");c.resizeParent=!1;c.fill=!0;return c}return g.apply(this,arguments)};this.updateGlobalUrlVariables()};var y=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=function(b,d){return Graph.processFontStyle(y.apply(this,arguments))};var G=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,d,c,g,e,k,f,l,m,p,
+t){G.apply(this,arguments);Graph.processFontAttributes(t)};var H=mxText.prototype.redraw;mxText.prototype.redraw=function(){H.apply(this,arguments);null!=this.node&&"DIV"==this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.createTagsDialog=function(b,d,c){function g(){for(var b=f.getSelectionCells(),d=[],c=0;c<b.length;c++)f.isCellVisible(b[c])&&d.push(b[c]);f.setSelectionCells(d)}function e(b){f.hiddenTags=b?[]:l.slice();g();f.refresh()}function k(b,c){p.innerHTML="";if(0<
+b.length){var k=document.createElement("table");k.setAttribute("cellpadding","2");k.style.boxSizing="border-box";k.style.tableLayout="fixed";k.style.width="100%";var m=document.createElement("tbody");if(null!=b&&0<b.length)for(var t=0;t<b.length;t++)(function(b){var k=0>mxUtils.indexOf(f.hiddenTags,b),p=document.createElement("tr"),t=document.createElement("td");t.style.align="center";t.style.width="16px";var n=document.createElement("img");n.setAttribute("src",k?Editor.visibleImage:Editor.hiddenImage);
+n.setAttribute("title",mxResources.get(k?"hideIt":"show",[b]));mxUtils.setOpacity(n,k?75:25);n.style.verticalAlign="middle";n.style.cursor="pointer";n.style.width="16px";if(d||Editor.isDarkMode())n.style.filter="invert(100%)";t.appendChild(n);mxEvent.addListener(n,"click",function(d){var c=mxUtils.indexOf(f.hiddenTags,b);mxEvent.isShiftDown(d)?e(0<=mxUtils.indexOf(f.hiddenTags,b)):(0>c?f.hiddenTags.push(b):0<=c&&f.hiddenTags.splice(c,1),g(),f.refresh());mxEvent.consume(d)});p.appendChild(t);t=document.createElement("td");
+t.style.overflow="hidden";t.style.whiteSpace="nowrap";t.style.textOverflow="ellipsis";t.style.verticalAlign="middle";t.style.cursor="pointer";t.setAttribute("title",b);a=document.createElement("a");mxUtils.write(a,b);a.style.textOverflow="ellipsis";a.style.position="relative";mxUtils.setOpacity(a,k?100:40);t.appendChild(a);mxEvent.addListener(t,"click",function(d){if(mxEvent.isShiftDown(d)){e(!0);var c=f.getCellsForTags([b],null,null,!0);f.isEnabled()?f.setSelectionCells(c):f.highlightCells(c)}else if(k&&
+0<f.hiddenTags.length)e(!0);else{var c=l.slice(),m=mxUtils.indexOf(c,b);c.splice(m,1);f.hiddenTags=c;g();f.refresh()}mxEvent.consume(d)});p.appendChild(t);if(f.isEnabled()){t=document.createElement("td");t.style.verticalAlign="middle";t.style.textAlign="center";t.style.width="18px";if(null==c){t.style.align="center";t.style.width="16px";n=document.createElement("img");n.setAttribute("src",Editor.crossImage);n.setAttribute("title",mxResources.get("removeIt",[b]));mxUtils.setOpacity(n,k?75:25);n.style.verticalAlign=
+"middle";n.style.cursor="pointer";n.style.width="16px";if(d||Editor.isDarkMode())n.style.filter="invert(100%)";mxEvent.addListener(n,"click",function(d){var c=mxUtils.indexOf(l,b);0<=c&&l.splice(c,1);f.removeTagsForCells(f.model.getDescendants(f.model.getRoot()),[b]);f.refresh();mxEvent.consume(d)});t.appendChild(n)}else{var u=document.createElement("input");u.setAttribute("type","checkbox");u.style.margin="0px";u.defaultChecked=null!=c&&0<=mxUtils.indexOf(c,b);u.checked=u.defaultChecked;u.style.background=
+"transparent";u.setAttribute("title",mxResources.get(u.defaultChecked?"removeIt":"add",[b]));mxEvent.addListener(u,"change",function(d){u.checked?f.addTagsForCells(f.getSelectionCells(),[b]):f.removeTagsForCells(f.getSelectionCells(),[b]);mxEvent.consume(d)});t.appendChild(u)}p.appendChild(t)}m.appendChild(p)})(b[t]);k.appendChild(m);p.appendChild(k)}}var f=this,l=f.hiddenTags.slice(),m=document.createElement("div");m.style.userSelect="none";m.style.overflow="hidden";m.style.padding="10px";m.style.height=
+"100%";var p=document.createElement("div");p.style.boxSizing="border-box";p.style.borderRadius="4px";p.style.userSelect="none";p.style.overflow="auto";p.style.position="absolute";p.style.left="10px";p.style.right="10px";p.style.top="10px";p.style.border=f.isEnabled()?"1px solid #808080":"none";p.style.bottom=f.isEnabled()?"48px":"10px";m.appendChild(p);var t=mxUtils.button(mxResources.get("reset"),function(b){f.hiddenTags=[];mxEvent.isShiftDown(b)||(l=f.hiddenTags.slice());g();f.refresh()});t.setAttribute("title",
+mxResources.get("reset"));t.className="geBtn";t.style.margin="0 4px 0 0";var n=mxUtils.button(mxResources.get("add"),function(){null!=c&&c(l,function(b){l=b;u()})});n.setAttribute("title",mxResources.get("add"));n.className="geBtn";n.style.margin="0";f.addListener(mxEvent.ROOT,function(){l=f.hiddenTags.slice()});var u=mxUtils.bind(this,function(d,c){if(b()){for(var g=f.getAllTags(),e=0;e<g.length;e++)0>mxUtils.indexOf(l,g[e])&&l.push(g[e]);l.sort();f.isSelectionEmpty()?k(l):k(l,f.getCommonTagsForCells(f.getSelectionCells()))}});
+f.selectionModel.addListener(mxEvent.CHANGE,u);f.model.addListener(mxEvent.CHANGE,u);f.addListener(mxEvent.REFRESH,u);var v=document.createElement("div");v.style.boxSizing="border-box";v.style.whiteSpace="nowrap";v.style.position="absolute";v.style.overflow="hidden";v.style.bottom="0px";v.style.height="42px";v.style.right="10px";v.style.left="10px";f.isEnabled()&&(v.appendChild(t),v.appendChild(n),m.appendChild(v));return{div:m,refresh:u}};Graph.prototype.getCustomFonts=function(){var b=this.extFonts,
b=null!=b?b.slice():[],d;for(d in Graph.customFontElements){var c=Graph.customFontElements[d];b.push({name:c.name,url:c.url})}return b};Graph.prototype.setFont=function(b,d){Graph.addFont(b,d);document.execCommand("fontname",!1,b);if(null!=d){var c=this.cellEditor.textarea.getElementsByTagName("font");d=Graph.getFontUrl(b,d);for(var g=0;g<c.length;g++)c[g].getAttribute("face")==b&&c[g].getAttribute("data-font-src")!=d&&c[g].setAttribute("data-font-src",d)}};var D=Graph.prototype.isFastZoomEnabled;
Graph.prototype.isFastZoomEnabled=function(){return D.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};var b=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=b)for(var d in b)this.globalVars[d]=b[d]}catch(K){null!=window.console&&console.log("Error in vars URL parameter: "+K)}};Graph.prototype.getExportVariables=
function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var F=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var d=F.apply(this,arguments);null==d&&null!=this.globalVars&&(d=this.globalVars[b]);return d};Graph.prototype.getDefaultStylesheet=function(){if(null==this.defaultStylesheet){var b=this.themes["default-style2"];this.defaultStylesheet=(new mxCodec(b.ownerDocument)).decode(b)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};
-var O=Graph.prototype.getSvg;Graph.prototype.getSvg=function(b,d,c,g,e,k,f,m,l,p,q,n,u,v){var y=null,x=null,t=null;n||null==this.themes||"darkTheme"!=this.defaultThemeName||(y=this.stylesheet,x=this.shapeForegroundColor,t=this.shapeBackgroundColor,this.shapeForegroundColor="darkTheme"==this.defaultThemeName?"#000000":Editor.lightColor,this.shapeBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":Editor.darkColor,this.stylesheet=this.getDefaultStylesheet(),this.refresh());var A=O.apply(this,
-arguments),B=this.getCustomFonts();if(q&&0<B.length){var M=A.ownerDocument,C=null!=M.createElementNS?M.createElementNS(mxConstants.NS_SVG,"style"):M.createElement("style");null!=M.setAttributeNS?C.setAttributeNS("type","text/css"):C.setAttribute("type","text/css");for(var Q="",I="",E=0;E<B.length;E++){var N=B[E].name,J=B[E].url;Graph.isCssFontUrl(J)?Q+="@import url("+J+");\n":I+='@font-face {\nfont-family: "'+N+'";\nsrc: url("'+J+'");\n}\n'}C.appendChild(M.createTextNode(Q+I));A.getElementsByTagName("defs")[0].appendChild(C)}null!=
-y&&(this.shapeBackgroundColor=t,this.shapeForegroundColor=x,this.stylesheet=y,this.refresh());return A};var A=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var b=A.apply(this,arguments);if(this.mathEnabled){var d=b.drawText;b.drawText=function(b,c){if(null!=b.text&&null!=b.text.value&&b.text.checkBounds()&&(mxUtils.isNode(b.text.value)||b.text.dialect==mxConstants.DIALECT_STRICTHTML)){var g=b.text.getContentNode();if(null!=g){g=g.cloneNode(!0);if(g.getElementsByTagNameNS)for(var e=
+var O=Graph.prototype.getSvg;Graph.prototype.getSvg=function(b,d,c,g,e,k,f,l,m,p,t,n,u,v){var y=null,x=null,q=null;n||null==this.themes||"darkTheme"!=this.defaultThemeName||(y=this.stylesheet,x=this.shapeForegroundColor,q=this.shapeBackgroundColor,this.shapeForegroundColor="darkTheme"==this.defaultThemeName?"#000000":Editor.lightColor,this.shapeBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":Editor.darkColor,this.stylesheet=this.getDefaultStylesheet(),this.refresh());var A=O.apply(this,
+arguments),B=this.getCustomFonts();if(t&&0<B.length){var M=A.ownerDocument,C=null!=M.createElementNS?M.createElementNS(mxConstants.NS_SVG,"style"):M.createElement("style");null!=M.setAttributeNS?C.setAttributeNS("type","text/css"):C.setAttribute("type","text/css");for(var Q="",I="",E=0;E<B.length;E++){var N=B[E].name,J=B[E].url;Graph.isCssFontUrl(J)?Q+="@import url("+J+");\n":I+='@font-face {\nfont-family: "'+N+'";\nsrc: url("'+J+'");\n}\n'}C.appendChild(M.createTextNode(Q+I));A.getElementsByTagName("defs")[0].appendChild(C)}null!=
+y&&(this.shapeBackgroundColor=q,this.shapeForegroundColor=x,this.stylesheet=y,this.refresh());return A};var A=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var b=A.apply(this,arguments);if(this.mathEnabled){var d=b.drawText;b.drawText=function(b,c){if(null!=b.text&&null!=b.text.value&&b.text.checkBounds()&&(mxUtils.isNode(b.text.value)||b.text.dialect==mxConstants.DIALECT_STRICTHTML)){var g=b.text.getContentNode();if(null!=g){g=g.cloneNode(!0);if(g.getElementsByTagNameNS)for(var e=
g.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<e.length;)e[0].parentNode.removeChild(e[0]);null!=g.innerHTML&&(e=b.text.value,b.text.value=g.innerHTML,d.apply(this,arguments),b.text.value=e)}}else d.apply(this,arguments)}}return b};var C=mxCellRenderer.prototype.destroy;mxCellRenderer.prototype.destroy=function(b){C.apply(this,arguments);null!=b.secondLabel&&(b.secondLabel.destroy(),b.secondLabel=null)};mxCellRenderer.prototype.getShapesForState=function(b){return[b.shape,
-b.text,b.secondLabel,b.control]};var E=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){E.apply(this,arguments);this.enumerationState=0};var L=mxGraphView.prototype.stateValidated;mxGraphView.prototype.stateValidated=function(b){null!=b.shape&&this.redrawEnumerationState(b);return L.apply(this,arguments)};mxGraphView.prototype.createEnumerationValue=function(b){b=decodeURIComponent(mxUtils.getValue(b.style,"enumerateValue",""));""==b&&(b=++this.enumerationState);
+b.text,b.secondLabel,b.control]};var E=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){E.apply(this,arguments);this.enumerationState=0};var J=mxGraphView.prototype.stateValidated;mxGraphView.prototype.stateValidated=function(b){null!=b.shape&&this.redrawEnumerationState(b);return J.apply(this,arguments)};mxGraphView.prototype.createEnumerationValue=function(b){b=decodeURIComponent(mxUtils.getValue(b.style,"enumerateValue",""));""==b&&(b=++this.enumerationState);
return'<div style="padding:2px;border:1px solid gray;background:yellow;border-radius:2px;">'+mxUtils.htmlEntities(b)+"</div>"};mxGraphView.prototype.redrawEnumerationState=function(b){var d="1"==mxUtils.getValue(b.style,"enumerate",0);d&&null==b.secondLabel?(b.secondLabel=new mxText("",new mxRectangle,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM),b.secondLabel.size=12,b.secondLabel.state=b,b.secondLabel.dialect=mxConstants.DIALECT_STRICTHTML,this.graph.cellRenderer.initializeLabel(b,b.secondLabel)):
d||null==b.secondLabel||(b.secondLabel.destroy(),b.secondLabel=null);d=b.secondLabel;if(null!=d){var c=b.view.scale,g=this.createEnumerationValue(b);b=this.graph.model.isVertex(b.cell)?new mxRectangle(b.x+b.width-4*c,b.y+4*c,0,0):mxRectangle.fromPoint(b.view.getPoint(b));d.bounds.equals(b)&&d.value==g&&d.scale==c||(d.bounds=b,d.value=g,d.scale=c,d.redraw())}};var N=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){N.apply(this,arguments);if(mxClient.IS_GC&&
null!=this.getDrawPane()){var b=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),
this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),this.webKitForceRepaintNode.style.cssText="position:absolute;",b.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,b.ownerSVGElement))}};var M=Graph.prototype.refresh;Graph.prototype.refresh=function(){M.apply(this,arguments);this.refreshBackgroundImage()};Graph.prototype.refreshBackgroundImage=function(){null!=this.backgroundImage&&null!=this.backgroundImage.originalSrc&&(this.setBackgroundImage(this.backgroundImage),
this.view.validateBackgroundImage())};var Q=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){Q.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(b){"data:action/json,"==b.substring(0,17)&&(b=JSON.parse(b.substring(17)),null!=b.actions&&this.executeCustomActions(b.actions))};Graph.prototype.executeCustomActions=function(b,d){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),
-null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var c=!1,g=0,e=0,k=mxUtils.bind(this,function(){c||(c=!0,this.model.beginUpdate())}),f=mxUtils.bind(this,function(){c&&(c=!1,this.model.endUpdate())}),m=mxUtils.bind(this,function(){0<g&&g--;0==g&&l()}),l=mxUtils.bind(this,function(){if(e<b.length){var c=this.stoppingCustomActions,p=b[e++],q=[];if(null!=p.open)if(f(),this.isCustomLink(p.open)){if(!this.customLinkClicked(p.open))return}else this.openLink(p.open);
-null==p.wait||c||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;m()}),g++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,""!=p.wait?parseInt(p.wait):1E3),f());null!=p.opacity&&null!=p.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(p.opacity,!0)),p.opacity.value);null!=p.fadeIn&&(g++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(p.fadeIn,!0)),0,1,m,c?0:
-p.fadeIn.delay));null!=p.fadeOut&&(g++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(p.fadeOut,!0)),1,0,m,c?0:p.fadeOut.delay));null!=p.wipeIn&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(p.wipeIn,!0),!0)));null!=p.wipeOut&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(p.wipeOut,!0),!1)));null!=p.toggle&&(k(),this.toggleCells(this.getCellsForAction(p.toggle,!0)));if(null!=p.show){k();var n=this.getCellsForAction(p.show,!0);Graph.setOpacityForNodes(this.getNodesForCells(n),
+null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var c=!1,g=0,e=0,k=mxUtils.bind(this,function(){c||(c=!0,this.model.beginUpdate())}),f=mxUtils.bind(this,function(){c&&(c=!1,this.model.endUpdate())}),l=mxUtils.bind(this,function(){0<g&&g--;0==g&&m()}),m=mxUtils.bind(this,function(){if(e<b.length){var c=this.stoppingCustomActions,p=b[e++],t=[];if(null!=p.open)if(f(),this.isCustomLink(p.open)){if(!this.customLinkClicked(p.open))return}else this.openLink(p.open);
+null==p.wait||c||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;l()}),g++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,""!=p.wait?parseInt(p.wait):1E3),f());null!=p.opacity&&null!=p.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(p.opacity,!0)),p.opacity.value);null!=p.fadeIn&&(g++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(p.fadeIn,!0)),0,1,l,c?0:
+p.fadeIn.delay));null!=p.fadeOut&&(g++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(p.fadeOut,!0)),1,0,l,c?0:p.fadeOut.delay));null!=p.wipeIn&&(t=t.concat(this.createWipeAnimations(this.getCellsForAction(p.wipeIn,!0),!0)));null!=p.wipeOut&&(t=t.concat(this.createWipeAnimations(this.getCellsForAction(p.wipeOut,!0),!1)));null!=p.toggle&&(k(),this.toggleCells(this.getCellsForAction(p.toggle,!0)));if(null!=p.show){k();var n=this.getCellsForAction(p.show,!0);Graph.setOpacityForNodes(this.getNodesForCells(n),
1);this.setCellsVisible(n,!0)}null!=p.hide&&(k(),n=this.getCellsForAction(p.hide,!0),Graph.setOpacityForNodes(this.getNodesForCells(n),0),this.setCellsVisible(n,!1));null!=p.toggleStyle&&null!=p.toggleStyle.key&&(k(),this.toggleCellStyles(p.toggleStyle.key,null!=p.toggleStyle.defaultValue?p.toggleStyle.defaultValue:"0",this.getCellsForAction(p.toggleStyle,!0)));null!=p.style&&null!=p.style.key&&(k(),this.setCellStyles(p.style.key,p.style.value,this.getCellsForAction(p.style,!0)));n=[];null!=p.select&&
this.isEnabled()&&(n=this.getCellsForAction(p.select),this.setSelectionCells(n));null!=p.highlight&&(n=this.getCellsForAction(p.highlight),this.highlightCells(n,p.highlight.color,p.highlight.duration,p.highlight.opacity));null!=p.scroll&&(n=this.getCellsForAction(p.scroll));null!=p.viewbox&&this.fitWindow(p.viewbox,p.viewbox.border);0<n.length&&this.scrollCellToVisible(n[0]);if(null!=p.tags){n=[];null!=p.tags.hidden&&(n=n.concat(p.tags.hidden));if(null!=p.tags.visible)for(var u=this.getAllTags(),
-v=0;v<u.length;v++)0>mxUtils.indexOf(p.tags.visible,u[v])&&0>mxUtils.indexOf(n,u[v])&&n.push(u[v]);this.hiddenTags=n;this.refresh()}0<q.length&&(g++,this.executeAnimations(q,m,c?1:p.steps,c?0:p.delay));0==g?l():f()}else this.stoppingCustomActions=this.executingCustomActions=!1,f(),null!=d&&d()});l()}};Graph.prototype.doUpdateCustomLinksForCell=function(b,d){var c=this.getLinkForCell(d);null!=c&&"data:action/json,"==c.substring(0,17)&&this.setLinkForCell(d,this.updateCustomLink(b,c));if(this.isHtmlLabel(d)){var g=
+v=0;v<u.length;v++)0>mxUtils.indexOf(p.tags.visible,u[v])&&0>mxUtils.indexOf(n,u[v])&&n.push(u[v]);this.hiddenTags=n;this.refresh()}0<t.length&&(g++,this.executeAnimations(t,l,c?1:p.steps,c?0:p.delay));0==g?m():f()}else this.stoppingCustomActions=this.executingCustomActions=!1,f(),null!=d&&d()});m()}};Graph.prototype.doUpdateCustomLinksForCell=function(b,d){var c=this.getLinkForCell(d);null!=c&&"data:action/json,"==c.substring(0,17)&&this.setLinkForCell(d,this.updateCustomLink(b,c));if(this.isHtmlLabel(d)){var g=
document.createElement("div");g.innerHTML=this.sanitizeHtml(this.getLabel(d));for(var e=g.getElementsByTagName("a"),k=!1,f=0;f<e.length;f++)c=e[f].getAttribute("href"),null!=c&&"data:action/json,"==c.substring(0,17)&&(e[f].setAttribute("href",this.updateCustomLink(b,c)),k=!0);k&&this.labelChanged(d,g.innerHTML)}};Graph.prototype.updateCustomLink=function(b,d){if("data:action/json,"==d.substring(0,17))try{var c=JSON.parse(d.substring(17));null!=c.actions&&(this.updateCustomLinkActions(b,c.actions),
d="data:action/json,"+JSON.stringify(c))}catch(W){}return d};Graph.prototype.updateCustomLinkActions=function(b,d){for(var c=0;c<d.length;c++){var g=d[c],e;for(e in g)this.updateCustomLinkAction(b,g[e],"cells"),this.updateCustomLinkAction(b,g[e],"excludeCells")}};Graph.prototype.updateCustomLinkAction=function(b,d,c){if(null!=d&&null!=d[c]){for(var g=[],e=0;e<d[c].length;e++)if("*"==d[c][e])g.push(d[c][e]);else{var k=b[d[c][e]];null!=k?""!=k&&g.push(k):g.push(d[c][e])}d[c]=g}};Graph.prototype.getCellsForAction=
function(b,d){var c=this.getCellsById(b.cells).concat(this.getCellsForTags(b.tags,null,d));if(null!=b.excludeCells){for(var g=[],e=0;e<c.length;e++)0>b.excludeCells.indexOf(c[e].id)&&g.push(c[e]);c=g}return c};Graph.prototype.getCellsById=function(b){var d=[];if(null!=b)for(var c=0;c<b.length;c++)if("*"==b[c])var g=this.model.getRoot(),d=d.concat(this.model.filterDescendants(function(b){return b!=g},g));else{var e=this.model.getCell(b[c]);null!=e&&d.push(e)}return d};var V=Graph.prototype.isCellVisible;
Graph.prototype.isCellVisible=function(b){return V.apply(this,arguments)&&!this.isAllTagsHidden(this.getTagsForCell(b))};Graph.prototype.isAllTagsHidden=function(b){if(null==b||0==b.length||0==this.hiddenTags.length)return!1;b=b.split(" ");if(b.length>this.hiddenTags.length)return!1;for(var d=0;d<b.length;d++)if(0>mxUtils.indexOf(this.hiddenTags,b[d]))return!1;return!0};Graph.prototype.getCellsForTags=function(b,d,c,g){var e=[];if(null!=b){d=null!=d?d:this.model.getDescendants(this.model.getRoot());
-for(var k=0,f={},m=0;m<b.length;m++)0<b[m].length&&(f[b[m]]=!0,k++);for(m=0;m<d.length;m++)if(c&&this.model.getParent(d[m])==this.model.root||this.model.isVertex(d[m])||this.model.isEdge(d[m])){var l=this.getTagsForCell(d[m]),p=!1;if(0<l.length&&(l=l.split(" "),l.length>=b.length)){for(var q=p=0;q<l.length&&p<k;q++)null!=f[l[q]]&&p++;p=p==k}p&&(1!=g||this.isCellVisible(d[m]))&&e.push(d[m])}}return e};Graph.prototype.getAllTags=function(){return this.getTagsForCells(this.model.getDescendants(this.model.getRoot()))};
+for(var k=0,f={},l=0;l<b.length;l++)0<b[l].length&&(f[b[l]]=!0,k++);for(l=0;l<d.length;l++)if(c&&this.model.getParent(d[l])==this.model.root||this.model.isVertex(d[l])||this.model.isEdge(d[l])){var m=this.getTagsForCell(d[l]),p=!1;if(0<m.length&&(m=m.split(" "),m.length>=b.length)){for(var t=p=0;t<m.length&&p<k;t++)null!=f[m[t]]&&p++;p=p==k}p&&(1!=g||this.isCellVisible(d[l]))&&e.push(d[l])}}return e};Graph.prototype.getAllTags=function(){return this.getTagsForCells(this.model.getDescendants(this.model.getRoot()))};
Graph.prototype.getCommonTagsForCells=function(b){for(var d=null,c=[],g=0;g<b.length;g++){var e=this.getTagsForCell(b[g]),c=[];if(0<e.length){for(var e=e.split(" "),k={},f=0;f<e.length;f++)if(null==d||null!=d[e[f]])k[e[f]]=!0,c.push(e[f]);d=k}else return[]}return c};Graph.prototype.getTagsForCells=function(b){for(var d=[],c={},g=0;g<b.length;g++){var e=this.getTagsForCell(b[g]);if(0<e.length)for(var e=e.split(" "),k=0;k<e.length;k++)null==c[e[k]]&&(c[e[k]]=!0,d.push(e[k]))}return d};Graph.prototype.getTagsForCell=
-function(b){return this.getAttributeForCell(b,"tags","")};Graph.prototype.addTagsForCells=function(b,d){if(0<b.length&&0<d.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){for(var g=this.getTagsForCell(b[c]),e=g.split(" "),k=!1,f=0;f<d.length;f++){var m=mxUtils.trim(d[f]);""!=m&&0>mxUtils.indexOf(e,m)&&(g=0<g.length?g+" "+m:m,k=!0)}k&&this.setAttributeForCell(b[c],"tags",g)}}finally{this.model.endUpdate()}}};Graph.prototype.removeTagsForCells=function(b,d){if(0<b.length&&0<d.length){this.model.beginUpdate();
-try{for(var c=0;c<b.length;c++){var g=this.getTagsForCell(b[c]);if(0<g.length){for(var e=g.split(" "),k=!1,f=0;f<d.length;f++){var m=mxUtils.indexOf(e,d[f]);0<=m&&(e.splice(m,1),k=!0)}k&&this.setAttributeForCell(b[c],"tags",e.join(" "))}}}finally{this.model.endUpdate()}}};Graph.prototype.toggleCells=function(b){this.model.beginUpdate();try{for(var d=0;d<b.length;d++)this.model.setVisible(b[d],!this.model.isVisible(b[d]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(b,
+function(b){return this.getAttributeForCell(b,"tags","")};Graph.prototype.addTagsForCells=function(b,d){if(0<b.length&&0<d.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){for(var g=this.getTagsForCell(b[c]),e=g.split(" "),k=!1,f=0;f<d.length;f++){var l=mxUtils.trim(d[f]);""!=l&&0>mxUtils.indexOf(e,l)&&(g=0<g.length?g+" "+l:l,k=!0)}k&&this.setAttributeForCell(b[c],"tags",g)}}finally{this.model.endUpdate()}}};Graph.prototype.removeTagsForCells=function(b,d){if(0<b.length&&0<d.length){this.model.beginUpdate();
+try{for(var c=0;c<b.length;c++){var g=this.getTagsForCell(b[c]);if(0<g.length){for(var e=g.split(" "),k=!1,f=0;f<d.length;f++){var l=mxUtils.indexOf(e,d[f]);0<=l&&(e.splice(l,1),k=!0)}k&&this.setAttributeForCell(b[c],"tags",e.join(" "))}}}finally{this.model.endUpdate()}}};Graph.prototype.toggleCells=function(b){this.model.beginUpdate();try{for(var d=0;d<b.length;d++)this.model.setVisible(b[d],!this.model.isVisible(b[d]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(b,
d){this.model.beginUpdate();try{for(var c=0;c<b.length;c++)this.model.setVisible(b[c],d)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(b,d,c,g){for(var e=0;e<b.length;e++)this.highlightCell(b[e],d,c,g)};Graph.prototype.highlightCell=function(b,d,c,g,e){d=null!=d?d:mxConstants.DEFAULT_VALID_COLOR;c=null!=c?c:1E3;b=this.view.getState(b);var k=null;null!=b&&(e=null!=e?e:4,e=Math.max(e+1,mxUtils.getValue(b.style,mxConstants.STYLE_STROKEWIDTH,1)+e),k=new mxCellHighlight(this,
d,e,!1),null!=g&&(k.opacity=g),k.highlight(b),window.setTimeout(function(){null!=k.shape&&(mxUtils.setPrefixedStyle(k.shape.node.style,"transition","all 1200ms ease-in-out"),k.shape.node.style.opacity=0);window.setTimeout(function(){k.destroy()},1200)},c));return k};Graph.prototype.addSvgShadow=function(b,d,c,g){c=null!=c?c:!1;g=null!=g?g:!0;var e=b.ownerDocument,k=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"filter"):e.createElement("filter");k.setAttribute("id",this.shadowId);var f=
null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):e.createElement("feGaussianBlur");f.setAttribute("in","SourceAlpha");f.setAttribute("stdDeviation",this.svgShadowBlur);f.setAttribute("result","blur");k.appendChild(f);f=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feOffset"):e.createElement("feOffset");f.setAttribute("in","blur");f.setAttribute("dx",this.svgShadowSize);f.setAttribute("dy",this.svgShadowSize);f.setAttribute("result","offsetBlur");k.appendChild(f);
@@ -3395,35 +3395,35 @@ mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupN
"/gmdl.xml"];mxStencilRegistry.libraries.gcp2=[SHAPES_PATH+"/mxGCP2.js",STENCIL_PATH+"/gcp2.xml"];mxStencilRegistry.libraries.ibm=[SHAPES_PATH+"/mxIBM.js",STENCIL_PATH+"/ibm.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=
[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.aws4=[SHAPES_PATH+"/mxAWS4.js",STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.aws4b=[SHAPES_PATH+"/mxAWS4.js",STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.uml25=[SHAPES_PATH+"/mxUML25.js"];mxStencilRegistry.libraries.veeam=
[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.veeam2=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam2.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=
-[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(b){var d=null;null!=b&&0<b.length&&("ER"==b.substring(0,2)?d="mxgraph.er":"sysML"==b.substring(0,5)&&(d="mxgraph.sysml"));return d};var X=mxMarker.createMarker;mxMarker.createMarker=function(b,d,c,g,e,k,f,m,l,p){if(null!=c&&null==mxMarker.markers[c]){var q=this.getPackageForType(c);null!=q&&mxStencilRegistry.getStencil(q)}return X.apply(this,arguments)};var ja=mxStencil.prototype.drawShape;mxStencil.prototype.drawShape=function(b,
-d,c,g,e,k){"1"==mxUtils.getValue(d.style,"lineShape",null)&&b.setFillColor(mxUtils.getValue(d.style,mxConstants.STYLE_STROKECOLOR,this.stroke));return ja.apply(this,arguments)};PrintDialog.prototype.create=function(b,d){function c(){v.value=Math.max(1,Math.min(m,Math.max(parseInt(v.value),parseInt(u.value))));u.value=Math.max(1,Math.min(m,Math.min(parseInt(v.value),parseInt(u.value))))}function g(d){function c(d,c,k){var f=d.useCssTransforms,m=d.currentTranslate,l=d.currentScale,p=d.view.translate,
-q=d.view.scale;d.useCssTransforms&&(d.useCssTransforms=!1,d.currentTranslate=new mxPoint(0,0),d.currentScale=1,d.view.translate=new mxPoint(0,0),d.view.scale=1);var n=d.getGraphBounds(),u=0,v=0,x=V.get(),t=1/d.pageScale,C=M.checked;if(C)var t=parseInt(B.value),Q=parseInt(F.value),t=Math.min(x.height*Q/(n.height/d.view.scale),x.width*t/(n.width/d.view.scale));else t=parseInt(A.value)/(100*d.pageScale),isNaN(t)&&(g=1/d.pageScale,A.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*
-g);x.height=Math.ceil(x.height*g);t*=g;!C&&d.pageVisible?(n=d.getPageLayout(),u-=n.x*x.width,v-=n.y*x.height):C=!0;if(null==c){c=PrintDialog.createPrintPreview(d,t,x,0,u,v,C);c.pageSelector=!1;c.mathEnabled=!1;y.checked&&(c.isCellVisible=function(b){return d.isCellSelected(b)});u=b.getCurrentFile();null!=u&&(c.title=u.getTitle());var E=c.writeHead;c.writeHead=function(c){E.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)c.writeln('<style type="text/css">'),c.writeln(Editor.mathJaxWebkitCss),
+[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(b){var d=null;null!=b&&0<b.length&&("ER"==b.substring(0,2)?d="mxgraph.er":"sysML"==b.substring(0,5)&&(d="mxgraph.sysml"));return d};var X=mxMarker.createMarker;mxMarker.createMarker=function(b,d,c,g,e,k,f,l,m,p){if(null!=c&&null==mxMarker.markers[c]){var t=this.getPackageForType(c);null!=t&&mxStencilRegistry.getStencil(t)}return X.apply(this,arguments)};var ja=mxStencil.prototype.drawShape;mxStencil.prototype.drawShape=function(b,
+d,c,g,e,k){"1"==mxUtils.getValue(d.style,"lineShape",null)&&b.setFillColor(mxUtils.getValue(d.style,mxConstants.STYLE_STROKECOLOR,this.stroke));return ja.apply(this,arguments)};PrintDialog.prototype.create=function(b,d){function c(){v.value=Math.max(1,Math.min(l,Math.max(parseInt(v.value),parseInt(u.value))));u.value=Math.max(1,Math.min(l,Math.min(parseInt(v.value),parseInt(u.value))))}function g(d){function c(d,c,k){var f=d.useCssTransforms,l=d.currentTranslate,m=d.currentScale,p=d.view.translate,
+t=d.view.scale;d.useCssTransforms&&(d.useCssTransforms=!1,d.currentTranslate=new mxPoint(0,0),d.currentScale=1,d.view.translate=new mxPoint(0,0),d.view.scale=1);var n=d.getGraphBounds(),u=0,v=0,x=V.get(),q=1/d.pageScale,C=M.checked;if(C)var q=parseInt(B.value),Q=parseInt(F.value),q=Math.min(x.height*Q/(n.height/d.view.scale),x.width*q/(n.width/d.view.scale));else q=parseInt(A.value)/(100*d.pageScale),isNaN(q)&&(g=1/d.pageScale,A.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*
+g);x.height=Math.ceil(x.height*g);q*=g;!C&&d.pageVisible?(n=d.getPageLayout(),u-=n.x*x.width,v-=n.y*x.height):C=!0;if(null==c){c=PrintDialog.createPrintPreview(d,q,x,0,u,v,C);c.pageSelector=!1;c.mathEnabled=!1;y.checked&&(c.isCellVisible=function(b){return d.isCellSelected(b)});u=b.getCurrentFile();null!=u&&(c.title=u.getTitle());var E=c.writeHead;c.writeHead=function(c){E.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)c.writeln('<style type="text/css">'),c.writeln(Editor.mathJaxWebkitCss),
c.writeln("</style>");mxClient.IS_GC&&(c.writeln('<style type="text/css">'),c.writeln("@media print {"),c.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),c.writeln("}"),c.writeln("</style>"));null!=b.editor.fontCss&&(c.writeln('<style type="text/css">'),c.writeln(b.editor.fontCss),c.writeln("</style>"));for(var g=d.getCustomFonts(),e=0;e<g.length;e++){var k=g[e].name,f=g[e].url;Graph.isCssFontUrl(f)?c.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(f)+'" charset="UTF-8" type="text/css">'):
-(c.writeln('<style type="text/css">'),c.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(k)+'";\nsrc: url("'+mxUtils.htmlEntities(f)+'");\n}'),c.writeln("</style>"))}};if("undefined"!==typeof MathJax){var N=c.renderPage;c.renderPage=function(d,c,g,e,k,f){var m=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var l=N.apply(this,arguments);mxClient.NO_FO=m;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||
-!0:l.className="geDisableMathJax";return l}}u=null;v=e.shapeForegroundColor;C=e.shapeBackgroundColor;x=e.enableFlowAnimation;e.enableFlowAnimation=!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(u=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.shapeForegroundColor="#000000",e.shapeBackgroundColor="#ffffff",e.refresh());c.open(null,null,k,!0);e.enableFlowAnimation=x;null!=u&&(e.shapeForegroundColor=v,e.shapeBackgroundColor=C,e.stylesheet=u,e.refresh())}else{x=d.background;if(null==x||""==
-x||x==mxConstants.NONE)x="#ffffff";c.backgroundColor=x;c.autoOrigin=C;c.appendGraph(d,t,u,v,k,!0);k=d.getCustomFonts();if(null!=c.wnd)for(u=0;u<k.length;u++)v=k[u].name,C=k[u].url,Graph.isCssFontUrl(C)?c.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(C)+'" charset="UTF-8" type="text/css">'):(c.wnd.document.writeln('<style type="text/css">'),c.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(v)+'";\nsrc: url("'+mxUtils.htmlEntities(C)+'");\n}'),c.wnd.document.writeln("</style>"))}f&&
-(d.useCssTransforms=f,d.currentTranslate=m,d.currentScale=l,d.view.translate=p,d.view.scale=q);return c}var g=parseInt(Y.value)/100;isNaN(g)&&(g=1,Y.value="100 %");var g=.75*g,k=null,f=e.shapeForegroundColor,m=e.shapeBackgroundColor;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(k=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.shapeForegroundColor="#000000",e.shapeBackgroundColor="#ffffff",e.refresh());var p=u.value,n=v.value,x=!q.checked,t=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,
-q.checked,p,n,M.checked,B.value,F.value,parseInt(A.value)/100,parseInt(Y.value)/100,V.get());else{x&&(x=y.checked||p==l&&n==l);if(!x&&null!=b.pages&&b.pages.length){var C=0,x=b.pages.length-1;q.checked||(C=parseInt(p)-1,x=parseInt(n)-1);for(var Q=C;Q<=x;Q++){var E=b.pages[Q],p=E==b.currentPage?e:null;if(null==p){p=b.createTemporaryGraph(e.stylesheet);p.shapeForegroundColor=e.shapeForegroundColor;p.shapeBackgroundColor=e.shapeBackgroundColor;var n=!0,C=!1,N=null,L=null;null==E.viewState&&null==E.root&&
-b.updatePageRoot(E);null!=E.viewState&&(n=E.viewState.pageVisible,C=E.viewState.mathEnabled,N=E.viewState.background,L=E.viewState.backgroundImage,p.extFonts=E.viewState.extFonts);null!=L&&null!=L.originalSrc&&(L=b.createImageForPageLink(L.originalSrc,E));p.background=N;p.backgroundImage=null!=L?new mxImage(L.src,L.width,L.height,L.x,L.y):null;p.pageVisible=n;p.mathEnabled=C;var G=p.getGraphBounds;p.getGraphBounds=function(){var b=G.apply(this,arguments),d=this.backgroundImage;if(null!=d&&null!=d.width&&
-null!=d.height){var c=this.view.translate,g=this.view.scale,b=mxRectangle.fromRectangle(b);b.add(new mxRectangle((c.x+d.x)*g,(c.y+d.y)*g,d.width*g,d.height*g))}return b};var D=p.getGlobalVariable;p.getGlobalVariable=function(d){return"page"==d?E.getName():"pagenumber"==d?Q+1:"pagecount"==d?null!=b.pages?b.pages.length:1:D.apply(this,arguments)};document.body.appendChild(p.container);b.updatePageRoot(E);p.model.setRoot(E.root)}t=c(p,t,Q!=x);p!=e&&p.container.parentNode.removeChild(p.container)}}else t=
-c(e);null==t?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(t.mathEnabled&&(x=t.wnd.document,d&&(t.wnd.IMMEDIATE_PRINT=!0),x.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),t.closeDocument(),!t.mathEnabled&&d&&PrintDialog.printPreview(t));null!=k&&(e.shapeForegroundColor=f,e.shapeBackgroundColor=m,e.stylesheet=k,e.refresh())}}var e=b.editor.graph,k=document.createElement("div"),f=document.createElement("h3");f.style.width="100%";
-f.style.textAlign="center";f.style.marginTop="0px";mxUtils.write(f,d||mxResources.get("print"));k.appendChild(f);var m=1,l=1,p=document.createElement("div");p.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","all");q.setAttribute("type","radio");q.setAttribute("name","pages-printdialog");p.appendChild(q);f=document.createElement("span");mxUtils.write(f,
-mxResources.get("printAllPages"));p.appendChild(f);mxUtils.br(p);var n=q.cloneNode(!0);q.setAttribute("checked","checked");n.setAttribute("value","range");p.appendChild(n);f=document.createElement("span");mxUtils.write(f,mxResources.get("pages")+":");p.appendChild(f);var u=document.createElement("input");u.style.cssText="margin:0 8px 0 8px;";u.setAttribute("value","1");u.setAttribute("type","number");u.setAttribute("min","1");u.style.width="50px";p.appendChild(u);f=document.createElement("span");
-mxUtils.write(f,mxResources.get("to"));p.appendChild(f);var v=u.cloneNode(!0);p.appendChild(v);mxEvent.addListener(u,"focus",function(){n.checked=!0});mxEvent.addListener(v,"focus",function(){n.checked=!0});mxEvent.addListener(u,"change",c);mxEvent.addListener(v,"change",c);if(null!=b.pages&&(m=b.pages.length,null!=b.currentPage))for(f=0;f<b.pages.length;f++)if(b.currentPage==b.pages[f]){l=f+1;u.value=l;v.value=l;break}u.setAttribute("max",m);v.setAttribute("max",m);b.isPagesEnabled()?1<m&&(k.appendChild(p),
-n.checked=!0):n.checked=!0;mxUtils.br(p);var y=document.createElement("input");y.setAttribute("value","all");y.setAttribute("type","radio");y.style.marginRight="8px";e.isSelectionEmpty()&&y.setAttribute("disabled","disabled");var x=document.createElement("div");x.style.marginBottom="10px";1==m?(y.setAttribute("type","checkbox"),y.style.marginBottom="12px",x.appendChild(y)):(y.setAttribute("name","pages-printdialog"),y.style.marginBottom="8px",p.appendChild(y));f=document.createElement("span");mxUtils.write(f,
-mxResources.get("selectionOnly"));y.parentNode.appendChild(f);1==m&&mxUtils.br(y.parentNode);var t=document.createElement("input");t.style.marginRight="8px";t.setAttribute("value","adjust");t.setAttribute("type","radio");t.setAttribute("name","printZoom");x.appendChild(t);f=document.createElement("span");mxUtils.write(f,mxResources.get("adjustTo"));x.appendChild(f);var A=document.createElement("input");A.style.cssText="margin:0 8px 0 8px;";A.setAttribute("value","100 %");A.style.width="50px";x.appendChild(A);
-mxEvent.addListener(A,"focus",function(){t.checked=!0});k.appendChild(x);var p=p.cloneNode(!1),M=t.cloneNode(!0);M.setAttribute("value","fit");t.setAttribute("checked","checked");f=document.createElement("div");f.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";f.appendChild(M);p.appendChild(f);x=document.createElement("table");x.style.display="inline-block";var C=document.createElement("tbody"),Q=document.createElement("tr"),E=Q.cloneNode(!0),N=document.createElement("td"),
-L=N.cloneNode(!0),G=N.cloneNode(!0),D=N.cloneNode(!0),H=N.cloneNode(!0),ja=N.cloneNode(!0);N.style.textAlign="right";D.style.textAlign="right";mxUtils.write(N,mxResources.get("fitTo"));var B=document.createElement("input");B.style.cssText="margin:0 8px 0 8px;";B.setAttribute("value","1");B.setAttribute("min","1");B.setAttribute("type","number");B.style.width="40px";L.appendChild(B);f=document.createElement("span");mxUtils.write(f,mxResources.get("fitToSheetsAcross"));G.appendChild(f);mxUtils.write(D,
-mxResources.get("fitToBy"));var F=B.cloneNode(!0);H.appendChild(F);mxEvent.addListener(B,"focus",function(){M.checked=!0});mxEvent.addListener(F,"focus",function(){M.checked=!0});f=document.createElement("span");mxUtils.write(f,mxResources.get("fitToSheetsDown"));ja.appendChild(f);Q.appendChild(N);Q.appendChild(L);Q.appendChild(G);E.appendChild(D);E.appendChild(H);E.appendChild(ja);C.appendChild(Q);C.appendChild(E);x.appendChild(C);p.appendChild(x);k.appendChild(p);p=document.createElement("div");
+(c.writeln('<style type="text/css">'),c.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(k)+'";\nsrc: url("'+mxUtils.htmlEntities(f)+'");\n}'),c.writeln("</style>"))}};if("undefined"!==typeof MathJax){var N=c.renderPage;c.renderPage=function(d,c,g,e,k,f){var l=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var m=N.apply(this,arguments);mxClient.NO_FO=l;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||
+!0:m.className="geDisableMathJax";return m}}u=null;v=e.shapeForegroundColor;C=e.shapeBackgroundColor;x=e.enableFlowAnimation;e.enableFlowAnimation=!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(u=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.shapeForegroundColor="#000000",e.shapeBackgroundColor="#ffffff",e.refresh());c.open(null,null,k,!0);e.enableFlowAnimation=x;null!=u&&(e.shapeForegroundColor=v,e.shapeBackgroundColor=C,e.stylesheet=u,e.refresh())}else{x=d.background;if(null==x||""==
+x||x==mxConstants.NONE)x="#ffffff";c.backgroundColor=x;c.autoOrigin=C;c.appendGraph(d,q,u,v,k,!0);k=d.getCustomFonts();if(null!=c.wnd)for(u=0;u<k.length;u++)v=k[u].name,C=k[u].url,Graph.isCssFontUrl(C)?c.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(C)+'" charset="UTF-8" type="text/css">'):(c.wnd.document.writeln('<style type="text/css">'),c.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(v)+'";\nsrc: url("'+mxUtils.htmlEntities(C)+'");\n}'),c.wnd.document.writeln("</style>"))}f&&
+(d.useCssTransforms=f,d.currentTranslate=l,d.currentScale=m,d.view.translate=p,d.view.scale=t);return c}var g=parseInt(Y.value)/100;isNaN(g)&&(g=1,Y.value="100 %");var g=.75*g,k=null,f=e.shapeForegroundColor,l=e.shapeBackgroundColor;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(k=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.shapeForegroundColor="#000000",e.shapeBackgroundColor="#ffffff",e.refresh());var p=u.value,n=v.value,x=!t.checked,q=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,
+t.checked,p,n,M.checked,B.value,F.value,parseInt(A.value)/100,parseInt(Y.value)/100,V.get());else{x&&(x=y.checked||p==m&&n==m);if(!x&&null!=b.pages&&b.pages.length){var C=0,x=b.pages.length-1;t.checked||(C=parseInt(p)-1,x=parseInt(n)-1);for(var Q=C;Q<=x;Q++){var E=b.pages[Q],p=E==b.currentPage?e:null;if(null==p){p=b.createTemporaryGraph(e.stylesheet);p.shapeForegroundColor=e.shapeForegroundColor;p.shapeBackgroundColor=e.shapeBackgroundColor;var n=!0,C=!1,N=null,J=null;null==E.viewState&&null==E.root&&
+b.updatePageRoot(E);null!=E.viewState&&(n=E.viewState.pageVisible,C=E.viewState.mathEnabled,N=E.viewState.background,J=E.viewState.backgroundImage,p.extFonts=E.viewState.extFonts);null!=J&&null!=J.originalSrc&&(J=b.createImageForPageLink(J.originalSrc,E));p.background=N;p.backgroundImage=null!=J?new mxImage(J.src,J.width,J.height,J.x,J.y):null;p.pageVisible=n;p.mathEnabled=C;var G=p.getGraphBounds;p.getGraphBounds=function(){var b=G.apply(this,arguments),d=this.backgroundImage;if(null!=d&&null!=d.width&&
+null!=d.height){var c=this.view.translate,g=this.view.scale,b=mxRectangle.fromRectangle(b);b.add(new mxRectangle((c.x+d.x)*g,(c.y+d.y)*g,d.width*g,d.height*g))}return b};var D=p.getGlobalVariable;p.getGlobalVariable=function(d){return"page"==d?E.getName():"pagenumber"==d?Q+1:"pagecount"==d?null!=b.pages?b.pages.length:1:D.apply(this,arguments)};document.body.appendChild(p.container);b.updatePageRoot(E);p.model.setRoot(E.root)}q=c(p,q,Q!=x);p!=e&&p.container.parentNode.removeChild(p.container)}}else q=
+c(e);null==q?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(q.mathEnabled&&(x=q.wnd.document,d&&(q.wnd.IMMEDIATE_PRINT=!0),x.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),q.closeDocument(),!q.mathEnabled&&d&&PrintDialog.printPreview(q));null!=k&&(e.shapeForegroundColor=f,e.shapeBackgroundColor=l,e.stylesheet=k,e.refresh())}}var e=b.editor.graph,k=document.createElement("div"),f=document.createElement("h3");f.style.width="100%";
+f.style.textAlign="center";f.style.marginTop="0px";mxUtils.write(f,d||mxResources.get("print"));k.appendChild(f);var l=1,m=1,p=document.createElement("div");p.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var t=document.createElement("input");t.style.cssText="margin-right:8px;margin-bottom:8px;";t.setAttribute("value","all");t.setAttribute("type","radio");t.setAttribute("name","pages-printdialog");p.appendChild(t);f=document.createElement("span");mxUtils.write(f,
+mxResources.get("printAllPages"));p.appendChild(f);mxUtils.br(p);var n=t.cloneNode(!0);t.setAttribute("checked","checked");n.setAttribute("value","range");p.appendChild(n);f=document.createElement("span");mxUtils.write(f,mxResources.get("pages")+":");p.appendChild(f);var u=document.createElement("input");u.style.cssText="margin:0 8px 0 8px;";u.setAttribute("value","1");u.setAttribute("type","number");u.setAttribute("min","1");u.style.width="50px";p.appendChild(u);f=document.createElement("span");
+mxUtils.write(f,mxResources.get("to"));p.appendChild(f);var v=u.cloneNode(!0);p.appendChild(v);mxEvent.addListener(u,"focus",function(){n.checked=!0});mxEvent.addListener(v,"focus",function(){n.checked=!0});mxEvent.addListener(u,"change",c);mxEvent.addListener(v,"change",c);if(null!=b.pages&&(l=b.pages.length,null!=b.currentPage))for(f=0;f<b.pages.length;f++)if(b.currentPage==b.pages[f]){m=f+1;u.value=m;v.value=m;break}u.setAttribute("max",l);v.setAttribute("max",l);b.isPagesEnabled()?1<l&&(k.appendChild(p),
+n.checked=!0):n.checked=!0;mxUtils.br(p);var y=document.createElement("input");y.setAttribute("value","all");y.setAttribute("type","radio");y.style.marginRight="8px";e.isSelectionEmpty()&&y.setAttribute("disabled","disabled");var x=document.createElement("div");x.style.marginBottom="10px";1==l?(y.setAttribute("type","checkbox"),y.style.marginBottom="12px",x.appendChild(y)):(y.setAttribute("name","pages-printdialog"),y.style.marginBottom="8px",p.appendChild(y));f=document.createElement("span");mxUtils.write(f,
+mxResources.get("selectionOnly"));y.parentNode.appendChild(f);1==l&&mxUtils.br(y.parentNode);var q=document.createElement("input");q.style.marginRight="8px";q.setAttribute("value","adjust");q.setAttribute("type","radio");q.setAttribute("name","printZoom");x.appendChild(q);f=document.createElement("span");mxUtils.write(f,mxResources.get("adjustTo"));x.appendChild(f);var A=document.createElement("input");A.style.cssText="margin:0 8px 0 8px;";A.setAttribute("value","100 %");A.style.width="50px";x.appendChild(A);
+mxEvent.addListener(A,"focus",function(){q.checked=!0});k.appendChild(x);var p=p.cloneNode(!1),M=q.cloneNode(!0);M.setAttribute("value","fit");q.setAttribute("checked","checked");f=document.createElement("div");f.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";f.appendChild(M);p.appendChild(f);x=document.createElement("table");x.style.display="inline-block";var C=document.createElement("tbody"),Q=document.createElement("tr"),E=Q.cloneNode(!0),N=document.createElement("td"),
+J=N.cloneNode(!0),G=N.cloneNode(!0),D=N.cloneNode(!0),H=N.cloneNode(!0),ja=N.cloneNode(!0);N.style.textAlign="right";D.style.textAlign="right";mxUtils.write(N,mxResources.get("fitTo"));var B=document.createElement("input");B.style.cssText="margin:0 8px 0 8px;";B.setAttribute("value","1");B.setAttribute("min","1");B.setAttribute("type","number");B.style.width="40px";J.appendChild(B);f=document.createElement("span");mxUtils.write(f,mxResources.get("fitToSheetsAcross"));G.appendChild(f);mxUtils.write(D,
+mxResources.get("fitToBy"));var F=B.cloneNode(!0);H.appendChild(F);mxEvent.addListener(B,"focus",function(){M.checked=!0});mxEvent.addListener(F,"focus",function(){M.checked=!0});f=document.createElement("span");mxUtils.write(f,mxResources.get("fitToSheetsDown"));ja.appendChild(f);Q.appendChild(N);Q.appendChild(J);Q.appendChild(G);E.appendChild(D);E.appendChild(H);E.appendChild(ja);C.appendChild(Q);C.appendChild(E);x.appendChild(C);p.appendChild(x);k.appendChild(p);p=document.createElement("div");
f=document.createElement("div");f.style.fontWeight="bold";f.style.marginBottom="12px";mxUtils.write(f,mxResources.get("paperSize"));p.appendChild(f);f=document.createElement("div");f.style.marginBottom="12px";var V=PageSetupDialog.addPageFormatPanel(f,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);p.appendChild(f);f=document.createElement("span");mxUtils.write(f,mxResources.get("pageScale"));p.appendChild(f);var Y=document.createElement("input");Y.style.cssText="margin:0 8px 0 8px;";
Y.setAttribute("value","100 %");Y.style.width="60px";p.appendChild(Y);k.appendChild(p);f=document.createElement("div");f.style.cssText="text-align:right;margin:48px 0 0 0;";p=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});p.className="geBtn";b.editor.cancelFirst&&f.appendChild(p);b.isOffline()||(x=mxUtils.button(mxResources.get("help"),function(){e.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),x.className="geBtn",f.appendChild(x));PrintDialog.previewEnabled&&(x=
mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();g(!1)}),x.className="geBtn",f.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();g(!0)});x.className="geBtn gePrimaryBtn";f.appendChild(x);b.editor.cancelFirst||f.appendChild(p);k.appendChild(f);this.container=k};var Y=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);if(this.page!=this.ui.currentPage){if(null!=
this.page.viewState){this.ignoreColor||(this.page.viewState.background=this.color);if(!this.ignoreImage){var b=this.image;null!=b&&null!=b.src&&Graph.isPageLink(b.src)&&(b={originalSrc:b.src});this.page.viewState.backgroundImage=b}null!=this.format&&(this.page.viewState.pageFormat=this.format);null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled);null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)}}else Y.apply(this,arguments),null!=this.mathEnabled&&
this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible)};Editor.prototype.useCanvasForExport=!1;try{var da=document.createElement("canvas"),ba=new Image;ba.onload=function(){try{da.getContext("2d").drawImage(ba,0,0);var b=da.toDataURL("image/png");Editor.prototype.useCanvasForExport=
-null!=b&&6<b.length}catch(J){}};ba.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(B){}})();
+null!=b&&6<b.length}catch(L){}};ba.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(B){}})();
(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(b,e,f){f.ui=b.ui;return e};b.afterDecode=function(b,e,f){f.previousColor=f.color;f.previousImage=f.image;f.previousFormat=f.format;null!=f.foldingEnabled&&(f.foldingEnabled=!f.foldingEnabled);null!=f.mathEnabled&&(f.mathEnabled=!f.mathEnabled);null!=f.shadowVisible&&(f.shadowVisible=!f.shadowVisible);return f};mxCodecRegistry.register(b)})();
-(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,e,f){f.ui=b.ui;return e};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="17.3.0";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
+(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,e,f){f.ui=b.ui;return e};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="17.4.0";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl="1"==urlParams.dev?"https://app.diagrams.net/cache":window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;
EditorUi.nativeFileSupport=!mxClient.IS_OP&&!EditorUi.isElectronApp&&"1"!=urlParams.extAuth&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.enableHtmlEditOption=!0;EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,
width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(b,c,g,e,f,l,n){l=null!=l?l:0<=b.indexOf("NetworkError")||0<=b.indexOf("SecurityError")||0<=b.indexOf("NS_ERROR_FAILURE")||
@@ -3437,9 +3437,9 @@ null!=b&&6<b.length}catch(p){}};g.src="data:image/svg+xml;base64,"+btoa(unescape
EditorUi.prototype.openLink=function(b,c,g){return this.editor.graph.openLink(b,c,g)};EditorUi.prototype.showSplash=function(b){};EditorUi.prototype.getLocalData=function(b,c){c(localStorage.getItem(b))};EditorUi.prototype.setLocalData=function(b,c,g){localStorage.setItem(b,c);null!=g&&g()};EditorUi.prototype.removeLocalData=function(b,c){localStorage.removeItem(b);c()};EditorUi.prototype.setShareCursorPosition=function(b){this.shareCursorPosition=b;this.fireEvent(new mxEventObject("shareCursorPositionChanged"))};
EditorUi.prototype.isShareCursorPosition=function(){return this.shareCursorPosition};EditorUi.prototype.setMathEnabled=function(b){this.editor.graph.mathEnabled=b;this.editor.updateGraphComponents();this.editor.graph.refresh();this.editor.graph.defaultMathEnabled=b;this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(b){return this.editor.graph.mathEnabled};EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=
function(b){return this.isOfflineApp()||!navigator.onLine||!b&&("1"==urlParams.stealth||"1"==urlParams.lockdown)};EditorUi.prototype.isExternalDataComms=function(){return"1"!=urlParams.offline&&!this.isOffline()&&!this.isOfflineApp()};EditorUi.prototype.createSpinner=function(b,c,g){var d=null==b||null==c;g=null!=g?g:24;var e=new Spinner({lines:12,length:g,width:Math.round(g/3),radius:Math.round(g/2),rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),
-k=e.spin;e.spin=function(g,f){var m=!1;this.active||(k.call(this,g),this.active=!0,null!=f&&(d&&(c=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,b=document.body.clientWidth/2-2),m=document.createElement("div"),m.style.position="absolute",m.style.whiteSpace="nowrap",m.style.background="#4B4243",m.style.color="white",m.style.fontFamily=Editor.defaultHtmlFont,m.style.fontSize="9pt",m.style.padding="6px",m.style.paddingLeft="10px",m.style.paddingRight="10px",m.style.zIndex=
-2E9,m.style.left=Math.max(0,b)+"px",m.style.top=Math.max(0,c+70)+"px",mxUtils.setPrefixedStyle(m.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(m.style,"transform","translate(-50%,-50%)"),Editor.isDarkMode()||mxUtils.setPrefixedStyle(m.style,"boxShadow","2px 2px 3px 0px #ddd"),"..."!=f.substring(f.length-3,f.length)&&"!"!=f.charAt(f.length-1)&&(f+="..."),m.innerHTML=f,g.appendChild(m),e.status=m),this.pause=mxUtils.bind(this,function(){var b=function(){};this.active&&(b=mxUtils.bind(this,function(){this.spin(g,
-f)}));this.stop();return b}),m=!0);return m};var f=e.stop;e.stop=function(){f.call(this);this.active=!1;null!=e.status&&null!=e.status.parentNode&&e.status.parentNode.removeChild(e.status);e.status=null};e.pause=function(){return function(){}};return e};EditorUi.prototype.isCompatibleString=function(b){try{var d=mxUtils.parseXml(b),c=this.editor.extractGraphModel(d.documentElement,!0);return null!=c&&0==c.getElementsByTagName("parsererror").length}catch(q){}return!1};EditorUi.prototype.isVisioData=
+k=e.spin;e.spin=function(g,f){var l=!1;this.active||(k.call(this,g),this.active=!0,null!=f&&(d&&(c=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,b=document.body.clientWidth/2-2),l=document.createElement("div"),l.style.position="absolute",l.style.whiteSpace="nowrap",l.style.background="#4B4243",l.style.color="white",l.style.fontFamily=Editor.defaultHtmlFont,l.style.fontSize="9pt",l.style.padding="6px",l.style.paddingLeft="10px",l.style.paddingRight="10px",l.style.zIndex=
+2E9,l.style.left=Math.max(0,b)+"px",l.style.top=Math.max(0,c+70)+"px",mxUtils.setPrefixedStyle(l.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(l.style,"transform","translate(-50%,-50%)"),Editor.isDarkMode()||mxUtils.setPrefixedStyle(l.style,"boxShadow","2px 2px 3px 0px #ddd"),"..."!=f.substring(f.length-3,f.length)&&"!"!=f.charAt(f.length-1)&&(f+="..."),l.innerHTML=f,g.appendChild(l),e.status=l),this.pause=mxUtils.bind(this,function(){var b=function(){};this.active&&(b=mxUtils.bind(this,function(){this.spin(g,
+f)}));this.stop();return b}),l=!0);return l};var f=e.stop;e.stop=function(){f.call(this);this.active=!1;null!=e.status&&null!=e.status.parentNode&&e.status.parentNode.removeChild(e.status);e.status=null};e.pause=function(){return function(){}};return e};EditorUi.prototype.isCompatibleString=function(b){try{var d=mxUtils.parseXml(b),c=this.editor.extractGraphModel(d.documentElement,!0);return null!=c&&0==c.getElementsByTagName("parsererror").length}catch(t){}return!1};EditorUi.prototype.isVisioData=
function(b){return 8<b.length&&(208==b.charCodeAt(0)&&207==b.charCodeAt(1)&&17==b.charCodeAt(2)&&224==b.charCodeAt(3)&&161==b.charCodeAt(4)&&177==b.charCodeAt(5)&&26==b.charCodeAt(6)&&225==b.charCodeAt(7)||80==b.charCodeAt(0)&&75==b.charCodeAt(1)&&3==b.charCodeAt(2)&&4==b.charCodeAt(3)||80==b.charCodeAt(0)&&75==b.charCodeAt(1)&&3==b.charCodeAt(2)&&6==b.charCodeAt(3))};EditorUi.prototype.isRemoteVisioData=function(b){return 8<b.length&&(208==b.charCodeAt(0)&&207==b.charCodeAt(1)&&17==b.charCodeAt(2)&&
224==b.charCodeAt(3)&&161==b.charCodeAt(4)&&177==b.charCodeAt(5)&&26==b.charCodeAt(6)&&225==b.charCodeAt(7)||60==b.charCodeAt(0)&&63==b.charCodeAt(1)&&120==b.charCodeAt(2)&&109==b.charCodeAt(3)&&108==b.charCodeAt(3))};var b=EditorUi.prototype.createKeyHandler;EditorUi.prototype.createKeyHandler=function(d){var c=b.apply(this,arguments);if(!this.editor.chromeless||this.editor.editable){var g=c.getFunction,e=this.editor.graph,f=this;c.getFunction=function(b){if(e.isSelectionEmpty()&&null!=f.pages&&
0<f.pages.length){var d=f.getSelectedPageIndex();if(mxEvent.isShiftDown(b)){if(37==b.keyCode)return function(){0<d&&f.movePage(d,d-1)};if(38==b.keyCode)return function(){0<d&&f.movePage(d,0)};if(39==b.keyCode)return function(){d<f.pages.length-1&&f.movePage(d,d+1)};if(40==b.keyCode)return function(){d<f.pages.length-1&&f.movePage(d,f.pages.length-1)}}else if(mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b)){if(37==b.keyCode)return function(){0<d&&f.selectNextPage(!1)};if(38==b.keyCode)return function(){0<
@@ -3447,11 +3447,11 @@ d&&f.selectPage(f.pages[0])};if(39==b.keyCode)return function(){d<f.pages.length
15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var f=mxUtils.parseXml(b),l=this.editor.extractGraphModel(f.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),d=null!=l?mxUtils.getXml(l):""}catch(v){}return d};EditorUi.prototype.validateFileData=function(b){if(null!=b&&0<b.length){var d=b.indexOf('<meta charset="utf-8">');0<=d&&(b=b.slice(0,d)+'<meta charset="utf-8"/>'+b.slice(d+23-1,b.length));b=Graph.zapGremlins(b)}return b};
EditorUi.prototype.replaceFileData=function(b){b=this.validateFileData(b);b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:null;var d=null!=b?this.editor.extractGraphModel(b,!0):null;null!=d&&(b=d);if(null!=b){d=this.editor.graph;d.model.beginUpdate();try{var c=null!=this.pages?this.pages.slice():null,e=b.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<e.length||1==e.length&&e[0].hasAttribute("name")){this.fileNode=b;this.pages=null!=this.pages?this.pages:[];for(var f=e.length-
1;0<=f;f--){var l=this.updatePageRoot(new DiagramPage(e[f]));null==l.getName()&&l.setName(mxResources.get("pageWithNumber",[f+1]));d.model.execute(new ChangePage(this,l,0==f?l:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),d.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),
-this.editor.setGraphXml(b),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(f=0;f<c.length;f++)d.model.execute(new ChangePage(this,c[f],null))}finally{d.model.endUpdate()}}};EditorUi.prototype.createFileData=function(b,c,g,e,f,l,n,u,x,y,t){c=null!=c?c:this.editor.graph;f=null!=f?f:!1;x=null!=x?x:!0;var d,k=null;null==g||g.getMode()==App.MODE_DEVICE||g.getMode()==App.MODE_BROWSER?d="_blank":k=d=e;if(null==b)return"";var m=b;if("mxfile"!=m.nodeName.toLowerCase()){if(t){var p=
+this.editor.setGraphXml(b),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(f=0;f<c.length;f++)d.model.execute(new ChangePage(this,c[f],null))}finally{d.model.endUpdate()}}};EditorUi.prototype.createFileData=function(b,c,g,e,f,l,n,u,x,y,q){c=null!=c?c:this.editor.graph;f=null!=f?f:!1;x=null!=x?x:!0;var d,k=null;null==g||g.getMode()==App.MODE_DEVICE||g.getMode()==App.MODE_BROWSER?d="_blank":k=d=e;if(null==b)return"";var m=b;if("mxfile"!=m.nodeName.toLowerCase()){if(q){var p=
b.ownerDocument.createElement("diagram");p.setAttribute("id",Editor.guid());p.appendChild(b)}else{p=Graph.zapGremlins(mxUtils.getXml(b));m=Graph.compress(p);if(Graph.decompress(m)!=p)return p;p=b.ownerDocument.createElement("diagram");p.setAttribute("id",Editor.guid());mxUtils.setTextContent(p,m)}m=b.ownerDocument.createElement("mxfile");m.appendChild(p)}y?(m=m.cloneNode(!0),m.removeAttribute("modified"),m.removeAttribute("host"),m.removeAttribute("agent"),m.removeAttribute("etag"),m.removeAttribute("userAgent"),
m.removeAttribute("version"),m.removeAttribute("editor"),m.removeAttribute("type")):(m.removeAttribute("userAgent"),m.removeAttribute("version"),m.removeAttribute("editor"),m.removeAttribute("pages"),m.removeAttribute("type"),mxClient.IS_CHROMEAPP?m.setAttribute("host","Chrome"):EditorUi.isElectronApp?m.setAttribute("host","Electron"):m.setAttribute("host",window.location.hostname),m.setAttribute("modified",(new Date).toISOString()),m.setAttribute("agent",navigator.appVersion),m.setAttribute("version",
-EditorUi.VERSION),m.setAttribute("etag",Editor.guid()),b=null!=g?g.getMode():this.mode,null!=b&&m.setAttribute("type",b),1<m.getElementsByTagName("diagram").length&&null!=this.pages&&m.setAttribute("pages",this.pages.length));t=t?mxUtils.getPrettyXml(m):mxUtils.getXml(m);if(!l&&!f&&(n||null!=g&&/(\.html)$/i.test(g.getTitle())))t=this.getHtml2(mxUtils.getXml(m),c,null!=g?g.getTitle():null,d,k);else if(l||!f&&null!=g&&/(\.svg)$/i.test(g.getTitle()))null==g||g.getMode()!=App.MODE_DEVICE&&g.getMode()!=
-App.MODE_BROWSER||(e=null),t=this.getEmbeddedSvg(t,c,e,null,u,x,k);return t};EditorUi.prototype.getXmlFileData=function(b,c,g,e){b=null!=b?b:!0;c=null!=c?c:!1;g=null!=g?g:!Editor.compressXml;var d=this.editor.getGraphXml(b,e);if(b&&null!=this.fileNode&&null!=this.currentPage)if(b=function(b){var c=b.getElementsByTagName("mxGraphModel"),c=0<c.length?c[0]:null;null==c&&g?(c=mxUtils.trim(mxUtils.getTextContent(b)),b=b.cloneNode(!1),0<c.length&&(c=Graph.decompress(c),null!=c&&0<c.length&&b.appendChild(mxUtils.parseXml(c).documentElement))):
+EditorUi.VERSION),m.setAttribute("etag",Editor.guid()),b=null!=g?g.getMode():this.mode,null!=b&&m.setAttribute("type",b),1<m.getElementsByTagName("diagram").length&&null!=this.pages&&m.setAttribute("pages",this.pages.length));q=q?mxUtils.getPrettyXml(m):mxUtils.getXml(m);if(!l&&!f&&(n||null!=g&&/(\.html)$/i.test(g.getTitle())))q=this.getHtml2(mxUtils.getXml(m),c,null!=g?g.getTitle():null,d,k);else if(l||!f&&null!=g&&/(\.svg)$/i.test(g.getTitle()))null==g||g.getMode()!=App.MODE_DEVICE&&g.getMode()!=
+App.MODE_BROWSER||(e=null),q=this.getEmbeddedSvg(q,c,e,null,u,x,k);return q};EditorUi.prototype.getXmlFileData=function(b,c,g,e){b=null!=b?b:!0;c=null!=c?c:!1;g=null!=g?g:!Editor.compressXml;var d=this.editor.getGraphXml(b,e);if(b&&null!=this.fileNode&&null!=this.currentPage)if(b=function(b){var c=b.getElementsByTagName("mxGraphModel"),c=0<c.length?c[0]:null;null==c&&g?(c=mxUtils.trim(mxUtils.getTextContent(b)),b=b.cloneNode(!1),0<c.length&&(c=Graph.decompress(c),null!=c&&0<c.length&&b.appendChild(mxUtils.parseXml(c).documentElement))):
null==c||g?b=b.cloneNode(!0):(b=b.cloneNode(!1),mxUtils.setTextContent(b,Graph.compressNode(c)));d.appendChild(b)},EditorUi.removeChildNodes(this.currentPage.node),mxUtils.setTextContent(this.currentPage.node,Graph.compressNode(d)),d=this.fileNode.cloneNode(!1),c)b(this.currentPage.node);else for(c=0;c<this.pages.length;c++){var k=this.pages[c],f=k.node;if(k!=this.currentPage)if(k.needsUpdate){var l=new mxCodec(mxUtils.createXmlDocument()),l=l.encode(new mxGraphModel(k.root));this.editor.graph.saveViewState(k.viewState,
l,null,e);EditorUi.removeChildNodes(f);mxUtils.setTextContent(f,Graph.compressNode(l));delete k.needsUpdate}else e&&(this.updatePageRoot(k),null!=k.viewState.backgroundImage&&(null!=k.viewState.backgroundImage.originalSrc?k.viewState.backgroundImage=this.createImageForPageLink(k.viewState.backgroundImage.originalSrc,k):Graph.isPageLink(k.viewState.backgroundImage.src)&&(k.viewState.backgroundImage=this.createImageForPageLink(k.viewState.backgroundImage.src,k))),null!=k.viewState.backgroundImage&&
null!=k.viewState.backgroundImage.originalSrc&&(l=new mxCodec(mxUtils.createXmlDocument()),l=l.encode(new mxGraphModel(k.root)),this.editor.graph.saveViewState(k.viewState,l,null,e),f=f.cloneNode(!1),mxUtils.setTextContent(f,Graph.compressNode(l))));b(f)}return d};EditorUi.prototype.anonymizeString=function(b,c){for(var d=[],e=0;e<b.length;e++){var k=b.charAt(e);0<=EditorUi.ignoredAnonymizedChars.indexOf(k)?d.push(k):isNaN(parseInt(k))?k.toLowerCase()!=k?d.push(String.fromCharCode(65+Math.round(25*
@@ -3460,32 +3460,32 @@ b[EditorUi.DIFF_INSERT][d].data=mxUtils.getXml(c)}catch(p){b[EditorUi.DIFF_INSER
"["+d[c].style.length+"]"),mxUtils.isEmptyObject(d[c])&&delete d[c];mxUtils.isEmptyObject(d)&&delete f.cells[b]}}),d(EditorUi.DIFF_INSERT),d(EditorUi.DIFF_UPDATE),mxUtils.isEmptyObject(f.cells)&&delete f.cells);mxUtils.isEmptyObject(f)&&delete b[EditorUi.DIFF_UPDATE][e]}mxUtils.isEmptyObject(b[EditorUi.DIFF_UPDATE])&&delete b[EditorUi.DIFF_UPDATE]}return b};EditorUi.prototype.anonymizeAttributes=function(b,c){if(null!=b.attributes)for(var d=0;d<b.attributes.length;d++)"as"!=b.attributes[d].name&&
b.setAttribute(b.attributes[d].name,this.anonymizeString(b.attributes[d].value,c));if(null!=b.childNodes)for(d=0;d<b.childNodes.length;d++)this.anonymizeAttributes(b.childNodes[d],c)};EditorUi.prototype.anonymizeNode=function(b,c){for(var d=b.getElementsByTagName("mxCell"),e=0;e<d.length;e++)null!=d[e].getAttribute("value")&&d[e].setAttribute("value","["+d[e].getAttribute("value").length+"]"),null!=d[e].getAttribute("xmlValue")&&d[e].setAttribute("xmlValue","["+d[e].getAttribute("xmlValue").length+
"]"),null!=d[e].getAttribute("style")&&d[e].setAttribute("style","["+d[e].getAttribute("style").length+"]"),null!=d[e].parentNode&&"root"!=d[e].parentNode.nodeName&&null!=d[e].parentNode.parentNode&&(d[e].setAttribute("id",d[e].parentNode.getAttribute("id")),d[e].parentNode.parentNode.replaceChild(d[e],d[e].parentNode));return b};EditorUi.prototype.synchronizeCurrentFile=function(b){var d=this.getCurrentFile();null!=d&&(d.savingFile?this.handleError({message:mxResources.get("busy")}):!b&&d.invalidChecksum?
-d.handleFileError(null,!0):this.spinner.spin(document.body,mxResources.get("updatingDocument"))&&(d.clearAutosave(),this.editor.setStatus(""),b?d.reloadFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(b){d.handleFileError(b,!0)})):d.synchronizeFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(b){d.handleFileError(b,!0)}))))};EditorUi.prototype.getFileData=function(b,c,e,f,m,l,n,
-u,x,y,t){m=null!=m?m:!0;l=null!=l?l:!1;var d=this.editor.graph;if(c||!b&&null!=x&&/(\.svg)$/i.test(x.getTitle())){var g=null!=d.themes&&"darkTheme"==d.defaultThemeName;y=!1;if(g||null!=this.pages&&this.currentPage!=this.pages[0]){var k=d.getGlobalVariable,d=this.createTemporaryGraph(g?d.getDefaultStylesheet():d.getStylesheet());d.setBackgroundImage=this.editor.graph.setBackgroundImage;d.background=this.editor.graph.background;var p=this.pages[0];this.currentPage==p?d.setBackgroundImage(this.editor.graph.backgroundImage):
-null!=p.viewState&&null!=p.viewState&&d.setBackgroundImage(p.viewState.backgroundImage);d.getGlobalVariable=function(b){return"page"==b?p.getName():"pagenumber"==b?1:k.apply(this,arguments)};document.body.appendChild(d.container);d.model.setRoot(p.root)}}n=null!=n?n:this.getXmlFileData(m,l,y,t);x=null!=x?x:this.getCurrentFile();b=this.createFileData(n,d,x,window.location.href,b,c,e,f,m,u,y);d!=this.editor.graph&&d.container.parentNode.removeChild(d.container);return b};EditorUi.prototype.getHtml=
-function(b,c,e,f,m,l){l=null!=l?l:!0;var d=null,g=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=c){var d=l?c.getGraphBounds():c.getBoundingBox(c.getSelectionCells()),k=c.view.scale;l=Math.floor(d.x/k-c.view.translate.x);k=Math.floor(d.y/k-c.view.translate.y);d=c.background;null==m&&(c=this.getBasenames().join(";"),0<c.length&&(g=EditorUi.drawHost+"/embed.js?s="+c));b.setAttribute("x0",l);b.setAttribute("y0",k)}null!=b&&(b.setAttribute("pan","1"),b.setAttribute("zoom","1"),b.setAttribute("resize",
-"0"),b.setAttribute("fit","0"),b.setAttribute("border","20"),b.setAttribute("links","1"),null!=f&&b.setAttribute("edit",f));null!=m&&(m=m.replace(/&/g,"&amp;"));b=null!=b?Graph.zapGremlins(mxUtils.getXml(b)):"";f=Graph.compress(b);Graph.decompress(f)!=b&&(f=encodeURIComponent(b));return(null==m?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=m?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==m?null!=e?
-"<title>"+mxUtils.htmlEntities(e)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=m?'<meta http-equiv="refresh" content="0;URL=\''+m+"'\"/>\n":"")+"</head>\n<body"+(null==m&&null!=d&&d!=mxConstants.NONE?' style="background-color:'+d+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+f+"</div>\n</div>\n"+(null==m?'<script type="text/javascript" src="'+g+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+
-m+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(b,c,e,f,m){c=window.DRAWIO_VIEWER_URL||EditorUi.drawHost+"/js/viewer-static.min.js";null!=m&&(m=m.replace(/&/g,"&amp;"));b={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:Graph.zapGremlins(b),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(b.page=mxUtils.indexOf(this.pages,this.currentPage));
-return(null==m?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=m?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==m?null!=e?"<title>"+mxUtils.htmlEntities(e)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=m?'<meta http-equiv="refresh" content="0;URL=\''+m+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+
-mxUtils.htmlEntities(JSON.stringify(b))+'"></div>\n'+(null==m?'<script type="text/javascript" src="'+c+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+m+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(b){b=this.validateFileData(b);this.pages=this.fileNode=this.currentPage=null;b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:
+d.handleFileError(null,!0):this.spinner.spin(document.body,mxResources.get("updatingDocument"))&&(d.clearAutosave(),this.editor.setStatus(""),b?d.reloadFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(b){d.handleFileError(b,!0)})):d.synchronizeFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(b){d.handleFileError(b,!0)}))))};EditorUi.prototype.getFileData=function(b,c,e,f,l,p,n,
+u,x,y,q){l=null!=l?l:!0;p=null!=p?p:!1;var d=this.editor.graph;if(c||!b&&null!=x&&/(\.svg)$/i.test(x.getTitle())){var g=null!=d.themes&&"darkTheme"==d.defaultThemeName;y=!1;if(g||null!=this.pages&&this.currentPage!=this.pages[0]){var k=d.getGlobalVariable,d=this.createTemporaryGraph(g?d.getDefaultStylesheet():d.getStylesheet());d.setBackgroundImage=this.editor.graph.setBackgroundImage;d.background=this.editor.graph.background;var m=this.pages[0];this.currentPage==m?d.setBackgroundImage(this.editor.graph.backgroundImage):
+null!=m.viewState&&null!=m.viewState&&d.setBackgroundImage(m.viewState.backgroundImage);d.getGlobalVariable=function(b){return"page"==b?m.getName():"pagenumber"==b?1:k.apply(this,arguments)};document.body.appendChild(d.container);d.model.setRoot(m.root)}}n=null!=n?n:this.getXmlFileData(l,p,y,q);x=null!=x?x:this.getCurrentFile();b=this.createFileData(n,d,x,window.location.href,b,c,e,f,l,u,y);d!=this.editor.graph&&d.container.parentNode.removeChild(d.container);return b};EditorUi.prototype.getHtml=
+function(b,c,e,f,l,p){p=null!=p?p:!0;var d=null,g=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=c){var d=p?c.getGraphBounds():c.getBoundingBox(c.getSelectionCells()),k=c.view.scale;p=Math.floor(d.x/k-c.view.translate.x);k=Math.floor(d.y/k-c.view.translate.y);d=c.background;null==l&&(c=this.getBasenames().join(";"),0<c.length&&(g=EditorUi.drawHost+"/embed.js?s="+c));b.setAttribute("x0",p);b.setAttribute("y0",k)}null!=b&&(b.setAttribute("pan","1"),b.setAttribute("zoom","1"),b.setAttribute("resize",
+"0"),b.setAttribute("fit","0"),b.setAttribute("border","20"),b.setAttribute("links","1"),null!=f&&b.setAttribute("edit",f));null!=l&&(l=l.replace(/&/g,"&amp;"));b=null!=b?Graph.zapGremlins(mxUtils.getXml(b)):"";f=Graph.compress(b);Graph.decompress(f)!=b&&(f=encodeURIComponent(b));return(null==l?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=l?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==l?null!=e?
+"<title>"+mxUtils.htmlEntities(e)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=l?'<meta http-equiv="refresh" content="0;URL=\''+l+"'\"/>\n":"")+"</head>\n<body"+(null==l&&null!=d&&d!=mxConstants.NONE?' style="background-color:'+d+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+f+"</div>\n</div>\n"+(null==l?'<script type="text/javascript" src="'+g+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+
+l+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(b,c,e,f,l){c=window.DRAWIO_VIEWER_URL||EditorUi.drawHost+"/js/viewer-static.min.js";null!=l&&(l=l.replace(/&/g,"&amp;"));b={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:Graph.zapGremlins(b),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(b.page=mxUtils.indexOf(this.pages,this.currentPage));
+return(null==l?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=l?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==l?null!=e?"<title>"+mxUtils.htmlEntities(e)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=l?'<meta http-equiv="refresh" content="0;URL=\''+l+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+
+mxUtils.htmlEntities(JSON.stringify(b))+'"></div>\n'+(null==l?'<script type="text/javascript" src="'+c+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+l+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(b){b=this.validateFileData(b);this.pages=this.fileNode=this.currentPage=null;b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:
null;var d=Editor.extractParserError(b,mxResources.get("invalidOrMissingFile"));if(d)throw Error(mxResources.get("notADiagramFile")+" ("+d+")");d=null!=b?this.editor.extractGraphModel(b,!0):null;null!=d&&(b=d);if(null!=b&&"mxfile"==b.nodeName&&(d=b.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name"))){var c=null;this.fileNode=b;this.pages=[];for(var e=0;e<d.length;e++)null==d[e].getAttribute("id")&&d[e].setAttribute("id",e),b=new DiagramPage(d[e]),
null==b.getName()&&b.setName(mxResources.get("pageWithNumber",[e+1])),this.pages.push(b),null!=urlParams["page-id"]&&b.getId()==urlParams["page-id"]&&(c=b);this.currentPage=null!=c?c:this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];b=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=b&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",
[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var f=urlParams["layer-ids"].split(" ");b={};for(e=0;e<f.length;e++)b[f[e]]=!0;for(var l=this.editor.graph.getModel(),n=l.getChildren(l.root),e=0;e<n.length;e++){var u=n[e];l.setVisible(u,b[u.id]||!1)}}catch(x){}};EditorUi.prototype.getBaseFilename=function(b){var d=this.getCurrentFile(),d=null!=d&&null!=d.getTitle()?d.getTitle():
-this.defaultFilename;if(/(\.xml)$/i.test(d)||/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||/(\.png)$/i.test(d))d=d.substring(0,d.lastIndexOf("."));/(\.drawio)$/i.test(d)&&(d=d.substring(0,d.lastIndexOf(".")));!b&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(d=d+"-"+this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(b,c,e,f,m,l,n,u,x,y,t,H){try{f=null!=f?f:this.editor.graph.isSelectionEmpty();
-var d=this.getBaseFilename("remoteSvg"==b?!1:!m),g=d+("xml"==b||"pdf"==b&&t?".drawio":"")+"."+b;if("xml"==b){var k=Graph.xmlDeclaration+"\n"+this.getFileData(!0,null,null,null,f,m,null,null,null,c);this.saveData(g,b,k,"text/xml")}else if("html"==b)k=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(g,b,k,"text/html");else if("svg"!=b&&"xmlsvg"!=b||!this.spinner.spin(document.body,mxResources.get("export"))){var p,q;if("xmlpng"==b)g=d+".png";else if("jpeg"==b)g=d+".jpg";else if("remoteSvg"==
-b){g=d+".svg";b="svg";var v=parseInt(x);"string"===typeof u&&0<u.indexOf("%")&&(u=parseInt(u)/100);if(0<v){var L=this.editor.graph,N=L.getGraphBounds();p=Math.ceil(N.width*u/L.view.scale+2*v);q=Math.ceil(N.height*u/L.view.scale+2*v)}}this.saveRequest(g,b,mxUtils.bind(this,function(d,c){try{var e=this.editor.graph.pageVisible;0==l&&(this.editor.graph.pageVisible=l);var g=this.createDownloadRequest(d,b,f,c,n,m,u,x,y,t,H,p,q);this.editor.graph.pageVisible=e;return g}catch(B){this.handleError(B)}}))}else{var M=
+this.defaultFilename;if(/(\.xml)$/i.test(d)||/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||/(\.png)$/i.test(d))d=d.substring(0,d.lastIndexOf("."));/(\.drawio)$/i.test(d)&&(d=d.substring(0,d.lastIndexOf(".")));!b&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(d=d+"-"+this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(b,c,e,f,l,p,n,u,x,y,q,H){try{f=null!=f?f:this.editor.graph.isSelectionEmpty();
+var d=this.getBaseFilename("remoteSvg"==b?!1:!l),g=d+("xml"==b||"pdf"==b&&q?".drawio":"")+"."+b;if("xml"==b){var k=Graph.xmlDeclaration+"\n"+this.getFileData(!0,null,null,null,f,l,null,null,null,c);this.saveData(g,b,k,"text/xml")}else if("html"==b)k=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(g,b,k,"text/html");else if("svg"!=b&&"xmlsvg"!=b||!this.spinner.spin(document.body,mxResources.get("export"))){var m,t;if("xmlpng"==b)g=d+".png";else if("jpeg"==b)g=d+".jpg";else if("remoteSvg"==
+b){g=d+".svg";b="svg";var v=parseInt(x);"string"===typeof u&&0<u.indexOf("%")&&(u=parseInt(u)/100);if(0<v){var J=this.editor.graph,N=J.getGraphBounds();m=Math.ceil(N.width*u/J.view.scale+2*v);t=Math.ceil(N.height*u/J.view.scale+2*v)}}this.saveRequest(g,b,mxUtils.bind(this,function(d,c){try{var e=this.editor.graph.pageVisible;0==p&&(this.editor.graph.pageVisible=p);var g=this.createDownloadRequest(d,b,f,c,n,l,u,x,y,q,H,m,t);this.editor.graph.pageVisible=e;return g}catch(B){this.handleError(B)}}))}else{var M=
null,Q=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(g,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(M)}))});if("svg"==b){var G=this.editor.graph.background;if(n||G==mxConstants.NONE)G=null;var X=this.editor.graph.getSvg(G,null,null,null,null,f);e&&this.editor.graph.addSvgShadow(X);this.editor.convertImages(X,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();
-Q(Graph.xmlDeclaration+"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(b))})))}else g=d+".svg",M=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();Q(b)}),f)}}catch(ja){this.handleError(ja)}};EditorUi.prototype.createDownloadRequest=function(b,c,e,f,m,l,n,u,x,y,t,H,D){var d=this.editor.graph,g=d.getGraphBounds();e=this.getFileData(!0,null,null,null,e,0==l?!1:"xmlpng"!=c,null,null,null,!1,"pdf"==c);var k="",p="";if(g.width*g.height>MAX_AREA||e.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};
-y=y?"1":"0";"pdf"==c&&(null!=t?p="&from="+t.from+"&to="+t.to:0==l&&(p="&allPages=1"));"xmlpng"==c&&(y="1",c="png");if(("xmlpng"==c||"svg"==c)&&null!=this.pages&&null!=this.currentPage)for(l=0;l<this.pages.length;l++)if(this.pages[l]==this.currentPage){k="&from="+l;break}l=d.background;"png"!=c&&"pdf"!=c&&"svg"!=c||!m?m||null!=l&&l!=mxConstants.NONE||(l="#ffffff"):l=mxConstants.NONE;m={globalVars:d.getExportVariables()};x&&(m.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});Graph.translateDiagram&&
-(m.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+c+k+p+"&bg="+(null!=l?l:mxConstants.NONE)+"&base64="+f+"&embedXml="+y+"&xml="+encodeURIComponent(e)+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(m))+(null!=n?"&scale="+n:"")+(null!=u?"&border="+u:"")+(H&&isFinite(H)?"&w="+H:"")+(D&&isFinite(D)?"&h="+D:""))};EditorUi.prototype.setMode=function(b,c){this.mode=b};EditorUi.prototype.loadDescriptor=function(b,c,e){var d=
+Q(Graph.xmlDeclaration+"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(b))})))}else g=d+".svg",M=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();Q(b)}),f)}}catch(ja){this.handleError(ja)}};EditorUi.prototype.createDownloadRequest=function(b,c,e,f,l,p,n,u,x,y,q,H,D){var d=this.editor.graph,g=d.getGraphBounds();e=this.getFileData(!0,null,null,null,e,0==p?!1:"xmlpng"!=c,null,null,null,!1,"pdf"==c);var k="",m="";if(g.width*g.height>MAX_AREA||e.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};
+y=y?"1":"0";"pdf"==c&&(null!=q?m="&from="+q.from+"&to="+q.to:0==p&&(m="&allPages=1"));"xmlpng"==c&&(y="1",c="png");if(("xmlpng"==c||"svg"==c)&&null!=this.pages&&null!=this.currentPage)for(p=0;p<this.pages.length;p++)if(this.pages[p]==this.currentPage){k="&from="+p;break}p=d.background;"png"!=c&&"pdf"!=c&&"svg"!=c||!l?l||null!=p&&p!=mxConstants.NONE||(p="#ffffff"):p=mxConstants.NONE;l={globalVars:d.getExportVariables()};x&&(l.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});Graph.translateDiagram&&
+(l.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+c+k+m+"&bg="+(null!=p?p:mxConstants.NONE)+"&base64="+f+"&embedXml="+y+"&xml="+encodeURIComponent(e)+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(l))+(null!=n?"&scale="+n:"")+(null!=u?"&border="+u:"")+(H&&isFinite(H)?"&w="+H:"")+(D&&isFinite(D)?"&h="+D:""))};EditorUi.prototype.setMode=function(b,c){this.mode=b};EditorUi.prototype.loadDescriptor=function(b,c,e){var d=
window.location.hash,g=mxUtils.bind(this,function(e){var g=null!=b.data?b.data:"";null!=e&&0<e.length&&(0<g.length&&(g+="\n"),g+=e);e=new LocalFile(this,"csv"!=b.format&&0<g.length?g:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);e.getHash=function(){return d};this.fileLoaded(e);"csv"==b.format&&this.importCsv(g,mxUtils.bind(this,function(b){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=b.update){var k=
-null!=b.interval?parseInt(b.interval):6E4,f=null,m=mxUtils.bind(this,function(){var d=this.currentPage;mxUtils.post(b.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(b){d===this.currentPage&&(200<=b.getStatus()&&300>=b.getStatus()?(this.updateDiagram(b.getText()),l()):this.handleError({message:mxResources.get("error")+" "+b.getStatus()}))}),mxUtils.bind(this,function(b){this.handleError(b)}))}),l=mxUtils.bind(this,function(){window.clearTimeout(f);
-f=window.setTimeout(m,k)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){l();m()}));l();m()}null!=c&&c()});null!=b.url&&0<b.url.length?this.editor.loadUrl(b.url,mxUtils.bind(this,function(b){g(b)}),mxUtils.bind(this,function(b){null!=e&&e(b)})):g("")};EditorUi.prototype.updateDiagram=function(b){function d(b){var d=new mxCellOverlay(b.image||f.warningImage,b.tooltip,b.align,b.valign,b.offset);d.addListener(mxEvent.CLICK,function(d,c){e.alert(b.tooltip)});return d}var c=null,
-e=this;if(null!=b&&0<b.length&&(c=mxUtils.parseXml(b),b=null!=c?c.documentElement:null,null!=b&&"updates"==b.nodeName)){var f=this.editor.graph,l=f.getModel();l.beginUpdate();var n=null;try{for(b=b.firstChild;null!=b;){if("update"==b.nodeName){var u=l.getCell(b.getAttribute("id"));if(null!=u){try{var x=b.getAttribute("value");if(null!=x){var y=mxUtils.parseXml(x).documentElement;if(null!=y)if("1"==y.getAttribute("replace-value"))l.setValue(u,y);else for(var t=y.attributes,H=0;H<t.length;H++)f.setAttributeForCell(u,
-t[H].nodeName,0<t[H].nodeValue.length?t[H].nodeValue:null)}}catch(N){null!=window.console&&console.log("Error in value for "+u.id+": "+N)}try{var D=b.getAttribute("style");null!=D&&f.model.setStyle(u,D)}catch(N){null!=window.console&&console.log("Error in style for "+u.id+": "+N)}try{var F=b.getAttribute("icon");if(null!=F){var O=0<F.length?JSON.parse(F):null;null!=O&&O.append||f.removeCellOverlays(u);null!=O&&f.addCellOverlay(u,d(O))}}catch(N){null!=window.console&&console.log("Error in icon for "+
-u.id+": "+N)}try{var A=b.getAttribute("geometry");if(null!=A){var A=JSON.parse(A),C=f.getCellGeometry(u);if(null!=C){C=C.clone();for(key in A){var E=parseFloat(A[key]);"dx"==key?C.x+=E:"dy"==key?C.y+=E:"dw"==key?C.width+=E:"dh"==key?C.height+=E:C[key]=parseFloat(A[key])}f.model.setGeometry(u,C)}}}catch(N){null!=window.console&&console.log("Error in icon for "+u.id+": "+N)}}}else if("model"==b.nodeName){for(var L=b.firstChild;null!=L&&L.nodeType!=mxConstants.NODETYPE_ELEMENT;)L=L.nextSibling;null!=
-L&&(new mxCodec(b.firstChild)).decode(L,l)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(f.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))f.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(n=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):1);b=b.nextSibling}}finally{l.endUpdate()}null!=n&&this.chromelessResize&&this.chromelessResize(!0,n)}return c};
+null!=b.interval?parseInt(b.interval):6E4,f=null,l=mxUtils.bind(this,function(){var d=this.currentPage;mxUtils.post(b.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(b){d===this.currentPage&&(200<=b.getStatus()&&300>=b.getStatus()?(this.updateDiagram(b.getText()),m()):this.handleError({message:mxResources.get("error")+" "+b.getStatus()}))}),mxUtils.bind(this,function(b){this.handleError(b)}))}),m=mxUtils.bind(this,function(){window.clearTimeout(f);
+f=window.setTimeout(l,k)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){m();l()}));m();l()}null!=c&&c()});null!=b.url&&0<b.url.length?this.editor.loadUrl(b.url,mxUtils.bind(this,function(b){g(b)}),mxUtils.bind(this,function(b){null!=e&&e(b)})):g("")};EditorUi.prototype.updateDiagram=function(b){function d(b){var d=new mxCellOverlay(b.image||f.warningImage,b.tooltip,b.align,b.valign,b.offset);d.addListener(mxEvent.CLICK,function(d,c){e.alert(b.tooltip)});return d}var c=null,
+e=this;if(null!=b&&0<b.length&&(c=mxUtils.parseXml(b),b=null!=c?c.documentElement:null,null!=b&&"updates"==b.nodeName)){var f=this.editor.graph,l=f.getModel();l.beginUpdate();var n=null;try{for(b=b.firstChild;null!=b;){if("update"==b.nodeName){var u=l.getCell(b.getAttribute("id"));if(null!=u){try{var x=b.getAttribute("value");if(null!=x){var y=mxUtils.parseXml(x).documentElement;if(null!=y)if("1"==y.getAttribute("replace-value"))l.setValue(u,y);else for(var q=y.attributes,H=0;H<q.length;H++)f.setAttributeForCell(u,
+q[H].nodeName,0<q[H].nodeValue.length?q[H].nodeValue:null)}}catch(N){null!=window.console&&console.log("Error in value for "+u.id+": "+N)}try{var D=b.getAttribute("style");null!=D&&f.model.setStyle(u,D)}catch(N){null!=window.console&&console.log("Error in style for "+u.id+": "+N)}try{var F=b.getAttribute("icon");if(null!=F){var O=0<F.length?JSON.parse(F):null;null!=O&&O.append||f.removeCellOverlays(u);null!=O&&f.addCellOverlay(u,d(O))}}catch(N){null!=window.console&&console.log("Error in icon for "+
+u.id+": "+N)}try{var A=b.getAttribute("geometry");if(null!=A){var A=JSON.parse(A),C=f.getCellGeometry(u);if(null!=C){C=C.clone();for(key in A){var E=parseFloat(A[key]);"dx"==key?C.x+=E:"dy"==key?C.y+=E:"dw"==key?C.width+=E:"dh"==key?C.height+=E:C[key]=parseFloat(A[key])}f.model.setGeometry(u,C)}}}catch(N){null!=window.console&&console.log("Error in icon for "+u.id+": "+N)}}}else if("model"==b.nodeName){for(var J=b.firstChild;null!=J&&J.nodeType!=mxConstants.NODETYPE_ELEMENT;)J=J.nextSibling;null!=
+J&&(new mxCodec(b.firstChild)).decode(J,l)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(f.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))f.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(n=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):1);b=b.nextSibling}}finally{l.endUpdate()}null!=n&&this.chromelessResize&&this.chromelessResize(!0,n)}return c};
EditorUi.prototype.getCopyFilename=function(b,c){var d=null!=b&&null!=b.getTitle()?b.getTitle():this.defaultFilename,e="",k=d.lastIndexOf(".");0<=k&&(e=d.substring(k),d=d.substring(0,k));if(c)var f=new Date,k=f.getFullYear(),l=f.getMonth()+1,n=f.getDate(),x=f.getHours(),y=f.getMinutes(),f=f.getSeconds(),d=d+(" "+(k+"-"+l+"-"+n+"-"+x+"-"+y+"-"+f));return d=mxResources.get("copyOf",[d])+e};EditorUi.prototype.fileLoaded=function(b,c){var d=this.getCurrentFile();this.fileEditable=this.fileLoadedError=
null;this.setCurrentFile(null);var e=!1;this.hideDialog();null!=d&&(EditorUi.debug("File.closed",[d]),d.removeListener(this.descriptorChangedListener),d.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var k=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=d&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);!c&&null!=window.location.hash&&0<window.location.hash.length&&
(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();c||this.showSplash()});if(null!=b)try{mxClient.IS_SF&&"min"==uiTheme&&(this.diagramContainer.style.visibility="");this.openingFile=!0;this.setCurrentFile(b);b.addListener("descriptorChanged",this.descriptorChangedListener);b.addListener("contentChanged",this.descriptorChangedListener);b.open();
@@ -3501,22 +3501,22 @@ b,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.cre
function(b){var d=this.sidebar.palettes[b];if(null!=d){for(var c=0;c<d.length;c++)d[c].parentNode.removeChild(d[c]);delete this.sidebar.palettes[b]}};EditorUi.prototype.repositionLibrary=function(b){var d=this.sidebar.container;if(null==b){var c=this.sidebar.palettes["L.scratchpad"];null==c&&(c=this.sidebar.palettes.search);null!=c&&(b=c[c.length-1].nextSibling)}b=null!=b?b:d.firstChild.nextSibling.nextSibling;var c=d.lastChild,e=c.previousSibling;d.insertBefore(c,b);d.insertBefore(e,c)};EditorUi.prototype.loadLibrary=
function(b,c){var d=mxUtils.parseXml(b.getData());if("mxlibrary"==d.documentElement.nodeName){var e=JSON.parse(mxUtils.getTextContent(d.documentElement));this.libraryLoaded(b,e,d.documentElement.getAttribute("title"),c)}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(b){return""};EditorUi.prototype.libraryLoaded=function(b,c,e,f){if(null!=this.sidebar){b.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(b.getHash());".scratchpad"==b.title&&
(this.scratchpad=b);var d=this.sidebar.palettes[b.getHash()],d=null!=d?d[d.length-1].nextSibling:null;this.removeLibrarySidebar(b.getHash());var g=null,k=mxUtils.bind(this,function(d,c){0==d.length&&b.isEditable()?(null==g&&(g=document.createElement("div"),g.className="geDropTarget",mxUtils.write(g,mxResources.get("dragElementsHere"))),c.appendChild(g)):this.addLibraryEntries(d,c)});null!=this.sidebar&&null!=c&&this.sidebar.addEntries(c);null==e&&(e=b.getTitle(),null!=e&&/(\.xml)$/i.test(e)&&(e=e.substring(0,
-e.lastIndexOf("."))));var l=this.sidebar.addPalette(b.getHash(),e,null!=f?f:!0,mxUtils.bind(this,function(b){k(c,b)}));this.repositionLibrary(d);var q=l.parentNode.previousSibling;f=q.getAttribute("title");null!=f&&0<f.length&&".scratchpad"!=b.title&&q.setAttribute("title",this.getLibraryStorageHint(b)+"\n"+f);var n=document.createElement("div");n.style.position="absolute";n.style.right="0px";n.style.top="0px";n.style.padding="8px";n.style.backgroundColor="inherit";q.style.position="relative";var t=
-document.createElement("img");t.setAttribute("src",Editor.crossImage);t.setAttribute("title",mxResources.get("close"));t.setAttribute("valign","absmiddle");t.setAttribute("border","0");t.style.position="relative";t.style.top="2px";t.style.width="14px";t.style.cursor="pointer";t.style.margin="0 3px";Editor.isDarkMode()&&(t.style.filter="invert(100%)");var H=null;if(".scratchpad"!=b.title||this.closableScratchpad)n.appendChild(t),mxEvent.addListener(t,"click",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d)){var c=
-mxUtils.bind(this,function(){this.closeLibrary(b)});null!=H?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(d)}}));if(b.isEditable()){var D=this.editor.graph,F=null,O=mxUtils.bind(this,function(d){this.showLibraryDialog(b.getTitle(),l,c,b,b.getMode());mxEvent.consume(d)}),A=mxUtils.bind(this,function(d){b.setModified(!0);b.isAutosave()?(null!=F&&null!=F.parentNode&&F.parentNode.removeChild(F),F=t.cloneNode(!1),
-F.setAttribute("src",Editor.spinImage),F.setAttribute("title",mxResources.get("saving")),F.style.cursor="default",F.style.marginRight="2px",F.style.marginTop="-2px",n.insertBefore(F,n.firstChild),q.style.paddingRight=18*n.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=F&&null!=F.parentNode&&(F.parentNode.removeChild(F),q.style.paddingRight=18*n.childNodes.length+"px")})):null==H&&(H=t.cloneNode(!1),H.setAttribute("src",Editor.saveImage),H.setAttribute("title",
-mxResources.get("save")),n.insertBefore(H,n.firstChild),mxEvent.addListener(H,"click",mxUtils.bind(this,function(d){this.saveLibrary(b.getTitle(),c,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==H||b.isModified()||(q.style.paddingRight=18*n.childNodes.length+"px",H.parentNode.removeChild(H),H=null)});mxEvent.consume(d)})),q.style.paddingRight=18*n.childNodes.length+"px")}),C=mxUtils.bind(this,function(b,d,e,f){b=D.cloneCells(mxUtils.sortCells(D.model.getTopmostCells(b)));for(var k=
+e.lastIndexOf("."))));var l=this.sidebar.addPalette(b.getHash(),e,null!=f?f:!0,mxUtils.bind(this,function(b){k(c,b)}));this.repositionLibrary(d);var t=l.parentNode.previousSibling;f=t.getAttribute("title");null!=f&&0<f.length&&".scratchpad"!=b.title&&t.setAttribute("title",this.getLibraryStorageHint(b)+"\n"+f);var n=document.createElement("div");n.style.position="absolute";n.style.right="0px";n.style.top="0px";n.style.padding="8px";n.style.backgroundColor="inherit";t.style.position="relative";var q=
+document.createElement("img");q.setAttribute("src",Editor.crossImage);q.setAttribute("title",mxResources.get("close"));q.setAttribute("valign","absmiddle");q.setAttribute("border","0");q.style.position="relative";q.style.top="2px";q.style.width="14px";q.style.cursor="pointer";q.style.margin="0 3px";Editor.isDarkMode()&&(q.style.filter="invert(100%)");var H=null;if(".scratchpad"!=b.title||this.closableScratchpad)n.appendChild(q),mxEvent.addListener(q,"click",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d)){var c=
+mxUtils.bind(this,function(){this.closeLibrary(b)});null!=H?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(d)}}));if(b.isEditable()){var D=this.editor.graph,F=null,O=mxUtils.bind(this,function(d){this.showLibraryDialog(b.getTitle(),l,c,b,b.getMode());mxEvent.consume(d)}),A=mxUtils.bind(this,function(d){b.setModified(!0);b.isAutosave()?(null!=F&&null!=F.parentNode&&F.parentNode.removeChild(F),F=q.cloneNode(!1),
+F.setAttribute("src",Editor.spinImage),F.setAttribute("title",mxResources.get("saving")),F.style.cursor="default",F.style.marginRight="2px",F.style.marginTop="-2px",n.insertBefore(F,n.firstChild),t.style.paddingRight=18*n.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=F&&null!=F.parentNode&&(F.parentNode.removeChild(F),t.style.paddingRight=18*n.childNodes.length+"px")})):null==H&&(H=q.cloneNode(!1),H.setAttribute("src",Editor.saveImage),H.setAttribute("title",
+mxResources.get("save")),n.insertBefore(H,n.firstChild),mxEvent.addListener(H,"click",mxUtils.bind(this,function(d){this.saveLibrary(b.getTitle(),c,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==H||b.isModified()||(t.style.paddingRight=18*n.childNodes.length+"px",H.parentNode.removeChild(H),H=null)});mxEvent.consume(d)})),t.style.paddingRight=18*n.childNodes.length+"px")}),C=mxUtils.bind(this,function(b,d,e,f){b=D.cloneCells(mxUtils.sortCells(D.model.getTopmostCells(b)));for(var k=
0;k<b.length;k++){var m=D.getCellGeometry(b[k]);null!=m&&m.translate(-d.x,-d.y)}l.appendChild(this.sidebar.createVertexTemplateFromCells(b,d.width,d.height,f||"",!0,null,!1));b={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),w:d.width,h:d.height};null!=f&&(b.title=f);c.push(b);A(e);null!=g&&null!=g.parentNode&&0<c.length&&(g.parentNode.removeChild(g),g=null)}),E=mxUtils.bind(this,function(b){if(D.isSelectionEmpty())D.getRubberband().isActive()?(D.getRubberband().execute(b),D.getRubberband().reset()):
this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=D.getSelectionCells(),c=D.view.getBounds(d),e=D.view.scale;c.x/=e;c.y/=e;c.width/=e;c.height/=e;c.x-=D.view.translate.x;c.y-=D.view.translate.y;C(d,c)}mxEvent.consume(b)});mxEvent.addGestureListeners(l,function(){},mxUtils.bind(this,function(b){D.isMouseDown&&null!=D.panningManager&&null!=D.graphHandler.first&&(D.graphHandler.suspend(),null!=D.graphHandler.hint&&(D.graphHandler.hint.style.visibility=
"hidden"),l.style.backgroundColor="#f1f3f4",l.style.cursor="copy",D.panningManager.stop(),D.autoScroll=!1,mxEvent.consume(b))}),mxUtils.bind(this,function(b){D.isMouseDown&&null!=D.panningManager&&null!=D.graphHandler&&(l.style.backgroundColor="",l.style.cursor="default",this.sidebar.showTooltips=!0,D.panningManager.stop(),D.graphHandler.reset(),D.isMouseDown=!1,D.autoScroll=!0,E(b),mxEvent.consume(b))}));mxEvent.addListener(l,"mouseleave",mxUtils.bind(this,function(b){D.isMouseDown&&null!=D.graphHandler.first&&
(D.graphHandler.resume(),null!=D.graphHandler.hint&&(D.graphHandler.hint.style.visibility="visible"),l.style.backgroundColor="",l.style.cursor="",D.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(l,"dragover",mxUtils.bind(this,function(b){l.style.backgroundColor="#f1f3f4";b.dataTransfer.dropEffect="copy";l.style.cursor="copy";this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()})),mxEvent.addListener(l,"drop",mxUtils.bind(this,function(b){l.style.cursor="";l.style.backgroundColor=
-"";0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(d,e,f,m,p,q,n,u,v){if(null!=d&&"image/"==e.substring(0,6))d="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(d),d=[new mxCell("",new mxGeometry(0,0,p,q),d)],d[0].vertex=!0,C(d,new mxRectangle(0,0,p,q),b,mxEvent.isAltDown(b)?null:n.substring(0,n.lastIndexOf(".")).replace(/_/g," ")),null!=g&&null!=g.parentNode&&0<c.length&&
+"";0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(d,e,f,m,p,t,n,u,v){if(null!=d&&"image/"==e.substring(0,6))d="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(d),d=[new mxCell("",new mxGeometry(0,0,p,t),d)],d[0].vertex=!0,C(d,new mxRectangle(0,0,p,t),b,mxEvent.isAltDown(b)?null:n.substring(0,n.lastIndexOf(".")).replace(/_/g," ")),null!=g&&null!=g.parentNode&&0<c.length&&
(g.parentNode.removeChild(g),g=null);else{var y=!1,x=mxUtils.bind(this,function(d,e){if(null!=d&&"application/pdf"==e){var f=Editor.extractGraphModelFromPdf(d);null!=f&&0<f.length&&(d=f)}if(null!=d)if(f=mxUtils.parseXml(d),"mxlibrary"==f.documentElement.nodeName)try{var m=JSON.parse(mxUtils.getTextContent(f.documentElement));k(m,l);c=c.concat(m);A(b);this.spinner.stop();y=!0}catch(ka){}else if("mxfile"==f.documentElement.nodeName)try{for(var p=f.documentElement.getElementsByTagName("diagram"),m=0;m<
-p.length;m++){var q=this.stringToCells(Editor.getDiagramNodeXml(p[m])),n=this.editor.graph.getBoundingBoxFromGeometry(q);C(q,new mxRectangle(0,0,n.width,n.height),b)}y=!0}catch(ka){null!=window.console&&console.log("error in drop handler:",ka)}y||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=g&&null!=g.parentNode&&0<c.length&&(g.parentNode.removeChild(g),g=null)});null!=v&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?this.importVisio(v,
+p.length;m++){var t=this.stringToCells(Editor.getDiagramNodeXml(p[m])),n=this.editor.graph.getBoundingBoxFromGeometry(t);C(t,new mxRectangle(0,0,n.width,n.height),b)}y=!0}catch(ka){null!=window.console&&console.log("error in drop handler:",ka)}y||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=g&&null!=g.parentNode&&0<c.length&&(g.parentNode.removeChild(g),g=null)});null!=v&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?this.importVisio(v,
function(b){x(b,"text/xml")},null,n):(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,n)&&null!=v?this.isExternalDataComms()?this.parseFile(v,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?x(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("notInOffline"))):
-x(d,e)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(l,"dragleave",function(b){l.style.cursor="";l.style.backgroundColor="";b.stopPropagation();b.preventDefault()}));t=t.cloneNode(!1);t.setAttribute("src",Editor.editImage);t.setAttribute("title",mxResources.get("edit"));n.insertBefore(t,n.firstChild);mxEvent.addListener(t,"click",O);mxEvent.addListener(l,"dblclick",function(b){mxEvent.getSource(b)==l&&O(b)});f=t.cloneNode(!1);f.setAttribute("src",Editor.plusImage);f.setAttribute("title",
-mxResources.get("add"));n.insertBefore(f,n.firstChild);mxEvent.addListener(f,"click",E);this.isOffline()||".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(f=document.createElement("span"),f.setAttribute("title",mxResources.get("help")),f.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;cursor:pointer;",mxUtils.write(f,"?"),mxEvent.addGestureListeners(f,mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(b)})),n.insertBefore(f,n.firstChild))}q.appendChild(n);
-q.style.paddingRight=18*n.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(b,c){for(var d=0;d<b.length;d++){var e=b[d],f=e.data;if(null!=f){var f=this.convertDataUri(f),k="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==e.aspect&&(k+="aspect=fixed;");c.appendChild(this.sidebar.createVertexTemplate(k+"image="+f,e.w,e.h,"",e.title||"",!1,null,!0))}else null!=e.xml&&(f=this.stringToCells(Graph.decompress(e.xml)),0<f.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(f,
+x(d,e)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(l,"dragleave",function(b){l.style.cursor="";l.style.backgroundColor="";b.stopPropagation();b.preventDefault()}));q=q.cloneNode(!1);q.setAttribute("src",Editor.editImage);q.setAttribute("title",mxResources.get("edit"));n.insertBefore(q,n.firstChild);mxEvent.addListener(q,"click",O);mxEvent.addListener(l,"dblclick",function(b){mxEvent.getSource(b)==l&&O(b)});f=q.cloneNode(!1);f.setAttribute("src",Editor.plusImage);f.setAttribute("title",
+mxResources.get("add"));n.insertBefore(f,n.firstChild);mxEvent.addListener(f,"click",E);this.isOffline()||".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(f=document.createElement("span"),f.setAttribute("title",mxResources.get("help")),f.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;cursor:pointer;",mxUtils.write(f,"?"),mxEvent.addGestureListeners(f,mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(b)})),n.insertBefore(f,n.firstChild))}t.appendChild(n);
+t.style.paddingRight=18*n.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(b,c){for(var d=0;d<b.length;d++){var e=b[d],f=e.data;if(null!=f){var f=this.convertDataUri(f),k="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==e.aspect&&(k+="aspect=fixed;");c.appendChild(this.sidebar.createVertexTemplate(k+"image="+f,e.w,e.h,"",e.title||"",!1,null,!0))}else null!=e.xml&&(f=this.stringToCells(Graph.decompress(e.xml)),0<f.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(f,
e.w,e.h,e.title||"",!0,null,!0)))}};EditorUi.prototype.getResource=function(b){return null!=b?b[mxLanguage]||b.main:null};EditorUi.prototype.footerHeight=0;"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64);EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground="linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground=
"rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38):Editor.isDarkMode()&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor=Editor.darkColor,Format.inactiveTabBackgroundColor="black",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.shapeBackgroundColor=Editor.darkColor,Graph.prototype.shapeForegroundColor=Editor.lightColor,Graph.prototype.defaultPageBackgroundColor=Editor.darkColor,Graph.prototype.defaultPageBorderColor=
"#505759",BaseFormatPanel.prototype.buttonBackgroundColor=Editor.darkColor,mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxConstants.DROP_TARGET_COLOR="#00ff00");Editor.sketchFontFamily="Architects Daughter";Editor.sketchFontSource="https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter";Editor.sketchFonts=[{fontFamily:Editor.sketchFontFamily,fontUrl:decodeURIComponent(Editor.sketchFontSource)}];"1"==urlParams.sketch&&("undefined"!==
@@ -3526,8 +3526,8 @@ null,b);c.ignoreColor=!0;this.editor.graph.model.execute(c)}});var d=new Backgro
arguments);this.editor.graph.addListener("viewStateChanged",mxUtils.bind(this,function(b){this.editor.graph.isSelectionEmpty()&&d.refresh()}));return d};EditorUi.prototype.createSidebarFooterContainer=function(){var b=this.createDiv("geSidebarContainer geSidebarFooter");b.style.position="absolute";b.style.overflow="hidden";var c=document.createElement("a");c.className="geTitle";c.style.color="#DF6C0C";c.style.fontWeight="bold";c.style.height="100%";c.style.paddingTop="9px";c.innerHTML="<span>+</span>";
var e=c.getElementsByTagName("span")[0];e.style.fontSize="18px";e.style.marginRight="5px";mxUtils.write(c,mxResources.get("moreShapes")+"...");mxEvent.addListener(c,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(c,"click",mxUtils.bind(this,function(b){this.actions.get("shapes").funct();mxEvent.consume(b)}));b.appendChild(c);return b};EditorUi.prototype.handleError=function(b,c,e,f,l,p,n){var d=null!=this.spinner&&null!=this.spinner.pause?
this.spinner.pause():function(){},g=null!=b&&null!=b.error?b.error:b;if(null!=b&&null!=b.stack&&null!=b.message)try{n?null!=window.console&&console.error("EditorUi.handleError:",b):EditorUi.logError("Caught: "+(""==b.message&&null!=b.name)?b.name:b.message,b.filename,b.lineNumber,b.columnNumber,b,"INFO")}catch(F){}if(null!=g||null!=c){n=mxUtils.htmlEntities(mxResources.get("unknownError"));var k=mxResources.get("ok"),m=null;c=null!=c?c:mxResources.get("error");if(null!=g){null!=g.retry&&(k=mxResources.get("cancel"),
-m=function(){d();g.retry()});if(404==g.code||404==g.status||403==g.code){n=403==g.code?null!=g.message?mxUtils.htmlEntities(g.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=l?l:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var q=null!=l?null:null!=p?p:window.location.hash;if(null!=q&&("#G"==q.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==
-q.substring(0,45))&&(null!=b&&null!=b.error&&(null!=b.error.errors&&0<b.error.errors.length&&"fileAccess"==b.error.errors[0].reason||null!=b.error.data&&0<b.error.data.length&&"fileAccess"==b.error.data[0].reason)||404==g.code||404==g.status)){q="#U"==q.substring(0,2)?q.substring(45,q.lastIndexOf("%26ex")):q.substring(2);this.showError(c,n,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+q);this.handleError(b,c,e,f,l)}),
+m=function(){d();g.retry()});if(404==g.code||404==g.status||403==g.code){n=403==g.code?null!=g.message?mxUtils.htmlEntities(g.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=l?l:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var t=null!=l?null:null!=p?p:window.location.hash;if(null!=t&&("#G"==t.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==
+t.substring(0,45))&&(null!=b&&null!=b.error&&(null!=b.error.errors&&0<b.error.errors.length&&"fileAccess"==b.error.errors[0].reason||null!=b.error.data&&0<b.error.data.length&&"fileAccess"==b.error.data[0].reason)||404==g.code||404==g.status)){t="#U"==t.substring(0,2)?t.substring(45,t.lastIndexOf("%26ex")):t.substring(2);this.showError(c,n,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+t);this.handleError(b,c,e,f,l)}),
m,mxResources.get("changeUser"),mxUtils.bind(this,function(){function b(){g.innerHTML="";for(var b=0;b<d.length;b++){var c=document.createElement("option");mxUtils.write(c,d[b].displayName);c.value=b;g.appendChild(c);c=document.createElement("option");c.innerHTML="&nbsp;&nbsp;&nbsp;";mxUtils.write(c,"<"+d[b].email+">");c.setAttribute("disabled","disabled");g.appendChild(c)}c=document.createElement("option");mxUtils.write(c,mxResources.get("addAccount"));c.value=d.length;g.appendChild(c)}var d=this.drive.getUsersList(),
c=document.createElement("div"),e=document.createElement("span");e.style.marginTop="6px";mxUtils.write(e,mxResources.get("changeUser")+": ");c.appendChild(e);var g=document.createElement("select");g.style.width="200px";b();mxEvent.addListener(g,"change",mxUtils.bind(this,function(){var c=g.value,e=d.length!=c;e&&this.drive.setUser(d[c]);this.drive.authorize(e,mxUtils.bind(this,function(){e||(d=this.drive.getUsersList(),b())}),mxUtils.bind(this,function(b){this.handleError(b)}),!0)}));c.appendChild(g);
c=new CustomDialog(this,c,mxUtils.bind(this,function(){this.loadFile(window.location.hash.substr(1),!0)}));this.showDialog(c.container,300,100,!0,!0)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.hideDialog();null!=e&&e()}),480,150);return}}null!=g.message?n=""==g.message&&null!=g.name?mxUtils.htmlEntities(g.name):mxUtils.htmlEntities(g.message):null!=g.response&&null!=g.response.error?n=mxUtils.htmlEntities(g.response.error):"undefined"!==typeof window.App&&(g.code==App.ERROR_TIMEOUT?
@@ -3536,15 +3536,15 @@ mxUtils.htmlEntities(g.ownerEmail))}));this.showError(c,n,k,e,m,null,null,p,v,nu
c()},function(){d();null!=e&&e()},f,l,null,null,null,null,g);this.showDialog(b.container,340,46+g,!0,p);b.init()};EditorUi.prototype.showBanner=function(b,c,e,f){var d=!1;if(!(this.bannerShowing||this["hideBanner"+b]||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings["close"+b])){var g=document.createElement("div");g.style.cssText="position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:"+
mxPopupMenu.prototype.zIndex+";";mxUtils.setPrefixedStyle(g.style,"box-shadow","1px 1px 2px 0px #ddd");mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,120%)");mxUtils.setPrefixedStyle(g.style,"transition","all 1s ease");g.className="geBtn gePrimaryBtn";d=document.createElement("img");d.setAttribute("src",IMAGE_PATH+"/logo.png");d.setAttribute("border","0");d.setAttribute("align","absmiddle");d.style.cssText="margin-top:-4px;margin-left:8px;margin-right:12px;width:26px;height:26px;";g.appendChild(d);
d=document.createElement("img");d.setAttribute("src",Dialog.prototype.closeImage);d.setAttribute("title",mxResources.get(f?"doNotShowAgain":"close"));d.setAttribute("border","0");d.style.cssText="position:absolute;right:10px;top:12px;filter:invert(1);padding:6px;margin:-6px;cursor:default;";g.appendChild(d);mxUtils.write(g,c);document.body.appendChild(g);this.bannerShowing=!0;c=document.createElement("div");c.style.cssText="font-size:11px;text-align:center;font-weight:normal;";var k=document.createElement("input");
-k.setAttribute("type","checkbox");k.setAttribute("id","geDoNotShowAgainCheckbox");k.style.marginRight="6px";if(!f){c.appendChild(k);var l=document.createElement("label");l.setAttribute("for","geDoNotShowAgainCheckbox");mxUtils.write(l,mxResources.get("doNotShowAgain"));c.appendChild(l);g.style.paddingBottom="30px";g.appendChild(c)}var q=mxUtils.bind(this,function(){null!=g.parentNode&&(g.parentNode.removeChild(g),this.bannerShowing=!1,k.checked||f)&&(this["hideBanner"+b]=!0,isLocalStorage&&null!=
-mxSettings.settings&&(mxSettings.settings["close"+b]=Date.now(),mxSettings.save()))});mxEvent.addListener(d,"click",mxUtils.bind(this,function(b){mxEvent.consume(b);q()}));var n=mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,120%)");window.setTimeout(mxUtils.bind(this,function(){q()}),1E3)});mxEvent.addListener(g,"click",mxUtils.bind(this,function(b){var d=mxEvent.getSource(b);d!=k&&d!=l?(null!=e&&e(),q(),mxEvent.consume(b)):n()}));window.setTimeout(mxUtils.bind(this,
+k.setAttribute("type","checkbox");k.setAttribute("id","geDoNotShowAgainCheckbox");k.style.marginRight="6px";if(!f){c.appendChild(k);var l=document.createElement("label");l.setAttribute("for","geDoNotShowAgainCheckbox");mxUtils.write(l,mxResources.get("doNotShowAgain"));c.appendChild(l);g.style.paddingBottom="30px";g.appendChild(c)}var t=mxUtils.bind(this,function(){null!=g.parentNode&&(g.parentNode.removeChild(g),this.bannerShowing=!1,k.checked||f)&&(this["hideBanner"+b]=!0,isLocalStorage&&null!=
+mxSettings.settings&&(mxSettings.settings["close"+b]=Date.now(),mxSettings.save()))});mxEvent.addListener(d,"click",mxUtils.bind(this,function(b){mxEvent.consume(b);t()}));var n=mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,120%)");window.setTimeout(mxUtils.bind(this,function(){t()}),1E3)});mxEvent.addListener(g,"click",mxUtils.bind(this,function(b){var d=mxEvent.getSource(b);d!=k&&d!=l?(null!=e&&e(),t(),mxEvent.consume(b)):n()}));window.setTimeout(mxUtils.bind(this,
function(){mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(n,3E4);d=!0}return d};EditorUi.prototype.setCurrentFile=function(b){null!=b&&(b.opened=new Date);this.currentFile=b};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=function(){return this.editor.isExportToCanvas()};EditorUi.prototype.createImageDataUri=function(b,c,e,f){b=b.toDataURL("image/"+e);if(null!=b&&6<b.length)null!=c&&(b=Editor.writeGraphModelToPng(b,
"tEXt","mxfile",encodeURIComponent(c))),0<f&&(b=Editor.writeGraphModelToPng(b,"pHYs","dpi",f));else throw{message:mxResources.get("unknownError")};return b};EditorUi.prototype.saveCanvas=function(b,c,e,f,l){var d="jpeg"==e?"jpg":e;f=this.getBaseFilename(f)+(null!=c?".drawio":"")+"."+d;b=this.createImageDataUri(b,c,e,l);this.saveData(f,d,b.substring(b.lastIndexOf(",")+1),"image/"+e,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&
"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.showTextDialog=function(b,c){var d=new TextareaDialog(this,b,c,null,null,mxResources.get("close"));this.showDialog(d.container,620,460,!0,!0,null,null,null,null,!0);d.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(b,c,e,f,l,p){"text/xml"!=e||/(\.drawio)$/i.test(c)||/(\.xml)$/i.test(c)||
/(\.svg)$/i.test(c)||/(\.html)$/i.test(c)||(c=c+"."+(null!=p?p:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)b=f?this.base64ToBlob(b,e):new Blob([b],{type:e}),navigator.msSaveOrOpenBlob(b,c);else if(mxClient.IS_IE)e=window.open("about:blank","_blank"),null==e?mxUtils.popup(b,!0):(e.document.write(b),e.document.close(),e.document.execCommand("SaveAs",!0,c),e.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==e||"image/"!=e.substring(0,6)?this.showTextDialog(c+":",
b):this.openInNewWindow(b,e,f);else{var d=document.createElement("a");p=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof d.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var g=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);p=65==(g?parseInt(g[2],10):!1)?!1:p}if(p||this.isOffline()){d.href=URL.createObjectURL(f?this.base64ToBlob(b,e):new Blob([b],{type:e}));p?d.download=c:d.setAttribute("target","_blank");document.body.appendChild(d);try{window.setTimeout(function(){URL.revokeObjectURL(d.href)},
2E4),d.click(),d.parentNode.removeChild(d)}catch(x){}}else this.createEchoRequest(b,c,e,f,l).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(b,c,e,f,l,p){b="xml="+encodeURIComponent(b);return new mxXmlRequest(SAVE_URL,b+(null!=e?"&mime="+e:"")+(null!=l?"&format="+l:"")+(null!=p?"&base64="+p:"")+(null!=c?"&filename="+encodeURIComponent(c):"")+(f?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(b,c){c=c||"";for(var d=atob(b),e=d.length,f=Math.ceil(e/1024),k=Array(f),
-l=0;l<f;++l){for(var n=1024*l,x=Math.min(n+1024,e),y=Array(x-n),t=0;n<x;++t,++n)y[t]=d[n].charCodeAt(0);k[l]=new Uint8Array(y)}return new Blob(k,{type:c})};EditorUi.prototype.saveLocalFile=function(b,c,e,f,l,p,n,u){p=null!=p?p:!1;n=null!=n?n:"vsdx"!=l&&(!mxClient.IS_IOS||!navigator.standalone);l=this.getServiceCount(p);isLocalStorage&&l++;var d=4>=l?2:6<l?4:3;c=new CreateDialog(this,c,mxUtils.bind(this,function(d,c){try{if("_blank"==c)if(null!=e&&"image/"==e.substring(0,6))this.openInNewWindow(b,
+l=0;l<f;++l){for(var n=1024*l,x=Math.min(n+1024,e),y=Array(x-n),q=0;n<x;++q,++n)y[q]=d[n].charCodeAt(0);k[l]=new Uint8Array(y)}return new Blob(k,{type:c})};EditorUi.prototype.saveLocalFile=function(b,c,e,f,l,p,n,u){p=null!=p?p:!1;n=null!=n?n:"vsdx"!=l&&(!mxClient.IS_IOS||!navigator.standalone);l=this.getServiceCount(p);isLocalStorage&&l++;var d=4>=l?2:6<l?4:3;c=new CreateDialog(this,c,mxUtils.bind(this,function(d,c){try{if("_blank"==c)if(null!=e&&"image/"==e.substring(0,6))this.openInNewWindow(b,
e,f);else if(null!=e&&"text/html"==e.substring(0,9)){var g=new EmbedDialog(this,b);this.showDialog(g.container,450,240,!0,!0);g.init()}else{var k=window.open("about:blank");null==k?mxUtils.popup(b,!0):(k.document.write("<pre>"+mxUtils.htmlEntities(b,!1)+"</pre>"),k.document.close())}else c==App.MODE_DEVICE||"download"==c?this.doSaveLocalFile(b,d,e,f,null,u):null!=d&&0<d.length&&this.pickFolder(c,mxUtils.bind(this,function(g){try{this.exportFile(b,d,e,f,c,g)}catch(O){this.handleError(O)}}))}catch(F){this.handleError(F)}}),
mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,p,n,null,1<l,d,b,e,f);p=this.isServices(l)?l>d?390:280:160;this.showDialog(c.container,420,p,!0,!0);c.init()};EditorUi.prototype.openInNewWindow=function(b,c,e){var d=window.open("about:blank");null==d||null==d.document?mxUtils.popup(b,!0):("image/svg+xml"!=c||mxClient.IS_SVG?"image/svg+xml"==c?d.document.write("<html>"+b+"</html>"):(b=e?b:btoa(unescape(encodeURIComponent(b))),d.document.write('<html><img style="max-width:100%;" src="data:'+
c+";base64,"+b+'"/></html>')):d.document.write("<html><pre>"+mxUtils.htmlEntities(b,!1)+"</pre></html>"),d.document.close())};var f=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.isChromelessImageExportEnabled=function(){return"draw.io"!=this.getServiceName()||/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname)};EditorUi.prototype.addChromelessToolbarItems=function(b){if(null!=urlParams.tags){this.tagsDialog=this.tagsComponent=null;
@@ -3561,10 +3561,10 @@ this.exportDialog.style.zIndex=e.zIndex;var g=new Spinner({lines:8,length:6,widt
Editor.defaultBorder);mxEvent.addListener(this.editor.graph.container,"click",d);document.body.appendChild(this.exportDialog)}mxEvent.consume(b)}),Editor.cameraImage,mxResources.get("export"))}};EditorUi.prototype.saveData=function(b,c,e,f,l){this.isLocalFileSave()?this.saveLocalFile(e,b,f,l,c):this.saveRequest(b,c,mxUtils.bind(this,function(b,d){return this.createEchoRequest(e,b,f,l,c,d)}),e,l,f)};EditorUi.prototype.saveRequest=function(b,c,e,f,l,p,n){n=null!=n?n:!mxClient.IS_IOS||!navigator.standalone;
var d=this.getServiceCount(!1);isLocalStorage&&d++;var g=4>=d?2:6<d?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(b,d){if("_blank"==d||null!=b&&0<b.length){var g=e("_blank"==d?null:b,d==App.MODE_DEVICE||"download"==d||null==d||"_blank"==d?"0":"1");null!=g&&(d==App.MODE_DEVICE||"download"==d||"_blank"==d?g.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(e){p=null!=p?p:"pdf"==c?"application/pdf":"image/"+c;if(null!=f)try{this.exportFile(f,b,p,!0,d,e)}catch(F){this.handleError(F)}else this.spinner.spin(document.body,
mxResources.get("saving"))&&g.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=g.getStatus()&&299>=g.getStatus())try{this.exportFile(g.getText(),b,p,!0,d,e)}catch(F){this.handleError(F)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(b){this.spinner.stop();this.handleError(b)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,n,null,1<d,g,f,p,l);d=this.isServices(d)?4<d?390:280:160;this.showDialog(b.container,
-420,d,!0,!0);b.init()};EditorUi.prototype.isServices=function(b){return 1!=b};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(b,c,e,f,l,p){};EditorUi.prototype.pickFolder=function(b,c,e){c(null)};EditorUi.prototype.exportSvg=function(b,c,e,f,l,p,n,u,t,y,G,H,D,F){if(this.spinner.spin(document.body,mxResources.get("export")))try{var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;var g=c?null:this.editor.graph.background;g==mxConstants.NONE&&
+420,d,!0,!0);b.init()};EditorUi.prototype.isServices=function(b){return 1!=b};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(b,c,e,f,l,p){};EditorUi.prototype.pickFolder=function(b,c,e){c(null)};EditorUi.prototype.exportSvg=function(b,c,e,f,l,p,n,u,q,y,G,H,D,F){if(this.spinner.spin(document.body,mxResources.get("export")))try{var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;var g=c?null:this.editor.graph.background;g==mxConstants.NONE&&
(g=null);null==g&&0==c&&(g=G?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var k=this.editor.graph.getSvg(g,b,n,u,null,e,null,null,"blank"==y?"_blank":"self"==y?"_top":null,null,!D,G,H);f&&this.editor.graph.addSvgShadow(k);var m=this.getBaseFilename()+(l?".drawio":"")+".svg";F=null!=F?F:mxUtils.bind(this,function(b){this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(m,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),
-mxUtils.bind(this,function(){mxUtils.popup(b)}))});var q=mxUtils.bind(this,function(b){this.spinner.stop();l&&b.setAttribute("content",this.getFileData(!0,null,null,null,e,t,null,null,null,!1));F(Graph.xmlDeclaration+"\n"+(l?Graph.svgFileComment+"\n":"")+Graph.svgDoctype+"\n"+mxUtils.getXml(b))});this.editor.graph.mathEnabled&&this.editor.addMathCss(k);var v=mxUtils.bind(this,function(b){p?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(b,q,this.thumbImageCache)):
-q(b)});D?this.embedFonts(k,v):(this.editor.addFontCss(k),v(k))}catch(M){this.handleError(M)}};EditorUi.prototype.addRadiobox=function(b,c,e,f,l,p,n){return this.addCheckbox(b,e,f,l,p,n,!0,c)};EditorUi.prototype.addCheckbox=function(b,c,e,f,l,p,n,u){p=null!=p?p:!0;var d=document.createElement("input");d.style.marginRight="8px";d.style.marginTop="16px";d.setAttribute("type",n?"radio":"checkbox");n="geCheckbox-"+Editor.guid();d.id=n;null!=u&&d.setAttribute("name",u);e&&(d.setAttribute("checked","checked"),
+mxUtils.bind(this,function(){mxUtils.popup(b)}))});var t=mxUtils.bind(this,function(b){this.spinner.stop();l&&b.setAttribute("content",this.getFileData(!0,null,null,null,e,q,null,null,null,!1));F(Graph.xmlDeclaration+"\n"+(l?Graph.svgFileComment+"\n":"")+Graph.svgDoctype+"\n"+mxUtils.getXml(b))});this.editor.graph.mathEnabled&&this.editor.addMathCss(k);var v=mxUtils.bind(this,function(b){p?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(b,t,this.thumbImageCache)):
+t(b)});D?this.embedFonts(k,v):(this.editor.addFontCss(k),v(k))}catch(M){this.handleError(M)}};EditorUi.prototype.addRadiobox=function(b,c,e,f,l,p,n){return this.addCheckbox(b,e,f,l,p,n,!0,c)};EditorUi.prototype.addCheckbox=function(b,c,e,f,l,p,n,u){p=null!=p?p:!0;var d=document.createElement("input");d.style.marginRight="8px";d.style.marginTop="16px";d.setAttribute("type",n?"radio":"checkbox");n="geCheckbox-"+Editor.guid();d.id=n;null!=u&&d.setAttribute("name",u);e&&(d.setAttribute("checked","checked"),
d.defaultChecked=!0);f&&d.setAttribute("disabled","disabled");p&&(b.appendChild(d),e=document.createElement("label"),mxUtils.write(e,c),e.setAttribute("for",n),b.appendChild(e),l||mxUtils.br(b));return d};EditorUi.prototype.addEditButton=function(b,c){var d=this.addCheckbox(b,mxResources.get("edit")+":",!0,null,!0);d.style.marginLeft="24px";var e=this.getCurrentFile(),f="";null!=e&&e.getMode()!=App.MODE_DEVICE&&e.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var k=document.createElement("select");
k.style.maxWidth="200px";k.style.width="auto";k.style.marginLeft="8px";k.style.marginRight="10px";k.className="geBtn";e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("makeCopy"));k.appendChild(e);e=document.createElement("option");e.setAttribute("value","custom");mxUtils.write(e,mxResources.get("custom")+"...");k.appendChild(e);b.appendChild(k);mxEvent.addListener(k,"change",mxUtils.bind(this,function(){if("custom"==k.value){var b=new FilenameDialog(this,
f,mxResources.get("ok"),function(b){null!=b?f=b:k.value="blank"},mxResources.get("url"),null,null,null,null,function(){k.value="blank"});this.showDialog(b.container,300,80,!0,!1);b.init()}}));mxEvent.addListener(d,"change",mxUtils.bind(this,function(){d.checked&&(null==c||c.checked)?k.removeAttribute("disabled"):k.setAttribute("disabled","disabled")}));mxUtils.br(b);return{getLink:function(){return d.checked?"blank"===k.value?"_blank":f:null},getEditInput:function(){return d},getEditSelect:function(){return k}}};
@@ -3572,58 +3572,58 @@ EditorUi.prototype.addLinkSection=function(b,c){function d(){var b=document.crea
e.style.width="100px";e.style.padding="0px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));e.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));e.appendChild(f);f=document.createElement("option");f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));
e.appendChild(f);c&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),e.appendChild(f));b.appendChild(e);mxUtils.write(b,mxResources.get("borderColor")+":");var k="#0000ff",l=null,l=mxUtils.button("",mxUtils.bind(this,function(b){this.pickColor(k||"none",function(b){k=b;d()});mxEvent.consume(b)}));d();l.style.padding=mxClient.IS_FF?"4px 2px 4px 2px":"4px";l.style.marginLeft="4px";l.style.height=
"22px";l.style.width="22px";l.style.position="relative";l.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";l.className="geColorBtn";b.appendChild(l);mxUtils.br(b);return{getColor:function(){return k},getTarget:function(){return e.value},focus:function(){e.focus()}}};EditorUi.prototype.createUrlParameters=function(b,c,e,f,l,p,n){n=null!=n?n:[];f&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&"1"!=urlParams.dev||n.push("lightbox=1"),"auto"!=b&&n.push("target="+b),null!=
-c&&c!=mxConstants.NONE&&n.push("highlight="+("#"==c.charAt(0)?c.substring(1):c)),null!=l&&0<l.length&&n.push("edit="+encodeURIComponent(l)),p&&n.push("layers=1"),this.editor.graph.foldingEnabled&&n.push("nav=1"));e&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&n.push("page-id="+this.currentPage.getId());return n};EditorUi.prototype.createLink=function(b,c,e,f,l,p,n,u,t,y){t=this.createUrlParameters(b,c,e,f,l,p,t);b=this.getCurrentFile();c=!0;null!=n?e="#U"+encodeURIComponent(n):
-(b=this.getCurrentFile(),u||null==b||b.constructor!=window.DriveFile?e="#R"+encodeURIComponent(e?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(e="#"+b.getHash(),c=!1));c&&null!=b&&null!=b.getTitle()&&b.getTitle()!=this.defaultFilename&&t.push("title="+encodeURIComponent(b.getTitle()));y&&1<e.length&&(t.push("open="+e.substring(1)),e="");return(f&&"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
-!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<t.length?"?"+t.join("&"):"")+e};EditorUi.prototype.createHtml=function(b,c,e,f,l,p,n,u,t,y,G,H){this.getBasenames();var d={};""!=l&&l!=mxConstants.NONE&&(d.highlight=l);"auto"!==f&&(d.target=f);y||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;e=parseInt(e);isNaN(e)||100==e||(d.zoom=e/100);e=[];n&&(e.push("pages"),d.resize=!0,null!=this.pages&&null!=this.currentPage&&(d.page=mxUtils.indexOf(this.pages,
-this.currentPage)));c&&(e.push("zoom"),d.resize=!0);u&&e.push("layers");t&&e.push("tags");0<e.length&&(y&&e.push("lightbox"),d.toolbar=e.join(" "));null!=G&&0<G.length&&(d.edit=G);null!=b?d.url=b:d.xml=this.getFileData(!0,null,null,null,null,!n);c='<div class="mxgraph" style="'+(p?"max-width:100%;":"")+(""!=e?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(d))+'"></div>';b=null!=b?"&fetch="+encodeURIComponent(b):"";H(c,'<script type="text/javascript" src="'+
+c&&c!=mxConstants.NONE&&n.push("highlight="+("#"==c.charAt(0)?c.substring(1):c)),null!=l&&0<l.length&&n.push("edit="+encodeURIComponent(l)),p&&n.push("layers=1"),this.editor.graph.foldingEnabled&&n.push("nav=1"));e&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&n.push("page-id="+this.currentPage.getId());return n};EditorUi.prototype.createLink=function(b,c,e,f,l,p,n,u,q,y){q=this.createUrlParameters(b,c,e,f,l,p,q);b=this.getCurrentFile();c=!0;null!=n?e="#U"+encodeURIComponent(n):
+(b=this.getCurrentFile(),u||null==b||b.constructor!=window.DriveFile?e="#R"+encodeURIComponent(e?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(e="#"+b.getHash(),c=!1));c&&null!=b&&null!=b.getTitle()&&b.getTitle()!=this.defaultFilename&&q.push("title="+encodeURIComponent(b.getTitle()));y&&1<e.length&&(q.push("open="+e.substring(1)),e="");return(f&&"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
+!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<q.length?"?"+q.join("&"):"")+e};EditorUi.prototype.createHtml=function(b,c,e,f,l,p,n,u,q,y,G,H){this.getBasenames();var d={};""!=l&&l!=mxConstants.NONE&&(d.highlight=l);"auto"!==f&&(d.target=f);y||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;e=parseInt(e);isNaN(e)||100==e||(d.zoom=e/100);e=[];n&&(e.push("pages"),d.resize=!0,null!=this.pages&&null!=this.currentPage&&(d.page=mxUtils.indexOf(this.pages,
+this.currentPage)));c&&(e.push("zoom"),d.resize=!0);u&&e.push("layers");q&&e.push("tags");0<e.length&&(y&&e.push("lightbox"),d.toolbar=e.join(" "));null!=G&&0<G.length&&(d.edit=G);null!=b?d.url=b:d.xml=this.getFileData(!0,null,null,null,null,!n);c='<div class="mxgraph" style="'+(p?"max-width:100%;":"")+(""!=e?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(d))+'"></div>';b=null!=b?"&fetch="+encodeURIComponent(b):"";H(c,'<script type="text/javascript" src="'+
(0<b.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+b:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.DRAWIO_VIEWER_URL?window.DRAWIO_VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(b,c,e,f){var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=document.createElement("h3");mxUtils.write(g,mxResources.get("html"));g.style.cssText=
"width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(g);var k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var l=document.createElement("input");l.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";l.setAttribute("value","url");l.setAttribute("type","radio");l.setAttribute("name","type-embedhtmldialog");g=l.cloneNode(!0);g.setAttribute("value","copy");k.appendChild(g);var n=document.createElement("span");
-mxUtils.write(n,mxResources.get("includeCopyOfMyDiagram"));k.appendChild(n);mxUtils.br(k);k.appendChild(l);n=document.createElement("span");mxUtils.write(n,mxResources.get("publicDiagramUrl"));k.appendChild(n);var q=this.getCurrentFile();null==e&&null!=q&&q.constructor==window.DriveFile&&(n=document.createElement("a"),n.style.paddingLeft="12px",n.style.color="gray",n.style.cursor="pointer",mxUtils.write(n,mxResources.get("share")),k.appendChild(n),mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.hideDialog();
-this.drive.showPermissions(q.getId())})));g.setAttribute("checked","checked");null==e&&l.setAttribute("disabled","disabled");d.appendChild(k);var t=this.addLinkSection(d),H=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,":");var D=document.createElement("input");D.setAttribute("type","text");D.style.marginRight="16px";D.style.width="60px";D.style.marginLeft="4px";D.style.marginRight="12px";D.value="100%";d.appendChild(D);var F=this.addCheckbox(d,mxResources.get("fit"),!0),
-k=null!=this.pages&&1<this.pages.length,O=O=this.addCheckbox(d,mxResources.get("allPages"),k,!k),A=this.addCheckbox(d,mxResources.get("layers"),!0),C=this.addCheckbox(d,mxResources.get("tags"),!0),E=this.addCheckbox(d,mxResources.get("lightbox"),!0),k=EditorUi.enableHtmlEditOption?d:d.cloneNode(),L=this.addEditButton(k,E),N=L.getEditInput();N.style.marginBottom="16px";mxEvent.addListener(E,"change",function(){E.checked?N.removeAttribute("disabled"):N.setAttribute("disabled","disabled");N.checked&&
-E.checked?L.getEditSelect().removeAttribute("disabled"):L.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){f(l.checked?e:null,H.checked,D.value,t.getTarget(),t.getColor(),F.checked,O.checked,A.checked,C.checked,E.checked,EditorUi.enableHtmlEditOption?L.getLink():null)}),null,b,c);this.showDialog(b.container,340,430,!0,!0);g.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,e,f,l,p,n,u){var d=document.createElement("div");d.style.whiteSpace=
-"nowrap";var g=document.createElement("h3");mxUtils.write(g,b||mxResources.get("link"));g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(g);var k=this.getCurrentFile();b=0;if(null==k||k.constructor!=window.DriveFile||c)n=null!=n?n:"https://www.diagrams.net/doc/faq/publish-diagram-as-link";else{b=80;n=null!=n?n:"https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram";g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
+mxUtils.write(n,mxResources.get("includeCopyOfMyDiagram"));k.appendChild(n);mxUtils.br(k);k.appendChild(l);n=document.createElement("span");mxUtils.write(n,mxResources.get("publicDiagramUrl"));k.appendChild(n);var t=this.getCurrentFile();null==e&&null!=t&&t.constructor==window.DriveFile&&(n=document.createElement("a"),n.style.paddingLeft="12px",n.style.color="gray",n.style.cursor="pointer",mxUtils.write(n,mxResources.get("share")),k.appendChild(n),mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.hideDialog();
+this.drive.showPermissions(t.getId())})));g.setAttribute("checked","checked");null==e&&l.setAttribute("disabled","disabled");d.appendChild(k);var q=this.addLinkSection(d),H=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,":");var D=document.createElement("input");D.setAttribute("type","text");D.style.marginRight="16px";D.style.width="60px";D.style.marginLeft="4px";D.style.marginRight="12px";D.value="100%";d.appendChild(D);var F=this.addCheckbox(d,mxResources.get("fit"),!0),
+k=null!=this.pages&&1<this.pages.length,O=O=this.addCheckbox(d,mxResources.get("allPages"),k,!k),A=this.addCheckbox(d,mxResources.get("layers"),!0),C=this.addCheckbox(d,mxResources.get("tags"),!0),E=this.addCheckbox(d,mxResources.get("lightbox"),!0),J=null,k=380;if(EditorUi.enableHtmlEditOption){var J=this.addEditButton(d,E),N=J.getEditInput();N.style.marginBottom="16px";k+=50;mxEvent.addListener(E,"change",function(){E.checked?N.removeAttribute("disabled"):N.setAttribute("disabled","disabled");N.checked&&
+E.checked?J.getEditSelect().removeAttribute("disabled"):J.getEditSelect().setAttribute("disabled","disabled")})}b=new CustomDialog(this,d,mxUtils.bind(this,function(){f(l.checked?e:null,H.checked,D.value,q.getTarget(),q.getColor(),F.checked,O.checked,A.checked,C.checked,E.checked,null!=J?J.getLink():null)}),null,b,c);this.showDialog(b.container,340,k,!0,!0);g.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,e,f,l,p,n,u){var d=document.createElement("div");d.style.whiteSpace="nowrap";
+var g=document.createElement("h3");mxUtils.write(g,b||mxResources.get("link"));g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(g);var k=this.getCurrentFile();b=0;if(null==k||k.constructor!=window.DriveFile||c)n=null!=n?n:"https://www.diagrams.net/doc/faq/publish-diagram-as-link";else{b=80;n=null!=n?n:"https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram";g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
var m=document.createElement("div");m.style.whiteSpace="normal";mxUtils.write(m,mxResources.get("linkAccountRequired"));g.appendChild(m);m=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(k.getId())}));m.style.marginTop="12px";m.className="geBtn";g.appendChild(m);d.appendChild(g);m=document.createElement("a");m.style.paddingLeft="12px";m.style.color="gray";m.style.fontSize="11px";m.style.cursor="pointer";mxUtils.write(m,mxResources.get("check"));g.appendChild(m);
-mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(b.container,300,80,!0,!1);b.init()}))}))}var q=null,t=null;if(null!=e||null!=f)b+=30,mxUtils.write(d,mxResources.get("width")+":"),q=document.createElement("input"),
-q.setAttribute("type","text"),q.style.marginRight="16px",q.style.width="50px",q.style.marginLeft="6px",q.style.marginRight="16px",q.style.marginBottom="10px",q.value="100%",d.appendChild(q),mxUtils.write(d,mxResources.get("height")+":"),t=document.createElement("input"),t.setAttribute("type","text"),t.style.width="50px",t.style.marginLeft="6px",t.style.marginBottom="10px",t.value=f+"px",d.appendChild(t),mxUtils.br(d);var v=this.addLinkSection(d,p);e=null!=this.pages&&1<this.pages.length;var A=null;
-if(null==k||k.constructor!=window.DriveFile||c)A=this.addCheckbox(d,mxResources.get("allPages"),e,!e);var C=this.addCheckbox(d,mxResources.get("lightbox"),!0,null,null,!p),E=this.addEditButton(d,C),L=E.getEditInput();p&&(L.style.marginLeft=C.style.marginLeft,C.style.display="none",b-=20);var N=this.addCheckbox(d,mxResources.get("layers"),!0);N.style.marginLeft=L.style.marginLeft;N.style.marginTop="8px";var M=this.addCheckbox(d,mxResources.get("tags"),!0);M.style.marginLeft=L.style.marginLeft;M.style.marginBottom=
-"16px";M.style.marginTop="16px";mxEvent.addListener(C,"change",function(){C.checked?(N.removeAttribute("disabled"),L.removeAttribute("disabled")):(N.setAttribute("disabled","disabled"),L.setAttribute("disabled","disabled"));L.checked&&C.checked?E.getEditSelect().removeAttribute("disabled"):E.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){l(v.getTarget(),v.getColor(),null==A?!0:A.checked,C.checked,E.getLink(),N.checked,null!=q?q.value:null,
-null!=t?t.value:null,M.checked)}),null,mxResources.get("create"),n,u);this.showDialog(c.container,340,300+b,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)):v.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,f,l){var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=document.createElement("h3");mxUtils.write(g,mxResources.get("image"));g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+
+mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(b.container,300,80,!0,!1);b.init()}))}))}var t=null,q=null;if(null!=e||null!=f)b+=30,mxUtils.write(d,mxResources.get("width")+":"),t=document.createElement("input"),
+t.setAttribute("type","text"),t.style.marginRight="16px",t.style.width="50px",t.style.marginLeft="6px",t.style.marginRight="16px",t.style.marginBottom="10px",t.value="100%",d.appendChild(t),mxUtils.write(d,mxResources.get("height")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=f+"px",d.appendChild(q),mxUtils.br(d);var v=this.addLinkSection(d,p);e=null!=this.pages&&1<this.pages.length;var A=null;
+if(null==k||k.constructor!=window.DriveFile||c)A=this.addCheckbox(d,mxResources.get("allPages"),e,!e);var C=this.addCheckbox(d,mxResources.get("lightbox"),!0,null,null,!p),E=this.addEditButton(d,C),J=E.getEditInput();p&&(J.style.marginLeft=C.style.marginLeft,C.style.display="none",b-=20);var N=this.addCheckbox(d,mxResources.get("layers"),!0);N.style.marginLeft=J.style.marginLeft;N.style.marginTop="8px";var M=this.addCheckbox(d,mxResources.get("tags"),!0);M.style.marginLeft=J.style.marginLeft;M.style.marginBottom=
+"16px";M.style.marginTop="16px";mxEvent.addListener(C,"change",function(){C.checked?(N.removeAttribute("disabled"),J.removeAttribute("disabled")):(N.setAttribute("disabled","disabled"),J.setAttribute("disabled","disabled"));J.checked&&C.checked?E.getEditSelect().removeAttribute("disabled"):E.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){l(v.getTarget(),v.getColor(),null==A?!0:A.checked,C.checked,E.getLink(),N.checked,null!=t?t.value:null,
+null!=q?q.value:null,M.checked)}),null,mxResources.get("create"),n,u);this.showDialog(c.container,340,300+b,!0,!0);null!=t?(t.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null)):v.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,f,l){var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=document.createElement("h3");mxUtils.write(g,mxResources.get("image"));g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+
(l?"10":"4")+"px";d.appendChild(g);if(l){mxUtils.write(d,mxResources.get("zoom")+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.marginRight="16px";k.style.width="60px";k.style.marginLeft="4px";k.style.marginRight="12px";k.value=this.lastExportZoom||"100%";d.appendChild(k);mxUtils.write(d,mxResources.get("borderWidth")+":");var m=document.createElement("input");m.setAttribute("type","text");m.style.marginRight="16px";m.style.width="60px";m.style.marginLeft="4px";m.value=
-this.lastExportBorder||"0";d.appendChild(m);mxUtils.br(d)}var n=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),q=f?null:this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),Editor.defaultIncludeDiagram),g=this.editor.graph,t=f?null:this.addCheckbox(d,mxResources.get("transparentBackground"),g.background==mxConstants.NONE||null==g.background);null!=t&&(t.style.marginBottom="16px");b=new CustomDialog(this,d,mxUtils.bind(this,function(){var b=parseInt(k.value)/
-100||1,d=parseInt(m.value)||0;e(!n.checked,null!=q?q.checked:!1,null!=t?t.checked:!1,b,d)}),null,b,c);this.showDialog(b.container,300,(l?25:0)+(f?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(b,c,e,f,l,p,n,u,t){n=null!=n?n:Editor.defaultIncludeDiagram;var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=this.editor.graph,k="jpeg"==u?220:300,m=document.createElement("h3");mxUtils.write(m,b);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";
-d.appendChild(m);mxUtils.write(d,mxResources.get("zoom")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight="12px";q.value=this.lastExportZoom||"100%";d.appendChild(q);mxUtils.write(d,mxResources.get("borderWidth")+":");var v=document.createElement("input");v.setAttribute("type","text");v.style.marginRight="16px";v.style.width="60px";v.style.marginLeft="4px";v.value=this.lastExportBorder||
-"0";d.appendChild(v);mxUtils.br(d);var x=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,g.isSelectionEmpty()),C=document.createElement("input");C.style.marginTop="16px";C.style.marginRight="8px";C.style.marginLeft="24px";C.setAttribute("disabled","disabled");C.setAttribute("type","checkbox");var E=document.createElement("select");E.style.marginTop="16px";E.style.marginLeft="8px";b=["selectionOnly","diagram","page"];for(var L={},m=0;m<b.length;m++)if(!g.isSelectionEmpty()||"selectionOnly"!=
-b[m]){var N=document.createElement("option");mxUtils.write(N,mxResources.get(b[m]));N.setAttribute("value",b[m]);E.appendChild(N);L[b[m]]=N}t?(mxUtils.write(d,mxResources.get("size")+":"),d.appendChild(E),mxUtils.br(d),k+=26,mxEvent.addListener(E,"change",function(){"selectionOnly"==E.value&&(x.checked=!0)})):p&&(d.appendChild(C),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),k+=30,mxEvent.addListener(x,"change",function(){x.checked?C.removeAttribute("disabled"):C.setAttribute("disabled",
-"disabled")}));g.isSelectionEmpty()?t&&(x.style.display="none",x.nextSibling.style.display="none",x.nextSibling.nextSibling.style.display="none",k-=30):(E.value="diagram",C.setAttribute("checked","checked"),C.defaultChecked=!0,mxEvent.addListener(x,"change",function(){E.value=x.checked?"selectionOnly":"diagram"}));var M=this.addCheckbox(d,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=u),Q=null;Editor.isDarkMode()&&(Q=this.addCheckbox(d,mxResources.get("dark"),!0),k+=26);var V=this.addCheckbox(d,
+this.lastExportBorder||"0";d.appendChild(m);mxUtils.br(d)}var n=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),t=f?null:this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),Editor.defaultIncludeDiagram),g=this.editor.graph,q=f?null:this.addCheckbox(d,mxResources.get("transparentBackground"),g.background==mxConstants.NONE||null==g.background);null!=q&&(q.style.marginBottom="16px");b=new CustomDialog(this,d,mxUtils.bind(this,function(){var b=parseInt(k.value)/
+100||1,d=parseInt(m.value)||0;e(!n.checked,null!=t?t.checked:!1,null!=q?q.checked:!1,b,d)}),null,b,c);this.showDialog(b.container,300,(l?25:0)+(f?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(b,c,e,f,l,p,n,u,q){n=null!=n?n:Editor.defaultIncludeDiagram;var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=this.editor.graph,k="jpeg"==u?220:300,m=document.createElement("h3");mxUtils.write(m,b);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";
+d.appendChild(m);mxUtils.write(d,mxResources.get("zoom")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight="12px";t.value=this.lastExportZoom||"100%";d.appendChild(t);mxUtils.write(d,mxResources.get("borderWidth")+":");var v=document.createElement("input");v.setAttribute("type","text");v.style.marginRight="16px";v.style.width="60px";v.style.marginLeft="4px";v.value=this.lastExportBorder||
+"0";d.appendChild(v);mxUtils.br(d);var x=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,g.isSelectionEmpty()),C=document.createElement("input");C.style.marginTop="16px";C.style.marginRight="8px";C.style.marginLeft="24px";C.setAttribute("disabled","disabled");C.setAttribute("type","checkbox");var E=document.createElement("select");E.style.marginTop="16px";E.style.marginLeft="8px";b=["selectionOnly","diagram","page"];for(var J={},m=0;m<b.length;m++)if(!g.isSelectionEmpty()||"selectionOnly"!=
+b[m]){var N=document.createElement("option");mxUtils.write(N,mxResources.get(b[m]));N.setAttribute("value",b[m]);E.appendChild(N);J[b[m]]=N}q?(mxUtils.write(d,mxResources.get("size")+":"),d.appendChild(E),mxUtils.br(d),k+=26,mxEvent.addListener(E,"change",function(){"selectionOnly"==E.value&&(x.checked=!0)})):p&&(d.appendChild(C),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),k+=30,mxEvent.addListener(x,"change",function(){x.checked?C.removeAttribute("disabled"):C.setAttribute("disabled",
+"disabled")}));g.isSelectionEmpty()?q&&(x.style.display="none",x.nextSibling.style.display="none",x.nextSibling.nextSibling.style.display="none",k-=30):(E.value="diagram",C.setAttribute("checked","checked"),C.defaultChecked=!0,mxEvent.addListener(x,"change",function(){E.value=x.checked?"selectionOnly":"diagram"}));var M=this.addCheckbox(d,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=u),Q=null;Editor.isDarkMode()&&(Q=this.addCheckbox(d,mxResources.get("dark"),!0),k+=26);var V=this.addCheckbox(d,
mxResources.get("shadow"),g.shadowVisible),X=null;if("png"==u||"jpeg"==u)X=this.addCheckbox(d,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),k+=30;var ja=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=u);ja.style.marginBottom="16px";var Y=document.createElement("input");Y.style.marginBottom="16px";Y.style.marginRight="8px";Y.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||Y.setAttribute("disabled","disabled");var da=
document.createElement("select");da.style.maxWidth="260px";da.style.marginLeft="8px";da.style.marginRight="10px";da.style.marginBottom="16px";da.className="geBtn";p=document.createElement("option");p.setAttribute("value","none");mxUtils.write(p,mxResources.get("noChange"));da.appendChild(p);p=document.createElement("option");p.setAttribute("value","embedFonts");mxUtils.write(p,mxResources.get("embedFonts"));da.appendChild(p);p=document.createElement("option");p.setAttribute("value","lblToSvg");mxUtils.write(p,
-mxResources.get("lblToSvg"));da.appendChild(p);this.isOffline()&&p.setAttribute("disabled","disabled");mxEvent.addListener(da,"change",mxUtils.bind(this,function(){"lblToSvg"==da.value?(Y.checked=!0,Y.setAttribute("disabled","disabled"),L.page.style.display="none","page"==E.value&&(E.value="diagram"),V.checked=!1,V.setAttribute("disabled","disabled"),B.style.display="inline-block",ba.style.display="none"):"disabled"==Y.getAttribute("disabled")&&(Y.checked=!1,Y.removeAttribute("disabled"),V.removeAttribute("disabled"),
-L.page.style.display="",B.style.display="none",ba.style.display="")}));c&&(d.appendChild(Y),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),mxUtils.write(d,mxResources.get("txtSettings")+":"),d.appendChild(da),mxUtils.br(d),k+=60);var ba=document.createElement("select");ba.style.maxWidth="260px";ba.style.marginLeft="8px";ba.style.marginRight="10px";ba.className="geBtn";c=document.createElement("option");c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));ba.appendChild(c);
+mxResources.get("lblToSvg"));da.appendChild(p);this.isOffline()&&p.setAttribute("disabled","disabled");mxEvent.addListener(da,"change",mxUtils.bind(this,function(){"lblToSvg"==da.value?(Y.checked=!0,Y.setAttribute("disabled","disabled"),J.page.style.display="none","page"==E.value&&(E.value="diagram"),V.checked=!1,V.setAttribute("disabled","disabled"),B.style.display="inline-block",ba.style.display="none"):"disabled"==Y.getAttribute("disabled")&&(Y.checked=!1,Y.removeAttribute("disabled"),V.removeAttribute("disabled"),
+J.page.style.display="",B.style.display="none",ba.style.display="")}));c&&(d.appendChild(Y),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),mxUtils.write(d,mxResources.get("txtSettings")+":"),d.appendChild(da),mxUtils.br(d),k+=60);var ba=document.createElement("select");ba.style.maxWidth="260px";ba.style.marginLeft="8px";ba.style.marginRight="10px";ba.className="geBtn";c=document.createElement("option");c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));ba.appendChild(c);
c=document.createElement("option");c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("openInNewWindow"));ba.appendChild(c);c=document.createElement("option");c.setAttribute("value","self");mxUtils.write(c,mxResources.get("openInThisWindow"));ba.appendChild(c);var B=document.createElement("div");mxUtils.write(B,mxResources.get("LinksLost"));B.style.margin="7px";B.style.display="none";"svg"==u&&(mxUtils.write(d,mxResources.get("links")+":"),d.appendChild(ba),d.appendChild(B),mxUtils.br(d),
-mxUtils.br(d),k+=50);e=new CustomDialog(this,d,mxUtils.bind(this,function(){this.lastExportBorder=v.value;this.lastExportZoom=q.value;l(q.value,M.checked,!x.checked,V.checked,ja.checked,Y.checked,v.value,C.checked,!1,ba.value,null!=X?X.checked:null,null!=Q?Q.checked:null,E.value,"embedFonts"==da.value,"lblToSvg"==da.value)}),null,e,f);this.showDialog(e.container,340,k,!0,!0,null,null,null,null,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",
-!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,e,f,l){var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=this.editor.graph;if(null!=c){var k=document.createElement("h3");mxUtils.write(k,c);k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(k)}var m=this.addCheckbox(d,mxResources.get("fit"),!0),n=this.addCheckbox(d,mxResources.get("shadow"),g.shadowVisible&&f,!f),q=this.addCheckbox(d,e),t=this.addCheckbox(d,mxResources.get("lightbox"),
-!0),D=this.addEditButton(d,t),F=D.getEditInput(),O=1<g.model.getChildCount(g.model.getRoot()),A=this.addCheckbox(d,mxResources.get("layers"),O,!O);A.style.marginLeft=F.style.marginLeft;A.style.marginBottom="12px";A.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?(O&&A.removeAttribute("disabled"),F.removeAttribute("disabled")):(A.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"));F.checked&&t.checked?D.getEditSelect().removeAttribute("disabled"):D.getEditSelect().setAttribute("disabled",
-"disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){b(m.checked,n.checked,q.checked,t.checked,D.getLink(),A.checked)}),null,mxResources.get("embed"),l);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,e,f,l,p,n,u){function d(d){var c=" ",m="";f&&(c=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
-EditorUi.lightboxHost+"/?client=1"+(null!=k?"&page="+k:"")+(l?"&edit=_blank":"")+(p?"&layers=1":"")+"');}})(this);\"",m+="cursor:pointer;");b&&(m+="max-width:100%;");var q="";e&&(q=' width="'+Math.round(g.width)+'" height="'+Math.round(g.height)+'"');n('<img src="'+d+'"'+q+(""!=m?' style="'+m+'"':"")+c+"/>")}var g=this.editor.graph.getGraphBounds(),k=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(b){var c=f?this.getFileData(!0):null;b=
-this.createImageDataUri(b,c,"png");d(b)}),null,null,null,mxUtils.bind(this,function(b){u({message:mxResources.get("unknownError")})}),null,!0,e?2:1,null,c,null,null,Editor.defaultBorder);else if(c=this.getFileData(!0),g.width*g.height<=MAX_AREA&&c.length<=MAX_REQUEST_SIZE){var m="";e&&(m="&w="+Math.round(2*g.width)+"&h="+Math.round(2*g.height));var q=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(f?"1":"0")+m+"&xml="+encodeURIComponent(c));q.send(mxUtils.bind(this,function(){200<=q.getStatus()&&
-299>=q.getStatus()?d("data:image/png;base64,"+q.getText()):u({message:mxResources.get("unknownError")})}))}else u({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(b,c,e,f,l,p,n){var d=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!e),g=d.getElementsByTagName("a");if(null!=g)for(var k=0;k<g.length;k++){var m=g[k].getAttribute("href");null!=m&&"#"==m.charAt(0)&&"_blank"==g[k].getAttribute("target")&&g[k].removeAttribute("target")}f&&
-d.setAttribute("content",this.getFileData(!0));c&&this.editor.graph.addSvgShadow(d);if(e){var q=" ",t="";f&&(q="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(l?"&edit=_blank":"")+(p?"&layers=1":
-"")+"');}})(this);\"",t+="cursor:pointer;");b&&(t+="max-width:100%;");this.editor.convertImages(d,mxUtils.bind(this,function(b){n('<img src="'+Editor.createSvgDataUri(mxUtils.getXml(b))+'"'+(""!=t?' style="'+t+'"':"")+q+"/>")}))}else t="",f&&(c=this.getSelectedPageIndex(),d.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('"+
-EditorUi.lightboxHost+"/?client=1"+(null!=c?"&page="+c:"")+(l?"&edit=_blank":"")+(p?"&layers=1":"")+"');}}})(this);"),t+="cursor:pointer;"),b&&(b=parseInt(d.getAttribute("width")),l=parseInt(d.getAttribute("height")),d.setAttribute("viewBox","-0.5 -0.5 "+b+" "+l),t+="max-width:100%;max-height:"+l+"px;",d.removeAttribute("height")),""!=t&&d.setAttribute("style",t),this.editor.addFontCss(d),this.editor.graph.mathEnabled&&this.editor.addMathCss(d),n(mxUtils.getXml(d))};EditorUi.prototype.timeSince=function(b){b=
+mxUtils.br(d),k+=50);e=new CustomDialog(this,d,mxUtils.bind(this,function(){this.lastExportBorder=v.value;this.lastExportZoom=t.value;l(t.value,M.checked,!x.checked,V.checked,ja.checked,Y.checked,v.value,C.checked,!1,ba.value,null!=X?X.checked:null,null!=Q?Q.checked:null,E.value,"embedFonts"==da.value,"lblToSvg"==da.value)}),null,e,f);this.showDialog(e.container,340,k,!0,!0,null,null,null,null,!0);t.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?t.select():document.execCommand("selectAll",
+!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,e,f,l){var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=this.editor.graph;if(null!=c){var k=document.createElement("h3");mxUtils.write(k,c);k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(k)}var m=this.addCheckbox(d,mxResources.get("fit"),!0),n=this.addCheckbox(d,mxResources.get("shadow"),g.shadowVisible&&f,!f),t=this.addCheckbox(d,e),q=this.addCheckbox(d,mxResources.get("lightbox"),
+!0),D=this.addEditButton(d,q),F=D.getEditInput(),O=1<g.model.getChildCount(g.model.getRoot()),A=this.addCheckbox(d,mxResources.get("layers"),O,!O);A.style.marginLeft=F.style.marginLeft;A.style.marginBottom="12px";A.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(O&&A.removeAttribute("disabled"),F.removeAttribute("disabled")):(A.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"));F.checked&&q.checked?D.getEditSelect().removeAttribute("disabled"):D.getEditSelect().setAttribute("disabled",
+"disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){b(m.checked,n.checked,t.checked,q.checked,D.getLink(),A.checked)}),null,mxResources.get("embed"),l);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,e,f,l,p,n,u){function d(d){var c=" ",m="";f&&(c=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
+EditorUi.lightboxHost+"/?client=1"+(null!=k?"&page="+k:"")+(l?"&edit=_blank":"")+(p?"&layers=1":"")+"');}})(this);\"",m+="cursor:pointer;");b&&(m+="max-width:100%;");var t="";e&&(t=' width="'+Math.round(g.width)+'" height="'+Math.round(g.height)+'"');n('<img src="'+d+'"'+t+(""!=m?' style="'+m+'"':"")+c+"/>")}var g=this.editor.graph.getGraphBounds(),k=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(b){var c=f?this.getFileData(!0):null;b=
+this.createImageDataUri(b,c,"png");d(b)}),null,null,null,mxUtils.bind(this,function(b){u({message:mxResources.get("unknownError")})}),null,!0,e?2:1,null,c,null,null,Editor.defaultBorder);else if(c=this.getFileData(!0),g.width*g.height<=MAX_AREA&&c.length<=MAX_REQUEST_SIZE){var m="";e&&(m="&w="+Math.round(2*g.width)+"&h="+Math.round(2*g.height));var t=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(f?"1":"0")+m+"&xml="+encodeURIComponent(c));t.send(mxUtils.bind(this,function(){200<=t.getStatus()&&
+299>=t.getStatus()?d("data:image/png;base64,"+t.getText()):u({message:mxResources.get("unknownError")})}))}else u({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(b,c,e,f,l,p,n){var d=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!e),g=d.getElementsByTagName("a");if(null!=g)for(var k=0;k<g.length;k++){var m=g[k].getAttribute("href");null!=m&&"#"==m.charAt(0)&&"_blank"==g[k].getAttribute("target")&&g[k].removeAttribute("target")}f&&
+d.setAttribute("content",this.getFileData(!0));c&&this.editor.graph.addSvgShadow(d);if(e){var t=" ",q="";f&&(t="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(l?"&edit=_blank":"")+(p?"&layers=1":
+"")+"');}})(this);\"",q+="cursor:pointer;");b&&(q+="max-width:100%;");this.editor.convertImages(d,mxUtils.bind(this,function(b){n('<img src="'+Editor.createSvgDataUri(mxUtils.getXml(b))+'"'+(""!=q?' style="'+q+'"':"")+t+"/>")}))}else q="",f&&(c=this.getSelectedPageIndex(),d.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('"+
+EditorUi.lightboxHost+"/?client=1"+(null!=c?"&page="+c:"")+(l?"&edit=_blank":"")+(p?"&layers=1":"")+"');}}})(this);"),q+="cursor:pointer;"),b&&(b=parseInt(d.getAttribute("width")),l=parseInt(d.getAttribute("height")),d.setAttribute("viewBox","-0.5 -0.5 "+b+" "+l),q+="max-width:100%;max-height:"+l+"px;",d.removeAttribute("height")),""!=q&&d.setAttribute("style",q),this.editor.addFontCss(d),this.editor.graph.mathEnabled&&this.editor.addMathCss(d),n(mxUtils.getXml(d))};EditorUi.prototype.timeSince=function(b){b=
Math.floor((new Date-b)/1E3);var d=Math.floor(b/31536E3);if(1<d)return d+" "+mxResources.get("years");d=Math.floor(b/2592E3);if(1<d)return d+" "+mxResources.get("months");d=Math.floor(b/86400);if(1<d)return d+" "+mxResources.get("days");d=Math.floor(b/3600);if(1<d)return d+" "+mxResources.get("hours");d=Math.floor(b/60);return 1<d?d+" "+mxResources.get("minutes"):1==d?d+" "+mxResources.get("minute"):null};EditorUi.prototype.decodeNodeIntoGraph=function(b,c){if(null!=b){var d=null;if("diagram"==b.nodeName)d=
b;else if("mxfile"==b.nodeName){var e=b.getElementsByTagName("diagram");if(0<e.length){var d=e[0],f=c.getGlobalVariable;c.getGlobalVariable=function(b){return"page"==b?d.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==b?1:f.apply(this,arguments)}}}null!=d&&(b=Editor.parseDiagramNode(d))}e=this.editor.graph;try{this.editor.graph=c,this.editor.setGraphXml(b)}catch(p){}finally{this.editor.graph=e}return b};EditorUi.prototype.getPngFileProperties=function(b){var d=1,c=0;if(null!=
b){if(b.hasAttribute("scale")){var e=parseFloat(b.getAttribute("scale"));!isNaN(e)&&0<e&&(d=e)}b.hasAttribute("border")&&(e=parseInt(b.getAttribute("border")),!isNaN(e)&&0<e&&(c=e))}return{scale:d,border:c}};EditorUi.prototype.getEmbeddedPng=function(b,c,e,f,l){try{var d=this.editor.graph,g=null!=d.themes&&"darkTheme"==d.defaultThemeName,k=null;if(null!=e&&0<e.length)d=this.createTemporaryGraph(g?d.getDefaultStylesheet():d.getStylesheet()),document.body.appendChild(d.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(e).documentElement,
!0),d),k=e;else if(g||null!=this.pages&&this.currentPage!=this.pages[0]){var d=this.createTemporaryGraph(g?d.getDefaultStylesheet():d.getStylesheet()),m=d.getGlobalVariable;d.setBackgroundImage=this.editor.graph.setBackgroundImage;var n=this.pages[0];this.currentPage==n?d.setBackgroundImage(this.editor.graph.backgroundImage):null!=n.viewState&&null!=n.viewState&&d.setBackgroundImage(n.viewState.backgroundImage);d.getGlobalVariable=function(b){return"page"==b?n.getName():"pagenumber"==b?1:m.apply(this,
arguments)};document.body.appendChild(d.container);d.model.setRoot(n.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(e){try{null==k&&(k=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var g=e.toDataURL("image/png"),g=Editor.writeGraphModelToPng(g,"tEXt","mxfile",encodeURIComponent(k));b(g.substring(g.lastIndexOf(",")+1));d!=this.editor.graph&&d.container.parentNode.removeChild(d.container)}catch(D){null!=c&&c(D)}}),null,null,null,mxUtils.bind(this,function(b){null!=c&&
-c(b)}),null,null,f,null,d.shadowVisible,null,d,l,null,null,null,"diagram",null)}catch(G){null!=c&&c(G)}};EditorUi.prototype.getEmbeddedSvg=function(b,c,e,f,l,p,n,u,t,y,G,H,D){u=null!=u?u:!0;G=null!=G?G:0;n=null!=t?t:c.background;n==mxConstants.NONE&&(n=null);p=c.getSvg(n,y,G,null,null,p,null,null,null,c.shadowVisible||H,null,D,"diagram");(c.shadowVisible||H)&&c.addSvgShadow(p,null,null,0==G);null!=b&&p.setAttribute("content",b);null!=e&&p.setAttribute("resource",e);var d=mxUtils.bind(this,function(b){b=
+c(b)}),null,null,f,null,d.shadowVisible,null,d,l,null,null,null,"diagram",null)}catch(G){null!=c&&c(G)}};EditorUi.prototype.getEmbeddedSvg=function(b,c,e,f,l,p,n,u,q,y,G,H,D){u=null!=u?u:!0;G=null!=G?G:0;n=null!=q?q:c.background;n==mxConstants.NONE&&(n=null);p=c.getSvg(n,y,G,null,null,p,null,null,null,c.shadowVisible||H,null,D,"diagram");(c.shadowVisible||H)&&c.addSvgShadow(p,null,null,0==G);null!=b&&p.setAttribute("content",b);null!=e&&p.setAttribute("resource",e);var d=mxUtils.bind(this,function(b){b=
(f?"":Graph.xmlDeclaration+"\n"+Graph.svgFileComment+"\n"+Graph.svgDoctype+"\n")+mxUtils.getXml(b);null!=l&&l(b);return b});c.mathEnabled&&this.editor.addMathCss(p);if(null!=l)this.embedFonts(p,mxUtils.bind(this,function(b){u?this.editor.convertImages(b,mxUtils.bind(this,function(b){d(b)})):d(b)}));else return d(p)};EditorUi.prototype.embedFonts=function(b,c){this.editor.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(b,this.editor.resolvedFontCss),
-this.editor.embedExtFonts(mxUtils.bind(this,function(d){try{null!=d&&this.editor.addFontCss(b,d),c(b)}catch(q){c(b)}}))}catch(g){c(b)}}))};EditorUi.prototype.exportImage=function(b,c,e,f,l,p,n,u,t,y,G,H,D){t=null!=t?t:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(b){this.spinner.stop();try{this.saveCanvas(b,
-l?this.getFileData(!0,null,null,null,e,u):null,t,null==this.pages||0==this.pages.length,G)}catch(A){this.handleError(A)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,e,b||1,c,f,null,null,p,n,y,H,D)}catch(O){this.spinner.stop(),this.handleError(O)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,e,f,l,p,n){c=null!=c?c:0;e=null!=e?e:0;var d=[];try{var g=
-this.editor.graph;if(null!=b&&0<b.length){g.model.beginUpdate();try{var k=mxUtils.parseXml(b);b={};var m=this.editor.extractGraphModel(k.documentElement,null!=this.pages);if(null!=m&&"mxfile"==m.nodeName&&null!=this.pages){var q=m.getElementsByTagName("diagram");if(1==q.length&&!p){if(m=Editor.parseDiagramNode(q[0]),null!=this.currentPage&&(b[q[0].getAttribute("id")]=this.currentPage.getId(),this.isBlankFile())){var t=q[0].getAttribute("name");null!=t&&""!=t&&this.editor.graph.model.execute(new RenamePage(this,
-this.currentPage,t))}}else if(0<q.length){p=[];var v=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(b[q[0].getAttribute("id")]=this.pages[0].getId(),m=Editor.parseDiagramNode(q[0]),f=!1,v=1);for(;v<q.length;v++){var O=q[v].getAttribute("id");q[v].removeAttribute("id");var A=this.updatePageRoot(new DiagramPage(q[v]));b[O]=q[v].getAttribute("id");var C=this.pages.length;null==A.getName()&&A.setName(mxResources.get("pageWithNumber",[C+1]));g.model.execute(new ChangePage(this,A,A,C,
-!0));p.push(A)}this.updatePageLinks(b,p)}}if(null!=m&&"mxGraphModel"===m.nodeName){d=g.importGraphModel(m,c,e,f);if(null!=d)for(v=0;v<d.length;v++)this.updatePageLinksForCell(b,d[v]);var E=g.parseBackgroundImage(m.getAttribute("backgroundImage"));if(null!=E&&null!=E.originalSrc){this.updateBackgroundPageLink(b,E);var L=new ChangePageSetup(this,null,E);L.ignoreColor=!0;g.model.execute(L)}}n&&this.insertHandler(d,null,null,g.defaultVertexStyle,g.defaultEdgeStyle,!1,!0)}finally{g.model.endUpdate()}}}catch(N){if(l)throw N;
-this.handleError(N)}return d};EditorUi.prototype.updatePageLinks=function(b,c){for(var d=0;d<c.length;d++)this.updatePageLinksForCell(b,c[d].root),null!=c[d].viewState&&this.updateBackgroundPageLink(b,c[d].viewState.backgroundImage)};EditorUi.prototype.updateBackgroundPageLink=function(b,c){try{if(null!=c&&Graph.isPageLink(c.originalSrc)){var d=b[c.originalSrc.substring(c.originalSrc.indexOf(",")+1)];null!=d&&(c.originalSrc="data:page/id,"+d)}}catch(q){}};EditorUi.prototype.updatePageLinksForCell=
+this.editor.embedExtFonts(mxUtils.bind(this,function(d){try{null!=d&&this.editor.addFontCss(b,d),c(b)}catch(t){c(b)}}))}catch(g){c(b)}}))};EditorUi.prototype.exportImage=function(b,c,e,f,l,p,n,u,q,y,G,H,D){q=null!=q?q:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(b){this.spinner.stop();try{this.saveCanvas(b,
+l?this.getFileData(!0,null,null,null,e,u):null,q,null==this.pages||0==this.pages.length,G)}catch(A){this.handleError(A)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,e,b||1,c,f,null,null,p,n,y,H,D)}catch(O){this.spinner.stop(),this.handleError(O)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,e,f,l,p,n){c=null!=c?c:0;e=null!=e?e:0;var d=[];try{var g=
+this.editor.graph;if(null!=b&&0<b.length){g.model.beginUpdate();try{var k=mxUtils.parseXml(b);b={};var m=this.editor.extractGraphModel(k.documentElement,null!=this.pages);if(null!=m&&"mxfile"==m.nodeName&&null!=this.pages){var t=m.getElementsByTagName("diagram");if(1==t.length&&!p){if(m=Editor.parseDiagramNode(t[0]),null!=this.currentPage&&(b[t[0].getAttribute("id")]=this.currentPage.getId(),this.isBlankFile())){var q=t[0].getAttribute("name");null!=q&&""!=q&&this.editor.graph.model.execute(new RenamePage(this,
+this.currentPage,q))}}else if(0<t.length){p=[];var v=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(b[t[0].getAttribute("id")]=this.pages[0].getId(),m=Editor.parseDiagramNode(t[0]),f=!1,v=1);for(;v<t.length;v++){var O=t[v].getAttribute("id");t[v].removeAttribute("id");var A=this.updatePageRoot(new DiagramPage(t[v]));b[O]=t[v].getAttribute("id");var C=this.pages.length;null==A.getName()&&A.setName(mxResources.get("pageWithNumber",[C+1]));g.model.execute(new ChangePage(this,A,A,C,
+!0));p.push(A)}this.updatePageLinks(b,p)}}if(null!=m&&"mxGraphModel"===m.nodeName){d=g.importGraphModel(m,c,e,f);if(null!=d)for(v=0;v<d.length;v++)this.updatePageLinksForCell(b,d[v]);var E=g.parseBackgroundImage(m.getAttribute("backgroundImage"));if(null!=E&&null!=E.originalSrc){this.updateBackgroundPageLink(b,E);var J=new ChangePageSetup(this,null,E);J.ignoreColor=!0;g.model.execute(J)}}n&&this.insertHandler(d,null,null,g.defaultVertexStyle,g.defaultEdgeStyle,!1,!0)}finally{g.model.endUpdate()}}}catch(N){if(l)throw N;
+this.handleError(N)}return d};EditorUi.prototype.updatePageLinks=function(b,c){for(var d=0;d<c.length;d++)this.updatePageLinksForCell(b,c[d].root),null!=c[d].viewState&&this.updateBackgroundPageLink(b,c[d].viewState.backgroundImage)};EditorUi.prototype.updateBackgroundPageLink=function(b,c){try{if(null!=c&&Graph.isPageLink(c.originalSrc)){var d=b[c.originalSrc.substring(c.originalSrc.indexOf(",")+1)];null!=d&&(c.originalSrc="data:page/id,"+d)}}catch(t){}};EditorUi.prototype.updatePageLinksForCell=
function(b,c){var d=document.createElement("div"),e=this.editor.graph,f=e.getLinkForCell(c);null!=f&&e.setLinkForCell(c,this.updatePageLink(b,f));if(e.isHtmlLabel(c)){d.innerHTML=e.sanitizeHtml(e.getLabel(c));for(var k=d.getElementsByTagName("a"),l=!1,n=0;n<k.length;n++)f=k[n].getAttribute("href"),null!=f&&(k[n].setAttribute("href",this.updatePageLink(b,f)),l=!0);l&&e.labelChanged(c,d.innerHTML)}for(n=0;n<e.model.getChildCount(c);n++)this.updatePageLinksForCell(b,e.model.getChildAt(c,n))};EditorUi.prototype.updatePageLink=
function(b,c){if(Graph.isPageLink(c)){var d=b[c.substring(c.indexOf(",")+1)];c=null!=d?"data:page/id,"+d:null}else if("data:action/json,"==c.substring(0,17))try{var e=JSON.parse(c.substring(17));if(null!=e.actions){for(var f=0;f<e.actions.length;f++){var k=e.actions[f];if(null!=k.open&&Graph.isPageLink(k.open)){var l=k.open.substring(k.open.indexOf(",")+1),d=b[l];null!=d?k.open="data:page/id,"+d:null==this.getPageById(l)&&delete k.open}}c="data:action/json,"+JSON.stringify(e)}}catch(u){}return c};
EditorUi.prototype.isRemoteVisioFormat=function(b){return/(\.v(sd|dx))($|\?)/i.test(b)||/(\.vs(s|x))($|\?)/i.test(b)};EditorUi.prototype.importVisio=function(b,c,e,f,l){f=null!=f?f:b.name;e=null!=e?e:mxUtils.bind(this,function(b){this.handleError(b)});var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var d=this.isRemoteVisioFormat(f);try{var g="UNKNOWN-VISIO",k=f.lastIndexOf(".");if(0<=k&&k<f.length)g=f.substring(k+1).toUpperCase();else{var m=f.lastIndexOf("/");0<=
@@ -3639,45 +3639,45 @@ if(0<c.length){var g=parseFloat(c[0].getAttribute("width")),k=parseFloat(c[0].ge
g):mxscript("js/extensions.min.js",g))};EditorUi.prototype.generatePlantUmlImage=function(b,c,e,f){function d(b,d,c){c1=b>>2;c2=(b&3)<<4|d>>4;c3=(d&15)<<2|c>>6;c4=c&63;r="";r+=g(c1&63);r+=g(c2&63);r+=g(c3&63);return r+=g(c4&63)}function g(b){if(10>b)return String.fromCharCode(48+b);b-=10;if(26>b)return String.fromCharCode(65+b);b-=26;if(26>b)return String.fromCharCode(97+b);b-=26;return 0==b?"-":1==b?"_":"?"}var k=new XMLHttpRequest;k.open("GET",("txt"==c?PLANT_URL+"/txt/":"png"==c?PLANT_URL+"/png/":
PLANT_URL+"/svg/")+function(b){r="";for(i=0;i<b.length;i+=3)r=i+2==b.length?r+d(b.charCodeAt(i),b.charCodeAt(i+1),0):i+1==b.length?r+d(b.charCodeAt(i),0,0):r+d(b.charCodeAt(i),b.charCodeAt(i+1),b.charCodeAt(i+2));return r}(Graph.arrayBufferToString(pako.deflateRaw(b))),!0);"txt"!=c&&(k.responseType="blob");k.onload=function(b){if(200<=this.status&&300>this.status)if("txt"==c)e(this.response);else{var d=new FileReader;d.readAsDataURL(this.response);d.onloadend=function(b){var c=new Image;c.onload=
function(){try{var b=c.width,g=c.height;if(0==b&&0==g){var k=d.result,l=k.indexOf(","),m=decodeURIComponent(escape(atob(k.substring(l+1)))),p=mxUtils.parseXml(m).getElementsByTagName("svg");0<p.length&&(b=parseFloat(p[0].getAttribute("width")),g=parseFloat(p[0].getAttribute("height")))}e(d.result,b,g)}catch(E){f(E)}};c.src=d.result};d.onerror=function(b){f(b)}}else f(b)};k.onerror=function(b){f(b)};k.send()};EditorUi.prototype.insertAsPreText=function(b,c,e){var d=this.editor.graph,g=null;d.getModel().beginUpdate();
-try{g=d.insertVertex(null,null,"<pre>"+b+"</pre>",c,e,1,1,"text;html=1;align=left;verticalAlign=top;"),d.updateCellSize(g,!0)}finally{d.getModel().endUpdate()}return g};EditorUi.prototype.insertTextAt=function(b,c,e,f,l,p,n,t){p=null!=p?p:!0;n=null!=n?n:!0;if(null!=b)if(Graph.fileSupport&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b))this.isOffline()?this.showError(mxResources.get("error"),mxResources.get("notInOffline")):this.parseFileData(b.replace(/\s+/g," "),mxUtils.bind(this,function(b){4==
-b.readyState&&200<=b.status&&299>=b.status&&this.editor.graph.setSelectionCells(this.insertTextAt(b.responseText,c,e,!0))}));else if("data:"==b.substring(0,5)||!this.isOffline()&&(l||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b))){var d=this.editor.graph;if("data:application/pdf;base64,"==b.substring(0,28)){var g=Editor.extractGraphModelFromPdf(b);if(null!=g&&0<g.length)return this.importXml(g,c,e,p,!0,t)}if(Editor.isPngDataUrl(b)&&(g=Editor.extractGraphModelFromPng(b),null!=g&&0<g.length))return this.importXml(g,
-c,e,p,!0,t);if("data:image/svg+xml;"==b.substring(0,19))try{g=null;"data:image/svg+xml;base64,"==b.substring(0,26)?(g=b.substring(b.indexOf(",")+1),g=window.atob&&!mxClient.IS_SF?atob(g):Base64.decode(g,!0)):g=decodeURIComponent(b.substring(b.indexOf(",")+1));var k=this.importXml(g,c,e,p,!0,t);if(0<k.length)return k}catch(D){}this.loadImage(b,mxUtils.bind(this,function(g){if("data:"==b.substring(0,5))this.resizeImage(g,b,mxUtils.bind(this,function(b,g,f){d.setSelectionCell(d.insertVertex(null,null,
+try{g=d.insertVertex(null,null,"<pre>"+b+"</pre>",c,e,1,1,"text;html=1;align=left;verticalAlign=top;"),d.updateCellSize(g,!0)}finally{d.getModel().endUpdate()}return g};EditorUi.prototype.insertTextAt=function(b,c,e,f,l,p,n,q){p=null!=p?p:!0;n=null!=n?n:!0;if(null!=b)if(Graph.fileSupport&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b))this.isOffline()?this.showError(mxResources.get("error"),mxResources.get("notInOffline")):this.parseFileData(b.replace(/\s+/g," "),mxUtils.bind(this,function(b){4==
+b.readyState&&200<=b.status&&299>=b.status&&this.editor.graph.setSelectionCells(this.insertTextAt(b.responseText,c,e,!0))}));else if("data:"==b.substring(0,5)||!this.isOffline()&&(l||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b))){var d=this.editor.graph;if("data:application/pdf;base64,"==b.substring(0,28)){var g=Editor.extractGraphModelFromPdf(b);if(null!=g&&0<g.length)return this.importXml(g,c,e,p,!0,q)}if(Editor.isPngDataUrl(b)&&(g=Editor.extractGraphModelFromPng(b),null!=g&&0<g.length))return this.importXml(g,
+c,e,p,!0,q);if("data:image/svg+xml;"==b.substring(0,19))try{g=null;"data:image/svg+xml;base64,"==b.substring(0,26)?(g=b.substring(b.indexOf(",")+1),g=window.atob&&!mxClient.IS_SF?atob(g):Base64.decode(g,!0)):g=decodeURIComponent(b.substring(b.indexOf(",")+1));var k=this.importXml(g,c,e,p,!0,q);if(0<k.length)return k}catch(D){}this.loadImage(b,mxUtils.bind(this,function(g){if("data:"==b.substring(0,5))this.resizeImage(g,b,mxUtils.bind(this,function(b,g,f){d.setSelectionCell(d.insertVertex(null,null,
"",d.snap(c),d.snap(e),g,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(b)+";"))}),n,this.maxImageSize);else{var f=Math.min(1,Math.min(this.maxImageSize/g.width,this.maxImageSize/g.height)),k=Math.round(g.width*f);g=Math.round(g.height*f);d.setSelectionCell(d.insertVertex(null,null,"",d.snap(c),d.snap(e),k,g,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
-b+";"))}}),mxUtils.bind(this,function(){var g=null;d.getModel().beginUpdate();try{g=d.insertVertex(d.getDefaultParent(),null,b,d.snap(c),d.snap(e),1,1,"text;"+(f?"html=1;":"")),d.updateCellSize(g),d.fireEvent(new mxEventObject("textInserted","cells",[g]))}finally{d.getModel().endUpdate()}d.setSelectionCell(g)}))}else{b=Graph.zapGremlins(mxUtils.trim(b));if(this.isCompatibleString(b))return this.importXml(b,c,e,p,null,t);if(0<b.length)if(this.isLucidChartData(b))this.convertLucidChart(b,mxUtils.bind(this,
-function(b){this.editor.graph.setSelectionCells(this.importXml(b,c,e,p,null,t))}),mxUtils.bind(this,function(b){this.handleError(b)}));else{d=this.editor.graph;l=null;d.getModel().beginUpdate();try{l=d.insertVertex(d.getDefaultParent(),null,"",d.snap(c),d.snap(e),1,1,"text;whiteSpace=wrap;"+(f?"html=1;":""));d.fireEvent(new mxEventObject("textInserted","cells",[l]));"<"==b.charAt(0)&&b.indexOf(">")==b.length-1&&(b=mxUtils.htmlEntities(b));b.length>this.maxTextBytes&&(b=b.substring(0,this.maxTextBytes)+
+b+";"))}}),mxUtils.bind(this,function(){var g=null;d.getModel().beginUpdate();try{g=d.insertVertex(d.getDefaultParent(),null,b,d.snap(c),d.snap(e),1,1,"text;"+(f?"html=1;":"")),d.updateCellSize(g),d.fireEvent(new mxEventObject("textInserted","cells",[g]))}finally{d.getModel().endUpdate()}d.setSelectionCell(g)}))}else{b=Graph.zapGremlins(mxUtils.trim(b));if(this.isCompatibleString(b))return this.importXml(b,c,e,p,null,q);if(0<b.length)if(this.isLucidChartData(b))this.convertLucidChart(b,mxUtils.bind(this,
+function(b){this.editor.graph.setSelectionCells(this.importXml(b,c,e,p,null,q))}),mxUtils.bind(this,function(b){this.handleError(b)}));else{d=this.editor.graph;l=null;d.getModel().beginUpdate();try{l=d.insertVertex(d.getDefaultParent(),null,"",d.snap(c),d.snap(e),1,1,"text;whiteSpace=wrap;"+(f?"html=1;":""));d.fireEvent(new mxEventObject("textInserted","cells",[l]));"<"==b.charAt(0)&&b.indexOf(">")==b.length-1&&(b=mxUtils.htmlEntities(b));b.length>this.maxTextBytes&&(b=b.substring(0,this.maxTextBytes)+
"...");l.value=b;d.updateCellSize(l);if(0<this.maxTextWidth&&l.geometry.width>this.maxTextWidth){var m=d.getPreferredSizeForCell(l,this.maxTextWidth);l.geometry.width=m.width;l.geometry.height=m.height}Graph.isLink(l.value)&&d.setLinkForCell(l,l.value);l.geometry.width+=d.gridSize;l.geometry.height+=d.gridSize}finally{d.getModel().endUpdate()}return[l]}}return[]};EditorUi.prototype.formatFileSize=function(b){var d=-1;do b/=1024,d++;while(1024<b);return Math.max(b,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[d]};
EditorUi.prototype.convertDataUri=function(b){if("data:"==b.substring(0,5)){var d=b.indexOf(";");0<d&&(b=b.substring(0,d)+b.substring(b.indexOf(",",d+1)))}return b};EditorUi.prototype.isRemoteFileFormat=function(b,c){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(b)};EditorUi.prototype.isLucidChartData=function(b){return null!=b&&('{"state":"{\\"Properties\\":'==b.substring(0,26)||'{"Properties":'==b.substring(0,14))};EditorUi.prototype.importLocalFile=function(b,c){if(b&&Graph.fileSupport){if(null==
this.importFileInputElt){var d=document.createElement("input");d.setAttribute("type","file");mxEvent.addListener(d,"change",mxUtils.bind(this,function(){null!=d.files&&(this.importFiles(d.files,null,null,this.maxImageSize),d.type="",d.type="file",d.value="")}));d.style.display="none";document.body.appendChild(d);this.importFileInputElt=d}this.importFileInputElt.click()}else{window.openNew=!1;window.openKey="import";window.listBrowserFiles=mxUtils.bind(this,function(b,d){StorageFile.listFiles(this,
"F",b,d)});window.openBrowserFile=mxUtils.bind(this,function(b,d,c){StorageFile.getFileContent(this,b,d,c)});window.deleteBrowserFile=mxUtils.bind(this,function(b,d,c){StorageFile.deleteFile(this,b,d,c)});if(!c){var e=Editor.useLocalStorage;Editor.useLocalStorage=!b}window.openFile=new OpenFile(mxUtils.bind(this,function(b){this.hideDialog(b)}));window.openFile.setConsumer(mxUtils.bind(this,function(b,d){if(null!=d&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(d)){var c=new Blob([b],{type:"application/octet-stream"});
this.importVisio(c,mxUtils.bind(this,function(b){this.importXml(b,0,0,!0)}),null,d)}else this.editor.graph.setSelectionCells(this.importXml(b,0,0,!0))}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null});if(!c){var f=this.dialog,k=f.close;this.dialog.close=mxUtils.bind(this,function(b){Editor.useLocalStorage=e;k.apply(f,arguments);b&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};
EditorUi.prototype.importZipFile=function(b,c,e){var d=this,g=mxUtils.bind(this,function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(b).then(function(g){if(mxUtils.isEmptyObject(g.files))e();else{var f=0,k,l=!1;g.forEach(function(b,d){var g=d.name.toLowerCase();"diagram/diagram.xml"==g?(l=!0,d.async("string").then(function(b){0==b.indexOf("<mxfile ")?c(b):e()})):0==g.indexOf("versions/")&&(g=parseInt(g.substr(9)),g>f&&(f=g,k=d))});0<f?k.async("string").then(function(g){(new XMLHttpRequest).upload&&
-d.isRemoteFileFormat(g,b.name)?d.isOffline()?d.showError(mxResources.get("error"),mxResources.get("notInOffline"),null,e):d.parseFileData(g,mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?c(b.responseText):e())}),b.name):e()}):l||e()}},function(b){e(b)}):e()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?g():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",g))};EditorUi.prototype.importFile=function(b,c,e,f,l,n,t,u,x,y,G,H){y=null!=
-y?y:!0;var d=!1,g=null,k=mxUtils.bind(this,function(b){var d=null;null!=b&&"<mxlibrary"==b.substring(0,10)?this.loadLibrary(new LocalLibrary(this,b,t)):d=this.importXml(b,e,f,y,null,null!=H?mxEvent.isControlDown(H):null);null!=u&&u(d)});"image"==c.substring(0,5)?(x=!1,"image/png"==c.substring(0,9)&&(c=G?null:this.extractGraphModelFromPng(b),null!=c&&0<c.length&&(g=this.importXml(c,e,f,y,null,null!=H?mxEvent.isControlDown(H):null),x=!0)),x||(c=this.editor.graph,x=b.indexOf(";"),0<x&&(b=b.substring(0,
-x)+b.substring(b.indexOf(",",x+1))),y&&c.isGridEnabled()&&(e=c.snap(e),f=c.snap(f)),g=[c.insertVertex(null,null,"",e,f,l,n,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b+";")])):/(\.*<graphml )/.test(b)?(d=!0,this.importGraphML(b,k)):null!=x&&null!=t&&(/(\.v(dx|sdx?))($|\?)/i.test(t)||/(\.vs(x|sx?))($|\?)/i.test(t))?(d=!0,this.importVisio(x,k)):(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,t)?this.isOffline()?
-this.showError(mxResources.get("error"),mxResources.get("notInOffline")):(d=!0,l=mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?k(b.responseText):null!=u&&u(null))}),null!=b?this.parseFileData(b,l,t):this.parseFile(x,l,t)):0==b.indexOf("PK")&&null!=x?(d=!0,this.importZipFile(x,k,mxUtils.bind(this,function(){g=this.insertTextAt(this.validateFileData(b),e,f,!0,null,y);u(g)}))):/(\.v(sd|dx))($|\?)/i.test(t)||/(\.vs(s|x))($|\?)/i.test(t)||(g=this.insertTextAt(this.validateFileData(b),
-e,f,!0,null,y,null,null!=H?mxEvent.isControlDown(H):null));d||null==u||u(g);return g};EditorUi.prototype.importFiles=function(b,c,e,f,l,n,t,u,x,y,G,H,D){f=null!=f?f:this.maxImageSize;y=null!=y?y:this.maxImageBytes;var d=null!=c&&null!=e,g=!0;c=null!=c?c:0;e=null!=e?e:0;var k=!1;if(!mxClient.IS_CHROMEAPP&&null!=b)for(var m=G||this.resampleThreshold,p=0;p<b.length;p++)if("image/svg"!==b[p].type.substring(0,9)&&"image/"===b[p].type.substring(0,6)&&b[p].size>m){k=!0;break}var q=mxUtils.bind(this,function(){var k=
-this.editor.graph,m=k.gridSize;l=null!=l?l:mxUtils.bind(this,function(b,c,e,g,f,k,l,m,n){try{return null!=b&&"<mxlibrary"==b.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,b,l)),null):this.importFile(b,c,e,g,f,k,l,m,n,d,H,D)}catch(oa){return this.handleError(oa),null}});n=null!=n?n:mxUtils.bind(this,function(b){k.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=b.length,q=p,v=[],x=mxUtils.bind(this,function(b,d){v[b]=d;if(0==
---q){this.spinner.stop();if(null!=u)u(v);else{var c=[];k.getModel().beginUpdate();try{for(var e=0;e<v.length;e++){var g=v[e]();null!=g&&(c=c.concat(g))}}finally{k.getModel().endUpdate()}}n(c)}}),A=0;A<p;A++)mxUtils.bind(this,function(d){var n=b[d];if(null!=n){var p=new FileReader;p.onload=mxUtils.bind(this,function(b){if(null==t||t(n))if("image/"==n.type.substring(0,6))if("image/svg"==n.type.substring(0,9)){var p=Graph.clipSvgDataUri(b.target.result),q=p.indexOf(","),q=decodeURIComponent(escape(atob(p.substring(q+
-1)))),u=mxUtils.parseXml(q),q=u.getElementsByTagName("svg");if(0<q.length){var q=q[0],v=H?null:q.getAttribute("content");null!=v&&"<"!=v.charAt(0)&&"%"!=v.charAt(0)&&(v=unescape(window.atob?atob(v):Base64.decode(v,!0)));null!=v&&"%"==v.charAt(0)&&(v=decodeURIComponent(v));null==v||"<mxfile "!==v.substring(0,8)&&"<mxGraphModel "!==v.substring(0,14)?x(d,mxUtils.bind(this,function(){try{if(null!=u){var b=u.getElementsByTagName("svg");if(0<b.length){var g=b[0],q=g.getAttribute("width"),t=g.getAttribute("height"),
-q=null!=q&&"%"!=q.charAt(q.length-1)?parseFloat(q):NaN,t=null!=t&&"%"!=t.charAt(t.length-1)?parseFloat(t):NaN,y=g.getAttribute("viewBox");if(null==y||0==y.length)g.setAttribute("viewBox","0 0 "+q+" "+t);else if(isNaN(q)||isNaN(t)){var v=y.split(" ");3<v.length&&(q=parseFloat(v[2]),t=parseFloat(v[3]))}p=Editor.createSvgDataUri(mxUtils.getXml(g));var x=Math.min(1,Math.min(f/Math.max(1,q)),f/Math.max(1,t)),A=l(p,n.type,c+d*m,e+d*m,Math.max(1,Math.round(q*x)),Math.max(1,Math.round(t*x)),n.name);if(isNaN(q)||
-isNaN(t)){var M=new Image;M.onload=mxUtils.bind(this,function(){q=Math.max(1,M.width);t=Math.max(1,M.height);A[0].geometry.width=q;A[0].geometry.height=t;g.setAttribute("viewBox","0 0 "+q+" "+t);p=Editor.createSvgDataUri(mxUtils.getXml(g));var b=p.indexOf(";");0<b&&(p=p.substring(0,b)+p.substring(p.indexOf(",",b+1)));k.setCellStyles("image",p,[A[0]])});M.src=Editor.createSvgDataUri(mxUtils.getXml(g))}return A}}}catch(ra){}return null})):x(d,mxUtils.bind(this,function(){return l(v,"text/xml",c+d*m,
-e+d*m,0,0,n.name)}))}else x(d,mxUtils.bind(this,function(){return null}))}else{q=!1;if("image/png"==n.type){var A=H?null:this.extractGraphModelFromPng(b.target.result);if(null!=A&&0<A.length){var M=new Image;M.src=b.target.result;x(d,mxUtils.bind(this,function(){return l(A,"text/xml",c+d*m,e+d*m,M.width,M.height,n.name)}));q=!0}}q||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,
-function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(b.target.result,mxUtils.bind(this,function(k){this.resizeImage(k,b.target.result,mxUtils.bind(this,function(b,k,p){x(d,mxUtils.bind(this,function(){if(null!=b&&b.length<y){var q=g&&this.isResampleImageSize(n.size,G)?Math.min(1,Math.min(f/k,f/p)):1;return l(b,n.type,c+d*m,e+d*m,Math.round(k*q),Math.round(p*q),n.name)}this.handleError({message:mxResources.get("imageTooBig")});
-return null}))}),g,f,G,n.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else p=b.target.result,l(p,n.type,c+d*m,e+d*m,240,160,n.name,function(b){x(d,function(){return b})},n)});/(\.v(dx|sdx?))($|\?)/i.test(n.name)||/(\.vs(x|sx?))($|\?)/i.test(n.name)?l(null,n.type,c+d*m,e+d*m,240,160,n.name,function(b){x(d,function(){return b})},n):"image"==n.type.substring(0,5)||"application/pdf"==n.type?p.readAsDataURL(n):p.readAsText(n)}})(A)});if(k){k=
-[];for(p=0;p<b.length;p++)k.push(b[p]);b=k;this.confirmImageResize(function(b){g=b;q()},x)}else q()};EditorUi.prototype.isBlankFile=function(){return null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",[1])};EditorUi.prototype.confirmImageResize=function(b,c){c=null!=c?c:!1;var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},e=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():
+d.isRemoteFileFormat(g,b.name)?d.isOffline()?d.showError(mxResources.get("error"),mxResources.get("notInOffline"),null,e):d.parseFileData(g,mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?c(b.responseText):e())}),b.name):e()}):l||e()}},function(b){e(b)}):e()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?g():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",g))};EditorUi.prototype.importFile=function(b,c,e,f,l,p,n,q,x,y,G,H){y=null!=
+y?y:!0;var d=!1,g=null,k=mxUtils.bind(this,function(b){var d=null;null!=b&&"<mxlibrary"==b.substring(0,10)?this.loadLibrary(new LocalLibrary(this,b,n)):d=this.importXml(b,e,f,y,null,null!=H?mxEvent.isControlDown(H):null);null!=q&&q(d)});"image"==c.substring(0,5)?(x=!1,"image/png"==c.substring(0,9)&&(c=G?null:this.extractGraphModelFromPng(b),null!=c&&0<c.length&&(g=this.importXml(c,e,f,y,null,null!=H?mxEvent.isControlDown(H):null),x=!0)),x||(c=this.editor.graph,x=b.indexOf(";"),0<x&&(b=b.substring(0,
+x)+b.substring(b.indexOf(",",x+1))),y&&c.isGridEnabled()&&(e=c.snap(e),f=c.snap(f)),g=[c.insertVertex(null,null,"",e,f,l,p,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b+";")])):/(\.*<graphml )/.test(b)?(d=!0,this.importGraphML(b,k)):null!=x&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?(d=!0,this.importVisio(x,k)):(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,n)?this.isOffline()?
+this.showError(mxResources.get("error"),mxResources.get("notInOffline")):(d=!0,l=mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?k(b.responseText):null!=q&&q(null))}),null!=b?this.parseFileData(b,l,n):this.parseFile(x,l,n)):0==b.indexOf("PK")&&null!=x?(d=!0,this.importZipFile(x,k,mxUtils.bind(this,function(){g=this.insertTextAt(this.validateFileData(b),e,f,!0,null,y);q(g)}))):/(\.v(sd|dx))($|\?)/i.test(n)||/(\.vs(s|x))($|\?)/i.test(n)||(g=this.insertTextAt(this.validateFileData(b),
+e,f,!0,null,y,null,null!=H?mxEvent.isControlDown(H):null));d||null==q||q(g);return g};EditorUi.prototype.importFiles=function(b,c,e,f,l,p,n,q,x,y,G,H,D){f=null!=f?f:this.maxImageSize;y=null!=y?y:this.maxImageBytes;var d=null!=c&&null!=e,g=!0;c=null!=c?c:0;e=null!=e?e:0;var k=!1;if(!mxClient.IS_CHROMEAPP&&null!=b)for(var m=G||this.resampleThreshold,t=0;t<b.length;t++)if("image/svg"!==b[t].type.substring(0,9)&&"image/"===b[t].type.substring(0,6)&&b[t].size>m){k=!0;break}var u=mxUtils.bind(this,function(){var k=
+this.editor.graph,m=k.gridSize;l=null!=l?l:mxUtils.bind(this,function(b,c,e,g,f,k,l,m,p){try{return null!=b&&"<mxlibrary"==b.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,b,l)),null):this.importFile(b,c,e,g,f,k,l,m,p,d,H,D)}catch(oa){return this.handleError(oa),null}});p=null!=p?p:mxUtils.bind(this,function(b){k.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var t=b.length,u=t,v=[],x=mxUtils.bind(this,function(b,d){v[b]=d;if(0==
+--u){this.spinner.stop();if(null!=q)q(v);else{var c=[];k.getModel().beginUpdate();try{for(var e=0;e<v.length;e++){var g=v[e]();null!=g&&(c=c.concat(g))}}finally{k.getModel().endUpdate()}}p(c)}}),A=0;A<t;A++)mxUtils.bind(this,function(d){var p=b[d];if(null!=p){var t=new FileReader;t.onload=mxUtils.bind(this,function(b){if(null==n||n(p))if("image/"==p.type.substring(0,6))if("image/svg"==p.type.substring(0,9)){var t=Graph.clipSvgDataUri(b.target.result),q=t.indexOf(","),q=decodeURIComponent(escape(atob(t.substring(q+
+1)))),u=mxUtils.parseXml(q),q=u.getElementsByTagName("svg");if(0<q.length){var q=q[0],v=H?null:q.getAttribute("content");null!=v&&"<"!=v.charAt(0)&&"%"!=v.charAt(0)&&(v=unescape(window.atob?atob(v):Base64.decode(v,!0)));null!=v&&"%"==v.charAt(0)&&(v=decodeURIComponent(v));null==v||"<mxfile "!==v.substring(0,8)&&"<mxGraphModel "!==v.substring(0,14)?x(d,mxUtils.bind(this,function(){try{if(null!=u){var b=u.getElementsByTagName("svg");if(0<b.length){var g=b[0],n=g.getAttribute("width"),q=g.getAttribute("height"),
+n=null!=n&&"%"!=n.charAt(n.length-1)?parseFloat(n):NaN,q=null!=q&&"%"!=q.charAt(q.length-1)?parseFloat(q):NaN,y=g.getAttribute("viewBox");if(null==y||0==y.length)g.setAttribute("viewBox","0 0 "+n+" "+q);else if(isNaN(n)||isNaN(q)){var v=y.split(" ");3<v.length&&(n=parseFloat(v[2]),q=parseFloat(v[3]))}t=Editor.createSvgDataUri(mxUtils.getXml(g));var x=Math.min(1,Math.min(f/Math.max(1,n)),f/Math.max(1,q)),A=l(t,p.type,c+d*m,e+d*m,Math.max(1,Math.round(n*x)),Math.max(1,Math.round(q*x)),p.name);if(isNaN(n)||
+isNaN(q)){var M=new Image;M.onload=mxUtils.bind(this,function(){n=Math.max(1,M.width);q=Math.max(1,M.height);A[0].geometry.width=n;A[0].geometry.height=q;g.setAttribute("viewBox","0 0 "+n+" "+q);t=Editor.createSvgDataUri(mxUtils.getXml(g));var b=t.indexOf(";");0<b&&(t=t.substring(0,b)+t.substring(t.indexOf(",",b+1)));k.setCellStyles("image",t,[A[0]])});M.src=Editor.createSvgDataUri(mxUtils.getXml(g))}return A}}}catch(ra){}return null})):x(d,mxUtils.bind(this,function(){return l(v,"text/xml",c+d*m,
+e+d*m,0,0,p.name)}))}else x(d,mxUtils.bind(this,function(){return null}))}else{q=!1;if("image/png"==p.type){var A=H?null:this.extractGraphModelFromPng(b.target.result);if(null!=A&&0<A.length){var M=new Image;M.src=b.target.result;x(d,mxUtils.bind(this,function(){return l(A,"text/xml",c+d*m,e+d*m,M.width,M.height,p.name)}));q=!0}}q||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,
+function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(b.target.result,mxUtils.bind(this,function(k){this.resizeImage(k,b.target.result,mxUtils.bind(this,function(b,k,n){x(d,mxUtils.bind(this,function(){if(null!=b&&b.length<y){var t=g&&this.isResampleImageSize(p.size,G)?Math.min(1,Math.min(f/k,f/n)):1;return l(b,p.type,c+d*m,e+d*m,Math.round(k*t),Math.round(n*t),p.name)}this.handleError({message:mxResources.get("imageTooBig")});
+return null}))}),g,f,G,p.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else t=b.target.result,l(t,p.type,c+d*m,e+d*m,240,160,p.name,function(b){x(d,function(){return b})},p)});/(\.v(dx|sdx?))($|\?)/i.test(p.name)||/(\.vs(x|sx?))($|\?)/i.test(p.name)?l(null,p.type,c+d*m,e+d*m,240,160,p.name,function(b){x(d,function(){return b})},p):"image"==p.type.substring(0,5)||"application/pdf"==p.type?t.readAsDataURL(p):t.readAsText(p)}})(A)});if(k){k=
+[];for(t=0;t<b.length;t++)k.push(b[t]);b=k;this.confirmImageResize(function(b){g=b;u()},x)}else u()};EditorUi.prototype.isBlankFile=function(){return null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",[1])};EditorUi.prototype.confirmImageResize=function(b,c){c=null!=c?c:!1;var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},e=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():
null,f=function(e,g){if(e||c)mxSettings.setResizeImages(e?g:null),mxSettings.save();d();b(g)};null==e||c?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(b){f(b,!0)},function(b){f(b,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container,340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,
!0,!0):f(!1,e)};EditorUi.prototype.parseFile=function(b,c,e){e=null!=e?e:b.name;var d=new FileReader;d.onload=mxUtils.bind(this,function(){this.parseFileData(d.result,c,e)});d.readAsText(b)};EditorUi.prototype.parseFileData=function(b,c,e){var d=new XMLHttpRequest;d.open("POST",OPEN_URL);d.setRequestHeader("Content-Type","application/x-www-form-urlencoded");d.onreadystatechange=function(){c(d)};d.send("format=xml&filename="+encodeURIComponent(e)+"&data="+encodeURIComponent(b));try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",
-action:"size_"+file.size})}catch(m){}};EditorUi.prototype.isResampleImageSize=function(b,c){c=null!=c?c:this.resampleThreshold;return b>c};EditorUi.prototype.resizeImage=function(b,c,e,f,l,n,t){l=null!=l?l:this.maxImageSize;var d=Math.max(1,b.width),g=Math.max(1,b.height);if(f&&this.isResampleImageSize(null!=t?t:c.length,n))try{var k=Math.max(d/l,g/l);if(1<k){var m=Math.round(d/k),p=Math.round(g/k),q=document.createElement("canvas");q.width=m;q.height=p;q.getContext("2d").drawImage(b,0,0,m,p);var v=
-q.toDataURL();if(v.length<c.length){var O=document.createElement("canvas");O.width=m;O.height=p;var A=O.toDataURL();v!==A&&(c=v,d=m,g=p)}}}catch(C){}e(c,d,g)};EditorUi.prototype.extractGraphModelFromPng=function(b){return Editor.extractGraphModelFromPng(b)};EditorUi.prototype.loadImage=function(b,c,e){try{var d=new Image;d.onload=function(){d.width=0<d.width?d.width:120;d.height=0<d.height?d.height:120;c(d)};null!=e&&(d.onerror=e);d.src=b}catch(m){if(null!=e)e(m);else throw m;}};EditorUi.prototype.getDefaultSketchMode=
+action:"size_"+file.size})}catch(m){}};EditorUi.prototype.isResampleImageSize=function(b,c){c=null!=c?c:this.resampleThreshold;return b>c};EditorUi.prototype.resizeImage=function(b,c,e,f,l,p,n){l=null!=l?l:this.maxImageSize;var d=Math.max(1,b.width),g=Math.max(1,b.height);if(f&&this.isResampleImageSize(null!=n?n:c.length,p))try{var k=Math.max(d/l,g/l);if(1<k){var m=Math.round(d/k),t=Math.round(g/k),q=document.createElement("canvas");q.width=m;q.height=t;q.getContext("2d").drawImage(b,0,0,m,t);var v=
+q.toDataURL();if(v.length<c.length){var O=document.createElement("canvas");O.width=m;O.height=t;var A=O.toDataURL();v!==A&&(c=v,d=m,g=t)}}}catch(C){}e(c,d,g)};EditorUi.prototype.extractGraphModelFromPng=function(b){return Editor.extractGraphModelFromPng(b)};EditorUi.prototype.loadImage=function(b,c,e){try{var d=new Image;d.onload=function(){d.width=0<d.width?d.width:120;d.height=0<d.height?d.height:120;c(d)};null!=e&&(d.onerror=e);d.src=b}catch(m){if(null!=e)e(m);else throw m;}};EditorUi.prototype.getDefaultSketchMode=
function(){var b="ac.draw.io"==window.location.host?"1":"0";return"0"!=(null!=urlParams.rough?urlParams.rough:b)};var n=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();this.isSettingsEnabled()&&("1"==urlParams.sketch&&this.doSetSketchMode(null!=mxSettings.settings.sketchMode&&null==urlParams.rough?mxSettings.settings.sketchMode:this.getDefaultSketchMode()),null!=mxSettings.settings.sidebarTitles&&(Sidebar.prototype.sidebarTitles=
mxSettings.settings.sidebarTitles),this.formatWidth=mxSettings.getFormatWidth());var b=this,c=this.editor.graph;Editor.isDarkMode()&&(c.view.defaultGridColor=mxGraphView.prototype.defaultDarkGridColor);Graph.touchStyle&&(c.panningHandler.isPanningTrigger=function(b){var d=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(d)&&!c.freehand.isDrawing()||mxEvent.isPopupTrigger(d)&&(null==b.getState()||mxEvent.isControlDown(d)||mxEvent.isShiftDown(d))});c.cellEditor.editPlantUmlData=function(d,
e,g){var f=JSON.parse(g);e=new TextareaDialog(b,mxResources.get("plantUml")+":",f.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generatePlantUmlImage(e,f.format,function(g,k,l){b.spinner.stop();c.getModel().beginUpdate();try{if("txt"==f.format)c.labelChanged(d,"<pre>"+g+"</pre>"),c.updateCellSize(d,!0);else{c.setCellStyles("image",b.convertDataUri(g),[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=k,m.height=l,c.cellsResized([d],[m],!1))}c.setAttributeForCell(d,
"plantUmlData",JSON.stringify({data:e,format:f.format}))}finally{c.getModel().endUpdate()}},function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};c.cellEditor.editMermaidData=function(d,e,g){var f=JSON.parse(g);e=new TextareaDialog(b,mxResources.get("mermaid")+":",f.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generateMermaidImage(e,f.config,function(g,k,l){b.spinner.stop();c.getModel().beginUpdate();try{c.setCellStyles("image",
g,[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=Math.max(m.width,k),m.height=Math.max(m.height,l),c.cellsResized([d],[m],!1));c.setAttributeForCell(d,"mermaidData",JSON.stringify({data:e,config:f.config},null,2))}finally{c.getModel().endUpdate()}},function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};var e=c.cellEditor.startEditing;c.cellEditor.startEditing=function(d,g){try{var f=this.graph.getAttributeForCell(d,"plantUmlData");if(null!=
-f)this.editPlantUmlData(d,g,f);else if(f=this.graph.getAttributeForCell(d,"mermaidData"),null!=f)this.editMermaidData(d,g,f);else{var k=c.getCellStyle(d);"1"==mxUtils.getValue(k,"metaEdit","0")?b.showDataDialog(d):e.apply(this,arguments)}}catch(M){b.handleError(M)}};c.getLinkTitle=function(d){return b.getLinkTitle(d)};c.customLinkClicked=function(d){var c=!1;try{b.handleCustomLink(d),c=!0}catch(L){b.handleError(L)}return c};var f=c.parseBackgroundImage;c.parseBackgroundImage=function(b){var d=f.apply(this,
+f)this.editPlantUmlData(d,g,f);else if(f=this.graph.getAttributeForCell(d,"mermaidData"),null!=f)this.editMermaidData(d,g,f);else{var k=c.getCellStyle(d);"1"==mxUtils.getValue(k,"metaEdit","0")?b.showDataDialog(d):e.apply(this,arguments)}}catch(M){b.handleError(M)}};c.getLinkTitle=function(d){return b.getLinkTitle(d)};c.customLinkClicked=function(d){var c=!1;try{b.handleCustomLink(d),c=!0}catch(J){b.handleError(J)}return c};var f=c.parseBackgroundImage;c.parseBackgroundImage=function(b){var d=f.apply(this,
arguments);null!=d&&null!=d.src&&Graph.isPageLink(d.src)&&(d={originalSrc:d.src});return d};var l=c.setBackgroundImage;c.setBackgroundImage=function(d){null!=d&&null!=d.originalSrc&&(d=b.createImageForPageLink(d.originalSrc,b.currentPage,this));l.apply(this,arguments)};this.editor.addListener("pageRenamed",mxUtils.bind(this,function(){c.refreshBackgroundImage()}));this.editor.addListener("pageMoved",mxUtils.bind(this,function(){c.refreshBackgroundImage()}));this.editor.addListener("pagesPatched",
mxUtils.bind(this,function(b,d){var e=null!=c.backgroundImage?c.backgroundImage.originalSrc:null;if(null!=e){var g=e.indexOf(",");if(0<g)for(var e=e.substring(g+1),g=d.getProperty("patches"),f=0;f<g.length;f++)if(null!=g[f][EditorUi.DIFF_UPDATE]&&null!=g[f][EditorUi.DIFF_UPDATE][e]||null!=g[f][EditorUi.DIFF_REMOVE]&&0<=mxUtils.indexOf(g[f][EditorUi.DIFF_REMOVE],e)){c.refreshBackgroundImage();break}}}));var p=c.getBackgroundImageObject;c.getBackgroundImageObject=function(d,c){var e=p.apply(this,arguments);
-if(null!=e&&null!=e.originalSrc)if(!c)e={src:e.originalSrc};else if(c&&null!=this.themes&&"darkTheme"==this.defaultThemeName){var g=this.stylesheet,f=this.shapeForegroundColor,k=this.shapeBackgroundColor;this.stylesheet=this.getDefaultStylesheet();this.shapeBackgroundColor="#ffffff";this.shapeForegroundColor="#000000";e=b.createImageForPageLink(e.originalSrc);this.shapeBackgroundColor=k;this.shapeForegroundColor=f;this.stylesheet=g}return e};var t=this.clearDefaultStyle;this.clearDefaultStyle=function(){t.apply(this,
+if(null!=e&&null!=e.originalSrc)if(!c)e={src:e.originalSrc};else if(c&&null!=this.themes&&"darkTheme"==this.defaultThemeName){var g=this.stylesheet,f=this.shapeForegroundColor,k=this.shapeBackgroundColor;this.stylesheet=this.getDefaultStylesheet();this.shapeBackgroundColor="#ffffff";this.shapeForegroundColor="#000000";e=b.createImageForPageLink(e.originalSrc);this.shapeBackgroundColor=k;this.shapeForegroundColor=f;this.stylesheet=g}return e};var q=this.clearDefaultStyle;this.clearDefaultStyle=function(){q.apply(this,
arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://www.diagrams.net/doc/faq/predefined-placeholders");if(/viewer\.diagrams\.net$/.test(window.location.hostname)||/embed\.diagrams\.net$/.test(window.location.hostname))this.editor.editBlankUrl="https://app.diagrams.net/";var u=b.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1");return u.apply(this,arguments)};
var x=c.addClickHandler;c.addClickHandler=function(b,d,e){var g=d;d=function(b,d){if(null==d){var e=mxEvent.getSource(b);"a"==e.nodeName.toLowerCase()&&(d=e.getAttribute("href"))}null!=d&&c.isCustomLink(d)&&(mxEvent.isTouchEvent(b)||!mxEvent.isPopupTrigger(b))&&c.customLinkClicked(d)&&mxEvent.consume(b);null!=g&&g(b,d)};x.call(this,b,d,e)};n.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var y=Menus.prototype.addPopupMenuEditItems;
this.menus.addPopupMenuEditItems=function(d,c,e){b.editor.graph.isSelectionEmpty()?y.apply(this,arguments):b.menus.addMenuItems(d,"delete - cut copy copyAsImage - duplicate".split(" "),null,e)}}b.actions.get("print").funct=function(){b.showDialog((new PrintDialog(b)).container,360,null!=b.pages&&1<b.pages.length?470:390,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var G=c.getExportVariables;c.getExportVariables=function(){var d=G.apply(this,arguments),c=b.getCurrentFile();null!=
@@ -3693,9 +3693,9 @@ mxSettings.save()}),this.ruler=!this.canvasSupported||9==document.documentMode||
c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var O=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==this.styleInput?!0:O.apply(this,arguments)}}F=document.getElementById("geInfo");null!=F&&F.parentNode.removeChild(F);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var A=null;mxEvent.addListener(c.container,"dragleave",
function(b){c.isEnabled()&&(null!=A&&(A.parentNode.removeChild(A),A=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(b){null==A&&(!mxClient.IS_IE||10<document.documentMode)&&(A=this.highlightElement(c.container));null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(c.container,"drop",mxUtils.bind(this,function(b){null!=A&&(A.parentNode.removeChild(A),A=null);if(c.isEnabled()){var d=
mxUtils.convertPoint(c.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),e=b.dataTransfer.files,g=c.view.translate,f=c.view.scale,k=d.x/f-g.x,l=d.y/f-g.y;if(0<e.length)d=1==e.length&&this.isBlankFile()&&!this.canUndo()&&("image/svg"===e[0].type.substring(0,9)||"image/"!==e[0].type.substring(0,6)||/(\.drawio.png)$/i.test(e[0].name)),"1"!=urlParams.embed&&(mxEvent.isShiftDown(b)||d)?(!mxEvent.isShiftDown(b)&&d&&null!=this.getCurrentFile()&&this.fileLoaded(null),this.openFiles(e,!0)):(mxEvent.isAltDown(b)&&
-(l=k=null),this.importFiles(e,k,l,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b),b));else{mxEvent.isAltDown(b)&&(l=k=0);var m=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,e=this.extractGraphModelFromEvent(b,null!=this.pages);if(null!=e)c.setSelectionCells(this.importXml(e,k,l,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){var n=b.dataTransfer.getData("text/html"),e=document.createElement("div");
-e.innerHTML=c.sanitizeHtml(n);var p=null,d=e.getElementsByTagName("img");null!=d&&1==d.length?(n=d[0].getAttribute("src"),null==n&&(n=d[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(n)||(p=!0)):(d=e.getElementsByTagName("a"),null!=d&&1==d.length?n=d[0].getAttribute("href"):(e=e.getElementsByTagName("pre"),null!=e&&1==e.length&&(n=mxUtils.getTextContent(e[0]))));var q=!0,t=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(n,k,l,!0,p,null,q,mxEvent.isControlDown(b)))});
-p&&null!=n&&n.length>this.resampleThreshold?this.confirmImageResize(function(b){q=b;t()},mxEvent.isControlDown(b)):t()}else null!=m&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)?this.loadImage(decodeURIComponent(m),mxUtils.bind(this,function(b){var d=Math.max(1,b.width);b=Math.max(1,b.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,b));c.setSelectionCell(c.insertVertex(null,null,"",k,l,d*e,b*e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
+(l=k=null),this.importFiles(e,k,l,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b),b));else{mxEvent.isAltDown(b)&&(l=k=0);var m=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,e=this.extractGraphModelFromEvent(b,null!=this.pages);if(null!=e)c.setSelectionCells(this.importXml(e,k,l,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){var p=b.dataTransfer.getData("text/html"),e=document.createElement("div");
+e.innerHTML=c.sanitizeHtml(p);var n=null,d=e.getElementsByTagName("img");null!=d&&1==d.length?(p=d[0].getAttribute("src"),null==p&&(p=d[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(p)||(n=!0)):(d=e.getElementsByTagName("a"),null!=d&&1==d.length?p=d[0].getAttribute("href"):(e=e.getElementsByTagName("pre"),null!=e&&1==e.length&&(p=mxUtils.getTextContent(e[0]))));var t=!0,q=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(p,k,l,!0,n,null,t,mxEvent.isControlDown(b)))});
+n&&null!=p&&p.length>this.resampleThreshold?this.confirmImageResize(function(b){t=b;q()},mxEvent.isControlDown(b)):q()}else null!=m&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)?this.loadImage(decodeURIComponent(m),mxUtils.bind(this,function(b){var d=Math.max(1,b.width);b=Math.max(1,b.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,b));c.setSelectionCell(c.insertVertex(null,null,"",k,l,d*e,b*e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
m+";"))}),mxUtils.bind(this,function(b){c.setSelectionCells(this.insertTextAt(m,k,l,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&c.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),k,l,!0))}}b.stopPropagation();b.preventDefault()}),!1)}c.enableFlowAnimation=!0;this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var b=this.editor.graph;b.container.addEventListener("paste",
mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d))try{for(var c=d.clipboardData||d.originalEvent.clipboardData,e=!1,f=0;f<c.types.length;f++)if("text/"===c.types[f].substring(0,5)){e=!0;break}if(!e){var k=c.items;for(index in k){var l=k[index];if("file"===l.kind){if(b.isEditing())this.importFiles([l.getAsFile()],0,0,this.maxImageSize,function(d,c,e,g,f,k){b.insertImage(d,f,k)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()});else{var n=
this.editor.graph.getInsertPoint();this.importFiles([l.getAsFile()],n.x,n.y,this.maxImageSize);mxEvent.consume(d)}break}}}}catch(x){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function b(){window.setTimeout(function(){e.innerHTML="&nbsp;";e.focus();document.execCommand("selectAll",!1,null)},0)}var c=this.editor.graph,e=document.createElement("div");e.setAttribute("autocomplete","off");e.setAttribute("autocorrect","off");e.setAttribute("autocapitalize","off");e.setAttribute("spellcheck",
@@ -3716,14 +3716,14 @@ mxSettings.save()}));this.editor.graph.pageFormat=null!=this.editor.graph.defaul
this.addListener("gridColorChanged",mxUtils.bind(this,function(b,c){mxSettings.setGridColor(this.editor.graph.view.gridColor,Editor.isDarkMode());mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(b,c){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave=mxSettings.getAutosave();null!=this.sidebar&&(null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes?(this.sidebar.searchShapes(decodeURIComponent(urlParams["search-shapes"])),
this.sidebar.showEntries("search")):(this.sidebar.showPalette("search",mxSettings.settings.search),this.editor.chromeless&&!this.editor.editable||!(mxSettings.settings.isNew||8>=parseInt(mxSettings.settings.version||0))||(this.toggleScratchpad(),mxSettings.save())));this.addListener("formatWidthChanged",function(){mxSettings.setFormatWidth(this.formatWidth);mxSettings.save()})}};EditorUi.prototype.copyImage=function(b,c,e){try{null!=navigator.clipboard&&this.spinner.spin(document.body,mxResources.get("exporting"))&&
this.editor.exportToCanvas(mxUtils.bind(this,function(b,d){try{this.spinner.stop();var e=this.createImageDataUri(b,c,"png"),g=parseInt(d.getAttribute("width")),f=parseInt(d.getAttribute("height"));this.writeImageToClipboard(e,g,f,mxUtils.bind(this,function(b){this.handleError(b)}))}catch(x){this.handleError(x)}}),null,null,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,null,null!=e?e:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,
-null,null,null,10,null,null,!1,null,0<b.length?b:null)}catch(q){this.handleError(q)}};EditorUi.prototype.writeImageToClipboard=function(b,c,e,f){var d=this.base64ToBlob(b.substring(b.indexOf(",")+1),"image/png");b=new ClipboardItem({"image/png":d,"text/html":new Blob(['<img src="'+b+'" width="'+c+'" height="'+e+'">'],{type:"text/html"})});navigator.clipboard.write([b])["catch"](f)};EditorUi.prototype.copyCells=function(b,c){var d=this.editor.graph;if(d.isSelectionEmpty())b.innerHTML="";else{var e=
+null,null,null,10,null,null,!1,null,0<b.length?b:null)}catch(t){this.handleError(t)}};EditorUi.prototype.writeImageToClipboard=function(b,c,e,f){var d=this.base64ToBlob(b.substring(b.indexOf(",")+1),"image/png");b=new ClipboardItem({"image/png":d,"text/html":new Blob(['<img src="'+b+'" width="'+c+'" height="'+e+'">'],{type:"text/html"})});navigator.clipboard.write([b])["catch"](f)};EditorUi.prototype.copyCells=function(b,c){var d=this.editor.graph;if(d.isSelectionEmpty())b.innerHTML="";else{var e=
mxUtils.sortCells(d.model.getTopmostCells(d.getSelectionCells())),f=mxUtils.getXml(d.encodeCells(e));mxUtils.setTextContent(b,encodeURIComponent(f));c?(d.removeCells(e,!1),d.lastPasteXml=null):(d.lastPasteXml=f,d.pasteCounter=0);b.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.copyXml=function(){var b=null;if(Editor.enableNativeCipboard){var c=this.editor.graph;c.isSelectionEmpty()||(b=mxUtils.sortCells(c.getExportableCells(c.model.getTopmostCells(c.getSelectionCells()))),
c=mxUtils.getXml(c.encodeCells(b)),navigator.clipboard.writeText(c))}return b};EditorUi.prototype.pasteXml=function(b,c,e,f){var d=this.editor.graph,g=null;d.lastPasteXml==b?d.pasteCounter++:(d.lastPasteXml=b,d.pasteCounter=0);var k=d.pasteCounter*d.gridSize;if(e||this.isCompatibleString(b))g=this.importXml(b,k,k),d.setSelectionCells(g);else if(c&&1==d.getSelectionCount()){k=d.getStartEditingCell(d.getSelectionCell(),f);if(/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b)&&"image"==d.getCurrentCellStyle(k)[mxConstants.STYLE_SHAPE])d.setCellStyles(mxConstants.STYLE_IMAGE,
b,[k]);else{d.model.beginUpdate();try{d.labelChanged(k,b),Graph.isLink(b)&&d.setLinkForCell(k,b)}finally{d.model.endUpdate()}}d.setSelectionCell(k)}else g=d.getInsertPoint(),d.isMouseInsertPoint()&&(k=0,d.lastPasteXml==b&&0<d.pasteCounter&&d.pasteCounter--),g=this.insertTextAt(b,g.x+k,g.y+k,!0),d.setSelectionCells(g);d.isSelectionEmpty()||(d.scrollCellToVisible(d.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell())));return g};EditorUi.prototype.pasteCells=
function(b,c,e,f){if(!mxEvent.isConsumed(b)){var d=c,g=!1;if(e&&null!=b.clipboardData&&b.clipboardData.getData){var k=b.clipboardData.getData("text/plain"),l=!1;if(null!=k&&0<k.length&&"%3CmxGraphModel%3E"==k.substring(0,18)){var n=decodeURIComponent(k);this.isCompatibleString(n)&&(l=!0,k=n)}l=l?null:b.clipboardData.getData("text/html");null!=l&&0<l.length?(d=this.parseHtmlData(l),g="text/plain"!=d.getAttribute("data-type")):null!=k&&0<k.length&&(d=document.createElement("div"),mxUtils.setTextContent(d,
l))}k=d.getElementsByTagName("span");if(null!=k&&0<k.length&&"application/vnd.lucid.chart.objects"===k[0].getAttribute("data-lucid-type"))e=k[0].getAttribute("data-lucid-content"),null!=e&&0<e.length&&(this.convertLucidChart(e,mxUtils.bind(this,function(b){var d=this.editor.graph;d.lastPasteXml==b?d.pasteCounter++:(d.lastPasteXml=b,d.pasteCounter=0);var c=d.pasteCounter*d.gridSize;d.setSelectionCells(this.importXml(b,c,c));d.scrollCellToVisible(d.getSelectionCell())}),mxUtils.bind(this,function(b){this.handleError(b)})),
-mxEvent.consume(b));else{g=g?d.innerHTML:mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText);l=!1;try{var q=g.lastIndexOf("%3E");0<=q&&q<g.length-3&&(g=g.substring(0,q+3))}catch(H){}try{k=d.getElementsByTagName("span"),n=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(g),this.isCompatibleString(n)&&(l=!0,g=n)}catch(H){}try{if(null!=g&&0<g.length){this.pasteXml(g,f,l,b);try{mxEvent.consume(b)}catch(H){}}else if(!e){var t=this.editor.graph;
-t.lastPasteXml=null;t.pasteCounter=0}}catch(H){this.handleError(H)}}}c.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(b){if(Graph.fileSupport)for(var d=null,c=0;c<b.length;c++)mxEvent.addListener(b[c],"dragleave",function(b){null!=d&&(d.parentNode.removeChild(d),d=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(b[c],"dragover",mxUtils.bind(this,function(b){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==d&&(!mxClient.IS_IE||10<document.documentMode&&
+mxEvent.consume(b));else{g=g?d.innerHTML:mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText);l=!1;try{var t=g.lastIndexOf("%3E");0<=t&&t<g.length-3&&(g=g.substring(0,t+3))}catch(H){}try{k=d.getElementsByTagName("span"),n=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(g),this.isCompatibleString(n)&&(l=!0,g=n)}catch(H){}try{if(null!=g&&0<g.length){this.pasteXml(g,f,l,b);try{mxEvent.consume(b)}catch(H){}}else if(!e){var q=this.editor.graph;
+q.lastPasteXml=null;q.pasteCounter=0}}catch(H){this.handleError(H)}}}c.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(b){if(Graph.fileSupport)for(var d=null,c=0;c<b.length;c++)mxEvent.addListener(b[c],"dragleave",function(b){null!=d&&(d.parentNode.removeChild(d),d=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(b[c],"dragover",mxUtils.bind(this,function(b){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==d&&(!mxClient.IS_IE||10<document.documentMode&&
12>document.documentMode)&&(d=this.highlightElement());b.stopPropagation();b.preventDefault()})),mxEvent.addListener(b[c],"drop",mxUtils.bind(this,function(b){null!=d&&(d.parentNode.removeChild(d),d=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<b.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b)):this.openFiles(b.dataTransfer.files,!0);
else{var c=this.extractGraphModelFromEvent(b);if(null==c){var e=null!=b.dataTransfer?b.dataTransfer:b.clipboardData;null!=e&&(10==document.documentMode||11==document.documentMode?c=e.getData("Text"):(c=null,c=0<=mxUtils.indexOf(e.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(e.types,"text/html")?e.getData("text/html"):null,null!=c&&0<c.length?(e=document.createElement("div"),e.innerHTML=this.editor.graph.sanitizeHtml(c),e=e.getElementsByTagName("img"),0<e.length&&
(c=e[0].getAttribute("src"))):0<=mxUtils.indexOf(e.types,"text/plain")&&(c=e.getData("text/plain"))),null!=c&&(Editor.isPngDataUrl(c)?(c=Editor.extractGraphModelFromPng(c),null!=c&&0<c.length&&this.openLocalFile(c,null,!0)):this.isRemoteFileFormat(c)?this.isOffline()?this.showError(mxResources.get("error"),mxResources.get("notInOffline")):(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(c))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&this.openLocalFile(b.getText(),
@@ -3748,14 +3748,14 @@ scale:d.view.scale,page:d.view.getBackgroundPageBounds()}};EditorUi.prototype.se
point:this.embedExitPoint,exit:null!=b?!b:!0,data:Editor.createSvgDataUri(d)}),"*")}),null,null,!0,e,1,this.embedExportBorder)}else b||c.postMessage(JSON.stringify({event:"exit",point:this.embedExitPoint}),"*");b||(this.diagramContainer.removeAttribute("data-bounds"),Editor.inlineFullscreen=!1,d.model.clear(),this.editor.undoManager.clear(),this.setBackgroundImage(null),this.editor.modified=!1,this.fireEvent(new mxEventObject("editInlineStop")))};EditorUi.prototype.installMessageHandler=function(b){var d=
null,c=!1,e=!1,f=null,l=mxUtils.bind(this,function(b,d){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,l);mxEvent.addListener(window,"message",mxUtils.bind(this,function(g){if(g.source==(window.opener||window.parent)){var k=g.data,l=null,m=mxUtils.bind(this,function(b){if(null!=b&&"function"===typeof b.charAt&&"<"!=
b.charAt(0))try{Editor.isPngDataUrl(b)?b=Editor.extractGraphModelFromPng(b):"data:image/svg+xml;base64,"==b.substring(0,26)?b=atob(b.substring(26)):"data:image/svg+xml;utf8,"==b.substring(0,24)&&(b=b.substring(24)),null!=b&&("%"==b.charAt(0)?b=decodeURIComponent(b):"<"!=b.charAt(0)&&(b=Graph.decompress(b)))}catch(la){}return b});if("json"==urlParams.proto){var p=!1;try{k=JSON.parse(k)}catch(I){k=null}try{if(null==k)return;if("dialog"==k.action){this.showError(null!=k.titleKey?mxResources.get(k.titleKey):
-k.title,null!=k.messageKey?mxResources.get(k.messageKey):k.message,null!=k.buttonKey?mxResources.get(k.buttonKey):k.button);null!=k.modified&&(this.editor.modified=k.modified);return}if("layout"==k.action){this.executeLayoutList(k.layouts);return}if("prompt"==k.action){this.spinner.stop();var q=new FilenameDialog(this,k.defaultValue||"",null!=k.okKey?mxResources.get(k.okKey):k.ok,function(b){null!=b?n.postMessage(JSON.stringify({event:"prompt",value:b,message:k}),"*"):n.postMessage(JSON.stringify({event:"prompt-cancel",
-message:k}),"*")},null!=k.titleKey?mxResources.get(k.titleKey):k.title);this.showDialog(q.container,300,80,!0,!1);q.init();return}if("draft"==k.action){var t=m(k.xml);this.spinner.stop();q=new DraftDialog(this,mxResources.get("draftFound",[k.name||this.defaultFilename]),t,mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"edit",message:k}),"*")}),mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"discard",
-message:k}),"*")}),k.editKey?mxResources.get(k.editKey):null,k.discardKey?mxResources.get(k.discardKey):null,k.ignore?mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"ignore",message:k}),"*")}):null);this.showDialog(q.container,640,480,!0,!1,mxUtils.bind(this,function(b){b&&this.actions.get("exit").funct()}));try{q.init()}catch(I){n.postMessage(JSON.stringify({event:"draft",error:I.toString(),message:k}),"*")}return}if("template"==k.action){this.spinner.stop();
-var u=1==k.enableRecent,v=1==k.enableSearch,x=1==k.enableCustomTemp;if("1"==urlParams.newTempDlg&&!k.templatesOnly&&null!=k.callback){var L=this.getCurrentUser(),N=new TemplatesDialog(this,function(b,d,c){b=b||this.emptyDiagramXml;n.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:d,tempUrl:c.url,libs:c.libs,builtIn:null!=c.info&&null!=c.info.custContentId,message:k}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=L?L.id:
-null,u?mxUtils.bind(this,function(b,d,c){this.remoteInvoke("getRecentDiagrams",[c],null,b,d)}):null,v?mxUtils.bind(this,function(b,d,c,e){this.remoteInvoke("searchDiagrams",[b,e],null,d,c)}):null,mxUtils.bind(this,function(b,d,c){this.remoteInvoke("getFileContent",[b.url],null,d,c)}),null,x?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(N.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}q=
+k.title,null!=k.messageKey?mxResources.get(k.messageKey):k.message,null!=k.buttonKey?mxResources.get(k.buttonKey):k.button);null!=k.modified&&(this.editor.modified=k.modified);return}if("layout"==k.action){this.executeLayoutList(k.layouts);return}if("prompt"==k.action){this.spinner.stop();var t=new FilenameDialog(this,k.defaultValue||"",null!=k.okKey?mxResources.get(k.okKey):k.ok,function(b){null!=b?n.postMessage(JSON.stringify({event:"prompt",value:b,message:k}),"*"):n.postMessage(JSON.stringify({event:"prompt-cancel",
+message:k}),"*")},null!=k.titleKey?mxResources.get(k.titleKey):k.title);this.showDialog(t.container,300,80,!0,!1);t.init();return}if("draft"==k.action){var q=m(k.xml);this.spinner.stop();t=new DraftDialog(this,mxResources.get("draftFound",[k.name||this.defaultFilename]),q,mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"edit",message:k}),"*")}),mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"discard",
+message:k}),"*")}),k.editKey?mxResources.get(k.editKey):null,k.discardKey?mxResources.get(k.discardKey):null,k.ignore?mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"ignore",message:k}),"*")}):null);this.showDialog(t.container,640,480,!0,!1,mxUtils.bind(this,function(b){b&&this.actions.get("exit").funct()}));try{t.init()}catch(I){n.postMessage(JSON.stringify({event:"draft",error:I.toString(),message:k}),"*")}return}if("template"==k.action){this.spinner.stop();
+var u=1==k.enableRecent,v=1==k.enableSearch,x=1==k.enableCustomTemp;if("1"==urlParams.newTempDlg&&!k.templatesOnly&&null!=k.callback){var J=this.getCurrentUser(),N=new TemplatesDialog(this,function(b,d,c){b=b||this.emptyDiagramXml;n.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:d,tempUrl:c.url,libs:c.libs,builtIn:null!=c.info&&null!=c.info.custContentId,message:k}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=J?J.id:
+null,u?mxUtils.bind(this,function(b,d,c){this.remoteInvoke("getRecentDiagrams",[c],null,b,d)}):null,v?mxUtils.bind(this,function(b,d,c,e){this.remoteInvoke("searchDiagrams",[b,e],null,d,c)}):null,mxUtils.bind(this,function(b,d,c){this.remoteInvoke("getFileContent",[b.url],null,d,c)}),null,x?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(N.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}t=
new NewDialog(this,!1,k.templatesOnly?!1:null!=k.callback,mxUtils.bind(this,function(d,c,e,f){d=d||this.emptyDiagramXml;null!=k.callback?n.postMessage(JSON.stringify({event:"template",xml:d,blank:d==this.emptyDiagramXml,name:c,tempUrl:e,libs:f,builtIn:!0,message:k}),"*"):(b(d,g,d!=this.emptyDiagramXml,k.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,u?mxUtils.bind(this,function(b){this.remoteInvoke("getRecentDiagrams",[null],null,b,function(){b(null,
-"Network Error!")})}):null,v?mxUtils.bind(this,function(b,d){this.remoteInvoke("searchDiagrams",[b,null],null,d,function(){d(null,"Network Error!")})}):null,mxUtils.bind(this,function(b,d,c){n.postMessage(JSON.stringify({event:"template",docUrl:b,info:d,name:c}),"*")}),null,null,x?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,1==k.withoutType);this.showDialog(q.container,620,460,!0,!1,mxUtils.bind(this,function(b){this.sidebar.hideTooltip();
-b&&this.actions.get("exit").funct()}));q.init();return}if("textContent"==k.action){var M=this.getDiagramTextContent();n.postMessage(JSON.stringify({event:"textContent",data:M,message:k}),"*");return}if("status"==k.action){null!=k.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(k.messageKey))):null!=k.message&&this.editor.setStatus(mxUtils.htmlEntities(k.message));null!=k.modified&&(this.editor.modified=k.modified);return}if("spinner"==k.action){var Q=null!=k.messageKey?mxResources.get(k.messageKey):
+"Network Error!")})}):null,v?mxUtils.bind(this,function(b,d){this.remoteInvoke("searchDiagrams",[b,null],null,d,function(){d(null,"Network Error!")})}):null,mxUtils.bind(this,function(b,d,c){n.postMessage(JSON.stringify({event:"template",docUrl:b,info:d,name:c}),"*")}),null,null,x?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,1==k.withoutType);this.showDialog(t.container,620,460,!0,!1,mxUtils.bind(this,function(b){this.sidebar.hideTooltip();
+b&&this.actions.get("exit").funct()}));t.init();return}if("textContent"==k.action){var M=this.getDiagramTextContent();n.postMessage(JSON.stringify({event:"textContent",data:M,message:k}),"*");return}if("status"==k.action){null!=k.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(k.messageKey))):null!=k.message&&this.editor.setStatus(mxUtils.htmlEntities(k.message));null!=k.modified&&(this.editor.modified=k.modified);return}if("spinner"==k.action){var Q=null!=k.messageKey?mxResources.get(k.messageKey):
k.message;null==k.show||k.show?this.spinner.spin(document.body,Q):this.spinner.stop();return}if("exit"==k.action){this.actions.get("exit").funct();return}if("viewport"==k.action){null!=k.viewport&&(this.embedViewport=k.viewport);return}if("snapshot"==k.action){this.sendEmbeddedSvgExport(!0);return}if("export"==k.action){if("png"==k.format||"xmlpng"==k.format){if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin)){var V=null!=k.xml?k.xml:
this.getFileData(!0);this.editor.graph.setEnabled(!1);var X=this.editor.graph,ja=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);this.spinner.stop();var d=this.createLoadMessage("export");d.format=k.format;d.message=k;d.data=b;d.xml=V;n.postMessage(JSON.stringify(d),"*")}),Y=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(V)));X!=this.editor.graph&&X.container.parentNode.removeChild(X.container);
ja(b)}),da=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var ba=mxUtils.bind(this,function(){if(null!=this.pages&&this.currentPage.getId()!=da){var b=X.getGlobalVariable;X=this.createTemporaryGraph(X.getStylesheet());for(var d,c=0;c<this.pages.length;c++)if(this.pages[c].getId()==da){d=this.updatePageRoot(this.pages[c]);break}null==d&&(d=this.currentPage);X.getGlobalVariable=function(c){return"page"==c?d.getName():"pagenumber"==
@@ -3766,35 +3766,35 @@ this.getHtml(d,this.editor.graph),b.xml=mxUtils.getXml(d),b.format=k.format;else
k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin))&&this.getEmbeddedSvg(b.xml,this.editor.graph,null,!0,c,null,null,k.embedImages,d,k.scale,k.border,k.shadow,k.keepTheme);else if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin))this.editor.graph.setEnabled(!1),d=this.editor.graph.getSvg(d,k.scale,k.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||k.shadow,null,k.keepTheme),
(this.editor.graph.shadowVisible||k.shadow)&&this.editor.graph.addSvgShadow(d),this.embedFonts(d,mxUtils.bind(this,function(b){k.embedImages||null==k.embedImages?this.editor.convertImages(b,mxUtils.bind(this,function(b){c(mxUtils.getXml(b))})):c(mxUtils.getXml(b))}));return}n.postMessage(JSON.stringify(b),"*")}),null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(k.xml),c=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(ba)},0):ba()):ba();return}if("load"==k.action){p=
k.toSketch;e=1==k.autosave;this.hideDialog();null!=k.modified&&null==urlParams.modified&&(urlParams.modified=k.modified);null!=k.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=k.saveAndExit);null!=k.noSaveBtn&&null==urlParams.noSaveBtn&&(urlParams.noSaveBtn=k.noSaveBtn);if(null!=k.rough){var B=Editor.sketchMode;this.doSetSketchMode(k.rough);B!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=k.dark&&(B=Editor.darkMode,this.doSetDarkMode(k.dark),B!=
-Editor.darkMode&&this.fireEvent(new mxEventObject("darkModeChanged")));null!=k.border&&(this.embedExportBorder=k.border);null!=k.background&&(this.embedExportBackground=k.background);null!=k.viewport&&(this.embedViewport=k.viewport);this.embedExitPoint=null;if(null!=k.rect){var J=this.embedExportBorder;this.diagramContainer.style.border="2px solid #295fcc";this.diagramContainer.style.top=k.rect.top+"px";this.diagramContainer.style.left=k.rect.left+"px";this.diagramContainer.style.height=k.rect.height+
-"px";this.diagramContainer.style.width=k.rect.width+"px";this.diagramContainer.style.bottom="";this.diagramContainer.style.right="";l=mxUtils.bind(this,function(){var b=this.editor.graph,d=b.maxFitScale;b.maxFitScale=k.maxFitScale;b.fit(2*J);b.maxFitScale=d;b.container.scrollTop-=2*J;b.container.scrollLeft-=2*J;this.fireEvent(new mxEventObject("editInlineStart","data",[k]))})}null!=k.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=k.noExitBtn);null!=k.title&&null!=this.buttonContainer&&
-(t=document.createElement("span"),mxUtils.write(t,k.title),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(t),this.embedFilenameSpan=t);try{k.libs&&this.sidebar.showEntries(k.libs)}catch(I){}k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):null!=k.descriptor?k.descriptor:k.xml}else{if("merge"==k.action){var K=this.getCurrentFile();null!=K&&(t=m(k.xml),null!=t&&""!=t&&K.mergeFile(new LocalFile(this,t),function(){n.postMessage(JSON.stringify({event:"merge",
-message:k}),"*")},function(b){n.postMessage(JSON.stringify({event:"merge",message:k,error:b}),"*")}))}else"remoteInvokeReady"==k.action?this.handleRemoteInvokeReady(n):"remoteInvoke"==k.action?this.handleRemoteInvoke(k,g.origin):"remoteInvokeResponse"==k.action?this.handleRemoteInvokeResponse(k):n.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(k)}),"*");return}}catch(I){this.handleError(I)}}var W=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<
-this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),fa=mxUtils.bind(this,function(g,k){c=!0;try{b(g,k,null,p)}catch(pa){this.handleError(pa)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");f=W();e&&null==d&&(d=mxUtils.bind(this,function(b,d){var e=W();if(e!=f&&!c){var g=this.createLoadMessage("autosave");g.xml=e;(window.opener||window.parent).postMessage(JSON.stringify(g),"*")}f=e}),this.editor.graph.model.addListener(mxEvent.CHANGE,d),this.editor.graph.addListener("gridSizeChanged",
-d),this.editor.graph.addListener("shadowVisibleChanged",d),this.addListener("pageFormatChanged",d),this.addListener("pageScaleChanged",d),this.addListener("backgroundColorChanged",d),this.addListener("backgroundImageChanged",d),this.addListener("foldingEnabledChanged",d),this.addListener("mathEnabledChanged",d),this.addListener("gridEnabledChanged",d),this.addListener("guidesEnabledChanged",d),this.addListener("pageViewChanged",d));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var m=this.createLoadMessage("load");
-m.xml=g;n.postMessage(JSON.stringify(m),"*")}null!=l&&l()});null!=k&&"function"===typeof k.substring&&"data:application/vnd.visio;base64,"==k.substring(0,34)?(m="0M8R4KGxGuE"==k.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(k.substring(k.indexOf(",")+1)),function(b){fa(b,g)},mxUtils.bind(this,function(b){this.handleError(b)}),m)):null!=k&&"function"===typeof k.substring&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(k,"")?this.isOffline()?this.showError(mxResources.get("error"),
-mxResources.get("notInOffline")):this.parseFileData(k,mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&"<mxGraphModel"==b.responseText.substring(0,13)&&fa(b.responseText,g)}),""):null!=k&&"function"===typeof k.substring&&this.isLucidChartData(k)?this.convertLucidChart(k,mxUtils.bind(this,function(b){fa(b)}),mxUtils.bind(this,function(b){this.handleError(b)})):null==k||"object"!==typeof k||null==k.format||null==k.data&&null==k.url?(k=m(k),fa(k,g)):this.loadDescriptor(k,
-mxUtils.bind(this,function(b){fa(W(),g)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var n=window.opener||window.parent,l="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMessage(l,"*");if("json"==urlParams.proto){var t=this.editor.graph.openLink;this.editor.graph.openLink=function(b,d,c){t.apply(this,arguments);n.postMessage(JSON.stringify({event:"openLink",href:b,target:d,allowOpener:c}),"*")}}};EditorUi.prototype.addEmbedButtons=
-function(){if(null!=this.menubar&&"1"!=urlParams.embedInline){var b=document.createElement("div");b.style.display="inline-block";b.style.position="absolute";b.style.paddingTop="atlas"==uiTheme||"1"==urlParams.atlas?"2px":"0px";b.style.paddingLeft="8px";b.style.paddingBottom="2px";var c=document.createElement("button");c.className="geBigButton";var e=c;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var f="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");
-mxUtils.write(c,f);c.setAttribute("title",f);mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));b.appendChild(c)}}else mxUtils.write(c,mxResources.get("save")),c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),
-c.setAttribute("title",mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),b.appendChild(c),e=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),e="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,e),c.setAttribute("title",e),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",
-mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),e=c);e.style.marginRight="20px";this.toolbar.container.appendChild(b);this.toolbar.staticElements.push(b);b.style.right="atlas"==uiTheme||"1"==urlParams.atlas?"42px":"52px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(b){this.importCsv(b)}),
-null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};EditorUi.prototype.executeLayoutList=function(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var k=new window[b[f].layout](d);if(null!=b[f].config)for(var l in b[f].config)k[l]=b[f].config[l];this.executeLayout(function(){k.execute(d.getDefaultParent(),
-0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],k=[],l={};if(0<d.length){for(var n={},t=this.editor.graph,y=null,G=null,H=null,D=null,F=null,O=null,A=null,C="whiteSpace=wrap;html=1;",E=null,L=null,N="",M="auto",Q="auto",V=null,X=null,ja=40,Y=40,da=100,ba=0,B=function(){null!=c?c(R):(t.setSelectionCells(R),t.scrollCellToVisible(t.getSelectionCell()))},J=t.getFreeInsertPoint(),K=J.x,W=J.y,J=W,fa=null,I="auto",L=null,la=[],oa=null,
-pa=null,ka=0;ka<d.length&&"#"==d[ka].charAt(0);){b=d[ka];for(ka++;ka<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[ka].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[ka].substring(1)),ka++;if("#"!=b.charAt(1)){var qa=b.indexOf(":");if(0<qa){var Z=mxUtils.trim(b.substring(1,qa)),P=mxUtils.trim(b.substring(qa+1));"label"==Z?fa=t.sanitizeHtml(P):"labelname"==Z&&0<P.length&&"-"!=P?F=P:"labels"==Z&&0<P.length&&"-"!=P?A=JSON.parse(P):"style"==Z?G=P:"parentstyle"==Z?C=P:"unknownStyle"==Z&&"-"!=P?O=
-P:"stylename"==Z&&0<P.length&&"-"!=P?D=P:"styles"==Z&&0<P.length&&"-"!=P?H=JSON.parse(P):"vars"==Z&&0<P.length&&"-"!=P?y=JSON.parse(P):"identity"==Z&&0<P.length&&"-"!=P?E=P:"parent"==Z&&0<P.length&&"-"!=P?L=P:"namespace"==Z&&0<P.length&&"-"!=P?N=P:"width"==Z?M=P:"height"==Z?Q=P:"left"==Z&&0<P.length?V=P:"top"==Z&&0<P.length?X=P:"ignore"==Z?pa=P.split(","):"connect"==Z?la.push(JSON.parse(P)):"link"==Z?oa=P:"padding"==Z?ba=parseFloat(P):"edgespacing"==Z?ja=parseFloat(P):"nodespacing"==Z?Y=parseFloat(P):
-"levelspacing"==Z?da=parseFloat(P):"layout"==Z&&(I=P)}}}if(null==d[ka])throw Error(mxResources.get("invalidOrMissingFile"));for(var sa=this.editor.csvToArray(d[ka]),Z=qa=null,P=[],T=0;T<sa.length;T++)E==sa[T]&&(qa=T),L==sa[T]&&(Z=T),P.push(mxUtils.trim(sa[T]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==fa&&(fa="%"+P[0]+"%");if(null!=la)for(var ha=0;ha<la.length;ha++)null==n[la[ha].to]&&(n[la[ha].to]={});E=[];for(T=ka+1;T<d.length;T++){var ma=this.editor.csvToArray(d[T]);
-if(null==ma){var ra=40<d[T].length?d[T].substring(0,40)+"...":d[T];throw Error(ra+" ("+T+"):\n"+mxResources.get("containsValidationErrors"));}0<ma.length&&E.push(ma)}t.model.beginUpdate();try{for(T=0;T<E.length;T++){var ma=E[T],S=null,na=null!=qa?N+ma[qa]:null;null!=na&&(S=t.model.getCell(na));var d=null!=S,ca=new mxCell(fa,new mxGeometry(K,J,0,0),G||"whiteSpace=wrap;html=1;");ca.vertex=!0;ca.id=na;for(var ea=0;ea<ma.length;ea++)t.setAttributeForCell(ca,P[ea],ma[ea]);if(null!=F&&null!=A){var ia=A[ca.getAttribute(F)];
-null!=ia&&t.labelChanged(ca,ia)}if(null!=D&&null!=H){var xa=H[ca.getAttribute(D)];null!=xa&&(ca.style=xa)}t.setAttributeForCell(ca,"placeholders","1");ca.style=t.replacePlaceholders(ca,ca.style,y);d?(0>mxUtils.indexOf(k,S)&&k.push(S),t.fireEvent(new mxEventObject("cellsInserted","cells",[S]))):t.fireEvent(new mxEventObject("cellsInserted","cells",[ca]));S=ca;if(!d)for(ha=0;ha<la.length;ha++)n[la[ha].to][S.getAttribute(la[ha].to)]=S;null!=oa&&"link"!=oa&&(t.setLinkForCell(S,S.getAttribute(oa)),t.setAttributeForCell(S,
-oa,null));var Aa=this.editor.graph.getPreferredSizeForCell(S),L=null!=Z?t.model.getCell(N+ma[Z]):null;if(S.vertex){ra=null!=L?0:K;ka=null!=L?0:W;null!=V&&null!=S.getAttribute(V)&&(S.geometry.x=ra+parseFloat(S.getAttribute(V)));null!=X&&null!=S.getAttribute(X)&&(S.geometry.y=ka+parseFloat(S.getAttribute(X)));var ta="@"==M.charAt(0)?S.getAttribute(M.substring(1)):null;S.geometry.width=null!=ta&&"auto"!=ta?parseFloat(S.getAttribute(M.substring(1))):"auto"==M||"auto"==ta?Aa.width+ba:parseFloat(M);var ua=
-"@"==Q.charAt(0)?S.getAttribute(Q.substring(1)):null;S.geometry.height=null!=ua&&"auto"!=ua?parseFloat(ua):"auto"==Q||"auto"==ua?Aa.height+ba:parseFloat(Q);J+=S.geometry.height+Y}d?(null==l[na]&&(l[na]=[]),l[na].push(S)):(e.push(S),null!=L?(L.style=t.replacePlaceholders(L,C,y),t.addCell(S,L),f.push(L)):k.push(t.addCell(S)))}for(T=0;T<f.length;T++)ta="@"==M.charAt(0)?f[T].getAttribute(M.substring(1)):null,ua="@"==Q.charAt(0)?f[T].getAttribute(Q.substring(1)):null,"auto"!=M&&"auto"!=ta||"auto"!=Q&&
-"auto"!=ua||t.updateGroupBounds([f[T]],ba,!0);for(var aa=k.slice(),R=k.slice(),ha=0;ha<la.length;ha++)for(var Ea=la[ha],T=0;T<e.length;T++){var S=e[T],Ia=mxUtils.bind(this,function(b,c,d){var e=c.getAttribute(d.from);if(null!=e&&""!=e)for(var e=e.split(","),g=0;g<e.length;g++){var f=n[d.to][e[g]];if(null==f&&null!=O){f=new mxCell(e[g],new mxGeometry(K,W,0,0),O);f.style=t.replacePlaceholders(c,f.style,y);var l=this.editor.graph.getPreferredSizeForCell(f);f.geometry.width=l.width+ba;f.geometry.height=
-l.height+ba;n[d.to][e[g]]=f;f.vertex=!0;f.id=e[g];k.push(t.addCell(f))}if(null!=f){l=d.label;null!=d.fromlabel&&(l=(c.getAttribute(d.fromlabel)||"")+(l||""));null!=d.sourcelabel&&(l=t.replacePlaceholders(c,d.sourcelabel,y)+(l||""));null!=d.tolabel&&(l=(l||"")+(f.getAttribute(d.tolabel)||""));null!=d.targetlabel&&(l=(l||"")+t.replacePlaceholders(f,d.targetlabel,y));var m="target"==d.placeholders==!d.invert?f:b,m=null!=d.style?t.replacePlaceholders(m,d.style,y):t.createCurrentEdgeStyle(),l=t.insertEdge(null,
-null,l||"",d.invert?f:b,d.invert?b:f,m);if(null!=d.labels)for(m=0;m<d.labels.length;m++){var p=d.labels[m],q=new mxCell(p.label||m,new mxGeometry(null!=p.x?p.x:0,null!=p.y?p.y:0,0,0),"resizable=0;html=1;");q.vertex=!0;q.connectable=!1;q.geometry.relative=!0;null!=p.placeholders&&(q.value=t.replacePlaceholders("target"==p.placeholders==!d.invert?f:b,q.value,y));if(null!=p.dx||null!=p.dy)q.geometry.offset=new mxPoint(null!=p.dx?p.dx:0,null!=p.dy?p.dy:0);l.insert(q)}R.push(l);mxUtils.remove(d.invert?
-b:f,aa)}}});Ia(S,S,Ea);if(null!=l[S.id])for(ea=0;ea<l[S.id].length;ea++)Ia(S,l[S.id][ea],Ea)}if(null!=pa)for(T=0;T<e.length;T++)for(S=e[T],ea=0;ea<pa.length;ea++)t.setAttributeForCell(S,mxUtils.trim(pa[ea]),null);if(0<k.length){var wa=new mxParallelEdgeLayout(t);wa.spacing=ja;wa.checkOverlap=!0;var Ba=function(){0<wa.spacing&&wa.execute(t.getDefaultParent());for(var b=0;b<k.length;b++){var d=t.getCellGeometry(k[b]);d.x=Math.round(t.snap(d.x));d.y=Math.round(t.snap(d.y));"auto"==M&&(d.width=Math.round(t.snap(d.width)));
-"auto"==Q&&(d.height=Math.round(t.snap(d.height)))}};if("["==I.charAt(0)){var ya=B;t.view.validate();this.executeLayoutList(JSON.parse(I),function(){Ba();ya()});B=null}else if("circle"==I){var Ca=new mxCircleLayout(t);Ca.disableEdgeStyle=!1;Ca.resetEdges=!1;var Fa=Ca.isVertexIgnored;Ca.isVertexIgnored=function(b){return Fa.apply(this,arguments)||0>mxUtils.indexOf(k,b)};this.executeLayout(function(){Ca.execute(t.getDefaultParent());Ba()},!0,B);B=null}else if("horizontaltree"==I||"verticaltree"==I||
-"auto"==I&&R.length==2*k.length-1&&1==aa.length){t.view.validate();var Da=new mxCompactTreeLayout(t,"horizontaltree"==I);Da.levelDistance=Y;Da.edgeRouting=!1;Da.resetEdges=!1;this.executeLayout(function(){Da.execute(t.getDefaultParent(),0<aa.length?aa[0]:null)},!0,B);B=null}else if("horizontalflow"==I||"verticalflow"==I||"auto"==I&&1==aa.length){t.view.validate();var za=new mxHierarchicalLayout(t,"horizontalflow"==I?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);za.intraCellSpacing=Y;za.parallelEdgeSpacing=
-ja;za.interRankCellSpacing=da;za.disableEdgeStyle=!1;this.executeLayout(function(){za.execute(t.getDefaultParent(),R);t.moveCells(R,K,W)},!0,B);B=null}else if("organic"==I||"auto"==I&&R.length>k.length){t.view.validate();var U=new mxFastOrganicLayout(t);U.forceConstant=3*Y;U.disableEdgeStyle=!1;U.resetEdges=!1;var Ga=U.isVertexIgnored;U.isVertexIgnored=function(b){return Ga.apply(this,arguments)||0>mxUtils.indexOf(k,b)};this.executeLayout(function(){U.execute(t.getDefaultParent());Ba()},!0,B);B=null}}this.hideDialog()}finally{t.model.endUpdate()}null!=
+Editor.darkMode&&this.fireEvent(new mxEventObject("darkModeChanged")));null!=k.border&&(this.embedExportBorder=k.border);null!=k.background&&(this.embedExportBackground=k.background);null!=k.viewport&&(this.embedViewport=k.viewport);this.embedExitPoint=null;if(null!=k.rect){var L=this.embedExportBorder;this.diagramContainer.style.border="2px solid #295fcc";this.diagramContainer.style.top=k.rect.top+"px";this.diagramContainer.style.left=k.rect.left+"px";this.diagramContainer.style.height=k.rect.height+
+"px";this.diagramContainer.style.width=k.rect.width+"px";this.diagramContainer.style.bottom="";this.diagramContainer.style.right="";l=mxUtils.bind(this,function(){var b=this.editor.graph,d=b.maxFitScale;b.maxFitScale=k.maxFitScale;b.fit(2*L);b.maxFitScale=d;b.container.scrollTop-=2*L;b.container.scrollLeft-=2*L;this.fireEvent(new mxEventObject("editInlineStart","data",[k]))})}null!=k.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=k.noExitBtn);null!=k.title&&null!=this.buttonContainer&&
+(q=document.createElement("span"),q.style.marginLeft="4px",mxUtils.write(q,k.title),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(q),this.embedFilenameSpan=q);try{k.libs&&this.sidebar.showEntries(k.libs)}catch(I){}k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):null!=k.descriptor?k.descriptor:k.xml}else{if("merge"==k.action){var K=this.getCurrentFile();null!=K&&(q=m(k.xml),null!=q&&""!=q&&K.mergeFile(new LocalFile(this,
+q),function(){n.postMessage(JSON.stringify({event:"merge",message:k}),"*")},function(b){n.postMessage(JSON.stringify({event:"merge",message:k,error:b}),"*")}))}else"remoteInvokeReady"==k.action?this.handleRemoteInvokeReady(n):"remoteInvoke"==k.action?this.handleRemoteInvoke(k,g.origin):"remoteInvokeResponse"==k.action?this.handleRemoteInvokeResponse(k):n.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(k)}),"*");return}}catch(I){this.handleError(I)}}var W=mxUtils.bind(this,function(){return"0"!=
+urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),fa=mxUtils.bind(this,function(g,k){c=!0;try{b(g,k,null,p)}catch(pa){this.handleError(pa)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");f=W();e&&null==d&&(d=mxUtils.bind(this,function(b,d){var e=W();if(e!=f&&!c){var g=this.createLoadMessage("autosave");g.xml=e;(window.opener||window.parent).postMessage(JSON.stringify(g),"*")}f=e}),this.editor.graph.model.addListener(mxEvent.CHANGE,
+d),this.editor.graph.addListener("gridSizeChanged",d),this.editor.graph.addListener("shadowVisibleChanged",d),this.addListener("pageFormatChanged",d),this.addListener("pageScaleChanged",d),this.addListener("backgroundColorChanged",d),this.addListener("backgroundImageChanged",d),this.addListener("foldingEnabledChanged",d),this.addListener("mathEnabledChanged",d),this.addListener("gridEnabledChanged",d),this.addListener("guidesEnabledChanged",d),this.addListener("pageViewChanged",d));if("1"==urlParams.returnbounds||
+"json"==urlParams.proto){var m=this.createLoadMessage("load");m.xml=g;n.postMessage(JSON.stringify(m),"*")}null!=l&&l()});null!=k&&"function"===typeof k.substring&&"data:application/vnd.visio;base64,"==k.substring(0,34)?(m="0M8R4KGxGuE"==k.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(k.substring(k.indexOf(",")+1)),function(b){fa(b,g)},mxUtils.bind(this,function(b){this.handleError(b)}),m)):null!=k&&"function"===typeof k.substring&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(k,
+"")?this.isOffline()?this.showError(mxResources.get("error"),mxResources.get("notInOffline")):this.parseFileData(k,mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&"<mxGraphModel"==b.responseText.substring(0,13)&&fa(b.responseText,g)}),""):null!=k&&"function"===typeof k.substring&&this.isLucidChartData(k)?this.convertLucidChart(k,mxUtils.bind(this,function(b){fa(b)}),mxUtils.bind(this,function(b){this.handleError(b)})):null==k||"object"!==typeof k||null==k.format||null==
+k.data&&null==k.url?(k=m(k),fa(k,g)):this.loadDescriptor(k,mxUtils.bind(this,function(b){fa(W(),g)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var n=window.opener||window.parent,l="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMessage(l,"*");if("json"==urlParams.proto){var q=this.editor.graph.openLink;this.editor.graph.openLink=function(b,d,c){q.apply(this,arguments);n.postMessage(JSON.stringify({event:"openLink",
+href:b,target:d,allowOpener:c}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar&&"1"!=urlParams.embedInline){var b=document.createElement("div");b.style.display="inline-block";b.style.position="absolute";b.style.paddingTop="atlas"==uiTheme||"1"==urlParams.atlas?"2px":"0px";b.style.paddingLeft="8px";b.style.paddingBottom="2px";var c=document.createElement("button");c.className="geBigButton";var e=c;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var f="1"==urlParams.publishClose?
+mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(c,f);c.setAttribute("title",f);mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));b.appendChild(c)}}else mxUtils.write(c,mxResources.get("save")),c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),"1"==urlParams.saveAndExit&&(c=document.createElement("a"),
+mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),b.appendChild(c),e=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),e="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,e),c.setAttribute("title",e),c.className="geBigButton geBigStandardButton",
+c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),e=c);e.style.marginRight="20px";this.toolbar.container.appendChild(b);this.toolbar.staticElements.push(b);b.style.right="atlas"==uiTheme||"1"==urlParams.atlas?"42px":"52px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,
+function(b){this.importCsv(b)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};EditorUi.prototype.executeLayoutList=function(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var k=new window[b[f].layout](d);if(null!=b[f].config)for(var l in b[f].config)k[l]=b[f].config[l];this.executeLayout(function(){k.execute(d.getDefaultParent(),
+0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],k=[],l={};if(0<d.length){for(var n={},q=this.editor.graph,y=null,G=null,H=null,D=null,F=null,O=null,A=null,C="whiteSpace=wrap;html=1;",E=null,J=null,N="",M="auto",Q="auto",V=null,X=null,ja=40,Y=40,da=100,ba=0,B=function(){null!=c?c(R):(q.setSelectionCells(R),q.scrollCellToVisible(q.getSelectionCell()))},L=q.getFreeInsertPoint(),K=L.x,W=L.y,L=W,fa=null,I="auto",J=null,la=[],oa=null,
+pa=null,ka=0;ka<d.length&&"#"==d[ka].charAt(0);){b=d[ka];for(ka++;ka<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[ka].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[ka].substring(1)),ka++;if("#"!=b.charAt(1)){var qa=b.indexOf(":");if(0<qa){var Z=mxUtils.trim(b.substring(1,qa)),P=mxUtils.trim(b.substring(qa+1));"label"==Z?fa=q.sanitizeHtml(P):"labelname"==Z&&0<P.length&&"-"!=P?F=P:"labels"==Z&&0<P.length&&"-"!=P?A=JSON.parse(P):"style"==Z?G=P:"parentstyle"==Z?C=P:"unknownStyle"==Z&&"-"!=P?O=
+P:"stylename"==Z&&0<P.length&&"-"!=P?D=P:"styles"==Z&&0<P.length&&"-"!=P?H=JSON.parse(P):"vars"==Z&&0<P.length&&"-"!=P?y=JSON.parse(P):"identity"==Z&&0<P.length&&"-"!=P?E=P:"parent"==Z&&0<P.length&&"-"!=P?J=P:"namespace"==Z&&0<P.length&&"-"!=P?N=P:"width"==Z?M=P:"height"==Z?Q=P:"left"==Z&&0<P.length?V=P:"top"==Z&&0<P.length?X=P:"ignore"==Z?pa=P.split(","):"connect"==Z?la.push(JSON.parse(P)):"link"==Z?oa=P:"padding"==Z?ba=parseFloat(P):"edgespacing"==Z?ja=parseFloat(P):"nodespacing"==Z?Y=parseFloat(P):
+"levelspacing"==Z?da=parseFloat(P):"layout"==Z&&(I=P)}}}if(null==d[ka])throw Error(mxResources.get("invalidOrMissingFile"));for(var sa=this.editor.csvToArray(d[ka]),Z=qa=null,P=[],T=0;T<sa.length;T++)E==sa[T]&&(qa=T),J==sa[T]&&(Z=T),P.push(mxUtils.trim(sa[T]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==fa&&(fa="%"+P[0]+"%");if(null!=la)for(var ha=0;ha<la.length;ha++)null==n[la[ha].to]&&(n[la[ha].to]={});E=[];for(T=ka+1;T<d.length;T++){var ma=this.editor.csvToArray(d[T]);
+if(null==ma){var ra=40<d[T].length?d[T].substring(0,40)+"...":d[T];throw Error(ra+" ("+T+"):\n"+mxResources.get("containsValidationErrors"));}0<ma.length&&E.push(ma)}q.model.beginUpdate();try{for(T=0;T<E.length;T++){var ma=E[T],S=null,na=null!=qa?N+ma[qa]:null;null!=na&&(S=q.model.getCell(na));var d=null!=S,ca=new mxCell(fa,new mxGeometry(K,L,0,0),G||"whiteSpace=wrap;html=1;");ca.vertex=!0;ca.id=na;for(var ea=0;ea<ma.length;ea++)q.setAttributeForCell(ca,P[ea],ma[ea]);if(null!=F&&null!=A){var ia=A[ca.getAttribute(F)];
+null!=ia&&q.labelChanged(ca,ia)}if(null!=D&&null!=H){var xa=H[ca.getAttribute(D)];null!=xa&&(ca.style=xa)}q.setAttributeForCell(ca,"placeholders","1");ca.style=q.replacePlaceholders(ca,ca.style,y);d?(0>mxUtils.indexOf(k,S)&&k.push(S),q.fireEvent(new mxEventObject("cellsInserted","cells",[S]))):q.fireEvent(new mxEventObject("cellsInserted","cells",[ca]));S=ca;if(!d)for(ha=0;ha<la.length;ha++)n[la[ha].to][S.getAttribute(la[ha].to)]=S;null!=oa&&"link"!=oa&&(q.setLinkForCell(S,S.getAttribute(oa)),q.setAttributeForCell(S,
+oa,null));var Aa=this.editor.graph.getPreferredSizeForCell(S),J=null!=Z?q.model.getCell(N+ma[Z]):null;if(S.vertex){ra=null!=J?0:K;ka=null!=J?0:W;null!=V&&null!=S.getAttribute(V)&&(S.geometry.x=ra+parseFloat(S.getAttribute(V)));null!=X&&null!=S.getAttribute(X)&&(S.geometry.y=ka+parseFloat(S.getAttribute(X)));var ta="@"==M.charAt(0)?S.getAttribute(M.substring(1)):null;S.geometry.width=null!=ta&&"auto"!=ta?parseFloat(S.getAttribute(M.substring(1))):"auto"==M||"auto"==ta?Aa.width+ba:parseFloat(M);var ua=
+"@"==Q.charAt(0)?S.getAttribute(Q.substring(1)):null;S.geometry.height=null!=ua&&"auto"!=ua?parseFloat(ua):"auto"==Q||"auto"==ua?Aa.height+ba:parseFloat(Q);L+=S.geometry.height+Y}d?(null==l[na]&&(l[na]=[]),l[na].push(S)):(e.push(S),null!=J?(J.style=q.replacePlaceholders(J,C,y),q.addCell(S,J),f.push(J)):k.push(q.addCell(S)))}for(T=0;T<f.length;T++)ta="@"==M.charAt(0)?f[T].getAttribute(M.substring(1)):null,ua="@"==Q.charAt(0)?f[T].getAttribute(Q.substring(1)):null,"auto"!=M&&"auto"!=ta||"auto"!=Q&&
+"auto"!=ua||q.updateGroupBounds([f[T]],ba,!0);for(var aa=k.slice(),R=k.slice(),ha=0;ha<la.length;ha++)for(var Ea=la[ha],T=0;T<e.length;T++){var S=e[T],Ia=mxUtils.bind(this,function(b,c,d){var e=c.getAttribute(d.from);if(null!=e&&""!=e)for(var e=e.split(","),g=0;g<e.length;g++){var f=n[d.to][e[g]];if(null==f&&null!=O){f=new mxCell(e[g],new mxGeometry(K,W,0,0),O);f.style=q.replacePlaceholders(c,f.style,y);var l=this.editor.graph.getPreferredSizeForCell(f);f.geometry.width=l.width+ba;f.geometry.height=
+l.height+ba;n[d.to][e[g]]=f;f.vertex=!0;f.id=e[g];k.push(q.addCell(f))}if(null!=f){l=d.label;null!=d.fromlabel&&(l=(c.getAttribute(d.fromlabel)||"")+(l||""));null!=d.sourcelabel&&(l=q.replacePlaceholders(c,d.sourcelabel,y)+(l||""));null!=d.tolabel&&(l=(l||"")+(f.getAttribute(d.tolabel)||""));null!=d.targetlabel&&(l=(l||"")+q.replacePlaceholders(f,d.targetlabel,y));var m="target"==d.placeholders==!d.invert?f:b,m=null!=d.style?q.replacePlaceholders(m,d.style,y):q.createCurrentEdgeStyle(),l=q.insertEdge(null,
+null,l||"",d.invert?f:b,d.invert?b:f,m);if(null!=d.labels)for(m=0;m<d.labels.length;m++){var p=d.labels[m],t=new mxCell(p.label||m,new mxGeometry(null!=p.x?p.x:0,null!=p.y?p.y:0,0,0),"resizable=0;html=1;");t.vertex=!0;t.connectable=!1;t.geometry.relative=!0;null!=p.placeholders&&(t.value=q.replacePlaceholders("target"==p.placeholders==!d.invert?f:b,t.value,y));if(null!=p.dx||null!=p.dy)t.geometry.offset=new mxPoint(null!=p.dx?p.dx:0,null!=p.dy?p.dy:0);l.insert(t)}R.push(l);mxUtils.remove(d.invert?
+b:f,aa)}}});Ia(S,S,Ea);if(null!=l[S.id])for(ea=0;ea<l[S.id].length;ea++)Ia(S,l[S.id][ea],Ea)}if(null!=pa)for(T=0;T<e.length;T++)for(S=e[T],ea=0;ea<pa.length;ea++)q.setAttributeForCell(S,mxUtils.trim(pa[ea]),null);if(0<k.length){var wa=new mxParallelEdgeLayout(q);wa.spacing=ja;wa.checkOverlap=!0;var Ba=function(){0<wa.spacing&&wa.execute(q.getDefaultParent());for(var b=0;b<k.length;b++){var d=q.getCellGeometry(k[b]);d.x=Math.round(q.snap(d.x));d.y=Math.round(q.snap(d.y));"auto"==M&&(d.width=Math.round(q.snap(d.width)));
+"auto"==Q&&(d.height=Math.round(q.snap(d.height)))}};if("["==I.charAt(0)){var ya=B;q.view.validate();this.executeLayoutList(JSON.parse(I),function(){Ba();ya()});B=null}else if("circle"==I){var Ca=new mxCircleLayout(q);Ca.disableEdgeStyle=!1;Ca.resetEdges=!1;var Fa=Ca.isVertexIgnored;Ca.isVertexIgnored=function(b){return Fa.apply(this,arguments)||0>mxUtils.indexOf(k,b)};this.executeLayout(function(){Ca.execute(q.getDefaultParent());Ba()},!0,B);B=null}else if("horizontaltree"==I||"verticaltree"==I||
+"auto"==I&&R.length==2*k.length-1&&1==aa.length){q.view.validate();var Da=new mxCompactTreeLayout(q,"horizontaltree"==I);Da.levelDistance=Y;Da.edgeRouting=!1;Da.resetEdges=!1;this.executeLayout(function(){Da.execute(q.getDefaultParent(),0<aa.length?aa[0]:null)},!0,B);B=null}else if("horizontalflow"==I||"verticalflow"==I||"auto"==I&&1==aa.length){q.view.validate();var za=new mxHierarchicalLayout(q,"horizontalflow"==I?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);za.intraCellSpacing=Y;za.parallelEdgeSpacing=
+ja;za.interRankCellSpacing=da;za.disableEdgeStyle=!1;this.executeLayout(function(){za.execute(q.getDefaultParent(),R);q.moveCells(R,K,W)},!0,B);B=null}else if("organic"==I||"auto"==I&&R.length>k.length){q.view.validate();var U=new mxFastOrganicLayout(q);U.forceConstant=3*Y;U.disableEdgeStyle=!1;U.resetEdges=!1;var Ga=U.isVertexIgnored;U.isVertexIgnored=function(b){return Ga.apply(this,arguments)||0>mxUtils.indexOf(k,b)};this.executeLayout(function(){U.execute(q.getDefaultParent());Ba()},!0,B);B=null}}this.hideDialog()}finally{q.model.endUpdate()}null!=
B&&B()}}catch(La){this.handleError(La)}};EditorUi.prototype.getSearch=function(b){var d="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var c="?",e;for(e in urlParams)0>mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(d+=c+e+"="+urlParams[e],c="&")}else d=window.location.search;return d};EditorUi.prototype.getUrl=function(b){b=null!=b?b:window.location.pathname;var d=0<b.indexOf("?")?1:0;if("1"==urlParams.offline)b+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),
e;for(e in urlParams)0>mxUtils.indexOf(c,e)&&(b=0==d?b+"?":b+"&",null!=urlParams[e]&&(b+=e+"="+urlParams[e],d++))}return b};EditorUi.prototype.showLinkDialog=function(b,c,e,f,l){b=new LinkDialog(this,b,c,e,!0,f,l);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=function(b){var c=1;null==this.drive&&"function"!==typeof window.DriveClient||c++;null==this.dropbox&&"function"!==typeof window.DropboxClient||c++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||
c++;null!=this.gitHub&&c++;null!=this.gitLab&&c++;b&&isLocalStorage&&"1"==urlParams.browser&&c++;return c};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var b=this.getCurrentFile(),c=null!=b||"1"==urlParams.embed&&this.editor.graph.isEnabled();this.menus.get("viewPanels").setEnabled(c);this.menus.get("viewZoom").setEnabled(c);var e=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==b||b.isRestricted());this.actions.get("makeCopy").setEnabled(!e);
@@ -3804,61 +3804,61 @@ EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateU
c=this.getCurrentFile(),e=this.getSelectionState(),f=this.isDiagramActive();this.actions.get("pageSetup").setEnabled(f);this.actions.get("autosave").setEnabled(null!=c&&c.isEditable()&&c.isAutosaveOptional());this.actions.get("guides").setEnabled(f);this.actions.get("editData").setEnabled(b.isEnabled());this.actions.get("shadowVisible").setEnabled(f);this.actions.get("connectionArrows").setEnabled(f);this.actions.get("connectionPoints").setEnabled(f);this.actions.get("copyStyle").setEnabled(f&&!b.isSelectionEmpty());
this.actions.get("pasteStyle").setEnabled(f&&0<e.cells.length);this.actions.get("editGeometry").setEnabled(0<e.vertices.length);this.actions.get("createShape").setEnabled(f);this.actions.get("createRevision").setEnabled(f);this.actions.get("moveToFolder").setEnabled(null!=c);this.actions.get("makeCopy").setEnabled(null!=c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(f&&(null==c||!c.isRestricted()));this.actions.get("publishLink").setEnabled(null!=c&&!c.isRestricted());this.actions.get("tags").setEnabled("hidden"!=
this.diagramContainer.style.visibility);this.actions.get("layers").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("outline").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("rename").setEnabled(null!=c&&c.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=c&&!c.isRestricted());c=this.actions.get("findReplace");c.setEnabled("hidden"!=this.diagramContainer.style.visibility);
-c.label=mxResources.get("find")+(b.isEnabled()?"/"+mxResources.get("replace"):"")+"...";b=b.view.getState(b.getSelectionCell());this.actions.get("editShape").setEnabled(f&&null!=b&&null!=b.shape&&null!=b.shape.stencil)};var t=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);t.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=
-!1,ExportDialog.exportFile=function(b,c,e,f,l,n,t,u){var d=b.editor.graph;if("xml"==e)b.hideDialog(),b.saveData(c,"xml",mxUtils.getXml(b.editor.getGraphXml()),"text/xml");else if("svg"==e)b.hideDialog(),b.saveData(c,"svg",mxUtils.getXml(d.getSvg(f,l,n)),"image/svg+xml");else{var g=b.getFileData(!0,null,null,null,null,!0),k=d.getGraphBounds(),m=Math.floor(k.width*l/d.view.scale),p=Math.floor(k.height*l/d.view.scale);if(g.length<=MAX_REQUEST_SIZE&&m*p<MAX_AREA)if(b.hideDialog(),"png"!=e&&"jpg"!=e&&
-"jpeg"!=e||!b.isExportToCanvas()){var q={globalVars:d.getExportVariables()};u&&(q.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});b.saveRequest(c,e,function(b,c){return new mxXmlRequest(EXPORT_URL,"format="+e+"&base64="+(c||"0")+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(q))+(0<t?"&dpi="+t:"")+"&bg="+(null!=f?f:"none")+"&w="+m+"&h="+p+"&border="+n+"&xml="+encodeURIComponent(g))})}else"png"==e?b.exportImage(l,null==f||"none"==
-f,!0,!1,!1,n,!0,!1,null,u,t):b.exportImage(l,!1,!0,!1,!1,n,!0,!1,"jpeg",u);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=this.pages)for(var e=0;e<this.pages.length;e++){var f=b;this.currentPage!=this.pages[e]&&(f=this.createTemporaryGraph(b.getStylesheet()),this.updatePageRoot(this.pages[e]),f.model.setRoot(this.pages[e].root));c+=this.pages[e].getName()+" "+f.getIndexableText()+
+c.label=mxResources.get("find")+(b.isEnabled()?"/"+mxResources.get("replace"):"")+"...";b=b.view.getState(b.getSelectionCell());this.actions.get("editShape").setEnabled(f&&null!=b&&null!=b.shape&&null!=b.shape.stencil)};var q=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);q.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=
+!1,ExportDialog.exportFile=function(b,c,e,f,l,n,q,u){var d=b.editor.graph;if("xml"==e)b.hideDialog(),b.saveData(c,"xml",mxUtils.getXml(b.editor.getGraphXml()),"text/xml");else if("svg"==e)b.hideDialog(),b.saveData(c,"svg",mxUtils.getXml(d.getSvg(f,l,n)),"image/svg+xml");else{var g=b.getFileData(!0,null,null,null,null,!0),k=d.getGraphBounds(),m=Math.floor(k.width*l/d.view.scale),p=Math.floor(k.height*l/d.view.scale);if(g.length<=MAX_REQUEST_SIZE&&m*p<MAX_AREA)if(b.hideDialog(),"png"!=e&&"jpg"!=e&&
+"jpeg"!=e||!b.isExportToCanvas()){var t={globalVars:d.getExportVariables()};u&&(t.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});b.saveRequest(c,e,function(b,c){return new mxXmlRequest(EXPORT_URL,"format="+e+"&base64="+(c||"0")+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(t))+(0<q?"&dpi="+q:"")+"&bg="+(null!=f?f:"none")+"&w="+m+"&h="+p+"&border="+n+"&xml="+encodeURIComponent(g))})}else"png"==e?b.exportImage(l,null==f||"none"==
+f,!0,!1,!1,n,!0,!1,null,u,q):b.exportImage(l,!1,!0,!1,!1,n,!0,!1,"jpeg",u);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=this.pages)for(var e=0;e<this.pages.length;e++){var f=b;this.currentPage!=this.pages[e]&&(f=this.createTemporaryGraph(b.getStylesheet()),this.updatePageRoot(this.pages[e]),f.model.setRoot(this.pages[e].root));c+=this.pages[e].getName()+" "+f.getIndexableText()+
" "}else c=b.getIndexableText();this.editor.graph.setEnabled(!0);return c};EditorUi.prototype.showRemotelyStoredLibrary=function(b){var c={},d=document.createElement("div");d.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxUtils.htmlEntities(b));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(e);var f=document.createElement("div");f.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";f.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+
-IMAGE_PATH+'/spin.gif"></div>';var l={};try{var n=mxSettings.getCustomLibraries();for(b=0;b<n.length;b++){var t=n[b];if("R"==t.substring(0,1)){var x=JSON.parse(decodeURIComponent(t.substring(1)));l[x[0]]={id:x[0],title:x[1],downloadUrl:x[2]}}}}catch(y){}this.remoteInvoke("getCustomLibraries",null,null,function(b){f.innerHTML="";if(0==b.length)f.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var d=0;d<
+IMAGE_PATH+'/spin.gif"></div>';var l={};try{var n=mxSettings.getCustomLibraries();for(b=0;b<n.length;b++){var q=n[b];if("R"==q.substring(0,1)){var x=JSON.parse(decodeURIComponent(q.substring(1)));l[x[0]]={id:x[0],title:x[1],downloadUrl:x[2]}}}}catch(y){}this.remoteInvoke("getCustomLibraries",null,null,function(b){f.innerHTML="";if(0==b.length)f.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var d=0;d<
b.length;d++){var e=b[d];l[e.id]&&(c[e.id]=e);var g=this.addCheckbox(f,e.title,l[e.id]);(function(b,d){mxEvent.addListener(d,"change",function(){this.checked?c[b.id]=b:delete c[b.id]})})(e,g)}},mxUtils.bind(this,function(b){f.innerHTML="";var c=document.createElement("div");c.style.padding="8px";c.style.textAlign="center";mxUtils.write(c,mxResources.get("error")+": ");mxUtils.write(c,null!=b&&null!=b.message?b.message:mxResources.get("unknownError"));f.appendChild(c)}));d.appendChild(f);d=new CustomDialog(this,
d,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var b=0,d;for(d in c)null==l[d]&&(b++,mxUtils.bind(this,function(c){this.remoteInvoke("getFileContent",[c.downloadUrl],null,mxUtils.bind(this,function(d){b--;0==b&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,d,c))}catch(F){this.handleError(F,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){b--;0==b&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(c[d]));
for(d in l)c[d]||this.closeLibrary(new RemoteLibrary(this,null,l[d]));0==b&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(d.container,340,390,!0,!0,null,null,null,null,!0)};EditorUi.prototype.remoteInvokableFns={getDiagramTextContent:{isAsync:!1},getLocalStorageFile:{isAsync:!1,allowedDomains:["app.diagrams.net"]},getLocalStorageFileNames:{isAsync:!1,allowedDomains:["app.diagrams.net"]},setMigratedFlag:{isAsync:!1,allowedDomains:["app.diagrams.net"]}};
EditorUi.prototype.remoteInvokeCallbacks=[];EditorUi.prototype.remoteInvokeQueue=[];EditorUi.prototype.handleRemoteInvokeReady=function(b){this.remoteWin=b;for(var c=0;c<this.remoteInvokeQueue.length;c++)b.postMessage(this.remoteInvokeQueue[c],"*");this.remoteInvokeQueue=[]};EditorUi.prototype.handleRemoteInvokeResponse=function(b){var c=b.msgMarkers,d=this.remoteInvokeCallbacks[c.callbackId];if(null==d)throw Error("No callback for "+(null!=c?c.callbackId:"null"));b.error?d.error&&d.error(b.error.errResp):
d.callback&&d.callback.apply(this,b.resp);this.remoteInvokeCallbacks[c.callbackId]=null};EditorUi.prototype.remoteInvoke=function(b,c,e,f,l){var d=!0,g=window.setTimeout(mxUtils.bind(this,function(){d=!1;l({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.timeout),k=mxUtils.bind(this,function(){window.clearTimeout(g);d&&f.apply(this,arguments)}),m=mxUtils.bind(this,function(){window.clearTimeout(g);d&&l.apply(this,arguments)});e=e||{};e.callbackId=this.remoteInvokeCallbacks.length;
this.remoteInvokeCallbacks.push({callback:k,error:m});b=JSON.stringify({event:"remoteInvoke",funtionName:b,functionArgs:c,msgMarkers:e});null!=this.remoteWin?this.remoteWin.postMessage(b,"*"):this.remoteInvokeQueue.push(b)};EditorUi.prototype.handleRemoteInvoke=function(b,c){var d=mxUtils.bind(this,function(c,d){var e={event:"remoteInvokeResponse",msgMarkers:b.msgMarkers};null!=d?e.error={errResp:d}:null!=c&&(e.resp=c);this.remoteWin.postMessage(JSON.stringify(e),"*")});try{var e=b.funtionName,f=
-this.remoteInvokableFns[e];if(null!=f&&"function"===typeof this[e]){if(f.allowedDomains){for(var k=!1,l=0;l<f.allowedDomains.length;l++)if(c=="https://"+f.allowedDomains[l]){k=!0;break}if(!k){d(null,"Invalid Call: "+e+" is not allowed.");return}}var n=b.functionArgs;Array.isArray(n)||(n=[]);if(f.isAsync)n.push(function(){d(Array.prototype.slice.apply(arguments))}),n.push(function(b){d(null,b||"Unkown Error")}),this[e].apply(this,n);else{var t=this[e].apply(this,n);d([t])}}else d(null,"Invalid Call: "+
+this.remoteInvokableFns[e];if(null!=f&&"function"===typeof this[e]){if(f.allowedDomains){for(var k=!1,l=0;l<f.allowedDomains.length;l++)if(c=="https://"+f.allowedDomains[l]){k=!0;break}if(!k){d(null,"Invalid Call: "+e+" is not allowed.");return}}var n=b.functionArgs;Array.isArray(n)||(n=[]);if(f.isAsync)n.push(function(){d(Array.prototype.slice.apply(arguments))}),n.push(function(b){d(null,b||"Unkown Error")}),this[e].apply(this,n);else{var q=this[e].apply(this,n);d([q])}}else d(null,"Invalid Call: "+
e+" is not found.")}catch(y){d(null,"Invalid Call: An error occurred, "+y.message)}};EditorUi.prototype.openDatabase=function(b,c){if(null==this.database){var d=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=d)try{var e=d.open("database",2);e.onupgradeneeded=function(b){try{var d=e.result;1>b.oldVersion&&d.createObjectStore("objects",{keyPath:"key"});2>b.oldVersion&&(d.createObjectStore("files",{keyPath:"title"}),d.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=
isLocalStorage)}catch(v){null!=c&&c(v)}};e.onsuccess=mxUtils.bind(this,function(c){var d=e.result;this.database=d;EditorUi.migrateStorageFiles&&(StorageFile.migrate(d),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(b){if(!b||"1"==urlParams.forceMigration){var c=document.createElement("iframe");c.style.display="none";c.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+
urlParams.forceMigration);document.body.appendChild(c);var d=!0,e=!1,g,f=0,k=mxUtils.bind(this,function(){e=!0;this.setDatabaseItem(".drawioMigrated3",!0);c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"setMigratedFlag"}),"*")}),l=mxUtils.bind(this,function(){f++;m()}),m=mxUtils.bind(this,function(){try{if(f>=g.length)k();else{var b=g[f];StorageFile.getFileContent(this,b,mxUtils.bind(this,function(d){null==d||".scratchpad"==b&&d==this.emptyLibraryXml?c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",
-funtionName:"getLocalStorageFile",functionArgs:[b]}),"*"):l()}),l)}}catch(E){console.log(E)}}),n=mxUtils.bind(this,function(b){try{this.setDatabaseItem(null,[{title:b.title,size:b.data.length,lastModified:Date.now(),type:b.isLib?"L":"F"},{title:b.title,data:b.data}],l,l,["filesInfo","files"])}catch(E){console.log(E)}});b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var f={};try{f=JSON.parse(b.data)}catch(L){}"init"==f.event?(c.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),
-"*"),c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=f.event||e||(d?null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?(g=f.resp[0],d=!1,m()):k():null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?n(f.resp[0]):l())}}catch(L){console.log(L)}});window.addEventListener("message",b)}})));b(d);d.onversionchange=function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(m){null!=c&&c(m)}else null!=c&&c()}else b(this.database)};
+funtionName:"getLocalStorageFile",functionArgs:[b]}),"*"):l()}),l)}}catch(E){console.log(E)}}),n=mxUtils.bind(this,function(b){try{this.setDatabaseItem(null,[{title:b.title,size:b.data.length,lastModified:Date.now(),type:b.isLib?"L":"F"},{title:b.title,data:b.data}],l,l,["filesInfo","files"])}catch(E){console.log(E)}});b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var f={};try{f=JSON.parse(b.data)}catch(J){}"init"==f.event?(c.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),
+"*"),c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=f.event||e||(d?null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?(g=f.resp[0],d=!1,m()):k():null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?n(f.resp[0]):l())}}catch(J){console.log(J)}});window.addEventListener("message",b)}})));b(d);d.onversionchange=function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(m){null!=c&&c(m)}else null!=c&&c()}else b(this.database)};
EditorUi.prototype.setDatabaseItem=function(b,c,e,f,l){this.openDatabase(mxUtils.bind(this,function(d){try{l=l||"objects";Array.isArray(l)||(l=[l],b=[b],c=[c]);var g=d.transaction(l,"readwrite");g.oncomplete=e;g.onerror=f;for(d=0;d<l.length;d++)g.objectStore(l[d]).put(null!=b&&null!=b[d]?{key:b[d],data:c[d]}:c[d])}catch(u){null!=f&&f(u)}}),f)};EditorUi.prototype.removeDatabaseItem=function(b,c,e,f){this.openDatabase(mxUtils.bind(this,function(d){f=f||"objects";Array.isArray(f)||(f=[f],b=[b]);d=d.transaction(f,
"readwrite");d.oncomplete=c;d.onerror=e;for(var g=0;g<f.length;g++)d.objectStore(f[g])["delete"](b[g])}),e)};EditorUi.prototype.getDatabaseItem=function(b,c,e,f){this.openDatabase(mxUtils.bind(this,function(d){try{f=f||"objects";var g=d.transaction([f],"readonly").objectStore(f).get(b);g.onsuccess=function(){c(g.result)};g.onerror=e}catch(v){null!=e&&e(v)}}),e)};EditorUi.prototype.getDatabaseItems=function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=e||"objects";var g=d.transaction([e],
"readonly").objectStore(e).openCursor(IDBKeyRange.lowerBound(0)),f=[];g.onsuccess=function(c){null==c.target.result?b(f):(f.push(c.target.result.value),c.target.result["continue"]())};g.onerror=c}catch(v){null!=c&&c(v)}}),c)};EditorUi.prototype.getDatabaseItemKeys=function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=e||"objects";var g=d.transaction([e],"readonly").objectStore(e).getAllKeys();g.onsuccess=function(){b(g.result)};g.onerror=c}catch(p){null!=c&&c(p)}}),c)};EditorUi.prototype.commentsSupported=
function(){var b=this.getCurrentFile();return null!=b?b.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsRefreshNeeded():!0};EditorUi.prototype.commentsSaveNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsSaveNeeded():!1};EditorUi.prototype.getComments=function(b,c){var d=this.getCurrentFile();null!=d?d.getComments(b,c):b([])};EditorUi.prototype.addComment=function(b,c,e){var d=this.getCurrentFile();
null!=d?d.addComment(b,c,e):c(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var b=this.getCurrentFile();return null!=b?b.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var b=this.getCurrentFile();return null!=b?b.canComment():!0};EditorUi.prototype.newComment=function(b,c){var d=this.getCurrentFile();return null!=d?d.newComment(b,c):new DrawioComment(this,null,b,Date.now(),Date.now(),!1,c)};EditorUi.prototype.isRevisionHistorySupported=function(){var b=this.getCurrentFile();
return null!=b&&b.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(b,c){var d=this.getCurrentFile();null!=d&&d.getRevisions?d.getRevisions(b,c):c({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var b=this.getCurrentFile();return null!=b&&(b.constructor==DriveFile&&b.isEditable()||b.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(b){b.setRequestHeader("Content-Language",
-"da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(b,c,e,f,l,n,t,u){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(b,c,e,f,l,n,t,u)};EditorUi.prototype.loadFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(b)};EditorUi.prototype.createSvgDataUri=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(b)};EditorUi.prototype.embedCssFonts=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");
-return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,e,f,l,n,t,u,x,y,G,H,D,F,O,A){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,f,l,n,t,u,x,y,G,H,D,F,O,A)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");
+"da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(b,c,e,f,l,n,q,u){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(b,c,e,f,l,n,q,u)};EditorUi.prototype.loadFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(b)};EditorUi.prototype.createSvgDataUri=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(b)};EditorUi.prototype.embedCssFonts=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");
+return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,e,f,l,n,q,u,x,y,G,H,D,F,O,A){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,f,l,n,q,u,x,y,G,H,D,F,O,A)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");
return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(b,c,e,f){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");return this.editor.convertImages(b,c,e,f)};EditorUi.prototype.convertImageToDataUri=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(b,c)};EditorUi.prototype.base64Encode=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(b)};EditorUi.prototype.updateCRC=
function(b,c,e,f){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(b,c,e,f)};EditorUi.prototype.crc32=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");return Editor.crc32(b)};EditorUi.prototype.writeGraphModelToPng=function(b,c,e,f,l){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(b,c,e,f,l)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=
urlParams.forceMigration)return null;for(var b=[],c=0;c<localStorage.length;c++){var e=localStorage.key(c),f=localStorage.getItem(e);if(0<e.length&&(".scratchpad"==e||"."!=e.charAt(0))&&0<f.length){var l="<mxfile "===f.substring(0,8)||"<?xml"===f.substring(0,5)||"\x3c!--[if IE]>"===f.substring(0,12),f="<mxlibrary>"===f.substring(0,11);(l||f)&&b.push(e)}}return b};EditorUi.prototype.getLocalStorageFile=function(b){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;
var c=localStorage.getItem(b);return{title:b,data:c,isLib:"<mxlibrary>"===c.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
-var CommentsWindow=function(b,c,e,f,n,l){function t(){for(var b=H.getElementsByTagName("div"),c=0,d=0;d<b.length;d++)"none"!=b[d].style.display&&b[d].parentNode==H&&c++;D.style.display=0==c?"block":"none"}function d(b,c,d,e){function f(){c.removeChild(l);c.removeChild(m);k.style.display="block";g.style.display="block"}x={div:c,comment:b,saveCallback:d,deleteOnCancel:e};var g=c.querySelector(".geCommentTxt"),k=c.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
-"geCommentEditTxtArea";l.style.minHeight=g.offsetHeight+"px";l.value=b.content;c.insertBefore(l,g);var m=document.createElement("div");m.className="geCommentEditBtns";var n=mxUtils.button(mxResources.get("cancel"),function(){e?(c.parentNode.removeChild(c),t()):f();x=null});n.className="geCommentEditBtn";m.appendChild(n);var p=mxUtils.button(mxResources.get("save"),function(){g.innerHTML="";b.content=l.value;mxUtils.write(g,b.content);f();d(b);x=null});mxEvent.addListener(l,"keydown",mxUtils.bind(this,
+var CommentsWindow=function(b,c,e,f,n,l){function q(){for(var b=H.getElementsByTagName("div"),c=0,d=0;d<b.length;d++)"none"!=b[d].style.display&&b[d].parentNode==H&&c++;D.style.display=0==c?"block":"none"}function d(b,c,d,e){function f(){c.removeChild(l);c.removeChild(m);k.style.display="block";g.style.display="block"}x={div:c,comment:b,saveCallback:d,deleteOnCancel:e};var g=c.querySelector(".geCommentTxt"),k=c.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
+"geCommentEditTxtArea";l.style.minHeight=g.offsetHeight+"px";l.value=b.content;c.insertBefore(l,g);var m=document.createElement("div");m.className="geCommentEditBtns";var n=mxUtils.button(mxResources.get("cancel"),function(){e?(c.parentNode.removeChild(c),q()):f();x=null});n.className="geCommentEditBtn";m.appendChild(n);var p=mxUtils.button(mxResources.get("save"),function(){g.innerHTML="";b.content=l.value;mxUtils.write(g,b.content);f();d(b);x=null});mxEvent.addListener(l,"keydown",mxUtils.bind(this,
function(b){mxEvent.isConsumed(b)||((mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b))&&13==b.keyCode?(p.click(),mxEvent.consume(b)):27==b.keyCode&&(n.click(),mxEvent.consume(b)))}));p.focus();p.className="geCommentEditBtn gePrimaryBtn";m.appendChild(p);c.insertBefore(m,g);k.style.display="none";g.style.display="none";l.focus()}function k(c,d){d.innerHTML="";var e=new Date(c.modifiedDate),f=b.timeSince(e);null==f&&(f=mxResources.get("lessThanAMinute"));mxUtils.write(d,mxResources.get("timeAgo",
-[f],"{1} ago"));d.setAttribute("title",e.toLocaleDateString()+" "+e.toLocaleTimeString())}function g(b){var c=document.createElement("img");c.className="geCommentBusyImg";c.src=IMAGE_PATH+"/spin.gif";b.appendChild(c);b.busyImg=c}function q(b){b.style.border="1px solid red";b.removeChild(b.busyImg)}function m(b){b.style.border="";b.removeChild(b.busyImg)}function p(c,e,f,l,n){function y(b,d,e){var f=document.createElement("li");f.className="geCommentAction";var g=document.createElement("a");g.className=
-"geCommentActionLnk";mxUtils.write(g,b);f.appendChild(g);mxEvent.addListener(g,"click",function(b){d(b,c);b.preventDefault();mxEvent.consume(b)});V.appendChild(f);e&&(f.style.display="none")}function M(){function b(c){d.push(e);if(null!=c.replies)for(var f=0;f<c.replies.length;f++)e=e.nextSibling,b(c.replies[f])}var d=[],e=C;b(c);return{pdiv:e,replies:d}}function Q(e,f,k,n,t){function u(){g(y);c.addReply(A,function(b){A.id=b;c.replies.push(A);m(y);k&&k()},function(c){v();q(y);b.handleError(c,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},n,t)}function v(){d(A,y,function(b){u()},!0)}var x=M().pdiv,A=b.newComment(e,b.getCurrentUser());A.pCommentId=c.id;null==c.replies&&(c.replies=[]);var y=p(A,c.replies,x,l+1);f?v():u()}if(n||!c.isResolved){D.style.display="none";var C=document.createElement("div");C.className="geCommentContainer";C.setAttribute("data-commentId",c.id);C.style.marginLeft=20*l+5+"px";c.isResolved&&!Editor.isDarkMode()&&(C.style.backgroundColor="ghostWhite");
-var B=document.createElement("div");B.className="geCommentHeader";var E=document.createElement("img");E.className="geCommentUserImg";E.src=c.user.pictureUrl||Editor.userImage;B.appendChild(E);E=document.createElement("div");E.className="geCommentHeaderTxt";B.appendChild(E);var L=document.createElement("div");L.className="geCommentUsername";mxUtils.write(L,c.user.displayName||"");E.appendChild(L);L=document.createElement("div");L.className="geCommentDate";L.setAttribute("data-commentId",c.id);k(c,
-L);E.appendChild(L);C.appendChild(B);B=document.createElement("div");B.className="geCommentTxt";mxUtils.write(B,c.content||"");C.appendChild(B);c.isLocked&&(C.style.opacity="0.5");B=document.createElement("div");B.className="geCommentActions";var V=document.createElement("ul");V.className="geCommentActionsList";B.appendChild(V);v||c.isLocked||0!=l&&!u||y(mxResources.get("reply"),function(){Q("",!0)},c.isResolved);E=b.getCurrentUser();null==E||E.id!=c.user.id||v||c.isLocked||(y(mxResources.get("edit"),
-function(){function e(){d(c,C,function(){g(C);c.editComment(c.content,function(){m(C)},function(c){q(C);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}e()},c.isResolved),y(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){g(C);c.deleteComment(function(b){if(!0===b){b=C.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var d=C.querySelectorAll(".geCommentAction");for(b=
-0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);m(C);C.style.opacity="0.5"}else{d=M(c).replies;for(b=0;b<d.length;b++)H.removeChild(d[b]);for(b=0;b<e.length;b++)if(e[b]==c){e.splice(b,1);break}D.style.display=0==H.getElementsByTagName("div").length?"block":"none"}},function(c){q(C);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));v||c.isLocked||0!=l||y(c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(b){function d(){var d=
-b.target;d.innerHTML="";c.isResolved=!c.isResolved;mxUtils.write(d,c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var e=c.isResolved?"none":"",f=M(c).replies,g=Editor.isDarkMode()?"transparent":c.isResolved?"ghostWhite":"white",k=0;k<f.length;k++){f[k].style.backgroundColor=g;for(var l=f[k].querySelectorAll(".geCommentAction"),m=0;m<l.length;m++)l[m]!=d.parentNode&&(l[m].style.display=e);A||(f[k].style.display="none")}t()}c.isResolved?Q(mxResources.get("reOpened")+": ",!0,
+[f],"{1} ago"));d.setAttribute("title",e.toLocaleDateString()+" "+e.toLocaleTimeString())}function g(b){var c=document.createElement("img");c.className="geCommentBusyImg";c.src=IMAGE_PATH+"/spin.gif";b.appendChild(c);b.busyImg=c}function t(b){b.style.border="1px solid red";b.removeChild(b.busyImg)}function m(b){b.style.border="";b.removeChild(b.busyImg)}function p(c,e,f,l,n){function y(b,d,e){var f=document.createElement("li");f.className="geCommentAction";var g=document.createElement("a");g.className=
+"geCommentActionLnk";mxUtils.write(g,b);f.appendChild(g);mxEvent.addListener(g,"click",function(b){d(b,c);b.preventDefault();mxEvent.consume(b)});V.appendChild(f);e&&(f.style.display="none")}function M(){function b(c){d.push(e);if(null!=c.replies)for(var f=0;f<c.replies.length;f++)e=e.nextSibling,b(c.replies[f])}var d=[],e=C;b(c);return{pdiv:e,replies:d}}function Q(e,f,k,n,q){function u(){g(y);c.addReply(A,function(b){A.id=b;c.replies.push(A);m(y);k&&k()},function(c){v();t(y);b.handleError(c,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},n,q)}function v(){d(A,y,function(b){u()},!0)}var x=M().pdiv,A=b.newComment(e,b.getCurrentUser());A.pCommentId=c.id;null==c.replies&&(c.replies=[]);var y=p(A,c.replies,x,l+1);f?v():u()}if(n||!c.isResolved){D.style.display="none";var C=document.createElement("div");C.className="geCommentContainer";C.setAttribute("data-commentId",c.id);C.style.marginLeft=20*l+5+"px";c.isResolved&&!Editor.isDarkMode()&&(C.style.backgroundColor="ghostWhite");
+var B=document.createElement("div");B.className="geCommentHeader";var E=document.createElement("img");E.className="geCommentUserImg";E.src=c.user.pictureUrl||Editor.userImage;B.appendChild(E);E=document.createElement("div");E.className="geCommentHeaderTxt";B.appendChild(E);var J=document.createElement("div");J.className="geCommentUsername";mxUtils.write(J,c.user.displayName||"");E.appendChild(J);J=document.createElement("div");J.className="geCommentDate";J.setAttribute("data-commentId",c.id);k(c,
+J);E.appendChild(J);C.appendChild(B);B=document.createElement("div");B.className="geCommentTxt";mxUtils.write(B,c.content||"");C.appendChild(B);c.isLocked&&(C.style.opacity="0.5");B=document.createElement("div");B.className="geCommentActions";var V=document.createElement("ul");V.className="geCommentActionsList";B.appendChild(V);v||c.isLocked||0!=l&&!u||y(mxResources.get("reply"),function(){Q("",!0)},c.isResolved);E=b.getCurrentUser();null==E||E.id!=c.user.id||v||c.isLocked||(y(mxResources.get("edit"),
+function(){function e(){d(c,C,function(){g(C);c.editComment(c.content,function(){m(C)},function(c){t(C);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}e()},c.isResolved),y(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){g(C);c.deleteComment(function(b){if(!0===b){b=C.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var d=C.querySelectorAll(".geCommentAction");for(b=
+0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);m(C);C.style.opacity="0.5"}else{d=M(c).replies;for(b=0;b<d.length;b++)H.removeChild(d[b]);for(b=0;b<e.length;b++)if(e[b]==c){e.splice(b,1);break}D.style.display=0==H.getElementsByTagName("div").length?"block":"none"}},function(c){t(C);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));v||c.isLocked||0!=l||y(c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(b){function d(){var d=
+b.target;d.innerHTML="";c.isResolved=!c.isResolved;mxUtils.write(d,c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var e=c.isResolved?"none":"",f=M(c).replies,g=Editor.isDarkMode()?"transparent":c.isResolved?"ghostWhite":"white",k=0;k<f.length;k++){f[k].style.backgroundColor=g;for(var l=f[k].querySelectorAll(".geCommentAction"),n=0;n<l.length;n++)l[n]!=d.parentNode&&(l[n].style.display=e);A||(f[k].style.display="none")}q()}c.isResolved?Q(mxResources.get("reOpened")+": ",!0,
d,!1,!0):Q(mxResources.get("markedAsResolved"),!1,d,!0)});C.appendChild(B);null!=f?H.insertBefore(C,f.nextSibling):H.appendChild(C);for(f=0;null!=c.replies&&f<c.replies.length;f++)B=c.replies[f],B.isResolved=c.isResolved,p(B,c.replies,null,l+1,n);null!=x&&(x.comment.id==c.id?(n=c.content,c.content=x.comment.content,d(c,C,x.saveCallback,x.deleteOnCancel),c.content=n):null==x.comment.id&&x.comment.pCommentId==c.id&&(H.appendChild(x.div),d(x.comment,x.div,x.saveCallback,x.deleteOnCancel)));return C}}
var v=!b.canComment(),u=b.canReplyToReplies(),x=null,y=document.createElement("div");y.className="geCommentsWin";y.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var G=EditorUi.compactUi?"26px":"30px",H=document.createElement("div");H.className="geCommentsList";H.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";H.style.bottom=parseInt(G)+7+"px";y.appendChild(H);var D=document.createElement("span");D.style.cssText="display:none;padding-top:10px;text-align:center;";
mxUtils.write(D,mxResources.get("noCommentsFound"));var F=document.createElement("div");F.className="geToolbarContainer geCommentsToolbar";F.style.height=G;F.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";F.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";G=document.createElement("a");G.className="geButton";if(!v){var O=G.cloneNode();O.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';O.setAttribute("title",mxResources.get("create")+
-"...");mxEvent.addListener(O,"click",function(c){function e(){d(f,k,function(c){g(k);b.addComment(c,function(b){c.id=b;C.push(c);m(k)},function(c){q(k);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var f=b.newComment("",b.getCurrentUser()),k=p(f,C,null,0);e();c.preventDefault();mxEvent.consume(c)});F.appendChild(O)}O=G.cloneNode();O.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';O.setAttribute("title",mxResources.get("showResolved"));
+"...");mxEvent.addListener(O,"click",function(c){function e(){d(f,k,function(c){g(k);b.addComment(c,function(b){c.id=b;C.push(c);m(k)},function(c){t(k);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var f=b.newComment("",b.getCurrentUser()),k=p(f,C,null,0);e();c.preventDefault();mxEvent.consume(c)});F.appendChild(O)}O=G.cloneNode();O.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';O.setAttribute("title",mxResources.get("showResolved"));
var A=!1;Editor.isDarkMode()&&(O.style.filter="invert(100%)");mxEvent.addListener(O,"click",function(b){this.className=(A=!A)?"geButton geCheckedBtn":"geButton";E();b.preventDefault();mxEvent.consume(b)});F.appendChild(O);b.commentsRefreshNeeded()&&(O=G.cloneNode(),O.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',O.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(O.style.filter="invert(100%)"),mxEvent.addListener(O,"click",function(b){E();
b.preventDefault();mxEvent.consume(b)}),F.appendChild(O));b.commentsSaveNeeded()&&(G=G.cloneNode(),G.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',G.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(G.style.filter="invert(100%)"),mxEvent.addListener(G,"click",function(b){l();b.preventDefault();mxEvent.consume(b)}),F.appendChild(G));y.appendChild(F);var C=[],E=mxUtils.bind(this,function(){this.hasError=!1;if(null!=x)try{x.div=x.div.cloneNode(!0);
var c=x.div.querySelector(".geCommentEditTxtArea"),e=x.div.querySelector(".geCommentEditBtns");x.comment.content=c.value;c.parentNode.removeChild(c);e.parentNode.removeChild(e)}catch(Q){b.handleError(Q)}H.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";u=b.canReplyToReplies();b.commentsSupported()?b.getComments(function(b){function c(b){if(null!=b){b.sort(function(b,c){return new Date(b.modifiedDate)-
new Date(c.modifiedDate)});for(var d=0;d<b.length;d++)c(b[d].replies)}}b.sort(function(b,c){return new Date(b.modifiedDate)-new Date(c.modifiedDate)});H.innerHTML="";H.appendChild(D);D.style.display="block";C=b;for(b=0;b<C.length;b++)c(C[b].replies),p(C[b],C,null,0,A);null!=x&&null==x.comment.id&&null==x.comment.pCommentId&&(H.appendChild(x.div),d(x.comment,x.div,x.saveCallback,x.deleteOnCancel))},mxUtils.bind(this,function(b){H.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(b&&b.message?
": "+b.message:""));this.hasError=!0})):H.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});E();this.refreshComments=E;F=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(k(c,e),e=0;null!=c.replies&&e<c.replies.length;e++)b(c.replies[e])}if(this.window.isVisible()){for(var c=H.querySelectorAll(".geCommentDate"),d={},e=0;e<c.length;e++){var f=c[e];d[f.getAttribute("data-commentId")]=f}for(e=0;e<C.length;e++)b(C[e])}});setInterval(F,6E4);this.refreshCommentsTime=F;this.window=
new mxWindow(mxResources.get("comments"),y,c,e,f,n,!0,!0);this.window.minimumSize=new mxRectangle(0,0,300,200);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.window.setLocation=function(b,c){var d=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||
-document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));c=Math.max(0,Math.min(c,d-this.table.clientHeight-48));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};var L=mxUtils.bind(this,function(){var b=this.window.getX(),c=this.window.getY();this.window.setLocation(b,c)});mxEvent.addListener(window,"resize",L);this.destroy=function(){mxEvent.removeListener(window,"resize",L);this.window.destroy()}},ConfirmDialog=function(b,c,e,
-f,n,l,t,d,k,g,q){var m=document.createElement("div");m.style.textAlign="center";q=null!=q?q:44;var p=document.createElement("div");p.style.padding="6px";p.style.overflow="auto";p.style.maxHeight=q+"px";p.style.lineHeight="1.2em";mxUtils.write(p,c);m.appendChild(p);null!=g&&(p=document.createElement("div"),p.style.padding="6px 0 6px 0",c=document.createElement("img"),c.setAttribute("src",g),p.appendChild(c),m.appendChild(p));g=document.createElement("div");g.style.textAlign="center";g.style.whiteSpace=
-"nowrap";var v=document.createElement("input");v.setAttribute("type","checkbox");l=mxUtils.button(l||mxResources.get("cancel"),function(){b.hideDialog();null!=f&&f(v.checked)});l.className="geBtn";null!=d&&(l.innerHTML=d+"<br>"+l.innerHTML,l.style.paddingBottom="8px",l.style.paddingTop="8px",l.style.height="auto",l.style.width="40%");b.editor.cancelFirst&&g.appendChild(l);var u=mxUtils.button(n||mxResources.get("ok"),function(){b.hideDialog();null!=e&&e(v.checked)});g.appendChild(u);null!=t?(u.innerHTML=
-t+"<br>"+u.innerHTML+"<br>",u.style.paddingBottom="8px",u.style.paddingTop="8px",u.style.height="auto",u.className="geBtn",u.style.width="40%"):u.className="geBtn gePrimaryBtn";b.editor.cancelFirst||g.appendChild(l);m.appendChild(g);k?(g.style.marginTop="10px",p=document.createElement("p"),p.style.marginTop="20px",p.style.marginBottom="0px",p.appendChild(v),n=document.createElement("span"),mxUtils.write(n," "+mxResources.get("rememberThisSetting")),p.appendChild(n),m.appendChild(p),mxEvent.addListener(n,
+document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));c=Math.max(0,Math.min(c,d-this.table.clientHeight-48));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};var J=mxUtils.bind(this,function(){var b=this.window.getX(),c=this.window.getY();this.window.setLocation(b,c)});mxEvent.addListener(window,"resize",J);this.destroy=function(){mxEvent.removeListener(window,"resize",J);this.window.destroy()}},ConfirmDialog=function(b,c,e,
+f,n,l,q,d,k,g,t){var m=document.createElement("div");m.style.textAlign="center";t=null!=t?t:44;var p=document.createElement("div");p.style.padding="6px";p.style.overflow="auto";p.style.maxHeight=t+"px";p.style.lineHeight="1.2em";mxUtils.write(p,c);m.appendChild(p);null!=g&&(p=document.createElement("div"),p.style.padding="6px 0 6px 0",c=document.createElement("img"),c.setAttribute("src",g),p.appendChild(c),m.appendChild(p));g=document.createElement("div");g.style.textAlign="center";g.style.whiteSpace=
+"nowrap";var v=document.createElement("input");v.setAttribute("type","checkbox");l=mxUtils.button(l||mxResources.get("cancel"),function(){b.hideDialog();null!=f&&f(v.checked)});l.className="geBtn";null!=d&&(l.innerHTML=d+"<br>"+l.innerHTML,l.style.paddingBottom="8px",l.style.paddingTop="8px",l.style.height="auto",l.style.width="40%");b.editor.cancelFirst&&g.appendChild(l);var u=mxUtils.button(n||mxResources.get("ok"),function(){b.hideDialog();null!=e&&e(v.checked)});g.appendChild(u);null!=q?(u.innerHTML=
+q+"<br>"+u.innerHTML+"<br>",u.style.paddingBottom="8px",u.style.paddingTop="8px",u.style.height="auto",u.className="geBtn",u.style.width="40%"):u.className="geBtn gePrimaryBtn";b.editor.cancelFirst||g.appendChild(l);m.appendChild(g);k?(g.style.marginTop="10px",p=document.createElement("p"),p.style.marginTop="20px",p.style.marginBottom="0px",p.appendChild(v),n=document.createElement("span"),mxUtils.write(n," "+mxResources.get("rememberThisSetting")),p.appendChild(n),m.appendChild(p),mxEvent.addListener(n,
"click",function(b){v.checked=!v.checked;mxEvent.consume(b)})):g.style.marginTop="12px";this.init=function(){u.focus()};this.container=m};function DiagramPage(b,c){this.node=b;null!=c?this.node.setAttribute("id",c):null==this.getId()&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
DiagramPage.prototype.setName=function(b){null==b?this.node.removeAttribute("name"):this.node.setAttribute("name",b)};function RenamePage(b,c,e){this.ui=b;this.page=c;this.previous=this.name=e}RenamePage.prototype.execute=function(){var b=this.page.getName();this.page.setName(this.previous);this.name=this.previous;this.previous=b;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))};
function MovePage(b,c,e){this.ui=b;this.oldIndex=c;this.newIndex=e}MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var b=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=b;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))};
@@ -3870,14 +3870,14 @@ ChangePage.prototype.execute=function(){this.ui.editor.fireEvent(new mxEventObje
EditorUi.prototype.getPageIndex=function(b){var c=null;if(null!=this.pages&&null!=b)for(var e=0;e<this.pages.length;e++)if(this.pages[e]==b){c=e;break}return c};EditorUi.prototype.getPageById=function(b,c){c=null!=c?c:this.pages;if(null!=c)for(var e=0;e<c.length;e++)if(c[e].getId()==b)return c[e];return null};
EditorUi.prototype.createImageForPageLink=function(b,c,e){var f=b.indexOf(","),n=null;0<f&&(f=this.getPageById(b.substring(f+1)),null!=f&&f!=c&&(n=this.getImageForPage(f,c,e),n.originalSrc=b));null==n&&(n={originalSrc:b});return n};
EditorUi.prototype.getImageForPage=function(b,c,e){e=null!=e?e:this.editor.graph;var f=e.getGlobalVariable,n=this.createTemporaryGraph(e.getStylesheet());n.defaultPageBackgroundColor=e.defaultPageBackgroundColor;n.shapeBackgroundColor=e.shapeBackgroundColor;n.shapeForegroundColor=e.shapeForegroundColor;var l=this.getPageIndex(null!=c?c:this.currentPage);n.getGlobalVariable=function(b){return"pagenumber"==b?l+1:"page"==b&&null!=c?c.getName():f.apply(this,arguments)};document.body.appendChild(n.container);
-this.updatePageRoot(b);n.model.setRoot(b.root);b=Graph.foreignObjectWarningText;Graph.foreignObjectWarningText="";e=n.getSvg(null,null,null,null,null,null,null,null,null,null,null,!0);var t=n.getGraphBounds();document.body.removeChild(n.container);Graph.foreignObjectWarningText=b;return new mxImage(Editor.createSvgDataUri(mxUtils.getXml(e)),t.width,t.height,t.x,t.y)};
+this.updatePageRoot(b);n.model.setRoot(b.root);b=Graph.foreignObjectWarningText;Graph.foreignObjectWarningText="";e=n.getSvg(null,null,null,null,null,null,null,null,null,null,null,!0);var q=n.getGraphBounds();document.body.removeChild(n.container);Graph.foreignObjectWarningText=b;return new mxImage(Editor.createSvgDataUri(mxUtils.getXml(e)),q.width,q.height,q.x,q.y)};
EditorUi.prototype.initPages=function(){if(!this.editor.graph.standalone){this.actions.addAction("previousPage",mxUtils.bind(this,function(){this.selectNextPage(!1)}));this.actions.addAction("nextPage",mxUtils.bind(this,function(){this.selectNextPage(!0)}));this.isPagesEnabled()&&(this.keyHandler.bindAction(33,!0,"previousPage",!0),this.keyHandler.bindAction(34,!0,"nextPage",!0));var b=this.editor.graph,c=b.view.validateBackground;b.view.validateBackground=mxUtils.bind(this,function(){if(null!=this.tabContainer){var e=
this.tabContainer.style.height;this.tabContainer.style.height=null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.pages?"0px":this.tabContainerHeight+"px";e!=this.tabContainer.style.height&&this.refresh(!1)}c.apply(b.view,arguments)});var e=null,f=mxUtils.bind(this,function(){this.updateTabContainer();var c=this.currentPage;null!=c&&c!=e&&(null==c.viewState||null==c.viewState.scrollLeft?(this.resetScrollbars(),b.isLightboxView()&&this.lightboxFit(),null!=this.chromelessResize&&
(b.container.scrollLeft=0,b.container.scrollTop=0,this.chromelessResize())):(b.container.scrollLeft=b.view.translate.x*b.view.scale+c.viewState.scrollLeft,b.container.scrollTop=b.view.translate.y*b.view.scale+c.viewState.scrollTop),e=c);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?1!=MathJax.Hub.queue.pending||null==this.editor||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){null!=
this.editor&&this.editor.graph.refresh()})):"undefined"===typeof Editor.MathJaxClear||null!=this.editor&&this.editor.graph.mathEnabled||Editor.MathJaxClear()});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(b,c){for(var e=c.getProperty("edit").changes,d=0;d<e.length;d++)if(e[d]instanceof SelectPage||e[d]instanceof RenamePage||e[d]instanceof MovePage||e[d]instanceof mxRootChange){f();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)}};
EditorUi.prototype.restoreViewState=function(b,c,e){b=null!=b?this.getPageById(b.getId()):null;var f=this.editor.graph;null!=b&&null!=this.currentPage&&null!=this.pages&&(b!=this.currentPage?this.selectPage(b,!0,c):(f.setViewState(c),this.editor.updateGraphComponents(),f.view.revalidate(),f.sizeDidChange()),f.container.scrollLeft=f.view.translate.x*f.view.scale+c.scrollLeft,f.container.scrollTop=f.view.translate.y*f.view.scale+c.scrollTop,f.restoreSelection(e))};
-Graph.prototype.createViewState=function(b){var c=b.getAttribute("page"),e=parseFloat(b.getAttribute("pageScale")),f=parseFloat(b.getAttribute("pageWidth")),n=parseFloat(b.getAttribute("pageHeight")),l=b.getAttribute("background"),t=this.parseBackgroundImage(b.getAttribute("backgroundImage")),d=b.getAttribute("extFonts");if(d)try{d=d.split("|").map(function(b){b=b.split("^");return{name:b[0],url:b[1]}})}catch(k){console.log("ExtFonts format error: "+k.message)}return{gridEnabled:"0"!=b.getAttribute("grid"),
-gridSize:parseFloat(b.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=b.getAttribute("guides"),foldingEnabled:"0"!=b.getAttribute("fold"),shadowVisible:"1"==b.getAttribute("shadow"),pageVisible:this.isLightboxView()?!1:null!=c?"0"!=c:this.defaultPageVisible,background:null!=l&&0<l.length?l:null,backgroundImage:t,pageScale:isNaN(e)?mxGraph.prototype.pageScale:e,pageFormat:isNaN(f)||isNaN(n)?"undefined"===typeof mxSettings||null!=this.defaultPageFormat?mxGraph.prototype.pageFormat:
+Graph.prototype.createViewState=function(b){var c=b.getAttribute("page"),e=parseFloat(b.getAttribute("pageScale")),f=parseFloat(b.getAttribute("pageWidth")),n=parseFloat(b.getAttribute("pageHeight")),l=b.getAttribute("background"),q=this.parseBackgroundImage(b.getAttribute("backgroundImage")),d=b.getAttribute("extFonts");if(d)try{d=d.split("|").map(function(b){b=b.split("^");return{name:b[0],url:b[1]}})}catch(k){console.log("ExtFonts format error: "+k.message)}return{gridEnabled:"0"!=b.getAttribute("grid"),
+gridSize:parseFloat(b.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=b.getAttribute("guides"),foldingEnabled:"0"!=b.getAttribute("fold"),shadowVisible:"1"==b.getAttribute("shadow"),pageVisible:this.isLightboxView()?!1:null!=c?"0"!=c:this.defaultPageVisible,background:null!=l&&0<l.length?l:null,backgroundImage:q,pageScale:isNaN(e)?mxGraph.prototype.pageScale:e,pageFormat:isNaN(f)||isNaN(n)?"undefined"===typeof mxSettings||null!=this.defaultPageFormat?mxGraph.prototype.pageFormat:
mxSettings.getPageFormat():new mxRectangle(0,0,f,n),tooltips:"0"!=b.getAttribute("tooltips"),connect:"0"!=b.getAttribute("connect"),arrows:"0"!=b.getAttribute("arrows"),mathEnabled:"1"==b.getAttribute("math"),selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1,hiddenTags:[],extFonts:d||[]}};
Graph.prototype.saveViewState=function(b,c,e,f){e||(c.setAttribute("grid",(null==b?this.defaultGridEnabled:b.gridEnabled)?"1":"0"),c.setAttribute("page",(null==b?this.defaultPageVisible:b.pageVisible)?"1":"0"),c.setAttribute("gridSize",null!=b?b.gridSize:mxGraph.prototype.gridSize),c.setAttribute("guides",null==b||b.guidesEnabled?"1":"0"),c.setAttribute("tooltips",null==b||b.tooltips?"1":"0"),c.setAttribute("connect",null==b||b.connect?"1":"0"),c.setAttribute("arrows",null==b||b.arrows?"1":"0"),c.setAttribute("fold",
null==b||b.foldingEnabled?"1":"0"));c.setAttribute("pageScale",null!=b&&null!=b.pageScale?b.pageScale:mxGraph.prototype.pageScale);e=null!=b?b.pageFormat:"undefined"===typeof mxSettings||null!=this.defaultPageFormat?mxGraph.prototype.pageFormat:mxSettings.getPageFormat();null!=e&&(c.setAttribute("pageWidth",e.width),c.setAttribute("pageHeight",e.height));null!=b&&(null!=b.background&&c.setAttribute("background",b.background),f=this.getBackgroundImageObject(b.backgroundImage,f),null!=f&&c.setAttribute("backgroundImage",
@@ -3898,7 +3898,7 @@ EditorUi.prototype.selectNextPage=function(b){var c=this.currentPage;null!=c&&nu
EditorUi.prototype.insertPage=function(b,c){if(this.editor.graph.isEnabled()){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);b=null!=b?b:this.createPage(null,this.createPageId());c=null!=c?c:this.pages.length;var e=new ChangePage(this,b,b,c);this.editor.graph.model.execute(e)}return b};EditorUi.prototype.createPageId=function(){var b;do b=Editor.guid();while(null!=this.getPageById(b));return b};
EditorUi.prototype.createPage=function(b,c){var e=new DiagramPage(this.fileNode.ownerDocument.createElement("diagram"),c);e.setName(null!=b?b:this.createPageName());this.initDiagramNode(e);return e};EditorUi.prototype.createPageName=function(){for(var b={},c=0;c<this.pages.length;c++){var e=this.pages[c].getName();null!=e&&0<e.length&&(b[e]=e)}c=this.pages.length;do e=mxResources.get("pageWithNumber",[++c]);while(null!=b[e]);return e};
EditorUi.prototype.removePage=function(b){try{var c=this.editor.graph,e=mxUtils.indexOf(this.pages,b);if(c.isEnabled()&&0<=e){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);c.model.beginUpdate();try{var f=this.currentPage;f==b&&1<this.pages.length?(e==this.pages.length-1?e--:e++,f=this.pages[e]):1>=this.pages.length&&(f=this.insertPage(),c.model.execute(new RenamePage(this,f,mxResources.get("pageWithNumber",[1]))));c.model.execute(new ChangePage(this,b,f))}finally{c.model.endUpdate()}}}catch(n){this.handleError(n)}return b};
-EditorUi.prototype.duplicatePage=function(b,c){var e=null;try{var f=this.editor.graph;if(f.isEnabled()){f.isEditing()&&f.stopEditing();var n=b.node.cloneNode(!1);n.removeAttribute("id");var l={},t=f.createCellLookup([f.model.root]),e=new DiagramPage(n);e.root=f.cloneCell(f.model.root,null,l);var d=new mxGraphModel;d.prefix=Editor.guid()+"-";d.setRoot(e.root);f.updateCustomLinks(f.createCellMapping(l,t),[e.root]);e.viewState=b==this.currentPage?f.getViewState():b.viewState;this.initDiagramNode(e);
+EditorUi.prototype.duplicatePage=function(b,c){var e=null;try{var f=this.editor.graph;if(f.isEnabled()){f.isEditing()&&f.stopEditing();var n=b.node.cloneNode(!1);n.removeAttribute("id");var l={},q=f.createCellLookup([f.model.root]),e=new DiagramPage(n);e.root=f.cloneCell(f.model.root,null,l);var d=new mxGraphModel;d.prefix=Editor.guid()+"-";d.setRoot(e.root);f.updateCustomLinks(f.createCellMapping(l,q),[e.root]);e.viewState=b==this.currentPage?f.getViewState():b.viewState;this.initDiagramNode(e);
e.viewState.scale=1;e.viewState.scrollLeft=null;e.viewState.scrollTop=null;e.viewState.currentRoot=null;e.viewState.defaultParent=null;e.setName(c);e=this.insertPage(e,mxUtils.indexOf(this.pages,b)+1)}}catch(k){this.handleError(k)}return e};EditorUi.prototype.initDiagramNode=function(b){var c=(new mxCodec(mxUtils.createXmlDocument())).encode(new mxGraphModel(b.root));this.editor.graph.saveViewState(b.viewState,c);mxUtils.setTextContent(b.node,Graph.compressNode(c))};
EditorUi.prototype.clonePages=function(b){for(var c=[],e=0;e<b.length;e++)c.push(this.clonePage(b[e]));return c};EditorUi.prototype.clonePage=function(b){this.updatePageRoot(b);var c=new DiagramPage(b.node.cloneNode(!0)),e=b==this.currentPage?this.editor.graph.getViewState():b.viewState;c.viewState=mxUtils.clone(e,EditorUi.transientViewStateProperties);c.root=this.editor.graph.model.cloneCell(b.root,null,!0);return c};
EditorUi.prototype.renamePage=function(b){if(this.editor.graph.isEnabled()){var c=new FilenameDialog(this,b.getName(),mxResources.get("rename"),mxUtils.bind(this,function(c){null!=c&&0<c.length&&this.editor.graph.model.execute(new RenamePage(this,b,c))}),mxResources.get("rename"));this.showDialog(c.container,300,80,!0,!0);c.init()}return b};EditorUi.prototype.movePage=function(b,c){this.editor.graph.model.execute(new MovePage(this,b,c))};
@@ -3906,9 +3906,9 @@ EditorUi.prototype.createTabContainer=function(){var b=document.createElement("d
EditorUi.prototype.updateTabContainer=function(){if(null!=this.tabContainer&&null!=this.pages){var b=this.editor.graph,c=document.createElement("div");c.style.position="relative";c.style.display="inline-block";c.style.verticalAlign="top";c.style.height=this.tabContainer.style.height;c.style.whiteSpace="nowrap";c.style.overflow="hidden";c.style.fontSize="13px";c.style.marginLeft="30px";for(var e=this.editor.isChromelessView()?29:59,f=Math.min(140,Math.max(20,(this.tabContainer.clientWidth-e)/this.pages.length)+
1),n=null,l=0;l<this.pages.length;l++)mxUtils.bind(this,function(d,e){this.pages[d]==this.currentPage?(e.className="geActivePage",e.style.backgroundColor=Editor.isDarkMode()?Editor.darkColor:"#fff"):e.className="geInactivePage";e.setAttribute("draggable","true");mxEvent.addListener(e,"dragstart",mxUtils.bind(this,function(c){b.isEnabled()?(mxClient.IS_FF&&c.dataTransfer.setData("Text","<diagram/>"),n=d):mxEvent.consume(c)}));mxEvent.addListener(e,"dragend",mxUtils.bind(this,function(b){n=null;b.stopPropagation();
b.preventDefault()}));mxEvent.addListener(e,"dragover",mxUtils.bind(this,function(b){null!=n&&(b.dataTransfer.dropEffect="move");b.stopPropagation();b.preventDefault()}));mxEvent.addListener(e,"drop",mxUtils.bind(this,function(b){null!=n&&d!=n&&this.movePage(n,d);b.stopPropagation();b.preventDefault()}));c.appendChild(e)})(l,this.createTabForPage(this.pages[l],f,this.pages[l]!=this.currentPage,l+1));this.tabContainer.innerHTML="";this.tabContainer.appendChild(c);f=this.createPageMenuTab();this.tabContainer.appendChild(f);
-f=null;this.isPageInsertTabVisible()&&(f=this.createPageInsertTab(),this.tabContainer.appendChild(f));if(c.clientWidth>this.tabContainer.clientWidth-e){null!=f&&(f.style.position="absolute",f.style.right="0px",c.style.marginRight="30px");var t=this.createControlTab(4,"&nbsp;&#10094;&nbsp;");t.style.position="absolute";t.style.right=this.editor.chromeless?"29px":"55px";t.style.fontSize="13pt";this.tabContainer.appendChild(t);var d=this.createControlTab(4,"&nbsp;&#10095;");d.style.position="absolute";
-d.style.right=this.editor.chromeless?"0px":"29px";d.style.fontSize="13pt";this.tabContainer.appendChild(d);var k=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));c.style.width=k+"px";mxEvent.addListener(t,"click",mxUtils.bind(this,function(b){c.scrollLeft-=Math.max(20,k-20);mxUtils.setOpacity(t,0<c.scrollLeft?100:50);mxUtils.setOpacity(d,c.scrollLeft<c.scrollWidth-c.clientWidth?100:50);mxEvent.consume(b)}));mxUtils.setOpacity(t,0<c.scrollLeft?100:50);mxUtils.setOpacity(d,
-c.scrollLeft<c.scrollWidth-c.clientWidth?100:50);mxEvent.addListener(d,"click",mxUtils.bind(this,function(b){c.scrollLeft+=Math.max(20,k-20);mxUtils.setOpacity(t,0<c.scrollLeft?100:50);mxUtils.setOpacity(d,c.scrollLeft<c.scrollWidth-c.clientWidth?100:50);mxEvent.consume(b)}))}}};EditorUi.prototype.isPageInsertTabVisible=function(){return 1==urlParams.embed||null!=this.getCurrentFile()&&this.getCurrentFile().isEditable()};
+f=null;this.isPageInsertTabVisible()&&(f=this.createPageInsertTab(),this.tabContainer.appendChild(f));if(c.clientWidth>this.tabContainer.clientWidth-e){null!=f&&(f.style.position="absolute",f.style.right="0px",c.style.marginRight="30px");var q=this.createControlTab(4,"&nbsp;&#10094;&nbsp;");q.style.position="absolute";q.style.right=this.editor.chromeless?"29px":"55px";q.style.fontSize="13pt";this.tabContainer.appendChild(q);var d=this.createControlTab(4,"&nbsp;&#10095;");d.style.position="absolute";
+d.style.right=this.editor.chromeless?"0px":"29px";d.style.fontSize="13pt";this.tabContainer.appendChild(d);var k=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));c.style.width=k+"px";mxEvent.addListener(q,"click",mxUtils.bind(this,function(b){c.scrollLeft-=Math.max(20,k-20);mxUtils.setOpacity(q,0<c.scrollLeft?100:50);mxUtils.setOpacity(d,c.scrollLeft<c.scrollWidth-c.clientWidth?100:50);mxEvent.consume(b)}));mxUtils.setOpacity(q,0<c.scrollLeft?100:50);mxUtils.setOpacity(d,
+c.scrollLeft<c.scrollWidth-c.clientWidth?100:50);mxEvent.addListener(d,"click",mxUtils.bind(this,function(b){c.scrollLeft+=Math.max(20,k-20);mxUtils.setOpacity(q,0<c.scrollLeft?100:50);mxUtils.setOpacity(d,c.scrollLeft<c.scrollWidth-c.clientWidth?100:50);mxEvent.consume(b)}))}}};EditorUi.prototype.isPageInsertTabVisible=function(){return 1==urlParams.embed||null!=this.getCurrentFile()&&this.getCurrentFile().isEditable()};
EditorUi.prototype.createTab=function(b){var c=document.createElement("div");c.style.display="inline-block";c.style.whiteSpace="nowrap";c.style.boxSizing="border-box";c.style.position="relative";c.style.overflow="hidden";c.style.textAlign="center";c.style.marginLeft="-1px";c.style.height=this.tabContainer.clientHeight+"px";c.style.padding="12px 4px 8px 4px";c.style.border=Editor.isDarkMode()?"1px solid #505759":"1px solid #e8eaed";c.style.borderTopStyle="none";c.style.borderBottomStyle="none";c.style.backgroundColor=
this.tabContainer.style.backgroundColor;c.style.cursor="move";c.style.color="gray";b&&(mxEvent.addListener(c,"mouseenter",mxUtils.bind(this,function(b){this.editor.graph.isMouseDown||(c.style.backgroundColor=Editor.isDarkMode()?"black":"#e8eaed",mxEvent.consume(b))})),mxEvent.addListener(c,"mouseleave",mxUtils.bind(this,function(b){c.style.backgroundColor=this.tabContainer.style.backgroundColor;mxEvent.consume(b)})));return c};
EditorUi.prototype.createControlTab=function(b,c,e){e=this.createTab(null!=e?e:!0);e.style.lineHeight=this.tabContainerHeight+"px";e.style.paddingTop=b+"px";e.style.cursor="pointer";e.style.width="30px";e.innerHTML=c;null!=e.firstChild&&null!=e.firstChild.style&&mxUtils.setOpacity(e.firstChild,40);return e};
@@ -3919,29 +3919,29 @@ mxResources.get("copyOf",[g.getName()]))}),d)}}c&&(b.addSeparator(d),f(),b.addSe
EditorUi.prototype.createPageInsertTab=function(){var b=this.createControlTab(4,'<div class="geSprite geSprite-plus"></div>');b.setAttribute("title",mxResources.get("insertPage"));mxEvent.addListener(b,"click",mxUtils.bind(this,function(b){this.insertPage();mxEvent.consume(b)}));var c=b.getElementsByTagName("div")[0];c.style.display="inline-block";c.style.width="21px";c.style.height="21px";return b};
EditorUi.prototype.createTabForPage=function(b,c,e,f){e=this.createTab(e);var n=b.getName()||mxResources.get("untitled"),l=b.getId();e.setAttribute("title",n+(null!=l?" ("+l+")":"")+" ["+f+"]");mxUtils.write(e,n);e.style.maxWidth=c+"px";e.style.width=c+"px";this.addTabListeners(b,e);42<c&&(e.style.textOverflow="ellipsis");return e};
EditorUi.prototype.addTabListeners=function(b,c){mxEvent.disableContextMenu(c);var e=this.editor.graph;mxEvent.addListener(c,"dblclick",mxUtils.bind(this,function(c){this.renamePage(b);mxEvent.consume(c)}));var f=!1,n=!1;mxEvent.addGestureListeners(c,mxUtils.bind(this,function(c){f=null!=this.currentMenu;n=b==this.currentPage;e.isMouseDown||n||this.selectPage(b)}),null,mxUtils.bind(this,function(l){if(e.isEnabled()&&!e.isMouseDown&&(mxEvent.isTouchEvent(l)&&n||mxEvent.isPopupTrigger(l))){e.popupMenuHandler.hideMenu();
-this.hideCurrentMenu();if(!mxEvent.isTouchEvent(l)||!f){var t=new mxPopupMenu(this.createPageMenu(b));t.div.className+=" geMenubarMenu";t.smartSeparators=!0;t.showDisabled=!0;t.autoExpand=!0;t.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(t,arguments);this.resetCurrentMenu();t.destroy()});var d=mxEvent.getClientX(l),k=mxEvent.getClientY(l);t.popup(d,k,null,l);this.setCurrentMenu(t,c)}mxEvent.consume(l)}}))};
+this.hideCurrentMenu();if(!mxEvent.isTouchEvent(l)||!f){var q=new mxPopupMenu(this.createPageMenu(b));q.div.className+=" geMenubarMenu";q.smartSeparators=!0;q.showDisabled=!0;q.autoExpand=!0;q.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(q,arguments);this.resetCurrentMenu();q.destroy()});var d=mxEvent.getClientX(l),k=mxEvent.getClientY(l);q.popup(d,k,null,l);this.setCurrentMenu(q,c)}mxEvent.consume(l)}}))};
EditorUi.prototype.getLinkForPage=function(b,c,e){if(!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp){var f=this.getCurrentFile();if(null!=f&&f.constructor!=LocalFile&&"draw.io"==this.getServiceName()){var n=this.getSearch("create title mode url drive splash state clibs ui viewbox hide-pages sketch".split(" ")),n=n+((0==n.length?"?":"&")+"page-id="+b.getId());null!=c&&(n+="&"+c.join("&"));return(e&&"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?
EditorUi.drawHost:"https://"+window.location.host)+"/"+n+"#"+f.getHash()}}return null};
EditorUi.prototype.createPageMenu=function(b,c){return mxUtils.bind(this,function(e,f){var n=this.editor.graph;e.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,b)+1)}),f);e.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(b)}),f);e.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(b,c)}),f);null!=this.getLinkForPage(b)&&(e.addSeparator(f),e.addItem(mxResources.get("link"),
-null,mxUtils.bind(this,function(){this.showPublishLinkDialog(mxResources.get("url"),!0,null,null,mxUtils.bind(this,function(c,e,d,f,g,q){c=this.createUrlParameters(c,e,d,f,g,q);d||c.push("hide-pages=1");n.isSelectionEmpty()||(d=n.getBoundingBox(n.getSelectionCells()),e=n.view.translate,g=n.view.scale,d.width/=g,d.height/=g,d.x=d.x/g-e.x,d.y=d.y/g-e.y,c.push("viewbox="+encodeURIComponent(JSON.stringify({x:Math.round(d.x),y:Math.round(d.y),width:Math.round(d.width),height:Math.round(d.height),border:100}))));
+null,mxUtils.bind(this,function(){this.showPublishLinkDialog(mxResources.get("url"),!0,null,null,mxUtils.bind(this,function(c,e,d,f,g,t){c=this.createUrlParameters(c,e,d,f,g,t);d||c.push("hide-pages=1");n.isSelectionEmpty()||(d=n.getBoundingBox(n.getSelectionCells()),e=n.view.translate,g=n.view.scale,d.width/=g,d.height/=g,d.x=d.x/g-e.x,d.y=d.y/g-e.y,c.push("viewbox="+encodeURIComponent(JSON.stringify({x:Math.round(d.x),y:Math.round(d.y),width:Math.round(d.width),height:Math.round(d.height),border:100}))));
f=new EmbedDialog(this,this.getLinkForPage(b,c,f));this.showDialog(f.container,450,240,!0,!0);f.init()}))})));e.addSeparator(f);e.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(b,mxResources.get("copyOf",[b.getName()]))}),f);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||"draw.io"!=this.getServiceName()||(e.addSeparator(f),e.addItem(mxResources.get("openInNewWindow"),null,mxUtils.bind(this,function(){this.editor.editAsNew(this.getFileData(!0,null,null,null,
!0,!0))}),f))})};(function(){var b=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(c){b.apply(this,arguments);this.updateTabContainer()}})();(function(){mxCodecRegistry.getCodec(ChangePageSetup).exclude.push("page")})();(function(){var b=new mxObjectCodec(new MovePage,["ui"]);b.beforeDecode=function(b,e,f){f.ui=b.ui;return e};b.afterDecode=function(b,e,f){b=f.oldIndex;f.oldIndex=f.newIndex;f.newIndex=b;return f};mxCodecRegistry.register(b)})();
(function(){var b=new mxObjectCodec(new RenamePage,["ui","page"]);b.beforeDecode=function(b,e,f){f.ui=b.ui;return e};b.afterDecode=function(b,e,f){b=f.previous;f.previous=f.name;f.name=b;return f};mxCodecRegistry.register(b)})();
(function(){var b=new mxObjectCodec(new ChangePage,"ui relatedPage index neverShown page previousPage".split(" "));b.afterEncode=function(b,e,f){f.setAttribute("relatedPage",e.relatedPage.getId());null==e.index&&(f.setAttribute("name",e.relatedPage.getName()),null!=e.relatedPage.viewState&&f.setAttribute("viewState",JSON.stringify(e.relatedPage.viewState,function(b,c){return 0>mxUtils.indexOf(EditorUi.transientViewStateProperties,b)?c:void 0})),null!=e.relatedPage.root&&b.encodeCell(e.relatedPage.root,
f));return f};b.beforeDecode=function(b,e,f){f.ui=b.ui;f.relatedPage=f.ui.getPageById(e.getAttribute("relatedPage"));if(null==f.relatedPage){var c=e.ownerDocument.createElement("diagram");c.setAttribute("id",e.getAttribute("relatedPage"));c.setAttribute("name",e.getAttribute("name"));f.relatedPage=new DiagramPage(c);c=e.getAttribute("viewState");null!=c&&(f.relatedPage.viewState=JSON.parse(c),e.removeAttribute("viewState"));e=e.cloneNode(!0);c=e.firstChild;if(null!=c)for(f.relatedPage.root=b.decodeCell(c,
-!1),f=c.nextSibling,c.parentNode.removeChild(c),c=f;null!=c;){f=c.nextSibling;if(c.nodeType==mxConstants.NODETYPE_ELEMENT){var l=c.getAttribute("id");null==b.lookup(l)&&b.decodeCell(c)}c.parentNode.removeChild(c);c=f}}return e};b.afterDecode=function(b,e,f){f.index=f.previousIndex;return f};mxCodecRegistry.register(b)})();(function(){EditorUi.prototype.altShiftActions[68]="selectDescendants";var b=Graph.prototype.foldCells;Graph.prototype.foldCells=function(c,e,l,t,d){e=null!=e?e:!1;null==l&&(l=this.getFoldableCells(this.getSelectionCells(),c));this.stopEditing();this.model.beginUpdate();try{for(var f=l.slice(),g=0;g<l.length;g++)"1"==mxUtils.getValue(this.getCurrentCellStyle(l[g]),"treeFolding","0")&&this.foldTreeCell(c,l[g]);l=f;l=b.apply(this,arguments)}finally{this.model.endUpdate()}return l};Graph.prototype.foldTreeCell=
-function(b,c){this.model.beginUpdate();try{var e=[];this.traverse(c,!0,mxUtils.bind(this,function(b,f){var d=null!=f&&this.isTreeEdge(f);d&&e.push(f);b==c||null!=f&&!d||e.push(b);return(null==f||d)&&(b==c||!this.model.isCollapsed(b))}));this.model.setCollapsed(c,b);for(var f=0;f<e.length;f++)this.model.setVisible(e[f],!b)}finally{this.model.endUpdate()}};Graph.prototype.isTreeEdge=function(b){return!this.isEdgeIgnored(b)};Graph.prototype.getTreeEdges=function(b,c,e,t,d,k){return this.model.filterCells(this.getEdges(b,
-c,e,t,d,k),mxUtils.bind(this,function(b){return this.isTreeEdge(b)}))};Graph.prototype.getIncomingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!0,!1,!1)};Graph.prototype.getOutgoingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!1,!0,!1)};var c=EditorUi.prototype.init;EditorUi.prototype.init=function(){c.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(b){return x.isVertex(b)&&e(b)}function c(b){var c=
-!1;null!=b&&(c="1"==u.getCurrentCellStyle(b).treeMoving);return c}function e(b){var c=!1;null!=b&&(b=x.getParent(b),c=u.view.getState(b),c="tree"==(null!=c?c.style:u.getCellStyle(b)).containerType);return c}function t(b){var c=!1;null!=b&&(b=x.getParent(b),c=u.view.getState(b),u.view.getState(b),c=null!=(null!=c?c.style:u.getCellStyle(b)).childLayout);return c}function d(b){b=u.view.getState(b);if(null!=b){var c=u.getIncomingTreeEdges(b.cell);if(0<c.length&&(c=u.view.getState(c[0]),null!=c&&(c=c.absolutePoints,
+!1),f=c.nextSibling,c.parentNode.removeChild(c),c=f;null!=c;){f=c.nextSibling;if(c.nodeType==mxConstants.NODETYPE_ELEMENT){var l=c.getAttribute("id");null==b.lookup(l)&&b.decodeCell(c)}c.parentNode.removeChild(c);c=f}}return e};b.afterDecode=function(b,e,f){f.index=f.previousIndex;return f};mxCodecRegistry.register(b)})();(function(){EditorUi.prototype.altShiftActions[68]="selectDescendants";var b=Graph.prototype.foldCells;Graph.prototype.foldCells=function(c,e,l,q,d){e=null!=e?e:!1;null==l&&(l=this.getFoldableCells(this.getSelectionCells(),c));this.stopEditing();this.model.beginUpdate();try{for(var f=l.slice(),g=0;g<l.length;g++)"1"==mxUtils.getValue(this.getCurrentCellStyle(l[g]),"treeFolding","0")&&this.foldTreeCell(c,l[g]);l=f;l=b.apply(this,arguments)}finally{this.model.endUpdate()}return l};Graph.prototype.foldTreeCell=
+function(b,c){this.model.beginUpdate();try{var e=[];this.traverse(c,!0,mxUtils.bind(this,function(b,f){var d=null!=f&&this.isTreeEdge(f);d&&e.push(f);b==c||null!=f&&!d||e.push(b);return(null==f||d)&&(b==c||!this.model.isCollapsed(b))}));this.model.setCollapsed(c,b);for(var f=0;f<e.length;f++)this.model.setVisible(e[f],!b)}finally{this.model.endUpdate()}};Graph.prototype.isTreeEdge=function(b){return!this.isEdgeIgnored(b)};Graph.prototype.getTreeEdges=function(b,c,e,q,d,k){return this.model.filterCells(this.getEdges(b,
+c,e,q,d,k),mxUtils.bind(this,function(b){return this.isTreeEdge(b)}))};Graph.prototype.getIncomingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!0,!1,!1)};Graph.prototype.getOutgoingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!1,!0,!1)};var c=EditorUi.prototype.init;EditorUi.prototype.init=function(){c.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(b){return x.isVertex(b)&&e(b)}function c(b){var c=
+!1;null!=b&&(c="1"==u.getCurrentCellStyle(b).treeMoving);return c}function e(b){var c=!1;null!=b&&(b=x.getParent(b),c=u.view.getState(b),c="tree"==(null!=c?c.style:u.getCellStyle(b)).containerType);return c}function q(b){var c=!1;null!=b&&(b=x.getParent(b),c=u.view.getState(b),u.view.getState(b),c=null!=(null!=c?c.style:u.getCellStyle(b)).childLayout);return c}function d(b){b=u.view.getState(b);if(null!=b){var c=u.getIncomingTreeEdges(b.cell);if(0<c.length&&(c=u.view.getState(c[0]),null!=c&&(c=c.absolutePoints,
null!=c&&0<c.length&&(c=c[c.length-1],null!=c)))){if(c.y==b.y&&Math.abs(c.x-b.getCenterX())<b.width/2)return mxConstants.DIRECTION_SOUTH;if(c.y==b.y+b.height&&Math.abs(c.x-b.getCenterX())<b.width/2)return mxConstants.DIRECTION_NORTH;if(c.x>b.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function k(b,c){c=null!=c?c:!0;u.model.beginUpdate();try{var e=u.model.getParent(b),f=u.getIncomingTreeEdges(b),g=u.cloneCells([f[0],b]);u.model.setTerminal(g[0],u.model.getTerminal(f[0],
!0),!0);var k=d(b),l=e.geometry;k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH?g[1].geometry.x+=c?b.geometry.width+10:-g[1].geometry.width-10:g[1].geometry.y+=c?b.geometry.height+10:-g[1].geometry.height-10;u.view.currentRoot!=e&&(g[1].geometry.x-=l.x,g[1].geometry.y-=l.y);var m=u.view.getState(b),n=u.view.scale;if(null!=m){var p=mxRectangle.fromRectangle(m);k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH?p.x+=(c?b.geometry.width+10:-g[1].geometry.width-10)*n:p.y+=(c?
-b.geometry.height+10:-g[1].geometry.height-10)*n;var t=u.getOutgoingTreeEdges(u.model.getTerminal(f[0],!0));if(null!=t){for(var q=k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH,v=l=f=0;v<t.length;v++){var x=u.model.getTerminal(t[v],!1);if(k==d(x)){var A=u.view.getState(x);x!=b&&null!=A&&(q&&c!=A.getCenterX()<m.getCenterX()||!q&&c!=A.getCenterY()<m.getCenterY())&&mxUtils.intersects(p,A)&&(f=10+Math.max(f,(Math.min(p.x+p.width,A.x+A.width)-Math.max(p.x,A.x))/n),l=10+Math.max(l,(Math.min(p.y+
-p.height,A.y+A.height)-Math.max(p.y,A.y))/n))}}q?l=0:f=0;for(v=0;v<t.length;v++)if(x=u.model.getTerminal(t[v],!1),k==d(x)&&(A=u.view.getState(x),x!=b&&null!=A&&(q&&c!=A.getCenterX()<m.getCenterX()||!q&&c!=A.getCenterY()<m.getCenterY()))){var y=[];u.traverse(A.cell,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&y.push(c);(null==c||d)&&y.push(b);return null==c||d});u.moveCells(y,(c?1:-1)*f,(c?1:-1)*l)}}}return u.addCells(g,e)}finally{u.model.endUpdate()}}function g(b){u.model.beginUpdate();try{var c=
+b.geometry.height+10:-g[1].geometry.height-10)*n;var q=u.getOutgoingTreeEdges(u.model.getTerminal(f[0],!0));if(null!=q){for(var t=k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH,v=l=f=0;v<q.length;v++){var x=u.model.getTerminal(q[v],!1);if(k==d(x)){var A=u.view.getState(x);x!=b&&null!=A&&(t&&c!=A.getCenterX()<m.getCenterX()||!t&&c!=A.getCenterY()<m.getCenterY())&&mxUtils.intersects(p,A)&&(f=10+Math.max(f,(Math.min(p.x+p.width,A.x+A.width)-Math.max(p.x,A.x))/n),l=10+Math.max(l,(Math.min(p.y+
+p.height,A.y+A.height)-Math.max(p.y,A.y))/n))}}t?l=0:f=0;for(v=0;v<q.length;v++)if(x=u.model.getTerminal(q[v],!1),k==d(x)&&(A=u.view.getState(x),x!=b&&null!=A&&(t&&c!=A.getCenterX()<m.getCenterX()||!t&&c!=A.getCenterY()<m.getCenterY()))){var y=[];u.traverse(A.cell,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&y.push(c);(null==c||d)&&y.push(b);return null==c||d});u.moveCells(y,(c?1:-1)*f,(c?1:-1)*l)}}}return u.addCells(g,e)}finally{u.model.endUpdate()}}function g(b){u.model.beginUpdate();try{var c=
d(b),e=u.getIncomingTreeEdges(b),f=u.cloneCells([e[0],b]);u.model.setTerminal(e[0],f[1],!1);u.model.setTerminal(f[0],f[1],!0);u.model.setTerminal(f[0],b,!1);var g=u.model.getParent(b),k=g.geometry,l=[];u.view.currentRoot!=g&&(f[1].geometry.x-=k.x,f[1].geometry.y-=k.y);u.traverse(b,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});var m=b.geometry.width+40,n=b.geometry.height+40;c==mxConstants.DIRECTION_SOUTH?m=0:c==mxConstants.DIRECTION_NORTH?
-(m=0,n=-n):c==mxConstants.DIRECTION_WEST?(m=-m,n=0):c==mxConstants.DIRECTION_EAST&&(n=0);u.moveCells(l,m,n);return u.addCells(f,g)}finally{u.model.endUpdate()}}function q(b,c){u.model.beginUpdate();try{var e=u.model.getParent(b),f=u.getIncomingTreeEdges(b),g=d(b);0==f.length&&(f=[u.createEdge(e,null,"",null,null,u.createCurrentEdgeStyle())],g=c);var k=u.cloneCells([f[0],b]);u.model.setTerminal(k[0],b,!0);if(null==u.model.getTerminal(k[0],!1)){u.model.setTerminal(k[0],k[1],!1);var l=u.getCellStyle(k[1]).newEdgeStyle;
-if(null!=l)try{var m=JSON.parse(l),n;for(n in m)u.setCellStyles(n,m[n],[k[0]]),"edgeStyle"==n&&"elbowEdgeStyle"==m[n]&&u.setCellStyles("elbow",g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[k[0]])}catch(oa){}}var f=u.getOutgoingTreeEdges(b),p=e.geometry,l=[];u.view.currentRoot==e&&(p=new mxRectangle);for(m=0;m<f.length;m++){var t=u.model.getTerminal(f[m],!1);null!=t&&l.push(t)}var q=u.view.getBounds(l),v=u.view.translate,A=u.view.scale;g==mxConstants.DIRECTION_SOUTH?
-(k[1].geometry.x=null==q?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(q.x+q.width)/A-v.x-p.x+10,k[1].geometry.y+=k[1].geometry.height-p.y+40):g==mxConstants.DIRECTION_NORTH?(k[1].geometry.x=null==q?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(q.x+q.width)/A-v.x+-p.x+10,k[1].geometry.y-=k[1].geometry.height+p.y+40):(k[1].geometry.x=g==mxConstants.DIRECTION_WEST?k[1].geometry.x-(k[1].geometry.width+p.x+40):k[1].geometry.x+(k[1].geometry.width-p.x+40),k[1].geometry.y=null==q?b.geometry.y+
-(b.geometry.height-k[1].geometry.height)/2:(q.y+q.height)/A-v.y+-p.y+10);return u.addCells(k,e)}finally{u.model.endUpdate()}}function m(b,c,d){b=u.getOutgoingTreeEdges(b);d=u.view.getState(d);var e=[];if(null!=d&&null!=b){for(var f=0;f<b.length;f++){var g=u.view.getState(u.model.getTerminal(b[f],!1));null!=g&&(!c&&Math.min(g.x+g.width,d.x+d.width)>=Math.max(g.x,d.x)||c&&Math.min(g.y+g.height,d.y+d.height)>=Math.max(g.y,d.y))&&e.push(g)}e.sort(function(b,d){return c?b.x+b.width-d.x-d.width:b.y+b.height-
+(m=0,n=-n):c==mxConstants.DIRECTION_WEST?(m=-m,n=0):c==mxConstants.DIRECTION_EAST&&(n=0);u.moveCells(l,m,n);return u.addCells(f,g)}finally{u.model.endUpdate()}}function t(b,c){u.model.beginUpdate();try{var e=u.model.getParent(b),f=u.getIncomingTreeEdges(b),g=d(b);0==f.length&&(f=[u.createEdge(e,null,"",null,null,u.createCurrentEdgeStyle())],g=c);var k=u.cloneCells([f[0],b]);u.model.setTerminal(k[0],b,!0);if(null==u.model.getTerminal(k[0],!1)){u.model.setTerminal(k[0],k[1],!1);var l=u.getCellStyle(k[1]).newEdgeStyle;
+if(null!=l)try{var m=JSON.parse(l),n;for(n in m)u.setCellStyles(n,m[n],[k[0]]),"edgeStyle"==n&&"elbowEdgeStyle"==m[n]&&u.setCellStyles("elbow",g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[k[0]])}catch(oa){}}var f=u.getOutgoingTreeEdges(b),p=e.geometry,l=[];u.view.currentRoot==e&&(p=new mxRectangle);for(m=0;m<f.length;m++){var q=u.model.getTerminal(f[m],!1);null!=q&&l.push(q)}var t=u.view.getBounds(l),v=u.view.translate,A=u.view.scale;g==mxConstants.DIRECTION_SOUTH?
+(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/A-v.x-p.x+10,k[1].geometry.y+=k[1].geometry.height-p.y+40):g==mxConstants.DIRECTION_NORTH?(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/A-v.x+-p.x+10,k[1].geometry.y-=k[1].geometry.height+p.y+40):(k[1].geometry.x=g==mxConstants.DIRECTION_WEST?k[1].geometry.x-(k[1].geometry.width+p.x+40):k[1].geometry.x+(k[1].geometry.width-p.x+40),k[1].geometry.y=null==t?b.geometry.y+
+(b.geometry.height-k[1].geometry.height)/2:(t.y+t.height)/A-v.y+-p.y+10);return u.addCells(k,e)}finally{u.model.endUpdate()}}function m(b,c,d){b=u.getOutgoingTreeEdges(b);d=u.view.getState(d);var e=[];if(null!=d&&null!=b){for(var f=0;f<b.length;f++){var g=u.view.getState(u.model.getTerminal(b[f],!1));null!=g&&(!c&&Math.min(g.x+g.width,d.x+d.width)>=Math.max(g.x,d.x)||c&&Math.min(g.y+g.height,d.y+d.height)>=Math.max(g.y,d.y))&&e.push(g)}e.sort(function(b,d){return c?b.x+b.width-d.x-d.width:b.y+b.height-
d.y-d.height})}return e}function p(b,c){var e=d(b),f=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST;(e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST)==f&&e!=c?v.actions.get("selectParent").funct():e==c?(f=u.getOutgoingTreeEdges(b),null!=f&&0<f.length&&u.setSelectionCell(u.model.getTerminal(f[0],!1))):(e=u.getIncomingTreeEdges(b),null!=e&&0<e.length&&(f=m(u.model.getTerminal(e[0],!0),f,b),e=u.view.getState(b),null!=e&&(e=mxUtils.indexOf(f,e),0<=e&&(e+=c==mxConstants.DIRECTION_NORTH||
c==mxConstants.DIRECTION_WEST?-1:1,0<=e&&e<=f.length-1&&u.setSelectionCell(f[e].cell)))))}var v=this,u=v.editor.graph,x=u.getModel(),y=v.menus.createPopupMenu;v.menus.createPopupMenu=function(c,d,e){y.apply(this,arguments);if(1==u.getSelectionCount()){d=u.getSelectionCell();var f=u.getOutgoingTreeEdges(d);c.addSeparator();0<f.length&&(b(u.getSelectionCell())&&this.addMenuItems(c,["selectChildren"],null,e),this.addMenuItems(c,["selectDescendants"],null,e));b(u.getSelectionCell())?(c.addSeparator(),
0<u.getIncomingTreeEdges(d).length&&this.addMenuItems(c,["selectSiblings","selectParent"],null,e)):0<u.model.getEdgeCount(d)&&this.addMenuItems(c,["selectConnections"],null,e)}};v.actions.addAction("selectChildren",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var b=u.getSelectionCell(),b=u.getOutgoingTreeEdges(b);if(null!=b){for(var c=[],d=0;d<b.length;d++)c.push(u.model.getTerminal(b[d],!1));u.setSelectionCells(c)}}},null,null,"Alt+Shift+X");v.actions.addAction("selectSiblings",function(){if(u.isEnabled()&&
@@ -3949,16 +3949,16 @@ c==mxConstants.DIRECTION_WEST?-1:1,0<=e&&e<=f.length-1&&u.setSelectionCell(f[e].
!0))}},null,null,"Alt+Shift+P");v.actions.addAction("selectDescendants",function(b,c){var d=u.getSelectionCell();if(u.isEnabled()&&u.model.isVertex(d)){if(null!=c&&mxEvent.isAltDown(c))u.setSelectionCells(u.model.getTreeEdges(d,null==c||!mxEvent.isShiftDown(c),null==c||!mxEvent.isControlDown(c)));else{var e=[];u.traverse(d,!0,function(b,d){var f=null!=d&&u.isTreeEdge(d);f&&e.push(d);null!=d&&!f||null!=c&&mxEvent.isShiftDown(c)||e.push(b);return null==d||f})}u.setSelectionCells(e)}},null,null,"Alt+Shift+D");
var G=u.removeCells;u.removeCells=function(c,d){d=null!=d?d:!0;null==c&&(c=this.getDeletableCells(this.getSelectionCells()));d&&(c=this.getDeletableCells(this.addAllEdges(c)));for(var f=[],g=0;g<c.length;g++){var k=c[g];x.isEdge(k)&&e(k)&&(f.push(k),k=x.getTerminal(k,!1));if(b(k)){var l=[];u.traverse(k,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});0<l.length&&(f=f.concat(l),k=u.getIncomingTreeEdges(c[g]),c=c.concat(k))}else null!=k&&f.push(c[g])}c=
f;return G.apply(this,arguments)};v.hoverIcons.getStateAt=function(c,d,e){return b(c.cell)?null:this.graph.view.getState(this.graph.getCellAt(d,e))};var H=u.duplicateCells;u.duplicateCells=function(c,d){c=null!=c?c:this.getSelectionCells();for(var e=c.slice(0),f=0;f<e.length;f++){var g=u.view.getState(e[f]);if(null!=g&&b(g.cell))for(var k=u.getIncomingTreeEdges(g.cell),g=0;g<k.length;g++)mxUtils.remove(k[g],c)}this.model.beginUpdate();try{var l=H.call(this,c,d);if(l.length==c.length)for(f=0;f<c.length;f++)if(b(c[f])){var m=
-u.getIncomingTreeEdges(l[f]),k=u.getIncomingTreeEdges(c[f]);if(0==m.length&&0<k.length){var n=this.cloneCell(k[0]);this.addEdge(n,u.getDefaultParent(),this.model.getTerminal(k[0],!0),l[f])}}}finally{this.model.endUpdate()}return l};var D=u.moveCells;u.moveCells=function(c,d,e,f,g,k,l){var m=null;this.model.beginUpdate();try{var n=g,p=this.getCurrentCellStyle(g);if(null!=c&&b(g)&&"1"==mxUtils.getValue(p,"treeFolding","0")){for(var t=0;t<c.length;t++)if(b(c[t])||u.model.isEdge(c[t])&&null==u.model.getTerminal(c[t],
-!0)){g=u.model.getParent(c[t]);break}if(null!=n&&g!=n&&null!=this.view.getState(c[0])){var q=u.getIncomingTreeEdges(c[0]);if(0<q.length){var v=u.view.getState(u.model.getTerminal(q[0],!0));if(null!=v){var A=u.view.getState(n);null!=A&&(d=(A.getCenterX()-v.getCenterX())/u.view.scale,e=(A.getCenterY()-v.getCenterY())/u.view.scale)}}}}m=D.apply(this,arguments);if(null!=m&&null!=c&&m.length==c.length)for(t=0;t<m.length;t++)if(this.model.isEdge(m[t]))b(n)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[t],
-!0))&&this.model.setTerminal(m[t],n,!0);else if(b(c[t])&&(q=u.getIncomingTreeEdges(c[t]),0<q.length))if(!f)b(n)&&0>mxUtils.indexOf(c,this.model.getTerminal(q[0],!0))&&this.model.setTerminal(q[0],n,!0);else if(0==u.getIncomingTreeEdges(m[t]).length){p=n;if(null==p||p==u.model.getParent(c[t]))p=u.model.getTerminal(q[0],!0);f=this.cloneCell(q[0]);this.addEdge(f,u.getDefaultParent(),p,m[t])}}finally{this.model.endUpdate()}return m};if(null!=v.sidebar){var F=v.sidebar.dropAndConnect;v.sidebar.dropAndConnect=
+u.getIncomingTreeEdges(l[f]),k=u.getIncomingTreeEdges(c[f]);if(0==m.length&&0<k.length){var n=this.cloneCell(k[0]);this.addEdge(n,u.getDefaultParent(),this.model.getTerminal(k[0],!0),l[f])}}}finally{this.model.endUpdate()}return l};var D=u.moveCells;u.moveCells=function(c,d,e,f,g,k,l){var m=null;this.model.beginUpdate();try{var n=g,p=this.getCurrentCellStyle(g);if(null!=c&&b(g)&&"1"==mxUtils.getValue(p,"treeFolding","0")){for(var q=0;q<c.length;q++)if(b(c[q])||u.model.isEdge(c[q])&&null==u.model.getTerminal(c[q],
+!0)){g=u.model.getParent(c[q]);break}if(null!=n&&g!=n&&null!=this.view.getState(c[0])){var t=u.getIncomingTreeEdges(c[0]);if(0<t.length){var v=u.view.getState(u.model.getTerminal(t[0],!0));if(null!=v){var A=u.view.getState(n);null!=A&&(d=(A.getCenterX()-v.getCenterX())/u.view.scale,e=(A.getCenterY()-v.getCenterY())/u.view.scale)}}}}m=D.apply(this,arguments);if(null!=m&&null!=c&&m.length==c.length)for(q=0;q<m.length;q++)if(this.model.isEdge(m[q]))b(n)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[q],
+!0))&&this.model.setTerminal(m[q],n,!0);else if(b(c[q])&&(t=u.getIncomingTreeEdges(c[q]),0<t.length))if(!f)b(n)&&0>mxUtils.indexOf(c,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],n,!0);else if(0==u.getIncomingTreeEdges(m[q]).length){p=n;if(null==p||p==u.model.getParent(c[q]))p=u.model.getTerminal(t[0],!0);f=this.cloneCell(t[0]);this.addEdge(f,u.getDefaultParent(),p,m[q])}}finally{this.model.endUpdate()}return m};if(null!=v.sidebar){var F=v.sidebar.dropAndConnect;v.sidebar.dropAndConnect=
function(c,d,e,f){var g=u.model,k=null;g.beginUpdate();try{if(k=F.apply(this,arguments),b(c))for(var l=0;l<k.length;l++)if(g.isEdge(k[l])&&null==g.getTerminal(k[l],!0)){g.setTerminal(k[l],c,!0);var m=u.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var O={88:v.actions.get("selectChildren"),84:v.actions.get("selectSubtree"),80:v.actions.get("selectParent"),83:v.actions.get("selectSiblings")},A=v.onKeyDown;v.onKeyDown=function(c){try{if(u.isEnabled()&&
-!u.isEditing()&&b(u.getSelectionCell())&&1==u.getSelectionCount()){var d=null;0<u.getIncomingTreeEdges(u.getSelectionCell()).length&&(9==c.which?d=mxEvent.isShiftDown(c)?g(u.getSelectionCell()):q(u.getSelectionCell()):13==c.which&&(d=k(u.getSelectionCell(),!mxEvent.isShiftDown(c))));if(null!=d&&0<d.length)1==d.length&&u.model.isEdge(d[0])?u.setSelectionCell(u.model.getTerminal(d[0],!1)):u.setSelectionCell(d[d.length-1]),null!=v.hoverIcons&&v.hoverIcons.update(u.view.getState(u.getSelectionCell())),
+!u.isEditing()&&b(u.getSelectionCell())&&1==u.getSelectionCount()){var d=null;0<u.getIncomingTreeEdges(u.getSelectionCell()).length&&(9==c.which?d=mxEvent.isShiftDown(c)?g(u.getSelectionCell()):t(u.getSelectionCell()):13==c.which&&(d=k(u.getSelectionCell(),!mxEvent.isShiftDown(c))));if(null!=d&&0<d.length)1==d.length&&u.model.isEdge(d[0])?u.setSelectionCell(u.model.getTerminal(d[0],!1)):u.setSelectionCell(d[d.length-1]),null!=v.hoverIcons&&v.hoverIcons.update(u.view.getState(u.getSelectionCell())),
u.startEditingAtCell(u.getSelectionCell()),mxEvent.consume(c);else if(mxEvent.isAltDown(c)&&mxEvent.isShiftDown(c)){var e=O[c.keyCode];null!=e&&(e.funct(c),mxEvent.consume(c))}else 37==c.keyCode?(p(u.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(c)):38==c.keyCode?(p(u.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(c)):39==c.keyCode?(p(u.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(c)):40==c.keyCode&&(p(u.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
-mxEvent.consume(c))}}catch(ja){v.handleError(ja)}mxEvent.isConsumed(c)||A.apply(this,arguments)};var C=u.connectVertex;u.connectVertex=function(c,e,f,l,m,n,p){var t=u.getIncomingTreeEdges(c);if(b(c)){var v=d(c),A=v==mxConstants.DIRECTION_EAST||v==mxConstants.DIRECTION_WEST,x=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return v==e||0==t.length?q(c,e):A==x?g(c):k(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return C.apply(this,arguments)};u.getSubtree=function(d){var e=
-[d];!c(d)&&!b(d)||t(d)||u.traverse(d,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&0>mxUtils.indexOf(e,c)&&e.push(c);(null==c||d)&&0>mxUtils.indexOf(e,b)&&e.push(b);return null==c||d});return e};var E=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){E.apply(this,arguments);(c(this.state.cell)||b(this.state.cell))&&!t(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
+mxEvent.consume(c))}}catch(ja){v.handleError(ja)}mxEvent.isConsumed(c)||A.apply(this,arguments)};var C=u.connectVertex;u.connectVertex=function(c,e,f,l,m,n,p){var q=u.getIncomingTreeEdges(c);if(b(c)){var v=d(c),A=v==mxConstants.DIRECTION_EAST||v==mxConstants.DIRECTION_WEST,x=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return v==e||0==q.length?t(c,e):A==x?g(c):k(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return C.apply(this,arguments)};u.getSubtree=function(d){var e=
+[d];!c(d)&&!b(d)||q(d)||u.traverse(d,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&0>mxUtils.indexOf(e,c)&&e.push(c);(null==c||d)&&0>mxUtils.indexOf(e,b)&&e.push(b);return null==c||d});return e};var E=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){E.apply(this,arguments);(c(this.state.cell)||b(this.state.cell))&&!q(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
"Move Subtree"),this.moveHandle.style.position="absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="24px",this.moveHandle.style.height="24px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(b){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSubtree(this.state.cell));this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(b);
-this.graph.isMouseDown=!0;v.hoverIcons.reset();mxEvent.consume(b)})))};var L=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){L.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var N=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){N.apply(this,
+this.graph.isMouseDown=!0;v.hoverIcons.reset();mxEvent.consume(b)})))};var J=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){J.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var N=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){N.apply(this,
arguments);null!=this.moveHandle&&(this.moveHandle.style.display=b?"":"none")};var M=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(b,c){M.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var e=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var b=e.apply(this,arguments),c=this.graph;return b.concat([this.addEntry("tree container",
function(){var b=new mxCell("Tree Container",new mxGeometry(0,0,400,320),"swimlane;startSize=20;horizontal=1;containerType=tree;");b.vertex=!0;var c=new mxCell("Parent",new mxGeometry(140,60,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');c.vertex=!0;var d=new mxCell("Child",new mxGeometry(140,140,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
d.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");e.geometry.relative=!0;e.edge=!0;c.insertEdge(e,!0);d.insertEdge(e,!1);b.insert(e);b.insert(c);b.insert(d);return sb.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree mindmap mindmaps central idea branch topic",function(){var b=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;startSize=20;horizontal=1;containerType=tree;");
@@ -3993,12 +3993,12 @@ arguments)};mxClient.IS_SF&&(this.window.div.onselectstart=mxUtils.bind(this,fun
mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'<path d="M 3 7 L 7 3 L 11 7" stroke="#C0C0C0" stroke-width="2" fill="none"/>').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'<path d="M 3 3 L 7 7 L 11 3" stroke="#C0C0C0" stroke-width="2" fill="none"/>').src;mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke-width="2" style="stroke-opacity:0.4" stroke="#ffffff"/><path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#29b6f2"/>');
mxOutline.prototype.sizerImage=null;mxConstants.VERTEX_SELECTION_COLOR="#C0C0C0";mxConstants.EDGE_SELECTION_COLOR="#C0C0C0";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.DEFAULT_VALID_COLOR="#29b6f2";mxConstants.GUIDE_COLOR="#C0C0C0";mxConstants.HIGHLIGHT_STROKEWIDTH=5;mxConstants.HIGHLIGHT_OPACITY=35;mxConstants.OUTLINE_COLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#fff";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity=
"0.4";Graph.prototype.svgShadowSize="0.6";Graph.prototype.svgShadowBlur="1.2";Format.inactiveTabBackgroundColor="#f0f0f0";mxGraphHandler.prototype.previewColor="#C0C0C0";mxRubberband.prototype.defaultOpacity=50;HoverIcons.prototype.inactiveOpacity=25;Format.prototype.showCloseButton=!1;EditorUi.prototype.closableScratchpad=!1;EditorUi.prototype.toolbarHeight="1"==urlParams.sketch?1:46;EditorUi.prototype.footerHeight=0;Graph.prototype.editAfterInsert="1"!=urlParams.sketch&&!mxClient.IS_IOS&&!mxClient.IS_ANDROID;
-EditorUi.prototype.setDarkMode=function(b){this.spinner.spin(document.body,mxResources.get("working")+"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetDarkMode(b);null==urlParams.dark&&(mxSettings.settings.darkMode=b,mxSettings.save());this.fireEvent(new mxEventObject("darkModeChanged"))}),0)};var t=document.createElement("link");t.setAttribute("rel","stylesheet");t.setAttribute("href",STYLE_PATH+"/dark.css");t.setAttribute("charset","UTF-8");t.setAttribute("type",
+EditorUi.prototype.setDarkMode=function(b){this.spinner.spin(document.body,mxResources.get("working")+"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetDarkMode(b);null==urlParams.dark&&(mxSettings.settings.darkMode=b,mxSettings.save());this.fireEvent(new mxEventObject("darkModeChanged"))}),0)};var q=document.createElement("link");q.setAttribute("rel","stylesheet");q.setAttribute("href",STYLE_PATH+"/dark.css");q.setAttribute("charset","UTF-8");q.setAttribute("type",
"text/css");EditorUi.prototype.doSetDarkMode=function(b){if(Editor.darkMode!=b){var c=this.editor.graph;Editor.darkMode=b;this.spinner.opts.color=Editor.isDarkMode()?"#c0c0c0":"#000";c.view.gridColor=Editor.isDarkMode()?c.view.defaultDarkGridColor:c.view.defaultGridColor;c.defaultPageBackgroundColor="1"==urlParams.embedInline?"transparent":Editor.isDarkMode()?Editor.darkColor:"#ffffff";c.defaultPageBorderColor=Editor.isDarkMode()?"#505759":"#ffffff";c.shapeBackgroundColor=Editor.isDarkMode()?Editor.darkColor:
"#ffffff";c.shapeForegroundColor=Editor.isDarkMode()?Editor.lightColor:"#000000";c.defaultThemeName=Editor.isDarkMode()?"darkTheme":"default-style2";c.graphHandler.previewColor=Editor.isDarkMode()?"#cccccc":"black";document.body.style.backgroundColor="1"==urlParams.embedInline?"transparent":Editor.isDarkMode()?Editor.darkColor:"#ffffff";c.loadStylesheet();null!=this.actions.layersWindow&&(b=this.actions.layersWindow.window.isVisible(),this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.destroy(),
this.actions.layersWindow=null,b&&window.setTimeout(this.actions.get("layers").funct,0));null!=this.menus.commentsWindow&&(this.menus.commentsWindow.window.setVisible(!1),this.menus.commentsWindow.destroy(),this.menus.commentsWindow=null);null!=this.ruler&&this.ruler.updateStyle();Graph.prototype.defaultPageBackgroundColor=c.defaultPageBackgroundColor;Graph.prototype.defaultPageBorderColor=c.defaultPageBorderColor;Graph.prototype.shapeBackgroundColor=c.shapeBackgroundColor;Graph.prototype.shapeForegroundColor=
c.shapeForegroundColor;Graph.prototype.defaultThemeName=c.defaultThemeName;StyleFormatPanel.prototype.defaultStrokeColor=Editor.isDarkMode()?"#cccccc":"black";BaseFormatPanel.prototype.buttonBackgroundColor=Editor.isDarkMode()?Editor.darkColor:"white";Format.inactiveTabBackgroundColor=Editor.isDarkMode()?"black":"#f0f0f0";Dialog.backdropColor=Editor.isDarkMode()?Editor.darkColor:"white";mxConstants.DROP_TARGET_COLOR=Editor.isDarkMode()?"#00ff00":"#0000FF";Editor.helpImage=Editor.isDarkMode()&&mxClient.IS_SVG?
-Editor.darkHelpImage:Editor.lightHelpImage;Editor.checkmarkImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;d.innerHTML=Editor.createMinimalCss();Editor.darkMode?null==t.parentNode&&document.getElementsByTagName("head")[0].appendChild(t):null!=t.parentNode&&t.parentNode.removeChild(t)}};Editor.createMinimalCss=function(){return"* { -webkit-font-smoothing: antialiased; }html body td.mxWindowTitle > div > img { padding: 8px 4px; }"+(Editor.isDarkMode()?
+Editor.darkHelpImage:Editor.lightHelpImage;Editor.checkmarkImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;d.innerHTML=Editor.createMinimalCss();Editor.darkMode?null==q.parentNode&&document.getElementsByTagName("head")[0].appendChild(q):null!=q.parentNode&&q.parentNode.removeChild(q)}};Editor.createMinimalCss=function(){return"* { -webkit-font-smoothing: antialiased; }html body td.mxWindowTitle > div > img { padding: 8px 4px; }"+(Editor.isDarkMode()?
"html body td.mxWindowTitle > div > img { margin: -4px; }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 div.geToolbarContainer a.geInverted { filter: none; }html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem { color: #353535; }html > body > div > .geToolbarContainer { border: 1px solid #c0c0c0 !important; box-shadow: none !important; }html > body.geEditor > div > a.geItem { background-color: #2a2a2a; color: #cccccc; border-color: #505759; }html body .geTabContainer, html body .geTabContainer div, html body .geMenubarContainer { border-color: #505759 !important; }html body .mxCellEditor { color: #f0f0f0; }":
"html body div.geToolbarContainer a.geInverted { filter: invert(1); }html body.geEditor .geTabContainer div { border-color: #e5e5e5 !important; }")+'html > body > div > a.geItem { background-color: #ffffff; color: #707070; border-top: 1px solid lightgray; border-left: 1px solid lightgray; }html body .geMenubarContainer { border-bottom:1px solid lightgray;background-color:#ffffff; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0; }html body .geSidebarContainer *:not(svg *) { font-size:9pt; }html body table.mxWindow td.mxWindowPane div.mxWindowPane *:not(svg *) { font-size:9pt; }table.mxWindow * :not(svg *) { font-size:13px; }html body .mxWindow { z-index: 3; }html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700; border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }html body a.geMenuItem { opacity: 0.75; cursor: pointer; user-select: none; }html body a.geMenuItem[disabled] { opacity: 0.2; }html body a.geMenuItem[disabled]:active { opacity: 0.2; }html body div.geActivePage { opacity: 0.7; }html body a.geMenuItem:active { opacity: 0.2; }html body .geToolbarButton { opacity: 0.3; }html body .geToolbarButton:active { opacity: 0.15; }html body .geStatus:active { opacity: 0.5; }.geStatus > div { box-sizing: border-box; max-width: 100%; text-overflow: ellipsis; }html body .geStatus { padding-top:3px !important; }html body .geMenubarContainer .geStatus { margin-top: 0px !important; }html table.mxPopupMenu tr.mxPopupMenuItemHover:active { opacity: 0.7; }html body .geDialog input, html body .geToolbarContainer input, html body .mxWindow input {padding: 2px; display: inline-block; }html body .mxWindow input[type="checkbox"] {padding: 0px; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: '+
(Editor.isDarkMode()?Editor.darkColor:"#fff")+" !important; border: none !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: "+(Editor.isDarkMode()?"#cccccc":"#353535")+" !important; border-style: solid; border-width: 1px; border-color: rgb(216, 216, 216); }html body div.diagramContainer button:hover, html body .mxWindow button:hover, html body .geDialog button:hover { border-color: rgb(177, 177, 177); }html body div.diagramContainer button:active, html body .mxWindow button:active, html body .geDialog button:active { opacity: 0.6; }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:0px; padding: 0 2px 4px 2px; } html body div.geToolbarContainer a.geColorBtn { margin: 2px; } html body .mxWindow td.mxWindowPane input, html body .mxWindow td.mxWindowPane select, html body .mxWindow td.mxWindowPane textarea, html body .mxWindow td.mxWindowPane radio { padding: 0px; box-sizing: border-box; }.geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); "+
@@ -4007,8 +4007,8 @@ Editor.darkHelpImage:Editor.lightHelpImage;Editor.checkmarkImage=Editor.isDarkMo
(Editor.isDarkMode()?Editor.darkColor:"rgb(249, 249, 249)")+" !important; color: #A0A0A0 !important; } html div.geActivePage { background: "+(Editor.isDarkMode()?Editor.darkColor:"#fff")+" !important; "+(Editor.isDarkMode()?"":"color: #353535 !important; } ")+"html div.mxRubberband { border:1px solid; border-color: #29b6f2 !important; background:rgba(41,182,242,0.4) !important; } html body div.mxPopupMenu { border-radius:5px; border:1px solid #c0c0c0; padding:5px 0 5px 0; box-shadow: 0px 4px 17px -4px rgba(96,96,96,1); } html table.mxPopupMenu td.mxPopupMenuItem { color: "+
(Editor.isDarkMode()?"#cccccc":"#353535")+"; font-size: 14px; padding-top: 4px; padding-bottom: 4px; }html table.mxPopupMenu tr.mxPopupMenuItemHover { background-color: "+(Editor.isDarkMode()?"#000000":"#29b6f2")+"; }html tr.mxPopupMenuItemHover td.mxPopupMenuItem, html tr.mxPopupMenuItemHover td.mxPopupMenuItem span { color: "+(Editor.isDarkMode()?"#cccccc":"#ffffff")+" !important; }html tr.mxPopupMenuItem, html td.mxPopupMenuItem { transition-property: none !important; }html table.mxPopupMenu hr { height: 2px; background-color: rgba(0,0,0,.07); margin: 5px 0; }html body td.mxWindowTitle { padding-right: 14px; }html td.mxWindowTitle div { top: 0px !important; }"+
(mxClient.IS_IOS?"html input[type=checkbox], html input[type=radio] { height:12px; }":"")+("1"==urlParams.sketch?"a.geStatus > div { overflow: hidden; text-overflow: ellipsis; max-width: 100%; }":"")};var d=document.createElement("style");d.type="text/css";d.innerHTML=Editor.createMinimalCss();document.getElementsByTagName("head")[0].appendChild(d);Editor.prototype.isChromelessView=function(){return!1};Graph.prototype.isLightboxView=function(){return!1};var k=EditorUi.prototype.updateTabContainer;
-EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="1"==urlParams.sketch?"0px":this.tabContainerHeight+"px");k.apply(this,arguments)};var g=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){g.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var q=Menus.prototype.addShortcut;Menus.prototype.addShortcut=function(b,
-c){null!=c.shortcut&&900>f&&!mxClient.IS_IOS?b.firstChild.nextSibling.setAttribute("title",c.shortcut):q.apply(this,arguments)};var m=App.prototype.updateUserElement;App.prototype.updateUserElement=function(){m.apply(this,arguments);if(null!=this.userElement){var b=this.userElement;b.style.cssText="position:relative;margin-right:4px;cursor:pointer;display:"+b.style.display;b.className="geToolbarButton";b.innerHTML="";b.style.backgroundImage="url("+Editor.userImage+")";b.style.backgroundPosition="center center";
+EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="1"==urlParams.sketch?"0px":this.tabContainerHeight+"px");k.apply(this,arguments)};var g=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){g.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var t=Menus.prototype.addShortcut;Menus.prototype.addShortcut=function(b,
+c){null!=c.shortcut&&900>f&&!mxClient.IS_IOS?b.firstChild.nextSibling.setAttribute("title",c.shortcut):t.apply(this,arguments)};var m=App.prototype.updateUserElement;App.prototype.updateUserElement=function(){m.apply(this,arguments);if(null!=this.userElement){var b=this.userElement;b.style.cssText="position:relative;margin-right:4px;cursor:pointer;display:"+b.style.display;b.className="geToolbarButton";b.innerHTML="";b.style.backgroundImage="url("+Editor.userImage+")";b.style.backgroundPosition="center center";
b.style.backgroundRepeat="no-repeat";b.style.backgroundSize="24px 24px";b.style.height="24px";b.style.width="24px";b.style.cssFloat="right";b.setAttribute("title",mxResources.get("changeUser"));if("none"!=b.style.display){b.style.display="inline-block";var c=this.getCurrentFile();if(null!=c&&c.isRealtimeEnabled()&&c.isRealtimeSupported()){var d=document.createElement("img");d.setAttribute("border","0");d.style.position="absolute";d.style.left="18px";d.style.top="2px";d.style.width="12px";d.style.height=
"12px";d.style.cursor="default";var e=c.getRealtimeError(),f=c.getRealtimeState(),c=mxResources.get("realtimeCollaboration");1==f?(d.src=Editor.syncImage,c+=" ("+mxResources.get("online")+")"):(d.src=Editor.syncProblemImage,c=null!=e&&null!=e.message?c+(" ("+e.message+")"):c+(" ("+mxResources.get("disconnected")+")"));mxEvent.addListener(d,"click",mxUtils.bind(this,function(b){this.showError(mxResources.get("realtimeCollaboration"),mxUtils.htmlEntities(1==f?mxResources.get("online"):null!=e&&null!=
e.message?e.message:mxResources.get("disconnected")));mxEvent.consume(b)}));d.setAttribute("title",c);b.style.paddingRight="4px";b.appendChild(d)}}}};var p=App.prototype.updateButtonContainer;App.prototype.updateButtonContainer=function(){p.apply(this,arguments);if(null!=this.shareButton){var b=this.shareButton;b.style.cssText="display:inline-block;position:relative;box-sizing:border-box;margin-right:4px;cursor:pointer;";b.className="geToolbarButton";b.innerHTML="";b.style.backgroundImage="url("+
@@ -4073,12 +4073,12 @@ m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight/2-1+"px";m.rightRes
""}),oa=mxUtils.bind(this,function(){xa.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";la()}),y=mxUtils.bind(this,function(){oa();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",oa);m.addListener("editInlineStart",
y);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",y);m.addListener("editInlineStop",mxUtils.bind(this,function(b){m.diagramContainer.style.width="10px";m.diagramContainer.style.height="10px";m.diagramContainer.style.border="";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";I.style.visibility="hidden";F.style.visibility="hidden";G.style.display="none"}));if(null!=m.hoverIcons){var pa=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||
pa.apply(this,arguments)}}if(null!=n.freehand){var ka=n.freehand.createStyle;n.freehand.createStyle=function(b){return ka.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){G.className="geToolbarContainer";F.className="geToolbarContainer";I.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=G;var qa=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){qa||(m.statusContainer.style.display=
-"none")});var Z=mxUtils.bind(this,function(b){null!=m.notificationBtn&&(null!=b?m.notificationBtn.setAttribute("title",b):m.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed?(p.style.visibility=14>p.clientWidth?"hidden":"",m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&"function"===typeof m.statusContainer.firstChild.getAttribute&&null==m.statusContainer.firstChild.getAttribute("class")){var b=
+"none")});var Z=mxUtils.bind(this,function(b){null!=m.notificationBtn&&(null!=b?m.notificationBtn.setAttribute("title",b):m.notificationBtn.removeAttribute("title"))});p.style.visibility=14>p.clientWidth?"hidden":"";m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if("1"!=urlParams.embed)if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&"function"===typeof m.statusContainer.firstChild.getAttribute&&null==m.statusContainer.firstChild.getAttribute("class")){var b=
null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):m.editor.getStatus();Z(b);var c=m.getCurrentFile(),c=null!=c?c.savingStatusKey:DrawioFile.prototype.savingStatusKey;b==mxResources.get(c)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(c))+'..."src="'+Editor.tailSpin+'">',m.statusContainer.style.display="inline-block",qa=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display=
-"none",qa=!1)}else m.statusContainer.style.display="inline-block",Z(null),qa=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}))):m.editor.addListener("statusChanged",mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));R=c("diagram",null,Editor.menuImage);R.style.boxShadow="none";R.style.padding="6px";R.style.margin="0px";I.appendChild(R);mxEvent.disableContextMenu(R);mxEvent.addGestureListeners(R,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||
-mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&this.appIconClicked(b)}),null,null);m.statusContainer.style.position="";m.statusContainer.style.display="none";m.statusContainer.style.margin="0px";m.statusContainer.style.padding="6px 0px";m.statusContainer.style.maxWidth=Math.min(f-240,280)+"px";m.statusContainer.style.display="inline-block";m.statusContainer.style.textOverflow="ellipsis";m.buttonContainer.style.position="";m.buttonContainer.style.paddingRight="0px";m.buttonContainer.style.display=
-"inline-block";var P=document.createElement("a");P.style.padding="0px";P.style.boxShadow="none";P.className="geMenuItem";P.style.display="inline-block";P.style.width="40px";P.style.height="12px";P.style.marginBottom="-2px";P.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";P.style.backgroundPosition="top center";P.style.backgroundRepeat="no-repeat";P.setAttribute("title","Minimize");var sa=!1,T=mxUtils.bind(this,function(){G.innerHTML="";if(!sa){var b=function(b,c,f){b=d("",b.funct,
-null,c,b,f);b.style.width="40px";b.style.opacity="0.7";return e(b,null,"pointer")},e=function(b,c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=null!=d?d:"default";b.style.margin="2px 0px";G.appendChild(b);mxUtils.br(G);return b};e(m.sidebar.createVertexTemplate("text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",60,30,"Text",mxResources.get("text"),!0,!1,null,!0,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");e(m.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;shadow=1;size=20;pointerEvents=1;",
+"none",qa=!1)}else m.statusContainer.style.display="inline-block",Z(null),qa=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}));R=c("diagram",null,Editor.menuImage);R.style.boxShadow="none";R.style.padding="6px";R.style.margin="0px";I.appendChild(R);mxEvent.disableContextMenu(R);mxEvent.addGestureListeners(R,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&this.appIconClicked(b)}),null,null);
+m.statusContainer.style.position="";m.statusContainer.style.display="none";m.statusContainer.style.margin="0px";m.statusContainer.style.padding="6px 0px";m.statusContainer.style.maxWidth=Math.min(f-240,280)+"px";m.statusContainer.style.display="inline-block";m.statusContainer.style.textOverflow="ellipsis";m.buttonContainer.style.position="";m.buttonContainer.style.paddingRight="0px";m.buttonContainer.style.display="inline-block";var P=document.createElement("a");P.style.padding="0px";P.style.boxShadow=
+"none";P.className="geMenuItem";P.style.display="inline-block";P.style.width="40px";P.style.height="12px";P.style.marginBottom="-2px";P.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";P.style.backgroundPosition="top center";P.style.backgroundRepeat="no-repeat";P.setAttribute("title","Minimize");var sa=!1,T=mxUtils.bind(this,function(){G.innerHTML="";if(!sa){var b=function(b,c,f){b=d("",b.funct,null,c,b,f);b.style.width="40px";b.style.opacity="0.7";return e(b,null,"pointer")},e=
+function(b,c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=null!=d?d:"default";b.style.margin="2px 0px";G.appendChild(b);mxUtils.br(G);return b};e(m.sidebar.createVertexTemplate("text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",60,30,"Text",mxResources.get("text"),!0,!1,null,!0,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");e(m.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;shadow=1;size=20;pointerEvents=1;",
140,160,"",mxResources.get("note"),!0,!1,null,!0),mxResources.get("note"));e(m.sidebar.createVertexTemplate("rounded=0;whiteSpace=wrap;html=1;",160,80,"",mxResources.get("rectangle"),!0,!1,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");e(m.sidebar.createVertexTemplate("ellipse;whiteSpace=wrap;html=1;",160,100,"",mxResources.get("ellipse"),!0,!1,null,!0),mxResources.get("ellipse"));(function(){var b=new mxCell("",new mxGeometry(0,0,n.defaultEdgeLength,0),"edgeStyle=none;orthogonalLoop=1;jettySize=auto;html=1;");
b.geometry.setTerminalPoint(new mxPoint(0,0),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,0),!1);b.geometry.points=[];b.geometry.relative=!0;b.edge=!0;e(m.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,b.geometry.height,mxResources.get("line"),!0,null,!0,!1),mxResources.get("line"));b=b.clone();b.style="edgeStyle=none;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;rounded=1;startSize=8;endSize=8;";b.geometry.width=n.defaultEdgeLength+20;b.geometry.setTerminalPoint(new mxPoint(0,
20),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,20),!1);b=e(m.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,40,mxResources.get("arrow"),!0,null,!0,!1),mxResources.get("arrow"));b.style.borderBottom="1px solid "+(Editor.isDarkMode()?"#505050":"lightgray");b.style.paddingBottom="14px";b.style.marginBottom="14px"})();b(m.actions.get("insertFreehand"),mxResources.get("freehand"),Editor.freehandImage);var f=m.actions.get("toggleShapes");b(f,mxResources.get("shapes")+" ("+f.shortcut+
@@ -4101,7 +4101,7 @@ m.setGraphEnabled=function(){Ia.apply(this,arguments);null!=this.tabContainer&&(
"text";G.style.transform="";mxEvent.addGestureListeners(m.diagramContainer.parentNode,function(b){mxEvent.getSource(b)==m.diagramContainer.parentNode&&(m.embedExitPoint=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b)),m.sendEmbeddedSvgExport())});l=document.createElement("div");l.style.position="absolute";l.style.width="10px";l.style.height="10px";l.style.borderRadius="5px";l.style.border="1px solid gray";l.style.background="#ffffff";l.style.cursor="row-resize";m.diagramContainer.parentNode.appendChild(l);
m.bottomResizer=l;var Ba=null,ya=null,Ca=null,Fa=null;mxEvent.addGestureListeners(l,function(b){Fa=parseInt(m.diagramContainer.style.height);ya=mxEvent.getClientY(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});l=l.cloneNode(!1);l.style.cursor="col-resize";m.diagramContainer.parentNode.appendChild(l);m.rightResizer=l;mxEvent.addGestureListeners(l,function(b){Ca=parseInt(m.diagramContainer.style.width);Ba=mxEvent.getClientX(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});mxEvent.addGestureListeners(document.body,
null,function(b){var c=!1;null!=Ba&&(m.diagramContainer.style.width=Math.max(20,Ca+mxEvent.getClientX(b)-Ba)+"px",c=!0);null!=ya&&(m.diagramContainer.style.height=Math.max(20,Fa+mxEvent.getClientY(b)-ya)+"px",c=!0);c&&((window.opener||window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:m.diagramContainer.getBoundingClientRect()}),"*"),la(),m.refresh())},function(b){null==Ba&&null==ya||mxEvent.consume(b);ya=Ba=null});this.diagramContainer.style.borderRadius=
-"4px";document.body.style.backgroundColor="transparent";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";I.style.visibility="hidden";F.style.visibility="hidden";G.style.display="none"}"1"==urlParams.prefetchFonts&&m.editor.loadFonts()}}};(function(){var b=!1;"min"!=uiTheme||b||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),b=!0);var c=EditorUi.initTheme;EditorUi.initTheme=function(){c.apply(this,arguments);"min"!=uiTheme||b||(this.initMinimalTheme(),b=!0)}})();DrawioComment=function(b,c,e,f,n,l,t){this.file=b;this.id=c;this.content=e;this.modifiedDate=f;this.createdDate=n;this.isResolved=l;this.user=t;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,c,e,f,n){c()};DrawioComment.prototype.editComment=function(b,c,e){c()};DrawioComment.prototype.deleteComment=function(b,c){b()};DrawioUser=function(b,c,e,f,n){this.id=b;this.email=c;this.displayName=e;this.pictureUrl=f;this.locale=n};mxResources.parse('# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*\n# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE\nabout=About\naboutDrawio=About draw.io\naccessDenied=Access Denied\naction=Action\nactualSize=Actual Size\nadd=Add\naddAccount=Add account\naddedFile=Added {1}\naddImages=Add Images\naddImageUrl=Add Image URL\naddLayer=Add Layer\naddProperty=Add Property\naddress=Address\naddToExistingDrawing=Add to Existing Drawing\naddWaypoint=Add Waypoint\nadjustTo=Adjust to\nadvanced=Advanced\nalign=Align\nalignment=Alignment\nallChangesLost=All changes will be lost!\nallPages=All Pages\nallProjects=All Projects\nallSpaces=All Spaces\nallTags=All Tags\nanchor=Anchor\nandroid=Android\nangle=Angle\narc=Arc\nareYouSure=Are you sure?\nensureDataSaved=Please ensure your data is saved before closing.\nallChangesSaved=All changes saved\nallChangesSavedInDrive=All changes saved in Drive\nallowPopups=Allow pop-ups to avoid this dialog.\nallowRelativeUrl=Allow relative URL\nalreadyConnected=Nodes already connected\napply=Apply\narchiMate21=ArchiMate 2.1\narrange=Arrange\narrow=Arrow\narrows=Arrows\nasNew=As New\natlas=Atlas\nauthor=Author\nauthorizationRequired=Authorization required\nauthorizeThisAppIn=Authorize this app in {1}:\nauthorize=Authorize\nauthorizing=Authorizing\nautomatic=Automatic\nautosave=Autosave\nautosize=Autosize\nattachments=Attachments\naws=AWS\naws3d=AWS 3D\nazure=Azure\nback=Back\nbackground=Background\nbackgroundColor=Background Color\nbackgroundImage=Background Image\nbasic=Basic\nbeta=beta\nblankDrawing=Blank Drawing\nblankDiagram=Blank Diagram\nblock=Block\nblockquote=Blockquote\nblog=Blog\nbold=Bold\nbootstrap=Bootstrap\nborder=Border\nborderColor=Border Color\nborderWidth=Border Width\nbottom=Bottom\nbottomAlign=Bottom Align\nbottomLeft=Bottom Left\nbottomRight=Bottom Right\nbpmn=BPMN\nbringForward=Bring Forward\nbrowser=Browser\nbulletedList=Bulleted List\nbusiness=Business\nbusy=Operation in progress\ncabinets=Cabinets\ncancel=Cancel\ncenter=Center\ncannotLoad=Load attempts failed. Please try again later.\ncannotLogin=Log in attempts failed. Please try again later.\ncannotOpenFile=Cannot open file\nchange=Change\nchangeOrientation=Change Orientation\nchangeUser=Change user\nchangeStorage=Change storage\nchangesNotSaved=Changes have not been saved\nclassDiagram=Class Diagram\nuserJoined={1} has joined\nuserLeft={1} has left\nchatWindowTitle=Chat\nchooseAnOption=Choose an option\nchromeApp=Chrome App\ncollaborativeEditingNotice=Important Notice for Collaborative Editing\ncompare=Compare\ncompressed=Compressed\ncommitMessage=Commit Message\nconfigLinkWarn=This link configures draw.io. Only click OK if you trust whoever gave you it!\nconfigLinkConfirm=Click OK to configure and restart draw.io.\ncontainer=Container\ncsv=CSV\ndark=Dark\ndiagramXmlDesc=XML File\ndiagramHtmlDesc=HTML File\ndiagramPngDesc=Editable Bitmap Image\ndiagramSvgDesc=Editable Vector Image\ndidYouMeanToExportToPdf=Did you mean to export to PDF?\ndraftFound=A draft for \'{1}\' has been found. Load it into the editor or discard it to continue.\ndraftRevisionMismatch=There is a different version of this diagram on a shared draft of this page. Please edit the diagram from the draft to ensure you are working with the latest version.\nselectDraft=Select a draft to continue editing:\ndragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?\ndropboxCharsNotAllowed=The following characters are not allowed: / : ? * " |\ncheck=Check\nchecksum=Checksum\ncircle=Circle\ncisco=Cisco\nclassic=Classic\nclearDefaultStyle=Clear Default Style\nclearWaypoints=Clear Waypoints\nclipart=Clipart\nclose=Close\nclosingFile=Closing file\nrealtimeCollaboration=Real-Time Collaboration\ncollaborator=Collaborator\ncollaborators=Collaborators\ncollapse=Collapse\ncollapseExpand=Collapse/Expand\ncollapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size\ncollapsible=Collapsible\ncomic=Comic\ncomment=Comment\ncommentsNotes=Comments/Notes\ncompress=Compress\nconfiguration=Configuration\nconnect=Connect\nconnecting=Connecting\nconnectWithDrive=Connect with Google Drive\nconnection=Connection\nconnectionArrows=Connection Arrows\nconnectionPoints=Connection Points\nconstrainProportions=Constrain Proportions\ncontainsValidationErrors=Contains validation errors\ncopiedToClipboard=Copied to clipboard\ncopy=Copy\ncopyConnect=Copy on connect\ncopyCreated=A copy of the file was created.\ncopyData=Copy Data\ncopyOf=Copy of {1}\ncopyOfDrawing=Copy of Drawing\ncopySize=Copy Size\ncopyStyle=Copy Style\ncreate=Create\ncreateNewDiagram=Create New Diagram\ncreateRevision=Create Revision\ncreateShape=Create Shape\ncrop=Crop\ncurved=Curved\ncustom=Custom\ncurrent=Current\ncurrentPage=Current page\ncut=Cut\ndashed=Dashed\ndecideLater=Decide later\ndefault=Default\ndelete=Delete\ndeleteColumn=Delete Column\ndeleteLibrary401=Insufficient permissions to delete this library\ndeleteLibrary404=Selected library could not be found\ndeleteLibrary500=Error deleting library\ndeleteLibraryConfirm=You are about to permanently delete this library. Are you sure you want to do this?\ndeleteRow=Delete Row\ndescription=Description\ndevice=Device\ndiagram=Diagram\ndiagramContent=Diagram Content\ndiagramLocked=Diagram has been locked to prevent further data loss.\ndiagramLockedBySince=The diagram is locked by {1} since {2} ago\ndiagramName=Diagram Name\ndiagramIsPublic=Diagram is public\ndiagramIsNotPublic=Diagram is not public\ndiamond=Diamond\ndiamondThin=Diamond (thin)\ndidYouKnow=Did you know...\ndirection=Direction\ndiscard=Discard\ndiscardChangesAndReconnect=Discard Changes and Reconnect\ngoogleDriveMissingClickHere=Google Drive missing? Click here!\ndiscardChanges=Discard Changes\ndisconnected=Disconnected\ndistribute=Distribute\ndone=Done\ndoNotShowAgain=Do not show again\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Get Desktop\ndownloadAs=Download as\nclickHereToSave=Click here to save.\ndpi=DPI\ndraftDiscarded=Draft discarded\ndraftSaved=Draft saved\ndragElementsHere=Drag elements here\ndragImagesHere=Drag images or URLs here\ndragUrlsHere=Drag URLs here\ndraw.io=draw.io\ndrawing=Drawing{1}\ndrawingEmpty=Drawing is empty\ndrawingTooLarge=Drawing is too large\ndrawioForWork=Draw.io for GSuite\ndropbox=Dropbox\nduplicate=Duplicate\nduplicateIt=Duplicate {1}\ndivider=Divider\ndx=Dx\ndy=Dy\neast=East\nedit=Edit\neditData=Edit Data\neditDiagram=Edit Diagram\neditGeometry=Edit Geometry\neditImage=Edit Image\neditImageUrl=Edit Image URL\neditLink=Edit Link\neditShape=Edit Shape\neditStyle=Edit Style\neditText=Edit Text\neditTooltip=Edit Tooltip\nglass=Glass\ngoogleImages=Google Images\nimageSearch=Image Search\neip=EIP\nembed=Embed\nembedFonts=Embed Fonts\nembedImages=Embed Images\nmainEmbedNotice=Paste this into the page\nelectrical=Electrical\nellipse=Ellipse\nembedNotice=Paste this once at the end of the page\nenterGroup=Enter Group\nenterName=Enter Name\nenterPropertyName=Enter Property Name\nenterValue=Enter Value\nentityRelation=Entity Relation\nentityRelationshipDiagram=Entity Relationship Diagram\nerror=Error\nerrorDeletingFile=Error deleting file\nerrorLoadingFile=Error loading file\nerrorRenamingFile=Error renaming file\nerrorRenamingFileNotFound=Error renaming file. File was not found.\nerrorRenamingFileForbidden=Error renaming file. Insufficient access rights.\nerrorSavingDraft=Error saving draft\nerrorSavingFile=Error saving file\nerrorSavingFileUnknown=Error authorizing with Google\'s servers. Please refresh the page to re-attempt.\nerrorSavingFileForbidden=Error saving file. Insufficient access rights.\nerrorSavingFileNameConflict=Could not save diagram. Current page already contains file named \'{1}\'.\nerrorSavingFileNotFound=Error saving file. File was not found.\nerrorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.\nerrorSavingFileSessionTimeout=Your session has ended. Please <a target=\'_blank\' href=\'{1}\'>{2}</a> and return to this tab to try to save again.\nerrorSendingFeedback=Error sending feedback.\nerrorUpdatingPreview=Error updating preview.\nexit=Exit\nexitGroup=Exit Group\nexpand=Expand\nexport=Export\nexporting=Exporting\nexportAs=Export as\nexportOptionsDisabled=Export options disabled\nexportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.\nexternalChanges=External Changes\nextras=Extras\nfacebook=Facebook\nfailedToSaveTryReconnect=Failed to save, trying to reconnect\nfeatureRequest=Feature Request\nfeedback=Feedback\nfeedbackSent=Feedback successfully sent.\nfloorplans=Floorplans\nfile=File\nfileChangedOverwriteDialog=The file has been modified. Do you want to save the file and overwrite those changes?\nfileChangedSyncDialog=The file has been modified.\nfileChangedSync=The file has been modified. Click here to synchronize.\noverwrite=Overwrite\nsynchronize=Synchronize\nfilename=Filename\nfileExists=File already exists\nfileMovedToTrash=File was moved to trash\nfileNearlyFullSeeFaq=File nearly full, please see FAQ\nfileNotFound=File not found\nrepositoryNotFound=Repository not found\nfileNotFoundOrDenied=The file was not found. It does not exist or you do not have access.\nfileNotLoaded=File not loaded\nfileNotSaved=File not saved\nfileOpenLocation=How would you like to open these file(s)?\nfiletypeHtml=.html causes file to save as HTML with redirect to cloud URL\nfiletypePng=.png causes file to save as PNG with embedded data\nfiletypeSvg=.svg causes file to save as SVG with embedded data\nfileWillBeSavedInAppFolder={1} will be saved in the app folder.\nfill=Fill\nfillColor=Fill Color\nfilterCards=Filter Cards\nfind=Find\nfit=Fit\nfitContainer=Resize Container\nfitIntoContainer=Fit into Container\nfitPage=Fit Page\nfitPageWidth=Fit Page Width\nfitTo=Fit to\nfitToSheetsAcross=sheet(s) across\nfitToBy=by\nfitToSheetsDown=sheet(s) down\nfitTwoPages=Two Pages\nfitWindow=Fit Window\nflip=Flip\nflipH=Flip Horizontal\nflipV=Flip Vertical\nflowchart=Flowchart\nfolder=Folder\nfont=Font\nfontColor=Font Color\nfontFamily=Font Family\nfontSize=Font Size\nforbidden=You are not authorized to access this file\nformat=Format\nformatPanel=Format Panel\nformatted=Formatted\nformattedText=Formatted Text\nformatPng=PNG\nformatGif=GIF\nformatJpg=JPEG\nformatPdf=PDF\nformatSql=SQL\nformatSvg=SVG\nformatHtmlEmbedded=HTML\nformatSvgEmbedded=SVG (with XML)\nformatVsdx=VSDX\nformatVssx=VSSX\nformatXmlPlain=XML (Plain)\nformatXml=XML\nforum=Discussion/Help Forums\nfreehand=Freehand\nfromTemplate=From Template\nfromTemplateUrl=From Template URL\nfromText=From Text\nfromUrl=From URL\nfromThisPage=From this page\nfullscreen=Fullscreen\ngap=Gap\ngcp=GCP\ngeneral=General\ngetNotionChromeExtension=Get the Notion Chrome Extension\ngithub=GitHub\ngitlab=GitLab\ngliffy=Gliffy\nglobal=Global\ngoogleDocs=Google Docs\ngoogleDrive=Google Drive\ngoogleGadget=Google Gadget\ngooglePlus=Google+\ngoogleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:\ngoogleSlides=Google Slides\ngoogleSites=Google Sites\ngoogleSheets=Google Sheets\ngradient=Gradient\ngradientColor=Color\ngrid=Grid\ngridColor=Grid Color\ngridSize=Grid Size\ngroup=Group\nguides=Guides\nhateApp=I hate draw.io\nheading=Heading\nheight=Height\nhelp=Help\nhelpTranslate=Help us translate this application\nhide=Hide\nhideIt=Hide {1}\nhidden=Hidden\nhome=Home\nhorizontal=Horizontal\nhorizontalFlow=Horizontal Flow\nhorizontalTree=Horizontal Tree\nhowTranslate=How good is the translation in your language?\nhtml=HTML\nhtmlText=HTML Text\nid=ID\niframe=IFrame\nignore=Ignore\nimage=Image\nimageUrl=Image URL\nimages=Images\nimagePreviewError=This image couldn\'t be loaded for preview. Please check the URL.\nimageTooBig=Image too big\nimgur=Imgur\nimport=Import\nimportFrom=Import from\nincludeCopyOfMyDiagram=Include a copy of my diagram\nincreaseIndent=Increase Indent\ndecreaseIndent=Decrease Indent\ninsert=Insert\ninsertColumnBefore=Insert Column Left\ninsertColumnAfter=Insert Column Right\ninsertEllipse=Insert Ellipse\ninsertImage=Insert Image\ninsertHorizontalRule=Insert Horizontal Rule\ninsertLink=Insert Link\ninsertPage=Insert Page\ninsertRectangle=Insert Rectangle\ninsertRhombus=Insert Rhombus\ninsertRowBefore=Insert Row Above\ninsertRowAfter=Insert Row After\ninsertText=Insert Text\ninserting=Inserting\ninstallApp=Install App\ninvalidFilename=Diagram names must not contain the following characters: / | : ; { } < > & + ? = "\ninvalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.\ninvalidInput=Invalid input\ninvalidName=Invalid name\ninvalidOrMissingFile=Invalid or missing file\ninvalidPublicUrl=Invalid public URL\nisometric=Isometric\nios=iOS\nitalic=Italic\nkennedy=Kennedy\nkeyboardShortcuts=Keyboard Shortcuts\nlabels=Labels\nlayers=Layers\nlandscape=Landscape\nlanguage=Language\nleanMapping=Lean Mapping\nlastChange=Last change {1} ago\nlessThanAMinute=less than a minute\nlicensingError=Licensing Error\nlicenseHasExpired=The license for {1} has expired on {2}. Click here.\nlicenseRequired=This feature requires draw.io to be licensed.\nlicenseWillExpire=The license for {1} will expire on {2}. Click here.\nlineJumps=Line jumps\nlinkAccountRequired=If the diagram is not public a Google account is required to view the link.\nlinkText=Link Text\nlist=List\nminute=minute\nminutes=minutes\nhours=hours\ndays=days\nmonths=months\nyears=years\nrestartForChangeRequired=Changes will take effect after a restart of the application.\nlaneColor=Lanecolor\nlastModified=Last modified\nlayout=Layout\nleft=Left\nleftAlign=Left Align\nleftToRight=Left to right\nlibraryTooltip=Drag and drop shapes here or click + to insert. Double click to edit.\nlightbox=Lightbox\nline=Line\nlineend=Line end\nlineheight=Line Height\nlinestart=Line start\nlinewidth=Linewidth\nlink=Link\nlinks=Links\nloading=Loading\nlockUnlock=Lock/Unlock\nloggedOut=Logged Out\nlogIn=log in\nloveIt=I love {1}\nlucidchart=Lucidchart\nmaps=Maps\nmathematicalTypesetting=Mathematical Typesetting\nmakeCopy=Make a Copy\nmanual=Manual\nmerge=Merge\nmermaid=Mermaid\nmicrosoftOffice=Microsoft Office\nmicrosoftExcel=Microsoft Excel\nmicrosoftPowerPoint=Microsoft PowerPoint\nmicrosoftWord=Microsoft Word\nmiddle=Middle\nminimal=Minimal\nmisc=Misc\nmockups=Mockups\nmodificationDate=Modification date\nmodifiedBy=Modified by\nmore=More\nmoreResults=More Results\nmoreShapes=More Shapes\nmove=Move\nmoveToFolder=Move to Folder\nmoving=Moving\nmoveSelectionTo=Move selection to {1}\nname=Name\nnavigation=Navigation\nnetwork=Network\nnetworking=Networking\nnew=New\nnewLibrary=New Library\nnextPage=Next Page\nno=No\nnoPickFolder=No, pick folder\nnoAttachments=No attachments found\nnoColor=No Color\nnoFiles=No Files\nnoFileSelected=No file selected\nnoLibraries=No libraries found\nnoMoreResults=No more results\nnone=None\nnoOtherViewers=No other viewers\nnoPlugins=No plugins\nnoPreview=No preview\nnoResponse=No response from server\nnoResultsFor=No results for \'{1}\'\nnoRevisions=No revisions\nnoSearchResults=No search results found\nnoPageContentOrNotSaved=No anchors found on this page or it hasn\'t been saved yet\nnormal=Normal\nnorth=North\nnotADiagramFile=Not a diagram file\nnotALibraryFile=Not a library file\nnotAvailable=Not available\nnotAUtf8File=Not a UTF-8 file\nnotConnected=Not connected\nnote=Note\nnotion=Notion\nnotSatisfiedWithImport=Not satisfied with the import?\nnotUsingService=Not using {1}?\nnumberedList=Numbered list\noffline=Offline\nok=OK\noneDrive=OneDrive\nonline=Online\nopacity=Opacity\nopen=Open\nopenArrow=Open Arrow\nopenExistingDiagram=Open Existing Diagram\nopenFile=Open File\nopenFrom=Open from\nopenLibrary=Open Library\nopenLibraryFrom=Open Library from\nopenLink=Open Link\nopenInNewWindow=Open in New Window\nopenInThisWindow=Open in This Window\nopenIt=Open {1}\nopenRecent=Open Recent\nopenSupported=Supported formats are files saved from this software (.xml), .vsdx and .gliffy\noptions=Options\norganic=Organic\norgChart=Org Chart\northogonal=Orthogonal\notherViewer=other viewer\notherViewers=other viewers\noutline=Outline\noval=Oval\npage=Page\npageContent=Page Content\npageNotFound=Page not found\npageWithNumber=Page-{1}\npages=Pages\npageView=Page View\npageSetup=Page Setup\npageScale=Page Scale\npan=Pan\npanTooltip=Space+Drag to pan\npaperSize=Paper Size\npattern=Pattern\nparallels=Parallels\npaste=Paste\npasteData=Paste Data\npasteHere=Paste here\npasteSize=Paste Size\npasteStyle=Paste Style\nperimeter=Perimeter\npermissionAnyone=Anyone can edit\npermissionAuthor=Owner and admins can edit\npickFolder=Pick a folder\npickLibraryDialogTitle=Select Library\npublicDiagramUrl=Public URL of the diagram\nplaceholders=Placeholders\nplantUml=PlantUML\nplugins=Plugins\npluginUrl=Plugin URL\npluginWarning=The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n\nplusTooltip=Click to connect and clone (ctrl+click to clone, shift+click to connect). Drag to connect (ctrl+drag to clone).\nportrait=Portrait\nposition=Position\nposterPrint=Poster Print\npreferences=Preferences\npreview=Preview\npreviousPage=Previous Page\nprint=Print\nprintAllPages=Print All Pages\nprocEng=Proc. Eng.\nproject=Project\npriority=Priority\nproperties=Properties\npublish=Publish\nquickStart=Quick Start Video\nrack=Rack\nradial=Radial\nradialTree=Radial Tree\nreadOnly=Read-only\nreconnecting=Reconnecting\nrecentlyUpdated=Recently Updated\nrecentlyViewed=Recently Viewed\nrectangle=Rectangle\nredirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.\nrealtimeTimeout=It looks like you\'ve made a few changes while offline. We\'re sorry, these changes cannot be saved.\nredo=Redo\nrefresh=Refresh\nregularExpression=Regular Expression\nrelative=Relative\nrelativeUrlNotAllowed=Relative URL not allowed\nrememberMe=Remember me\nrememberThisSetting=Remember this setting\nremoveFormat=Clear Formatting\nremoveFromGroup=Remove from Group\nremoveIt=Remove {1}\nremoveWaypoint=Remove Waypoint\nrename=Rename\nrenamed=Renamed\nrenameIt=Rename {1}\nrenaming=Renaming\nreplace=Replace\nreplaceIt={1} already exists. Do you want to replace it?\nreplaceExistingDrawing=Replace existing drawing\nrequired=required\nreset=Reset\nresetView=Reset View\nresize=Resize\nresizeLargeImages=Do you want to resize large images to make the application run faster?\nretina=Retina\nresponsive=Responsive\nrestore=Restore\nrestoring=Restoring\nretryingIn=Retrying in {1} second(s)\nretryingLoad=Load failed. Retrying...\nretryingLogin=Login time out. Retrying...\nreverse=Reverse\nrevision=Revision\nrevisionHistory=Revision History\nrhombus=Rhombus\nright=Right\nrightAlign=Right Align\nrightToLeft=Right to left\nrotate=Rotate\nrotateTooltip=Click and drag to rotate, click to turn shape only by 90 degrees\nrotation=Rotation\nrounded=Rounded\nsave=Save\nsaveAndExit=Save & Exit\nsaveAs=Save as\nsaveAsXmlFile=Save as XML file?\nsaved=Saved\nsaveDiagramFirst=Please save the diagram first\nsaveDiagramsTo=Save diagrams to\nsaveLibrary403=Insufficient permissions to edit this library\nsaveLibrary500=There was an error while saving the library\nsaveLibraryReadOnly=Could not save library while read-only mode is active\nsaving=Saving\nscratchpad=Scratchpad\nscrollbars=Scrollbars\nsearch=Search\nsearchShapes=Search Shapes\nselectAll=Select All\nselectionOnly=Selection Only\nselectCard=Select Card\nselectEdges=Select Edges\nselectFile=Select File\nselectFolder=Select Folder\nselectFont=Select Font\nselectNone=Select None\nselectTemplate=Select Template\nselectVertices=Select Vertices\nsendBackward=Send Backward\nsendMessage=Send\nsendYourFeedback=Send your feedback\nserviceUnavailableOrBlocked=Service unavailable or blocked\nsessionExpired=Your session has expired. Please refresh the browser window.\nsessionTimeoutOnSave=Your session has timed out and you have been disconnected from the Google Drive. Press OK to login and save.\nsetAsDefaultStyle=Set as Default Style\nshadow=Shadow\nshape=Shape\nshapes=Shapes\nshare=Share\nshareCursor=Share Cursor\nshareLink=Link for shared editing\nsharingAvailable=Sharing available for Google Drive and OneDrive files.\nsharp=Sharp\nshow=Show\nshowStartScreen=Show Start Screen\nsidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.\nsigns=Signs\nsignOut=Sign out\nsimple=Simple\nsimpleArrow=Simple Arrow\nsimpleViewer=Simple Viewer\nsize=Size\nsketch=Sketch\nsnapToGrid=Snap to Grid\nsolid=Solid\nsourceSpacing=Source Spacing\nsouth=South\nsoftware=Software\nspace=Space\nspacing=Spacing\nspecialLink=Special Link\nstandard=Standard\nstartDrawing=Start drawing\nstopDrawing=Stop drawing\nstarting=Starting\nstraight=Straight\nstrikethrough=Strikethrough\nstrokeColor=Line Color\nstyle=Style\nsubscript=Subscript\nsummary=Summary\nsuperscript=Superscript\nsupport=Support\nswimlaneDiagram=Swimlane Diagram\nsysml=SysML\ntags=Tags\ntable=Table\ntables=Tables\ntakeOver=Take Over\ntargetSpacing=Target Spacing\ntemplate=Template\ntemplates=Templates\ntext=Text\ntextAlignment=Text Alignment\ntextOpacity=Text Opacity\ntheme=Theme\ntimeout=Timeout\ntitle=Title\nto=to\ntoBack=To Back\ntoFront=To Front\ntooLargeUseDownload=Too large, use download instead.\ntoolbar=Toolbar\ntooltips=Tooltips\ntop=Top\ntopAlign=Top Align\ntopLeft=Top Left\ntopRight=Top Right\ntransparent=Transparent\ntransparentBackground=Transparent Background\ntrello=Trello\ntryAgain=Try again\ntryOpeningViaThisPage=Try opening via this page\nturn=Rotate shape only by 90°\ntype=Type\ntwitter=Twitter\numl=UML\nunderline=Underline\nundo=Undo\nungroup=Ungroup\nunmerge=Unmerge\nunsavedChanges=Unsaved changes\nunsavedChangesClickHereToSave=Unsaved changes. Click here to save.\nuntitled=Untitled\nuntitledDiagram=Untitled Diagram\nuntitledLayer=Untitled Layer\nuntitledLibrary=Untitled Library\nunknownError=Unknown error\nupdateFile=Update {1}\nupdatingDocument=Updating Document. Please wait...\nupdatingPreview=Updating Preview. Please wait...\nupdatingSelection=Updating Selection. Please wait...\nupload=Upload\nurl=URL\nuseOffline=Use Offline\nuseRootFolder=Use root folder?\nuserManual=User Manual\nvertical=Vertical\nverticalFlow=Vertical Flow\nverticalTree=Vertical Tree\nview=View\nviewerSettings=Viewer Settings\nviewUrl=Link to view: {1}\nvoiceAssistant=Voice Assistant (beta)\nwarning=Warning\nwaypoints=Waypoints\nwest=West\nwidth=Width\nwiki=Wiki\nwordWrap=Word Wrap\nwritingDirection=Writing Direction\nyes=Yes\nyourEmailAddress=Your email address\nzoom=Zoom\nzoomIn=Zoom In\nzoomOut=Zoom Out\nbasic=Basic\nbusinessprocess=Business Processes\ncharts=Charts\nengineering=Engineering\nflowcharts=Flowcharts\ngmdl=Material Design\nmindmaps=Mindmaps\nmockups=Mockups\nnetworkdiagrams=Network Diagrams\nnothingIsSelected=Nothing is selected\nother=Other\nsoftwaredesign=Software Design\nvenndiagrams=Venn Diagrams\nwebEmailOrOther=Web, email or any other internet address\nwebLink=Web Link\nwireframes=Wireframes\nproperty=Property\nvalue=Value\nshowMore=Show More\nshowLess=Show Less\nmyDiagrams=My Diagrams\nallDiagrams=All Diagrams\nrecentlyUsed=Recently used\nlistView=List view\ngridView=Grid view\nresultsFor=Results for \'{1}\'\noneDriveCharsNotAllowed=The following characters are not allowed: ~ " # % * : < > ? / { | }\noneDriveInvalidDeviceName=The specified device name is invalid\nofficeNotLoggedOD=You are not logged in to OneDrive. Please open draw.io task pane and login first.\nofficeSelectSingleDiag=Please select a single draw.io diagram only without other contents.\nofficeSelectDiag=Please select a draw.io diagram.\nofficeCannotFindDiagram=Cannot find a draw.io diagram in the selection\nnoDiagrams=No diagrams found\nauthFailed=Authentication failed\nofficeFailedAuthMsg=Unable to successfully authenticate user or authorize application.\nconvertingDiagramFailed=Converting diagram failed\nofficeCopyImgErrMsg=Due to some limitations in the host application, the image could not be inserted. Please manually copy the image then paste it to the document.\ninsertingImageFailed=Inserting image failed\nofficeCopyImgInst=Instructions: Right-click the image below. Select "Copy image" from the context menu. Then, in the document, right-click and select "Paste" from the context menu.\nfolderEmpty=Folder is empty\nrecent=Recent\nsharedWithMe=Shared With Me\nsharepointSites=Sharepoint Sites\nerrorFetchingFolder=Error fetching folder items\nerrorAuthOD=Error authenticating to OneDrive\nofficeMainHeader=Adds draw.io diagrams to your document.\nofficeStepsHeader=This add-in performs the following steps:\nofficeStep1=Connects to Microsoft OneDrive, Google Drive or your device.\nofficeStep2=Select a draw.io diagram.\nofficeStep3=Insert the diagram into the document.\nofficeAuthPopupInfo=Please complete the authentication in the pop-up window.\nofficeSelDiag=Select draw.io Diagram:\nfiles=Files\nshared=Shared\nsharepoint=Sharepoint\nofficeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.\nofficeClickToEdit=Click icon to start editing:\npasteDiagram=Paste draw.io diagram here\nconnectOD=Connect to OneDrive\nselectChildren=Select Children\nselectSiblings=Select Siblings\nselectParent=Select Parent\nselectDescendants=Select Descendants\nlastSaved=Last saved {1} ago\nresolve=Resolve\nreopen=Re-open\nshowResolved=Show Resolved\nreply=Reply\nobjectNotFound=Object not found\nreOpened=Re-opened\nmarkedAsResolved=Marked as resolved\nnoCommentsFound=No comments found\ncomments=Comments\ntimeAgo={1} ago\nconfluenceCloud=Confluence Cloud\nlibraries=Libraries\nconfAnchor=Confluence Page Anchor\nconfTimeout=The connection has timed out\nconfSrvTakeTooLong=The server at {1} is taking too long to respond.\nconfCannotInsertNew=Cannot insert draw.io diagram to a new Confluence page\nconfSaveTry=Please save the page and try again.\nconfCannotGetID=Unable to determine page ID\nconfContactAdmin=Please contact your Confluence administrator.\nreadErr=Read Error\neditingErr=Editing Error\nconfExtEditNotPossible=This diagram cannot be edited externally. Please try editing it while editing the page\nconfEditedExt=Diagram/Page edited externally\ndiagNotFound=Diagram Not Found\nconfEditedExtRefresh=Diagram/Page is edited externally. Please refresh the page.\nconfCannotEditDraftDelOrExt=Cannot edit diagrams in a draft page, diagram is deleted from the page, or diagram is edited externally. Please check the page.\nretBack=Return back\nconfDiagNotPublished=The diagram does not belong to a published page\ncreatedByDraw=Created by draw.io\nfilenameShort=Filename too short\ninvalidChars=Invalid characters\nalreadyExst={1} already exists\ndraftReadErr=Draft Read Error\ndiagCantLoad=Diagram cannot be loaded\ndraftWriteErr=Draft Write Error\ndraftCantCreate=Draft could not be created\nconfDuplName=Duplicate diagram name detected. Please pick another name.\nconfSessionExpired=Looks like your session expired. Log in again to keep working.\nlogin=Login\ndrawPrev=draw.io preview\ndrawDiag=draw.io diagram\ninvalidCallFnNotFound=Invalid Call: {1} not found\ninvalidCallErrOccured=Invalid Call: An error occurred, {1}\nanonymous=Anonymous\nconfGotoPage=Go to containing page\nshowComments=Show Comments\nconfError=Error: {1}\ngliffyImport=Gliffy Import\ngliffyImportInst1=Click the "Start Import" button to import all Gliffy diagrams to draw.io.\ngliffyImportInst2=Please note that the import procedure will take some time and the browser window must remain open until the import is completed.\nstartImport=Start Import\ndrawConfig=draw.io Configuration\ncustomLib=Custom Libraries\ncustomTemp=Custom Templates\npageIdsExp=Page IDs Export\ndrawReindex=draw.io re-indexing (beta)\nworking=Working\ndrawConfigNotFoundInst=draw.io Configuration Space (DRAWIOCONFIG) does not exist. This space is needed to store draw.io configuration files and custom libraries/templates.\ncreateConfSp=Create Config Space\nunexpErrRefresh=Unexpected error, please refresh the page and try again.\nconfigJSONInst=Write draw.io JSON configuration in the editor below then click save. If you need help, please refer to\nthisPage=this page\ncurCustLib=Current Custom Libraries\nlibName=Library Name\naction=Action\ndrawConfID=draw.io Config ID\naddLibInst=Click the "Add Library" button to upload a new library.\naddLib=Add Library\ncustomTempInst1=Custom templates are draw.io diagrams saved in children pages of\ncustomTempInst2=For more details, please refer to\ntempsPage=Templates page\npageIdsExpInst1=Select export target, then click the "Start Export" button to export all pages IDs.\npageIdsExpInst2=Please note that the export procedure will take some time and the browser window must remain open until the export is completed.\nstartExp=Start Export\nrefreshDrawIndex=Refresh draw.io Diagrams Index\nreindexInst1=Click the "Start Indexing" button to refresh draw.io diagrams index.\nreindexInst2=Please note that the indexing procedure will take some time and the browser window must remain open until the indexing is completed.\nstartIndexing=Start Indexing\nconfAPageFoundFetch=Page "{1}" found. Fetching\nconfAAllDiagDone=All {1} diagrams processed. Process finished.\nconfAStartedProcessing=Started processing page "{1}"\nconfAAllDiagInPageDone=All {1} diagrams in page "{2}" processed successfully.\nconfAPartialDiagDone={1} out of {2} {3} diagrams in page "{4}" processed successfully.\nconfAUpdatePageFailed=Updating page "{1}" failed.\nconfANoDiagFoundInPage=No {1} diagrams found in page "{2}".\nconfAFetchPageFailed=Fetching the page failed.\nconfANoDiagFound=No {1} diagrams found. Process finished.\nconfASearchFailed=Searching for {1} diagrams failed. Please try again later.\nconfAGliffyDiagFound={2} diagram "{1}" found. Importing\nconfAGliffyDiagImported={2} diagram "{1}" imported successfully.\nconfASavingImpGliffyFailed=Saving imported {2} diagram "{1}" failed.\nconfAImportedFromByDraw=Imported from "{1}" by draw.io\nconfAImportGliffyFailed=Importing {2} diagram "{1}" failed.\nconfAFetchGliffyFailed=Fetching {2} diagram "{1}" failed.\nconfACheckBrokenDiagLnk=Checking for broken diagrams links.\nconfADelDiagLinkOf=Deleting diagram link of "{1}"\nconfADupLnk=(duplicate link)\nconfADelDiagLnkFailed=Deleting diagram link of "{1}" failed.\nconfAUnexpErrProcessPage=Unexpected error during processing the page with id: {1}\nconfADiagFoundIndex=Diagram "{1}" found. Indexing\nconfADiagIndexSucc=Diagram "{1}" indexed successfully.\nconfAIndexDiagFailed=Indexing diagram "{1}" failed.\nconfASkipDiagOtherPage=Skipped "{1}" as it belongs to another page!\nconfADiagUptoDate=Diagram "{1}" is up to date.\nconfACheckPagesWDraw=Checking pages having draw.io diagrams.\nconfAErrOccured=An error occurred!\nsavedSucc=Saved successfully\nconfASaveFailedErr=Saving Failed (Unexpected Error)\ncharacter=Character\nconfAConfPageDesc=This page contains draw.io configuration file (configuration.json) as attachment\nconfALibPageDesc=This page contains draw.io custom libraries as attachments\nconfATempPageDesc=This page contains draw.io custom templates as attachments\nworking=Working\nconfAConfSpaceDesc=This space is used to store draw.io configuration files and custom libraries/templates\nconfANoCustLib=No Custom Libraries\ndelFailed=Delete failed!\nshowID=Show ID\nconfAIncorrectLibFileType=Incorrect file type. Libraries should be XML files.\nuploading=Uploading\nconfALibExist=This library already exists\nconfAUploadSucc=Uploaded successfully\nconfAUploadFailErr=Upload Failed (Unexpected Error)\nhiResPreview=High Res Preview\nofficeNotLoggedGD=You are not logged in to Google Drive. Please open draw.io task pane and login first.\nofficePopupInfo=Please complete the process in the pop-up window.\npickODFile=Pick OneDrive File\ncreateODFile=Create OneDrive File\npickGDriveFile=Pick Google Drive File\ncreateGDriveFile=Create Google Drive File\npickDeviceFile=Pick Device File\nvsdNoConfig="vsdurl" is not configured\nruler=Ruler\nunits=Units\npoints=Points\ninches=Inches\nmillimeters=Millimeters\nconfEditDraftDelOrExt=This diagram is in a draft page, is deleted from the page, or is edited externally. It will be saved as a new attachment version and may not be reflected in the page.\nconfDiagEditedExt=Diagram is edited in another session. It will be saved as a new attachment version but the page will show other session\'s modifications.\nmacroNotFound=Macro Not Found\nconfAInvalidPageIdsFormat=Incorrect Page IDs file format\nconfACollectingCurPages=Collecting current pages\nconfABuildingPagesMap=Building pages mapping\nconfAProcessDrawDiag=Started processing imported draw.io diagrams\nconfAProcessDrawDiagDone=Finished processing imported draw.io diagrams\nconfAProcessImpPages=Started processing imported pages\nconfAErrPrcsDiagInPage=Error processing draw.io diagrams in page "{1}"\nconfAPrcsDiagInPage=Processing draw.io diagrams in page "{1}"\nconfAImpDiagram=Importing diagram "{1}"\nconfAImpDiagramFailed=Importing diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported.\nconfAImpDiagramError=Error importing diagram "{1}". Cannot fetch or save the diagram. Cannot fix this diagram links.\nconfAUpdateDgrmCCFailed=Updating link to diagram "{1}" failed.\nconfImpDiagramSuccess=Updating diagram "{1}" done successfully.\nconfANoLnksInDrgm=No links to update in: {1}\nconfAUpdateLnkToPg=Updated link to page: "{1}" in diagram: "{2}"\nconfAUpdateLBLnkToPg=Updated lightbox link to page: "{1}" in diagram: "{2}"\nconfAUpdateLnkBase=Updated base URL from: "{1}" to: "{2}" in diagram: "{3}"\nconfAPageIdsImpDone=Page IDs Import finished\nconfAPrcsMacrosInPage=Processing draw.io macros in page "{1}"\nconfAErrFetchPage=Error fetching page "{1}"\nconfAFixingMacro=Fixing macro of diagram "{1}"\nconfAErrReadingExpFile=Error reading export file\nconfAPrcsDiagInPageDone=Processing draw.io diagrams in page "{1}" finished\nconfAFixingMacroSkipped=Fixing macro of diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported.\npageIdsExpTrg=Export target\nconfALucidDiagImgImported={2} diagram "{1}" image extracted successfully\nconfASavingLucidDiagImgFailed=Extracting {2} diagram "{1}" image failed\nconfGetInfoFailed=Fetching file info from {1} failed.\nconfCheckCacheFailed=Cannot get cached file info.\nconfReadFileErr=Cannot read "{1}" file from {2}.\nconfSaveCacheFailed=Unexpected error. Cannot save cached file\norgChartType=Org Chart Type\nlinear=Linear\nhanger2=Hanger 2\nhanger4=Hanger 4\nfishbone1=Fishbone 1\nfishbone2=Fishbone 2\n1ColumnLeft=Single Column Left\n1ColumnRight=Single Column Right\nsmart=Smart\nparentChildSpacing=Parent Child Spacing\nsiblingSpacing=Sibling Spacing\nconfNoPermErr=Sorry, you don\'t have enough permissions to view this embedded diagram from page {1}\ncopyAsImage=Copy as Image\nlucidImport=Lucidchart Import\nlucidImportInst1=Click the "Start Import" button to import all Lucidchart diagrams.\ninstallFirst=Please install {1} first\ndrawioChromeExt=draw.io Chrome Extension\nloginFirstThen=Please login to {1} first, then {2}\nerrFetchDocList=Error: Couldn\'t fetch documents list\nbuiltinPlugins=Built-in Plugins\nextPlugins=External Plugins\nbackupFound=Backup file found\nchromeOnly=This feature only works in Google Chrome\nmsgDeleted=This message has been deleted\nconfAErrFetchDrawList=Error fetching diagrams list. Some diagrams are skipped.\nconfAErrCheckDrawDiag=Cannot check diagram {1}\nconfAErrFetchPageList=Error fetching pages list\nconfADiagImportIncom={1} diagram "{2}" is imported partially and may have missing shapes\ninvalidSel=Invalid selection\ndiagNameEmptyErr=Diagram name cannot be empty\nopenDiagram=Open Diagram\nnewDiagram=New diagram\neditable=Editable\nconfAReimportStarted=Re-import {1} diagrams started...\nspaceFilter=Filter by spaces\ncurViewState=Current Viewer State\npageLayers=Page and Layers\ncustomize=Customize\nfirstPage=First Page (All Layers)\ncurEditorState=Current Editor State\nnoAnchorsFound=No anchors found\nattachment=Attachment\ncurDiagram=Current Diagram\nrecentDiags=Recent Diagrams\ncsvImport=CSV Import\nchooseFile=Choose a file...\nchoose=Choose\ngdriveFname=Google Drive filename\nwidthOfViewer=Width of the viewer (px)\nheightOfViewer=Height of the viewer (px)\nautoSetViewerSize=Automatically set the size of the viewer\nthumbnail=Thumbnail\nprevInDraw=Preview in draw.io\nonedriveFname=OneDrive filename\ndiagFname=Diagram filename\ndiagUrl=Diagram URL\nshowDiag=Show Diagram\ndiagPreview=Diagram Preview\ncsvFileUrl=CSV File URL\ngenerate=Generate\nselectDiag2Insert=Please select a diagram to insert it.\nerrShowingDiag=Unexpected error. Cannot show diagram\nnoRecentDiags=No recent diagrams found\nfetchingRecentFailed=Failed to fetch recent diagrams\nuseSrch2FindDiags=Use the search box to find draw.io diagrams\ncantReadChckPerms=Cannot read the specified diagram. Please check you have read permission on that file.\ncantFetchChckPerms=Cannot fetch diagram info. Please check you have read permission on that file.\nsearchFailed=Searching failed. Please try again later.\nplsTypeStr=Please type a search string.\nunsupportedFileChckUrl=Unsupported file. Please check the specified URL\ndiagNotFoundChckUrl=Diagram not found or cannot be accessed. Please check the specified URL\ncsvNotFoundChckUrl=CSV file not found or cannot be accessed. Please check the specified URL\ncantReadUpload=Cannot read the uploaded diagram\nselect=Select\nerrCantGetIdType=Unexpected Error: Cannot get content id or type.\nerrGAuthWinBlocked=Error: Google Authentication window blocked\nauthDrawAccess=Authorize draw.io to access {1}\nconnTimeout=The connection has timed out\nerrAuthSrvc=Error authenticating to {1}\nplsSelectFile=Please select a file\nmustBgtZ={1} must be greater than zero\ncantLoadPrev=Cannot load file preview.\nerrAccessFile=Error: Access Denied. You do not have permission to access "{1}".\nnoPrevAvail=No preview is available.\npersonalAccNotSup=Personal accounts are not supported.\nerrSavingTryLater=Error occurred during saving, please try again later.\nplsEnterFld=Please enter {1}\ninvalidDiagUrl=Invalid Diagram URL\nunsupportedVsdx=Unsupported vsdx file\nunsupportedImg=Unsupported image file\nunsupportedFormat=Unsupported file format\nplsSelectSingleFile=Please select a single file only\nattCorrupt=Attachment file "{1}" is corrupted\nloadAttFailed=Failed to load attachment "{1}"\nembedDrawDiag=Embed draw.io Diagram\naddDiagram=Add Diagram\nembedDiagram=Embed Diagram\neditOwningPg=Edit owning page\ndeepIndexing=Deep Indexing (Index diagrams that aren\'t used in any page also)\nconfADeepIndexStarted=Deep Indexing Started\nconfADeepIndexDone=Deep Indexing Done\nofficeNoDiagramsSelected=No diagrams found in the selection\nofficeNoDiagramsInDoc=No diagrams found in the document\nofficeNotSupported=This feature is not supported in this host application\nsomeImagesFailed={1} out of {2} failed due to the following errors\nimportingNoUsedDiagrams=Importing {1} Diagrams not used in pages\nimportingDrafts=Importing {1} Diagrams in drafts\nprocessingDrafts=Processing drafts\nupdatingDrafts=Updating drafts\nupdateDrafts=Update drafts\nnotifications=Notifications\ndrawioImp=draw.io Import\nconfALibsImp=Importing draw.io Libraries\nconfALibsImpFailed=Importing {1} library failed\ncontributors=Contributors\ndrawDiagrams=draw.io Diagrams\nerrFileNotFoundOrNoPer=Error: Access Denied. File not found or you do not have permission to access "{1}" on {2}.\nconfACheckPagesWEmbed=Checking pages having embedded draw.io diagrams.\nconfADelBrokenEmbedDiagLnk=Removing broken embedded diagram links\nreplaceWith=Replace with\nreplaceAll=Replace All\nconfASkipDiagModified=Skipped "{1}" as it was modified after initial import\nreplFind=Replace/Find\nmatchesRepl={1} matches replaced\ndraftErrDataLoss=An error occurred while reading the draft file. The diagram cannot be edited now to prevent any possible data loss. Please try again later or contact support.\nibm=IBM\nlinkToDiagramHint=Add a link to this diagram. The diagram can only be edited from the page that owns it.\nlinkToDiagram=Link to Diagram\nchangedBy=Changed By\nlastModifiedOn=Last modified on\nsearchResults=Search Results\nshowAllTemps=Show all templates\nnotionToken=Notion Token\nselectDB=Select Database\nnoDBs=No Databases\ndiagramEdited={1} diagram "{2}" edited\nconfDraftPermissionErr=Draft cannot be written. Do you have attachment write/read permission on this page?\nconfDraftTooBigErr=Draft size is too large. Pease check "Attachment Maximum Size" of "Attachment Settings" in Confluence Configuration?\nowner=Owner\nrepository=Repository\nbranch=Branch\nmeters=Meters\nteamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)\ncontactOwner=Contact Owner\nviewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.\nwebsite=Website\ncheck4Updates=Check for updates\nattWriteFailedRetry={1}: Attachment write failed, trying again in {2} seconds...\nconfPartialPageList=We couldn\'t fetch all pages due to an error in Confluence. Continuing using {1} pages only.\nspellCheck=Spell checker\nnoChange=No Change\nlblToSvg=Convert labels to SVG\ntxtSettings=Text Settings\nLinksLost=Links will be lost\narcSize=Arc Size\neditConnectionPoints=Edit Connection Points\nnotInOffline=Not supported while offline\nnotInDesktop=Not supported in Desktop App\nconfConfigSpaceArchived=draw.io Configuration space (DRAWIOCONFIG) is archived. Please restore it first.\nconfACleanOldVerStarted=Cleaning old diagram draft versions started\nconfACleanOldVerDone=Cleaning old diagram draft versions finished\nconfACleaningFile=Cleaning diagram draft "{1}" old versions\nconfAFileCleaned=Cleaning diagram draft "{1}" done\nconfAFileCleanFailed=Cleaning diagram draft "{1}" failed\nconfACleanOnly=Clean Diagram Drafts Only\nbrush=Brush\n');Graph.prototype.defaultThemes["default-style2"]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="default"/><add as="strokeColor" value="default"/><add as="fontColor" value="default"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="default"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="default"/><add as="fontColor" value="default"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="edgeLabel" extend="text"><add as="labelBackgroundColor" value="default"/><add as="fontSize" value="11"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="default"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="default"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="default"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="default"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add></mxStylesheet>').documentElement;
+"4px";document.body.style.backgroundColor="transparent";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";I.style.visibility="hidden";F.style.visibility="hidden";G.style.display="none"}"1"==urlParams.prefetchFonts&&m.editor.loadFonts()}}};(function(){var b=!1;"min"!=uiTheme||b||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),b=!0);var c=EditorUi.initTheme;EditorUi.initTheme=function(){c.apply(this,arguments);"min"!=uiTheme||b||(this.initMinimalTheme(),b=!0)}})();DrawioComment=function(b,c,e,f,n,l,q){this.file=b;this.id=c;this.content=e;this.modifiedDate=f;this.createdDate=n;this.isResolved=l;this.user=q;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,c,e,f,n){c()};DrawioComment.prototype.editComment=function(b,c,e){c()};DrawioComment.prototype.deleteComment=function(b,c){b()};DrawioUser=function(b,c,e,f,n){this.id=b;this.email=c;this.displayName=e;this.pictureUrl=f;this.locale=n};mxResources.parse('# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*\n# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE\nabout=About\naboutDrawio=About draw.io\naccessDenied=Access Denied\naction=Action\nactualSize=Actual Size\nadd=Add\naddAccount=Add account\naddedFile=Added {1}\naddImages=Add Images\naddImageUrl=Add Image URL\naddLayer=Add Layer\naddProperty=Add Property\naddress=Address\naddToExistingDrawing=Add to Existing Drawing\naddWaypoint=Add Waypoint\nadjustTo=Adjust to\nadvanced=Advanced\nalign=Align\nalignment=Alignment\nallChangesLost=All changes will be lost!\nallPages=All Pages\nallProjects=All Projects\nallSpaces=All Spaces\nallTags=All Tags\nanchor=Anchor\nandroid=Android\nangle=Angle\narc=Arc\nareYouSure=Are you sure?\nensureDataSaved=Please ensure your data is saved before closing.\nallChangesSaved=All changes saved\nallChangesSavedInDrive=All changes saved in Drive\nallowPopups=Allow pop-ups to avoid this dialog.\nallowRelativeUrl=Allow relative URL\nalreadyConnected=Nodes already connected\napply=Apply\narchiMate21=ArchiMate 2.1\narrange=Arrange\narrow=Arrow\narrows=Arrows\nasNew=As New\natlas=Atlas\nauthor=Author\nauthorizationRequired=Authorization required\nauthorizeThisAppIn=Authorize this app in {1}:\nauthorize=Authorize\nauthorizing=Authorizing\nautomatic=Automatic\nautosave=Autosave\nautosize=Autosize\nattachments=Attachments\naws=AWS\naws3d=AWS 3D\nazure=Azure\nback=Back\nbackground=Background\nbackgroundColor=Background Color\nbackgroundImage=Background Image\nbasic=Basic\nbeta=beta\nblankDrawing=Blank Drawing\nblankDiagram=Blank Diagram\nblock=Block\nblockquote=Blockquote\nblog=Blog\nbold=Bold\nbootstrap=Bootstrap\nborder=Border\nborderColor=Border Color\nborderWidth=Border Width\nbottom=Bottom\nbottomAlign=Bottom Align\nbottomLeft=Bottom Left\nbottomRight=Bottom Right\nbpmn=BPMN\nbringForward=Bring Forward\nbrowser=Browser\nbulletedList=Bulleted List\nbusiness=Business\nbusy=Operation in progress\ncabinets=Cabinets\ncancel=Cancel\ncenter=Center\ncannotLoad=Load attempts failed. Please try again later.\ncannotLogin=Log in attempts failed. Please try again later.\ncannotOpenFile=Cannot open file\nchange=Change\nchangeOrientation=Change Orientation\nchangeUser=Change user\nchangeStorage=Change storage\nchangesNotSaved=Changes have not been saved\nclassDiagram=Class Diagram\nuserJoined={1} has joined\nuserLeft={1} has left\nchatWindowTitle=Chat\nchooseAnOption=Choose an option\nchromeApp=Chrome App\ncollaborativeEditingNotice=Important Notice for Collaborative Editing\ncompare=Compare\ncompressed=Compressed\ncommitMessage=Commit Message\nconfigLinkWarn=This link configures draw.io. Only click OK if you trust whoever gave you it!\nconfigLinkConfirm=Click OK to configure and restart draw.io.\ncontainer=Container\ncsv=CSV\ndark=Dark\ndiagramXmlDesc=XML File\ndiagramHtmlDesc=HTML File\ndiagramPngDesc=Editable Bitmap Image\ndiagramSvgDesc=Editable Vector Image\ndidYouMeanToExportToPdf=Did you mean to export to PDF?\ndraftFound=A draft for \'{1}\' has been found. Load it into the editor or discard it to continue.\ndraftRevisionMismatch=There is a different version of this diagram on a shared draft of this page. Please edit the diagram from the draft to ensure you are working with the latest version.\nselectDraft=Select a draft to continue editing:\ndragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?\ndropboxCharsNotAllowed=The following characters are not allowed: / : ? * " |\ncheck=Check\nchecksum=Checksum\ncircle=Circle\ncisco=Cisco\nclassic=Classic\nclearDefaultStyle=Clear Default Style\nclearWaypoints=Clear Waypoints\nclipart=Clipart\nclose=Close\nclosingFile=Closing file\nrealtimeCollaboration=Real-Time Collaboration\ncollaborator=Collaborator\ncollaborators=Collaborators\ncollapse=Collapse\ncollapseExpand=Collapse/Expand\ncollapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size\ncollapsible=Collapsible\ncomic=Comic\ncomment=Comment\ncommentsNotes=Comments/Notes\ncompress=Compress\nconfiguration=Configuration\nconnect=Connect\nconnecting=Connecting\nconnectWithDrive=Connect with Google Drive\nconnection=Connection\nconnectionArrows=Connection Arrows\nconnectionPoints=Connection Points\nconstrainProportions=Constrain Proportions\ncontainsValidationErrors=Contains validation errors\ncopiedToClipboard=Copied to clipboard\ncopy=Copy\ncopyConnect=Copy on connect\ncopyCreated=A copy of the file was created.\ncopyData=Copy Data\ncopyOf=Copy of {1}\ncopyOfDrawing=Copy of Drawing\ncopySize=Copy Size\ncopyStyle=Copy Style\ncreate=Create\ncreateNewDiagram=Create New Diagram\ncreateRevision=Create Revision\ncreateShape=Create Shape\ncrop=Crop\ncurved=Curved\ncustom=Custom\ncurrent=Current\ncurrentPage=Current page\ncut=Cut\ndashed=Dashed\ndecideLater=Decide later\ndefault=Default\ndelete=Delete\ndeleteColumn=Delete Column\ndeleteLibrary401=Insufficient permissions to delete this library\ndeleteLibrary404=Selected library could not be found\ndeleteLibrary500=Error deleting library\ndeleteLibraryConfirm=You are about to permanently delete this library. Are you sure you want to do this?\ndeleteRow=Delete Row\ndescription=Description\ndevice=Device\ndiagram=Diagram\ndiagramContent=Diagram Content\ndiagramLocked=Diagram has been locked to prevent further data loss.\ndiagramLockedBySince=The diagram is locked by {1} since {2} ago\ndiagramName=Diagram Name\ndiagramIsPublic=Diagram is public\ndiagramIsNotPublic=Diagram is not public\ndiamond=Diamond\ndiamondThin=Diamond (thin)\ndidYouKnow=Did you know...\ndirection=Direction\ndiscard=Discard\ndiscardChangesAndReconnect=Discard Changes and Reconnect\ngoogleDriveMissingClickHere=Google Drive missing? Click here!\ndiscardChanges=Discard Changes\ndisconnected=Disconnected\ndistribute=Distribute\ndone=Done\ndoNotShowAgain=Do not show again\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Get Desktop\ndownloadAs=Download as\nclickHereToSave=Click here to save.\ndpi=DPI\ndraftDiscarded=Draft discarded\ndraftSaved=Draft saved\ndragElementsHere=Drag elements here\ndragImagesHere=Drag images or URLs here\ndragUrlsHere=Drag URLs here\ndraw.io=draw.io\ndrawing=Drawing{1}\ndrawingEmpty=Drawing is empty\ndrawingTooLarge=Drawing is too large\ndrawioForWork=Draw.io for GSuite\ndropbox=Dropbox\nduplicate=Duplicate\nduplicateIt=Duplicate {1}\ndivider=Divider\ndx=Dx\ndy=Dy\neast=East\nedit=Edit\neditData=Edit Data\neditDiagram=Edit Diagram\neditGeometry=Edit Geometry\neditImage=Edit Image\neditImageUrl=Edit Image URL\neditLink=Edit Link\neditShape=Edit Shape\neditStyle=Edit Style\neditText=Edit Text\neditTooltip=Edit Tooltip\nglass=Glass\ngoogleImages=Google Images\nimageSearch=Image Search\neip=EIP\nembed=Embed\nembedFonts=Embed Fonts\nembedImages=Embed Images\nmainEmbedNotice=Paste this into the page\nelectrical=Electrical\nellipse=Ellipse\nembedNotice=Paste this once at the end of the page\nenterGroup=Enter Group\nenterName=Enter Name\nenterPropertyName=Enter Property Name\nenterValue=Enter Value\nentityRelation=Entity Relation\nentityRelationshipDiagram=Entity Relationship Diagram\nerror=Error\nerrorDeletingFile=Error deleting file\nerrorLoadingFile=Error loading file\nerrorRenamingFile=Error renaming file\nerrorRenamingFileNotFound=Error renaming file. File was not found.\nerrorRenamingFileForbidden=Error renaming file. Insufficient access rights.\nerrorSavingDraft=Error saving draft\nerrorSavingFile=Error saving file\nerrorSavingFileUnknown=Error authorizing with Google\'s servers. Please refresh the page to re-attempt.\nerrorSavingFileForbidden=Error saving file. Insufficient access rights.\nerrorSavingFileNameConflict=Could not save diagram. Current page already contains file named \'{1}\'.\nerrorSavingFileNotFound=Error saving file. File was not found.\nerrorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.\nerrorSavingFileSessionTimeout=Your session has ended. Please <a target=\'_blank\' href=\'{1}\'>{2}</a> and return to this tab to try to save again.\nerrorSendingFeedback=Error sending feedback.\nerrorUpdatingPreview=Error updating preview.\nexit=Exit\nexitGroup=Exit Group\nexpand=Expand\nexport=Export\nexporting=Exporting\nexportAs=Export as\nexportOptionsDisabled=Export options disabled\nexportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.\nexternalChanges=External Changes\nextras=Extras\nfacebook=Facebook\nfailedToSaveTryReconnect=Failed to save, trying to reconnect\nfeatureRequest=Feature Request\nfeedback=Feedback\nfeedbackSent=Feedback successfully sent.\nfloorplans=Floorplans\nfile=File\nfileChangedOverwriteDialog=The file has been modified. Do you want to save the file and overwrite those changes?\nfileChangedSyncDialog=The file has been modified.\nfileChangedSync=The file has been modified. Click here to synchronize.\noverwrite=Overwrite\nsynchronize=Synchronize\nfilename=Filename\nfileExists=File already exists\nfileMovedToTrash=File was moved to trash\nfileNearlyFullSeeFaq=File nearly full, please see FAQ\nfileNotFound=File not found\nrepositoryNotFound=Repository not found\nfileNotFoundOrDenied=The file was not found. It does not exist or you do not have access.\nfileNotLoaded=File not loaded\nfileNotSaved=File not saved\nfileOpenLocation=How would you like to open these file(s)?\nfiletypeHtml=.html causes file to save as HTML with redirect to cloud URL\nfiletypePng=.png causes file to save as PNG with embedded data\nfiletypeSvg=.svg causes file to save as SVG with embedded data\nfileWillBeSavedInAppFolder={1} will be saved in the app folder.\nfill=Fill\nfillColor=Fill Color\nfilterCards=Filter Cards\nfind=Find\nfit=Fit\nfitContainer=Resize Container\nfitIntoContainer=Fit into Container\nfitPage=Fit Page\nfitPageWidth=Fit Page Width\nfitTo=Fit to\nfitToSheetsAcross=sheet(s) across\nfitToBy=by\nfitToSheetsDown=sheet(s) down\nfitTwoPages=Two Pages\nfitWindow=Fit Window\nflip=Flip\nflipH=Flip Horizontal\nflipV=Flip Vertical\nflowchart=Flowchart\nfolder=Folder\nfont=Font\nfontColor=Font Color\nfontFamily=Font Family\nfontSize=Font Size\nforbidden=You are not authorized to access this file\nformat=Format\nformatPanel=Format Panel\nformatted=Formatted\nformattedText=Formatted Text\nformatPng=PNG\nformatGif=GIF\nformatJpg=JPEG\nformatPdf=PDF\nformatSql=SQL\nformatSvg=SVG\nformatHtmlEmbedded=HTML\nformatSvgEmbedded=SVG (with XML)\nformatVsdx=VSDX\nformatVssx=VSSX\nformatXmlPlain=XML (Plain)\nformatXml=XML\nforum=Discussion/Help Forums\nfreehand=Freehand\nfromTemplate=From Template\nfromTemplateUrl=From Template URL\nfromText=From Text\nfromUrl=From URL\nfromThisPage=From this page\nfullscreen=Fullscreen\ngap=Gap\ngcp=GCP\ngeneral=General\ngetNotionChromeExtension=Get the Notion Chrome Extension\ngithub=GitHub\ngitlab=GitLab\ngliffy=Gliffy\nglobal=Global\ngoogleDocs=Google Docs\ngoogleDrive=Google Drive\ngoogleGadget=Google Gadget\ngooglePlus=Google+\ngoogleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:\ngoogleSlides=Google Slides\ngoogleSites=Google Sites\ngoogleSheets=Google Sheets\ngradient=Gradient\ngradientColor=Color\ngrid=Grid\ngridColor=Grid Color\ngridSize=Grid Size\ngroup=Group\nguides=Guides\nhateApp=I hate draw.io\nheading=Heading\nheight=Height\nhelp=Help\nhelpTranslate=Help us translate this application\nhide=Hide\nhideIt=Hide {1}\nhidden=Hidden\nhome=Home\nhorizontal=Horizontal\nhorizontalFlow=Horizontal Flow\nhorizontalTree=Horizontal Tree\nhowTranslate=How good is the translation in your language?\nhtml=HTML\nhtmlText=HTML Text\nid=ID\niframe=IFrame\nignore=Ignore\nimage=Image\nimageUrl=Image URL\nimages=Images\nimagePreviewError=This image couldn\'t be loaded for preview. Please check the URL.\nimageTooBig=Image too big\nimgur=Imgur\nimport=Import\nimportFrom=Import from\nincludeCopyOfMyDiagram=Include a copy of my diagram\nincreaseIndent=Increase Indent\ndecreaseIndent=Decrease Indent\ninsert=Insert\ninsertColumnBefore=Insert Column Left\ninsertColumnAfter=Insert Column Right\ninsertEllipse=Insert Ellipse\ninsertImage=Insert Image\ninsertHorizontalRule=Insert Horizontal Rule\ninsertLink=Insert Link\ninsertPage=Insert Page\ninsertRectangle=Insert Rectangle\ninsertRhombus=Insert Rhombus\ninsertRowBefore=Insert Row Above\ninsertRowAfter=Insert Row After\ninsertText=Insert Text\ninserting=Inserting\ninstallApp=Install App\ninvalidFilename=Diagram names must not contain the following characters: / | : ; { } < > & + ? = "\ninvalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.\ninvalidInput=Invalid input\ninvalidName=Invalid name\ninvalidOrMissingFile=Invalid or missing file\ninvalidPublicUrl=Invalid public URL\nisometric=Isometric\nios=iOS\nitalic=Italic\nkennedy=Kennedy\nkeyboardShortcuts=Keyboard Shortcuts\nlabels=Labels\nlayers=Layers\nlandscape=Landscape\nlanguage=Language\nleanMapping=Lean Mapping\nlastChange=Last change {1} ago\nlessThanAMinute=less than a minute\nlicensingError=Licensing Error\nlicenseHasExpired=The license for {1} has expired on {2}. Click here.\nlicenseRequired=This feature requires draw.io to be licensed.\nlicenseWillExpire=The license for {1} will expire on {2}. Click here.\nlineJumps=Line jumps\nlinkAccountRequired=If the diagram is not public a Google account is required to view the link.\nlinkText=Link Text\nlist=List\nminute=minute\nminutes=minutes\nhours=hours\ndays=days\nmonths=months\nyears=years\nrestartForChangeRequired=Changes will take effect after a restart of the application.\nlaneColor=Lanecolor\nlastModified=Last modified\nlayout=Layout\nleft=Left\nleftAlign=Left Align\nleftToRight=Left to right\nlibraryTooltip=Drag and drop shapes here or click + to insert. Double click to edit.\nlightbox=Lightbox\nline=Line\nlineend=Line end\nlineheight=Line Height\nlinestart=Line start\nlinewidth=Linewidth\nlink=Link\nlinks=Links\nloading=Loading\nlockUnlock=Lock/Unlock\nloggedOut=Logged Out\nlogIn=log in\nloveIt=I love {1}\nlucidchart=Lucidchart\nmaps=Maps\nmathematicalTypesetting=Mathematical Typesetting\nmakeCopy=Make a Copy\nmanual=Manual\nmerge=Merge\nmermaid=Mermaid\nmicrosoftOffice=Microsoft Office\nmicrosoftExcel=Microsoft Excel\nmicrosoftPowerPoint=Microsoft PowerPoint\nmicrosoftWord=Microsoft Word\nmiddle=Middle\nminimal=Minimal\nmisc=Misc\nmockups=Mockups\nmodificationDate=Modification date\nmodifiedBy=Modified by\nmore=More\nmoreResults=More Results\nmoreShapes=More Shapes\nmove=Move\nmoveToFolder=Move to Folder\nmoving=Moving\nmoveSelectionTo=Move selection to {1}\nname=Name\nnavigation=Navigation\nnetwork=Network\nnetworking=Networking\nnew=New\nnewLibrary=New Library\nnextPage=Next Page\nno=No\nnoPickFolder=No, pick folder\nnoAttachments=No attachments found\nnoColor=No Color\nnoFiles=No Files\nnoFileSelected=No file selected\nnoLibraries=No libraries found\nnoMoreResults=No more results\nnone=None\nnoOtherViewers=No other viewers\nnoPlugins=No plugins\nnoPreview=No preview\nnoResponse=No response from server\nnoResultsFor=No results for \'{1}\'\nnoRevisions=No revisions\nnoSearchResults=No search results found\nnoPageContentOrNotSaved=No anchors found on this page or it hasn\'t been saved yet\nnormal=Normal\nnorth=North\nnotADiagramFile=Not a diagram file\nnotALibraryFile=Not a library file\nnotAvailable=Not available\nnotAUtf8File=Not a UTF-8 file\nnotConnected=Not connected\nnote=Note\nnotion=Notion\nnotSatisfiedWithImport=Not satisfied with the import?\nnotUsingService=Not using {1}?\nnumberedList=Numbered list\noffline=Offline\nok=OK\noneDrive=OneDrive\nonline=Online\nopacity=Opacity\nopen=Open\nopenArrow=Open Arrow\nopenExistingDiagram=Open Existing Diagram\nopenFile=Open File\nopenFrom=Open from\nopenLibrary=Open Library\nopenLibraryFrom=Open Library from\nopenLink=Open Link\nopenInNewWindow=Open in New Window\nopenInThisWindow=Open in This Window\nopenIt=Open {1}\nopenRecent=Open Recent\nopenSupported=Supported formats are files saved from this software (.xml), .vsdx and .gliffy\noptions=Options\norganic=Organic\norgChart=Org Chart\northogonal=Orthogonal\notherViewer=other viewer\notherViewers=other viewers\noutline=Outline\noval=Oval\npage=Page\npageContent=Page Content\npageNotFound=Page not found\npageWithNumber=Page-{1}\npages=Pages\npageView=Page View\npageSetup=Page Setup\npageScale=Page Scale\npan=Pan\npanTooltip=Space+Drag to pan\npaperSize=Paper Size\npattern=Pattern\nparallels=Parallels\npaste=Paste\npasteData=Paste Data\npasteHere=Paste here\npasteSize=Paste Size\npasteStyle=Paste Style\nperimeter=Perimeter\npermissionAnyone=Anyone can edit\npermissionAuthor=Owner and admins can edit\npickFolder=Pick a folder\npickLibraryDialogTitle=Select Library\npublicDiagramUrl=Public URL of the diagram\nplaceholders=Placeholders\nplantUml=PlantUML\nplugins=Plugins\npluginUrl=Plugin URL\npluginWarning=The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n\nplusTooltip=Click to connect and clone (ctrl+click to clone, shift+click to connect). Drag to connect (ctrl+drag to clone).\nportrait=Portrait\nposition=Position\nposterPrint=Poster Print\npreferences=Preferences\npreview=Preview\npreviousPage=Previous Page\nprint=Print\nprintAllPages=Print All Pages\nprocEng=Proc. Eng.\nproject=Project\npriority=Priority\nproperties=Properties\npublish=Publish\nquickStart=Quick Start Video\nrack=Rack\nradial=Radial\nradialTree=Radial Tree\nreadOnly=Read-only\nreconnecting=Reconnecting\nrecentlyUpdated=Recently Updated\nrecentlyViewed=Recently Viewed\nrectangle=Rectangle\nredirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.\nrealtimeTimeout=It looks like you\'ve made a few changes while offline. We\'re sorry, these changes cannot be saved.\nredo=Redo\nrefresh=Refresh\nregularExpression=Regular Expression\nrelative=Relative\nrelativeUrlNotAllowed=Relative URL not allowed\nrememberMe=Remember me\nrememberThisSetting=Remember this setting\nremoveFormat=Clear Formatting\nremoveFromGroup=Remove from Group\nremoveIt=Remove {1}\nremoveWaypoint=Remove Waypoint\nrename=Rename\nrenamed=Renamed\nrenameIt=Rename {1}\nrenaming=Renaming\nreplace=Replace\nreplaceIt={1} already exists. Do you want to replace it?\nreplaceExistingDrawing=Replace existing drawing\nrequired=required\nreset=Reset\nresetView=Reset View\nresize=Resize\nresizeLargeImages=Do you want to resize large images to make the application run faster?\nretina=Retina\nresponsive=Responsive\nrestore=Restore\nrestoring=Restoring\nretryingIn=Retrying in {1} second(s)\nretryingLoad=Load failed. Retrying...\nretryingLogin=Login time out. Retrying...\nreverse=Reverse\nrevision=Revision\nrevisionHistory=Revision History\nrhombus=Rhombus\nright=Right\nrightAlign=Right Align\nrightToLeft=Right to left\nrotate=Rotate\nrotateTooltip=Click and drag to rotate, click to turn shape only by 90 degrees\nrotation=Rotation\nrounded=Rounded\nsave=Save\nsaveAndExit=Save & Exit\nsaveAs=Save as\nsaveAsXmlFile=Save as XML file?\nsaved=Saved\nsaveDiagramFirst=Please save the diagram first\nsaveDiagramsTo=Save diagrams to\nsaveLibrary403=Insufficient permissions to edit this library\nsaveLibrary500=There was an error while saving the library\nsaveLibraryReadOnly=Could not save library while read-only mode is active\nsaving=Saving\nscratchpad=Scratchpad\nscrollbars=Scrollbars\nsearch=Search\nsearchShapes=Search Shapes\nselectAll=Select All\nselectionOnly=Selection Only\nselectCard=Select Card\nselectEdges=Select Edges\nselectFile=Select File\nselectFolder=Select Folder\nselectFont=Select Font\nselectNone=Select None\nselectTemplate=Select Template\nselectVertices=Select Vertices\nsendBackward=Send Backward\nsendMessage=Send\nsendYourFeedback=Send your feedback\nserviceUnavailableOrBlocked=Service unavailable or blocked\nsessionExpired=Your session has expired. Please refresh the browser window.\nsessionTimeoutOnSave=Your session has timed out and you have been disconnected from the Google Drive. Press OK to login and save.\nsetAsDefaultStyle=Set as Default Style\nshadow=Shadow\nshape=Shape\nshapes=Shapes\nshare=Share\nshareCursor=Share Cursor\nshareLink=Link for shared editing\nsharingAvailable=Sharing available for Google Drive and OneDrive files.\nsharp=Sharp\nshow=Show\nshowStartScreen=Show Start Screen\nsidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.\nsigns=Signs\nsignOut=Sign out\nsimple=Simple\nsimpleArrow=Simple Arrow\nsimpleViewer=Simple Viewer\nsize=Size\nsketch=Sketch\nsnapToGrid=Snap to Grid\nsolid=Solid\nsourceSpacing=Source Spacing\nsouth=South\nsoftware=Software\nspace=Space\nspacing=Spacing\nspecialLink=Special Link\nstandard=Standard\nstartDrawing=Start drawing\nstopDrawing=Stop drawing\nstarting=Starting\nstraight=Straight\nstrikethrough=Strikethrough\nstrokeColor=Line Color\nstyle=Style\nsubscript=Subscript\nsummary=Summary\nsuperscript=Superscript\nsupport=Support\nswimlaneDiagram=Swimlane Diagram\nsysml=SysML\ntags=Tags\ntable=Table\ntables=Tables\ntakeOver=Take Over\ntargetSpacing=Target Spacing\ntemplate=Template\ntemplates=Templates\ntext=Text\ntextAlignment=Text Alignment\ntextOpacity=Text Opacity\ntheme=Theme\ntimeout=Timeout\ntitle=Title\nto=to\ntoBack=To Back\ntoFront=To Front\ntooLargeUseDownload=Too large, use download instead.\ntoolbar=Toolbar\ntooltips=Tooltips\ntop=Top\ntopAlign=Top Align\ntopLeft=Top Left\ntopRight=Top Right\ntransparent=Transparent\ntransparentBackground=Transparent Background\ntrello=Trello\ntryAgain=Try again\ntryOpeningViaThisPage=Try opening via this page\nturn=Rotate shape only by 90°\ntype=Type\ntwitter=Twitter\numl=UML\nunderline=Underline\nundo=Undo\nungroup=Ungroup\nunmerge=Unmerge\nunsavedChanges=Unsaved changes\nunsavedChangesClickHereToSave=Unsaved changes. Click here to save.\nuntitled=Untitled\nuntitledDiagram=Untitled Diagram\nuntitledLayer=Untitled Layer\nuntitledLibrary=Untitled Library\nunknownError=Unknown error\nupdateFile=Update {1}\nupdatingDocument=Updating Document. Please wait...\nupdatingPreview=Updating Preview. Please wait...\nupdatingSelection=Updating Selection. Please wait...\nupload=Upload\nurl=URL\nuseOffline=Use Offline\nuseRootFolder=Use root folder?\nuserManual=User Manual\nvertical=Vertical\nverticalFlow=Vertical Flow\nverticalTree=Vertical Tree\nview=View\nviewerSettings=Viewer Settings\nviewUrl=Link to view: {1}\nvoiceAssistant=Voice Assistant (beta)\nwarning=Warning\nwaypoints=Waypoints\nwest=West\nwidth=Width\nwiki=Wiki\nwordWrap=Word Wrap\nwritingDirection=Writing Direction\nyes=Yes\nyourEmailAddress=Your email address\nzoom=Zoom\nzoomIn=Zoom In\nzoomOut=Zoom Out\nbasic=Basic\nbusinessprocess=Business Processes\ncharts=Charts\nengineering=Engineering\nflowcharts=Flowcharts\ngmdl=Material Design\nmindmaps=Mindmaps\nmockups=Mockups\nnetworkdiagrams=Network Diagrams\nnothingIsSelected=Nothing is selected\nother=Other\nsoftwaredesign=Software Design\nvenndiagrams=Venn Diagrams\nwebEmailOrOther=Web, email or any other internet address\nwebLink=Web Link\nwireframes=Wireframes\nproperty=Property\nvalue=Value\nshowMore=Show More\nshowLess=Show Less\nmyDiagrams=My Diagrams\nallDiagrams=All Diagrams\nrecentlyUsed=Recently used\nlistView=List view\ngridView=Grid view\nresultsFor=Results for \'{1}\'\noneDriveCharsNotAllowed=The following characters are not allowed: ~ " # % * : < > ? / { | }\noneDriveInvalidDeviceName=The specified device name is invalid\nofficeNotLoggedOD=You are not logged in to OneDrive. Please open draw.io task pane and login first.\nofficeSelectSingleDiag=Please select a single draw.io diagram only without other contents.\nofficeSelectDiag=Please select a draw.io diagram.\nofficeCannotFindDiagram=Cannot find a draw.io diagram in the selection\nnoDiagrams=No diagrams found\nauthFailed=Authentication failed\nofficeFailedAuthMsg=Unable to successfully authenticate user or authorize application.\nconvertingDiagramFailed=Converting diagram failed\nofficeCopyImgErrMsg=Due to some limitations in the host application, the image could not be inserted. Please manually copy the image then paste it to the document.\ninsertingImageFailed=Inserting image failed\nofficeCopyImgInst=Instructions: Right-click the image below. Select "Copy image" from the context menu. Then, in the document, right-click and select "Paste" from the context menu.\nfolderEmpty=Folder is empty\nrecent=Recent\nsharedWithMe=Shared With Me\nsharepointSites=Sharepoint Sites\nerrorFetchingFolder=Error fetching folder items\nerrorAuthOD=Error authenticating to OneDrive\nofficeMainHeader=Adds draw.io diagrams to your document.\nofficeStepsHeader=This add-in performs the following steps:\nofficeStep1=Connects to Microsoft OneDrive, Google Drive or your device.\nofficeStep2=Select a draw.io diagram.\nofficeStep3=Insert the diagram into the document.\nofficeAuthPopupInfo=Please complete the authentication in the pop-up window.\nofficeSelDiag=Select draw.io Diagram:\nfiles=Files\nshared=Shared\nsharepoint=Sharepoint\nofficeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.\nofficeClickToEdit=Click icon to start editing:\npasteDiagram=Paste draw.io diagram here\nconnectOD=Connect to OneDrive\nselectChildren=Select Children\nselectSiblings=Select Siblings\nselectParent=Select Parent\nselectDescendants=Select Descendants\nlastSaved=Last saved {1} ago\nresolve=Resolve\nreopen=Re-open\nshowResolved=Show Resolved\nreply=Reply\nobjectNotFound=Object not found\nreOpened=Re-opened\nmarkedAsResolved=Marked as resolved\nnoCommentsFound=No comments found\ncomments=Comments\ntimeAgo={1} ago\nconfluenceCloud=Confluence Cloud\nlibraries=Libraries\nconfAnchor=Confluence Page Anchor\nconfTimeout=The connection has timed out\nconfSrvTakeTooLong=The server at {1} is taking too long to respond.\nconfCannotInsertNew=Cannot insert draw.io diagram to a new Confluence page\nconfSaveTry=Please save the page and try again.\nconfCannotGetID=Unable to determine page ID\nconfContactAdmin=Please contact your Confluence administrator.\nreadErr=Read Error\neditingErr=Editing Error\nconfExtEditNotPossible=This diagram cannot be edited externally. Please try editing it while editing the page\nconfEditedExt=Diagram/Page edited externally\ndiagNotFound=Diagram Not Found\nconfEditedExtRefresh=Diagram/Page is edited externally. Please refresh the page.\nconfCannotEditDraftDelOrExt=Cannot edit diagrams in a draft page, diagram is deleted from the page, or diagram is edited externally. Please check the page.\nretBack=Return back\nconfDiagNotPublished=The diagram does not belong to a published page\ncreatedByDraw=Created by draw.io\nfilenameShort=Filename too short\ninvalidChars=Invalid characters\nalreadyExst={1} already exists\ndraftReadErr=Draft Read Error\ndiagCantLoad=Diagram cannot be loaded\ndraftWriteErr=Draft Write Error\ndraftCantCreate=Draft could not be created\nconfDuplName=Duplicate diagram name detected. Please pick another name.\nconfSessionExpired=Looks like your session expired. Log in again to keep working.\nlogin=Login\ndrawPrev=draw.io preview\ndrawDiag=draw.io diagram\ninvalidCallFnNotFound=Invalid Call: {1} not found\ninvalidCallErrOccured=Invalid Call: An error occurred, {1}\nanonymous=Anonymous\nconfGotoPage=Go to containing page\nshowComments=Show Comments\nconfError=Error: {1}\ngliffyImport=Gliffy Import\ngliffyImportInst1=Click the "Start Import" button to import all Gliffy diagrams to draw.io.\ngliffyImportInst2=Please note that the import procedure will take some time and the browser window must remain open until the import is completed.\nstartImport=Start Import\ndrawConfig=draw.io Configuration\ncustomLib=Custom Libraries\ncustomTemp=Custom Templates\npageIdsExp=Page IDs Export\ndrawReindex=draw.io re-indexing (beta)\nworking=Working\ndrawConfigNotFoundInst=draw.io Configuration Space (DRAWIOCONFIG) does not exist. This space is needed to store draw.io configuration files and custom libraries/templates.\ncreateConfSp=Create Config Space\nunexpErrRefresh=Unexpected error, please refresh the page and try again.\nconfigJSONInst=Write draw.io JSON configuration in the editor below then click save. If you need help, please refer to\nthisPage=this page\ncurCustLib=Current Custom Libraries\nlibName=Library Name\naction=Action\ndrawConfID=draw.io Config ID\naddLibInst=Click the "Add Library" button to upload a new library.\naddLib=Add Library\ncustomTempInst1=Custom templates are draw.io diagrams saved in children pages of\ncustomTempInst2=For more details, please refer to\ntempsPage=Templates page\npageIdsExpInst1=Select export target, then click the "Start Export" button to export all pages IDs.\npageIdsExpInst2=Please note that the export procedure will take some time and the browser window must remain open until the export is completed.\nstartExp=Start Export\nrefreshDrawIndex=Refresh draw.io Diagrams Index\nreindexInst1=Click the "Start Indexing" button to refresh draw.io diagrams index.\nreindexInst2=Please note that the indexing procedure will take some time and the browser window must remain open until the indexing is completed.\nstartIndexing=Start Indexing\nconfAPageFoundFetch=Page "{1}" found. Fetching\nconfAAllDiagDone=All {1} diagrams processed. Process finished.\nconfAStartedProcessing=Started processing page "{1}"\nconfAAllDiagInPageDone=All {1} diagrams in page "{2}" processed successfully.\nconfAPartialDiagDone={1} out of {2} {3} diagrams in page "{4}" processed successfully.\nconfAUpdatePageFailed=Updating page "{1}" failed.\nconfANoDiagFoundInPage=No {1} diagrams found in page "{2}".\nconfAFetchPageFailed=Fetching the page failed.\nconfANoDiagFound=No {1} diagrams found. Process finished.\nconfASearchFailed=Searching for {1} diagrams failed. Please try again later.\nconfAGliffyDiagFound={2} diagram "{1}" found. Importing\nconfAGliffyDiagImported={2} diagram "{1}" imported successfully.\nconfASavingImpGliffyFailed=Saving imported {2} diagram "{1}" failed.\nconfAImportedFromByDraw=Imported from "{1}" by draw.io\nconfAImportGliffyFailed=Importing {2} diagram "{1}" failed.\nconfAFetchGliffyFailed=Fetching {2} diagram "{1}" failed.\nconfACheckBrokenDiagLnk=Checking for broken diagrams links.\nconfADelDiagLinkOf=Deleting diagram link of "{1}"\nconfADupLnk=(duplicate link)\nconfADelDiagLnkFailed=Deleting diagram link of "{1}" failed.\nconfAUnexpErrProcessPage=Unexpected error during processing the page with id: {1}\nconfADiagFoundIndex=Diagram "{1}" found. Indexing\nconfADiagIndexSucc=Diagram "{1}" indexed successfully.\nconfAIndexDiagFailed=Indexing diagram "{1}" failed.\nconfASkipDiagOtherPage=Skipped "{1}" as it belongs to another page!\nconfADiagUptoDate=Diagram "{1}" is up to date.\nconfACheckPagesWDraw=Checking pages having draw.io diagrams.\nconfAErrOccured=An error occurred!\nsavedSucc=Saved successfully\nconfASaveFailedErr=Saving Failed (Unexpected Error)\ncharacter=Character\nconfAConfPageDesc=This page contains draw.io configuration file (configuration.json) as attachment\nconfALibPageDesc=This page contains draw.io custom libraries as attachments\nconfATempPageDesc=This page contains draw.io custom templates as attachments\nworking=Working\nconfAConfSpaceDesc=This space is used to store draw.io configuration files and custom libraries/templates\nconfANoCustLib=No Custom Libraries\ndelFailed=Delete failed!\nshowID=Show ID\nconfAIncorrectLibFileType=Incorrect file type. Libraries should be XML files.\nuploading=Uploading\nconfALibExist=This library already exists\nconfAUploadSucc=Uploaded successfully\nconfAUploadFailErr=Upload Failed (Unexpected Error)\nhiResPreview=High Res Preview\nofficeNotLoggedGD=You are not logged in to Google Drive. Please open draw.io task pane and login first.\nofficePopupInfo=Please complete the process in the pop-up window.\npickODFile=Pick OneDrive File\ncreateODFile=Create OneDrive File\npickGDriveFile=Pick Google Drive File\ncreateGDriveFile=Create Google Drive File\npickDeviceFile=Pick Device File\nvsdNoConfig="vsdurl" is not configured\nruler=Ruler\nunits=Units\npoints=Points\ninches=Inches\nmillimeters=Millimeters\nconfEditDraftDelOrExt=This diagram is in a draft page, is deleted from the page, or is edited externally. It will be saved as a new attachment version and may not be reflected in the page.\nconfDiagEditedExt=Diagram is edited in another session. It will be saved as a new attachment version but the page will show other session\'s modifications.\nmacroNotFound=Macro Not Found\nconfAInvalidPageIdsFormat=Incorrect Page IDs file format\nconfACollectingCurPages=Collecting current pages\nconfABuildingPagesMap=Building pages mapping\nconfAProcessDrawDiag=Started processing imported draw.io diagrams\nconfAProcessDrawDiagDone=Finished processing imported draw.io diagrams\nconfAProcessImpPages=Started processing imported pages\nconfAErrPrcsDiagInPage=Error processing draw.io diagrams in page "{1}"\nconfAPrcsDiagInPage=Processing draw.io diagrams in page "{1}"\nconfAImpDiagram=Importing diagram "{1}"\nconfAImpDiagramFailed=Importing diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported.\nconfAImpDiagramError=Error importing diagram "{1}". Cannot fetch or save the diagram. Cannot fix this diagram links.\nconfAUpdateDgrmCCFailed=Updating link to diagram "{1}" failed.\nconfImpDiagramSuccess=Updating diagram "{1}" done successfully.\nconfANoLnksInDrgm=No links to update in: {1}\nconfAUpdateLnkToPg=Updated link to page: "{1}" in diagram: "{2}"\nconfAUpdateLBLnkToPg=Updated lightbox link to page: "{1}" in diagram: "{2}"\nconfAUpdateLnkBase=Updated base URL from: "{1}" to: "{2}" in diagram: "{3}"\nconfAPageIdsImpDone=Page IDs Import finished\nconfAPrcsMacrosInPage=Processing draw.io macros in page "{1}"\nconfAErrFetchPage=Error fetching page "{1}"\nconfAFixingMacro=Fixing macro of diagram "{1}"\nconfAErrReadingExpFile=Error reading export file\nconfAPrcsDiagInPageDone=Processing draw.io diagrams in page "{1}" finished\nconfAFixingMacroSkipped=Fixing macro of diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported.\npageIdsExpTrg=Export target\nconfALucidDiagImgImported={2} diagram "{1}" image extracted successfully\nconfASavingLucidDiagImgFailed=Extracting {2} diagram "{1}" image failed\nconfGetInfoFailed=Fetching file info from {1} failed.\nconfCheckCacheFailed=Cannot get cached file info.\nconfReadFileErr=Cannot read "{1}" file from {2}.\nconfSaveCacheFailed=Unexpected error. Cannot save cached file\norgChartType=Org Chart Type\nlinear=Linear\nhanger2=Hanger 2\nhanger4=Hanger 4\nfishbone1=Fishbone 1\nfishbone2=Fishbone 2\n1ColumnLeft=Single Column Left\n1ColumnRight=Single Column Right\nsmart=Smart\nparentChildSpacing=Parent Child Spacing\nsiblingSpacing=Sibling Spacing\nconfNoPermErr=Sorry, you don\'t have enough permissions to view this embedded diagram from page {1}\ncopyAsImage=Copy as Image\nlucidImport=Lucidchart Import\nlucidImportInst1=Click the "Start Import" button to import all Lucidchart diagrams.\ninstallFirst=Please install {1} first\ndrawioChromeExt=draw.io Chrome Extension\nloginFirstThen=Please login to {1} first, then {2}\nerrFetchDocList=Error: Couldn\'t fetch documents list\nbuiltinPlugins=Built-in Plugins\nextPlugins=External Plugins\nbackupFound=Backup file found\nchromeOnly=This feature only works in Google Chrome\nmsgDeleted=This message has been deleted\nconfAErrFetchDrawList=Error fetching diagrams list. Some diagrams are skipped.\nconfAErrCheckDrawDiag=Cannot check diagram {1}\nconfAErrFetchPageList=Error fetching pages list\nconfADiagImportIncom={1} diagram "{2}" is imported partially and may have missing shapes\ninvalidSel=Invalid selection\ndiagNameEmptyErr=Diagram name cannot be empty\nopenDiagram=Open Diagram\nnewDiagram=New diagram\neditable=Editable\nconfAReimportStarted=Re-import {1} diagrams started...\nspaceFilter=Filter by spaces\ncurViewState=Current Viewer State\npageLayers=Page and Layers\ncustomize=Customize\nfirstPage=First Page (All Layers)\ncurEditorState=Current Editor State\nnoAnchorsFound=No anchors found\nattachment=Attachment\ncurDiagram=Current Diagram\nrecentDiags=Recent Diagrams\ncsvImport=CSV Import\nchooseFile=Choose a file...\nchoose=Choose\ngdriveFname=Google Drive filename\nwidthOfViewer=Width of the viewer (px)\nheightOfViewer=Height of the viewer (px)\nautoSetViewerSize=Automatically set the size of the viewer\nthumbnail=Thumbnail\nprevInDraw=Preview in draw.io\nonedriveFname=OneDrive filename\ndiagFname=Diagram filename\ndiagUrl=Diagram URL\nshowDiag=Show Diagram\ndiagPreview=Diagram Preview\ncsvFileUrl=CSV File URL\ngenerate=Generate\nselectDiag2Insert=Please select a diagram to insert it.\nerrShowingDiag=Unexpected error. Cannot show diagram\nnoRecentDiags=No recent diagrams found\nfetchingRecentFailed=Failed to fetch recent diagrams\nuseSrch2FindDiags=Use the search box to find draw.io diagrams\ncantReadChckPerms=Cannot read the specified diagram. Please check you have read permission on that file.\ncantFetchChckPerms=Cannot fetch diagram info. Please check you have read permission on that file.\nsearchFailed=Searching failed. Please try again later.\nplsTypeStr=Please type a search string.\nunsupportedFileChckUrl=Unsupported file. Please check the specified URL\ndiagNotFoundChckUrl=Diagram not found or cannot be accessed. Please check the specified URL\ncsvNotFoundChckUrl=CSV file not found or cannot be accessed. Please check the specified URL\ncantReadUpload=Cannot read the uploaded diagram\nselect=Select\nerrCantGetIdType=Unexpected Error: Cannot get content id or type.\nerrGAuthWinBlocked=Error: Google Authentication window blocked\nauthDrawAccess=Authorize draw.io to access {1}\nconnTimeout=The connection has timed out\nerrAuthSrvc=Error authenticating to {1}\nplsSelectFile=Please select a file\nmustBgtZ={1} must be greater than zero\ncantLoadPrev=Cannot load file preview.\nerrAccessFile=Error: Access Denied. You do not have permission to access "{1}".\nnoPrevAvail=No preview is available.\npersonalAccNotSup=Personal accounts are not supported.\nerrSavingTryLater=Error occurred during saving, please try again later.\nplsEnterFld=Please enter {1}\ninvalidDiagUrl=Invalid Diagram URL\nunsupportedVsdx=Unsupported vsdx file\nunsupportedImg=Unsupported image file\nunsupportedFormat=Unsupported file format\nplsSelectSingleFile=Please select a single file only\nattCorrupt=Attachment file "{1}" is corrupted\nloadAttFailed=Failed to load attachment "{1}"\nembedDrawDiag=Embed draw.io Diagram\naddDiagram=Add Diagram\nembedDiagram=Embed Diagram\neditOwningPg=Edit owning page\ndeepIndexing=Deep Indexing (Index diagrams that aren\'t used in any page also)\nconfADeepIndexStarted=Deep Indexing Started\nconfADeepIndexDone=Deep Indexing Done\nofficeNoDiagramsSelected=No diagrams found in the selection\nofficeNoDiagramsInDoc=No diagrams found in the document\nofficeNotSupported=This feature is not supported in this host application\nsomeImagesFailed={1} out of {2} failed due to the following errors\nimportingNoUsedDiagrams=Importing {1} Diagrams not used in pages\nimportingDrafts=Importing {1} Diagrams in drafts\nprocessingDrafts=Processing drafts\nupdatingDrafts=Updating drafts\nupdateDrafts=Update drafts\nnotifications=Notifications\ndrawioImp=draw.io Import\nconfALibsImp=Importing draw.io Libraries\nconfALibsImpFailed=Importing {1} library failed\ncontributors=Contributors\ndrawDiagrams=draw.io Diagrams\nerrFileNotFoundOrNoPer=Error: Access Denied. File not found or you do not have permission to access "{1}" on {2}.\nconfACheckPagesWEmbed=Checking pages having embedded draw.io diagrams.\nconfADelBrokenEmbedDiagLnk=Removing broken embedded diagram links\nreplaceWith=Replace with\nreplaceAll=Replace All\nconfASkipDiagModified=Skipped "{1}" as it was modified after initial import\nreplFind=Replace/Find\nmatchesRepl={1} matches replaced\ndraftErrDataLoss=An error occurred while reading the draft file. The diagram cannot be edited now to prevent any possible data loss. Please try again later or contact support.\nibm=IBM\nlinkToDiagramHint=Add a link to this diagram. The diagram can only be edited from the page that owns it.\nlinkToDiagram=Link to Diagram\nchangedBy=Changed By\nlastModifiedOn=Last modified on\nsearchResults=Search Results\nshowAllTemps=Show all templates\nnotionToken=Notion Token\nselectDB=Select Database\nnoDBs=No Databases\ndiagramEdited={1} diagram "{2}" edited\nconfDraftPermissionErr=Draft cannot be written. Do you have attachment write/read permission on this page?\nconfDraftTooBigErr=Draft size is too large. Pease check "Attachment Maximum Size" of "Attachment Settings" in Confluence Configuration?\nowner=Owner\nrepository=Repository\nbranch=Branch\nmeters=Meters\nteamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)\ncontactOwner=Contact Owner\nviewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.\nwebsite=Website\ncheck4Updates=Check for updates\nattWriteFailedRetry={1}: Attachment write failed, trying again in {2} seconds...\nconfPartialPageList=We couldn\'t fetch all pages due to an error in Confluence. Continuing using {1} pages only.\nspellCheck=Spell checker\nnoChange=No Change\nlblToSvg=Convert labels to SVG\ntxtSettings=Text Settings\nLinksLost=Links will be lost\narcSize=Arc Size\neditConnectionPoints=Edit Connection Points\nnotInOffline=Not supported while offline\nnotInDesktop=Not supported in Desktop App\nconfConfigSpaceArchived=draw.io Configuration space (DRAWIOCONFIG) is archived. Please restore it first.\nconfACleanOldVerStarted=Cleaning old diagram draft versions started\nconfACleanOldVerDone=Cleaning old diagram draft versions finished\nconfACleaningFile=Cleaning diagram draft "{1}" old versions\nconfAFileCleaned=Cleaning diagram draft "{1}" done\nconfAFileCleanFailed=Cleaning diagram draft "{1}" failed\nconfACleanOnly=Clean Diagram Drafts Only\nbrush=Brush\n');Graph.prototype.defaultThemes["default-style2"]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="default"/><add as="strokeColor" value="default"/><add as="fontColor" value="default"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="default"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="default"/><add as="fontColor" value="default"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="edgeLabel" extend="text"><add as="labelBackgroundColor" value="default"/><add as="fontSize" value="11"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="default"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="default"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="default"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="default"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add></mxStylesheet>').documentElement;
Graph.prototype.defaultThemes.darkTheme=Graph.prototype.defaultThemes["default-style2"];GraphViewer=function(b,c,e){this.init(b,c,e)};mxUtils.extend(GraphViewer,mxEventSource);GraphViewer.prototype.editBlankUrl="https://app.diagrams.net/";GraphViewer.prototype.imageBaseUrl="https://viewer.diagrams.net/";GraphViewer.prototype.toolbarHeight="BackCompat"==document.compatMode?24:26;GraphViewer.prototype.lightboxChrome=!0;GraphViewer.prototype.lightboxZIndex=999;GraphViewer.prototype.toolbarZIndex=999;GraphViewer.prototype.autoFit=!1;GraphViewer.prototype.autoCrop=!1;
GraphViewer.prototype.autoOrigin=!0;GraphViewer.prototype.center=!1;GraphViewer.prototype.forceCenter=!1;GraphViewer.prototype.allowZoomIn=!1;GraphViewer.prototype.allowZoomOut=!0;GraphViewer.prototype.showTitleAsTooltip=!1;GraphViewer.prototype.checkVisibleState=!0;GraphViewer.prototype.minHeight=28;GraphViewer.prototype.minWidth=100;GraphViewer.prototype.responsive=!1;
GraphViewer.prototype.init=function(b,c,e){this.graphConfig=null!=e?e:{};this.autoFit=null!=this.graphConfig["auto-fit"]?this.graphConfig["auto-fit"]:this.autoFit;this.autoCrop=null!=this.graphConfig["auto-crop"]?this.graphConfig["auto-crop"]:this.autoCrop;this.autoOrigin=null!=this.graphConfig["auto-origin"]?this.graphConfig["auto-origin"]:this.autoOrigin;this.allowZoomOut=null!=this.graphConfig["allow-zoom-out"]?this.graphConfig["allow-zoom-out"]:this.allowZoomOut;this.allowZoomIn=null!=this.graphConfig["allow-zoom-in"]?
@@ -4131,17 +4131,17 @@ this.toolbar&&(this.toolbar.style.width=Math.max(this.minToolbarWidth,b.offsetWi
(this.allowZoomIn?null:1),this.graph.fit(null,null,null,null,null,!0),(this.center||0==this.graphConfig.resize&&""!=b.style.height)&&this.graph.center(),this.graph.maxFitScale=null,0==this.graphConfig.resize&&""!=b.style.height||this.updateContainerHeight(b,Math.max(this.minHeight,this.graph.getGraphBounds().height+2*this.graph.border+1)),this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale},n=d,window.setTimeout(mxUtils.bind(this,function(){this.handlingResize=
!1}),0))});GraphViewer.useResizeSensor&&(9>=document.documentMode?(mxEvent.addListener(window,"resize",f),this.graph.addListener("size",f)):new ResizeSensor(this.graph.container,f));if(this.graphConfig.resize||(this.zoomEnabled||!this.autoFit)&&0!=this.graphConfig.resize)this.graph.minimumContainerSize=new mxRectangle(0,0,this.minWidth,this.minHeight),this.graph.resizeContainer=!0;else if(!this.widthIsEmpty||""!=b.style.height&&this.autoFit||this.updateContainerWidth(b,c.width+2*this.graph.border),
0==this.graphConfig.resize&&""!=b.style.height||this.updateContainerHeight(b,Math.max(this.minHeight,c.height+2*this.graph.border+1)),!this.zoomEnabled&&this.autoFit){var l=n=null,f=mxUtils.bind(this,function(){window.clearTimeout(l);this.handlingResize||(l=window.setTimeout(mxUtils.bind(this,this.fitGraph),100))});GraphViewer.useResizeSensor&&(9>=document.documentMode?mxEvent.addListener(window,"resize",f):new ResizeSensor(this.graph.container,f))}else 9>=document.documentMode||this.graph.addListener("size",
-f);var t=mxUtils.bind(this,function(d){var e=b.style.minWidth;this.widthIsEmpty&&(b.style.minWidth="100%");var f=null!=this.graphConfig["max-height"]?this.graphConfig["max-height"]:""!=b.style.height&&this.autoFit?b.offsetHeight:void 0;0<b.offsetWidth&&null==d&&this.allowZoomOut&&(this.allowZoomIn||c.width+2*this.graph.border>b.offsetWidth||c.height+2*this.graph.border>f)?(d=null,null!=f&&c.height+2*this.graph.border>f-2&&(d=(f-2*this.graph.border-2)/c.height),this.fitGraph(d)):this.widthIsEmpty||
-null!=d||0!=this.graphConfig.resize||""==b.style.height?(d=null!=d?d:new mxPoint,this.graph.view.setTranslate(Math.floor(this.graph.border-c.x/this.graph.view.scale)+d.x,Math.floor(this.graph.border-c.y/this.graph.view.scale)+d.y),n=b.offsetWidth):this.graph.center((!this.widthIsEmpty||c.width<this.minWidth)&&1!=this.graphConfig.resize);b.style.minWidth=e});8==document.documentMode?window.setTimeout(t,0):t();this.positionGraph=function(b){c=this.graph.getGraphBounds();n=null;t(b)}};
+f);var q=mxUtils.bind(this,function(d){var e=b.style.minWidth;this.widthIsEmpty&&(b.style.minWidth="100%");var f=null!=this.graphConfig["max-height"]?this.graphConfig["max-height"]:""!=b.style.height&&this.autoFit?b.offsetHeight:void 0;0<b.offsetWidth&&null==d&&this.allowZoomOut&&(this.allowZoomIn||c.width+2*this.graph.border>b.offsetWidth||c.height+2*this.graph.border>f)?(d=null,null!=f&&c.height+2*this.graph.border>f-2&&(d=(f-2*this.graph.border-2)/c.height),this.fitGraph(d)):this.widthIsEmpty||
+null!=d||0!=this.graphConfig.resize||""==b.style.height?(d=null!=d?d:new mxPoint,this.graph.view.setTranslate(Math.floor(this.graph.border-c.x/this.graph.view.scale)+d.x,Math.floor(this.graph.border-c.y/this.graph.view.scale)+d.y),n=b.offsetWidth):this.graph.center((!this.widthIsEmpty||c.width<this.minWidth)&&1!=this.graphConfig.resize);b.style.minWidth=e});8==document.documentMode?window.setTimeout(q,0):q();this.positionGraph=function(b){c=this.graph.getGraphBounds();n=null;q(b)}};
GraphViewer.prototype.crop=function(){var b=this.graph,c=b.getGraphBounds(),e=b.border,f=b.view.scale;b.view.setTranslate(null!=c.x?Math.floor(b.view.translate.x-c.x/f+e):e,null!=c.y?Math.floor(b.view.translate.y-c.y/f+e):e)};GraphViewer.prototype.updateContainerWidth=function(b,c){b.style.width=c+"px"};GraphViewer.prototype.updateContainerHeight=function(b,c){if(this.forceCenter||this.zoomEnabled||!this.autoFit||"BackCompat"==document.compatMode||8==document.documentMode)b.style.height=c+"px"};
-GraphViewer.prototype.showLayers=function(b,c){var e=this.graphConfig.layers,e=null!=e&&0<e.length?e.split(" "):[],f=this.graphConfig.layerIds,n=null!=f&&0<f.length,l=!1;if(0<e.length||n||null!=c){var t=null!=c?c.getModel():null,l=b.getModel();l.beginUpdate();try{var d=l.getChildCount(l.root);if(null==t){var t=!1,k={};if(n)for(var g=0;g<f.length;g++){var q=l.getCell(f[g]);null!=q&&(t=!0,k[q.id]=!0)}else for(g=0;g<e.length;g++)q=l.getChildAt(l.root,parseInt(e[g])),null!=q&&(t=!0,k[q.id]=!0);for(g=
-0;t&&g<d;g++)q=l.getChildAt(l.root,g),l.setVisible(q,k[q.id]||!1)}else for(g=0;g<d;g++)l.setVisible(l.getChildAt(l.root,g),t.isVisible(t.getChildAt(t.root,g)))}finally{l.endUpdate()}l=!0}return l};
+GraphViewer.prototype.showLayers=function(b,c){var e=this.graphConfig.layers,e=null!=e&&0<e.length?e.split(" "):[],f=this.graphConfig.layerIds,n=null!=f&&0<f.length,l=!1;if(0<e.length||n||null!=c){var q=null!=c?c.getModel():null,l=b.getModel();l.beginUpdate();try{var d=l.getChildCount(l.root);if(null==q){var q=!1,k={};if(n)for(var g=0;g<f.length;g++){var t=l.getCell(f[g]);null!=t&&(q=!0,k[t.id]=!0)}else for(g=0;g<e.length;g++)t=l.getChildAt(l.root,parseInt(e[g])),null!=t&&(q=!0,k[t.id]=!0);for(g=
+0;q&&g<d;g++)t=l.getChildAt(l.root,g),l.setVisible(t,k[t.id]||!1)}else for(g=0;g<d;g++)l.setVisible(l.getChildAt(l.root,g),q.isVisible(q.getChildAt(q.root,g)))}finally{l.endUpdate()}l=!0}return l};
GraphViewer.prototype.addToolbar=function(){function b(b,c,d,f){var g=document.createElement("div");g.style.borderRight="1px solid #d0d0d0";g.style.padding="3px 6px 3px 6px";mxEvent.addListener(g,"click",b);null!=d&&g.setAttribute("title",d);g.style.display="inline-block";b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",c);b.style.width="18px";null==f||f?(mxEvent.addListener(g,"mouseenter",function(){g.style.backgroundColor="#ddd"}),mxEvent.addListener(g,"mouseleave",
-function(){g.style.backgroundColor="#eee"}),mxUtils.setOpacity(b,60),g.style.cursor="pointer"):mxUtils.setOpacity(g,30);g.appendChild(b);e.appendChild(g);q++;return g}var c=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?c.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(c.style.marginTop=this.toolbarHeight+"px");var e=c.ownerDocument.createElement("div");e.style.position="absolute";e.style.overflow="hidden";e.style.boxSizing="border-box";
+function(){g.style.backgroundColor="#eee"}),mxUtils.setOpacity(b,60),g.style.cursor="pointer"):mxUtils.setOpacity(g,30);g.appendChild(b);e.appendChild(g);t++;return g}var c=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?c.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(c.style.marginTop=this.toolbarHeight+"px");var e=c.ownerDocument.createElement("div");e.style.position="absolute";e.style.overflow="hidden";e.style.boxSizing="border-box";
e.style.whiteSpace="nowrap";e.style.textAlign="left";e.style.zIndex=this.toolbarZIndex;e.style.backgroundColor="#eee";e.style.height=this.toolbarHeight+"px";this.toolbar=e;if("inline"==this.graphConfig["toolbar-position"]){mxUtils.setPrefixedStyle(e.style,"transition","opacity 100ms ease-in-out");mxUtils.setOpacity(e,30);var f=null,n=null,l=mxUtils.bind(this,function(b){null!=f&&(window.clearTimeout(f),fadeThead=null);null!=n&&(window.clearTimeout(n),fadeThead2=null);f=window.setTimeout(mxUtils.bind(this,
-function(){mxUtils.setOpacity(e,0);f=null;n=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";n=null}),100)}),b||200)}),t=mxUtils.bind(this,function(b){null!=f&&(window.clearTimeout(f),fadeThead=null);null!=n&&(window.clearTimeout(n),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,b||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(t(30),l())}));mxEvent.addListener(e,mxClient.IS_POINTER?
-"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(b){t(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(b){t(100);mxEvent.consume(b)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||t(30)}));var d=this.graph,k=d.getTolerance();d.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(b,c){this.startX=c.getGraphX();this.startY=c.getGraphY();
-this.scrollLeft=d.container.scrollLeft;this.scrollTop=d.container.scrollTop},mouseMove:function(b,c){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-d.container.scrollLeft)<k&&Math.abs(this.scrollTop-d.container.scrollTop)<k&&Math.abs(this.startX-c.getGraphX())<k&&Math.abs(this.startY-c.getGraphY())<k&&(0<parseFloat(e.style.opacity||0)?l():t(30))}})}for(var g=this.toolbarItems,q=0,m=null,p=null,v=null,u=null,x=0;x<g.length;x++){var y=g[x];if("pages"==y){u=c.ownerDocument.createElement("div");
+function(){mxUtils.setOpacity(e,0);f=null;n=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";n=null}),100)}),b||200)}),q=mxUtils.bind(this,function(b){null!=f&&(window.clearTimeout(f),fadeThead=null);null!=n&&(window.clearTimeout(n),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,b||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(q(30),l())}));mxEvent.addListener(e,mxClient.IS_POINTER?
+"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(b){q(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(b){q(100);mxEvent.consume(b)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||q(30)}));var d=this.graph,k=d.getTolerance();d.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(b,c){this.startX=c.getGraphX();this.startY=c.getGraphY();
+this.scrollLeft=d.container.scrollLeft;this.scrollTop=d.container.scrollTop},mouseMove:function(b,c){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-d.container.scrollLeft)<k&&Math.abs(this.scrollTop-d.container.scrollTop)<k&&Math.abs(this.startX-c.getGraphX())<k&&Math.abs(this.startY-c.getGraphY())<k&&(0<parseFloat(e.style.opacity||0)?l():q(30))}})}for(var g=this.toolbarItems,t=0,m=null,p=null,v=null,u=null,x=0;x<g.length;x++){var y=g[x];if("pages"==y){u=c.ownerDocument.createElement("div");
u.style.cssText="display:inline-block;position:relative;top:5px;padding:0 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;;cursor:default;";mxUtils.setOpacity(u,70);var G=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");G.style.borderRightStyle="none";G.style.paddingLeft="0px";G.style.paddingRight="0px";e.appendChild(u);var H=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage+
1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");H.style.paddingLeft="0px";H.style.paddingRight="0px";y=mxUtils.bind(this,function(){u.innerHTML="";mxUtils.write(u,this.currentPage+1+" / "+this.diagrams.length);u.style.display=1<this.diagrams.length?"inline-block":"none";G.style.display=u.style.display;H.style.display=u.style.display});this.addListener("graphChanged",y);y()}else if("zoom"==y)this.zoomEnabled&&(b(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,
mxResources.get("zoomOut")||"Zoom Out"),b(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),b(mxUtils.bind(this,function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==y){if(this.layersEnabled){var D=this.graph.getModel(),F=b(mxUtils.bind(this,function(b){if(null!=m)m.parentNode.removeChild(m),
@@ -4151,8 +4151,8 @@ m=null;else{m=this.graph.createLayersDialog(mxUtils.bind(this,function(){if(this
"inline-block":"none"}}else if("tags"==y){if(this.tagsEnabled){var O=b(mxUtils.bind(this,function(b){null==p&&(p=this.graph.createTagsDialog(mxUtils.bind(this,function(){return!0})),p.div.getElementsByTagName("div")[0].style.position="",p.div.style.maxHeight="160px",p.div.style.maxWidth="120px",p.div.style.padding="2px",p.div.style.overflow="auto",p.div.style.height="auto",p.div.style.position="fixed",p.div.style.fontFamily=Editor.defaultHtmlFont,p.div.style.fontSize="11px",p.div.style.backgroundColor=
"#eee",p.div.style.color="#000",p.div.style.border="1px solid #d0d0d0",p.div.style.zIndex=this.toolbarZIndex+1,mxUtils.setOpacity(p.div,80));if(null!=v)v.parentNode.removeChild(v),v=null;else{v=p.div;mxEvent.addListener(v,"mouseleave",function(){v.parentNode.removeChild(v);v=null});b=O.getBoundingClientRect();var c=mxUtils.getDocumentScrollOrigin(document);v.style.left=c.x+b.left-1+"px";v.style.top=c.y+b.bottom-2+"px";document.body.appendChild(v);p.refresh()}}),Editor.tagsImage,mxResources.get("tags")||
"Tags");D.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){O.style.display=0<this.graph.getAllTags().length?"inline-block":"none"}));O.style.display=0<this.graph.getAllTags().length?"inline-block":"none"}}else"lightbox"==y?this.lightboxEnabled&&b(mxUtils.bind(this,function(){this.showLightbox()}),Editor.fullscreenImage,mxResources.get("fullscreen")||"Fullscreen"):null!=this.graphConfig["toolbar-buttons"]&&(y=this.graphConfig["toolbar-buttons"][y],null!=y&&(y.elem=b(null==y.enabled||y.enabled?
-y.handler:function(){},y.image,y.title,y.enabled)))}null!=this.graph.minimumContainerSize&&(this.graph.minimumContainerSize.width=34*q);null!=this.graphConfig.title&&(g=c.ownerDocument.createElement("div"),g.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",g.setAttribute("title",this.graphConfig.title),mxUtils.write(g,this.graphConfig.title),mxUtils.setOpacity(g,70),e.appendChild(g),this.filename=
-g);this.minToolbarWidth=34*q;var A=c.style.border,C=mxUtils.bind(this,function(){e.style.width="inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,c.offsetWidth)+"px";e.style.border="1px solid #d0d0d0";if(1!=this.graphConfig["toolbar-nohide"]){var b=c.getBoundingClientRect(),d=mxUtils.getScrollOrigin(document.body),d="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-d.x,top:-d.y},b={left:b.left-d.left,top:b.top-d.top,bottom:b.bottom-
+y.handler:function(){},y.image,y.title,y.enabled)))}null!=this.graph.minimumContainerSize&&(this.graph.minimumContainerSize.width=34*t);null!=this.graphConfig.title&&(g=c.ownerDocument.createElement("div"),g.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",g.setAttribute("title",this.graphConfig.title),mxUtils.write(g,this.graphConfig.title),mxUtils.setOpacity(g,70),e.appendChild(g),this.filename=
+g);this.minToolbarWidth=34*t;var A=c.style.border,C=mxUtils.bind(this,function(){e.style.width="inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,c.offsetWidth)+"px";e.style.border="1px solid #d0d0d0";if(1!=this.graphConfig["toolbar-nohide"]){var b=c.getBoundingClientRect(),d=mxUtils.getScrollOrigin(document.body),d="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-d.x,top:-d.y},b={left:b.left-d.left,top:b.top-d.top,bottom:b.bottom-
d.top,right:b.right-d.left};e.style.left=b.left+"px";"bottom"==this.graphConfig["toolbar-position"]?e.style.top=b.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(e.style.marginTop=-this.toolbarHeight+"px",e.style.top=b.top+1+"px"):e.style.top=b.top+"px";"1px solid transparent"==A&&(c.style.border="1px solid #d0d0d0");document.body.appendChild(e);var f=mxUtils.bind(this,function(){null!=e.parentNode&&e.parentNode.removeChild(e);null!=m&&(m.parentNode.removeChild(m),m=null);c.style.border=
A});mxEvent.addListener(document,"mousemove",function(b){for(b=mxEvent.getSource(b);null!=b;){if(b==c||b==e||b==m)return;b=b.parentNode}f()});mxEvent.addListener(document.body,"mouseleave",function(b){f()})}else e.style.top=-this.toolbarHeight+"px",c.appendChild(e)});1!=this.graphConfig["toolbar-nohide"]?mxEvent.addListener(c,"mouseenter",C):C();this.responsive&&"undefined"!==typeof ResizeObserver&&(new ResizeObserver(function(){null!=e.parentNode&&C()})).observe(c)};
GraphViewer.prototype.disableButton=function(b){var c=this.graphConfig["toolbar-buttons"]?this.graphConfig["toolbar-buttons"][b]:null;null!=c&&(mxUtils.setOpacity(c.elem,30),mxEvent.removeListener(c.elem,"click",c.handler),mxEvent.addListener(c.elem,"mouseenter",function(){c.elem.style.backgroundColor="#eee"}))};
@@ -4164,19 +4164,19 @@ this.graphConfig.highlight&&(e.highlight=this.graphConfig.highlight.substring(1)
GraphViewer.prototype.showLocalLightbox=function(){mxUtils.getDocumentScrollOrigin(document);var b=document.createElement("div");b.style.cssText="position:fixed;top:0;left:0;bottom:0;right:0;";b.style.zIndex=this.lightboxZIndex;b.style.backgroundColor="#000000";mxUtils.setOpacity(b,70);document.body.appendChild(b);var c=document.createElement("img");c.setAttribute("border","0");c.setAttribute("src",Editor.closeBlackImage);c.style.cssText="position:fixed;top:32px;right:32px;";c.style.cursor="pointer";
mxEvent.addListener(c,"click",function(){f.destroy()});urlParams.pages="1";urlParams.page=this.currentPage;urlParams["page-id"]=this.graphConfig.pageId;urlParams["layer-ids"]=null!=this.graphConfig.layerIds&&0<this.graphConfig.layerIds.length?this.graphConfig.layerIds.join(" "):null;urlParams.nav=0!=this.graphConfig.nav?"1":"0";urlParams.layers=this.layersEnabled?"1":"0";this.tagsEnabled&&(urlParams.tags="{}");if(null==document.documentMode||10<=document.documentMode)Editor.prototype.editButtonLink=
this.graphConfig.edit,Editor.prototype.editButtonFunc=this.graphConfig.editFunc;EditorUi.prototype.updateActionStates=function(){};EditorUi.prototype.addBeforeUnloadListener=function(){};EditorUi.prototype.addChromelessClickHandler=function(){};var e=Graph.prototype.shadowId;Graph.prototype.shadowId="lightboxDropShadow";var f=new EditorUi(new Editor(!0),document.createElement("div"),!0);f.editor.editBlankUrl=this.editBlankUrl;f.editor.graph.shadowId="lightboxDropShadow";Graph.prototype.shadowId=e;
-f.refresh=function(){};var n=mxUtils.bind(this,function(b){27==b.keyCode&&f.destroy()}),l=f.destroy;f.destroy=function(){mxEvent.removeListener(document.documentElement,"keydown",n);document.body.removeChild(b);document.body.removeChild(c);document.body.style.overflow="auto";GraphViewer.resizeSensorEnabled=!0;l.apply(this,arguments)};var t=f.editor.graph,d=t.container;d.style.overflow="hidden";this.lightboxChrome?(d.style.border="1px solid #c0c0c0",d.style.margin="40px",mxEvent.addListener(document.documentElement,
-"keydown",n)):(b.style.display="none",c.style.display="none");var k=this;t.getImageFromBundles=function(b){return k.getImageUrl(b)};var g=f.createTemporaryGraph;f.createTemporaryGraph=function(){var b=g.apply(this,arguments);b.getImageFromBundles=function(b){return k.getImageUrl(b)};return b};this.graphConfig.move&&(t.isMoveCellsEvent=function(b){return!0});mxUtils.setPrefixedStyle(d.style,"border-radius","4px");d.style.position="fixed";GraphViewer.resizeSensorEnabled=!1;document.body.style.overflow=
-"hidden";mxClient.IS_SF||mxClient.IS_EDGE||(mxUtils.setPrefixedStyle(d.style,"transform","rotateY(90deg)"),mxUtils.setPrefixedStyle(d.style,"transition","all .25s ease-in-out"));this.addClickHandler(t,f);window.setTimeout(mxUtils.bind(this,function(){d.style.outline="none";d.style.zIndex=this.lightboxZIndex;c.style.zIndex=this.lightboxZIndex;document.body.appendChild(d);document.body.appendChild(c);f.setFileData(this.xml);mxUtils.setPrefixedStyle(d.style,"transform","rotateY(0deg)");f.chromelessToolbar.style.bottom=
-"60px";f.chromelessToolbar.style.zIndex=this.lightboxZIndex;document.body.appendChild(f.chromelessToolbar);f.getEditBlankXml=mxUtils.bind(this,function(){return this.xml});f.lightboxFit();f.chromelessResize();this.showLayers(t,this.graph);mxEvent.addListener(b,"click",function(){f.destroy()})}),0);return f};
+f.refresh=function(){};var n=mxUtils.bind(this,function(b){27==b.keyCode&&f.destroy()}),l=f.destroy;f.destroy=function(){mxEvent.removeListener(document.documentElement,"keydown",n);document.body.removeChild(b);document.body.removeChild(c);document.body.style.overflow="auto";GraphViewer.resizeSensorEnabled=!0;l.apply(this,arguments)};var q=f.editor.graph,d=q.container;d.style.overflow="hidden";this.lightboxChrome?(d.style.border="1px solid #c0c0c0",d.style.margin="40px",mxEvent.addListener(document.documentElement,
+"keydown",n)):(b.style.display="none",c.style.display="none");var k=this;q.getImageFromBundles=function(b){return k.getImageUrl(b)};var g=f.createTemporaryGraph;f.createTemporaryGraph=function(){var b=g.apply(this,arguments);b.getImageFromBundles=function(b){return k.getImageUrl(b)};return b};this.graphConfig.move&&(q.isMoveCellsEvent=function(b){return!0});mxUtils.setPrefixedStyle(d.style,"border-radius","4px");d.style.position="fixed";GraphViewer.resizeSensorEnabled=!1;document.body.style.overflow=
+"hidden";mxClient.IS_SF||mxClient.IS_EDGE||(mxUtils.setPrefixedStyle(d.style,"transform","rotateY(90deg)"),mxUtils.setPrefixedStyle(d.style,"transition","all .25s ease-in-out"));this.addClickHandler(q,f);window.setTimeout(mxUtils.bind(this,function(){d.style.outline="none";d.style.zIndex=this.lightboxZIndex;c.style.zIndex=this.lightboxZIndex;document.body.appendChild(d);document.body.appendChild(c);f.setFileData(this.xml);mxUtils.setPrefixedStyle(d.style,"transform","rotateY(0deg)");f.chromelessToolbar.style.bottom=
+"60px";f.chromelessToolbar.style.zIndex=this.lightboxZIndex;document.body.appendChild(f.chromelessToolbar);f.getEditBlankXml=mxUtils.bind(this,function(){return this.xml});f.lightboxFit();f.chromelessResize();this.showLayers(q,this.graph);mxEvent.addListener(b,"click",function(){f.destroy()})}),0);return f};
GraphViewer.prototype.updateTitle=function(b){b=b||"";this.showTitleAsTooltip&&null!=this.graph&&null!=this.graph.container&&this.graph.container.setAttribute("title",b);null!=this.filename&&(this.filename.innerHTML="",mxUtils.write(this.filename,b),this.filename.setAttribute("title",b))};
GraphViewer.processElements=function(b){mxUtils.forEach(GraphViewer.getElementsByClassName(b||"mxgraph"),function(b){try{b.innerHTML="",GraphViewer.createViewerForElement(b)}catch(e){b.innerHTML=e.message,null!=window.console&&console.error(e)}})};
GraphViewer.getElementsByClassName=function(b){if(document.getElementsByClassName){var c=document.getElementsByClassName(b);b=[];for(var e=0;e<c.length;e++)b.push(c[e]);return b}for(var f=document.getElementsByTagName("*"),c=[],e=0;e<f.length;e++){var n=f[e].className;null!=n&&0<n.length&&(n=n.split(" "),0<=mxUtils.indexOf(n,b)&&c.push(f[e]))}return c};
GraphViewer.createViewerForElement=function(b,c){var e=b.getAttribute("data-mxgraph");if(null!=e){var f=JSON.parse(e),n=function(e){e=mxUtils.parseXml(e);e=new GraphViewer(b,e.documentElement,f);null!=c&&c(e)};null!=f.url?GraphViewer.getUrl(f.url,function(b){n(b)}):n(f.xml)}};
GraphViewer.initCss=function(){try{var b=document.createElement("style");b.type="text/css";b.innerHTML="div.mxTooltip {\n-webkit-box-shadow: 3px 3px 12px #C0C0C0;\n-moz-box-shadow: 3px 3px 12px #C0C0C0;\nbox-shadow: 3px 3px 12px #C0C0C0;\nbackground: #FFFFCC;\nborder-style: solid;\nborder-width: 1px;\nborder-color: black;\nfont-family: Arial;\nfont-size: 8pt;\nposition: absolute;\ncursor: default;\npadding: 4px;\ncolor: black;}\ntd.mxPopupMenuIcon div {\nwidth:16px;\nheight:16px;}\nhtml div.mxPopupMenu {\n-webkit-box-shadow:2px 2px 3px #d5d5d5;\n-moz-box-shadow:2px 2px 3px #d5d5d5;\nbox-shadow:2px 2px 3px #d5d5d5;\n_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d0d0d0',Positive='true');\nbackground:white;\nposition:absolute;\nborder:3px solid #e7e7e7;\npadding:3px;}\nhtml table.mxPopupMenu {\nborder-collapse:collapse;\nmargin:0px;}\nhtml td.mxPopupMenuItem {\npadding:7px 30px 7px 30px;\nfont-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;}\nhtml td.mxPopupMenuIcon {\nbackground-color:white;\npadding:0px;}\ntd.mxPopupMenuIcon .geIcon {\npadding:2px;\npadding-bottom:4px;\nmargin:2px;\nborder:1px solid transparent;\nopacity:0.5;\n_width:26px;\n_height:26px;}\ntd.mxPopupMenuIcon .geIcon:hover {\nborder:1px solid gray;\nborder-radius:2px;\nopacity:1;}\nhtml tr.mxPopupMenuItemHover {\nbackground-color: #eeeeee;\ncolor: black;}\ntable.mxPopupMenu hr {\ncolor:#cccccc;\nbackground-color:#cccccc;\nborder:none;\nheight:1px;}\ntable.mxPopupMenu tr {\tfont-size:4pt;}\n.geDialog { font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;\nborder:none;\nmargin:0px;}\n.geDialog {\tposition:absolute;\tbackground:white;\toverflow:hidden;\tpadding:30px;\tborder:1px solid #acacac;\t-webkit-box-shadow:0px 0px 2px 2px #d5d5d5;\t-moz-box-shadow:0px 0px 2px 2px #d5d5d5;\tbox-shadow:0px 0px 2px 2px #d5d5d5;\t_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d5d5d5', Positive='true');\tz-index: 2;}.geDialogClose {\tposition:absolute;\twidth:9px;\theight:9px;\topacity:0.5;\tcursor:pointer;\t_filter:alpha(opacity=50);}.geDialogClose:hover {\topacity:1;}.geDialogTitle {\tbox-sizing:border-box;\twhite-space:nowrap;\tbackground:rgb(229, 229, 229);\tborder-bottom:1px solid rgb(192, 192, 192);\tfont-size:15px;\tfont-weight:bold;\ttext-align:center;\tcolor:rgb(35, 86, 149);}.geDialogFooter {\tbackground:whiteSmoke;\twhite-space:nowrap;\ttext-align:right;\tbox-sizing:border-box;\tborder-top:1px solid #e5e5e5;\tcolor:darkGray;}\n.geBtn {\tbackground-color: #f5f5f5;\tborder-radius: 2px;\tborder: 1px solid #d8d8d8;\tcolor: #333;\tcursor: default;\tfont-size: 11px;\tfont-weight: bold;\theight: 29px;\tline-height: 27px;\tmargin: 0 0 0 8px;\tmin-width: 72px;\toutline: 0;\tpadding: 0 8px;\tcursor: pointer;}.geBtn:hover, .geBtn:focus {\t-webkit-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\t-moz-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tbox-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tborder: 1px solid #c6c6c6;\tbackground-color: #f8f8f8;\tbackground-image: linear-gradient(#f8f8f8 0px,#f1f1f1 100%);\tcolor: #111;}.geBtn:disabled {\topacity: .5;}.gePrimaryBtn {\tbackground-color: #4d90fe;\tbackground-image: linear-gradient(#4d90fe 0px,#4787ed 100%);\tborder: 1px solid #3079ed;\tcolor: #fff;}.gePrimaryBtn:hover, .gePrimaryBtn:focus {\tbackground-color: #357ae8;\tbackground-image: linear-gradient(#4d90fe 0px,#357ae8 100%);\tborder: 1px solid #2f5bb7;\tcolor: #fff;}.gePrimaryBtn:disabled {\topacity: .5;}";document.getElementsByTagName("head")[0].appendChild(b)}catch(c){}};
GraphViewer.cachedUrls={};GraphViewer.getUrl=function(b,c,e){if(null!=GraphViewer.cachedUrls[b])c(GraphViewer.cachedUrls[b]);else{var f=null!=navigator.userAgent&&0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;f.open("GET",b);f.onload=function(){c(null!=f.getText?f.getText():f.responseText)};f.onerror=e;f.send()}};GraphViewer.resizeSensorEnabled=!0;GraphViewer.useResizeSensor=!0;
-(function(){var b=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(b){return window.setTimeout(b,20)},c=function(e,f){function n(){this.q=[];this.add=function(b){this.q.push(b)};var b,c;this.call=function(){b=0;for(c=this.q.length;b<c;b++)this.q[b].call()}}function l(b,c){return b.currentStyle?b.currentStyle[c]:window.getComputedStyle?window.getComputedStyle(b,null).getPropertyValue(c):b.style[c]}function t(c,d){if(!c.resizedAttached)c.resizedAttached=
+(function(){var b=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(b){return window.setTimeout(b,20)},c=function(e,f){function n(){this.q=[];this.add=function(b){this.q.push(b)};var b,c;this.call=function(){b=0;for(c=this.q.length;b<c;b++)this.q[b].call()}}function l(b,c){return b.currentStyle?b.currentStyle[c]:window.getComputedStyle?window.getComputedStyle(b,null).getPropertyValue(c):b.style[c]}function q(c,d){if(!c.resizedAttached)c.resizedAttached=
new n,c.resizedAttached.add(d);else if(c.resizedAttached){c.resizedAttached.add(d);return}c.resizeSensor=document.createElement("div");c.resizeSensor.className="resize-sensor";c.resizeSensor.style.cssText="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;";c.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s;"></div></div><div class="resize-sensor-shrink" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s; width: 200%; height: 200%"></div></div>';
c.appendChild(c.resizeSensor);"static"==l(c,"position")&&(c.style.position="relative");var e=c.resizeSensor.childNodes[0],f=e.childNodes[0],g=c.resizeSensor.childNodes[1],k=function(){f.style.width="100000px";f.style.height="100000px";e.scrollLeft=1E5;e.scrollTop=1E5;g.scrollLeft=1E5;g.scrollTop=1E5};k();var m=!1,p=function(){c.resizedAttached&&(m&&(c.resizedAttached.call(),m=!1),b(p))};b(p);var q,t,O,A,C=function(){if((O=c.offsetWidth)!=q||(A=c.offsetHeight)!=t)m=!0,q=O,t=A;k()},E=function(b,c,d){b.attachEvent?
-b.attachEvent("on"+c,d):b.addEventListener(c,d)};E(e,"scroll",C);E(g,"scroll",C)}var d=function(){GraphViewer.resizeSensorEnabled&&f()},k=Object.prototype.toString.call(e),g="[object Array]"===k||"[object NodeList]"===k||"[object HTMLCollection]"===k||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(g)for(var k=0,q=e.length;k<q;k++)t(e[k],d);else t(e,d);this.detach=function(){if(g)for(var b=0,d=e.length;b<d;b++)c.detach(e[b]);else c.detach(e)}};
+b.attachEvent("on"+c,d):b.addEventListener(c,d)};E(e,"scroll",C);E(g,"scroll",C)}var d=function(){GraphViewer.resizeSensorEnabled&&f()},k=Object.prototype.toString.call(e),g="[object Array]"===k||"[object NodeList]"===k||"[object HTMLCollection]"===k||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(g)for(var k=0,t=e.length;k<t;k++)q(e[k],d);else q(e,d);this.detach=function(){if(g)for(var b=0,d=e.length;b<d;b++)c.detach(e[b]);else c.detach(e)}};
c.detach=function(b){b.resizeSensor&&(b.removeChild(b.resizeSensor),delete b.resizeSensor,delete b.resizedAttached)};window.ResizeSensor=c})();
(function(){Editor.initMath();GraphViewer.initCss();if(null!=window.onDrawioViewerLoad)window.onDrawioViewerLoad();else GraphViewer.processElements()})();
diff --git a/src/main/webapp/mxgraph/mxClient.js b/src/main/webapp/mxgraph/mxClient.js
index 78430091..f8acb99f 100644
--- a/src/main/webapp/mxgraph/mxClient.js
+++ b/src/main/webapp/mxgraph/mxClient.js
@@ -1,4 +1,4 @@
-var mxClient={VERSION:"17.3.0",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+var mxClient={VERSION:"17.4.0",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&2<navigator.maxTouchPoints,IS_WEBVIEW:/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&
0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!==
diff --git a/src/main/webapp/plugins/cConf-1-4-8.js b/src/main/webapp/plugins/cConf-1-4-8.js
index b1684112..6ed5ba70 100644
--- a/src/main/webapp/plugins/cConf-1-4-8.js
+++ b/src/main/webapp/plugins/cConf-1-4-8.js
@@ -1357,7 +1357,7 @@ Draw.loadPlugin(function(ui)
EmbedFile.prototype.isRealtimeSupported = function()
{
- return true;
+ return urlParams['lockdown'] != '1';
};
/**
diff --git a/src/main/webapp/service-worker.js b/src/main/webapp/service-worker.js
index bbe6e427..ff79fc55 100644
--- a/src/main/webapp/service-worker.js
+++ b/src/main/webapp/service-worker.js
@@ -1,2 +1,2 @@
-if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let i=Promise.resolve();return r[e]||(i=new Promise((async i=>{if("document"in self){const r=document.createElement("script");r.src=e,document.head.appendChild(r),r.onload=i}else importScripts(e),i()}))),i.then((()=>{if(!r[e])throw new Error(`Module ${e} didn’t register its module`);return r[e]}))},i=(i,r)=>{Promise.all(i.map(e)).then((e=>r(1===e.length?e[0]:e)))},r={require:Promise.resolve(i)};self.define=(i,a,c)=>{r[i]||(r[i]=Promise.resolve().then((()=>{let r={};const s={uri:location.origin+i.slice(1)};return Promise.all(a.map((i=>{switch(i){case"exports":return r;case"module":return s;default:return e(i)}}))).then((e=>{const i=c(...e);return r.default||(r.default=i),r}))})))}}define("./service-worker.js",["./workbox-d4d5b410"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"js/app.min.js",revision:"2f6ddd6b2023edc5c92b3c9460de9e15"},{url:"js/extensions.min.js",revision:"37f5d674984e6068cbb55d3f808d614a"},{url:"js/stencils.min.js",revision:"b94985e99c2f3b955df5e7d229ab9816"},{url:"js/shapes-14-6-5.min.js",revision:"e7064eae84696b8f0e8d43a130ae1b70"},{url:"js/math-print.js",revision:"0611491c663261a732ff18224906184d"},{url:"index.html",revision:"8b5b1cf07fc74454cf354717e9d18534"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/fonts/ArchitectsDaughter-Regular.ttf",revision:"31c2153c0530e32553b31a49b3d70736"},{url:"styles/grapheditor.css",revision:"748da0cd0a068a52eac70ee2b2c194fe"},{url:"styles/atlas.css",revision:"e8152cda9233d3a3af017422993abfce"},{url:"styles/dark.css",revision:"3179f617dd02efd2cefeb8c06f965880"},{url:"js/dropbox/Dropbox-sdk.min.js",revision:"4b9842892aa37b156db0a8364b7a83b0"},{url:"js/onedrive/OneDrive.js",revision:"505e8280346666f7ee801bc59521fa67"},{url:"js/viewer-static.min.js",revision:"84fdd7015e909c6e3ed31585d326aacb"},{url:"connect/jira/editor-1-3-3.html",revision:"a2b0e7267a08a838f3cc404eba831ec0"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"c96db1790184cb35781f791e8d1dafd9"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"ba7ece2dfb2833b72f97280d7092f25e"},{url:"connect/jira/viewerPanel.js",revision:"ea330a9486a83e94dd585a96ae1742f2"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"01caa325f3ad3f6565e0b4228907fb63"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"e00ad51fc16b87c362d6eaf930ab1fa5"},{url:"connect/jira/fullscreen-viewer.js",revision:"4e0775a6c156a803e777870623ac7c3e"},{url:"plugins/connectJira.js",revision:"4cefa13414e0d406550f3c073923080c"},{url:"plugins/cConf-comments.js",revision:"c787357209cff2986dcca567b599e2ef"},{url:"plugins/cConf-1-4-8.js",revision:"662443f5423cfbacce6d3bfcfdf48277"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"fd6dfeccdd0303b460445f157b220768"},{url:"connect/new_common/cac.js",revision:"3d8c436c566db645fb1e6e6ba9f69bbc"},{url:"connect/gdrive_common/gac.js",revision:"38f1df3ecc4d78290493f47e62202138"},{url:"connect/onedrive_common/ac.js",revision:"d089f12446d443ca01752a5115456fcc"},{url:"connect/confluence/viewer-init.js",revision:"78817776b4dc4d197809645bc6d6fa6c"},{url:"connect/confluence/viewer.js",revision:"f9f0559890b5cf56ee9b67710c9d08fb"},{url:"connect/confluence/viewer-1-4-42.html",revision:"4c58f3a1a4c99b1c4264593b6e05100b"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"8cd74a2fb60bf2e3e86026d66107cf11"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"4c7730a67df6bacf5ca6d8a40cfd6e87"},{url:"connect/confluence/includeDiagram.html",revision:"c03c89622d22227313645900af4e3c3d"},{url:"connect/confluence/macro-editor.js",revision:"e273a48b8e81faac4530bf1a68d75aa0"},{url:"math/MathJax.js",revision:"b2c103388b71bb3d11cbf9aa45fe9b68"},{url:"math/config/TeX-MML-AM_SVG-full.js",revision:"d5cb8ac04050983170ae4af145bc66ff"},{url:"math/jax/output/SVG/fonts/TeX/fontdata.js",revision:"495e5a410955d1b6178870e605890ede"},{url:"math/jax/element/mml/optable/BasicLatin.js",revision:"cac9b2e71382e62270baa55fab07cc13"},{url:"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js",revision:"e3e5e4d5924beed29f0844550b5c8f46"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js",revision:"0767cbad7275b53da128e7e5e1109f7c"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js",revision:"346302a5c5ee00e01c302148c56dbfe3"},{url:"resources/dia.txt",revision:"97460e57f41f6f88232d5dc99a6eb3eb"},{url:"resources/dia_am.txt",revision:"a5e842ccc0c0a2aec4668e3068a93e85"},{url:"resources/dia_ar.txt",revision:"3f048ed2af30d3dac318fb486b42d387"},{url:"resources/dia_bg.txt",revision:"b1dbc906a6e31075ae8959a7d51d7466"},{url:"resources/dia_bn.txt",revision:"f1e8da90e1b7179c8da80dd3122dffd8"},{url:"resources/dia_bs.txt",revision:"271e895cb4a5bc15f6e94419da589952"},{url:"resources/dia_ca.txt",revision:"1c496be9d97a6a85e2944ea5ab2f715e"},{url:"resources/dia_cs.txt",revision:"5f0c4aa4dad255c94dfa5b9eee3fec64"},{url:"resources/dia_da.txt",revision:"db7c52e89f1256e9d4165994042ced90"},{url:"resources/dia_de.txt",revision:"c81d3d5762058e475866ecd3a03d9076"},{url:"resources/dia_el.txt",revision:"38251ac912e11bbcd30f281823bb7752"},{url:"resources/dia_eo.txt",revision:"6eb2dfcdfc1bc389252b9122fc82e8ab"},{url:"resources/dia_es.txt",revision:"9367226bb4cb0dadae75629fa42dc2b4"},{url:"resources/dia_et.txt",revision:"ddd1793b0a9637384cf37a6f16d13042"},{url:"resources/dia_eu.txt",revision:"7c9eba4ff201a5c1cb431b4086aeff46"},{url:"resources/dia_fa.txt",revision:"e229143767ea93cc6c526ed895cd9181"},{url:"resources/dia_fi.txt",revision:"9797c90525b31b6f0d26791a857c450b"},{url:"resources/dia_fil.txt",revision:"1ca1317655214fa3289cf1bc04896386"},{url:"resources/dia_fr.txt",revision:"15a23a45fc8a2f2ea50cd363191cd22b"},{url:"resources/dia_gl.txt",revision:"da1033834dca8a4da9a7204e18d93827"},{url:"resources/dia_gu.txt",revision:"5bf6e1df052106e1f223222f17ec8565"},{url:"resources/dia_he.txt",revision:"271d37ec7c9da8b719e06d1b6dca76d9"},{url:"resources/dia_hi.txt",revision:"77afeabd23b8cf504c794798a9d9cb34"},{url:"resources/dia_hr.txt",revision:"c709af584b472fde2a342139543590bc"},{url:"resources/dia_hu.txt",revision:"c392e59fde0f3a453d3efc0c6b3d335f"},{url:"resources/dia_id.txt",revision:"db55092154bd3dc394b76d91feb9b02f"},{url:"resources/dia_it.txt",revision:"bc760647e0dcd478637b3fc0b2db1ff1"},{url:"resources/dia_ja.txt",revision:"edfd3ab8fc04c63f415530df2c5c9796"},{url:"resources/dia_kn.txt",revision:"b828b8a9f90eade05823c845063378a8"},{url:"resources/dia_ko.txt",revision:"726ae7d3e7749e325dd26cd12315229c"},{url:"resources/dia_lt.txt",revision:"321856df5d63271e517e587c6f7f9f00"},{url:"resources/dia_lv.txt",revision:"6a9b6d4f78e68185a613faf9b860142a"},{url:"resources/dia_ml.txt",revision:"a8b6aea101345516bd47d45cb1a06778"},{url:"resources/dia_mr.txt",revision:"2e1b5ad18eb128544f201b56f0c7defe"},{url:"resources/dia_ms.txt",revision:"1af2ae1cb4d5c65bc698fb2c5c8be202"},{url:"resources/dia_my.txt",revision:"97460e57f41f6f88232d5dc99a6eb3eb"},{url:"resources/dia_nl.txt",revision:"c8d64cdd4b0316755a9096921b084c1f"},{url:"resources/dia_no.txt",revision:"5ac60f4b3aa259e7029301ac308eebf7"},{url:"resources/dia_pl.txt",revision:"ac56f3bc965462190d7ecf420f16d252"},{url:"resources/dia_pt-br.txt",revision:"6126148b43ae5167d72b2b301e9442a4"},{url:"resources/dia_pt.txt",revision:"5ee4942941f53f0f9dbc5030bde49600"},{url:"resources/dia_ro.txt",revision:"9f608314999fe1f766c5fcbc1b3c2275"},{url:"resources/dia_ru.txt",revision:"7bf56abb74fdfdc3da2a5cc693da7fd2"},{url:"resources/dia_si.txt",revision:"97460e57f41f6f88232d5dc99a6eb3eb"},{url:"resources/dia_sk.txt",revision:"89aa5664f2f99c7e9db29f4c33466742"},{url:"resources/dia_sl.txt",revision:"73394ce42015875f7d310ed8d8435745"},{url:"resources/dia_sr.txt",revision:"efb0f81b562b2a3508133dcbfc7f0513"},{url:"resources/dia_sv.txt",revision:"63a01b5ca59c4f827448ce67a12e6f77"},{url:"resources/dia_sw.txt",revision:"f286f34178c5ef9160aa195e52e74f03"},{url:"resources/dia_ta.txt",revision:"8486a5514e329066443e50c4a5b1ce85"},{url:"resources/dia_te.txt",revision:"432dee8cc9bca4081bdf89bfc534c28e"},{url:"resources/dia_th.txt",revision:"cc1afa8f5ad00191e1ba74a04b74c305"},{url:"resources/dia_tr.txt",revision:"559ff9ab0eb494851a798468cb8170f2"},{url:"resources/dia_uk.txt",revision:"175deb4a44e9aeaefad09e85c2641779"},{url:"resources/dia_vi.txt",revision:"79773d6761bbadf10a6fb1879ecf68d4"},{url:"resources/dia_zh-tw.txt",revision:"464a47ae356ffe4473aaffa6b910f479"},{url:"resources/dia_zh.txt",revision:"ed6fae497653dee47c82934da14e9e77"},{url:"favicon.ico",revision:"fab2d88b37c72d83607527573de45281"},{url:"images/manifest.json",revision:"c6236bde53ed79aaaec60a1aca8ee2ef"},{url:"images/logo.png",revision:"89630b64b911ebe0daa3dfe442087cfa"},{url:"images/drawlogo.svg",revision:"4bf4d14ebcf072d8bd4c5a1c89e88fc6"},{url:"images/drawlogo48.png",revision:"8b13428373aca67b895364d025f42417"},{url:"images/drawlogo-gray.svg",revision:"0aabacbc0873816e1e09e4736ae44c7d"},{url:"images/drawlogo-text-bottom.svg",revision:"f6c438823ab31f290940bd4feb8dd9c2"},{url:"images/default-user.jpg",revision:"2c399696a87c8921f12d2f9e1990cc6e"},{url:"images/logo-flat-small.png",revision:"4b178e59ff499d6dd1894fc498b59877"},{url:"images/apple-touch-icon.png",revision:"73da7989a23ce9a4be565ec65658a239"},{url:"images/favicon-16x16.png",revision:"1a79d5461a5d2bf21f6652e0ac20d6e5"},{url:"images/favicon-32x32.png",revision:"e3b92da2febe70bad5372f6f3474b034"},{url:"images/android-chrome-196x196.png",revision:"f8c045b2d7b1c719fda64edab04c415c"},{url:"images/android-chrome-512x512.png",revision:"959b5fac2453963ff6d60fb85e4b73fd"},{url:"images/delete.png",revision:"5f2350f2fd20f1a229637aed32ed8f29"},{url:"images/droptarget.png",revision:"bbf7f563fb6784de1ce96f329519b043"},{url:"images/help.png",revision:"9266c6c3915bd33c243d80037d37bf61"},{url:"images/download.png",revision:"35418dd7bd48d87502c71b578cc6c37f"},{url:"images/logo-flat.png",revision:"038070ab43aee6e54a791211859fc67b"},{url:"images/google-drive-logo.svg",revision:"5d9f2f5bbc7dcc252730a0072bb23059"},{url:"images/onedrive-logo.svg",revision:"3645b344ec0634c1290dd58d7dc87b97"},{url:"images/dropbox-logo.svg",revision:"e6be408c77cf9c82d41ac64fa854280a"},{url:"images/github-logo.svg",revision:"a1a999b69a275eac0cb918360ac05ae1"},{url:"images/gitlab-logo.svg",revision:"0faea8c818899e58533e153c44b10517"},{url:"images/trello-logo.svg",revision:"006fd0d7d70d7e95dc691674cb12e044"},{url:"images/osa_drive-harddisk.png",revision:"b954e1ae772087c5b4c6ae797e1f9649"},{url:"images/osa_database.png",revision:"c350d9d9b95f37b6cfe798b40ede5fb0"},{url:"images/google-drive-logo-white.svg",revision:"f329d8b1be7778515a85b93fc35d9f26"},{url:"images/dropbox-logo-white.svg",revision:"4ea8299ac3bc31a16f199ee3aec223bf"},{url:"images/onedrive-logo-white.svg",revision:"b3602fa0fc947009cff3f33a581cff4d"},{url:"images/github-logo-white.svg",revision:"537b1127b3ca0f95b45782d1304fb77a"},{url:"images/gitlab-logo-white.svg",revision:"5fede9ac2f394c716b8c23e3fddc3910"},{url:"images/trello-logo-white-orange.svg",revision:"e2a0a52ba3766682f138138d10a75eb5"},{url:"images/logo-confluence.png",revision:"ed1e55d44ae5eba8f999aba2c93e8331"},{url:"images/logo-jira.png",revision:"f8d460555a0d1f87cfd901e940666629"},{url:"images/clear.gif",revision:"db13c778e4382e0b55258d0f811d5d70"},{url:"images/spin.gif",revision:"487cbb40b9ced439aa1ad914e816d773"},{url:"images/checkmark.gif",revision:"ba764ce62f2bf952df5bbc2bb4d381c5"},{url:"images/hs.png",revision:"fefa1a03d92ebad25c88dca94a0b63db"},{url:"images/aui-wait.gif",revision:"5a474bcbd8d2f2826f03d10ea44bf60e"},{url:"mxgraph/css/common.css",revision:"b5b7280ec98671bb6c3847a36bc7ea12"},{url:"mxgraph/images/expanded.gif",revision:"2b67c2c035af1e9a5cc814f0d22074cf"},{url:"mxgraph/images/collapsed.gif",revision:"73cc826da002a3d740ca4ce6ec5c1f4a"},{url:"mxgraph/images/maximize.gif",revision:"5cd13d6925493ab51e876694cc1c2ec2"},{url:"mxgraph/images/minimize.gif",revision:"8957741b9b0f86af9438775f2aadbb54"},{url:"mxgraph/images/close.gif",revision:"8b84669812ac7382984fca35de8da48b"},{url:"mxgraph/images/resize.gif",revision:"a6477612b3567a34033f9cac6184eed3"},{url:"mxgraph/images/separator.gif",revision:"7819742ff106c97da7a801c2372bbbe5"},{url:"mxgraph/images/window.gif",revision:"fd9a21dd4181f98052a202a0a01f18ab"},{url:"mxgraph/images/window-title.gif",revision:"3fb1d6c43246cdf991a11dfe826dfe99"},{url:"mxgraph/images/button.gif",revision:"00759bdc3ad218fa739f584369541809"},{url:"mxgraph/images/point.gif",revision:"83a43717b284902442620f61bc4e9fa6"}],{ignoreURLParametersMatching:[/.*/]})}));
+if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let i=Promise.resolve();return r[e]||(i=new Promise((async i=>{if("document"in self){const r=document.createElement("script");r.src=e,document.head.appendChild(r),r.onload=i}else importScripts(e),i()}))),i.then((()=>{if(!r[e])throw new Error(`Module ${e} didn’t register its module`);return r[e]}))},i=(i,r)=>{Promise.all(i.map(e)).then((e=>r(1===e.length?e[0]:e)))},r={require:Promise.resolve(i)};self.define=(i,a,c)=>{r[i]||(r[i]=Promise.resolve().then((()=>{let r={};const s={uri:location.origin+i.slice(1)};return Promise.all(a.map((i=>{switch(i){case"exports":return r;case"module":return s;default:return e(i)}}))).then((e=>{const i=c(...e);return r.default||(r.default=i),r}))})))}}define("./service-worker.js",["./workbox-d4d5b410"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"js/app.min.js",revision:"683fd54f51bd03cbdc0b0d0bd6e9d3be"},{url:"js/extensions.min.js",revision:"37f5d674984e6068cbb55d3f808d614a"},{url:"js/stencils.min.js",revision:"b94985e99c2f3b955df5e7d229ab9816"},{url:"js/shapes-14-6-5.min.js",revision:"e7064eae84696b8f0e8d43a130ae1b70"},{url:"js/math-print.js",revision:"0611491c663261a732ff18224906184d"},{url:"index.html",revision:"8b5b1cf07fc74454cf354717e9d18534"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/fonts/ArchitectsDaughter-Regular.ttf",revision:"31c2153c0530e32553b31a49b3d70736"},{url:"styles/grapheditor.css",revision:"748da0cd0a068a52eac70ee2b2c194fe"},{url:"styles/atlas.css",revision:"e8152cda9233d3a3af017422993abfce"},{url:"styles/dark.css",revision:"3179f617dd02efd2cefeb8c06f965880"},{url:"js/dropbox/Dropbox-sdk.min.js",revision:"4b9842892aa37b156db0a8364b7a83b0"},{url:"js/onedrive/OneDrive.js",revision:"505e8280346666f7ee801bc59521fa67"},{url:"js/viewer-static.min.js",revision:"7afd18a20db71ed73758348b6dd34666"},{url:"connect/jira/editor-1-3-3.html",revision:"a2b0e7267a08a838f3cc404eba831ec0"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"c96db1790184cb35781f791e8d1dafd9"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"ba7ece2dfb2833b72f97280d7092f25e"},{url:"connect/jira/viewerPanel.js",revision:"ea330a9486a83e94dd585a96ae1742f2"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"01caa325f3ad3f6565e0b4228907fb63"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"e00ad51fc16b87c362d6eaf930ab1fa5"},{url:"connect/jira/fullscreen-viewer.js",revision:"4e0775a6c156a803e777870623ac7c3e"},{url:"plugins/connectJira.js",revision:"4cefa13414e0d406550f3c073923080c"},{url:"plugins/cConf-comments.js",revision:"c787357209cff2986dcca567b599e2ef"},{url:"plugins/cConf-1-4-8.js",revision:"93db55d9b0e72103db8d0bcd9e26295e"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"fd6dfeccdd0303b460445f157b220768"},{url:"connect/new_common/cac.js",revision:"3d8c436c566db645fb1e6e6ba9f69bbc"},{url:"connect/gdrive_common/gac.js",revision:"38f1df3ecc4d78290493f47e62202138"},{url:"connect/onedrive_common/ac.js",revision:"d089f12446d443ca01752a5115456fcc"},{url:"connect/confluence/viewer-init.js",revision:"78817776b4dc4d197809645bc6d6fa6c"},{url:"connect/confluence/viewer.js",revision:"f9f0559890b5cf56ee9b67710c9d08fb"},{url:"connect/confluence/viewer-1-4-42.html",revision:"4c58f3a1a4c99b1c4264593b6e05100b"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"8cd74a2fb60bf2e3e86026d66107cf11"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"4c7730a67df6bacf5ca6d8a40cfd6e87"},{url:"connect/confluence/includeDiagram.html",revision:"c03c89622d22227313645900af4e3c3d"},{url:"connect/confluence/macro-editor.js",revision:"e273a48b8e81faac4530bf1a68d75aa0"},{url:"math/MathJax.js",revision:"b2c103388b71bb3d11cbf9aa45fe9b68"},{url:"math/config/TeX-MML-AM_SVG-full.js",revision:"d5cb8ac04050983170ae4af145bc66ff"},{url:"math/jax/output/SVG/fonts/TeX/fontdata.js",revision:"495e5a410955d1b6178870e605890ede"},{url:"math/jax/element/mml/optable/BasicLatin.js",revision:"cac9b2e71382e62270baa55fab07cc13"},{url:"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js",revision:"e3e5e4d5924beed29f0844550b5c8f46"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js",revision:"0767cbad7275b53da128e7e5e1109f7c"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js",revision:"346302a5c5ee00e01c302148c56dbfe3"},{url:"resources/dia.txt",revision:"97460e57f41f6f88232d5dc99a6eb3eb"},{url:"resources/dia_am.txt",revision:"a5e842ccc0c0a2aec4668e3068a93e85"},{url:"resources/dia_ar.txt",revision:"3f048ed2af30d3dac318fb486b42d387"},{url:"resources/dia_bg.txt",revision:"b1dbc906a6e31075ae8959a7d51d7466"},{url:"resources/dia_bn.txt",revision:"f1e8da90e1b7179c8da80dd3122dffd8"},{url:"resources/dia_bs.txt",revision:"271e895cb4a5bc15f6e94419da589952"},{url:"resources/dia_ca.txt",revision:"1c496be9d97a6a85e2944ea5ab2f715e"},{url:"resources/dia_cs.txt",revision:"5f0c4aa4dad255c94dfa5b9eee3fec64"},{url:"resources/dia_da.txt",revision:"db7c52e89f1256e9d4165994042ced90"},{url:"resources/dia_de.txt",revision:"c81d3d5762058e475866ecd3a03d9076"},{url:"resources/dia_el.txt",revision:"38251ac912e11bbcd30f281823bb7752"},{url:"resources/dia_eo.txt",revision:"6eb2dfcdfc1bc389252b9122fc82e8ab"},{url:"resources/dia_es.txt",revision:"9367226bb4cb0dadae75629fa42dc2b4"},{url:"resources/dia_et.txt",revision:"ddd1793b0a9637384cf37a6f16d13042"},{url:"resources/dia_eu.txt",revision:"7c9eba4ff201a5c1cb431b4086aeff46"},{url:"resources/dia_fa.txt",revision:"e229143767ea93cc6c526ed895cd9181"},{url:"resources/dia_fi.txt",revision:"9797c90525b31b6f0d26791a857c450b"},{url:"resources/dia_fil.txt",revision:"1ca1317655214fa3289cf1bc04896386"},{url:"resources/dia_fr.txt",revision:"15a23a45fc8a2f2ea50cd363191cd22b"},{url:"resources/dia_gl.txt",revision:"da1033834dca8a4da9a7204e18d93827"},{url:"resources/dia_gu.txt",revision:"5bf6e1df052106e1f223222f17ec8565"},{url:"resources/dia_he.txt",revision:"271d37ec7c9da8b719e06d1b6dca76d9"},{url:"resources/dia_hi.txt",revision:"77afeabd23b8cf504c794798a9d9cb34"},{url:"resources/dia_hr.txt",revision:"c709af584b472fde2a342139543590bc"},{url:"resources/dia_hu.txt",revision:"c392e59fde0f3a453d3efc0c6b3d335f"},{url:"resources/dia_id.txt",revision:"db55092154bd3dc394b76d91feb9b02f"},{url:"resources/dia_it.txt",revision:"bc760647e0dcd478637b3fc0b2db1ff1"},{url:"resources/dia_ja.txt",revision:"edfd3ab8fc04c63f415530df2c5c9796"},{url:"resources/dia_kn.txt",revision:"b828b8a9f90eade05823c845063378a8"},{url:"resources/dia_ko.txt",revision:"726ae7d3e7749e325dd26cd12315229c"},{url:"resources/dia_lt.txt",revision:"321856df5d63271e517e587c6f7f9f00"},{url:"resources/dia_lv.txt",revision:"6a9b6d4f78e68185a613faf9b860142a"},{url:"resources/dia_ml.txt",revision:"a8b6aea101345516bd47d45cb1a06778"},{url:"resources/dia_mr.txt",revision:"2e1b5ad18eb128544f201b56f0c7defe"},{url:"resources/dia_ms.txt",revision:"1af2ae1cb4d5c65bc698fb2c5c8be202"},{url:"resources/dia_my.txt",revision:"97460e57f41f6f88232d5dc99a6eb3eb"},{url:"resources/dia_nl.txt",revision:"c8d64cdd4b0316755a9096921b084c1f"},{url:"resources/dia_no.txt",revision:"5ac60f4b3aa259e7029301ac308eebf7"},{url:"resources/dia_pl.txt",revision:"ac56f3bc965462190d7ecf420f16d252"},{url:"resources/dia_pt-br.txt",revision:"6126148b43ae5167d72b2b301e9442a4"},{url:"resources/dia_pt.txt",revision:"5ee4942941f53f0f9dbc5030bde49600"},{url:"resources/dia_ro.txt",revision:"9f608314999fe1f766c5fcbc1b3c2275"},{url:"resources/dia_ru.txt",revision:"7bf56abb74fdfdc3da2a5cc693da7fd2"},{url:"resources/dia_si.txt",revision:"97460e57f41f6f88232d5dc99a6eb3eb"},{url:"resources/dia_sk.txt",revision:"89aa5664f2f99c7e9db29f4c33466742"},{url:"resources/dia_sl.txt",revision:"73394ce42015875f7d310ed8d8435745"},{url:"resources/dia_sr.txt",revision:"efb0f81b562b2a3508133dcbfc7f0513"},{url:"resources/dia_sv.txt",revision:"63a01b5ca59c4f827448ce67a12e6f77"},{url:"resources/dia_sw.txt",revision:"f286f34178c5ef9160aa195e52e74f03"},{url:"resources/dia_ta.txt",revision:"8486a5514e329066443e50c4a5b1ce85"},{url:"resources/dia_te.txt",revision:"432dee8cc9bca4081bdf89bfc534c28e"},{url:"resources/dia_th.txt",revision:"cc1afa8f5ad00191e1ba74a04b74c305"},{url:"resources/dia_tr.txt",revision:"559ff9ab0eb494851a798468cb8170f2"},{url:"resources/dia_uk.txt",revision:"175deb4a44e9aeaefad09e85c2641779"},{url:"resources/dia_vi.txt",revision:"79773d6761bbadf10a6fb1879ecf68d4"},{url:"resources/dia_zh-tw.txt",revision:"464a47ae356ffe4473aaffa6b910f479"},{url:"resources/dia_zh.txt",revision:"ed6fae497653dee47c82934da14e9e77"},{url:"favicon.ico",revision:"fab2d88b37c72d83607527573de45281"},{url:"images/manifest.json",revision:"c6236bde53ed79aaaec60a1aca8ee2ef"},{url:"images/logo.png",revision:"89630b64b911ebe0daa3dfe442087cfa"},{url:"images/drawlogo.svg",revision:"4bf4d14ebcf072d8bd4c5a1c89e88fc6"},{url:"images/drawlogo48.png",revision:"8b13428373aca67b895364d025f42417"},{url:"images/drawlogo-gray.svg",revision:"0aabacbc0873816e1e09e4736ae44c7d"},{url:"images/drawlogo-text-bottom.svg",revision:"f6c438823ab31f290940bd4feb8dd9c2"},{url:"images/default-user.jpg",revision:"2c399696a87c8921f12d2f9e1990cc6e"},{url:"images/logo-flat-small.png",revision:"4b178e59ff499d6dd1894fc498b59877"},{url:"images/apple-touch-icon.png",revision:"73da7989a23ce9a4be565ec65658a239"},{url:"images/favicon-16x16.png",revision:"1a79d5461a5d2bf21f6652e0ac20d6e5"},{url:"images/favicon-32x32.png",revision:"e3b92da2febe70bad5372f6f3474b034"},{url:"images/android-chrome-196x196.png",revision:"f8c045b2d7b1c719fda64edab04c415c"},{url:"images/android-chrome-512x512.png",revision:"959b5fac2453963ff6d60fb85e4b73fd"},{url:"images/delete.png",revision:"5f2350f2fd20f1a229637aed32ed8f29"},{url:"images/droptarget.png",revision:"bbf7f563fb6784de1ce96f329519b043"},{url:"images/help.png",revision:"9266c6c3915bd33c243d80037d37bf61"},{url:"images/download.png",revision:"35418dd7bd48d87502c71b578cc6c37f"},{url:"images/logo-flat.png",revision:"038070ab43aee6e54a791211859fc67b"},{url:"images/google-drive-logo.svg",revision:"5d9f2f5bbc7dcc252730a0072bb23059"},{url:"images/onedrive-logo.svg",revision:"3645b344ec0634c1290dd58d7dc87b97"},{url:"images/dropbox-logo.svg",revision:"e6be408c77cf9c82d41ac64fa854280a"},{url:"images/github-logo.svg",revision:"a1a999b69a275eac0cb918360ac05ae1"},{url:"images/gitlab-logo.svg",revision:"0faea8c818899e58533e153c44b10517"},{url:"images/trello-logo.svg",revision:"006fd0d7d70d7e95dc691674cb12e044"},{url:"images/osa_drive-harddisk.png",revision:"b954e1ae772087c5b4c6ae797e1f9649"},{url:"images/osa_database.png",revision:"c350d9d9b95f37b6cfe798b40ede5fb0"},{url:"images/google-drive-logo-white.svg",revision:"f329d8b1be7778515a85b93fc35d9f26"},{url:"images/dropbox-logo-white.svg",revision:"4ea8299ac3bc31a16f199ee3aec223bf"},{url:"images/onedrive-logo-white.svg",revision:"b3602fa0fc947009cff3f33a581cff4d"},{url:"images/github-logo-white.svg",revision:"537b1127b3ca0f95b45782d1304fb77a"},{url:"images/gitlab-logo-white.svg",revision:"5fede9ac2f394c716b8c23e3fddc3910"},{url:"images/trello-logo-white-orange.svg",revision:"e2a0a52ba3766682f138138d10a75eb5"},{url:"images/logo-confluence.png",revision:"ed1e55d44ae5eba8f999aba2c93e8331"},{url:"images/logo-jira.png",revision:"f8d460555a0d1f87cfd901e940666629"},{url:"images/clear.gif",revision:"db13c778e4382e0b55258d0f811d5d70"},{url:"images/spin.gif",revision:"487cbb40b9ced439aa1ad914e816d773"},{url:"images/checkmark.gif",revision:"ba764ce62f2bf952df5bbc2bb4d381c5"},{url:"images/hs.png",revision:"fefa1a03d92ebad25c88dca94a0b63db"},{url:"images/aui-wait.gif",revision:"5a474bcbd8d2f2826f03d10ea44bf60e"},{url:"mxgraph/css/common.css",revision:"b5b7280ec98671bb6c3847a36bc7ea12"},{url:"mxgraph/images/expanded.gif",revision:"2b67c2c035af1e9a5cc814f0d22074cf"},{url:"mxgraph/images/collapsed.gif",revision:"73cc826da002a3d740ca4ce6ec5c1f4a"},{url:"mxgraph/images/maximize.gif",revision:"5cd13d6925493ab51e876694cc1c2ec2"},{url:"mxgraph/images/minimize.gif",revision:"8957741b9b0f86af9438775f2aadbb54"},{url:"mxgraph/images/close.gif",revision:"8b84669812ac7382984fca35de8da48b"},{url:"mxgraph/images/resize.gif",revision:"a6477612b3567a34033f9cac6184eed3"},{url:"mxgraph/images/separator.gif",revision:"7819742ff106c97da7a801c2372bbbe5"},{url:"mxgraph/images/window.gif",revision:"fd9a21dd4181f98052a202a0a01f18ab"},{url:"mxgraph/images/window-title.gif",revision:"3fb1d6c43246cdf991a11dfe826dfe99"},{url:"mxgraph/images/button.gif",revision:"00759bdc3ad218fa739f584369541809"},{url:"mxgraph/images/point.gif",revision:"83a43717b284902442620f61bc4e9fa6"}],{ignoreURLParametersMatching:[/.*/]})}));
//# sourceMappingURL=service-worker.js.map
diff --git a/src/main/webapp/service-worker.js.map b/src/main/webapp/service-worker.js.map
index 12aabf36..7e43ef7a 100644
--- a/src/main/webapp/service-worker.js.map
+++ b/src/main/webapp/service-worker.js.map
@@ -1 +1 @@
-{"version":3,"file":"service-worker.js","sources":["../../../../../../../tmp/66072b69e510d9685fc0790bc519059a/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/opt/hostedtoolcache/node/14.19.0/x64/lib/node_modules/workbox-cli/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"js/app.min.js\",\n \"revision\": \"2f6ddd6b2023edc5c92b3c9460de9e15\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"37f5d674984e6068cbb55d3f808d614a\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"b94985e99c2f3b955df5e7d229ab9816\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"e7064eae84696b8f0e8d43a130ae1b70\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"0611491c663261a732ff18224906184d\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"8b5b1cf07fc74454cf354717e9d18534\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/fonts/ArchitectsDaughter-Regular.ttf\",\n \"revision\": \"31c2153c0530e32553b31a49b3d70736\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"748da0cd0a068a52eac70ee2b2c194fe\"\n },\n {\n \"url\": \"styles/atlas.css\",\n \"revision\": \"e8152cda9233d3a3af017422993abfce\"\n },\n {\n \"url\": \"styles/dark.css\",\n \"revision\": \"3179f617dd02efd2cefeb8c06f965880\"\n },\n {\n \"url\": \"js/dropbox/Dropbox-sdk.min.js\",\n \"revision\": \"4b9842892aa37b156db0a8364b7a83b0\"\n },\n {\n \"url\": \"js/onedrive/OneDrive.js\",\n \"revision\": \"505e8280346666f7ee801bc59521fa67\"\n },\n {\n \"url\": \"js/viewer-static.min.js\",\n \"revision\": \"84fdd7015e909c6e3ed31585d326aacb\"\n },\n {\n \"url\": \"connect/jira/editor-1-3-3.html\",\n \"revision\": \"a2b0e7267a08a838f3cc404eba831ec0\"\n },\n {\n \"url\": \"connect/jira/viewerPanel-1-3-12.html\",\n \"revision\": \"c96db1790184cb35781f791e8d1dafd9\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"ba7ece2dfb2833b72f97280d7092f25e\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"ea330a9486a83e94dd585a96ae1742f2\"\n },\n {\n \"url\": \"connect/jira/spinner.gif\",\n \"revision\": \"7d857ab9d86123e93d74d48e958fe743\"\n },\n {\n \"url\": \"connect/jira/editor.js\",\n \"revision\": \"01caa325f3ad3f6565e0b4228907fb63\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer-init.js\",\n \"revision\": \"e00ad51fc16b87c362d6eaf930ab1fa5\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer.js\",\n \"revision\": \"4e0775a6c156a803e777870623ac7c3e\"\n },\n {\n \"url\": \"plugins/connectJira.js\",\n \"revision\": \"4cefa13414e0d406550f3c073923080c\"\n },\n {\n \"url\": \"plugins/cConf-comments.js\",\n \"revision\": \"c787357209cff2986dcca567b599e2ef\"\n },\n {\n \"url\": \"plugins/cConf-1-4-8.js\",\n \"revision\": \"662443f5423cfbacce6d3bfcfdf48277\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"fd6dfeccdd0303b460445f157b220768\"\n },\n {\n \"url\": \"connect/new_common/cac.js\",\n \"revision\": \"3d8c436c566db645fb1e6e6ba9f69bbc\"\n },\n {\n \"url\": \"connect/gdrive_common/gac.js\",\n \"revision\": \"38f1df3ecc4d78290493f47e62202138\"\n },\n {\n \"url\": \"connect/onedrive_common/ac.js\",\n \"revision\": \"d089f12446d443ca01752a5115456fcc\"\n },\n {\n \"url\": \"connect/confluence/viewer-init.js\",\n \"revision\": \"78817776b4dc4d197809645bc6d6fa6c\"\n },\n {\n \"url\": \"connect/confluence/viewer.js\",\n \"revision\": \"f9f0559890b5cf56ee9b67710c9d08fb\"\n },\n {\n \"url\": \"connect/confluence/viewer-1-4-42.html\",\n \"revision\": \"4c58f3a1a4c99b1c4264593b6e05100b\"\n },\n {\n \"url\": \"connect/confluence/macroEditor-1-4-8.html\",\n \"revision\": \"8cd74a2fb60bf2e3e86026d66107cf11\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram-1-4-8.js\",\n \"revision\": \"4c7730a67df6bacf5ca6d8a40cfd6e87\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram.html\",\n \"revision\": \"c03c89622d22227313645900af4e3c3d\"\n },\n {\n \"url\": \"connect/confluence/macro-editor.js\",\n \"revision\": \"e273a48b8e81faac4530bf1a68d75aa0\"\n },\n {\n \"url\": \"math/MathJax.js\",\n \"revision\": \"b2c103388b71bb3d11cbf9aa45fe9b68\"\n },\n {\n \"url\": \"math/config/TeX-MML-AM_SVG-full.js\",\n \"revision\": \"d5cb8ac04050983170ae4af145bc66ff\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/fontdata.js\",\n \"revision\": \"495e5a410955d1b6178870e605890ede\"\n },\n {\n \"url\": \"math/jax/element/mml/optable/BasicLatin.js\",\n \"revision\": \"cac9b2e71382e62270baa55fab07cc13\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js\",\n \"revision\": \"e3e5e4d5924beed29f0844550b5c8f46\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js\",\n \"revision\": \"0767cbad7275b53da128e7e5e1109f7c\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js\",\n \"revision\": \"346302a5c5ee00e01c302148c56dbfe3\"\n },\n {\n \"url\": \"resources/dia.txt\",\n \"revision\": \"97460e57f41f6f88232d5dc99a6eb3eb\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"a5e842ccc0c0a2aec4668e3068a93e85\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"3f048ed2af30d3dac318fb486b42d387\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"b1dbc906a6e31075ae8959a7d51d7466\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"f1e8da90e1b7179c8da80dd3122dffd8\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"271e895cb4a5bc15f6e94419da589952\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"1c496be9d97a6a85e2944ea5ab2f715e\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"5f0c4aa4dad255c94dfa5b9eee3fec64\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"db7c52e89f1256e9d4165994042ced90\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"c81d3d5762058e475866ecd3a03d9076\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"38251ac912e11bbcd30f281823bb7752\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"6eb2dfcdfc1bc389252b9122fc82e8ab\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"9367226bb4cb0dadae75629fa42dc2b4\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"ddd1793b0a9637384cf37a6f16d13042\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"7c9eba4ff201a5c1cb431b4086aeff46\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"e229143767ea93cc6c526ed895cd9181\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"9797c90525b31b6f0d26791a857c450b\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"1ca1317655214fa3289cf1bc04896386\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"15a23a45fc8a2f2ea50cd363191cd22b\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"da1033834dca8a4da9a7204e18d93827\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"5bf6e1df052106e1f223222f17ec8565\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"271d37ec7c9da8b719e06d1b6dca76d9\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"77afeabd23b8cf504c794798a9d9cb34\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"c709af584b472fde2a342139543590bc\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"c392e59fde0f3a453d3efc0c6b3d335f\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"db55092154bd3dc394b76d91feb9b02f\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"bc760647e0dcd478637b3fc0b2db1ff1\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"edfd3ab8fc04c63f415530df2c5c9796\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"b828b8a9f90eade05823c845063378a8\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"726ae7d3e7749e325dd26cd12315229c\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"321856df5d63271e517e587c6f7f9f00\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"6a9b6d4f78e68185a613faf9b860142a\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"a8b6aea101345516bd47d45cb1a06778\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"2e1b5ad18eb128544f201b56f0c7defe\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"1af2ae1cb4d5c65bc698fb2c5c8be202\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"97460e57f41f6f88232d5dc99a6eb3eb\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"c8d64cdd4b0316755a9096921b084c1f\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"5ac60f4b3aa259e7029301ac308eebf7\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"ac56f3bc965462190d7ecf420f16d252\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"6126148b43ae5167d72b2b301e9442a4\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"5ee4942941f53f0f9dbc5030bde49600\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"9f608314999fe1f766c5fcbc1b3c2275\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"7bf56abb74fdfdc3da2a5cc693da7fd2\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"97460e57f41f6f88232d5dc99a6eb3eb\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"89aa5664f2f99c7e9db29f4c33466742\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"73394ce42015875f7d310ed8d8435745\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"efb0f81b562b2a3508133dcbfc7f0513\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"63a01b5ca59c4f827448ce67a12e6f77\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"f286f34178c5ef9160aa195e52e74f03\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"8486a5514e329066443e50c4a5b1ce85\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"432dee8cc9bca4081bdf89bfc534c28e\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"cc1afa8f5ad00191e1ba74a04b74c305\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"559ff9ab0eb494851a798468cb8170f2\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"175deb4a44e9aeaefad09e85c2641779\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"79773d6761bbadf10a6fb1879ecf68d4\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"464a47ae356ffe4473aaffa6b910f479\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"ed6fae497653dee47c82934da14e9e77\"\n },\n {\n \"url\": \"favicon.ico\",\n \"revision\": \"fab2d88b37c72d83607527573de45281\"\n },\n {\n \"url\": \"images/manifest.json\",\n \"revision\": \"c6236bde53ed79aaaec60a1aca8ee2ef\"\n },\n {\n \"url\": \"images/logo.png\",\n \"revision\": \"89630b64b911ebe0daa3dfe442087cfa\"\n },\n {\n \"url\": \"images/drawlogo.svg\",\n \"revision\": \"4bf4d14ebcf072d8bd4c5a1c89e88fc6\"\n },\n {\n \"url\": \"images/drawlogo48.png\",\n \"revision\": \"8b13428373aca67b895364d025f42417\"\n },\n {\n \"url\": \"images/drawlogo-gray.svg\",\n \"revision\": \"0aabacbc0873816e1e09e4736ae44c7d\"\n },\n {\n \"url\": \"images/drawlogo-text-bottom.svg\",\n \"revision\": \"f6c438823ab31f290940bd4feb8dd9c2\"\n },\n {\n \"url\": \"images/default-user.jpg\",\n \"revision\": \"2c399696a87c8921f12d2f9e1990cc6e\"\n },\n {\n \"url\": \"images/logo-flat-small.png\",\n \"revision\": \"4b178e59ff499d6dd1894fc498b59877\"\n },\n {\n \"url\": \"images/apple-touch-icon.png\",\n \"revision\": \"73da7989a23ce9a4be565ec65658a239\"\n },\n {\n \"url\": \"images/favicon-16x16.png\",\n \"revision\": \"1a79d5461a5d2bf21f6652e0ac20d6e5\"\n },\n {\n \"url\": \"images/favicon-32x32.png\",\n \"revision\": \"e3b92da2febe70bad5372f6f3474b034\"\n },\n {\n \"url\": \"images/android-chrome-196x196.png\",\n \"revision\": \"f8c045b2d7b1c719fda64edab04c415c\"\n },\n {\n \"url\": \"images/android-chrome-512x512.png\",\n \"revision\": \"959b5fac2453963ff6d60fb85e4b73fd\"\n },\n {\n \"url\": \"images/delete.png\",\n \"revision\": \"5f2350f2fd20f1a229637aed32ed8f29\"\n },\n {\n \"url\": \"images/droptarget.png\",\n \"revision\": \"bbf7f563fb6784de1ce96f329519b043\"\n },\n {\n \"url\": \"images/help.png\",\n \"revision\": \"9266c6c3915bd33c243d80037d37bf61\"\n },\n {\n \"url\": \"images/download.png\",\n \"revision\": \"35418dd7bd48d87502c71b578cc6c37f\"\n },\n {\n \"url\": \"images/logo-flat.png\",\n \"revision\": \"038070ab43aee6e54a791211859fc67b\"\n },\n {\n \"url\": \"images/google-drive-logo.svg\",\n \"revision\": \"5d9f2f5bbc7dcc252730a0072bb23059\"\n },\n {\n \"url\": \"images/onedrive-logo.svg\",\n \"revision\": \"3645b344ec0634c1290dd58d7dc87b97\"\n },\n {\n \"url\": \"images/dropbox-logo.svg\",\n \"revision\": \"e6be408c77cf9c82d41ac64fa854280a\"\n },\n {\n \"url\": \"images/github-logo.svg\",\n \"revision\": \"a1a999b69a275eac0cb918360ac05ae1\"\n },\n {\n \"url\": \"images/gitlab-logo.svg\",\n \"revision\": \"0faea8c818899e58533e153c44b10517\"\n },\n {\n \"url\": \"images/trello-logo.svg\",\n \"revision\": \"006fd0d7d70d7e95dc691674cb12e044\"\n },\n {\n \"url\": \"images/osa_drive-harddisk.png\",\n \"revision\": \"b954e1ae772087c5b4c6ae797e1f9649\"\n },\n {\n \"url\": \"images/osa_database.png\",\n \"revision\": \"c350d9d9b95f37b6cfe798b40ede5fb0\"\n },\n {\n \"url\": \"images/google-drive-logo-white.svg\",\n \"revision\": \"f329d8b1be7778515a85b93fc35d9f26\"\n },\n {\n \"url\": \"images/dropbox-logo-white.svg\",\n \"revision\": \"4ea8299ac3bc31a16f199ee3aec223bf\"\n },\n {\n \"url\": \"images/onedrive-logo-white.svg\",\n \"revision\": \"b3602fa0fc947009cff3f33a581cff4d\"\n },\n {\n \"url\": \"images/github-logo-white.svg\",\n \"revision\": \"537b1127b3ca0f95b45782d1304fb77a\"\n },\n {\n \"url\": \"images/gitlab-logo-white.svg\",\n \"revision\": \"5fede9ac2f394c716b8c23e3fddc3910\"\n },\n {\n \"url\": \"images/trello-logo-white-orange.svg\",\n \"revision\": \"e2a0a52ba3766682f138138d10a75eb5\"\n },\n {\n \"url\": \"images/logo-confluence.png\",\n \"revision\": \"ed1e55d44ae5eba8f999aba2c93e8331\"\n },\n {\n \"url\": \"images/logo-jira.png\",\n \"revision\": \"f8d460555a0d1f87cfd901e940666629\"\n },\n {\n \"url\": \"images/clear.gif\",\n \"revision\": \"db13c778e4382e0b55258d0f811d5d70\"\n },\n {\n \"url\": \"images/spin.gif\",\n \"revision\": \"487cbb40b9ced439aa1ad914e816d773\"\n },\n {\n \"url\": \"images/checkmark.gif\",\n \"revision\": \"ba764ce62f2bf952df5bbc2bb4d381c5\"\n },\n {\n \"url\": \"images/hs.png\",\n \"revision\": \"fefa1a03d92ebad25c88dca94a0b63db\"\n },\n {\n \"url\": \"images/aui-wait.gif\",\n \"revision\": \"5a474bcbd8d2f2826f03d10ea44bf60e\"\n },\n {\n \"url\": \"mxgraph/css/common.css\",\n \"revision\": \"b5b7280ec98671bb6c3847a36bc7ea12\"\n },\n {\n \"url\": \"mxgraph/images/expanded.gif\",\n \"revision\": \"2b67c2c035af1e9a5cc814f0d22074cf\"\n },\n {\n \"url\": \"mxgraph/images/collapsed.gif\",\n \"revision\": \"73cc826da002a3d740ca4ce6ec5c1f4a\"\n },\n {\n \"url\": \"mxgraph/images/maximize.gif\",\n \"revision\": \"5cd13d6925493ab51e876694cc1c2ec2\"\n },\n {\n \"url\": \"mxgraph/images/minimize.gif\",\n \"revision\": \"8957741b9b0f86af9438775f2aadbb54\"\n },\n {\n \"url\": \"mxgraph/images/close.gif\",\n \"revision\": \"8b84669812ac7382984fca35de8da48b\"\n },\n {\n \"url\": \"mxgraph/images/resize.gif\",\n \"revision\": \"a6477612b3567a34033f9cac6184eed3\"\n },\n {\n \"url\": \"mxgraph/images/separator.gif\",\n \"revision\": \"7819742ff106c97da7a801c2372bbbe5\"\n },\n {\n \"url\": \"mxgraph/images/window.gif\",\n \"revision\": \"fd9a21dd4181f98052a202a0a01f18ab\"\n },\n {\n \"url\": \"mxgraph/images/window-title.gif\",\n \"revision\": \"3fb1d6c43246cdf991a11dfe826dfe99\"\n },\n {\n \"url\": \"mxgraph/images/button.gif\",\n \"revision\": \"00759bdc3ad218fa739f584369541809\"\n },\n {\n \"url\": \"mxgraph/images/point.gif\",\n \"revision\": \"83a43717b284902442620f61bc4e9fa6\"\n }\n], {\n \"ignoreURLParametersMatching\": [/.*/]\n});\n\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision","ignoreURLParametersMatching"],"mappings":"szBAmBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,iBAYTC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,gBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,qBACKC,SAAA,oCAEd,CACED,IAAO,0BACKC,SAAA,oCAEd,CACED,IAAO,mBACKC,SAAA,oCAEd,CACED,IAAO,aACKC,SAAA,oCAEd,CACED,IAAO,YACKC,SAAA,oCAEd,CACED,IAAO,8CACKC,SAAA,oCAEd,CACED,IAAO,yBACKC,SAAA,oCAEd,CACED,IAAO,mBACKC,SAAA,oCAEd,CACED,IAAO,kBACKC,SAAA,oCAEd,CACED,IAAO,gCACKC,SAAA,oCAEd,CACED,IAAO,0BACKC,SAAA,oCAEd,CACED,IAAO,0BACKC,SAAA,oCAEd,CACED,IAAO,iCACKC,SAAA,oCAEd,CACED,IAAO,uCACKC,SAAA,oCAEd,CACED,IAAO,2CACKC,SAAA,oCAEd,CACED,IAAO,8BACKC,SAAA,oCAEd,CACED,IAAO,2BACKC,SAAA,oCAEd,CACED,IAAO,yBACKC,SAAA,oCAEd,CACED,IAAO,yCACKC,SAAA,oCAEd,CACED,IAAO,oCACKC,SAAA,oCAEd,CACED,IAAO,yBACKC,SAAA,oCAEd,CACED,IAAO,4BACKC,SAAA,oCAEd,CACED,IAAO,yBACKC,SAAA,oCAEd,CACED,IAAO,2CACKC,SAAA,oCAEd,CACED,IAAO,4BACKC,SAAA,oCAEd,CACED,IAAO,+BACKC,SAAA,oCAEd,CACED,IAAO,gCACKC,SAAA,oCAEd,CACED,IAAO,oCACKC,SAAA,oCAEd,CACED,IAAO,+BACKC,SAAA,oCAEd,CACED,IAAO,wCACKC,SAAA,oCAEd,CACED,IAAO,4CACKC,SAAA,oCAEd,CACED,IAAO,6CACKC,SAAA,oCAEd,CACED,IAAO,yCACKC,SAAA,oCAEd,CACED,IAAO,qCACKC,SAAA,oCAEd,CACED,IAAO,kBACKC,SAAA,oCAEd,CACED,IAAO,qCACKC,SAAA,oCAEd,CACED,IAAO,4CACKC,SAAA,oCAEd,CACED,IAAO,6CACKC,SAAA,oCAEd,CACED,IAAO,sDACKC,SAAA,oCAEd,CACED,IAAO,kEACKC,SAAA,oCAEd,CACED,IAAO,+DACKC,SAAA,oCAEd,CACED,IAAO,oBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,wBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,0BACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,0BACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,cACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,kBACKC,SAAA,oCAEd,CACED,IAAO,sBACKC,SAAA,oCAEd,CACED,IAAO,wBACKC,SAAA,oCAEd,CACED,IAAO,2BACKC,SAAA,oCAEd,CACED,IAAO,kCACKC,SAAA,oCAEd,CACED,IAAO,0BACKC,SAAA,oCAEd,CACED,IAAO,6BACKC,SAAA,oCAEd,CACED,IAAO,8BACKC,SAAA,oCAEd,CACED,IAAO,2BACKC,SAAA,oCAEd,CACED,IAAO,2BACKC,SAAA,oCAEd,CACED,IAAO,oCACKC,SAAA,oCAEd,CACED,IAAO,oCACKC,SAAA,oCAEd,CACED,IAAO,oBACKC,SAAA,oCAEd,CACED,IAAO,wBACKC,SAAA,oCAEd,CACED,IAAO,kBACKC,SAAA,oCAEd,CACED,IAAO,sBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,+BACKC,SAAA,oCAEd,CACED,IAAO,2BACKC,SAAA,oCAEd,CACED,IAAO,0BACKC,SAAA,oCAEd,CACED,IAAO,yBACKC,SAAA,oCAEd,CACED,IAAO,yBACKC,SAAA,oCAEd,CACED,IAAO,yBACKC,SAAA,oCAEd,CACED,IAAO,gCACKC,SAAA,oCAEd,CACED,IAAO,0BACKC,SAAA,oCAEd,CACED,IAAO,qCACKC,SAAA,oCAEd,CACED,IAAO,gCACKC,SAAA,oCAEd,CACED,IAAO,iCACKC,SAAA,oCAEd,CACED,IAAO,+BACKC,SAAA,oCAEd,CACED,IAAO,+BACKC,SAAA,oCAEd,CACED,IAAO,sCACKC,SAAA,oCAEd,CACED,IAAO,6BACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,mBACKC,SAAA,oCAEd,CACED,IAAO,kBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,gBACKC,SAAA,oCAEd,CACED,IAAO,sBACKC,SAAA,oCAEd,CACED,IAAO,yBACKC,SAAA,oCAEd,CACED,IAAO,8BACKC,SAAA,oCAEd,CACED,IAAO,+BACKC,SAAA,oCAEd,CACED,IAAO,8BACKC,SAAA,oCAEd,CACED,IAAO,8BACKC,SAAA,oCAEd,CACED,IAAO,2BACKC,SAAA,oCAEd,CACED,IAAO,4BACKC,SAAA,oCAEd,CACED,IAAO,+BACKC,SAAA,oCAEd,CACED,IAAO,4BACKC,SAAA,oCAEd,CACED,IAAO,kCACKC,SAAA,oCAEd,CACED,IAAO,4BACKC,SAAA,oCAEd,CACED,IAAO,2BACKC,SAAA,qCAEb,CACDC,4BAA+B,CAAC"} \ No newline at end of file
+{"version":3,"file":"service-worker.js","sources":["../../../../../../../tmp/85a2d175d6f276dfdfc58ec36369a410/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/opt/hostedtoolcache/node/14.19.0/x64/lib/node_modules/workbox-cli/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"js/app.min.js\",\n \"revision\": \"683fd54f51bd03cbdc0b0d0bd6e9d3be\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"37f5d674984e6068cbb55d3f808d614a\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"b94985e99c2f3b955df5e7d229ab9816\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"e7064eae84696b8f0e8d43a130ae1b70\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"0611491c663261a732ff18224906184d\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"8b5b1cf07fc74454cf354717e9d18534\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/fonts/ArchitectsDaughter-Regular.ttf\",\n \"revision\": \"31c2153c0530e32553b31a49b3d70736\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"748da0cd0a068a52eac70ee2b2c194fe\"\n },\n {\n \"url\": \"styles/atlas.css\",\n \"revision\": \"e8152cda9233d3a3af017422993abfce\"\n },\n {\n \"url\": \"styles/dark.css\",\n \"revision\": \"3179f617dd02efd2cefeb8c06f965880\"\n },\n {\n \"url\": \"js/dropbox/Dropbox-sdk.min.js\",\n \"revision\": \"4b9842892aa37b156db0a8364b7a83b0\"\n },\n {\n \"url\": \"js/onedrive/OneDrive.js\",\n \"revision\": \"505e8280346666f7ee801bc59521fa67\"\n },\n {\n \"url\": \"js/viewer-static.min.js\",\n \"revision\": \"7afd18a20db71ed73758348b6dd34666\"\n },\n {\n \"url\": \"connect/jira/editor-1-3-3.html\",\n \"revision\": \"a2b0e7267a08a838f3cc404eba831ec0\"\n },\n {\n \"url\": \"connect/jira/viewerPanel-1-3-12.html\",\n \"revision\": \"c96db1790184cb35781f791e8d1dafd9\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"ba7ece2dfb2833b72f97280d7092f25e\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"ea330a9486a83e94dd585a96ae1742f2\"\n },\n {\n \"url\": \"connect/jira/spinner.gif\",\n \"revision\": \"7d857ab9d86123e93d74d48e958fe743\"\n },\n {\n \"url\": \"connect/jira/editor.js\",\n \"revision\": \"01caa325f3ad3f6565e0b4228907fb63\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer-init.js\",\n \"revision\": \"e00ad51fc16b87c362d6eaf930ab1fa5\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer.js\",\n \"revision\": \"4e0775a6c156a803e777870623ac7c3e\"\n },\n {\n \"url\": \"plugins/connectJira.js\",\n \"revision\": \"4cefa13414e0d406550f3c073923080c\"\n },\n {\n \"url\": \"plugins/cConf-comments.js\",\n \"revision\": \"c787357209cff2986dcca567b599e2ef\"\n },\n {\n \"url\": \"plugins/cConf-1-4-8.js\",\n \"revision\": \"93db55d9b0e72103db8d0bcd9e26295e\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"fd6dfeccdd0303b460445f157b220768\"\n },\n {\n \"url\": \"connect/new_common/cac.js\",\n \"revision\": \"3d8c436c566db645fb1e6e6ba9f69bbc\"\n },\n {\n \"url\": \"connect/gdrive_common/gac.js\",\n \"revision\": \"38f1df3ecc4d78290493f47e62202138\"\n },\n {\n \"url\": \"connect/onedrive_common/ac.js\",\n \"revision\": \"d089f12446d443ca01752a5115456fcc\"\n },\n {\n \"url\": \"connect/confluence/viewer-init.js\",\n \"revision\": \"78817776b4dc4d197809645bc6d6fa6c\"\n },\n {\n \"url\": \"connect/confluence/viewer.js\",\n \"revision\": \"f9f0559890b5cf56ee9b67710c9d08fb\"\n },\n {\n \"url\": \"connect/confluence/viewer-1-4-42.html\",\n \"revision\": \"4c58f3a1a4c99b1c4264593b6e05100b\"\n },\n {\n \"url\": \"connect/confluence/macroEditor-1-4-8.html\",\n \"revision\": \"8cd74a2fb60bf2e3e86026d66107cf11\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram-1-4-8.js\",\n \"revision\": \"4c7730a67df6bacf5ca6d8a40cfd6e87\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram.html\",\n \"revision\": \"c03c89622d22227313645900af4e3c3d\"\n },\n {\n \"url\": \"connect/confluence/macro-editor.js\",\n \"revision\": \"e273a48b8e81faac4530bf1a68d75aa0\"\n },\n {\n \"url\": \"math/MathJax.js\",\n \"revision\": \"b2c103388b71bb3d11cbf9aa45fe9b68\"\n },\n {\n \"url\": \"math/config/TeX-MML-AM_SVG-full.js\",\n \"revision\": \"d5cb8ac04050983170ae4af145bc66ff\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/fontdata.js\",\n \"revision\": \"495e5a410955d1b6178870e605890ede\"\n },\n {\n \"url\": \"math/jax/element/mml/optable/BasicLatin.js\",\n \"revision\": \"cac9b2e71382e62270baa55fab07cc13\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js\",\n \"revision\": \"e3e5e4d5924beed29f0844550b5c8f46\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js\",\n \"revision\": \"0767cbad7275b53da128e7e5e1109f7c\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js\",\n \"revision\": \"346302a5c5ee00e01c302148c56dbfe3\"\n },\n {\n \"url\": \"resources/dia.txt\",\n \"revision\": \"97460e57f41f6f88232d5dc99a6eb3eb\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"a5e842ccc0c0a2aec4668e3068a93e85\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"3f048ed2af30d3dac318fb486b42d387\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"b1dbc906a6e31075ae8959a7d51d7466\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"f1e8da90e1b7179c8da80dd3122dffd8\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"271e895cb4a5bc15f6e94419da589952\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"1c496be9d97a6a85e2944ea5ab2f715e\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"5f0c4aa4dad255c94dfa5b9eee3fec64\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"db7c52e89f1256e9d4165994042ced90\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"c81d3d5762058e475866ecd3a03d9076\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"38251ac912e11bbcd30f281823bb7752\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"6eb2dfcdfc1bc389252b9122fc82e8ab\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"9367226bb4cb0dadae75629fa42dc2b4\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"ddd1793b0a9637384cf37a6f16d13042\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"7c9eba4ff201a5c1cb431b4086aeff46\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"e229143767ea93cc6c526ed895cd9181\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"9797c90525b31b6f0d26791a857c450b\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"1ca1317655214fa3289cf1bc04896386\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"15a23a45fc8a2f2ea50cd363191cd22b\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"da1033834dca8a4da9a7204e18d93827\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"5bf6e1df052106e1f223222f17ec8565\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"271d37ec7c9da8b719e06d1b6dca76d9\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"77afeabd23b8cf504c794798a9d9cb34\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"c709af584b472fde2a342139543590bc\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"c392e59fde0f3a453d3efc0c6b3d335f\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"db55092154bd3dc394b76d91feb9b02f\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"bc760647e0dcd478637b3fc0b2db1ff1\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"edfd3ab8fc04c63f415530df2c5c9796\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"b828b8a9f90eade05823c845063378a8\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"726ae7d3e7749e325dd26cd12315229c\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"321856df5d63271e517e587c6f7f9f00\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"6a9b6d4f78e68185a613faf9b860142a\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"a8b6aea101345516bd47d45cb1a06778\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"2e1b5ad18eb128544f201b56f0c7defe\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"1af2ae1cb4d5c65bc698fb2c5c8be202\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"97460e57f41f6f88232d5dc99a6eb3eb\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"c8d64cdd4b0316755a9096921b084c1f\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"5ac60f4b3aa259e7029301ac308eebf7\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"ac56f3bc965462190d7ecf420f16d252\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"6126148b43ae5167d72b2b301e9442a4\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"5ee4942941f53f0f9dbc5030bde49600\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"9f608314999fe1f766c5fcbc1b3c2275\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"7bf56abb74fdfdc3da2a5cc693da7fd2\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"97460e57f41f6f88232d5dc99a6eb3eb\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"89aa5664f2f99c7e9db29f4c33466742\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"73394ce42015875f7d310ed8d8435745\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"efb0f81b562b2a3508133dcbfc7f0513\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"63a01b5ca59c4f827448ce67a12e6f77\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"f286f34178c5ef9160aa195e52e74f03\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"8486a5514e329066443e50c4a5b1ce85\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"432dee8cc9bca4081bdf89bfc534c28e\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"cc1afa8f5ad00191e1ba74a04b74c305\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"559ff9ab0eb494851a798468cb8170f2\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"175deb4a44e9aeaefad09e85c2641779\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"79773d6761bbadf10a6fb1879ecf68d4\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"464a47ae356ffe4473aaffa6b910f479\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"ed6fae497653dee47c82934da14e9e77\"\n },\n {\n \"url\": \"favicon.ico\",\n \"revision\": \"fab2d88b37c72d83607527573de45281\"\n },\n {\n \"url\": \"images/manifest.json\",\n \"revision\": \"c6236bde53ed79aaaec60a1aca8ee2ef\"\n },\n {\n \"url\": \"images/logo.png\",\n \"revision\": \"89630b64b911ebe0daa3dfe442087cfa\"\n },\n {\n \"url\": \"images/drawlogo.svg\",\n \"revision\": \"4bf4d14ebcf072d8bd4c5a1c89e88fc6\"\n },\n {\n \"url\": \"images/drawlogo48.png\",\n \"revision\": \"8b13428373aca67b895364d025f42417\"\n },\n {\n \"url\": \"images/drawlogo-gray.svg\",\n \"revision\": \"0aabacbc0873816e1e09e4736ae44c7d\"\n },\n {\n \"url\": \"images/drawlogo-text-bottom.svg\",\n \"revision\": \"f6c438823ab31f290940bd4feb8dd9c2\"\n },\n {\n \"url\": \"images/default-user.jpg\",\n \"revision\": \"2c399696a87c8921f12d2f9e1990cc6e\"\n },\n {\n \"url\": \"images/logo-flat-small.png\",\n \"revision\": \"4b178e59ff499d6dd1894fc498b59877\"\n },\n {\n \"url\": \"images/apple-touch-icon.png\",\n \"revision\": \"73da7989a23ce9a4be565ec65658a239\"\n },\n {\n \"url\": \"images/favicon-16x16.png\",\n \"revision\": \"1a79d5461a5d2bf21f6652e0ac20d6e5\"\n },\n {\n \"url\": \"images/favicon-32x32.png\",\n \"revision\": \"e3b92da2febe70bad5372f6f3474b034\"\n },\n {\n \"url\": \"images/android-chrome-196x196.png\",\n \"revision\": \"f8c045b2d7b1c719fda64edab04c415c\"\n },\n {\n \"url\": \"images/android-chrome-512x512.png\",\n \"revision\": \"959b5fac2453963ff6d60fb85e4b73fd\"\n },\n {\n \"url\": \"images/delete.png\",\n \"revision\": \"5f2350f2fd20f1a229637aed32ed8f29\"\n },\n {\n \"url\": \"images/droptarget.png\",\n \"revision\": \"bbf7f563fb6784de1ce96f329519b043\"\n },\n {\n \"url\": \"images/help.png\",\n \"revision\": \"9266c6c3915bd33c243d80037d37bf61\"\n },\n {\n \"url\": \"images/download.png\",\n \"revision\": \"35418dd7bd48d87502c71b578cc6c37f\"\n },\n {\n \"url\": \"images/logo-flat.png\",\n \"revision\": \"038070ab43aee6e54a791211859fc67b\"\n },\n {\n \"url\": \"images/google-drive-logo.svg\",\n \"revision\": \"5d9f2f5bbc7dcc252730a0072bb23059\"\n },\n {\n \"url\": \"images/onedrive-logo.svg\",\n \"revision\": \"3645b344ec0634c1290dd58d7dc87b97\"\n },\n {\n \"url\": \"images/dropbox-logo.svg\",\n \"revision\": \"e6be408c77cf9c82d41ac64fa854280a\"\n },\n {\n \"url\": \"images/github-logo.svg\",\n \"revision\": \"a1a999b69a275eac0cb918360ac05ae1\"\n },\n {\n \"url\": \"images/gitlab-logo.svg\",\n \"revision\": \"0faea8c818899e58533e153c44b10517\"\n },\n {\n \"url\": \"images/trello-logo.svg\",\n \"revision\": \"006fd0d7d70d7e95dc691674cb12e044\"\n },\n {\n \"url\": \"images/osa_drive-harddisk.png\",\n \"revision\": \"b954e1ae772087c5b4c6ae797e1f9649\"\n },\n {\n \"url\": \"images/osa_database.png\",\n \"revision\": \"c350d9d9b95f37b6cfe798b40ede5fb0\"\n },\n {\n \"url\": \"images/google-drive-logo-white.svg\",\n \"revision\": \"f329d8b1be7778515a85b93fc35d9f26\"\n },\n {\n \"url\": \"images/dropbox-logo-white.svg\",\n \"revision\": \"4ea8299ac3bc31a16f199ee3aec223bf\"\n },\n {\n \"url\": \"images/onedrive-logo-white.svg\",\n \"revision\": \"b3602fa0fc947009cff3f33a581cff4d\"\n },\n {\n \"url\": \"images/github-logo-white.svg\",\n \"revision\": \"537b1127b3ca0f95b45782d1304fb77a\"\n },\n {\n \"url\": \"images/gitlab-logo-white.svg\",\n \"revision\": \"5fede9ac2f394c716b8c23e3fddc3910\"\n },\n {\n \"url\": \"images/trello-logo-white-orange.svg\",\n \"revision\": \"e2a0a52ba3766682f138138d10a75eb5\"\n },\n {\n \"url\": \"images/logo-confluence.png\",\n \"revision\": \"ed1e55d44ae5eba8f999aba2c93e8331\"\n },\n {\n \"url\": \"images/logo-jira.png\",\n \"revision\": \"f8d460555a0d1f87cfd901e940666629\"\n },\n {\n \"url\": \"images/clear.gif\",\n \"revision\": \"db13c778e4382e0b55258d0f811d5d70\"\n },\n {\n \"url\": \"images/spin.gif\",\n \"revision\": \"487cbb40b9ced439aa1ad914e816d773\"\n },\n {\n \"url\": \"images/checkmark.gif\",\n \"revision\": \"ba764ce62f2bf952df5bbc2bb4d381c5\"\n },\n {\n \"url\": \"images/hs.png\",\n \"revision\": \"fefa1a03d92ebad25c88dca94a0b63db\"\n },\n {\n \"url\": \"images/aui-wait.gif\",\n \"revision\": \"5a474bcbd8d2f2826f03d10ea44bf60e\"\n },\n {\n \"url\": \"mxgraph/css/common.css\",\n \"revision\": \"b5b7280ec98671bb6c3847a36bc7ea12\"\n },\n {\n \"url\": \"mxgraph/images/expanded.gif\",\n \"revision\": \"2b67c2c035af1e9a5cc814f0d22074cf\"\n },\n {\n \"url\": \"mxgraph/images/collapsed.gif\",\n \"revision\": \"73cc826da002a3d740ca4ce6ec5c1f4a\"\n },\n {\n \"url\": \"mxgraph/images/maximize.gif\",\n \"revision\": \"5cd13d6925493ab51e876694cc1c2ec2\"\n },\n {\n \"url\": \"mxgraph/images/minimize.gif\",\n \"revision\": \"8957741b9b0f86af9438775f2aadbb54\"\n },\n {\n \"url\": \"mxgraph/images/close.gif\",\n \"revision\": \"8b84669812ac7382984fca35de8da48b\"\n },\n {\n \"url\": \"mxgraph/images/resize.gif\",\n \"revision\": \"a6477612b3567a34033f9cac6184eed3\"\n },\n {\n \"url\": \"mxgraph/images/separator.gif\",\n \"revision\": \"7819742ff106c97da7a801c2372bbbe5\"\n },\n {\n \"url\": \"mxgraph/images/window.gif\",\n \"revision\": \"fd9a21dd4181f98052a202a0a01f18ab\"\n },\n {\n \"url\": \"mxgraph/images/window-title.gif\",\n \"revision\": \"3fb1d6c43246cdf991a11dfe826dfe99\"\n },\n {\n \"url\": \"mxgraph/images/button.gif\",\n \"revision\": \"00759bdc3ad218fa739f584369541809\"\n },\n {\n \"url\": \"mxgraph/images/point.gif\",\n \"revision\": \"83a43717b284902442620f61bc4e9fa6\"\n }\n], {\n \"ignoreURLParametersMatching\": [/.*/]\n});\n\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision","ignoreURLParametersMatching"],"mappings":"szBAmBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,iBAYTC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,gBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,qBACKC,SAAA,oCAEd,CACED,IAAO,0BACKC,SAAA,oCAEd,CACED,IAAO,mBACKC,SAAA,oCAEd,CACED,IAAO,aACKC,SAAA,oCAEd,CACED,IAAO,YACKC,SAAA,oCAEd,CACED,IAAO,8CACKC,SAAA,oCAEd,CACED,IAAO,yBACKC,SAAA,oCAEd,CACED,IAAO,mBACKC,SAAA,oCAEd,CACED,IAAO,kBACKC,SAAA,oCAEd,CACED,IAAO,gCACKC,SAAA,oCAEd,CACED,IAAO,0BACKC,SAAA,oCAEd,CACED,IAAO,0BACKC,SAAA,oCAEd,CACED,IAAO,iCACKC,SAAA,oCAEd,CACED,IAAO,uCACKC,SAAA,oCAEd,CACED,IAAO,2CACKC,SAAA,oCAEd,CACED,IAAO,8BACKC,SAAA,oCAEd,CACED,IAAO,2BACKC,SAAA,oCAEd,CACED,IAAO,yBACKC,SAAA,oCAEd,CACED,IAAO,yCACKC,SAAA,oCAEd,CACED,IAAO,oCACKC,SAAA,oCAEd,CACED,IAAO,yBACKC,SAAA,oCAEd,CACED,IAAO,4BACKC,SAAA,oCAEd,CACED,IAAO,yBACKC,SAAA,oCAEd,CACED,IAAO,2CACKC,SAAA,oCAEd,CACED,IAAO,4BACKC,SAAA,oCAEd,CACED,IAAO,+BACKC,SAAA,oCAEd,CACED,IAAO,gCACKC,SAAA,oCAEd,CACED,IAAO,oCACKC,SAAA,oCAEd,CACED,IAAO,+BACKC,SAAA,oCAEd,CACED,IAAO,wCACKC,SAAA,oCAEd,CACED,IAAO,4CACKC,SAAA,oCAEd,CACED,IAAO,6CACKC,SAAA,oCAEd,CACED,IAAO,yCACKC,SAAA,oCAEd,CACED,IAAO,qCACKC,SAAA,oCAEd,CACED,IAAO,kBACKC,SAAA,oCAEd,CACED,IAAO,qCACKC,SAAA,oCAEd,CACED,IAAO,4CACKC,SAAA,oCAEd,CACED,IAAO,6CACKC,SAAA,oCAEd,CACED,IAAO,sDACKC,SAAA,oCAEd,CACED,IAAO,kEACKC,SAAA,oCAEd,CACED,IAAO,+DACKC,SAAA,oCAEd,CACED,IAAO,oBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,wBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,0BACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,0BACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,cACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,kBACKC,SAAA,oCAEd,CACED,IAAO,sBACKC,SAAA,oCAEd,CACED,IAAO,wBACKC,SAAA,oCAEd,CACED,IAAO,2BACKC,SAAA,oCAEd,CACED,IAAO,kCACKC,SAAA,oCAEd,CACED,IAAO,0BACKC,SAAA,oCAEd,CACED,IAAO,6BACKC,SAAA,oCAEd,CACED,IAAO,8BACKC,SAAA,oCAEd,CACED,IAAO,2BACKC,SAAA,oCAEd,CACED,IAAO,2BACKC,SAAA,oCAEd,CACED,IAAO,oCACKC,SAAA,oCAEd,CACED,IAAO,oCACKC,SAAA,oCAEd,CACED,IAAO,oBACKC,SAAA,oCAEd,CACED,IAAO,wBACKC,SAAA,oCAEd,CACED,IAAO,kBACKC,SAAA,oCAEd,CACED,IAAO,sBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,+BACKC,SAAA,oCAEd,CACED,IAAO,2BACKC,SAAA,oCAEd,CACED,IAAO,0BACKC,SAAA,oCAEd,CACED,IAAO,yBACKC,SAAA,oCAEd,CACED,IAAO,yBACKC,SAAA,oCAEd,CACED,IAAO,yBACKC,SAAA,oCAEd,CACED,IAAO,gCACKC,SAAA,oCAEd,CACED,IAAO,0BACKC,SAAA,oCAEd,CACED,IAAO,qCACKC,SAAA,oCAEd,CACED,IAAO,gCACKC,SAAA,oCAEd,CACED,IAAO,iCACKC,SAAA,oCAEd,CACED,IAAO,+BACKC,SAAA,oCAEd,CACED,IAAO,+BACKC,SAAA,oCAEd,CACED,IAAO,sCACKC,SAAA,oCAEd,CACED,IAAO,6BACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,mBACKC,SAAA,oCAEd,CACED,IAAO,kBACKC,SAAA,oCAEd,CACED,IAAO,uBACKC,SAAA,oCAEd,CACED,IAAO,gBACKC,SAAA,oCAEd,CACED,IAAO,sBACKC,SAAA,oCAEd,CACED,IAAO,yBACKC,SAAA,oCAEd,CACED,IAAO,8BACKC,SAAA,oCAEd,CACED,IAAO,+BACKC,SAAA,oCAEd,CACED,IAAO,8BACKC,SAAA,oCAEd,CACED,IAAO,8BACKC,SAAA,oCAEd,CACED,IAAO,2BACKC,SAAA,oCAEd,CACED,IAAO,4BACKC,SAAA,oCAEd,CACED,IAAO,+BACKC,SAAA,oCAEd,CACED,IAAO,4BACKC,SAAA,oCAEd,CACED,IAAO,kCACKC,SAAA,oCAEd,CACED,IAAO,4BACKC,SAAA,oCAEd,CACED,IAAO,2BACKC,SAAA,qCAEb,CACDC,4BAA+B,CAAC"} \ No newline at end of file