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>2021-12-08 16:03:13 +0300
committerDavid Benson <david@draw.io>2021-12-08 16:03:13 +0300
commit14ee1a30a601bc84182f8941865a23d8178324cf (patch)
tree3547331e2f3305945fdefd7cf83a8bc5aa49a74b
parentb3d446d86ed7331b8831eae14bacdab2f6e3d39d (diff)
15.9.3 releasev15.9.3
-rw-r--r--ChangeLog17
-rw-r--r--VERSION2
-rw-r--r--src/main/java/com/mxgraph/online/ConverterServlet.java6
-rw-r--r--src/main/java/com/mxgraph/online/EmbedServlet2.java2
-rw-r--r--src/main/java/com/mxgraph/online/Utils.java12
-rw-r--r--src/main/webapp/WEB-INF/lib/commons-codec-1.10.jarbin284184 -> 0 bytes
-rw-r--r--src/main/webapp/WEB-INF/lib/commons-codec-1.11.jarbin0 -> 335042 bytes
-rw-r--r--src/main/webapp/WEB-INF/lib/commons-lang3-3.12.0.jarbin0 -> 587402 bytes
-rw-r--r--src/main/webapp/WEB-INF/lib/commons-lang3-3.5.jarbin479881 -> 0 bytes
-rw-r--r--src/main/webapp/WEB-INF/lib/commons-text-1.9.jarbin0 -> 216211 bytes
-rw-r--r--src/main/webapp/WEB-INF/lib/gson-2.7.jarbin231952 -> 0 bytes
-rw-r--r--src/main/webapp/WEB-INF/lib/gson-2.8.9.jarbin0 -> 258075 bytes
-rw-r--r--src/main/webapp/WEB-INF/lib/httpclient-4.5.13.jarbin0 -> 780321 bytes
-rw-r--r--src/main/webapp/WEB-INF/lib/httpclient-4.5.5.jarbin766123 -> 0 bytes
-rw-r--r--src/main/webapp/WEB-INF/lib/httpcore-4.4.13.jarbin0 -> 328593 bytes
-rw-r--r--src/main/webapp/WEB-INF/lib/httpcore-4.4.9.jarbin325500 -> 0 bytes
-rw-r--r--src/main/webapp/WEB-INF/lib/jstl-1.2.jarbin414240 -> 0 bytes
-rw-r--r--src/main/webapp/WEB-INF/lib/pusher-http-java-1.0.0.jarbin20447 -> 0 bytes
-rw-r--r--src/main/webapp/WEB-INF/lib/pusher-http-java-1.1.0.jarbin0 -> 22059 bytes
-rw-r--r--src/main/webapp/WEB-INF/web.xml10
-rw-r--r--src/main/webapp/js/app.min.js1227
-rw-r--r--src/main/webapp/js/diagramly/Editor.js7
-rw-r--r--src/main/webapp/js/diagramly/EditorUi.js13
-rw-r--r--src/main/webapp/js/diagramly/Menus.js1
-rw-r--r--src/main/webapp/js/diagramly/Minimal.js35
-rw-r--r--src/main/webapp/js/diagramly/sidebar/Sidebar-GCPIcons.js2
-rw-r--r--src/main/webapp/js/grapheditor/EditorUi.js90
-rw-r--r--src/main/webapp/js/grapheditor/Format.js33
-rw-r--r--src/main/webapp/js/grapheditor/Graph.js122
-rw-r--r--src/main/webapp/js/grapheditor/Shapes.js2
-rw-r--r--src/main/webapp/js/viewer-static.min.js1169
-rw-r--r--src/main/webapp/js/viewer.min.js1169
-rw-r--r--src/main/webapp/mxgraph/mxClient.js8
-rw-r--r--src/main/webapp/resources/dia_eu.txt6
-rw-r--r--src/main/webapp/service-worker.js2
-rw-r--r--src/main/webapp/service-worker.js.map2
-rw-r--r--src/main/webapp/teams.html10
37 files changed, 1955 insertions, 1992 deletions
diff --git a/ChangeLog b/ChangeLog
index 78002a16..10d3df41 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+08-DEC-2021: 15.9.3
+
+- Adds commons-lang3 3.12.0 for commons text dependency
+
+08-DEC-2021: 15.9.2
+
+- Keeps only window title inside viewrect
+- Fixes handling of defaults in copy/paste style
+- Removes GoogleGadgetServlet
+- Improves handling of special style values
+- Uses map in signature of Graph.updateCellStyles
+- Fixes possible unresolved values in default style
+- Fixes unresolved colors in style thumbnail
+- Fixes background page for PDF export in dark mode
+- Fixes line cap for partial rectangle https://github.com/jgraph/drawio-desktop/issues/813
+- Fixes ignored model for change of cells in event
+
03-DEC-2021: 15.9.1
- Fixes build error
diff --git a/VERSION b/VERSION
index c74a170d..e99b2f49 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-15.9.1 \ No newline at end of file
+15.9.3 \ No newline at end of file
diff --git a/src/main/java/com/mxgraph/online/ConverterServlet.java b/src/main/java/com/mxgraph/online/ConverterServlet.java
index d5712a50..3032a39d 100644
--- a/src/main/java/com/mxgraph/online/ConverterServlet.java
+++ b/src/main/java/com/mxgraph/online/ConverterServlet.java
@@ -22,7 +22,8 @@ import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
-import org.apache.commons.io.FilenameUtils;
+import java.nio.file.Path;
+import java.nio.file.Paths;
//This servlet is an interface between draw.io and CloudConverter.
//For EMF files, it detect its size and resize the huge images such that max dimension is MAX_DIM
@@ -102,7 +103,8 @@ public class ConverterServlet extends HttpServlet
else
{
//We expect only one file
- fileName = FilenameUtils.getName(item.getName());
+ Path file = Paths.get(item.getName());
+ fileName = file.getFileName().toString();
fileContent = item.getInputStream();
}
}
diff --git a/src/main/java/com/mxgraph/online/EmbedServlet2.java b/src/main/java/com/mxgraph/online/EmbedServlet2.java
index 9050d866..de9ba6e6 100644
--- a/src/main/java/com/mxgraph/online/EmbedServlet2.java
+++ b/src/main/java/com/mxgraph/online/EmbedServlet2.java
@@ -38,7 +38,7 @@ import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.commons.lang3.StringEscapeUtils;
+import org.apache.commons.text.StringEscapeUtils;
import com.google.appengine.api.utils.SystemProperty;
diff --git a/src/main/java/com/mxgraph/online/Utils.java b/src/main/java/com/mxgraph/online/Utils.java
index 66288b35..1a69215e 100644
--- a/src/main/java/com/mxgraph/online/Utils.java
+++ b/src/main/java/com/mxgraph/online/Utils.java
@@ -466,4 +466,16 @@ public class Utils
return head;
}
+ public static boolean isNumeric (String str)
+ {
+ try
+ {
+ Double.parseDouble(str);
+ return true;
+ }
+ catch(NumberFormatException e)
+ {
+ return false;
+ }
+ }
}
diff --git a/src/main/webapp/WEB-INF/lib/commons-codec-1.10.jar b/src/main/webapp/WEB-INF/lib/commons-codec-1.10.jar
deleted file mode 100644
index 1d7417c4..00000000
--- a/src/main/webapp/WEB-INF/lib/commons-codec-1.10.jar
+++ /dev/null
Binary files differ
diff --git a/src/main/webapp/WEB-INF/lib/commons-codec-1.11.jar b/src/main/webapp/WEB-INF/lib/commons-codec-1.11.jar
new file mode 100644
index 00000000..22451206
--- /dev/null
+++ b/src/main/webapp/WEB-INF/lib/commons-codec-1.11.jar
Binary files differ
diff --git a/src/main/webapp/WEB-INF/lib/commons-lang3-3.12.0.jar b/src/main/webapp/WEB-INF/lib/commons-lang3-3.12.0.jar
new file mode 100644
index 00000000..4d434a2a
--- /dev/null
+++ b/src/main/webapp/WEB-INF/lib/commons-lang3-3.12.0.jar
Binary files differ
diff --git a/src/main/webapp/WEB-INF/lib/commons-lang3-3.5.jar b/src/main/webapp/WEB-INF/lib/commons-lang3-3.5.jar
deleted file mode 100644
index 6328c8de..00000000
--- a/src/main/webapp/WEB-INF/lib/commons-lang3-3.5.jar
+++ /dev/null
Binary files differ
diff --git a/src/main/webapp/WEB-INF/lib/commons-text-1.9.jar b/src/main/webapp/WEB-INF/lib/commons-text-1.9.jar
new file mode 100644
index 00000000..cc0c6906
--- /dev/null
+++ b/src/main/webapp/WEB-INF/lib/commons-text-1.9.jar
Binary files differ
diff --git a/src/main/webapp/WEB-INF/lib/gson-2.7.jar b/src/main/webapp/WEB-INF/lib/gson-2.7.jar
deleted file mode 100644
index be5b59b7..00000000
--- a/src/main/webapp/WEB-INF/lib/gson-2.7.jar
+++ /dev/null
Binary files differ
diff --git a/src/main/webapp/WEB-INF/lib/gson-2.8.9.jar b/src/main/webapp/WEB-INF/lib/gson-2.8.9.jar
new file mode 100644
index 00000000..3351867c
--- /dev/null
+++ b/src/main/webapp/WEB-INF/lib/gson-2.8.9.jar
Binary files differ
diff --git a/src/main/webapp/WEB-INF/lib/httpclient-4.5.13.jar b/src/main/webapp/WEB-INF/lib/httpclient-4.5.13.jar
new file mode 100644
index 00000000..218ee25f
--- /dev/null
+++ b/src/main/webapp/WEB-INF/lib/httpclient-4.5.13.jar
Binary files differ
diff --git a/src/main/webapp/WEB-INF/lib/httpclient-4.5.5.jar b/src/main/webapp/WEB-INF/lib/httpclient-4.5.5.jar
deleted file mode 100644
index 7796b0e7..00000000
--- a/src/main/webapp/WEB-INF/lib/httpclient-4.5.5.jar
+++ /dev/null
Binary files differ
diff --git a/src/main/webapp/WEB-INF/lib/httpcore-4.4.13.jar b/src/main/webapp/WEB-INF/lib/httpcore-4.4.13.jar
new file mode 100644
index 00000000..163dc438
--- /dev/null
+++ b/src/main/webapp/WEB-INF/lib/httpcore-4.4.13.jar
Binary files differ
diff --git a/src/main/webapp/WEB-INF/lib/httpcore-4.4.9.jar b/src/main/webapp/WEB-INF/lib/httpcore-4.4.9.jar
deleted file mode 100644
index cddba28f..00000000
--- a/src/main/webapp/WEB-INF/lib/httpcore-4.4.9.jar
+++ /dev/null
Binary files differ
diff --git a/src/main/webapp/WEB-INF/lib/jstl-1.2.jar b/src/main/webapp/WEB-INF/lib/jstl-1.2.jar
deleted file mode 100644
index 0fd275e9..00000000
--- a/src/main/webapp/WEB-INF/lib/jstl-1.2.jar
+++ /dev/null
Binary files differ
diff --git a/src/main/webapp/WEB-INF/lib/pusher-http-java-1.0.0.jar b/src/main/webapp/WEB-INF/lib/pusher-http-java-1.0.0.jar
deleted file mode 100644
index 9d325726..00000000
--- a/src/main/webapp/WEB-INF/lib/pusher-http-java-1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/src/main/webapp/WEB-INF/lib/pusher-http-java-1.1.0.jar b/src/main/webapp/WEB-INF/lib/pusher-http-java-1.1.0.jar
new file mode 100644
index 00000000..5813bd91
--- /dev/null
+++ b/src/main/webapp/WEB-INF/lib/pusher-http-java-1.1.0.jar
Binary files differ
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index ae101e65..d847103e 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -38,16 +38,6 @@
</servlet-mapping>
<servlet>
<description/>
- <display-name>GoogleGadgetServlet</display-name>
- <servlet-name>GoogleGadgetServlet</servlet-name>
- <servlet-class>com.mxgraph.online.GoogleGadgetServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>GoogleGadgetServlet</servlet-name>
- <url-pattern>/gadget.xml</url-pattern>
- </servlet-mapping>
- <servlet>
- <description/>
<display-name>ImgurRedirect</display-name>
<servlet-name>ImgurRedirect</servlet-name>
<servlet-class>com.mxgraph.online.ImgurRedirectServlet</servlet-class>
diff --git a/src/main/webapp/js/app.min.js b/src/main/webapp/js/app.min.js
index 9abf46cf..4f520e63 100644
--- a/src/main/webapp/js/app.min.js
+++ b/src/main/webapp/js/app.min.js
@@ -236,7 +236,7 @@ null!=a&&(DRAWIO_GITLAB_ID=a);window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";a=
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:"15.9.1",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:"15.9.3",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),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]"!==document.createElementNS("http://www.w3.org/2000/svg","foreignObject").toString()||0<=navigator.userAgent.indexOf("Opera/"),
@@ -1081,7 +1081,7 @@ mxPrintPreview.prototype.getAppendices=function(){return null};mxPrintPreview.pr
mxStylesheet.prototype.createDefaultVertexStyle=function(){var a={};a[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_RECTANGLE;a[mxConstants.STYLE_PERIMETER]=mxPerimeter.RectanglePerimeter;a[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE;a[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER;a[mxConstants.STYLE_FILLCOLOR]="#C3D9FF";a[mxConstants.STYLE_STROKECOLOR]="#6482B9";a[mxConstants.STYLE_FONTCOLOR]="#774400";return a};
mxStylesheet.prototype.createDefaultEdgeStyle=function(){var a={};a[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_CONNECTOR;a[mxConstants.STYLE_ENDARROW]=mxConstants.ARROW_CLASSIC;a[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE;a[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER;a[mxConstants.STYLE_STROKECOLOR]="#6482B9";a[mxConstants.STYLE_FONTCOLOR]="#446299";return a};mxStylesheet.prototype.putDefaultVertexStyle=function(a){this.putCellStyle("defaultVertex",a)};
mxStylesheet.prototype.putDefaultEdgeStyle=function(a){this.putCellStyle("defaultEdge",a)};mxStylesheet.prototype.getDefaultVertexStyle=function(){return this.styles.defaultVertex};mxStylesheet.prototype.getDefaultEdgeStyle=function(){return this.styles.defaultEdge};mxStylesheet.prototype.putCellStyle=function(a,b){this.styles[a]=b};
-mxStylesheet.prototype.getCellStyle=function(a,b){var c=b;if(null!=a&&0<a.length)for(var d=a.split(";"),c=null!=c&&";"!=a.charAt(0)?mxUtils.clone(c):{},e=0;e<d.length;e++){var f=d[e],g=f.indexOf("=");if(0<=g){var k=f.substring(0,g),f=f.substring(g+1);f==mxConstants.NONE?delete c[k]:mxUtils.isNumeric(f)?c[k]=parseFloat(f):c[k]=f}else if(f=this.styles[f],null!=f)for(k in f)c[k]=f[k]}return c};
+mxStylesheet.prototype.getCellStyle=function(a,b,c){c=null!=c?c:!0;if(null!=a&&0<a.length){var d=a.split(";");b=null!=b&&";"!=a.charAt(0)?mxUtils.clone(b):{};for(a=0;a<d.length;a++){var e=d[a],f=e.indexOf("=");if(0<=f){var g=e.substring(0,f),e=e.substring(f+1);e==mxConstants.NONE&&c?delete b[g]:mxUtils.isNumeric(e)?b[g]=parseFloat(e):b[g]=e}else if(e=this.styles[e],null!=e)for(g in e)b[g]=e[g]}}return b};
function mxCellState(a,b,c){this.view=a;this.cell=b;this.style=null!=c?c:{};this.origin=new mxPoint;this.absoluteOffset=new mxPoint}mxCellState.prototype=new mxRectangle;mxCellState.prototype.constructor=mxCellState;mxCellState.prototype.view=null;mxCellState.prototype.cell=null;mxCellState.prototype.style=null;mxCellState.prototype.invalidStyle=!1;mxCellState.prototype.invalid=!0;mxCellState.prototype.origin=null;mxCellState.prototype.absolutePoints=null;mxCellState.prototype.absoluteOffset=null;
mxCellState.prototype.visibleSourceState=null;mxCellState.prototype.visibleTargetState=null;mxCellState.prototype.terminalDistance=0;mxCellState.prototype.length=0;mxCellState.prototype.segments=null;mxCellState.prototype.shape=null;mxCellState.prototype.text=null;mxCellState.prototype.unscaledWidth=null;mxCellState.prototype.unscaledHeight=null;
mxCellState.prototype.getPerimeterBounds=function(a,b){a=a||0;b=null!=b?b:new mxRectangle(this.x,this.y,this.width,this.height);if(null!=this.shape&&null!=this.shape.stencil&&"fixed"==this.shape.stencil.aspect){var c=this.shape.stencil.computeAspect(this.style,b.x,b.y,b.width,b.height);b.x=c.x;b.y=c.y;b.width=this.shape.stencil.w0*c.width;b.height=this.shape.stencil.h0*c.height}0!=a&&b.grow(a);return b};
@@ -1342,8 +1342,8 @@ b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mx
mxGraph.prototype.updatePageBreaks=function(a,b,c){b=this.view.scale;c=this.view.translate;var d=this.pageFormat,e=b*this.pageScale,f=new mxRectangle(0,0,d.width*e,d.height*e),d=mxRectangle.fromRectangle(this.getGraphBounds());d.width=Math.max(1,d.width);d.height=Math.max(1,d.height);f.x=Math.floor((d.x-c.x*b)/f.width)*f.width+c.x*b;f.y=Math.floor((d.y-c.y*b)/f.height)*f.height+c.y*b;d.width=Math.ceil((d.width+(d.x-f.x))/f.width)*f.width;d.height=Math.ceil((d.height+(d.y-f.y))/f.height)*f.height;
var g=(a=a&&Math.min(f.width,f.height)>this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,k=a?Math.ceil(d.width/f.width)+1:0,l=(k-1)*f.width,m=(g-1)*f.height;null==this.horizontalPageBreaks&&0<g&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<k&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?g:k,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(f.x),Math.round(f.y+c*f.height)),new mxPoint(Math.round(f.x+
l),Math.round(f.y+c*f.height))]:[new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y)),new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y+m))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.pointerEvents=!1,d.isDashed=this.pageBreakDashed,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
-mxGraph.prototype.getCurrentCellStyle=function(a,b){var c=b?null:this.view.getState(a);return null!=c?c.style:this.getCellStyle(a)};mxGraph.prototype.getCellStyle=function(a){var b=this.model.getStyle(a);a=this.model.isEdge(a)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();null!=b&&(a=this.postProcessCellStyle(this.stylesheet.getCellStyle(b,a)));null==a&&(a={});return a};
-mxGraph.prototype.postProcessCellStyle=function(a){if(null!=a){var b=a[mxConstants.STYLE_IMAGE],c=this.getImageFromBundles(b);null!=c?a[mxConstants.STYLE_IMAGE]=c:c=b;null!=c&&"data:image/"==c.substring(0,11)&&("data:image/svg+xml,<"==c.substring(0,20)?c=c.substring(0,19)+encodeURIComponent(c.substring(19)):"data:image/svg+xml,%3C"!=c.substring(0,22)&&(b=c.indexOf(","),0<b&&";base64,"!=c.substring(b-7,b+1)&&(c=c.substring(0,b)+";base64,"+c.substring(b+1))),a[mxConstants.STYLE_IMAGE]=c)}return a};
+mxGraph.prototype.getCurrentCellStyle=function(a,b){var c=b?null:this.view.getState(a);return null!=c?c.style:this.getCellStyle(a)};mxGraph.prototype.getCellStyle=function(a,b){b=null!=b?b:!0;var c=this.model.getStyle(a),d;d=this.model.isEdge(a)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();null!=c?d=this.stylesheet.getCellStyle(c,d,b):null!=d&&(d=mxUtils.clone(d));null==d?d={}:b&&(d=this.postProcessCellStyle(a,d));return d};
+mxGraph.prototype.postProcessCellStyle=function(a,b){if(null!=b){var c=b[mxConstants.STYLE_IMAGE],d=this.getImageFromBundles(c);null!=d?b[mxConstants.STYLE_IMAGE]=d:d=c;null!=d&&"data:image/"==d.substring(0,11)&&("data:image/svg+xml,<"==d.substring(0,20)?d=d.substring(0,19)+encodeURIComponent(d.substring(19)):"data:image/svg+xml,%3C"!=d.substring(0,22)&&(c=d.indexOf(","),0<c&&";base64,"!=d.substring(c-7,c+1)&&(d=d.substring(0,c)+";base64,"+d.substring(c+1))),b[mxConstants.STYLE_IMAGE]=d)}return b};
mxGraph.prototype.setCellStyle=function(a,b){b=b||this.getSelectionCells();if(null!=b){this.model.beginUpdate();try{for(var c=0;c<b.length;c++)this.model.setStyle(b[c],a)}finally{this.model.endUpdate()}}};mxGraph.prototype.toggleCellStyle=function(a,b,c){c=c||this.getSelectionCell();return this.toggleCellStyles(a,b,[c])};
mxGraph.prototype.toggleCellStyles=function(a,b,c){b=null!=b?b:!1;c=c||this.getEditableCells(this.getSelectionCells());var d=null;null!=c&&0<c.length&&(d=this.getCurrentCellStyle(c[0]),d=mxUtils.getValue(d,a,b)?0:1,this.setCellStyles(a,d,c));return d};mxGraph.prototype.setCellStyles=function(a,b,c){c=c||this.getEditableCells(this.getSelectionCells());mxUtils.setCellStyles(this.model,c,a,b)};mxGraph.prototype.toggleCellStyleFlags=function(a,b,c){this.setCellStyleFlags(a,b,null,c)};
mxGraph.prototype.setCellStyleFlags=function(a,b,c,d){d=d||this.getEditableCells(this.getSelectionCells());null!=d&&0<d.length&&(null==c&&(c=this.getCurrentCellStyle(d[0]),c=(parseInt(c[a]||0)&b)!=b),mxUtils.setCellStyleFlags(this.model,d,a,b,c))};mxGraph.prototype.getOriginForCell=function(a){a=this.model.getParent(a);for(var b=new mxPoint;null!=a;){var c=this.getCellGeometry(a);null==c||c.relative||(b.x+=c.x,b.y+=c.y);a=this.model.getParent(a)}return b};
@@ -2102,7 +2102,7 @@ OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};OpenFi
function Dialog(a,b,c,e,d,f,k,h,g,m,l){var n=g?57:0,p=c,r=e,u=g?0:64,v=Editor.inlineFullscreen||null==a.embedViewport?mxUtils.getDocumentSize():mxUtils.clone(a.embedViewport);null==a.embedViewport&&null!=window.innerHeight&&(v.height=window.innerHeight);var t=v.height,x=Math.max(1,Math.round((v.width-c-u)/2)),w=Math.max(1,Math.round((t-e-a.footerHeight)/3));b.style.maxHeight="100%";c=null!=document.body?Math.min(c,document.body.scrollWidth-u):c;e=Math.min(e,t-u);0<a.dialogs.length&&(this.zIndex+=
2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=Dialog.backdropColor,this.bg.style.height=t+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));v=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=v.x+"px";this.bg.style.top=v.y+"px";x+=v.x;w+=v.y;Editor.inlineFullscreen||null==a.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px",
w+=a.embedViewport.y,x+=a.embedViewport.x);d&&document.body.appendChild(this.bg);var y=a.createDiv(g?"geTransDialog":"geDialog");d=this.getPosition(x,w,c,e);x=d.x;w=d.y;y.style.width=c+"px";y.style.height=e+"px";y.style.left=x+"px";y.style.top=w+"px";y.style.zIndex=this.zIndex;y.appendChild(b);document.body.appendChild(y);!h&&b.clientHeight>y.clientHeight-u&&(b.style.overflowY="auto");b.style.overflowX="hidden";if(f&&(f=document.createElement("img"),f.setAttribute("src",Dialog.prototype.closeImage),
-f.setAttribute("title",mxResources.get("close")),f.className="geDialogClose",f.style.top=w+14+"px",f.style.left=x+c+38-n+"px",f.style.zIndex=this.zIndex,mxEvent.addListener(f,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(f),this.dialogImg=f,!l)){var F=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(a){F=!0}),null,mxUtils.bind(this,function(b){F&&(a.hideDialog(!0),F=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=m){var d=m();
+f.setAttribute("title",mxResources.get("close")),f.className="geDialogClose",f.style.top=w+14+"px",f.style.left=x+c+38-n+"px",f.style.zIndex=this.zIndex,mxEvent.addListener(f,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(f),this.dialogImg=f,!l)){var E=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(a){E=!0}),null,mxUtils.bind(this,function(b){E&&(a.hideDialog(!0),E=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=m){var d=m();
null!=d&&(p=c=d.w,r=e=d.h)}d=mxUtils.getDocumentSize();t=d.height;this.bg.style.height=t+"px";Editor.inlineFullscreen||null==a.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px");x=Math.max(1,Math.round((d.width-c-u)/2));w=Math.max(1,Math.round((t-e-a.footerHeight)/3));c=null!=document.body?Math.min(p,document.body.scrollWidth-u):p;e=Math.min(r,t-u);d=this.getPosition(x,w,c,e);x=d.x;w=d.y;y.style.left=x+"px";y.style.top=w+"px";y.style.width=c+"px";y.style.height=e+"px";!h&&
b.clientHeight>y.clientHeight-u&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=w+14+"px",this.dialogImg.style.left=x+c+38-n+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=k;this.container=y;a.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+
@@ -2134,9 +2134,9 @@ c.height==d.format.height?(h.value=d.key,f.setAttribute("checked","checked"),f.d
h.value="custom",g.style.display="none",l.style.display="")}}b="format-"+b;var f=document.createElement("input");f.setAttribute("name",b);f.setAttribute("type","radio");f.setAttribute("value","portrait");var k=document.createElement("input");k.setAttribute("name",b);k.setAttribute("type","radio");k.setAttribute("value","landscape");var h=document.createElement("select");h.style.marginBottom="8px";h.style.borderRadius="4px";h.style.border="1px solid rgb(160, 160, 160)";h.style.width="206px";var g=
document.createElement("div");g.style.marginLeft="4px";g.style.width="210px";g.style.height="24px";f.style.marginRight="6px";g.appendChild(f);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));g.appendChild(b);k.style.marginLeft="10px";k.style.marginRight="6px";g.appendChild(k);var m=document.createElement("span");m.style.width="100px";mxUtils.write(m,mxResources.get("landscape"));g.appendChild(m);var l=document.createElement("div");l.style.marginLeft=
"4px";l.style.width="210px";l.style.height="24px";var n=document.createElement("input");n.setAttribute("size","7");n.style.textAlign="right";l.appendChild(n);mxUtils.write(l," in x ");var p=document.createElement("input");p.setAttribute("size","7");p.style.textAlign="right";l.appendChild(p);mxUtils.write(l," in");g.style.display="none";l.style.display="none";for(var r={},u=PageSetupDialog.getFormats(),v=0;v<u.length;v++){var t=u[v];r[t.key]=t;var x=document.createElement("option");x.setAttribute("value",
-t.key);mxUtils.write(x,t.title);h.appendChild(x)}var w=!1;d();a.appendChild(h);mxUtils.br(a);a.appendChild(g);a.appendChild(l);var y=c,F=function(a,b){var d=r[h.value];null!=d.format?(n.value=d.format.width/100,p.value=d.format.height/100,l.style.display="none",g.style.display=""):(g.style.display="none",l.style.display="");d=parseFloat(n.value);if(isNaN(d)||0>=d)n.value=c.width/100;d=parseFloat(p.value);if(isNaN(d)||0>=d)p.value=c.height/100;d=new mxRectangle(0,0,Math.floor(100*parseFloat(n.value)),
-Math.floor(100*parseFloat(p.value)));"custom"!=h.value&&k.checked&&(d=new mxRectangle(0,0,d.height,d.width));b&&w||d.width==y.width&&d.height==y.height||(y=d,null!=e&&e(y))};mxEvent.addListener(b,"click",function(a){f.checked=!0;F(a);mxEvent.consume(a)});mxEvent.addListener(m,"click",function(a){k.checked=!0;F(a);mxEvent.consume(a)});mxEvent.addListener(n,"blur",F);mxEvent.addListener(n,"click",F);mxEvent.addListener(p,"blur",F);mxEvent.addListener(p,"click",F);mxEvent.addListener(k,"change",F);mxEvent.addListener(f,
-"change",F);mxEvent.addListener(h,"change",function(a){w="custom"==h.value;F(a,!0)});F();return{set:function(a){c=a;d(null,null,!0)},get:function(){return y},widthInput:n,heightInput:p}};
+t.key);mxUtils.write(x,t.title);h.appendChild(x)}var w=!1;d();a.appendChild(h);mxUtils.br(a);a.appendChild(g);a.appendChild(l);var y=c,E=function(a,b){var d=r[h.value];null!=d.format?(n.value=d.format.width/100,p.value=d.format.height/100,l.style.display="none",g.style.display=""):(g.style.display="none",l.style.display="");d=parseFloat(n.value);if(isNaN(d)||0>=d)n.value=c.width/100;d=parseFloat(p.value);if(isNaN(d)||0>=d)p.value=c.height/100;d=new mxRectangle(0,0,Math.floor(100*parseFloat(n.value)),
+Math.floor(100*parseFloat(p.value)));"custom"!=h.value&&k.checked&&(d=new mxRectangle(0,0,d.height,d.width));b&&w||d.width==y.width&&d.height==y.height||(y=d,null!=e&&e(y))};mxEvent.addListener(b,"click",function(a){f.checked=!0;E(a);mxEvent.consume(a)});mxEvent.addListener(m,"click",function(a){k.checked=!0;E(a);mxEvent.consume(a)});mxEvent.addListener(n,"blur",E);mxEvent.addListener(n,"click",E);mxEvent.addListener(p,"blur",E);mxEvent.addListener(p,"click",E);mxEvent.addListener(k,"change",E);mxEvent.addListener(f,
+"change",E);mxEvent.addListener(h,"change",function(a){w="custom"==h.value;E(a,!0)});E();return{set:function(a){c=a;d(null,null,!0)},get:function(){return y},widthInput:n,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}]};
@@ -2170,32 +2170,31 @@ function(a,b,c){var d,e=this.graph.model.getParent(a);if(b)d=this.graph.model.is
this.graph.isCellSelected(a)&&!this.graph.isToggleEvent(c.getEvent())||this.graph.isTableCell(a)&&this.graph.isCellSelected(e);return d};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(a){a=a.getCell();for(var b=this.graph.getModel(),c=b.getParent(a),d=this.graph.view.getState(c),e=this.graph.isCellSelected(a);null!=d&&(b.isVertex(c)||b.isEdge(c));){var f=this.graph.isCellSelected(c),e=e||f;if(f||!e&&(this.graph.isTableCell(a)||this.graph.isTableRow(a)))a=c;c=b.getParent(c)}return a}})();EditorUi=function(a,b,c){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=b||document.body;var e=this.editor.graph;e.lightbox=c;var d=e.getGraphBounds;e.getGraphBounds=function(a){var b=d.apply(this,arguments);a=this.backgroundImage;if(null!=a){var c=this.view.translate,e=this.view.scale,b=mxRectangle.fromRectangle(b);b.add(new mxRectangle((c.x+a.x)*e,(c.y+a.y)*e,a.width*e,a.height*e))}return b};e.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.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,e.isEnabled=function(){return!1},e.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);
this.menus=this.createMenus();if(!e.standalone){var f="rounded shadow glass dashed dashPattern labelBackgroundColor labelBorderColor comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle pointerEvents".split(" "),k="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" "),
-h="curved sourcePerimeterSpacing targetPerimeterSpacing startArrow startFill startSize endArrow endFill endSize".split(" ");this.setDefaultStyle=function(a){try{var b=e.view.getState(a);if(null!=b){var c=a.clone();c.style="";var d=e.getCellStyle(c);a=[];var c=[],f;for(f in b.style)d[f]!=b.style[f]&&(a.push(b.style[f]),c.push(f));for(var g=e.getModel().getStyle(b.cell),k=null!=g?g.split(";"):[],g=0;g<k.length;g++){var h=k[g],m=h.indexOf("=");if(0<=m){f=h.substring(0,m);var l=h.substring(m+1);null!=
-d[f]&&"none"==l&&(a.push(l),c.push(f))}}e.getModel().isEdge(b.cell)?e.currentEdgeStyle={}:e.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",c,"values",a,"cells",[b.cell]))}}catch(ga){this.handleError(ga)}};this.clearDefaultStyle=function(){e.currentEdgeStyle=mxUtils.clone(e.defaultEdgeStyle);e.currentVertexStyle=mxUtils.clone(e.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var g=["fontFamily","fontSource","fontSize",
-"fontColor"];for(b=0;b<g.length;b++)0>mxUtils.indexOf(f,g[b])&&f.push(g[b]);var m="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),l=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor","gradientDirection"],["opacity"],["html"]];for(b=0;b<l.length;b++)for(c=0;c<l[b].length;c++)f.push(l[b][c]);for(b=0;b<k.length;b++)0>mxUtils.indexOf(f,k[b])&&
-f.push(k[b]);var n=function(a,b,c,d,g,k,m){d=null!=d?d:e.currentVertexStyle;g=null!=g?g:e.currentEdgeStyle;k=null!=k?k:!0;c=null!=c?c:e.getModel();if(m){m=[];for(var n=0;n<a.length;n++)m=m.concat(c.getDescendants(a[n]));a=m}c.beginUpdate();try{for(n=0;n<a.length;n++){var p=a[n],r;if(b)r=["fontSize","fontFamily","fontColor"];else{var u=c.getStyle(p),Q=null!=u?u.split(";"):[];r=f.slice();for(var t=0;t<Q.length;t++){var v=Q[t],x=v.indexOf("=");if(0<=x){var N=v.substring(0,x),F=mxUtils.indexOf(r,N);0<=
-F&&r.splice(F,1);for(m=0;m<l.length;m++){var y=l[m];if(0<=mxUtils.indexOf(y,N))for(var X=0;X<y.length;X++){var P=mxUtils.indexOf(r,y[X]);0<=P&&r.splice(P,1)}}}}}var w=c.isEdge(p);m=w?g:d;for(var J=c.getStyle(p),t=0;t<r.length;t++){var N=r[t],E=m[N];null!=E&&"edgeStyle"!=N&&("shape"!=N||w)&&(!w||k||0>mxUtils.indexOf(h,N))&&(J=mxUtils.setStyle(J,N,E))}Editor.simpleLabels&&(J=mxUtils.setStyle(mxUtils.setStyle(J,"html",null),"whiteSpace",null));c.setStyle(p,J)}}finally{c.endUpdate()}return a};e.addListener("cellsInserted",
-function(a,b){n(b.getProperty("cells"),null,null,null,null,!0,!0)});e.addListener("textInserted",function(a,b){n(b.getProperty("cells"),!0)});this.insertHandler=n;this.createDivs();this.createUi();this.refresh();var p=mxUtils.bind(this,function(a){null==a&&(a=window.event);return e.isEditing()||null!=a&&this.isSelectionAllowed(a)});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?(b=function(a){if(null!=a){var b=mxEvent.getSource(a);if("A"==b.nodeName)for(;null!=b;){if("geHint"==
-b.className)return!0;b=b.parentNode}}return p(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):e.panningHandler.usePopupTrigger=!1;e.init(this.diagramContainer);mxClient.IS_SVG&&null!=e.view.getDrawPane()&&(b=e.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=e.graphHandler){var r=e.graphHandler.start;
-e.graphHandler.start=function(){null!=z.hoverIcons&&z.hoverIcons.reset();r.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var b=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-b.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-b.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var u=!1,v=this.hoverIcons.isResetEvent;
-this.hoverIcons.isResetEvent=function(a,b){return u||v.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(a){32!=a.which||e.isEditing()?mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog(null,!0):(u=!0,this.hoverIcons.reset(),e.container.style.cursor="move",e.isEditing()||mxEvent.getSource(a)!=e.container||mxEvent.consume(a))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){e.container.style.cursor="";u=!1});mxEvent.addListener(document,
-"keyup",this.keyupHandler);var t=e.panningHandler.isForcePanningEvent;e.panningHandler.isForcePanningEvent=function(a){return t.apply(this,arguments)||u||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var x=e.cellEditor.isStopEditingEvent;e.cellEditor.isStopEditingEvent=function(a){return x.apply(this,arguments)||13==a.keyCode&&
-(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))};var w=e.isZoomWheelEvent;e.isZoomWheelEvent=function(){return u||w.apply(this,arguments)};var y=!1,F=null,I=null,A=null,G=mxUtils.bind(this,function(){if(null!=this.toolbar&&y!=e.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,b=[];null!=a;){var c=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),b.push(a));
-a=c}a=this.toolbar.fontMenu;c=this.toolbar.sizeMenu;if(null==A)this.toolbar.createTextToolbar();else{for(var d=0;d<A.length;d++)this.toolbar.container.appendChild(A[d]);this.toolbar.fontMenu=F;this.toolbar.sizeMenu=I}y=e.cellEditor.isContentEditing();F=a;I=c;A=b}}),z=this,E=e.cellEditor.startEditing;e.cellEditor.startEditing=function(){E.apply(this,arguments);G();if(e.cellEditor.isContentEditing()){var a=!1,b=function(){a||(a=!0,window.setTimeout(function(){var b=e.getSelectedEditingElement();null!=
-b&&(b=mxUtils.getCurrentStyle(b),null!=b&&null!=z.toolbar&&(z.toolbar.setFontName(Graph.stripQuotes(b.fontFamily)),z.toolbar.setFontSize(parseInt(b.fontSize))));a=!1},0))};mxEvent.addListener(e.cellEditor.textarea,"input",b);mxEvent.addListener(e.cellEditor.textarea,"touchend",b);mxEvent.addListener(e.cellEditor.textarea,"mouseup",b);mxEvent.addListener(e.cellEditor.textarea,"keyup",b);b()}};var K=e.cellEditor.stopEditing;e.cellEditor.stopEditing=function(a,b){try{K.apply(this,arguments),G()}catch(Q){z.handleError(Q)}};
-e.container.setAttribute("tabindex","0");e.container.style.cursor="default";if(window.self===window.top&&null!=e.container.parentNode)try{e.container.focus()}catch(N){}var L=e.fireMouseEvent;e.fireMouseEvent=function(a,b,c){a==mxEvent.MOUSE_DOWN&&this.container.focus();L.apply(this,arguments)};e.popupMenuHandler.autoExpand=!0;null!=this.menus&&(e.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,b,c){this.menus.createPopupMenu(a,b,c)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,
-function(a){e.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);this.getKeyHandler=function(){return keyHandler};e.connectionHandler.addListener(mxEvent.CONNECT,function(a,b){var c=[b.getProperty("cell")];b.getProperty("terminalInserted")&&(c.push(b.getProperty("terminal")),window.setTimeout(function(){null!=z.hoverIcons&&z.hoverIcons.update(e.view.getState(c[c.length-1]))},0));n(c)});this.addListener("styleChanged",mxUtils.bind(this,function(a,b){var c=b.getProperty("cells"),
-d=!1,h=!1;if(0<c.length)for(var l=0;l<c.length&&(d=e.getModel().isVertex(c[l])||d,!(h=e.getModel().isEdge(c[l])||h)||!d);l++);else h=d=!0;for(var c=b.getProperty("keys"),n=b.getProperty("values"),l=0;l<c.length;l++){var p=0<=mxUtils.indexOf(g,c[l]);if("strokeColor"!=c[l]||null!=n[l]&&"none"!=n[l])if(0<=mxUtils.indexOf(k,c[l]))h||0<=mxUtils.indexOf(m,c[l])?null==n[l]?delete e.currentEdgeStyle[c[l]]:e.currentEdgeStyle[c[l]]=n[l]:d&&0<=mxUtils.indexOf(f,c[l])&&(null==n[l]?delete e.currentVertexStyle[c[l]]:
-e.currentVertexStyle[c[l]]=n[l]);else if(0<=mxUtils.indexOf(f,c[l])){if(d||p)null==n[l]?delete e.currentVertexStyle[c[l]]:e.currentVertexStyle[c[l]]=n[l];if(h||p||0<=mxUtils.indexOf(m,c[l]))null==n[l]?delete e.currentEdgeStyle[c[l]]:e.currentEdgeStyle[c[l]]=n[l]}}null!=this.toolbar&&(this.toolbar.setFontName(e.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(e.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className=
-"orthogonalEdgeStyle"==e.currentEdgeStyle.edgeStyle&&"1"==e.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==e.currentEdgeStyle.edgeStyle||"none"==e.currentEdgeStyle.edgeStyle||null==e.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==e.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==e.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==e.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==
-e.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==e.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==e.currentEdgeStyle.shape?"geSprite geSprite-linkedge":"flexArrow"==e.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==e.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&
-(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",e.currentEdgeStyle.shape,e.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(e.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("end",e.currentEdgeStyle.shape,e.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(e.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&
-(a=mxUtils.bind(this,function(){var a=e.currentVertexStyle.fontFamily||"Helvetica",b=String(e.currentVertexStyle.fontSize||"12"),c=e.getView().getState(e.getSelectionCell());null!=c&&(a=c.style[mxConstants.STYLE_FONTFAMILY]||a,b=c.style[mxConstants.STYLE_FONTSIZE]||b,10<a.length&&(a=a.substring(0,8)+"..."));this.toolbar.setFontName(a);this.toolbar.setFontSize(b)}),e.getSelectionModel().addListener(mxEvent.CHANGE,a),e.getModel().addListener(mxEvent.CHANGE,a));e.addListener(mxEvent.CELLS_ADDED,function(a,
-b){var c=b.getProperty("cells"),d=b.getProperty("parent");null!=d&&e.getModel().isLayer(d)&&!e.isCellVisible(d)&&null!=c&&0<c.length&&e.getModel().setVisible(d,!0)});this.gestureHandler=mxUtils.bind(this,function(a){null!=this.currentMenu&&mxEvent.getSource(a)!=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&&(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(){e.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){e.view.validateBackground()}));e.addListener("gridSizeChanged",mxUtils.bind(this,function(){e.isGridEnabled()&&e.view.validateBackground()}));this.editor.resetGraph()}this.init();e.standalone||this.open()};EditorUi.compactUi=!0;
-EditorUi.parsePng=function(a,b,c){function e(a,b){var c=f;f+=b;return a.substring(c,f)}function d(a){a=e(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var f=0;if(e(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(e(a,4),"IHDR"!=e(a,4))null!=c&&c();else{e(a,17);do{c=d(a);var k=e(a,4);if(null!=b&&b(f-8,k,c))break;value=e(a,c);e(a,4);if("IEND"==k)break}while(c)}};mxUtils.extend(EditorUi,mxEventSource);
+h="curved sourcePerimeterSpacing targetPerimeterSpacing startArrow startFill startSize endArrow endFill endSize".split(" ");this.setDefaultStyle=function(a){try{var b=e.getCellStyle(a,!1),c=[],d=[],f;for(f in b)c.push(b[f]),d.push(f);e.getModel().isEdge(a)?e.currentEdgeStyle={}:e.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",d,"values",c,"cells",[a]))}catch(O){this.handleError(O)}};this.clearDefaultStyle=function(){e.currentEdgeStyle=mxUtils.clone(e.defaultEdgeStyle);
+e.currentVertexStyle=mxUtils.clone(e.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var g=["fontFamily","fontSource","fontSize","fontColor"];for(b=0;b<g.length;b++)0>mxUtils.indexOf(f,g[b])&&f.push(g[b]);var m="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),l=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],
+["fillColor","gradientColor","gradientDirection"],["opacity"],["html"]];for(b=0;b<l.length;b++)for(c=0;c<l[b].length;c++)f.push(l[b][c]);for(b=0;b<k.length;b++)0>mxUtils.indexOf(f,k[b])&&f.push(k[b]);var n=function(a,b,c,d,g,k,m){d=null!=d?d:e.currentVertexStyle;g=null!=g?g:e.currentEdgeStyle;k=null!=k?k:!0;c=null!=c?c:e.getModel();if(m){m=[];for(var n=0;n<a.length;n++)m=m.concat(c.getDescendants(a[n]));a=m}c.beginUpdate();try{for(n=0;n<a.length;n++){var p=a[n],r;if(b)r=["fontSize","fontFamily","fontColor"];
+else{var u=c.getStyle(p),R=null!=u?u.split(";"):[];r=f.slice();for(var t=0;t<R.length;t++){var v=R[t],x=v.indexOf("=");if(0<=x){var N=v.substring(0,x),E=mxUtils.indexOf(r,N);0<=E&&r.splice(E,1);for(m=0;m<l.length;m++){var y=l[m];if(0<=mxUtils.indexOf(y,N))for(var X=0;X<y.length;X++){var O=mxUtils.indexOf(r,y[X]);0<=O&&r.splice(O,1)}}}}}var w=c.isEdge(p);m=w?g:d;for(var J=c.getStyle(p),t=0;t<r.length;t++){var N=r[t],G=m[N];null!=G&&"edgeStyle"!=N&&("shape"!=N||w)&&(!w||k||0>mxUtils.indexOf(h,N))&&
+(J=mxUtils.setStyle(J,N,G))}}Editor.simpleLabels&&(J=mxUtils.setStyle(mxUtils.setStyle(J,"html",null),"whiteSpace",null));c.setStyle(p,J)}finally{c.endUpdate()}return a};e.addListener("cellsInserted",function(a,b){n(b.getProperty("cells"),null,null,null,null,!0,!0)});e.addListener("textInserted",function(a,b){n(b.getProperty("cells"),!0)});this.insertHandler=n;this.createDivs();this.createUi();this.refresh();var p=mxUtils.bind(this,function(a){null==a&&(a=window.event);return e.isEditing()||null!=
+a&&this.isSelectionAllowed(a)});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?(b=function(a){if(null!=a){var b=mxEvent.getSource(a);if("A"==b.nodeName)for(;null!=b;){if("geHint"==b.className)return!0;b=b.parentNode}}return p(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):e.panningHandler.usePopupTrigger=!1;e.init(this.diagramContainer);
+mxClient.IS_SVG&&null!=e.view.getDrawPane()&&(b=e.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=e.graphHandler){var r=e.graphHandler.start;e.graphHandler.start=function(){null!=z.hoverIcons&&z.hoverIcons.reset();r.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var b=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-b.x-this.diagramContainer.clientWidth||
+0<mxEvent.getClientY(a)-b.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var u=!1,v=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,b){return u||v.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(a){32!=a.which||e.isEditing()?mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog(null,!0):(u=!0,this.hoverIcons.reset(),e.container.style.cursor="move",
+e.isEditing()||mxEvent.getSource(a)!=e.container||mxEvent.consume(a))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){e.container.style.cursor="";u=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var t=e.panningHandler.isForcePanningEvent;e.panningHandler.isForcePanningEvent=function(a){return t.apply(this,arguments)||u||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&
+mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var x=e.cellEditor.isStopEditingEvent;e.cellEditor.isStopEditingEvent=function(a){return x.apply(this,arguments)||13==a.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))};var w=e.isZoomWheelEvent;e.isZoomWheelEvent=function(){return u||w.apply(this,arguments)};var y=!1,E=null,I=null,A=null,F=mxUtils.bind(this,function(){if(null!=this.toolbar&&
+y!=e.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,b=[];null!=a;){var c=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),b.push(a));a=c}a=this.toolbar.fontMenu;c=this.toolbar.sizeMenu;if(null==A)this.toolbar.createTextToolbar();else{for(var d=0;d<A.length;d++)this.toolbar.container.appendChild(A[d]);this.toolbar.fontMenu=E;this.toolbar.sizeMenu=I}y=e.cellEditor.isContentEditing();E=a;I=c;A=b}}),z=this,G=e.cellEditor.startEditing;
+e.cellEditor.startEditing=function(){G.apply(this,arguments);F();if(e.cellEditor.isContentEditing()){var a=!1,b=function(){a||(a=!0,window.setTimeout(function(){var b=e.getSelectedEditingElement();null!=b&&(b=mxUtils.getCurrentStyle(b),null!=b&&null!=z.toolbar&&(z.toolbar.setFontName(Graph.stripQuotes(b.fontFamily)),z.toolbar.setFontSize(parseInt(b.fontSize))));a=!1},0))};mxEvent.addListener(e.cellEditor.textarea,"input",b);mxEvent.addListener(e.cellEditor.textarea,"touchend",b);mxEvent.addListener(e.cellEditor.textarea,
+"mouseup",b);mxEvent.addListener(e.cellEditor.textarea,"keyup",b);b()}};var K=e.cellEditor.stopEditing;e.cellEditor.stopEditing=function(a,b){try{K.apply(this,arguments),F()}catch(R){z.handleError(R)}};e.container.setAttribute("tabindex","0");e.container.style.cursor="default";if(window.self===window.top&&null!=e.container.parentNode)try{e.container.focus()}catch(N){}var L=e.fireMouseEvent;e.fireMouseEvent=function(a,b,c){a==mxEvent.MOUSE_DOWN&&this.container.focus();L.apply(this,arguments)};e.popupMenuHandler.autoExpand=
+!0;null!=this.menus&&(e.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,b,c){this.menus.createPopupMenu(a,b,c)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){e.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);this.getKeyHandler=function(){return keyHandler};e.connectionHandler.addListener(mxEvent.CONNECT,function(a,b){var c=[b.getProperty("cell")];b.getProperty("terminalInserted")&&(c.push(b.getProperty("terminal")),window.setTimeout(function(){null!=
+z.hoverIcons&&z.hoverIcons.update(e.view.getState(c[c.length-1]))},0));n(c)});this.addListener("styleChanged",mxUtils.bind(this,function(a,b){var c=b.getProperty("cells"),d=!1,h=!1;if(0<c.length)for(var l=0;l<c.length&&(d=e.getModel().isVertex(c[l])||d,!(h=e.getModel().isEdge(c[l])||h)||!d);l++);else h=d=!0;for(var c=b.getProperty("keys"),n=b.getProperty("values"),l=0;l<c.length;l++){var p=0<=mxUtils.indexOf(g,c[l]);if("strokeColor"!=c[l]||null!=n[l]&&"none"!=n[l])if(0<=mxUtils.indexOf(k,c[l]))h||
+0<=mxUtils.indexOf(m,c[l])?null==n[l]?delete e.currentEdgeStyle[c[l]]:e.currentEdgeStyle[c[l]]=n[l]:d&&0<=mxUtils.indexOf(f,c[l])&&(null==n[l]?delete e.currentVertexStyle[c[l]]:e.currentVertexStyle[c[l]]=n[l]);else if(0<=mxUtils.indexOf(f,c[l])){if(d||p)null==n[l]?delete e.currentVertexStyle[c[l]]:e.currentVertexStyle[c[l]]=n[l];if(h||p||0<=mxUtils.indexOf(m,c[l]))null==n[l]?delete e.currentEdgeStyle[c[l]]:e.currentEdgeStyle[c[l]]=n[l]}}null!=this.toolbar&&(this.toolbar.setFontName(e.currentVertexStyle.fontFamily||
+Menus.prototype.defaultFont),this.toolbar.setFontSize(e.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==e.currentEdgeStyle.edgeStyle&&"1"==e.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==e.currentEdgeStyle.edgeStyle||"none"==e.currentEdgeStyle.edgeStyle||null==e.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==
+e.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==e.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==e.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==e.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==e.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==e.currentEdgeStyle.shape?
+"geSprite geSprite-linkedge":"flexArrow"==e.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==e.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",e.currentEdgeStyle.shape,e.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(e.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=
+this.getCssClassForMarker("end",e.currentEdgeStyle.shape,e.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(e.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var a=e.currentVertexStyle.fontFamily||"Helvetica",b=String(e.currentVertexStyle.fontSize||"12"),c=e.getView().getState(e.getSelectionCell());null!=c&&(a=c.style[mxConstants.STYLE_FONTFAMILY]||a,b=c.style[mxConstants.STYLE_FONTSIZE]||b,10<a.length&&(a=a.substring(0,8)+"..."));this.toolbar.setFontName(a);
+this.toolbar.setFontSize(b)}),e.getSelectionModel().addListener(mxEvent.CHANGE,a),e.getModel().addListener(mxEvent.CHANGE,a));e.addListener(mxEvent.CELLS_ADDED,function(a,b){var c=b.getProperty("cells"),d=b.getProperty("parent");null!=d&&e.getModel().isLayer(d)&&!e.isCellVisible(d)&&null!=c&&0<c.length&&e.getModel().setVisible(d,!0)});this.gestureHandler=mxUtils.bind(this,function(a){null!=this.currentMenu&&mxEvent.getSource(a)!=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&&(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(){e.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){e.view.validateBackground()}));e.addListener("gridSizeChanged",mxUtils.bind(this,function(){e.isGridEnabled()&&e.view.validateBackground()}));this.editor.resetGraph()}this.init();e.standalone||this.open()};
+EditorUi.compactUi=!0;EditorUi.parsePng=function(a,b,c){function e(a,b){var c=f;f+=b;return a.substring(c,f)}function d(a){a=e(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var f=0;if(e(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(e(a,4),"IHDR"!=e(a,4))null!=c&&c();else{e(a,17);do{c=d(a);var k=e(a,4);if(null!=b&&b(f-8,k,c))break;value=e(a,c);e(a,4);if("IEND"==k)break}while(c)}};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 a=this.editor.graph;if(!a.standalone){"0"!=urlParams["shape-picker"]&&this.installShapePicker();mxEvent.addListener(a.container,"scroll",mxUtils.bind(this,function(){a.tooltipHandler.hide();null!=a.connectionHandler&&null!=a.connectionHandler.constraintHandler&&a.connectionHandler.constraintHandler.reset()}));a.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){a.tooltipHandler.hide();var b=a.getRubberband();null!=b&&b.cancel()}));mxEvent.addListener(a.container,
@@ -2250,18 +2249,18 @@ Editor.layersImage,mxResources.get("layers")),x=a.getModel();x.addListener(mxEve
function(b){d.fullscreenBtn.url?a.openLink(d.fullscreenBtn.url):a.openLink(window.location.href);mxEvent.consume(b)}),Editor.fullscreenImage,mxResources.get("openInNewWindow",null,"Open in New Window"));(d.closeBtn&&window.self===window.top||a.lightbox&&("1"==urlParams.close||this.container!=document.body))&&f(mxUtils.bind(this,function(a){"1"==urlParams.close||d.closeBtn?window.close():(this.destroy(),mxEvent.consume(a))}),Editor.closeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display=
"none";a.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");a.container.appendChild(this.chromelessToolbar);mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||v(30),u())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",
mxUtils.bind(this,function(b){a.tooltipHandler.resetTimer();a.tooltipHandler.hideTooltip();mxEvent.isShiftDown(b)?u():v(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?u():v(100);mxEvent.consume(a)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||v(30)}));var y=a.getTolerance();a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(b,c){this.startX=
-c.getGraphX();this.startY=c.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(b,d){mxEvent.isTouchEvent(d.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<y&&Math.abs(this.scrollTop-a.container.scrollTop)<y&&Math.abs(this.startX-d.getGraphX())<y&&Math.abs(this.startY-d.getGraphY())<y&&(0<parseFloat(c.chromelessToolbar.style.opacity||0)?u():v(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var F=
-a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),b=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*b.width;this.translate.y=a.y-(this.y0||0)*b.height}F.apply(this,arguments)};if(!a.isViewer()){var I=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var b=this.getPageLayout(),c=this.getPagePadding(),d=this.getPageSize(),e=Math.ceil(2*
+c.getGraphX();this.startY=c.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(b,d){mxEvent.isTouchEvent(d.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<y&&Math.abs(this.scrollTop-a.container.scrollTop)<y&&Math.abs(this.startX-d.getGraphX())<y&&Math.abs(this.startY-d.getGraphY())<y&&(0<parseFloat(c.chromelessToolbar.style.opacity||0)?u():v(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var E=
+a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),b=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*b.width;this.translate.y=a.y-(this.y0||0)*b.height}E.apply(this,arguments)};if(!a.isViewer()){var I=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var b=this.getPageLayout(),c=this.getPagePadding(),d=this.getPageSize(),e=Math.ceil(2*
c.x+b.width*d.width),f=Math.ceil(2*c.y+b.height*d.height),g=a.minimumGraphSize;if(null==g||g.width!=e||g.height!=f)a.minimumGraphSize=new mxRectangle(0,0,e,f);e=c.x-b.x*d.width;c=c.y-b.y*d.height;this.autoTranslate||this.view.translate.x==e&&this.view.translate.y==c?I.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=b.x,this.view.y0=b.y,b=a.view.translate.x,d=a.view.translate.y,a.view.setTranslate(e,c),a.container.scrollLeft+=Math.round((e-b)*a.view.scale),a.container.scrollTop+=Math.round((c-
-d)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var A=a.view.getBackgroundPane(),G=a.view.getDrawPane();a.cumulativeZoomFactor=1;var z=null,E=null,K=null,L=null,N=null,J=function(d){null!=z&&window.clearTimeout(z);window.setTimeout(function(){if(!a.isMouseDown||L)z=window.setTimeout(mxUtils.bind(this,function(){a.isFastZoomEnabled()&&(null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,
-"transform-origin",null),mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform",null)),G.style.transformOrigin="",A.style.transformOrigin="",mxClient.IS_SF?(G.style.transform="scale(1)",A.style.transform="scale(1)",window.setTimeout(function(){G.style.transform="";A.style.transform=""},0)):(G.style.transform="",A.style.transform=""),a.view.getDecoratorPane().style.opacity="",a.view.getOverlayPane().style.opacity="");var d=new mxPoint(a.container.scrollLeft,a.container.scrollTop),
-e=mxUtils.getOffset(a.container),f=a.view.scale,g=0,k=0;null!=E&&(g=a.container.offsetWidth/2-E.x+e.x,k=a.container.offsetHeight/2-E.y+e.y);a.zoom(a.cumulativeZoomFactor,null,20);a.view.scale!=f&&(null!=K&&(g+=d.x-K.x,k+=d.y-K.y),null!=b&&c.chromelessResize(!1,null,g*(a.cumulativeZoomFactor-1),k*(a.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==g&&0==k||(a.container.scrollLeft-=g*(a.cumulativeZoomFactor-1),a.container.scrollTop-=k*(a.cumulativeZoomFactor-1)));null!=N&&G.setAttribute("filter",
-N);a.cumulativeZoomFactor=1;N=L=E=K=z=null}),null!=d?d:a.isFastZoomEnabled()?c.wheelZoomDelay:c.lazyZoomDelay)},0)};a.lazyZoom=function(b,d,e,f){f=null!=f?f:this.zoomFactor;(d=d||!a.scrollbars)&&(E=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));b?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=f,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/=f,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;a.isFastZoomEnabled()&&(null==N&&""!=G.getAttribute("filter")&&(N=G.getAttribute("filter"),
-G.removeAttribute("filter")),K=new mxPoint(a.container.scrollLeft,a.container.scrollTop),b=d?a.container.scrollLeft+a.container.clientWidth/2:E.x+a.container.scrollLeft-a.container.offsetLeft,f=d?a.container.scrollTop+a.container.clientHeight/2:E.y+a.container.scrollTop-a.container.offsetTop,G.style.transformOrigin=b+"px "+f+"px",G.style.transform="scale("+this.cumulativeZoomFactor+")",A.style.transformOrigin=b+"px "+f+"px",A.style.transform="scale("+this.cumulativeZoomFactor+")",null!=a.view.backgroundPageShape&&
-null!=a.view.backgroundPageShape.node&&(b=a.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(b.style,"transform-origin",(d?a.container.clientWidth/2+a.container.scrollLeft-b.offsetLeft+"px":E.x+a.container.scrollLeft-b.offsetLeft-a.container.offsetLeft+"px")+" "+(d?a.container.clientHeight/2+a.container.scrollTop-b.offsetTop+"px":E.y+a.container.scrollTop-b.offsetTop-a.container.offsetTop+"px")),mxUtils.setPrefixedStyle(b.style,"transform","scale("+this.cumulativeZoomFactor+")")),a.view.getDecoratorPane().style.opacity=
+d)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var A=a.view.getBackgroundPane(),F=a.view.getDrawPane();a.cumulativeZoomFactor=1;var z=null,G=null,K=null,L=null,N=null,J=function(d){null!=z&&window.clearTimeout(z);window.setTimeout(function(){if(!a.isMouseDown||L)z=window.setTimeout(mxUtils.bind(this,function(){a.isFastZoomEnabled()&&(null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,
+"transform-origin",null),mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform",null)),F.style.transformOrigin="",A.style.transformOrigin="",mxClient.IS_SF?(F.style.transform="scale(1)",A.style.transform="scale(1)",window.setTimeout(function(){F.style.transform="";A.style.transform=""},0)):(F.style.transform="",A.style.transform=""),a.view.getDecoratorPane().style.opacity="",a.view.getOverlayPane().style.opacity="");var d=new mxPoint(a.container.scrollLeft,a.container.scrollTop),
+e=mxUtils.getOffset(a.container),f=a.view.scale,g=0,k=0;null!=G&&(g=a.container.offsetWidth/2-G.x+e.x,k=a.container.offsetHeight/2-G.y+e.y);a.zoom(a.cumulativeZoomFactor,null,20);a.view.scale!=f&&(null!=K&&(g+=d.x-K.x,k+=d.y-K.y),null!=b&&c.chromelessResize(!1,null,g*(a.cumulativeZoomFactor-1),k*(a.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==g&&0==k||(a.container.scrollLeft-=g*(a.cumulativeZoomFactor-1),a.container.scrollTop-=k*(a.cumulativeZoomFactor-1)));null!=N&&F.setAttribute("filter",
+N);a.cumulativeZoomFactor=1;N=L=G=K=z=null}),null!=d?d:a.isFastZoomEnabled()?c.wheelZoomDelay:c.lazyZoomDelay)},0)};a.lazyZoom=function(b,d,e,f){f=null!=f?f:this.zoomFactor;(d=d||!a.scrollbars)&&(G=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));b?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=f,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/=f,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;a.isFastZoomEnabled()&&(null==N&&""!=F.getAttribute("filter")&&(N=F.getAttribute("filter"),
+F.removeAttribute("filter")),K=new mxPoint(a.container.scrollLeft,a.container.scrollTop),b=d?a.container.scrollLeft+a.container.clientWidth/2:G.x+a.container.scrollLeft-a.container.offsetLeft,f=d?a.container.scrollTop+a.container.clientHeight/2:G.y+a.container.scrollTop-a.container.offsetTop,F.style.transformOrigin=b+"px "+f+"px",F.style.transform="scale("+this.cumulativeZoomFactor+")",A.style.transformOrigin=b+"px "+f+"px",A.style.transform="scale("+this.cumulativeZoomFactor+")",null!=a.view.backgroundPageShape&&
+null!=a.view.backgroundPageShape.node&&(b=a.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(b.style,"transform-origin",(d?a.container.clientWidth/2+a.container.scrollLeft-b.offsetLeft+"px":G.x+a.container.scrollLeft-b.offsetLeft-a.container.offsetLeft+"px")+" "+(d?a.container.clientHeight/2+a.container.scrollTop-b.offsetTop+"px":G.y+a.container.scrollTop-b.offsetTop-a.container.offsetTop+"px")),mxUtils.setPrefixedStyle(b.style,"transform","scale("+this.cumulativeZoomFactor+")")),a.view.getDecoratorPane().style.opacity=
"0",a.view.getOverlayPane().style.opacity="0",null!=c.hoverIcons&&c.hoverIcons.reset());J(e)};mxEvent.addGestureListeners(a.container,function(a){null!=z&&window.clearTimeout(z)},null,function(b){1!=a.cumulativeZoomFactor&&J(0)});mxEvent.addListener(a.container,"scroll",function(b){null==z||a.isMouseDown||1==a.cumulativeZoomFactor||J(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(b,c,d,e,f){a.fireEvent(new mxEventObject("wheel"));if(null==this.dialogs||0==this.dialogs.length)if(!a.scrollbars&&
-!d&&a.isScrollWheelEvent(b))d=a.view.getTranslate(),e=40/a.view.scale,mxEvent.isShiftDown(b)?a.view.setTranslate(d.x+(c?-e:e),d.y):a.view.setTranslate(d.x,d.y+(c?e:-e));else if(d||a.isZoomWheelEvent(b))for(var g=mxEvent.getSource(b);null!=g;){if(g==a.container)return a.tooltipHandler.hideTooltip(),E=null!=e&&null!=f?new mxPoint(e,f):new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b)),L=d,d=a.zoomFactor,null!=b.deltaY&&Math.round(b.deltaY)!=b.deltaY&&(d=1+Math.abs(b.deltaY)/20*(d-1)),a.lazyZoom(c,
+!d&&a.isScrollWheelEvent(b))d=a.view.getTranslate(),e=40/a.view.scale,mxEvent.isShiftDown(b)?a.view.setTranslate(d.x+(c?-e:e),d.y):a.view.setTranslate(d.x,d.y+(c?e:-e));else if(d||a.isZoomWheelEvent(b))for(var g=mxEvent.getSource(b);null!=g;){if(g==a.container)return a.tooltipHandler.hideTooltip(),G=null!=e&&null!=f?new mxPoint(e,f):new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b)),L=d,d=a.zoomFactor,null!=b.deltaY&&Math.round(b.deltaY)!=b.deltaY&&(d=1+Math.abs(b.deltaY)/20*(d-1)),a.lazyZoom(c,
null,null,d),mxEvent.consume(b),!1;g=g.parentNode}}),a.container);a.panningHandler.zoomGraph=function(b){a.cumulativeZoomFactor=b.scale;a.lazyZoom(0<b.scale,!0);mxEvent.consume(b)}};EditorUi.prototype.addChromelessToolbarItems=function(a){a(mxUtils.bind(this,function(a){this.actions.get("print").funct();mxEvent.consume(a)}),Editor.printImage,mxResources.get("print"))};EditorUi.prototype.isPagesEnabled=function(){return this.editor.editable||"1"!=urlParams["hide-pages"]};
EditorUi.prototype.createTemporaryGraph=function(a){return Graph.createOffscreenGraph(a)};EditorUi.prototype.addChromelessClickHandler=function(){var a=urlParams.highlight;null!=a&&0<a.length&&(a="#"+a);this.editor.graph.addClickHandler(a)};EditorUi.prototype.toggleFormatPanel=function(a){a=null!=a?a:0==this.formatWidth;null!=this.format&&(this.formatWidth=a?240:0,this.formatContainer.style.display=a?"":"none",this.refresh(),this.format.refresh(),this.fireEvent(new mxEventObject("formatWidthChanged")))};
EditorUi.prototype.lightboxFit=function(a){if(this.isDiagramEmpty())this.editor.graph.view.setScale(1);else{var b=urlParams.border,c=60;null!=b&&(c=parseInt(b));this.editor.graph.maxFitScale=this.lightboxMaxFitScale;this.editor.graph.fit(c,null,null,null,null,null,a);this.editor.graph.maxFitScale=null}};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,0))};
@@ -2382,7 +2381,7 @@ e.style.cursor="default";var d=document.createElement("input");d.setAttribute("p
mxResources.get("search"));f.style.position="relative";f.style.left="-18px";f.style.top="1px";f.style.background="url('"+this.editorUi.editor.transparentImage+"')";var k;e.appendChild(f);c.appendChild(e);var h=document.createElement("center"),g=mxUtils.button(mxResources.get("moreResults"),function(){k()});g.style.display="none";g.style.lineHeight="normal";g.style.fontSize="12px";g.style.padding="6px 12px 6px 12px";g.style.marginTop="4px";g.style.marginBottom="8px";h.style.paddingTop="4px";h.style.paddingBottom=
"4px";h.appendChild(g);c.appendChild(h);var m="",l=!1,n=!1,p=0,r={},u=12,v=mxUtils.bind(this,function(){l=!1;this.currentSearch=null;for(var a=c.firstChild;null!=a;){var b=a.nextSibling;a!=e&&a!=h&&a.parentNode.removeChild(a);a=b}});mxEvent.addListener(f,"click",function(){f.getAttribute("src")==Dialog.prototype.closeImage&&(f.setAttribute("src",Sidebar.prototype.searchImage),f.setAttribute("title",mxResources.get("search")),g.style.display="none",m=d.value="",v());d.focus()});k=mxUtils.bind(this,
function(){u=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10)));this.hideTooltip();if(""!=d.value){if(null!=h.parentNode&&(m!=d.value&&(v(),m=d.value,r={},n=!1,p=0),!l&&!n)){g.setAttribute("disabled","true");g.style.display="";g.style.cursor="wait";g.innerHTML=mxResources.get("loading")+"...";l=!0;var a={};this.currentSearch=a;this.searchEntries(m,u,p,mxUtils.bind(this,function(b,d,e,f){if(this.currentSearch==a){b=null!=b?b:[];l=!1;p++;this.insertSearchHint(c,m,u,p,b,d,e,f);
-0==b.length&&1==p&&(m="");null!=h.parentNode&&h.parentNode.removeChild(h);for(d=0;d<b.length;d++)mxUtils.bind(this,function(a){try{var b=a();null==r[b.innerHTML]?(r[b.innerHTML]=null!=a.parentLibraries?a.parentLibraries.slice():[],c.appendChild(b)):null!=a.parentLibraries&&(r[b.innerHTML]=r[b.innerHTML].concat(a.parentLibraries));mxEvent.addGestureListeners(b,null,null,mxUtils.bind(this,function(a){var c=r[b.innerHTML];mxEvent.isPopupTrigger(a)&&this.showPopupMenuForEntry(b,c,a)}));mxEvent.disableContextMenu(b)}catch(G){}})(b[d]);
+0==b.length&&1==p&&(m="");null!=h.parentNode&&h.parentNode.removeChild(h);for(d=0;d<b.length;d++)mxUtils.bind(this,function(a){try{var b=a();null==r[b.innerHTML]?(r[b.innerHTML]=null!=a.parentLibraries?a.parentLibraries.slice():[],c.appendChild(b)):null!=a.parentLibraries&&(r[b.innerHTML]=r[b.innerHTML].concat(a.parentLibraries));mxEvent.addGestureListeners(b,null,null,mxUtils.bind(this,function(a){var c=r[b.innerHTML];mxEvent.isPopupTrigger(a)&&this.showPopupMenuForEntry(b,c,a)}));mxEvent.disableContextMenu(b)}catch(F){}})(b[d]);
e?(g.removeAttribute("disabled"),g.innerHTML=mxResources.get("moreResults")):(g.innerHTML=mxResources.get("reset"),g.style.display="none",n=!0);g.style.cursor="";c.appendChild(h)}}),mxUtils.bind(this,function(){g.style.cursor=""}))}}else v(),m=d.value="",r={},g.style.display="none",n=!1,d.focus()});this.searchShapes=function(a){d.value=a;k()};mxEvent.addListener(d,"keydown",mxUtils.bind(this,function(a){13==a.keyCode&&(k(),mxEvent.consume(a))}));mxEvent.addListener(d,"keyup",mxUtils.bind(this,function(a){""==
d.value?(f.setAttribute("src",Sidebar.prototype.searchImage),f.setAttribute("title",mxResources.get("search"))):(f.setAttribute("src",Dialog.prototype.closeImage),f.setAttribute("title",mxResources.get("reset")));""==d.value?(n=!0,g.style.display="none"):d.value!=m?(g.style.display="none",n=!1):l||(g.style.display=n?"none":"")}));mxEvent.addListener(d,"mousedown",function(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=!0});mxEvent.addListener(d,"selectstart",function(a){a.stopPropagation&&
a.stopPropagation();a.cancelBubble=!0});a=document.createElement("div");a.appendChild(c);this.container.appendChild(a);this.palettes.search=[b,a]};
@@ -2511,7 +2510,7 @@ d.fireEvent(new mxEventObject("cellsInserted","cells",l))}catch(x){this.editorUi
Sidebar.prototype.createDragPreview=function(a,b){var c=document.createElement("div");c.className="geDragPreview";c.style.width=a+"px";c.style.height=b+"px";return c};
Sidebar.prototype.dropAndConnect=function(a,b,c,e,d){var f=this.getDropAndConnectGeometry(a,b[e],c,b),k=[];if(null!=f){var h=this.editorUi.editor.graph,g=null;h.model.beginUpdate();try{var m=h.getCellGeometry(a),l=h.getCellGeometry(b[e]),n=h.model.getParent(a),p=!0;if(null!=h.layoutManager){var r=h.layoutManager.getLayout(n);null!=r&&r.constructor==mxStackLayout&&(p=!1)}var k=h.model.isEdge(a)?null:h.view.getState(n),u=r=0;if(null!=k){var v=k.origin,r=v.x,u=v.y,t=f.getTerminalPoint(!1);null!=t&&(t.x+=
v.x,t.y+=v.y)}var x=!h.isTableRow(a)&&!h.isTableCell(a)&&(h.model.isEdge(a)||null!=m&&!m.relative&&p),w=h.getCellAt((f.x+r+h.view.translate.x)*h.view.scale,(f.y+u+h.view.translate.y)*h.view.scale,null,null,null,function(a,b,c){return!h.isContainer(a.cell)});if(null!=w&&w!=n)k=h.view.getState(w),null!=k&&(v=k.origin,n=w,x=!0,h.model.isEdge(a)||(f.x-=v.x-r,f.y-=v.y-u));else if(!p||h.isTableRow(a)||h.isTableCell(a))f.x+=r,f.y+=u;r=l.x;u=l.y;h.model.isEdge(b[e])&&(u=r=0);k=b=h.importCells(b,f.x-(x?r:
-0),f.y-(x?u:0),x?n:null);if(h.model.isEdge(a))h.model.setTerminal(a,b[e],c==mxConstants.DIRECTION_NORTH);else if(h.model.isEdge(b[e])){h.model.setTerminal(b[e],a,!0);var y=h.getCellGeometry(b[e]);y.points=null;if(null!=y.getTerminalPoint(!1))y.setTerminalPoint(f.getTerminalPoint(!1),!1);else if(x&&h.model.isVertex(n)){var F=h.view.getState(n),v=F.cell!=h.view.currentRoot?F.origin:new mxPoint(0,0);h.cellsMoved(b,v.x,v.y,null,null,!0)}}else l=h.getCellGeometry(b[e]),r=f.x-Math.round(l.x),u=f.y-Math.round(l.y),
+0),f.y-(x?u:0),x?n:null);if(h.model.isEdge(a))h.model.setTerminal(a,b[e],c==mxConstants.DIRECTION_NORTH);else if(h.model.isEdge(b[e])){h.model.setTerminal(b[e],a,!0);var y=h.getCellGeometry(b[e]);y.points=null;if(null!=y.getTerminalPoint(!1))y.setTerminalPoint(f.getTerminalPoint(!1),!1);else if(x&&h.model.isVertex(n)){var E=h.view.getState(n),v=E.cell!=h.view.currentRoot?E.origin:new mxPoint(0,0);h.cellsMoved(b,v.x,v.y,null,null,!0)}}else l=h.getCellGeometry(b[e]),r=f.x-Math.round(l.x),u=f.y-Math.round(l.y),
f.x=Math.round(l.x),f.y=Math.round(l.y),h.model.setGeometry(b[e],f),h.cellsMoved(b,r,u,null,null,!0),k=b.slice(),g=1==k.length?k[0]:null,b.push(h.insertEdge(null,null,"",a,b[e],h.createCurrentEdgeStyle()));null!=d&&mxEvent.isShiftDown(d)||h.fireEvent(new mxEventObject("cellsInserted","cells",b))}catch(I){this.editorUi.handleError(I)}finally{h.model.endUpdate()}h.editAfterInsert&&null!=d&&mxEvent.isMouseEvent(d)&&null!=g&&window.setTimeout(function(){h.startEditing(g)},0)}return k};
Sidebar.prototype.getDropAndConnectGeometry=function(a,b,c,e){var d=this.editorUi.editor.graph,f=d.view,k=1<e.length,h=d.getCellGeometry(a);e=d.getCellGeometry(b);null!=h&&null!=e&&(e=e.clone(),d.model.isEdge(a)?(a=d.view.getState(a),h=a.absolutePoints,b=h[0],d=h[h.length-1],c==mxConstants.DIRECTION_NORTH?(e.x=b.x/f.scale-f.translate.x-e.width/2,e.y=b.y/f.scale-f.translate.y-e.height/2):(e.x=d.x/f.scale-f.translate.x-e.width/2,e.y=d.y/f.scale-f.translate.y-e.height/2)):(h.relative&&(a=d.view.getState(a),
h=h.clone(),h.x=(a.x-f.translate.x)/f.scale,h.y=(a.y-f.translate.y)/f.scale),f=d.defaultEdgeLength,d.model.isEdge(b)&&null!=e.getTerminalPoint(!0)&&null!=e.getTerminalPoint(!1)?(b=e.getTerminalPoint(!0),d=e.getTerminalPoint(!1),f=d.x-b.x,b=d.y-b.y,f=Math.sqrt(f*f+b*b),e.x=h.getCenterX(),e.y=h.getCenterY(),e.width=1,e.height=1,c==mxConstants.DIRECTION_NORTH?(e.height=f,e.y=h.y-f,e.setTerminalPoint(new mxPoint(e.x,e.y),!1)):c==mxConstants.DIRECTION_EAST?(e.width=f,e.x=h.x+h.width,e.setTerminalPoint(new mxPoint(e.x+
@@ -2522,25 +2521,25 @@ Sidebar.prototype.isDropStyleTargetIgnored=function(a){return this.graph.isSwiml
Sidebar.prototype.createDragSource=function(a,b,c,e,d){function f(a,b){var c;c=mxUtils.createImage(a.src);c.style.width=a.width+"px";c.style.height=a.height+"px";null!=b&&c.setAttribute("title",b);mxUtils.setOpacity(c,a==this.refreshTarget?30:20);c.style.position="absolute";c.style.cursor="crosshair";return c}function k(a,b,c,d){null!=d.parentNode&&(mxUtils.contains(c,a,b)?(mxUtils.setOpacity(d,100),J=d):mxUtils.setOpacity(d,d==z?30:20));return c}for(var h=this.editorUi,g=h.editor.graph,m=null,l=
null,n=this,p=0;p<e.length&&(null==l&&g.model.isVertex(e[p])?l=p:null==m&&g.model.isEdge(e[p])&&null==g.model.getTerminal(e[p],!0)&&(m=p),null==l||null==m);p++);var r=this.isDropStyleEnabled(e,l),u=mxUtils.makeDraggable(a,g,mxUtils.bind(this,function(a,c,d,f,g){null!=this.updateThread&&window.clearTimeout(this.updateThread);if(null!=e&&null!=w&&J==z){var k=a.isCellSelected(w.cell)?a.getSelectionCells():[w.cell],k=this.updateShapes(a.model.isEdge(w.cell)?e[0]:e[l],k);a.setSelectionCells(k)}else null!=
e&&null!=J&&null!=t&&J!=z?(k=a.model.isEdge(t.cell)||null==m?l:m,a.setSelectionCells(this.dropAndConnect(t.cell,e,N,k,c))):b.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(a.view.getState(a.getSelectionCell()))}),c,0,0,g.autoscroll,!0,!0);g.addListener(mxEvent.ESCAPE,function(a,b){u.isActive()&&u.reset()});var v=u.mouseDown;u.mouseDown=function(a){mxEvent.isPopupTrigger(a)||mxEvent.isMultiTouchEvent(a)||g.isCellLocked(g.getDefaultParent())||(g.stopEditing(),
-v.apply(this,arguments))};var t=null,x=null,w=null,y=!1,F=f(this.triangleUp,mxResources.get("connect")),I=f(this.triangleRight,mxResources.get("connect")),A=f(this.triangleDown,mxResources.get("connect")),G=f(this.triangleLeft,mxResources.get("connect")),z=f(this.refreshTarget,mxResources.get("replace")),E=null,K=f(this.roundDrop),L=f(this.roundDrop),N=mxConstants.DIRECTION_NORTH,J=null,Q=u.createPreviewElement;u.createPreviewElement=function(a){var b=Q.apply(this,arguments);mxClient.IS_SVG&&(b.style.pointerEvents=
+v.apply(this,arguments))};var t=null,x=null,w=null,y=!1,E=f(this.triangleUp,mxResources.get("connect")),I=f(this.triangleRight,mxResources.get("connect")),A=f(this.triangleDown,mxResources.get("connect")),F=f(this.triangleLeft,mxResources.get("connect")),z=f(this.refreshTarget,mxResources.get("replace")),G=null,K=f(this.roundDrop),L=f(this.roundDrop),N=mxConstants.DIRECTION_NORTH,J=null,R=u.createPreviewElement;u.createPreviewElement=function(a){var b=R.apply(this,arguments);mxClient.IS_SVG&&(b.style.pointerEvents=
"none");this.previewElementWidth=b.style.width;this.previewElementHeight=b.style.height;return b};var X=u.dragEnter;u.dragEnter=function(a,b){null!=h.hoverIcons&&h.hoverIcons.setDisplay("none");X.apply(this,arguments)};var ba=u.dragExit;u.dragExit=function(a,b){null!=h.hoverIcons&&h.hoverIcons.setDisplay("");ba.apply(this,arguments)};u.dragOver=function(a,b){mxDragSource.prototype.dragOver.apply(this,arguments);null!=this.currentGuide&&null!=J&&this.currentGuide.hide();if(null!=this.previewElement){var c=
a.view;if(null!=w&&J==z)this.previewElement.style.display=a.model.isEdge(w.cell)?"none":"",this.previewElement.style.left=w.x+"px",this.previewElement.style.top=w.y+"px",this.previewElement.style.width=w.width+"px",this.previewElement.style.height=w.height+"px";else if(null!=t&&null!=J){null!=u.currentHighlight&&null!=u.currentHighlight.state&&u.currentHighlight.hide();var f=a.model.isEdge(t.cell)||null==m?l:m,g=n.getDropAndConnectGeometry(t.cell,e[f],N,e),k=a.model.isEdge(t.cell)?null:a.getCellGeometry(t.cell),
h=a.getCellGeometry(e[f]),p=a.model.getParent(t.cell),r=c.translate.x*c.scale,v=c.translate.y*c.scale;null!=k&&!k.relative&&a.model.isVertex(p)&&p!=c.currentRoot&&(v=c.getState(p),r=v.x,v=v.y);k=h.x;h=h.y;a.model.isEdge(e[f])&&(h=k=0);this.previewElement.style.left=(g.x-k)*c.scale+r+"px";this.previewElement.style.top=(g.y-h)*c.scale+v+"px";1==e.length&&(this.previewElement.style.width=g.width*c.scale+"px",this.previewElement.style.height=g.height*c.scale+"px");this.previewElement.style.display=""}else null!=
-u.currentHighlight.state&&a.model.isEdge(u.currentHighlight.state.cell)?(this.previewElement.style.left=Math.round(parseInt(this.previewElement.style.left)-d.width*c.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-d.height*c.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};var P=(new Date).getTime(),R=0,T=null,U=this.editorUi.editor.graph.getCellStyle(e[0]);
-u.getDropTarget=mxUtils.bind(this,function(a,b,c,d){var f=mxEvent.isAltDown(d)||null==e?null:a.getCellAt(b,c,null,null,null,function(b,c,d){return a.isContainer(b.cell)});if(null!=f&&!this.graph.isCellConnectable(f)&&!this.graph.model.isEdge(f)){var g=this.graph.getModel().getParent(f);this.graph.getModel().isVertex(g)&&this.graph.isCellConnectable(g)&&(f=g)}a.isCellLocked(f)&&(f=null);var h=a.view.getState(f),g=J=null;T!=h?(P=(new Date).getTime(),R=0,T=h,null!=this.updateThread&&window.clearTimeout(this.updateThread),
-null!=h&&(this.updateThread=window.setTimeout(function(){null==J&&(T=h,u.getDropTarget(a,b,c,d))},this.dropTargetDelay+10))):R=(new Date).getTime()-P;if(r&&2500>R&&null!=h&&!mxEvent.isShiftDown(d)&&(mxUtils.getValue(h.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(U,mxConstants.STYLE_SHAPE)&&(mxUtils.getValue(h.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(h.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(h.style,
-mxConstants.STYLE_GRADIENTCOLOR,mxConstants.NONE)!=mxConstants.NONE)||"image"==mxUtils.getValue(U,mxConstants.STYLE_SHAPE)||1500<R||a.model.isEdge(h.cell))&&R>this.dropTargetDelay&&!this.isDropStyleTargetIgnored(h)&&(a.model.isVertex(h.cell)&&null!=l||a.model.isEdge(h.cell)&&a.model.isEdge(e[0]))){if(a.isCellEditable(h.cell)){w=h;var m=a.model.isEdge(h.cell)?a.view.getPoint(h):new mxPoint(h.getCenterX(),h.getCenterY()),m=new mxRectangle(m.x-this.refreshTarget.width/2,m.y-this.refreshTarget.height/
-2,this.refreshTarget.width,this.refreshTarget.height);z.style.left=Math.floor(m.x)+"px";z.style.top=Math.floor(m.y)+"px";null==E&&(a.container.appendChild(z),E=z.parentNode);k(b,c,m,z)}}else null==w||!mxUtils.contains(w,b,c)||1500<R&&!mxEvent.isShiftDown(d)?(w=null,null!=E&&(z.parentNode.removeChild(z),E=null)):null!=w&&null!=E&&(m=a.model.isEdge(w.cell)?a.view.getPoint(w):new mxPoint(w.getCenterX(),w.getCenterY()),m=new mxRectangle(m.x-this.refreshTarget.width/2,m.y-this.refreshTarget.height/2,this.refreshTarget.width,
+u.currentHighlight.state&&a.model.isEdge(u.currentHighlight.state.cell)?(this.previewElement.style.left=Math.round(parseInt(this.previewElement.style.left)-d.width*c.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-d.height*c.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};var O=(new Date).getTime(),S=0,U=null,Q=this.editorUi.editor.graph.getCellStyle(e[0]);
+u.getDropTarget=mxUtils.bind(this,function(a,b,c,d){var f=mxEvent.isAltDown(d)||null==e?null:a.getCellAt(b,c,null,null,null,function(b,c,d){return a.isContainer(b.cell)});if(null!=f&&!this.graph.isCellConnectable(f)&&!this.graph.model.isEdge(f)){var g=this.graph.getModel().getParent(f);this.graph.getModel().isVertex(g)&&this.graph.isCellConnectable(g)&&(f=g)}a.isCellLocked(f)&&(f=null);var h=a.view.getState(f),g=J=null;U!=h?(O=(new Date).getTime(),S=0,U=h,null!=this.updateThread&&window.clearTimeout(this.updateThread),
+null!=h&&(this.updateThread=window.setTimeout(function(){null==J&&(U=h,u.getDropTarget(a,b,c,d))},this.dropTargetDelay+10))):S=(new Date).getTime()-O;if(r&&2500>S&&null!=h&&!mxEvent.isShiftDown(d)&&(mxUtils.getValue(h.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(Q,mxConstants.STYLE_SHAPE)&&(mxUtils.getValue(h.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(h.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(h.style,
+mxConstants.STYLE_GRADIENTCOLOR,mxConstants.NONE)!=mxConstants.NONE)||"image"==mxUtils.getValue(Q,mxConstants.STYLE_SHAPE)||1500<S||a.model.isEdge(h.cell))&&S>this.dropTargetDelay&&!this.isDropStyleTargetIgnored(h)&&(a.model.isVertex(h.cell)&&null!=l||a.model.isEdge(h.cell)&&a.model.isEdge(e[0]))){if(a.isCellEditable(h.cell)){w=h;var m=a.model.isEdge(h.cell)?a.view.getPoint(h):new mxPoint(h.getCenterX(),h.getCenterY()),m=new mxRectangle(m.x-this.refreshTarget.width/2,m.y-this.refreshTarget.height/
+2,this.refreshTarget.width,this.refreshTarget.height);z.style.left=Math.floor(m.x)+"px";z.style.top=Math.floor(m.y)+"px";null==G&&(a.container.appendChild(z),G=z.parentNode);k(b,c,m,z)}}else null==w||!mxUtils.contains(w,b,c)||1500<S&&!mxEvent.isShiftDown(d)?(w=null,null!=G&&(z.parentNode.removeChild(z),G=null)):null!=w&&null!=G&&(m=a.model.isEdge(w.cell)?a.view.getPoint(w):new mxPoint(w.getCenterX(),w.getCenterY()),m=new mxRectangle(m.x-this.refreshTarget.width/2,m.y-this.refreshTarget.height/2,this.refreshTarget.width,
this.refreshTarget.height),k(b,c,m,z));if(y&&null!=t&&!mxEvent.isAltDown(d)&&null==J){g=mxRectangle.fromRectangle(t);if(a.model.isEdge(t.cell)){var n=t.absolutePoints;null!=K.parentNode&&(m=n[0],g.add(k(b,c,new mxRectangle(m.x-this.roundDrop.width/2,m.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),K)));null!=L.parentNode&&(n=n[n.length-1],g.add(k(b,c,new mxRectangle(n.x-this.roundDrop.width/2,n.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),L)))}else m=
mxRectangle.fromRectangle(t),null!=t.shape&&null!=t.shape.boundingBox&&(m=mxRectangle.fromRectangle(t.shape.boundingBox)),m.grow(this.graph.tolerance),m.grow(HoverIcons.prototype.arrowSpacing),n=this.graph.selectionCellsHandler.getHandler(t.cell),null!=n&&(m.x-=n.horizontalOffset/2,m.y-=n.verticalOffset/2,m.width+=n.horizontalOffset,m.height+=n.verticalOffset,null!=n.rotationShape&&null!=n.rotationShape.node&&"hidden"!=n.rotationShape.node.style.visibility&&"none"!=n.rotationShape.node.style.display&&
-null!=n.rotationShape.boundingBox&&m.add(n.rotationShape.boundingBox)),g.add(k(b,c,new mxRectangle(t.getCenterX()-this.triangleUp.width/2,m.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),F)),g.add(k(b,c,new mxRectangle(m.x+m.width,t.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,this.triangleRight.height),I)),g.add(k(b,c,new mxRectangle(t.getCenterX()-this.triangleDown.width/2,m.y+m.height,this.triangleDown.width,this.triangleDown.height),A)),g.add(k(b,c,
-new mxRectangle(m.x-this.triangleLeft.width,t.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),G));null!=g&&g.grow(10)}N=mxConstants.DIRECTION_NORTH;J==I?N=mxConstants.DIRECTION_EAST:J==A||J==L?N=mxConstants.DIRECTION_SOUTH:J==G&&(N=mxConstants.DIRECTION_WEST);null!=w&&J==z&&(h=w);m=(null==l||a.isCellConnectable(e[l]))&&(a.model.isEdge(f)&&null!=l||a.model.isVertex(f)&&a.isCellConnectable(f));if(null!=t&&5E3<=R||t!=h&&(null==g||!mxUtils.contains(g,b,c)||500<
-R&&null==J&&m))if(y=!1,t=5E3>R&&R>this.dropTargetDelay||a.model.isEdge(f)?h:null,null!=t&&m){g=[K,L,F,I,A,G];for(m=0;m<g.length;m++)null!=g[m].parentNode&&g[m].parentNode.removeChild(g[m]);a.model.isEdge(f)?(n=h.absolutePoints,null!=n&&(m=n[0],n=n[n.length-1],g=a.tolerance,new mxRectangle(b-g,c-g,2*g,2*g),K.style.left=Math.floor(m.x-this.roundDrop.width/2)+"px",K.style.top=Math.floor(m.y-this.roundDrop.height/2)+"px",L.style.left=Math.floor(n.x-this.roundDrop.width/2)+"px",L.style.top=Math.floor(n.y-
+null!=n.rotationShape.boundingBox&&m.add(n.rotationShape.boundingBox)),g.add(k(b,c,new mxRectangle(t.getCenterX()-this.triangleUp.width/2,m.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),E)),g.add(k(b,c,new mxRectangle(m.x+m.width,t.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,this.triangleRight.height),I)),g.add(k(b,c,new mxRectangle(t.getCenterX()-this.triangleDown.width/2,m.y+m.height,this.triangleDown.width,this.triangleDown.height),A)),g.add(k(b,c,
+new mxRectangle(m.x-this.triangleLeft.width,t.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),F));null!=g&&g.grow(10)}N=mxConstants.DIRECTION_NORTH;J==I?N=mxConstants.DIRECTION_EAST:J==A||J==L?N=mxConstants.DIRECTION_SOUTH:J==F&&(N=mxConstants.DIRECTION_WEST);null!=w&&J==z&&(h=w);m=(null==l||a.isCellConnectable(e[l]))&&(a.model.isEdge(f)&&null!=l||a.model.isVertex(f)&&a.isCellConnectable(f));if(null!=t&&5E3<=S||t!=h&&(null==g||!mxUtils.contains(g,b,c)||500<
+S&&null==J&&m))if(y=!1,t=5E3>S&&S>this.dropTargetDelay||a.model.isEdge(f)?h:null,null!=t&&m){g=[K,L,E,I,A,F];for(m=0;m<g.length;m++)null!=g[m].parentNode&&g[m].parentNode.removeChild(g[m]);a.model.isEdge(f)?(n=h.absolutePoints,null!=n&&(m=n[0],n=n[n.length-1],g=a.tolerance,new mxRectangle(b-g,c-g,2*g,2*g),K.style.left=Math.floor(m.x-this.roundDrop.width/2)+"px",K.style.top=Math.floor(m.y-this.roundDrop.height/2)+"px",L.style.left=Math.floor(n.x-this.roundDrop.width/2)+"px",L.style.top=Math.floor(n.y-
this.roundDrop.height/2)+"px",null==a.model.getTerminal(f,!0)&&a.container.appendChild(K),null==a.model.getTerminal(f,!1)&&a.container.appendChild(L))):(m=mxRectangle.fromRectangle(h),null!=h.shape&&null!=h.shape.boundingBox&&(m=mxRectangle.fromRectangle(h.shape.boundingBox)),m.grow(this.graph.tolerance),m.grow(HoverIcons.prototype.arrowSpacing),n=this.graph.selectionCellsHandler.getHandler(h.cell),null!=n&&(m.x-=n.horizontalOffset/2,m.y-=n.verticalOffset/2,m.width+=n.horizontalOffset,m.height+=n.verticalOffset,
-null!=n.rotationShape&&null!=n.rotationShape.node&&"hidden"!=n.rotationShape.node.style.visibility&&"none"!=n.rotationShape.node.style.display&&null!=n.rotationShape.boundingBox&&m.add(n.rotationShape.boundingBox)),F.style.left=Math.floor(h.getCenterX()-this.triangleUp.width/2)+"px",F.style.top=Math.floor(m.y-this.triangleUp.height)+"px",I.style.left=Math.floor(m.x+m.width)+"px",I.style.top=Math.floor(h.getCenterY()-this.triangleRight.height/2)+"px",A.style.left=F.style.left,A.style.top=Math.floor(m.y+
-m.height)+"px",G.style.left=Math.floor(m.x-this.triangleLeft.width)+"px",G.style.top=I.style.top,"eastwest"!=h.style.portConstraint&&(a.container.appendChild(F),a.container.appendChild(A)),a.container.appendChild(I),a.container.appendChild(G));null!=h&&(x=a.selectionCellsHandler.getHandler(h.cell),null!=x&&null!=x.setHandlesVisible&&x.setHandlesVisible(!1));y=!0}else for(g=[K,L,F,I,A,G],m=0;m<g.length;m++)null!=g[m].parentNode&&g[m].parentNode.removeChild(g[m]);y||null==x||x.setHandlesVisible(!0);
+null!=n.rotationShape&&null!=n.rotationShape.node&&"hidden"!=n.rotationShape.node.style.visibility&&"none"!=n.rotationShape.node.style.display&&null!=n.rotationShape.boundingBox&&m.add(n.rotationShape.boundingBox)),E.style.left=Math.floor(h.getCenterX()-this.triangleUp.width/2)+"px",E.style.top=Math.floor(m.y-this.triangleUp.height)+"px",I.style.left=Math.floor(m.x+m.width)+"px",I.style.top=Math.floor(h.getCenterY()-this.triangleRight.height/2)+"px",A.style.left=E.style.left,A.style.top=Math.floor(m.y+
+m.height)+"px",F.style.left=Math.floor(m.x-this.triangleLeft.width)+"px",F.style.top=I.style.top,"eastwest"!=h.style.portConstraint&&(a.container.appendChild(E),a.container.appendChild(A)),a.container.appendChild(I),a.container.appendChild(F));null!=h&&(x=a.selectionCellsHandler.getHandler(h.cell),null!=x&&null!=x.setHandlesVisible&&x.setHandlesVisible(!1));y=!0}else for(g=[K,L,E,I,A,F],m=0;m<g.length;m++)null!=g[m].parentNode&&g[m].parentNode.removeChild(g[m]);y||null==x||x.setHandlesVisible(!0);
f=mxEvent.isAltDown(d)&&!mxEvent.isShiftDown(d)||null!=w&&J==z?null:mxDragSource.prototype.getDropTarget.apply(this,arguments);g=a.getModel();if(null!=f&&(null!=J||!a.isSplitTarget(f,e,d))){for(;null!=f&&!a.isValidDropTarget(f,e,d)&&g.isVertex(g.getParent(f));)f=g.getParent(f);null!=f&&(a.view.currentRoot==f||!a.isValidRoot(f)&&0==a.getModel().getChildCount(f)||a.isCellLocked(f)||g.isEdge(f)||!a.isValidDropTarget(f,e,d))&&(f=null)}a.isCellLocked(f)&&(f=null);return f});u.stopDrag=function(){mxDragSource.prototype.stopDrag.apply(this,
-arguments);for(var a=[K,L,z,F,I,A,G],b=0;b<a.length;b++)null!=a[b].parentNode&&a[b].parentNode.removeChild(a[b]);null!=t&&null!=x&&x.reset();J=E=w=t=x=null};return u};
+arguments);for(var a=[K,L,z,E,I,A,F],b=0;b<a.length;b++)null!=a[b].parentNode&&a[b].parentNode.removeChild(a[b]);null!=t&&null!=x&&x.reset();J=G=w=t=x=null};return u};
Sidebar.prototype.itemClicked=function(a,b,c,e){e=this.editorUi.editor.graph;e.container.focus();if(mxEvent.isAltDown(c)&&1==e.getSelectionCount()&&e.model.isVertex(e.getSelectionCell())){b=null;for(var d=0;d<a.length&&null==b;d++)e.model.isVertex(a[d])&&(b=d);null!=b&&(e.setSelectionCells(this.dropAndConnect(e.getSelectionCell(),a,mxEvent.isMetaDown(c)||mxEvent.isControlDown(c)?mxEvent.isShiftDown(c)?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH:mxEvent.isShiftDown(c)?mxConstants.DIRECTION_EAST:
mxConstants.DIRECTION_SOUTH,b,c)),e.scrollCellToVisible(e.getSelectionCell()))}else mxEvent.isShiftDown(c)&&!e.isSelectionEmpty()?(c=e.getEditableCells(e.getSelectionCells()),this.updateShapes(a[0],c),e.scrollCellToVisible(c)):(a=mxEvent.isAltDown(c)?e.getFreeInsertPoint():e.getCenterInsertPoint(e.getBoundingBoxFromGeometry(a,!0)),b.drop(e,c,null,a.x,a.y,!0))};
Sidebar.prototype.addClickHandler=function(a,b,c){var e=b.mouseDown,d=b.mouseMove,f=b.mouseUp,k=this.editorUi.editor.graph.tolerance,h=null,g=this;b.mouseDown=function(b){e.apply(this,arguments);h=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b));null!=this.dragElement&&(this.dragElement.style.display="none",mxUtils.setOpacity(a,50))};b.mouseMove=function(b){null!=this.dragElement&&"none"==this.dragElement.style.display&&null!=h&&(Math.abs(h.x-mxEvent.getClientX(b))>k||Math.abs(h.y-mxEvent.getClientY(b))>
@@ -2586,12 +2585,12 @@ function(){var a=n.apply(this,arguments);if(this.graph.pageVisible){for(var b=[]
function(a,b){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(a){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(a){for(var b=p.apply(this,arguments),c=new mxDictionary,d=[],e=0;e<b.length;e++){var f=this.graph.isTableCell(a)&&this.graph.isTableCell(b[e])&&
this.graph.isCellSelected(b[e])?this.graph.model.getParent(b[e]):this.graph.isTableRow(a)&&this.graph.isTableRow(b[e])&&this.graph.isCellSelected(b[e])?b[e]:this.graph.getCompositeParent(b[e]);null==f||c.get(f)||(c.put(f,!0),d.push(f))}return d};var r=this.graphHandler.start;this.graphHandler.start=function(a,b,c,d){var e=!1;this.graph.isTableCell(a)&&(this.graph.isCellSelected(a)?e=!0:a=this.graph.model.getParent(a));e||this.graph.isTableRow(a)&&this.graph.isCellSelected(a)||(a=this.graph.getCompositeParent(a));
r.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(a,b){b=this.graph.getCompositeParent(b);return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var u=new mxRubberband(this);this.getRubberband=function(){return u};var v=(new Date).getTime(),t=0,x=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;x.apply(this,arguments);a!=this.currentState?(v=(new Date).getTime(),t=0):t=(new Date).getTime()-v};var w=
-this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<t||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&w.apply(this,arguments)};var y=this.isToggleEvent;this.isToggleEvent=function(a){return y.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a)};var F=u.isForceRubberbandEvent;u.isForceRubberbandEvent=function(a){return F.apply(this,
+this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<t||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&w.apply(this,arguments)};var y=this.isToggleEvent;this.isToggleEvent=function(a){return y.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a)};var E=u.isForceRubberbandEvent;u.isForceRubberbandEvent=function(a){return E.apply(this,
arguments)&&!mxEvent.isShiftDown(a.getEvent())&&!mxEvent.isControlDown(a.getEvent())||mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var I=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(I=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=I)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var A=this.click;this.click=function(a){var b=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!b||a.isConsumed())return A.apply(this,arguments);var c=b?a.sourceState.cell:a.getCell();null!=c&&(c=this.getClickableLinkForCell(c),null!=c&&(this.isCustomLink(c)?
-this.customLinkClicked(c):this.openLink(c)));this.isEnabled()&&b&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};var G=this.tooltipHandler.show;this.tooltipHandler.show=function(){G.apply(this,arguments);if(null!=this.div)for(var a=this.div.getElementsByTagName("a"),b=0;b<a.length;b++)null!=a[b].getAttribute("href")&&null==a[b].getAttribute("target")&&a[b].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};
+this.customLinkClicked(c):this.openLink(c)));this.isEnabled()&&b&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};var F=this.tooltipHandler.show;this.tooltipHandler.show=function(){F.apply(this,arguments);if(null!=this.div)for(var a=this.div.getElementsByTagName("a"),b=0;b<a.length;b++)null!=a[b].getAttribute("href")&&null==a[b].getAttribute("target")&&a[b].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};
this.getCursorForMouseEvent=function(a){var b=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);return this.getCursorForCell(b?a.sourceState.cell:a.getCell())};var z=this.getCursorForCell;this.getCursorForCell=function(a){if(!this.isEnabled()||this.isCellLocked(a)){if(null!=this.getClickableLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return z.apply(this,arguments)};this.selectRegion=function(a,b){var c=mxEvent.isAltDown(b)?a:null,c=this.getCells(a.x,
-a.y,a.width,a.height,null,null,c,function(a){return"1"==mxUtils.getValue(a.style,"locked","0")},!0);if(this.isToggleEvent(b))for(var d=0;d<c.length;d++)this.selectCellForEvent(c[d],b);else this.selectCellsForEvent(c,b);return c};var E=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,b,c){return this.graph.isCellSelected(a)?!1:E.apply(this,arguments)};this.isCellLocked=function(a){for(;null!=a;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(a),
+a.y,a.width,a.height,null,null,c,function(a){return"1"==mxUtils.getValue(a.style,"locked","0")},!0);if(this.isToggleEvent(b))for(var d=0;d<c.length;d++)this.selectCellForEvent(c[d],b);else this.selectCellsForEvent(c,b);return c};var G=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,b,c){return this.graph.isCellSelected(a)?!1:G.apply(this,arguments)};this.isCellLocked=function(a){for(;null!=a;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(a),
"locked","0"))return!0;a=this.model.getParent(a)}return!1};var K=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")){var c=b.getProperty("event").getState();K=null==c||this.isSelectionEmpty()||this.isCellSelected(c.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,b){if(!mxEvent.isMultiTouchEvent(b)){var c=b.getProperty("event"),d=b.getProperty("cell");null==d?(c=mxUtils.convertPoint(this.container,
mxEvent.getClientX(c),mxEvent.getClientY(c)),u.start(c.x,c.y)):null!=K?this.addSelectionCells(K):1<this.getSelectionCount()&&this.isCellSelected(d)&&this.removeSelectionCell(d);K=null;b.consume()}}));this.connectionHandler.selectCells=function(a,b){this.graph.setSelectionCell(b||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,b){var c=a.view.graph;return b&&(c.isCellSelected(a.cell)||c.isTableRow(a.cell)&&c.selectionCellsHandler.isHandled(c.model.getParent(a.cell)))};this.selectionModel.addListener(mxEvent.CHANGE,
mxUtils.bind(this,function(){var a=this.connectionHandler.constraintHandler;null!=a.currentFocus&&a.isStateIgnored(a.currentFocus,!0)&&(a.currentFocus=null,a.constraints=null,a.destroyIcons());a.destroyFocusHighlight()}));Graph.touchStyle&&this.initTouch();var L=this.updateMouseEvent;this.updateMouseEvent=function(a){a=L.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=null);return a}}this.currentTranslate=new mxPoint(0,0)};
@@ -2605,8 +2604,9 @@ Graph.base64EncodeUnicode=function(a){return btoa(encodeURIComponent(a).replace(
Graph.arrayBufferToString=function(a){var b="";a=new Uint8Array(a);for(var c=a.byteLength,e=0;e<c;e++)b+=String.fromCharCode(a[e]);return b};Graph.stringToArrayBuffer=function(a){return Uint8Array.from(a,function(a){return a.charCodeAt(0)})};
Graph.arrayBufferIndexOfString=function(a,b,c){var e=b.charCodeAt(0),d=1,f=-1;for(c=c||0;c<a.byteLength;c++)if(a[c]==e){f=c;break}for(c=f+1;-1<f&&c<a.byteLength&&c<f+b.length-1;c++){if(a[c]!=b.charCodeAt(d))return Graph.arrayBufferIndexOfString(a,b,f+1);d++}return d==b.length-1?f:-1};Graph.compress=function(a,b){if(null==a||0==a.length||"undefined"===typeof pako)return a;var c=b?pako.deflate(encodeURIComponent(a)):pako.deflateRaw(encodeURIComponent(a));return btoa(Graph.arrayBufferToString(new Uint8Array(c)))};
Graph.decompress=function(a,b,c){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=Graph.stringToArrayBuffer(atob(a));b=decodeURIComponent(b?pako.inflate(a,{to:"string"}):pako.inflateRaw(a,{to:"string"}));return c?b:Graph.zapGremlins(b)};
-Graph.fadeNodes=function(a,b,c,e,d){d=null!=d?d:1E3;Graph.setTransitionForNodes(a,null);Graph.setOpacityForNodes(a,b);window.setTimeout(function(){Graph.setTransitionForNodes(a,"all "+d+"ms ease-in-out");Graph.setOpacityForNodes(a,c);window.setTimeout(function(){Graph.setTransitionForNodes(a,null);null!=e&&e()},d)},0)};Graph.setTransitionForNodes=function(a,b){for(var c=0;c<a.length;c++)mxUtils.setPrefixedStyle(a[c].style,"transition",b)};
-Graph.setOpacityForNodes=function(a,b){for(var c=0;c<a.length;c++)a[c].style.opacity=b};Graph.removePasteFormatting=function(a){for(;null!=a;)null!=a.firstChild&&Graph.removePasteFormatting(a.firstChild),a.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=a.style&&(a.style.whiteSpace="","#000000"==a.style.color&&(a.style.color="")),a=a.nextSibling};Graph.sanitizeHtml=function(a,b){return html_sanitize(a,function(a){return null!=a&&"javascript:"!==a.toString().toLowerCase().substring(0,11)?a:null},function(a){return a})};
+Graph.fadeNodes=function(a,b,c,e,d){d=null!=d?d:1E3;Graph.setTransitionForNodes(a,null);Graph.setOpacityForNodes(a,b);window.setTimeout(function(){Graph.setTransitionForNodes(a,"all "+d+"ms ease-in-out");Graph.setOpacityForNodes(a,c);window.setTimeout(function(){Graph.setTransitionForNodes(a,null);null!=e&&e()},d)},0)};Graph.removeKeys=function(a,b){for(var c in a)b(c)&&delete a[c]};
+Graph.setTransitionForNodes=function(a,b){for(var c=0;c<a.length;c++)mxUtils.setPrefixedStyle(a[c].style,"transition",b)};Graph.setOpacityForNodes=function(a,b){for(var c=0;c<a.length;c++)a[c].style.opacity=b};Graph.removePasteFormatting=function(a){for(;null!=a;)null!=a.firstChild&&Graph.removePasteFormatting(a.firstChild),a.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=a.style&&(a.style.whiteSpace="","#000000"==a.style.color&&(a.style.color="")),a=a.nextSibling};
+Graph.sanitizeHtml=function(a,b){return html_sanitize(a,function(a){return null!=a&&"javascript:"!==a.toString().toLowerCase().substring(0,11)?a:null},function(a){return a})};
Graph.sanitizeSvg=function(a){function b(b){for(b=a.getElementsByTagName(b);0<b.length;)b[0].parentNode.removeChild(b[0])}for(var c=a.getElementsByTagName("*"),e=0;e<c.length;e++)for(var d=0;d<c[e].attributes.length;d++){var f=c[e].attributes[d];2<f.name.length&&"on"==f.name.toLowerCase().substring(0,2)&&c[e].removeAttribute(f.name)}b("meta");b("script");b("metadata")};
Graph.clipSvgDataUri=function(a){if(!mxClient.IS_IE&&!mxClient.IS_IE11&&null!=a&&"data:image/svg+xml;base64,"==a.substring(0,26))try{var b=document.createElement("div");b.style.position="absolute";b.style.visibility="hidden";var c=decodeURIComponent(escape(atob(a.substring(26)))),e=c.indexOf("<svg");if(0<=e){b.innerHTML=c.substring(e);Graph.sanitizeSvg(b);var d=b.getElementsByTagName("svg");if(0<d.length){document.body.appendChild(b);try{var e=c=1,f=d[0].getAttribute("width"),k=d[0].getAttribute("height"),
f=null!=f&&"%"!=f.charAt(f.length-1)?parseFloat(f):NaN,k=null!=k&&"%"!=k.charAt(k.length-1)?parseFloat(k):NaN,h=d[0].getAttribute("viewBox");if(null!=h&&!isNaN(f)&&!isNaN(k)){var g=h.split(" ");4<=h.length&&(c=parseFloat(g[2])/f,e=parseFloat(g[3])/k)}var m=d[0].getBBox();0<m.width&&0<m.height&&(b.getElementsByTagName("svg")[0].setAttribute("viewBox",m.x+" "+m.y+" "+m.width+" "+m.height),b.getElementsByTagName("svg")[0].setAttribute("width",m.width/c),b.getElementsByTagName("svg")[0].setAttribute("height",
@@ -2621,19 +2621,18 @@ d&&d!=b.node;){if("a"==d.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a
b&&this.graph.isCustomLink(b)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&this.graph.customLinkClicked(b)&&mxEvent.consume(a))}))}}this.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,b){if(null!=this.container&&this.flowAnimationStyle){var c=this.flowAnimationStyle.getAttribute("id");this.flowAnimationStyle.innerHTML=this.getFlowAnimationStyleCss(c)}}));this.initLayoutManager()};
(function(){Graph.prototype.useCssTransforms=!1;Graph.prototype.currentScale=1;Graph.prototype.currentTranslate=new mxPoint(0,0);Graph.prototype.getVerticesAndEdges=function(a,b){a=null!=a?a:!0;b=null!=b?b:!0;var c=this.model;return c.filterDescendants(function(d){return a&&c.isVertex(d)||b&&c.isEdge(d)},c.getRoot())};Graph.prototype.getCommonStyle=function(a){for(var b={},c=0;c<a.length;c++){var d=this.view.getState(a[c]);this.mergeStyle(d.style,b,0==c)}return b};Graph.prototype.mergeStyle=function(a,
b,c){if(null!=a){var d={},e;for(e in a){var f=a[e];null!=f&&(d[e]=!0,null==b[e]&&c?b[e]=f:b[e]!=f&&delete b[e])}for(e in b)d[e]||delete b[e]}};Graph.prototype.getStartEditingCell=function(a,b){var c=this.getCellStyle(a),c=parseInt(mxUtils.getValue(c,mxConstants.STYLE_STARTSIZE,0));this.isTable(a)&&(!this.isSwimlane(a)||0==c)&&""==this.getLabel(a)&&0<this.model.getChildCount(a)&&(a=this.model.getChildAt(a,0),c=this.getCellStyle(a),c=parseInt(mxUtils.getValue(c,mxConstants.STYLE_STARTSIZE,0)));if(this.isTableRow(a)&&
-(!this.isSwimlane(a)||0==c)&&""==this.getLabel(a)&&0<this.model.getChildCount(a))for(c=0;c<this.model.getChildCount(a);c++){var d=this.model.getChildAt(a,c);if(this.isCellEditable(d)){a=d;break}}return a};Graph.prototype.copyStyle=function(a){var b=null;if(null!=a){b=mxUtils.clone(this.getCurrentCellStyle(a));a=this.model.getStyle(a);a=null!=a?a.split(";"):[];for(var c=0;c<a.length;c++){var d=a[c],e=d.indexOf("=");if(0<=e){var f=d.substring(0,e),d=d.substring(e+1);null==b[f]&&d==mxConstants.NONE&&
-(b[f]=mxConstants.NONE)}}}return b};Graph.prototype.pasteStyle=function(a,b,c){c=null!=c?c:Graph.pasteStyles;this.model.beginUpdate();try{for(var d=0;d<b.length;d++)for(var e=this.getCurrentCellStyle(b[d]),f=0;f<c.length;f++){var g=e[c[f]],k=a[c[f]];g==k||null==g&&k==mxConstants.NONE||this.setCellStyles(c[f],k,[b[d]])}}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(a,b,c,d,e,f){this.useCssTransforms&&(a=a/this.currentScale-this.currentTranslate.x,b=b/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(a,b,c,d,e,f){d=null!=d?d:!0;e=null!=e?e:!0;null==c&&(c=this.getCurrentRoot(),
-null==c&&(c=this.getModel().getRoot()));if(null!=c)for(var g=this.model.getChildCount(c)-1;0<=g;g--){var k=this.model.getChildAt(c,g),h=this.getScaledCellAt(a,b,k,d,e,f);if(null!=h)return h;if(this.isCellVisible(k)&&(e&&this.model.isEdge(k)||d&&this.model.isVertex(k))&&(h=this.view.getState(k),null!=h&&(null==f||!f(h,a,b))&&this.intersects(h,a,b)))return k}return null};Graph.prototype.isRecursiveVertexResize=function(a){return!this.isSwimlane(a.cell)&&0<this.model.getChildCount(a.cell)&&!this.isCellCollapsed(a.cell)&&
-"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null)};Graph.prototype.getAbsoluteParent=function(a){for(var b=this.getCellGeometry(a);null!=b&&b.relative;)a=this.getModel().getParent(a),b=this.getCellGeometry(a);return a};Graph.prototype.isPart=function(a){return"1"==mxUtils.getValue(this.getCurrentCellStyle(a),"part","0")||this.isTableCell(a)||this.isTableRow(a)};Graph.prototype.getCompositeParent=function(a){for(;this.isPart(a);){var b=this.model.getParent(a);
-if(!this.model.isVertex(b))break;a=b}return a};Graph.prototype.filterSelectionCells=function(a){var b=this.getSelectionCells();if(null!=a){for(var c=[],d=0;d<b.length;d++)a(b[d])||c.push(b[d]);b=c}return b};var a=mxGraph.prototype.scrollRectToVisible;Graph.prototype.scrollRectToVisible=function(b){if(this.useCssTransforms){var c=this.currentScale,d=this.currentTranslate;b=new mxRectangle((b.x+2*d.x)*c-d.x,(b.y+2*d.y)*c-d.y,b.width*c,b.height*c)}a.apply(this,arguments)};mxCellHighlight.prototype.getStrokeWidth=
-function(a){a=this.strokeWidth;this.graph.useCssTransforms&&(a/=this.graph.currentScale);return a};mxGraphView.prototype.getGraphBounds=function(){var a=this.graphBounds;if(this.graph.useCssTransforms)var b=this.graph.currentTranslate,c=this.graph.currentScale,a=new mxRectangle((a.x+b.x)*c,(a.y+b.y)*c,a.width*c,a.height*c);return a};mxGraphView.prototype.viewStateChanged=function(){this.graph.useCssTransforms?this.validate():this.revalidate();this.graph.sizeDidChange()};var b=mxGraphView.prototype.validate;
-mxGraphView.prototype.validate=function(a){this.graph.useCssTransforms&&(this.graph.currentScale=this.scale,this.graph.currentTranslate.x=this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=0,this.translate.y=0);b.apply(this,arguments);this.graph.useCssTransforms&&(this.graph.updateCssTransform(),this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=this.graph.currentTranslate.y)};var c=mxGraph.prototype.getCellsForGroup;
-Graph.prototype.getCellsForGroup=function(a){a=c.apply(this,arguments);for(var b=[],d=0;d<a.length;d++)this.isTableRow(a[d])||this.isTableCell(a[d])||b.push(a[d]);return b};var e=mxGraph.prototype.getCellsForUngroup;Graph.prototype.getCellsForUngroup=function(a){a=e.apply(this,arguments);for(var b=[],c=0;c<a.length;c++)this.isTable(a[c])||this.isTableRow(a[c])||this.isTableCell(a[c])||b.push(a[c]);return b};Graph.prototype.updateCssTransform=function(){var a=this.view.getDrawPane();if(null!=a)if(a=
-a.parentNode,this.useCssTransforms){var b=a.getAttribute("transform");a.setAttribute("transformOrigin","0 0");var c=Math.round(100*this.currentScale)/100;a.setAttribute("transform","scale("+c+","+c+")translate("+Math.round(100*this.currentTranslate.x)/100+","+Math.round(100*this.currentTranslate.y)/100+")");b!=a.getAttribute("transform")&&this.fireEvent(new mxEventObject("cssTransformChanged"),"transform",a.getAttribute("transform"))}else a.removeAttribute("transformOrigin"),a.removeAttribute("transform")};
-var d=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph.useCssTransforms,b=this.scale,c=this.translate;a&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);d.apply(this,arguments);a&&(this.scale=b,this.translate=c)};var f=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.useCssTransforms,e=this.view.scale,g=this.view.translate;d&&(this.view.scale=1,this.view.translate=
-new mxPoint(0,0),this.useCssTransforms=!1);f.apply(this,arguments);d&&(this.view.scale=e,this.view.translate=g,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.isViewer=function(){return!1};
-Graph.prototype.labelLinkClicked=function(a,b,c){b=b.getAttribute("href");if(null!=b&&!this.isCustomLink(b)&&(mxEvent.isLeftMouseButton(c)&&!mxEvent.isPopupTrigger(c)||mxEvent.isTouchEvent(c))){if(!this.isEnabled()||this.isCellLocked(a.cell))a=this.isBlankLink(b)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(b),a);mxEvent.consume(c)}};
+(!this.isSwimlane(a)||0==c)&&""==this.getLabel(a)&&0<this.model.getChildCount(a))for(c=0;c<this.model.getChildCount(a);c++){var d=this.model.getChildAt(a,c);if(this.isCellEditable(d)){a=d;break}}return a};Graph.prototype.copyStyle=function(a){return this.getCellStyle(a,!1)};Graph.prototype.pasteStyle=function(a,b,c){c=null!=c?c:Graph.pasteStyles;Graph.removeKeys(a,function(a){return 0>mxUtils.indexOf(c,a)});this.updateCellStyles(a,b)};Graph.prototype.updateCellStyles=function(a,b){this.model.beginUpdate();
+try{for(var c=0;c<b.length;c++)if(this.model.isVertex(b[c])||this.model.isEdge(b[c])){var d=this.getCellStyle(b[c],!1),e;for(e in a){var f=a[e];d[e]!=f&&this.setCellStyles(e,f,[b[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(a,b,c,d,e,f){this.useCssTransforms&&(a=a/this.currentScale-this.currentTranslate.x,b=b/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(a,b,c,d,e,f){d=null!=d?d:!0;e=null!=e?e:!0;null==c&&(c=this.getCurrentRoot(),null==c&&(c=this.getModel().getRoot()));if(null!=c)for(var g=this.model.getChildCount(c)-1;0<=g;g--){var k=this.model.getChildAt(c,
+g),h=this.getScaledCellAt(a,b,k,d,e,f);if(null!=h)return h;if(this.isCellVisible(k)&&(e&&this.model.isEdge(k)||d&&this.model.isVertex(k))&&(h=this.view.getState(k),null!=h&&(null==f||!f(h,a,b))&&this.intersects(h,a,b)))return k}return null};Graph.prototype.isRecursiveVertexResize=function(a){return!this.isSwimlane(a.cell)&&0<this.model.getChildCount(a.cell)&&!this.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null)};Graph.prototype.getAbsoluteParent=
+function(a){for(var b=this.getCellGeometry(a);null!=b&&b.relative;)a=this.getModel().getParent(a),b=this.getCellGeometry(a);return a};Graph.prototype.isPart=function(a){return"1"==mxUtils.getValue(this.getCurrentCellStyle(a),"part","0")||this.isTableCell(a)||this.isTableRow(a)};Graph.prototype.getCompositeParent=function(a){for(;this.isPart(a);){var b=this.model.getParent(a);if(!this.model.isVertex(b))break;a=b}return a};Graph.prototype.filterSelectionCells=function(a){var b=this.getSelectionCells();
+if(null!=a){for(var c=[],d=0;d<b.length;d++)a(b[d])||c.push(b[d]);b=c}return b};var a=mxGraph.prototype.scrollRectToVisible;Graph.prototype.scrollRectToVisible=function(b){if(this.useCssTransforms){var c=this.currentScale,d=this.currentTranslate;b=new mxRectangle((b.x+2*d.x)*c-d.x,(b.y+2*d.y)*c-d.y,b.width*c,b.height*c)}a.apply(this,arguments)};mxCellHighlight.prototype.getStrokeWidth=function(a){a=this.strokeWidth;this.graph.useCssTransforms&&(a/=this.graph.currentScale);return a};mxGraphView.prototype.getGraphBounds=
+function(){var a=this.graphBounds;if(this.graph.useCssTransforms)var b=this.graph.currentTranslate,c=this.graph.currentScale,a=new mxRectangle((a.x+b.x)*c,(a.y+b.y)*c,a.width*c,a.height*c);return a};mxGraphView.prototype.viewStateChanged=function(){this.graph.useCssTransforms?this.validate():this.revalidate();this.graph.sizeDidChange()};var b=mxGraphView.prototype.validate;mxGraphView.prototype.validate=function(a){this.graph.useCssTransforms&&(this.graph.currentScale=this.scale,this.graph.currentTranslate.x=
+this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=0,this.translate.y=0);b.apply(this,arguments);this.graph.useCssTransforms&&(this.graph.updateCssTransform(),this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=this.graph.currentTranslate.y)};var c=mxGraph.prototype.getCellsForGroup;Graph.prototype.getCellsForGroup=function(a){a=c.apply(this,arguments);for(var b=[],d=0;d<a.length;d++)this.isTableRow(a[d])||this.isTableCell(a[d])||
+b.push(a[d]);return b};var e=mxGraph.prototype.getCellsForUngroup;Graph.prototype.getCellsForUngroup=function(a){a=e.apply(this,arguments);for(var b=[],c=0;c<a.length;c++)this.isTable(a[c])||this.isTableRow(a[c])||this.isTableCell(a[c])||b.push(a[c]);return b};Graph.prototype.updateCssTransform=function(){var a=this.view.getDrawPane();if(null!=a)if(a=a.parentNode,this.useCssTransforms){var b=a.getAttribute("transform");a.setAttribute("transformOrigin","0 0");var c=Math.round(100*this.currentScale)/
+100;a.setAttribute("transform","scale("+c+","+c+")translate("+Math.round(100*this.currentTranslate.x)/100+","+Math.round(100*this.currentTranslate.y)/100+")");b!=a.getAttribute("transform")&&this.fireEvent(new mxEventObject("cssTransformChanged"),"transform",a.getAttribute("transform"))}else a.removeAttribute("transformOrigin"),a.removeAttribute("transform")};var d=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph.useCssTransforms,
+b=this.scale,c=this.translate;a&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);d.apply(this,arguments);a&&(this.scale=b,this.translate=c)};var f=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.useCssTransforms,e=this.view.scale,g=this.view.translate;d&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms=!1);f.apply(this,arguments);d&&(this.view.scale=e,this.view.translate=g,this.useCssTransforms=
+!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.isViewer=function(){return!1};Graph.prototype.labelLinkClicked=function(a,b,c){b=b.getAttribute("href");if(null!=b&&!this.isCustomLink(b)&&(mxEvent.isLeftMouseButton(c)&&!mxEvent.isPopupTrigger(c)||mxEvent.isTouchEvent(c))){if(!this.isEnabled()||this.isCellLocked(a.cell))a=this.isBlankLink(b)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(b),a);mxEvent.consume(c)}};
Graph.prototype.openLink=function(a,b,c){var e=window;try{if("_self"==b&&window!=window.top)window.location.href=a;else if(a.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==a.charAt(this.baseUrl.length)&&"_top"==b&&window==window.top){var d=a.split("#")[1];window.location.hash=="#"+d&&(window.location.hash="");window.location.hash=d}else e=window.open(a,null!=b?b:"_blank"),null==e||c||(e.opener=null)}catch(f){}return e};
Graph.prototype.getLinkTitle=function(a){return a.substring(a.lastIndexOf("/")+1)};Graph.prototype.isCustomLink=function(a){return"data:"==a.substring(0,5)};Graph.prototype.customLinkClicked=function(a){return!1};Graph.prototype.isExternalProtocol=function(a){return"mailto:"===a.substring(0,7)};Graph.prototype.isBlankLink=function(a){return!this.isExternalProtocol(a)&&("blank"===this.linkPolicy||"self"!==this.linkPolicy&&!this.isRelativeUrl(a)&&a.substring(0,this.domainUrl.length)!==this.domainUrl)};
Graph.prototype.isRelativeUrl=function(a){return null!=a&&!this.absoluteUrlPattern.test(a)&&"data:"!==a.substring(0,5)&&!this.isExternalProtocol(a)};Graph.prototype.getAbsoluteUrl=function(a){null!=a&&this.isRelativeUrl(a)&&(a="#"==a.charAt(0)?this.baseUrl+a:"/"==a.charAt(0)?this.domainUrl+a:this.domainPathUrl+a);return a};
@@ -2677,7 +2676,7 @@ y,n));null!=m&&w.push(m);null==u&&null!=y&&w.push(y);null==y&&null!=m&&m.geometr
Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),b=[],c,e;for(e in this.model.cells)if(c=this.model.cells[e],this.model.isVertex(c)||this.model.isEdge(c))this.isHtmlLabel(c)?(a.innerHTML=this.sanitizeHtml(this.getLabel(c)),c=mxUtils.extractTextWithWhitespace([a])):c=this.getLabel(c),c=mxUtils.trim(c.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<c.length&&b.push(c);return b.join(" ")};
Graph.prototype.convertValueToString=function(a){var b=this.model.getValue(a);if(null!=b&&"object"==typeof b){var c=null;if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var b=a.getAttribute("placeholder"),e=a;null==c&&null!=e;)null!=e.value&&"object"==typeof e.value&&(c=e.hasAttribute(b)?null!=e.getAttribute(b)?e.getAttribute(b):"":null),e=this.model.getParent(e);else c=null,Graph.translateDiagram&&null!=Graph.diagramLanguage&&(c=b.getAttribute("label_"+Graph.diagramLanguage)),
null==c&&(c=b.getAttribute("label")||"");return c||""}return mxGraph.prototype.convertValueToString.apply(this,arguments)};Graph.prototype.getLinksForState=function(a){return null!=a&&null!=a.text&&null!=a.text.node?a.text.node.getElementsByTagName("a"):null};Graph.prototype.getLinkForCell=function(a){return null!=a.value&&"object"==typeof a.value?(a=a.value.getAttribute("link"),null!=a&&"javascript:"===a.toLowerCase().substring(0,11)&&(a=a.substring(11)),a):null};
-Graph.prototype.getLinkTargetForCell=function(a){return null!=a.value&&"object"==typeof a.value?a.value.getAttribute("linkTarget"):null};Graph.prototype.getCellStyle=function(a){var b=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=a&&null!=this.layoutManager){var c=this.model.getParent(a);this.model.isVertex(c)&&this.isCellCollapsed(a)&&(c=this.layoutManager.getLayout(c),null!=c&&c.constructor==mxStackLayout&&(b[mxConstants.STYLE_HORIZONTAL]=!c.horizontal))}return b};
+Graph.prototype.getLinkTargetForCell=function(a){return null!=a.value&&"object"==typeof a.value?a.value.getAttribute("linkTarget"):null};Graph.prototype.postProcessCellStyle=function(a,b){if(null!=a&&null!=this.layoutManager){var c=this.model.getParent(a);this.model.isVertex(c)&&this.isCellCollapsed(a)&&(c=this.layoutManager.getLayout(c),null!=c&&c.constructor==mxStackLayout&&(b[mxConstants.STYLE_HORIZONTAL]=!c.horizontal))}return b};
Graph.prototype.updateAlternateBounds=function(a,b,c){if(null!=a&&null!=b&&null!=this.layoutManager&&null!=b.alternateBounds){var e=this.layoutManager.getLayout(this.model.getParent(a));null!=e&&e.constructor==mxStackLayout&&(e.horizontal?b.alternateBounds.height=0:b.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(a,b){return mxEvent.isShiftDown(a)||"1"==mxUtils.getValue(b.style,"moveCells","0")};
Graph.prototype.foldCells=function(a,b,c,e,d){b=null!=b?b:!1;null==c&&(c=this.getFoldableCells(this.getSelectionCells(),a));if(null!=c){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var f=0;f<c.length;f++){var k=this.view.getState(c[f]),h=this.getCellGeometry(c[f]);if(null!=k&&null!=h){var g=Math.round(h.width-k.width/this.view.scale),m=Math.round(h.height-k.height/this.view.scale);if(0!=m||0!=g){var l=this.model.getParent(c[f]),n=this.layoutManager.getLayout(l);
null==n?null!=d&&this.isMoveCellsEvent(d,k)&&this.moveSiblings(k,l,g,m):null!=d&&mxEvent.isAltDown(d)||n.constructor!=mxStackLayout||n.resizeLast||this.resizeParentStacks(l,n,g,m)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(c)}};
@@ -2751,12 +2750,12 @@ b.x+Graph.minTableColumnWidth,k.setGeometry(a,c));this.graph.visitTableCells(a,m
arguments);null!=d&&c&&this.graph.model.isEdge(d.cell)&&null!=d.style&&1!=d.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(d);return d};var c=mxShape.prototype.paint;mxShape.prototype.paint=function(){c.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 a=this.node.getElementsByTagName("path");if(1<a.length){"1"!=mxUtils.getValue(this.state.style,
mxConstants.STYLE_DASHED,"0")&&a[1].setAttribute("stroke-dasharray",8*this.state.view.scale);var b=this.state.view.graph.getFlowAnimationStyle();null!=b&&a[1].setAttribute("class",b.getAttribute("id"))}}};var e=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,b){return e.apply(this,arguments)||null!=a.routedPoints&&null!=b.routedPoints&&!mxUtils.equalPoints(b.routedPoints,a.routedPoints)};var d=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=
function(a){d.apply(this,arguments);this.graph.model.isEdge(a.cell)&&1!=a.style[mxConstants.STYLE_CURVED]&&this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var b=a.absolutePoints;if(Graph.lineJumpsEnabled){var c=null!=a.routedPoints,d=null;if(null!=b&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var e=function(b,c,e){var f=new mxPoint(c,e);f.type=b;d.push(f);f=null!=a.routedPoints?a.routedPoints[d.length-1]:null;return null==f||f.type!=
-b||f.x!=c||f.y!=e},f=.5*this.scale,c=!1,d=[],g=0;g<b.length-1;g++){for(var k=b[g+1],h=b[g],m=[],l=b[g+2];g<b.length-2&&mxUtils.ptSegDistSq(h.x,h.y,l.x,l.y,k.x,k.y)<1*this.scale*this.scale;)k=l,g++,l=b[g+2];for(var c=e(0,h.x,h.y)||c,I=0;I<this.validEdges.length;I++){var A=this.validEdges[I],G=A.absolutePoints;if(null!=G&&mxUtils.intersects(a,A)&&"1"!=A.style.noJump)for(A=0;A<G.length-1;A++){for(var z=G[A+1],E=G[A],l=G[A+2];A<G.length-2&&mxUtils.ptSegDistSq(E.x,E.y,l.x,l.y,z.x,z.y)<1*this.scale*this.scale;)z=
-l,A++,l=G[A+2];l=mxUtils.intersection(h.x,h.y,k.x,k.y,E.x,E.y,z.x,z.y);if(null!=l&&(Math.abs(l.x-h.x)>f||Math.abs(l.y-h.y)>f)&&(Math.abs(l.x-k.x)>f||Math.abs(l.y-k.y)>f)&&(Math.abs(l.x-E.x)>f||Math.abs(l.y-E.y)>f)&&(Math.abs(l.x-z.x)>f||Math.abs(l.y-z.y)>f)){z=l.x-h.x;E=l.y-h.y;l={distSq:z*z+E*E,x:l.x,y:l.y};for(z=0;z<m.length;z++)if(m[z].distSq>l.distSq){m.splice(z,0,l);l=null;break}null==l||0!=m.length&&m[m.length-1].x===l.x&&m[m.length-1].y===l.y||m.push(l)}}}for(A=0;A<m.length;A++)c=e(1,m[A].x,
+b||f.x!=c||f.y!=e},f=.5*this.scale,c=!1,d=[],g=0;g<b.length-1;g++){for(var k=b[g+1],h=b[g],m=[],l=b[g+2];g<b.length-2&&mxUtils.ptSegDistSq(h.x,h.y,l.x,l.y,k.x,k.y)<1*this.scale*this.scale;)k=l,g++,l=b[g+2];for(var c=e(0,h.x,h.y)||c,I=0;I<this.validEdges.length;I++){var A=this.validEdges[I],F=A.absolutePoints;if(null!=F&&mxUtils.intersects(a,A)&&"1"!=A.style.noJump)for(A=0;A<F.length-1;A++){for(var z=F[A+1],G=F[A],l=F[A+2];A<F.length-2&&mxUtils.ptSegDistSq(G.x,G.y,l.x,l.y,z.x,z.y)<1*this.scale*this.scale;)z=
+l,A++,l=F[A+2];l=mxUtils.intersection(h.x,h.y,k.x,k.y,G.x,G.y,z.x,z.y);if(null!=l&&(Math.abs(l.x-h.x)>f||Math.abs(l.y-h.y)>f)&&(Math.abs(l.x-k.x)>f||Math.abs(l.y-k.y)>f)&&(Math.abs(l.x-G.x)>f||Math.abs(l.y-G.y)>f)&&(Math.abs(l.x-z.x)>f||Math.abs(l.y-z.y)>f)){z=l.x-h.x;G=l.y-h.y;l={distSq:z*z+G*G,x:l.x,y:l.y};for(z=0;z<m.length;z++)if(m[z].distSq>l.distSq){m.splice(z,0,l);l=null;break}null==l||0!=m.length&&m[m.length-1].x===l.x&&m[m.length-1].y===l.y||m.push(l)}}}for(A=0;A<m.length;A++)c=e(1,m[A].x,
m[A].y)||c}l=b[b.length-1];c=e(0,l.x,l.y)||c}a.routedPoints=d;return c}return!1};var f=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,b,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)f.apply(this,arguments);else{var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,e=(parseInt(mxUtils.getValue(this.style,
-"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,g=mxUtils.getValue(this.style,"jumpStyle","none"),k=!0,h=null,m=null,l=[],n=null;a.begin();for(var p=0;p<this.state.routedPoints.length;p++){var A=this.state.routedPoints[p],G=new mxPoint(A.x/this.scale,A.y/this.scale);0==p?G=b[0]:p==this.state.routedPoints.length-1&&(G=b[b.length-1]);var z=!1;if(null!=h&&1==A.type){var E=this.state.routedPoints[p+1],A=E.x/this.scale-G.x,E=E.y/this.scale-G.y,A=A*A+E*E;null==n&&(n=new mxPoint(G.x-h.x,G.y-h.y),
-m=Math.sqrt(n.x*n.x+n.y*n.y),0<m?(n.x=n.x*e/m,n.y=n.y*e/m):n=null);A>e*e&&0<m&&(A=h.x-G.x,E=h.y-G.y,A=A*A+E*E,A>e*e&&(z=new mxPoint(G.x-n.x,G.y-n.y),A=new mxPoint(G.x+n.x,G.y+n.y),l.push(z),this.addPoints(a,l,c,d,!1,null,k),l=0>Math.round(n.x)||0==Math.round(n.x)&&0>=Math.round(n.y)?1:-1,k=!1,"sharp"==g?(a.lineTo(z.x-n.y*l,z.y+n.x*l),a.lineTo(A.x-n.y*l,A.y+n.x*l),a.lineTo(A.x,A.y)):"line"==g?(a.moveTo(z.x+n.y*l,z.y-n.x*l),a.lineTo(z.x-n.y*l,z.y+n.x*l),a.moveTo(A.x-n.y*l,A.y+n.x*l),a.lineTo(A.x+n.y*
-l,A.y-n.x*l),a.moveTo(A.x,A.y)):"arc"==g?(l*=1.3,a.curveTo(z.x-n.y*l,z.y+n.x*l,A.x-n.y*l,A.y+n.x*l,A.x,A.y)):(a.moveTo(A.x,A.y),k=!0),l=[A],z=!0))}else n=null;z||(l.push(G),h=G)}this.addPoints(a,l,c,d,!1,null,k);a.stroke()}};var k=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(a,b,c,d){return null!=b&&"centerPerimeter"==b.style[mxConstants.STYLE_PERIMETER]?new mxPoint(b.getCenterX(),b.getCenterY()):k.apply(this,arguments)};var h=mxGraphView.prototype.updateFloatingTerminalPoint;
+"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,g=mxUtils.getValue(this.style,"jumpStyle","none"),k=!0,h=null,m=null,l=[],n=null;a.begin();for(var p=0;p<this.state.routedPoints.length;p++){var A=this.state.routedPoints[p],F=new mxPoint(A.x/this.scale,A.y/this.scale);0==p?F=b[0]:p==this.state.routedPoints.length-1&&(F=b[b.length-1]);var z=!1;if(null!=h&&1==A.type){var G=this.state.routedPoints[p+1],A=G.x/this.scale-F.x,G=G.y/this.scale-F.y,A=A*A+G*G;null==n&&(n=new mxPoint(F.x-h.x,F.y-h.y),
+m=Math.sqrt(n.x*n.x+n.y*n.y),0<m?(n.x=n.x*e/m,n.y=n.y*e/m):n=null);A>e*e&&0<m&&(A=h.x-F.x,G=h.y-F.y,A=A*A+G*G,A>e*e&&(z=new mxPoint(F.x-n.x,F.y-n.y),A=new mxPoint(F.x+n.x,F.y+n.y),l.push(z),this.addPoints(a,l,c,d,!1,null,k),l=0>Math.round(n.x)||0==Math.round(n.x)&&0>=Math.round(n.y)?1:-1,k=!1,"sharp"==g?(a.lineTo(z.x-n.y*l,z.y+n.x*l),a.lineTo(A.x-n.y*l,A.y+n.x*l),a.lineTo(A.x,A.y)):"line"==g?(a.moveTo(z.x+n.y*l,z.y-n.x*l),a.lineTo(z.x-n.y*l,z.y+n.x*l),a.moveTo(A.x-n.y*l,A.y+n.x*l),a.lineTo(A.x+n.y*
+l,A.y-n.x*l),a.moveTo(A.x,A.y)):"arc"==g?(l*=1.3,a.curveTo(z.x-n.y*l,z.y+n.x*l,A.x-n.y*l,A.y+n.x*l,A.x,A.y)):(a.moveTo(A.x,A.y),k=!0),l=[A],z=!0))}else n=null;z||(l.push(F),h=F)}this.addPoints(a,l,c,d,!1,null,k);a.stroke()}};var k=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(a,b,c,d){return null!=b&&"centerPerimeter"==b.style[mxConstants.STYLE_PERIMETER]?new mxPoint(b.getCenterX(),b.getCenterY()):k.apply(this,arguments)};var h=mxGraphView.prototype.updateFloatingTerminalPoint;
mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,c,d){if(null==b||null==a||"1"!=b.style.snapToPoint&&"1"!=a.style.snapToPoint)h.apply(this,arguments);else{b=this.getTerminalPort(a,b,d);var e=this.getNextPoint(a,c,d),f=this.graph.isOrthogonal(a),g=mxUtils.toRadians(Number(b.style[mxConstants.STYLE_ROTATION]||"0")),k=new mxPoint(b.getCenterX(),b.getCenterY());if(0!=g)var m=Math.cos(-g),l=Math.sin(-g),e=mxUtils.getRotatedPoint(e,m,l,k);m=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||
0);m+=parseFloat(a.style[d?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);e=this.getPerimeterPoint(b,e,0==g&&f,m);0!=g&&(m=Math.cos(g),l=Math.sin(g),e=mxUtils.getRotatedPoint(e,m,l,k));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,b,c,d,e),d)}};mxGraphView.prototype.snapToAnchorPoint=function(a,b,c,d,e){if(null!=b&&null!=a){a=this.graph.getAllConnectionConstraints(b);d=c=null;if(null!=a)for(var f=0;f<a.length;f++){var g=this.graph.getConnectionPoint(b,
a[f]);if(null!=g){var k=(g.x-e.x)*(g.x-e.x)+(g.y-e.y)*(g.y-e.y);if(null==d||k<d)c=g,d=k}}null!=c&&(e=c)}return e};var g=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(a,b,c){var d=g.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=c.state&&(d=c.state.view.graph.replacePlaceholders(c.state.cell,d));return d};var m=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var b=
@@ -2773,172 +2772,171 @@ h=e.getAttribute("h"),k=null==k?80:parseInt(k,10),h=null==h?80:parseInt(h,10);b(
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(a){return!mxEvent.isAltDown(a)};var c=mxGraphLayout.prototype.isVertexIgnored;mxGraphLayout.prototype.isVertexIgnored=function(a){return c.apply(this,arguments)||this.graph.isTableRow(a)||this.graph.isTableCell(a)};var e=mxGraphLayout.prototype.isEdgeIgnored;mxGraphLayout.prototype.isEdgeIgnored=function(a){return e.apply(this,arguments)||
this.graph.isEdgeIgnored(a)};var d=mxConnectionHandler.prototype.isCreateTarget;mxConnectionHandler.prototype.isCreateTarget=function(a){return this.graph.isCloneEvent(a)||d.apply(this,arguments)};mxConstraintHandler.prototype.createHighlightShape=function(){var a=new mxEllipse(null,this.highlightColor,this.highlightColor,0);a.opacity=mxConstants.HIGHLIGHT_OPACITY;return a};mxConnectionHandler.prototype.livePreview=!0;mxConnectionHandler.prototype.cursor="crosshair";mxConnectionHandler.prototype.createEdgeState=
-function(a){a=this.graph.createCurrentEdgeStyle();a=this.graph.createEdge(null,null,null,null,null,a);a=new mxCellState(this.graph.view,a,this.graph.getCellStyle(a));for(var b in this.graph.currentEdgeStyle)a.style[b]=this.graph.currentEdgeStyle[b];a.style=this.graph.postProcessCellStyle(a.style);return a};var f=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var a=f.apply(this,arguments);a.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];
+function(a){a=this.graph.createCurrentEdgeStyle();a=this.graph.createEdge(null,null,null,null,null,a);a=new mxCellState(this.graph.view,a,this.graph.getCellStyle(a));for(var b in this.graph.currentEdgeStyle)a.style[b]=this.graph.currentEdgeStyle[b];a.style=this.graph.postProcessCellStyle(a.cell,a.style);return a};var f=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var a=f.apply(this,arguments);a.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];
return a};mxConnectionHandler.prototype.updatePreview=function(a){};var k=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=k.apply(this,arguments),b=a.getCell;a.getCell=mxUtils.bind(this,function(a){var c=b.apply(this,arguments);this.error=null;return c});return a};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=
function(){for(var a="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";",b="shape curved rounded comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle jumpStyle jumpSize".split(" "),c=0;c<b.length;c++)null!=this.currentEdgeStyle[b[c]]&&(a+=b[c]+"="+this.currentEdgeStyle[b[c]]+";");null!=this.currentEdgeStyle.orthogonalLoop?a+="orthogonalLoop="+this.currentEdgeStyle.orthogonalLoop+";":null!=Graph.prototype.defaultEdgeStyle.orthogonalLoop&&
(a+="orthogonalLoop="+Graph.prototype.defaultEdgeStyle.orthogonalLoop+";");null!=this.currentEdgeStyle.jettySize?a+="jettySize="+this.currentEdgeStyle.jettySize+";":null!=Graph.prototype.defaultEdgeStyle.jettySize&&(a+="jettySize="+Graph.prototype.defaultEdgeStyle.jettySize+";");"elbowEdgeStyle"==this.currentEdgeStyle.edgeStyle&&null!=this.currentEdgeStyle.elbow&&(a+="elbow="+this.currentEdgeStyle.elbow+";");return a=null!=this.currentEdgeStyle.html?a+("html="+this.currentEdgeStyle.html+";"):a+"html=1;"};
-Graph.prototype.updateCellStyles=function(a,b,c){this.model.beginUpdate();try{for(var d=0;d<c.length;d++)if(this.model.isVertex(c[d])||this.model.isEdge(c[d])){this.setCellStyles(a,null,[c[d]]);var e=this.getCellStyle(c[d])[a];b!=(null==e?mxConstants.NONE:e)&&this.setCellStyles(a,b,[c[d]])}}finally{this.model.endUpdate()}};Graph.prototype.getPagePadding=function(){return new mxPoint(0,0)};Graph.prototype.loadStylesheet=function(){var a=null!=this.themes?this.themes[this.defaultThemeName]:mxStyleRegistry.dynamicLoading?
-mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement():null;null!=a&&(new mxCodec(a.ownerDocument)).decode(a,this.getStylesheet())};Graph.prototype.createCellLookup=function(a,b){b=null!=b?b:{};for(var c=0;c<a.length;c++){var d=a[c];b[mxObjectIdentity.get(d)]=d.getId();for(var e=this.model.getChildCount(d),f=0;f<e;f++)this.createCellLookup([this.model.getChildAt(d,f)],b)}return b};Graph.prototype.createCellMapping=function(a,b,c){c=null!=c?c:{};for(var d in a){var e=b[d];null==c[e]&&(c[e]=a[d].getId()||
-"")}return c};Graph.prototype.importGraphModel=function(a,b,c,d){b=null!=b?b:0;c=null!=c?c:0;var e=new mxCodec(a.ownerDocument),f=new mxGraphModel;e.decode(a,f);a=[];var e={},g={},k=f.getChildren(this.cloneCell(f.root,this.isCloneInvalidEdges(),e));if(null!=k){var h=this.createCellLookup([f.root]),k=k.slice();this.model.beginUpdate();try{if(1!=k.length||this.isCellLocked(this.getDefaultParent()))for(f=0;f<k.length;f++)m=this.model.getChildren(this.moveCells([k[f]],b,c,!1,this.model.getRoot())[0]),
-null!=m&&(a=a.concat(m));else{var m=f.getChildren(k[0]);null!=m&&(a=this.moveCells(m,b,c,!1,this.getDefaultParent()),g[f.getChildAt(f.root,0).getId()]=this.getDefaultParent().getId())}if(null!=a&&(this.createCellMapping(e,h,g),this.updateCustomLinks(g,a),d)){this.isGridEnabled()&&(b=this.snap(b),c=this.snap(c));var O=this.getBoundingBoxFromGeometry(a,!0);null!=O&&this.moveCells(a,b-O.x,c-O.y)}}finally{this.model.endUpdate()}}return a};Graph.prototype.encodeCells=function(a){for(var b={},c=this.cloneCells(a,
-null,b),d=new mxDictionary,e=0;e<a.length;e++)d.put(a[e],!0);for(var f=new mxCodec,g=new mxGraphModel,k=g.getChildAt(g.getRoot(),0),e=0;e<c.length;e++){g.add(k,c[e]);var h=this.view.getState(a[e]);if(null!=h){var m=this.getCellGeometry(c[e]);null!=m&&m.relative&&!this.model.isEdge(a[e])&&null==d.get(this.model.getParent(a[e]))&&(m.offset=null,m.relative=!1,m.x=h.x/h.view.scale-h.view.translate.x,m.y=h.y/h.view.scale-h.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(b,this.createCellLookup(a)),
-c);return f.encode(g)};Graph.prototype.isSwimlane=function(a,b){if(null!=a&&this.model.getParent(a)!=this.model.getRoot()&&!this.model.isEdge(a)){var c=this.getCurrentCellStyle(a,b)[mxConstants.STYLE_SHAPE];return c==mxConstants.SHAPE_SWIMLANE||"table"==c}return!1};var h=Graph.prototype.isExtendParent;Graph.prototype.isExtendParent=function(a){var b=this.model.getParent(a);if(null!=b){var c=this.getCurrentCellStyle(b);if(null!=c.expand)return"0"!=c.expand}return h.apply(this,arguments)&&(null==b||
-!this.isTable(b))};var g=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(a,b,c,d,e,f,k,h){null==h&&(h=this.model.getParent(a),this.isTable(h)||this.isTableRow(h))&&(h=this.getCellAt(f,k,null,!0,!1));c=null;this.model.beginUpdate();try{c=g.apply(this,[a,b,c,d,e,f,k,h]);this.model.setValue(c,"");var m=this.getChildCells(c,!0);for(b=0;b<m.length;b++){var l=this.getCellGeometry(m[b]);null!=l&&l.relative&&0<l.x&&this.model.remove(m[b])}var O=this.getChildCells(a,!0);for(b=0;b<O.length;b++)l=
-this.getCellGeometry(O[b]),null!=l&&l.relative&&0>=l.x&&this.model.remove(O[b]);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,[a]);this.setCellStyles(mxConstants.STYLE_STARTARROW,mxConstants.NONE,[a]);var n=this.model.getTerminal(c,!1);if(null!=n){var V=this.getCurrentCellStyle(n);null!=V&&"1"==V.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,
-null,[a]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[a]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[c]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[c]))}}finally{this.model.endUpdate()}return c};var m=Graph.prototype.selectCell;Graph.prototype.selectCell=function(a,b,c){if(b||c)m.apply(this,arguments);else{var d=this.getSelectionCell(),e=null,f=[],g=mxUtils.bind(this,function(b){if(null!=this.view.getState(b)&&(this.model.isVertex(b)||this.model.isEdge(b)))if(f.push(b),b==d)e=
-f.length-1;else if(a&&null==d&&0<f.length||null!=e&&a&&f.length>e||!a&&0<e)return;for(var c=0;c<this.model.getChildCount(b);c++)g(this.model.getChildAt(b,c))});g(this.model.root);0<f.length&&(e=null!=e?mxUtils.mod(e+(a?1:-1),f.length):0,this.setSelectionCell(f[e]))}};Graph.prototype.swapUmlLifelines=function(a,b){var c=!1;if(null!=b&&1==a.length){var d=this.view.getState(b),e=this.view.getState(a[0]);if(null!=d&&null!=e&&"umlLifeline"==d.style.shape&&"umlLifeline"==e.style.shape&&(e=this.getCellGeometry(b),
-d=this.getCellGeometry(a[0]),null!=e&&null!=d)){c=e.clone();e=d.clone();e.x=c.x;e.y=c.y;c.x=d.x;c.y=d.y;this.model.beginUpdate();try{this.model.setGeometry(b,c),this.model.setGeometry(a[0],e)}finally{this.model.endUpdate()}c=!0}}return c};var l=Graph.prototype.moveCells;Graph.prototype.moveCells=function(a,b,c,d,e,f,g){if(!d&&this.swapUmlLifelines(a,e))return a;g=null!=g?g:{};if(this.isTable(e)){for(var k=[],h=0;h<a.length;h++)this.isTable(a[h])?k=k.concat(this.model.getChildCells(a[h],!0).reverse()):
-k.push(a[h]);a=k}this.model.beginUpdate();try{k=[];for(h=0;h<a.length;h++)if(null!=e&&this.isTableRow(a[h])){var m=this.model.getParent(a[h]),O=this.getCellGeometry(a[h]);this.isTable(m)&&k.push(m);if(null!=m&&null!=O&&this.isTable(m)&&this.isTable(e)&&(d||m!=e)){if(!d){var n=this.getCellGeometry(m);null!=n&&(n=n.clone(),n.height-=O.height,this.model.setGeometry(m,n))}n=this.getCellGeometry(e);null!=n&&(n=n.clone(),n.height+=O.height,this.model.setGeometry(e,n));var V=this.model.getChildCells(e,!0);
-if(0<V.length){a[h]=d?this.cloneCell(a[h]):a[h];var p=this.model.getChildCells(a[h],!0),ca=this.model.getChildCells(V[0],!0),ea=ca.length-p.length;if(0<ea)for(var r=0;r<ea;r++){var ia=this.cloneCell(p[p.length-1]);null!=ia&&(ia.value="",this.model.add(a[h],ia))}else if(0>ea)for(r=0;r>ea;r--)this.model.remove(p[p.length+r-1]);p=this.model.getChildCells(a[h],!0);for(r=0;r<ca.length;r++){var u=this.getCellGeometry(ca[r]),t=this.getCellGeometry(p[r]);null!=u&&null!=t&&(t=t.clone(),t.width=u.width,this.model.setGeometry(p[r],
-t))}}}}for(var wa=l.apply(this,arguments),h=0;h<k.length;h++)!d&&this.model.contains(k[h])&&0==this.model.getChildCount(k[h])&&this.model.remove(k[h]);d&&this.updateCustomLinks(this.createCellMapping(g,this.createCellLookup(a)),wa)}finally{this.model.endUpdate()}return wa};var n=Graph.prototype.removeCells;Graph.prototype.removeCells=function(a,b){var c=[];this.model.beginUpdate();try{for(var d=0;d<a.length;d++)if(this.isTableCell(a[d])){var e=this.model.getParent(a[d]),f=this.model.getParent(e);
-1==this.model.getChildCount(e)&&1==this.model.getChildCount(f)?0>mxUtils.indexOf(a,f)&&0>mxUtils.indexOf(c,f)&&c.push(f):this.labelChanged(a[d],"")}else{if(this.isTableRow(a[d])&&(f=this.model.getParent(a[d]),0>mxUtils.indexOf(a,f)&&0>mxUtils.indexOf(c,f))){for(var g=this.model.getChildCells(f,!0),k=0,h=0;h<g.length;h++)0<=mxUtils.indexOf(a,g[h])&&k++;k==g.length&&c.push(f)}c.push(a[d])}c=n.apply(this,[c,b])}finally{this.model.endUpdate()}return c};Graph.prototype.updateCustomLinks=function(a,b,c){c=
-null!=c?c:new Graph;for(var d=0;d<b.length;d++)null!=b[d]&&c.updateCustomLinksForCell(a,b[d],c)};Graph.prototype.updateCustomLinksForCell=function(a,b){this.doUpdateCustomLinksForCell(a,b);for(var c=this.model.getChildCount(b),d=0;d<c;d++)this.updateCustomLinksForCell(a,this.model.getChildAt(b,d))};Graph.prototype.doUpdateCustomLinksForCell=function(a,b){};Graph.prototype.getAllConnectionConstraints=function(a,b){if(null!=a){var c=mxUtils.getValue(a.style,"points",null);if(null!=c){var d=[];try{for(var e=
-JSON.parse(c),c=0;c<e.length;c++){var f=e[c];d.push(new mxConnectionConstraint(new mxPoint(f[0],f[1]),2<f.length?"0"!=f[2]:!0,null,3<f.length?f[3]:0,4<f.length?f[4]:0))}}catch(Ba){}return d}if(null!=a.shape&&null!=a.shape.bounds){f=a.shape.direction;e=a.shape.bounds;c=a.shape.scale;d=e.width/c;e=e.height/c;if(f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH)f=d,d=e,e=f;c=a.shape.getConstraints(a.style,d,e);if(null!=c)return c;if(null!=a.shape.stencil&&null!=a.shape.stencil.constraints)return a.shape.stencil.constraints;
-if(null!=a.shape.constraints)return a.shape.constraints}}return null};Graph.prototype.flipEdge=function(a){if(null!=a){var b=this.getCurrentCellStyle(a),b=mxUtils.getValue(b,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL;this.setCellStyles(mxConstants.STYLE_ELBOW,b,[a])}};Graph.prototype.isValidRoot=function(a){for(var b=this.model.getChildCount(a),c=0,d=0;d<b;d++){var e=this.model.getChildAt(a,d);this.model.isVertex(e)&&
-(e=this.getCellGeometry(e),null==e||e.relative||c++)}return 0<c||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a,b,c){for(var d=this.getCurrentCellStyle(a),e=!0,f=!0,g=0;g<b.length&&f;g++)e=e&&this.isTable(b[g]),f=f&&this.isTableRow(b[g]);return("1"!=mxUtils.getValue(d,"part","0")||this.isContainer(a))&&"0"!=mxUtils.getValue(d,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(a))&&!this.isTableRow(a)&&(!this.isTable(a)||f||e)&&!this.isCellLocked(a)};
-Graph.prototype.createGroupCell=function(){var a=mxGraph.prototype.createGroupCell.apply(this,arguments);a.setStyle("group");return a};Graph.prototype.isExtendParentsOnAdd=function(a){var b=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(b&&null!=a&&null!=this.layoutManager){var c=this.model.getParent(a);null!=c&&(c=this.layoutManager.getLayout(c),null!=c&&c.constructor==mxStackLayout&&(b=!1))}return b};Graph.prototype.getPreferredSizeForCell=function(a){var b=mxGraph.prototype.getPreferredSizeForCell.apply(this,
-arguments);null!=b&&(b.width+=10,b.height+=4,this.gridEnabled&&(b.width=this.snap(b.width),b.height=this.snap(b.height)));return b};Graph.prototype.turnShapes=function(a,b){var c=this.getModel(),d=[];c.beginUpdate();try{for(var e=0;e<a.length;e++){var f=a[e];if(c.isEdge(f)){var g=c.getTerminal(f,!0),k=c.getTerminal(f,!1);c.setTerminal(f,k,!0);c.setTerminal(f,g,!1);var h=c.getGeometry(f);if(null!=h){h=h.clone();null!=h.points&&h.points.reverse();var m=h.getTerminalPoint(!0),l=h.getTerminalPoint(!1);
-h.setTerminalPoint(m,!1);h.setTerminalPoint(l,!0);c.setGeometry(f,h);var n=this.view.getState(f),O=this.view.getState(g),p=this.view.getState(k);if(null!=n){var V=null!=O?this.getConnectionConstraint(n,O,!0):null,r=null!=p?this.getConnectionConstraint(n,p,!1):null;this.setConnectionConstraint(f,g,!0,r);this.setConnectionConstraint(f,k,!1,V);var u=mxUtils.getValue(n.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(n.style,
-mxConstants.STYLE_TARGET_PERIMETER_SPACING),[f]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,u,[f])}d.push(f)}}else if(c.isVertex(f)&&(h=this.getCellGeometry(f),null!=h)){if(!(this.isTable(f)||this.isTableRow(f)||this.isTableCell(f)||this.isSwimlane(f))){h=h.clone();h.x+=h.width/2-h.height/2;h.y+=h.height/2-h.width/2;var t=h.width;h.width=h.height;h.height=t;c.setGeometry(f,h)}var v=this.view.getState(f);if(null!=v){var E=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,
-mxConstants.DIRECTION_NORTH],U=mxUtils.getValue(v.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,E[mxUtils.mod(mxUtils.indexOf(E,U)+(b?-1:1),E.length)],[f])}d.push(f)}}}finally{c.endUpdate()}return d};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"==a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};var p=Graph.prototype.processChange;
-Graph.prototype.processChange=function(a){if(a instanceof mxGeometryChange&&(this.isTableCell(a.cell)||this.isTableRow(a.cell))&&(null==a.previous&&null!=a.geometry||null!=a.previous&&!a.previous.equals(a.geometry))){var b=a.cell;this.isTableCell(b)&&(b=this.model.getParent(b));this.isTableRow(b)&&(b=this.model.getParent(b));var c=this.view.getState(b);null!=c&&null!=c.shape&&(this.view.invalidate(b),c.shape.bounds=null)}p.apply(this,arguments);a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&
-"object"==typeof a.cell.value&&this.invalidateDescendantsWithPlaceholders(a.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=function(a){a=this.model.getDescendants(a);if(0<a.length)for(var b=0;b<a.length;b++){var c=this.view.getState(a[b]);null!=c&&null!=c.shape&&null!=c.shape.stencil&&this.stencilHasPlaceholders(c.shape.stencil)?this.removeStateForCell(a[b]):this.isReplacePlaceholders(a[b])&&this.view.invalidate(a[b],!1,!1)}};Graph.prototype.replaceElement=function(a,b){for(var c=a.ownerDocument.createElement(null!=
-b?b:"span"),d=Array.prototype.slice.call(a.attributes);attr=d.pop();)c.setAttribute(attr.nodeName,attr.nodeValue);c.innerHTML=a.innerHTML;a.parentNode.replaceChild(c,a)};Graph.prototype.processElements=function(a,b){if(null!=a)for(var c=a.getElementsByTagName("*"),d=0;d<c.length;d++)b(c[d])};Graph.prototype.updateLabelElements=function(a,b,c){a=null!=a?a:this.getSelectionCells();for(var d=document.createElement("div"),e=0;e<a.length;e++)if(this.isHtmlLabel(a[e])){var f=this.convertValueToString(a[e]);
-if(null!=f&&0<f.length){d.innerHTML=f;for(var g=d.getElementsByTagName(null!=c?c:"*"),k=0;k<g.length;k++)b(g[k]);d.innerHTML!=f&&this.cellLabelChanged(a[e],d.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,b,c){b=Graph.zapGremlins(b);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var d=a.getAttribute("placeholder"),e=a;null!=e;){if(e==this.model.getRoot()||null!=e.value&&"object"==typeof e.value&&
-e.hasAttribute(d)){this.setAttributeForCell(e,d,b);break}e=this.model.getParent(e)}var f=a.value.cloneNode(!0);Graph.translateDiagram&&null!=Graph.diagramLanguage&&f.hasAttribute("label_"+Graph.diagramLanguage)?f.setAttribute("label_"+Graph.diagramLanguage,b):f.setAttribute("label",b);b=f}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(a){if(null!=a){for(var b=new mxDictionary,c=0;c<a.length;c++)b.put(a[c],!0);for(var d=
-[],c=0;c<a.length;c++){var e=this.model.getParent(a[c]);null==e||b.get(e)||(b.put(e,!0),d.push(e))}for(c=0;c<d.length;c++)if(e=this.view.getState(d[c]),null!=e&&(this.model.isEdge(e.cell)||this.model.isVertex(e.cell))&&this.isCellDeletable(e.cell)&&this.isTransparentState(e)){for(var f=!0,g=0;g<this.model.getChildCount(e.cell)&&f;g++)b.get(this.model.getChildAt(e.cell,g))||(f=!1);f&&a.push(e.cell)}}mxGraph.prototype.cellsRemoved.apply(this,arguments)};Graph.prototype.removeCellsAfterUngroup=function(a){for(var b=
-[],c=0;c<a.length;c++)this.isCellDeletable(a[c])&&this.isTransparentState(this.view.getState(a[c]))&&b.push(a[c]);a=b;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(a,b){this.setAttributeForCell(a,"link",b)};Graph.prototype.setTooltipForCell=function(a,b){var c="tooltip";Graph.translateDiagram&&null!=Graph.diagramLanguage&&mxUtils.isNode(a.value)&&a.value.hasAttribute("tooltip_"+Graph.diagramLanguage)&&(c="tooltip_"+Graph.diagramLanguage);
-this.setAttributeForCell(a,c,b)};Graph.prototype.getAttributeForCell=function(a,b,c){a=null!=a.value&&"object"===typeof a.value?a.value.getAttribute(b):null;return null!=a?a:c};Graph.prototype.setAttributeForCell=function(a,b,c){var d;null!=a.value&&"object"==typeof a.value?d=a.value.cloneNode(!0):(d=mxUtils.createXmlDocument().createElement("UserObject"),d.setAttribute("label",a.value||""));null!=c?d.setAttribute(b,c):d.removeAttribute(b);this.model.setValue(a,d)};var r=Graph.prototype.getDropTarget;
-Graph.prototype.getDropTarget=function(a,b,c,d){this.getModel();if(mxEvent.isAltDown(b))return null;for(var e=0;e<a.length;e++){var f=this.model.getParent(a[e]);if(this.model.isEdge(f)&&0>mxUtils.indexOf(a,f))return null}for(var f=r.apply(this,arguments),g=!0,e=0;e<a.length&&g;e++)g=g&&this.isTableRow(a[e]);g&&(this.isTableCell(f)&&(f=this.model.getParent(f)),this.isTableRow(f)&&(f=this.model.getParent(f)),this.isTable(f)||(f=null));return f};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,
-a);this.firstClickState=a.getState();this.firstClickSource=a.getSource()};Graph.prototype.dblClick=function(a,b){this.isEnabled()&&(b=this.insertTextForEvent(a,b),mxGraph.prototype.dblClick.call(this,a,b))};Graph.prototype.insertTextForEvent=function(a,b){var c=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));if(null!=a&&!this.model.isVertex(b)){var d=this.model.isEdge(b)?this.view.getState(b):null,e=mxEvent.getSource(a);this.firstClickState!=d||this.firstClickSource!=
-e||null!=d&&null!=d.text&&null!=d.text.node&&null!=d.text.boundingBox&&(mxUtils.contains(d.text.boundingBox,c.x,c.y)||mxUtils.isAncestorNode(d.text.node,mxEvent.getSource(a)))||(null!=d||this.isCellLocked(this.getDefaultParent()))&&(null==d||this.isCellLocked(d.cell))||!(null!=d||mxClient.IS_SVG&&e==this.view.getCanvas().ownerSVGElement)||(null==d&&(d=this.view.getState(this.getCellAt(c.x,c.y))),b=this.addText(c.x,c.y,d))}return b};Graph.prototype.getInsertPoint=function(){var a=this.getGridSize(),
-b=this.container.scrollLeft/this.view.scale-this.view.translate.x,c=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var d=this.getPageLayout(),e=this.getPageSize(),b=Math.max(b,d.x*e.width),c=Math.max(c,d.y*e.height);return new mxPoint(this.snap(b+a),this.snap(c+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,b=this.getGraphBounds(),c=this.getInsertPoint(),d=this.snap(Math.round(Math.max(c.x,b.x/a.scale-a.translate.x+(0==b.width?2*this.gridSize:
-0)))),a=this.snap(Math.round(Math.max(c.y,(b.y+b.height)/a.scale-a.translate.y+2*this.gridSize)));return new mxPoint(d,a)};Graph.prototype.getCenterInsertPoint=function(a){a=null!=a?a:new mxRectangle;return mxUtils.hasScrollbars(this.container)?new mxPoint(this.snap(Math.round((this.container.scrollLeft+this.container.clientWidth/2)/this.view.scale-this.view.translate.x-a.width/2)),this.snap(Math.round((this.container.scrollTop+this.container.clientHeight/2)/this.view.scale-this.view.translate.y-
-a.height/2))):new mxPoint(this.snap(Math.round(this.container.clientWidth/2/this.view.scale-this.view.translate.x-a.width/2)),this.snap(Math.round(this.container.clientHeight/2/this.view.scale-this.view.translate.y-a.height/2)))};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(a,b,c){var d=new mxCell;d.value="Text";d.geometry=new mxGeometry(0,0,0,0);d.vertex=!0;if(null!=c&&this.model.isEdge(c.cell)){d.style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];";
-d.geometry.relative=!0;d.connectable=!1;var e=this.view.getRelativePoint(c,a,b);d.geometry.x=Math.round(1E4*e.x)/1E4;d.geometry.y=Math.round(e.y);d.geometry.offset=new mxPoint(0,0);var e=this.view.getPoint(c,d.geometry),f=this.view.scale;d.geometry.offset=new mxPoint(Math.round((a-e.x)/f),Math.round((b-e.y)/f))}else e=this.view.translate,d.style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];",d.geometry.width=40,d.geometry.height=20,d.geometry.x=Math.round(a/this.view.scale)-
-e.x-(null!=c?c.origin.x:0),d.geometry.y=Math.round(b/this.view.scale)-e.y-(null!=c?c.origin.y:0),d.style+="autosize=1;";this.getModel().beginUpdate();try{this.addCells([d],null!=c?c.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[d])),this.autoSizeCell(d)}finally{this.getModel().endUpdate()}return d};Graph.prototype.addClickHandler=function(a,b,c){var d=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var c=0;c<a.length;c++){var d=this.getAbsoluteUrl(a[c].getAttribute("href"));
-null!=d&&(a[c].setAttribute("rel",this.linkRelation),a[c].setAttribute("href",d),null!=b&&mxEvent.addGestureListeners(a[c],null,null,b))}});this.model.addListener(mxEvent.CHANGE,d);d();var e=this.container.style.cursor,f=this.getTolerance(),g=this,k={currentState:null,currentLink:null,currentTarget:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){var b=a.sourceState;if(null==b||null==g.getLinkForCell(b.cell))a=
-g.getCellAt(a.getGraphX(),a.getGraphY(),null,null,null,function(a,b,c){return null==g.getLinkForCell(a.cell)}),b=null==b||g.model.isAncestor(a,b.cell)?g.view.getState(a):null;b!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=b,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&
-(g.container.style.cursor="move");this.updateCurrentState(b)},mouseMove:function(a,b){if(g.isMouseDown){if(null!=this.currentLink){var c=Math.abs(this.startX-b.getGraphX()),d=Math.abs(this.startY-b.getGraphY());(c>f||d>f)&&this.clear()}}else{for(c=b.getSource();null!=c&&"a"!=c.nodeName.toLowerCase();)c=c.parentNode;null!=c?this.clear():(null!=g.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&g.tooltipHandler.reset(b,!0,this.currentState),(null==this.currentState||b.getState()!=this.currentState&&
-null!=b.sourceState||!g.intersects(this.currentState,b.getGraphX(),b.getGraphY()))&&this.updateCurrentState(b))}},mouseUp:function(a,d){for(var e=d.getSource(),k=d.getEvent();null!=e&&"a"!=e.nodeName.toLowerCase();)e=e.parentNode;null==e&&Math.abs(this.scrollLeft-g.container.scrollLeft)<f&&Math.abs(this.scrollTop-g.container.scrollTop)<f&&(null==d.sourceState||!d.isSource(d.sourceState.control))&&((mxEvent.isLeftMouseButton(k)||mxEvent.isMiddleMouseButton(k))&&!mxEvent.isPopupTrigger(k)||mxEvent.isTouchEvent(k))&&
-(null!=this.currentLink?(e=g.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&e||null==b||b(k,this.currentLink),mxEvent.isConsumed(k)||(k=null!=this.currentTarget?this.currentTarget:mxEvent.isMiddleMouseButton(k)?"_blank":e?g.linkTarget:"_top",g.openLink(this.currentLink,k),d.consume())):null!=c&&!d.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<f&&Math.abs(this.scrollTop-g.container.scrollTop)<f&&Math.abs(this.startX-d.getGraphX())<f&&Math.abs(this.startY-
-d.getGraphY())<f&&c(d.getEvent()));this.clear()},activate:function(a){this.currentLink=g.getAbsoluteUrl(g.getLinkForCell(a.cell));null!=this.currentLink&&(this.currentTarget=g.getLinkTargetForCell(a.cell),g.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=e);this.currentLink=this.currentState=this.currentTarget=null;null!=this.highlight&&this.highlight.hide();null!=g.tooltipHandler&&g.tooltipHandler.hide()}};
-g.click=function(a){};g.addMouseListener(k);mxEvent.addListener(document,"mouseleave",function(a){k.clear()})};Graph.prototype.duplicateCells=function(a,b){a=null!=a?a:this.getSelectionCells();b=null!=b?b:!0;for(var c=0;c<a.length;c++)this.isTableCell(a[c])&&(a[c]=this.model.getParent(a[c]));a=this.model.getTopmostCells(a);var d=this.getModel(),e=this.gridSize,f=[];d.beginUpdate();try{for(var g={},k=this.createCellLookup(a),h=this.cloneCells(a,!1,g,!0),c=0;c<a.length;c++){var m=d.getParent(a[c]);
-if(null!=m){var l=this.moveCells([h[c]],e,e,!1)[0];f.push(l);if(b)d.add(m,h[c]);else{var n=m.getIndex(a[c]);d.add(m,h[c],n+1)}if(this.isTable(m)){var O=this.getCellGeometry(h[c]),p=this.getCellGeometry(m);null!=O&&null!=p&&(p=p.clone(),p.height+=O.height,d.setGeometry(m,p))}}else f.push(h[c])}this.updateCustomLinks(this.createCellMapping(g,k),h,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",h))}finally{d.endUpdate()}return f};Graph.prototype.insertImage=function(a,b,c){if(null!=
-a&&null!=this.cellEditor.textarea){for(var d=this.cellEditor.textarea.getElementsByTagName("img"),e=[],f=0;f<d.length;f++)e.push(d[f]);document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==e.length+1)for(f=a.length-1;0<=f;f--)if(0==f||a[f]!=e[f-1]){a[f].setAttribute("width",b);a[f].setAttribute("height",c);break}}};Graph.prototype.insertLink=function(a){if(null!=this.cellEditor.textarea)if(0==a.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var b=
-this.cellEditor.textarea.getElementsByTagName("a"),c=[],d=0;d<b.length;d++)c.push(b[d]);document.execCommand("createlink",!1,mxUtils.trim(a));b=this.cellEditor.textarea.getElementsByTagName("a");if(b.length==c.length+1)for(d=b.length-1;0<=d;d--)if(b[d]!=c[d-1]){for(b=b[d].getElementsByTagName("a");0<b.length;){for(c=b[0].parentNode;null!=b[0].firstChild;)c.insertBefore(b[0].firstChild,b[0]);c.removeChild(b[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=
-function(a){var b=mxGraph.prototype.isCellResizable.apply(this,arguments),c=this.getCurrentCellStyle(a);return!this.isTableCell(a)&&!this.isTableRow(a)&&(b||"0"!=mxUtils.getValue(c,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==c[mxConstants.STYLE_WHITE_SPACE])};Graph.prototype.distributeCells=function(a,b){null==b&&(b=this.getSelectionCells());if(null!=b&&1<b.length){for(var c=[],d=null,e=null,f=0;f<b.length;f++)if(this.getModel().isVertex(b[f])){var g=this.view.getState(b[f]);if(null!=g){var k=a?g.getCenterX():
-g.getCenterY(),d=null!=d?Math.max(d,k):k,e=null!=e?Math.min(e,k):k;c.push(g)}}if(2<c.length){c.sort(function(b,c){return a?b.x-c.x:b.y-c.y});g=this.view.translate;k=this.view.scale;e=e/k-(a?g.x:g.y);d=d/k-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var h=(d-e)/(c.length-1),d=e,f=1;f<c.length-1;f++){var m=this.view.getState(this.model.getParent(c[f].cell)),l=this.getCellGeometry(c[f].cell),d=d+h;null!=l&&null!=m&&(l=l.clone(),a?l.x=Math.round(d-l.width/2)-m.origin.x:l.y=Math.round(d-l.height/
-2)-m.origin.y,this.getModel().setGeometry(c[f].cell,l))}}finally{this.getModel().endUpdate()}}}return b};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,b){return this.getLinkForCell(a.cell)});return a};Graph.prototype.parseBackgroundImage=function(a){var b=null;null!=a&&0<a.length&&(a=JSON.parse(a),b=new mxImage(a.src,
-a.width,a.height));return b};Graph.prototype.getBackgroundImageObject=function(a){return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g,k,h,m,l,n,p,r){var O=null;if(null!=r)for(O=new mxDictionary,l=0;l<r.length;l++)O.put(r[l],!0);if(r=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{b=null!=b?b:1;c=null!=c?c:0;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;m=null!=m?m:!1;var V="page"==p?this.view.getBackgroundPageBounds():f&&null==O||d||"diagram"==p?this.getGraphBounds():
-this.getBoundingBox(this.getSelectionCells()),ca=this.view.scale;"diagram"==p&&null!=this.backgroundImage&&(V=mxRectangle.fromRectangle(V),V.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*ca,(this.view.translate.y+this.backgroundImage.y)*ca,this.backgroundImage.width*ca,this.backgroundImage.height*ca)));if(null==V)throw Error(mxResources.get("drawingEmpty"));var u=mxUtils.createXmlDocument(),t=null!=u.createElementNS?u.createElementNS(mxConstants.NS_SVG,"svg"):u.createElement("svg");
-null!=a&&(null!=t.style?t.style.backgroundColor=a:t.setAttribute("style","background-color:"+a));null==u.createElementNS?(t.setAttribute("xmlns",mxConstants.NS_SVG),t.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):t.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=b/ca;var v=Math.max(1,Math.ceil(V.width*a)+2*c)+(m&&0==c?5:0),ea=Math.max(1,Math.ceil(V.height*a)+2*c)+(m&&0==c?5:0);t.setAttribute("version","1.1");t.setAttribute("width",v+"px");t.setAttribute("height",
-ea+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+v+" "+ea);u.appendChild(t);var ia=null!=u.createElementNS?u.createElementNS(mxConstants.NS_SVG,"g"):u.createElement("g");t.appendChild(ia);var E=this.createSvgCanvas(ia);E.foOffset=e?-.5:0;E.textOffset=e?-.5:0;E.imageOffset=e?-.5:0;E.translate(Math.floor(c/b-V.x/ca),Math.floor(c/b-V.y/ca));var U=document.createElement("div"),x=E.getAlternateText;E.getAlternateText=function(a,b,c,d,e,f,g,k,h,m,l,n,q){if(null!=f&&0<this.state.fontSize)try{mxUtils.isNode(f)?
-f=f.innerText:(U.innerHTML=f,f=mxUtils.extractTextWithWhitespace(U.childNodes));for(var D=Math.ceil(2*d/this.state.fontSize),B=[],C=0,H=0;(0==D||C<D)&&H<f.length;){var Da=f.charCodeAt(H);if(10==Da||13==Da){if(0<C)break}else B.push(f.charAt(H)),255>Da&&C++;H++}B.length<f.length&&1<f.length-B.length&&(f=mxUtils.trim(B.join(""))+"...");return f}catch(db){return x.apply(this,arguments)}else return x.apply(this,arguments)};var y=this.backgroundImage;if(null!=y){b=ca/b;var A=this.view.translate,w=new mxRectangle((y.x+
-A.x)*b,(y.y+A.y)*b,y.width*b,y.height*b);mxUtils.intersects(V,w)&&E.image(y.x+A.x,y.y+A.y,y.width,y.height,y.src,!0)}E.scale(a);E.textEnabled=g;k=null!=k?k:this.createSvgImageExport();var G=k.drawCellState,z=k.getLinkForCellState;k.getLinkForCellState=function(a,b){var c=z.apply(this,arguments);return null==c||a.view.graph.isCustomLink(c)?null:c};k.getLinkTargetForCellState=function(a,b){return a.view.graph.getLinkTargetForCell(a.cell)};k.drawCellState=function(a,b){for(var c=a.view.graph,d=null!=
-O?O.get(a.cell):c.isCellSelected(a.cell),e=c.model.getParent(a.cell);!(f&&null==O||d)&&null!=e;)d=null!=O?O.get(e):c.isCellSelected(e),e=c.model.getParent(e);(f&&null==O||d)&&G.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),E);this.updateSvgLinks(t,h,!0);this.addForeignObjectWarning(E,t);return t}finally{r&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(a,b){if("0"!=urlParams["svg-warning"]&&0<
-b.getElementsByTagName("foreignObject").length){var c=a.createElement("switch"),d=a.createElement("g");d.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var e=a.createElement("a");e.setAttribute("transform","translate(0,-5)");null==e.setAttributeNS||b.ownerDocument!=document&&null==document.documentMode?(e.setAttribute("xlink:href",Graph.foreignObjectWarningLink),e.setAttribute("target","_blank")):(e.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",Graph.foreignObjectWarningLink),
-e.setAttributeNS(mxConstants.NS_XLINK,"target","_blank"));var f=a.createElement("text");f.setAttribute("text-anchor","middle");f.setAttribute("font-size","10px");f.setAttribute("x","50%");f.setAttribute("y","100%");mxUtils.write(f,Graph.foreignObjectWarningText);c.appendChild(d);e.appendChild(f);c.appendChild(e);b.appendChild(c)}};Graph.prototype.updateSvgLinks=function(a,b,c){a=a.getElementsByTagName("a");for(var d=0;d<a.length;d++)if(null==a[d].getAttribute("target")){var e=a[d].getAttribute("href");
-null==e&&(e=a[d].getAttribute("xlink:href"));null!=e&&(null!=b&&/^https?:\/\//.test(e)?a[d].setAttribute("target",b):c&&this.isCustomLink(e)&&a[d].setAttribute("href","javascript:void(0);"))}};Graph.prototype.createSvgCanvas=function(a){a=new mxSvgCanvas2D(a);a.pointerEvents=!0;return a};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var b=window.getSelection();b.getRangeAt&&b.rangeCount&&(a=b.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());
-return a};Graph.prototype.getSelectedEditingElement=function(){for(var a=this.getSelectedElement();null!=a&&a.nodeType!=mxConstants.NODETYPE_ELEMENT;)a=a.parentNode;null!=a&&a==this.cellEditor.textarea&&1==this.cellEditor.textarea.children.length&&this.cellEditor.textarea.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=this.cellEditor.textarea.firstChild);return a};Graph.prototype.getParentByName=function(a,b,c){for(;null!=a&&a.nodeName!=b;){if(a==c)return null;a=a.parentNode}return a};Graph.prototype.getParentByNames=
-function(a,b,c){for(;null!=a&&!(0<=mxUtils.indexOf(b,a.nodeName));){if(a==c)return null;a=a.parentNode}return a};Graph.prototype.selectNode=function(a){var b=null;if(window.getSelection){if(b=window.getSelection(),b.getRangeAt&&b.rangeCount){var c=document.createRange();c.selectNode(a);b.removeAllRanges();b.addRange(c)}}else(b=document.selection)&&"Control"!=b.type&&(a=b.createRange(),a.collapse(!0),c=b.createRange(),c.setEndPoint("StartToStart",a),c.select())};Graph.prototype.deleteCells=function(a,
-b){var c=null;if(null!=a&&0<a.length){this.model.beginUpdate();try{for(var d=0;d<a.length;d++){var e=this.model.getParent(a[d]);if(this.isTable(e)){var f=this.getCellGeometry(a[d]),g=this.getCellGeometry(e);null!=f&&null!=g&&(g=g.clone(),g.height-=f.height,this.model.setGeometry(e,g))}}var k=this.selectParentAfterDelete?this.model.getParents(a):null;this.removeCells(a,b)}finally{this.model.endUpdate()}if(null!=k)for(c=[],d=0;d<k.length;d++)this.model.contains(k[d])&&(this.model.isVertex(k[d])||this.model.isEdge(k[d]))&&
-c.push(k[d])}return c};Graph.prototype.insertTableColumn=function(a,b){var c=this.getModel();c.beginUpdate();try{var d=a,e=0;if(this.isTableCell(a))var f=c.getParent(a),d=c.getParent(f),e=mxUtils.indexOf(c.getChildCells(f,!0),a);else this.isTableRow(a)?d=c.getParent(a):a=c.getChildCells(d,!0)[0],b||(e=c.getChildCells(a,!0).length-1);for(var g=c.getChildCells(d,!0),k=Graph.minTableColumnWidth,f=0;f<g.length;f++){var h=c.getChildCells(g[f],!0)[e],m=c.cloneCell(h,!1),l=this.getCellGeometry(m);m.value=
-null;m.style=mxUtils.setStyle(mxUtils.setStyle(m.style,"rowspan",null),"colspan",null);if(null!=l){null!=l.alternateBounds&&(l.width=l.alternateBounds.width,l.height=l.alternateBounds.height,l.alternateBounds=null);var k=l.width,n=this.getCellGeometry(g[f]);null!=n&&(l.height=n.height)}c.add(g[f],m,e+(b?0:1))}var p=this.getCellGeometry(d);null!=p&&(p=p.clone(),p.width+=k,c.setGeometry(d,p))}finally{c.endUpdate()}};Graph.prototype.deleteLane=function(a){var b=this.getModel();b.beginUpdate();try{var c=
-null,c="stackLayout"==this.getCurrentCellStyle(a).childLayout?a:b.getParent(a),d=b.getChildCells(c,!0);0==d.length?b.remove(c):(c==a&&(a=d[d.length-1]),b.remove(a))}finally{b.endUpdate()}};Graph.prototype.insertLane=function(a,b){var c=this.getModel();c.beginUpdate();try{var d=null,e=a;if("stackLayout"==this.getCurrentCellStyle(e).childLayout)var d=e,f=c.getChildCells(d,!0),e=f[b?0:f.length-1];else d=c.getParent(e);var g=d.getIndex(e),e=c.cloneCell(e,!1);e.value=null;c.add(d,e,g+(b?0:1))}finally{c.endUpdate()}};
-Graph.prototype.insertTableRow=function(a,b){var c=this.getModel();c.beginUpdate();try{var d=a,e=a;if(this.isTableCell(a))e=c.getParent(a),d=c.getParent(e);else if(this.isTableRow(a))d=c.getParent(a);else var f=c.getChildCells(d,!0),e=f[b?0:f.length-1];var g=c.getChildCells(e,!0),k=d.getIndex(e),e=c.cloneCell(e,!1);e.value=null;var h=this.getCellGeometry(e);if(null!=h){for(f=0;f<g.length;f++){a=c.cloneCell(g[f],!1);a.value=null;a.style=mxUtils.setStyle(mxUtils.setStyle(a.style,"rowspan",null),"colspan",
-null);var m=this.getCellGeometry(a);null!=m&&(null!=m.alternateBounds&&(m.width=m.alternateBounds.width,m.height=m.alternateBounds.height,m.alternateBounds=null),m.height=h.height);e.insert(a)}c.add(d,e,k+(b?0:1));var l=this.getCellGeometry(d);null!=l&&(l=l.clone(),l.height+=h.height,c.setGeometry(d,l))}}finally{c.endUpdate()}};Graph.prototype.deleteTableColumn=function(a){var b=this.getModel();b.beginUpdate();try{var c=a,d=a;this.isTableCell(a)&&(d=b.getParent(a));this.isTableRow(d)&&(c=b.getParent(d));
-var e=b.getChildCells(c,!0);if(0==e.length)b.remove(c);else{this.isTableRow(d)||(d=e[0]);var f=b.getChildCells(d,!0);if(1>=f.length)b.remove(c);else{var g=f.length-1;this.isTableCell(a)&&(g=mxUtils.indexOf(f,a));for(d=a=0;d<e.length;d++){var k=b.getChildCells(e[d],!0)[g];b.remove(k);var h=this.getCellGeometry(k);null!=h&&(a=Math.max(a,h.width))}var m=this.getCellGeometry(c);null!=m&&(m=m.clone(),m.width-=a,b.setGeometry(c,m))}}}finally{b.endUpdate()}};Graph.prototype.deleteTableRow=function(a){var b=
-this.getModel();b.beginUpdate();try{var c=a,d=a;this.isTableCell(a)&&(a=d=b.getParent(a));this.isTableRow(a)&&(c=b.getParent(d));var e=b.getChildCells(c,!0);if(1>=e.length)b.remove(c);else{this.isTableRow(d)||(d=e[e.length-1]);b.remove(d);a=0;var f=this.getCellGeometry(d);null!=f&&(a=f.height);var g=this.getCellGeometry(c);null!=g&&(g=g.clone(),g.height-=a,b.setGeometry(c,g))}}finally{b.endUpdate()}};Graph.prototype.insertRow=function(a,b){for(var c=a.tBodies[0],d=c.rows[0].cells,e=0,f=0;f<d.length;f++)var g=
-d[f].getAttribute("colspan"),e=e+(null!=g?parseInt(g):1);c=c.insertRow(b);for(f=0;f<e;f++)mxUtils.br(c.insertCell(-1));return c.cells[0]};Graph.prototype.deleteRow=function(a,b){a.tBodies[0].deleteRow(b)};Graph.prototype.insertColumn=function(a,b){var c=a.tHead;if(null!=c)for(var d=0;d<c.rows.length;d++){var e=document.createElement("th");c.rows[d].appendChild(e);mxUtils.br(e)}c=a.tBodies[0];for(d=0;d<c.rows.length;d++)e=c.rows[d].insertCell(b),mxUtils.br(e);return c.rows[0].cells[0<=b?b:c.rows[0].cells.length-
-1]};Graph.prototype.deleteColumn=function(a,b){if(0<=b)for(var c=a.tBodies[0].rows,d=0;d<c.length;d++)c[d].cells.length>b&&c[d].deleteCell(b)};Graph.prototype.pasteHtmlAtCaret=function(a){var b;if(window.getSelection){if(b=window.getSelection(),b.getRangeAt&&b.rangeCount){b=b.getRangeAt(0);b.deleteContents();var c=document.createElement("div");c.innerHTML=a;a=document.createDocumentFragment();for(var d;d=c.firstChild;)lastNode=a.appendChild(d);b.insertNode(a)}}else(b=document.selection)&&"Control"!=
-b.type&&b.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=function(a,b){function c(a,b){a.length>b&&(a=a.substring(0,Math.round(b/2))+"..."+a.substring(a.length-Math.round(b/4)));return a}a=null!=a?a:"javascript:void(0);";if(null==b||0==b.length)b=this.isCustomLink(a)?this.getLinkTitle(a):a;var d=document.createElement("a");d.setAttribute("rel",this.linkRelation);d.setAttribute("href",this.getAbsoluteUrl(a));d.setAttribute("title",c(this.isCustomLink(a)?this.getLinkTitle(a):a,80));null!=
-this.linkTarget&&d.setAttribute("target",this.linkTarget);mxUtils.write(d,c(b,40));this.isCustomLink(a)&&mxEvent.addListener(d,"click",mxUtils.bind(this,function(b){this.customLinkClicked(a);mxEvent.consume(b)}));return d};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(a,b){this.popupMenuHandler.hideMenu()});var a=this.updateMouseEvent;this.updateMouseEvent=function(b){b=
-a.apply(this,arguments);if(mxEvent.isTouchEvent(b.getEvent())&&null==b.getState()){var c=this.getCellAt(b.graphX,b.graphY);null!=c&&this.isSwimlane(c)&&this.hitsSwimlaneContent(c,b.graphX,b.graphY)||(b.state=this.view.getState(c),null!=b.state&&null!=b.state.shape&&(this.container.style.cursor=b.state.shape.node.style.cursor))}null==b.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return b};var b=!1,c=!1,d=!1,e=this.fireMouseEvent;this.fireMouseEvent=function(a,f,g){a==mxEvent.MOUSE_DOWN&&
-(f=this.updateMouseEvent(f),b=this.isCellSelected(f.getCell()),c=this.isSelectionEmpty(),d=this.popupMenuHandler.isMenuShowing());e.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,e){var f=mxEvent.isMouseEvent(e.getEvent());this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==e.getState()||!e.isSource(e.getState().control))&&(this.popupMenuHandler.popupTrigger||!d&&!f&&(c&&null==e.getCell()&&this.isSelectionEmpty()||b&&this.isCellSelected(e.getCell())));
-f=!b||f?null:mxUtils.bind(this,function(a){window.setTimeout(mxUtils.bind(this,function(){if(!this.isEditing()){var b=mxUtils.getScrollOrigin();this.popupMenuHandler.popup(e.getX()+b.x+1,e.getY()+b.y+1,a,e.getEvent())}}),500)});mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,[a,e,f])})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.isTableSelected=function(){return null!=
-this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",this.textarea)};mxCellEditor.prototype.isTextSelected=function(){var a="";window.getSelection?a=window.getSelection():document.getSelection?a=document.getSelection():document.selection&&(a=document.selection.createRange().text);return""!=a};mxCellEditor.prototype.insertTab=function(a){var b=this.textarea.ownerDocument.defaultView.getSelection(),c=b.getRangeAt(0),d="\t";if(null!=a)for(d="";0<a;)d+=" ",a--;a=document.createElement("span");
-a.style.whiteSpace="pre";a.appendChild(document.createTextNode(d));c.insertNode(a);c.setStartAfter(a);c.setEndAfter(a);b.removeAllRanges();b.addRange(c)};mxCellEditor.prototype.alignText=function(a,b){var c=null!=b&&mxEvent.isShiftDown(b);if(c||null!=window.getSelection&&null!=window.getSelection().containsNode){var d=!0;this.graph.processElements(this.textarea,function(a){c||window.getSelection().containsNode(a,!0)?(a.removeAttribute("align"),a.style.textAlign=null):d=!1});d&&this.graph.cellEditor.setAlign(a)}document.execCommand("justify"+
-a.toLowerCase(),!1,null)};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var b=[],c=0,d=a.rangeCount;c<d;++c)b.push(a.getRangeAt(c));return b}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var b=0,c=a.length;b<
-c;++b)sel.addRange(a[b])}else document.selection&&a.select&&a.select()}catch(ea){}};var u=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));u.apply(this,arguments)};var v=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,b){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?v.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=
-function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var t=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,b){a=this.graph.getStartEditingCell(a,b);t.apply(this,arguments);var c=this.graph.view.getState(a);this.textarea.className=null!=c&&1==c.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);
-var c=this.graph.getModel().getParent(a),d=this.graph.getCellGeometry(a);if(this.graph.getModel().isEdge(c)&&null!=d&&d.relative||this.graph.getModel().isEdge(a))this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var x=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function b(a,c){c.originalNode=a;a=a.firstChild;for(var d=c.firstChild;null!=a&&null!=d;)b(a,d),a=a.nextSibling,d=d.nextSibling;
-return c}function c(a,b){if(null!=a)if(b.originalNode!=a)d(a);else for(a=a.firstChild,b=b.firstChild;null!=a;){var e=a.nextSibling;null==b?d(a):(c(a,b),b=b.nextSibling);a=e}}function d(a){for(var b=a.firstChild;null!=b;){var c=b.nextSibling;d(b);b=c}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),
-a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),a.removeAttribute("border"))):a.parentNode.removeChild(a)}x.apply(this,arguments);7!==document.documentMode&&8!==document.documentMode&&mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=b(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){null!=this.textarea&&(0<=this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")||
-0<=this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>")?c(this.textarea,d):Graph.removePasteFormatting(this.textarea))}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell);if(null!=a){var b=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),c=this.saveSelection();if(this.codeViewMode){h=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<h.length&&"\n"==h.charAt(h.length-1)&&(h=h.substring(0,h.length-1));h=this.graph.sanitizeHtml(b?
-h.replace(/\n/g,"<br/>"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),f=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&
-mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,k=[];(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&k.push("underline");(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&k.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+
-"px";this.textarea.style.textDecoration=k.join(" ");this.textarea.style.fontWeight=f?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=b;this.textarea.style.textAlign=e;this.textarea.style.padding="0px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==
-this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var h=mxUtils.htmlEntities(this.textarea.innerHTML);8!=document.documentMode&&(h=mxUtils.replaceTrailingNewlines(h,"<div><br></div>"));h=this.graph.sanitizeHtml(b?h.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):h,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var d=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;
-this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.width="";this.textarea.style.padding="2px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);
-this.switchSelectionState=c;this.resize()}};var w=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,b){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=a){var c=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*c;this.bounds.height=60*c;var d=null!=a.text?a.text.margin:null;null==d&&(d=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,
-mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=d.x*this.bounds.width;this.bounds.y+=d.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-4)/c)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/c)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/c)+(this.textarea.offsetHeight-
-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*c);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/c)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*c);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+c+","+
-c+")")}else this.textarea.style.height="",this.textarea.style.overflow="",w.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,b){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var c=this.graph.getEditingValue(a.cell,b);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"<br/>"));return c=this.graph.sanitizeHtml(c,!0)};mxCellEditorGetCurrentValue=
-mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(a){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var b=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return b="1"==mxUtils.getValue(a.style,"nl2Br","1")?b.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):b.replace(/\r\n/g,"").replace(/\n/g,"")};var y=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();
-y.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(O){}};var F=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,b){this.graph.getModel().beginUpdate();try{F.apply(this,arguments),""==b&&this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)&&this.graph.isTransparentState(a)&&this.graph.removeCells([a.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=
-function(a){var b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);null!=b&&b!=mxConstants.NONE||!(null!=a.cell.geometry&&0<a.cell.geometry.width)||0==mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0)&&0!=mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)||(b=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,null));b==mxConstants.NONE&&(b=null);return b};mxCellEditor.prototype.getBorderColor=function(a){var b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BORDERCOLOR,
-null);null!=b&&b!=mxConstants.NONE||!(null!=a.cell.geometry&&0<a.cell.geometry.width)||0==mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0)&&0!=mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)||(b=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,null));b==mxConstants.NONE&&(b=null);return b};mxCellEditor.prototype.getMinimumSize=function(a){var b=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*b+20,30)};mxGraphHandlerIsValidDropTarget=mxGraphHandler.prototype.isValidDropTarget;
-mxGraphHandler.prototype.isValidDropTarget=function(a,b){return mxGraphHandlerIsValidDropTarget.apply(this,arguments)&&!mxEvent.isAltDown(b.getEvent)};mxGraphView.prototype.formatUnitText=function(a){return a?b(a,this.unit):a};mxGraphHandler.prototype.updateHint=function(c){if(null!=this.pBounds&&(null!=this.shape||this.livePreviewActive)){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var d=this.graph.view.translate,e=this.graph.view.scale;c=this.roundLength((this.bounds.x+
-this.currentDx)/e-d.x);d=this.roundLength((this.bounds.y+this.currentDy)/e-d.y);e=this.graph.view.unit;this.hint.innerHTML=b(c,e)+", "+b(d,e);this.hint.style.left=this.pBounds.x+this.currentDx+Math.round((this.pBounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+Editor.hintOffset+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};var I=mxStackLayout.prototype.resizeCell;
-mxStackLayout.prototype.resizeCell=function(a,b){I.apply(this,arguments);var c=this.graph.getCellStyle(a);if(null==c.childLayout){var d=this.graph.model.getParent(a),e=null!=d?this.graph.getCellGeometry(d):null;if(null!=e&&(c=this.graph.getCellStyle(d),"stackLayout"==c.childLayout)){var f=parseFloat(mxUtils.getValue(c,"stackBorder",mxStackLayout.prototype.border)),c="1"==mxUtils.getValue(c,"horizontalStack","1"),g=this.graph.getActualStartSize(d),e=e.clone();c?e.height=b.height+g.y+g.height+2*f:e.width=
-b.width+g.x+g.width+2*f;this.graph.model.setGeometry(d,e)}}};var A=mxSelectionCellsHandler.prototype.getHandledSelectionCells;mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function a(a){c.get(a)||(c.put(a,!0),e.push(a))}for(var b=A.apply(this,arguments),c=new mxDictionary,d=this.graph.model,e=[],f=0;f<b.length;f++){var g=b[f];this.graph.isTableCell(g)?a(d.getParent(d.getParent(g))):this.graph.isTableRow(g)&&a(d.getParent(g));a(g)}return e};var G=mxVertexHandler.prototype.createParentHighlightShape;
-mxVertexHandler.prototype.createParentHighlightShape=function(a){var b=G.apply(this,arguments);b.stroke="#C0C0C0";b.strokewidth=1;return b};var z=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(a){var b=z.apply(this,arguments);b.stroke="#C0C0C0";b.strokewidth=1;return b};mxVertexHandler.prototype.rotationHandleVSpacing=-12;mxVertexHandler.prototype.getRotationHandlePosition=function(){var a=this.getHandlePadding();return new mxPoint(this.bounds.x+
-this.bounds.width-this.rotationHandleVSpacing+a.x/2,this.bounds.y+this.rotationHandleVSpacing-a.y/2)};mxVertexHandler.prototype.isRecursiveResize=function(a,b){return this.graph.isRecursiveVertexResize(a)&&!mxEvent.isControlDown(b.getEvent())};mxVertexHandler.prototype.isCenteredEvent=function(a,b){return!(!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,
-"childLayout",null))&&mxEvent.isControlDown(b.getEvent())||mxEvent.isMetaDown(b.getEvent())};var E=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return E.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 K=mxVertexHandler.prototype.isParentHighlightVisible;mxVertexHandler.prototype.isParentHighlightVisible=function(){return K.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var L=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(a){return a.tableHandle||L.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=
-function(){var a=0;this.graph.isTableRow(this.state.cell)?a=1:this.graph.isTableCell(this.state.cell)&&(a=2);return a};var N=mxVertexHandler.prototype.getSelectionBorderBounds;mxVertexHandler.prototype.getSelectionBorderBounds=function(){return N.apply(this,arguments).grow(-this.getSelectionBorderInset())};var J=null,Q=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){null==J&&(J=mxCellRenderer.defaultShapes.tableLine);var a=Q.apply(this,arguments);
-if(this.graph.isTable(this.state.cell)){var b=function(a,b,c){for(var d=[],e=0;e<a.length;e++){var g=a[e];d.push(null==g?null:new mxPoint((h+g.x+b)*f,(m+g.y+c)*f))}return d},c=this,d=this.graph,e=d.model,f=d.view.scale,g=this.state,k=this.selectionBorder,h=this.state.origin.x+d.view.translate.x,m=this.state.origin.y+d.view.translate.y;null==a&&(a=[]);var l=d.view.getCellStates(e.getChildCells(this.state.cell,!0));if(0<l.length){for(var n=e.getChildCells(l[0].cell,!0),p=d.getTableLines(this.state.cell,
-!1,!0),r=d.getTableLines(this.state.cell,!0,!1),e=0;e<n.length;e++)mxUtils.bind(this,function(e){var h=d.view.getState(n[e]),m=d.getCellGeometry(n[e]),l=null!=m.alternateBounds?m.alternateBounds:m;null==h&&(h=new mxCellState(d.view,n[e],d.getCellStyle(n[e])),h.x=g.x+m.x*f,h.y=g.y+m.y*f,h.width=l.width*f,h.height=l.height*f,h.updateCachedBounds());var m=e<n.length-1?n[e+1]:null,m=null!=m?d.getCellGeometry(m):null,r=null!=m&&null!=m.alternateBounds?m.alternateBounds:m,m=null!=p[e]?new J(p[e],mxConstants.NONE,
-1):new mxLine(new mxRectangle,mxConstants.NONE,1,!0);m.isDashed=k.isDashed;m.svgStrokeTolerance++;h=new mxHandle(h,"col-resize",null,m);h.tableHandle=!0;var t=0;h.shape.node.parentNode.insertBefore(h.shape.node,h.shape.node.parentNode.firstChild);h.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=0==t?mxConstants.NONE:k.stroke;if(this.shape.constructor==J)this.shape.line=b(p[e],t,0),this.shape.updateBoundsFromLine();else{var a=d.getActualStartSize(g.cell,!0);this.shape.bounds.width=
-1;this.shape.bounds.x=this.state.x+(l.width+t)*f;this.shape.bounds.y=g.y+(e==n.length-1?0:a.y*f);this.shape.bounds.height=g.height-(e==n.length-1?0:(a.height+a.y)*f)}this.shape.redraw()}};var u=!1;h.setPosition=function(a,b,c){t=Math.max(Graph.minTableColumnWidth-l.width,b.x-a.x-l.width);u=mxEvent.isShiftDown(c.getEvent());null==r||u||(t=Math.min(t,r.width-Graph.minTableColumnWidth))};h.execute=function(a){if(0!=t)d.setTableColumnWidth(this.state.cell,t,u);else if(!c.blockDelayedSelection){var b=
-d.getCellAt(a.getGraphX(),a.getGraphY())||g.cell;d.graphHandler.selectCellForEvent(b,a)}t=0};h.positionChanged=function(){};h.reset=function(){t=0};a.push(h)})(e);for(e=0;e<l.length;e++)mxUtils.bind(this,function(e){var h=l[e],m=e<l.length-1?l[e+1]:null,m=null!=m?d.getCellGeometry(m.cell):null,n=null!=m&&null!=m.alternateBounds?m.alternateBounds:m,m=null!=r[e]?new J(r[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!1);m.isDashed=k.isDashed;m.svgStrokeTolerance++;h=new mxHandle(h,
-"row-resize",null,m);h.tableHandle=!0;var p=0;h.shape.node.parentNode.insertBefore(h.shape.node,h.shape.node.parentNode.firstChild);h.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=0==p?mxConstants.NONE:k.stroke;if(this.shape.constructor==J)this.shape.line=b(r[e],0,p),this.shape.updateBoundsFromLine();else{var a=d.getActualStartSize(g.cell,!0);this.shape.bounds.height=1;this.shape.bounds.y=this.state.y+this.state.height+p*f;this.shape.bounds.x=g.x+(e==l.length-1?
-0:a.x*f);this.shape.bounds.width=g.width-(e==l.length-1?0:a.width+a.x+f)}this.shape.redraw()}};var t=!1;h.setPosition=function(a,b,c){p=Math.max(Graph.minTableRowHeight-a.height,b.y-a.y-a.height);t=mxEvent.isShiftDown(c.getEvent());null!=n&&t&&(p=Math.min(p,n.height-Graph.minTableRowHeight))};h.execute=function(a){if(0!=p)d.setTableRowHeight(this.state.cell,p,!t);else if(!c.blockDelayedSelection){var b=d.getCellAt(a.getGraphX(),a.getGraphY())||g.cell;d.graphHandler.selectCellForEvent(b,a)}p=0};h.reset=
-function(){p=0};a.push(h)})(e)}}return null!=a?a.reverse():null};var X=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){X.apply(this,arguments);if(null!=this.moveHandles)for(var b=0;b<this.moveHandles.length;b++)this.moveHandles[b].style.visibility=a?"":"hidden";if(null!=this.cornerHandles)for(b=0;b<this.cornerHandles.length;b++)this.cornerHandles[b].node.style.visibility=a?"":"hidden"};mxVertexHandler.prototype.refreshMoveHandles=function(){var a=
-this.graph.model;if(null!=this.moveHandles){for(var b=0;b<this.moveHandles.length;b++)this.moveHandles[b].parentNode.removeChild(this.moveHandles[b]);this.moveHandles=null}this.moveHandles=[];for(b=0;b<a.getChildCount(this.state.cell);b++)mxUtils.bind(this,function(b){if(null!=b&&a.isVertex(b.cell)){var c=mxUtils.createImage(Editor.rowMoveImage);c.style.position="absolute";c.style.cursor="pointer";c.style.width="7px";c.style.height="4px";c.style.padding="4px 2px 4px 2px";c.rowState=b;mxEvent.addGestureListeners(c,
-mxUtils.bind(this,function(a){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);!this.graph.isToggleEvent(a)&&this.graph.isCellSelected(b.cell)||this.graph.selectCellForEvent(b.cell,a);mxEvent.isPopupTrigger(a)||(this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=mxEvent.isMouseEvent(a),this.graph.isMouseDown=!0);mxEvent.consume(a)}),null,mxUtils.bind(this,
-function(a){mxEvent.isPopupTrigger(a)&&(this.graph.popupMenuHandler.popup(mxEvent.getClientX(a),mxEvent.getClientY(a),b.cell,a),mxEvent.consume(a))}));this.moveHandles.push(c);this.graph.container.appendChild(c)}})(this.graph.view.getState(a.getChildAt(this.state.cell,b)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){for(var a=0;a<this.customHandles.length;a++)this.customHandles[a].destroy();this.customHandles=this.createCustomHandles()}this.graph.isTable(this.state.cell)&&
-this.refreshMoveHandles()};var ba=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),b=this.tolerance,c=this.state.style.shape;null==mxCellRenderer.defaultShapes[c]&&mxStencilRegistry.getStencil(c);c=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!c&&null!=this.customHandles)for(var d=0;d<this.customHandles.length;d++)if(null!=this.customHandles[d].shape&&null!=this.customHandles[d].shape.bounds){var e=
-this.customHandles[d].shape.bounds,f=e.getCenterX(),g=e.getCenterY();if(Math.abs(this.state.x-f)<e.width/2||Math.abs(this.state.y-g)<e.height/2||Math.abs(this.state.x+this.state.width-f)<e.width/2||Math.abs(this.state.y+this.state.height-g)<e.height/2){c=!0;break}}c&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(b/=2,this.graph.isTable(this.state.cell)&&(b+=7),a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b):a=ba.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=
-function(c){if(this.index!=mxEvent.LABEL_HANDLE){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));if(this.index==mxEvent.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"&deg;";else{c=this.state.view.scale;var d=this.state.view.unit;this.hint.innerHTML=b(this.roundLength(this.bounds.width/c),d)+" x "+b(this.roundLength(this.bounds.height/c),d)}c=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||
-"0");null==c&&(c=this.bounds);this.hint.style.left=c.x+Math.round((c.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=c.y+c.height+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")}};mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};var P=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(a,b){P.apply(this,arguments);null!=
-this.linkHint&&"none"!=this.linkHint.style.display&&null!=this.graph.graphHandler&&null!=this.graph.graphHandler.first&&(this.linkHint.style.display="none")};var R=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=function(a,b){R.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(c,d){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var e=
-this.graph.view.translate,f=this.graph.view.scale,g=this.roundLength(d.x/f-e.x),e=this.roundLength(d.y/f-e.y),f=this.graph.view.unit;this.hint.innerHTML=b(g,f)+", "+b(e,f);this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(g=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*g.x)+"%, "+Math.round(100*g.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility=
-"hidden");this.hint.style.left=Math.round(c.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(c.getGraphY(),d.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};Graph.prototype.expandedImage=Graph.createSvgImage(9,9,'<defs><linearGradient id="grad1" x1="50%" y1="0%" x2="50%" y2="100%"><stop offset="30%" style="stop-color:#f0f0f0;" /><stop offset="100%" style="stop-color:#AFB0B6;" /></linearGradient></defs><rect x="0" y="0" width="9" height="9" stroke="#8A94A5" fill="url(#grad1)" stroke-width="2"/><path d="M 2 4.5 L 7 4.5 z" stroke="#000"/>');
-Graph.prototype.collapsedImage=Graph.createSvgImage(9,9,'<defs><linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="30%" style="stop-color:#f0f0f0;" /><stop offset="100%" style="stop-color:#AFB0B6;" /></linearGradient></defs><rect x="0" y="0" width="9" height="9" stroke="#8A94A5" fill="url(#grad1)" stroke-width="2"/><path d="M 4.5 2 L 4.5 7 M 2 4.5 L 7 4.5 z" stroke="#000"/>');mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=
-Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>');HoverIcons.prototype.endMainHandle=Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>');HoverIcons.prototype.secondaryHandle=Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>');HoverIcons.prototype.fixedHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="#01bd22"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>');
-HoverIcons.prototype.endFixedHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="7" stroke="#fff" fill="#01bd22"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>');HoverIcons.prototype.terminalHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/><circle cx="11" cy="11" r="3" stroke="#fff" fill="transparent"/>');HoverIcons.prototype.endTerminalHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="7" stroke="#fff" fill="'+
-HoverIcons.prototype.arrowFill+'"/><circle cx="11" cy="11" r="3" stroke="#fff" fill="transparent"/>');HoverIcons.prototype.rotationHandle=Graph.createSvgImage(16,16,'<path stroke="'+HoverIcons.prototype.arrowFill+'" fill="'+HoverIcons.prototype.arrowFill+'" d="M15.55 5.55L11 1v3.07C7.06 4.56 4 7.92 4 12s3.05 7.44 7 7.93v-2.02c-2.84-.48-5-2.94-5-5.91s2.16-5.43 5-5.91V10l4.55-4.45zM19.93 11c-.17-1.39-.72-2.73-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02c1.39-.17 2.74-.71 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41c.9-1.16 1.45-2.5 1.62-3.89h-2.02c-.14.87-.48 1.72-1.02 2.48z"/>',
+Graph.prototype.getPagePadding=function(){return new mxPoint(0,0)};Graph.prototype.loadStylesheet=function(){var a=null!=this.themes?this.themes[this.defaultThemeName]:mxStyleRegistry.dynamicLoading?mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement():null;null!=a&&(new mxCodec(a.ownerDocument)).decode(a,this.getStylesheet())};Graph.prototype.createCellLookup=function(a,b){b=null!=b?b:{};for(var c=0;c<a.length;c++){var d=a[c];b[mxObjectIdentity.get(d)]=d.getId();for(var e=this.model.getChildCount(d),
+f=0;f<e;f++)this.createCellLookup([this.model.getChildAt(d,f)],b)}return b};Graph.prototype.createCellMapping=function(a,b,c){c=null!=c?c:{};for(var d in a){var e=b[d];null==c[e]&&(c[e]=a[d].getId()||"")}return c};Graph.prototype.importGraphModel=function(a,b,c,d){b=null!=b?b:0;c=null!=c?c:0;var e=new mxCodec(a.ownerDocument),f=new mxGraphModel;e.decode(a,f);a=[];var e={},g={},k=f.getChildren(this.cloneCell(f.root,this.isCloneInvalidEdges(),e));if(null!=k){var h=this.createCellLookup([f.root]),k=
+k.slice();this.model.beginUpdate();try{if(1!=k.length||this.isCellLocked(this.getDefaultParent()))for(f=0;f<k.length;f++)m=this.model.getChildren(this.moveCells([k[f]],b,c,!1,this.model.getRoot())[0]),null!=m&&(a=a.concat(m));else{var m=f.getChildren(k[0]);null!=m&&(a=this.moveCells(m,b,c,!1,this.getDefaultParent()),g[f.getChildAt(f.root,0).getId()]=this.getDefaultParent().getId())}if(null!=a&&(this.createCellMapping(e,h,g),this.updateCustomLinks(g,a),d)){this.isGridEnabled()&&(b=this.snap(b),c=this.snap(c));
+var P=this.getBoundingBoxFromGeometry(a,!0);null!=P&&this.moveCells(a,b-P.x,c-P.y)}}finally{this.model.endUpdate()}}return a};Graph.prototype.encodeCells=function(a){for(var b={},c=this.cloneCells(a,null,b),d=new mxDictionary,e=0;e<a.length;e++)d.put(a[e],!0);for(var f=new mxCodec,g=new mxGraphModel,k=g.getChildAt(g.getRoot(),0),e=0;e<c.length;e++){g.add(k,c[e]);var h=this.view.getState(a[e]);if(null!=h){var m=this.getCellGeometry(c[e]);null!=m&&m.relative&&!this.model.isEdge(a[e])&&null==d.get(this.model.getParent(a[e]))&&
+(m.offset=null,m.relative=!1,m.x=h.x/h.view.scale-h.view.translate.x,m.y=h.y/h.view.scale-h.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(b,this.createCellLookup(a)),c);return f.encode(g)};Graph.prototype.isSwimlane=function(a,b){if(null!=a&&this.model.getParent(a)!=this.model.getRoot()&&!this.model.isEdge(a)){var c=this.getCurrentCellStyle(a,b)[mxConstants.STYLE_SHAPE];return c==mxConstants.SHAPE_SWIMLANE||"table"==c}return!1};var h=Graph.prototype.isExtendParent;Graph.prototype.isExtendParent=
+function(a){var b=this.model.getParent(a);if(null!=b){var c=this.getCurrentCellStyle(b);if(null!=c.expand)return"0"!=c.expand}return h.apply(this,arguments)&&(null==b||!this.isTable(b))};var g=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(a,b,c,d,e,f,k,h){null==h&&(h=this.model.getParent(a),this.isTable(h)||this.isTableRow(h))&&(h=this.getCellAt(f,k,null,!0,!1));c=null;this.model.beginUpdate();try{c=g.apply(this,[a,b,c,d,e,f,k,h]);this.model.setValue(c,"");var m=this.getChildCells(c,
+!0);for(b=0;b<m.length;b++){var l=this.getCellGeometry(m[b]);null!=l&&l.relative&&0<l.x&&this.model.remove(m[b])}var P=this.getChildCells(a,!0);for(b=0;b<P.length;b++)l=this.getCellGeometry(P[b]),null!=l&&l.relative&&0>=l.x&&this.model.remove(P[b]);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,[a]);this.setCellStyles(mxConstants.STYLE_STARTARROW,
+mxConstants.NONE,[a]);var n=this.model.getTerminal(c,!1);if(null!=n){var V=this.getCurrentCellStyle(n);null!=V&&"1"==V.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[a]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[a]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[c]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[c]))}}finally{this.model.endUpdate()}return c};var m=Graph.prototype.selectCell;Graph.prototype.selectCell=function(a,b,c){if(b||c)m.apply(this,arguments);
+else{var d=this.getSelectionCell(),e=null,f=[],g=mxUtils.bind(this,function(b){if(null!=this.view.getState(b)&&(this.model.isVertex(b)||this.model.isEdge(b)))if(f.push(b),b==d)e=f.length-1;else if(a&&null==d&&0<f.length||null!=e&&a&&f.length>e||!a&&0<e)return;for(var c=0;c<this.model.getChildCount(b);c++)g(this.model.getChildAt(b,c))});g(this.model.root);0<f.length&&(e=null!=e?mxUtils.mod(e+(a?1:-1),f.length):0,this.setSelectionCell(f[e]))}};Graph.prototype.swapUmlLifelines=function(a,b){var c=!1;
+if(null!=b&&1==a.length){var d=this.view.getState(b),e=this.view.getState(a[0]);if(null!=d&&null!=e&&"umlLifeline"==d.style.shape&&"umlLifeline"==e.style.shape&&(e=this.getCellGeometry(b),d=this.getCellGeometry(a[0]),null!=e&&null!=d)){c=e.clone();e=d.clone();e.x=c.x;e.y=c.y;c.x=d.x;c.y=d.y;this.model.beginUpdate();try{this.model.setGeometry(b,c),this.model.setGeometry(a[0],e)}finally{this.model.endUpdate()}c=!0}}return c};var l=Graph.prototype.moveCells;Graph.prototype.moveCells=function(a,b,c,d,
+e,f,g){if(!d&&this.swapUmlLifelines(a,e))return a;g=null!=g?g:{};if(this.isTable(e)){for(var k=[],h=0;h<a.length;h++)this.isTable(a[h])?k=k.concat(this.model.getChildCells(a[h],!0).reverse()):k.push(a[h]);a=k}this.model.beginUpdate();try{k=[];for(h=0;h<a.length;h++)if(null!=e&&this.isTableRow(a[h])){var m=this.model.getParent(a[h]),P=this.getCellGeometry(a[h]);this.isTable(m)&&k.push(m);if(null!=m&&null!=P&&this.isTable(m)&&this.isTable(e)&&(d||m!=e)){if(!d){var n=this.getCellGeometry(m);null!=n&&
+(n=n.clone(),n.height-=P.height,this.model.setGeometry(m,n))}n=this.getCellGeometry(e);null!=n&&(n=n.clone(),n.height+=P.height,this.model.setGeometry(e,n));var V=this.model.getChildCells(e,!0);if(0<V.length){a[h]=d?this.cloneCell(a[h]):a[h];var p=this.model.getChildCells(a[h],!0),ca=this.model.getChildCells(V[0],!0),ea=ca.length-p.length;if(0<ea)for(var r=0;r<ea;r++){var ha=this.cloneCell(p[p.length-1]);null!=ha&&(ha.value="",this.model.add(a[h],ha))}else if(0>ea)for(r=0;r>ea;r--)this.model.remove(p[p.length+
+r-1]);p=this.model.getChildCells(a[h],!0);for(r=0;r<ca.length;r++){var u=this.getCellGeometry(ca[r]),t=this.getCellGeometry(p[r]);null!=u&&null!=t&&(t=t.clone(),t.width=u.width,this.model.setGeometry(p[r],t))}}}}for(var wa=l.apply(this,arguments),h=0;h<k.length;h++)!d&&this.model.contains(k[h])&&0==this.model.getChildCount(k[h])&&this.model.remove(k[h]);d&&this.updateCustomLinks(this.createCellMapping(g,this.createCellLookup(a)),wa)}finally{this.model.endUpdate()}return wa};var n=Graph.prototype.removeCells;
+Graph.prototype.removeCells=function(a,b){var c=[];this.model.beginUpdate();try{for(var d=0;d<a.length;d++)if(this.isTableCell(a[d])){var e=this.model.getParent(a[d]),f=this.model.getParent(e);1==this.model.getChildCount(e)&&1==this.model.getChildCount(f)?0>mxUtils.indexOf(a,f)&&0>mxUtils.indexOf(c,f)&&c.push(f):this.labelChanged(a[d],"")}else{if(this.isTableRow(a[d])&&(f=this.model.getParent(a[d]),0>mxUtils.indexOf(a,f)&&0>mxUtils.indexOf(c,f))){for(var g=this.model.getChildCells(f,!0),k=0,h=0;h<
+g.length;h++)0<=mxUtils.indexOf(a,g[h])&&k++;k==g.length&&c.push(f)}c.push(a[d])}c=n.apply(this,[c,b])}finally{this.model.endUpdate()}return c};Graph.prototype.updateCustomLinks=function(a,b,c){c=null!=c?c:new Graph;for(var d=0;d<b.length;d++)null!=b[d]&&c.updateCustomLinksForCell(a,b[d],c)};Graph.prototype.updateCustomLinksForCell=function(a,b){this.doUpdateCustomLinksForCell(a,b);for(var c=this.model.getChildCount(b),d=0;d<c;d++)this.updateCustomLinksForCell(a,this.model.getChildAt(b,d))};Graph.prototype.doUpdateCustomLinksForCell=
+function(a,b){};Graph.prototype.getAllConnectionConstraints=function(a,b){if(null!=a){var c=mxUtils.getValue(a.style,"points",null);if(null!=c){var d=[];try{for(var e=JSON.parse(c),c=0;c<e.length;c++){var f=e[c];d.push(new mxConnectionConstraint(new mxPoint(f[0],f[1]),2<f.length?"0"!=f[2]:!0,null,3<f.length?f[3]:0,4<f.length?f[4]:0))}}catch(Ba){}return d}if(null!=a.shape&&null!=a.shape.bounds){f=a.shape.direction;e=a.shape.bounds;c=a.shape.scale;d=e.width/c;e=e.height/c;if(f==mxConstants.DIRECTION_NORTH||
+f==mxConstants.DIRECTION_SOUTH)f=d,d=e,e=f;c=a.shape.getConstraints(a.style,d,e);if(null!=c)return c;if(null!=a.shape.stencil&&null!=a.shape.stencil.constraints)return a.shape.stencil.constraints;if(null!=a.shape.constraints)return a.shape.constraints}}return null};Graph.prototype.flipEdge=function(a){if(null!=a){var b=this.getCurrentCellStyle(a),b=mxUtils.getValue(b,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL;
+this.setCellStyles(mxConstants.STYLE_ELBOW,b,[a])}};Graph.prototype.isValidRoot=function(a){for(var b=this.model.getChildCount(a),c=0,d=0;d<b;d++){var e=this.model.getChildAt(a,d);this.model.isVertex(e)&&(e=this.getCellGeometry(e),null==e||e.relative||c++)}return 0<c||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a,b,c){for(var d=this.getCurrentCellStyle(a),e=!0,f=!0,g=0;g<b.length&&f;g++)e=e&&this.isTable(b[g]),f=f&&this.isTableRow(b[g]);return("1"!=mxUtils.getValue(d,"part","0")||
+this.isContainer(a))&&"0"!=mxUtils.getValue(d,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(a))&&!this.isTableRow(a)&&(!this.isTable(a)||f||e)&&!this.isCellLocked(a)};Graph.prototype.createGroupCell=function(){var a=mxGraph.prototype.createGroupCell.apply(this,arguments);a.setStyle("group");return a};Graph.prototype.isExtendParentsOnAdd=function(a){var b=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(b&&null!=a&&null!=this.layoutManager){var c=
+this.model.getParent(a);null!=c&&(c=this.layoutManager.getLayout(c),null!=c&&c.constructor==mxStackLayout&&(b=!1))}return b};Graph.prototype.getPreferredSizeForCell=function(a){var b=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=b&&(b.width+=10,b.height+=4,this.gridEnabled&&(b.width=this.snap(b.width),b.height=this.snap(b.height)));return b};Graph.prototype.turnShapes=function(a,b){var c=this.getModel(),d=[];c.beginUpdate();try{for(var e=0;e<a.length;e++){var f=a[e];if(c.isEdge(f)){var g=
+c.getTerminal(f,!0),k=c.getTerminal(f,!1);c.setTerminal(f,k,!0);c.setTerminal(f,g,!1);var h=c.getGeometry(f);if(null!=h){h=h.clone();null!=h.points&&h.points.reverse();var m=h.getTerminalPoint(!0),l=h.getTerminalPoint(!1);h.setTerminalPoint(m,!1);h.setTerminalPoint(l,!0);c.setGeometry(f,h);var n=this.view.getState(f),P=this.view.getState(g),p=this.view.getState(k);if(null!=n){var V=null!=P?this.getConnectionConstraint(n,P,!0):null,r=null!=p?this.getConnectionConstraint(n,p,!1):null;this.setConnectionConstraint(f,
+g,!0,r);this.setConnectionConstraint(f,k,!1,V);var u=mxUtils.getValue(n.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(n.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[f]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,u,[f])}d.push(f)}}else if(c.isVertex(f)&&(h=this.getCellGeometry(f),null!=h)){if(!(this.isTable(f)||this.isTableRow(f)||this.isTableCell(f)||this.isSwimlane(f))){h=h.clone();h.x+=h.width/
+2-h.height/2;h.y+=h.height/2-h.width/2;var t=h.width;h.width=h.height;h.height=t;c.setGeometry(f,h)}var v=this.view.getState(f);if(null!=v){var Q=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],G=mxUtils.getValue(v.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,Q[mxUtils.mod(mxUtils.indexOf(Q,G)+(b?-1:1),Q.length)],[f])}d.push(f)}}}finally{c.endUpdate()}return d};Graph.prototype.stencilHasPlaceholders=
+function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"==a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};var p=Graph.prototype.processChange;Graph.prototype.processChange=function(a){if(a instanceof mxGeometryChange&&(this.isTableCell(a.cell)||this.isTableRow(a.cell))&&(null==a.previous&&null!=a.geometry||null!=a.previous&&!a.previous.equals(a.geometry))){var b=a.cell;this.isTableCell(b)&&(b=this.model.getParent(b));this.isTableRow(b)&&
+(b=this.model.getParent(b));var c=this.view.getState(b);null!=c&&null!=c.shape&&(this.view.invalidate(b),c.shape.bounds=null)}p.apply(this,arguments);a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value&&this.invalidateDescendantsWithPlaceholders(a.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=function(a){a=this.model.getDescendants(a);if(0<a.length)for(var b=0;b<a.length;b++){var c=this.view.getState(a[b]);null!=c&&null!=c.shape&&null!=c.shape.stencil&&
+this.stencilHasPlaceholders(c.shape.stencil)?this.removeStateForCell(a[b]):this.isReplacePlaceholders(a[b])&&this.view.invalidate(a[b],!1,!1)}};Graph.prototype.replaceElement=function(a,b){for(var c=a.ownerDocument.createElement(null!=b?b:"span"),d=Array.prototype.slice.call(a.attributes);attr=d.pop();)c.setAttribute(attr.nodeName,attr.nodeValue);c.innerHTML=a.innerHTML;a.parentNode.replaceChild(c,a)};Graph.prototype.processElements=function(a,b){if(null!=a)for(var c=a.getElementsByTagName("*"),d=
+0;d<c.length;d++)b(c[d])};Graph.prototype.updateLabelElements=function(a,b,c){a=null!=a?a:this.getSelectionCells();for(var d=document.createElement("div"),e=0;e<a.length;e++)if(this.isHtmlLabel(a[e])){var f=this.convertValueToString(a[e]);if(null!=f&&0<f.length){d.innerHTML=f;for(var g=d.getElementsByTagName(null!=c?c:"*"),k=0;k<g.length;k++)b(g[k]);d.innerHTML!=f&&this.cellLabelChanged(a[e],d.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,b,c){b=Graph.zapGremlins(b);this.model.beginUpdate();
+try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var d=a.getAttribute("placeholder"),e=a;null!=e;){if(e==this.model.getRoot()||null!=e.value&&"object"==typeof e.value&&e.hasAttribute(d)){this.setAttributeForCell(e,d,b);break}e=this.model.getParent(e)}var f=a.value.cloneNode(!0);Graph.translateDiagram&&null!=Graph.diagramLanguage&&f.hasAttribute("label_"+Graph.diagramLanguage)?f.setAttribute("label_"+Graph.diagramLanguage,b):
+f.setAttribute("label",b);b=f}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(a){if(null!=a){for(var b=new mxDictionary,c=0;c<a.length;c++)b.put(a[c],!0);for(var d=[],c=0;c<a.length;c++){var e=this.model.getParent(a[c]);null==e||b.get(e)||(b.put(e,!0),d.push(e))}for(c=0;c<d.length;c++)if(e=this.view.getState(d[c]),null!=e&&(this.model.isEdge(e.cell)||this.model.isVertex(e.cell))&&this.isCellDeletable(e.cell)&&this.isTransparentState(e)){for(var f=
+!0,g=0;g<this.model.getChildCount(e.cell)&&f;g++)b.get(this.model.getChildAt(e.cell,g))||(f=!1);f&&a.push(e.cell)}}mxGraph.prototype.cellsRemoved.apply(this,arguments)};Graph.prototype.removeCellsAfterUngroup=function(a){for(var b=[],c=0;c<a.length;c++)this.isCellDeletable(a[c])&&this.isTransparentState(this.view.getState(a[c]))&&b.push(a[c]);a=b;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(a,b){this.setAttributeForCell(a,"link",b)};Graph.prototype.setTooltipForCell=
+function(a,b){var c="tooltip";Graph.translateDiagram&&null!=Graph.diagramLanguage&&mxUtils.isNode(a.value)&&a.value.hasAttribute("tooltip_"+Graph.diagramLanguage)&&(c="tooltip_"+Graph.diagramLanguage);this.setAttributeForCell(a,c,b)};Graph.prototype.getAttributeForCell=function(a,b,c){a=null!=a.value&&"object"===typeof a.value?a.value.getAttribute(b):null;return null!=a?a:c};Graph.prototype.setAttributeForCell=function(a,b,c){var d;null!=a.value&&"object"==typeof a.value?d=a.value.cloneNode(!0):(d=
+mxUtils.createXmlDocument().createElement("UserObject"),d.setAttribute("label",a.value||""));null!=c?d.setAttribute(b,c):d.removeAttribute(b);this.model.setValue(a,d)};var r=Graph.prototype.getDropTarget;Graph.prototype.getDropTarget=function(a,b,c,d){this.getModel();if(mxEvent.isAltDown(b))return null;for(var e=0;e<a.length;e++){var f=this.model.getParent(a[e]);if(this.model.isEdge(f)&&0>mxUtils.indexOf(a,f))return null}for(var f=r.apply(this,arguments),g=!0,e=0;e<a.length&&g;e++)g=g&&this.isTableRow(a[e]);
+g&&(this.isTableCell(f)&&(f=this.model.getParent(f)),this.isTableRow(f)&&(f=this.model.getParent(f)),this.isTable(f)||(f=null));return f};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=a.getSource()};Graph.prototype.dblClick=function(a,b){this.isEnabled()&&(b=this.insertTextForEvent(a,b),mxGraph.prototype.dblClick.call(this,a,b))};Graph.prototype.insertTextForEvent=function(a,b){var c=mxUtils.convertPoint(this.container,
+mxEvent.getClientX(a),mxEvent.getClientY(a));if(null!=a&&!this.model.isVertex(b)){var d=this.model.isEdge(b)?this.view.getState(b):null,e=mxEvent.getSource(a);this.firstClickState!=d||this.firstClickSource!=e||null!=d&&null!=d.text&&null!=d.text.node&&null!=d.text.boundingBox&&(mxUtils.contains(d.text.boundingBox,c.x,c.y)||mxUtils.isAncestorNode(d.text.node,mxEvent.getSource(a)))||(null!=d||this.isCellLocked(this.getDefaultParent()))&&(null==d||this.isCellLocked(d.cell))||!(null!=d||mxClient.IS_SVG&&
+e==this.view.getCanvas().ownerSVGElement)||(null==d&&(d=this.view.getState(this.getCellAt(c.x,c.y))),b=this.addText(c.x,c.y,d))}return b};Graph.prototype.getInsertPoint=function(){var a=this.getGridSize(),b=this.container.scrollLeft/this.view.scale-this.view.translate.x,c=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var d=this.getPageLayout(),e=this.getPageSize(),b=Math.max(b,d.x*e.width),c=Math.max(c,d.y*e.height);return new mxPoint(this.snap(b+a),this.snap(c+
+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,b=this.getGraphBounds(),c=this.getInsertPoint(),d=this.snap(Math.round(Math.max(c.x,b.x/a.scale-a.translate.x+(0==b.width?2*this.gridSize:0)))),a=this.snap(Math.round(Math.max(c.y,(b.y+b.height)/a.scale-a.translate.y+2*this.gridSize)));return new mxPoint(d,a)};Graph.prototype.getCenterInsertPoint=function(a){a=null!=a?a:new mxRectangle;return mxUtils.hasScrollbars(this.container)?new mxPoint(this.snap(Math.round((this.container.scrollLeft+
+this.container.clientWidth/2)/this.view.scale-this.view.translate.x-a.width/2)),this.snap(Math.round((this.container.scrollTop+this.container.clientHeight/2)/this.view.scale-this.view.translate.y-a.height/2))):new mxPoint(this.snap(Math.round(this.container.clientWidth/2/this.view.scale-this.view.translate.x-a.width/2)),this.snap(Math.round(this.container.clientHeight/2/this.view.scale-this.view.translate.y-a.height/2)))};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=
+function(a,b,c){var d=new mxCell;d.value="Text";d.geometry=new mxGeometry(0,0,0,0);d.vertex=!0;if(null!=c&&this.model.isEdge(c.cell)){d.style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];";d.geometry.relative=!0;d.connectable=!1;var e=this.view.getRelativePoint(c,a,b);d.geometry.x=Math.round(1E4*e.x)/1E4;d.geometry.y=Math.round(e.y);d.geometry.offset=new mxPoint(0,0);var e=this.view.getPoint(c,d.geometry),f=this.view.scale;d.geometry.offset=new mxPoint(Math.round((a-e.x)/
+f),Math.round((b-e.y)/f))}else e=this.view.translate,d.style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];",d.geometry.width=40,d.geometry.height=20,d.geometry.x=Math.round(a/this.view.scale)-e.x-(null!=c?c.origin.x:0),d.geometry.y=Math.round(b/this.view.scale)-e.y-(null!=c?c.origin.y:0),d.style+="autosize=1;";this.getModel().beginUpdate();try{this.addCells([d],null!=c?c.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[d])),this.autoSizeCell(d)}finally{this.getModel().endUpdate()}return d};
+Graph.prototype.addClickHandler=function(a,b,c){var d=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var c=0;c<a.length;c++){var d=this.getAbsoluteUrl(a[c].getAttribute("href"));null!=d&&(a[c].setAttribute("rel",this.linkRelation),a[c].setAttribute("href",d),null!=b&&mxEvent.addGestureListeners(a[c],null,null,b))}});this.model.addListener(mxEvent.CHANGE,d);d();var e=this.container.style.cursor,f=this.getTolerance(),g=this,k={currentState:null,currentLink:null,
+currentTarget:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){var b=a.sourceState;if(null==b||null==g.getLinkForCell(b.cell))a=g.getCellAt(a.getGraphX(),a.getGraphY(),null,null,null,function(a,b,c){return null==g.getLinkForCell(a.cell)}),b=null==b||g.model.isAncestor(a,b.cell)?g.view.getState(a):null;b!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=b,null!=this.currentState&&
+this.activate(this.currentState))},mouseDown:function(a,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor="move");this.updateCurrentState(b)},mouseMove:function(a,b){if(g.isMouseDown){if(null!=this.currentLink){var c=Math.abs(this.startX-b.getGraphX()),d=Math.abs(this.startY-b.getGraphY());(c>f||d>f)&&this.clear()}}else{for(c=b.getSource();null!=
+c&&"a"!=c.nodeName.toLowerCase();)c=c.parentNode;null!=c?this.clear():(null!=g.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&g.tooltipHandler.reset(b,!0,this.currentState),(null==this.currentState||b.getState()!=this.currentState&&null!=b.sourceState||!g.intersects(this.currentState,b.getGraphX(),b.getGraphY()))&&this.updateCurrentState(b))}},mouseUp:function(a,d){for(var e=d.getSource(),k=d.getEvent();null!=e&&"a"!=e.nodeName.toLowerCase();)e=e.parentNode;null==e&&Math.abs(this.scrollLeft-
+g.container.scrollLeft)<f&&Math.abs(this.scrollTop-g.container.scrollTop)<f&&(null==d.sourceState||!d.isSource(d.sourceState.control))&&((mxEvent.isLeftMouseButton(k)||mxEvent.isMiddleMouseButton(k))&&!mxEvent.isPopupTrigger(k)||mxEvent.isTouchEvent(k))&&(null!=this.currentLink?(e=g.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&e||null==b||b(k,this.currentLink),mxEvent.isConsumed(k)||(k=null!=this.currentTarget?this.currentTarget:mxEvent.isMiddleMouseButton(k)?"_blank":
+e?g.linkTarget:"_top",g.openLink(this.currentLink,k),d.consume())):null!=c&&!d.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<f&&Math.abs(this.scrollTop-g.container.scrollTop)<f&&Math.abs(this.startX-d.getGraphX())<f&&Math.abs(this.startY-d.getGraphY())<f&&c(d.getEvent()));this.clear()},activate:function(a){this.currentLink=g.getAbsoluteUrl(g.getLinkForCell(a.cell));null!=this.currentLink&&(this.currentTarget=g.getLinkTargetForCell(a.cell),g.container.style.cursor="pointer",null!=
+this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=e);this.currentLink=this.currentState=this.currentTarget=null;null!=this.highlight&&this.highlight.hide();null!=g.tooltipHandler&&g.tooltipHandler.hide()}};g.click=function(a){};g.addMouseListener(k);mxEvent.addListener(document,"mouseleave",function(a){k.clear()})};Graph.prototype.duplicateCells=function(a,b){a=null!=a?a:this.getSelectionCells();b=null!=b?b:!0;for(var c=0;c<a.length;c++)this.isTableCell(a[c])&&
+(a[c]=this.model.getParent(a[c]));a=this.model.getTopmostCells(a);var d=this.getModel(),e=this.gridSize,f=[];d.beginUpdate();try{for(var g={},k=this.createCellLookup(a),h=this.cloneCells(a,!1,g,!0),c=0;c<a.length;c++){var m=d.getParent(a[c]);if(null!=m){var l=this.moveCells([h[c]],e,e,!1)[0];f.push(l);if(b)d.add(m,h[c]);else{var n=m.getIndex(a[c]);d.add(m,h[c],n+1)}if(this.isTable(m)){var P=this.getCellGeometry(h[c]),p=this.getCellGeometry(m);null!=P&&null!=p&&(p=p.clone(),p.height+=P.height,d.setGeometry(m,
+p))}}else f.push(h[c])}this.updateCustomLinks(this.createCellMapping(g,k),h,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",h))}finally{d.endUpdate()}return f};Graph.prototype.insertImage=function(a,b,c){if(null!=a&&null!=this.cellEditor.textarea){for(var d=this.cellEditor.textarea.getElementsByTagName("img"),e=[],f=0;f<d.length;f++)e.push(d[f]);document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==e.length+1)for(f=a.length-
+1;0<=f;f--)if(0==f||a[f]!=e[f-1]){a[f].setAttribute("width",b);a[f].setAttribute("height",c);break}}};Graph.prototype.insertLink=function(a){if(null!=this.cellEditor.textarea)if(0==a.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var b=this.cellEditor.textarea.getElementsByTagName("a"),c=[],d=0;d<b.length;d++)c.push(b[d]);document.execCommand("createlink",!1,mxUtils.trim(a));b=this.cellEditor.textarea.getElementsByTagName("a");if(b.length==c.length+1)for(d=b.length-1;0<=d;d--)if(b[d]!=
+c[d-1]){for(b=b[d].getElementsByTagName("a");0<b.length;){for(c=b[0].parentNode;null!=b[0].firstChild;)c.insertBefore(b[0].firstChild,b[0]);c.removeChild(b[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=function(a){var b=mxGraph.prototype.isCellResizable.apply(this,arguments),c=this.getCurrentCellStyle(a);return!this.isTableCell(a)&&!this.isTableRow(a)&&(b||"0"!=mxUtils.getValue(c,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==c[mxConstants.STYLE_WHITE_SPACE])};
+Graph.prototype.distributeCells=function(a,b){null==b&&(b=this.getSelectionCells());if(null!=b&&1<b.length){for(var c=[],d=null,e=null,f=0;f<b.length;f++)if(this.getModel().isVertex(b[f])){var g=this.view.getState(b[f]);if(null!=g){var k=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,k):k,e=null!=e?Math.min(e,k):k;c.push(g)}}if(2<c.length){c.sort(function(b,c){return a?b.x-c.x:b.y-c.y});g=this.view.translate;k=this.view.scale;e=e/k-(a?g.x:g.y);d=d/k-(a?g.x:g.y);this.getModel().beginUpdate();
+try{for(var h=(d-e)/(c.length-1),d=e,f=1;f<c.length-1;f++){var m=this.view.getState(this.model.getParent(c[f].cell)),l=this.getCellGeometry(c[f].cell),d=d+h;null!=l&&null!=m&&(l=l.clone(),a?l.x=Math.round(d-l.width/2)-m.origin.x:l.y=Math.round(d-l.height/2)-m.origin.y,this.getModel().setGeometry(c[f].cell,l))}}finally{this.getModel().endUpdate()}}}return b};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.createSvgImageExport=
+function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,b){return this.getLinkForCell(a.cell)});return a};Graph.prototype.parseBackgroundImage=function(a){var b=null;null!=a&&0<a.length&&(a=JSON.parse(a),b=new mxImage(a.src,a.width,a.height));return b};Graph.prototype.getBackgroundImageObject=function(a){return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g,k,h,m,l,n,p,r){var P=null;if(null!=r)for(P=new mxDictionary,l=0;l<r.length;l++)P.put(r[l],!0);if(r=this.useCssTransforms)this.useCssTransforms=
+!1,this.view.revalidate(),this.sizeDidChange();try{b=null!=b?b:1;c=null!=c?c:0;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;m=null!=m?m:!1;var V="page"==p?this.view.getBackgroundPageBounds():f&&null==P||d||"diagram"==p?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),ca=this.view.scale;"diagram"==p&&null!=this.backgroundImage&&(V=mxRectangle.fromRectangle(V),V.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*ca,(this.view.translate.y+this.backgroundImage.y)*ca,
+this.backgroundImage.width*ca,this.backgroundImage.height*ca)));if(null==V)throw Error(mxResources.get("drawingEmpty"));var u=mxUtils.createXmlDocument(),t=null!=u.createElementNS?u.createElementNS(mxConstants.NS_SVG,"svg"):u.createElement("svg");null!=a&&(null!=t.style?t.style.backgroundColor=a:t.setAttribute("style","background-color:"+a));null==u.createElementNS?(t.setAttribute("xmlns",mxConstants.NS_SVG),t.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):t.setAttributeNS("http://www.w3.org/2000/xmlns/",
+"xmlns:xlink",mxConstants.NS_XLINK);a=b/ca;var v=Math.max(1,Math.ceil(V.width*a)+2*c)+(m&&0==c?5:0),ea=Math.max(1,Math.ceil(V.height*a)+2*c)+(m&&0==c?5:0);t.setAttribute("version","1.1");t.setAttribute("width",v+"px");t.setAttribute("height",ea+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+v+" "+ea);u.appendChild(t);var ha=null!=u.createElementNS?u.createElementNS(mxConstants.NS_SVG,"g"):u.createElement("g");t.appendChild(ha);var Q=this.createSvgCanvas(ha);Q.foOffset=e?-.5:0;Q.textOffset=
+e?-.5:0;Q.imageOffset=e?-.5:0;Q.translate(Math.floor(c/b-V.x/ca),Math.floor(c/b-V.y/ca));var G=document.createElement("div"),x=Q.getAlternateText;Q.getAlternateText=function(a,b,c,d,e,f,g,k,h,m,l,n,q){if(null!=f&&0<this.state.fontSize)try{mxUtils.isNode(f)?f=f.innerText:(G.innerHTML=f,f=mxUtils.extractTextWithWhitespace(G.childNodes));for(var D=Math.ceil(2*d/this.state.fontSize),B=[],C=0,H=0;(0==D||C<D)&&H<f.length;){var Da=f.charCodeAt(H);if(10==Da||13==Da){if(0<C)break}else B.push(f.charAt(H)),
+255>Da&&C++;H++}B.length<f.length&&1<f.length-B.length&&(f=mxUtils.trim(B.join(""))+"...");return f}catch(db){return x.apply(this,arguments)}else return x.apply(this,arguments)};var y=this.backgroundImage;if(null!=y){b=ca/b;var A=this.view.translate,w=new mxRectangle((y.x+A.x)*b,(y.y+A.y)*b,y.width*b,y.height*b);mxUtils.intersects(V,w)&&Q.image(y.x+A.x,y.y+A.y,y.width,y.height,y.src,!0)}Q.scale(a);Q.textEnabled=g;k=null!=k?k:this.createSvgImageExport();var F=k.drawCellState,z=k.getLinkForCellState;
+k.getLinkForCellState=function(a,b){var c=z.apply(this,arguments);return null==c||a.view.graph.isCustomLink(c)?null:c};k.getLinkTargetForCellState=function(a,b){return a.view.graph.getLinkTargetForCell(a.cell)};k.drawCellState=function(a,b){for(var c=a.view.graph,d=null!=P?P.get(a.cell):c.isCellSelected(a.cell),e=c.model.getParent(a.cell);!(f&&null==P||d)&&null!=e;)d=null!=P?P.get(e):c.isCellSelected(e),e=c.model.getParent(e);(f&&null==P||d)&&F.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),
+Q);this.updateSvgLinks(t,h,!0);this.addForeignObjectWarning(Q,t);return t}finally{r&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(a,b){if("0"!=urlParams["svg-warning"]&&0<b.getElementsByTagName("foreignObject").length){var c=a.createElement("switch"),d=a.createElement("g");d.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var e=a.createElement("a");e.setAttribute("transform","translate(0,-5)");
+null==e.setAttributeNS||b.ownerDocument!=document&&null==document.documentMode?(e.setAttribute("xlink:href",Graph.foreignObjectWarningLink),e.setAttribute("target","_blank")):(e.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",Graph.foreignObjectWarningLink),e.setAttributeNS(mxConstants.NS_XLINK,"target","_blank"));var f=a.createElement("text");f.setAttribute("text-anchor","middle");f.setAttribute("font-size","10px");f.setAttribute("x","50%");f.setAttribute("y","100%");mxUtils.write(f,Graph.foreignObjectWarningText);
+c.appendChild(d);e.appendChild(f);c.appendChild(e);b.appendChild(c)}};Graph.prototype.updateSvgLinks=function(a,b,c){a=a.getElementsByTagName("a");for(var d=0;d<a.length;d++)if(null==a[d].getAttribute("target")){var e=a[d].getAttribute("href");null==e&&(e=a[d].getAttribute("xlink:href"));null!=e&&(null!=b&&/^https?:\/\//.test(e)?a[d].setAttribute("target",b):c&&this.isCustomLink(e)&&a[d].setAttribute("href","javascript:void(0);"))}};Graph.prototype.createSvgCanvas=function(a){a=new mxSvgCanvas2D(a);
+a.pointerEvents=!0;return a};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var b=window.getSelection();b.getRangeAt&&b.rangeCount&&(a=b.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());return a};Graph.prototype.getSelectedEditingElement=function(){for(var a=this.getSelectedElement();null!=a&&a.nodeType!=mxConstants.NODETYPE_ELEMENT;)a=a.parentNode;null!=a&&a==this.cellEditor.textarea&&1==this.cellEditor.textarea.children.length&&
+this.cellEditor.textarea.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=this.cellEditor.textarea.firstChild);return a};Graph.prototype.getParentByName=function(a,b,c){for(;null!=a&&a.nodeName!=b;){if(a==c)return null;a=a.parentNode}return a};Graph.prototype.getParentByNames=function(a,b,c){for(;null!=a&&!(0<=mxUtils.indexOf(b,a.nodeName));){if(a==c)return null;a=a.parentNode}return a};Graph.prototype.selectNode=function(a){var b=null;if(window.getSelection){if(b=window.getSelection(),b.getRangeAt&&
+b.rangeCount){var c=document.createRange();c.selectNode(a);b.removeAllRanges();b.addRange(c)}}else(b=document.selection)&&"Control"!=b.type&&(a=b.createRange(),a.collapse(!0),c=b.createRange(),c.setEndPoint("StartToStart",a),c.select())};Graph.prototype.deleteCells=function(a,b){var c=null;if(null!=a&&0<a.length){this.model.beginUpdate();try{for(var d=0;d<a.length;d++){var e=this.model.getParent(a[d]);if(this.isTable(e)){var f=this.getCellGeometry(a[d]),g=this.getCellGeometry(e);null!=f&&null!=g&&
+(g=g.clone(),g.height-=f.height,this.model.setGeometry(e,g))}}var k=this.selectParentAfterDelete?this.model.getParents(a):null;this.removeCells(a,b)}finally{this.model.endUpdate()}if(null!=k)for(c=[],d=0;d<k.length;d++)this.model.contains(k[d])&&(this.model.isVertex(k[d])||this.model.isEdge(k[d]))&&c.push(k[d])}return c};Graph.prototype.insertTableColumn=function(a,b){var c=this.getModel();c.beginUpdate();try{var d=a,e=0;if(this.isTableCell(a))var f=c.getParent(a),d=c.getParent(f),e=mxUtils.indexOf(c.getChildCells(f,
+!0),a);else this.isTableRow(a)?d=c.getParent(a):a=c.getChildCells(d,!0)[0],b||(e=c.getChildCells(a,!0).length-1);for(var g=c.getChildCells(d,!0),k=Graph.minTableColumnWidth,f=0;f<g.length;f++){var h=c.getChildCells(g[f],!0)[e],m=c.cloneCell(h,!1),l=this.getCellGeometry(m);m.value=null;m.style=mxUtils.setStyle(mxUtils.setStyle(m.style,"rowspan",null),"colspan",null);if(null!=l){null!=l.alternateBounds&&(l.width=l.alternateBounds.width,l.height=l.alternateBounds.height,l.alternateBounds=null);var k=
+l.width,n=this.getCellGeometry(g[f]);null!=n&&(l.height=n.height)}c.add(g[f],m,e+(b?0:1))}var p=this.getCellGeometry(d);null!=p&&(p=p.clone(),p.width+=k,c.setGeometry(d,p))}finally{c.endUpdate()}};Graph.prototype.deleteLane=function(a){var b=this.getModel();b.beginUpdate();try{var c=null,c="stackLayout"==this.getCurrentCellStyle(a).childLayout?a:b.getParent(a),d=b.getChildCells(c,!0);0==d.length?b.remove(c):(c==a&&(a=d[d.length-1]),b.remove(a))}finally{b.endUpdate()}};Graph.prototype.insertLane=function(a,
+b){var c=this.getModel();c.beginUpdate();try{var d=null,e=a;if("stackLayout"==this.getCurrentCellStyle(e).childLayout)var d=e,f=c.getChildCells(d,!0),e=f[b?0:f.length-1];else d=c.getParent(e);var g=d.getIndex(e),e=c.cloneCell(e,!1);e.value=null;c.add(d,e,g+(b?0:1))}finally{c.endUpdate()}};Graph.prototype.insertTableRow=function(a,b){var c=this.getModel();c.beginUpdate();try{var d=a,e=a;if(this.isTableCell(a))e=c.getParent(a),d=c.getParent(e);else if(this.isTableRow(a))d=c.getParent(a);else var f=
+c.getChildCells(d,!0),e=f[b?0:f.length-1];var g=c.getChildCells(e,!0),k=d.getIndex(e),e=c.cloneCell(e,!1);e.value=null;var h=this.getCellGeometry(e);if(null!=h){for(f=0;f<g.length;f++){a=c.cloneCell(g[f],!1);a.value=null;a.style=mxUtils.setStyle(mxUtils.setStyle(a.style,"rowspan",null),"colspan",null);var m=this.getCellGeometry(a);null!=m&&(null!=m.alternateBounds&&(m.width=m.alternateBounds.width,m.height=m.alternateBounds.height,m.alternateBounds=null),m.height=h.height);e.insert(a)}c.add(d,e,k+
+(b?0:1));var l=this.getCellGeometry(d);null!=l&&(l=l.clone(),l.height+=h.height,c.setGeometry(d,l))}}finally{c.endUpdate()}};Graph.prototype.deleteTableColumn=function(a){var b=this.getModel();b.beginUpdate();try{var c=a,d=a;this.isTableCell(a)&&(d=b.getParent(a));this.isTableRow(d)&&(c=b.getParent(d));var e=b.getChildCells(c,!0);if(0==e.length)b.remove(c);else{this.isTableRow(d)||(d=e[0]);var f=b.getChildCells(d,!0);if(1>=f.length)b.remove(c);else{var g=f.length-1;this.isTableCell(a)&&(g=mxUtils.indexOf(f,
+a));for(d=a=0;d<e.length;d++){var k=b.getChildCells(e[d],!0)[g];b.remove(k);var h=this.getCellGeometry(k);null!=h&&(a=Math.max(a,h.width))}var m=this.getCellGeometry(c);null!=m&&(m=m.clone(),m.width-=a,b.setGeometry(c,m))}}}finally{b.endUpdate()}};Graph.prototype.deleteTableRow=function(a){var b=this.getModel();b.beginUpdate();try{var c=a,d=a;this.isTableCell(a)&&(a=d=b.getParent(a));this.isTableRow(a)&&(c=b.getParent(d));var e=b.getChildCells(c,!0);if(1>=e.length)b.remove(c);else{this.isTableRow(d)||
+(d=e[e.length-1]);b.remove(d);a=0;var f=this.getCellGeometry(d);null!=f&&(a=f.height);var g=this.getCellGeometry(c);null!=g&&(g=g.clone(),g.height-=a,b.setGeometry(c,g))}}finally{b.endUpdate()}};Graph.prototype.insertRow=function(a,b){for(var c=a.tBodies[0],d=c.rows[0].cells,e=0,f=0;f<d.length;f++)var g=d[f].getAttribute("colspan"),e=e+(null!=g?parseInt(g):1);c=c.insertRow(b);for(f=0;f<e;f++)mxUtils.br(c.insertCell(-1));return c.cells[0]};Graph.prototype.deleteRow=function(a,b){a.tBodies[0].deleteRow(b)};
+Graph.prototype.insertColumn=function(a,b){var c=a.tHead;if(null!=c)for(var d=0;d<c.rows.length;d++){var e=document.createElement("th");c.rows[d].appendChild(e);mxUtils.br(e)}c=a.tBodies[0];for(d=0;d<c.rows.length;d++)e=c.rows[d].insertCell(b),mxUtils.br(e);return c.rows[0].cells[0<=b?b:c.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,b){if(0<=b)for(var c=a.tBodies[0].rows,d=0;d<c.length;d++)c[d].cells.length>b&&c[d].deleteCell(b)};Graph.prototype.pasteHtmlAtCaret=function(a){var b;
+if(window.getSelection){if(b=window.getSelection(),b.getRangeAt&&b.rangeCount){b=b.getRangeAt(0);b.deleteContents();var c=document.createElement("div");c.innerHTML=a;a=document.createDocumentFragment();for(var d;d=c.firstChild;)lastNode=a.appendChild(d);b.insertNode(a)}}else(b=document.selection)&&"Control"!=b.type&&b.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=function(a,b){function c(a,b){a.length>b&&(a=a.substring(0,Math.round(b/2))+"..."+a.substring(a.length-Math.round(b/4)));
+return a}a=null!=a?a:"javascript:void(0);";if(null==b||0==b.length)b=this.isCustomLink(a)?this.getLinkTitle(a):a;var d=document.createElement("a");d.setAttribute("rel",this.linkRelation);d.setAttribute("href",this.getAbsoluteUrl(a));d.setAttribute("title",c(this.isCustomLink(a)?this.getLinkTitle(a):a,80));null!=this.linkTarget&&d.setAttribute("target",this.linkTarget);mxUtils.write(d,c(b,40));this.isCustomLink(a)&&mxEvent.addListener(d,"click",mxUtils.bind(this,function(b){this.customLinkClicked(a);
+mxEvent.consume(b)}));return d};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(a,b){this.popupMenuHandler.hideMenu()});var a=this.updateMouseEvent;this.updateMouseEvent=function(b){b=a.apply(this,arguments);if(mxEvent.isTouchEvent(b.getEvent())&&null==b.getState()){var c=this.getCellAt(b.graphX,b.graphY);null!=c&&this.isSwimlane(c)&&this.hitsSwimlaneContent(c,b.graphX,
+b.graphY)||(b.state=this.view.getState(c),null!=b.state&&null!=b.state.shape&&(this.container.style.cursor=b.state.shape.node.style.cursor))}null==b.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return b};var b=!1,c=!1,d=!1,e=this.fireMouseEvent;this.fireMouseEvent=function(a,f,g){a==mxEvent.MOUSE_DOWN&&(f=this.updateMouseEvent(f),b=this.isCellSelected(f.getCell()),c=this.isSelectionEmpty(),d=this.popupMenuHandler.isMenuShowing());e.apply(this,arguments)};this.popupMenuHandler.mouseUp=
+mxUtils.bind(this,function(a,e){var f=mxEvent.isMouseEvent(e.getEvent());this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==e.getState()||!e.isSource(e.getState().control))&&(this.popupMenuHandler.popupTrigger||!d&&!f&&(c&&null==e.getCell()&&this.isSelectionEmpty()||b&&this.isCellSelected(e.getCell())));f=!b||f?null:mxUtils.bind(this,function(a){window.setTimeout(mxUtils.bind(this,function(){if(!this.isEditing()){var b=mxUtils.getScrollOrigin();this.popupMenuHandler.popup(e.getX()+
+b.x+1,e.getY()+b.y+1,a,e.getEvent())}}),500)});mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,[a,e,f])})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.isTableSelected=function(){return null!=this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",this.textarea)};mxCellEditor.prototype.isTextSelected=function(){var a="";window.getSelection?a=window.getSelection():
+document.getSelection?a=document.getSelection():document.selection&&(a=document.selection.createRange().text);return""!=a};mxCellEditor.prototype.insertTab=function(a){var b=this.textarea.ownerDocument.defaultView.getSelection(),c=b.getRangeAt(0),d="\t";if(null!=a)for(d="";0<a;)d+=" ",a--;a=document.createElement("span");a.style.whiteSpace="pre";a.appendChild(document.createTextNode(d));c.insertNode(a);c.setStartAfter(a);c.setEndAfter(a);b.removeAllRanges();b.addRange(c)};mxCellEditor.prototype.alignText=
+function(a,b){var c=null!=b&&mxEvent.isShiftDown(b);if(c||null!=window.getSelection&&null!=window.getSelection().containsNode){var d=!0;this.graph.processElements(this.textarea,function(a){c||window.getSelection().containsNode(a,!0)?(a.removeAttribute("align"),a.style.textAlign=null):d=!1});d&&this.graph.cellEditor.setAlign(a)}document.execCommand("justify"+a.toLowerCase(),!1,null)};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&
+a.rangeCount){for(var b=[],c=0,d=a.rangeCount;c<d;++c)b.push(a.getRangeAt(c));return b}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var b=0,c=a.length;b<c;++b)sel.addRange(a[b])}else document.selection&&a.select&&a.select()}catch(ea){}};var u=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=
+function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));u.apply(this,arguments)};var v=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,b){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?v.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var t=mxCellEditor.prototype.startEditing;
+mxCellEditor.prototype.startEditing=function(a,b){a=this.graph.getStartEditingCell(a,b);t.apply(this,arguments);var c=this.graph.view.getState(a);this.textarea.className=null!=c&&1==c.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var c=this.graph.getModel().getParent(a),d=this.graph.getCellGeometry(a);if(this.graph.getModel().isEdge(c)&&null!=d&&d.relative||this.graph.getModel().isEdge(a))this.textarea.style.outline=
+mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var x=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function b(a,c){c.originalNode=a;a=a.firstChild;for(var d=c.firstChild;null!=a&&null!=d;)b(a,d),a=a.nextSibling,d=d.nextSibling;return c}function c(a,b){if(null!=a)if(b.originalNode!=a)d(a);else for(a=a.firstChild,b=b.firstChild;null!=a;){var e=a.nextSibling;null==b?d(a):(c(a,b),b=b.nextSibling);a=e}}function d(a){for(var b=
+a.firstChild;null!=b;){var c=b.nextSibling;d(b);b=c}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),a.removeAttribute("border"))):a.parentNode.removeChild(a)}x.apply(this,arguments);
+7!==document.documentMode&&8!==document.documentMode&&mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=b(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){null!=this.textarea&&(0<=this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")||0<=this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>")?c(this.textarea,d):Graph.removePasteFormatting(this.textarea))}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell);
+if(null!=a){var b=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),c=this.saveSelection();if(this.codeViewMode){h=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<h.length&&"\n"==h.charAt(h.length-1)&&(h=h.substring(0,h.length-1));h=this.graph.sanitizeHtml(b?h.replace(/\n/g,"<br/>"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,
+mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),f=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,k=[];(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&k.push("underline");(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,
+0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&k.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration=k.join(" ");this.textarea.style.fontWeight=f?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=b;this.textarea.style.textAlign=e;this.textarea.style.padding=
+"0px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var h=mxUtils.htmlEntities(this.textarea.innerHTML);8!=document.documentMode&&(h=mxUtils.replaceTrailingNewlines(h,"<div><br></div>"));h=this.graph.sanitizeHtml(b?
+h.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):h,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var d=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;
+this.textarea.style.textAlign="left";this.textarea.style.width="";this.textarea.style.padding="2px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=c;this.resize()}};var w=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,b){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=
+a){var c=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*c;this.bounds.height=60*c;var d=null!=a.text?a.text.margin:null;null==d&&(d=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=d.x*this.bounds.width;this.bounds.y+=d.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-
+4)/c)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/c)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/c)+(this.textarea.offsetHeight-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*c);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/c)+(this.textarea.offsetWidth-this.textarea.clientWidth)+
+"px",this.bounds.width=parseInt(this.textarea.style.width)*c);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+c+","+c+")")}else this.textarea.style.height="",this.textarea.style.overflow="",w.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,b){if("0"==mxUtils.getValue(a.style,"html",
+"0"))return mxCellEditorGetInitialValue.apply(this,arguments);var c=this.graph.getEditingValue(a.cell,b);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"<br/>"));return c=this.graph.sanitizeHtml(c,!0)};mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(a){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var b=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return b=
+"1"==mxUtils.getValue(a.style,"nl2Br","1")?b.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):b.replace(/\r\n/g,"").replace(/\n/g,"")};var y=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();y.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(P){}};var E=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,b){this.graph.getModel().beginUpdate();
+try{E.apply(this,arguments),""==b&&this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)&&this.graph.isTransparentState(a)&&this.graph.removeCells([a.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);null!=b&&b!=mxConstants.NONE||!(null!=a.cell.geometry&&0<a.cell.geometry.width)||0==mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0)&&0!=
+mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)||(b=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,null));b==mxConstants.NONE&&(b=null);return b};mxCellEditor.prototype.getBorderColor=function(a){var b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BORDERCOLOR,null);null!=b&&b!=mxConstants.NONE||!(null!=a.cell.geometry&&0<a.cell.geometry.width)||0==mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0)&&0!=mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)||(b=mxUtils.getValue(a.style,
+mxConstants.STYLE_STROKECOLOR,null));b==mxConstants.NONE&&(b=null);return b};mxCellEditor.prototype.getMinimumSize=function(a){var b=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*b+20,30)};mxGraphHandlerIsValidDropTarget=mxGraphHandler.prototype.isValidDropTarget;mxGraphHandler.prototype.isValidDropTarget=function(a,b){return mxGraphHandlerIsValidDropTarget.apply(this,arguments)&&!mxEvent.isAltDown(b.getEvent)};mxGraphView.prototype.formatUnitText=function(a){return a?
+b(a,this.unit):a};mxGraphHandler.prototype.updateHint=function(c){if(null!=this.pBounds&&(null!=this.shape||this.livePreviewActive)){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var d=this.graph.view.translate,e=this.graph.view.scale;c=this.roundLength((this.bounds.x+this.currentDx)/e-d.x);d=this.roundLength((this.bounds.y+this.currentDy)/e-d.y);e=this.graph.view.unit;this.hint.innerHTML=b(c,e)+", "+b(d,e);this.hint.style.left=this.pBounds.x+this.currentDx+Math.round((this.pBounds.width-
+this.hint.clientWidth)/2)+"px";this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+Editor.hintOffset+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};var I=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell=function(a,b){I.apply(this,arguments);var c=this.graph.getCellStyle(a);if(null==c.childLayout){var d=this.graph.model.getParent(a),e=null!=d?this.graph.getCellGeometry(d):null;
+if(null!=e&&(c=this.graph.getCellStyle(d),"stackLayout"==c.childLayout)){var f=parseFloat(mxUtils.getValue(c,"stackBorder",mxStackLayout.prototype.border)),c="1"==mxUtils.getValue(c,"horizontalStack","1"),g=this.graph.getActualStartSize(d),e=e.clone();c?e.height=b.height+g.y+g.height+2*f:e.width=b.width+g.x+g.width+2*f;this.graph.model.setGeometry(d,e)}}};var A=mxSelectionCellsHandler.prototype.getHandledSelectionCells;mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function a(a){c.get(a)||
+(c.put(a,!0),e.push(a))}for(var b=A.apply(this,arguments),c=new mxDictionary,d=this.graph.model,e=[],f=0;f<b.length;f++){var g=b[f];this.graph.isTableCell(g)?a(d.getParent(d.getParent(g))):this.graph.isTableRow(g)&&a(d.getParent(g));a(g)}return e};var F=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(a){var b=F.apply(this,arguments);b.stroke="#C0C0C0";b.strokewidth=1;return b};var z=mxEdgeHandler.prototype.createParentHighlightShape;
+mxEdgeHandler.prototype.createParentHighlightShape=function(a){var b=z.apply(this,arguments);b.stroke="#C0C0C0";b.strokewidth=1;return b};mxVertexHandler.prototype.rotationHandleVSpacing=-12;mxVertexHandler.prototype.getRotationHandlePosition=function(){var a=this.getHandlePadding();return new mxPoint(this.bounds.x+this.bounds.width-this.rotationHandleVSpacing+a.x/2,this.bounds.y+this.rotationHandleVSpacing-a.y/2)};mxVertexHandler.prototype.isRecursiveResize=function(a,b){return this.graph.isRecursiveVertexResize(a)&&
+!mxEvent.isControlDown(b.getEvent())};mxVertexHandler.prototype.isCenteredEvent=function(a,b){return!(!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null))&&mxEvent.isControlDown(b.getEvent())||mxEvent.isMetaDown(b.getEvent())};var G=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return G.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 K=mxVertexHandler.prototype.isParentHighlightVisible;mxVertexHandler.prototype.isParentHighlightVisible=function(){return K.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&
+!this.graph.isTableRow(this.state.cell)};var L=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(a){return a.tableHandle||L.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var a=0;this.graph.isTableRow(this.state.cell)?a=1:this.graph.isTableCell(this.state.cell)&&(a=2);return a};var N=mxVertexHandler.prototype.getSelectionBorderBounds;
+mxVertexHandler.prototype.getSelectionBorderBounds=function(){return N.apply(this,arguments).grow(-this.getSelectionBorderInset())};var J=null,R=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){null==J&&(J=mxCellRenderer.defaultShapes.tableLine);var a=R.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var b=function(a,b,c){for(var d=[],e=0;e<a.length;e++){var g=a[e];d.push(null==g?null:new mxPoint((h+g.x+b)*f,(m+g.y+c)*f))}return d},
+c=this,d=this.graph,e=d.model,f=d.view.scale,g=this.state,k=this.selectionBorder,h=this.state.origin.x+d.view.translate.x,m=this.state.origin.y+d.view.translate.y;null==a&&(a=[]);var l=d.view.getCellStates(e.getChildCells(this.state.cell,!0));if(0<l.length){for(var n=e.getChildCells(l[0].cell,!0),p=d.getTableLines(this.state.cell,!1,!0),r=d.getTableLines(this.state.cell,!0,!1),e=0;e<n.length;e++)mxUtils.bind(this,function(e){var h=d.view.getState(n[e]),m=d.getCellGeometry(n[e]),l=null!=m.alternateBounds?
+m.alternateBounds:m;null==h&&(h=new mxCellState(d.view,n[e],d.getCellStyle(n[e])),h.x=g.x+m.x*f,h.y=g.y+m.y*f,h.width=l.width*f,h.height=l.height*f,h.updateCachedBounds());var m=e<n.length-1?n[e+1]:null,m=null!=m?d.getCellGeometry(m):null,r=null!=m&&null!=m.alternateBounds?m.alternateBounds:m,m=null!=p[e]?new J(p[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!0);m.isDashed=k.isDashed;m.svgStrokeTolerance++;h=new mxHandle(h,"col-resize",null,m);h.tableHandle=!0;var t=0;h.shape.node.parentNode.insertBefore(h.shape.node,
+h.shape.node.parentNode.firstChild);h.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=0==t?mxConstants.NONE:k.stroke;if(this.shape.constructor==J)this.shape.line=b(p[e],t,0),this.shape.updateBoundsFromLine();else{var a=d.getActualStartSize(g.cell,!0);this.shape.bounds.width=1;this.shape.bounds.x=this.state.x+(l.width+t)*f;this.shape.bounds.y=g.y+(e==n.length-1?0:a.y*f);this.shape.bounds.height=g.height-(e==n.length-1?0:(a.height+a.y)*f)}this.shape.redraw()}};var u=
+!1;h.setPosition=function(a,b,c){t=Math.max(Graph.minTableColumnWidth-l.width,b.x-a.x-l.width);u=mxEvent.isShiftDown(c.getEvent());null==r||u||(t=Math.min(t,r.width-Graph.minTableColumnWidth))};h.execute=function(a){if(0!=t)d.setTableColumnWidth(this.state.cell,t,u);else if(!c.blockDelayedSelection){var b=d.getCellAt(a.getGraphX(),a.getGraphY())||g.cell;d.graphHandler.selectCellForEvent(b,a)}t=0};h.positionChanged=function(){};h.reset=function(){t=0};a.push(h)})(e);for(e=0;e<l.length;e++)mxUtils.bind(this,
+function(e){var h=l[e],m=e<l.length-1?l[e+1]:null,m=null!=m?d.getCellGeometry(m.cell):null,n=null!=m&&null!=m.alternateBounds?m.alternateBounds:m,m=null!=r[e]?new J(r[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!1);m.isDashed=k.isDashed;m.svgStrokeTolerance++;h=new mxHandle(h,"row-resize",null,m);h.tableHandle=!0;var p=0;h.shape.node.parentNode.insertBefore(h.shape.node,h.shape.node.parentNode.firstChild);h.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=
+0==p?mxConstants.NONE:k.stroke;if(this.shape.constructor==J)this.shape.line=b(r[e],0,p),this.shape.updateBoundsFromLine();else{var a=d.getActualStartSize(g.cell,!0);this.shape.bounds.height=1;this.shape.bounds.y=this.state.y+this.state.height+p*f;this.shape.bounds.x=g.x+(e==l.length-1?0:a.x*f);this.shape.bounds.width=g.width-(e==l.length-1?0:a.width+a.x+f)}this.shape.redraw()}};var t=!1;h.setPosition=function(a,b,c){p=Math.max(Graph.minTableRowHeight-a.height,b.y-a.y-a.height);t=mxEvent.isShiftDown(c.getEvent());
+null!=n&&t&&(p=Math.min(p,n.height-Graph.minTableRowHeight))};h.execute=function(a){if(0!=p)d.setTableRowHeight(this.state.cell,p,!t);else if(!c.blockDelayedSelection){var b=d.getCellAt(a.getGraphX(),a.getGraphY())||g.cell;d.graphHandler.selectCellForEvent(b,a)}p=0};h.reset=function(){p=0};a.push(h)})(e)}}return null!=a?a.reverse():null};var X=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){X.apply(this,arguments);if(null!=this.moveHandles)for(var b=
+0;b<this.moveHandles.length;b++)this.moveHandles[b].style.visibility=a?"":"hidden";if(null!=this.cornerHandles)for(b=0;b<this.cornerHandles.length;b++)this.cornerHandles[b].node.style.visibility=a?"":"hidden"};mxVertexHandler.prototype.refreshMoveHandles=function(){var a=this.graph.model;if(null!=this.moveHandles){for(var b=0;b<this.moveHandles.length;b++)this.moveHandles[b].parentNode.removeChild(this.moveHandles[b]);this.moveHandles=null}this.moveHandles=[];for(b=0;b<a.getChildCount(this.state.cell);b++)mxUtils.bind(this,
+function(b){if(null!=b&&a.isVertex(b.cell)){var c=mxUtils.createImage(Editor.rowMoveImage);c.style.position="absolute";c.style.cursor="pointer";c.style.width="7px";c.style.height="4px";c.style.padding="4px 2px 4px 2px";c.rowState=b;mxEvent.addGestureListeners(c,mxUtils.bind(this,function(a){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);!this.graph.isToggleEvent(a)&&this.graph.isCellSelected(b.cell)||this.graph.selectCellForEvent(b.cell,a);mxEvent.isPopupTrigger(a)||(this.graph.graphHandler.start(this.state.cell,
+mxEvent.getClientX(a),mxEvent.getClientY(a),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=mxEvent.isMouseEvent(a),this.graph.isMouseDown=!0);mxEvent.consume(a)}),null,mxUtils.bind(this,function(a){mxEvent.isPopupTrigger(a)&&(this.graph.popupMenuHandler.popup(mxEvent.getClientX(a),mxEvent.getClientY(a),b.cell,a),mxEvent.consume(a))}));this.moveHandles.push(c);this.graph.container.appendChild(c)}})(this.graph.view.getState(a.getChildAt(this.state.cell,
+b)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){for(var a=0;a<this.customHandles.length;a++)this.customHandles[a].destroy();this.customHandles=this.createCustomHandles()}this.graph.isTable(this.state.cell)&&this.refreshMoveHandles()};var ba=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),b=this.tolerance,c=this.state.style.shape;null==mxCellRenderer.defaultShapes[c]&&mxStencilRegistry.getStencil(c);
+c=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!c&&null!=this.customHandles)for(var d=0;d<this.customHandles.length;d++)if(null!=this.customHandles[d].shape&&null!=this.customHandles[d].shape.bounds){var e=this.customHandles[d].shape.bounds,f=e.getCenterX(),g=e.getCenterY();if(Math.abs(this.state.x-f)<e.width/2||Math.abs(this.state.y-g)<e.height/2||Math.abs(this.state.x+this.state.width-f)<e.width/2||Math.abs(this.state.y+this.state.height-g)<e.height/
+2){c=!0;break}}c&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(b/=2,this.graph.isTable(this.state.cell)&&(b+=7),a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b):a=ba.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(c){if(this.index!=mxEvent.LABEL_HANDLE){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));if(this.index==mxEvent.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"&deg;";else{c=
+this.state.view.scale;var d=this.state.view.unit;this.hint.innerHTML=b(this.roundLength(this.bounds.width/c),d)+" x "+b(this.roundLength(this.bounds.height/c),d)}c=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0");null==c&&(c=this.bounds);this.hint.style.left=c.x+Math.round((c.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=c.y+c.height+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")}};
+mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};var O=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(a,b){O.apply(this,arguments);null!=this.linkHint&&"none"!=this.linkHint.style.display&&null!=this.graph.graphHandler&&null!=this.graph.graphHandler.first&&(this.linkHint.style.display="none")};var S=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=
+function(a,b){S.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(c,d){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var e=this.graph.view.translate,f=this.graph.view.scale,g=this.roundLength(d.x/f-e.x),e=this.roundLength(d.y/f-e.y),f=this.graph.view.unit;this.hint.innerHTML=b(g,f)+", "+b(e,f);this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=
+this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(g=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*g.x)+"%, "+Math.round(100*g.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(c.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(c.getGraphY(),d.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};Graph.prototype.expandedImage=
+Graph.createSvgImage(9,9,'<defs><linearGradient id="grad1" x1="50%" y1="0%" x2="50%" y2="100%"><stop offset="30%" style="stop-color:#f0f0f0;" /><stop offset="100%" style="stop-color:#AFB0B6;" /></linearGradient></defs><rect x="0" y="0" width="9" height="9" stroke="#8A94A5" fill="url(#grad1)" stroke-width="2"/><path d="M 2 4.5 L 7 4.5 z" stroke="#000"/>');Graph.prototype.collapsedImage=Graph.createSvgImage(9,9,'<defs><linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="30%" style="stop-color:#f0f0f0;" /><stop offset="100%" style="stop-color:#AFB0B6;" /></linearGradient></defs><rect x="0" y="0" width="9" height="9" stroke="#8A94A5" fill="url(#grad1)" stroke-width="2"/><path d="M 4.5 2 L 4.5 7 M 2 4.5 L 7 4.5 z" stroke="#000"/>');
+mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>');HoverIcons.prototype.endMainHandle=Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>');HoverIcons.prototype.secondaryHandle=Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>');
+HoverIcons.prototype.fixedHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="#01bd22"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>');HoverIcons.prototype.endFixedHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="7" stroke="#fff" fill="#01bd22"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>');HoverIcons.prototype.terminalHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+
+'"/><circle cx="11" cy="11" r="3" stroke="#fff" fill="transparent"/>');HoverIcons.prototype.endTerminalHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="7" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/><circle cx="11" cy="11" r="3" stroke="#fff" fill="transparent"/>');HoverIcons.prototype.rotationHandle=Graph.createSvgImage(16,16,'<path stroke="'+HoverIcons.prototype.arrowFill+'" fill="'+HoverIcons.prototype.arrowFill+'" d="M15.55 5.55L11 1v3.07C7.06 4.56 4 7.92 4 12s3.05 7.44 7 7.93v-2.02c-2.84-.48-5-2.94-5-5.91s2.16-5.43 5-5.91V10l4.55-4.45zM19.93 11c-.17-1.39-.72-2.73-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02c1.39-.17 2.74-.71 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41c.9-1.16 1.45-2.5 1.62-3.89h-2.02c-.14.87-.48 1.72-1.02 2.48z"/>',
24,24);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="'+HoverIcons.prototype.arrowFill+'"/>');mxVertexHandler.TABLE_HANDLE_COLOR="#fca000";mxVertexHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxVertexHandler.prototype.secondaryHandleImage=HoverIcons.prototype.secondaryHandle;mxEdgeHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;
mxEdgeHandler.prototype.endHandleImage=HoverIcons.prototype.endMainHandle;mxEdgeHandler.prototype.terminalHandleImage=HoverIcons.prototype.terminalHandle;mxEdgeHandler.prototype.endTerminalHandleImage=HoverIcons.prototype.endTerminalHandle;mxEdgeHandler.prototype.fixedHandleImage=HoverIcons.prototype.fixedHandle;mxEdgeHandler.prototype.endFixedHandleImage=HoverIcons.prototype.endFixedHandle;mxEdgeHandler.prototype.labelHandleImage=HoverIcons.prototype.secondaryHandle;mxOutline.prototype.sizerImage=
HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangleUp=HoverIcons.prototype.triangleUp,Sidebar.prototype.triangleRight=HoverIcons.prototype.triangleRight,Sidebar.prototype.triangleDown=HoverIcons.prototype.triangleDown,Sidebar.prototype.triangleLeft=HoverIcons.prototype.triangleLeft,Sidebar.prototype.refreshTarget=HoverIcons.prototype.refreshTarget,Sidebar.prototype.roundDrop=HoverIcons.prototype.roundDrop);mxVertexHandler.prototype.rotationEnabled=!0;mxVertexHandler.prototype.manageSizers=
!0;mxVertexHandler.prototype.livePreview=!0;mxGraphHandler.prototype.maxLivePreview=16;mxRubberband.prototype.defaultOpacity=30;mxConnectionHandler.prototype.outlineConnect=!0;mxCellHighlight.prototype.keepOnTop=!0;mxVertexHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.dblClickRemoveEnabled=!0;mxEdgeHandler.prototype.straightRemoveEnabled=!0;mxEdgeHandler.prototype.virtualBendsEnabled=!0;mxEdgeHandler.prototype.mergeRemoveEnabled=
!0;mxEdgeHandler.prototype.manageLabelHandle=!0;mxEdgeHandler.prototype.outlineConnect=!0;mxEdgeHandler.prototype.isAddVirtualBendEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};if(Graph.touchStyle){if(mxClient.IS_TOUCH||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints)mxShape.prototype.svgStrokeTolerance=18,mxVertexHandler.prototype.tolerance=12,mxEdgeHandler.prototype.tolerance=
-12,Graph.prototype.tolerance=12,mxVertexHandler.prototype.rotationHandleVSpacing=-16,mxConstraintHandler.prototype.getTolerance=function(a){return mxEvent.isMouseEvent(a.getEvent())?4:this.graph.getTolerance()};mxPanningHandler.prototype.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(b)||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))};var T=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=
-function(a,b){T.apply(this,arguments);mxEvent.isTouchEvent(b.getEvent())&&this.graph.isCellSelected(b.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var b=a.getEvent();return mxEvent.isLeftMouseButton(b)&&(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b))||this.usePopupTrigger&&mxEvent.isPopupTrigger(b)};mxRubberband.prototype.isSpaceEvent=function(a){return this.graph.isEnabled()&&
+12,Graph.prototype.tolerance=12,mxVertexHandler.prototype.rotationHandleVSpacing=-16,mxConstraintHandler.prototype.getTolerance=function(a){return mxEvent.isMouseEvent(a.getEvent())?4:this.graph.getTolerance()};mxPanningHandler.prototype.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(b)||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))};var U=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=
+function(a,b){U.apply(this,arguments);mxEvent.isTouchEvent(b.getEvent())&&this.graph.isCellSelected(b.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var b=a.getEvent();return mxEvent.isLeftMouseButton(b)&&(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b))||this.usePopupTrigger&&mxEvent.isPopupTrigger(b)};mxRubberband.prototype.isSpaceEvent=function(a){return this.graph.isEnabled()&&
!this.graph.isCellLocked(this.graph.getDefaultParent())&&mxEvent.isControlDown(a.getEvent())&&mxEvent.isShiftDown(a.getEvent())&&mxEvent.isAltDown(a.getEvent())};mxRubberband.prototype.cancelled=!1;mxRubberband.prototype.cancel=function(){this.isActive()&&(this.cancelled=!0,this.reset())};mxRubberband.prototype.mouseUp=function(a,b){if(this.cancelled)this.cancelled=!1,b.consume();else{var c=null!=this.div&&"none"!=this.div.style.display,d=null,e=null,f=null,g=null;null!=this.first&&null!=this.currentX&&
null!=this.currentY&&(d=this.first.x,e=this.first.y,f=(this.currentX-d)/this.graph.view.scale,g=(this.currentY-e)/this.graph.view.scale,mxEvent.isAltDown(b.getEvent())||(f=this.graph.snap(f),g=this.graph.snap(g),this.graph.isGridEnabled()||(Math.abs(f)<this.graph.tolerance&&(f=0),Math.abs(g)<this.graph.tolerance&&(g=0))));this.reset();if(c){if(this.isSpaceEvent(b)){this.graph.model.beginUpdate();try{for(var k=this.graph.getCellsBeyond(d,e,this.graph.getDefaultParent(),!0,!0),c=0;c<k.length;c++)if(this.graph.isCellMovable(k[c])){var h=
this.graph.view.getState(k[c]),m=this.graph.getCellGeometry(k[c]);null!=h&&null!=m&&(m=m.clone(),m.translate(f,g),this.graph.model.setGeometry(k[c],m))}}finally{this.graph.model.endUpdate()}}else f=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(f,b.getEvent());b.consume()}}};mxRubberband.prototype.mouseMove=function(a,b){if(!b.isConsumed()&&null!=this.first){var c=mxUtils.getScrollOrigin(this.graph.container),d=mxUtils.getOffset(this.graph.container);c.x-=d.x;c.y-=d.y;
var d=b.getX()+c.x,c=b.getY()+c.y,e=this.first.x-d,f=this.first.y-c,g=this.graph.tolerance;if(null!=this.div||Math.abs(e)>g||Math.abs(f)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(d,c),this.isSpaceEvent(b)?(d=this.x+this.width,c=this.y+this.height,e=this.graph.view.scale,mxEvent.isAltDown(b.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=d-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)),b.consume()}};var U=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);U.apply(this,arguments)};var W=(new Date).getTime(),ga=0,ma=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d){ma.apply(this,arguments);c!=this.currentTerminalState?(W=(new Date).getTime(),ga=0):ga=(new Date).getTime()-W;this.currentTerminalState=
-c};var oa=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<ga||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&oa.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(a,b,c){b=null!=a&&0==a;var d=this.state.getVisibleTerminalState(b);a=null!=a&&(0==a||a>=this.state.absolutePoints.length-
+this.secondDiv=null)),b.consume()}};var Q=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);Q.apply(this,arguments)};var W=(new Date).getTime(),ka=0,ma=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d){ma.apply(this,arguments);c!=this.currentTerminalState?(W=(new Date).getTime(),ka=0):ka=(new Date).getTime()-W;this.currentTerminalState=
+c};var oa=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<ka||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&oa.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(a,b,c){b=null!=a&&0==a;var d=this.state.getVisibleTerminalState(b);a=null!=a&&(0==a||a>=this.state.absolutePoints.length-
1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,b):null;c=null!=(null!=a?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(b),a):null)?c?this.endFixedHandleImage:this.fixedHandleImage:null!=a&&null!=d?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 pa=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,b,c){this.handleImage=b==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:b==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return pa.apply(this,arguments)};var ha=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=
-a&&1==a.length){var b=this.graph.getModel(),c=b.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);if(b.isEdge(c)&&null!=d&&d.relative&&(b=this.graph.view.getState(a[0]),null!=b&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox))return mxRectangle.fromRectangle(b.text.boundingBox)}return ha.apply(this,arguments)};var na=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var a=na.apply(this,arguments),b=[],c=0;c<a.length;c++)"1"!=mxUtils.getValue(a[c].style,
+--c;return new mxRectangleShape(new mxRectangle(0,0,c,c),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var pa=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,b,c){this.handleImage=b==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:b==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return pa.apply(this,arguments)};var ga=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=
+a&&1==a.length){var b=this.graph.getModel(),c=b.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);if(b.isEdge(c)&&null!=d&&d.relative&&(b=this.graph.view.getState(a[0]),null!=b&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox))return mxRectangle.fromRectangle(b.text.boundingBox)}return ga.apply(this,arguments)};var na=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var a=na.apply(this,arguments),b=[],c=0;c<a.length;c++)"1"!=mxUtils.getValue(a[c].style,
"part","0")&&b.push(a[c]);return b};var ua=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var b=this.graph.getModel(),c=b.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return b.isEdge(c)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(b=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(b.x),Math.round(b.y),Math.round(b.width),Math.round(b.height))):ua.apply(this,arguments)};
var qa=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,b){var c=this.graph.getModel(),d=c.getParent(this.state.cell),e=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(b)==mxEvent.ROTATION_HANDLE||!c.isEdge(d)||null==e||!e.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&qa.apply(this,arguments)};mxVertexHandler.prototype.rotateClick=function(){var a=mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),
b=mxUtils.getValue(this.state.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);this.state.view.graph.model.isVertex(this.state.cell)&&a==mxConstants.NONE&&b==mxConstants.NONE?(a=mxUtils.mod(mxUtils.getValue(this.state.style,mxConstants.STYLE_ROTATION,0)+90,360),this.state.view.graph.setCellStyles(mxConstants.STYLE_ROTATION,a,[this.state.cell])):this.state.view.graph.turnShapes([this.state.cell])};var ra=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,b){ra.apply(this,
arguments);null!=this.graph.graphHandler.first&&(null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none"),null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none"))};var la=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,b){la.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");
-null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="");this.blockDelayedSelection=null};var ja=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){ja.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));if(this.graph.isTable(this.state.cell))this.refreshMoveHandles();else if(1==this.graph.getSelectionCount()&&(this.graph.isTableCell(this.state.cell)||this.graph.isTableRow(this.state.cell))){this.cornerHandles=
+null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="");this.blockDelayedSelection=null};var ia=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){ia.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));if(this.graph.isTable(this.state.cell))this.refreshMoveHandles();else if(1==this.graph.getSelectionCount()&&(this.graph.isTableCell(this.state.cell)||this.graph.isTableRow(this.state.cell))){this.cornerHandles=
[];for(var b=0;4>b;b++){var c=new mxRectangleShape(new mxRectangle(0,0,6,6),"#ffffff",mxConstants.HANDLE_STROKECOLOR);c.dialect=mxConstants.DIALECT_SVG;c.init(this.graph.view.getOverlayPane());this.cornerHandles.push(c)}}var d=mxUtils.bind(this,function(){null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none");this.redrawHandles()});this.changeHandler=mxUtils.bind(this,function(a,b){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),
this.graph.getLinksForState(this.state));d()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(a,b){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);b=this.graph.getLinkForCell(this.state.cell);c=this.graph.getLinksForState(this.state);this.updateLinkHint(b,c);if(null!=b||null!=c&&0<c.length)a=!0;a&&this.redrawHandles()};
mxVertexHandler.prototype.updateLinkHint=function(b,c){try{if(null==b&&(null==c||0==c.length)||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=b||null!=c&&0<c.length){null==this.linkHint&&(this.linkHint=a(),this.linkHint.style.padding="6px 8px 6px 8px",this.linkHint.style.opacity="1",this.linkHint.style.filter="",this.graph.container.appendChild(this.linkHint),mxEvent.addListener(this.linkHint,"mouseenter",
mxUtils.bind(this,function(){this.graph.tooltipHandler.hide()})));this.linkHint.innerHTML="";if(null!=b&&(this.linkHint.appendChild(this.graph.createLinkForHint(b)),this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var d=document.createElement("img");d.setAttribute("src",Editor.editImage);d.setAttribute("title",mxResources.get("editLink"));d.setAttribute("width","11");d.setAttribute("height","11");d.style.marginLeft="10px";d.style.marginBottom="-1px";d.style.cursor="pointer";this.linkHint.appendChild(d);
mxEvent.addListener(d,"click",mxUtils.bind(this,function(a){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(a)}));this.linkHint.appendChildGraph.createRemoveIcon(mxResources.get("removeIt",[mxResources.get("link")]),mxUtils.bind(this,function(a){this.graph.setLinkForCell(this.state.cell,null);mxEvent.consume(a)}))}if(null!=c)for(d=0;d<c.length;d++){var e=document.createElement("div");e.style.marginTop=null!=b||0<d?"6px":"0px";e.appendChild(this.graph.createLinkForHint(c[d].getAttribute("href"),
-mxUtils.getTextContent(c[d])));this.linkHint.appendChild(e)}}}catch(ia){}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var ka=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){ka.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});var a=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":
+mxUtils.getTextContent(c[d])));this.linkHint.appendChild(e)}}}catch(ha){}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var ja=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){ja.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});var a=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":
"none");null!=this.labelShape&&(this.labelShape.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none")});this.changeHandler=mxUtils.bind(this,function(b,c){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));a();this.redrawHandles()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var b=
this.graph.getLinkForCell(this.state.cell),c=this.graph.getLinksForState(this.state);if(null!=b||null!=c&&0<c.length)this.updateLinkHint(b,c),this.redrawHandles()};var da=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){da.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var fa=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){if(null!=this.moveHandles)for(var a=
0;a<this.moveHandles.length;a++)this.moveHandles[a].style.left=this.moveHandles[a].rowState.x+this.moveHandles[a].rowState.width-5+"px",this.moveHandles[a].style.top=this.moveHandles[a].rowState.y+this.moveHandles[a].rowState.height/2-6+"px";if(null!=this.cornerHandles){var a=this.getSelectionBorderInset(),b=this.cornerHandles,c=b[0].bounds.height/2;b[0].bounds.x=this.state.x-b[0].bounds.width/2+a;b[0].bounds.y=this.state.y-c+a;b[0].redraw();b[1].bounds.x=b[0].bounds.x+this.state.width-2*a;b[1].bounds.y=
@@ -3051,11 +3049,11 @@ BaseFormatPanel.prototype.getUnitStep=function(){switch(this.editorUi.editor.gra
ArrangePanel.prototype.addGeometry=function(a){var b=this,c=this.editorUi,e=c.editor.graph,d=e.getModel(),f=this.format.getSelectionState(),k=this.createPanel();k.style.paddingBottom="8px";var h=document.createElement("div");h.style.position="absolute";h.style.width="50px";h.style.marginTop="0px";h.style.fontWeight="bold";mxUtils.write(h,mxResources.get("size"));k.appendChild(h);var g,m,l,n,p=this.addUnitInput(k,this.getUnit(),87,52,function(){g.apply(this,arguments)},this.getUnitStep(),null,null,
this.isFloatUnit()),r=this.addUnitInput(k,this.getUnit(),16,52,function(){m.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),u=document.createElement("div");u.className="geSprite geSprite-fit";u.setAttribute("title",mxResources.get("autosize")+" ("+this.editorUi.actions.get("autosize").shortcut+")");u.style.position="relative";u.style.cursor="pointer";u.style.marginTop="-3px";u.style.border="0px";u.style.left="42px";mxUtils.setOpacity(u,50);mxEvent.addListener(u,"mouseenter",
function(){mxUtils.setOpacity(u,100)});mxEvent.addListener(u,"mouseleave",function(){mxUtils.setOpacity(u,50)});mxEvent.addListener(u,"click",function(){c.actions.get("autosize").funct()});k.appendChild(u);f.row?(p.style.visibility="hidden",p.nextSibling.style.visibility="hidden"):this.addLabel(k,mxResources.get("width"),87);this.addLabel(k,mxResources.get("height"),16);mxUtils.br(k);h=document.createElement("div");h.style.paddingTop="8px";h.style.paddingRight="20px";h.style.whiteSpace="nowrap";h.style.textAlign=
-"right";var v=this.createCellOption(mxResources.get("constrainProportions"),mxConstants.STYLE_ASPECT,null,"fixed","null");v.style.width="210px";h.appendChild(v);f.cell||f.row?u.style.visibility="hidden":k.appendChild(h);var t=v.getElementsByTagName("input")[0];this.addKeyHandler(p,F);this.addKeyHandler(r,F);g=this.addGeometryHandler(p,function(a,c,d){if(e.isTableCell(d))return e.setTableColumnWidth(d,c-a.width,!0),!0;0<a.width&&(c=Math.max(1,b.fromUnit(c)),t.checked&&(a.height=Math.round(a.height*
+"right";var v=this.createCellOption(mxResources.get("constrainProportions"),mxConstants.STYLE_ASPECT,null,"fixed","null");v.style.width="210px";h.appendChild(v);f.cell||f.row?u.style.visibility="hidden":k.appendChild(h);var t=v.getElementsByTagName("input")[0];this.addKeyHandler(p,E);this.addKeyHandler(r,E);g=this.addGeometryHandler(p,function(a,c,d){if(e.isTableCell(d))return e.setTableColumnWidth(d,c-a.width,!0),!0;0<a.width&&(c=Math.max(1,b.fromUnit(c)),t.checked&&(a.height=Math.round(a.height*
c*100/a.width)/100),a.width=c)});m=this.addGeometryHandler(r,function(a,c,d){e.isTableCell(d)&&(d=e.model.getParent(d));if(e.isTableRow(d))return e.setTableRowHeight(d,c-a.height),!0;0<a.height&&(c=Math.max(1,b.fromUnit(c)),t.checked&&(a.width=Math.round(a.width*c*100/a.height)/100),a.height=c)});(f.resizable||f.row||f.cell)&&a.appendChild(k);var x=this.createPanel();x.style.paddingBottom="30px";h=document.createElement("div");h.style.position="absolute";h.style.width="70px";h.style.marginTop="0px";
-h.style.fontWeight="bold";mxUtils.write(h,mxResources.get("position"));x.appendChild(h);var w=this.addUnitInput(x,this.getUnit(),87,52,function(){l.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),y=this.addUnitInput(x,this.getUnit(),16,52,function(){n.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit());mxUtils.br(x);this.addLabel(x,mxResources.get("left"),87);this.addLabel(x,mxResources.get("top"),16);var F=mxUtils.bind(this,function(a,b,c){f=this.format.getSelectionState();
+h.style.fontWeight="bold";mxUtils.write(h,mxResources.get("position"));x.appendChild(h);var w=this.addUnitInput(x,this.getUnit(),87,52,function(){l.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),y=this.addUnitInput(x,this.getUnit(),16,52,function(){n.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit());mxUtils.br(x);this.addLabel(x,mxResources.get("left"),87);this.addLabel(x,mxResources.get("top"),16);var E=mxUtils.bind(this,function(a,b,c){f=this.format.getSelectionState();
if(f.containsLabel||f.vertices.length!=e.getSelectionCount()||null==f.width||null==f.height)k.style.display="none";else{k.style.display="";if(c||document.activeElement!=p)p.value=this.inUnit(f.width)+(""==f.width?"":" "+this.getUnit());if(c||document.activeElement!=r)r.value=this.inUnit(f.height)+(""==f.height?"":" "+this.getUnit())}if(f.vertices.length==e.getSelectionCount()&&null!=f.x&&null!=f.y){x.style.display="";if(c||document.activeElement!=w)w.value=this.inUnit(f.x)+(""==f.x?"":" "+this.getUnit());
-if(c||document.activeElement!=y)y.value=this.inUnit(f.y)+(""==f.y?"":" "+this.getUnit())}else x.style.display="none"});this.addKeyHandler(w,F);this.addKeyHandler(y,F);d.addListener(mxEvent.CHANGE,F);this.listeners.push({destroy:function(){d.removeListener(F)}});F();l=this.addGeometryHandler(w,function(a,c){c=b.fromUnit(c);a.relative?a.offset.x=c:a.x=c});n=this.addGeometryHandler(y,function(a,c){c=b.fromUnit(c);a.relative?a.offset.y=c:a.y=c});if(f.movable){if(0==f.edges.length&&1==f.vertices.length&&
+if(c||document.activeElement!=y)y.value=this.inUnit(f.y)+(""==f.y?"":" "+this.getUnit())}else x.style.display="none"});this.addKeyHandler(w,E);this.addKeyHandler(y,E);d.addListener(mxEvent.CHANGE,E);this.listeners.push({destroy:function(){d.removeListener(E)}});E();l=this.addGeometryHandler(w,function(a,c){c=b.fromUnit(c);a.relative?a.offset.x=c:a.x=c});n=this.addGeometryHandler(y,function(a,c){c=b.fromUnit(c);a.relative?a.offset.y=c:a.y=c});if(f.movable){if(0==f.edges.length&&1==f.vertices.length&&
d.isEdge(d.getParent(f.vertices[0]))){var I=e.getCellGeometry(f.vertices[0]);null!=I&&I.relative&&(h=mxUtils.button(mxResources.get("center"),mxUtils.bind(this,function(a){d.beginUpdate();try{I=I.clone(),I.x=0,I.y=0,I.offset=new mxPoint,d.setGeometry(f.vertices[0],I)}finally{d.endUpdate()}})),h.setAttribute("title",mxResources.get("center")),h.style.width="210px",h.style.position="absolute",mxUtils.br(x),mxUtils.br(x),x.appendChild(h))}a.appendChild(x)}};
ArrangePanel.prototype.addGeometryHandler=function(a,b){function c(c){if(""!=a.value){var k=parseFloat(a.value);if(isNaN(k))a.value=d+" "+f.getUnit();else if(k!=d){e.getModel().beginUpdate();try{for(var g=f.format.getSelectionState().cells,m=0;m<g.length;m++)if(e.getModel().isVertex(g[m])){var l=e.getCellGeometry(g[m]);if(null!=l&&(l=l.clone(),!b(l,k,g[m]))){var n=e.view.getState(g[m]);null!=n&&e.isRecursiveVertexResize(n)&&e.resizeChildCells(g[m],l);e.getModel().setGeometry(g[m],l);e.constrainChildCells(g[m])}}}finally{e.getModel().endUpdate()}d=
k;a.value=k+" "+f.getUnit()}}mxEvent.consume(c)}var e=this.editorUi.editor.graph,d=null,f=this;mxEvent.addListener(a,"blur",c);mxEvent.addListener(a,"change",c);mxEvent.addListener(a,"focus",function(){d=a.value});return c};
@@ -3077,51 +3075,51 @@ n),u=this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center")
function(a){e.cellEditor.alignText(mxConstants.ALIGN_RIGHT,a);c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ALIGN],"values",[mxConstants.ALIGN_RIGHT],"cells",d.cells))}:p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT])),n);this.styleButtons([r,u,v]);if(e.cellEditor.isContentEditing()){var t=this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("strikethrough"),function(){document.execCommand("strikeThrough",
!1,null)},h);this.styleButtons([t]);t.firstChild.style.background="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PGRlZnM+PHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjR2MjRIMFYweiIvPjwvZGVmcz48Y2xpcFBhdGggaWQ9ImIiPjx1c2UgeGxpbms6aHJlZj0iI2EiIG92ZXJmbG93PSJ2aXNpYmxlIi8+PC9jbGlwUGF0aD48cGF0aCBjbGlwLXBhdGg9InVybCgjYikiIGZpbGw9IiMwMTAxMDEiIGQ9Ik03LjI0IDguNzVjLS4yNi0uNDgtLjM5LTEuMDMtLjM5LTEuNjcgMC0uNjEuMTMtMS4xNi40LTEuNjcuMjYtLjUuNjMtLjkzIDEuMTEtMS4yOS40OC0uMzUgMS4wNS0uNjMgMS43LS44My42Ni0uMTkgMS4zOS0uMjkgMi4xOC0uMjkuODEgMCAxLjU0LjExIDIuMjEuMzQuNjYuMjIgMS4yMy41NCAxLjY5Ljk0LjQ3LjQuODMuODggMS4wOCAxLjQzLjI1LjU1LjM4IDEuMTUuMzggMS44MWgtMy4wMWMwLS4zMS0uMDUtLjU5LS4xNS0uODUtLjA5LS4yNy0uMjQtLjQ5LS40NC0uNjgtLjItLjE5LS40NS0uMzMtLjc1LS40NC0uMy0uMS0uNjYtLjE2LTEuMDYtLjE2LS4zOSAwLS43NC4wNC0xLjAzLjEzLS4yOS4wOS0uNTMuMjEtLjcyLjM2LS4xOS4xNi0uMzQuMzQtLjQ0LjU1LS4xLjIxLS4xNS40My0uMTUuNjYgMCAuNDguMjUuODguNzQgMS4yMS4zOC4yNS43Ny40OCAxLjQxLjdINy4zOWMtLjA1LS4wOC0uMTEtLjE3LS4xNS0uMjV6TTIxIDEydi0ySDN2Mmg5LjYyYy4xOC4wNy40LjE0LjU1LjIuMzcuMTcuNjYuMzQuODcuNTEuMjEuMTcuMzUuMzYuNDMuNTcuMDcuMi4xMS40My4xMS42OSAwIC4yMy0uMDUuNDUtLjE0LjY2LS4wOS4yLS4yMy4zOC0uNDIuNTMtLjE5LjE1LS40Mi4yNi0uNzEuMzUtLjI5LjA4LS42My4xMy0xLjAxLjEzLS40MyAwLS44My0uMDQtMS4xOC0uMTNzLS42Ni0uMjMtLjkxLS40MmMtLjI1LS4xOS0uNDUtLjQ0LS41OS0uNzUtLjE0LS4zMS0uMjUtLjc2LS4yNS0xLjIxSDYuNGMwIC41NS4wOCAxLjEzLjI0IDEuNTguMTYuNDUuMzcuODUuNjUgMS4yMS4yOC4zNS42LjY2Ljk4LjkyLjM3LjI2Ljc4LjQ4IDEuMjIuNjUuNDQuMTcuOS4zIDEuMzguMzkuNDguMDguOTYuMTMgMS40NC4xMy44IDAgMS41My0uMDkgMi4xOC0uMjhzMS4yMS0uNDUgMS42Ny0uNzljLjQ2LS4zNC44Mi0uNzcgMS4wNy0xLjI3cy4zOC0xLjA3LjM4LTEuNzFjMC0uNi0uMS0xLjE0LS4zMS0xLjYxLS4wNS0uMTEtLjExLS4yMy0uMTctLjMzSDIxeiIvPjwvc3ZnPg==)";
t.firstChild.style.backgroundPosition="2px 2px";t.firstChild.style.backgroundSize="18px 18px";this.styleButtons([t])}var x=this.editorUi.toolbar.addButton("geSprite-top",mxResources.get("top"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP])),n),w=this.editorUi.toolbar.addButton("geSprite-middle",mxResources.get("middle"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE])),n),y=this.editorUi.toolbar.addButton("geSprite-bottom",
-mxResources.get("bottom"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM])),n);this.styleButtons([x,w,y]);a.appendChild(n);var F,I,A,G,z,E,K;e.cellEditor.isContentEditing()?(x.style.display="none",w.style.display="none",y.style.display="none",l.style.display="none",A=this.editorUi.toolbar.addButton("geSprite-justifyfull",mxResources.get("block"),function(){1==A.style.opacity&&document.execCommand("justifyfull",!1,null)},n),A.style.marginRight=
-"9px",A.style.opacity=1,this.styleButtons([A,F=this.editorUi.toolbar.addButton("geSprite-subscript",mxResources.get("subscript")+" ("+Editor.ctrlKey+"+,)",function(){document.execCommand("subscript",!1,null)},n),I=this.editorUi.toolbar.addButton("geSprite-superscript",mxResources.get("superscript")+" ("+Editor.ctrlKey+"+.)",function(){document.execCommand("superscript",!1,null)},n)]),F.style.marginLeft="10px",p=n.cloneNode(!1),p.style.paddingTop="4px",n=[this.editorUi.toolbar.addButton("geSprite-orderedlist",
+mxResources.get("bottom"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM])),n);this.styleButtons([x,w,y]);a.appendChild(n);var E,I,A,F,z,G,K;e.cellEditor.isContentEditing()?(x.style.display="none",w.style.display="none",y.style.display="none",l.style.display="none",A=this.editorUi.toolbar.addButton("geSprite-justifyfull",mxResources.get("block"),function(){1==A.style.opacity&&document.execCommand("justifyfull",!1,null)},n),A.style.marginRight=
+"9px",A.style.opacity=1,this.styleButtons([A,E=this.editorUi.toolbar.addButton("geSprite-subscript",mxResources.get("subscript")+" ("+Editor.ctrlKey+"+,)",function(){document.execCommand("subscript",!1,null)},n),I=this.editorUi.toolbar.addButton("geSprite-superscript",mxResources.get("superscript")+" ("+Editor.ctrlKey+"+.)",function(){document.execCommand("superscript",!1,null)},n)]),E.style.marginLeft="10px",p=n.cloneNode(!1),p.style.paddingTop="4px",n=[this.editorUi.toolbar.addButton("geSprite-orderedlist",
mxResources.get("numberedList"),function(){document.execCommand("insertorderedlist",!1,null)},p),this.editorUi.toolbar.addButton("geSprite-unorderedlist",mxResources.get("bulletedList"),function(){document.execCommand("insertunorderedlist",!1,null)},p),this.editorUi.toolbar.addButton("geSprite-outdent",mxResources.get("decreaseIndent"),function(){document.execCommand("outdent",!1,null)},p),this.editorUi.toolbar.addButton("geSprite-indent",mxResources.get("increaseIndent"),function(){document.execCommand("indent",
!1,null)},p),this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("removeFormat"),function(){document.execCommand("removeformat",!1,null)},p),this.editorUi.toolbar.addButton("geSprite-code",mxResources.get("html"),function(){e.cellEditor.toggleViewMode()},p)],this.styleButtons(n),n[n.length-2].style.marginLeft="10px",a.appendChild(p)):(m[2].style.marginRight="12px",v.style.marginRight="12px");n=f.cloneNode(!1);n.style.marginLeft="0px";n.style.paddingTop="8px";n.style.paddingBottom=
"4px";n.style.fontWeight="normal";mxUtils.write(n,mxResources.get("position"));var L=document.createElement("select");L.style.position="absolute";L.style.left="126px";L.style.width="98px";L.style.border="1px solid rgb(160, 160, 160)";L.style.borderRadius="4px";L.style.marginTop="-2px";for(var t="topLeft top topRight left center right bottomLeft bottom bottomRight".split(" "),N={topLeft:[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM],top:[mxConstants.ALIGN_CENTER,
mxConstants.ALIGN_TOP,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_BOTTOM],topRight:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_TOP,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM],left:[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE],center:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE],right:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE],bottomLeft:[mxConstants.ALIGN_LEFT,
mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_TOP],bottom:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_TOP],bottomRight:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP]},p=0;p<t.length;p++){var J=document.createElement("option");J.setAttribute("value",t[p]);mxUtils.write(J,mxResources.get(t[p]));L.appendChild(J)}n.appendChild(L);t=f.cloneNode(!1);t.style.marginLeft="0px";t.style.paddingTop=
-"4px";t.style.paddingBottom="4px";t.style.fontWeight="normal";mxUtils.write(t,mxResources.get("writingDirection"));var Q=document.createElement("select");Q.style.position="absolute";Q.style.border="1px solid rgb(160, 160, 160)";Q.style.left="126px";Q.style.width="98px";Q.style.borderRadius="4px";Q.style.marginTop="-2px";for(var J=["automatic","leftToRight","rightToLeft"],X={automatic:null,leftToRight:mxConstants.TEXT_DIRECTION_LTR,rightToLeft:mxConstants.TEXT_DIRECTION_RTL},p=0;p<J.length;p++){var ba=
-document.createElement("option");ba.setAttribute("value",J[p]);mxUtils.write(ba,mxResources.get(J[p]));Q.appendChild(ba)}t.appendChild(Q);e.isEditing()||(a.appendChild(n),mxEvent.addListener(L,"change",function(a){e.getModel().beginUpdate();try{var b=N[L.value];null!=b&&(e.setCellStyles(mxConstants.STYLE_LABEL_POSITION,b[0],d.cells),e.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION,b[1],d.cells),e.setCellStyles(mxConstants.STYLE_ALIGN,b[2],d.cells),e.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,
-b[3],d.cells))}finally{e.getModel().endUpdate()}mxEvent.consume(a)}),a.appendChild(t),mxEvent.addListener(Q,"change",function(a){e.setCellStyles(mxConstants.STYLE_TEXT_DIRECTION,X[Q.value],d.cells);mxEvent.consume(a)}));var P=document.createElement("input");P.style.position="absolute";P.style.border="1px solid rgb(160, 160, 160)";P.style.textAlign="right";P.style.marginTop="4px";P.style.left="161px";P.style.width="53px";P.style.borderRadius="4px";P.style.height="23px";P.style.boxSizing="border-box";
-h.appendChild(P);var R=null,n=this.installInputHandler(P,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize,1,999," pt",function(a){if(window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11){var b=function(b,g){null!=e.cellEditor.textarea&&b!=e.cellEditor.textarea&&e.cellEditor.textarea.contains(b)&&(g||f.containsNode(b,!0))&&("FONT"==b.nodeName?(b.removeAttribute("size"),b.style.fontSize=a+"px"):mxUtils.getCurrentStyle(b).fontSize!=a+"px"&&(mxUtils.getCurrentStyle(b.parentNode).fontSize!=
+"4px";t.style.paddingBottom="4px";t.style.fontWeight="normal";mxUtils.write(t,mxResources.get("writingDirection"));var R=document.createElement("select");R.style.position="absolute";R.style.border="1px solid rgb(160, 160, 160)";R.style.left="126px";R.style.width="98px";R.style.borderRadius="4px";R.style.marginTop="-2px";for(var J=["automatic","leftToRight","rightToLeft"],X={automatic:null,leftToRight:mxConstants.TEXT_DIRECTION_LTR,rightToLeft:mxConstants.TEXT_DIRECTION_RTL},p=0;p<J.length;p++){var ba=
+document.createElement("option");ba.setAttribute("value",J[p]);mxUtils.write(ba,mxResources.get(J[p]));R.appendChild(ba)}t.appendChild(R);e.isEditing()||(a.appendChild(n),mxEvent.addListener(L,"change",function(a){e.getModel().beginUpdate();try{var b=N[L.value];null!=b&&(e.setCellStyles(mxConstants.STYLE_LABEL_POSITION,b[0],d.cells),e.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION,b[1],d.cells),e.setCellStyles(mxConstants.STYLE_ALIGN,b[2],d.cells),e.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,
+b[3],d.cells))}finally{e.getModel().endUpdate()}mxEvent.consume(a)}),a.appendChild(t),mxEvent.addListener(R,"change",function(a){e.setCellStyles(mxConstants.STYLE_TEXT_DIRECTION,X[R.value],d.cells);mxEvent.consume(a)}));var O=document.createElement("input");O.style.position="absolute";O.style.border="1px solid rgb(160, 160, 160)";O.style.textAlign="right";O.style.marginTop="4px";O.style.left="161px";O.style.width="53px";O.style.borderRadius="4px";O.style.height="23px";O.style.boxSizing="border-box";
+h.appendChild(O);var S=null,n=this.installInputHandler(O,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize,1,999," pt",function(a){if(window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11){var b=function(b,g){null!=e.cellEditor.textarea&&b!=e.cellEditor.textarea&&e.cellEditor.textarea.contains(b)&&(g||f.containsNode(b,!0))&&("FONT"==b.nodeName?(b.removeAttribute("size"),b.style.fontSize=a+"px"):mxUtils.getCurrentStyle(b).fontSize!=a+"px"&&(mxUtils.getCurrentStyle(b.parentNode).fontSize!=
a+"px"?b.style.fontSize=a+"px":b.style.fontSize=""));c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTSIZE],"values",[a],"cells",d.cells))},f=window.getSelection(),g=0<f.rangeCount?f.getRangeAt(0).commonAncestorContainer:e.cellEditor.textarea;g!=e.cellEditor.textarea&&g.nodeType==mxConstants.NODETYPE_ELEMENT||document.execCommand("fontSize",!1,"1");g!=e.cellEditor.textarea&&(g=g.parentNode);if(null!=g&&g.nodeType==mxConstants.NODETYPE_ELEMENT){var k=g.getElementsByTagName("*");
-b(g);for(g=0;g<k.length;g++)b(k[g])}P.value=a+" pt"}else if(window.getSelection||document.selection)if(b=function(a,b){for(;null!=b;){if(b===a)return!0;b=b.parentNode}return!1},k=null,document.selection?k=document.selection.createRange().parentElement():(f=window.getSelection(),0<f.rangeCount&&(k=f.getRangeAt(0).commonAncestorContainer)),null!=k&&b(e.cellEditor.textarea,k))for(R=a,document.execCommand("fontSize",!1,"4"),k=e.cellEditor.textarea.getElementsByTagName("font"),g=0;g<k.length;g++)if("4"==
-k[g].getAttribute("size")){k[g].removeAttribute("size");k[g].style.fontSize=R+"px";window.setTimeout(function(){P.value=R+" pt";R=null},0);break}},!0),n=this.createStepper(P,n,1,10,!0,Menus.prototype.defaultFontSize);n.style.display=P.style.display;n.style.marginTop="4px";n.style.left="214px";h.appendChild(n);h=g.getElementsByTagName("div")[0];h.style.cssFloat="right";var T=null,U=e.shapeBackgroundColor,W=null,ga=e.shapeForegroundColor,ma=e.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),
-function(){return U},function(a){document.execCommand("backcolor",!1,a!=mxConstants.NONE?a:"transparent");c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],"values",[a],"cells",d.cells))},e.shapeBackgroundColor,{install:function(a){T=a},destroy:function(){T=null}},null,!0):this.createCellColorOption(mxResources.get("backgroundColor"),mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"default",null,function(a){e.updateLabelElements(d.cells,function(a){a.style.backgroundColor=
-null})},e.shapeBackgroundColor);ma.style.fontWeight="bold";var oa=this.createCellColorOption(mxResources.get("borderColor"),mxConstants.STYLE_LABEL_BORDERCOLOR,"default",null,null,e.shapeForegroundColor);oa.style.fontWeight="bold";h=1<=d.vertices.length?e.stylesheet.getDefaultVertexStyle():e.stylesheet.getDefaultEdgeStyle();h=e.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("fontColor"),function(){return ga},function(a){if(mxClient.IS_FF){for(var b=e.cellEditor.textarea.getElementsByTagName("font"),
+b(g);for(g=0;g<k.length;g++)b(k[g])}O.value=a+" pt"}else if(window.getSelection||document.selection)if(b=function(a,b){for(;null!=b;){if(b===a)return!0;b=b.parentNode}return!1},k=null,document.selection?k=document.selection.createRange().parentElement():(f=window.getSelection(),0<f.rangeCount&&(k=f.getRangeAt(0).commonAncestorContainer)),null!=k&&b(e.cellEditor.textarea,k))for(S=a,document.execCommand("fontSize",!1,"4"),k=e.cellEditor.textarea.getElementsByTagName("font"),g=0;g<k.length;g++)if("4"==
+k[g].getAttribute("size")){k[g].removeAttribute("size");k[g].style.fontSize=S+"px";window.setTimeout(function(){O.value=S+" pt";S=null},0);break}},!0),n=this.createStepper(O,n,1,10,!0,Menus.prototype.defaultFontSize);n.style.display=O.style.display;n.style.marginTop="4px";n.style.left="214px";h.appendChild(n);h=g.getElementsByTagName("div")[0];h.style.cssFloat="right";var U=null,Q=e.shapeBackgroundColor,W=null,ka=e.shapeForegroundColor,ma=e.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),
+function(){return Q},function(a){document.execCommand("backcolor",!1,a!=mxConstants.NONE?a:"transparent");c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],"values",[a],"cells",d.cells))},e.shapeBackgroundColor,{install:function(a){U=a},destroy:function(){U=null}},null,!0):this.createCellColorOption(mxResources.get("backgroundColor"),mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"default",null,function(a){e.updateLabelElements(d.cells,function(a){a.style.backgroundColor=
+null})},e.shapeBackgroundColor);ma.style.fontWeight="bold";var oa=this.createCellColorOption(mxResources.get("borderColor"),mxConstants.STYLE_LABEL_BORDERCOLOR,"default",null,null,e.shapeForegroundColor);oa.style.fontWeight="bold";h=1<=d.vertices.length?e.stylesheet.getDefaultVertexStyle():e.stylesheet.getDefaultEdgeStyle();h=e.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("fontColor"),function(){return ka},function(a){if(mxClient.IS_FF){for(var b=e.cellEditor.textarea.getElementsByTagName("font"),
f=[],g=0;g<b.length;g++)f.push({node:b[g],color:b[g].getAttribute("color")});document.execCommand("forecolor",!1,a!=mxConstants.NONE?a:"transparent");c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTCOLOR],"values",[a],"cells",d.cells));a=e.cellEditor.textarea.getElementsByTagName("font");for(g=0;g<a.length;g++)if(g>=f.length||a[g]!=f[g].node||a[g]==f[g].node&&a[g].getAttribute("color")!=f[g].color){f=a[g].firstChild;if(null!=f&&"A"==f.nodeName&&null==f.nextSibling&&null!=
f.firstChild){a[g].parentNode.insertBefore(f,a[g]);for(b=f.firstChild;null!=b;){var k=b.nextSibling;a[g].appendChild(b);b=k}f.appendChild(a[g])}break}}else document.execCommand("forecolor",!1,a!=mxConstants.NONE?a:"transparent"),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTCOLOR],"values",[a],"cells",d.cells))},null!=h[mxConstants.STYLE_FONTCOLOR]?h[mxConstants.STYLE_FONTCOLOR]:e.shapeForegroundColor,{install:function(a){W=a},destroy:function(){W=null}},null,!0):this.createCellColorOption(mxResources.get("fontColor"),
mxConstants.STYLE_FONTCOLOR,"default",function(a){ma.style.display=a==mxConstants.NONE?"none":"";oa.style.display=ma.style.display},function(a){a==mxConstants.NONE?e.setCellStyles(mxConstants.STYLE_NOLABEL,"1",d.cells):e.setCellStyles(mxConstants.STYLE_NOLABEL,null,d.cells);e.setCellStyles(mxConstants.STYLE_FONTCOLOR,a,d.cells);e.updateLabelElements(d.cells,function(a){a.removeAttribute("color");a.style.color=null})},e.shapeForegroundColor);h.style.fontWeight="bold";k.appendChild(h);k.appendChild(ma);
e.cellEditor.isContentEditing()||k.appendChild(oa);a.appendChild(k);k=this.createPanel();k.style.paddingTop="2px";k.style.paddingBottom="4px";h=e.filterSelectionCells(mxUtils.bind(this,function(a){var b=e.view.getState(a);return null==b||this.format.isAutoSizeState(b)||e.getModel().isEdge(a)||!e.isTableRow(a)&&!e.isTableCell(a)&&!e.isCellResizable(a)}));n=this.createCellOption(mxResources.get("wordWrap"),mxConstants.STYLE_WHITE_SPACE,null,"wrap","null",null,null,!0,h);n.style.fontWeight="bold";0<
-h.length&&k.appendChild(n);h=this.createCellOption(mxResources.get("formattedText"),"html",0,null,null,null,c.actions.get("formattedText"));h.style.fontWeight="bold";k.appendChild(h);h=this.createPanel();h.style.paddingTop="10px";h.style.paddingBottom="28px";h.style.fontWeight="normal";n=document.createElement("div");n.style.position="absolute";n.style.width="70px";n.style.marginTop="0px";n.style.fontWeight="bold";mxUtils.write(n,mxResources.get("spacing"));h.appendChild(n);var pa,ha,na,ua,qa,ra=
-this.addUnitInput(h,"pt",87,52,function(){pa.apply(this,arguments)}),la=this.addUnitInput(h,"pt",16,52,function(){ha.apply(this,arguments)});mxUtils.br(h);this.addLabel(h,mxResources.get("top"),87);this.addLabel(h,mxResources.get("global"),16);mxUtils.br(h);mxUtils.br(h);var ja=this.addUnitInput(h,"pt",158,52,function(){na.apply(this,arguments)}),ka=this.addUnitInput(h,"pt",87,52,function(){ua.apply(this,arguments)}),da=this.addUnitInput(h,"pt",16,52,function(){qa.apply(this,arguments)});mxUtils.br(h);
+h.length&&k.appendChild(n);h=this.createCellOption(mxResources.get("formattedText"),"html",0,null,null,null,c.actions.get("formattedText"));h.style.fontWeight="bold";k.appendChild(h);h=this.createPanel();h.style.paddingTop="10px";h.style.paddingBottom="28px";h.style.fontWeight="normal";n=document.createElement("div");n.style.position="absolute";n.style.width="70px";n.style.marginTop="0px";n.style.fontWeight="bold";mxUtils.write(n,mxResources.get("spacing"));h.appendChild(n);var pa,ga,na,ua,qa,ra=
+this.addUnitInput(h,"pt",87,52,function(){pa.apply(this,arguments)}),la=this.addUnitInput(h,"pt",16,52,function(){ga.apply(this,arguments)});mxUtils.br(h);this.addLabel(h,mxResources.get("top"),87);this.addLabel(h,mxResources.get("global"),16);mxUtils.br(h);mxUtils.br(h);var ia=this.addUnitInput(h,"pt",158,52,function(){na.apply(this,arguments)}),ja=this.addUnitInput(h,"pt",87,52,function(){ua.apply(this,arguments)}),da=this.addUnitInput(h,"pt",16,52,function(){qa.apply(this,arguments)});mxUtils.br(h);
this.addLabel(h,mxResources.get("left"),158);this.addLabel(h,mxResources.get("bottom"),87);this.addLabel(h,mxResources.get("right"),16);if(e.cellEditor.isContentEditing()){var fa=null,sa=null;a.appendChild(this.createRelativeOption(mxResources.get("lineheight"),null,null,function(a){var b=""==a.value?120:parseInt(a.value),b=Math.max(0,isNaN(b)?120:b);null!=fa&&(e.cellEditor.restoreSelection(fa),fa=null);for(var c=e.getSelectedElement();null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=c.parentNode;
null!=c&&c==e.cellEditor.textarea&&null!=e.cellEditor.textarea.firstChild&&("P"!=e.cellEditor.textarea.firstChild.nodeName&&(e.cellEditor.textarea.innerHTML="<p>"+e.cellEditor.textarea.innerHTML+"</p>"),c=e.cellEditor.textarea.firstChild);null!=c&&null!=e.cellEditor.textarea&&c!=e.cellEditor.textarea&&e.cellEditor.textarea.contains(c)&&(c.style.lineHeight=b/100);a.value=b+" %"},function(a){sa=a;mxEvent.addListener(a,"mousedown",function(){document.activeElement==e.cellEditor.textarea&&(fa=e.cellEditor.saveSelection())});
mxEvent.addListener(a,"touchstart",function(){document.activeElement==e.cellEditor.textarea&&(fa=e.cellEditor.saveSelection())});a.value="120 %"}));k=f.cloneNode(!1);k.style.paddingLeft="0px";h=this.editorUi.toolbar.addItems(["link","image"],k,!0);n=[this.editorUi.toolbar.addButton("geSprite-horizontalrule",mxResources.get("insertHorizontalRule"),function(){document.execCommand("inserthorizontalrule",!1)},k),this.editorUi.toolbar.addMenuFunctionInContainer(k,"geSprite-table",mxResources.get("table"),
!1,mxUtils.bind(this,function(a){this.editorUi.menus.addInsertTableItem(a,null,null,!1)}))];this.styleButtons(h);this.styleButtons(n);h=this.createPanel();h.style.paddingTop="10px";h.style.paddingBottom="10px";h.appendChild(this.createTitle(mxResources.get("insert")));h.appendChild(k);a.appendChild(h);h=f.cloneNode(!1);h.style.paddingLeft="0px";n=[this.editorUi.toolbar.addButton("geSprite-insertcolumnbefore",mxResources.get("insertColumnBefore"),mxUtils.bind(this,function(){try{null!=z&&e.insertColumn(z,
-null!=E?E.cellIndex:0)}catch(aa){this.editorUi.handleError(aa)}}),h),this.editorUi.toolbar.addButton("geSprite-insertcolumnafter",mxResources.get("insertColumnAfter"),mxUtils.bind(this,function(){try{null!=z&&e.insertColumn(z,null!=E?E.cellIndex+1:-1)}catch(aa){this.editorUi.handleError(aa)}}),h),this.editorUi.toolbar.addButton("geSprite-deletecolumn",mxResources.get("deleteColumn"),mxUtils.bind(this,function(){try{null!=z&&null!=E&&e.deleteColumn(z,E.cellIndex)}catch(aa){this.editorUi.handleError(aa)}}),
+null!=G?G.cellIndex:0)}catch(aa){this.editorUi.handleError(aa)}}),h),this.editorUi.toolbar.addButton("geSprite-insertcolumnafter",mxResources.get("insertColumnAfter"),mxUtils.bind(this,function(){try{null!=z&&e.insertColumn(z,null!=G?G.cellIndex+1:-1)}catch(aa){this.editorUi.handleError(aa)}}),h),this.editorUi.toolbar.addButton("geSprite-deletecolumn",mxResources.get("deleteColumn"),mxUtils.bind(this,function(){try{null!=z&&null!=G&&e.deleteColumn(z,G.cellIndex)}catch(aa){this.editorUi.handleError(aa)}}),
h),this.editorUi.toolbar.addButton("geSprite-insertrowbefore",mxResources.get("insertRowBefore"),mxUtils.bind(this,function(){try{null!=z&&null!=K&&e.insertRow(z,K.sectionRowIndex)}catch(aa){this.editorUi.handleError(aa)}}),h),this.editorUi.toolbar.addButton("geSprite-insertrowafter",mxResources.get("insertRowAfter"),mxUtils.bind(this,function(){try{null!=z&&null!=K&&e.insertRow(z,K.sectionRowIndex+1)}catch(aa){this.editorUi.handleError(aa)}}),h),this.editorUi.toolbar.addButton("geSprite-deleterow",
mxResources.get("deleteRow"),mxUtils.bind(this,function(){try{null!=z&&null!=K&&e.deleteRow(z,K.sectionRowIndex)}catch(aa){this.editorUi.handleError(aa)}}),h)];this.styleButtons(n);n[2].style.marginRight="10px";k=this.createPanel();k.style.paddingTop="10px";k.style.paddingBottom="10px";k.appendChild(this.createTitle(mxResources.get("table")));k.appendChild(h);f=f.cloneNode(!1);f.style.paddingLeft="0px";n=[this.editorUi.toolbar.addButton("geSprite-strokecolor",mxResources.get("borderColor"),mxUtils.bind(this,
-function(a){if(null!=z){var b=z.style.borderColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)});this.editorUi.pickColor(b,function(b){var c=null==E||null!=a&&mxEvent.isShiftDown(a)?z:E;e.processElements(c,function(a){a.style.border=null});null==b||b==mxConstants.NONE?(c.removeAttribute("border"),c.style.border="",c.style.borderCollapse=
+function(a){if(null!=z){var b=z.style.borderColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)});this.editorUi.pickColor(b,function(b){var c=null==G||null!=a&&mxEvent.isShiftDown(a)?z:G;e.processElements(c,function(a){a.style.border=null});null==b||b==mxConstants.NONE?(c.removeAttribute("border"),c.style.border="",c.style.borderCollapse=
""):(c.setAttribute("border","1"),c.style.border="1px solid "+b,c.style.borderCollapse="collapse")})}}),f),this.editorUi.toolbar.addButton("geSprite-fillcolor",mxResources.get("backgroundColor"),mxUtils.bind(this,function(a){if(null!=z){var b=z.style.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)});this.editorUi.pickColor(b,
-function(b){var c=null==E||null!=a&&mxEvent.isShiftDown(a)?z:E;e.processElements(c,function(a){a.style.backgroundColor=null});c.style.backgroundColor=null==b||b==mxConstants.NONE?"":b})}}),f),this.editorUi.toolbar.addButton("geSprite-fit",mxResources.get("spacing"),function(){if(null!=z){var a=z.getAttribute("cellPadding")||0,a=new FilenameDialog(c,a,mxResources.get("apply"),mxUtils.bind(this,function(a){null!=a&&0<a.length?z.setAttribute("cellPadding",a):z.removeAttribute("cellPadding")}),mxResources.get("spacing"));
+function(b){var c=null==G||null!=a&&mxEvent.isShiftDown(a)?z:G;e.processElements(c,function(a){a.style.backgroundColor=null});c.style.backgroundColor=null==b||b==mxConstants.NONE?"":b})}}),f),this.editorUi.toolbar.addButton("geSprite-fit",mxResources.get("spacing"),function(){if(null!=z){var a=z.getAttribute("cellPadding")||0,a=new FilenameDialog(c,a,mxResources.get("apply"),mxUtils.bind(this,function(a){null!=a&&0<a.length?z.setAttribute("cellPadding",a):z.removeAttribute("cellPadding")}),mxResources.get("spacing"));
c.showDialog(a.container,300,80,!0,!0);a.init()}},f),this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),function(){null!=z&&z.setAttribute("align","left")},f),this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center"),function(){null!=z&&z.setAttribute("align","center")},f),this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),function(){null!=z&&z.setAttribute("align","right")},f)];this.styleButtons(n);n[2].style.marginRight="10px";k.appendChild(f);
-a.appendChild(k);G=k}else a.appendChild(k),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(h);var Y=mxUtils.bind(this,function(a,c,e){d=this.format.getSelectionState();a=mxUtils.getValue(d.style,mxConstants.STYLE_FONTSTYLE,0);b(m[0],(a&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);b(m[1],(a&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC);b(m[2],(a&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);g.firstChild.nodeValue=mxUtils.getValue(d.style,
-mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont);b(l,"0"==mxUtils.getValue(d.style,mxConstants.STYLE_HORIZONTAL,"1"));if(e||document.activeElement!=P)a=parseFloat(mxUtils.getValue(d.style,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize)),P.value=isNaN(a)?"":a+" pt";a=mxUtils.getValue(d.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);b(r,a==mxConstants.ALIGN_LEFT);b(u,a==mxConstants.ALIGN_CENTER);b(v,a==mxConstants.ALIGN_RIGHT);a=mxUtils.getValue(d.style,mxConstants.STYLE_VERTICAL_ALIGN,
+a.appendChild(k);F=k}else a.appendChild(k),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(h);var Y=mxUtils.bind(this,function(a,c,e){d=this.format.getSelectionState();a=mxUtils.getValue(d.style,mxConstants.STYLE_FONTSTYLE,0);b(m[0],(a&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);b(m[1],(a&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC);b(m[2],(a&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);g.firstChild.nodeValue=mxUtils.getValue(d.style,
+mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont);b(l,"0"==mxUtils.getValue(d.style,mxConstants.STYLE_HORIZONTAL,"1"));if(e||document.activeElement!=O)a=parseFloat(mxUtils.getValue(d.style,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize)),O.value=isNaN(a)?"":a+" pt";a=mxUtils.getValue(d.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);b(r,a==mxConstants.ALIGN_LEFT);b(u,a==mxConstants.ALIGN_CENTER);b(v,a==mxConstants.ALIGN_RIGHT);a=mxUtils.getValue(d.style,mxConstants.STYLE_VERTICAL_ALIGN,
mxConstants.ALIGN_MIDDLE);b(x,a==mxConstants.ALIGN_TOP);b(w,a==mxConstants.ALIGN_MIDDLE);b(y,a==mxConstants.ALIGN_BOTTOM);a=mxUtils.getValue(d.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);c=mxUtils.getValue(d.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);L.value=a==mxConstants.ALIGN_LEFT&&c==mxConstants.ALIGN_TOP?"topLeft":a==mxConstants.ALIGN_CENTER&&c==mxConstants.ALIGN_TOP?"top":a==mxConstants.ALIGN_RIGHT&&c==mxConstants.ALIGN_TOP?"topRight":a==mxConstants.ALIGN_LEFT&&
-c==mxConstants.ALIGN_BOTTOM?"bottomLeft":a==mxConstants.ALIGN_CENTER&&c==mxConstants.ALIGN_BOTTOM?"bottom":a==mxConstants.ALIGN_RIGHT&&c==mxConstants.ALIGN_BOTTOM?"bottomRight":a==mxConstants.ALIGN_LEFT?"left":a==mxConstants.ALIGN_RIGHT?"right":"center";a=mxUtils.getValue(d.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);a==mxConstants.TEXT_DIRECTION_RTL?Q.value="rightToLeft":a==mxConstants.TEXT_DIRECTION_LTR?Q.value="leftToRight":a==mxConstants.TEXT_DIRECTION_AUTO&&(Q.value=
-"automatic");if(e||document.activeElement!=la)a=parseFloat(mxUtils.getValue(d.style,mxConstants.STYLE_SPACING,2)),la.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=ra)a=parseFloat(mxUtils.getValue(d.style,mxConstants.STYLE_SPACING_TOP,0)),ra.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=da)a=parseFloat(mxUtils.getValue(d.style,mxConstants.STYLE_SPACING_RIGHT,0)),da.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=ka)a=parseFloat(mxUtils.getValue(d.style,mxConstants.STYLE_SPACING_BOTTOM,
-0)),ka.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=ja)a=parseFloat(mxUtils.getValue(d.style,mxConstants.STYLE_SPACING_LEFT,0)),ja.value=isNaN(a)?"":a+" pt"});ha=this.installInputHandler(la,mxConstants.STYLE_SPACING,2,-999,999," pt");pa=this.installInputHandler(ra,mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");qa=this.installInputHandler(da,mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");ua=this.installInputHandler(ka,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");na=this.installInputHandler(ja,
-mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(P,Y);this.addKeyHandler(la,Y);this.addKeyHandler(ra,Y);this.addKeyHandler(da,Y);this.addKeyHandler(ka,Y);this.addKeyHandler(ja,Y);e.getModel().addListener(mxEvent.CHANGE,Y);this.listeners.push({destroy:function(){e.getModel().removeListener(Y)}});Y();if(e.cellEditor.isContentEditing()){var Z=!1,f=function(){Z||(Z=!0,window.setTimeout(function(){var a=e.getSelectedEditingElement();if(null!=a){var c=function(a,b){if(null!=a&&null!=
+c==mxConstants.ALIGN_BOTTOM?"bottomLeft":a==mxConstants.ALIGN_CENTER&&c==mxConstants.ALIGN_BOTTOM?"bottom":a==mxConstants.ALIGN_RIGHT&&c==mxConstants.ALIGN_BOTTOM?"bottomRight":a==mxConstants.ALIGN_LEFT?"left":a==mxConstants.ALIGN_RIGHT?"right":"center";a=mxUtils.getValue(d.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);a==mxConstants.TEXT_DIRECTION_RTL?R.value="rightToLeft":a==mxConstants.TEXT_DIRECTION_LTR?R.value="leftToRight":a==mxConstants.TEXT_DIRECTION_AUTO&&(R.value=
+"automatic");if(e||document.activeElement!=la)a=parseFloat(mxUtils.getValue(d.style,mxConstants.STYLE_SPACING,2)),la.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=ra)a=parseFloat(mxUtils.getValue(d.style,mxConstants.STYLE_SPACING_TOP,0)),ra.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=da)a=parseFloat(mxUtils.getValue(d.style,mxConstants.STYLE_SPACING_RIGHT,0)),da.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=ja)a=parseFloat(mxUtils.getValue(d.style,mxConstants.STYLE_SPACING_BOTTOM,
+0)),ja.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=ia)a=parseFloat(mxUtils.getValue(d.style,mxConstants.STYLE_SPACING_LEFT,0)),ia.value=isNaN(a)?"":a+" pt"});ga=this.installInputHandler(la,mxConstants.STYLE_SPACING,2,-999,999," pt");pa=this.installInputHandler(ra,mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");qa=this.installInputHandler(da,mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");ua=this.installInputHandler(ja,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");na=this.installInputHandler(ia,
+mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(O,Y);this.addKeyHandler(la,Y);this.addKeyHandler(ra,Y);this.addKeyHandler(da,Y);this.addKeyHandler(ja,Y);this.addKeyHandler(ia,Y);e.getModel().addListener(mxEvent.CHANGE,Y);this.listeners.push({destroy:function(){e.getModel().removeListener(Y)}});Y();if(e.cellEditor.isContentEditing()){var Z=!1,f=function(){Z||(Z=!0,window.setTimeout(function(){var a=e.getSelectedEditingElement();if(null!=a){var c=function(a,b){if(null!=a&&null!=
b){if(a==b)return!0;if(a.length>b.length+1)return a.substring(a.length-b.length-1,a.length)=="-"+b}return!1},f=function(b){if(null!=e.getParentByName(a,b,e.cellEditor.textarea))return!0;for(var c=a;null!=c&&1==c.childNodes.length;)if(c=c.childNodes[0],c.nodeName==b)return!0;return!1},k=function(a){a=null!=a?a.fontSize:null;return null!=a&&"px"==a.substring(a.length-2)?parseFloat(a):mxConstants.DEFAULT_FONTSIZE},h=function(a,b,c){return null!=c.style&&null!=b?(b=b.lineHeight,null!=c.style.lineHeight&&
"%"==c.style.lineHeight.substring(c.style.lineHeight.length-1)?parseInt(c.style.lineHeight)/100:"px"==b.substring(b.length-2)?parseFloat(b)/a:parseInt(b)):""},l=mxUtils.getCurrentStyle(a),n=k(l),p=h(n,l,a),t=a.getElementsByTagName("*");if(0<t.length&&window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11)for(var x=window.getSelection(),w=0;w<t.length;w++)if(x.containsNode(t[w],!0)){temp=mxUtils.getCurrentStyle(t[w]);var n=Math.max(k(temp),n),y=h(n,temp,t[w]);if(y!=p||isNaN(y))p=""}null!=l&&(b(m[0],
-"bold"==l.fontWeight||400<l.fontWeight||f("B")||f("STRONG")),b(m[1],"italic"==l.fontStyle||f("I")||f("EM")),b(m[2],f("U")),b(I,f("SUP")),b(F,f("SUB")),e.cellEditor.isTableSelected()?(b(A,c(l.textAlign,"justify")),b(r,c(l.textAlign,"left")),b(u,c(l.textAlign,"center")),b(v,c(l.textAlign,"right"))):(f=e.cellEditor.align||mxUtils.getValue(d.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),c(l.textAlign,"justify")?(b(A,c(l.textAlign,"justify")),b(r,!1),b(u,!1),b(v,!1)):(b(A,!1),b(r,f==mxConstants.ALIGN_LEFT),
-b(u,f==mxConstants.ALIGN_CENTER),b(v,f==mxConstants.ALIGN_RIGHT))),z=e.getParentByName(a,"TABLE",e.cellEditor.textarea),K=null==z?null:e.getParentByName(a,"TR",z),E=null==z?null:e.getParentByNames(a,["TD","TH"],z),G.style.display=null!=z?"":"none",document.activeElement!=P&&("FONT"==a.nodeName&&"4"==a.getAttribute("size")&&null!=R?(a.removeAttribute("size"),a.style.fontSize=R+" pt",R=null):P.value=isNaN(n)?"":n+" pt",y=parseFloat(p),isNaN(y)?sa.value="100 %":sa.value=Math.round(100*y)+" %"),null!=
-W&&(ga="rgba(0, 0, 0, 0)"==l.color||"transparent"==l.color?mxConstants.NONE:mxUtils.rgba2hex(l.color),W(ga,!0)),null!=T&&(U="rgba(0, 0, 0, 0)"==l.backgroundColor||"transparent"==l.backgroundColor?mxConstants.NONE:mxUtils.rgba2hex(l.backgroundColor),T(U,!0)),null!=g.firstChild&&(g.firstChild.nodeValue=Graph.stripQuotes(l.fontFamily)))}Z=!1},0))};(mxClient.IS_FF||mxClient.IS_EDGE||mxClient.IS_IE||mxClient.IS_IE11)&&mxEvent.addListener(e.cellEditor.textarea,"DOMSubtreeModified",f);mxEvent.addListener(e.cellEditor.textarea,
+"bold"==l.fontWeight||400<l.fontWeight||f("B")||f("STRONG")),b(m[1],"italic"==l.fontStyle||f("I")||f("EM")),b(m[2],f("U")),b(I,f("SUP")),b(E,f("SUB")),e.cellEditor.isTableSelected()?(b(A,c(l.textAlign,"justify")),b(r,c(l.textAlign,"left")),b(u,c(l.textAlign,"center")),b(v,c(l.textAlign,"right"))):(f=e.cellEditor.align||mxUtils.getValue(d.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),c(l.textAlign,"justify")?(b(A,c(l.textAlign,"justify")),b(r,!1),b(u,!1),b(v,!1)):(b(A,!1),b(r,f==mxConstants.ALIGN_LEFT),
+b(u,f==mxConstants.ALIGN_CENTER),b(v,f==mxConstants.ALIGN_RIGHT))),z=e.getParentByName(a,"TABLE",e.cellEditor.textarea),K=null==z?null:e.getParentByName(a,"TR",z),G=null==z?null:e.getParentByNames(a,["TD","TH"],z),F.style.display=null!=z?"":"none",document.activeElement!=O&&("FONT"==a.nodeName&&"4"==a.getAttribute("size")&&null!=S?(a.removeAttribute("size"),a.style.fontSize=S+" pt",S=null):O.value=isNaN(n)?"":n+" pt",y=parseFloat(p),isNaN(y)?sa.value="100 %":sa.value=Math.round(100*y)+" %"),null!=
+W&&(ka="rgba(0, 0, 0, 0)"==l.color||"transparent"==l.color?mxConstants.NONE:mxUtils.rgba2hex(l.color),W(ka,!0)),null!=U&&(Q="rgba(0, 0, 0, 0)"==l.backgroundColor||"transparent"==l.backgroundColor?mxConstants.NONE:mxUtils.rgba2hex(l.backgroundColor),U(Q,!0)),null!=g.firstChild&&(g.firstChild.nodeValue=Graph.stripQuotes(l.fontFamily)))}Z=!1},0))};(mxClient.IS_FF||mxClient.IS_EDGE||mxClient.IS_IE||mxClient.IS_IE11)&&mxEvent.addListener(e.cellEditor.textarea,"DOMSubtreeModified",f);mxEvent.addListener(e.cellEditor.textarea,
"input",f);mxEvent.addListener(e.cellEditor.textarea,"touchend",f);mxEvent.addListener(e.cellEditor.textarea,"mouseup",f);mxEvent.addListener(e.cellEditor.textarea,"keyup",f);this.listeners.push({destroy:function(){}});f()}return a};StyleFormatPanel=function(a,b,c){BaseFormatPanel.call(this,a,b,c);this.init()};mxUtils.extend(StyleFormatPanel,BaseFormatPanel);StyleFormatPanel.prototype.defaultStrokeColor="black";
StyleFormatPanel.prototype.init=function(){var a=this.format.getSelectionState();!a.containsLabel&&0<a.cells.length&&(a.containsImage&&1==a.vertices.length&&"image"==a.style.shape&&null!=a.style.image&&"data:image/svg+xml;"==a.style.image.substring(0,19)&&this.container.appendChild(this.addSvgStyles(this.createPanel())),a.containsImage&&"image"!=a.style.shape||this.container.appendChild(this.addFill(this.createPanel())),this.container.appendChild(this.addStroke(this.createPanel())),this.container.appendChild(this.addLineJumps(this.createPanel())),
a=this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_OPACITY),a.style.paddingTop="8px",a.style.paddingBottom="8px",this.container.appendChild(a),this.container.appendChild(this.addEffects(this.createPanel())));a=this.addEditOps(this.createPanel());null!=a.firstChild&&mxUtils.br(a);this.container.appendChild(this.addStyleOps(a))};
@@ -3134,11 +3132,11 @@ mxResources.get("gradient")))};
StyleFormatPanel.prototype.addEditOps=function(a){var b=this.format.getSelectionState(),c=null;1==b.cells.length&&(c=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),c.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),c.style.width="210px",c.style.marginBottom="2px",a.appendChild(c));b.image&&0<b.cells.length&&(b=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,
function(a){this.editorUi.actions.get("image").funct()})),b.setAttribute("title",mxResources.get("editImage")),b.style.marginBottom="2px",null==c?b.style.width="210px":(c.style.width="104px",b.style.width="104px",b.style.marginLeft="2px"),a.appendChild(b));return a};
StyleFormatPanel.prototype.addFill=function(a){var b=this.editorUi,c=b.editor.graph,e=this.format.getSelectionState();a.style.paddingTop="6px";a.style.paddingBottom="6px";var d=document.createElement("select");d.style.position="absolute";d.style.left="104px";d.style.width="70px";d.style.height="22px";d.style.padding="0px";d.style.marginTop="-3px";d.style.borderRadius="4px";d.style.border="1px solid rgb(160, 160, 160)";d.style.boxSizing="border-box";var f=d.cloneNode(!1);mxEvent.addListener(d,"click",
-function(a){mxEvent.consume(a)});mxEvent.addListener(f,"click",function(a){mxEvent.consume(a)});var k=1<=e.vertices.length?c.stylesheet.getDefaultVertexStyle():c.stylesheet.getDefaultEdgeStyle(),h=this.createCellColorOption(mxResources.get("gradient"),mxConstants.STYLE_GRADIENTCOLOR,null!=k[mxConstants.STYLE_GRADIENTCOLOR]?k[mxConstants.STYLE_GRADIENTCOLOR]:"#ffffff",function(a){d.style.display=null==a||a==mxConstants.NONE?"none":""},function(a){c.updateCellStyles(mxConstants.STYLE_GRADIENTCOLOR,
-a,c.getSelectionCells())}),g="image"==e.style.shape?mxConstants.STYLE_IMAGE_BACKGROUND:mxConstants.STYLE_FILLCOLOR,k="image"==e.style.shape?mxResources.get("background"):mxResources.get("fill"),k=this.createCellColorOption(k,g,"default",null,mxUtils.bind(this,function(a){c.setCellStyles(g,a,e.cells)}),c.shapeBackgroundColor);k.style.fontWeight="bold";var m=mxUtils.getValue(e.style,g,null);h.style.display=null!=m&&m!=mxConstants.NONE&&e.fill&&"image"!=e.style.shape?"":"none";for(var l=[mxConstants.DIRECTION_NORTH,
-mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_RADIAL],m=0;m<l.length;m++){var n=document.createElement("option");n.setAttribute("value",l[m]);mxUtils.write(n,mxResources.get(l[m]));d.appendChild(n)}h.appendChild(d);for(m=0;m<Editor.roughFillStyles.length;m++)l=document.createElement("option"),l.setAttribute("value",Editor.roughFillStyles[m].val),mxUtils.write(l,Editor.roughFillStyles[m].dispName),f.appendChild(l);k.appendChild(f);var p=mxUtils.bind(this,
-function(){e=this.format.getSelectionState();var b=mxUtils.getValue(e.style,mxConstants.STYLE_GRADIENT_DIRECTION,mxConstants.DIRECTION_SOUTH),c=mxUtils.getValue(e.style,"fillStyle","auto");""==b&&(b=mxConstants.DIRECTION_SOUTH);d.value=b;f.value=c;a.style.display=e.fill?"":"none";b=mxUtils.getValue(e.style,mxConstants.STYLE_FILLCOLOR,null);!e.fill||e.containsImage||null==b||b==mxConstants.NONE||"filledEdge"==e.style.shape?(f.style.display="none",h.style.display="none"):(f.style.display="1"==e.style.sketch?
-"":"none",h.style.display="1"!=e.style.sketch||"solid"==c||"auto"==c?"":"none")});c.getModel().addListener(mxEvent.CHANGE,p);this.listeners.push({destroy:function(){c.getModel().removeListener(p)}});p();mxEvent.addListener(d,"change",function(a){c.setCellStyles(mxConstants.STYLE_GRADIENT_DIRECTION,d.value,e.cells);b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_GRADIENT_DIRECTION],"values",[d.value],"cells",e.cells));mxEvent.consume(a)});mxEvent.addListener(f,"change",function(a){c.setCellStyles("fillStyle",
+function(a){mxEvent.consume(a)});mxEvent.addListener(f,"click",function(a){mxEvent.consume(a)});var k=1<=e.vertices.length?c.stylesheet.getDefaultVertexStyle():c.stylesheet.getDefaultEdgeStyle(),h=this.createCellColorOption(mxResources.get("gradient"),mxConstants.STYLE_GRADIENTCOLOR,null!=k[mxConstants.STYLE_GRADIENTCOLOR]?k[mxConstants.STYLE_GRADIENTCOLOR]:"#ffffff",function(a){d.style.display=null==a||a==mxConstants.NONE?"none":""},function(a){c.updateCellStyles({gradientColor:a},c.getSelectionCells())}),
+g="image"==e.style.shape?mxConstants.STYLE_IMAGE_BACKGROUND:mxConstants.STYLE_FILLCOLOR,k="image"==e.style.shape?mxResources.get("background"):mxResources.get("fill"),k=this.createCellColorOption(k,g,"default",null,mxUtils.bind(this,function(a){c.setCellStyles(g,a,e.cells)}),c.shapeBackgroundColor);k.style.fontWeight="bold";var m=mxUtils.getValue(e.style,g,null);h.style.display=null!=m&&m!=mxConstants.NONE&&e.fill&&"image"!=e.style.shape?"":"none";for(var l=[mxConstants.DIRECTION_NORTH,mxConstants.DIRECTION_EAST,
+mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_RADIAL],m=0;m<l.length;m++){var n=document.createElement("option");n.setAttribute("value",l[m]);mxUtils.write(n,mxResources.get(l[m]));d.appendChild(n)}h.appendChild(d);for(m=0;m<Editor.roughFillStyles.length;m++)l=document.createElement("option"),l.setAttribute("value",Editor.roughFillStyles[m].val),mxUtils.write(l,Editor.roughFillStyles[m].dispName),f.appendChild(l);k.appendChild(f);var p=mxUtils.bind(this,function(){e=
+this.format.getSelectionState();var b=mxUtils.getValue(e.style,mxConstants.STYLE_GRADIENT_DIRECTION,mxConstants.DIRECTION_SOUTH),c=mxUtils.getValue(e.style,"fillStyle","auto");""==b&&(b=mxConstants.DIRECTION_SOUTH);d.value=b;f.value=c;a.style.display=e.fill?"":"none";b=mxUtils.getValue(e.style,mxConstants.STYLE_FILLCOLOR,null);!e.fill||e.containsImage||null==b||b==mxConstants.NONE||"filledEdge"==e.style.shape?(f.style.display="none",h.style.display="none"):(f.style.display="1"==e.style.sketch?"":
+"none",h.style.display="1"!=e.style.sketch||"solid"==c||"auto"==c?"":"none")});c.getModel().addListener(mxEvent.CHANGE,p);this.listeners.push({destroy:function(){c.getModel().removeListener(p)}});p();mxEvent.addListener(d,"change",function(a){c.setCellStyles(mxConstants.STYLE_GRADIENT_DIRECTION,d.value,e.cells);b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_GRADIENT_DIRECTION],"values",[d.value],"cells",e.cells));mxEvent.consume(a)});mxEvent.addListener(f,"change",function(a){c.setCellStyles("fillStyle",
f.value,e.cells);b.fireEvent(new mxEventObject("styleChanged","keys",["fillStyle"],"values",[f.value],"cells",e.cells));mxEvent.consume(a)});a.appendChild(k);a.appendChild(h);k=this.getCustomColors();for(m=0;m<k.length;m++)a.appendChild(this.createCellColorOption(k[m].title,k[m].key,k[m].defaultValue));return a};
StyleFormatPanel.prototype.getCustomColors=function(){var a=this.format.getSelectionState(),b=[];"swimlane"!=a.style.shape&&"table"!=a.style.shape||b.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"default"});return b};
StyleFormatPanel.prototype.addStroke=function(a){function b(a){var b=parseFloat(t.value),b=Math.min(999,Math.max(0,isNaN(b)?1:b));b!=mxUtils.getValue(f.style,mxConstants.STYLE_STROKEWIDTH,1)&&(d.setCellStyles(mxConstants.STYLE_STROKEWIDTH,b,f.cells),e.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[b],"cells",f.cells)));t.value=b+" pt";mxEvent.consume(a)}function c(a){var b=parseFloat(x.value),b=Math.min(999,Math.max(0,isNaN(b)?1:b));b!=mxUtils.getValue(f.style,
@@ -3158,7 +3156,7 @@ function(a){"arrow"!=f.style.shape&&(this.editorUi.menus.edgeStyleChange(a,"",[m
this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["elbowEdgeStyle",null,null,null],"geIcon geSprite geSprite-horizontalelbow",null,!0).setAttribute("title",mxResources.get("simple")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["elbowEdgeStyle","vertical",null,null],"geIcon geSprite geSprite-verticalelbow",
null,!0).setAttribute("title",mxResources.get("simple")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["isometricEdgeStyle",null,null,null],"geIcon geSprite geSprite-horizontalisometric",null,!0).setAttribute("title",mxResources.get("isometric")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["isometricEdgeStyle",
"vertical",null,null],"geIcon geSprite geSprite-verticalisometric",null,!0).setAttribute("title",mxResources.get("isometric")),"connector"==f.style.shape&&this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle","1",null],"geIcon geSprite geSprite-curved",null,!0).setAttribute("title",mxResources.get("curved")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],
-["entityRelationEdgeStyle",null,null],"geIcon geSprite geSprite-entity",null,!0).setAttribute("title",mxResources.get("entityRelation")))})),F=this.editorUi.toolbar.addMenuFunctionInContainer(g,"geSprite-startclassic",mxResources.get("linestart"),!1,mxUtils.bind(this,function(a){if("connector"==f.style.shape||"flexArrow"==f.style.shape||"filledEdge"==f.style.shape){var b=this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.NONE,0],"geIcon",null,!1);b.setAttribute("title",
+["entityRelationEdgeStyle",null,null],"geIcon geSprite geSprite-entity",null,!0).setAttribute("title",mxResources.get("entityRelation")))})),E=this.editorUi.toolbar.addMenuFunctionInContainer(g,"geSprite-startclassic",mxResources.get("linestart"),!1,mxUtils.bind(this,function(a){if("connector"==f.style.shape||"flexArrow"==f.style.shape||"filledEdge"==f.style.shape){var b=this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.NONE,0],"geIcon",null,!1);b.setAttribute("title",
mxResources.get("none"));var c=document.createElement("font");c.style.fontSize="10px";mxUtils.write(c,mxResources.get("none"));b.firstChild.firstChild.appendChild(c);"connector"==f.style.shape||"filledEdge"==f.style.shape?(Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_CLASSIC,1],null,null,!1,Format.classicFilledMarkerImage.src)),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,
"startFill"],[mxConstants.ARROW_CLASSIC_THIN,1],null,null,!1,Format.classicThinFilledMarkerImage.src)),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_OPEN,0],null,null,!1,Format.openFilledMarkerImage.src)),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_OPEN_THIN,0],null,null,!1,Format.openThinFilledMarkerImage.src)),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(a,
"",[mxConstants.STYLE_STARTARROW,"startFill"],["openAsync",0],null,null,!1,Format.openAsyncFilledMarkerImage.src)),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_BLOCK,1],null,null,!1,Format.blockFilledMarkerImage.src)),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_BLOCK_THIN,1],null,null,!1,Format.blockThinFilledMarkerImage.src)),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(a,
@@ -3185,22 +3183,22 @@ Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STY
"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERone",0],null,null,!1,Format.EROneMarkerImage.src),"scaleX(-1)"),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERmandOne",0],null,null,!1,Format.ERmandOneMarkerImage.src),"scaleX(-1)"),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERmany",0],null,null,!1,Format.ERmanyMarkerImage.src),"scaleX(-1)"),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(a,
"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERoneToMany",0],null,null,!1,Format.ERoneToManyMarkerImage.src),"scaleX(-1)"),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToOne",0],null,null,!1,Format.ERzeroToOneMarkerImage.src),"scaleX(-1)"),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToMany",0],null,null,!1,Format.ERzeroToManyMarkerImage.src),"scaleX(-1)"),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(a,
"",[mxConstants.STYLE_ENDARROW,"endFill"],["doubleBlock",0],null,null,!1,Format.doubleBlockMarkerImage.src),"scaleX(-1)"),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["doubleBlock",1],null,null,!1,Format.doubleBlockFilledMarkerImage.src),"scaleX(-1)")):this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-endblocktrans",null,!1).setAttribute("title",mxResources.get("block"));
-a.div.style.width="40px"}})),w=this.addArrow(v,8);w.nextSibling.style.position="relative";w.nextSibling.style.top="-2px";w=this.addArrow(y,10);w.nextSibling.style.position="relative";w.nextSibling.style.top="-3px";y.getElementsByTagName("img")[0].style.top="-1px";this.addArrow(F);this.addArrow(I);w=this.addArrow(m,9);w.className="geIcon";w.style.width="auto";var A=this.addArrow(l,9);A.className="geIcon";A.style.width="22px";var G=document.createElement("div");G.style.width="84px";G.style.height="1px";
-G.style.borderBottom="1px solid "+this.defaultStrokeColor;G.style.marginBottom="7px";w.appendChild(G);var z=document.createElement("div");z.style.width="23px";z.style.height="1px";z.style.borderBottom="1px solid "+this.defaultStrokeColor;z.style.marginBottom="7px";A.appendChild(z);m.style.height="15px";m.style.marginLeft="16px";l.style.height="15px";l.style.marginLeft="3px";v.style.marginLeft="10px";v.style.height="15px";y.style.marginLeft="10px";y.style.height="17px";F.style.marginLeft="3px";F.style.height=
-"17px";I.style.marginLeft="3px";I.style.height="17px";a.appendChild(k);a.appendChild(u);a.appendChild(p);m=p.cloneNode(!1);m.style.padding="5px 4px 6px 0px";m.style.fontWeight="normal";l=document.createElement("div");l.style.position="absolute";l.style.marginLeft="0px";l.style.marginBottom="12px";l.style.marginTop="2px";l.style.fontWeight="normal";l.style.width="76px";mxUtils.write(l,mxResources.get("lineend"));m.appendChild(l);var E,K,L=this.addUnitInput(m,"pt",98,52,function(){E.apply(this,arguments)}),
-N=this.addUnitInput(m,"pt",30,52,function(){K.apply(this,arguments)});mxUtils.br(m);w=document.createElement("div");w.style.height="8px";m.appendChild(w);l=l.cloneNode(!1);mxUtils.write(l,mxResources.get("linestart"));m.appendChild(l);var J,Q,X=this.addUnitInput(m,"pt",98,52,function(){J.apply(this,arguments)}),ba=this.addUnitInput(m,"pt",30,52,function(){Q.apply(this,arguments)});mxUtils.br(m);this.addLabel(m,mxResources.get("spacing"),98,52);this.addLabel(m,mxResources.get("size"),30,52);mxUtils.br(m);
-k=k.cloneNode(!1);k.style.fontWeight="normal";k.style.position="relative";k.style.paddingLeft="16px";k.style.marginBottom="2px";k.style.marginTop="6px";k.style.borderWidth="0px";k.style.paddingBottom="18px";l=document.createElement("div");l.style.position="absolute";l.style.marginLeft="3px";l.style.marginBottom="12px";l.style.marginTop="1px";l.style.fontWeight="normal";l.style.width="120px";mxUtils.write(l,mxResources.get("perimeter"));k.appendChild(l);var P,R=this.addUnitInput(k,"pt",30,52,function(){P.apply(this,
-arguments)});f.edges.length==f.cells.length?(a.appendChild(g),a.appendChild(m)):f.vertices.length==f.cells.length&&a.appendChild(k);var T=mxUtils.bind(this,function(b,c,d){function g(a,b,c,d){c=c.getElementsByTagName("div")[0];null!=c&&(c.className=e.getCssClassForMarker(d,f.style.shape,a,b),c.nextSibling.style.marginLeft="1px",c.nextSibling.style.paddingRight="5px","geSprite geSprite-noarrow"==c.className?(c.innerHTML=mxUtils.htmlEntities(mxResources.get("none")),c.style.backgroundImage="none",c.style.verticalAlign=
+a.div.style.width="40px"}})),w=this.addArrow(v,8);w.nextSibling.style.position="relative";w.nextSibling.style.top="-2px";w=this.addArrow(y,10);w.nextSibling.style.position="relative";w.nextSibling.style.top="-3px";y.getElementsByTagName("img")[0].style.top="-1px";this.addArrow(E);this.addArrow(I);w=this.addArrow(m,9);w.className="geIcon";w.style.width="auto";var A=this.addArrow(l,9);A.className="geIcon";A.style.width="22px";var F=document.createElement("div");F.style.width="84px";F.style.height="1px";
+F.style.borderBottom="1px solid "+this.defaultStrokeColor;F.style.marginBottom="7px";w.appendChild(F);var z=document.createElement("div");z.style.width="23px";z.style.height="1px";z.style.borderBottom="1px solid "+this.defaultStrokeColor;z.style.marginBottom="7px";A.appendChild(z);m.style.height="15px";m.style.marginLeft="16px";l.style.height="15px";l.style.marginLeft="3px";v.style.marginLeft="10px";v.style.height="15px";y.style.marginLeft="10px";y.style.height="17px";E.style.marginLeft="3px";E.style.height=
+"17px";I.style.marginLeft="3px";I.style.height="17px";a.appendChild(k);a.appendChild(u);a.appendChild(p);m=p.cloneNode(!1);m.style.padding="5px 4px 6px 0px";m.style.fontWeight="normal";l=document.createElement("div");l.style.position="absolute";l.style.marginLeft="0px";l.style.marginBottom="12px";l.style.marginTop="2px";l.style.fontWeight="normal";l.style.width="76px";mxUtils.write(l,mxResources.get("lineend"));m.appendChild(l);var G,K,L=this.addUnitInput(m,"pt",98,52,function(){G.apply(this,arguments)}),
+N=this.addUnitInput(m,"pt",30,52,function(){K.apply(this,arguments)});mxUtils.br(m);w=document.createElement("div");w.style.height="8px";m.appendChild(w);l=l.cloneNode(!1);mxUtils.write(l,mxResources.get("linestart"));m.appendChild(l);var J,R,X=this.addUnitInput(m,"pt",98,52,function(){J.apply(this,arguments)}),ba=this.addUnitInput(m,"pt",30,52,function(){R.apply(this,arguments)});mxUtils.br(m);this.addLabel(m,mxResources.get("spacing"),98,52);this.addLabel(m,mxResources.get("size"),30,52);mxUtils.br(m);
+k=k.cloneNode(!1);k.style.fontWeight="normal";k.style.position="relative";k.style.paddingLeft="16px";k.style.marginBottom="2px";k.style.marginTop="6px";k.style.borderWidth="0px";k.style.paddingBottom="18px";l=document.createElement("div");l.style.position="absolute";l.style.marginLeft="3px";l.style.marginBottom="12px";l.style.marginTop="1px";l.style.fontWeight="normal";l.style.width="120px";mxUtils.write(l,mxResources.get("perimeter"));k.appendChild(l);var O,S=this.addUnitInput(k,"pt",30,52,function(){O.apply(this,
+arguments)});f.edges.length==f.cells.length?(a.appendChild(g),a.appendChild(m)):f.vertices.length==f.cells.length&&a.appendChild(k);var U=mxUtils.bind(this,function(b,c,d){function g(a,b,c,d){c=c.getElementsByTagName("div")[0];null!=c&&(c.className=e.getCssClassForMarker(d,f.style.shape,a,b),c.nextSibling.style.marginLeft="1px",c.nextSibling.style.paddingRight="5px","geSprite geSprite-noarrow"==c.className?(c.innerHTML=mxUtils.htmlEntities(mxResources.get("none")),c.style.backgroundImage="none",c.style.verticalAlign=
"top",c.style.marginTop="4px",c.style.fontSize="10px",c.style.filter="none",c.style.color=this.defaultStrokeColor,c.nextSibling.style.marginTop="0px"):(c.nextSibling.style.position="relative",c.nextSibling.style.top="-2px"));return c}f=this.format.getSelectionState();mxUtils.getValue(f.style,n,null);if(d||document.activeElement!=t)b=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_STROKEWIDTH,1)),t.value=isNaN(b)?"":b+" pt";if(d||document.activeElement!=x)b=parseFloat(mxUtils.getValue(f.style,
-mxConstants.STYLE_STROKEWIDTH,1)),x.value=isNaN(b)?"":b+" pt";h.style.visibility="connector"==f.style.shape||"filledEdge"==f.style.shape?"":"hidden";"1"==mxUtils.getValue(f.style,mxConstants.STYLE_CURVED,null)?h.value="curved":"1"==mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,null)&&(h.value="rounded");"1"==mxUtils.getValue(f.style,mxConstants.STYLE_DASHED,null)?null==mxUtils.getValue(f.style,mxConstants.STYLE_DASH_PATTERN,null)?G.style.borderBottom="1px dashed "+this.defaultStrokeColor:G.style.borderBottom=
-"1px dotted "+this.defaultStrokeColor:G.style.borderBottom="1px solid "+this.defaultStrokeColor;z.style.borderBottom=G.style.borderBottom;b=y.getElementsByTagName("div")[0];null!=b&&(c=mxUtils.getValue(f.style,mxConstants.STYLE_EDGE,null),"1"==mxUtils.getValue(f.style,mxConstants.STYLE_NOEDGESTYLE,null)&&(c=null),"orthogonalEdgeStyle"==c&&"1"==mxUtils.getValue(f.style,mxConstants.STYLE_CURVED,null)?b.className="geSprite geSprite-curved":b.className="straight"==c||"none"==c||null==c?"geSprite geSprite-straight":
+mxConstants.STYLE_STROKEWIDTH,1)),x.value=isNaN(b)?"":b+" pt";h.style.visibility="connector"==f.style.shape||"filledEdge"==f.style.shape?"":"hidden";"1"==mxUtils.getValue(f.style,mxConstants.STYLE_CURVED,null)?h.value="curved":"1"==mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,null)&&(h.value="rounded");"1"==mxUtils.getValue(f.style,mxConstants.STYLE_DASHED,null)?null==mxUtils.getValue(f.style,mxConstants.STYLE_DASH_PATTERN,null)?F.style.borderBottom="1px dashed "+this.defaultStrokeColor:F.style.borderBottom=
+"1px dotted "+this.defaultStrokeColor:F.style.borderBottom="1px solid "+this.defaultStrokeColor;z.style.borderBottom=F.style.borderBottom;b=y.getElementsByTagName("div")[0];null!=b&&(c=mxUtils.getValue(f.style,mxConstants.STYLE_EDGE,null),"1"==mxUtils.getValue(f.style,mxConstants.STYLE_NOEDGESTYLE,null)&&(c=null),"orthogonalEdgeStyle"==c&&"1"==mxUtils.getValue(f.style,mxConstants.STYLE_CURVED,null)?b.className="geSprite geSprite-curved":b.className="straight"==c||"none"==c||null==c?"geSprite geSprite-straight":
"entityRelationEdgeStyle"==c?"geSprite geSprite-entity":"elbowEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(f.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalelbow":"geSprite-horizontalelbow"):"isometricEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(f.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalisometric":"geSprite-horizontalisometric"):"geSprite geSprite-orthogonal");b=v.getElementsByTagName("div")[0];null!=b&&(b.className="link"==f.style.shape?"geSprite geSprite-linkedge":
-"flexArrow"==f.style.shape?"geSprite geSprite-arrow":"arrow"==f.style.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection");f.edges.length==f.cells.length?(u.style.display="",p.style.display="none"):(u.style.display="none",p.style.display="");Graph.lineJumpsEnabled&&0<f.edges.length&&0==f.vertices.length&&f.lineJumps&&(a.style.borderBottomStyle="none");b=g(mxUtils.getValue(f.style,mxConstants.STYLE_STARTARROW,null),mxUtils.getValue(f.style,"startFill","1"),F,"start");c=g(mxUtils.getValue(f.style,
-mxConstants.STYLE_ENDARROW,null),mxUtils.getValue(f.style,"endFill","1"),I,"end");null!=b&&null!=c&&("arrow"==f.style.shape?(b.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-endblocktrans"):"link"==f.style.shape&&(b.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-noarrow"));mxUtils.setOpacity(y,"arrow"==f.style.shape?30:100);"connector"!=f.style.shape&&"flexArrow"!=f.style.shape&&"filledEdge"!=f.style.shape?(mxUtils.setOpacity(F,30),mxUtils.setOpacity(I,
-30)):(mxUtils.setOpacity(F,100),mxUtils.setOpacity(I,100));if(d||document.activeElement!=ba)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)),ba.value=isNaN(b)?"":b+" pt";if(d||document.activeElement!=X)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),X.value=isNaN(b)?"":b+" pt";if(d||document.activeElement!=N)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),N.value=isNaN(b)?
-"":b+" pt";if(d||document.activeElement!=X)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0)),L.value=isNaN(b)?"":b+" pt";if(d||document.activeElement!=R)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_PERIMETER_SPACING,0)),R.value=isNaN(b)?"":b+" pt"});Q=this.installInputHandler(ba,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");J=this.installInputHandler(X,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");K=this.installInputHandler(N,
-mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");E=this.installInputHandler(L,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0,-999,999," pt");P=this.installInputHandler(R,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(t,T);this.addKeyHandler(ba,T);this.addKeyHandler(X,T);this.addKeyHandler(N,T);this.addKeyHandler(L,T);this.addKeyHandler(R,T);d.getModel().addListener(mxEvent.CHANGE,T);this.listeners.push({destroy:function(){d.getModel().removeListener(T)}});
-T();return a};
+"flexArrow"==f.style.shape?"geSprite geSprite-arrow":"arrow"==f.style.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection");f.edges.length==f.cells.length?(u.style.display="",p.style.display="none"):(u.style.display="none",p.style.display="");Graph.lineJumpsEnabled&&0<f.edges.length&&0==f.vertices.length&&f.lineJumps&&(a.style.borderBottomStyle="none");b=g(mxUtils.getValue(f.style,mxConstants.STYLE_STARTARROW,null),mxUtils.getValue(f.style,"startFill","1"),E,"start");c=g(mxUtils.getValue(f.style,
+mxConstants.STYLE_ENDARROW,null),mxUtils.getValue(f.style,"endFill","1"),I,"end");null!=b&&null!=c&&("arrow"==f.style.shape?(b.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-endblocktrans"):"link"==f.style.shape&&(b.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-noarrow"));mxUtils.setOpacity(y,"arrow"==f.style.shape?30:100);"connector"!=f.style.shape&&"flexArrow"!=f.style.shape&&"filledEdge"!=f.style.shape?(mxUtils.setOpacity(E,30),mxUtils.setOpacity(I,
+30)):(mxUtils.setOpacity(E,100),mxUtils.setOpacity(I,100));if(d||document.activeElement!=ba)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)),ba.value=isNaN(b)?"":b+" pt";if(d||document.activeElement!=X)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),X.value=isNaN(b)?"":b+" pt";if(d||document.activeElement!=N)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),N.value=isNaN(b)?
+"":b+" pt";if(d||document.activeElement!=X)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0)),L.value=isNaN(b)?"":b+" pt";if(d||document.activeElement!=S)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_PERIMETER_SPACING,0)),S.value=isNaN(b)?"":b+" pt"});R=this.installInputHandler(ba,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");J=this.installInputHandler(X,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");K=this.installInputHandler(N,
+mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");G=this.installInputHandler(L,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0,-999,999," pt");O=this.installInputHandler(S,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(t,U);this.addKeyHandler(ba,U);this.addKeyHandler(X,U);this.addKeyHandler(N,U);this.addKeyHandler(L,U);this.addKeyHandler(S,U);d.getModel().addListener(mxEvent.CHANGE,U);this.listeners.push({destroy:function(){d.getModel().removeListener(U)}});
+U();return a};
StyleFormatPanel.prototype.addLineJumps=function(a){var b=this.format.getSelectionState();if(Graph.lineJumpsEnabled&&0<b.edges.length&&0==b.vertices.length&&b.lineJumps){a.style.padding="2px 0px 24px 14px";var c=this.editorUi,e=c.editor.graph,d=document.createElement("div");d.style.position="absolute";d.style.maxWidth="82px";d.style.overflow="hidden";d.style.textOverflow="ellipsis";mxUtils.write(d,mxResources.get("lineJumps"));a.appendChild(d);var f=document.createElement("select");f.style.position=
"absolute";f.style.height="21px";f.style.padding="0px";f.style.marginTop="-2px";f.style.boxSizing="border-box";f.style.right="76px";f.style.width="54px";f.style.border="1px solid rgb(160, 160, 160)";f.style.borderRadius="4px";for(var d=["none","arc","gap","sharp","line"],k=0;k<d.length;k++){var h=document.createElement("option");h.setAttribute("value",d[k]);mxUtils.write(h,mxResources.get(d[k]));f.appendChild(h)}mxEvent.addListener(f,"change",function(a){e.getModel().beginUpdate();try{e.setCellStyles("jumpStyle",
f.value,b.cells),c.fireEvent(new mxEventObject("styleChanged","keys",["jumpStyle"],"values",[f.value],"cells",b.cells))}finally{e.getModel().endUpdate()}mxEvent.consume(a)});mxEvent.addListener(f,"click",function(a){mxEvent.consume(a)});a.appendChild(f);var g,m=this.addUnitInput(a,"pt",16,42,function(){g.apply(this,arguments)});g=this.installInputHandler(m,"jumpSize",Graph.defaultJumpSize,0,999," pt");var l=mxUtils.bind(this,function(a,c,d){b=this.format.getSelectionState();f.value=mxUtils.getValue(b.style,
@@ -3212,22 +3210,22 @@ StyleFormatPanel.prototype.addStyleOps=function(a){a.style.paddingTop="10px";a.s
mxUtils.extend(DiagramStylePanel,BaseFormatPanel);DiagramStylePanel.prototype.init=function(){var a=this.editorUi;this.darkModeChangedListener=mxUtils.bind(this,function(){this.format.cachedStyleEntries=[]});a.addListener("darkModeChanged",this.darkModeChangedListener);this.container.appendChild(this.addView(this.createPanel()))};
DiagramStylePanel.prototype.addView=function(a){var b=this.editorUi,c=b.editor.graph,e=c.getModel();a.style.whiteSpace="normal";var d="1"==c.currentVertexStyle.sketch&&"1"==c.currentEdgeStyle.sketch,f="1"==c.currentVertexStyle.rounded,k="1"==c.currentEdgeStyle.curved,h=document.createElement("div");h.style.paddingBottom="12px";h.style.marginRight="16px";a.style.paddingTop="8px";var g=document.createElement("table");g.style.width="210px";g.style.fontWeight="bold";var m=document.createElement("tbody"),
l=document.createElement("tr");l.style.padding="0px";var n=document.createElement("td");n.style.padding="0px";n.style.width="50%";n.setAttribute("valign","middle");var p=n.cloneNode(!0);p.style.paddingLeft="8px";l.appendChild(n);l.appendChild(p);m.appendChild(l);g.appendChild(m);n.appendChild(this.createOption(mxResources.get("sketch"),function(){return d},function(a){(d=a)?(c.currentEdgeStyle.sketch="1",c.currentVertexStyle.sketch="1"):(delete c.currentEdgeStyle.sketch,delete c.currentVertexStyle.sketch);
-c.updateCellStyles("sketch",a?"1":null,c.getVerticesAndEdges())},null,function(a){a.style.width="auto"}));p.appendChild(this.createOption(mxResources.get("rounded"),function(){return f},function(a){(f=a)?(c.currentEdgeStyle.rounded="1",c.currentVertexStyle.rounded="1"):(delete c.currentEdgeStyle.rounded,delete c.currentVertexStyle.rounded);c.updateCellStyles("rounded",a?"1":"0",c.getVerticesAndEdges())},null,function(a){a.style.width="auto"}));n=n.cloneNode(!1);p=p.cloneNode(!1);l=l.cloneNode(!1);
-l.appendChild(n);l.appendChild(p);m.appendChild(l);n.appendChild(this.createOption(mxResources.get("curved"),function(){return k},function(a){(k=a)?c.currentEdgeStyle.curved="1":delete c.currentEdgeStyle.curved;c.updateCellStyles("curved",a?"1":null,c.getVerticesAndEdges(!1,!0))},null,function(a){a.style.width="auto"}));h.appendChild(g);a.appendChild(h);var r=["fillColor","strokeColor","fontColor","gradientColor"],u=mxUtils.bind(this,function(a,b){var d=c.getVerticesAndEdges();e.beginUpdate();try{for(var f=
-0;f<d.length;f++){var g=c.getCellStyle(d[f]);null!=g.labelBackgroundColor&&c.updateCellStyles("labelBackgroundColor",null!=b?b.background:null,[d[f]]);for(var k=e.isEdge(d[f]),h=e.getStyle(d[f]),m=k?c.currentEdgeStyle:c.currentVertexStyle,l=0;l<a.length;l++)if(null!=g[a[l]]&&g[a[l]]!=mxConstants.NONE||a[l]!=mxConstants.STYLE_FILLCOLOR&&a[l]!=mxConstants.STYLE_STROKECOLOR)h=mxUtils.setStyle(h,a[l],m[a[l]]);e.setStyle(d[f],h)}}finally{e.endUpdate()}}),v=mxUtils.bind(this,function(a,b,c){if(null!=a)for(var d=
+c.updateCellStyles({sketch:a?"1":null},c.getVerticesAndEdges())},null,function(a){a.style.width="auto"}));p.appendChild(this.createOption(mxResources.get("rounded"),function(){return f},function(a){(f=a)?(c.currentEdgeStyle.rounded="1",c.currentVertexStyle.rounded="1"):(delete c.currentEdgeStyle.rounded,delete c.currentVertexStyle.rounded);c.updateCellStyles({rounded:a?"1":"0"},c.getVerticesAndEdges())},null,function(a){a.style.width="auto"}));n=n.cloneNode(!1);p=p.cloneNode(!1);l=l.cloneNode(!1);
+l.appendChild(n);l.appendChild(p);m.appendChild(l);n.appendChild(this.createOption(mxResources.get("curved"),function(){return k},function(a){(k=a)?c.currentEdgeStyle.curved="1":delete c.currentEdgeStyle.curved;c.updateCellStyles({curved:a?"1":null},c.getVerticesAndEdges(!1,!0))},null,function(a){a.style.width="auto"}));h.appendChild(g);a.appendChild(h);var r=["fillColor","strokeColor","fontColor","gradientColor"],u=mxUtils.bind(this,function(a,b){var d=c.getVerticesAndEdges();e.beginUpdate();try{for(var f=
+0;f<d.length;f++){var g=c.getCellStyle(d[f]);null!=g.labelBackgroundColor&&c.updateCellStyles({labelBackgroundColor:null!=b?b.background:null},[d[f]]);for(var k=e.isEdge(d[f]),h=e.getStyle(d[f]),m=k?c.currentEdgeStyle:c.currentVertexStyle,l=0;l<a.length;l++)if(null!=g[a[l]]&&g[a[l]]!=mxConstants.NONE||a[l]!=mxConstants.STYLE_FILLCOLOR&&a[l]!=mxConstants.STYLE_STROKECOLOR)h=mxUtils.setStyle(h,a[l],m[a[l]]);e.setStyle(d[f],h)}}finally{e.endUpdate()}}),v=mxUtils.bind(this,function(a,b,c){if(null!=a)for(var d=
0;d<b.length;d++)if(null!=a[b[d]]&&a[b[d]]!=mxConstants.NONE||b[d]!=mxConstants.STYLE_FILLCOLOR&&b[d]!=mxConstants.STYLE_STROKECOLOR)a[b[d]]=c[b[d]]}),t=mxUtils.bind(this,function(a,b,d,e,f){if(null!=a){null!=d&&null!=b.labelBackgroundColor&&(e=null!=e?e.background:null,f=null!=f?f:c,null==e&&(e=f.background),null==e&&(e=f.defaultPageBackgroundColor),b.labelBackgroundColor=e);for(var g in a)if(null==d||null!=b[g]&&b[g]!=mxConstants.NONE||g!=mxConstants.STYLE_FILLCOLOR&&g!=mxConstants.STYLE_STROKECOLOR)b[g]=
-a[g]}}),n=mxUtils.button(mxResources.get("reset"),mxUtils.bind(this,function(a){a=c.getVerticesAndEdges(!0,!0);if(0<a.length){e.beginUpdate();try{c.updateCellStyles("sketch",null,a),c.updateCellStyles("rounded",null,a),c.updateCellStyles("curved",null,c.getVerticesAndEdges(!1,!0))}finally{e.endUpdate()}}b.clearDefaultStyle()}));n.setAttribute("title",mxResources.get("reset"));n.style.textOverflow="ellipsis";n.style.maxWidth="90px";p.appendChild(n);var x=mxUtils.bind(this,function(a,b,d,f,g){var k=
-document.createElement("div");k.style.position="absolute";k.style.display="inline-block";k.style.overflow="hidden";k.style.pointerEvents="none";k.style.width="100%";k.style.height="100%";g.appendChild(k);var h=new Graph(k,null,null,c.getStylesheet());h.resetViewOnRootChange=!1;h.foldingEnabled=!1;h.gridEnabled=!1;h.autoScroll=!1;h.setTooltips(!1);h.setConnectable(!1);h.setPanning(!1);h.setEnabled(!1);h.getCellStyle=function(g){var k=mxUtils.clone(Graph.prototype.getCellStyle.apply(this,arguments)),
-m=c.stylesheet.getDefaultVertexStyle(),l=b;e.isEdge(g)&&(m=c.stylesheet.getDefaultEdgeStyle(),l=d);v(k,r,m);t(a,k,g,f,h);t(l,k,g,f,h);null!=k&&(k=this.postProcessCellStyle(k));return k};h.model.beginUpdate();try{var m=h.insertVertex(h.getDefaultParent(),null,"Shape",14,8,70,40,"strokeWidth=2;"),l=h.insertEdge(h.getDefaultParent(),null,"Connector",m,m,"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;endSize=5;strokeWidth=2;");l.geometry.points=[new mxPoint(32,70)];l.geometry.offset=
-new mxPoint(0,8)}finally{h.model.endUpdate()}}),w=document.createElement("div");w.style.position="relative";a.appendChild(w);null==this.format.cachedStyleEntries&&(this.format.cachedStyleEntries=[]);var y=mxUtils.bind(this,function(a,g,h,m,l){var n=this.format.cachedStyleEntries[l];null==n&&(n=document.createElement("div"),n.style.display="inline-block",n.style.position="relative",n.style.width="96px",n.style.height="90px",n.style.cursor="pointer",n.style.border="1px solid gray",n.style.borderRadius=
-"8px",n.style.margin="2px",n.style.overflow="hidden",null!=m&&null!=m.background&&(n.style.backgroundColor=m.background),x(a,g,h,m,n),mxEvent.addGestureListeners(n,mxUtils.bind(this,function(a){n.style.opacity=.5}),null,mxUtils.bind(this,function(l){n.style.opacity=1;c.currentVertexStyle=mxUtils.clone(c.defaultVertexStyle);c.currentEdgeStyle=mxUtils.clone(c.defaultEdgeStyle);t(a,c.currentVertexStyle);t(a,c.currentEdgeStyle);t(g,c.currentVertexStyle);t(h,c.currentEdgeStyle);d?(c.currentEdgeStyle.sketch=
-"1",c.currentVertexStyle.sketch="1"):(c.currentEdgeStyle.sketch="0",c.currentVertexStyle.sketch="0");c.currentVertexStyle.rounded=f?"1":"0";c.currentEdgeStyle.rounded="1";c.currentEdgeStyle.curved=k?"1":"0";e.beginUpdate();try{var p=r.slice(),v;for(v in a)p.push(v);u(p,m);var x=new ChangePageSetup(b,null!=m?m.background:null);x.ignoreImage=!0;e.execute(x);e.execute(new ChangeGridColor(b,null!=m&&null!=m.gridColor?m.gridColor:c.view.defaultGridColor))}finally{e.endUpdate()}})),mxEvent.addListener(n,
-"mouseenter",mxUtils.bind(this,function(b){var d=c.getCellStyle;b=c.background;var f=c.view.gridColor;c.background=null!=m?m.background:null;c.view.gridColor=null!=m&&null!=m.gridColor?m.gridColor:c.view.defaultGridColor;c.getCellStyle=function(b){var f=mxUtils.clone(d.apply(this,arguments)),k=c.stylesheet.getDefaultVertexStyle(),l=g;e.isEdge(b)&&(k=c.stylesheet.getDefaultEdgeStyle(),l=h);v(f,r,k);t(a,f,b,m);t(l,f,b,m);null!=f&&(f=this.postProcessCellStyle(f));return f};c.refresh();c.getCellStyle=
-d;c.background=b;c.view.gridColor=f})),mxEvent.addListener(n,"mouseleave",mxUtils.bind(this,function(a){c.refresh()})),mxClient.IS_IE||mxClient.IS_IE11||(this.format.cachedStyleEntries[l]=n));w.appendChild(n)}),F=Math.ceil(Editor.styles.length/10);this.format.currentStylePage=null!=this.format.currentStylePage?this.format.currentStylePage:0;var I=[],A=mxUtils.bind(this,function(){0<I.length&&(I[this.format.currentStylePage].style.background="#84d7ff");for(var a=10*this.format.currentStylePage;a<Math.min(10*
-(this.format.currentStylePage+1),Editor.styles.length);a++){var b=Editor.styles[a];y(b.commonStyle,b.vertexStyle,b.edgeStyle,b.graph,a)}}),G=mxUtils.bind(this,function(a){0<=a&&a<F&&(I[this.format.currentStylePage].style.background="transparent",w.innerHTML="",this.format.currentStylePage=a,A())});if(1<F){h=document.createElement("div");h.style.whiteSpace="nowrap";h.style.position="relative";h.style.textAlign="center";h.style.paddingTop="4px";h.style.width="210px";a.style.paddingBottom="8px";for(p=
-0;p<F;p++){var z=document.createElement("div");z.style.display="inline-block";z.style.width="6px";z.style.height="6px";z.style.marginLeft="4px";z.style.marginRight="3px";z.style.borderRadius="3px";z.style.cursor="pointer";z.style.background="transparent";z.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(a,b){mxEvent.addListener(z,"click",mxUtils.bind(this,function(){G(a)}))})(p,z);h.appendChild(z);I.push(z)}a.appendChild(h);A();15>F&&(g=function(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity=
-"1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})},n=document.createElement("div"),n.style.position="absolute",n.style.left="0px",n.style.top="0px",n.style.bottom="0px",n.style.width="24px",n.style.height="24px",n.style.margin="0px",n.style.cursor="pointer",n.style.opacity="0.5",n.style.backgroundRepeat="no-repeat",n.style.backgroundPosition="center center",n.style.backgroundSize="24px 24px",n.style.backgroundImage="url("+Editor.previousImage+")",Editor.isDarkMode()&&(n.style.filter=
-"invert(100%)"),p=n.cloneNode(!1),p.style.backgroundImage="url("+Editor.nextImage+")",p.style.left="",p.style.right="2px",h.appendChild(n),h.appendChild(p),mxEvent.addListener(n,"click",mxUtils.bind(this,function(){G(mxUtils.mod(this.format.currentStylePage-1,F))})),mxEvent.addListener(p,"click",mxUtils.bind(this,function(){G(mxUtils.mod(this.format.currentStylePage+1,F))})),g(n),g(p))}else A();return a};
+a[g]}}),n=mxUtils.button(mxResources.get("reset"),mxUtils.bind(this,function(a){a=c.getVerticesAndEdges(!0,!0);if(0<a.length){e.beginUpdate();try{c.updateCellStyles({sketch:null,rounded:null},a),c.updateCellStyles({curved:null},c.getVerticesAndEdges(!1,!0))}finally{e.endUpdate()}}b.clearDefaultStyle()}));n.setAttribute("title",mxResources.get("reset"));n.style.textOverflow="ellipsis";n.style.maxWidth="90px";p.appendChild(n);var x=mxUtils.bind(this,function(a,b,d,f,g){var k=document.createElement("div");
+k.style.position="absolute";k.style.display="inline-block";k.style.overflow="hidden";k.style.pointerEvents="none";k.style.width="100%";k.style.height="100%";g.appendChild(k);var h=new Graph(k,null,null,c.getStylesheet());h.resetViewOnRootChange=!1;h.foldingEnabled=!1;h.gridEnabled=!1;h.autoScroll=!1;h.setTooltips(!1);h.setConnectable(!1);h.setPanning(!1);h.setEnabled(!1);h.getCellStyle=function(g,k){k=null!=k?k:!0;var m=mxUtils.clone(c.getCellStyle.apply(this,arguments)),l=c.stylesheet.getDefaultVertexStyle(),
+n=b;e.isEdge(g)&&(l=c.stylesheet.getDefaultEdgeStyle(),n=d);v(m,r,l);t(a,m,g,f,h);t(n,m,g,f,h);k&&(m=c.postProcessCellStyle(g,m));return m};h.model.beginUpdate();try{var m=h.insertVertex(h.getDefaultParent(),null,"Shape",14,8,70,40,"strokeWidth=2;"),l=h.insertEdge(h.getDefaultParent(),null,"Connector",m,m,"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;endSize=5;strokeWidth=2;");l.geometry.points=[new mxPoint(32,70)];l.geometry.offset=new mxPoint(0,8)}finally{h.model.endUpdate()}}),
+w=document.createElement("div");w.style.position="relative";a.appendChild(w);null==this.format.cachedStyleEntries&&(this.format.cachedStyleEntries=[]);var y=mxUtils.bind(this,function(a,g,h,m,l){var n=this.format.cachedStyleEntries[l];null==n&&(n=document.createElement("div"),n.style.display="inline-block",n.style.position="relative",n.style.width="96px",n.style.height="90px",n.style.cursor="pointer",n.style.border="1px solid gray",n.style.borderRadius="8px",n.style.margin="2px",n.style.overflow=
+"hidden",null!=m&&null!=m.background&&(n.style.backgroundColor=m.background),x(a,g,h,m,n),mxEvent.addGestureListeners(n,mxUtils.bind(this,function(a){n.style.opacity=.5}),null,mxUtils.bind(this,function(l){n.style.opacity=1;c.currentVertexStyle=mxUtils.clone(c.defaultVertexStyle);c.currentEdgeStyle=mxUtils.clone(c.defaultEdgeStyle);t(a,c.currentVertexStyle);t(a,c.currentEdgeStyle);t(g,c.currentVertexStyle);t(h,c.currentEdgeStyle);d?(c.currentEdgeStyle.sketch="1",c.currentVertexStyle.sketch="1"):(c.currentEdgeStyle.sketch=
+"0",c.currentVertexStyle.sketch="0");c.currentVertexStyle.rounded=f?"1":"0";c.currentEdgeStyle.rounded="1";c.currentEdgeStyle.curved=k?"1":"0";e.beginUpdate();try{var p=r.slice(),v;for(v in a)p.push(v);u(p,m);var x=new ChangePageSetup(b,null!=m?m.background:null);x.ignoreImage=!0;e.execute(x);e.execute(new ChangeGridColor(b,null!=m&&null!=m.gridColor?m.gridColor:c.view.defaultGridColor))}finally{e.endUpdate()}})),mxEvent.addListener(n,"mouseenter",mxUtils.bind(this,function(b){var d=c.getCellStyle;
+b=c.background;var f=c.view.gridColor;c.background=null!=m?m.background:null;c.view.gridColor=null!=m&&null!=m.gridColor?m.gridColor:c.view.defaultGridColor;c.getCellStyle=function(b,f){f=null!=f?f:!0;var k=mxUtils.clone(d.apply(this,arguments)),l=c.stylesheet.getDefaultVertexStyle(),n=g;e.isEdge(b)&&(l=c.stylesheet.getDefaultEdgeStyle(),n=h);v(k,r,l);t(a,k,b,m);t(n,k,b,m);f&&(k=this.postProcessCellStyle(b,k));return k};c.refresh();c.getCellStyle=d;c.background=b;c.view.gridColor=f})),mxEvent.addListener(n,
+"mouseleave",mxUtils.bind(this,function(a){c.refresh()})),mxClient.IS_IE||mxClient.IS_IE11||(this.format.cachedStyleEntries[l]=n));w.appendChild(n)}),E=Math.ceil(Editor.styles.length/10);this.format.currentStylePage=null!=this.format.currentStylePage?this.format.currentStylePage:0;var I=[],A=mxUtils.bind(this,function(){0<I.length&&(I[this.format.currentStylePage].style.background="#84d7ff");for(var a=10*this.format.currentStylePage;a<Math.min(10*(this.format.currentStylePage+1),Editor.styles.length);a++){var b=
+Editor.styles[a];y(b.commonStyle,b.vertexStyle,b.edgeStyle,b.graph,a)}}),F=mxUtils.bind(this,function(a){0<=a&&a<E&&(I[this.format.currentStylePage].style.background="transparent",w.innerHTML="",this.format.currentStylePage=a,A())});if(1<E){h=document.createElement("div");h.style.whiteSpace="nowrap";h.style.position="relative";h.style.textAlign="center";h.style.paddingTop="4px";h.style.width="210px";a.style.paddingBottom="8px";for(p=0;p<E;p++){var z=document.createElement("div");z.style.display="inline-block";
+z.style.width="6px";z.style.height="6px";z.style.marginLeft="4px";z.style.marginRight="3px";z.style.borderRadius="3px";z.style.cursor="pointer";z.style.background="transparent";z.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(a,b){mxEvent.addListener(z,"click",mxUtils.bind(this,function(){F(a)}))})(p,z);h.appendChild(z);I.push(z)}a.appendChild(h);A();15>E&&(g=function(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity=
+"0.5"})},n=document.createElement("div"),n.style.position="absolute",n.style.left="0px",n.style.top="0px",n.style.bottom="0px",n.style.width="24px",n.style.height="24px",n.style.margin="0px",n.style.cursor="pointer",n.style.opacity="0.5",n.style.backgroundRepeat="no-repeat",n.style.backgroundPosition="center center",n.style.backgroundSize="24px 24px",n.style.backgroundImage="url("+Editor.previousImage+")",Editor.isDarkMode()&&(n.style.filter="invert(100%)"),p=n.cloneNode(!1),p.style.backgroundImage=
+"url("+Editor.nextImage+")",p.style.left="",p.style.right="2px",h.appendChild(n),h.appendChild(p),mxEvent.addListener(n,"click",mxUtils.bind(this,function(){F(mxUtils.mod(this.format.currentStylePage-1,E))})),mxEvent.addListener(p,"click",mxUtils.bind(this,function(){F(mxUtils.mod(this.format.currentStylePage+1,E))})),g(n),g(p))}else A();return a};
DiagramStylePanel.prototype.destroy=function(){BaseFormatPanel.prototype.destroy.apply(this,arguments);this.darkModeChangedListener&&(this.editorUi.removeListener(this.darkModeChangedListener),this.darkModeChangedListener=null)};DiagramFormatPanel=function(a,b,c){BaseFormatPanel.call(this,a,b,c);this.init()};mxUtils.extend(DiagramFormatPanel,BaseFormatPanel);DiagramFormatPanel.showPageView=!0;DiagramFormatPanel.prototype.showBackgroundImageOption=!0;
DiagramFormatPanel.prototype.init=function(){var a=this.editorUi.editor.graph;this.container.appendChild(this.addView(this.createPanel()));a.isEnabled()&&(this.container.appendChild(this.addOptions(this.createPanel())),this.container.appendChild(this.addPaperSize(this.createPanel())),this.container.appendChild(this.addStyleOps(this.createPanel())))};
DiagramFormatPanel.prototype.addView=function(a){var b=this.editorUi,c=b.editor.graph;a.appendChild(this.createTitle(mxResources.get("view")));this.addGridOption(a);DiagramFormatPanel.showPageView&&a.appendChild(this.createOption(mxResources.get("pageView"),function(){return c.pageVisible},function(a){b.actions.get("pageView").funct()},{install:function(a){this.listener=function(){a(c.pageVisible)};b.addListener("pageViewChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}}));
@@ -3245,11 +3243,11 @@ DiagramFormatPanel.prototype.addPaperSize=function(a){var b=this.editorUi,c=b.ed
function(){e.set(c.pageFormat)});var d=function(){e.set(c.pageFormat)};b.addListener("pageFormatChanged",d);this.listeners.push({destroy:function(){b.removeListener(d)}});c.getModel().addListener(mxEvent.CHANGE,d);this.listeners.push({destroy:function(){c.getModel().removeListener(d)}});return a};
DiagramFormatPanel.prototype.addStyleOps=function(a){var b=mxUtils.button(mxResources.get("editData"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editData").funct()}));b.setAttribute("title",mxResources.get("editData")+" ("+this.editorUi.actions.get("editData").shortcut+")");b.style.width="210px";b.style.marginBottom="2px";a.appendChild(b);mxUtils.br(a);b=mxUtils.button(mxResources.get("clearDefaultStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("clearDefaultStyle").funct()}));
b.setAttribute("title",mxResources.get("clearDefaultStyle")+" ("+this.editorUi.actions.get("clearDefaultStyle").shortcut+")");b.style.width="210px";a.appendChild(b);return a};DiagramFormatPanel.prototype.destroy=function(){BaseFormatPanel.prototype.destroy.apply(this,arguments);this.gridEnabledListener&&(this.editorUi.removeListener(this.gridEnabledListener),this.gridEnabledListener=null)};(function(){function a(a,b,c){mxShape.call(this);this.line=a;this.stroke=b;this.strokewidth=null!=c?c:1;this.updateBoundsFromLine()}function b(){mxSwimlane.call(this)}function c(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function d(){mxActor.call(this)}function f(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function h(){mxCylinder.call(this)}function g(){mxCylinder.call(this)}function m(){mxShape.call(this)}function l(){mxShape.call(this)}function n(a,b,c,d){mxShape.call(this);
-this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}function p(){mxActor.call(this)}function r(){mxCylinder.call(this)}function u(){mxCylinder.call(this)}function v(){mxActor.call(this)}function t(){mxActor.call(this)}function x(){mxActor.call(this)}function w(){mxActor.call(this)}function y(){mxActor.call(this)}function F(){mxActor.call(this)}function I(){mxActor.call(this)}function A(a,b){this.canvas=a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=
+this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}function p(){mxActor.call(this)}function r(){mxCylinder.call(this)}function u(){mxCylinder.call(this)}function v(){mxActor.call(this)}function t(){mxActor.call(this)}function x(){mxActor.call(this)}function w(){mxActor.call(this)}function y(){mxActor.call(this)}function E(){mxActor.call(this)}function I(){mxActor.call(this)}function A(a,b){this.canvas=a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=
b;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,A.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,A.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,A.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,A.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,A.prototype.curveTo);this.originalArcTo=
-this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,A.prototype.arcTo)}function G(){mxRectangleShape.call(this)}function z(){mxRectangleShape.call(this)}function E(){mxActor.call(this)}function K(){mxActor.call(this)}function L(){mxActor.call(this)}function N(){mxRectangleShape.call(this)}function J(){mxRectangleShape.call(this)}function Q(){mxCylinder.call(this)}function X(){mxShape.call(this)}function ba(){mxShape.call(this)}function P(){mxEllipse.call(this)}function R(){mxShape.call(this)}function T(){mxShape.call(this)}
-function U(){mxRectangleShape.call(this)}function W(){mxShape.call(this)}function ga(){mxShape.call(this)}function ma(){mxShape.call(this)}function oa(){mxShape.call(this)}function pa(){mxShape.call(this)}function ha(){mxCylinder.call(this)}function na(){mxCylinder.call(this)}function ua(){mxRectangleShape.call(this)}function qa(){mxDoubleEllipse.call(this)}function ra(){mxDoubleEllipse.call(this)}function la(){mxArrowConnector.call(this);this.spacing=0}function ja(){mxArrowConnector.call(this);this.spacing=
-0}function ka(){mxActor.call(this)}function da(){mxRectangleShape.call(this)}function fa(){mxActor.call(this)}function sa(){mxActor.call(this)}function Y(){mxActor.call(this)}function Z(){mxActor.call(this)}function aa(){mxActor.call(this)}function O(){mxActor.call(this)}function V(){mxActor.call(this)}function ca(){mxActor.call(this)}function ea(){mxActor.call(this)}function ia(){mxActor.call(this)}function wa(){mxEllipse.call(this)}function Ba(){mxEllipse.call(this)}function Fa(){mxEllipse.call(this)}
+this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,A.prototype.arcTo)}function F(){mxRectangleShape.call(this)}function z(){mxRectangleShape.call(this)}function G(){mxActor.call(this)}function K(){mxActor.call(this)}function L(){mxActor.call(this)}function N(){mxRectangleShape.call(this)}function J(){mxRectangleShape.call(this)}function R(){mxCylinder.call(this)}function X(){mxShape.call(this)}function ba(){mxShape.call(this)}function O(){mxEllipse.call(this)}function S(){mxShape.call(this)}function U(){mxShape.call(this)}
+function Q(){mxRectangleShape.call(this)}function W(){mxShape.call(this)}function ka(){mxShape.call(this)}function ma(){mxShape.call(this)}function oa(){mxShape.call(this)}function pa(){mxShape.call(this)}function ga(){mxCylinder.call(this)}function na(){mxCylinder.call(this)}function ua(){mxRectangleShape.call(this)}function qa(){mxDoubleEllipse.call(this)}function ra(){mxDoubleEllipse.call(this)}function la(){mxArrowConnector.call(this);this.spacing=0}function ia(){mxArrowConnector.call(this);this.spacing=
+0}function ja(){mxActor.call(this)}function da(){mxRectangleShape.call(this)}function fa(){mxActor.call(this)}function sa(){mxActor.call(this)}function Y(){mxActor.call(this)}function Z(){mxActor.call(this)}function aa(){mxActor.call(this)}function P(){mxActor.call(this)}function V(){mxActor.call(this)}function ca(){mxActor.call(this)}function ea(){mxActor.call(this)}function ha(){mxActor.call(this)}function wa(){mxEllipse.call(this)}function Ba(){mxEllipse.call(this)}function Fa(){mxEllipse.call(this)}
function Na(){mxRhombus.call(this)}function Oa(){mxEllipse.call(this)}function Pa(){mxEllipse.call(this)}function Ga(){mxEllipse.call(this)}function Ha(){mxEllipse.call(this)}function Ia(){mxActor.call(this)}function za(){mxActor.call(this)}function Aa(){mxActor.call(this)}function M(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function xa(){mxConnector.call(this)}
function Sa(a,b,c,d,e,f,g,k,h,m){g+=h;var q=d.clone();d.x-=e*(2*g+h);d.y-=f*(2*g+h);e*=g+h;f*=g+h;return function(){a.ellipse(q.x-e-g,q.y-f-g,2*g,2*g);m?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxShape);a.prototype.updateBoundsFromLine=function(){var a=null;if(null!=this.line)for(var b=0;b<this.line.length;b++){var c=this.line[b];null!=c&&(c=new mxRectangle(c.x,c.y,this.strokewidth,this.strokewidth),null==a?a=c:a.add(c))}this.bounds=null!=a?a:new mxRectangle};a.prototype.paintVertexShape=function(a,
b,c,d,e){this.paintTableLine(a,this.line,0,0)};a.prototype.paintTableLine=function(a,b,c,d){if(null!=b){var e=null;a.begin();for(var q=0;q<b.length;q++){var f=b[q];null!=f&&(null==e?a.moveTo(f.x+c,f.y+d):null!=e&&a.lineTo(f.x+c,f.y+d));e=f}a.end();a.stroke()}};mxCellRenderer.registerShape("tableLine",a);mxUtils.extend(b,mxSwimlane);b.prototype.getLabelBounds=function(a){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,
@@ -3284,39 +3282,39 @@ function(a,b,c,d){var e=mxUtils.getValue(this.style,"size");return null!=e?d*Mat
"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};g.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(a.height*this.scale,b*this.scale),0,Math.max(0,b*this.scale))}return null};mxUtils.extend(w,mxActor);w.prototype.size=.2;w.prototype.fixedSize=20;w.prototype.isRoundable=function(){return!0};w.prototype.redrawPath=
function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*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(a,[new mxPoint(0,e),new mxPoint(b,0),new mxPoint(d,0),new mxPoint(d-b,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("parallelogram",w);mxUtils.extend(y,
mxActor);y.prototype.size=.2;y.prototype.fixedSize=20;y.prototype.isRoundable=function(){return!0};y.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(b,
-0),new mxPoint(d-b,0),new mxPoint(d,e)],this.isRounded,c,!0)};mxCellRenderer.registerShape("trapezoid",y);mxUtils.extend(F,mxActor);F.prototype.size=.5;F.prototype.redrawPath=function(a,b,c,d,e){a.setFillColor(null);b=d*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(a,[new mxPoint(d,0),new mxPoint(b,0),new mxPoint(b,e/2),new mxPoint(0,e/2),new mxPoint(b,e/2),new mxPoint(b,
-e),new mxPoint(d,e)],this.isRounded,c,!1);a.end()};mxCellRenderer.registerShape("curlyBracket",F);mxUtils.extend(I,mxActor);I.prototype.redrawPath=function(a,b,c,d,e){a.setStrokeWidth(1);a.setFillColor(this.stroke);b=d/5;a.rect(0,0,b,e);a.fillAndStroke();a.rect(2*b,0,b,e);a.fillAndStroke();a.rect(4*b,0,b,e);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",I);A.prototype.moveTo=function(a,b){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;this.firstX=a;this.firstY=
+0),new mxPoint(d-b,0),new mxPoint(d,e)],this.isRounded,c,!0)};mxCellRenderer.registerShape("trapezoid",y);mxUtils.extend(E,mxActor);E.prototype.size=.5;E.prototype.redrawPath=function(a,b,c,d,e){a.setFillColor(null);b=d*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(a,[new mxPoint(d,0),new mxPoint(b,0),new mxPoint(b,e/2),new mxPoint(0,e/2),new mxPoint(b,e/2),new mxPoint(b,
+e),new mxPoint(d,e)],this.isRounded,c,!1);a.end()};mxCellRenderer.registerShape("curlyBracket",E);mxUtils.extend(I,mxActor);I.prototype.redrawPath=function(a,b,c,d,e){a.setStrokeWidth(1);a.setFillColor(this.stroke);b=d/5;a.rect(0,0,b,e);a.fillAndStroke();a.rect(2*b,0,b,e);a.fillAndStroke();a.rect(4*b,0,b,e);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",I);A.prototype.moveTo=function(a,b){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;this.firstX=a;this.firstY=
b};A.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)};A.prototype.quadTo=function(a,b,c,d){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=d};A.prototype.curveTo=function(a,b,c,d,e,f){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=f};A.prototype.arcTo=function(a,b,c,d,e,f,g){this.originalArcTo.apply(this.canvas,
arguments);this.lastX=f;this.lastY=g};A.prototype.lineTo=function(a,b){if(null!=this.lastX&&null!=this.lastY){var c=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),e=Math.abs(b-this.lastY),q=Math.sqrt(d*d+e*e);if(2>q){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;return}var f=Math.round(q/10),g=this.defaultVariation;5>f&&(f=5,g/=3);for(var k=c(a-this.lastX)*d/f,c=c(b-this.lastY)*e/f,d=d/q,e=e/q,q=0;q<f;q++){var h=(Math.random()-
.5)*g;this.originalLineTo.call(this.canvas,k*q+this.lastX-h*e,c*q+this.lastY-h*d)}this.originalLineTo.call(this.canvas,a,b)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};A.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 Ya=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(a){Ya.apply(this,arguments);null==a.handJiggle&&(a.handJiggle=this.createHandJiggle(a))};var Za=mxShape.prototype.afterPaint;mxShape.prototype.afterPaint=function(a){Za.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxShape.prototype.createComicCanvas=function(a){return new A(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle))};mxShape.prototype.createHandJiggle=function(a){return this.outline||
null==this.style||"0"==mxUtils.getValue(this.style,"comic","0")?null:this.createComicCanvas(a)};mxRhombus.prototype.defaultJiggle=2;var $a=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"))&&$a.apply(this,arguments)};var cb=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=
function(a,b,c,d,e){if(null==a.handJiggle||a.handJiggle.constructor!=A)cb.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)f||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?f=Math.min(d/2,Math.min(e/2,mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(d*f,e*f)),a.moveTo(b+f,c),a.lineTo(b+d-f,c),a.quadTo(b+d,c,b+d,c+f),a.lineTo(b+d,c+e-f),a.quadTo(b+d,c+e,b+d-f,c+e),a.lineTo(b+f,c+e),a.quadTo(b,c+e,b,c+e-f),a.lineTo(b,c+f),a.quadTo(b,c,b+f,c)):(a.moveTo(b,c),a.lineTo(b+d,c),a.lineTo(b+d,c+e),a.lineTo(b,c+e),a.lineTo(b,c)),a.close(),a.end(),a.fillAndStroke()}};mxUtils.extend(G,
-mxRectangleShape);G.prototype.size=.1;G.prototype.fixedSize=!1;G.prototype.isHtmlAllowed=function(){return!1};G.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)){var b=a.width,c=a.height;a=new mxRectangle(a.x,a.y,b,c);var d=b*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,d=Math.max(d,Math.min(b*e,c*e));a.x+=Math.round(d);a.width-=Math.round(2*d)}return a};G.prototype.paintForeground=function(a,b,c,d,e){var f=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),q=parseFloat(mxUtils.getValue(this.style,"size",this.size)),q=f?Math.max(0,Math.min(d,q)):d*Math.max(0,Math.min(1,q));this.isRounded&&(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/
-100,q=Math.max(q,Math.min(d*f,e*f)));q=Math.round(q);a.begin();a.moveTo(b+q,c);a.lineTo(b+q,c+e);a.moveTo(b+d-q,c);a.lineTo(b+d-q,c+e);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",G);mxCellRenderer.registerShape("process2",G);mxUtils.extend(z,mxRectangleShape);z.prototype.paintBackground=function(a,b,c,d,e){a.setFillColor(mxConstants.NONE);a.rect(b,c,d,e);a.fill()};z.prototype.paintForeground=function(a,b,c,d,e){};mxCellRenderer.registerShape("transparent",
-z);mxUtils.extend(E,mxHexagon);E.prototype.size=30;E.prototype.position=.5;E.prototype.position2=.5;E.prototype.base=20;E.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};E.prototype.isRoundable=function(){return!0};E.prototype.redrawPath=function(a,b,c,d,e){b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",
+mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(d*f,e*f)),a.moveTo(b+f,c),a.lineTo(b+d-f,c),a.quadTo(b+d,c,b+d,c+f),a.lineTo(b+d,c+e-f),a.quadTo(b+d,c+e,b+d-f,c+e),a.lineTo(b+f,c+e),a.quadTo(b,c+e,b,c+e-f),a.lineTo(b,c+f),a.quadTo(b,c,b+f,c)):(a.moveTo(b,c),a.lineTo(b+d,c),a.lineTo(b+d,c+e),a.lineTo(b,c+e),a.lineTo(b,c)),a.close(),a.end(),a.fillAndStroke()}};mxUtils.extend(F,
+mxRectangleShape);F.prototype.size=.1;F.prototype.fixedSize=!1;F.prototype.isHtmlAllowed=function(){return!1};F.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)){var b=a.width,c=a.height;a=new mxRectangle(a.x,a.y,b,c);var d=b*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,d=Math.max(d,Math.min(b*e,c*e));a.x+=Math.round(d);a.width-=Math.round(2*d)}return a};F.prototype.paintForeground=function(a,b,c,d,e){var f=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),q=parseFloat(mxUtils.getValue(this.style,"size",this.size)),q=f?Math.max(0,Math.min(d,q)):d*Math.max(0,Math.min(1,q));this.isRounded&&(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/
+100,q=Math.max(q,Math.min(d*f,e*f)));q=Math.round(q);a.begin();a.moveTo(b+q,c);a.lineTo(b+q,c+e);a.moveTo(b+d-q,c);a.lineTo(b+d-q,c+e);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",F);mxCellRenderer.registerShape("process2",F);mxUtils.extend(z,mxRectangleShape);z.prototype.paintBackground=function(a,b,c,d,e){a.setFillColor(mxConstants.NONE);a.rect(b,c,d,e);a.fill()};z.prototype.paintForeground=function(a,b,c,d,e){};mxCellRenderer.registerShape("transparent",
+z);mxUtils.extend(G,mxHexagon);G.prototype.size=30;G.prototype.position=.5;G.prototype.position2=.5;G.prototype.base=20;G.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};G.prototype.isRoundable=function(){return!0};G.prototype.redrawPath=function(a,b,c,d,e){b=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 f=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),q=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),g=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,e-c),new mxPoint(Math.min(d,f+g),e-c),new mxPoint(q,e),new mxPoint(Math.max(0,f),e-c),new mxPoint(0,e-c)],this.isRounded,b,!0,[4])};mxCellRenderer.registerShape("callout",
-E);mxUtils.extend(K,mxActor);K.prototype.size=.2;K.prototype.fixedSize=20;K.prototype.isRoundable=function(){return!0};K.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*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(a,[new mxPoint(0,
+G);mxUtils.extend(K,mxActor);K.prototype.size=.2;K.prototype.fixedSize=20;K.prototype.isRoundable=function(){return!0};K.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*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(a,[new mxPoint(0,
0),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(0,e),new mxPoint(b,e/2)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("step",K);mxUtils.extend(L,mxHexagon);L.prototype.size=.25;L.prototype.fixedSize=20;L.prototype.isRoundable=function(){return!0};L.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*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(a,[new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,.5*e),new mxPoint(d-b,e),new mxPoint(b,e),new mxPoint(0,.5*e)],this.isRounded,c,!0)};mxCellRenderer.registerShape("hexagon",L);mxUtils.extend(N,mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.prototype.paintForeground=function(a,b,c,d,e){var f=Math.min(d/5,e/5)+1;a.begin();a.moveTo(b+d/2,c+f);a.lineTo(b+d/2,
c+e-f);a.moveTo(b+f,c+e/2);a.lineTo(b+d-f,c+e/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",N);var Va=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)}return a};mxRhombus.prototype.paintVertexShape=
function(a,b,c,d,e){Va.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&(a.setShadow(!1),Va.apply(this,[a,b,c,d,e]))}};mxUtils.extend(J,mxRectangleShape);J.prototype.isHtmlAllowed=function(){return!1};J.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;
return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)}return a};J.prototype.paintForeground=function(a,b,c,d,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var f=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var f=0,q;do{q=mxCellRenderer.defaultShapes[this.style["symbol"+f]];if(null!=q){var g=this.style["symbol"+f+"Align"],
k=this.style["symbol"+f+"VerticalAlign"],h=this.style["symbol"+f+"Width"],D=this.style["symbol"+f+"Height"],m=this.style["symbol"+f+"Spacing"]||0,C=this.style["symbol"+f+"VSpacing"]||m,l=this.style["symbol"+f+"ArcSpacing"];null!=l&&(l*=this.getArcSize(d+this.strokewidth,e+this.strokewidth),m+=l,C+=l);var l=b,B=c,l=g==mxConstants.ALIGN_CENTER?l+(d-h)/2:g==mxConstants.ALIGN_RIGHT?l+(d-h-m):l+m,B=k==mxConstants.ALIGN_MIDDLE?B+(e-D)/2:k==mxConstants.ALIGN_BOTTOM?B+(e-D-C):B+C;a.save();g=new q;g.style=
-this.style;q.prototype.paintVertexShape.call(g,a,l,B,h,D);a.restore()}f++}while(null!=q)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",J);mxUtils.extend(Q,mxCylinder);Q.prototype.redrawPath=function(a,b,c,d,e,f){f?(a.moveTo(0,0),a.lineTo(d/2,e/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(0,e),a.close())};mxCellRenderer.registerShape("message",Q);mxUtils.extend(X,mxShape);X.prototype.paintBackground=function(a,
+this.style;q.prototype.paintVertexShape.call(g,a,l,B,h,D);a.restore()}f++}while(null!=q)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",J);mxUtils.extend(R,mxCylinder);R.prototype.redrawPath=function(a,b,c,d,e,f){f?(a.moveTo(0,0),a.lineTo(d/2,e/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(0,e),a.close())};mxCellRenderer.registerShape("message",R);mxUtils.extend(X,mxShape);X.prototype.paintBackground=function(a,
b,c,d,e){a.translate(b,c);a.ellipse(d/4,0,d/2,e/4);a.fillAndStroke();a.begin();a.moveTo(d/2,e/4);a.lineTo(d/2,2*e/3);a.moveTo(d/2,e/3);a.lineTo(0,e/3);a.moveTo(d/2,e/3);a.lineTo(d,e/3);a.moveTo(d/2,2*e/3);a.lineTo(0,e);a.moveTo(d/2,2*e/3);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",X);mxUtils.extend(ba,mxShape);ba.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};ba.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();
-a.moveTo(0,e/4);a.lineTo(0,3*e/4);a.end();a.stroke();a.begin();a.moveTo(0,e/2);a.lineTo(d/6,e/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,e);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",ba);mxUtils.extend(P,mxEllipse);P.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(b+d/8,c+e);a.lineTo(b+7*d/8,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",P);mxUtils.extend(R,mxShape);R.prototype.paintVertexShape=
-function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(d,0);a.lineTo(0,e);a.moveTo(0,0);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",R);mxUtils.extend(T,mxShape);T.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};T.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(3*d/8,e/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,e/8,d,7*e/8);a.fillAndStroke()};T.prototype.paintForeground=
-function(a,b,c,d,e){a.begin();a.moveTo(3*d/8,e/8*1.1);a.lineTo(5*d/8,e/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",T);mxUtils.extend(U,mxRectangleShape);U.prototype.size=40;U.prototype.isHtmlAllowed=function(){return!1};U.prototype.getLabelBounds=function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,b)};U.prototype.paintBackground=function(a,b,c,d,e){var f=Math.max(0,Math.min(e,
-parseFloat(mxUtils.getValue(this.style,"size",this.size)))),q=mxUtils.getValue(this.style,"participant");null==q||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,b,c,d,f):(q=this.state.view.graph.cellRenderer.getShape(q),null!=q&&q!=U&&(q=new q,q.apply(this.state),a.save(),q.paintVertexShape(a,b,c,d,f),a.restore()));f<e&&(a.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),a.begin(),a.moveTo(b+d/2,c+f),a.lineTo(b+d/2,c+e),a.end(),a.stroke())};U.prototype.paintForeground=
-function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,b,c,d,Math.min(e,f))};mxCellRenderer.registerShape("umlLifeline",U);mxUtils.extend(W,mxShape);W.prototype.width=60;W.prototype.height=30;W.prototype.corner=10;W.prototype.getLabelMargins=function(a){return new mxRectangle(0,0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,
+a.moveTo(0,e/4);a.lineTo(0,3*e/4);a.end();a.stroke();a.begin();a.moveTo(0,e/2);a.lineTo(d/6,e/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,e);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",ba);mxUtils.extend(O,mxEllipse);O.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(b+d/8,c+e);a.lineTo(b+7*d/8,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",O);mxUtils.extend(S,mxShape);S.prototype.paintVertexShape=
+function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(d,0);a.lineTo(0,e);a.moveTo(0,0);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",S);mxUtils.extend(U,mxShape);U.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};U.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(3*d/8,e/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,e/8,d,7*e/8);a.fillAndStroke()};U.prototype.paintForeground=
+function(a,b,c,d,e){a.begin();a.moveTo(3*d/8,e/8*1.1);a.lineTo(5*d/8,e/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",U);mxUtils.extend(Q,mxRectangleShape);Q.prototype.size=40;Q.prototype.isHtmlAllowed=function(){return!1};Q.prototype.getLabelBounds=function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,b)};Q.prototype.paintBackground=function(a,b,c,d,e){var f=Math.max(0,Math.min(e,
+parseFloat(mxUtils.getValue(this.style,"size",this.size)))),q=mxUtils.getValue(this.style,"participant");null==q||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,b,c,d,f):(q=this.state.view.graph.cellRenderer.getShape(q),null!=q&&q!=Q&&(q=new q,q.apply(this.state),a.save(),q.paintVertexShape(a,b,c,d,f),a.restore()));f<e&&(a.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),a.begin(),a.moveTo(b+d/2,c+f),a.lineTo(b+d/2,c+e),a.end(),a.stroke())};Q.prototype.paintForeground=
+function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,b,c,d,Math.min(e,f))};mxCellRenderer.registerShape("umlLifeline",Q);mxUtils.extend(W,mxShape);W.prototype.width=60;W.prototype.height=30;W.prototype.corner=10;W.prototype.getLabelMargins=function(a){return new mxRectangle(0,0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,
"height",this.height)*this.scale))};W.prototype.paintBackground=function(a,b,c,d,e){var f=this.corner,q=Math.min(d,Math.max(f,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),g=Math.min(e,Math.max(1.5*f,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),k=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);k!=mxConstants.NONE&&(a.setFillColor(k),a.rect(b,c,d,e),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=
mxConstants.NONE?(this.getGradientBounds(a,b,c,d,e),a.setGradient(this.fill,this.gradient,b,c,d,e,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(b,c);a.lineTo(b+q,c);a.lineTo(b+q,c+Math.max(0,g-1.5*f));a.lineTo(b+Math.max(0,q-f),c+g);a.lineTo(b,c+g);a.close();a.fillAndStroke();a.begin();a.moveTo(b+q,c);a.lineTo(b+d,c);a.lineTo(b+d,c+e);a.lineTo(b,c+e);a.lineTo(b,c+g);a.stroke()};mxCellRenderer.registerShape("umlFrame",W);mxPerimeter.CenterPerimeter=function(a,b,c,d){return new mxPoint(a.getCenterX(),
-a.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(a,b,c,d){d=U.prototype.size;null!=b&&(d=mxUtils.getValue(b.style,"size",d)*b.view.scale);b=parseFloat(b.style[mxConstants.STYLE_STROKEWIDTH]||1)*b.view.scale/2-1;c.x<a.getCenterX()&&(b=-1*(b+1));return new mxPoint(a.getCenterX()+b,Math.min(a.y+a.height,Math.max(a.y+d,c.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=
+a.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(a,b,c,d){d=Q.prototype.size;null!=b&&(d=mxUtils.getValue(b.style,"size",d)*b.view.scale);b=parseFloat(b.style[mxConstants.STYLE_STROKEWIDTH]||1)*b.view.scale/2-1;c.x<a.getCenterX()&&(b=-1*(b+1));return new mxPoint(a.getCenterX()+b,Math.min(a.y+a.height,Math.max(a.y+d,c.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=
function(a,b,c,d){d=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,b,c,d){d=parseFloat(b.style[mxConstants.STYLE_STROKEWIDTH]||1)*b.view.scale/2-1;null!=b.style.backboneSize&&(d+=parseFloat(b.style.backboneSize)*b.view.scale/2-1);if("south"==b.style[mxConstants.STYLE_DIRECTION]||"north"==b.style[mxConstants.STYLE_DIRECTION])return c.x<a.getCenterX()&&(d=-1*(d+1)),
-new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y,c.y)));c.y<a.getCenterY()&&(d=-1*(d+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,c.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,b,c,d){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(b.style,"size",E.prototype.size))*b.view.scale))),b.style),
+new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y,c.y)));c.y<a.getCenterY()&&(d=-1*(d+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,c.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,b,c,d){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(b.style,"size",G.prototype.size))*b.view.scale))),b.style),
b,c,d)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?w.prototype.fixedSize:w.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var q=a.x,g=a.y,k=a.width,h=a.height;b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH?
(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(q,g),new mxPoint(q+k,g+e),new mxPoint(q+k,g+h),new mxPoint(q,g+h-e),new mxPoint(q,g)]):(e=e?Math.max(0,Math.min(.5*k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(q+e,g),new mxPoint(q+k,g),new mxPoint(q+k-e,g+h),new mxPoint(q,g+h),new mxPoint(q+e,g)]);h=a.getCenterX();a=a.getCenterY();a=new mxPoint(h,a);d&&(c.x<q||c.x>q+k?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(g,a,c)};mxStyleRegistry.putValue("parallelogramPerimeter",
mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?y.prototype.fixedSize:y.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var q=a.x,g=a.y,k=a.width,h=a.height;b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(.5*k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(q+
@@ -3326,46 +3324,46 @@ h*Math.max(0,Math.min(1,f)),g=[new mxPoint(q,g),new mxPoint(q+k,g+e),new mxPoint
f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(q+e,g),new mxPoint(q+k,g),new mxPoint(q+k-e,a),new mxPoint(q+k,g+h),new mxPoint(q+e,g+h),new mxPoint(q,a),new mxPoint(q+e,g)]):b==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(q,g+e),new mxPoint(m,g),new mxPoint(q+k,g+e),new mxPoint(q+k,g+h),new mxPoint(m,g+h-e),new mxPoint(q,g+h),new mxPoint(q,g+e)]):(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(q,g),new mxPoint(m,g+
e),new mxPoint(q+k,g),new mxPoint(q+k,g+h-e),new mxPoint(m,g+h),new mxPoint(q,g+h-e),new mxPoint(q,g)]);m=new mxPoint(m,a);d&&(c.x<q||c.x>q+k?m.y=c.y:m.x=c.x);return mxUtils.getPerimeterPoint(g,m,c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?L.prototype.fixedSize:L.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var q=a.x,g=a.y,k=a.width,
h=a.height,m=a.getCenterX();a=a.getCenterY();b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(m,g),new mxPoint(q+k,g+e),new mxPoint(q+k,g+h-e),new mxPoint(m,g+h),new mxPoint(q,g+h-e),new mxPoint(q,g+e),new mxPoint(m,g)]):(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(q+
-e,g),new mxPoint(q+k-e,g),new mxPoint(q+k,a),new mxPoint(q+k-e,g+h),new mxPoint(q+e,g+h),new mxPoint(q,a),new mxPoint(q+e,g)]);m=new mxPoint(m,a);d&&(c.x<q||c.x>q+k?m.y=c.y:m.x=c.x);return mxUtils.getPerimeterPoint(g,m,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(ga,mxShape);ga.prototype.size=10;ga.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(b,c);a.ellipse((d-f)/2,0,f,f);
-a.fillAndStroke();a.begin();a.moveTo(d/2,f);a.lineTo(d/2,e);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",ga);mxUtils.extend(ma,mxShape);ma.prototype.size=10;ma.prototype.inset=2;ma.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.begin();a.moveTo(d/2,f+g);a.lineTo(d/2,e);a.end();a.stroke();a.begin();a.moveTo((d-f)/2-g,f/2);a.quadTo((d-
+e,g),new mxPoint(q+k-e,g),new mxPoint(q+k,a),new mxPoint(q+k-e,g+h),new mxPoint(q+e,g+h),new mxPoint(q,a),new mxPoint(q+e,g)]);m=new mxPoint(m,a);d&&(c.x<q||c.x>q+k?m.y=c.y:m.x=c.x);return mxUtils.getPerimeterPoint(g,m,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(ka,mxShape);ka.prototype.size=10;ka.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(b,c);a.ellipse((d-f)/2,0,f,f);
+a.fillAndStroke();a.begin();a.moveTo(d/2,f);a.lineTo(d/2,e);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",ka);mxUtils.extend(ma,mxShape);ma.prototype.size=10;ma.prototype.inset=2;ma.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.begin();a.moveTo(d/2,f+g);a.lineTo(d/2,e);a.end();a.stroke();a.begin();a.moveTo((d-f)/2-g,f/2);a.quadTo((d-
f)/2-g,f+g,d/2,f+g);a.quadTo((d+f)/2+g,f+g,(d+f)/2+g,f/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",ma);mxUtils.extend(oa,mxShape);oa.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",oa);mxUtils.extend(pa,mxShape);pa.prototype.inset=2;pa.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+
-this.strokewidth;a.translate(b,c);a.ellipse(0,f,d-2*f,e-2*f);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d/2,e);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",pa);mxUtils.extend(ha,mxCylinder);ha.prototype.jettyWidth=20;ha.prototype.jettyHeight=10;ha.prototype.redrawPath=function(a,b,c,d,e,f){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));
-c=g/2;var g=c+g/2,q=Math.min(b,e-b),k=Math.min(q+2*b,e-b);f?(a.moveTo(c,q),a.lineTo(g,q),a.lineTo(g,q+b),a.lineTo(c,q+b),a.moveTo(c,k),a.lineTo(g,k),a.lineTo(g,k+b),a.lineTo(c,k+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,e),a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.lineTo(c,q+b),a.lineTo(0,q+b),a.lineTo(0,q),a.lineTo(c,q),a.close());a.end()};mxCellRenderer.registerShape("module",ha);mxUtils.extend(na,mxCylinder);na.prototype.jettyWidth=32;na.prototype.jettyHeight=
+this.strokewidth;a.translate(b,c);a.ellipse(0,f,d-2*f,e-2*f);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d/2,e);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",pa);mxUtils.extend(ga,mxCylinder);ga.prototype.jettyWidth=20;ga.prototype.jettyHeight=10;ga.prototype.redrawPath=function(a,b,c,d,e,f){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));
+c=g/2;var g=c+g/2,q=Math.min(b,e-b),k=Math.min(q+2*b,e-b);f?(a.moveTo(c,q),a.lineTo(g,q),a.lineTo(g,q+b),a.lineTo(c,q+b),a.moveTo(c,k),a.lineTo(g,k),a.lineTo(g,k+b),a.lineTo(c,k+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,e),a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.lineTo(c,q+b),a.lineTo(0,q+b),a.lineTo(0,q),a.lineTo(c,q),a.close());a.end()};mxCellRenderer.registerShape("module",ga);mxUtils.extend(na,mxCylinder);na.prototype.jettyWidth=32;na.prototype.jettyHeight=
12;na.prototype.redrawPath=function(a,b,c,d,e,f){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=g/2;var g=c+g/2,q=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,q),a.lineTo(g,q),a.lineTo(g,q+b),a.lineTo(c,q+b),a.moveTo(c,k),a.lineTo(g,k),a.lineTo(g,k+b),a.lineTo(c,k+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,e),a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.lineTo(c,q+b),a.lineTo(0,
q+b),a.lineTo(0,q),a.lineTo(c,q),a.close());a.end()};mxCellRenderer.registerShape("component",na);mxUtils.extend(ua,mxRectangleShape);ua.prototype.paintForeground=function(a,b,c,d,e){var f=d/2,g=e/2,q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;a.begin();this.addPoints(a,[new mxPoint(b+f,c),new mxPoint(b+d,c+g),new mxPoint(b+f,c+e),new mxPoint(b,c+g)],this.isRounded,q,!0);a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",
ua);mxUtils.extend(qa,mxDoubleEllipse);qa.prototype.outerStroke=!0;qa.prototype.paintVertexShape=function(a,b,c,d,e){var f=Math.min(4,Math.min(d/5,e/5));0<d&&0<e&&(a.ellipse(b+f,c+f,d-2*f,e-2*f),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(b,c,d,e),a.stroke())};mxCellRenderer.registerShape("endState",qa);mxUtils.extend(ra,qa);ra.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",ra);mxUtils.extend(la,mxArrowConnector);la.prototype.defaultWidth=4;la.prototype.isOpenEnded=
-function(){return!0};la.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};la.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",la);mxUtils.extend(ja,mxArrowConnector);ja.prototype.defaultWidth=10;ja.prototype.defaultArrowWidth=20;ja.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};ja.prototype.getEndArrowWidth=
-function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ja.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ja);mxUtils.extend(ka,mxActor);ka.prototype.size=30;ka.prototype.isRoundable=function(){return!0};ka.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));c=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(0,b),new mxPoint(d,0),new mxPoint(d,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("manualInput",ka);mxUtils.extend(da,mxRectangleShape);da.prototype.dx=20;da.prototype.dy=20;da.prototype.isHtmlAllowed=function(){return!1};da.prototype.paintForeground=function(a,b,c,d,e){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var f=0;if(this.isRounded)var g=mxUtils.getValue(this.style,
+function(){return!0};la.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};la.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",la);mxUtils.extend(ia,mxArrowConnector);ia.prototype.defaultWidth=10;ia.prototype.defaultArrowWidth=20;ia.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};ia.prototype.getEndArrowWidth=
+function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ia.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ia);mxUtils.extend(ja,mxActor);ja.prototype.size=30;ja.prototype.isRoundable=function(){return!0};ja.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));c=mxUtils.getValue(this.style,
+mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(0,b),new mxPoint(d,0),new mxPoint(d,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("manualInput",ja);mxUtils.extend(da,mxRectangleShape);da.prototype.dx=20;da.prototype.dy=20;da.prototype.isHtmlAllowed=function(){return!1};da.prototype.paintForeground=function(a,b,c,d,e){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var f=0;if(this.isRounded)var g=mxUtils.getValue(this.style,
mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(d*g,e*g));g=Math.max(f,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));f=Math.max(f,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(b,c+f);a.lineTo(b+d,c+f);a.end();a.stroke();a.begin();a.moveTo(b+g,c);a.lineTo(b+g,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",da);mxUtils.extend(fa,mxActor);fa.prototype.dx=20;fa.prototype.dy=
20;fa.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,c),new mxPoint(b,c),new mxPoint(b,e),new mxPoint(0,e)],this.isRounded,f,!0);a.end()};
mxCellRenderer.registerShape("corner",fa);mxUtils.extend(sa,mxActor);sa.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.lineTo(0,e);a.end();a.moveTo(d,0);a.lineTo(d,e);a.end();a.moveTo(0,e/2);a.lineTo(d,e/2);a.end()};mxCellRenderer.registerShape("crossbar",sa);mxUtils.extend(Y,mxActor);Y.prototype.dx=20;Y.prototype.dy=20;Y.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,
"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,c),new mxPoint((d+b)/2,c),new mxPoint((d+b)/2,e),new mxPoint((d-b)/2,e),new mxPoint((d-b)/2,c),new mxPoint(0,c)],this.isRounded,f,!0);a.end()};mxCellRenderer.registerShape("tee",Y);mxUtils.extend(Z,mxActor);Z.prototype.arrowWidth=.3;Z.prototype.arrowSize=.2;Z.prototype.redrawPath=
function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(d-b,f),new mxPoint(0,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",
Z);mxUtils.extend(aa,mxActor);aa.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",Z.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",Z.prototype.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e/2),new mxPoint(b,0),new mxPoint(b,c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,
-e/2),new mxPoint(d-b,e),new mxPoint(d-b,f),new mxPoint(b,f),new mxPoint(b,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",aa);mxUtils.extend(O,mxActor);O.prototype.size=.1;O.prototype.fixedSize=20;O.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(b,
-0);a.lineTo(d,0);a.quadTo(d-2*b,e/2,d,e);a.lineTo(b,e);a.quadTo(b-2*b,e/2,b,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",O);mxUtils.extend(V,mxActor);V.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.close();a.end()};mxCellRenderer.registerShape("or",V);mxUtils.extend(ca,mxActor);ca.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.quadTo(d/2,e/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",
+e/2),new mxPoint(d-b,e),new mxPoint(d-b,f),new mxPoint(b,f),new mxPoint(b,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",aa);mxUtils.extend(P,mxActor);P.prototype.size=.1;P.prototype.fixedSize=20;P.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(b,
+0);a.lineTo(d,0);a.quadTo(d-2*b,e/2,d,e);a.lineTo(b,e);a.quadTo(b-2*b,e/2,b,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",P);mxUtils.extend(V,mxActor);V.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.close();a.end()};mxCellRenderer.registerShape("or",V);mxUtils.extend(ca,mxActor);ca.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.quadTo(d/2,e/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",
ca);mxUtils.extend(ea,mxActor);ea.prototype.size=20;ea.prototype.isRoundable=function(){return!0};ea.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,.8*b),new mxPoint(d,e),new mxPoint(0,e),new mxPoint(0,.8*b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("loopLimit",
-ea);mxUtils.extend(ia,mxActor);ia.prototype.size=.375;ia.prototype.isRoundable=function(){return!0};ia.prototype.redrawPath=function(a,b,c,d,e){b=e*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(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,e-b),new mxPoint(d/2,e),new mxPoint(0,e-b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",
-ia);mxUtils.extend(wa,mxEllipse);wa.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(b+d/2,c+e);a.lineTo(b+d,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",wa);mxUtils.extend(Ba,mxEllipse);Ba.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b,c+e/2);a.lineTo(b+d,c+e/2);a.end();a.stroke();a.begin();a.moveTo(b+d/2,c);
+ea);mxUtils.extend(ha,mxActor);ha.prototype.size=.375;ha.prototype.isRoundable=function(){return!0};ha.prototype.redrawPath=function(a,b,c,d,e){b=e*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(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,e-b),new mxPoint(d/2,e),new mxPoint(0,e-b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",
+ha);mxUtils.extend(wa,mxEllipse);wa.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(b+d/2,c+e);a.lineTo(b+d,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",wa);mxUtils.extend(Ba,mxEllipse);Ba.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b,c+e/2);a.lineTo(b+d,c+e/2);a.end();a.stroke();a.begin();a.moveTo(b+d/2,c);
a.lineTo(b+d/2,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",Ba);mxUtils.extend(Fa,mxEllipse);Fa.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b+.145*d,c+.145*e);a.lineTo(b+.855*d,c+.855*e);a.end();a.stroke();a.begin();a.moveTo(b+.855*d,c+.145*e);a.lineTo(b+.145*d,c+.855*e);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",Fa);mxUtils.extend(Na,mxRhombus);Na.prototype.paintVertexShape=
function(a,b,c,d,e){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b,c+e/2);a.lineTo(b+d,c+e/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",Na);mxUtils.extend(Oa,mxEllipse);Oa.prototype.paintVertexShape=function(a,b,c,d,e){a.begin();a.moveTo(b,c);a.lineTo(b+d,c);a.lineTo(b+d/2,c+e/2);a.close();a.fillAndStroke();a.begin();a.moveTo(b,c+e);a.lineTo(b+d,c+e);a.lineTo(b+d/2,c+e/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",
Oa);mxUtils.extend(Pa,mxEllipse);Pa.prototype.paintVertexShape=function(a,b,c,d,e){var f=c+e-5;a.begin();a.moveTo(b,c);a.lineTo(b,c+e);a.moveTo(b,f);a.lineTo(b+10,f-5);a.moveTo(b,f);a.lineTo(b+10,f+5);a.moveTo(b,f);a.lineTo(b+d,f);a.moveTo(b+d,c);a.lineTo(b+d,c+e);a.moveTo(b+d,f);a.lineTo(b+d-10,f-5);a.moveTo(b+d,f);a.lineTo(b+d-10,f+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",Pa);mxUtils.extend(Ga,mxEllipse);Ga.prototype.paintVertexShape=function(a,b,c,d,e){this.outline||a.setStrokeColor(null);
-if(null!=this.style){var f=a.pointerEvents;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1);a.rect(b,c,d,e);a.fill();a.pointerEvents=f;a.setStrokeColor(this.stroke);a.begin();a.moveTo(b,c);this.outline||"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(b+d,c):a.moveTo(b+d,c);this.outline||"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(b+d,c+e):a.moveTo(b+d,c+e);this.outline||"1"==mxUtils.getValue(this.style,
-"bottom","1")?a.lineTo(b,c+e):a.moveTo(b,c+e);(this.outline||"1"==mxUtils.getValue(this.style,"left","1"))&&a.lineTo(b,c);a.end();a.stroke()}};mxCellRenderer.registerShape("partialRectangle",Ga);mxUtils.extend(Ha,mxEllipse);Ha.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(b+d/2,c),a.lineTo(b+d/2,c+e)):(a.moveTo(b,c+e/2),a.lineTo(b+d,c+e/2));a.end();a.stroke()};
-mxCellRenderer.registerShape("lineEllipse",Ha);mxUtils.extend(Ia,mxActor);Ia.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/2);a.moveTo(0,0);a.lineTo(d-b,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d-b,e);a.lineTo(0,e);a.close();a.end()};mxCellRenderer.registerShape("delay",Ia);mxUtils.extend(za,mxActor);za.prototype.size=.2;za.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,d);var f=Math.max(0,Math.min(b,b*parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=(e-f)/2;c=b+f;var g=(d-
-f)/2,f=g+f;a.moveTo(0,b);a.lineTo(g,b);a.lineTo(g,0);a.lineTo(f,0);a.lineTo(f,b);a.lineTo(d,b);a.lineTo(d,c);a.lineTo(f,c);a.lineTo(f,e);a.lineTo(g,e);a.lineTo(g,c);a.lineTo(0,c);a.close();a.end()};mxCellRenderer.registerShape("cross",za);mxUtils.extend(Aa,mxActor);Aa.prototype.size=.25;Aa.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/2);c=Math.min(d-b,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);a.moveTo(0,e/2);a.lineTo(c,0);a.lineTo(d-b,0);a.quadTo(d,0,d,e/
-2);a.quadTo(d,e,d-b,e);a.lineTo(c,e);a.close();a.end()};mxCellRenderer.registerShape("display",Aa);mxUtils.extend(M,mxActor);M.prototype.cst={RECT2:"mxgraph.basic.rect"};M.prototype.customProperties=[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"size",dispName:"Corner Size",type:"float",defVal:10},{name:"absoluteCornerSize",
-dispName:"Abs. Corner Size",type:"bool",defVal:!0},{name:"indent",dispName:"Indent",type:"float",defVal:2},{name:"rectOutline",dispName:"Outline",type:"enum",defVal:"single",enumList:[{val:"single",dispName:"Single"},{val:"double",dispName:"Double"},{val:"frame",dispName:"Frame"}]},{name:"fillColor2",dispName:"Inside Fill Color",type:"color",defVal:"none"},{name:"gradientColor2",dispName:"Inside Gradient Color",type:"color",defVal:"none"},{name:"gradientDirection2",dispName:"Inside Gradient Direction",
-type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",dispName:"West"},{val:"north",dispName:"North"},{val:"east",dispName:"East"}]},{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left ",type:"bool",defVal:!0},{name:"topLeftStyle",dispName:"Top Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},
-{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",
+if(null!=this.style){var f=a.pointerEvents;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1);a.rect(b,c,d,e);a.fill();a.pointerEvents=f;a.setStrokeColor(this.stroke);a.setLineCap("square");a.begin();a.moveTo(b,c);this.outline||"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(b+d,c):a.moveTo(b+d,c);this.outline||"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(b+d,c+e):a.moveTo(b+d,c+e);this.outline||
+"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(b,c+e):a.moveTo(b,c+e);(this.outline||"1"==mxUtils.getValue(this.style,"left","1"))&&a.lineTo(b,c);a.end();a.stroke();a.setLineCap("flat")}};mxCellRenderer.registerShape("partialRectangle",Ga);mxUtils.extend(Ha,mxEllipse);Ha.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(b+d/2,c),a.lineTo(b+d/2,c+e)):
+(a.moveTo(b,c+e/2),a.lineTo(b+d,c+e/2));a.end();a.stroke()};mxCellRenderer.registerShape("lineEllipse",Ha);mxUtils.extend(Ia,mxActor);Ia.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/2);a.moveTo(0,0);a.lineTo(d-b,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d-b,e);a.lineTo(0,e);a.close();a.end()};mxCellRenderer.registerShape("delay",Ia);mxUtils.extend(za,mxActor);za.prototype.size=.2;za.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,d);var f=Math.max(0,Math.min(b,b*parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));b=(e-f)/2;c=b+f;var g=(d-f)/2,f=g+f;a.moveTo(0,b);a.lineTo(g,b);a.lineTo(g,0);a.lineTo(f,0);a.lineTo(f,b);a.lineTo(d,b);a.lineTo(d,c);a.lineTo(f,c);a.lineTo(f,e);a.lineTo(g,e);a.lineTo(g,c);a.lineTo(0,c);a.close();a.end()};mxCellRenderer.registerShape("cross",za);mxUtils.extend(Aa,mxActor);Aa.prototype.size=.25;Aa.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/2);c=Math.min(d-b,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);a.moveTo(0,e/2);a.lineTo(c,
+0);a.lineTo(d-b,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d-b,e);a.lineTo(c,e);a.close();a.end()};mxCellRenderer.registerShape("display",Aa);mxUtils.extend(M,mxActor);M.prototype.cst={RECT2:"mxgraph.basic.rect"};M.prototype.customProperties=[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"size",dispName:"Corner Size",
+type:"float",defVal:10},{name:"absoluteCornerSize",dispName:"Abs. Corner Size",type:"bool",defVal:!0},{name:"indent",dispName:"Indent",type:"float",defVal:2},{name:"rectOutline",dispName:"Outline",type:"enum",defVal:"single",enumList:[{val:"single",dispName:"Single"},{val:"double",dispName:"Double"},{val:"frame",dispName:"Frame"}]},{name:"fillColor2",dispName:"Inside Fill Color",type:"color",defVal:"none"},{name:"gradientColor2",dispName:"Inside Gradient Color",type:"color",defVal:"none"},{name:"gradientDirection2",
+dispName:"Inside Gradient Direction",type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",dispName:"West"},{val:"north",dispName:"North"},{val:"east",dispName:"East"}]},{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left ",type:"bool",defVal:!0},{name:"topLeftStyle",dispName:"Top Left Style",type:"enum",defVal:"default",enumList:[{val:"default",
+dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",
type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",
dispName:"Fold"}]}];M.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);this.strictDrawShape(a,0,0,d,e)};M.prototype.strictDrawShape=function(a,b,c,d,e,f){var g=f&&f.rectStyle?f.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=f&&f.absoluteCornerSize?f.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),h=f&&f.size?f.size:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),m=f&&f.rectOutline?f.rectOutline:
mxUtils.getValue(this.style,"rectOutline",this.rectOutline),q=f&&f.indent?f.indent:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),l=f&&f.dashed?f.dashed:mxUtils.getValue(this.style,"dashed",!1),n=f&&f.dashPattern?f.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),p=f&&f.relIndent?f.relIndent:Math.max(0,Math.min(50,q)),C=f&&f.top?f.top:mxUtils.getValue(this.style,"top",!0),D=f&&f.right?f.right:mxUtils.getValue(this.style,"right",!0),B=f&&f.bottom?f.bottom:
mxUtils.getValue(this.style,"bottom",!0),r=f&&f.left?f.left:mxUtils.getValue(this.style,"left",!0),t=f&&f.topLeftStyle?f.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),u=f&&f.topRightStyle?f.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),H=f&&f.bottomRightStyle?f.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),v=f&&f.bottomLeftStyle?f.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),Da=f&&f.fillColor?f.fillColor:
-mxUtils.getValue(this.style,"fillColor","#ffffff");f&&f.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var x=f&&f.strokeWidth?f.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),w=f&&f.fillColor2?f.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),y=f&&f.gradientColor2?f.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),A=f&&f.gradientDirection2?f.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),E=f&&f.opacity?f.opacity:
-mxUtils.getValue(this.style,"opacity","100"),z=Math.max(0,Math.min(50,h));f=M.prototype;a.setDashed(l);n&&""!=n&&a.setDashPattern(n);a.setStrokeWidth(x);h=Math.min(.5*e,.5*d,h);k||(h=z*Math.min(d,e)/100);h=Math.min(h,.5*Math.min(d,e));k||(q=Math.min(p*Math.min(d,e)/100));q=Math.min(q,.5*Math.min(d,e)-h);(C||D||B||r)&&"frame"!=m&&(a.begin(),C?f.moveNW(a,b,c,d,e,g,t,h,r):a.moveTo(0,0),C&&f.paintNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),D&&f.paintNE(a,b,c,d,e,g,u,h,C),f.paintRight(a,b,c,d,
-e,g,H,h,B),B&&f.paintSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),r&&f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,t,h,C),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(w),l=k=E,"none"==w&&(k=0),"none"==y&&(l=0),a.setGradient(w,y,0,0,d,e,A,k,l),a.begin(),C?f.moveNWInner(a,b,c,d,e,g,t,h,q,C,r):a.moveTo(q,0),f.paintLeftInner(a,b,c,d,e,g,v,h,q,B,r),r&&B&&f.paintSWInner(a,b,c,d,e,g,v,h,q,B),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,B),B&&D&&f.paintSEInner(a,b,c,d,e,g,H,h,q),f.paintRightInner(a,
+mxUtils.getValue(this.style,"fillColor","#ffffff");f&&f.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var x=f&&f.strokeWidth?f.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),w=f&&f.fillColor2?f.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),y=f&&f.gradientColor2?f.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),A=f&&f.gradientDirection2?f.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),z=f&&f.opacity?f.opacity:
+mxUtils.getValue(this.style,"opacity","100"),G=Math.max(0,Math.min(50,h));f=M.prototype;a.setDashed(l);n&&""!=n&&a.setDashPattern(n);a.setStrokeWidth(x);h=Math.min(.5*e,.5*d,h);k||(h=G*Math.min(d,e)/100);h=Math.min(h,.5*Math.min(d,e));k||(q=Math.min(p*Math.min(d,e)/100));q=Math.min(q,.5*Math.min(d,e)-h);(C||D||B||r)&&"frame"!=m&&(a.begin(),C?f.moveNW(a,b,c,d,e,g,t,h,r):a.moveTo(0,0),C&&f.paintNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),D&&f.paintNE(a,b,c,d,e,g,u,h,C),f.paintRight(a,b,c,d,
+e,g,H,h,B),B&&f.paintSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),r&&f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,t,h,C),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(w),l=k=z,"none"==w&&(k=0),"none"==y&&(l=0),a.setGradient(w,y,0,0,d,e,A,k,l),a.begin(),C?f.moveNWInner(a,b,c,d,e,g,t,h,q,C,r):a.moveTo(q,0),f.paintLeftInner(a,b,c,d,e,g,v,h,q,B,r),r&&B&&f.paintSWInner(a,b,c,d,e,g,v,h,q,B),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,B),B&&D&&f.paintSEInner(a,b,c,d,e,g,H,h,q),f.paintRightInner(a,
b,c,d,e,g,u,h,q,C,D),D&&C&&f.paintNEInner(a,b,c,d,e,g,u,h,q),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,C),C&&r&&f.paintNWInner(a,b,c,d,e,g,t,h,q),a.fill(),"none"==Da&&(a.begin(),f.paintFolds(a,b,c,d,e,g,t,u,H,v,h,C,D,B,r),a.stroke()));C||D||B||!r?C||D||!B||r?!C&&!D&&B&&r?"frame"!=m?(a.begin(),f.moveSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,t,h,C),"double"==m&&(f.moveNWInner(a,b,c,d,e,g,t,h,q,C,r),f.paintLeftInner(a,b,c,d,e,g,v,h,q,B,r),f.paintSWInner(a,
b,c,d,e,g,v,h,q,B),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,B)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,t,h,C),f.lineNWInner(a,b,c,d,e,g,t,h,q,C,r),f.paintLeftInner(a,b,c,d,e,g,v,h,q,B,r),f.paintSWInner(a,b,c,d,e,g,v,h,q,B),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,B),a.close(),a.fillAndStroke()):C||!D||B||r?!C&&D&&!B&&r?"frame"!=m?(a.begin(),f.moveSW(a,b,c,d,e,g,t,h,B),f.paintLeft(a,b,c,d,e,g,t,h,C),"double"==
m&&(f.moveNWInner(a,b,c,d,e,g,t,h,q,C,r),f.paintLeftInner(a,b,c,d,e,g,v,h,q,B,r)),a.stroke(),a.begin(),f.moveNE(a,b,c,d,e,g,u,h,C),f.paintRight(a,b,c,d,e,g,H,h,B),"double"==m&&(f.moveSEInner(a,b,c,d,e,g,H,h,q,B),f.paintRightInner(a,b,c,d,e,g,u,h,q,C,D)),a.stroke()):(a.begin(),f.moveSW(a,b,c,d,e,g,t,h,B),f.paintLeft(a,b,c,d,e,g,t,h,C),f.lineNWInner(a,b,c,d,e,g,t,h,q,C,r),f.paintLeftInner(a,b,c,d,e,g,v,h,q,B,r),a.close(),a.fillAndStroke(),a.begin(),f.moveNE(a,b,c,d,e,g,u,h,C),f.paintRight(a,b,c,d,e,
@@ -3410,14 +3408,14 @@ function(a,b,c,d,e,f,g,h,k,m){var l=e*(g+k+1),q=f*(g+k+1),n=d.x+l/2,p=d.y+q/2;d.
q/2-l/2);a.lineTo(d.x-q/2-3*l/2,d.y-3*q/2+l/2);a.stroke()}});mxMarker.addMarker("circle",Sa);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,m){var l=d.clone(),q=Sa.apply(this,arguments),n=e*(g+2*k),p=f*(g+2*k);return function(){q.apply(this,arguments);a.begin();a.moveTo(l.x-e*k,l.y-f*k);a.lineTo(l.x-2*n+e*k,l.y-2*p+f*k);a.moveTo(l.x-n-p+f*k,l.y-p+n-e*k);a.lineTo(l.x+p-n-f*k,l.y-p-n+e*k);a.stroke()}});mxMarker.addMarker("halfCircle",function(a,b,c,d,e,f,g,h,k,m){var l=e*(g+k+1),q=f*(g+
k+1),n=d.clone();d.x-=l;d.y-=q;return function(){a.begin();a.moveTo(n.x-q,n.y+l);a.quadTo(d.x-q,d.y+l,d.x,d.y);a.quadTo(d.x+q,d.y-l,n.x+q,n.y-l);a.stroke()}});mxMarker.addMarker("async",function(a,b,c,d,e,f,g,h,k,m){b=e*k*1.118;c=f*k*1.118;e*=g+k;f*=g+k;var l=d.clone();l.x-=b;l.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(l.x,l.y);h?a.lineTo(l.x-e-f/2,l.y-f+e/2):a.lineTo(l.x+f/2-e,l.y-f-e/2);a.lineTo(l.x-e,l.y-f);a.close();m?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",
function(a){a=null!=a?a:2;return function(b,c,d,e,f,g,h,k,m,l){f*=h+m;g*=h+m;var q=e.clone();return function(){b.begin();b.moveTo(q.x,q.y);k?b.lineTo(q.x-f-g/a,q.y-g+f/a):b.lineTo(q.x+g/a-f,q.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Wa=function(a,b,c){return Ea(a,["width"],b,function(b,d,e,f,g){g=a.shape.getEdgeWidth()*a.view.scale+c;return new mxPoint(f.x+d*b/4+e*g/2,f.y+e*b/4-d*g/2)},function(b,d,e,f,g,h){b=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));a.style.width=
-Math.round(2*b)/a.view.scale-c})},Ea=function(a,b,c,d,e){return S(a,b,function(b){var e=a.absolutePoints,f=e.length-1;b=a.view.translate;var g=a.view.scale,h=c?e[0]:e[f],e=c?e[1]:e[f-1],f=e.x-h.x,k=e.y-h.y,m=Math.sqrt(f*f+k*k),h=d.call(this,m,f/m,k/m,h,e);return new mxPoint(h.x/g-b.x,h.y/g-b.y)},function(b,d,f){var g=a.absolutePoints,h=g.length-1;b=a.view.translate;var k=a.view.scale,m=c?g[0]:g[h],g=c?g[1]:g[h-1],h=g.x-m.x,l=g.y-m.y,q=Math.sqrt(h*h+l*l);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,
-q,h/q,l/q,m,g,d,f)})},va=function(a){return function(b){return[S(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",Z.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",Z.prototype.arrowSize)));return new mxPoint(b.x+(1-d)*b.width,b.y+(1-c)*b.height/2)},function(b,c){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(b.y+b.height/2-c.y)/b.height*2));this.state.style.arrowSize=Math.max(0,
-Math.min(a,(b.x+b.width-c.x)/b.width))})]}},Ta=function(a){return function(b){return[S(b,["size"],function(b){var c=Math.max(0,Math.min(.5*b.height,parseFloat(mxUtils.getValue(this.state.style,"size",a))));return new mxPoint(b.x,b.y+c)},function(a,b){this.state.style.size=Math.max(0,b.y-a.y)},!0)]}},Ra=function(a,b,c){return function(d){var e=[S(d,["size"],function(c){var d=Math.max(0,Math.min(c.width,Math.min(c.height,parseFloat(mxUtils.getValue(this.state.style,"size",b)))))*a;return new mxPoint(c.x+
-d,c.y+d)},function(b,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,c.x-b.x),Math.min(b.height,c.y-b.y)))/a)},!1)];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ta(d));return e}},Ja=function(a,b,c,d,e){c=null!=c?c:.5;return function(f){var g=[S(f,["size"],function(b){var c=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,"size",c?e:a));return new mxPoint(b.x+Math.max(0,Math.min(.5*b.width,
-d*(c?1:b.width))),b.getCenterY())},function(a,b,d){a=null!=e&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width));this.state.style.size=a},!1,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ta(f));return g}},Ua=function(a,b,c){a=null!=a?a:.5;return function(d){var e=[S(d,["size"],function(d){var e=null!=c?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,f=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,
-"size",e?c:b)));return new mxPoint(d.x+Math.min(.75*d.width*a,f*(e?.75:.75*d.width)),d.y+d.height/4)},function(b,d){var e=null!=c&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?d.x-b.x:Math.max(0,Math.min(a,(d.x-b.x)/b.width*.75));this.state.style.size=e},!1,!0)];mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ta(d));return e}},Ca=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b}},ta=function(a,b){return S(a,
+Math.round(2*b)/a.view.scale-c})},Ea=function(a,b,c,d,e){return T(a,b,function(b){var e=a.absolutePoints,f=e.length-1;b=a.view.translate;var g=a.view.scale,h=c?e[0]:e[f],e=c?e[1]:e[f-1],f=e.x-h.x,k=e.y-h.y,m=Math.sqrt(f*f+k*k),h=d.call(this,m,f/m,k/m,h,e);return new mxPoint(h.x/g-b.x,h.y/g-b.y)},function(b,d,f){var g=a.absolutePoints,h=g.length-1;b=a.view.translate;var k=a.view.scale,m=c?g[0]:g[h],g=c?g[1]:g[h-1],h=g.x-m.x,l=g.y-m.y,q=Math.sqrt(h*h+l*l);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,
+q,h/q,l/q,m,g,d,f)})},va=function(a){return function(b){return[T(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",Z.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",Z.prototype.arrowSize)));return new mxPoint(b.x+(1-d)*b.width,b.y+(1-c)*b.height/2)},function(b,c){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(b.y+b.height/2-c.y)/b.height*2));this.state.style.arrowSize=Math.max(0,
+Math.min(a,(b.x+b.width-c.x)/b.width))})]}},Ta=function(a){return function(b){return[T(b,["size"],function(b){var c=Math.max(0,Math.min(.5*b.height,parseFloat(mxUtils.getValue(this.state.style,"size",a))));return new mxPoint(b.x,b.y+c)},function(a,b){this.state.style.size=Math.max(0,b.y-a.y)},!0)]}},Ra=function(a,b,c){return function(d){var e=[T(d,["size"],function(c){var d=Math.max(0,Math.min(c.width,Math.min(c.height,parseFloat(mxUtils.getValue(this.state.style,"size",b)))))*a;return new mxPoint(c.x+
+d,c.y+d)},function(b,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,c.x-b.x),Math.min(b.height,c.y-b.y)))/a)},!1)];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ta(d));return e}},Ja=function(a,b,c,d,e){c=null!=c?c:.5;return function(f){var g=[T(f,["size"],function(b){var c=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,"size",c?e:a));return new mxPoint(b.x+Math.max(0,Math.min(.5*b.width,
+d*(c?1:b.width))),b.getCenterY())},function(a,b,d){a=null!=e&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width));this.state.style.size=a},!1,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ta(f));return g}},Ua=function(a,b,c){a=null!=a?a:.5;return function(d){var e=[T(d,["size"],function(d){var e=null!=c?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,f=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,
+"size",e?c:b)));return new mxPoint(d.x+Math.min(.75*d.width*a,f*(e?.75:.75*d.width)),d.y+d.height/4)},function(b,d){var e=null!=c&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?d.x-b.x:Math.max(0,Math.min(a,(d.x-b.x)/b.width*.75));this.state.style.size=e},!1,!0)];mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ta(d));return e}},Ca=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b}},ta=function(a,b){return T(a,
[mxConstants.STYLE_ARCSIZE],function(c){var d=null!=b?b:c.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(c.x+c.width-Math.min(c.width/2,e),c.y+d)}e=Math.max(0,parseFloat(mxUtils.getValue(a.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+d)},function(b,c,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(b.width,2*(b.x+b.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(b.width-c.x+b.x)/Math.min(b.width,b.height))))})},S=function(a,b,c,d,e,f,g){var h=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);h.execute=function(a){for(var c=0;c<b.length;c++)this.copyStyle(b[c]);
+e),c.y+d)},function(b,c,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(b.width,2*(b.x+b.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(b.width-c.x+b.x)/Math.min(b.width,b.height))))})},T=function(a,b,c,d,e,f,g){var h=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);h.execute=function(a){for(var c=0;c<b.length;c++)this.copyStyle(b[c]);
g&&g(a)};h.getPosition=c;h.setPosition=d;h.ignoreGrid=null!=e?e:!0;if(f){var k=h.positionChanged;h.positionChanged=function(){k.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return h},Ka={link:function(a){return[Wa(a,!0,10),Wa(a,!1,10)]},flexArrow:function(a){var b=a.view.graph.gridSize/a.view.scale,c=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(Ea(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
!0,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)-c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/
3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),c.push(Ea(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,
@@ -3427,36 +3425,36 @@ parseFloat(a.style.endWidth))<b&&(a.style.startWidth=a.style.endWidth))})));mxUt
a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<
b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),c.push(Ea(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=
Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-
-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<b&&(a.style.endWidth=a.style.startWidth))})));return c},swimlane:function(a){var b=[];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));b.push(ta(a,c/2))}b.push(S(a,[mxConstants.STYLE_STARTSIZE],
+parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<b&&(a.style.endWidth=a.style.startWidth))})));return c},swimlane:function(a){var b=[];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));b.push(ta(a,c/2))}b.push(T(a,[mxConstants.STYLE_STARTSIZE],
function(b){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(b.getCenterX(),b.y+Math.max(0,Math.min(b.height,c))):new mxPoint(b.x+Math.max(0,Math.min(b.width,c)),b.getCenterY())},function(b,c){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(b.height,c.y-b.y))):Math.round(Math.max(0,
Math.min(b.width,c.x-b.x)))},!1,null,function(b){if(mxEvent.isControlDown(b.getEvent())&&(b=a.view.graph,b.isTableRow(a.cell)||b.isTableCell(a.cell))){for(var c=b.getSwimlaneDirection(a.style),d=b.model.getParent(a.cell),d=b.model.getChildCells(d,!0),e=[],f=0;f<d.length;f++)d[f]!=a.cell&&b.isSwimlane(d[f])&&b.getSwimlaneDirection(b.getCurrentCellStyle(d[f]))==c&&e.push(d[f]);b.setCellStyles(mxConstants.STYLE_STARTSIZE,a.style[mxConstants.STYLE_STARTSIZE],e)}}));return b},label:Ca(),ext:Ca(),rectangle:Ca(),
-triangle:Ca(),rhombus:Ca(),umlLifeline:function(a){return[S(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",U.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},umlFrame:function(a){return[S(a,["width","height"],function(a){var b=Math.max(W.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",W.prototype.width))),
-c=Math.max(1.5*W.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",W.prototype.height)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(W.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*W.prototype.corner,Math.min(a.height,b.y-a.y)))},!1)]},process:function(a){var b=[S(a,["size"],function(a){var b="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),c=parseFloat(mxUtils.getValue(this.state.style,
-"size",G.prototype.size));return b?new mxPoint(a.x+c,a.y+a.height/4):new mxPoint(a.x+a.width*c,a.y+a.height/4)},function(a,b){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(.5*a.width,b.x-a.x)):Math.max(0,Math.min(.5,(b.x-a.x)/a.width));this.state.style.size=c},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},cross:function(a){return[S(a,["size"],function(a){var b=Math.min(a.width,a.height),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"size",za.prototype.size)))*b/2;return new mxPoint(a.getCenterX()-b,a.getCenterY()-b)},function(a,b){var c=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-b.y)/c*2,Math.max(0,a.getCenterX()-b.x)/c*2)))})]},note:function(a){return[S(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",h.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=
-Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},note2:function(a){return[S(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",g.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},manualInput:function(a){var b=[S(a,["size"],function(a){var b=
-Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",ka.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*b/4)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(b.y-a.y)/3)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},dataStorage:function(a){return[S(a,["size"],function(a){var b="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),c=parseFloat(mxUtils.getValue(this.state.style,"size",b?O.prototype.fixedSize:
-O.prototype.size));return new mxPoint(a.x+a.width-c*(b?1:a.width),a.getCenterY())},function(a,b){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(a.width,a.x+a.width-b.x)):Math.max(0,Math.min(1,(a.x+a.width-b.x)/a.width));this.state.style.size=c},!1)]},callout:function(a){var b=[S(a,["size","position"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",E.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"position",E.prototype.position)));mxUtils.getValue(this.state.style,"base",E.prototype.base);return new mxPoint(a.x+c*a.width,a.y+a.height-b)},function(a,b){mxUtils.getValue(this.state.style,"base",E.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-b.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100},!1),S(a,["position2"],function(a){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",E.prototype.position2)));
-return new mxPoint(a.x+b*a.width,a.y+a.height)},function(a,b){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100},!1),S(a,["base"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",E.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",E.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",E.prototype.base)));return new mxPoint(a.x+Math.min(a.width,
-c*a.width+d),a.y+a.height-b)},function(a,b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",E.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,b.x-a.x-c*a.width)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},internalStorage:function(a){var b=[S(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",da.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
-"dy",da.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},module:function(a){return[S(a,["jettyWidth","jettyHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"jettyWidth",ha.prototype.jettyWidth))),c=Math.max(0,Math.min(a.height,
-mxUtils.getValue(this.state.style,"jettyHeight",ha.prototype.jettyHeight)));return new mxPoint(a.x+b/2,a.y+2*c)},function(a,b){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y))/2)})]},corner:function(a){return[S(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",fa.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
-"dy",fa.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},tee:function(a){return[S(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",Y.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",Y.prototype.dy)));return new mxPoint(a.x+(a.width+b)/2,a.y+c)},function(a,
-b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},singleArrow:va(1),doubleArrow:va(.5),folder:function(a){return[S(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",r.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",r.prototype.tabHeight)));mxUtils.getValue(this.state.style,
-"tabPosition",r.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=Math.max(0,Math.min(a.width,b.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",r.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},document:function(a){return[S(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,
-"size",x.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))},!1)]},tape:function(a){return[S(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b*a.height/2)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(b.y-a.y)/a.height*2))},!1)]},isoCube2:function(a){return[S(a,
-["isoAngle"],function(a){var b=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",m.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(b),.5*a.height))},function(a,b){this.state.style.isoAngle=Math.max(0,50*(b.y-a.y)/a.height)},!0)]},cylinder2:Ta(l.prototype.size),cylinder3:Ta(n.prototype.size),offPageConnector:function(a){return[S(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ia.prototype.size))));
+triangle:Ca(),rhombus:Ca(),umlLifeline:function(a){return[T(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",Q.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},umlFrame:function(a){return[T(a,["width","height"],function(a){var b=Math.max(W.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",W.prototype.width))),
+c=Math.max(1.5*W.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",W.prototype.height)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(W.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*W.prototype.corner,Math.min(a.height,b.y-a.y)))},!1)]},process:function(a){var b=[T(a,["size"],function(a){var b="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),c=parseFloat(mxUtils.getValue(this.state.style,
+"size",F.prototype.size));return b?new mxPoint(a.x+c,a.y+a.height/4):new mxPoint(a.x+a.width*c,a.y+a.height/4)},function(a,b){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(.5*a.width,b.x-a.x)):Math.max(0,Math.min(.5,(b.x-a.x)/a.width));this.state.style.size=c},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},cross:function(a){return[T(a,["size"],function(a){var b=Math.min(a.width,a.height),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
+"size",za.prototype.size)))*b/2;return new mxPoint(a.getCenterX()-b,a.getCenterY()-b)},function(a,b){var c=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-b.y)/c*2,Math.max(0,a.getCenterX()-b.x)/c*2)))})]},note:function(a){return[T(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",h.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=
+Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},note2:function(a){return[T(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",g.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},manualInput:function(a){var b=[T(a,["size"],function(a){var b=
+Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",ja.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*b/4)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(b.y-a.y)/3)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},dataStorage:function(a){return[T(a,["size"],function(a){var b="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),c=parseFloat(mxUtils.getValue(this.state.style,"size",b?P.prototype.fixedSize:
+P.prototype.size));return new mxPoint(a.x+a.width-c*(b?1:a.width),a.getCenterY())},function(a,b){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(a.width,a.x+a.width-b.x)):Math.max(0,Math.min(1,(a.x+a.width-b.x)/a.width));this.state.style.size=c},!1)]},callout:function(a){var b=[T(a,["size","position"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",G.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
+"position",G.prototype.position)));mxUtils.getValue(this.state.style,"base",G.prototype.base);return new mxPoint(a.x+c*a.width,a.y+a.height-b)},function(a,b){mxUtils.getValue(this.state.style,"base",G.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-b.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100},!1),T(a,["position2"],function(a){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",G.prototype.position2)));
+return new mxPoint(a.x+b*a.width,a.y+a.height)},function(a,b){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100},!1),T(a,["base"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",G.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",G.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",G.prototype.base)));return new mxPoint(a.x+Math.min(a.width,
+c*a.width+d),a.y+a.height-b)},function(a,b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",G.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,b.x-a.x-c*a.width)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},internalStorage:function(a){var b=[T(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",da.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
+"dy",da.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},module:function(a){return[T(a,["jettyWidth","jettyHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"jettyWidth",ga.prototype.jettyWidth))),c=Math.max(0,Math.min(a.height,
+mxUtils.getValue(this.state.style,"jettyHeight",ga.prototype.jettyHeight)));return new mxPoint(a.x+b/2,a.y+2*c)},function(a,b){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y))/2)})]},corner:function(a){return[T(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",fa.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
+"dy",fa.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},tee:function(a){return[T(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",Y.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",Y.prototype.dy)));return new mxPoint(a.x+(a.width+b)/2,a.y+c)},function(a,
+b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},singleArrow:va(1),doubleArrow:va(.5),folder:function(a){return[T(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",r.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",r.prototype.tabHeight)));mxUtils.getValue(this.state.style,
+"tabPosition",r.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=Math.max(0,Math.min(a.width,b.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",r.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},document:function(a){return[T(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,
+"size",x.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))},!1)]},tape:function(a){return[T(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b*a.height/2)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(b.y-a.y)/a.height*2))},!1)]},isoCube2:function(a){return[T(a,
+["isoAngle"],function(a){var b=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",m.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(b),.5*a.height))},function(a,b){this.state.style.isoAngle=Math.max(0,50*(b.y-a.y)/a.height)},!0)]},cylinder2:Ta(l.prototype.size),cylinder3:Ta(n.prototype.size),offPageConnector:function(a){return[T(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ha.prototype.size))));
return new mxPoint(a.getCenterX(),a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))},!1)]},"mxgraph.basic.rect":function(a){var b=[Graph.createHandle(a,["size"],function(a){var b=Math.max(0,Math.min(a.width/2,a.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(a.x+b,a.y+b)},function(a,b){this.state.style.size=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,b.x-a.x)))/100})];a=Graph.createHandle(a,
-["indent"],function(a){var b=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(a.x+.75*a.width,a.y+b*a.height/200)},function(a,b){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(b.y-a.y)/a.height)))/100});b.push(a);return b},step:Ja(K.prototype.size,!0,null,!0,K.prototype.fixedSize),hexagon:Ja(L.prototype.size,!0,.5,!0,L.prototype.fixedSize),curlyBracket:Ja(F.prototype.size,!1),display:Ja(Aa.prototype.size,!1),cube:Ra(1,
-c.prototype.size,!1),card:Ra(.5,v.prototype.size,!0),loopLimit:Ra(.5,ea.prototype.size,!0),trapezoid:Ua(.5,y.prototype.size,y.prototype.fixedSize),parallelogram:Ua(1,w.prototype.size,w.prototype.fixedSize)};Graph.createHandle=S;Graph.handleFactory=Ka;var ab=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=ab.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var b=this.state.style.shape;null==mxCellRenderer.defaultShapes[b]&&
+["indent"],function(a){var b=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(a.x+.75*a.width,a.y+b*a.height/200)},function(a,b){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(b.y-a.y)/a.height)))/100});b.push(a);return b},step:Ja(K.prototype.size,!0,null,!0,K.prototype.fixedSize),hexagon:Ja(L.prototype.size,!0,.5,!0,L.prototype.fixedSize),curlyBracket:Ja(E.prototype.size,!1),display:Ja(Aa.prototype.size,!1),cube:Ra(1,
+c.prototype.size,!1),card:Ra(.5,v.prototype.size,!0),loopLimit:Ra(.5,ea.prototype.size,!0),trapezoid:Ua(.5,y.prototype.size,y.prototype.fixedSize),parallelogram:Ua(1,w.prototype.size,w.prototype.fixedSize)};Graph.createHandle=T;Graph.handleFactory=Ka;var ab=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=ab.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var b=this.state.style.shape;null==mxCellRenderer.defaultShapes[b]&&
null==mxStencilRegistry.getStencil(b)?b=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&(b=mxConstants.SHAPE_SWIMLANE);b=Ka[b];null==b&&null!=this.state.shape&&this.state.shape.isRoundable()&&(b=Ka[mxConstants.SHAPE_RECTANGLE]);null!=b&&(b=b(this.state),null!=b&&(a=null==a?b:a.concat(b)))}return a};mxEdgeHandler.prototype.createCustomHandles=function(){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);
a=Ka[a];return null!=a?a(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var La=new mxPoint(1,0),Ma=new mxPoint(1,0),va=mxUtils.toRadians(-30),La=mxUtils.getRotatedPoint(La,Math.cos(va),Math.sin(va)),va=mxUtils.toRadians(-150),Ma=mxUtils.getRotatedPoint(Ma,Math.cos(va),Math.sin(va));mxEdgeStyle.IsometricConnector=function(a,b,c,d,e){var f=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,h=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null==
h&&null!=b&&(h=new mxPoint(b.getCenterX(),b.getCenterY()));null==g&&null!=c&&(g=new mxPoint(c.getCenterX(),c.getCenterY()));var k=La.x,m=La.y,l=Ma.x,n=Ma.y,q="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,b,c){a-=p.x;var d=b-p.y;b=(n*a-l*d)/(k*n-m*l);a=(m*a-k*d)/(m*l-k*n);q?(c&&(p=new mxPoint(p.x+k*b,p.y+m*b),e.push(p)),p=new mxPoint(p.x+l*a,p.y+n*a)):(c&&(p=new mxPoint(p.x+l*a,p.y+n*a),e.push(p)),p=new mxPoint(p.x+k*b,p.y+m*b));e.push(p)};var p=h;null==
d&&(d=new mxPoint(h.x+(g.x-h.x)/2,h.y+(g.y-h.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var bb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return bb.apply(this,arguments)};d.prototype.constraints=[];f.prototype.getConstraints=function(a,b,c){a=[];var d=Math.tan(mxUtils.toRadians(30)),e=(.5-
d)/2,d=Math.min(b,c/(.5+d));b=(b-d)/2;c=(c-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,c+.25*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+.5*d,c+d*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+d,c+.25*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+d,c+.75*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+.5*d,c+(1-e)*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,c+.75*d));return a};m.prototype.getConstraints=
function(a,b,c){a=[];var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,d=Math.min(b*Math.tan(d),.5*c);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,d));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,c-d));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,c-d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));return a};E.prototype.getConstraints=function(a,b,c){a=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+0),!1,null,0,c-d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));return a};G.prototype.getConstraints=function(a,b,c){a=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.5*(c-d)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
b,c-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(c-d)));b>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,
@@ -3472,19 +3470,19 @@ mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwim
function(a,b,c){a=[];var d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth)))),e=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(a.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,d,e)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b+d),e))):(a.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-.5*d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-d,e)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-d),e)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,e));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,b,.25*(c-e)+e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.5*(c-e)+e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.75*(c-e)+e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(c-e)+e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(c-e)+e));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,.75*(c-e)+e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};da.prototype.constraints=mxRectangleShape.prototype.constraints;O.prototype.constraints=mxRectangleShape.prototype.constraints;wa.prototype.constraints=mxEllipse.prototype.constraints;Ba.prototype.constraints=mxEllipse.prototype.constraints;
-Fa.prototype.constraints=mxEllipse.prototype.constraints;Ha.prototype.constraints=mxEllipse.prototype.constraints;ka.prototype.constraints=mxRectangleShape.prototype.constraints;Ia.prototype.constraints=mxRectangleShape.prototype.constraints;Aa.prototype.getConstraints=function(a,b,c){a=[];var d=Math.min(b,c/2),e=Math.min(b-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*b);a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,e,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+b-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-d,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-d,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+b-d),c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));return a};ha.prototype.getConstraints=function(a,b,c){b=parseFloat(mxUtils.getValue(a,
-"jettyWidth",ha.prototype.jettyWidth))/2;a=parseFloat(mxUtils.getValue(a,"jettyHeight",ha.prototype.jettyHeight));var d=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,b),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,
+0),!1,null,0,.75*(c-e)+e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};da.prototype.constraints=mxRectangleShape.prototype.constraints;P.prototype.constraints=mxRectangleShape.prototype.constraints;wa.prototype.constraints=mxEllipse.prototype.constraints;Ba.prototype.constraints=mxEllipse.prototype.constraints;
+Fa.prototype.constraints=mxEllipse.prototype.constraints;Ha.prototype.constraints=mxEllipse.prototype.constraints;ja.prototype.constraints=mxRectangleShape.prototype.constraints;Ia.prototype.constraints=mxRectangleShape.prototype.constraints;Aa.prototype.getConstraints=function(a,b,c){a=[];var d=Math.min(b,c/2),e=Math.min(b-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*b);a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,e,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+b-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-d,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-d,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+b-d),c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));return a};ga.prototype.getConstraints=function(a,b,c){b=parseFloat(mxUtils.getValue(a,
+"jettyWidth",ga.prototype.jettyWidth))/2;a=parseFloat(mxUtils.getValue(a,"jettyHeight",ga.prototype.jettyHeight));var d=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,b),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,
.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!1,null,b),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(c-.5*a,1.5*a)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(c-.5*a,3.5*a))];c>5*a&&d.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,b));c>8*a&&d.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1,null,b));c>15*a&&d.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,b));return d};ea.prototype.constraints=mxRectangleShape.prototype.constraints;ia.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
+.5),!1,null,b));c>15*a&&d.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,b));return d};ea.prototype.constraints=mxRectangleShape.prototype.constraints;ha.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
.5),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,.3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];X.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,
.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];na.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
.7),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.25,.2),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(0,
.75),!0),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];p.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,
.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];t.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,
.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];K.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,
-.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ga.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,
+.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ka.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,
0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];mxDoubleEllipse.prototype.constraints=mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1,
.5),!0)];mxHexagon.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.375,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.625,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.375,
1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.625,1),!0)];mxCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.4,.1),!1),new mxConnectionConstraint(new mxPoint(.16,.55),!1),new mxConnectionConstraint(new mxPoint(.07,.4),!1),new mxConnectionConstraint(new mxPoint(.31,.8),!1),new mxConnectionConstraint(new mxPoint(.13,.77),!1),new mxConnectionConstraint(new mxPoint(.8,.8),!1),new mxConnectionConstraint(new mxPoint(.55,
@@ -3501,7 +3499,7 @@ function(a,b,c){a=[];var d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(t
function(a,b,c){a=[];var d=Math.min(c,b),e=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),d=(c-e)/2,f=d+e,g=(b-e)/2,e=g+e;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,0));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,e,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,c-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,c));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b+e),d));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,b,d));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b+e),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d));return a};U.prototype.constraints=null;V.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,
+0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d));return a};Q.prototype.constraints=null;V.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,
.9),!1)];ca.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)];oa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];pa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
Actions.prototype.init=function(){function a(a){d.escape();a=d.deleteCells(d.getDeletableCells(d.getSelectionCells()),a);null!=a&&d.setSelectionCells(a)}function b(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();try{for(var a=d.getSelectionCells(),b=0;b<a.length;b++)d.cellLabelChanged(a[b],"")}finally{d.getModel().endUpdate()}}}var c=this.editorUi,e=c.editor,d=e.graph,f=function(){return Action.prototype.isEnabled.apply(this,arguments)&&d.isEnabled()};this.addAction("new...",function(){d.openLink(c.getUrl())});
@@ -3600,8 +3598,8 @@ null,mxUtils.bind(this,function(){try{k?c.insertLane(e,!0):c.insertTableColumn(e
d=a.addItem(mxResources.get("deleteColumn"),null,mxUtils.bind(this,function(){if(null!=e)try{k?c.deleteLane(e):c.deleteTableColumn(e)}catch(m){this.editorUi.handleError(m)}}),null,"geIcon geSprite geSprite-deletecolumn"),d.setAttribute("title",mxResources.get("deleteColumn"))),g&&(d=a.addItem(mxResources.get("insertRowBefore"),null,mxUtils.bind(this,function(){try{k?c.insertLane(e,!0):c.insertTableRow(e,!0)}catch(m){this.editorUi.handleError(m)}}),null,"geIcon geSprite geSprite-insertrowbefore"),
d.setAttribute("title",mxResources.get("insertRowBefore")),d=a.addItem(mxResources.get("insertRowAfter"),null,mxUtils.bind(this,function(){try{k?c.insertLane(e,!1):c.insertTableRow(e,!1)}catch(m){this.editorUi.handleError(m)}}),null,"geIcon geSprite geSprite-insertrowafter"),d.setAttribute("title",mxResources.get("insertRowAfter")),d=a.addItem(mxResources.get("deleteRow"),null,mxUtils.bind(this,function(){try{k?c.deleteLane(e):c.deleteTableRow(e)}catch(m){this.editorUi.handleError(m)}}),null,"geIcon geSprite geSprite-deleterow"),
d.setAttribute("title",mxResources.get("deleteRow"))))};
-Menus.prototype.addInsertTableItem=function(a,b,c,e){function d(a,b){for(var c=["<table>"],d=0;d<a;d++){c.push("<tr>");for(var e=0;e<b;e++)c.push("<td><br></td>");c.push("</tr>")}c.push("</table>");return c.join("")}function f(a){g=k.getParentByName(mxEvent.getSource(a),"TD");var b=!1;if(null!=g){h=k.getParentByName(g,"TR");for(var c=mxEvent.isMouseEvent(a)?2:4,d=p,e=Math.min(20,h.sectionRowIndex+c),c=Math.min(20,g.cellIndex+c),f=d.rows.length;f<e;f++)for(var l=d.insertRow(f),m=0;m<d.rows[0].cells.length;m++)l.insertCell(-1);
-for(f=0;f<d.rows.length;f++)for(l=d.rows[f],m=l.cells.length;m<c;m++)l.insertCell(-1);r.innerHTML=g.cellIndex+1+"x"+(h.sectionRowIndex+1);for(d=0;d<p.rows.length;d++)for(e=p.rows[d],c=0;c<e.cells.length;c++)f=e.cells[c],d==h.sectionRowIndex&&c==g.cellIndex&&(b="blue"==f.style.backgroundColor),f.style.backgroundColor=d<=h.sectionRowIndex&&c<=g.cellIndex?"blue":"transparent"}mxEvent.consume(a);return b}e=null!=e?e:!0;b=null!=b?b:mxUtils.bind(this,function(a,b,c){var e=this.editorUi.editor.graph;a=e.getParentByName(mxEvent.getSource(a),
+Menus.prototype.addInsertTableItem=function(a,b,c,e){function d(a,b){for(var c=["<table>"],d=0;d<a;d++){c.push("<tr>");for(var e=0;e<b;e++)c.push("<td><br></td>");c.push("</tr>")}c.push("</table>");return c.join("")}function f(a){g=k.getParentByName(mxEvent.getSource(a),"TD");var b=!1;if(null!=g){h=k.getParentByName(g,"TR");for(var c=mxEvent.isMouseEvent(a)?2:4,d=p,e=Math.min(20,h.sectionRowIndex+c),c=Math.min(20,g.cellIndex+c),f=d.rows.length;f<e;f++)for(var m=d.insertRow(f),l=0;l<d.rows[0].cells.length;l++)m.insertCell(-1);
+for(f=0;f<d.rows.length;f++)for(m=d.rows[f],l=m.cells.length;l<c;l++)m.insertCell(-1);r.innerHTML=g.cellIndex+1+"x"+(h.sectionRowIndex+1);for(d=0;d<p.rows.length;d++)for(e=p.rows[d],c=0;c<e.cells.length;c++)f=e.cells[c],d==h.sectionRowIndex&&c==g.cellIndex&&(b="blue"==f.style.backgroundColor),f.style.backgroundColor=d<=h.sectionRowIndex&&c<=g.cellIndex?"blue":"transparent"}mxEvent.consume(a);return b}e=null!=e?e:!0;b=null!=b?b:mxUtils.bind(this,function(a,b,c){var e=this.editorUi.editor.graph;a=e.getParentByName(mxEvent.getSource(a),
"TD");if(null!=a&&null!=e.cellEditor.textarea){e.getParentByName(a,"TR");var f=e.cellEditor.textarea.getElementsByTagName("table");a=[];for(var g=0;g<f.length;g++)a.push(f[g]);e.container.focus();e.pasteHtmlAtCaret(d(b,c));b=e.cellEditor.textarea.getElementsByTagName("table");if(b.length==a.length+1)for(g=b.length-1;0<=g;g--)if(0==g||b[g]!=a[g-1]){e.selectNode(b[g].rows[0].cells[0]);break}}});var k=this.editorUi.editor.graph,h=null,g=null;null==c&&(a.div.className+=" geToolbarMenu",a.labels=!1);a=
a.addItem("",null,null,c,null,null,null,!0);a.firstChild.style.fontSize=Menus.prototype.defaultFontSize+"px";a.firstChild.innerHTML="";var m=document.createElement("input");m.setAttribute("id","geTitleOption");m.setAttribute("type","checkbox");c=document.createElement("label");mxUtils.write(c,mxResources.get("title"));c.setAttribute("for","geTitleOption");mxEvent.addGestureListeners(c,null,null,mxUtils.bind(this,function(a){mxEvent.consume(a)}));mxEvent.addGestureListeners(m,null,null,mxUtils.bind(this,
function(a){mxEvent.consume(a)}));var l=document.createElement("input");l.setAttribute("id","geContainerOption");l.setAttribute("type","checkbox");var n=document.createElement("label");mxUtils.write(n,mxResources.get("container"));n.setAttribute("for","geContainerOption");mxEvent.addGestureListeners(n,null,null,mxUtils.bind(this,function(a){mxEvent.consume(a)}));mxEvent.addGestureListeners(l,null,null,mxUtils.bind(this,function(a){mxEvent.consume(a)}));e&&(a.firstChild.appendChild(m),a.firstChild.appendChild(c),
@@ -3704,7 +3702,7 @@ function(){a.hideDialog()});e.className="geBtn";a.editor.cancelFirst&&b.appendCh
d.appendChild(f);a.editor.graph.isEnabled()&&(f=document.createElement("option"),f.setAttribute("value","import"),mxUtils.write(f,mxResources.get("addToExistingDrawing")),d.appendChild(f));b.appendChild(d);f=mxUtils.button(mxResources.get("ok"),function(){var b=Graph.zapGremlins(mxUtils.trim(c.value)),e=null;if("new"==d.value)a.hideDialog(),a.editor.editAsNew(b);else if("replace"==d.value){a.editor.graph.model.beginUpdate();try{a.editor.setGraphXml(mxUtils.parseXml(b).documentElement),a.hideDialog()}catch(n){e=
n}finally{a.editor.graph.model.endUpdate()}}else if("import"==d.value){a.editor.graph.model.beginUpdate();try{var f=mxUtils.parseXml(b),m=new mxGraphModel;(new mxCodec(f)).decode(f.documentElement,m);var l=m.getChildren(m.getChildAt(m.getRoot(),0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(l));a.hideDialog()}catch(n){e=n}finally{a.editor.graph.model.endUpdate()}}null!=e&&mxUtils.alert(e.message)});f.className="geBtn gePrimaryBtn";b.appendChild(f);a.editor.cancelFirst||b.appendChild(e);
this.container=b};EditDiagramDialog.showNewWindowOption=!0;
-var ExportDialog=function(a){function b(){var a=l.value,b=a.lastIndexOf(".");l.value=0<b?a.substring(0,b+1)+n.value:a+"."+n.value;"xml"===n.value?(p.setAttribute("disabled","true"),r.setAttribute("disabled","true"),u.setAttribute("disabled","true"),F.setAttribute("disabled","true")):(p.removeAttribute("disabled"),r.removeAttribute("disabled"),u.removeAttribute("disabled"),F.removeAttribute("disabled"));"png"===n.value||"svg"===n.value||"pdf"===n.value?w.removeAttribute("disabled"):w.setAttribute("disabled",
+var ExportDialog=function(a){function b(){var a=l.value,b=a.lastIndexOf(".");l.value=0<b?a.substring(0,b+1)+n.value:a+"."+n.value;"xml"===n.value?(p.setAttribute("disabled","true"),r.setAttribute("disabled","true"),u.setAttribute("disabled","true"),E.setAttribute("disabled","true")):(p.removeAttribute("disabled"),r.removeAttribute("disabled"),u.removeAttribute("disabled"),E.removeAttribute("disabled"));"png"===n.value||"svg"===n.value||"pdf"===n.value?w.removeAttribute("disabled"):w.setAttribute("disabled",
"disabled");"png"===n.value||"jpg"===n.value||"pdf"===n.value?y.removeAttribute("disabled"):y.setAttribute("disabled","disabled");"png"===n.value?(v.removeAttribute("disabled"),t.removeAttribute("disabled")):(v.setAttribute("disabled","disabled"),t.setAttribute("disabled","disabled"))}function c(){r.style.backgroundColor=r.value*u.value>MAX_AREA||0>=r.value?"red":"";u.style.backgroundColor=r.value*u.value>MAX_AREA||0>=u.value?"red":""}var e=a.editor.graph,d=e.getGraphBounds(),f=e.view.scale,k=Math.ceil(d.width/
f),h=Math.ceil(d.height/f),g,f=document.createElement("table"),m=document.createElement("tbody");f.setAttribute("cellpadding",mxClient.IS_SF?"0":"2");d=document.createElement("tr");g=document.createElement("td");g.style.fontSize="10pt";g.style.width="100px";mxUtils.write(g,mxResources.get("filename")+":");d.appendChild(g);var l=document.createElement("input");l.setAttribute("value",a.editor.getOrCreateFilename());l.style.width="180px";g=document.createElement("td");g.appendChild(l);d.appendChild(g);
m.appendChild(d);d=document.createElement("tr");g=document.createElement("td");g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("format")+":");d.appendChild(g);var n=document.createElement("select");n.style.width="180px";g=document.createElement("option");g.setAttribute("value","png");mxUtils.write(g,mxResources.get("formatPng"));n.appendChild(g);g=document.createElement("option");ExportDialog.showGifOption&&(g.setAttribute("value","gif"),mxUtils.write(g,mxResources.get("formatGif")),n.appendChild(g));
@@ -3715,23 +3713,23 @@ g.appendChild(u);d.appendChild(g);m.appendChild(d);d=document.createElement("tr"
g.setAttribute("value","300");mxUtils.write(g,"300dpi");v.appendChild(g);g=document.createElement("option");g.setAttribute("value","400");mxUtils.write(g,"400dpi");v.appendChild(g);g=document.createElement("option");g.setAttribute("value","custom");mxUtils.write(g,mxResources.get("custom"));v.appendChild(g);var t=document.createElement("input");t.style.width="180px";t.style.display="none";t.setAttribute("value","100");t.setAttribute("type","number");t.setAttribute("min","50");t.setAttribute("step",
"50");var x=!1;mxEvent.addListener(v,"change",function(){"custom"==this.value?(this.style.display="none",t.style.display="",t.focus()):(t.value=this.value,x||(p.value=this.value))});mxEvent.addListener(t,"change",function(){var a=parseInt(t.value);isNaN(a)||0>=a?t.style.backgroundColor="red":(t.style.backgroundColor="",x||(p.value=a))});g=document.createElement("td");g.appendChild(v);g.appendChild(t);d.appendChild(g);m.appendChild(d);d=document.createElement("tr");g=document.createElement("td");g.style.fontSize=
"10pt";mxUtils.write(g,mxResources.get("background")+":");d.appendChild(g);var w=document.createElement("input");w.setAttribute("type","checkbox");w.checked=null==e.background||e.background==mxConstants.NONE;g=document.createElement("td");g.appendChild(w);mxUtils.write(g,mxResources.get("transparent"));d.appendChild(g);m.appendChild(d);d=document.createElement("tr");g=document.createElement("td");g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("grid")+":");d.appendChild(g);var y=document.createElement("input");
-y.setAttribute("type","checkbox");y.checked=!1;g=document.createElement("td");g.appendChild(y);d.appendChild(g);m.appendChild(d);d=document.createElement("tr");g=document.createElement("td");g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("borderWidth")+":");d.appendChild(g);var F=document.createElement("input");F.setAttribute("type","number");F.setAttribute("value",ExportDialog.lastBorderValue);F.style.width="180px";g=document.createElement("td");g.appendChild(F);d.appendChild(g);m.appendChild(d);
+y.setAttribute("type","checkbox");y.checked=!1;g=document.createElement("td");g.appendChild(y);d.appendChild(g);m.appendChild(d);d=document.createElement("tr");g=document.createElement("td");g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("borderWidth")+":");d.appendChild(g);var E=document.createElement("input");E.setAttribute("type","number");E.setAttribute("value",ExportDialog.lastBorderValue);E.style.width="180px";g=document.createElement("td");g.appendChild(E);d.appendChild(g);m.appendChild(d);
f.appendChild(m);mxEvent.addListener(n,"change",b);b();mxEvent.addListener(p,"change",function(){x=!0;var a=Math.max(0,parseFloat(p.value)||100)/100;p.value=parseFloat((100*a).toFixed(2));0<k?(r.value=Math.floor(k*a),u.value=Math.floor(h*a)):(p.value="100",r.value=k,u.value=h);c()});mxEvent.addListener(r,"change",function(){var a=parseInt(r.value)/k;0<a?(p.value=parseFloat((100*a).toFixed(2)),u.value=Math.floor(h*a)):(p.value="100",r.value=k,u.value=h);c()});mxEvent.addListener(u,"change",function(){var a=
-parseInt(u.value)/h;0<a?(p.value=parseFloat((100*a).toFixed(2)),r.value=Math.floor(k*a)):(p.value="100",r.value=k,u.value=h);c()});d=document.createElement("tr");g=document.createElement("td");g.setAttribute("align","right");g.style.paddingTop="22px";g.colSpan=2;var I=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(){if(0>=parseInt(p.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var b=l.value,c=n.value,d=Math.max(0,parseFloat(p.value)||100)/100,f=Math.max(0,parseInt(F.value)),
+parseInt(u.value)/h;0<a?(p.value=parseFloat((100*a).toFixed(2)),r.value=Math.floor(k*a)):(p.value="100",r.value=k,u.value=h);c()});d=document.createElement("tr");g=document.createElement("td");g.setAttribute("align","right");g.style.paddingTop="22px";g.colSpan=2;var I=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(){if(0>=parseInt(p.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var b=l.value,c=n.value,d=Math.max(0,parseFloat(p.value)||100)/100,f=Math.max(0,parseInt(E.value)),
g=e.background,h=Math.max(1,parseInt(t.value));if(("svg"==c||"png"==c||"pdf"==c)&&w.checked)g=null;else if(null==g||g==mxConstants.NONE)g="#ffffff";ExportDialog.lastBorderValue=f;ExportDialog.exportFile(a,b,c,g,d,f,h,y.checked)}}));I.className="geBtn gePrimaryBtn";var A=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});A.className="geBtn";a.editor.cancelFirst?(g.appendChild(A),g.appendChild(I)):(g.appendChild(I),g.appendChild(A));d.appendChild(g);m.appendChild(d);f.appendChild(m);
this.container=f};ExportDialog.lastBorderValue=0;ExportDialog.showGifOption=!0;ExportDialog.showXmlOption=!0;
ExportDialog.exportFile=function(a,b,c,e,d,f,k,h){h=a.editor.graph;if("xml"==c)ExportDialog.saveLocalFile(a,mxUtils.getXml(a.editor.getGraphXml()),b,c);else if("svg"==c)ExportDialog.saveLocalFile(a,mxUtils.getXml(h.getSvg(e,d,f)),b,c);else{var g=h.getGraphBounds(),m=mxUtils.createXmlDocument(),l=m.createElement("output");m.appendChild(l);m=new mxXmlCanvas2D(l);m.translate(Math.floor((f/d-g.x)/h.view.scale),Math.floor((f/d-g.y)/h.view.scale));m.scale(d/h.view.scale);(new mxImageExport).drawState(h.getView().getState(h.model.root),
m);l="xml="+encodeURIComponent(mxUtils.getXml(l));m=Math.ceil(g.width*d/h.view.scale+2*f);d=Math.ceil(g.height*d/h.view.scale+2*f);l.length<=MAX_REQUEST_SIZE&&m*d<MAX_AREA?(a.hideDialog(),(new mxXmlRequest(EXPORT_URL,"format="+c+"&filename="+encodeURIComponent(b)+"&bg="+(null!=e?e:"none")+"&w="+m+"&h="+d+"&"+l+"&dpi="+k)).simulate(document,"_blank")):mxUtils.alert(mxResources.get("drawingTooLarge"))}};
ExportDialog.saveLocalFile=function(a,b,c,e){b.length<MAX_REQUEST_SIZE?(a.hideDialog(),(new mxXmlRequest(SAVE_URL,"xml="+encodeURIComponent(b)+"&filename="+encodeURIComponent(c)+"&format="+e)).simulate(document,"_blank")):(mxUtils.alert(mxResources.get("drawingTooLarge")),mxUtils.popup(xml))};
-var EditDataDialog=function(a,b){function c(){0<y.value.length?F.removeAttribute("disabled"):F.setAttribute("disabled","disabled")}var e=document.createElement("div"),d=a.editor.graph,f=d.getModel().getValue(b);if(!mxUtils.isNode(f)){var k=mxUtils.createXmlDocument().createElement("object");k.setAttribute("label",f||"");f=k}var h={};try{var g=mxUtils.getValue(a.editor.graph.getCurrentCellStyle(b),"metaData",null);null!=g&&(h=JSON.parse(g))}catch(A){}var m=new mxForm("properties");m.table.style.width=
+var EditDataDialog=function(a,b){function c(){0<y.value.length?E.removeAttribute("disabled"):E.setAttribute("disabled","disabled")}var e=document.createElement("div"),d=a.editor.graph,f=d.getModel().getValue(b);if(!mxUtils.isNode(f)){var k=mxUtils.createXmlDocument().createElement("object");k.setAttribute("label",f||"");f=k}var h={};try{var g=mxUtils.getValue(a.editor.graph.getCurrentCellStyle(b),"metaData",null);null!=g&&(h=JSON.parse(g))}catch(A){}var m=new mxForm("properties");m.table.style.width=
"100%";for(var l=f.attributes,n=[],p=[],r=0,u=null!=EditDataDialog.getDisplayIdForCell?EditDataDialog.getDisplayIdForCell(a,b):null,v=function(a,b){var c=document.createElement("div");c.style.position="relative";c.style.paddingRight="20px";c.style.boxSizing="border-box";c.style.width="100%";var d=document.createElement("a"),e=mxUtils.createImage(Dialog.prototype.closeImage);e.style.height="9px";e.style.fontSize="9px";e.style.marginBottom=mxClient.IS_IE11?"-1px":"5px";d.className="geButton";d.setAttribute("title",
mxResources.get("delete"));d.style.position="absolute";d.style.top="4px";d.style.right="0px";d.style.margin="0px";d.style.width="9px";d.style.height="9px";d.style.cursor="pointer";d.appendChild(e);e=function(a){return function(){for(var b=0,c=0;c<n.length;c++){if(n[c]==a){p[c]=null;m.table.deleteRow(b+(null!=u?1:0));break}null!=p[c]&&b++}}}(b);mxEvent.addListener(d,"click",e);e=a.parentNode;c.appendChild(a);c.appendChild(d);e.appendChild(c)},k=function(a,b,c){n[a]=b;p[a]=m.addTextarea(n[r]+":",c,
2);p[a].style.width="100%";0<c.indexOf("\n")&&p[a].setAttribute("rows","2");v(p[a],b);null!=h[b]&&0==h[b].editable&&p[a].setAttribute("disabled","disabled")},g=[],t=d.getModel().getParent(b)==d.getModel().getRoot(),x=0;x<l.length;x++)!t&&"label"==l[x].nodeName||"placeholders"==l[x].nodeName||g.push({name:l[x].nodeName,value:l[x].nodeValue});g.sort(function(a,b){return a.name<b.name?-1:a.name>b.name?1:0});if(null!=u){l=document.createElement("div");l.style.width="100%";l.style.fontSize="11px";l.style.textAlign=
"center";mxUtils.write(l,u);var w=m.addField(mxResources.get("id")+":",l);mxEvent.addListener(l,"dblclick",function(c){mxEvent.isShiftDown(c)&&(c=new FilenameDialog(a,u,mxResources.get("apply"),mxUtils.bind(this,function(c){null!=c&&0<c.length&&c!=u&&(null==d.getModel().getCell(c)?(d.getModel().cellRemoved(b),b.setId(c),u=c,w.innerHTML=mxUtils.htmlEntities(c),d.getModel().cellAdded(b)):a.handleError({message:mxResources.get("alreadyExst",[c])}))}),mxResources.get("id")),a.showDialog(c.container,300,
80,!0,!0),c.init())});l.setAttribute("title","Shift+Double Click to Edit ID")}for(x=0;x<g.length;x++)k(r,g[x].name,g[x].value),r++;g=document.createElement("div");g.style.position="absolute";g.style.top="30px";g.style.left="30px";g.style.right="30px";g.style.bottom="80px";g.style.overflowY="auto";g.appendChild(m.table);k=document.createElement("div");k.style.boxSizing="border-box";k.style.paddingRight="160px";k.style.whiteSpace="nowrap";k.style.marginTop="6px";k.style.width="100%";var y=document.createElement("input");
-y.setAttribute("placeholder",mxResources.get("enterPropertyName"));y.setAttribute("type","text");y.setAttribute("size",mxClient.IS_IE||mxClient.IS_IE11?"36":"40");y.style.boxSizing="border-box";y.style.marginLeft="2px";y.style.width="100%";k.appendChild(y);g.appendChild(k);e.appendChild(g);var F=mxUtils.button(mxResources.get("addProperty"),function(){var a=y.value;if(0<a.length&&"label"!=a&&"placeholders"!=a&&0>a.indexOf(":"))try{var b=mxUtils.indexOf(n,a);if(0<=b&&null!=p[b])p[b].focus();else{f.cloneNode(!1).setAttribute(a,
-"");0<=b&&(n.splice(b,1),p.splice(b,1));n.push(a);var c=m.addTextarea(a+":","",2);c.style.width="100%";p.push(c);v(c,a);c.focus()}F.setAttribute("disabled","disabled");y.value=""}catch(E){mxUtils.alert(E)}else mxUtils.alert(mxResources.get("invalidName"))});mxEvent.addListener(y,"keypress",function(a){13==a.keyCode&&F.click()});this.init=function(){0<p.length?p[0].focus():y.focus()};F.setAttribute("title",mxResources.get("addProperty"));F.setAttribute("disabled","disabled");F.style.textOverflow="ellipsis";
-F.style.position="absolute";F.style.overflow="hidden";F.style.width="144px";F.style.right="0px";F.className="geBtn";k.appendChild(F);g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog.apply(a,arguments)});g.setAttribute("title","Escape");g.className="geBtn";var I=mxUtils.button(mxResources.get("apply"),function(){try{a.hideDialog.apply(a,arguments);f=f.cloneNode(!0);for(var c=!1,e=0;e<n.length;e++)null==p[e]?f.removeAttribute(n[e]):(f.setAttribute(n[e],p[e].value),c=c||"placeholder"==
+y.setAttribute("placeholder",mxResources.get("enterPropertyName"));y.setAttribute("type","text");y.setAttribute("size",mxClient.IS_IE||mxClient.IS_IE11?"36":"40");y.style.boxSizing="border-box";y.style.marginLeft="2px";y.style.width="100%";k.appendChild(y);g.appendChild(k);e.appendChild(g);var E=mxUtils.button(mxResources.get("addProperty"),function(){var a=y.value;if(0<a.length&&"label"!=a&&"placeholders"!=a&&0>a.indexOf(":"))try{var b=mxUtils.indexOf(n,a);if(0<=b&&null!=p[b])p[b].focus();else{f.cloneNode(!1).setAttribute(a,
+"");0<=b&&(n.splice(b,1),p.splice(b,1));n.push(a);var c=m.addTextarea(a+":","",2);c.style.width="100%";p.push(c);v(c,a);c.focus()}E.setAttribute("disabled","disabled");y.value=""}catch(G){mxUtils.alert(G)}else mxUtils.alert(mxResources.get("invalidName"))});mxEvent.addListener(y,"keypress",function(a){13==a.keyCode&&E.click()});this.init=function(){0<p.length?p[0].focus():y.focus()};E.setAttribute("title",mxResources.get("addProperty"));E.setAttribute("disabled","disabled");E.style.textOverflow="ellipsis";
+E.style.position="absolute";E.style.overflow="hidden";E.style.width="144px";E.style.right="0px";E.className="geBtn";k.appendChild(E);g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog.apply(a,arguments)});g.setAttribute("title","Escape");g.className="geBtn";var I=mxUtils.button(mxResources.get("apply"),function(){try{a.hideDialog.apply(a,arguments);f=f.cloneNode(!0);for(var c=!1,e=0;e<n.length;e++)null==p[e]?f.removeAttribute(n[e]):(f.setAttribute(n[e],p[e].value),c=c||"placeholder"==
n[e]&&"1"==f.getAttribute("placeholders"));c&&f.removeAttribute("label");d.getModel().setValue(b,f)}catch(z){mxUtils.alert(z)}});I.setAttribute("title","Ctrl+Enter");I.className="geBtn gePrimaryBtn";mxEvent.addListener(e,"keypress",function(a){13==a.keyCode&&mxEvent.isControlDown(a)&&I.click()});mxEvent.addListener(y,"keyup",c);mxEvent.addListener(y,"change",c);k=document.createElement("div");k.style.cssText="position:absolute;left:30px;right:30px;text-align:right;bottom:30px;height:40px;";if(a.editor.graph.getModel().isVertex(b)||
a.editor.graph.getModel().isEdge(b))l=document.createElement("span"),l.style.marginRight="10px",t=document.createElement("input"),t.setAttribute("type","checkbox"),t.style.marginRight="6px","1"==f.getAttribute("placeholders")&&(t.setAttribute("checked","checked"),t.defaultChecked=!0),mxEvent.addListener(t,"click",function(){"1"==f.getAttribute("placeholders")?f.removeAttribute("placeholders"):f.setAttribute("placeholders","1")}),l.appendChild(t),mxUtils.write(l,mxResources.get("placeholders")),null!=
EditDataDialog.placeholderHelpLink&&(t=document.createElement("a"),t.setAttribute("href",EditDataDialog.placeholderHelpLink),t.setAttribute("title",mxResources.get("help")),t.setAttribute("target","_blank"),t.style.marginLeft="8px",t.style.cursor="help",x=document.createElement("img"),mxUtils.setOpacity(x,50),x.style.height="16px",x.style.width="16px",x.setAttribute("border","0"),x.setAttribute("valign","middle"),x.style.marginTop=mxClient.IS_IE11?"0px":"-4px",x.setAttribute("src",Editor.helpImage),
@@ -3743,7 +3741,7 @@ b.className="geBtn";a.editor.cancelFirst&&f.appendChild(b);c=mxUtils.button(c,fu
new mxRectangle(0,0,80,80);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.setLocation=function(a,b){var c=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-("1"==urlParams.sketch?
3:48)));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var k=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",k);var h=a.createOutline(this.window);this.destroy=function(){mxEvent.removeListener(window,"resize",k);this.window.destroy();h.destroy()};this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit();h.setSuspended(!1)}));this.window.addListener(mxEvent.HIDE,
mxUtils.bind(this,function(){h.setSuspended(!0)}));this.window.addListener(mxEvent.NORMALIZE,mxUtils.bind(this,function(){h.setSuspended(!1)}));this.window.addListener(mxEvent.MINIMIZE,mxUtils.bind(this,function(){h.setSuspended(!0)}));h.init(f);var g=a.actions.get("zoomIn"),m=a.actions.get("zoomOut");mxEvent.addMouseWheelListener(function(a,b){for(var c=!1,d=mxEvent.getSource(a);null!=d;){if(d==h.svg){c=!0;break}d=d.parentNode}c&&(b?g.funct():m.funct())})},LayersWindow=function(a,b,c,e,d){function f(b){if(g.isEnabled()&&
-null!=b){var c=g.convertValueToString(b),c=new FilenameDialog(a,c||mxResources.get("background"),mxResources.get("rename"),mxUtils.bind(this,function(a){null!=a&&g.cellLabelChanged(b,a)}),mxResources.get("enterName"));a.showDialog(c.container,300,100,!0,!0);c.init()}}function k(){var a=A.get(g.getLayerForCells(g.getSelectionCells()));null!=a?a.appendChild(G):null!=G.parentNode&&G.parentNode.removeChild(G)}function h(){function a(a,b,c,d){var e=document.createElement("div");e.className="geToolbarContainer";
+null!=b){var c=g.convertValueToString(b),c=new FilenameDialog(a,c||mxResources.get("background"),mxResources.get("rename"),mxUtils.bind(this,function(a){null!=a&&g.cellLabelChanged(b,a)}),mxResources.get("enterName"));a.showDialog(c.container,300,100,!0,!0);c.init()}}function k(){var a=A.get(g.getLayerForCells(g.getSelectionCells()));null!=a?a.appendChild(F):null!=F.parentNode&&F.parentNode.removeChild(F)}function h(){function a(a,b,c,d){var e=document.createElement("div");e.className="geToolbarContainer";
A.put(c,e);e.style.overflow="hidden";e.style.position="relative";e.style.padding="4px";e.style.height="22px";e.style.display="block";e.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";e.style.borderWidth="0px 0px 1px 0px";e.style.borderColor="#c3c3c3";e.style.borderStyle="solid";e.style.whiteSpace="nowrap";e.setAttribute("title",b);var h=document.createElement("div");h.style.display="inline-block";h.style.width="100%";h.style.textOverflow="ellipsis";h.style.overflow="hidden";
mxEvent.addListener(e,"dragover",function(b){b.dataTransfer.dropEffect="move";r=a;b.stopPropagation();b.preventDefault()});mxEvent.addListener(e,"dragstart",function(a){p=e;mxClient.IS_FF&&a.dataTransfer.setData("Text","<layer/>")});mxEvent.addListener(e,"dragend",function(a){null!=p&&null!=r&&g.addCell(c,g.model.root,r);r=p=null;a.stopPropagation();a.preventDefault()});var k=document.createElement("img");k.setAttribute("draggable","false");k.setAttribute("align","top");k.setAttribute("border","0");
k.style.width="16px";k.style.padding="0px 6px 0 4px";k.style.marginTop="2px";k.style.cursor="pointer";k.setAttribute("title",mxResources.get(g.model.isVisible(c)?"hide":"show"));g.model.isVisible(c)?(k.setAttribute("src",Editor.visibleImage),mxUtils.setOpacity(e,75)):(k.setAttribute("src",Editor.hiddenImage),mxUtils.setOpacity(e,25));Editor.isDarkMode()&&(k.style.filter="invert(100%)");h.appendChild(k);mxEvent.addListener(k,"click",function(a){g.model.setVisible(c,!g.model.isVisible(c));mxEvent.consume(a)});
@@ -3759,9 +3757,9 @@ a.preventDefault()});var u=null,v=null,t=document.createElement("div");t.classNa
"nowrap";var x=document.createElement("a");x.className="geButton";var w=x.cloneNode(!1),l=document.createElement("img");l.setAttribute("border","0");l.setAttribute("width","22");l.setAttribute("src",Editor.trashImage);l.style.opacity="0.9";Editor.isDarkMode()&&(l.style.filter="invert(100%)");w.appendChild(l);mxEvent.addListener(w,"click",function(a){if(g.isEnabled()){g.model.beginUpdate();try{var b=g.model.root.getIndex(v);g.removeCells([v],!1);0==g.model.getChildCount(g.model.root)?(g.model.add(g.model.root,
new mxCell),g.setDefaultParent(null)):0<b&&b<=g.model.getChildCount(g.model.root)?g.setDefaultParent(g.model.getChildAt(g.model.root,b-1)):g.setDefaultParent(null)}finally{g.model.endUpdate()}}mxEvent.consume(a)});g.isEnabled()||(w.className="geButton mxDisabled");t.appendChild(w);var y=x.cloneNode();y.setAttribute("title",mxUtils.trim(mxResources.get("moveSelectionTo",["..."])));l=l.cloneNode(!1);l.setAttribute("src",Editor.verticalDotsImage);y.appendChild(l);mxEvent.addListener(y,"click",function(b){if(g.isEnabled()&&
!g.isSelectionEmpty()){var c=mxUtils.getOffset(y);a.showPopupMenu(mxUtils.bind(this,function(a,b){for(var c=u-1;0<=c;c--)mxUtils.bind(this,function(c){var d=a.addItem(g.convertValueToString(c)||mxResources.get("background"),null,mxUtils.bind(this,function(){g.moveCells(g.getSelectionCells(),0,0,!1,c)}),b);1==g.getSelectionCount()&&g.model.isAncestor(c,g.getSelectionCell())&&a.addCheckmark(d,Editor.checkmarkImage)})(g.model.getChildAt(g.model.root,c))}),c.x,c.y+y.offsetHeight,b)}});t.appendChild(y);
-var F=x.cloneNode(!1);F.setAttribute("title",mxResources.get("editData"));l=l.cloneNode(!1);l.setAttribute("src",Editor.editImage);F.appendChild(l);mxEvent.addListener(F,"click",function(b){g.isEnabled()&&a.showDataDialog(v);mxEvent.consume(b)});g.isEnabled()||(F.className="geButton mxDisabled");t.appendChild(F);var I=x.cloneNode(!1);I.setAttribute("title",mxResources.get("duplicate"));l=l.cloneNode(!1);l.setAttribute("src",Editor.duplicateImage);I.appendChild(l);mxEvent.addListener(I,"click",function(a){if(g.isEnabled()){a=
+var E=x.cloneNode(!1);E.setAttribute("title",mxResources.get("editData"));l=l.cloneNode(!1);l.setAttribute("src",Editor.editImage);E.appendChild(l);mxEvent.addListener(E,"click",function(b){g.isEnabled()&&a.showDataDialog(v);mxEvent.consume(b)});g.isEnabled()||(E.className="geButton mxDisabled");t.appendChild(E);var I=x.cloneNode(!1);I.setAttribute("title",mxResources.get("duplicate"));l=l.cloneNode(!1);l.setAttribute("src",Editor.duplicateImage);I.appendChild(l);mxEvent.addListener(I,"click",function(a){if(g.isEnabled()){a=
null;g.model.beginUpdate();try{a=g.cloneCell(v),g.cellLabelChanged(a,mxResources.get("untitledLayer")),a.setVisible(!0),a=g.addCell(a,g.model.root),g.setDefaultParent(a)}finally{g.model.endUpdate()}null==a||g.isCellLocked(a)||g.selectAll(a)}});g.isEnabled()||(I.className="geButton mxDisabled");t.appendChild(I);x=x.cloneNode(!1);x.setAttribute("title",mxResources.get("addLayer"));l=l.cloneNode(!1);l.setAttribute("src",Editor.addImage);x.appendChild(l);mxEvent.addListener(x,"click",function(a){if(g.isEnabled()){g.model.beginUpdate();
-try{var b=g.addCell(new mxCell(mxResources.get("untitledLayer")),g.model.root);g.setDefaultParent(b)}finally{g.model.endUpdate()}}mxEvent.consume(a)});g.isEnabled()||(x.className="geButton mxDisabled");t.appendChild(x);m.appendChild(t);var A=new mxDictionary,G=document.createElement("span");G.setAttribute("title",mxResources.get("selectionOnly"));G.innerHTML="&#8226;";G.style.position="absolute";G.style.fontWeight="bold";G.style.fontSize="16pt";G.style.right="2px";G.style.top="2px";h();g.model.addListener(mxEvent.CHANGE,
+try{var b=g.addCell(new mxCell(mxResources.get("untitledLayer")),g.model.root);g.setDefaultParent(b)}finally{g.model.endUpdate()}}mxEvent.consume(a)});g.isEnabled()||(x.className="geButton mxDisabled");t.appendChild(x);m.appendChild(t);var A=new mxDictionary,F=document.createElement("span");F.setAttribute("title",mxResources.get("selectionOnly"));F.innerHTML="&#8226;";F.style.position="absolute";F.style.fontWeight="bold";F.style.fontSize="16pt";F.style.right="2px";F.style.top="2px";h();g.model.addListener(mxEvent.CHANGE,
h);g.addListener("defaultParentChanged",h);g.selectionModel.addListener(mxEvent.CHANGE,function(){g.isSelectionEmpty()?y.className="geButton mxDisabled":y.className="geButton";k()});this.window=new mxWindow(mxResources.get("layers"),m,b,c,e,d,!0,!0);this.window.minimumSize=new mxRectangle(0,0,150,120);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.init=function(){n.scrollTop=n.scrollHeight-n.clientHeight};
this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.refreshLayers=h;this.window.setLocation=function(a,b){var c=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-("1"==urlParams.sketch?3:48)));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,
arguments)};var z=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",z);this.destroy=function(){mxEvent.removeListener(window,"resize",z);this.window.destroy()}};
@@ -7168,7 +7166,7 @@ this.addGCPIconsHybridAndMultiCloudPalette();this.setCurrentSearchEntryLibrary("
18,18,"","Modifiers - Shared Core Machine G1",null,null,this.getTagsForStencil("mxgraph.gcpicons","","gcp google cloud platform expanded product card icons modifiers shared core machine g1").join(" ")),this.createVertexTemplateEntry("editableCssRules=.*;shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiB2aWV3Qm94PSIwIDAgMTggMTgiPiYjeGE7CTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+JiN4YTsJLnN0MHtmaWxsOiM0Mjg1ZjQ7fSYjeGE7CTwvc3R5bGU+JiN4YTsJPHBhdGggY2xhc3M9InN0MCIgZD0iTTE2IDBIMmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTkgMTRIN1Y2SDV2OEgzVjRoNGEyIDIgMCAwIDEgMiAyem02IDBoLTJWNmgtMlY0aDR6Ii8+JiN4YTs8L3N2Zz4=;",
18,18,"","Modifiers - Standard Machine",null,null,this.getTagsForStencil("mxgraph.gcpicons","","gcp google cloud platform expanded product card icons modifiers standard machine").join(" ")),this.createVertexTemplateEntry("editableCssRules=.*;shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjAgMTYiPiYjeGE7CTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+JiN4YTsJLnN0MHtmaWxsOiM0Mjg1ZjQ7fSYjeGE7CTwvc3R5bGU+JiN4YTsJPHBhdGggY2xhc3M9InN0MCIgZD0iTTAgMTZoMjB2LTRIMHptMi0zaDJ2Mkgyek0wIDB2NGgyMFYwem00IDNIMlYxaDJ6bS00IDdoMjBWNkgwem0yLTNoMnYySDJ6Ii8+JiN4YTs8L3N2Zz4=;",
20,16,"","Modifiers - Storage",null,null,this.getTagsForStencil("mxgraph.gcpicons","","gcp google cloud platform expanded product card icons modifiers storage").join(" "))];this.addPalette("gcpiconsExpanded Product Card Icons","GCP Icons / Expanded Product Card Icons",!1,mxUtils.bind(this,function(b){for(var e=0;e<a.length;e++)b.appendChild(a[e](b))}))};Sidebar.prototype.addGCPIconsGenericPalette=function(){var a=[],a=[this.createVertexTemplateEntry("editableCssRules=.*;shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjQyNCIgaGVpZ2h0PSI0MjQiIHZpZXdCb3g9IjAgMCA0MjQgNDI0Ij4mI3hhOwk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPiYjeGE7CS5zdDB7ZmlsbDojNDI4NWY0O30mI3hhOwk8L3N0eWxlPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQgMHY0MjRIMFYwek0yMTIgOTcuODQ2Yy0zNy44ODQgMC03MC4xNjQgMjMuOTktODIuNDc4IDU3LjYwOGgwbC0zLjQwMy4wMDFjLTQyLjYzNCAwLTc3LjE5NiAzNC41NjItNzcuMTk2IDc3LjE5NnMzNC41NjIgNzcuMTk2IDc3LjE5NiA3Ny4xOTZoMCAxNzEuNzYzYzQyLjYzNCAwIDc3LjE5Ni0zNC41NjIgNzcuMTk2LTc3LjE5NnMtMzQuNTYyLTc3LjE5Ni03Ny4xOTYtNzcuMTk2aDBsLTMuNDAzLS4wMDFDMjgyLjE2NCAxMjEuODM3IDI0OS44ODQgOTcuODQ2IDIxMiA5Ny44NDZ6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz4mI3hhOzwvc3ZnPg==;",
-20,20,"","Generic",null,null,this.getTagsForStencil("mxgraph.gcpicons","","gcp google cloud platform generic generic").join(" "))];this.addPalette("gcpiconsGeneric","GCP Icons / Generic",!1,mxUtils.bind(this,function(b){for(var e=0;e<a.length;e++)b.appendChild(a[e](b))}))};Sidebar.prototype.addGCPIconsHybridAndMultiCloudPalette=function(){var a=[],a=[this.createVertexTemplateEntry("editableCssRules=.*;shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAuMjc2MDcyMDExNzIwOTQiIGhlaWdodD0iOTguODE4MjYyNTYzNDc3NTMiIHZpZXdCb3g9IjAgMCAxMDAuMjc2MDYyMDExNzE4NzUgOTguODE4MjUyNTYzNDc2NTYiIHZlcnNpb249IjEuMSIgaWQ9InN2ZzUiIGlua3NjYXBlOnZlcnNpb249IjEuMSAoYzY4ZTIyYzM4NywgMjAyMS0wNS0yMykiIHNvZGlwb2RpOmRvY25hbWU9InRyYWZmaWNfZGlyZWN0b3Iuc3ZnIj4mI3hhOyAgPHNvZGlwb2RpOm5hbWVkdmlldyBpZD0ibmFtZWR2aWV3NyIgcGFnZWNvbG9yPSIjZmZmZmZmIiBib3JkZXJjb2xvcj0iIzY2NjY2NiIgYm9yZGVyb3BhY2l0eT0iMS4wIiBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIiBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIiBpbmtzY2FwZTpwYWdlY2hlY2tlcmJvYXJkPSIwIiBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0ibW0iIHNob3dncmlkPSJmYWxzZSIgaW5rc2NhcGU6em9vbT0iMS4xNTg2NzQ5IiBpbmtzY2FwZTpjeD0iMzEuNTAxNTAzIiBpbmtzY2FwZTpjeT0iMTM3LjY1NzI1IiBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE5MjAiIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMTciIGlua3NjYXBlOndpbmRvdy14PSItOCIgaW5rc2NhcGU6d2luZG93LXk9Ii04IiBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIiBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJsYXllcjEiIGZpdC1tYXJnaW4tdG9wPSIwIiBmaXQtbWFyZ2luLWxlZnQ9IjAiIGZpdC1tYXJnaW4tcmlnaHQ9IjAiIGZpdC1tYXJnaW4tYm90dG9tPSIwIi8+JiN4YTsgIDxkZWZzIGlkPSJkZWZzMiIvPiYjeGE7ICA8ZyBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIgaWQ9ImxheWVyMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjY3LjAzNzc3LDEyLjI0OTMpIj4mI3hhOyAgICA8cGF0aCBpZD0icGF0aDIzNDEzIiBzdHlsZT0iY29sb3I6IzAwMDAwMDtvcGFjaXR5OjE7ZmlsbDojNDI4NWY0O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDozLjc3OTUzOy1pbmtzY2FwZS1zdHJva2U6bm9uZSIgZD0iTSA1NS4wMTk1MzEsOTIuNTYyNSAtMC4yMTQ4NDM3NSwxMzAuMTA1NDcgNTUuMDE5NTMxLDE2Ny42NDg0NCB2IC0xNy43MzI0MiBjIDEzLjM5NzQwOCw1LjMwMjA4IDI5LjExOTAxOCwxMy44MzAwMyA0Mi40Mjk2ODgsMjUuODgwODYgMTkuNzQ1OTkxLDE3Ljg3NzA0IDM0LjkwMjM0MSw0Mi4zMzI2MiAzNC45MDIzNDEsNzkuMjM2MzIgdiA0My41ODM5OSBoIDM3Ljc5NDkyIFYgMjU1LjAzMzIgYyAwLC00Ny43ODk3MiAtMjEuNDM0NTUsLTgzLjgxMTUzIC00Ny4zMzIwMywtMTA3LjI1NzgxIC0yMi40MDc1NywtMjAuMjg2NzEgLTQ3LjU5MzExLC0zMi4wMTI5OCAtNjcuNzk0OTE5LC0zNy44ODQ3NyB6IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjI2NDU4MzMzLDAsMCwwLjI2NDU4MzMzLC0yNjYuOTgwOTMsLTExLjk2NDA0NikiLz4mI3hhOyAgICA8cGF0aCBpZD0icGF0aDIzNDE5IiBzdHlsZT0ib3BhY2l0eToxO2ZpbGw6IzY2OWRmNjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC45OTk5OTlweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjI2NDU4MzMzLDAsMCwwLjI2NDU4MzMzLC0yNjYuOTgwOTMsLTExLjk2NDA0NikiIGQ9Ik0gMjA3LjIyNjU2LDY5LjA0Njg3NSBWIDMxOC41NzQyMiBoIC0xNy4xMzg2NyBsIDM4LjUxMzY3LDUzLjgzMzk4IDM4LjUxMzY3LC01My44MzM5OCBIIDI0NS4wMjE0OCBWIDY5LjA0Njg3NSBaIG0gLTU2LjQwODIsLTcwLjEyNSAtMzYuNjc5NjksNTIuNzUzOTA2IGggMTguMjEyODkgViAyOTguNjE3MTkgaCAzNy43OTQ5MiBWIDUxLjY3NTc4MSBoIDE3LjM1MTU3IHoiLz4mI3hhOyAgICA8cGF0aCBpZD0icGF0aDIzNDE1IiBzdHlsZT0iY29sb3I6IzAwMDAwMDtvcGFjaXR5OjE7ZmlsbDojYWVjYmZhO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDozLjc3OTUzOy1pbmtzY2FwZS1zdHJva2U6bm9uZSIgZD0ibSAyMDcuMjI2NTYsNjkuMDQ2ODc1IHYgNDguNzU3ODE1IGMgMCw1MC44ODc0OCAyNS4zOTI5Miw4Ny40ODc2IDUzLjExMTMzLDExMC4wNzgxMiAyMi4zOTQ2OCwxOC4yNTE2OCA0NS45MDc0MywyOC4zODQwOCA2Mi4wMzcxMSwzMy41NDg4MyB2IDE3Ljg0NTcgTCAzNzguNzgxMjUsMjQzLjEwMTU2IDMyMi4zNzUsMjA2LjkyNzczIHYgMTQuMDgwMDggYyAtMTEuNTAyODIsLTQuODI5MDUgLTI1LjU4NjQyLC0xMi4xNzMwNCAtMzguMTY0MDYsLTIyLjQyMzgzIC0yMS41MzUwMywtMTcuNTUxMDYgLTM5LjE4OTQ2LC00MS45ODkyMSAtMzkuMTg5NDYsLTgwLjc3OTI5IFYgNjkuMDQ2ODc1IFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuMjY0NTgzMzMsMCwwLDAuMjY0NTgzMzMsLTI2Ni45ODA5MywtMTEuOTY0MDQ2KSIvPiYjeGE7ICA8L2c+JiN4YTs8L3N2Zz4=;",
+20,20,"","Generic",null,null,this.getTagsForStencil("mxgraph.gcpicons","","gcp google cloud platform generic generic").join(" "))];this.addPalette("gcpiconsGeneric","GCP Icons / Generic",!1,mxUtils.bind(this,function(b){for(var e=0;e<a.length;e++)b.appendChild(a[e](b))}))};Sidebar.prototype.addGCPIconsHybridAndMultiCloudPalette=function(){var a=[],a=[this.createVertexTemplateEntry("editableCssRules=.*;shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjM3OC45OTYwMDM2OTA5NDU4IiBoZWlnaHQ9IjM3My40ODg4MDkyODIxODgyNCIgdmlld0JveD0iMCAwIDEwMC4yNzYwMDA5NzY1NjI1IDk4LjgxOTAwNzg3MzUzNTE2Ij4mI3hhOzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+JiN4YTsJLnN0MHtmaWxsOiM0Mjg1ZjQ7fSYjeGE7CS5zdDF7ZmlsbDojNjY5ZGY2O30mI3hhOwkuc3Qye2ZpbGw6I2FlY2JmYTt9JiN4YTs8L3N0eWxlPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNC42MTQgMjQuNzc1TDAgMzQuNzA5bDE0LjYxNCA5LjkzM1YzOS45NWMzLjU0NSAxLjQwMyA3LjcwNCAzLjY1OSAxMS4yMjYgNi44NDggNS4yMjQgNC43MyA5LjIzNSAxMS4yIDkuMjM1IDIwLjk2NXYxMS41MzJoMTBWNjcuNzYyYzAtMTIuNjQ0LTUuNjcxLTIyLjE3NS0xMi41MjMtMjguMzc5LTUuOTI5LTUuMzY4LTEyLjU5Mi04LjQ3LTE3LjkzNy0xMC4wMjR6Ii8+JiN4YTsJPHBhdGggY2xhc3M9InN0MSIgZD0iTTU0Ljg4NiAxOC41NTR2NjYuMDIxaC00LjUzNWwxMC4xOSAxNC4yNDQgMTAuMTktMTQuMjQ0aC01Ljg0NlYxOC41NTR6TTM5Ljk2MSAwbC05LjcwNSAxMy45NThoNC44MTl2NjUuMzM2aDEwVjEzLjk1N2g0LjU5MXoiLz4mI3hhOwk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNNTQuODg2IDE4LjU1NHYxMi45YzAgMTMuNDY0IDYuNzE5IDIzLjE0OCAxNC4wNTIgMjkuMTI1IDUuOTI1IDQuODI5IDEyLjE0NiA3LjUxIDE2LjQxNCA4Ljg3NnY0LjcyMmwxNC45MjQtOS41NzEtMTQuOTI0LTkuNTcxdjMuNzI1Yy0zLjA0My0xLjI3OC02Ljc3LTMuMjIxLTEwLjA5OC01LjkzMy01LjY5OC00LjY0NC0xMC4zNjktMTEuMTEtMTAuMzY5LTIxLjM3M3YtMTIuOXoiLz4mI3hhOzwvc3ZnPg==;",
20,20,"","Taffic Director",null,null,this.getTagsForStencil("mxgraph.gcpicons","","gcp google cloud platform hydrid and multi cloud traffic director").join(" ")),this.createVertexTemplateEntry("editableCssRules=.*;shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjQxNiIgaGVpZ2h0PSIzNjIuMjAwMDEyMjA3MDMxMjUiIHZpZXdCb3g9IjAgMCA0MTYgMzYyLjIwMDAxMjIwNzAzMTI1Ij4mI3hhOwk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPiYjeGE7CS5zdDB7ZmlsbDojNDI4NWY0O30mI3hhOwkuc3Qxe2ZpbGw6IzY2OWRmNjt9JiN4YTsJLnN0MntmaWxsOiNhZWNiZmE7fSYjeGE7CTwvc3R5bGU+JiN4YTsJPHBhdGggY2xhc3M9InN0MiIgZD0iTTk2LjAzIDBMMCAxNjcuMTdoMTkwLjY3TDI4Ny45NCAweiIvPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yODcuNTkgMzYyLjJsLTk1LjY4LTE2Ny4xN0gwTDk1LjY4IDM2Mi4yeiIvPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik00MTYgMTgxLjFMMzIwIDEzLjMxIDIyMy44OCAxODEuMSAzMjAgMzQ4Ljl6Ii8+JiN4YTs8L3N2Zz4=;",
20,17,"","Stackdriver",null,null,this.getTagsForStencil("mxgraph.gcpicons","","gcp google cloud platform hydrid and multi cloud stackdriver").join(" "))];this.addPalette("gcpiconsHybrid and Multi Cloud","GCP Icons / Hybrid and Multi Cloud",!1,mxUtils.bind(this,function(b){for(var e=0;e<a.length;e++)b.appendChild(a[e](b))}))};Sidebar.prototype.addGCPIconsMigrationPalette=function(){var a=[],a=[this.createVertexTemplateEntry("editableCssRules=.*;shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjE5LjkzMzEzNDA3ODk3OTQ5MiIgaGVpZ2h0PSIxMC44NjAwMDA2MTAzNTE1NjIiIHZpZXdCb3g9IjAuMDAwMDI2NTAxNDY0MTYyNzIwMzY3IC0zLjgxMjY2MDA1NDMzNjQ0NzVlLTggMTkuOTMzMTM0MDc4OTc5NDkyIDEwLjg2MDAwMDYxMDM1MTU2MiI+JiN4YTsJPHN0eWxlIHR5cGU9InRleHQvY3NzIj4mI3hhOwkuc3Qwe2ZpbGw6IzQyODVmNDt9JiN4YTsJLnN0MXtmaWxsOiM2NjlkZjY7fSYjeGE7CS5zdDJ7ZmlsbDojYWVjYmZhO30mI3hhOwk8L3N0eWxlPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xOS41NjMgMEg3LjE5M2EuMzIuMzIgMCAwIDAtLjMyLjMzdjIuMTZhLjMyLjMyIDAgMCAwIC4zMi4zMmgxMi4zN2EuMzIuMzIgMCAwIDAgLjM3LS4zMlYuMzNhLjMyLjMyIDAgMCAwLS4zMS0uMzN6TTguNDIzIDIuMTRhLjcuNyAwIDEgMSAuNy0uN2gwYS43LjcgMCAwIDEtLjcuN3ptMTEuMTQgMS45SDcuMTkzYS4zMi4zMiAwIDAgMC0uMzIuMzJ2Mi4xNWEuMzIuMzIgMCAwIDAgLjMyLjMyaDEyLjM3YS4zMi4zMiAwIDAgMCAuMzItLjMyVjQuMzZhLjMyLjMyIDAgMCAwLS4zMi0uMzJ6TTguNDIzIDYuMThhLjcuNyAwIDEgMSAuNy0uN2gwYS43LjcgMCAwIDEtLjcuN3ptMTEuMTkgMS44N0g3LjI1M2EuMzIuMzIgMCAwIDAtLjMyLjMydjIuMTZhLjMyLjMyIDAgMCAwIC4zMi4zM2gxMi4zNmEuMzIuMzIgMCAwIDAgLjMyLS4zM1Y4LjM3YS4zMi4zMiAwIDAgMC0uMzItLjMyem0tMTEuMTQgMi4xM2EuNzEuNzEgMCAwIDEtLjctLjcxLjcxLjcxIDAgMCAxIDEuNDEgMCAuNzEuNzEgMCAwIDEtLjcxLjcxeiIvPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik00LjY3MyAzLjI5aC0yLjEzYS44MTIuODEyIDAgMCAxLS4yMS0xLjYxaDIuMzRhLjgxNS44MTUgMCAxIDEgLjI2IDEuNjF6Ii8+JiN4YTsJPHBhdGggY2xhc3M9InN0MiIgZD0iTTQuNjczIDYuMjRILjg1M2EuODIuODIgMCAwIDEtLjIxLTEuNjJoNGEuODIzLjgyMyAwIDAgMSAuMjkgMS42MnoiLz4mI3hhOwk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNNC42NzMgOS4xOGgtMi4xM2EuODEyLjgxMiAwIDAgMS0uMjEtMS42MWgyLjM0YS44MTUuODE1IDAgMCAxIC4yNiAxLjYxeiIvPiYjeGE7PC9zdmc+;",
20,11,"","Transfer Appliance",null,null,this.getTagsForStencil("mxgraph.gcpicons","","gcp google cloud platform migration transfer appliance").join(" "))];this.addPalette("gcpiconsMigration","GCP Icons / Migration",!1,mxUtils.bind(this,function(b){for(var e=0;e<a.length;e++)b.appendChild(a[e](b))}))};Sidebar.prototype.addGCPIconsSecurityPalette=function(){var a=[],a=[this.createVertexTemplateEntry("editableCssRules=.*;shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjE2LjQyMDAwMDA3NjI5Mzk0NSIgaGVpZ2h0PSIyMC4wNDk5OTkyMzcwNjA1NDciIGZpbGwtcnVsZT0iZXZlbm9kZCIgdmlld0JveD0iMCAwIDE2LjQyMDAwMDA3NjI5Mzk0NSAyMC4wNDk5OTkyMzcwNjA1NDciPiYjeGE7CTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+JiN4YTsJLnN0MHtmaWxsOiM0Mjg1ZjQ7fSYjeGE7CS5zdDF7ZmlsbDojNjY5ZGY2O30mI3hhOwk8L3N0eWxlPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik04LjIxIDBMMCAzLjQydjUuNjNjMCA1LjA2IDMuNSA5LjggOC4yMSAxMSA0LjcxLTEuMTUgOC4yMS01Ljg5IDguMjEtMTAuOTVWMy40MnptMCAzLjc5YTIuNjMgMi42MyAwIDAgMSAxLjAwNSA1LjA2QTIuNjMgMi42MyAwIDAgMSA2LjM1IDQuNTZhMi42MyAyLjYzIDAgMCAxIDEuODYtLjc3em00LjExIDExLjE1YTguNjQgOC42NCAwIDAgMS00LjExIDIuOTMgOC42NCA4LjY0IDAgMCAxLTQuMTEtMi45M3YtMi4yNWMwLTEuNjcgMi43NC0yLjUyIDQuMTEtMi41MnM0LjExLjg1IDQuMTEgMi41MnoiLz4mI3hhOwk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNOC4yMSAwdjMuNzlhMi42MyAyLjYzIDAgMSAxIDAgNS4yNnYxLjEyYzEuMzcgMCA0LjExLjg1IDQuMTEgMi41MnYyLjI1YTguNjQgOC42NCAwIDAgMS00LjExIDIuOTNWMjBjNC43MS0xLjE1IDguMjEtNS44OSA4LjIxLTEwLjk1VjMuNDJ6Ii8+JiN4YTs8L3N2Zz4=;",
@@ -10638,8 +10636,8 @@ mxEvent.addListener(l,"change",function(){var b=mxUtils.htmlEntities(l.value);d(
(m.min=parseFloat(p.min)),null!=p.max&&(m.max=parseFloat(p.max)));b.appendChild(m);mxEvent.addListener(m,"keypress",function(b){13==b.keyCode&&l()});m.focus();mxEvent.addListener(m,"blur",function(){l()})})));p.isDeletable&&(n=mxUtils.button("-",mxUtils.bind(q,function(b){d(c,"",p,p.index);mxEvent.consume(b)})),n.style.height="16px",n.style.width="25px",n.style["float"]="right",n.className="geColorBtn",B.appendChild(n));v.appendChild(B);return v}var q=this,t=this.editorUi.editor.graph,n=[];b.style.position=
"relative";b.style.padding="0";var y=document.createElement("table");y.className="geProperties";y.style.whiteSpace="nowrap";y.style.width="100%";var u=document.createElement("tr");u.className="gePropHeader";var v=document.createElement("th");v.className="gePropHeaderCell";var B=document.createElement("img");B.src=Sidebar.prototype.expandedImage;B.style.verticalAlign="middle";v.appendChild(B);mxUtils.write(v,mxResources.get("property"));u.style.cursor="pointer";var A=function(){var c=y.querySelectorAll(".gePropNonHeaderRow"),
f;if(q.editorUi.propertiesCollapsed){B.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(la){}}else B.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;A()});u.appendChild(v);v=document.createElement("th");v.className="gePropHeaderCell";
-v.innerHTML=mxResources.get("value");u.appendChild(v);y.appendChild(u);var x=!1,C=!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&&y.appendChild(p("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 K=null!=f.style[E]?mxUtils.htmlEntities(f.style[E]+""):null!=u.getDefaultValue?u.getDefaultValue(f,this):u.defVal;if("separator"==
-u.type)C=!C;else{if("staticArr"==u.type)u.size=parseInt(f.style[u.sizeProperty]||c[u.sizeProperty].defVal)||0;else if(null!=u.dependentProps){for(var z=u.dependentProps,D=[],M=[],v=0;v<z.length;v++){var G=f.style[z[v]];M.push(c[z[v]].subDefVal);D.push(null!=G?G.split(","):[])}u.dependentPropsDefVal=M;u.dependentPropsVals=D}y.appendChild(p(E,K,u,x,C));x=!x}}for(v=0;v<n.length;v++)for(u=n[v],c=u.parentRow,f=0;f<u.values.length;f++)E=p(u.name,u.values[f],{type:u.type,parentRow:u.parentRow,isDeletable:u.isDeletable,
+v.innerHTML=mxResources.get("value");u.appendChild(v);y.appendChild(u);var x=!1,C=!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&&y.appendChild(p("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 z=null!=f.style[E]?mxUtils.htmlEntities(f.style[E]+""):null!=u.getDefaultValue?u.getDefaultValue(f,this):u.defVal;if("separator"==
+u.type)C=!C;else{if("staticArr"==u.type)u.size=parseInt(f.style[u.sizeProperty]||c[u.sizeProperty].defVal)||0;else if(null!=u.dependentProps){for(var K=u.dependentProps,M=[],D=[],v=0;v<K.length;v++){var G=f.style[K[v]];D.push(c[K[v]].subDefVal);M.push(null!=G?G.split(","):[])}u.dependentPropsDefVal=D;u.dependentPropsVals=M}y.appendChild(p(E,z,u,x,C));x=!x}}for(v=0;v<n.length;v++)for(u=n[v],c=u.parentRow,f=0;f<u.values.length;f++)E=p(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(y);A();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.editor.graph,d=document.createElement("div");d.style.whiteSpace="nowrap";d.style.paddingLeft="24px";d.style.paddingRight=
"20px";b.style.paddingLeft="16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(d);var e="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(" "),l=document.createElement("div");l.style.whiteSpace="nowrap";l.style.position="relative";l.style.textAlign="center";l.style.width="210px";for(var m=[],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(){p(b)}))})(g);m.push(k);l.appendChild(k)}var p=mxUtils.bind(this,function(b){null!=m[b]&&(null!=this.format.currentScheme&&null!=m[this.format.currentScheme]&&(m[this.format.currentScheme].style.background=
@@ -10662,8 +10660,8 @@ b[c].getAttribute("face"):b[c].style.fontFamily;null!=d&&Graph.addFont(d,f)}}};G
"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 A=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=
-function(b){this.replaceDefaultColors(b);return Graph.processFontStyle(A.apply(this,arguments))};Graph.prototype.replaceDefaultColors=function(b){if(null!=b){var c=mxUtils.hex2rgb(this.shapeBackgroundColor),f=mxUtils.hex2rgb(this.shapeForegroundColor);this.replaceDefaultColor(b,mxConstants.STYLE_FONTCOLOR,f);this.replaceDefaultColor(b,mxConstants.STYLE_FILLCOLOR,c);this.replaceDefaultColor(b,mxConstants.STYLE_STROKECOLOR,f);this.replaceDefaultColor(b,mxConstants.STYLE_IMAGE_BORDER,f);this.replaceDefaultColor(b,
-mxConstants.STYLE_IMAGE_BACKGROUND,c);this.replaceDefaultColor(b,mxConstants.STYLE_LABEL_BORDERCOLOR,f);this.replaceDefaultColor(b,mxConstants.STYLE_SWIMLANE_FILLCOLOR,c);this.replaceDefaultColor(b,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,c)}};Graph.prototype.replaceDefaultColor=function(b,c,f){null!=b&&"default"==b[c]&&null!=f&&(b[c]=f)};var z=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,c,f,d,e,l,m,g,k,p,q){z.apply(this,arguments);Graph.processFontAttributes(q)};
+function(b,c){this.replaceDefaultColors(b,c);return Graph.processFontStyle(A.apply(this,arguments))};Graph.prototype.replaceDefaultColors=function(b,c){if(null!=c){var f=mxUtils.hex2rgb(this.shapeBackgroundColor),d=mxUtils.hex2rgb(this.shapeForegroundColor);this.replaceDefaultColor(c,mxConstants.STYLE_FONTCOLOR,d);this.replaceDefaultColor(c,mxConstants.STYLE_FILLCOLOR,f);this.replaceDefaultColor(c,mxConstants.STYLE_STROKECOLOR,d);this.replaceDefaultColor(c,mxConstants.STYLE_IMAGE_BORDER,d);this.replaceDefaultColor(c,
+mxConstants.STYLE_IMAGE_BACKGROUND,f);this.replaceDefaultColor(c,mxConstants.STYLE_LABEL_BORDERCOLOR,d);this.replaceDefaultColor(c,mxConstants.STYLE_SWIMLANE_FILLCOLOR,f);this.replaceDefaultColor(c,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,f)}};Graph.prototype.replaceDefaultColor=function(b,c,f){null!=b&&"default"==b[c]&&null!=f&&(b[c]=f)};var z=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,c,f,d,e,l,m,g,k,p,q){z.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){p.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 k=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),p=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)});p.appendChild(q);q=document.createElement("td");q.style.overflow="hidden";q.style.whiteSpace="nowrap";q.style.textOverflow=
@@ -10678,7 +10676,7 @@ Graph.customFontElements[c];b.push({name:f.name,url:f.url})}return b};Graph.prot
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(J){null!=window.console&&console.log("Error in vars URL parameter: "+J)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):
{}};var C=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var c=C.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,k,p,q,t,n,y){var u=null,v=null,B=null;t||null==this.themes||"darkTheme"!=this.defaultThemeName||(u=this.stylesheet,v=this.shapeForegroundColor,B=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=G.apply(this,arguments),x=this.getCustomFonts();if(q&&0<x.length){var C=
-A.ownerDocument,E=null!=C.createElementNS?C.createElementNS(mxConstants.NS_SVG,"style"):C.createElement("style");null!=C.setAttributeNS?E.setAttributeNS("type","text/css"):E.setAttribute("type","text/css");for(var z="",D="",M=0;M<x.length;M++){var I=x[M].name,K=x[M].url;Graph.isCssFontUrl(K)?z+="@import url("+K+");\n":D+='@font-face {\nfont-family: "'+I+'";\nsrc: url("'+K+'");\n}\n'}E.appendChild(C.createTextNode(z+D));A.getElementsByTagName("defs")[0].appendChild(E)}null!=u&&(this.shapeBackgroundColor=
+A.ownerDocument,E=null!=C.createElementNS?C.createElementNS(mxConstants.NS_SVG,"style"):C.createElement("style");null!=C.setAttributeNS?E.setAttributeNS("type","text/css"):E.setAttribute("type","text/css");for(var z="",M="",D=0;D<x.length;D++){var K=x[D].name,I=x[D].url;Graph.isCssFontUrl(I)?z+="@import url("+I+");\n":M+='@font-face {\nfont-family: "'+K+'";\nsrc: url("'+I+'");\n}\n'}E.appendChild(C.createTextNode(z+M));A.getElementsByTagName("defs")[0].appendChild(E)}null!=u&&(this.shapeBackgroundColor=
B,this.shapeForegroundColor=v,this.stylesheet=u,this.refresh());return A};var F=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var b=F.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 D=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){D.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;",
@@ -10731,8 +10729,8 @@ mxUtils.write(m,mxResources.get("printAllPages"));p.appendChild(m);mxUtils.br(p)
mxUtils.write(m,mxResources.get("to"));p.appendChild(m);var y=n.cloneNode(!0);p.appendChild(y);mxEvent.addListener(n,"focus",function(){t.checked=!0});mxEvent.addListener(y,"focus",function(){t.checked=!0});mxEvent.addListener(n,"change",f);mxEvent.addListener(y,"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]){k=m+1;n.value=k;y.value=k;break}n.setAttribute("max",g);y.setAttribute("max",g);b.isPagesEnabled()?1<g&&(l.appendChild(p),
t.checked=!0):t.checked=!0;var u=document.createElement("div");u.style.marginBottom="10px";var v=document.createElement("input");v.style.marginRight="8px";v.setAttribute("value","adjust");v.setAttribute("type","radio");v.setAttribute("name","printZoom");u.appendChild(v);m=document.createElement("span");mxUtils.write(m,mxResources.get("adjustTo"));u.appendChild(m);var B=document.createElement("input");B.style.cssText="margin:0 8px 0 8px;";B.setAttribute("value","100 %");B.style.width="50px";u.appendChild(B);
mxEvent.addListener(B,"focus",function(){v.checked=!0});l.appendChild(u);var p=p.cloneNode(!1),A=v.cloneNode(!0);A.setAttribute("value","fit");v.setAttribute("checked","checked");m=document.createElement("div");m.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";m.appendChild(A);p.appendChild(m);u=document.createElement("table");u.style.display="inline-block";var x=document.createElement("tbody"),C=document.createElement("tr"),E=C.cloneNode(!0),z=document.createElement("td"),
-M=z.cloneNode(!0),D=z.cloneNode(!0),G=z.cloneNode(!0),I=z.cloneNode(!0),F=z.cloneNode(!0);z.style.textAlign="right";G.style.textAlign="right";mxUtils.write(z,mxResources.get("fitTo"));var H=document.createElement("input");H.style.cssText="margin:0 8px 0 8px;";H.setAttribute("value","1");H.setAttribute("min","1");H.setAttribute("type","number");H.style.width="40px";M.appendChild(H);m=document.createElement("span");mxUtils.write(m,mxResources.get("fitToSheetsAcross"));D.appendChild(m);mxUtils.write(G,
-mxResources.get("fitToBy"));var N=H.cloneNode(!0);I.appendChild(N);mxEvent.addListener(H,"focus",function(){A.checked=!0});mxEvent.addListener(N,"focus",function(){A.checked=!0});m=document.createElement("span");mxUtils.write(m,mxResources.get("fitToSheetsDown"));F.appendChild(m);C.appendChild(z);C.appendChild(M);C.appendChild(D);E.appendChild(G);E.appendChild(I);E.appendChild(F);x.appendChild(C);x.appendChild(E);u.appendChild(x);p.appendChild(u);l.appendChild(p);p=document.createElement("div");m=
+D=z.cloneNode(!0),M=z.cloneNode(!0),G=z.cloneNode(!0),I=z.cloneNode(!0),F=z.cloneNode(!0);z.style.textAlign="right";G.style.textAlign="right";mxUtils.write(z,mxResources.get("fitTo"));var H=document.createElement("input");H.style.cssText="margin:0 8px 0 8px;";H.setAttribute("value","1");H.setAttribute("min","1");H.setAttribute("type","number");H.style.width="40px";D.appendChild(H);m=document.createElement("span");mxUtils.write(m,mxResources.get("fitToSheetsAcross"));M.appendChild(m);mxUtils.write(G,
+mxResources.get("fitToBy"));var N=H.cloneNode(!0);I.appendChild(N);mxEvent.addListener(H,"focus",function(){A.checked=!0});mxEvent.addListener(N,"focus",function(){A.checked=!0});m=document.createElement("span");mxUtils.write(m,mxResources.get("fitToSheetsDown"));F.appendChild(m);C.appendChild(z);C.appendChild(D);C.appendChild(M);E.appendChild(G);E.appendChild(I);E.appendChild(F);x.appendChild(C);x.appendChild(E);u.appendChild(x);p.appendChild(u);l.appendChild(p);p=document.createElement("div");m=
document.createElement("div");m.style.fontWeight="bold";m.style.marginBottom="12px";mxUtils.write(m,mxResources.get("paperSize"));p.appendChild(m);m=document.createElement("div");m.style.marginBottom="12px";var K=PageSetupDialog.addPageFormatPanel(m,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);p.appendChild(m);m=document.createElement("span");mxUtils.write(m,mxResources.get("pageScale"));p.appendChild(m);var L=document.createElement("input");L.style.cssText="margin:0 8px 0 8px;";
L.setAttribute("value","100 %");L.style.width="60px";p.appendChild(L);l.appendChild(p);m=document.createElement("div");m.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&&m.appendChild(p);b.isOffline()||(u=mxUtils.button(mxResources.get("help"),function(){e.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),u.className="geBtn",m.appendChild(u));PrintDialog.previewEnabled&&(u=
mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();d(!1)}),u.className="geBtn",m.appendChild(u));u=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();d(!0)});u.className="geBtn gePrimaryBtn";m.appendChild(u);b.editor.cancelFirst||m.appendChild(p);l.appendChild(m);this.container=l};var M=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);if(this.page!=this.ui.currentPage){if(null!=
@@ -10740,7 +10738,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 N=document.createElement("canvas"),O=new Image;O.onload=function(){try{N.getContext("2d").drawImage(O,0,0);var b=N.toDataURL("image/png");Editor.prototype.useCanvasForExport=
null!=b&&6<b.length}catch(T){}};O.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(K){}})();
(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="15.9.1";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="15.9.3";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?"/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&&!EditorUi.isElectronApp&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";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")||0<=b.indexOf("out of memory")?"CONFIG":
@@ -10985,162 +10983,162 @@ function(c){b.handleError(c)})},null,null,400,220);b.showDialog(f.container,420,
l),m.height=Math.max(m.height,k),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 l=c.getCellStyle(f);"1"==mxUtils.getValue(l,"metaEdit","0")?b.showDataDialog(f):d.apply(this,arguments)}}catch(L){b.handleError(L)}};c.getLinkTitle=function(c){return b.getLinkTitle(c)};c.customLinkClicked=function(c){var d=!1;try{b.handleCustomLink(c),d=!0}catch(H){b.handleError(H)}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]){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;this.stylesheet=this.getDefaultStylesheet();
-f=b.createImageForPageLink(f.originalSrc);this.stylesheet=e}return f};var u=this.clearDefaultStyle;this.clearDefaultStyle=function(){u.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 v=b.editor.getEditBlankUrl;
-this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1");return v.apply(this,arguments)};var x=c.addClickHandler;c.addClickHandler=function(b,d,f){var e=d;d=function(b,d){if(null==d){var f=mxEvent.getSource(b);"a"==f.nodeName.toLowerCase()&&(d=f.getAttribute("href"))}null!=d&&c.isCustomLink(d)&&(mxEvent.isTouchEvent(b)||!mxEvent.isPopupTrigger(b))&&c.customLinkClicked(d)&&mxEvent.consume(b);null!=e&&e(b,d)};x.call(this,b,d,f)};g.apply(this,arguments);
-mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var A=Menus.prototype.addPopupMenuEditItems;this.menus.addPopupMenuEditItems=function(c,d,f){b.editor.graph.isSelectionEmpty()?A.apply(this,arguments):b.menus.addMenuItems(c,"delete - cut copy copyAsImage - duplicate".split(" "),null,f)}}b.actions.get("print").funct=function(){b.showDialog((new PrintDialog(b)).container,360,null!=b.pages&&1<b.pages.length?450:370,!0,!0)};this.defaultFilename=
-mxResources.get("untitledDiagram");var z=c.getExportVariables;c.getExportVariables=function(){var c=z.apply(this,arguments),d=b.getCurrentFile();null!=d&&(c.filename=d.getTitle());c.pagecount=null!=b.pages?b.pages.length:1;c.page=null!=b.currentPage?b.currentPage.getName():"";c.pagenumber=null!=b.pages&&null!=b.currentPage?mxUtils.indexOf(b.pages,b.currentPage)+1:1;return c};var B=c.getGlobalVariable;c.getGlobalVariable=function(c){var d=b.getCurrentFile();return"filename"==c&&null!=d?d.getTitle():
-"page"==c&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==c?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:"pagecount"==c?null!=b.pages?b.pages.length:1:B.apply(this,arguments)};var y=c.labelLinkClicked;c.labelLinkClicked=function(b,d,f){var e=d.getAttribute("href");if(null==e||!c.isCustomLink(e)||!mxEvent.isTouchEvent(f)&&mxEvent.isPopupTrigger(f))y.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))c.customLinkClicked(e),c.getRubberband().reset();
-mxEvent.consume(f)}};this.editor.getOrCreateFilename=function(){var c=b.defaultFilename,d=b.getCurrentFile();null!=d&&(c=null!=d.getTitle()?d.getTitle():c);return c};var C=this.actions.get("print");C.setEnabled(!mxClient.IS_IOS||!navigator.standalone);C.visible=C.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,!0,"findReplace"),this.keyHandler.bindAction(67,!0,"copyStyle",!0),this.keyHandler.bindAction(86,!0,"pasteStyle",!0),this.keyHandler.bindAction(77,
-!0,"editGeometry",!0),this.keyHandler.bindAction(88,!0,"insertText",!0),this.keyHandler.bindAction(75,!0,"insertRectangle"),this.keyHandler.bindAction(75,!0,"insertEllipse",!0),this.altShiftActions[83]="synchronize",this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(null,null,24);Graph.fileSupport&&c.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(b){var d=c.cellEditor.text2,f=null;null!=d&&(mxEvent.addListener(d,"dragleave",function(b){null!=
-f&&(f.parentNode.removeChild(f),f=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(b){null==f&&(!mxClient.IS_IE||10<document.documentMode)&&(f=this.highlightElement(d));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(d,"drop",mxUtils.bind(this,function(b){null!=f&&(f.parentNode.removeChild(f),f=null);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,function(b,d,f,e,g,l){c.insertImage(b,
-g,l)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var c=0;c<b.length;c++)b[c]()},mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var d=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(d)?this.loadImage(decodeURIComponent(d),mxUtils.bind(this,function(b){var f=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,f)),e/Math.max(1,b));c.insertImage(decodeURIComponent(d),
-f*e,b*e)})):document.execCommand("insertHTML",!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()&&(C=this.editor.graph.view,C.setUnit(mxSettings.getUnit()),C.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,C.unit),this.refresh());if("1"==urlParams.styledev){C=document.getElementById("geFooter");null!=C&&(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)})),C.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)}}C=document.getElementById("geInfo");null!=C&&C.parentNode.removeChild(C);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var F=null;mxEvent.addListener(c.container,
-"dragleave",function(b){c.isEnabled()&&(null!=F&&(F.parentNode.removeChild(F),F=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(b){null==F&&(!mxClient.IS_IE||10<document.documentMode)&&(F=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!=F&&(F.parentNode.removeChild(F),F=null);if(c.isEnabled()){var d=
-mxUtils.convertPoint(c.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),f=c.view.translate,e=c.view.scale,g=d.x/e-f.x,l=d.y/e-f.y;if(0<b.dataTransfer.files.length)mxEvent.isShiftDown(b)?this.openFiles(b.dataTransfer.files,!0):(mxEvent.isAltDown(b)&&(l=g=null),this.importFiles(b.dataTransfer.files,g,l,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b),b));else{mxEvent.isAltDown(b)&&(l=g=0);var k=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?
-b.dataTransfer.getData("text/uri-list"):null,d=this.extractGraphModelFromEvent(b,null!=this.pages);if(null!=d)c.setSelectionCells(this.importXml(d,g,l,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){var m=b.dataTransfer.getData("text/html"),d=document.createElement("div");d.innerHTML=c.sanitizeHtml(m);var n=null,f=d.getElementsByTagName("img");null!=f&&1==f.length?(m=f[0].getAttribute("src"),null==m&&(m=f[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)||(n=
-!0)):(f=d.getElementsByTagName("a"),null!=f&&1==f.length?m=f[0].getAttribute("href"):(d=d.getElementsByTagName("pre"),null!=d&&1==d.length&&(m=mxUtils.getTextContent(d[0]))));var p=!0,q=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(m,g,l,!0,n,null,p,mxEvent.isControlDown(b)))});n&&null!=m&&m.length>this.resampleThreshold?this.confirmImageResize(function(b){p=b;q()},mxEvent.isControlDown(b)):q()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),
-mxUtils.bind(this,function(b){var d=Math.max(1,b.width);b=Math.max(1,b.height);var f=this.maxImageSize,f=Math.min(1,Math.min(f/Math.max(1,d)),f/Math.max(1,b));c.setSelectionCell(c.insertVertex(null,null,"",g,l,d*f,b*f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+k+";"))}),mxUtils.bind(this,function(b){c.setSelectionCells(this.insertTextAt(k,g,l,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&c.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),
-g,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(c){if(!mxEvent.isConsumed(c))try{for(var d=c.clipboardData||c.originalEvent.clipboardData,f=!1,e=0;e<d.types.length;e++)if("text/"===d.types[e].substring(0,5)){f=!0;break}if(!f){var g=
-d.items;for(index in g){var l=g[index];if("file"===l.kind){if(b.isEditing())this.importFiles([l.getAsFile()],0,0,this.maxImageSize,function(c,d,f,e,g,l){b.insertImage(c,g,l)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var c=0;c<b.length;c++)b[c]()});else{var k=this.editor.graph.getInsertPoint();this.importFiles([l.getAsFile()],k.x,k.y,this.maxImageSize);mxEvent.consume(c)}break}}}}catch(x){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function b(){window.setTimeout(function(){d.innerHTML=
-"&nbsp;";d.focus();document.execCommand("selectAll",!1,null)},0)}var c=this.editor.graph,d=document.createElement("div");d.setAttribute("autocomplete","off");d.setAttribute("autocorrect","off");d.setAttribute("autocapitalize","off");d.setAttribute("spellcheck","false");d.style.textRendering="optimizeSpeed";d.style.fontFamily="monospace";d.style.wordBreak="break-all";d.style.background="transparent";d.style.color="transparent";d.style.position="absolute";d.style.whiteSpace="nowrap";d.style.overflow=
-"hidden";d.style.display="block";d.style.fontSize="1";d.style.zIndex="-1";d.style.resize="none";d.style.outline="none";d.style.width="1px";d.style.height="1px";mxUtils.setOpacity(d,0);d.contentEditable=!0;d.innerHTML="&nbsp;";var e=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var f=mxEvent.getSource(b);null==c.container||!c.isEnabled()||c.isMouseDown||
-c.isEditing()||null!=this.dialog||"INPUT"==f.nodeName||"TEXTAREA"==f.nodeName||224!=b.keyCode&&(mxClient.IS_MAC||17!=b.keyCode)&&(!mxClient.IS_MAC||91!=b.keyCode&&93!=b.keyCode)||e||(d.style.left=c.container.scrollLeft+10+"px",d.style.top=c.container.scrollTop+10+"px",c.container.appendChild(d),e=!0,d.focus(),document.execCommand("selectAll",!1,null))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var f=b.keyCode;window.setTimeout(mxUtils.bind(this,function(){!e||224!=f&&17!=
-f&&91!=f&&93!=f||(e=!1,c.isEditing()||null!=this.dialog||null==c.container||c.container.focus(),d.parentNode.removeChild(d),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(d,"copy",mxUtils.bind(this,function(f){if(c.isEnabled())try{mxClipboard.copy(c),this.copyCells(d),b()}catch(u){this.handleError(u)}}));mxEvent.addListener(d,"cut",mxUtils.bind(this,function(f){if(c.isEnabled())try{mxClipboard.copy(c),this.copyCells(d,!0),b()}catch(u){this.handleError(u)}}));mxEvent.addListener(d,
-"paste",mxUtils.bind(this,function(b){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&(d.innerHTML="&nbsp;",d.focus(),null!=b.clipboardData&&this.pasteCells(b,d,!0,!0),mxEvent.isConsumed(b)||window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,d,!1,!0)}),0))}),!0);var g=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==d?!0:g.apply(this,arguments)}};EditorUi.prototype.setSketchMode=function(b){this.spinner.spin(document.body,mxResources.get("working")+
-"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetSketchMode(b);null==urlParams.rough&&(mxSettings.settings.sketchMode=b,mxSettings.save());this.fireEvent(new mxEventObject("sketchModeChanged"))}),0)};EditorUi.prototype.setPagesVisible=function(b){Editor.pagesVisible!=b&&(Editor.pagesVisible=b,mxSettings.settings.pagesVisible=b,mxSettings.save(),this.fireEvent(new mxEventObject("pagesVisibleChanged")))};EditorUi.prototype.setInlineFullscreen=function(b){Editor.inlineFullscreen!=
-b&&(Editor.inlineFullscreen=b,this.fireEvent(new mxEventObject("inlineFullscreenChanged")),(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:this.diagramContainer.getBoundingClientRect()}),"*"),window.setTimeout(mxUtils.bind(this,function(){this.refresh();this.actions.get("resetView").funct()}),10))};EditorUi.prototype.doSetSketchMode=function(b){if(Editor.sketchMode!=b){var c=function(b,c,d){null==b[c]&&(b[c]=d)},d=this.editor.graph;
-Editor.sketchMode=b;this.menus.defaultFonts=Menus.prototype.defaultFonts;this.menus.defaultFontSize=b?20:16;d.defaultVertexStyle=mxUtils.clone(Graph.prototype.defaultVertexStyle);c(d.defaultVertexStyle,"fontSize",this.menus.defaultFontSize);d.defaultEdgeStyle=mxUtils.clone(Graph.prototype.defaultEdgeStyle);c(d.defaultEdgeStyle,"fontSize",this.menus.defaultFontSize-4);c(d.defaultEdgeStyle,"edgeStyle","none");c(d.defaultEdgeStyle,"rounded","0");c(d.defaultEdgeStyle,"curved","1");c(d.defaultEdgeStyle,
-"jettySize","auto");c(d.defaultEdgeStyle,"orthogonalLoop","1");c(d.defaultEdgeStyle,"endArrow","open");c(d.defaultEdgeStyle,"endSize","14");c(d.defaultEdgeStyle,"startSize","14");b&&(c(d.defaultVertexStyle,"fontFamily",Editor.sketchFontFamily),c(d.defaultVertexStyle,"fontSource",Editor.sketchFontSource),c(d.defaultVertexStyle,"hachureGap","4"),c(d.defaultVertexStyle,"sketch","1"),c(d.defaultEdgeStyle,"fontFamily",Editor.sketchFontFamily),c(d.defaultEdgeStyle,"fontSource",Editor.sketchFontSource),
-c(d.defaultEdgeStyle,"sketch","1"),c(d.defaultEdgeStyle,"hachureGap","4"),c(d.defaultEdgeStyle,"sourcePerimeterSpacing","8"),c(d.defaultEdgeStyle,"targetPerimeterSpacing","8"),this.menus.defaultFonts=[{fontFamily:Editor.sketchFontFamily,fontUrl:decodeURIComponent(Editor.sketchFontSource)},{fontFamily:"Rock Salt",fontUrl:"https://fonts.googleapis.com/css?family=Rock+Salt"},{fontFamily:"Permanent Marker",fontUrl:"https://fonts.googleapis.com/css?family=Permanent+Marker"}].concat(this.menus.defaultFonts));
-d.currentVertexStyle=mxUtils.clone(d.defaultVertexStyle);d.currentEdgeStyle=mxUtils.clone(d.defaultEdgeStyle);this.clearDefaultStyle()}};EditorUi.prototype.getLinkTitle=function(b){var c=Graph.prototype.getLinkTitle.apply(this,arguments);if(Graph.isPageLink(b)){var d=b.indexOf(",");0<d&&(c=this.getPageById(b.substring(d+1)),c=null!=c?c.getName():mxResources.get("pageNotFound"))}else"data:"==b.substring(0,5)&&(c=mxResources.get("action"));return c};EditorUi.prototype.handleCustomLink=function(b){if(Graph.isPageLink(b)){var c=
-b.indexOf(",");if(b=this.getPageById(b.substring(c+1)))this.selectPage(b);else throw Error(mxResources.get("pageNotFound")||"Page not found");}else this.editor.graph.handleCustomLink(b)};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){Editor.pagesVisible=mxSettings.settings.pagesVisible;ColorDialog.recentColors=mxSettings.getRecentColors();
-if(isLocalStorage)try{window.addEventListener("storage",mxUtils.bind(this,function(b){b.key==mxSettings.key&&(mxSettings.load(),ColorDialog.recentColors=mxSettings.getRecentColors(),this.menus.customFonts=mxSettings.getCustomFonts())}),!1)}catch(f){}this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]));this.menus.customFonts=mxSettings.getCustomFonts();this.addListener("customFontsChanged",mxUtils.bind(this,function(b,c){if("1"!=urlParams["ext-fonts"])mxSettings.setCustomFonts(this.menus.customFonts);
-else{var d=c.getProperty("customFonts");this.menus.customFonts=d;mxSettings.setCustomFonts(d)}mxSettings.save()}));this.editor.graph.connectionHandler.setCreateTarget(mxSettings.isCreateTarget());this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyConnectChanged",mxUtils.bind(this,function(b,c){mxSettings.setCreateTarget(this.editor.graph.connectionHandler.isCreateTarget());mxSettings.save()}));this.editor.graph.pageFormat=null!=this.editor.graph.defaultPageFormat?this.editor.graph.defaultPageFormat:
-mxSettings.getPageFormat();this.addListener("pageFormatChanged",mxUtils.bind(this,function(b,c){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor(Editor.isDarkMode());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,d){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 f=this.createImageDataUri(b,c,"png"),e=parseInt(d.getAttribute("width")),g=parseInt(d.getAttribute("height"));
-this.writeImageToClipboard(f,e,g,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!=d?d: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(p){this.handleError(p)}};EditorUi.prototype.writeImageToClipboard=function(b,c,d,e){var f=this.base64ToBlob(b.substring(b.indexOf(",")+
-1),"image/png");b=new ClipboardItem({"image/png":f,"text/html":new Blob(['<img src="'+b+'" width="'+c+'" height="'+d+'">'],{type:"text/html"})});navigator.clipboard.write([b])["catch"](e)};EditorUi.prototype.copyCells=function(b,c){var d=this.editor.graph;if(d.isSelectionEmpty())b.innerHTML="";else{var f=mxUtils.sortCells(d.model.getTopmostCells(d.getSelectionCells())),e=mxUtils.getXml(d.encodeCells(f));mxUtils.setTextContent(b,encodeURIComponent(e));c?(d.removeCells(f,!1),d.lastPasteXml=null):(d.lastPasteXml=
-e,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,d,e){var f=this.editor.graph,g=null;f.lastPasteXml==b?f.pasteCounter++:(f.lastPasteXml=b,
-f.pasteCounter=0);var l=f.pasteCounter*f.gridSize;if(d||this.isCompatibleString(b))g=this.importXml(b,l,l),f.setSelectionCells(g);else if(c&&1==f.getSelectionCount()){l=f.getStartEditingCell(f.getSelectionCell(),e);if(/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b)&&"image"==f.getCurrentCellStyle(l)[mxConstants.STYLE_SHAPE])f.setCellStyles(mxConstants.STYLE_IMAGE,b,[l]);else{f.model.beginUpdate();try{f.labelChanged(l,b),Graph.isLink(b)&&f.setLinkForCell(l,b)}finally{f.model.endUpdate()}}f.setSelectionCell(l)}else g=
-f.getInsertPoint(),f.isMouseInsertPoint()&&(l=0,f.lastPasteXml==b&&0<f.pasteCounter&&f.pasteCounter--),g=this.insertTextAt(b,g.x+l,g.y+l,!0),f.setSelectionCells(g);f.isSelectionEmpty()||(f.scrollCellToVisible(f.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(f.view.getState(f.getSelectionCell())));return g};EditorUi.prototype.pasteCells=function(b,c,d,e){if(!mxEvent.isConsumed(b)){var f=c,g=!1;if(d&&null!=b.clipboardData&&b.clipboardData.getData){var l=b.clipboardData.getData("text/plain"),
-k=!1;if(null!=l&&0<l.length&&"%3CmxGraphModel%3E"==l.substring(0,18)){var m=decodeURIComponent(l);this.isCompatibleString(m)&&(k=!0,l=m)}k=k?null:b.clipboardData.getData("text/html");null!=k&&0<k.length?(f=this.parseHtmlData(k),g="text/plain"!=f.getAttribute("data-type")):null!=l&&0<l.length&&(f=document.createElement("div"),mxUtils.setTextContent(f,k))}l=f.getElementsByTagName("span");if(null!=l&&0<l.length&&"application/vnd.lucid.chart.objects"===l[0].getAttribute("data-lucid-type"))d=l[0].getAttribute("data-lucid-content"),
-null!=d&&0<d.length&&(this.convertLucidChart(d,mxUtils.bind(this,function(b){var c=this.editor.graph;c.lastPasteXml==b?c.pasteCounter++:(c.lastPasteXml=b,c.pasteCounter=0);var d=c.pasteCounter*c.gridSize;c.setSelectionCells(this.importXml(b,d,d));c.scrollCellToVisible(c.getSelectionCell())}),mxUtils.bind(this,function(b){this.handleError(b)})),mxEvent.consume(b));else{g=g?f.innerHTML:mxUtils.trim(null==f.innerText?mxUtils.getTextContent(f):f.innerText);k=!1;try{var n=g.lastIndexOf("%3E");0<=n&&n<
-g.length-3&&(g=g.substring(0,n+3))}catch(B){}try{l=f.getElementsByTagName("span"),m=null!=l&&0<l.length?mxUtils.trim(decodeURIComponent(l[0].textContent)):decodeURIComponent(g),this.isCompatibleString(m)&&(k=!0,g=m)}catch(B){}try{if(null!=g&&0<g.length){this.pasteXml(g,e,k,b);try{mxEvent.consume(b)}catch(B){}}else if(!d){var p=this.editor.graph;p.lastPasteXml=null;p.pasteCounter=0}}catch(B){this.handleError(B)}}}c.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(b){if(Graph.fileSupport)for(var c=
-null,d=0;d<b.length;d++)mxEvent.addListener(b[d],"dragleave",function(b){null!=c&&(c.parentNode.removeChild(c),c=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(b[d],"dragover",mxUtils.bind(this,function(b){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==c&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(c=this.highlightElement());b.stopPropagation();b.preventDefault()})),mxEvent.addListener(b[d],"drop",mxUtils.bind(this,function(b){null!=c&&
-(c.parentNode.removeChild(c),c=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 d=this.extractGraphModelFromEvent(b);if(null==d){var f=null!=b.dataTransfer?b.dataTransfer:b.clipboardData;null!=f&&(10==document.documentMode||11==document.documentMode?
-d=f.getData("Text"):(d=null,d=0<=mxUtils.indexOf(f.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(f.types,"text/html")?f.getData("text/html"):null,null!=d&&0<d.length?(f=document.createElement("div"),f.innerHTML=this.editor.graph.sanitizeHtml(d),f=f.getElementsByTagName("img"),0<f.length&&(d=f[0].getAttribute("src"))):0<=mxUtils.indexOf(f.types,"text/plain")&&(d=f.getData("text/plain"))),null!=d&&(Editor.isPngDataUrl(d)?(d=Editor.extractGraphModelFromPng(d),null!=
-d&&0<d.length&&this.openLocalFile(d,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(d)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(d))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&this.openLocalFile(b.getText(),null,!0)})):/^https?:\/\//.test(d)&&(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(d):window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+
-encodeURIComponent(d)))))}else this.openLocalFile(d,null,!0)}b.stopPropagation();b.preventDefault()}))};EditorUi.prototype.highlightElement=function(b){var c=0,d=0,f,e;if(null==b){e=document.body;var g=document.documentElement;f=(e.clientWidth||g.clientWidth)-3;e=Math.max(e.clientHeight||0,g.clientHeight)-3}else c=b.offsetTop,d=b.offsetLeft,f=b.clientWidth,e=b.clientHeight;g=document.createElement("div");g.style.zIndex=mxPopupMenu.prototype.zIndex+2;g.style.border="3px dotted rgb(254, 137, 12)";g.style.pointerEvents=
-"none";g.style.position="absolute";g.style.top=c+"px";g.style.left=d+"px";g.style.width=Math.max(0,f-3)+"px";g.style.height=Math.max(0,e-3)+"px";null!=b&&b.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(g):document.body.appendChild(g);return g};EditorUi.prototype.stringToCells=function(b){b=mxUtils.parseXml(b);var c=this.editor.extractGraphModel(b.documentElement);b=[];if(null!=c){var d=new mxCodec(c.ownerDocument),f=new mxGraphModel;d.decode(c,f);c=f.getChildAt(f.getRoot(),
-0);for(d=0;d<f.getChildCount(c);d++)b.push(f.getChildAt(c,d))}return b};EditorUi.prototype.openFileHandle=function(b,c,d,e,g){if(null!=c&&0<c.length){!this.useCanvasForExport&&/(\.png)$/i.test(c)?c=c.substring(0,c.length-4)+".drawio":/(\.pdf)$/i.test(c)&&(c=c.substring(0,c.length-4)+".drawio");var f=mxUtils.bind(this,function(b){c=0<=c.lastIndexOf(".")?c.substring(0,c.lastIndexOf("."))+".drawio":c+".drawio";if("<mxlibrary"==b.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,
-this.defaultFilename,e);try{this.loadLibrary(new LocalLibrary(this,b,c))}catch(x){this.handleError(x,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(b,c,e)});if(/(\.v(dx|sdx?))($|\?)/i.test(c)||/(\.vs(x|sx?))($|\?)/i.test(c))this.importVisio(d,mxUtils.bind(this,function(b){this.spinner.stop();f(b)}));else if(/(\.*<graphml )/.test(b))this.importGraphML(b,mxUtils.bind(this,function(b){this.spinner.stop();f(b)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&
-this.isRemoteFileFormat(b,c))this.parseFile(d,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?f(b.responseText):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(b))/(\.json)$/i.test(c)&&(c=c.substring(0,c.length-5)+".drawio"),this.convertLucidChart(b,mxUtils.bind(this,function(b){this.spinner.stop();this.openLocalFile(b,c,e)}),mxUtils.bind(this,
-function(b){this.spinner.stop();this.handleError(b)}));else if("<mxlibrary"==b.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,e);try{this.loadLibrary(new LocalLibrary(this,b,d.name))}catch(v){this.handleError(v,mxResources.get("errorLoadingFile"))}}else if(0==b.indexOf("PK"))this.importZipFile(d,mxUtils.bind(this,function(b){this.spinner.stop();f(b)}),mxUtils.bind(this,function(){this.spinner.stop();
-this.openLocalFile(b,c,e)}));else{if("image/png"==d.type.substring(0,9))b=this.extractGraphModelFromPng(b);else if("application/pdf"==d.type){var k=Editor.extractGraphModelFromPdf(b);null!=k&&(g=null,e=!0,b=k)}this.spinner.stop();this.openLocalFile(b,c,e,g,null!=g?d:null)}}};EditorUi.prototype.openFiles=function(b,c){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var d=0;d<b.length;d++)mxUtils.bind(this,function(b){var d=new FileReader;d.onload=mxUtils.bind(this,function(d){try{this.openFileHandle(d.target.result,
-b.name,b,c)}catch(u){this.handleError(u)}});d.onerror=mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b);window.openFile=null});"image"!==b.type.substring(0,5)&&"application/pdf"!==b.type||"image/svg"===b.type.substring(0,9)?d.readAsText(b):d.readAsDataURL(b)})(b[d])};EditorUi.prototype.openLocalFile=function(b,c,d,e,g){var f=this.getCurrentFile(),k=mxUtils.bind(this,function(){window.openFile=null;if(null==c&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var f=mxUtils.parseXml(b);
-null!=f&&(this.editor.setGraphXml(f.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,b,c||this.defaultFilename,d,e,g))});if(null!=b&&0<b.length)null==f||!f.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=e)?k():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=e)&&null!=f&&f.isModified()?this.confirm(mxResources.get("allChangesLost"),null,k,mxResources.get("cancel"),mxResources.get("discardChanges")):(window.openFile=new OpenFile(function(){window.openFile=
-null}),window.openFile.setData(b,c),window.openWindow(this.getUrl(),null,mxUtils.bind(this,function(){null!=f&&f.isModified()?this.confirm(mxResources.get("allChangesLost"),null,k,mxResources.get("cancel"),mxResources.get("discardChanges")):k()})));else throw Error(mxResources.get("notADiagramFile"));};EditorUi.prototype.getBasenames=function(){var b={};if(null!=this.pages)for(var c=0;c<this.pages.length;c++)this.updatePageRoot(this.pages[c]),this.addBasenamesForCell(this.pages[c].root,b);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),
-b);var c=[],d;for(d in b)c.push(d);return c};EditorUi.prototype.addBasenamesForCell=function(b,c){function d(b){if(null!=b){var d=b.lastIndexOf(".");0<d&&(b=b.substring(d+1,b.length));null==c[b]&&(c[b]=!0)}}var f=this.editor.graph,e=f.getCellStyle(b);d(mxStencilRegistry.getBasenameForStencil(e[mxConstants.STYLE_SHAPE]));f.model.isEdge(b)&&(d(mxMarker.getPackageForType(e[mxConstants.STYLE_STARTARROW])),d(mxMarker.getPackageForType(e[mxConstants.STYLE_ENDARROW])));for(var e=f.model.getChildCount(b),
-g=0;g<e;g++)this.addBasenamesForCell(f.model.getChildAt(b,g),c)};EditorUi.prototype.setGraphEnabled=function(b){this.diagramContainer.style.visibility=b?"":"hidden";this.formatContainer.style.visibility=b?"":"hidden";this.sidebarFooterContainer.style.display=b?"":"none";this.sidebarContainer.style.display=b?"":"none";this.hsplit.style.display=b?"":"none";this.editor.graph.setEnabled(b);null!=this.ruler&&(this.ruler.hRuler.container.style.visibility=b?"":"hidden",this.ruler.vRuler.container.style.visibility=
-b?"":"hidden");null!=this.tabContainer&&(this.tabContainer.style.visibility=b?"":"hidden");b||(null!=this.actions.outlineWindow&&this.actions.outlineWindow.window.setVisible(!1),null!=this.actions.layersWindow&&this.actions.layersWindow.window.setVisible(!1),null!=this.menus.tagsWindow&&this.menus.tagsWindow.window.setVisible(!1),null!=this.menus.findWindow&&this.menus.findWindow.window.setVisible(!1),null!=this.menus.findReplaceWindow&&this.menus.findReplaceWindow.window.setVisible(!1))};EditorUi.prototype.initializeEmbedMode=
-function(){this.setGraphEnabled(!1);if((window.opener||window.parent)!=window&&("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))){var b=!1;this.installMessageHandler(mxUtils.bind(this,function(c,d,f,e){b||(b=!0,this.spinner.stop(),this.addEmbedButtons(),this.setGraphEnabled(!0));if(null==c||0==c.length)c=this.emptyDiagramXml;this.setCurrentFile(new EmbedFile(this,c,{}));this.mode=App.MODE_EMBED;this.setFileData(c);if(e)try{var g=this.editor.graph;g.setGridEnabled(!1);
-g.pageVisible=!1;var k=g.model.cells,l;for(l in k){var m=k[l];null!=m&&null!=m.style&&(m.style+=";sketch=1;"+(-1==m.style.indexOf("fontFamily=")||-1<m.style.indexOf("fontFamily=Helvetica;")?"fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;":""))}}catch(A){console.log(A)}this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&this.lightboxFit():this.showLayersDialog();this.chromelessResize&&this.chromelessResize();this.editor.undoManager.clear();
-this.editor.modified=null!=f?f:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))}};EditorUi.prototype.showLayersDialog=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(na){}return b});if("json"==urlParams.proto){var p=
-!1;try{l=JSON.parse(l)}catch(ba){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}),"*")}),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(ba){k.postMessage(JSON.stringify({event:"draft",error:ba.toString(),message:l}),"*")}return}if("template"==l.action){this.spinner.stop();var u=1==l.enableRecent,v=1==l.enableSearch,E=1==l.enableCustomTemp;if("1"==urlParams.newTempDlg&&!l.templatesOnly&&null!=l.callback){var x=this.getCurrentUser(),I=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!=x?x.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,E?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",
-null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(I.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,E?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 L=this.getDiagramTextContent();k.postMessage(JSON.stringify({event:"textContent",data:L,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 M=null!=l.messageKey?mxResources.get(l.messageKey):l.message;null==l.show||l.show?this.spinner.spin(document.body,M):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 O=this.editor.graph,K=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),"*")}),T=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==l.format&&
-(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(N)));O!=this.editor.graph&&O.container.parentNode.removeChild(O.container);K(b)}),J=l.pageId||(null!=this.pages?l.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var U=mxUtils.bind(this,function(){if(null!=this.pages&&this.currentPage.getId()!=J){var b=O.getGlobalVariable;O=this.createTemporaryGraph(O.getStylesheet());for(var c,d=0;d<this.pages.length;d++)if(this.pages[d].getId()==J){c=
-this.updatePageRoot(this.pages[d]);break}null==c&&(c=this.currentPage);O.getGlobalVariable=function(d){return"page"==d?c.getName():"pagenumber"==d?1:b.apply(this,arguments)};document.body.appendChild(O.container);O.model.setRoot(c.root)}if(null!=l.layerIds){for(var f=O.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){T(b.toDataURL("image/png"))}),
-l.width,null,l.background,mxUtils.bind(this,function(){T(null)}),null,null,l.scale,l.transparent,l.shadow,null,O,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(U)},0):U()):U()}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==l.format?"1":"0")+(null!=J?"&pageId="+J:"")+(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()?K("data:image/png;base64,"+b.getText()):T(null)}),mxUtils.bind(this,function(){T(null)}))}}else U=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(U)},
-0):U()):U();return}if("load"==l.action){p=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 P=Editor.sketchMode;this.doSetSketchMode(l.rough);P!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=l.dark&&(P=Editor.darkMode,
-this.doSetDarkMode(l.dark),P!=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 S=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*S);b.maxFitScale=c;b.container.scrollTop-=2*S;b.container.scrollLeft-=2*S;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(ba){}l=null!=l.xmlpng?this.extractGraphModelFromPng(l.xmlpng):null!=l.descriptor?l.descriptor:l.xml}else{if("merge"==l.action){var Y=this.getCurrentFile();null!=Y&&(t=n(l.xml),null!=t&&""!=t&&Y.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(ba){this.handleError(ba)}}var ka=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&
-1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),aa=mxUtils.bind(this,function(g,l){d=!0;try{b(g,l,null,p)}catch(fa){this.handleError(fa)}d=!1;null!=urlParams.modified&&this.editor.setStatus("");e=ka();f&&null==c&&(c=mxUtils.bind(this,function(b,c){var f=ka();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){aa(b,g)},mxUtils.bind(this,function(b){this.handleError(b)}),n)):null!=l&&"function"===typeof l.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(l,"")?this.parseFile(new Blob([l],
-{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&"<mxGraphModel"==b.responseText.substring(0,13)&&aa(b.responseText,g)}),""):null!=l&&"function"===typeof l.substring&&this.isLucidChartData(l)?this.convertLucidChart(l,mxUtils.bind(this,function(b){aa(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),aa(l,g)):this.loadDescriptor(l,mxUtils.bind(this,function(b){aa(ka(),
-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,f=d.getSelectionCells(),e=0;e<b.length;e++){var g=new window[b[e].layout](d);if(null!=b[e].config)for(var l in b[e].config)g[l]=b[e].config[l];this.executeLayout(function(){g.execute(d.getDefaultParent(),
-0==f.length?null:f)},e==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),f=[],e=[],g=[],l={};if(0<d.length){var k={},n=null,A=null,z=null,B=null,y=null,C=null,G="whiteSpace=wrap;html=1;",F=null,D=null,E="",H="auto",I="auto",L=null,M=null,N=40,O=40,K=100,T=0,J=this.editor.graph;J.getGraphBounds();for(var U=function(){null!=c?c(la):(J.setSelectionCells(la),J.scrollCellToVisible(J.getSelectionCell()))},P=J.getFreeInsertPoint(),S=P.x,Y=P.y,P=Y,ka=null,aa="auto",D=null,
-ba=[],na=null,pa=null,fa=0;fa<d.length&&"#"==d[fa].charAt(0);){b=d[fa];for(fa++;fa<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[fa].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[fa].substring(1)),fa++;if("#"!=b.charAt(1)){var ca=b.indexOf(":");if(0<ca){var Q=mxUtils.trim(b.substring(1,ca)),V=mxUtils.trim(b.substring(ca+1));"label"==Q?ka=J.sanitizeHtml(V):"labelname"==Q&&0<V.length&&"-"!=V?y=V:"labels"==Q&&0<V.length&&"-"!=V?C=JSON.parse(V):"style"==Q?A=V:"parentstyle"==Q?G=V:"stylename"==
-Q&&0<V.length&&"-"!=V?B=V:"styles"==Q&&0<V.length&&"-"!=V?z=JSON.parse(V):"vars"==Q&&0<V.length&&"-"!=V?n=JSON.parse(V):"identity"==Q&&0<V.length&&"-"!=V?F=V:"parent"==Q&&0<V.length&&"-"!=V?D=V:"namespace"==Q&&0<V.length&&"-"!=V?E=V:"width"==Q?H=V:"height"==Q?I=V:"left"==Q&&0<V.length?L=V:"top"==Q&&0<V.length?M=V:"ignore"==Q?pa=V.split(","):"connect"==Q?ba.push(JSON.parse(V)):"link"==Q?na=V:"padding"==Q?T=parseFloat(V):"edgespacing"==Q?N=parseFloat(V):"nodespacing"==Q?O=parseFloat(V):"levelspacing"==
-Q?K=parseFloat(V):"layout"==Q&&(aa=V)}}}if(null==d[fa])throw Error(mxResources.get("invalidOrMissingFile"));for(var ia=this.editor.csvToArray(d[fa]),Q=ca=null,V=[],W=0;W<ia.length;W++)F==ia[W]&&(ca=W),D==ia[W]&&(Q=W),V.push(mxUtils.trim(ia[W]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==ka&&(ka="%"+V[0]+"%");if(null!=ba)for(var Z=0;Z<ba.length;Z++)null==k[ba[Z].to]&&(k[ba[Z].to]={});F=[];for(W=fa+1;W<d.length;W++){var ha=this.editor.csvToArray(d[W]);if(null==ha){var ra=
-40<d[W].length?d[W].substring(0,40)+"...":d[W];throw Error(ra+" ("+W+"):\n"+mxResources.get("containsValidationErrors"));}0<ha.length&&F.push(ha)}J.model.beginUpdate();try{for(W=0;W<F.length;W++){var ha=F[W],X=null,ea=null!=ca?E+ha[ca]:null;null!=ea&&(X=J.model.getCell(ea));var d=null!=X,ga=new mxCell(ka,new mxGeometry(S,P,0,0),A||"whiteSpace=wrap;html=1;");ga.vertex=!0;ga.id=ea;for(var ja=0;ja<ha.length;ja++)J.setAttributeForCell(ga,V[ja],ha[ja]);if(null!=y&&null!=C){var oa=C[ga.getAttribute(y)];
-null!=oa&&J.labelChanged(ga,oa)}if(null!=B&&null!=z){var ua=z[ga.getAttribute(B)];null!=ua&&(ga.style=ua)}J.setAttributeForCell(ga,"placeholders","1");ga.style=J.replacePlaceholders(ga,ga.style,n);d?(J.model.setValue(X,ga.value),J.model.setStyle(X,ga.style),0>mxUtils.indexOf(g,X)&&g.push(X),J.fireEvent(new mxEventObject("cellsInserted","cells",[X]))):J.fireEvent(new mxEventObject("cellsInserted","cells",[ga]));X=ga;if(!d)for(Z=0;Z<ba.length;Z++)k[ba[Z].to][X.getAttribute(ba[Z].to)]=X;null!=na&&"link"!=
-na&&(J.setLinkForCell(X,X.getAttribute(na)),J.setAttributeForCell(X,na,null));var R=this.editor.graph.getPreferredSizeForCell(X),D=null!=Q?J.model.getCell(E+ha[Q]):null;if(X.vertex){ra=null!=D?0:S;fa=null!=D?0:Y;null!=L&&null!=X.getAttribute(L)&&(X.geometry.x=ra+parseFloat(X.getAttribute(L)));null!=M&&null!=X.getAttribute(M)&&(X.geometry.y=fa+parseFloat(X.getAttribute(M)));var da="@"==H.charAt(0)?X.getAttribute(H.substring(1)):null;X.geometry.width=null!=da&&"auto"!=da?parseFloat(X.getAttribute(H.substring(1))):
-"auto"==H||"auto"==da?R.width+T:parseFloat(H);var ma="@"==I.charAt(0)?X.getAttribute(I.substring(1)):null;X.geometry.height=null!=ma&&"auto"!=ma?parseFloat(ma):"auto"==I||"auto"==ma?R.height+T:parseFloat(I);P+=X.geometry.height+O}d?(null==l[ea]&&(l[ea]=[]),l[ea].push(X)):(f.push(X),null!=D?(D.style=J.replacePlaceholders(D,G,n),J.addCell(X,D),e.push(D)):g.push(J.addCell(X)))}for(W=0;W<e.length;W++)da="@"==H.charAt(0)?e[W].getAttribute(H.substring(1)):null,ma="@"==I.charAt(0)?e[W].getAttribute(I.substring(1)):
-null,"auto"!=H&&"auto"!=da||"auto"!=I&&"auto"!=ma||J.updateGroupBounds([e[W]],T,!0);for(var sa=g.slice(),la=g.slice(),Z=0;Z<ba.length;Z++)for(var qa=ba[Z],W=0;W<f.length;W++){var X=f[W],ta=mxUtils.bind(this,function(b,c,d){var f=c.getAttribute(d.from);if(null!=f&&""!=f)for(var f=f.split(","),e=0;e<f.length;e++){var g=k[d.to][f[e]];if(null!=g){var l=d.label;null!=d.fromlabel&&(l=(c.getAttribute(d.fromlabel)||"")+(l||""));null!=d.sourcelabel&&(l=J.replacePlaceholders(c,d.sourcelabel,n)+(l||""));null!=
-d.tolabel&&(l=(l||"")+(g.getAttribute(d.tolabel)||""));null!=d.targetlabel&&(l=(l||"")+J.replacePlaceholders(g,d.targetlabel,n));var m="target"==d.placeholders==!d.invert?g:b,m=null!=d.style?J.replacePlaceholders(m,d.style,n):J.createCurrentEdgeStyle(),l=J.insertEdge(null,null,l||"",d.invert?g:b,d.invert?b:g,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=J.replacePlaceholders("target"==p.placeholders==!d.invert?g:b,q.value,n));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)}la.push(l);mxUtils.remove(d.invert?b:g,sa)}}});ta(X,X,qa);if(null!=l[X.id])for(ja=0;ja<l[X.id].length;ja++)ta(X,l[X.id][ja],qa)}if(null!=pa)for(W=0;W<f.length;W++)for(X=f[W],ja=0;ja<pa.length;ja++)J.setAttributeForCell(X,mxUtils.trim(pa[ja]),null);if(0<g.length){var va=
-new mxParallelEdgeLayout(J);va.spacing=N;va.checkOverlap=!0;var xa=function(){0<va.spacing&&va.execute(J.getDefaultParent());for(var b=0;b<g.length;b++){var c=J.getCellGeometry(g[b]);c.x=Math.round(J.snap(c.x));c.y=Math.round(J.snap(c.y));"auto"==H&&(c.width=Math.round(J.snap(c.width)));"auto"==I&&(c.height=Math.round(J.snap(c.height)))}};if("["==aa.charAt(0)){var Ba=U;J.view.validate();this.executeLayoutList(JSON.parse(aa),function(){xa();Ba()});U=null}else if("circle"==aa){var wa=new mxCircleLayout(J);
-wa.disableEdgeStyle=!1;wa.resetEdges=!1;var za=wa.isVertexIgnored;wa.isVertexIgnored=function(b){return za.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){wa.execute(J.getDefaultParent());xa()},!0,U);U=null}else if("horizontaltree"==aa||"verticaltree"==aa||"auto"==aa&&la.length==2*g.length-1&&1==sa.length){J.view.validate();var Ca=new mxCompactTreeLayout(J,"horizontaltree"==aa);Ca.levelDistance=O;Ca.edgeRouting=!1;Ca.resetEdges=!1;this.executeLayout(function(){Ca.execute(J.getDefaultParent(),
-0<sa.length?sa[0]:null)},!0,U);U=null}else if("horizontalflow"==aa||"verticalflow"==aa||"auto"==aa&&1==sa.length){J.view.validate();var ya=new mxHierarchicalLayout(J,"horizontalflow"==aa?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ya.intraCellSpacing=O;ya.parallelEdgeSpacing=N;ya.interRankCellSpacing=K;ya.disableEdgeStyle=!1;this.executeLayout(function(){ya.execute(J.getDefaultParent(),la);J.moveCells(la,S,Y)},!0,U);U=null}else if("organic"==aa||"auto"==aa&&la.length>g.length){J.view.validate();
-var Aa=new mxFastOrganicLayout(J);Aa.forceConstant=3*O;Aa.disableEdgeStyle=!1;Aa.resetEdges=!1;var Da=Aa.isVertexIgnored;Aa.isVertexIgnored=function(b){return Da.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){Aa.execute(J.getDefaultParent());xa()},!0,U);U=null}}this.hideDialog()}finally{J.model.endUpdate()}null!=U&&U()}}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=
-"?",f;for(f in urlParams)0>mxUtils.indexOf(b,f)&&null!=urlParams[f]&&(c+=d+f+"="+urlParams[f],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(" "),f;for(f in urlParams)0>mxUtils.indexOf(d,f)&&(b=0==c?b+"?":b+"&",null!=urlParams[f]&&(b+=f+"="+
-urlParams[f],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++;null!=this.notion&&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.isDiagramActive(),
-e=b.getEditableCells(b.getSelectionCells());this.actions.get("pageSetup").setEnabled(d);this.actions.get("autosave").setEnabled(null!=c&&c.isEditable()&&c.isAutosaveOptional());this.actions.get("guides").setEnabled(d);this.actions.get("editData").setEnabled(0<e.length||b.isSelectionEmpty());this.actions.get("shadowVisible").setEnabled(d);this.actions.get("connectionArrows").setEnabled(d);this.actions.get("connectionPoints").setEnabled(d);this.actions.get("copyStyle").setEnabled(d&&!b.isSelectionEmpty());
-this.actions.get("pasteStyle").setEnabled(d&&0<e.length);this.actions.get("editGeometry").setEnabled(0<e.length&&b.getModel().isVertex(e[0]));this.actions.get("createShape").setEnabled(d);this.actions.get("createRevision").setEnabled(d);this.actions.get("moveToFolder").setEnabled(null!=c);this.actions.get("makeCopy").setEnabled(null!=c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(d&&(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(d&&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,v){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()};v&&(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,v,n):b.exportImage(g,!1,!0,!1,!1,k,!0,!1,"jpeg",v);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(A){}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 l=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,l)}},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(C){this.handleError(C,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,l=window.setTimeout(mxUtils.bind(this,function(){f=!1;g({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.timeout),k=mxUtils.bind(this,function(){window.clearTimeout(l);f&&e.apply(this,arguments)}),m=mxUtils.bind(this,function(){window.clearTimeout(l);f&&g.apply(this,
-arguments)});d=d||{};d.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:k,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,l=0;l<f.allowedDomains.length;l++)if(c=="https://"+f.allowedDomains[l]){g=!0;break}if(!g){d(null,"Invalid Call: "+e+" is not allowed.");return}}var k=b.functionArgs;Array.isArray(k)||(k=[]);if(f.isAsync)k.push(function(){d(Array.prototype.slice.apply(arguments))}),k.push(function(b){d(null,b||"Unkown Error")}),this[e].apply(this,k);else{var n=this[e].apply(this,k);
-d([n])}}else d(null,"Invalid Call: "+e+" is not found.")}catch(A){d(null,"Invalid Call: An error occurred, "+A.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(u){null!=c&&c(u)}};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,l=mxUtils.bind(this,function(){e=!0;this.setDatabaseItem(".drawioMigrated3",!0);c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"setMigratedFlag"}),"*")}),k=mxUtils.bind(this,function(){g++;m()}),m=mxUtils.bind(this,function(){try{if(g>=f.length)l();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]}),"*"):k()}),k)}}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}],k,k,["filesInfo","files"])}catch(E){console.log(E)}});b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var g=
-{};try{g=JSON.parse(b.data)}catch(H){}"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()):l():null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?n(g.resp[0]):k())}}catch(H){console.log(H)}});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 l=f.transaction(g,"readwrite");l.oncomplete=d;l.onerror=e;for(f=0;f<g.length;f++)l.objectStore(g[f]).put(null!=b&&null!=b[f]?{key:b[f],data:c[f]}:c[f])}catch(v){null!=e&&e(v)}}),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(u){null!=d&&d(u)}}),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(u){null!=c&&c(u)}}),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,v){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(b,c,d,e,g,k,n,v)};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,v,x,A,z,B,y,C,G,F){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,d,e,g,k,n,v,
-x,A,z,B,y,C,G,F)};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;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]){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,
+l=this.shapeBackgroundColor;this.stylesheet=this.getDefaultStylesheet();this.shapeBackgroundColor="#ffffff";this.shapeForegroundColor="#000000";f=b.createImageForPageLink(f.originalSrc);this.shapeBackgroundColor=l;this.shapeForegroundColor=g;this.stylesheet=e}return f};var u=this.clearDefaultStyle;this.clearDefaultStyle=function(){u.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 v=b.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1");return v.apply(this,arguments)};var x=c.addClickHandler;c.addClickHandler=function(b,d,f){var e=d;d=function(b,d){if(null==d){var f=mxEvent.getSource(b);"a"==f.nodeName.toLowerCase()&&(d=f.getAttribute("href"))}null!=
+d&&c.isCustomLink(d)&&(mxEvent.isTouchEvent(b)||!mxEvent.isPopupTrigger(b))&&c.customLinkClicked(d)&&mxEvent.consume(b);null!=e&&e(b,d)};x.call(this,b,d,f)};g.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var A=Menus.prototype.addPopupMenuEditItems;this.menus.addPopupMenuEditItems=function(c,d,f){b.editor.graph.isSelectionEmpty()?A.apply(this,arguments):b.menus.addMenuItems(c,"delete - cut copy copyAsImage - duplicate".split(" "),
+null,f)}}b.actions.get("print").funct=function(){b.showDialog((new PrintDialog(b)).container,360,null!=b.pages&&1<b.pages.length?450:370,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var z=c.getExportVariables;c.getExportVariables=function(){var c=z.apply(this,arguments),d=b.getCurrentFile();null!=d&&(c.filename=d.getTitle());c.pagecount=null!=b.pages?b.pages.length:1;c.page=null!=b.currentPage?b.currentPage.getName():"";c.pagenumber=null!=b.pages&&null!=b.currentPage?mxUtils.indexOf(b.pages,
+b.currentPage)+1:1;return c};var B=c.getGlobalVariable;c.getGlobalVariable=function(c){var d=b.getCurrentFile();return"filename"==c&&null!=d?d.getTitle():"page"==c&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==c?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:"pagecount"==c?null!=b.pages?b.pages.length:1:B.apply(this,arguments)};var y=c.labelLinkClicked;c.labelLinkClicked=function(b,d,f){var e=d.getAttribute("href");if(null==e||!c.isCustomLink(e)||!mxEvent.isTouchEvent(f)&&
+mxEvent.isPopupTrigger(f))y.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))c.customLinkClicked(e),c.getRubberband().reset();mxEvent.consume(f)}};this.editor.getOrCreateFilename=function(){var c=b.defaultFilename,d=b.getCurrentFile();null!=d&&(c=null!=d.getTitle()?d.getTitle():c);return c};var C=this.actions.get("print");C.setEnabled(!mxClient.IS_IOS||!navigator.standalone);C.visible=C.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,
+!0,"findReplace"),this.keyHandler.bindAction(67,!0,"copyStyle",!0),this.keyHandler.bindAction(86,!0,"pasteStyle",!0),this.keyHandler.bindAction(77,!0,"editGeometry",!0),this.keyHandler.bindAction(88,!0,"insertText",!0),this.keyHandler.bindAction(75,!0,"insertRectangle"),this.keyHandler.bindAction(75,!0,"insertEllipse",!0),this.altShiftActions[83]="synchronize",this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(null,null,24);Graph.fileSupport&&c.addListener(mxEvent.EDITING_STARTED,
+mxUtils.bind(this,function(b){var d=c.cellEditor.text2,f=null;null!=d&&(mxEvent.addListener(d,"dragleave",function(b){null!=f&&(f.parentNode.removeChild(f),f=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(b){null==f&&(!mxClient.IS_IE||10<document.documentMode)&&(f=this.highlightElement(d));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(d,"drop",mxUtils.bind(this,function(b){null!=f&&(f.parentNode.removeChild(f),f=null);if(0<
+b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,function(b,d,f,e,g,l){c.insertImage(b,g,l)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var c=0;c<b.length;c++)b[c]()},mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var d=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(d)?this.loadImage(decodeURIComponent(d),mxUtils.bind(this,function(b){var f=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,f)),e/Math.max(1,b));c.insertImage(decodeURIComponent(d),f*e,b*e)})):document.execCommand("insertHTML",!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()&&(C=this.editor.graph.view,C.setUnit(mxSettings.getUnit()),C.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,C.unit),this.refresh());if("1"==urlParams.styledev){C=document.getElementById("geFooter");null!=C&&(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)})),C.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)}}C=document.getElementById("geInfo");
+null!=C&&C.parentNode.removeChild(C);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var F=null;mxEvent.addListener(c.container,"dragleave",function(b){c.isEnabled()&&(null!=F&&(F.parentNode.removeChild(F),F=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(b){null==F&&(!mxClient.IS_IE||10<document.documentMode)&&(F=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!=F&&(F.parentNode.removeChild(F),F=null);if(c.isEnabled()){var d=mxUtils.convertPoint(c.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),f=c.view.translate,e=c.view.scale,g=d.x/e-f.x,l=d.y/e-f.y;if(0<b.dataTransfer.files.length)mxEvent.isShiftDown(b)?this.openFiles(b.dataTransfer.files,!0):(mxEvent.isAltDown(b)&&(l=g=null),this.importFiles(b.dataTransfer.files,g,l,this.maxImageSize,null,null,null,
+null,mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b),b));else{mxEvent.isAltDown(b)&&(l=g=0);var k=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,d=this.extractGraphModelFromEvent(b,null!=this.pages);if(null!=d)c.setSelectionCells(this.importXml(d,g,l,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){var m=b.dataTransfer.getData("text/html"),d=document.createElement("div");d.innerHTML=c.sanitizeHtml(m);var n=null,f=d.getElementsByTagName("img");
+null!=f&&1==f.length?(m=f[0].getAttribute("src"),null==m&&(m=f[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)||(n=!0)):(f=d.getElementsByTagName("a"),null!=f&&1==f.length?m=f[0].getAttribute("href"):(d=d.getElementsByTagName("pre"),null!=d&&1==d.length&&(m=mxUtils.getTextContent(d[0]))));var p=!0,q=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(m,g,l,!0,n,null,p,mxEvent.isControlDown(b)))});n&&null!=m&&m.length>this.resampleThreshold?this.confirmImageResize(function(b){p=
+b;q()},mxEvent.isControlDown(b)):q()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(b){var d=Math.max(1,b.width);b=Math.max(1,b.height);var f=this.maxImageSize,f=Math.min(1,Math.min(f/Math.max(1,d)),f/Math.max(1,b));c.setSelectionCell(c.insertVertex(null,null,"",g,l,d*f,b*f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+k+";"))}),mxUtils.bind(this,function(b){c.setSelectionCells(this.insertTextAt(k,
+g,l,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&c.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),g,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(c){if(!mxEvent.isConsumed(c))try{for(var d=
+c.clipboardData||c.originalEvent.clipboardData,f=!1,e=0;e<d.types.length;e++)if("text/"===d.types[e].substring(0,5)){f=!0;break}if(!f){var g=d.items;for(index in g){var l=g[index];if("file"===l.kind){if(b.isEditing())this.importFiles([l.getAsFile()],0,0,this.maxImageSize,function(c,d,f,e,g,l){b.insertImage(c,g,l)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var c=0;c<b.length;c++)b[c]()});else{var k=this.editor.graph.getInsertPoint();this.importFiles([l.getAsFile()],
+k.x,k.y,this.maxImageSize);mxEvent.consume(c)}break}}}}catch(x){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function b(){window.setTimeout(function(){d.innerHTML="&nbsp;";d.focus();document.execCommand("selectAll",!1,null)},0)}var c=this.editor.graph,d=document.createElement("div");d.setAttribute("autocomplete","off");d.setAttribute("autocorrect","off");d.setAttribute("autocapitalize","off");d.setAttribute("spellcheck","false");d.style.textRendering="optimizeSpeed";d.style.fontFamily=
+"monospace";d.style.wordBreak="break-all";d.style.background="transparent";d.style.color="transparent";d.style.position="absolute";d.style.whiteSpace="nowrap";d.style.overflow="hidden";d.style.display="block";d.style.fontSize="1";d.style.zIndex="-1";d.style.resize="none";d.style.outline="none";d.style.width="1px";d.style.height="1px";mxUtils.setOpacity(d,0);d.contentEditable=!0;d.innerHTML="&nbsp;";var e=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,
+null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var f=mxEvent.getSource(b);null==c.container||!c.isEnabled()||c.isMouseDown||c.isEditing()||null!=this.dialog||"INPUT"==f.nodeName||"TEXTAREA"==f.nodeName||224!=b.keyCode&&(mxClient.IS_MAC||17!=b.keyCode)&&(!mxClient.IS_MAC||91!=b.keyCode&&93!=b.keyCode)||e||(d.style.left=c.container.scrollLeft+10+"px",d.style.top=c.container.scrollTop+10+"px",c.container.appendChild(d),e=!0,d.focus(),document.execCommand("selectAll",!1,null))}));
+mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var f=b.keyCode;window.setTimeout(mxUtils.bind(this,function(){!e||224!=f&&17!=f&&91!=f&&93!=f||(e=!1,c.isEditing()||null!=this.dialog||null==c.container||c.container.focus(),d.parentNode.removeChild(d),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(d,"copy",mxUtils.bind(this,function(f){if(c.isEnabled())try{mxClipboard.copy(c),this.copyCells(d),b()}catch(u){this.handleError(u)}}));mxEvent.addListener(d,"cut",
+mxUtils.bind(this,function(f){if(c.isEnabled())try{mxClipboard.copy(c),this.copyCells(d,!0),b()}catch(u){this.handleError(u)}}));mxEvent.addListener(d,"paste",mxUtils.bind(this,function(b){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&(d.innerHTML="&nbsp;",d.focus(),null!=b.clipboardData&&this.pasteCells(b,d,!0,!0),mxEvent.isConsumed(b)||window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,d,!1,!0)}),0))}),!0);var g=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==
+d?!0:g.apply(this,arguments)}};EditorUi.prototype.setSketchMode=function(b){this.spinner.spin(document.body,mxResources.get("working")+"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetSketchMode(b);null==urlParams.rough&&(mxSettings.settings.sketchMode=b,mxSettings.save());this.fireEvent(new mxEventObject("sketchModeChanged"))}),0)};EditorUi.prototype.setPagesVisible=function(b){Editor.pagesVisible!=b&&(Editor.pagesVisible=b,mxSettings.settings.pagesVisible=b,mxSettings.save(),
+this.fireEvent(new mxEventObject("pagesVisibleChanged")))};EditorUi.prototype.setInlineFullscreen=function(b){Editor.inlineFullscreen!=b&&(Editor.inlineFullscreen=b,this.fireEvent(new mxEventObject("inlineFullscreenChanged")),(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:this.diagramContainer.getBoundingClientRect()}),"*"),window.setTimeout(mxUtils.bind(this,function(){this.refresh();this.actions.get("resetView").funct()}),10))};
+EditorUi.prototype.doSetSketchMode=function(b){if(Editor.sketchMode!=b){var c=function(b,c,d){null==b[c]&&(b[c]=d)},d=this.editor.graph;Editor.sketchMode=b;this.menus.defaultFonts=Menus.prototype.defaultFonts;this.menus.defaultFontSize=b?20:16;d.defaultVertexStyle=mxUtils.clone(Graph.prototype.defaultVertexStyle);c(d.defaultVertexStyle,"fontSize",this.menus.defaultFontSize);d.defaultEdgeStyle=mxUtils.clone(Graph.prototype.defaultEdgeStyle);c(d.defaultEdgeStyle,"fontSize",this.menus.defaultFontSize-
+4);c(d.defaultEdgeStyle,"edgeStyle","none");c(d.defaultEdgeStyle,"rounded","0");c(d.defaultEdgeStyle,"curved","1");c(d.defaultEdgeStyle,"jettySize","auto");c(d.defaultEdgeStyle,"orthogonalLoop","1");c(d.defaultEdgeStyle,"endArrow","open");c(d.defaultEdgeStyle,"endSize","14");c(d.defaultEdgeStyle,"startSize","14");b&&(c(d.defaultVertexStyle,"fontFamily",Editor.sketchFontFamily),c(d.defaultVertexStyle,"fontSource",Editor.sketchFontSource),c(d.defaultVertexStyle,"hachureGap","4"),c(d.defaultVertexStyle,
+"sketch","1"),c(d.defaultEdgeStyle,"fontFamily",Editor.sketchFontFamily),c(d.defaultEdgeStyle,"fontSource",Editor.sketchFontSource),c(d.defaultEdgeStyle,"sketch","1"),c(d.defaultEdgeStyle,"hachureGap","4"),c(d.defaultEdgeStyle,"sourcePerimeterSpacing","8"),c(d.defaultEdgeStyle,"targetPerimeterSpacing","8"),this.menus.defaultFonts=[{fontFamily:Editor.sketchFontFamily,fontUrl:decodeURIComponent(Editor.sketchFontSource)},{fontFamily:"Rock Salt",fontUrl:"https://fonts.googleapis.com/css?family=Rock+Salt"},
+{fontFamily:"Permanent Marker",fontUrl:"https://fonts.googleapis.com/css?family=Permanent+Marker"}].concat(this.menus.defaultFonts));d.currentVertexStyle=mxUtils.clone(d.defaultVertexStyle);d.currentEdgeStyle=mxUtils.clone(d.defaultEdgeStyle);this.clearDefaultStyle()}};EditorUi.prototype.getLinkTitle=function(b){var c=Graph.prototype.getLinkTitle.apply(this,arguments);if(Graph.isPageLink(b)){var d=b.indexOf(",");0<d&&(c=this.getPageById(b.substring(d+1)),c=null!=c?c.getName():mxResources.get("pageNotFound"))}else"data:"==
+b.substring(0,5)&&(c=mxResources.get("action"));return c};EditorUi.prototype.handleCustomLink=function(b){if(Graph.isPageLink(b)){var c=b.indexOf(",");if(b=this.getPageById(b.substring(c+1)))this.selectPage(b);else throw Error(mxResources.get("pageNotFound")||"Page not found");}else this.editor.graph.handleCustomLink(b)};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){Editor.pagesVisible=
+mxSettings.settings.pagesVisible;ColorDialog.recentColors=mxSettings.getRecentColors();if(isLocalStorage)try{window.addEventListener("storage",mxUtils.bind(this,function(b){b.key==mxSettings.key&&(mxSettings.load(),ColorDialog.recentColors=mxSettings.getRecentColors(),this.menus.customFonts=mxSettings.getCustomFonts())}),!1)}catch(f){}this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]));this.menus.customFonts=mxSettings.getCustomFonts();this.addListener("customFontsChanged",
+mxUtils.bind(this,function(b,c){if("1"!=urlParams["ext-fonts"])mxSettings.setCustomFonts(this.menus.customFonts);else{var d=c.getProperty("customFonts");this.menus.customFonts=d;mxSettings.setCustomFonts(d)}mxSettings.save()}));this.editor.graph.connectionHandler.setCreateTarget(mxSettings.isCreateTarget());this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyConnectChanged",mxUtils.bind(this,function(b,c){mxSettings.setCreateTarget(this.editor.graph.connectionHandler.isCreateTarget());
+mxSettings.save()}));this.editor.graph.pageFormat=null!=this.editor.graph.defaultPageFormat?this.editor.graph.defaultPageFormat:mxSettings.getPageFormat();this.addListener("pageFormatChanged",mxUtils.bind(this,function(b,c){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor(Editor.isDarkMode());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,d){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 f=this.createImageDataUri(b,c,"png"),e=parseInt(d.getAttribute("width")),g=parseInt(d.getAttribute("height"));this.writeImageToClipboard(f,e,g,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!=d?d: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(p){this.handleError(p)}};
+EditorUi.prototype.writeImageToClipboard=function(b,c,d,e){var f=this.base64ToBlob(b.substring(b.indexOf(",")+1),"image/png");b=new ClipboardItem({"image/png":f,"text/html":new Blob(['<img src="'+b+'" width="'+c+'" height="'+d+'">'],{type:"text/html"})});navigator.clipboard.write([b])["catch"](e)};EditorUi.prototype.copyCells=function(b,c){var d=this.editor.graph;if(d.isSelectionEmpty())b.innerHTML="";else{var f=mxUtils.sortCells(d.model.getTopmostCells(d.getSelectionCells())),e=mxUtils.getXml(d.encodeCells(f));
+mxUtils.setTextContent(b,encodeURIComponent(e));c?(d.removeCells(f,!1),d.lastPasteXml=null):(d.lastPasteXml=e,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,d,e){var f=this.editor.graph,g=null;f.lastPasteXml==b?f.pasteCounter++:(f.lastPasteXml=b,f.pasteCounter=0);var l=f.pasteCounter*f.gridSize;if(d||this.isCompatibleString(b))g=this.importXml(b,l,l),f.setSelectionCells(g);else if(c&&1==f.getSelectionCount()){l=f.getStartEditingCell(f.getSelectionCell(),e);if(/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b)&&"image"==f.getCurrentCellStyle(l)[mxConstants.STYLE_SHAPE])f.setCellStyles(mxConstants.STYLE_IMAGE,b,[l]);else{f.model.beginUpdate();try{f.labelChanged(l,
+b),Graph.isLink(b)&&f.setLinkForCell(l,b)}finally{f.model.endUpdate()}}f.setSelectionCell(l)}else g=f.getInsertPoint(),f.isMouseInsertPoint()&&(l=0,f.lastPasteXml==b&&0<f.pasteCounter&&f.pasteCounter--),g=this.insertTextAt(b,g.x+l,g.y+l,!0),f.setSelectionCells(g);f.isSelectionEmpty()||(f.scrollCellToVisible(f.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(f.view.getState(f.getSelectionCell())));return g};EditorUi.prototype.pasteCells=function(b,c,d,e){if(!mxEvent.isConsumed(b)){var f=
+c,g=!1;if(d&&null!=b.clipboardData&&b.clipboardData.getData){var l=b.clipboardData.getData("text/plain"),k=!1;if(null!=l&&0<l.length&&"%3CmxGraphModel%3E"==l.substring(0,18)){var m=decodeURIComponent(l);this.isCompatibleString(m)&&(k=!0,l=m)}k=k?null:b.clipboardData.getData("text/html");null!=k&&0<k.length?(f=this.parseHtmlData(k),g="text/plain"!=f.getAttribute("data-type")):null!=l&&0<l.length&&(f=document.createElement("div"),mxUtils.setTextContent(f,k))}l=f.getElementsByTagName("span");if(null!=
+l&&0<l.length&&"application/vnd.lucid.chart.objects"===l[0].getAttribute("data-lucid-type"))d=l[0].getAttribute("data-lucid-content"),null!=d&&0<d.length&&(this.convertLucidChart(d,mxUtils.bind(this,function(b){var c=this.editor.graph;c.lastPasteXml==b?c.pasteCounter++:(c.lastPasteXml=b,c.pasteCounter=0);var d=c.pasteCounter*c.gridSize;c.setSelectionCells(this.importXml(b,d,d));c.scrollCellToVisible(c.getSelectionCell())}),mxUtils.bind(this,function(b){this.handleError(b)})),mxEvent.consume(b));else{g=
+g?f.innerHTML:mxUtils.trim(null==f.innerText?mxUtils.getTextContent(f):f.innerText);k=!1;try{var n=g.lastIndexOf("%3E");0<=n&&n<g.length-3&&(g=g.substring(0,n+3))}catch(B){}try{l=f.getElementsByTagName("span"),m=null!=l&&0<l.length?mxUtils.trim(decodeURIComponent(l[0].textContent)):decodeURIComponent(g),this.isCompatibleString(m)&&(k=!0,g=m)}catch(B){}try{if(null!=g&&0<g.length){this.pasteXml(g,e,k,b);try{mxEvent.consume(b)}catch(B){}}else if(!d){var p=this.editor.graph;p.lastPasteXml=null;p.pasteCounter=
+0}}catch(B){this.handleError(B)}}}c.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(b){if(Graph.fileSupport)for(var c=null,d=0;d<b.length;d++)mxEvent.addListener(b[d],"dragleave",function(b){null!=c&&(c.parentNode.removeChild(c),c=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(b[d],"dragover",mxUtils.bind(this,function(b){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==c&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(c=
+this.highlightElement());b.stopPropagation();b.preventDefault()})),mxEvent.addListener(b[d],"drop",mxUtils.bind(this,function(b){null!=c&&(c.parentNode.removeChild(c),c=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 d=this.extractGraphModelFromEvent(b);
+if(null==d){var f=null!=b.dataTransfer?b.dataTransfer:b.clipboardData;null!=f&&(10==document.documentMode||11==document.documentMode?d=f.getData("Text"):(d=null,d=0<=mxUtils.indexOf(f.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(f.types,"text/html")?f.getData("text/html"):null,null!=d&&0<d.length?(f=document.createElement("div"),f.innerHTML=this.editor.graph.sanitizeHtml(d),f=f.getElementsByTagName("img"),0<f.length&&(d=f[0].getAttribute("src"))):0<=mxUtils.indexOf(f.types,
+"text/plain")&&(d=f.getData("text/plain"))),null!=d&&(Editor.isPngDataUrl(d)?(d=Editor.extractGraphModelFromPng(d),null!=d&&0<d.length&&this.openLocalFile(d,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(d)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(d))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&this.openLocalFile(b.getText(),null,!0)})):/^https?:\/\//.test(d)&&(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(d):
+window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(d)))))}else this.openLocalFile(d,null,!0)}b.stopPropagation();b.preventDefault()}))};EditorUi.prototype.highlightElement=function(b){var c=0,d=0,f,e;if(null==b){e=document.body;var g=document.documentElement;f=(e.clientWidth||g.clientWidth)-3;e=Math.max(e.clientHeight||0,g.clientHeight)-3}else c=b.offsetTop,d=b.offsetLeft,f=b.clientWidth,e=b.clientHeight;g=document.createElement("div");
+g.style.zIndex=mxPopupMenu.prototype.zIndex+2;g.style.border="3px dotted rgb(254, 137, 12)";g.style.pointerEvents="none";g.style.position="absolute";g.style.top=c+"px";g.style.left=d+"px";g.style.width=Math.max(0,f-3)+"px";g.style.height=Math.max(0,e-3)+"px";null!=b&&b.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(g):document.body.appendChild(g);return g};EditorUi.prototype.stringToCells=function(b){b=mxUtils.parseXml(b);var c=this.editor.extractGraphModel(b.documentElement);
+b=[];if(null!=c){var d=new mxCodec(c.ownerDocument),f=new mxGraphModel;d.decode(c,f);c=f.getChildAt(f.getRoot(),0);for(d=0;d<f.getChildCount(c);d++)b.push(f.getChildAt(c,d))}return b};EditorUi.prototype.openFileHandle=function(b,c,d,e,g){if(null!=c&&0<c.length){!this.useCanvasForExport&&/(\.png)$/i.test(c)?c=c.substring(0,c.length-4)+".drawio":/(\.pdf)$/i.test(c)&&(c=c.substring(0,c.length-4)+".drawio");var f=mxUtils.bind(this,function(b){c=0<=c.lastIndexOf(".")?c.substring(0,c.lastIndexOf("."))+
+".drawio":c+".drawio";if("<mxlibrary"==b.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,e);try{this.loadLibrary(new LocalLibrary(this,b,c))}catch(x){this.handleError(x,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(b,c,e)});if(/(\.v(dx|sdx?))($|\?)/i.test(c)||/(\.vs(x|sx?))($|\?)/i.test(c))this.importVisio(d,mxUtils.bind(this,function(b){this.spinner.stop();f(b)}));else if(/(\.*<graphml )/.test(b))this.importGraphML(b,
+mxUtils.bind(this,function(b){this.spinner.stop();f(b)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,c))this.parseFile(d,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?f(b.responseText):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(b))/(\.json)$/i.test(c)&&(c=c.substring(0,
+c.length-5)+".drawio"),this.convertLucidChart(b,mxUtils.bind(this,function(b){this.spinner.stop();this.openLocalFile(b,c,e)}),mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}));else if("<mxlibrary"==b.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,e);try{this.loadLibrary(new LocalLibrary(this,b,d.name))}catch(v){this.handleError(v,mxResources.get("errorLoadingFile"))}}else if(0==
+b.indexOf("PK"))this.importZipFile(d,mxUtils.bind(this,function(b){this.spinner.stop();f(b)}),mxUtils.bind(this,function(){this.spinner.stop();this.openLocalFile(b,c,e)}));else{if("image/png"==d.type.substring(0,9))b=this.extractGraphModelFromPng(b);else if("application/pdf"==d.type){var k=Editor.extractGraphModelFromPdf(b);null!=k&&(g=null,e=!0,b=k)}this.spinner.stop();this.openLocalFile(b,c,e,g,null!=g?d:null)}}};EditorUi.prototype.openFiles=function(b,c){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var d=
+0;d<b.length;d++)mxUtils.bind(this,function(b){var d=new FileReader;d.onload=mxUtils.bind(this,function(d){try{this.openFileHandle(d.target.result,b.name,b,c)}catch(u){this.handleError(u)}});d.onerror=mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b);window.openFile=null});"image"!==b.type.substring(0,5)&&"application/pdf"!==b.type||"image/svg"===b.type.substring(0,9)?d.readAsText(b):d.readAsDataURL(b)})(b[d])};EditorUi.prototype.openLocalFile=function(b,c,d,e,g){var f=this.getCurrentFile(),
+k=mxUtils.bind(this,function(){window.openFile=null;if(null==c&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var f=mxUtils.parseXml(b);null!=f&&(this.editor.setGraphXml(f.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,b,c||this.defaultFilename,d,e,g))});if(null!=b&&0<b.length)null==f||!f.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=e)?k():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=e)&&null!=f&&f.isModified()?this.confirm(mxResources.get("allChangesLost"),
+null,k,mxResources.get("cancel"),mxResources.get("discardChanges")):(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(b,c),window.openWindow(this.getUrl(),null,mxUtils.bind(this,function(){null!=f&&f.isModified()?this.confirm(mxResources.get("allChangesLost"),null,k,mxResources.get("cancel"),mxResources.get("discardChanges")):k()})));else throw Error(mxResources.get("notADiagramFile"));};EditorUi.prototype.getBasenames=function(){var b={};if(null!=this.pages)for(var c=
+0;c<this.pages.length;c++)this.updatePageRoot(this.pages[c]),this.addBasenamesForCell(this.pages[c].root,b);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),b);var c=[],d;for(d in b)c.push(d);return c};EditorUi.prototype.addBasenamesForCell=function(b,c){function d(b){if(null!=b){var d=b.lastIndexOf(".");0<d&&(b=b.substring(d+1,b.length));null==c[b]&&(c[b]=!0)}}var f=this.editor.graph,e=f.getCellStyle(b);d(mxStencilRegistry.getBasenameForStencil(e[mxConstants.STYLE_SHAPE]));f.model.isEdge(b)&&
+(d(mxMarker.getPackageForType(e[mxConstants.STYLE_STARTARROW])),d(mxMarker.getPackageForType(e[mxConstants.STYLE_ENDARROW])));for(var e=f.model.getChildCount(b),g=0;g<e;g++)this.addBasenamesForCell(f.model.getChildAt(b,g),c)};EditorUi.prototype.setGraphEnabled=function(b){this.diagramContainer.style.visibility=b?"":"hidden";this.formatContainer.style.visibility=b?"":"hidden";this.sidebarFooterContainer.style.display=b?"":"none";this.sidebarContainer.style.display=b?"":"none";this.hsplit.style.display=
+b?"":"none";this.editor.graph.setEnabled(b);null!=this.ruler&&(this.ruler.hRuler.container.style.visibility=b?"":"hidden",this.ruler.vRuler.container.style.visibility=b?"":"hidden");null!=this.tabContainer&&(this.tabContainer.style.visibility=b?"":"hidden");b||(null!=this.actions.outlineWindow&&this.actions.outlineWindow.window.setVisible(!1),null!=this.actions.layersWindow&&this.actions.layersWindow.window.setVisible(!1),null!=this.menus.tagsWindow&&this.menus.tagsWindow.window.setVisible(!1),null!=
+this.menus.findWindow&&this.menus.findWindow.window.setVisible(!1),null!=this.menus.findReplaceWindow&&this.menus.findReplaceWindow.window.setVisible(!1))};EditorUi.prototype.initializeEmbedMode=function(){this.setGraphEnabled(!1);if((window.opener||window.parent)!=window&&("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))){var b=!1;this.installMessageHandler(mxUtils.bind(this,function(c,d,f,e){b||(b=!0,this.spinner.stop(),this.addEmbedButtons(),this.setGraphEnabled(!0));
+if(null==c||0==c.length)c=this.emptyDiagramXml;this.setCurrentFile(new EmbedFile(this,c,{}));this.mode=App.MODE_EMBED;this.setFileData(c);if(e)try{var g=this.editor.graph;g.setGridEnabled(!1);g.pageVisible=!1;var k=g.model.cells,l;for(l in k){var m=k[l];null!=m&&null!=m.style&&(m.style+=";sketch=1;"+(-1==m.style.indexOf("fontFamily=")||-1<m.style.indexOf("fontFamily=Helvetica;")?"fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;":
+""))}}catch(A){console.log(A)}this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&this.lightboxFit():this.showLayersDialog();this.chromelessResize&&this.chromelessResize();this.editor.undoManager.clear();this.editor.modified=null!=f?f:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))}};EditorUi.prototype.showLayersDialog=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(na){}return b});if("json"==urlParams.proto){var p=!1;try{l=JSON.parse(l)}catch(ba){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}),"*")}),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(ba){k.postMessage(JSON.stringify({event:"draft",error:ba.toString(),message:l}),"*")}return}if("template"==l.action){this.spinner.stop();var u=1==l.enableRecent,v=1==l.enableSearch,E=1==l.enableCustomTemp;if("1"==urlParams.newTempDlg&&!l.templatesOnly&&null!=
+l.callback){var x=this.getCurrentUser(),I=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!=x?x.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,E?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(I.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,E?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 L=this.getDiagramTextContent();k.postMessage(JSON.stringify({event:"textContent",
+data:L,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 M=null!=l.messageKey?mxResources.get(l.messageKey):l.message;null==l.show||l.show?this.spinner.spin(document.body,M):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 O=this.editor.graph,K=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),"*")}),T=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==l.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(N)));O!=this.editor.graph&&O.container.parentNode.removeChild(O.container);K(b)}),J=l.pageId||(null!=this.pages?l.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var U=mxUtils.bind(this,
+function(){if(null!=this.pages&&this.currentPage.getId()!=J){var b=O.getGlobalVariable;O=this.createTemporaryGraph(O.getStylesheet());for(var c,d=0;d<this.pages.length;d++)if(this.pages[d].getId()==J){c=this.updatePageRoot(this.pages[d]);break}null==c&&(c=this.currentPage);O.getGlobalVariable=function(d){return"page"==d?c.getName():"pagenumber"==d?1:b.apply(this,arguments)};document.body.appendChild(O.container);O.model.setRoot(c.root)}if(null!=l.layerIds){for(var f=O.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){T(b.toDataURL("image/png"))}),l.width,null,l.background,mxUtils.bind(this,function(){T(null)}),null,null,l.scale,l.transparent,l.shadow,null,O,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(U)},0):U()):
+U()}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==l.format?"1":"0")+(null!=J?"&pageId="+J:"")+(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()?K("data:image/png;base64,"+b.getText()):T(null)}),mxUtils.bind(this,function(){T(null)}))}}else U=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(U)},0):U()):U();return}if("load"==l.action){p=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 P=Editor.sketchMode;this.doSetSketchMode(l.rough);P!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=l.dark&&(P=Editor.darkMode,this.doSetDarkMode(l.dark),P!=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 S=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*S);b.maxFitScale=c;b.container.scrollTop-=2*S;b.container.scrollLeft-=2*S;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(ba){}l=null!=l.xmlpng?this.extractGraphModelFromPng(l.xmlpng):null!=l.descriptor?l.descriptor:l.xml}else{if("merge"==l.action){var Y=this.getCurrentFile();null!=Y&&(t=n(l.xml),null!=t&&""!=t&&Y.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(ba){this.handleError(ba)}}var ka=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),aa=mxUtils.bind(this,function(g,l){d=!0;try{b(g,l,null,p)}catch(fa){this.handleError(fa)}d=
+!1;null!=urlParams.modified&&this.editor.setStatus("");e=ka();f&&null==c&&(c=mxUtils.bind(this,function(b,c){var f=ka();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){aa(b,g)},mxUtils.bind(this,function(b){this.handleError(b)}),n)):null!=l&&"function"===typeof l.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(l,"")?this.parseFile(new Blob([l],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&"<mxGraphModel"==b.responseText.substring(0,
+13)&&aa(b.responseText,g)}),""):null!=l&&"function"===typeof l.substring&&this.isLucidChartData(l)?this.convertLucidChart(l,mxUtils.bind(this,function(b){aa(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),aa(l,g)):this.loadDescriptor(l,mxUtils.bind(this,function(b){aa(ka(),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,f=d.getSelectionCells(),e=0;e<b.length;e++){var g=new window[b[e].layout](d);if(null!=b[e].config)for(var l in b[e].config)g[l]=b[e].config[l];this.executeLayout(function(){g.execute(d.getDefaultParent(),0==f.length?null:f)},e==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),f=[],e=[],g=[],l={};if(0<d.length){var k={},n=null,A=null,z=null,B=null,y=null,C=null,G="whiteSpace=wrap;html=1;",
+F=null,D=null,E="",H="auto",I="auto",L=null,M=null,N=40,O=40,K=100,T=0,J=this.editor.graph;J.getGraphBounds();for(var U=function(){null!=c?c(la):(J.setSelectionCells(la),J.scrollCellToVisible(J.getSelectionCell()))},P=J.getFreeInsertPoint(),S=P.x,Y=P.y,P=Y,ka=null,aa="auto",D=null,ba=[],na=null,pa=null,fa=0;fa<d.length&&"#"==d[fa].charAt(0);){b=d[fa];for(fa++;fa<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[fa].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[fa].substring(1)),fa++;if("#"!=b.charAt(1)){var ca=
+b.indexOf(":");if(0<ca){var Q=mxUtils.trim(b.substring(1,ca)),V=mxUtils.trim(b.substring(ca+1));"label"==Q?ka=J.sanitizeHtml(V):"labelname"==Q&&0<V.length&&"-"!=V?y=V:"labels"==Q&&0<V.length&&"-"!=V?C=JSON.parse(V):"style"==Q?A=V:"parentstyle"==Q?G=V:"stylename"==Q&&0<V.length&&"-"!=V?B=V:"styles"==Q&&0<V.length&&"-"!=V?z=JSON.parse(V):"vars"==Q&&0<V.length&&"-"!=V?n=JSON.parse(V):"identity"==Q&&0<V.length&&"-"!=V?F=V:"parent"==Q&&0<V.length&&"-"!=V?D=V:"namespace"==Q&&0<V.length&&"-"!=V?E=V:"width"==
+Q?H=V:"height"==Q?I=V:"left"==Q&&0<V.length?L=V:"top"==Q&&0<V.length?M=V:"ignore"==Q?pa=V.split(","):"connect"==Q?ba.push(JSON.parse(V)):"link"==Q?na=V:"padding"==Q?T=parseFloat(V):"edgespacing"==Q?N=parseFloat(V):"nodespacing"==Q?O=parseFloat(V):"levelspacing"==Q?K=parseFloat(V):"layout"==Q&&(aa=V)}}}if(null==d[fa])throw Error(mxResources.get("invalidOrMissingFile"));for(var ia=this.editor.csvToArray(d[fa]),Q=ca=null,V=[],W=0;W<ia.length;W++)F==ia[W]&&(ca=W),D==ia[W]&&(Q=W),V.push(mxUtils.trim(ia[W]).replace(/[^a-z0-9]+/ig,
+"_").replace(/^\d+/,"").replace(/_+$/,""));null==ka&&(ka="%"+V[0]+"%");if(null!=ba)for(var Z=0;Z<ba.length;Z++)null==k[ba[Z].to]&&(k[ba[Z].to]={});F=[];for(W=fa+1;W<d.length;W++){var ha=this.editor.csvToArray(d[W]);if(null==ha){var ra=40<d[W].length?d[W].substring(0,40)+"...":d[W];throw Error(ra+" ("+W+"):\n"+mxResources.get("containsValidationErrors"));}0<ha.length&&F.push(ha)}J.model.beginUpdate();try{for(W=0;W<F.length;W++){var ha=F[W],X=null,ea=null!=ca?E+ha[ca]:null;null!=ea&&(X=J.model.getCell(ea));
+var d=null!=X,ga=new mxCell(ka,new mxGeometry(S,P,0,0),A||"whiteSpace=wrap;html=1;");ga.vertex=!0;ga.id=ea;for(var ja=0;ja<ha.length;ja++)J.setAttributeForCell(ga,V[ja],ha[ja]);if(null!=y&&null!=C){var oa=C[ga.getAttribute(y)];null!=oa&&J.labelChanged(ga,oa)}if(null!=B&&null!=z){var ua=z[ga.getAttribute(B)];null!=ua&&(ga.style=ua)}J.setAttributeForCell(ga,"placeholders","1");ga.style=J.replacePlaceholders(ga,ga.style,n);d?(J.model.setValue(X,ga.value),J.model.setStyle(X,ga.style),0>mxUtils.indexOf(g,
+X)&&g.push(X),J.fireEvent(new mxEventObject("cellsInserted","cells",[X]))):J.fireEvent(new mxEventObject("cellsInserted","cells",[ga]));X=ga;if(!d)for(Z=0;Z<ba.length;Z++)k[ba[Z].to][X.getAttribute(ba[Z].to)]=X;null!=na&&"link"!=na&&(J.setLinkForCell(X,X.getAttribute(na)),J.setAttributeForCell(X,na,null));var R=this.editor.graph.getPreferredSizeForCell(X),D=null!=Q?J.model.getCell(E+ha[Q]):null;if(X.vertex){ra=null!=D?0:S;fa=null!=D?0:Y;null!=L&&null!=X.getAttribute(L)&&(X.geometry.x=ra+parseFloat(X.getAttribute(L)));
+null!=M&&null!=X.getAttribute(M)&&(X.geometry.y=fa+parseFloat(X.getAttribute(M)));var da="@"==H.charAt(0)?X.getAttribute(H.substring(1)):null;X.geometry.width=null!=da&&"auto"!=da?parseFloat(X.getAttribute(H.substring(1))):"auto"==H||"auto"==da?R.width+T:parseFloat(H);var ma="@"==I.charAt(0)?X.getAttribute(I.substring(1)):null;X.geometry.height=null!=ma&&"auto"!=ma?parseFloat(ma):"auto"==I||"auto"==ma?R.height+T:parseFloat(I);P+=X.geometry.height+O}d?(null==l[ea]&&(l[ea]=[]),l[ea].push(X)):(f.push(X),
+null!=D?(D.style=J.replacePlaceholders(D,G,n),J.addCell(X,D),e.push(D)):g.push(J.addCell(X)))}for(W=0;W<e.length;W++)da="@"==H.charAt(0)?e[W].getAttribute(H.substring(1)):null,ma="@"==I.charAt(0)?e[W].getAttribute(I.substring(1)):null,"auto"!=H&&"auto"!=da||"auto"!=I&&"auto"!=ma||J.updateGroupBounds([e[W]],T,!0);for(var sa=g.slice(),la=g.slice(),Z=0;Z<ba.length;Z++)for(var qa=ba[Z],W=0;W<f.length;W++){var X=f[W],ta=mxUtils.bind(this,function(b,c,d){var f=c.getAttribute(d.from);if(null!=f&&""!=f)for(var f=
+f.split(","),e=0;e<f.length;e++){var g=k[d.to][f[e]];if(null!=g){var l=d.label;null!=d.fromlabel&&(l=(c.getAttribute(d.fromlabel)||"")+(l||""));null!=d.sourcelabel&&(l=J.replacePlaceholders(c,d.sourcelabel,n)+(l||""));null!=d.tolabel&&(l=(l||"")+(g.getAttribute(d.tolabel)||""));null!=d.targetlabel&&(l=(l||"")+J.replacePlaceholders(g,d.targetlabel,n));var m="target"==d.placeholders==!d.invert?g:b,m=null!=d.style?J.replacePlaceholders(m,d.style,n):J.createCurrentEdgeStyle(),l=J.insertEdge(null,null,
+l||"",d.invert?g:b,d.invert?b:g,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=J.replacePlaceholders("target"==p.placeholders==!d.invert?g:b,q.value,n));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)}la.push(l);mxUtils.remove(d.invert?b:g,
+sa)}}});ta(X,X,qa);if(null!=l[X.id])for(ja=0;ja<l[X.id].length;ja++)ta(X,l[X.id][ja],qa)}if(null!=pa)for(W=0;W<f.length;W++)for(X=f[W],ja=0;ja<pa.length;ja++)J.setAttributeForCell(X,mxUtils.trim(pa[ja]),null);if(0<g.length){var va=new mxParallelEdgeLayout(J);va.spacing=N;va.checkOverlap=!0;var xa=function(){0<va.spacing&&va.execute(J.getDefaultParent());for(var b=0;b<g.length;b++){var c=J.getCellGeometry(g[b]);c.x=Math.round(J.snap(c.x));c.y=Math.round(J.snap(c.y));"auto"==H&&(c.width=Math.round(J.snap(c.width)));
+"auto"==I&&(c.height=Math.round(J.snap(c.height)))}};if("["==aa.charAt(0)){var Ba=U;J.view.validate();this.executeLayoutList(JSON.parse(aa),function(){xa();Ba()});U=null}else if("circle"==aa){var wa=new mxCircleLayout(J);wa.disableEdgeStyle=!1;wa.resetEdges=!1;var za=wa.isVertexIgnored;wa.isVertexIgnored=function(b){return za.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){wa.execute(J.getDefaultParent());xa()},!0,U);U=null}else if("horizontaltree"==aa||"verticaltree"==
+aa||"auto"==aa&&la.length==2*g.length-1&&1==sa.length){J.view.validate();var Ca=new mxCompactTreeLayout(J,"horizontaltree"==aa);Ca.levelDistance=O;Ca.edgeRouting=!1;Ca.resetEdges=!1;this.executeLayout(function(){Ca.execute(J.getDefaultParent(),0<sa.length?sa[0]:null)},!0,U);U=null}else if("horizontalflow"==aa||"verticalflow"==aa||"auto"==aa&&1==sa.length){J.view.validate();var ya=new mxHierarchicalLayout(J,"horizontalflow"==aa?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ya.intraCellSpacing=
+O;ya.parallelEdgeSpacing=N;ya.interRankCellSpacing=K;ya.disableEdgeStyle=!1;this.executeLayout(function(){ya.execute(J.getDefaultParent(),la);J.moveCells(la,S,Y)},!0,U);U=null}else if("organic"==aa||"auto"==aa&&la.length>g.length){J.view.validate();var Aa=new mxFastOrganicLayout(J);Aa.forceConstant=3*O;Aa.disableEdgeStyle=!1;Aa.resetEdges=!1;var Da=Aa.isVertexIgnored;Aa.isVertexIgnored=function(b){return Da.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){Aa.execute(J.getDefaultParent());
+xa()},!0,U);U=null}}this.hideDialog()}finally{J.model.endUpdate()}null!=U&&U()}}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="?",f;for(f in urlParams)0>mxUtils.indexOf(b,f)&&null!=urlParams[f]&&(c+=d+f+"="+urlParams[f],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(" "),f;for(f in urlParams)0>mxUtils.indexOf(d,f)&&(b=0==c?b+"?":b+"&",null!=urlParams[f]&&(b+=f+"="+urlParams[f],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++;null!=this.notion&&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.isDiagramActive(),e=b.getEditableCells(b.getSelectionCells());this.actions.get("pageSetup").setEnabled(d);this.actions.get("autosave").setEnabled(null!=c&&c.isEditable()&&c.isAutosaveOptional());this.actions.get("guides").setEnabled(d);this.actions.get("editData").setEnabled(0<
+e.length||b.isSelectionEmpty());this.actions.get("shadowVisible").setEnabled(d);this.actions.get("connectionArrows").setEnabled(d);this.actions.get("connectionPoints").setEnabled(d);this.actions.get("copyStyle").setEnabled(d&&!b.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(d&&0<e.length);this.actions.get("editGeometry").setEnabled(0<e.length&&b.getModel().isVertex(e[0]));this.actions.get("createShape").setEnabled(d);this.actions.get("createRevision").setEnabled(d);this.actions.get("moveToFolder").setEnabled(null!=
+c);this.actions.get("makeCopy").setEnabled(null!=c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(d&&(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(d&&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,v){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()};v&&(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,v,n):b.exportImage(g,!1,!0,!1,!1,k,!0,!1,"jpeg",v);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(A){}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 l=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,l)}},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(C){this.handleError(C,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,l=window.setTimeout(mxUtils.bind(this,function(){f=!1;g({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),
+this.timeout),k=mxUtils.bind(this,function(){window.clearTimeout(l);f&&e.apply(this,arguments)}),m=mxUtils.bind(this,function(){window.clearTimeout(l);f&&g.apply(this,arguments)});d=d||{};d.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:k,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,l=0;l<f.allowedDomains.length;l++)if(c=="https://"+f.allowedDomains[l]){g=!0;break}if(!g){d(null,"Invalid Call: "+e+" is not allowed.");return}}var k=b.functionArgs;Array.isArray(k)||
+(k=[]);if(f.isAsync)k.push(function(){d(Array.prototype.slice.apply(arguments))}),k.push(function(b){d(null,b||"Unkown Error")}),this[e].apply(this,k);else{var n=this[e].apply(this,k);d([n])}}else d(null,"Invalid Call: "+e+" is not found.")}catch(A){d(null,"Invalid Call: An error occurred, "+A.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(u){null!=c&&c(u)}};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,l=mxUtils.bind(this,function(){e=!0;this.setDatabaseItem(".drawioMigrated3",!0);c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",
+funtionName:"setMigratedFlag"}),"*")}),k=mxUtils.bind(this,function(){g++;m()}),m=mxUtils.bind(this,function(){try{if(g>=f.length)l();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]}),"*"):k()}),k)}}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}],k,k,["filesInfo","files"])}catch(E){console.log(E)}});b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var g={};try{g=JSON.parse(b.data)}catch(H){}"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()):l():null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?n(g.resp[0]):k())}}catch(H){console.log(H)}});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 l=f.transaction(g,"readwrite");l.oncomplete=d;l.onerror=e;for(f=0;f<g.length;f++)l.objectStore(g[f]).put(null!=b&&null!=b[f]?{key:b[f],data:c[f]}:c[f])}catch(v){null!=e&&e(v)}}),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(u){null!=d&&d(u)}}),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(u){null!=c&&c(u)}}),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,v){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");
+return this.editor.loadUrl(b,c,d,e,g,k,n,v)};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,v,x,A,z,B,y,C,G,F){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,d,e,g,k,n,v,x,A,z,B,y,C,G,F)};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++;y.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 y=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?(y.click(),mxEvent.consume(b)):27==b.keyCode&&(p.click(),mxEvent.consume(b)))}));y.focus();y.className="geCommentEditBtn gePrimaryBtn";m.appendChild(y);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",
@@ -11900,8 +11898,8 @@ mxEvent.addListener(q,"change",function(){e=q.value});m=document.createElement("
355,140,!0,!0)},d,null,k());b.addSeparator(d);b.addItem(mxResources.get("parallels"),null,mxUtils.bind(this,function(){var b=new mxParallelEdgeLayout(g);b.checkOverlap=!0;b.spacing=20;c.executeLayout(function(){b.execute(g.getDefaultParent(),g.isSelectionEmpty()?null:g.getSelectionCells())},!1)}),d);b.addSeparator(d);c.menus.addMenuItem(b,"runLayout",d,null,null,mxResources.get("apply")+"...")};this.put("help",new Menu(mxUtils.bind(this,function(b,d){if(!mxClient.IS_CHROMEAPP&&c.isOffline())this.addMenuItems(b,
["about"],d);else{var e=b.addItem("Search:",null,null,d,null,null,!1);e.style.backgroundColor=Editor.isDarkMode()?"#505759":"whiteSmoke";e.style.cursor="default";var f=document.createElement("input");f.setAttribute("type","text");f.setAttribute("size","25");f.style.marginLeft="8px";mxEvent.addListener(f,"keydown",mxUtils.bind(this,function(b){var c=mxUtils.trim(f.value);13==b.keyCode&&0<c.length?(this.editorUi.openLink("https://www.diagrams.net/search?src="+(EditorUi.isElectronApp?"DESKTOP":encodeURIComponent(location.host))+
"&search="+encodeURIComponent(c)),f.value="",EditorUi.logEvent({category:"SEARCH-HELP",action:"search",label:c}),window.setTimeout(mxUtils.bind(this,function(){this.editorUi.hideCurrentMenu()}),0)):27==b.keyCode&&(f.value="")}));e.firstChild.nextSibling.appendChild(f);mxEvent.addGestureListeners(f,function(b){document.activeElement!=f&&f.focus();mxEvent.consume(b)},function(b){mxEvent.consume(b)},function(b){mxEvent.consume(b)});window.setTimeout(function(){f.focus()},0);EditorUi.isElectronApp?(c.actions.addAction("website...",
-function(){c.openLink("https://www.diagrams.net")}),c.actions.addAction("check4Updates",function(){c.checkForUpdates()}),console.log("electron help menu"),this.addMenuItems(b,"- keyboardShortcuts quickStart website support -".split(" "),d),"1"!=urlParams.disableUpdate&&this.addMenuItems(b,["check4Updates","-"],d),this.addMenuItems(b,["forkme","-","about"],d)):this.addMenuItems(b,"- keyboardShortcuts quickStart support - forkme downloadDesktop - about".split(" "),d)}"1"==urlParams.test&&(b.addSeparator(d),
-this.addSubmenu("testDevelop",b,d))})));mxResources.parse("diagramLanguage=Diagram Language");c.actions.addAction("diagramLanguage...",function(){var b=prompt("Language Code",Graph.diagramLanguage||"");null!=b&&(Graph.diagramLanguage=0<b.length?b:null,g.refresh())});if("1"==urlParams.test){mxResources.parse("testDevelop=Develop");mxResources.parse("showBoundingBox=Show bounding box");mxResources.parse("createSidebarEntry=Create Sidebar Entry");mxResources.parse("testCheckFile=Check File");mxResources.parse("testDiff=Diff/Sync");
+function(){c.openLink("https://www.diagrams.net")}),c.actions.addAction("check4Updates",function(){c.checkForUpdates()}),this.addMenuItems(b,"- keyboardShortcuts quickStart website support -".split(" "),d),"1"!=urlParams.disableUpdate&&this.addMenuItems(b,["check4Updates","-"],d),this.addMenuItems(b,["forkme","-","about"],d)):this.addMenuItems(b,"- keyboardShortcuts quickStart support - forkme downloadDesktop - about".split(" "),d)}"1"==urlParams.test&&(b.addSeparator(d),this.addSubmenu("testDevelop",
+b,d))})));mxResources.parse("diagramLanguage=Diagram Language");c.actions.addAction("diagramLanguage...",function(){var b=prompt("Language Code",Graph.diagramLanguage||"");null!=b&&(Graph.diagramLanguage=0<b.length?b:null,g.refresh())});if("1"==urlParams.test){mxResources.parse("testDevelop=Develop");mxResources.parse("showBoundingBox=Show bounding box");mxResources.parse("createSidebarEntry=Create Sidebar Entry");mxResources.parse("testCheckFile=Check File");mxResources.parse("testDiff=Diff/Sync");
mxResources.parse("testInspect=Inspect");mxResources.parse("testShowConsole=Show Console");mxResources.parse("testXmlImageExport=XML Image Export");mxResources.parse("testDownloadRtModel=Export RT model");mxResources.parse("testImportRtModel=Import RT model");c.actions.addAction("createSidebarEntry",mxUtils.bind(this,function(){if(!g.isSelectionEmpty()){var b=g.cloneCells(g.getSelectionCells()),d=g.getBoundingBoxFromGeometry(b),b=g.moveCells(b,-d.x,-d.y);c.showTextDialog("Create Sidebar Entry","this.addDataEntry('tag1 tag2', "+
d.width+", "+d.height+", 'The Title', '"+Graph.compress(mxUtils.getXml(g.encodeCells(b)))+"'),")}}));c.actions.addAction("showBoundingBox",mxUtils.bind(this,function(){var b=g.getGraphBounds(),c=g.view.translate,d=g.view.scale;g.insertVertex(g.getDefaultParent(),null,"",b.x/d-c.x,b.y/d-c.y,b.width/d,b.height/d,"fillColor=none;strokeColor=red;")}));c.actions.addAction("testCheckFile",mxUtils.bind(this,function(){var b=null!=c.pages&&null!=c.getCurrentFile()?c.getCurrentFile().getAnonymizedXmlForPages(c.pages):
"",b=new TextareaDialog(c,"Paste Data:",b,function(b){if(0<b.length)try{var d=function(b){function c(b){if(null==p[b]){if(p[b]=!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]=
@@ -12086,7 +12084,7 @@ v.getIncomingTreeEdges(l[f]),k=v.getIncomingTreeEdges(c[f]);if(0==m.length&&0<k.
function(c,d,e,f){var g=v.model,k=null;g.beginUpdate();try{if(k=C.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=v.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var G={88:u.actions.get("selectChildren"),84:u.actions.get("selectSubtree"),80:u.actions.get("selectParent"),83:u.actions.get("selectSiblings")},F=u.onKeyDown;u.onKeyDown=function(c){try{if(v.isEnabled()&&
!v.isEditing()&&b(v.getSelectionCell())&&1==v.getSelectionCount()){var d=null;0<v.getIncomingTreeEdges(v.getSelectionCell()).length&&(9==c.which?d=mxEvent.isShiftDown(c)?m(v.getSelectionCell()):p(v.getSelectionCell()):13==c.which&&(d=l(v.getSelectionCell(),!mxEvent.isShiftDown(c))));if(null!=d&&0<d.length)1==d.length&&v.model.isEdge(d[0])?v.setSelectionCell(v.model.getTerminal(d[0],!1)):v.setSelectionCell(d[d.length-1]),null!=u.hoverIcons&&u.hoverIcons.update(v.view.getState(v.getSelectionCell())),
v.startEditingAtCell(v.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(v.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(c)):38==c.keyCode?(t(v.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(c)):39==c.keyCode?(t(v.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(c)):40==c.keyCode&&(t(v.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
-mxEvent.consume(c))}}catch(K){u.handleError(K)}mxEvent.isConsumed(c)||F.apply(this,arguments)};var D=v.connectVertex;v.connectVertex=function(c,d,e,g,k,n,q){var t=v.getIncomingTreeEdges(c);if(b(c)){var u=f(c),y=u==mxConstants.DIRECTION_EAST||u==mxConstants.DIRECTION_WEST,x=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST;return u==d||0==t.length?p(c,d):y==x?m(c):l(c,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)}return D.apply(this,arguments)};v.getSubtree=function(c){var e=
+mxEvent.consume(c))}}catch(K){u.handleError(K)}mxEvent.isConsumed(c)||F.apply(this,arguments)};var D=v.connectVertex;v.connectVertex=function(c,d,e,g,k,n,q){var t=v.getIncomingTreeEdges(c);if(b(c)){var y=f(c),u=y==mxConstants.DIRECTION_EAST||y==mxConstants.DIRECTION_WEST,x=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST;return y==d||0==t.length?p(c,d):u==x?m(c):l(c,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)}return D.apply(this,arguments)};v.getSubtree=function(c){var e=
[c];!d(c)&&!b(c)||n(c)||v.traverse(c,!0,function(b,c){var d=null!=c&&v.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);(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;u.hoverIcons.reset();mxEvent.consume(b)})))};var H=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){H.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 I=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){I.apply(this,
@@ -12115,9 +12113,9 @@ e.className="geTitle",f=document.createElement("span"),f.style.cssText="position
f.style.cssText="position:relative;top:6px;",mxUtils.write(f,mxResources.get("openLibrary")),e.appendChild(f),c.appendChild(e),mxEvent.addListener(e,"click",b.actions.get("openLibrary").funct)):(e=d("newLibrary",mxResources.get("newLibrary")),e.style.boxSizing="border-box",e.style.paddingRight="6px",e.style.paddingLeft="6px",e.style.height="32px",e.style.left="0",e=d("openLibraryFrom",mxResources.get("openLibraryFrom")),e.style.borderLeft="1px solid lightgray",e.style.boxSizing="border-box",e.style.paddingRight=
"6px",e.style.paddingLeft="6px",e.style.height="32px",e.style.left="50%");c.appendChild(b.sidebar.container);c.style.overflow="hidden";return c});b.sidebarWindow.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){b.sidebarWindow.window.fit()}));b.sidebarWindow.window.minimumSize=new mxRectangle(0,0,90,90);b.sidebarWindow.window.setVisible(!0);b.getLocalData("sidebar",function(c){b.sidebar.showEntries(c,null,!0)});b.restoreLibraries()}else b.sidebarWindow.window.setVisible(null!=d?d:!b.sidebarWindow.window.isVisible())}
if("1"==urlParams.lightbox||"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=null;else{var d=0;try{d=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth}catch(y){}var c=function(b,c,d,e,f,g,k){var l=document.createElement("div");l.className="geSidebarContainer";l.style.position="absolute";l.style.width="100%";l.style.height="100%";l.style.border="1px solid whiteSmoke";l.style.overflowX="hidden";l.style.overflowY=
-"auto";k(l);this.window=new mxWindow(c,l,d,e,f,g,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.setLocation=function(b,c){var d=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-this.table.clientWidth-2));c=Math.max(0,Math.min(c,d-this.table.clientHeight-
-2));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};mxClient.IS_SF&&(this.window.div.onselectstart=mxUtils.bind(this,function(c){null==c&&(c=window.event);return null!=c&&b.isSelectionAllowed(c)}))};Editor.checkmarkImage=Graph.createSvgImage(22,18,'<path transform="translate(4 0)" d="M7.181,15.007a1,1,0,0,1-.793-0.391L3.222,10.5A1,1,0,1,1,4.808,9.274L7.132,12.3l6.044-8.86A1,1,0,1,1,14.83,4.569l-6.823,10a1,1,0,0,1-.8.437H7.181Z" fill="#29b6f2"/>').src;mxWindow.prototype.closeImage=
-Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;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"/>');
+"auto";k(l);this.window=new mxWindow(c,l,d,e,f,g,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.setLocation=function(b,c){var d=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,e=this.table.firstChild.firstChild.firstChild;b=Math.max(0,Math.min(b,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-e.clientWidth-2));
+c=Math.max(0,Math.min(c,d-e.clientHeight-2));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};mxClient.IS_SF&&(this.window.div.onselectstart=mxUtils.bind(this,function(c){null==c&&(c=window.event);return null!=c&&b.isSelectionAllowed(c)}))};Editor.checkmarkImage=Graph.createSvgImage(22,18,'<path transform="translate(4 0)" d="M7.181,15.007a1,1,0,0,1-.793-0.391L3.222,10.5A1,1,0,1,1,4.808,9.274L7.132,12.3l6.044-8.86A1,1,0,1,1,14.83,4.569l-6.823,10a1,1,0,0,1-.8.437H7.181Z" fill="#29b6f2"/>').src;
+mxWindow.prototype.closeImage=Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;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 g=document.createElement("link");g.setAttribute("rel","stylesheet");g.setAttribute("href",STYLE_PATH+"/dark.css");g.setAttribute("charset","UTF-8");g.setAttribute("type",
@@ -12154,74 +12152,75 @@ f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.sketchMode}
new ParseDialog(c,"Insert from Text");c.showDialog(b.container,620,420,!0,!1);b.init()}));c.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var b=new ParseDialog(c,"Insert from Text","formatSql");c.showDialog(b.container,620,420,!0,!1);b.init()}));c.actions.put("toggleShapes",new Action(mxResources.get("1"==urlParams.sketch?"moreShapes":"shapes")+"...",function(){e(c)},null,null,Editor.ctrlKey+"+Shift+K"));c.actions.put("toggleFormat",new Action(mxResources.get("format")+
"...",function(){b(c)})).shortcut=c.actions.get("formatPanel").shortcut;EditorUi.enablePlantUml&&!c.isOffline()&&c.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var b=new ParseDialog(c,mxResources.get("plantUml")+"...","plantUml");c.showDialog(b.container,620,420,!0,!1);b.init()}));c.actions.put("mermaid",new Action(mxResources.get("mermaid")+"...",function(){var b=new ParseDialog(c,mxResources.get("mermaid")+"...","mermaid");c.showDialog(b.container,620,420,!0,!1);
b.init()}));var g=this.addPopupMenuCellEditItems;this.put("editCell",new Menu(mxUtils.bind(this,function(b,c){var d=this.editorUi.editor.graph,e=d.getSelectionCell();g.call(this,b,e,null,c);this.addMenuItems(b,["editTooltip"],c);d.model.isVertex(e)&&this.addMenuItems(b,["editGeometry"],c);this.addMenuItems(b,["-","edit"],c)})));this.addPopupMenuCellEditItems=function(b,c,d,e){b.addSeparator();this.addSubmenu("editCell",b,e,mxResources.get("edit"))};this.put("diagram",new Menu(mxUtils.bind(this,function(b,
-d){var e=c.getCurrentFile();c.menus.addSubmenu("extras",b,d,mxResources.get("preferences"));b.addSeparator(d);if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)c.menus.addMenuItems(b,"new open - synchronize - save saveAs -".split(" "),d);else if("1"==urlParams.embed){"1"!=urlParams.noSaveBtn&&"1"!=urlParams.embedInline&&c.menus.addMenuItems(b,["-","save"],d);if("1"==urlParams.saveAndExit||"1"==urlParams.noSaveBtn&&"0"!=urlParams.saveAndExit)c.menus.addMenuItems(b,["saveAndExit"],d),null!=e&&e.isRevisionHistorySupported()&&
-c.menus.addMenuItems(b,["revisionHistory"],d);b.addSeparator(d)}else c.mode==App.MODE_ATLAS?c.menus.addMenuItems(b,["save","synchronize","-"],d):"1"!=urlParams.noFileMenu&&(c.menus.addMenuItems(b,["new"],d),c.menus.addSubmenu("openFrom",b,d),isLocalStorage&&this.addSubmenu("openRecent",b,d),"1"!=urlParams.sketch&&(b.addSeparator(d),null!=e&&e.constructor==DriveFile&&c.menus.addMenuItems(b,["share"],d),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile||c.menus.addMenuItems(b,
-["synchronize"],d)),b.addSeparator(d),c.menus.addSubmenu("save",b,d));c.menus.addSubmenu("exportAs",b,d);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?c.menus.addMenuItems(b,["import"],d):"1"!=urlParams.noFileMenu&&c.menus.addSubmenu("importFrom",b,d);"1"!=urlParams.sketch&&(c.menus.addMenuItems(b,["-","outline"],d),c.commentsSupported()&&c.menus.addMenuItems(b,["comments"],d));c.menus.addMenuItems(b,"- findReplace layers tags - pageSetup".split(" "),d);"1"==urlParams.noFileMenu||mxClient.IS_IOS&&
-navigator.standalone||c.menus.addMenuItems(b,["print"],d);null!=e&&null!=c.fileNode&&"1"!=urlParams.embedInline&&(e=null!=e.getTitle()?e.getTitle():c.defaultFilename,/(\.html)$/i.test(e)||/(\.svg)$/i.test(e)||this.addMenuItems(b,["-","properties"]));b.addSeparator(d);c.menus.addSubmenu("help",b,d);"1"==urlParams.embed?"1"!=urlParams.noExitBtn&&c.menus.addMenuItems(b,["-","exit"],d):"1"!=urlParams.noFileMenu&&c.menus.addMenuItems(b,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(b,
-d){var e=c.getCurrentFile();null!=e&&e.constructor==DriveFile?c.menus.addMenuItems(b,["save","makeCopy","-","rename","moveToFolder"],d):(c.menus.addMenuItems(b,["save","saveAs","-","rename"],d),c.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(b,["upload"],d):c.menus.addMenuItems(b,["makeCopy"],d));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile||c.menus.addMenuItems(b,["-","synchronize"],d);
-c.menus.addMenuItems(b,["-","autosave"],d);null!=e&&e.isRevisionHistorySupported()&&c.menus.addMenuItems(b,["-","revisionHistory"],d)})));var k=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(b,d){k.funct(b,d);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||c.menus.addMenuItems(b,["publishLink"],d);c.mode!=App.MODE_ATLAS&&"1"!=urlParams.extAuth&&(b.addSeparator(d),c.menus.addSubmenu("embed",b,d))})));var l=this.get("language");this.put("table",new Menu(mxUtils.bind(this,
-function(b,d){c.menus.addInsertTableCellItem(b,d)})));var m=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(b,e){m.funct(b,e);this.addMenuItems(b,["editDiagram"],e);"1"==urlParams.sketch&&(b.addSeparator(e),b.addItem(mxResources.get("csv")+"...",null,function(){c.showImportCsvDialog()},e,null,mxUtils.bind(d,d.isEnabled)),c.addInsertMenuItems(b,e,["formatSql","-","fromText","plantUml","mermaid"]))})));this.put("extras",new Menu(mxUtils.bind(this,function(b,d){"1"!=
-urlParams.embed&&"1"!=urlParams.extAuth&&c.menus.addSubmenu("theme",b,d);null!=l&&c.menus.addSubmenu("language",b,d);c.menus.addSubmenu("units",b,d);c.menus.addMenuItems(b,"- pageScale ruler - scrollbars tooltips - copyConnect collapseExpand -".split(" "),d);"1"==urlParams.sketch&&this.addMenuItems(b,["toggleSketchMode"],d);"1"!=urlParams.embedInline&&((Editor.isDarkMode()||!mxClient.IS_IE&&!mxClient.IS_IE11)&&this.addMenuItems(b,["toggleDarkMode"],d),"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&
-c.menus.addMenuItems(b,["-","showStartScreen","search","scratchpad"],d),"1"==urlParams.sketch&&null==urlParams.pages&&this.addMenuItems(b,["togglePagesVisible"],d));b.addSeparator(d);c.menus.addMenuItem(b,"configuration",d);!c.isOfflineApp()&&isLocalStorage&&c.menus.addMenuItem(b,"plugins",d);this.addMenuItems(b,["-","fullscreen"],d);b.addSeparator(d)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(b,d){c.menus.addMenuItems(b,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),
-d)})));mxUtils.bind(this,function(){var b=this.get("insert"),d=b.funct;b.funct=function(b,e){"1"==urlParams.sketch?(c.menus.addMenuItems(b,["insertFreehand"],e),c.insertTemplateEnabled&&!c.isOffline()&&c.menus.addMenuItems(b,["insertTemplate"],e)):(d.apply(this,arguments),c.menus.addSubmenu("table",b,e),b.addSeparator(e));c.menus.addMenuItems(b,["-","toggleShapes"],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 z=!1;EditorUi.prototype.initFormatWindow=function(){if(!z){z=!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 B=EditorUi.prototype.init;EditorUi.prototype.init=function(){function c(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",k.style.width="34px"):mxUtils.write(k,
-b);mxEvent.addListener(k,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(k,"click",function(b){"disabled"!=k.getAttribute("disabled")&&c(b);mxEvent.consume(b)});null==d&&(k.style.marginRight="4px");null!=e&&k.setAttribute("title",e);null!=f&&(b=function(){f.isEnabled()?(k.removeAttribute("disabled"),k.style.cursor="pointer"):(k.setAttribute("disabled","disabled"),k.style.cursor="default")},f.addListener("stateChanged",b),n.addListener("enabledChanged",
-b),b());return k}function g(b,c,d){d=document.createElement("div");d.className="geMenuItem";d.style.display="inline-block";d.style.verticalAlign="top";d.style.marginRight="6px";d.style.padding="0 4px 0 4px";d.style.height="30px";d.style.position="relative";d.style.top="0px";"1"==urlParams.sketch&&(d.style.boxShadow="none");for(var e=0;e<b.length;e++)null!=b[e]&&("1"==urlParams.sketch&&(b[e].style.padding="10px 8px",b[e].style.width="30px"),b[e].style.margin="0px",b[e].style.boxShadow="none",d.appendChild(b[e]));
-null!=c&&mxUtils.setOpacity(d,c);null!=m.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(d,m.statusContainer):p.appendChild(d);return d}function k(){if("1"==urlParams.sketch)"1"!=urlParams.embedInline&&(Y.style.left=58>S.offsetTop-S.offsetHeight/2?"70px":"10px");else{for(var b=p.firstChild;null!=b;){var e=b.nextSibling;"geMenuItem"!=b.className&&"geItem"!=b.className||b.parentNode.removeChild(b);b=e}q=p.firstChild;d=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;
-var b=1E3>d||"1"==urlParams.sketch,k=null;b||(k=c("diagram"));e=b?c("diagram",null,Editor.drawLogoImage):null;null!=e&&(k=e);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);e=c("insert",!0,b?U:null);
-g([e,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<=d&&(g([ea,ga],60),520<=d&&g([ma,640<=d?f("",ia.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",ia,Editor.zoomInImage):null,640<=d?f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",W,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));e=m.menus.get("language");null!=e&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=d&&"1"!=urlParams.sketch?(null==la&&(e=t.addMenu("",e.funct),e.setAttribute("title",mxResources.get("language")),e.className="geToolbarButton",e.style.backgroundImage="url("+Editor.globeImage+")",e.style.backgroundPosition="center center",e.style.backgroundRepeat="no-repeat",e.style.backgroundSize=
-"24px 24px",e.style.position="absolute",e.style.height="24px",e.style.width="24px",e.style.zIndex="1",e.style.right="8px",e.style.cursor="pointer",e.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(e),la=e),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=la&&(la.parentNode.removeChild(la),la=null))}B.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&&this.toggleScratchpad();if("1"!=urlParams.sketch&&1E3<=d||null!=urlParams.clibs||null!=urlParams.libs||
-null!=urlParams["search-shapes"])e(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);this.div.style.left=Math.max(m.embedViewport.x,Math.min(b,m.embedViewport.x+m.embedViewport.width-
-c))+"px";b=parseInt(this.div.offsetTop);c=parseInt(this.div.offsetHeight);this.div.style.top=Math.max(m.embedViewport.y,Math.min(b,m.embedViewport.y+m.embedViewport.height-c))+"px"}};this.keyHandler.bindAction(75,!0,"toggleShapes",!0);("1"==urlParams.sketch||1E3<=d)&&"1"!=urlParams.embedInline&&(b(this,!0),"1"==urlParams.sketch&&(this.initFormatWindow(),this.formatWindow.window.toggleMinimized()));var m=this,n=m.editor.graph;m.toolbar=this.createToolbar(m.createDiv("geToolbar"));m.defaultLibraryName=
-mxResources.get("untitledLibrary");var p=document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(m,p);m.statusContainer=m.createStatusContainer();m.statusContainer.style.position="relative";m.statusContainer.style.maxWidth="";m.statusContainer.style.marginTop="7px";m.statusContainer.style.marginLeft="6px";m.statusContainer.style.color="gray";m.statusContainer.style.cursor="default";var u=m.hideCurrentMenu;m.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};
-var v=m.descriptorChanged;m.descriptorChanged=function(){v.apply(this,arguments);var b=m.getCurrentFile();if(null!=b&&null!=b.getTitle()){var c=b.getMode();"google"==c?c="googleDrive":"github"==c?c="gitHub":"gitlab"==c?c="gitLab":"onedrive"==c&&(c="oneDrive");c=mxResources.get(c);p.setAttribute("title",b.getTitle()+(null!=c?" ("+c+")":""))}else p.removeAttribute("title")};m.setStatusText(m.editor.getStatus());p.appendChild(m.statusContainer);m.buttonContainer=document.createElement("div");m.buttonContainer.style.cssText=
-"position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";p.appendChild(m.buttonContainer);m.menubarContainer=m.buttonContainer;m.tabContainer=document.createElement("div");m.tabContainer.className="geTabContainer";m.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var l=m.diagramContainer.parentNode,x=document.createElement("div");x.style.cssText=
-"position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";if("1"==urlParams.winCtrls&&"1"==urlParams.sketch){x.style.top="20px";m.titlebar=document.createElement("div");m.titlebar.style.cssText="position:absolute;top:0px;left:0px;right:0px;height:20px;overflow:hidden;box-shadow: 0px 0px 2px #c0c0c0;";var z=document.createElement("div");z.style.cssText="max-width: calc(100% - 100px);text-overflow: ellipsis;user-select:none;height:20px;margin: 2px 10px;font-size: 12px;white-space: nowrap;overflow: hidden;";
-m.titlebar.appendChild(z);l.appendChild(m.titlebar)}var A=m.menus.get("viewZoom"),U="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,P="1"==urlParams.sketch?document.createElement("div"):null,S="1"==urlParams.sketch?document.createElement("div"):null,Y="1"==urlParams.sketch?document.createElement("div"):null,z=mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes=
-{},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));n.refresh();n.view.validateBackground()});m.addListener("darkModeChanged",z);m.addListener("sketchModeChanged",z);var ka=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)Y.style.left="10px",Y.style.top="10px",S.style.left="10px",S.style.top="60px",P.style.top="10px",P.style.right="12px",P.style.left="",m.diagramContainer.setAttribute("data-bounds",m.diagramContainer.style.top+" "+m.diagramContainer.style.left+
-" "+m.diagramContainer.style.width+" "+m.diagramContainer.style.height),m.diagramContainer.style.top="0px",m.diagramContainer.style.left="0px",m.diagramContainer.style.bottom="0px",m.diagramContainer.style.right="0px",m.diagramContainer.style.width="",m.diagramContainer.style.height="";else{var b=m.diagramContainer.getAttribute("data-bounds");if(null!=b){m.diagramContainer.style.background="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()}Y.style.left=m.diagramContainer.offsetLeft+"px";Y.style.top=m.diagramContainer.offsetTop-Y.offsetHeight-4+"px";S.style.display="";S.style.left=m.diagramContainer.offsetLeft-
-S.offsetWidth-4+"px";S.style.top=m.diagramContainer.offsetTop+"px";P.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-P.offsetWidth+"px";P.style.top=Y.style.top;P.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";Y.style.visibility="";P.style.visibility=""}),aa=mxUtils.bind(this,function(){ja.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:
-Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";ka()}),z=mxUtils.bind(this,function(){aa();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",aa);m.addListener("editInlineStart",z);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",z);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";Y.style.visibility="hidden";P.style.visibility="hidden";S.style.display="none"}));Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(b){var c=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(c)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(c)&&(null==
-b.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))});if(null!=m.hoverIcons){var ba=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||ba.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){S.className="geToolbarContainer";P.className="geToolbarContainer";Y.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=S;var pa=
-!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){pa||(m.statusContainer.style.display="none")});var fa=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=null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):m.editor.getStatus();fa(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",pa=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display="none",pa=!1)}else m.statusContainer.style.display="inline-block",fa(null),pa=!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";Y.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(d-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 ca=document.createElement("a");ca.style.padding="0px";ca.style.boxShadow="none";ca.className="geMenuItem";ca.style.display="inline-block";ca.style.width="40px";ca.style.height="12px";ca.style.marginBottom="-2px";ca.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+
-")";ca.style.backgroundPosition="top center";ca.style.backgroundRepeat="no-repeat";ca.setAttribute("title","Minimize");var Q=!1,V=mxUtils.bind(this,function(){S.innerHTML="";if(!Q){var b=function(b,c,e){b=f("",b.funct,null,c,b,e);b.style.width="40px";b.style.opacity="0.7";return d(b,null,"pointer")},d=function(b,c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=null!=d?d:"default";b.style.margin="2px 0px";S.appendChild(b);mxUtils.br(S);return b};d(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)");d(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"));d(m.sidebar.createVertexTemplate("rounded=0;whiteSpace=wrap;html=1;",
-160,80,"",mxResources.get("rectangle"),!0,!1,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");d(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;d(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=d(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 e=m.actions.get("toggleShapes");b(e,mxResources.get("shapes")+" ("+e.shortcut+")",U);R=c("table",null,Editor.tableImage);R.style.boxShadow="none";R.style.opacity="0.7";R.style.padding="6px";
-R.style.margin="0px";R.style.width="37px";d(R,null,"pointer");b(m.actions.get("insertTemplate"),mxResources.get("template"),Editor.templateImage)}"1"!=urlParams.embedInline&&S.appendChild(ca)});mxEvent.addListener(ca,"click",mxUtils.bind(this,function(){Q?(mxUtils.setPrefixedStyle(S.style,"transform","translate(0, -50%)"),S.style.padding="8px 6px 4px",S.style.top="50%",S.style.bottom="",S.style.height="",ca.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",ca.style.width="40px",ca.style.height=
-"12px",ca.setAttribute("title","Minimize"),Q=!1,V()):(S.innerHTML="",S.appendChild(ca),mxUtils.setPrefixedStyle(S.style,"transform","translate(0, 0)"),S.style.top="",S.style.bottom="12px",S.style.padding="0px",S.style.height="24px",ca.style.height="24px",ca.style.backgroundImage="url("+Editor.plusImage+")",ca.setAttribute("title",mxResources.get("insert")),ca.style.width="24px",Q=!0)}));V();m.addListener("darkModeChanged",V);m.addListener("sketchModeChanged",V)}else m.editor.addListener("statusChanged",
-mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus())}));if(null!=A){var z=function(b){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)||mxEvent.isShiftDown(b)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},ia=m.actions.get("zoomIn"),W=m.actions.get("zoomOut"),Z=m.actions.get("resetView"),ha=m.actions.get("fullscreen");m.actions.get("toggleDarkMode");var ra=m.actions.get("undo"),X=m.actions.get("redo"),ea=f("",ra.funct,null,mxResources.get("undo")+" ("+ra.shortcut+
-")",ra,Editor.undoImage),ga=f("",X.funct,null,mxResources.get("redo")+" ("+X.shortcut+")",X,Editor.redoImage),ja=f("",ha.funct,null,mxResources.get("fullscreen"),ha,Editor.fullscreenImage);if(null!=P){A=function(){da.style.display=null!=m.pages&&("1"==urlParams.pages||1<m.pages.length||Editor.pagesVisible)?"inline-block":"none"};ja.parentNode.removeChild(ja);var oa=m.actions.get("delete"),ua=f("",oa.funct,null,mxResources.get("delete"),oa,Editor.trashImage);ua.style.opacity="0.1";Y.appendChild(ua);
-oa.addListener("stateChanged",function(){ua.style.opacity=oa.enabled?"":"0.1"});Z=function(){ea.style.display=0<m.editor.undoManager.history.length||n.isEditing()?"inline-block":"none";ga.style.display=ea.style.display;ea.style.opacity=ra.enabled?"":"0.1";ga.style.opacity=X.enabled?"":"0.1"};Y.appendChild(ea);Y.appendChild(ga);ra.addListener("stateChanged",Z);X.addListener("stateChanged",Z);Z();null!=urlParams.layers&&(Z=m.actions.get("layers"),Z=f("",Z.funct,null,mxResources.get("layers"),Z,Editor.layersImage),
-Z.style.opacity="0.4",P.appendChild(Z));null!=urlParams.tags&&(Z=m.actions.get("tags"),Z=f("",Z.funct,null,mxResources.get("tags"),Z,Editor.tagsImage),Z.style.opacity="0.4",P.appendChild(Z));Z=m.actions.get("outline");Z=f("",Z.funct,null,mxResources.get("outline"),Z,Editor.outlineImage);P.appendChild(Z);Z=f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",W,Editor.zoomOutImage);P.appendChild(Z);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";P.appendChild(R);mxEvent.addListener(R,"click",z);z=f("",ia.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",ia,
-Editor.zoomInImage);P.appendChild(z);"1"==urlParams.embedInline&&(P.appendChild(ja),z=m.actions.get("exit"),P.appendChild(f("",z.funct,null,mxResources.get("exit"),z,Editor.closeImage)));var da=this.createPageMenuTab(!1);da.style.display="none";da.style.position="";da.style.marginLeft="";da.style.top="";da.style.left="";da.style.height="100%";da.style.lineHeight="";da.style.borderStyle="none";da.style.padding="3px 0";da.style.margin="0px";da.style.background="";da.style.border="";da.style.boxShadow=
-"none";da.style.verticalAlign="top";da.firstChild.style.height="100%";da.firstChild.style.opacity="0.6";da.firstChild.style.margin="0px";P.appendChild(da);m.addListener("fileDescriptorChanged",A);m.addListener("pagesVisibleChanged",A);A();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;";
-Y.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;";P.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(Y);x.appendChild(P);S.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;";
-x.appendChild(S);window.setTimeout(function(){mxUtils.setPrefixedStyle(S.style,"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(x)}else{var ma=f("",z,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",Z,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=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 sa=m.setGraphEnabled;m.setGraphEnabled=function(){sa.apply(this,arguments);null!=this.tabContainer&&(R.style.visibility=
-this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==P?this.tabContainerHeight+"px":"0px")}}x.appendChild(p);x.appendChild(m.diagramContainer);l.appendChild(x);m.updateTabContainer();null==P&&x.appendChild(m.tabContainer);var la=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";S.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 qa=null,ta=null,va=null,xa=null;mxEvent.addGestureListeners(l,function(b){xa=parseInt(m.diagramContainer.style.height);ta=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){va=parseInt(m.diagramContainer.style.width);qa=mxEvent.getClientX(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});mxEvent.addGestureListeners(document.body,null,function(b){var c=!1;null!=qa&&(m.diagramContainer.style.width=Math.max(20,va+mxEvent.getClientX(b)-qa)+"px",c=!0);null!=ta&&(m.diagramContainer.style.height=Math.max(20,
-xa+mxEvent.getClientY(b)-ta)+"px",c=!0);c&&((window.opener||window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:m.diagramContainer.getBoundingClientRect()}),"*"),ka(),m.refresh())},function(b){null==qa&&null==ta||mxEvent.consume(b);ta=qa=null});this.diagramContainer.style.borderRadius="4px";document.body.style.backgroundColor="transparent";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";Y.style.visibility="hidden";P.style.visibility=
-"hidden";S.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,u=this.graph.getView().scale,v=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=[],A=[],z=0;z<this.states.length;z++){var B=this.states[z];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>
+d){var e=c.getCurrentFile();c.menus.addSubmenu("extras",b,d,mxResources.get("preferences"));b.addSeparator(d);if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)c.menus.addMenuItems(b,"new open - synchronize - save saveAs -".split(" "),d);else if("1"==urlParams.embed||c.mode==App.MODE_ATLAS){"1"!=urlParams.noSaveBtn&&"1"!=urlParams.embedInline&&c.menus.addMenuItems(b,["-","save"],d);if("1"==urlParams.saveAndExit||"1"==urlParams.noSaveBtn&&"0"!=urlParams.saveAndExit||c.mode==App.MODE_ATLAS)c.menus.addMenuItems(b,
+["saveAndExit"],d),null!=e&&e.isRevisionHistorySupported()&&c.menus.addMenuItems(b,["revisionHistory"],d);b.addSeparator(d)}else c.mode==App.MODE_ATLAS?c.menus.addMenuItems(b,["save","synchronize","-"],d):"1"!=urlParams.noFileMenu&&(c.menus.addMenuItems(b,["new"],d),c.menus.addSubmenu("openFrom",b,d),isLocalStorage&&this.addSubmenu("openRecent",b,d),"1"!=urlParams.sketch&&(b.addSeparator(d),null!=e&&e.constructor==DriveFile&&c.menus.addMenuItems(b,["share"],d),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
+null==e||e.constructor==LocalFile||c.menus.addMenuItems(b,["synchronize"],d)),b.addSeparator(d),c.menus.addSubmenu("save",b,d));c.menus.addSubmenu("exportAs",b,d);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?c.menus.addMenuItems(b,["import"],d):"1"!=urlParams.noFileMenu&&c.menus.addSubmenu("importFrom",b,d);"1"!=urlParams.sketch&&(c.menus.addMenuItems(b,["-","outline"],d),c.commentsSupported()&&c.menus.addMenuItems(b,["comments"],d));c.menus.addMenuItems(b,"- findReplace layers tags - pageSetup".split(" "),
+d);"1"==urlParams.noFileMenu||mxClient.IS_IOS&&navigator.standalone||c.menus.addMenuItems(b,["print"],d);null!=e&&null!=c.fileNode&&"1"!=urlParams.embedInline&&(e=null!=e.getTitle()?e.getTitle():c.defaultFilename,/(\.html)$/i.test(e)||/(\.svg)$/i.test(e)||this.addMenuItems(b,["-","properties"]));b.addSeparator(d);c.menus.addSubmenu("help",b,d);"1"==urlParams.embed||c.mode==App.MODE_ATLAS?"1"==urlParams.noExitBtn&&c.mode!=App.MODE_ATLAS||c.menus.addMenuItems(b,["-","exit"],d):"1"!=urlParams.noFileMenu&&
+c.menus.addMenuItems(b,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(b,d){var e=c.getCurrentFile();null!=e&&e.constructor==DriveFile?c.menus.addMenuItems(b,["save","makeCopy","-","rename","moveToFolder"],d):(c.menus.addMenuItems(b,["save","saveAs","-","rename"],d),c.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(b,["upload"],d):c.menus.addMenuItems(b,["makeCopy"],d));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
+null==e||e.constructor==LocalFile||c.menus.addMenuItems(b,["-","synchronize"],d);c.menus.addMenuItems(b,["-","autosave"],d);null!=e&&e.isRevisionHistorySupported()&&c.menus.addMenuItems(b,["-","revisionHistory"],d)})));var k=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(b,d){k.funct(b,d);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||c.menus.addMenuItems(b,["publishLink"],d);c.mode!=App.MODE_ATLAS&&"1"!=urlParams.extAuth&&(b.addSeparator(d),c.menus.addSubmenu("embed",
+b,d))})));var l=this.get("language");this.put("table",new Menu(mxUtils.bind(this,function(b,d){c.menus.addInsertTableCellItem(b,d)})));var m=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(b,e){m.funct(b,e);this.addMenuItems(b,["editDiagram"],e);"1"==urlParams.sketch&&(b.addSeparator(e),b.addItem(mxResources.get("csv")+"...",null,function(){c.showImportCsvDialog()},e,null,mxUtils.bind(d,d.isEnabled)),c.addInsertMenuItems(b,e,["formatSql","-","fromText","plantUml",
+"mermaid"]))})));this.put("extras",new Menu(mxUtils.bind(this,function(b,d){"1"!=urlParams.embed&&"1"!=urlParams.extAuth&&c.menus.addSubmenu("theme",b,d);null!=l&&c.menus.addSubmenu("language",b,d);c.menus.addSubmenu("units",b,d);c.menus.addMenuItems(b,"- pageScale ruler - scrollbars tooltips - copyConnect collapseExpand -".split(" "),d);"1"!=urlParams.embedInline&&("1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&c.menus.addMenuItems(b,["-","showStartScreen","search","scratchpad"],
+d),"1"==urlParams.sketch&&null==urlParams.pages&&this.addMenuItems(b,["togglePagesVisible"],d));b.addSeparator(d);c.menus.addMenuItem(b,"configuration",d);!c.isOfflineApp()&&isLocalStorage&&c.mode!=App.MODE_ATLAS&&c.menus.addMenuItem(b,"plugins",d);this.addMenuItems(b,["-","fullscreen"],d);(Editor.isDarkMode()||!mxClient.IS_IE&&!mxClient.IS_IE11)&&this.addMenuItems(b,["toggleDarkMode"],d);"1"==urlParams.sketch&&this.addMenuItems(b,["-","toggleSketchMode"],d);b.addSeparator(d)})));this.put("insertAdvanced",
+new Menu(mxUtils.bind(this,function(b,d){c.menus.addMenuItems(b,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),d)})));mxUtils.bind(this,function(){var b=this.get("insert"),d=b.funct;b.funct=function(b,e){"1"==urlParams.sketch?(c.menus.addMenuItems(b,["insertFreehand"],e),c.insertTemplateEnabled&&!c.isOffline()&&c.menus.addMenuItems(b,["insertTemplate"],e)):(d.apply(this,arguments),c.menus.addSubmenu("table",b,e),b.addSeparator(e));c.menus.addMenuItems(b,["-",
+"toggleShapes"],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 z=!1;EditorUi.prototype.initFormatWindow=
+function(){if(!z){z=!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 B=EditorUi.prototype.init;EditorUi.prototype.init=function(){function c(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",k.style.width="34px"):mxUtils.write(k,b);mxEvent.addListener(k,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(k,"click",function(b){"disabled"!=k.getAttribute("disabled")&&c(b);mxEvent.consume(b)});
+null==d&&(k.style.marginRight="4px");null!=e&&k.setAttribute("title",e);null!=f&&(b=function(){f.isEnabled()?(k.removeAttribute("disabled"),k.style.cursor="pointer"):(k.setAttribute("disabled","disabled"),k.style.cursor="default")},f.addListener("stateChanged",b),n.addListener("enabledChanged",b),b());return k}function g(b,c,d){d=document.createElement("div");d.className="geMenuItem";d.style.display="inline-block";d.style.verticalAlign="top";d.style.marginRight="6px";d.style.padding="0 4px 0 4px";
+d.style.height="30px";d.style.position="relative";d.style.top="0px";"1"==urlParams.sketch&&(d.style.boxShadow="none");for(var e=0;e<b.length;e++)null!=b[e]&&("1"==urlParams.sketch&&(b[e].style.padding="10px 8px",b[e].style.width="30px"),b[e].style.margin="0px",b[e].style.boxShadow="none",d.appendChild(b[e]));null!=c&&mxUtils.setOpacity(d,c);null!=m.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(d,m.statusContainer):p.appendChild(d);return d}function k(){if("1"==urlParams.sketch)"1"!=urlParams.embedInline&&
+(Y.style.left=58>S.offsetTop-S.offsetHeight/2?"70px":"10px");else{for(var b=p.firstChild;null!=b;){var e=b.nextSibling;"geMenuItem"!=b.className&&"geItem"!=b.className||b.parentNode.removeChild(b);b=e}q=p.firstChild;d=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var b=1E3>d||"1"==urlParams.sketch,k=null;b||(k=c("diagram"));e=b?c("diagram",null,Editor.drawLogoImage):null;null!=e&&(k=e);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);e=c("insert",!0,b?U:null);g([e,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<=d&&(g([ea,ga],60),520<=d&&g([ma,640<=d?f("",ia.funct,!0,mxResources.get("zoomIn")+
+" ("+Editor.ctrlKey+" +)",ia,Editor.zoomInImage):null,640<=d?f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",W,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));e=m.menus.get("language");null!=e&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&
+600<=d&&"1"!=urlParams.sketch?(null==la&&(e=t.addMenu("",e.funct),e.setAttribute("title",mxResources.get("language")),e.className="geToolbarButton",e.style.backgroundImage="url("+Editor.globeImage+")",e.style.backgroundPosition="center center",e.style.backgroundRepeat="no-repeat",e.style.backgroundSize="24px 24px",e.style.position="absolute",e.style.height="24px",e.style.width="24px",e.style.zIndex="1",e.style.right="8px",e.style.cursor="pointer",e.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(e),
+la=e),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=la&&(la.parentNode.removeChild(la),la=null))}B.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&&this.toggleScratchpad();if("1"!=urlParams.sketch&&1E3<=d||null!=urlParams.clibs||null!=urlParams.libs||null!=urlParams["search-shapes"])e(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);this.div.style.left=Math.max(m.embedViewport.x,Math.min(b,m.embedViewport.x+m.embedViewport.width-c))+"px";b=parseInt(this.div.offsetTop);c=parseInt(this.div.offsetHeight);this.div.style.top=Math.max(m.embedViewport.y,Math.min(b,m.embedViewport.y+m.embedViewport.height-c))+"px"}};this.keyHandler.bindAction(75,!0,"toggleShapes",!0);("1"==urlParams.sketch||1E3<=d)&&"1"!=urlParams.embedInline&&
+(b(this,!0),"1"==urlParams.sketch&&(this.initFormatWindow(),this.formatWindow.window.toggleMinimized()));var m=this,n=m.editor.graph;m.toolbar=this.createToolbar(m.createDiv("geToolbar"));m.defaultLibraryName=mxResources.get("untitledLibrary");var p=document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(m,p);m.statusContainer=m.createStatusContainer();m.statusContainer.style.position="relative";m.statusContainer.style.maxWidth="";m.statusContainer.style.marginTop=
+"7px";m.statusContainer.style.marginLeft="6px";m.statusContainer.style.color="gray";m.statusContainer.style.cursor="default";var u=m.hideCurrentMenu;m.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=m.descriptorChanged;m.descriptorChanged=function(){v.apply(this,arguments);var b=m.getCurrentFile();if(null!=b&&null!=b.getTitle()){var c=b.getMode();"google"==c?c="googleDrive":"github"==c?c="gitHub":"gitlab"==c?c="gitLab":"onedrive"==c&&(c="oneDrive");
+c=mxResources.get(c);p.setAttribute("title",b.getTitle()+(null!=c?" ("+c+")":""))}else p.removeAttribute("title")};m.setStatusText(m.editor.getStatus());p.appendChild(m.statusContainer);m.buttonContainer=document.createElement("div");m.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";p.appendChild(m.buttonContainer);m.menubarContainer=m.buttonContainer;m.tabContainer=document.createElement("div");m.tabContainer.className=
+"geTabContainer";m.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var l=m.diagramContainer.parentNode,x=document.createElement("div");x.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";if("1"==urlParams.winCtrls&&"1"==urlParams.sketch){x.style.top="20px";m.titlebar=document.createElement("div");m.titlebar.style.cssText=
+"position:absolute;top:0px;left:0px;right:0px;height:20px;overflow:hidden;box-shadow: 0px 0px 2px #c0c0c0;";var z=document.createElement("div");z.style.cssText="max-width: calc(100% - 100px);text-overflow: ellipsis;user-select:none;height:20px;margin: 2px 10px;font-size: 12px;white-space: nowrap;overflow: hidden;";m.titlebar.appendChild(z);l.appendChild(m.titlebar)}var A=m.menus.get("viewZoom"),U="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,P="1"==urlParams.sketch?document.createElement("div"):
+null,S="1"==urlParams.sketch?document.createElement("div"):null,Y="1"==urlParams.sketch?document.createElement("div"):null,z=mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));n.refresh();n.view.validateBackground()});m.addListener("darkModeChanged",z);m.addListener("sketchModeChanged",
+z);var ka=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)Y.style.left="10px",Y.style.top="10px",S.style.left="10px",S.style.top="60px",P.style.top="10px",P.style.right="12px",P.style.left="",m.diagramContainer.setAttribute("data-bounds",m.diagramContainer.style.top+" "+m.diagramContainer.style.left+" "+m.diagramContainer.style.width+" "+m.diagramContainer.style.height),m.diagramContainer.style.top="0px",m.diagramContainer.style.left="0px",m.diagramContainer.style.bottom="0px",m.diagramContainer.style.right=
+"0px",m.diagramContainer.style.width="",m.diagramContainer.style.height="";else{var b=m.diagramContainer.getAttribute("data-bounds");if(null!=b){m.diagramContainer.style.background="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()}Y.style.left=m.diagramContainer.offsetLeft+"px";Y.style.top=m.diagramContainer.offsetTop-Y.offsetHeight-4+"px";S.style.display="";S.style.left=m.diagramContainer.offsetLeft-S.offsetWidth-4+"px";S.style.top=m.diagramContainer.offsetTop+"px";P.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-P.offsetWidth+"px";P.style.top=Y.style.top;
+P.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";Y.style.visibility="";P.style.visibility=""}),aa=mxUtils.bind(this,function(){ja.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";ka()}),z=mxUtils.bind(this,
+function(){aa();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",aa);m.addListener("editInlineStart",z);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",z);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";Y.style.visibility="hidden";P.style.visibility="hidden";S.style.display="none"}));Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(b){var c=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(c)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(c)&&(null==b.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))});if(null!=m.hoverIcons){var ba=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||ba.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){S.className="geToolbarContainer";P.className="geToolbarContainer";Y.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=S;var pa=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){pa||(m.statusContainer.style.display="none")});
+var fa=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=
+null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):m.editor.getStatus();fa(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",pa=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display=
+"none",pa=!1)}else m.statusContainer.style.display="inline-block",fa(null),pa=!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";Y.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(d-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 ca=document.createElement("a");ca.style.padding="0px";ca.style.boxShadow="none";ca.className="geMenuItem";ca.style.display="inline-block";ca.style.width="40px";ca.style.height="12px";ca.style.marginBottom="-2px";ca.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";ca.style.backgroundPosition="top center";ca.style.backgroundRepeat="no-repeat";ca.setAttribute("title","Minimize");var Q=!1,V=mxUtils.bind(this,function(){S.innerHTML="";if(!Q){var b=function(b,c,e){b=
+f("",b.funct,null,c,b,e);b.style.width="40px";b.style.opacity="0.7";return d(b,null,"pointer")},d=function(b,c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=null!=d?d:"default";b.style.margin="2px 0px";S.appendChild(b);mxUtils.br(S);return b};d(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)");
+d(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"));d(m.sidebar.createVertexTemplate("rounded=0;whiteSpace=wrap;html=1;",160,80,"",mxResources.get("rectangle"),!0,!1,null,!0),mxResources.get("rectangle")+" ("+
+Editor.ctrlKey+"+K)");d(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;d(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=d(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 e=m.actions.get("toggleShapes");b(e,mxResources.get("shapes")+" ("+e.shortcut+")",U);R=c("table",null,Editor.tableImage);R.style.boxShadow="none";R.style.opacity="0.7";R.style.padding="6px";R.style.margin="0px";R.style.width="37px";d(R,null,"pointer");b(m.actions.get("insertTemplate"),
+mxResources.get("template"),Editor.templateImage)}"1"!=urlParams.embedInline&&S.appendChild(ca)});mxEvent.addListener(ca,"click",mxUtils.bind(this,function(){Q?(mxUtils.setPrefixedStyle(S.style,"transform","translate(0, -50%)"),S.style.padding="8px 6px 4px",S.style.top="50%",S.style.bottom="",S.style.height="",ca.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",ca.style.width="40px",ca.style.height="12px",ca.setAttribute("title","Minimize"),Q=!1,V()):(S.innerHTML="",S.appendChild(ca),
+mxUtils.setPrefixedStyle(S.style,"transform","translate(0, 0)"),S.style.top="",S.style.bottom="12px",S.style.padding="0px",S.style.height="24px",ca.style.height="24px",ca.style.backgroundImage="url("+Editor.plusImage+")",ca.setAttribute("title",mxResources.get("insert")),ca.style.width="24px",Q=!0)}));V();m.addListener("darkModeChanged",V);m.addListener("sketchModeChanged",V)}else m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus())}));if(null!=A){var z=
+function(b){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)||mxEvent.isShiftDown(b)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},ia=m.actions.get("zoomIn"),W=m.actions.get("zoomOut"),Z=m.actions.get("resetView"),ha=m.actions.get("fullscreen");m.actions.get("toggleDarkMode");var ra=m.actions.get("undo"),X=m.actions.get("redo"),ea=f("",ra.funct,null,mxResources.get("undo")+" ("+ra.shortcut+")",ra,Editor.undoImage),ga=f("",X.funct,null,mxResources.get("redo")+" ("+X.shortcut+
+")",X,Editor.redoImage),ja=f("",ha.funct,null,mxResources.get("fullscreen"),ha,Editor.fullscreenImage);if(null!=P){A=function(){da.style.display=null!=m.pages&&("1"==urlParams.pages||1<m.pages.length||Editor.pagesVisible)?"inline-block":"none"};ja.parentNode.removeChild(ja);var oa=m.actions.get("delete"),ua=f("",oa.funct,null,mxResources.get("delete"),oa,Editor.trashImage);ua.style.opacity="0.1";Y.appendChild(ua);oa.addListener("stateChanged",function(){ua.style.opacity=oa.enabled?"":"0.1"});Z=function(){ea.style.display=
+0<m.editor.undoManager.history.length||n.isEditing()?"inline-block":"none";ga.style.display=ea.style.display;ea.style.opacity=ra.enabled?"":"0.1";ga.style.opacity=X.enabled?"":"0.1"};Y.appendChild(ea);Y.appendChild(ga);ra.addListener("stateChanged",Z);X.addListener("stateChanged",Z);Z();null!=urlParams.layers&&(Z=m.actions.get("layers"),Z=f("",Z.funct,null,mxResources.get("layers"),Z,Editor.layersImage),Z.style.opacity="0.4",P.appendChild(Z));null!=urlParams.tags&&(Z=m.actions.get("tags"),Z=f("",
+Z.funct,null,mxResources.get("tags"),Z,Editor.tagsImage),Z.style.opacity="0.4",P.appendChild(Z));Z=m.actions.get("outline");Z=f("",Z.funct,null,mxResources.get("outline"),Z,Editor.outlineImage);P.appendChild(Z);Z=f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",W,Editor.zoomOutImage);P.appendChild(Z);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";P.appendChild(R);mxEvent.addListener(R,"click",z);z=f("",ia.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",ia,Editor.zoomInImage);P.appendChild(z);"1"==urlParams.embedInline&&(P.appendChild(ja),z=m.actions.get("exit"),
+P.appendChild(f("",z.funct,null,mxResources.get("exit"),z,Editor.closeImage)));var da=this.createPageMenuTab(!1);da.style.display="none";da.style.position="";da.style.marginLeft="";da.style.top="";da.style.left="";da.style.height="100%";da.style.lineHeight="";da.style.borderStyle="none";da.style.padding="3px 0";da.style.margin="0px";da.style.background="";da.style.border="";da.style.boxShadow="none";da.style.verticalAlign="top";da.firstChild.style.height="100%";da.firstChild.style.opacity="0.6";da.firstChild.style.margin=
+"0px";P.appendChild(da);m.addListener("fileDescriptorChanged",A);m.addListener("pagesVisibleChanged",A);A();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;";Y.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;";
+P.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(Y);x.appendChild(P);S.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;";x.appendChild(S);window.setTimeout(function(){mxUtils.setPrefixedStyle(S.style,
+"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(x)}else{var ma=f("",z,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",Z,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=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 sa=m.setGraphEnabled;m.setGraphEnabled=function(){sa.apply(this,arguments);null!=this.tabContainer&&(R.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom=
+"hidden"!=this.tabContainer.style.visibility&&null==P?this.tabContainerHeight+"px":"0px")}}x.appendChild(p);x.appendChild(m.diagramContainer);l.appendChild(x);m.updateTabContainer();null==P&&x.appendChild(m.tabContainer);var la=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";S.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 qa=null,ta=null,va=null,xa=null;mxEvent.addGestureListeners(l,function(b){xa=parseInt(m.diagramContainer.style.height);ta=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){va=parseInt(m.diagramContainer.style.width);qa=mxEvent.getClientX(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});mxEvent.addGestureListeners(document.body,null,function(b){var c=!1;null!=qa&&(m.diagramContainer.style.width=Math.max(20,va+mxEvent.getClientX(b)-qa)+"px",c=!0);null!=ta&&(m.diagramContainer.style.height=Math.max(20,xa+mxEvent.getClientY(b)-ta)+"px",c=!0);c&&((window.opener||
+window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:m.diagramContainer.getBoundingClientRect()}),"*"),ka(),m.refresh())},function(b){null==qa&&null==ta||mxEvent.consume(b);ta=qa=null});this.diagramContainer.style.borderRadius="4px";document.body.style.backgroundColor="transparent";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";Y.style.visibility="hidden";P.style.visibility="hidden";S.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,u=this.graph.getView().scale,v=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=[],A=[],z=0;z<this.states.length;z++){var B=this.states[z];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)&&A.push(B))}var y=0,C=0,G=B=0,F=0,D=0,E=0,H=0,I=5*u;if(1<x.length){x.push(t);x.sort(function(b,c){return b.y-c.y});var L=!1,z=t==x[0],u=t==x[x.length-1];if(!z&&!u)for(z=1;z<x.length-1;z++)if(t==x[z]){u=x[z-1];z=x[z+1];B=C=G=(z.y-u.y-u.height-t.height)/2;break}for(z=0;z<x.length-1;z++){var u=x[z],M=x[z+1],N=t==u||t==M,M=M.y-u.y-u.height,L=L|t==u;if(0==C&&
0==y)C=M,y=1;else if(Math.abs(C-M)<=(N||1==z&&L?v:0))y+=1;else if(1<y&&L){x=x.slice(0,z+1);break}else if(3<=x.length-z&&!L)y=0,B=C=0!=G?G:0,x.splice(0,0==z?1:z),z=-1;else break;0!=B||N||(C=B=M)}3==x.length&&x[1]==t&&(B=0)}if(1<A.length){A.push(t);A.sort(function(b,c){return b.x-c.x});L=!1;z=t==A[0];u=t==A[A.length-1];if(!z&&!u)for(z=1;z<A.length-1;z++)if(t==A[z]){u=A[z-1];z=A[z+1];E=D=H=(z.x-u.x-u.width-t.width)/2;break}for(z=0;z<A.length-1;z++){u=A[z];M=A[z+1];N=t==u||t==M;M=M.x-u.x-u.width;L|=t==
u;if(0==D&&0==F)D=M,F=1;else if(Math.abs(D-M)<=(N||1==z&&L?v:0))F+=1;else if(1<F&&L){A=A.slice(0,z+1);break}else if(3<=A.length-z&&!L)F=0,E=D=0!=H?H:0,A.splice(0,0==z?1:z),z=-1;else break;0!=E||N||(D=E=M)}3==A.length&&A[1]==t&&(E=0)}v=function(b,c,d,e){var f=[],g;e?(e=I,g=0):(e=0,g=I);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,
diff --git a/src/main/webapp/js/diagramly/Editor.js b/src/main/webapp/js/diagramly/Editor.js
index 1ffcb73f..a1176ad6 100644
--- a/src/main/webapp/js/diagramly/Editor.js
+++ b/src/main/webapp/js/diagramly/Editor.js
@@ -2329,7 +2329,6 @@
{
var node = mxUtils.parseXml(tmp).documentElement;
-
return node.nodeName == 'mxfile' || node.nodeName == 'mxGraphModel';
}
}
@@ -5853,9 +5852,9 @@
* Adds support for custom fonts in cell styles.
*/
var graphPostProcessCellStyle = Graph.prototype.postProcessCellStyle;
- Graph.prototype.postProcessCellStyle = function(style)
+ Graph.prototype.postProcessCellStyle = function(cell, style)
{
- this.replaceDefaultColors(style);
+ this.replaceDefaultColors(cell, style);
return Graph.processFontStyle(graphPostProcessCellStyle.apply(this, arguments));
};
@@ -5863,7 +5862,7 @@
/**
* Replaces default colors.
*/
- Graph.prototype.replaceDefaultColors = function(style)
+ Graph.prototype.replaceDefaultColors = function(cell, style)
{
if (style != null)
{
diff --git a/src/main/webapp/js/diagramly/EditorUi.js b/src/main/webapp/js/diagramly/EditorUi.js
index adac10e7..cb4a1b58 100644
--- a/src/main/webapp/js/diagramly/EditorUi.js
+++ b/src/main/webapp/js/diagramly/EditorUi.js
@@ -1527,7 +1527,8 @@
{
var graphGetGlobalVariable = graph.getGlobalVariable;
graph = this.createTemporaryGraph(darkTheme ?
- graph.getDefaultStylesheet() : graph.getStylesheet());
+ graph.getDefaultStylesheet() :
+ graph.getStylesheet());
graph.setBackgroundImage = this.editor.graph.setBackgroundImage;
var page = this.pages[0];
@@ -1857,8 +1858,8 @@
* @param {number} dx X-coordinate of the translation.
* @param {number} dy Y-coordinate of the translation.
*/
- EditorUi.prototype.downloadFile = function(format, uncompressed, addShadow, ignoreSelection, currentPage,
- pageVisible, transparent, scale, border, grid, includeXml, pageRange)
+ EditorUi.prototype.downloadFile = function(format, uncompressed, addShadow, ignoreSelection,
+ currentPage, pageVisible, transparent, scale, border, grid, includeXml, pageRange)
{
try
{
@@ -9261,8 +9262,14 @@
this.defaultThemeName == 'darkTheme')
{
var temp = this.stylesheet;
+ var tempFg = this.shapeForegroundColor;
+ var tempBg = this.shapeBackgroundColor;
this.stylesheet = this.getDefaultStylesheet();
+ this.shapeBackgroundColor = '#ffffff';
+ this.shapeForegroundColor = '#000000';
result = ui.createImageForPageLink(result.originalSrc);
+ this.shapeBackgroundColor = tempBg;
+ this.shapeForegroundColor = tempFg;
this.stylesheet = temp;
}
}
diff --git a/src/main/webapp/js/diagramly/Menus.js b/src/main/webapp/js/diagramly/Menus.js
index e0bd1a3d..66ca6dcf 100644
--- a/src/main/webapp/js/diagramly/Menus.js
+++ b/src/main/webapp/js/diagramly/Menus.js
@@ -1541,7 +1541,6 @@
editorUi.checkForUpdates();
});
- console.log('electron help menu');
this.addMenuItems(menu, ['-', 'keyboardShortcuts', 'quickStart',
'website', 'support', '-'], parent);
diff --git a/src/main/webapp/js/diagramly/Minimal.js b/src/main/webapp/js/diagramly/Minimal.js
index 93c866ea..28301aa7 100644
--- a/src/main/webapp/js/diagramly/Minimal.js
+++ b/src/main/webapp/js/diagramly/Minimal.js
@@ -52,8 +52,9 @@ EditorUi.initMinimalTheme = function()
var iiw = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
var ih = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
- x = Math.max(0, Math.min(x, iiw - this.table.clientWidth - 2));
- y = Math.max(0, Math.min(y, ih - this.table.clientHeight - 2));
+ var title = this.table.firstChild.firstChild.firstChild;
+ x = Math.max(0, Math.min(x, iiw - title.clientWidth - 2));
+ y = Math.max(0, Math.min(y, ih - title.clientHeight - 2));
if (this.getX() != x || this.getY() != y)
{
@@ -1059,7 +1060,7 @@ EditorUi.initMinimalTheme = function()
ui.menus.addMenuItems(menu, ['new', 'open', '-', 'synchronize',
'-', 'save', 'saveAs', '-'], parent);
}
- else if (urlParams['embed'] == '1')
+ else if (urlParams['embed'] == '1' || ui.mode == App.MODE_ATLAS)
{
if (urlParams['noSaveBtn'] != '1' &&
urlParams['embedInline'] != '1')
@@ -1069,7 +1070,7 @@ EditorUi.initMinimalTheme = function()
if (urlParams['saveAndExit'] == '1' ||
(urlParams['noSaveBtn'] == '1' &&
- urlParams['saveAndExit'] != '0'))
+ urlParams['saveAndExit'] != '0') || ui.mode == App.MODE_ATLAS)
{
ui.menus.addMenuItems(menu, ['saveAndExit'], parent);
@@ -1160,9 +1161,9 @@ EditorUi.initMinimalTheme = function()
menu.addSeparator(parent);
ui.menus.addSubmenu('help', menu, parent);
- if (urlParams['embed'] == '1')
+ if (urlParams['embed'] == '1' || ui.mode == App.MODE_ATLAS)
{
- if (urlParams['noExitBtn'] != '1')
+ if (urlParams['noExitBtn'] != '1' || ui.mode == App.MODE_ATLAS)
{
ui.menus.addMenuItems(menu, ['-', 'exit'], parent);
}
@@ -1281,18 +1282,8 @@ EditorUi.initMinimalTheme = function()
ui.menus.addMenuItems(menu, ['-', 'pageScale', 'ruler', '-', 'scrollbars',
'tooltips', '-', 'copyConnect', 'collapseExpand', '-'], parent);
- if (urlParams['sketch'] == '1')
- {
- this.addMenuItems(menu, ['toggleSketchMode'], parent);
- }
-
if (urlParams['embedInline'] != '1')
{
- if (Editor.isDarkMode() || (!mxClient.IS_IE && !mxClient.IS_IE11))
- {
- this.addMenuItems(menu, ['toggleDarkMode'], parent);
- }
-
if (urlParams['embed'] != '1' && (isLocalStorage || mxClient.IS_CHROMEAPP))
{
ui.menus.addMenuItems(menu, ['-', 'showStartScreen', 'search', 'scratchpad'], parent);
@@ -1307,13 +1298,23 @@ EditorUi.initMinimalTheme = function()
menu.addSeparator(parent);
ui.menus.addMenuItem(menu, 'configuration', parent);
- if (!ui.isOfflineApp() && isLocalStorage)
+ if (!ui.isOfflineApp() && isLocalStorage && ui.mode != App.MODE_ATLAS)
{
ui.menus.addMenuItem(menu, 'plugins', parent);
}
this.addMenuItems(menu, ['-', 'fullscreen'], parent);
+ if (Editor.isDarkMode() || (!mxClient.IS_IE && !mxClient.IS_IE11))
+ {
+ this.addMenuItems(menu, ['toggleDarkMode'], parent);
+ }
+
+ if (urlParams['sketch'] == '1')
+ {
+ this.addMenuItems(menu, ['-', 'toggleSketchMode'], parent);
+ }
+
// Adds trailing separator in case new plugin entries are added
menu.addSeparator(parent);
})));
diff --git a/src/main/webapp/js/diagramly/sidebar/Sidebar-GCPIcons.js b/src/main/webapp/js/diagramly/sidebar/Sidebar-GCPIcons.js
index 3adee726..1a2c2380 100644
--- a/src/main/webapp/js/diagramly/sidebar/Sidebar-GCPIcons.js
+++ b/src/main/webapp/js/diagramly/sidebar/Sidebar-GCPIcons.js
@@ -461,7 +461,7 @@
var fns = [
this.createVertexTemplateEntry(
- 'editableCssRules=.*;shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAuMjc2MDcyMDExNzIwOTQiIGhlaWdodD0iOTguODE4MjYyNTYzNDc3NTMiIHZpZXdCb3g9IjAgMCAxMDAuMjc2MDYyMDExNzE4NzUgOTguODE4MjUyNTYzNDc2NTYiIHZlcnNpb249IjEuMSIgaWQ9InN2ZzUiIGlua3NjYXBlOnZlcnNpb249IjEuMSAoYzY4ZTIyYzM4NywgMjAyMS0wNS0yMykiIHNvZGlwb2RpOmRvY25hbWU9InRyYWZmaWNfZGlyZWN0b3Iuc3ZnIj4mI3hhOyAgPHNvZGlwb2RpOm5hbWVkdmlldyBpZD0ibmFtZWR2aWV3NyIgcGFnZWNvbG9yPSIjZmZmZmZmIiBib3JkZXJjb2xvcj0iIzY2NjY2NiIgYm9yZGVyb3BhY2l0eT0iMS4wIiBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIiBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIiBpbmtzY2FwZTpwYWdlY2hlY2tlcmJvYXJkPSIwIiBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0ibW0iIHNob3dncmlkPSJmYWxzZSIgaW5rc2NhcGU6em9vbT0iMS4xNTg2NzQ5IiBpbmtzY2FwZTpjeD0iMzEuNTAxNTAzIiBpbmtzY2FwZTpjeT0iMTM3LjY1NzI1IiBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE5MjAiIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMTciIGlua3NjYXBlOndpbmRvdy14PSItOCIgaW5rc2NhcGU6d2luZG93LXk9Ii04IiBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIiBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJsYXllcjEiIGZpdC1tYXJnaW4tdG9wPSIwIiBmaXQtbWFyZ2luLWxlZnQ9IjAiIGZpdC1tYXJnaW4tcmlnaHQ9IjAiIGZpdC1tYXJnaW4tYm90dG9tPSIwIi8+JiN4YTsgIDxkZWZzIGlkPSJkZWZzMiIvPiYjeGE7ICA8ZyBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIgaWQ9ImxheWVyMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjY3LjAzNzc3LDEyLjI0OTMpIj4mI3hhOyAgICA8cGF0aCBpZD0icGF0aDIzNDEzIiBzdHlsZT0iY29sb3I6IzAwMDAwMDtvcGFjaXR5OjE7ZmlsbDojNDI4NWY0O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDozLjc3OTUzOy1pbmtzY2FwZS1zdHJva2U6bm9uZSIgZD0iTSA1NS4wMTk1MzEsOTIuNTYyNSAtMC4yMTQ4NDM3NSwxMzAuMTA1NDcgNTUuMDE5NTMxLDE2Ny42NDg0NCB2IC0xNy43MzI0MiBjIDEzLjM5NzQwOCw1LjMwMjA4IDI5LjExOTAxOCwxMy44MzAwMyA0Mi40Mjk2ODgsMjUuODgwODYgMTkuNzQ1OTkxLDE3Ljg3NzA0IDM0LjkwMjM0MSw0Mi4zMzI2MiAzNC45MDIzNDEsNzkuMjM2MzIgdiA0My41ODM5OSBoIDM3Ljc5NDkyIFYgMjU1LjAzMzIgYyAwLC00Ny43ODk3MiAtMjEuNDM0NTUsLTgzLjgxMTUzIC00Ny4zMzIwMywtMTA3LjI1NzgxIC0yMi40MDc1NywtMjAuMjg2NzEgLTQ3LjU5MzExLC0zMi4wMTI5OCAtNjcuNzk0OTE5LC0zNy44ODQ3NyB6IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjI2NDU4MzMzLDAsMCwwLjI2NDU4MzMzLC0yNjYuOTgwOTMsLTExLjk2NDA0NikiLz4mI3hhOyAgICA8cGF0aCBpZD0icGF0aDIzNDE5IiBzdHlsZT0ib3BhY2l0eToxO2ZpbGw6IzY2OWRmNjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC45OTk5OTlweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjI2NDU4MzMzLDAsMCwwLjI2NDU4MzMzLC0yNjYuOTgwOTMsLTExLjk2NDA0NikiIGQ9Ik0gMjA3LjIyNjU2LDY5LjA0Njg3NSBWIDMxOC41NzQyMiBoIC0xNy4xMzg2NyBsIDM4LjUxMzY3LDUzLjgzMzk4IDM4LjUxMzY3LC01My44MzM5OCBIIDI0NS4wMjE0OCBWIDY5LjA0Njg3NSBaIG0gLTU2LjQwODIsLTcwLjEyNSAtMzYuNjc5NjksNTIuNzUzOTA2IGggMTguMjEyODkgViAyOTguNjE3MTkgaCAzNy43OTQ5MiBWIDUxLjY3NTc4MSBoIDE3LjM1MTU3IHoiLz4mI3hhOyAgICA8cGF0aCBpZD0icGF0aDIzNDE1IiBzdHlsZT0iY29sb3I6IzAwMDAwMDtvcGFjaXR5OjE7ZmlsbDojYWVjYmZhO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDozLjc3OTUzOy1pbmtzY2FwZS1zdHJva2U6bm9uZSIgZD0ibSAyMDcuMjI2NTYsNjkuMDQ2ODc1IHYgNDguNzU3ODE1IGMgMCw1MC44ODc0OCAyNS4zOTI5Miw4Ny40ODc2IDUzLjExMTMzLDExMC4wNzgxMiAyMi4zOTQ2OCwxOC4yNTE2OCA0NS45MDc0MywyOC4zODQwOCA2Mi4wMzcxMSwzMy41NDg4MyB2IDE3Ljg0NTcgTCAzNzguNzgxMjUsMjQzLjEwMTU2IDMyMi4zNzUsMjA2LjkyNzczIHYgMTQuMDgwMDggYyAtMTEuNTAyODIsLTQuODI5MDUgLTI1LjU4NjQyLC0xMi4xNzMwNCAtMzguMTY0MDYsLTIyLjQyMzgzIC0yMS41MzUwMywtMTcuNTUxMDYgLTM5LjE4OTQ2LC00MS45ODkyMSAtMzkuMTg5NDYsLTgwLjc3OTI5IFYgNjkuMDQ2ODc1IFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuMjY0NTgzMzMsMCwwLDAuMjY0NTgzMzMsLTI2Ni45ODA5MywtMTEuOTY0MDQ2KSIvPiYjeGE7ICA8L2c+JiN4YTs8L3N2Zz4=;',
+ 'editableCssRules=.*;shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjM3OC45OTYwMDM2OTA5NDU4IiBoZWlnaHQ9IjM3My40ODg4MDkyODIxODgyNCIgdmlld0JveD0iMCAwIDEwMC4yNzYwMDA5NzY1NjI1IDk4LjgxOTAwNzg3MzUzNTE2Ij4mI3hhOzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+JiN4YTsJLnN0MHtmaWxsOiM0Mjg1ZjQ7fSYjeGE7CS5zdDF7ZmlsbDojNjY5ZGY2O30mI3hhOwkuc3Qye2ZpbGw6I2FlY2JmYTt9JiN4YTs8L3N0eWxlPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNC42MTQgMjQuNzc1TDAgMzQuNzA5bDE0LjYxNCA5LjkzM1YzOS45NWMzLjU0NSAxLjQwMyA3LjcwNCAzLjY1OSAxMS4yMjYgNi44NDggNS4yMjQgNC43MyA5LjIzNSAxMS4yIDkuMjM1IDIwLjk2NXYxMS41MzJoMTBWNjcuNzYyYzAtMTIuNjQ0LTUuNjcxLTIyLjE3NS0xMi41MjMtMjguMzc5LTUuOTI5LTUuMzY4LTEyLjU5Mi04LjQ3LTE3LjkzNy0xMC4wMjR6Ii8+JiN4YTsJPHBhdGggY2xhc3M9InN0MSIgZD0iTTU0Ljg4NiAxOC41NTR2NjYuMDIxaC00LjUzNWwxMC4xOSAxNC4yNDQgMTAuMTktMTQuMjQ0aC01Ljg0NlYxOC41NTR6TTM5Ljk2MSAwbC05LjcwNSAxMy45NThoNC44MTl2NjUuMzM2aDEwVjEzLjk1N2g0LjU5MXoiLz4mI3hhOwk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNNTQuODg2IDE4LjU1NHYxMi45YzAgMTMuNDY0IDYuNzE5IDIzLjE0OCAxNC4wNTIgMjkuMTI1IDUuOTI1IDQuODI5IDEyLjE0NiA3LjUxIDE2LjQxNCA4Ljg3NnY0LjcyMmwxNC45MjQtOS41NzEtMTQuOTI0LTkuNTcxdjMuNzI1Yy0zLjA0My0xLjI3OC02Ljc3LTMuMjIxLTEwLjA5OC01LjkzMy01LjY5OC00LjY0NC0xMC4zNjktMTEuMTEtMTAuMzY5LTIxLjM3M3YtMTIuOXoiLz4mI3hhOzwvc3ZnPg==;',
s * 0.2, s * 0.2, '', 'Taffic Director', null, null, this.getTagsForStencil(gn, '', dt + 'traffic director').join(' ')),
this.createVertexTemplateEntry(
'editableCssRules=.*;shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjQxNiIgaGVpZ2h0PSIzNjIuMjAwMDEyMjA3MDMxMjUiIHZpZXdCb3g9IjAgMCA0MTYgMzYyLjIwMDAxMjIwNzAzMTI1Ij4mI3hhOwk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPiYjeGE7CS5zdDB7ZmlsbDojNDI4NWY0O30mI3hhOwkuc3Qxe2ZpbGw6IzY2OWRmNjt9JiN4YTsJLnN0MntmaWxsOiNhZWNiZmE7fSYjeGE7CTwvc3R5bGU+JiN4YTsJPHBhdGggY2xhc3M9InN0MiIgZD0iTTk2LjAzIDBMMCAxNjcuMTdoMTkwLjY3TDI4Ny45NCAweiIvPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yODcuNTkgMzYyLjJsLTk1LjY4LTE2Ny4xN0gwTDk1LjY4IDM2Mi4yeiIvPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik00MTYgMTgxLjFMMzIwIDEzLjMxIDIyMy44OCAxODEuMSAzMjAgMzQ4Ljl6Ii8+JiN4YTs8L3N2Zz4=;',
diff --git a/src/main/webapp/js/grapheditor/EditorUi.js b/src/main/webapp/js/grapheditor/EditorUi.js
index fa0a0e92..d21fa95c 100644
--- a/src/main/webapp/js/grapheditor/EditorUi.js
+++ b/src/main/webapp/js/grapheditor/EditorUi.js
@@ -94,60 +94,29 @@ EditorUi = function(editor, container, lightbox)
{
try
{
- var state = graph.view.getState(cell);
-
- if (state != null)
+ var style = graph.getCellStyle(cell, false);
+ var values = [];
+ var keys = [];
+
+ for (var key in style)
{
- // Ignores default styles
- var clone = cell.clone();
- clone.style = ''
- var defaultStyle = graph.getCellStyle(clone);
- var values = [];
- var keys = [];
-
- for (var key in state.style)
- {
- if (defaultStyle[key] != state.style[key])
- {
- values.push(state.style[key]);
- keys.push(key);
- }
- }
-
- // Handles special case for value "none"
- var cellStyle = graph.getModel().getStyle(state.cell);
- var tokens = (cellStyle != null) ? cellStyle.split(';') : [];
-
- for (var i = 0; i < tokens.length; i++)
- {
- var tmp = tokens[i];
- var pos = tmp.indexOf('=');
-
- if (pos >= 0)
- {
- var key = tmp.substring(0, pos);
- var value = tmp.substring(pos + 1);
-
- if (defaultStyle[key] != null && value == 'none')
- {
- values.push(value);
- keys.push(key);
- }
- }
- }
-
- // Resets current style
- if (graph.getModel().isEdge(state.cell))
- {
- graph.currentEdgeStyle = {};
- }
- else
- {
- graph.currentVertexStyle = {}
- }
-
- this.fireEvent(new mxEventObject('styleChanged', 'keys', keys, 'values', values, 'cells', [state.cell]));
+ values.push(style[key]);
+ keys.push(key);
}
+
+ // Resets current style
+ if (graph.getModel().isEdge(cell))
+ {
+ graph.currentEdgeStyle = {};
+ }
+ else
+ {
+ graph.currentVertexStyle = {}
+ }
+
+ this.fireEvent(new mxEventObject('styleChanged',
+ 'keys', keys, 'values', values,
+ 'cells', [cell]));
}
catch (e)
{
@@ -233,7 +202,6 @@ EditorUi = function(editor, container, lightbox)
for (var i = 0; i < cells.length; i++)
{
var cell = cells[i];
-
var appliedStyles;
if (asText)
@@ -304,15 +272,15 @@ EditorUi = function(editor, container, lightbox)
}
}
}
-
- if (Editor.simpleLabels)
- {
- newStyle = mxUtils.setStyle(mxUtils.setStyle(
- newStyle, 'html', null), 'whiteSpace', null);
- }
-
- model.setStyle(cell, newStyle);
}
+
+ if (Editor.simpleLabels)
+ {
+ newStyle = mxUtils.setStyle(mxUtils.setStyle(
+ newStyle, 'html', null), 'whiteSpace', null);
+ }
+
+ model.setStyle(cell, newStyle);
}
finally
{
diff --git a/src/main/webapp/js/grapheditor/Format.js b/src/main/webapp/js/grapheditor/Format.js
index ae809605..92e44f16 100644
--- a/src/main/webapp/js/grapheditor/Format.js
+++ b/src/main/webapp/js/grapheditor/Format.js
@@ -4819,7 +4819,7 @@ StyleFormatPanel.prototype.addFill = function(container)
}
}, function(color)
{
- graph.updateCellStyles(mxConstants.STYLE_GRADIENTCOLOR, color, graph.getSelectionCells());
+ graph.updateCellStyles({'gradientColor': color}, graph.getSelectionCells());
});
var fillKey = (ss.style.shape == 'image') ? mxConstants.STYLE_IMAGE_BACKGROUND : mxConstants.STYLE_FILLCOLOR;
@@ -5978,7 +5978,7 @@ DiagramStylePanel.prototype.addView = function(div)
delete graph.currentVertexStyle['sketch'];
}
- graph.updateCellStyles('sketch', (checked) ? '1' : null, graph.getVerticesAndEdges());
+ graph.updateCellStyles({'sketch': (checked) ? '1' : null}, graph.getVerticesAndEdges());
}, null, function(div)
{
div.style.width = 'auto';
@@ -6003,7 +6003,7 @@ DiagramStylePanel.prototype.addView = function(div)
delete graph.currentVertexStyle['rounded'];
}
- graph.updateCellStyles('rounded', (checked) ? '1' : '0', graph.getVerticesAndEdges());
+ graph.updateCellStyles({'rounded': (checked) ? '1' : '0'}, graph.getVerticesAndEdges());
}, null, function(div)
{
div.style.width = 'auto';
@@ -6033,7 +6033,7 @@ DiagramStylePanel.prototype.addView = function(div)
delete graph.currentEdgeStyle['curved'];
}
- graph.updateCellStyles('curved', (checked) ? '1' : null, graph.getVerticesAndEdges(false, true));
+ graph.updateCellStyles({'curved': (checked) ? '1' : null}, graph.getVerticesAndEdges(false, true));
}, null, function(div)
{
div.style.width = 'auto';
@@ -6058,8 +6058,8 @@ DiagramStylePanel.prototype.addView = function(div)
// Handles special label background color
if (style['labelBackgroundColor'] != null)
{
- graph.updateCellStyles('labelBackgroundColor', (graphStyle != null) ?
- graphStyle.background : null, [cells[i]]);
+ graph.updateCellStyles({'labelBackgroundColor': (graphStyle != null) ?
+ graphStyle.background : null}, [cells[i]]);
}
var edge = model.isEdge(cells[i]);
@@ -6150,9 +6150,8 @@ DiagramStylePanel.prototype.addView = function(div)
model.beginUpdate();
try
{
- graph.updateCellStyles('sketch', null, all);
- graph.updateCellStyles('rounded', null, all);
- graph.updateCellStyles('curved', null, graph.getVerticesAndEdges(false, true));
+ graph.updateCellStyles({'sketch': null, 'rounded': null}, all);
+ graph.updateCellStyles({'curved': null}, graph.getVerticesAndEdges(false, true));
}
finally
{
@@ -6191,9 +6190,10 @@ DiagramStylePanel.prototype.addView = function(div)
graph2.setPanning(false);
graph2.setEnabled(false);
- graph2.getCellStyle = function(cell)
+ graph2.getCellStyle = function(cell, resolve)
{
- var result = mxUtils.clone(Graph.prototype.getCellStyle.apply(this, arguments));
+ resolve = (resolve != null) ? resolve : true;
+ var result = mxUtils.clone(graph.getCellStyle.apply(this, arguments));
var defaultStyle = graph.stylesheet.getDefaultVertexStyle();
var appliedStyle = vertexStyle;
@@ -6207,9 +6207,9 @@ DiagramStylePanel.prototype.addView = function(div)
applyStyle(commonStyle, result, cell, graphStyle, graph2);
applyStyle(appliedStyle, result, cell, graphStyle, graph2);
- if (result != null)
+ if (resolve)
{
- result = this.postProcessCellStyle(result);
+ result = graph.postProcessCellStyle(cell, result);
}
return result;
@@ -6349,8 +6349,9 @@ DiagramStylePanel.prototype.addView = function(div)
graph.view.gridColor = (graphStyle != null && graphStyle.gridColor != null) ?
graphStyle.gridColor : graph.view.defaultGridColor;
- graph.getCellStyle = function(cell)
+ graph.getCellStyle = function(cell, resolve)
{
+ resolve = (resolve != null) ? resolve : true;
var result = mxUtils.clone(prev.apply(this, arguments));
var defaultStyle = graph.stylesheet.getDefaultVertexStyle();
@@ -6366,9 +6367,9 @@ DiagramStylePanel.prototype.addView = function(div)
applyStyle(commonStyle, result, cell, graphStyle);
applyStyle(appliedStyle, result, cell, graphStyle);
- if (result != null)
+ if (resolve)
{
- result = this.postProcessCellStyle(result);
+ result = this.postProcessCellStyle(cell, result);
}
return result;
diff --git a/src/main/webapp/js/grapheditor/Graph.js b/src/main/webapp/js/grapheditor/Graph.js
index 3437b530..343a1822 100644
--- a/src/main/webapp/js/grapheditor/Graph.js
+++ b/src/main/webapp/js/grapheditor/Graph.js
@@ -1591,6 +1591,20 @@ Graph.fadeNodes = function(nodes, start, end, done, delay)
};
/**
+ * Removes the elements from the map where the given function returns true.
+ */
+Graph.removeKeys = function(map, ignoreFn)
+{
+ for (var key in map)
+ {
+ if (ignoreFn(key))
+ {
+ delete map[key];
+ }
+ }
+};
+
+/**
* Sets the transition for the given nodes.
*/
Graph.setTransitionForNodes = function(nodes, transition)
@@ -2273,65 +2287,53 @@ Graph.prototype.init = function(container)
return cell;
};
-
+
/**
- * Returns true if fast zoom preview should be used.
+ * Returns the style of the given cell as an object.
*/
Graph.prototype.copyStyle = function(cell)
{
- var style = null;
-
- if (cell != null)
- {
- style = mxUtils.clone(this.getCurrentCellStyle(cell));
-
- // Handles special case for value "none"
- var cellStyle = this.model.getStyle(cell);
- var tokens = (cellStyle != null) ? cellStyle.split(';') : [];
-
- for (var j = 0; j < tokens.length; j++)
- {
- var tmp = tokens[j];
- var pos = tmp.indexOf('=');
-
- if (pos >= 0)
- {
- var key = tmp.substring(0, pos);
- var value = tmp.substring(pos + 1);
-
- if (style[key] == null && value == mxConstants.NONE)
- {
- style[key] = mxConstants.NONE;
- }
- }
- }
- }
-
- return style;
+ return this.getCellStyle(cell, false);
};
-
+
/**
* Returns true if fast zoom preview should be used.
*/
Graph.prototype.pasteStyle = function(style, cells, keys)
{
keys = (keys != null) ? keys : Graph.pasteStyles;
-
+
+ Graph.removeKeys(style, function(key)
+ {
+ return mxUtils.indexOf(keys, key) < 0;
+ });
+
+ this.updateCellStyles(style, cells);
+ };
+
+ /**
+ * Removes implicit styles from cell styles so that dark mode works using the
+ * default values from the stylesheet.
+ */
+ Graph.prototype.updateCellStyles = function(style, cells)
+ {
this.model.beginUpdate();
try
{
for (var i = 0; i < cells.length; i++)
{
- var temp = this.getCurrentCellStyle(cells[i]);
-
- for (var j = 0; j < keys.length; j++)
+ if (this.model.isVertex(cells[i]) || this.model.isEdge(cells[i]))
{
- var current = temp[keys[j]];
- var value = style[keys[j]];
-
- if (current != value && (current != null || value != mxConstants.NONE))
+ var cellStyle = this.getCellStyle(cells[i], false);
+
+ for (var key in style)
{
- this.setCellStyles(keys[j], value, [cells[i]]);
+ var value = style[key];
+
+ if (cellStyle[key] != value)
+ {
+ this.setCellStyles(key, value, [cells[i]]);
+ }
}
}
}
@@ -4280,7 +4282,7 @@ Graph.prototype.getLinkTargetForCell = function(cell)
{
return cell.value.getAttribute('linkTarget');
}
-
+
return null;
};
@@ -4288,10 +4290,8 @@ Graph.prototype.getLinkTargetForCell = function(cell)
* Overrides label orientation for collapsed swimlanes inside stack and
* for partial rectangles inside tables.
*/
-Graph.prototype.getCellStyle = function(cell)
+Graph.prototype.postProcessCellStyle = function(cell, style)
{
- var style = mxGraph.prototype.getCellStyle.apply(this, arguments);
-
if (cell != null && this.layoutManager != null)
{
var parent = this.model.getParent(cell);
@@ -7383,7 +7383,7 @@ if (typeof mxVertexHandler != 'undefined')
state.style[key] = this.graph.currentEdgeStyle[key];
}
- state.style = this.graph.postProcessCellStyle(state.style);
+ state.style = this.graph.postProcessCellStyle(state.cell, state.style);
return state;
};
@@ -7490,36 +7490,6 @@ if (typeof mxVertexHandler != 'undefined')
return style;
};
-
- /**
- * Removes implicit styles from cell styles so that dark mode works using the
- * default values from the stylesheet.
- */
- Graph.prototype.updateCellStyles = function(key, value, cells)
- {
- this.model.beginUpdate();
- try
- {
- for (var i = 0; i < cells.length; i++)
- {
- if (this.model.isVertex(cells[i]) || this.model.isEdge(cells[i]))
- {
- this.setCellStyles(key, null, [cells[i]]);
- var style = this.getCellStyle(cells[i]);
- var temp = style[key];
-
- if (value != ((temp == null) ? mxConstants.NONE : temp))
- {
- this.setCellStyles(key, value, [cells[i]]);
- }
- }
- }
- }
- finally
- {
- this.model.endUpdate();
- }
- };
/**
* Hook for subclassers.
diff --git a/src/main/webapp/js/grapheditor/Shapes.js b/src/main/webapp/js/grapheditor/Shapes.js
index b850cc22..f54eab89 100644
--- a/src/main/webapp/js/grapheditor/Shapes.js
+++ b/src/main/webapp/js/grapheditor/Shapes.js
@@ -3390,6 +3390,7 @@
c.pointerEvents = pointerEvents;
c.setStrokeColor(this.stroke);
+ c.setLineCap('square');
c.begin();
c.moveTo(x, y);
@@ -3427,6 +3428,7 @@
c.end();
c.stroke();
+ c.setLineCap('flat');
}
};
diff --git a/src/main/webapp/js/viewer-static.min.js b/src/main/webapp/js/viewer-static.min.js
index ecd03771..a3c018cd 100644
--- a/src/main/webapp/js/viewer-static.min.js
+++ b/src/main/webapp/js/viewer-static.min.js
@@ -202,7 +202,7 @@ null!=a&&(DRAWIO_GITLAB_ID=a);window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";a=
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:"15.9.1",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:"15.9.3",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),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]"!==document.createElementNS("http://www.w3.org/2000/svg","foreignObject").toString()||0<=navigator.userAgent.indexOf("Opera/"),
@@ -1047,7 +1047,7 @@ mxPrintPreview.prototype.getAppendices=function(){return null};mxPrintPreview.pr
mxStylesheet.prototype.createDefaultVertexStyle=function(){var a={};a[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_RECTANGLE;a[mxConstants.STYLE_PERIMETER]=mxPerimeter.RectanglePerimeter;a[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE;a[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER;a[mxConstants.STYLE_FILLCOLOR]="#C3D9FF";a[mxConstants.STYLE_STROKECOLOR]="#6482B9";a[mxConstants.STYLE_FONTCOLOR]="#774400";return a};
mxStylesheet.prototype.createDefaultEdgeStyle=function(){var a={};a[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_CONNECTOR;a[mxConstants.STYLE_ENDARROW]=mxConstants.ARROW_CLASSIC;a[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE;a[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER;a[mxConstants.STYLE_STROKECOLOR]="#6482B9";a[mxConstants.STYLE_FONTCOLOR]="#446299";return a};mxStylesheet.prototype.putDefaultVertexStyle=function(a){this.putCellStyle("defaultVertex",a)};
mxStylesheet.prototype.putDefaultEdgeStyle=function(a){this.putCellStyle("defaultEdge",a)};mxStylesheet.prototype.getDefaultVertexStyle=function(){return this.styles.defaultVertex};mxStylesheet.prototype.getDefaultEdgeStyle=function(){return this.styles.defaultEdge};mxStylesheet.prototype.putCellStyle=function(a,b){this.styles[a]=b};
-mxStylesheet.prototype.getCellStyle=function(a,b){var c=b;if(null!=a&&0<a.length)for(var d=a.split(";"),c=null!=c&&";"!=a.charAt(0)?mxUtils.clone(c):{},e=0;e<d.length;e++){var f=d[e],g=f.indexOf("=");if(0<=g){var k=f.substring(0,g),f=f.substring(g+1);f==mxConstants.NONE?delete c[k]:mxUtils.isNumeric(f)?c[k]=parseFloat(f):c[k]=f}else if(f=this.styles[f],null!=f)for(k in f)c[k]=f[k]}return c};
+mxStylesheet.prototype.getCellStyle=function(a,b,c){c=null!=c?c:!0;if(null!=a&&0<a.length){var d=a.split(";");b=null!=b&&";"!=a.charAt(0)?mxUtils.clone(b):{};for(a=0;a<d.length;a++){var e=d[a],f=e.indexOf("=");if(0<=f){var g=e.substring(0,f),e=e.substring(f+1);e==mxConstants.NONE&&c?delete b[g]:mxUtils.isNumeric(e)?b[g]=parseFloat(e):b[g]=e}else if(e=this.styles[e],null!=e)for(g in e)b[g]=e[g]}}return b};
function mxCellState(a,b,c){this.view=a;this.cell=b;this.style=null!=c?c:{};this.origin=new mxPoint;this.absoluteOffset=new mxPoint}mxCellState.prototype=new mxRectangle;mxCellState.prototype.constructor=mxCellState;mxCellState.prototype.view=null;mxCellState.prototype.cell=null;mxCellState.prototype.style=null;mxCellState.prototype.invalidStyle=!1;mxCellState.prototype.invalid=!0;mxCellState.prototype.origin=null;mxCellState.prototype.absolutePoints=null;mxCellState.prototype.absoluteOffset=null;
mxCellState.prototype.visibleSourceState=null;mxCellState.prototype.visibleTargetState=null;mxCellState.prototype.terminalDistance=0;mxCellState.prototype.length=0;mxCellState.prototype.segments=null;mxCellState.prototype.shape=null;mxCellState.prototype.text=null;mxCellState.prototype.unscaledWidth=null;mxCellState.prototype.unscaledHeight=null;
mxCellState.prototype.getPerimeterBounds=function(a,b){a=a||0;b=null!=b?b:new mxRectangle(this.x,this.y,this.width,this.height);if(null!=this.shape&&null!=this.shape.stencil&&"fixed"==this.shape.stencil.aspect){var c=this.shape.stencil.computeAspect(this.style,b.x,b.y,b.width,b.height);b.x=c.x;b.y=c.y;b.width=this.shape.stencil.w0*c.width;b.height=this.shape.stencil.h0*c.height}0!=a&&b.grow(a);return b};
@@ -1308,8 +1308,8 @@ b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mx
mxGraph.prototype.updatePageBreaks=function(a,b,c){b=this.view.scale;c=this.view.translate;var d=this.pageFormat,e=b*this.pageScale,f=new mxRectangle(0,0,d.width*e,d.height*e),d=mxRectangle.fromRectangle(this.getGraphBounds());d.width=Math.max(1,d.width);d.height=Math.max(1,d.height);f.x=Math.floor((d.x-c.x*b)/f.width)*f.width+c.x*b;f.y=Math.floor((d.y-c.y*b)/f.height)*f.height+c.y*b;d.width=Math.ceil((d.width+(d.x-f.x))/f.width)*f.width;d.height=Math.ceil((d.height+(d.y-f.y))/f.height)*f.height;
var g=(a=a&&Math.min(f.width,f.height)>this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,k=a?Math.ceil(d.width/f.width)+1:0,l=(k-1)*f.width,m=(g-1)*f.height;null==this.horizontalPageBreaks&&0<g&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<k&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?g:k,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(f.x),Math.round(f.y+c*f.height)),new mxPoint(Math.round(f.x+
l),Math.round(f.y+c*f.height))]:[new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y)),new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y+m))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.pointerEvents=!1,d.isDashed=this.pageBreakDashed,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
-mxGraph.prototype.getCurrentCellStyle=function(a,b){var c=b?null:this.view.getState(a);return null!=c?c.style:this.getCellStyle(a)};mxGraph.prototype.getCellStyle=function(a){var b=this.model.getStyle(a);a=this.model.isEdge(a)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();null!=b&&(a=this.postProcessCellStyle(this.stylesheet.getCellStyle(b,a)));null==a&&(a={});return a};
-mxGraph.prototype.postProcessCellStyle=function(a){if(null!=a){var b=a[mxConstants.STYLE_IMAGE],c=this.getImageFromBundles(b);null!=c?a[mxConstants.STYLE_IMAGE]=c:c=b;null!=c&&"data:image/"==c.substring(0,11)&&("data:image/svg+xml,<"==c.substring(0,20)?c=c.substring(0,19)+encodeURIComponent(c.substring(19)):"data:image/svg+xml,%3C"!=c.substring(0,22)&&(b=c.indexOf(","),0<b&&";base64,"!=c.substring(b-7,b+1)&&(c=c.substring(0,b)+";base64,"+c.substring(b+1))),a[mxConstants.STYLE_IMAGE]=c)}return a};
+mxGraph.prototype.getCurrentCellStyle=function(a,b){var c=b?null:this.view.getState(a);return null!=c?c.style:this.getCellStyle(a)};mxGraph.prototype.getCellStyle=function(a,b){b=null!=b?b:!0;var c=this.model.getStyle(a),d;d=this.model.isEdge(a)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();null!=c?d=this.stylesheet.getCellStyle(c,d,b):null!=d&&(d=mxUtils.clone(d));null==d?d={}:b&&(d=this.postProcessCellStyle(a,d));return d};
+mxGraph.prototype.postProcessCellStyle=function(a,b){if(null!=b){var c=b[mxConstants.STYLE_IMAGE],d=this.getImageFromBundles(c);null!=d?b[mxConstants.STYLE_IMAGE]=d:d=c;null!=d&&"data:image/"==d.substring(0,11)&&("data:image/svg+xml,<"==d.substring(0,20)?d=d.substring(0,19)+encodeURIComponent(d.substring(19)):"data:image/svg+xml,%3C"!=d.substring(0,22)&&(c=d.indexOf(","),0<c&&";base64,"!=d.substring(c-7,c+1)&&(d=d.substring(0,c)+";base64,"+d.substring(c+1))),b[mxConstants.STYLE_IMAGE]=d)}return b};
mxGraph.prototype.setCellStyle=function(a,b){b=b||this.getSelectionCells();if(null!=b){this.model.beginUpdate();try{for(var c=0;c<b.length;c++)this.model.setStyle(b[c],a)}finally{this.model.endUpdate()}}};mxGraph.prototype.toggleCellStyle=function(a,b,c){c=c||this.getSelectionCell();return this.toggleCellStyles(a,b,[c])};
mxGraph.prototype.toggleCellStyles=function(a,b,c){b=null!=b?b:!1;c=c||this.getEditableCells(this.getSelectionCells());var d=null;null!=c&&0<c.length&&(d=this.getCurrentCellStyle(c[0]),d=mxUtils.getValue(d,a,b)?0:1,this.setCellStyles(a,d,c));return d};mxGraph.prototype.setCellStyles=function(a,b,c){c=c||this.getEditableCells(this.getSelectionCells());mxUtils.setCellStyles(this.model,c,a,b)};mxGraph.prototype.toggleCellStyleFlags=function(a,b,c){this.setCellStyleFlags(a,b,null,c)};
mxGraph.prototype.setCellStyleFlags=function(a,b,c,d){d=d||this.getEditableCells(this.getSelectionCells());null!=d&&0<d.length&&(null==c&&(c=this.getCurrentCellStyle(d[0]),c=(parseInt(c[a]||0)&b)!=b),mxUtils.setCellStyleFlags(this.model,d,a,b,c))};mxGraph.prototype.getOriginForCell=function(a){a=this.model.getParent(a);for(var b=new mxPoint;null!=a;){var c=this.getCellGeometry(a);null==c||c.relative||(b.x+=c.x,b.y+=c.y);a=this.model.getParent(a)}return b};
@@ -2125,7 +2125,7 @@ mxGraphView.prototype.validateBackgroundStyles=function(){var b=this.graph,d=nul
")";var f=g=0;null!=b.view.backgroundPageShape&&(f=this.getBackgroundPageBounds(),g=1+f.x,f=1+f.y);e=-Math.round(e-mxUtils.mod(this.translate.x*this.scale-g,e))+"px "+-Math.round(e-mxUtils.mod(this.translate.y*this.scale-f,e))+"px"}g=b.view.canvas;null!=g.ownerSVGElement&&(g=g.ownerSVGElement);null!=b.view.backgroundPageShape?(b.view.backgroundPageShape.node.style.backgroundPosition=e,b.view.backgroundPageShape.node.style.backgroundImage=c,b.view.backgroundPageShape.node.style.backgroundColor=d,b.view.backgroundPageShape.node.style.borderColor=
b.defaultPageBorderColor,b.container.className="geDiagramContainer geDiagramBackdrop",g.style.backgroundImage="none",g.style.backgroundColor=""):(b.container.className="geDiagramContainer",g.style.backgroundPosition=e,g.style.backgroundColor=d,g.style.backgroundImage=c)};mxGraphView.prototype.createSvgGrid=function(b){for(var d=this.graph.gridSize*this.scale;d<this.minGridSize;)d*=2;for(var g=this.gridSteps*d,c=[],e=1;e<this.gridSteps;e++){var f=e*d;c.push("M 0 "+f+" L "+g+" "+f+" M "+f+" 0 L "+f+
" "+g)}return'<svg width="'+g+'" height="'+g+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+g+'" height="'+g+'" patternUnits="userSpaceOnUse"><path d="'+c.join(" ")+'" fill="none" stroke="'+b+'" opacity="0.2" stroke-width="1"/><path d="M '+g+" 0 L 0 0 0 "+g+'" 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 g=this.view.canvas;null!=g.ownerSVGElement&&(g=g.ownerSVGElement);var l=this.gridSize*this.view.scale*this.view.gridSteps,l=-Math.round(l-mxUtils.mod(this.view.translate.x*this.view.scale+c,l))+"px "+-Math.round(l-mxUtils.mod(this.view.translate.y*this.view.scale+d,l))+"px";g.style.backgroundPosition=l}};mxGraph.prototype.updatePageBreaks=function(b,d,g){var c=this.view.scale,e=this.view.translate,f=this.pageFormat,k=c*this.pageScale,u=this.view.getBackgroundPageBounds();
+if(null!=this.shiftPreview1){var g=this.view.canvas;null!=g.ownerSVGElement&&(g=g.ownerSVGElement);var e=this.gridSize*this.view.scale*this.view.gridSteps,e=-Math.round(e-mxUtils.mod(this.view.translate.x*this.view.scale+c,e))+"px "+-Math.round(e-mxUtils.mod(this.view.translate.y*this.view.scale+d,e))+"px";g.style.backgroundPosition=e}};mxGraph.prototype.updatePageBreaks=function(b,d,g){var c=this.view.scale,e=this.view.translate,f=this.pageFormat,k=c*this.pageScale,u=this.view.getBackgroundPageBounds();
d=u.width;g=u.height;var v=new mxRectangle(c*e.x,c*e.y,f.width*k,f.height*k),t=(b=b&&Math.min(v.width,v.height)>this.minPageBreakDist)?Math.ceil(g/v.height)-1:0,n=b?Math.ceil(d/v.width)-1:0,G=u.x+d,H=u.y+g;null==this.horizontalPageBreaks&&0<t&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<n&&(this.verticalPageBreaks=[]);b=mxUtils.bind(this,function(b){if(null!=b){for(var d=b==this.horizontalPageBreaks?t:n,g=0;g<=d;g++){var c=b==this.horizontalPageBreaks?[new mxPoint(Math.round(u.x),
Math.round(u.y+(g+1)*v.height)),new mxPoint(Math.round(G),Math.round(u.y+(g+1)*v.height))]:[new mxPoint(Math.round(u.x+(g+1)*v.width),Math.round(u.y)),new mxPoint(Math.round(u.x+(g+1)*v.width),Math.round(H))];null!=b[g]?(b[g].points=c,b[g].redraw()):(c=new mxPolyline(c,this.pageBreakColor),c.dialect=this.dialect,c.isDashed=this.pageBreakDashed,c.pointerEvents=!1,c.init(this.view.backgroundPane),c.redraw(),b[g]=c)}for(g=d;g<b.length;g++)b[g].destroy();b.splice(d,b.length-d)}});b(this.horizontalPageBreaks);
b(this.verticalPageBreaks)};var c=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(b,d,g){for(var e=0;e<d.length;e++){if(this.graph.isTableCell(d[e])||this.graph.isTableRow(d[e]))return!1;if(this.graph.getModel().isVertex(d[e])){var f=this.graph.getCellGeometry(d[e]);if(null!=f&&f.relative)return!1}}return c.apply(this,arguments)};var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var b=
@@ -2136,32 +2136,31 @@ function(b,d,g){var c,e=this.graph.model.getParent(b);if(d)c=this.graph.model.is
this.graph.isCellSelected(b)&&!this.graph.isToggleEvent(g.getEvent())||this.graph.isTableCell(b)&&this.graph.isCellSelected(e);return c};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(b){b=b.getCell();for(var d=this.graph.getModel(),g=d.getParent(b),c=this.graph.view.getState(g),e=this.graph.isCellSelected(b);null!=c&&(d.isVertex(g)||d.isEdge(g));){var f=this.graph.isCellSelected(g),e=e||f;if(f||!e&&(this.graph.isTableCell(b)||this.graph.isTableRow(b)))b=g;g=d.getParent(g)}return b}})();EditorUi=function(b,c,e){mxEventSource.call(this);this.destroyFunctions=[];this.editor=b||new Editor;this.container=c||document.body;var k=this.editor.graph;k.lightbox=e;var f=k.getGraphBounds;k.getGraphBounds=function(b){var d=f.apply(this,arguments);b=this.backgroundImage;if(null!=b){var g=this.view.translate,c=this.view.scale,d=mxRectangle.fromRectangle(d);d.add(new mxRectangle((g.x+b.x)*c,(g.y+b.y)*c,b.width*c,b.height*c))}return d};k.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.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,k.isEnabled=function(){return!1},k.panningHandler.isForcePanningEvent=function(b){return!mxEvent.isPopupTrigger(b.getEvent())});this.actions=new Actions(this);
this.menus=this.createMenus();if(!k.standalone){var n="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(" "),
-d="curved sourcePerimeterSpacing targetPerimeterSpacing startArrow startFill startSize endArrow endFill endSize".split(" ");this.setDefaultStyle=function(b){try{var d=k.view.getState(b);if(null!=d){var g=b.clone();g.style="";var c=k.getCellStyle(g);b=[];var g=[],e;for(e in d.style)c[e]!=d.style[e]&&(b.push(d.style[e]),g.push(e));for(var l=k.getModel().getStyle(d.cell),f=null!=l?l.split(";"):[],l=0;l<f.length;l++){var m=f[l],p=m.indexOf("=");if(0<=p){e=m.substring(0,p);var q=m.substring(p+1);null!=
-c[e]&&"none"==q&&(b.push(q),g.push(e))}}k.getModel().isEdge(d.cell)?k.currentEdgeStyle={}:k.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",g,"values",b,"cells",[d.cell]))}}catch(na){this.handleError(na)}};this.clearDefaultStyle=function(){k.currentEdgeStyle=mxUtils.clone(k.defaultEdgeStyle);k.currentVertexStyle=mxUtils.clone(k.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var g=["fontFamily","fontSource","fontSize",
-"fontColor"];for(c=0;c<g.length;c++)0>mxUtils.indexOf(n,g[c])&&n.push(g[c]);var l="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),m=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor","gradientDirection"],["opacity"],["html"]];for(c=0;c<m.length;c++)for(e=0;e<m[c].length;e++)n.push(m[c][e]);for(c=0;c<t.length;c++)0>mxUtils.indexOf(n,t[c])&&
-n.push(t[c]);var p=function(b,g,c,e,l,f,p){e=null!=e?e:k.currentVertexStyle;l=null!=l?l:k.currentEdgeStyle;f=null!=f?f:!0;c=null!=c?c:k.getModel();if(p){p=[];for(var E=0;E<b.length;E++)p=p.concat(c.getDescendants(b[E]));b=p}c.beginUpdate();try{for(E=0;E<b.length;E++){var q=b[E],A;if(g)A=["fontSize","fontFamily","fontColor"];else{var v=c.getStyle(q),u=null!=v?v.split(";"):[];A=n.slice();for(var I=0;I<u.length;I++){var t=u[I],x=t.indexOf("=");if(0<=x){var N=t.substring(0,x),y=mxUtils.indexOf(A,N);0<=
-y&&A.splice(y,1);for(p=0;p<m.length;p++){var z=m[p];if(0<=mxUtils.indexOf(z,N))for(var Y=0;Y<z.length;Y++){var C=mxUtils.indexOf(A,z[Y]);0<=C&&A.splice(C,1)}}}}}var U=c.isEdge(q);p=U?l:e;for(var D=c.getStyle(q),I=0;I<A.length;I++){var N=A[I],O=p[N];null!=O&&"edgeStyle"!=N&&("shape"!=N||U)&&(!U||f||0>mxUtils.indexOf(d,N))&&(D=mxUtils.setStyle(D,N,O))}Editor.simpleLabels&&(D=mxUtils.setStyle(mxUtils.setStyle(D,"html",null),"whiteSpace",null));c.setStyle(q,D)}}finally{c.endUpdate()}return b};k.addListener("cellsInserted",
-function(b,d){p(d.getProperty("cells"),null,null,null,null,!0,!0)});k.addListener("textInserted",function(b,d){p(d.getProperty("cells"),!0)});this.insertHandler=p;this.createDivs();this.createUi();this.refresh();var q=mxUtils.bind(this,function(b){null==b&&(b=window.event);return k.isEditing()||null!=b&&this.isSelectionAllowed(b)});this.container==document.body&&(this.menubarContainer.onselectstart=q,this.menubarContainer.onmousedown=q,this.toolbarContainer.onselectstart=q,this.toolbarContainer.onmousedown=
-q,this.diagramContainer.onselectstart=q,this.diagramContainer.onmousedown=q,this.sidebarContainer.onselectstart=q,this.sidebarContainer.onmousedown=q,this.formatContainer.onselectstart=q,this.formatContainer.onmousedown=q,this.footerContainer.onselectstart=q,this.footerContainer.onmousedown=q,null!=this.tabContainer&&(this.tabContainer.onselectstart=q));!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 q(b)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",c):this.diagramContainer.oncontextmenu=c):k.panningHandler.usePopupTrigger=!1;k.init(this.diagramContainer);mxClient.IS_SVG&&null!=k.view.getDrawPane()&&(c=k.view.getDrawPane().ownerSVGElement,null!=c&&(c.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=k.graphHandler){var u=k.graphHandler.start;
-k.graphHandler.start=function(){null!=C.hoverIcons&&C.hoverIcons.reset();u.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(b){var d=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(b)-d.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(b)-d.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var v=!1,y=this.hoverIcons.isResetEvent;
-this.hoverIcons.isResetEvent=function(b,d){return v||y.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(b){32!=b.which||k.isEditing()?mxEvent.isConsumed(b)||27!=b.keyCode||this.hideDialog(null,!0):(v=!0,this.hoverIcons.reset(),k.container.style.cursor="move",k.isEditing()||mxEvent.getSource(b)!=k.container||mxEvent.consume(b))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(b){k.container.style.cursor="";v=!1});mxEvent.addListener(document,
-"keyup",this.keyupHandler);var x=k.panningHandler.isForcePanningEvent;k.panningHandler.isForcePanningEvent=function(b){return x.apply(this,arguments)||v||mxEvent.isMouseEvent(b.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(b.getEvent()))&&(!mxEvent.isControlDown(b.getEvent())&&mxEvent.isRightMouseButton(b.getEvent())||mxEvent.isMiddleMouseButton(b.getEvent()))};var G=k.cellEditor.isStopEditingEvent;k.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=k.isZoomWheelEvent;k.isZoomWheelEvent=function(){return v||H.apply(this,arguments)};var z=!1,D=null,L=null,F=null,J=mxUtils.bind(this,function(){if(null!=this.toolbar&&z!=k.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var g=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),d.push(b));
-b=g}b=this.toolbar.fontMenu;g=this.toolbar.sizeMenu;if(null==F)this.toolbar.createTextToolbar();else{for(var c=0;c<F.length;c++)this.toolbar.container.appendChild(F[c]);this.toolbar.fontMenu=D;this.toolbar.sizeMenu=L}z=k.cellEditor.isContentEditing();D=b;L=g;F=d}}),C=this,K=k.cellEditor.startEditing;k.cellEditor.startEditing=function(){K.apply(this,arguments);J();if(k.cellEditor.isContentEditing()){var b=!1,d=function(){b||(b=!0,window.setTimeout(function(){var d=k.getSelectedEditingElement();null!=
-d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=C.toolbar&&(C.toolbar.setFontName(Graph.stripQuotes(d.fontFamily)),C.toolbar.setFontSize(parseInt(d.fontSize))));b=!1},0))};mxEvent.addListener(k.cellEditor.textarea,"input",d);mxEvent.addListener(k.cellEditor.textarea,"touchend",d);mxEvent.addListener(k.cellEditor.textarea,"mouseup",d);mxEvent.addListener(k.cellEditor.textarea,"keyup",d);d()}};var M=k.cellEditor.stopEditing;k.cellEditor.stopEditing=function(b,d){try{M.apply(this,arguments),J()}catch(U){C.handleError(U)}};
-k.container.setAttribute("tabindex","0");k.container.style.cursor="default";if(window.self===window.top&&null!=k.container.parentNode)try{k.container.focus()}catch(N){}var aa=k.fireMouseEvent;k.fireMouseEvent=function(b,d,g){b==mxEvent.MOUSE_DOWN&&this.container.focus();aa.apply(this,arguments)};k.popupMenuHandler.autoExpand=!0;null!=this.menus&&(k.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(b,d,g){this.menus.createPopupMenu(b,d,g)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,
-function(b){k.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(b);this.getKeyHandler=function(){return keyHandler};k.connectionHandler.addListener(mxEvent.CONNECT,function(b,d){var g=[d.getProperty("cell")];d.getProperty("terminalInserted")&&(g.push(d.getProperty("terminal")),window.setTimeout(function(){null!=C.hoverIcons&&C.hoverIcons.update(k.view.getState(g[g.length-1]))},0));p(g)});this.addListener("styleChanged",mxUtils.bind(this,function(b,d){var c=d.getProperty("cells"),
-e=!1,f=!1;if(0<c.length)for(var m=0;m<c.length&&(e=k.getModel().isVertex(c[m])||e,!(f=k.getModel().isEdge(c[m])||f)||!e);m++);else f=e=!0;for(var c=d.getProperty("keys"),p=d.getProperty("values"),m=0;m<c.length;m++){var q=0<=mxUtils.indexOf(g,c[m]);if("strokeColor"!=c[m]||null!=p[m]&&"none"!=p[m])if(0<=mxUtils.indexOf(t,c[m]))f||0<=mxUtils.indexOf(l,c[m])?null==p[m]?delete k.currentEdgeStyle[c[m]]:k.currentEdgeStyle[c[m]]=p[m]:e&&0<=mxUtils.indexOf(n,c[m])&&(null==p[m]?delete k.currentVertexStyle[c[m]]:
-k.currentVertexStyle[c[m]]=p[m]);else if(0<=mxUtils.indexOf(n,c[m])){if(e||q)null==p[m]?delete k.currentVertexStyle[c[m]]:k.currentVertexStyle[c[m]]=p[m];if(f||q||0<=mxUtils.indexOf(l,c[m]))null==p[m]?delete k.currentEdgeStyle[c[m]]:k.currentEdgeStyle[c[m]]=p[m]}}null!=this.toolbar&&(this.toolbar.setFontName(k.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(k.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className=
-"orthogonalEdgeStyle"==k.currentEdgeStyle.edgeStyle&&"1"==k.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==k.currentEdgeStyle.edgeStyle||"none"==k.currentEdgeStyle.edgeStyle||null==k.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==k.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==k.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==k.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==
-k.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==k.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==k.currentEdgeStyle.shape?"geSprite geSprite-linkedge":"flexArrow"==k.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==k.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&
-(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",k.currentEdgeStyle.shape,k.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(k.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("end",k.currentEdgeStyle.shape,k.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(k.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&
-(b=mxUtils.bind(this,function(){var b=k.currentVertexStyle.fontFamily||"Helvetica",d=String(k.currentVertexStyle.fontSize||"12"),g=k.getView().getState(k.getSelectionCell());null!=g&&(b=g.style[mxConstants.STYLE_FONTFAMILY]||b,d=g.style[mxConstants.STYLE_FONTSIZE]||d,10<b.length&&(b=b.substring(0,8)+"..."));this.toolbar.setFontName(b);this.toolbar.setFontSize(d)}),k.getSelectionModel().addListener(mxEvent.CHANGE,b),k.getModel().addListener(mxEvent.CHANGE,b));k.addListener(mxEvent.CELLS_ADDED,function(b,
-d){var g=d.getProperty("cells"),c=d.getProperty("parent");null!=c&&k.getModel().isLayer(c)&&!k.isCellVisible(c)&&null!=g&&0<g.length&&k.getModel().setVisible(c,!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&&(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(){k.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){k.view.validateBackground()}));k.addListener("gridSizeChanged",mxUtils.bind(this,function(){k.isGridEnabled()&&k.view.validateBackground()}));this.editor.resetGraph()}this.init();k.standalone||this.open()};EditorUi.compactUi=!0;
-EditorUi.parsePng=function(b,c,e){function k(b,g){var d=n;n+=g;return b.substring(d,n)}function f(b){b=k(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}var n=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);do{e=f(b);var t=k(b,4);if(null!=c&&c(n-8,t,e))break;value=k(b,e);k(b,4);if("IEND"==t)break}while(e)}};mxUtils.extend(EditorUi,mxEventSource);
+d="curved sourcePerimeterSpacing targetPerimeterSpacing startArrow startFill startSize endArrow endFill endSize".split(" ");this.setDefaultStyle=function(b){try{var d=k.getCellStyle(b,!1),g=[],c=[],e;for(e in d)g.push(d[e]),c.push(e);k.getModel().isEdge(b)?k.currentEdgeStyle={}:k.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",c,"values",g,"cells",[b]))}catch(A){this.handleError(A)}};this.clearDefaultStyle=function(){k.currentEdgeStyle=mxUtils.clone(k.defaultEdgeStyle);
+k.currentVertexStyle=mxUtils.clone(k.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var g=["fontFamily","fontSource","fontSize","fontColor"];for(c=0;c<g.length;c++)0>mxUtils.indexOf(n,g[c])&&n.push(g[c]);var l="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),m=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],
+["fillColor","gradientColor","gradientDirection"],["opacity"],["html"]];for(c=0;c<m.length;c++)for(e=0;e<m[c].length;e++)n.push(m[c][e]);for(c=0;c<t.length;c++)0>mxUtils.indexOf(n,t[c])&&n.push(t[c]);var p=function(b,g,c,e,l,f,p){e=null!=e?e:k.currentVertexStyle;l=null!=l?l:k.currentEdgeStyle;f=null!=f?f:!0;c=null!=c?c:k.getModel();if(p){p=[];for(var F=0;F<b.length;F++)p=p.concat(c.getDescendants(b[F]));b=p}c.beginUpdate();try{for(F=0;F<b.length;F++){var q=b[F],A;if(g)A=["fontSize","fontFamily","fontColor"];
+else{var v=c.getStyle(q),u=null!=v?v.split(";"):[];A=n.slice();for(var I=0;I<u.length;I++){var t=u[I],x=t.indexOf("=");if(0<=x){var M=t.substring(0,x),y=mxUtils.indexOf(A,M);0<=y&&A.splice(y,1);for(p=0;p<m.length;p++){var z=m[p];if(0<=mxUtils.indexOf(z,M))for(var ca=0;ca<z.length;ca++){var C=mxUtils.indexOf(A,z[ca]);0<=C&&A.splice(C,1)}}}}}var U=c.isEdge(q);p=U?l:e;for(var D=c.getStyle(q),I=0;I<A.length;I++){var M=A[I],O=p[M];null!=O&&"edgeStyle"!=M&&("shape"!=M||U)&&(!U||f||0>mxUtils.indexOf(d,M))&&
+(D=mxUtils.setStyle(D,M,O))}}Editor.simpleLabels&&(D=mxUtils.setStyle(mxUtils.setStyle(D,"html",null),"whiteSpace",null));c.setStyle(q,D)}finally{c.endUpdate()}return b};k.addListener("cellsInserted",function(b,d){p(d.getProperty("cells"),null,null,null,null,!0,!0)});k.addListener("textInserted",function(b,d){p(d.getProperty("cells"),!0)});this.insertHandler=p;this.createDivs();this.createUi();this.refresh();var q=mxUtils.bind(this,function(b){null==b&&(b=window.event);return k.isEditing()||null!=
+b&&this.isSelectionAllowed(b)});this.container==document.body&&(this.menubarContainer.onselectstart=q,this.menubarContainer.onmousedown=q,this.toolbarContainer.onselectstart=q,this.toolbarContainer.onmousedown=q,this.diagramContainer.onselectstart=q,this.diagramContainer.onmousedown=q,this.sidebarContainer.onselectstart=q,this.sidebarContainer.onmousedown=q,this.formatContainer.onselectstart=q,this.formatContainer.onmousedown=q,this.footerContainer.onselectstart=q,this.footerContainer.onmousedown=
+q,null!=this.tabContainer&&(this.tabContainer.onselectstart=q));!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 q(b)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",c):this.diagramContainer.oncontextmenu=c):k.panningHandler.usePopupTrigger=!1;k.init(this.diagramContainer);
+mxClient.IS_SVG&&null!=k.view.getDrawPane()&&(c=k.view.getDrawPane().ownerSVGElement,null!=c&&(c.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=k.graphHandler){var u=k.graphHandler.start;k.graphHandler.start=function(){null!=C.hoverIcons&&C.hoverIcons.reset();u.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(b){var d=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(b)-d.x-this.diagramContainer.clientWidth||
+0<mxEvent.getClientY(b)-d.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var v=!1,y=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(b,d){return v||y.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(b){32!=b.which||k.isEditing()?mxEvent.isConsumed(b)||27!=b.keyCode||this.hideDialog(null,!0):(v=!0,this.hoverIcons.reset(),k.container.style.cursor="move",
+k.isEditing()||mxEvent.getSource(b)!=k.container||mxEvent.consume(b))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(b){k.container.style.cursor="";v=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var x=k.panningHandler.isForcePanningEvent;k.panningHandler.isForcePanningEvent=function(b){return x.apply(this,arguments)||v||mxEvent.isMouseEvent(b.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(b.getEvent()))&&(!mxEvent.isControlDown(b.getEvent())&&
+mxEvent.isRightMouseButton(b.getEvent())||mxEvent.isMiddleMouseButton(b.getEvent()))};var G=k.cellEditor.isStopEditingEvent;k.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=k.isZoomWheelEvent;k.isZoomWheelEvent=function(){return v||H.apply(this,arguments)};var z=!1,D=null,L=null,E=null,J=mxUtils.bind(this,function(){if(null!=this.toolbar&&
+z!=k.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var g=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),d.push(b));b=g}b=this.toolbar.fontMenu;g=this.toolbar.sizeMenu;if(null==E)this.toolbar.createTextToolbar();else{for(var c=0;c<E.length;c++)this.toolbar.container.appendChild(E[c]);this.toolbar.fontMenu=D;this.toolbar.sizeMenu=L}z=k.cellEditor.isContentEditing();D=b;L=g;E=d}}),C=this,K=k.cellEditor.startEditing;
+k.cellEditor.startEditing=function(){K.apply(this,arguments);J();if(k.cellEditor.isContentEditing()){var b=!1,d=function(){b||(b=!0,window.setTimeout(function(){var d=k.getSelectedEditingElement();null!=d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=C.toolbar&&(C.toolbar.setFontName(Graph.stripQuotes(d.fontFamily)),C.toolbar.setFontSize(parseInt(d.fontSize))));b=!1},0))};mxEvent.addListener(k.cellEditor.textarea,"input",d);mxEvent.addListener(k.cellEditor.textarea,"touchend",d);mxEvent.addListener(k.cellEditor.textarea,
+"mouseup",d);mxEvent.addListener(k.cellEditor.textarea,"keyup",d);d()}};var N=k.cellEditor.stopEditing;k.cellEditor.stopEditing=function(b,d){try{N.apply(this,arguments),J()}catch(U){C.handleError(U)}};k.container.setAttribute("tabindex","0");k.container.style.cursor="default";if(window.self===window.top&&null!=k.container.parentNode)try{k.container.focus()}catch(M){}var Z=k.fireMouseEvent;k.fireMouseEvent=function(b,d,g){b==mxEvent.MOUSE_DOWN&&this.container.focus();Z.apply(this,arguments)};k.popupMenuHandler.autoExpand=
+!0;null!=this.menus&&(k.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(b,d,g){this.menus.createPopupMenu(b,d,g)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(b){k.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(b);this.getKeyHandler=function(){return keyHandler};k.connectionHandler.addListener(mxEvent.CONNECT,function(b,d){var g=[d.getProperty("cell")];d.getProperty("terminalInserted")&&(g.push(d.getProperty("terminal")),window.setTimeout(function(){null!=
+C.hoverIcons&&C.hoverIcons.update(k.view.getState(g[g.length-1]))},0));p(g)});this.addListener("styleChanged",mxUtils.bind(this,function(b,d){var c=d.getProperty("cells"),e=!1,f=!1;if(0<c.length)for(var m=0;m<c.length&&(e=k.getModel().isVertex(c[m])||e,!(f=k.getModel().isEdge(c[m])||f)||!e);m++);else f=e=!0;for(var c=d.getProperty("keys"),p=d.getProperty("values"),m=0;m<c.length;m++){var q=0<=mxUtils.indexOf(g,c[m]);if("strokeColor"!=c[m]||null!=p[m]&&"none"!=p[m])if(0<=mxUtils.indexOf(t,c[m]))f||
+0<=mxUtils.indexOf(l,c[m])?null==p[m]?delete k.currentEdgeStyle[c[m]]:k.currentEdgeStyle[c[m]]=p[m]:e&&0<=mxUtils.indexOf(n,c[m])&&(null==p[m]?delete k.currentVertexStyle[c[m]]:k.currentVertexStyle[c[m]]=p[m]);else if(0<=mxUtils.indexOf(n,c[m])){if(e||q)null==p[m]?delete k.currentVertexStyle[c[m]]:k.currentVertexStyle[c[m]]=p[m];if(f||q||0<=mxUtils.indexOf(l,c[m]))null==p[m]?delete k.currentEdgeStyle[c[m]]:k.currentEdgeStyle[c[m]]=p[m]}}null!=this.toolbar&&(this.toolbar.setFontName(k.currentVertexStyle.fontFamily||
+Menus.prototype.defaultFont),this.toolbar.setFontSize(k.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==k.currentEdgeStyle.edgeStyle&&"1"==k.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==k.currentEdgeStyle.edgeStyle||"none"==k.currentEdgeStyle.edgeStyle||null==k.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==
+k.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==k.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==k.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==k.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==k.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==k.currentEdgeStyle.shape?
+"geSprite geSprite-linkedge":"flexArrow"==k.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==k.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",k.currentEdgeStyle.shape,k.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(k.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=
+this.getCssClassForMarker("end",k.currentEdgeStyle.shape,k.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(k.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(b=mxUtils.bind(this,function(){var b=k.currentVertexStyle.fontFamily||"Helvetica",d=String(k.currentVertexStyle.fontSize||"12"),g=k.getView().getState(k.getSelectionCell());null!=g&&(b=g.style[mxConstants.STYLE_FONTFAMILY]||b,d=g.style[mxConstants.STYLE_FONTSIZE]||d,10<b.length&&(b=b.substring(0,8)+"..."));this.toolbar.setFontName(b);
+this.toolbar.setFontSize(d)}),k.getSelectionModel().addListener(mxEvent.CHANGE,b),k.getModel().addListener(mxEvent.CHANGE,b));k.addListener(mxEvent.CELLS_ADDED,function(b,d){var g=d.getProperty("cells"),c=d.getProperty("parent");null!=c&&k.getModel().isLayer(c)&&!k.isCellVisible(c)&&null!=g&&0<g.length&&k.getModel().setVisible(c,!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&&(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(){k.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){k.view.validateBackground()}));k.addListener("gridSizeChanged",mxUtils.bind(this,function(){k.isGridEnabled()&&k.view.validateBackground()}));this.editor.resetGraph()}this.init();k.standalone||this.open()};
+EditorUi.compactUi=!0;EditorUi.parsePng=function(b,c,e){function k(b,g){var d=n;n+=g;return b.substring(d,n)}function f(b){b=k(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}var n=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);do{e=f(b);var t=k(b,4);if(null!=c&&c(n-8,t,e))break;value=k(b,e);k(b,4);if("IEND"==t)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,
@@ -2197,9 +2196,9 @@ 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 k=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){k.apply(this,arguments);b.updatePasteActionStates()};var f=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(c,e){f.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,g){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,g,c,e){if(null!=b.container&&!b.isViewer()){c=null!=c?c:0;e=null!=e?e:0;var l=b.pageVisible?b.view.getBackgroundPageBounds():b.getGraphBounds(),f=mxUtils.hasScrollbars(b.container),k=b.view.translate,m=b.view.scale,E=mxRectangle.fromRectangle(l);
-E.x=E.x/m-k.x;E.y=E.y/m-k.y;E.width/=m;E.height/=m;var k=b.container.scrollTop,p=b.container.scrollLeft,q=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)q+=3;var A=b.container.offsetWidth-q,q=b.container.offsetHeight-q;d=d?Math.max(.3,Math.min(g||1,A/E.width)):m;g=(A-d*E.width)/2/d;var v=0==this.lightboxVerticalDivider?0:(q-d*E.height)/this.lightboxVerticalDivider/d;f&&(g=Math.max(g,0),v=Math.max(v,0));if(f||l.width<A||l.height<q)b.view.scaleAndTranslate(d,Math.floor(g-
-E.x),Math.floor(v-E.y)),b.container.scrollTop=k*d/m,b.container.scrollLeft=p*d/m;else if(0!=c||0!=e)l=b.view.translate,b.view.setTranslate(Math.floor(l.x+c/m),Math.floor(l.y+e/m))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var k=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",k);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",k)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
+this.scale*b.height*d.height)};b.getPreferredPageSize=function(b,d,g){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,g,c,e){if(null!=b.container&&!b.isViewer()){c=null!=c?c:0;e=null!=e?e:0;var l=b.pageVisible?b.view.getBackgroundPageBounds():b.getGraphBounds(),f=mxUtils.hasScrollbars(b.container),k=b.view.translate,m=b.view.scale,F=mxRectangle.fromRectangle(l);
+F.x=F.x/m-k.x;F.y=F.y/m-k.y;F.width/=m;F.height/=m;var k=b.container.scrollTop,p=b.container.scrollLeft,q=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)q+=3;var A=b.container.offsetWidth-q,q=b.container.offsetHeight-q;d=d?Math.max(.3,Math.min(g||1,A/F.width)):m;g=(A-d*F.width)/2/d;var v=0==this.lightboxVerticalDivider?0:(q-d*F.height)/this.lightboxVerticalDivider/d;f&&(g=Math.max(g,0),v=Math.max(v,0));if(f||l.width<A||l.height<q)b.view.scaleAndTranslate(d,Math.floor(g-
+F.x),Math.floor(v-F.y)),b.container.scrollTop=k*d/m,b.container.scrollLeft=p*d/m;else if(0!=c||0!=e)l=b.view.translate,b.view.setTranslate(Math.floor(l.x+c/m),Math.floor(l.y+e/m))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var k=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",k);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",k)});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 f=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 n=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",n);n();var t=0,n=mxUtils.bind(this,function(b,d,g){t++;var c=document.createElement("span");c.style.paddingLeft="8px";c.style.paddingRight=
@@ -2219,15 +2218,15 @@ mxUtils.bind(this,function(d){b.tooltipHandler.resetTimer();b.tooltipHandler.hid
g.getGraphX();this.startY=g.getGraphY();this.scrollLeft=b.container.scrollLeft;this.scrollTop=b.container.scrollTop},mouseMove:function(b,d){},mouseUp:function(d,g){mxEvent.isTouchEvent(g.getEvent())&&Math.abs(this.scrollLeft-b.container.scrollLeft)<z&&Math.abs(this.scrollTop-b.container.scrollTop)<z&&Math.abs(this.startX-g.getGraphX())<z&&Math.abs(this.startY-g.getGraphY())<z&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?v():y(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var D=
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}D.apply(this,arguments)};if(!b.isViewer()){var L=b.sizeDidChange;b.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var d=this.getPageLayout(),g=this.getPagePadding(),c=this.getPageSize(),e=Math.ceil(2*
g.x+d.width*c.width),l=Math.ceil(2*g.y+d.height*c.height),f=b.minimumGraphSize;if(null==f||f.width!=e||f.height!=l)b.minimumGraphSize=new mxRectangle(0,0,e,l);e=g.x-d.x*c.width;g=g.y-d.y*c.height;this.autoTranslate||this.view.translate.x==e&&this.view.translate.y==g?L.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=d.x,this.view.y0=d.y,d=b.view.translate.x,c=b.view.translate.y,b.view.setTranslate(e,g),b.container.scrollLeft+=Math.round((e-d)*b.view.scale),b.container.scrollTop+=Math.round((g-
-c)*b.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var F=b.view.getBackgroundPane(),J=b.view.getDrawPane();b.cumulativeZoomFactor=1;var C=null,K=null,M=null,aa=null,N=null,O=function(d){null!=C&&window.clearTimeout(C);window.setTimeout(function(){if(!b.isMouseDown||aa)C=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)),J.style.transformOrigin="",F.style.transformOrigin="",mxClient.IS_SF?(J.style.transform="scale(1)",F.style.transform="scale(1)",window.setTimeout(function(){J.style.transform="";F.style.transform=""},0)):(J.style.transform="",F.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),l=b.view.scale,f=0,k=0;null!=K&&(f=b.container.offsetWidth/2-K.x+g.x,k=b.container.offsetHeight/2-K.y+g.y);b.zoom(b.cumulativeZoomFactor,null,20);b.view.scale!=l&&(null!=M&&(f+=d.x-M.x,k+=d.y-M.y),null!=c&&e.chromelessResize(!1,null,f*(b.cumulativeZoomFactor-1),k*(b.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(b.container)||0==f&&0==k||(b.container.scrollLeft-=f*(b.cumulativeZoomFactor-1),b.container.scrollTop-=k*(b.cumulativeZoomFactor-1)));null!=N&&J.setAttribute("filter",
-N);b.cumulativeZoomFactor=1;N=aa=K=M=C=null}),null!=d?d:b.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)};b.lazyZoom=function(d,g,c,l){l=null!=l?l:this.zoomFactor;(g=g||!b.scrollbars)&&(K=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*=l,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/=l,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==N&&""!=J.getAttribute("filter")&&(N=J.getAttribute("filter"),
-J.removeAttribute("filter")),M=new mxPoint(b.container.scrollLeft,b.container.scrollTop),d=g?b.container.scrollLeft+b.container.clientWidth/2:K.x+b.container.scrollLeft-b.container.offsetLeft,l=g?b.container.scrollTop+b.container.clientHeight/2:K.y+b.container.scrollTop-b.container.offsetTop,J.style.transformOrigin=d+"px "+l+"px",J.style.transform="scale("+this.cumulativeZoomFactor+")",F.style.transformOrigin=d+"px "+l+"px",F.style.transform="scale("+this.cumulativeZoomFactor+")",null!=b.view.backgroundPageShape&&
+c)*b.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var E=b.view.getBackgroundPane(),J=b.view.getDrawPane();b.cumulativeZoomFactor=1;var C=null,K=null,N=null,Z=null,M=null,O=function(d){null!=C&&window.clearTimeout(C);window.setTimeout(function(){if(!b.isMouseDown||Z)C=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)),J.style.transformOrigin="",E.style.transformOrigin="",mxClient.IS_SF?(J.style.transform="scale(1)",E.style.transform="scale(1)",window.setTimeout(function(){J.style.transform="";E.style.transform=""},0)):(J.style.transform="",E.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),l=b.view.scale,f=0,k=0;null!=K&&(f=b.container.offsetWidth/2-K.x+g.x,k=b.container.offsetHeight/2-K.y+g.y);b.zoom(b.cumulativeZoomFactor,null,20);b.view.scale!=l&&(null!=N&&(f+=d.x-N.x,k+=d.y-N.y),null!=c&&e.chromelessResize(!1,null,f*(b.cumulativeZoomFactor-1),k*(b.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(b.container)||0==f&&0==k||(b.container.scrollLeft-=f*(b.cumulativeZoomFactor-1),b.container.scrollTop-=k*(b.cumulativeZoomFactor-1)));null!=M&&J.setAttribute("filter",
+M);b.cumulativeZoomFactor=1;M=Z=K=N=C=null}),null!=d?d:b.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)};b.lazyZoom=function(d,g,c,l){l=null!=l?l:this.zoomFactor;(g=g||!b.scrollbars)&&(K=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*=l,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/=l,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==M&&""!=J.getAttribute("filter")&&(M=J.getAttribute("filter"),
+J.removeAttribute("filter")),N=new mxPoint(b.container.scrollLeft,b.container.scrollTop),d=g?b.container.scrollLeft+b.container.clientWidth/2:K.x+b.container.scrollLeft-b.container.offsetLeft,l=g?b.container.scrollTop+b.container.clientHeight/2:K.y+b.container.scrollTop-b.container.offsetTop,J.style.transformOrigin=d+"px "+l+"px",J.style.transform="scale("+this.cumulativeZoomFactor+")",E.style.transformOrigin=d+"px "+l+"px",E.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",(g?b.container.clientWidth/2+b.container.scrollLeft-d.offsetLeft+"px":K.x+b.container.scrollLeft-d.offsetLeft-b.container.offsetLeft+"px")+" "+(g?b.container.clientHeight/2+b.container.scrollTop-d.offsetTop+"px":K.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());O(c)};mxEvent.addGestureListeners(b.container,function(b){null!=C&&window.clearTimeout(C)},null,function(d){1!=b.cumulativeZoomFactor&&O(0)});mxEvent.addListener(b.container,"scroll",function(d){null==C||b.isMouseDown||1==b.cumulativeZoomFactor||O(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(d,g,c,e,l){b.fireEvent(new mxEventObject("wheel"));if(null==this.dialogs||0==this.dialogs.length)if(!b.scrollbars&&
-!c&&b.isScrollWheelEvent(d))c=b.view.getTranslate(),e=40/b.view.scale,mxEvent.isShiftDown(d)?b.view.setTranslate(c.x+(g?-e:e),c.y):b.view.setTranslate(c.x,c.y+(g?e:-e));else if(c||b.isZoomWheelEvent(d))for(var f=mxEvent.getSource(d);null!=f;){if(f==b.container)return b.tooltipHandler.hideTooltip(),K=null!=e&&null!=l?new mxPoint(e,l):new mxPoint(mxEvent.getClientX(d),mxEvent.getClientY(d)),aa=c,c=b.zoomFactor,null!=d.deltaY&&Math.round(d.deltaY)!=d.deltaY&&(c=1+Math.abs(d.deltaY)/20*(c-1)),b.lazyZoom(g,
+!c&&b.isScrollWheelEvent(d))c=b.view.getTranslate(),e=40/b.view.scale,mxEvent.isShiftDown(d)?b.view.setTranslate(c.x+(g?-e:e),c.y):b.view.setTranslate(c.x,c.y+(g?e:-e));else if(c||b.isZoomWheelEvent(d))for(var f=mxEvent.getSource(d);null!=f;){if(f==b.container)return b.tooltipHandler.hideTooltip(),K=null!=e&&null!=l?new mxPoint(e,l):new mxPoint(mxEvent.getClientX(d),mxEvent.getClientY(d)),Z=c,c=b.zoomFactor,null!=d.deltaY&&Math.round(d.deltaY)!=d.deltaY&&(c=1+Math.abs(d.deltaY)/20*(c-1)),b.lazyZoom(g,
null,null,c),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")))};
EditorUi.prototype.lightboxFit=function(b){if(this.isDiagramEmpty())this.editor.graph.view.setScale(1);else{var c=urlParams.border,e=60;null!=c&&(e=parseInt(c));this.editor.graph.maxFitScale=this.lightboxMaxFitScale;this.editor.graph.fit(e,null,null,null,null,null,b);this.editor.graph.maxFitScale=null}};EditorUi.prototype.isDiagramEmpty=function(){var b=this.editor.graph.getModel();return 1==b.getChildCount(b.root)&&0==b.getChildCount(b.getChildAt(b.root,0))};
@@ -2333,19 +2332,19 @@ new mxRectangle(c.getGraphX()-1,c.getGraphY()-1);f.grow(mxShape.prototype.svgStr
new mxRectangle(e.x,e.y+e.height-2,e.width,3)))k="row-resize";for(q=e;null==k&&null!=q&&(this.isTableCell(q.cell)||this.isTableRow(q.cell)||this.isTable(q.cell));){if(this.isSwimlane(q.cell)){var p=this.getActualStartSize(q.cell),v=this.view.scale;(0<p.x||0<p.width)&&mxUtils.intersects(f,new mxRectangle(q.x+(p.x-p.width-1)*v+(0==p.x?q.width*v:0),q.y,1,q.height))?k="col-resize":(0<p.y||0<p.height)&&mxUtils.intersects(f,new mxRectangle(q.x,q.y+(p.y-p.height-1)*v+(0==p.y?q.height:0),q.width,1))&&(k=
"row-resize")}q=this.view.getState(this.model.getParent(q.cell))}}null!=k&&e.setCursor(k)}}),mouseUp:mxUtils.bind(this,function(b,c){l=t=d=g=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==k&&this.loadStylesheet();var p=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=
-function(){var b=p.apply(this,arguments);if(this.graph.pageVisible){for(var d=[],g=this.graph.pageFormat,c=this.graph.pageScale,e=g.width*c,g=g.height*c,c=this.graph.view.translate,l=this.graph.view.scale,f=this.graph.getPageLayout(),k=0;k<f.width;k++)d.push(new mxRectangle(((f.x+k)*e+c.x)*l,(f.y*g+c.y)*l,e*l,g*l));for(k=1;k<f.height;k++)d.push(new mxRectangle((f.x*e+c.x)*l,((f.y+k)*g+c.y)*l,e*l,g*l));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 q=this.graphHandler.getCells;this.graphHandler.getCells=function(b){for(var d=q.apply(this,arguments),g=new mxDictionary,c=[],e=0;e<d.length;e++){var l=this.graph.isTableCell(b)&&this.graph.isTableCell(d[e])&&
-this.graph.isCellSelected(d[e])?this.graph.model.getParent(d[e]):this.graph.isTableRow(b)&&this.graph.isTableRow(d[e])&&this.graph.isCellSelected(d[e])?d[e]:this.graph.getCompositeParent(d[e]);null==l||g.get(l)||(g.put(l,!0),c.push(l))}return c};var u=this.graphHandler.start;this.graphHandler.start=function(b,d,g,c){var e=!1;this.graph.isTableCell(b)&&(this.graph.isCellSelected(b)?e=!0:b=this.graph.model.getParent(b));e||this.graph.isTableRow(b)&&this.graph.isCellSelected(b)||(b=this.graph.getCompositeParent(b));
+function(){var b=p.apply(this,arguments);if(this.graph.pageVisible){for(var d=[],g=this.graph.pageFormat,c=this.graph.pageScale,e=g.width*c,g=g.height*c,c=this.graph.view.translate,f=this.graph.view.scale,l=this.graph.getPageLayout(),k=0;k<l.width;k++)d.push(new mxRectangle(((l.x+k)*e+c.x)*f,(l.y*g+c.y)*f,e*f,g*f));for(k=1;k<l.height;k++)d.push(new mxRectangle((l.x*e+c.x)*f,((l.y+k)*g+c.y)*f,e*f,g*f));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 q=this.graphHandler.getCells;this.graphHandler.getCells=function(b){for(var d=q.apply(this,arguments),g=new mxDictionary,c=[],e=0;e<d.length;e++){var f=this.graph.isTableCell(b)&&this.graph.isTableCell(d[e])&&
+this.graph.isCellSelected(d[e])?this.graph.model.getParent(d[e]):this.graph.isTableRow(b)&&this.graph.isTableRow(d[e])&&this.graph.isCellSelected(d[e])?d[e]:this.graph.getCompositeParent(d[e]);null==f||g.get(f)||(g.put(f,!0),c.push(f))}return c};var u=this.graphHandler.start;this.graphHandler.start=function(b,d,g,c){var e=!1;this.graph.isTableCell(b)&&(this.graph.isCellSelected(b)?e=!0:b=this.graph.model.getParent(b));e||this.graph.isTableRow(b)&&this.graph.isCellSelected(b)||(b=this.graph.getCompositeParent(b));
u.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(b,d){d=this.graph.getCompositeParent(d);return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var v=new mxRubberband(this);this.getRubberband=function(){return v};var y=(new Date).getTime(),x=0,G=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var b=this.currentState;G.apply(this,arguments);b!=this.currentState?(y=(new Date).getTime(),x=0):x=(new Date).getTime()-y};var H=
this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(b){return null!=this.currentState&&b.getState()==this.currentState&&2E3<x||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&H.apply(this,arguments)};var z=this.isToggleEvent;this.isToggleEvent=function(b){return z.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b)};var D=v.isForceRubberbandEvent;v.isForceRubberbandEvent=function(b){return D.apply(this,
arguments)&&!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isControlDown(b.getEvent())||mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==b.getState()&&mxEvent.isTouchEvent(b.getEvent())};var L=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(L=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=L)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(b){return mxEvent.isMouseEvent(b.getEvent())};var F=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 F.apply(this,arguments);var g=d?b.sourceState.cell:b.getCell();null!=g&&(g=this.getClickableLinkForCell(g),null!=g&&(this.isCustomLink(g)?
+mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=L)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(b){return mxEvent.isMouseEvent(b.getEvent())};var E=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 E.apply(this,arguments);var g=d?b.sourceState.cell:b.getCell();null!=g&&(g=this.getClickableLinkForCell(g),null!=g&&(this.isCustomLink(g)?
this.customLinkClicked(g):this.openLink(g)));this.isEnabled()&&d&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};var J=this.tooltipHandler.show;this.tooltipHandler.show=function(){J.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 C=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 C.apply(this,arguments)};this.selectRegion=function(b,d){var g=mxEvent.isAltDown(d)?b:null,g=this.getCells(b.x,
b.y,b.width,b.height,null,null,g,function(b){return"1"==mxUtils.getValue(b.style,"locked","0")},!0);if(this.isToggleEvent(d))for(var c=0;c<g.length;c++)this.selectCellForEvent(g[c],d);else this.selectCellsForEvent(g,d);return g};var K=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(b,d,g){return this.graph.isCellSelected(b)?!1:K.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 M=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,d){if("mouseDown"==d.getProperty("eventName")){var g=d.getProperty("event").getState();M=null==g||this.isSelectionEmpty()||this.isCellSelected(g.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(b,d){if(!mxEvent.isMultiTouchEvent(d)){var g=d.getProperty("event"),c=d.getProperty("cell");null==c?(g=mxUtils.convertPoint(this.container,
-mxEvent.getClientX(g),mxEvent.getClientY(g)),v.start(g.x,g.y)):null!=M?this.addSelectionCells(M):1<this.getSelectionCount()&&this.isCellSelected(c)&&this.removeSelectionCell(c);M=null;d.consume()}}));this.connectionHandler.selectCells=function(b,d){this.graph.setSelectionCell(d||b)};this.connectionHandler.constraintHandler.isStateIgnored=function(b,d){var g=b.view.graph;return d&&(g.isCellSelected(b.cell)||g.isTableRow(b.cell)&&g.selectionCellsHandler.isHandled(g.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 aa=this.updateMouseEvent;this.updateMouseEvent=function(b){b=aa.apply(this,arguments);null!=b.state&&this.isCellLocked(b.getCell())&&(b.state=null);return b}}this.currentTranslate=new mxPoint(0,0)};
+"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 g=d.getProperty("event").getState();N=null==g||this.isSelectionEmpty()||this.isCellSelected(g.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(b,d){if(!mxEvent.isMultiTouchEvent(d)){var g=d.getProperty("event"),c=d.getProperty("cell");null==c?(g=mxUtils.convertPoint(this.container,
+mxEvent.getClientX(g),mxEvent.getClientY(g)),v.start(g.x,g.y)):null!=N?this.addSelectionCells(N):1<this.getSelectionCount()&&this.isCellSelected(c)&&this.removeSelectionCell(c);N=null;d.consume()}}));this.connectionHandler.selectCells=function(b,d){this.graph.setSelectionCell(d||b)};this.connectionHandler.constraintHandler.isStateIgnored=function(b,d){var g=b.view.graph;return d&&(g.isCellSelected(b.cell)||g.isTableRow(b.cell)&&g.selectionCellsHandler.isHandled(g.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 Z=this.updateMouseEvent;this.updateMouseEvent=function(b){b=Z.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"];Graph.diagramLanguage=null!=urlParams["diagram-language"]?urlParams["diagram-language"]:mxClient.language;Graph.lineJumpsEnabled=!0;
Graph.defaultJumpSize=6;Graph.zoomWheel=!1;Graph.minTableColumnWidth=20;Graph.minTableRowHeight=20;Graph.foreignObjectWarningText="Viewer does not support full SVG 1.1";Graph.foreignObjectWarningLink="https://www.diagrams.net/doc/faq/svg-export-text-problems";Graph.xmlDeclaration='<?xml version="1.0" encoding="UTF-8"?>';Graph.svgDoctype='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">';Graph.svgFileComment="\x3c!-- Do not edit this file with editors other than diagrams.net --\x3e";
Graph.pasteStyles="rounded shadow dashed dashPattern fontFamily fontSource fontSize fontColor fontStyle align verticalAlign strokeColor strokeWidth fillColor gradientColor swimlaneFillColor textOpacity gradientDirection glass labelBackgroundColor labelBorderColor opacity spacing spacingTop spacingLeft spacingBottom spacingRight endFill endArrow endSize targetPerimeterSpacing startFill startArrow startSize sourcePerimeterSpacing arcSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle".split(" ");
@@ -2356,8 +2355,9 @@ Graph.base64EncodeUnicode=function(b){return btoa(encodeURIComponent(b).replace(
Graph.arrayBufferToString=function(b){var c="";b=new Uint8Array(b);for(var e=b.byteLength,k=0;k<e;k++)c+=String.fromCharCode(b[k]);return c};Graph.stringToArrayBuffer=function(b){return Uint8Array.from(b,function(b){return b.charCodeAt(0)})};
Graph.arrayBufferIndexOfString=function(b,c,e){var k=c.charCodeAt(0),f=1,n=-1;for(e=e||0;e<b.byteLength;e++)if(b[e]==k){n=e;break}for(e=n+1;-1<n&&e<b.byteLength&&e<n+c.length-1;e++){if(b[e]!=c.charCodeAt(f))return Graph.arrayBufferIndexOfString(b,c,n+1);f++}return f==c.length-1?n:-1};Graph.compress=function(b,c){if(null==b||0==b.length||"undefined"===typeof pako)return b;var e=c?pako.deflate(encodeURIComponent(b)):pako.deflateRaw(encodeURIComponent(b));return btoa(Graph.arrayBufferToString(new Uint8Array(e)))};
Graph.decompress=function(b,c,e){if(null==b||0==b.length||"undefined"===typeof pako)return b;b=Graph.stringToArrayBuffer(atob(b));c=decodeURIComponent(c?pako.inflate(b,{to:"string"}):pako.inflateRaw(b,{to:"string"}));return e?c:Graph.zapGremlins(c)};
-Graph.fadeNodes=function(b,c,e,k,f){f=null!=f?f:1E3;Graph.setTransitionForNodes(b,null);Graph.setOpacityForNodes(b,c);window.setTimeout(function(){Graph.setTransitionForNodes(b,"all "+f+"ms ease-in-out");Graph.setOpacityForNodes(b,e);window.setTimeout(function(){Graph.setTransitionForNodes(b,null);null!=k&&k()},f)},0)};Graph.setTransitionForNodes=function(b,c){for(var e=0;e<b.length;e++)mxUtils.setPrefixedStyle(b[e].style,"transition",c)};
-Graph.setOpacityForNodes=function(b,c){for(var e=0;e<b.length;e++)b[e].style.opacity=c};Graph.removePasteFormatting=function(b){for(;null!=b;)null!=b.firstChild&&Graph.removePasteFormatting(b.firstChild),b.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=b.style&&(b.style.whiteSpace="","#000000"==b.style.color&&(b.style.color="")),b=b.nextSibling};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.fadeNodes=function(b,c,e,k,f){f=null!=f?f:1E3;Graph.setTransitionForNodes(b,null);Graph.setOpacityForNodes(b,c);window.setTimeout(function(){Graph.setTransitionForNodes(b,"all "+f+"ms ease-in-out");Graph.setOpacityForNodes(b,e);window.setTimeout(function(){Graph.setTransitionForNodes(b,null);null!=k&&k()},f)},0)};Graph.removeKeys=function(b,c){for(var e in b)c(e)&&delete b[e]};
+Graph.setTransitionForNodes=function(b,c){for(var e=0;e<b.length;e++)mxUtils.setPrefixedStyle(b[e].style,"transition",c)};Graph.setOpacityForNodes=function(b,c){for(var e=0;e<b.length;e++)b[e].style.opacity=c};Graph.removePasteFormatting=function(b){for(;null!=b;)null!=b.firstChild&&Graph.removePasteFormatting(b.firstChild),b.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=b.style&&(b.style.whiteSpace="","#000000"==b.style.color&&(b.style.color="")),b=b.nextSibling};
+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("*"),k=0;k<e.length;k++)for(var f=0;f<e[k].attributes.length;f++){var n=e[k].attributes[f];2<n.name.length&&"on"==n.name.toLowerCase().substring(0,2)&&e[k].removeAttribute(n.name)}c("meta");c("script");c("metadata")};
Graph.clipSvgDataUri=function(b){if(!mxClient.IS_IE&&!mxClient.IS_IE11&&null!=b&&"data:image/svg+xml;base64,"==b.substring(0,26))try{var c=document.createElement("div");c.style.position="absolute";c.style.visibility="hidden";var e=decodeURIComponent(escape(atob(b.substring(26)))),k=e.indexOf("<svg");if(0<=k){c.innerHTML=e.substring(k);Graph.sanitizeSvg(c);var f=c.getElementsByTagName("svg");if(0<f.length){document.body.appendChild(c);try{var k=e=1,n=f[0].getAttribute("width"),t=f[0].getAttribute("height"),
n=null!=n&&"%"!=n.charAt(n.length-1)?parseFloat(n):NaN,t=null!=t&&"%"!=t.charAt(t.length-1)?parseFloat(t):NaN,d=f[0].getAttribute("viewBox");if(null!=d&&!isNaN(n)&&!isNaN(t)){var g=d.split(" ");4<=d.length&&(e=parseFloat(g[2])/n,k=parseFloat(g[3])/t)}var l=f[0].getBBox();0<l.width&&0<l.height&&(c.getElementsByTagName("svg")[0].setAttribute("viewBox",l.x+" "+l.y+" "+l.width+" "+l.height),c.getElementsByTagName("svg")[0].setAttribute("width",l.width/e),c.getElementsByTagName("svg")[0].setAttribute("height",
@@ -2372,19 +2372,18 @@ g&&g!=c.node;){if("a"==g.nodeName.toLowerCase()){b.view.graph.labelLinkClicked(b
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.getVerticesAndEdges=function(b,d){b=null!=b?b:!0;d=null!=d?d:!0;var g=this.model;return g.filterDescendants(function(c){return b&&g.isVertex(c)||d&&g.isEdge(c)},g.getRoot())};Graph.prototype.getCommonStyle=function(b){for(var d={},g=0;g<b.length;g++){var c=this.view.getState(b[g]);this.mergeStyle(c.style,d,0==g)}return d};Graph.prototype.mergeStyle=function(b,
d,g){if(null!=b){var c={},e;for(e in b){var f=b[e];null!=f&&(c[e]=!0,null==d[e]&&g?d[e]=f:d[e]!=f&&delete d[e])}for(e in d)c[e]||delete d[e]}};Graph.prototype.getStartEditingCell=function(b,d){var g=this.getCellStyle(b),g=parseInt(mxUtils.getValue(g,mxConstants.STYLE_STARTSIZE,0));this.isTable(b)&&(!this.isSwimlane(b)||0==g)&&""==this.getLabel(b)&&0<this.model.getChildCount(b)&&(b=this.model.getChildAt(b,0),g=this.getCellStyle(b),g=parseInt(mxUtils.getValue(g,mxConstants.STYLE_STARTSIZE,0)));if(this.isTableRow(b)&&
-(!this.isSwimlane(b)||0==g)&&""==this.getLabel(b)&&0<this.model.getChildCount(b))for(g=0;g<this.model.getChildCount(b);g++){var c=this.model.getChildAt(b,g);if(this.isCellEditable(c)){b=c;break}}return b};Graph.prototype.copyStyle=function(b){var d=null;if(null!=b){d=mxUtils.clone(this.getCurrentCellStyle(b));b=this.model.getStyle(b);b=null!=b?b.split(";"):[];for(var g=0;g<b.length;g++){var c=b[g],e=c.indexOf("=");if(0<=e){var f=c.substring(0,e),c=c.substring(e+1);null==d[f]&&c==mxConstants.NONE&&
-(d[f]=mxConstants.NONE)}}}return d};Graph.prototype.pasteStyle=function(b,d,g){g=null!=g?g:Graph.pasteStyles;this.model.beginUpdate();try{for(var c=0;c<d.length;c++)for(var e=this.getCurrentCellStyle(d[c]),f=0;f<g.length;f++){var k=e[g[f]],u=b[g[f]];k==u||null==k&&u==mxConstants.NONE||this.setCellStyles(g[f],u,[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,g,c,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,g,c,e,f){c=null!=c?c:!0;e=null!=e?e:!0;null==g&&(g=this.getCurrentRoot(),
-null==g&&(g=this.getModel().getRoot()));if(null!=g)for(var l=this.model.getChildCount(g)-1;0<=l;l--){var k=this.model.getChildAt(g,l),m=this.getScaledCellAt(b,d,k,c,e,f);if(null!=m)return m;if(this.isCellVisible(k)&&(e&&this.model.isEdge(k)||c&&this.model.isVertex(k))&&(m=this.view.getState(k),null!=m&&(null==f||!f(m,b,d))&&this.intersects(m,b,d)))return k}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 g=[],c=0;c<d.length;c++)b(d[c])||g.push(d[c]);d=g}return d};var b=mxGraph.prototype.scrollRectToVisible;Graph.prototype.scrollRectToVisible=function(c){if(this.useCssTransforms){var d=this.currentScale,g=this.currentTranslate;c=new mxRectangle((c.x+2*g.x)*d-g.x,(c.y+2*g.y)*d-g.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,g=this.graph.currentScale,b=new mxRectangle((b.x+d.x)*g,(b.y+d.y)*g,b.width*g,b.height*g);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=this.scale,this.graph.currentTranslate.x=this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=0,this.translate.y=0);c.apply(this,arguments);this.graph.useCssTransforms&&(this.graph.updateCssTransform(),this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=this.graph.currentTranslate.y)};var e=mxGraph.prototype.getCellsForGroup;
-Graph.prototype.getCellsForGroup=function(b){b=e.apply(this,arguments);for(var d=[],g=0;g<b.length;g++)this.isTableRow(b[g])||this.isTableCell(b[g])||d.push(b[g]);return d};var k=mxGraph.prototype.getCellsForUngroup;Graph.prototype.getCellsForUngroup=function(b){b=k.apply(this,arguments);for(var d=[],g=0;g<b.length;g++)this.isTable(b[g])||this.isTableRow(b[g])||this.isTableCell(b[g])||d.push(b[g]);return d};Graph.prototype.updateCssTransform=function(){var b=this.view.getDrawPane();if(null!=b)if(b=
-b.parentNode,this.useCssTransforms){var d=b.getAttribute("transform");b.setAttribute("transformOrigin","0 0");var g=Math.round(100*this.currentScale)/100;b.setAttribute("transform","scale("+g+","+g+")translate("+Math.round(100*this.currentTranslate.x)/100+","+Math.round(100*this.currentTranslate.y)/100+")");d!=b.getAttribute("transform")&&this.fireEvent(new mxEventObject("cssTransformChanged"),"transform",b.getAttribute("transform"))}else b.removeAttribute("transformOrigin"),b.removeAttribute("transform")};
-var f=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){var b=this.graph.useCssTransforms,d=this.scale,g=this.translate;b&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);f.apply(this,arguments);b&&(this.scale=d,this.translate=g)};var n=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(b,d,g){var c=this.useCssTransforms,e=this.view.scale,f=this.view.translate;c&&(this.view.scale=1,this.view.translate=
-new mxPoint(0,0),this.useCssTransforms=!1);n.apply(this,arguments);c&&(this.view.scale=e,this.view.translate=f,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.isViewer=function(){return!1};
-Graph.prototype.labelLinkClicked=function(b,c,e){c=c.getAttribute("href");if(null!=c&&!this.isCustomLink(c)&&(mxEvent.isLeftMouseButton(e)&&!mxEvent.isPopupTrigger(e)||mxEvent.isTouchEvent(e))){if(!this.isEnabled()||this.isCellLocked(b.cell))b=this.isBlankLink(c)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(c),b);mxEvent.consume(e)}};
+(!this.isSwimlane(b)||0==g)&&""==this.getLabel(b)&&0<this.model.getChildCount(b))for(g=0;g<this.model.getChildCount(b);g++){var c=this.model.getChildAt(b,g);if(this.isCellEditable(c)){b=c;break}}return b};Graph.prototype.copyStyle=function(b){return this.getCellStyle(b,!1)};Graph.prototype.pasteStyle=function(b,d,g){g=null!=g?g:Graph.pasteStyles;Graph.removeKeys(b,function(b){return 0>mxUtils.indexOf(g,b)});this.updateCellStyles(b,d)};Graph.prototype.updateCellStyles=function(b,d){this.model.beginUpdate();
+try{for(var g=0;g<d.length;g++)if(this.model.isVertex(d[g])||this.model.isEdge(d[g])){var c=this.getCellStyle(d[g],!1),e;for(e in b){var f=b[e];c[e]!=f&&this.setCellStyles(e,f,[d[g]])}}}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,g,c,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,g,c,e,f){c=null!=c?c:!0;e=null!=e?e:!0;null==g&&(g=this.getCurrentRoot(),null==g&&(g=this.getModel().getRoot()));if(null!=g)for(var l=this.model.getChildCount(g)-1;0<=l;l--){var k=this.model.getChildAt(g,
+l),m=this.getScaledCellAt(b,d,k,c,e,f);if(null!=m)return m;if(this.isCellVisible(k)&&(e&&this.model.isEdge(k)||c&&this.model.isVertex(k))&&(m=this.view.getState(k),null!=m&&(null==f||!f(m,b,d))&&this.intersects(m,b,d)))return k}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 g=[],c=0;c<d.length;c++)b(d[c])||g.push(d[c]);d=g}return d};var b=mxGraph.prototype.scrollRectToVisible;Graph.prototype.scrollRectToVisible=function(c){if(this.useCssTransforms){var d=this.currentScale,g=this.currentTranslate;c=new mxRectangle((c.x+2*g.x)*d-g.x,(c.y+2*g.y)*d-g.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,g=this.graph.currentScale,b=new mxRectangle((b.x+d.x)*g,(b.y+d.y)*g,b.width*g,b.height*g);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=this.scale,this.graph.currentTranslate.x=
+this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=0,this.translate.y=0);c.apply(this,arguments);this.graph.useCssTransforms&&(this.graph.updateCssTransform(),this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=this.graph.currentTranslate.y)};var e=mxGraph.prototype.getCellsForGroup;Graph.prototype.getCellsForGroup=function(b){b=e.apply(this,arguments);for(var d=[],g=0;g<b.length;g++)this.isTableRow(b[g])||this.isTableCell(b[g])||
+d.push(b[g]);return d};var k=mxGraph.prototype.getCellsForUngroup;Graph.prototype.getCellsForUngroup=function(b){b=k.apply(this,arguments);for(var d=[],g=0;g<b.length;g++)this.isTable(b[g])||this.isTableRow(b[g])||this.isTableCell(b[g])||d.push(b[g]);return d};Graph.prototype.updateCssTransform=function(){var b=this.view.getDrawPane();if(null!=b)if(b=b.parentNode,this.useCssTransforms){var d=b.getAttribute("transform");b.setAttribute("transformOrigin","0 0");var g=Math.round(100*this.currentScale)/
+100;b.setAttribute("transform","scale("+g+","+g+")translate("+Math.round(100*this.currentTranslate.x)/100+","+Math.round(100*this.currentTranslate.y)/100+")");d!=b.getAttribute("transform")&&this.fireEvent(new mxEventObject("cssTransformChanged"),"transform",b.getAttribute("transform"))}else b.removeAttribute("transformOrigin"),b.removeAttribute("transform")};var f=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){var b=this.graph.useCssTransforms,
+d=this.scale,g=this.translate;b&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);f.apply(this,arguments);b&&(this.scale=d,this.translate=g)};var n=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(b,d,g){var c=this.useCssTransforms,e=this.view.scale,f=this.view.translate;c&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms=!1);n.apply(this,arguments);c&&(this.view.scale=e,this.view.translate=f,this.useCssTransforms=
+!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.isViewer=function(){return!1};Graph.prototype.labelLinkClicked=function(b,c,e){c=c.getAttribute("href");if(null!=c&&!this.isCustomLink(c)&&(mxEvent.isLeftMouseButton(e)&&!mxEvent.isPopupTrigger(e)||mxEvent.isTouchEvent(e))){if(!this.isEnabled()||this.isCellLocked(b.cell))b=this.isBlankLink(c)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(c),b);mxEvent.consume(e)}};
Graph.prototype.openLink=function(b,c,e){var k=window;try{if("_self"==c&&window!=window.top)window.location.href=b;else if(b.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==b.charAt(this.baseUrl.length)&&"_top"==c&&window==window.top){var f=b.split("#")[1];window.location.hash=="#"+f&&(window.location.hash="");window.location.hash=f}else k=window.open(b,null!=c?c:"_blank"),null==k||e||(k.opener=null)}catch(n){}return k};
Graph.prototype.getLinkTitle=function(b){return b.substring(b.lastIndexOf("/")+1)};Graph.prototype.isCustomLink=function(b){return"data:"==b.substring(0,5)};Graph.prototype.customLinkClicked=function(b){return!1};Graph.prototype.isExternalProtocol=function(b){return"mailto:"===b.substring(0,7)};Graph.prototype.isBlankLink=function(b){return!this.isExternalProtocol(b)&&("blank"===this.linkPolicy||"self"!==this.linkPolicy&&!this.isRelativeUrl(b)&&b.substring(0,this.domainUrl.length)!==this.domainUrl)};
Graph.prototype.isRelativeUrl=function(b){return null!=b&&!this.absoluteUrlPattern.test(b)&&"data:"!==b.substring(0,5)&&!this.isExternalProtocol(b)};Graph.prototype.getAbsoluteUrl=function(b){null!=b&&this.isRelativeUrl(b)&&(b="#"==b.charAt(0)?this.baseUrl+b:"/"==b.charAt(0)?this.domainUrl+b:this.domainPathUrl+b);return b};
@@ -2428,7 +2427,7 @@ z,q));null!=p&&H.push(p);null==v&&null!=z&&H.push(z);null==z&&null!=p&&p.geometr
Graph.prototype.getIndexableText=function(){var b=document.createElement("div"),c=[],e,k;for(k in this.model.cells)if(e=this.model.cells[k],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"),k=b;null==e&&null!=k;)null!=k.value&&"object"==typeof k.value&&(e=k.hasAttribute(c)?null!=k.getAttribute(c)?k.getAttribute(c):"":null),k=this.model.getParent(k);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};
-Graph.prototype.getLinkTargetForCell=function(b){return null!=b.value&&"object"==typeof b.value?b.value.getAttribute("linkTarget"):null};Graph.prototype.getCellStyle=function(b){var c=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=b&&null!=this.layoutManager){var e=this.model.getParent(b);this.model.isVertex(e)&&this.isCellCollapsed(b)&&(e=this.layoutManager.getLayout(e),null!=e&&e.constructor==mxStackLayout&&(c[mxConstants.STYLE_HORIZONTAL]=!e.horizontal))}return c};
+Graph.prototype.getLinkTargetForCell=function(b){return null!=b.value&&"object"==typeof b.value?b.value.getAttribute("linkTarget"):null};Graph.prototype.postProcessCellStyle=function(b,c){if(null!=b&&null!=this.layoutManager){var e=this.model.getParent(b);this.model.isVertex(e)&&this.isCellCollapsed(b)&&(e=this.layoutManager.getLayout(e),null!=e&&e.constructor==mxStackLayout&&(c[mxConstants.STYLE_HORIZONTAL]=!e.horizontal))}return c};
Graph.prototype.updateAlternateBounds=function(b,c,e){if(null!=b&&null!=c&&null!=this.layoutManager&&null!=c.alternateBounds){var k=this.layoutManager.getLayout(this.model.getParent(b));null!=k&&k.constructor==mxStackLayout&&(k.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,k,f){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 n=0;n<e.length;n++){var t=this.view.getState(e[n]),d=this.getCellGeometry(e[n]);if(null!=t&&null!=d){var g=Math.round(d.width-t.width/this.view.scale),l=Math.round(d.height-t.height/this.view.scale);if(0!=l||0!=g){var m=this.model.getParent(e[n]),p=this.layoutManager.getLayout(m);
null==p?null!=f&&this.isMoveCellsEvent(f,t)&&this.moveSiblings(t,m,g,l):null!=f&&mxEvent.isAltDown(f)||p.constructor!=mxStackLayout||p.resizeLast||this.resizeParentStacks(m,p,g,l)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
@@ -2502,12 +2501,12 @@ c.x+Graph.minTableColumnWidth,t.setGeometry(b,e));this.graph.visitTableCells(b,m
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 k=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(b,d){return k.apply(this,arguments)||null!=b.routedPoints&&null!=d.routedPoints&&!mxUtils.equalPoints(d.routedPoints,b.routedPoints)};var f=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=
function(b){f.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 g=null!=b.routedPoints,c=null;if(null!=d&&null!=this.validEdges&&"none"!==mxUtils.getValue(b.style,"jumpStyle","none")){for(var e=function(d,g,e){var f=new mxPoint(g,e);f.type=d;c.push(f);f=null!=b.routedPoints?b.routedPoints[c.length-1]:null;return null==f||f.type!=
-d||f.x!=g||f.y!=e},f=.5*this.scale,g=!1,c=[],l=0;l<d.length-1;l++){for(var k=d[l+1],m=d[l],n=[],t=d[l+2];l<d.length-2&&mxUtils.ptSegDistSq(m.x,m.y,t.x,t.y,k.x,k.y)<1*this.scale*this.scale;)k=t,l++,t=d[l+2];for(var g=e(0,m.x,m.y)||g,L=0;L<this.validEdges.length;L++){var F=this.validEdges[L],J=F.absolutePoints;if(null!=J&&mxUtils.intersects(b,F)&&"1"!=F.style.noJump)for(F=0;F<J.length-1;F++){for(var C=J[F+1],K=J[F],t=J[F+2];F<J.length-2&&mxUtils.ptSegDistSq(K.x,K.y,t.x,t.y,C.x,C.y)<1*this.scale*this.scale;)C=
-t,F++,t=J[F+2];t=mxUtils.intersection(m.x,m.y,k.x,k.y,K.x,K.y,C.x,C.y);if(null!=t&&(Math.abs(t.x-m.x)>f||Math.abs(t.y-m.y)>f)&&(Math.abs(t.x-k.x)>f||Math.abs(t.y-k.y)>f)&&(Math.abs(t.x-K.x)>f||Math.abs(t.y-K.y)>f)&&(Math.abs(t.x-C.x)>f||Math.abs(t.y-C.y)>f)){C=t.x-m.x;K=t.y-m.y;t={distSq:C*C+K*K,x:t.x,y:t.y};for(C=0;C<n.length;C++)if(n[C].distSq>t.distSq){n.splice(C,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(F=0;F<n.length;F++)g=e(1,n[F].x,
-n[F].y)||g}t=d[d.length-1];g=e(0,t.x,t.y)||g}b.routedPoints=c;return g}return!1};var n=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(b,d,g){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)n.apply(this,arguments);else{var c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,e=(parseInt(mxUtils.getValue(this.style,
-"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,f=mxUtils.getValue(this.style,"jumpStyle","none"),l=!0,k=null,m=null,p=[],q=null;b.begin();for(var t=0;t<this.state.routedPoints.length;t++){var F=this.state.routedPoints[t],J=new mxPoint(F.x/this.scale,F.y/this.scale);0==t?J=d[0]:t==this.state.routedPoints.length-1&&(J=d[d.length-1]);var C=!1;if(null!=k&&1==F.type){var K=this.state.routedPoints[t+1],F=K.x/this.scale-J.x,K=K.y/this.scale-J.y,F=F*F+K*K;null==q&&(q=new mxPoint(J.x-k.x,J.y-k.y),
-m=Math.sqrt(q.x*q.x+q.y*q.y),0<m?(q.x=q.x*e/m,q.y=q.y*e/m):q=null);F>e*e&&0<m&&(F=k.x-J.x,K=k.y-J.y,F=F*F+K*K,F>e*e&&(C=new mxPoint(J.x-q.x,J.y-q.y),F=new mxPoint(J.x+q.x,J.y+q.y),p.push(C),this.addPoints(b,p,g,c,!1,null,l),p=0>Math.round(q.x)||0==Math.round(q.x)&&0>=Math.round(q.y)?1:-1,l=!1,"sharp"==f?(b.lineTo(C.x-q.y*p,C.y+q.x*p),b.lineTo(F.x-q.y*p,F.y+q.x*p),b.lineTo(F.x,F.y)):"line"==f?(b.moveTo(C.x+q.y*p,C.y-q.x*p),b.lineTo(C.x-q.y*p,C.y+q.x*p),b.moveTo(F.x-q.y*p,F.y+q.x*p),b.lineTo(F.x+q.y*
-p,F.y-q.x*p),b.moveTo(F.x,F.y)):"arc"==f?(p*=1.3,b.curveTo(C.x-q.y*p,C.y+q.x*p,F.x-q.y*p,F.y+q.x*p,F.x,F.y)):(b.moveTo(F.x,F.y),l=!0),p=[F],C=!0))}else q=null;C||(p.push(J),k=J)}this.addPoints(b,p,g,c,!1,null,l);b.stroke()}};var t=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(b,d,g,c){return null!=d&&"centerPerimeter"==d.style[mxConstants.STYLE_PERIMETER]?new mxPoint(d.getCenterX(),d.getCenterY()):t.apply(this,arguments)};var d=mxGraphView.prototype.updateFloatingTerminalPoint;
+d||f.x!=g||f.y!=e},f=.5*this.scale,g=!1,c=[],l=0;l<d.length-1;l++){for(var k=d[l+1],m=d[l],n=[],t=d[l+2];l<d.length-2&&mxUtils.ptSegDistSq(m.x,m.y,t.x,t.y,k.x,k.y)<1*this.scale*this.scale;)k=t,l++,t=d[l+2];for(var g=e(0,m.x,m.y)||g,L=0;L<this.validEdges.length;L++){var E=this.validEdges[L],J=E.absolutePoints;if(null!=J&&mxUtils.intersects(b,E)&&"1"!=E.style.noJump)for(E=0;E<J.length-1;E++){for(var C=J[E+1],K=J[E],t=J[E+2];E<J.length-2&&mxUtils.ptSegDistSq(K.x,K.y,t.x,t.y,C.x,C.y)<1*this.scale*this.scale;)C=
+t,E++,t=J[E+2];t=mxUtils.intersection(m.x,m.y,k.x,k.y,K.x,K.y,C.x,C.y);if(null!=t&&(Math.abs(t.x-m.x)>f||Math.abs(t.y-m.y)>f)&&(Math.abs(t.x-k.x)>f||Math.abs(t.y-k.y)>f)&&(Math.abs(t.x-K.x)>f||Math.abs(t.y-K.y)>f)&&(Math.abs(t.x-C.x)>f||Math.abs(t.y-C.y)>f)){C=t.x-m.x;K=t.y-m.y;t={distSq:C*C+K*K,x:t.x,y:t.y};for(C=0;C<n.length;C++)if(n[C].distSq>t.distSq){n.splice(C,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(E=0;E<n.length;E++)g=e(1,n[E].x,
+n[E].y)||g}t=d[d.length-1];g=e(0,t.x,t.y)||g}b.routedPoints=c;return g}return!1};var n=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(b,d,g){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)n.apply(this,arguments);else{var c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,e=(parseInt(mxUtils.getValue(this.style,
+"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,f=mxUtils.getValue(this.style,"jumpStyle","none"),l=!0,k=null,m=null,p=[],q=null;b.begin();for(var t=0;t<this.state.routedPoints.length;t++){var E=this.state.routedPoints[t],J=new mxPoint(E.x/this.scale,E.y/this.scale);0==t?J=d[0]:t==this.state.routedPoints.length-1&&(J=d[d.length-1]);var C=!1;if(null!=k&&1==E.type){var K=this.state.routedPoints[t+1],E=K.x/this.scale-J.x,K=K.y/this.scale-J.y,E=E*E+K*K;null==q&&(q=new mxPoint(J.x-k.x,J.y-k.y),
+m=Math.sqrt(q.x*q.x+q.y*q.y),0<m?(q.x=q.x*e/m,q.y=q.y*e/m):q=null);E>e*e&&0<m&&(E=k.x-J.x,K=k.y-J.y,E=E*E+K*K,E>e*e&&(C=new mxPoint(J.x-q.x,J.y-q.y),E=new mxPoint(J.x+q.x,J.y+q.y),p.push(C),this.addPoints(b,p,g,c,!1,null,l),p=0>Math.round(q.x)||0==Math.round(q.x)&&0>=Math.round(q.y)?1:-1,l=!1,"sharp"==f?(b.lineTo(C.x-q.y*p,C.y+q.x*p),b.lineTo(E.x-q.y*p,E.y+q.x*p),b.lineTo(E.x,E.y)):"line"==f?(b.moveTo(C.x+q.y*p,C.y-q.x*p),b.lineTo(C.x-q.y*p,C.y+q.x*p),b.moveTo(E.x-q.y*p,E.y+q.x*p),b.lineTo(E.x+q.y*
+p,E.y-q.x*p),b.moveTo(E.x,E.y)):"arc"==f?(p*=1.3,b.curveTo(C.x-q.y*p,C.y+q.x*p,E.x-q.y*p,E.y+q.x*p,E.x,E.y)):(b.moveTo(E.x,E.y),l=!0),p=[E],C=!0))}else q=null;C||(p.push(J),k=J)}this.addPoints(b,p,g,c,!1,null,l);b.stroke()}};var t=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(b,d,g,c){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,g,c,e){if(null==g||null==b||"1"!=g.style.snapToPoint&&"1"!=b.style.snapToPoint)d.apply(this,arguments);else{g=this.getTerminalPort(b,g,e);var f=this.getNextPoint(b,c,e),l=this.graph.isOrthogonal(b),k=mxUtils.toRadians(Number(g.style[mxConstants.STYLE_ROTATION]||"0")),m=new mxPoint(g.getCenterX(),g.getCenterY());if(0!=k)var p=Math.cos(-k),q=Math.sin(-k),f=mxUtils.getRotatedPoint(f,p,q,m);p=parseFloat(b.style[mxConstants.STYLE_PERIMETER_SPACING]||
0);p+=parseFloat(b.style[e?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);f=this.getPerimeterPoint(g,f,0==k&&l,p);0!=k&&(p=Math.cos(k),q=Math.sin(k),f=mxUtils.getRotatedPoint(f,p,q,m));b.setAbsoluteTerminalPoint(this.snapToAnchorPoint(b,g,c,e,f),e)}};mxGraphView.prototype.snapToAnchorPoint=function(b,d,g,c,e){if(null!=d&&null!=b){b=this.graph.getAllConnectionConstraints(d);c=g=null;if(null!=b)for(var f=0;f<b.length;f++){var l=this.graph.getConnectionPoint(d,
b[f]);if(null!=l){var k=(l.x-e.x)*(l.x-e.x)+(l.y-e.y)*(l.y-e.y);if(null==c||k<c)g=l,c=k}}null!=g&&(e=g)}return e};var g=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(b,d,c){var e=g.apply(this,arguments);"1"==b.getAttribute("placeholders")&&null!=c.state&&(e=c.state.view.graph.replacePlaceholders(c.state.cell,e));return e};var l=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(b){if(null!=b.style&&"undefined"!==typeof pako){var d=
@@ -2524,143 +2523,142 @@ d=k.getAttribute("h"),t=null==t?80:parseInt(t,10),d=null==d?80:parseInt(d,10);c(
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 k=mxGraphLayout.prototype.isEdgeIgnored;mxGraphLayout.prototype.isEdgeIgnored=function(b){return k.apply(this,arguments)||
this.graph.isEdgeIgnored(b)};var f=mxConnectionHandler.prototype.isCreateTarget;mxConnectionHandler.prototype.isCreateTarget=function(b){return this.graph.isCloneEvent(b)||f.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.style);return b};var n=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var b=n.apply(this,arguments);b.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];
+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 n=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var b=n.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 g=d.apply(this,arguments);this.error=null;return g});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(" "),g=0;g<d.length;g++)null!=this.currentEdgeStyle[d[g]]&&(b+=d[g]+"="+this.currentEdgeStyle[d[g]]+";");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.updateCellStyles=function(b,d,g){this.model.beginUpdate();try{for(var c=0;c<g.length;c++)if(this.model.isVertex(g[c])||this.model.isEdge(g[c])){this.setCellStyles(b,null,[g[c]]);var e=this.getCellStyle(g[c])[b];d!=(null==e?mxConstants.NONE:e)&&this.setCellStyles(b,d,[g[c]])}}finally{this.model.endUpdate()}};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 g=0;g<b.length;g++){var c=b[g];d[mxObjectIdentity.get(c)]=c.getId();for(var e=this.model.getChildCount(c),f=0;f<e;f++)this.createCellLookup([this.model.getChildAt(c,f)],d)}return d};Graph.prototype.createCellMapping=function(b,d,g){g=null!=g?g:{};for(var c in b){var e=d[c];null==g[e]&&(g[e]=b[c].getId()||
-"")}return g};Graph.prototype.importGraphModel=function(b,d,g,c){d=null!=d?d:0;g=null!=g?g:0;var e=new mxCodec(b.ownerDocument),f=new mxGraphModel;e.decode(b,f);b=[];var e={},l={},k=f.getChildren(this.cloneCell(f.root,this.isCloneInvalidEdges(),e));if(null!=k){var m=this.createCellLookup([f.root]),k=k.slice();this.model.beginUpdate();try{if(1!=k.length||this.isCellLocked(this.getDefaultParent()))for(f=0;f<k.length;f++)p=this.model.getChildren(this.moveCells([k[f]],d,g,!1,this.model.getRoot())[0]),
-null!=p&&(b=b.concat(p));else{var p=f.getChildren(k[0]);null!=p&&(b=this.moveCells(p,d,g,!1,this.getDefaultParent()),l[f.getChildAt(f.root,0).getId()]=this.getDefaultParent().getId())}if(null!=b&&(this.createCellMapping(e,m,l),this.updateCustomLinks(l,b),c)){this.isGridEnabled()&&(d=this.snap(d),g=this.snap(g));var q=this.getBoundingBoxFromGeometry(b,!0);null!=q&&this.moveCells(b,d-q.x,g-q.y)}}finally{this.model.endUpdate()}}return b};Graph.prototype.encodeCells=function(b){for(var d={},g=this.cloneCells(b,
-null,d),c=new mxDictionary,e=0;e<b.length;e++)c.put(b[e],!0);for(var f=new mxCodec,l=new mxGraphModel,k=l.getChildAt(l.getRoot(),0),e=0;e<g.length;e++){l.add(k,g[e]);var m=this.view.getState(b[e]);if(null!=m){var p=this.getCellGeometry(g[e]);null!=p&&p.relative&&!this.model.isEdge(b[e])&&null==c.get(this.model.getParent(b[e]))&&(p.offset=null,p.relative=!1,p.x=m.x/m.view.scale-m.view.translate.x,p.y=m.y/m.view.scale-m.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(d,this.createCellLookup(b)),
-g);return f.encode(l)};Graph.prototype.isSwimlane=function(b,d){if(null!=b&&this.model.getParent(b)!=this.model.getRoot()&&!this.model.isEdge(b)){var g=this.getCurrentCellStyle(b,d)[mxConstants.STYLE_SHAPE];return g==mxConstants.SHAPE_SWIMLANE||"table"==g}return!1};var d=Graph.prototype.isExtendParent;Graph.prototype.isExtendParent=function(b){var g=this.model.getParent(b);if(null!=g){var c=this.getCurrentCellStyle(g);if(null!=c.expand)return"0"!=c.expand}return d.apply(this,arguments)&&(null==g||
-!this.isTable(g))};var g=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(b,d,c,e,f,l,k,m){null==m&&(m=this.model.getParent(b),this.isTable(m)||this.isTableRow(m))&&(m=this.getCellAt(l,k,null,!0,!1));c=null;this.model.beginUpdate();try{c=g.apply(this,[b,d,c,e,f,l,k,m]);this.model.setValue(c,"");var p=this.getChildCells(c,!0);for(d=0;d<p.length;d++){var q=this.getCellGeometry(p[d]);null!=q&&q.relative&&0<q.x&&this.model.remove(p[d])}var E=this.getChildCells(b,!0);for(d=0;d<E.length;d++)q=
-this.getCellGeometry(E[d]),null!=q&&q.relative&&0>=q.x&&this.model.remove(E[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 ha=this.model.getTerminal(c,!1);if(null!=ha){var v=this.getCurrentCellStyle(ha);null!=v&&"1"==v.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 l=Graph.prototype.selectCell;Graph.prototype.selectCell=function(b,d,g){if(d||g)l.apply(this,arguments);else{var c=this.getSelectionCell(),e=null,f=[],k=mxUtils.bind(this,function(d){if(null!=this.view.getState(d)&&(this.model.isVertex(d)||this.model.isEdge(d)))if(f.push(d),d==c)e=
-f.length-1;else if(b&&null==c&&0<f.length||null!=e&&b&&f.length>e||!b&&0<e)return;for(var g=0;g<this.model.getChildCount(d);g++)k(this.model.getChildAt(d,g))});k(this.model.root);0<f.length&&(e=null!=e?mxUtils.mod(e+(b?1:-1),f.length):0,this.setSelectionCell(f[e]))}};Graph.prototype.swapUmlLifelines=function(b,d){var g=!1;if(null!=d&&1==b.length){var c=this.view.getState(d),e=this.view.getState(b[0]);if(null!=c&&null!=e&&"umlLifeline"==c.style.shape&&"umlLifeline"==e.style.shape&&(e=this.getCellGeometry(d),
-c=this.getCellGeometry(b[0]),null!=e&&null!=c)){g=e.clone();e=c.clone();e.x=g.x;e.y=g.y;g.x=c.x;g.y=c.y;this.model.beginUpdate();try{this.model.setGeometry(d,g),this.model.setGeometry(b[0],e)}finally{this.model.endUpdate()}g=!0}}return g};var m=Graph.prototype.moveCells;Graph.prototype.moveCells=function(b,d,g,c,e,f,l){if(!c&&this.swapUmlLifelines(b,e))return b;l=null!=l?l:{};if(this.isTable(e)){for(var k=[],p=0;p<b.length;p++)this.isTable(b[p])?k=k.concat(this.model.getChildCells(b[p],!0).reverse()):
-k.push(b[p]);b=k}this.model.beginUpdate();try{k=[];for(p=0;p<b.length;p++)if(null!=e&&this.isTableRow(b[p])){var q=this.model.getParent(b[p]),E=this.getCellGeometry(b[p]);this.isTable(q)&&k.push(q);if(null!=q&&null!=E&&this.isTable(q)&&this.isTable(e)&&(c||q!=e)){if(!c){var v=this.getCellGeometry(q);null!=v&&(v=v.clone(),v.height-=E.height,this.model.setGeometry(q,v))}v=this.getCellGeometry(e);null!=v&&(v=v.clone(),v.height+=E.height,this.model.setGeometry(e,v));var ha=this.model.getChildCells(e,
-!0);if(0<ha.length){b[p]=c?this.cloneCell(b[p]):b[p];var u=this.model.getChildCells(b[p],!0),A=this.model.getChildCells(ha[0],!0),n=A.length-u.length;if(0<n)for(var x=0;x<n;x++){var I=this.cloneCell(u[u.length-1]);null!=I&&(I.value="",this.model.add(b[p],I))}else if(0>n)for(x=0;x>n;x--)this.model.remove(u[u.length+x-1]);u=this.model.getChildCells(b[p],!0);for(x=0;x<A.length;x++){var P=this.getCellGeometry(A[x]),t=this.getCellGeometry(u[x]);null!=P&&null!=t&&(t=t.clone(),t.width=P.width,this.model.setGeometry(u[x],
-t))}}}}for(var ua=m.apply(this,arguments),p=0;p<k.length;p++)!c&&this.model.contains(k[p])&&0==this.model.getChildCount(k[p])&&this.model.remove(k[p]);c&&this.updateCustomLinks(this.createCellMapping(l,this.createCellLookup(b)),ua)}finally{this.model.endUpdate()}return ua};var p=Graph.prototype.removeCells;Graph.prototype.removeCells=function(b,d){var g=[];this.model.beginUpdate();try{for(var c=0;c<b.length;c++)if(this.isTableCell(b[c])){var e=this.model.getParent(b[c]),f=this.model.getParent(e);
-1==this.model.getChildCount(e)&&1==this.model.getChildCount(f)?0>mxUtils.indexOf(b,f)&&0>mxUtils.indexOf(g,f)&&g.push(f):this.labelChanged(b[c],"")}else{if(this.isTableRow(b[c])&&(f=this.model.getParent(b[c]),0>mxUtils.indexOf(b,f)&&0>mxUtils.indexOf(g,f))){for(var l=this.model.getChildCells(f,!0),k=0,m=0;m<l.length;m++)0<=mxUtils.indexOf(b,l[m])&&k++;k==l.length&&g.push(f)}g.push(b[c])}g=p.apply(this,[g,d])}finally{this.model.endUpdate()}return g};Graph.prototype.updateCustomLinks=function(b,d,g){g=
-null!=g?g:new Graph;for(var c=0;c<d.length;c++)null!=d[c]&&g.updateCustomLinksForCell(b,d[c],g)};Graph.prototype.updateCustomLinksForCell=function(b,d){this.doUpdateCustomLinksForCell(b,d);for(var g=this.model.getChildCount(d),c=0;c<g;c++)this.updateCustomLinksForCell(b,this.model.getChildAt(d,c))};Graph.prototype.doUpdateCustomLinksForCell=function(b,d){};Graph.prototype.getAllConnectionConstraints=function(b,d){if(null!=b){var g=mxUtils.getValue(b.style,"points",null);if(null!=g){var c=[];try{for(var e=
-JSON.parse(g),g=0;g<e.length;g++){var f=e[g];c.push(new mxConnectionConstraint(new mxPoint(f[0],f[1]),2<f.length?"0"!=f[2]:!0,null,3<f.length?f[3]:0,4<f.length?f[4]:0))}}catch(pa){}return c}if(null!=b.shape&&null!=b.shape.bounds){f=b.shape.direction;e=b.shape.bounds;g=b.shape.scale;c=e.width/g;e=e.height/g;if(f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH)f=c,c=e,e=f;g=b.shape.getConstraints(b.style,c,e);if(null!=g)return g;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),g=0,c=0;c<d;c++){var e=this.model.getChildAt(b,c);this.model.isVertex(e)&&
-(e=this.getCellGeometry(e),null==e||e.relative||g++)}return 0<g||this.isContainer(b)};Graph.prototype.isValidDropTarget=function(b,d,g){for(var c=this.getCurrentCellStyle(b),e=!0,f=!0,l=0;l<d.length&&f;l++)e=e&&this.isTable(d[l]),f=f&&this.isTableRow(d[l]);return("1"!=mxUtils.getValue(c,"part","0")||this.isContainer(b))&&"0"!=mxUtils.getValue(c,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(b))&&!this.isTableRow(b)&&(!this.isTable(b)||f||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 g=this.model.getParent(b);null!=g&&(g=this.layoutManager.getLayout(g),null!=g&&g.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 g=this.getModel(),c=[];g.beginUpdate();try{for(var e=0;e<b.length;e++){var f=b[e];if(g.isEdge(f)){var l=g.getTerminal(f,!0),k=g.getTerminal(f,!1);g.setTerminal(f,k,!0);g.setTerminal(f,l,!1);var m=g.getGeometry(f);if(null!=m){m=m.clone();null!=m.points&&m.points.reverse();var p=m.getTerminalPoint(!0),q=m.getTerminalPoint(!1);
-m.setTerminalPoint(p,!1);m.setTerminalPoint(q,!0);g.setGeometry(f,m);var E=this.view.getState(f),v=this.view.getState(l),u=this.view.getState(k);if(null!=E){var A=null!=v?this.getConnectionConstraint(E,v,!0):null,ha=null!=u?this.getConnectionConstraint(E,u,!1):null;this.setConnectionConstraint(f,l,!0,ha);this.setConnectionConstraint(f,k,!1,A);var n=mxUtils.getValue(E.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(E.style,
-mxConstants.STYLE_TARGET_PERIMETER_SPACING),[f]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,n,[f])}c.push(f)}}else if(g.isVertex(f)&&(m=this.getCellGeometry(f),null!=m)){if(!(this.isTable(f)||this.isTableRow(f)||this.isTableCell(f)||this.isSwimlane(f))){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;g.setGeometry(f,m)}var I=this.view.getState(f);if(null!=I){var t=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,
-mxConstants.DIRECTION_NORTH],y=mxUtils.getValue(I.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,t[mxUtils.mod(mxUtils.indexOf(t,y)+(d?-1:1),t.length)],[f])}c.push(f)}}}finally{g.endUpdate()}return c};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 q=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 g=this.view.getState(d);null!=g&&null!=g.shape&&(this.view.invalidate(d),g.shape.bounds=null)}q.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 g=this.view.getState(b[d]);null!=g&&null!=g.shape&&null!=g.shape.stencil&&this.stencilHasPlaceholders(g.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 g=b.ownerDocument.createElement(null!=
-d?d:"span"),c=Array.prototype.slice.call(b.attributes);attr=c.pop();)g.setAttribute(attr.nodeName,attr.nodeValue);g.innerHTML=b.innerHTML;b.parentNode.replaceChild(g,b)};Graph.prototype.processElements=function(b,d){if(null!=b)for(var g=b.getElementsByTagName("*"),c=0;c<g.length;c++)d(g[c])};Graph.prototype.updateLabelElements=function(b,d,g){b=null!=b?b:this.getSelectionCells();for(var c=document.createElement("div"),e=0;e<b.length;e++)if(this.isHtmlLabel(b[e])){var f=this.convertValueToString(b[e]);
-if(null!=f&&0<f.length){c.innerHTML=f;for(var l=c.getElementsByTagName(null!=g?g:"*"),k=0;k<l.length;k++)d(l[k]);c.innerHTML!=f&&this.cellLabelChanged(b[e],c.innerHTML)}}};Graph.prototype.cellLabelChanged=function(b,d,g){d=Graph.zapGremlins(d);this.model.beginUpdate();try{if(null!=b.value&&"object"==typeof b.value){if(this.isReplacePlaceholders(b)&&null!=b.getAttribute("placeholder"))for(var c=b.getAttribute("placeholder"),e=b;null!=e;){if(e==this.model.getRoot()||null!=e.value&&"object"==typeof e.value&&
-e.hasAttribute(c)){this.setAttributeForCell(e,c,d);break}e=this.model.getParent(e)}var f=b.value.cloneNode(!0);Graph.translateDiagram&&null!=Graph.diagramLanguage&&f.hasAttribute("label_"+Graph.diagramLanguage)?f.setAttribute("label_"+Graph.diagramLanguage,d):f.setAttribute("label",d);d=f}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(b){if(null!=b){for(var d=new mxDictionary,g=0;g<b.length;g++)d.put(b[g],!0);for(var c=
-[],g=0;g<b.length;g++){var e=this.model.getParent(b[g]);null==e||d.get(e)||(d.put(e,!0),c.push(e))}for(g=0;g<c.length;g++)if(e=this.view.getState(c[g]),null!=e&&(this.model.isEdge(e.cell)||this.model.isVertex(e.cell))&&this.isCellDeletable(e.cell)&&this.isTransparentState(e)){for(var f=!0,l=0;l<this.model.getChildCount(e.cell)&&f;l++)d.get(this.model.getChildAt(e.cell,l))||(f=!1);f&&b.push(e.cell)}}mxGraph.prototype.cellsRemoved.apply(this,arguments)};Graph.prototype.removeCellsAfterUngroup=function(b){for(var d=
-[],g=0;g<b.length;g++)this.isCellDeletable(b[g])&&this.isTransparentState(this.view.getState(b[g]))&&d.push(b[g]);b=d;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(b,d){this.setAttributeForCell(b,"link",d)};Graph.prototype.setTooltipForCell=function(b,d){var g="tooltip";Graph.translateDiagram&&null!=Graph.diagramLanguage&&mxUtils.isNode(b.value)&&b.value.hasAttribute("tooltip_"+Graph.diagramLanguage)&&(g="tooltip_"+Graph.diagramLanguage);
-this.setAttributeForCell(b,g,d)};Graph.prototype.getAttributeForCell=function(b,d,g){b=null!=b.value&&"object"===typeof b.value?b.value.getAttribute(d):null;return null!=b?b:g};Graph.prototype.setAttributeForCell=function(b,d,g){var c;null!=b.value&&"object"==typeof b.value?c=b.value.cloneNode(!0):(c=mxUtils.createXmlDocument().createElement("UserObject"),c.setAttribute("label",b.value||""));null!=g?c.setAttribute(d,g):c.removeAttribute(d);this.model.setValue(b,c)};var u=Graph.prototype.getDropTarget;
-Graph.prototype.getDropTarget=function(b,d,g,c){this.getModel();if(mxEvent.isAltDown(d))return null;for(var e=0;e<b.length;e++){var f=this.model.getParent(b[e]);if(this.model.isEdge(f)&&0>mxUtils.indexOf(b,f))return null}for(var f=u.apply(this,arguments),l=!0,e=0;e<b.length&&l;e++)l=l&&this.isTableRow(b[e]);l&&(this.isTableCell(f)&&(f=this.model.getParent(f)),this.isTableRow(f)&&(f=this.model.getParent(f)),this.isTable(f)||(f=null));return f};Graph.prototype.click=function(b){mxGraph.prototype.click.call(this,
-b);this.firstClickState=b.getState();this.firstClickSource=b.getSource()};Graph.prototype.dblClick=function(b,d){this.isEnabled()&&(d=this.insertTextForEvent(b,d),mxGraph.prototype.dblClick.call(this,b,d))};Graph.prototype.insertTextForEvent=function(b,d){var g=mxUtils.convertPoint(this.container,mxEvent.getClientX(b),mxEvent.getClientY(b));if(null!=b&&!this.model.isVertex(d)){var c=this.model.isEdge(d)?this.view.getState(d):null,e=mxEvent.getSource(b);this.firstClickState!=c||this.firstClickSource!=
-e||null!=c&&null!=c.text&&null!=c.text.node&&null!=c.text.boundingBox&&(mxUtils.contains(c.text.boundingBox,g.x,g.y)||mxUtils.isAncestorNode(c.text.node,mxEvent.getSource(b)))||(null!=c||this.isCellLocked(this.getDefaultParent()))&&(null==c||this.isCellLocked(c.cell))||!(null!=c||mxClient.IS_SVG&&e==this.view.getCanvas().ownerSVGElement)||(null==c&&(c=this.view.getState(this.getCellAt(g.x,g.y))),d=this.addText(g.x,g.y,c))}return d};Graph.prototype.getInsertPoint=function(){var b=this.getGridSize(),
-d=this.container.scrollLeft/this.view.scale-this.view.translate.x,g=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var c=this.getPageLayout(),e=this.getPageSize(),d=Math.max(d,c.x*e.width),g=Math.max(g,c.y*e.height);return new mxPoint(this.snap(d+b),this.snap(g+b))};Graph.prototype.getFreeInsertPoint=function(){var b=this.view,d=this.getGraphBounds(),g=this.getInsertPoint(),c=this.snap(Math.round(Math.max(g.x,d.x/b.scale-b.translate.x+(0==d.width?2*this.gridSize:
-0)))),b=this.snap(Math.round(Math.max(g.y,(d.y+d.height)/b.scale-b.translate.y+2*this.gridSize)));return new mxPoint(c,b)};Graph.prototype.getCenterInsertPoint=function(b){b=null!=b?b:new mxRectangle;return mxUtils.hasScrollbars(this.container)?new mxPoint(this.snap(Math.round((this.container.scrollLeft+this.container.clientWidth/2)/this.view.scale-this.view.translate.x-b.width/2)),this.snap(Math.round((this.container.scrollTop+this.container.clientHeight/2)/this.view.scale-this.view.translate.y-
-b.height/2))):new mxPoint(this.snap(Math.round(this.container.clientWidth/2/this.view.scale-this.view.translate.x-b.width/2)),this.snap(Math.round(this.container.clientHeight/2/this.view.scale-this.view.translate.y-b.height/2)))};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(b,d,g){var c=new mxCell;c.value="Text";c.geometry=new mxGeometry(0,0,0,0);c.vertex=!0;if(null!=g&&this.model.isEdge(g.cell)){c.style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];";
-c.geometry.relative=!0;c.connectable=!1;var e=this.view.getRelativePoint(g,b,d);c.geometry.x=Math.round(1E4*e.x)/1E4;c.geometry.y=Math.round(e.y);c.geometry.offset=new mxPoint(0,0);var e=this.view.getPoint(g,c.geometry),f=this.view.scale;c.geometry.offset=new mxPoint(Math.round((b-e.x)/f),Math.round((d-e.y)/f))}else e=this.view.translate,c.style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];",c.geometry.width=40,c.geometry.height=20,c.geometry.x=Math.round(b/this.view.scale)-
-e.x-(null!=g?g.origin.x:0),c.geometry.y=Math.round(d/this.view.scale)-e.y-(null!=g?g.origin.y:0),c.style+="autosize=1;";this.getModel().beginUpdate();try{this.addCells([c],null!=g?g.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[c])),this.autoSizeCell(c)}finally{this.getModel().endUpdate()}return c};Graph.prototype.addClickHandler=function(b,d,g){var c=mxUtils.bind(this,function(){var b=this.container.getElementsByTagName("a");if(null!=b)for(var g=0;g<b.length;g++){var c=this.getAbsoluteUrl(b[g].getAttribute("href"));
-null!=c&&(b[g].setAttribute("rel",this.linkRelation),b[g].setAttribute("href",c),null!=d&&mxEvent.addGestureListeners(b[g],null,null,d))}});this.model.addListener(mxEvent.CHANGE,c);c();var e=this.container.style.cursor,f=this.getTolerance(),l=this,k={currentState:null,currentLink:null,currentTarget:null,highlight:null!=b&&""!=b&&b!=mxConstants.NONE?new mxCellHighlight(l,b,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(b){var d=b.sourceState;if(null==d||null==l.getLinkForCell(d.cell))b=
-l.getCellAt(b.getGraphX(),b.getGraphY(),null,null,null,function(b,d,g){return null==l.getLinkForCell(b.cell)}),d=null==d||l.model.isAncestor(b,d.cell)?l.view.getState(b):null;d!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=d,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(b,d){this.startX=d.getGraphX();this.startY=d.getGraphY();this.scrollLeft=l.container.scrollLeft;this.scrollTop=l.container.scrollTop;null==this.currentLink&&"auto"==l.container.style.overflow&&
-(l.container.style.cursor="move");this.updateCurrentState(d)},mouseMove:function(b,d){if(l.isMouseDown){if(null!=this.currentLink){var g=Math.abs(this.startX-d.getGraphX()),c=Math.abs(this.startY-d.getGraphY());(g>f||c>f)&&this.clear()}}else{for(g=d.getSource();null!=g&&"a"!=g.nodeName.toLowerCase();)g=g.parentNode;null!=g?this.clear():(null!=l.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&l.tooltipHandler.reset(d,!0,this.currentState),(null==this.currentState||d.getState()!=this.currentState&&
-null!=d.sourceState||!l.intersects(this.currentState,d.getGraphX(),d.getGraphY()))&&this.updateCurrentState(d))}},mouseUp:function(b,c){for(var e=c.getSource(),k=c.getEvent();null!=e&&"a"!=e.nodeName.toLowerCase();)e=e.parentNode;null==e&&Math.abs(this.scrollLeft-l.container.scrollLeft)<f&&Math.abs(this.scrollTop-l.container.scrollTop)<f&&(null==c.sourceState||!c.isSource(c.sourceState.control))&&((mxEvent.isLeftMouseButton(k)||mxEvent.isMiddleMouseButton(k))&&!mxEvent.isPopupTrigger(k)||mxEvent.isTouchEvent(k))&&
-(null!=this.currentLink?(e=l.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&e||null==d||d(k,this.currentLink),mxEvent.isConsumed(k)||(k=null!=this.currentTarget?this.currentTarget:mxEvent.isMiddleMouseButton(k)?"_blank":e?l.linkTarget:"_top",l.openLink(this.currentLink,k),c.consume())):null!=g&&!c.isConsumed()&&Math.abs(this.scrollLeft-l.container.scrollLeft)<f&&Math.abs(this.scrollTop-l.container.scrollTop)<f&&Math.abs(this.startX-c.getGraphX())<f&&Math.abs(this.startY-
-c.getGraphY())<f&&g(c.getEvent()));this.clear()},activate:function(b){this.currentLink=l.getAbsoluteUrl(l.getLinkForCell(b.cell));null!=this.currentLink&&(this.currentTarget=l.getLinkTargetForCell(b.cell),l.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(b))},clear:function(){null!=l.container&&(l.container.style.cursor=e);this.currentLink=this.currentState=this.currentTarget=null;null!=this.highlight&&this.highlight.hide();null!=l.tooltipHandler&&l.tooltipHandler.hide()}};
-l.click=function(b){};l.addMouseListener(k);mxEvent.addListener(document,"mouseleave",function(b){k.clear()})};Graph.prototype.duplicateCells=function(b,d){b=null!=b?b:this.getSelectionCells();d=null!=d?d:!0;for(var g=0;g<b.length;g++)this.isTableCell(b[g])&&(b[g]=this.model.getParent(b[g]));b=this.model.getTopmostCells(b);var c=this.getModel(),e=this.gridSize,f=[];c.beginUpdate();try{for(var l={},k=this.createCellLookup(b),m=this.cloneCells(b,!1,l,!0),g=0;g<b.length;g++){var p=c.getParent(b[g]);
-if(null!=p){var q=this.moveCells([m[g]],e,e,!1)[0];f.push(q);if(d)c.add(p,m[g]);else{var E=p.getIndex(b[g]);c.add(p,m[g],E+1)}if(this.isTable(p)){var v=this.getCellGeometry(m[g]),u=this.getCellGeometry(p);null!=v&&null!=u&&(u=u.clone(),u.height+=v.height,c.setGeometry(p,u))}}else f.push(m[g])}this.updateCustomLinks(this.createCellMapping(l,k),m,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",m))}finally{c.endUpdate()}return f};Graph.prototype.insertImage=function(b,d,g){if(null!=
-b&&null!=this.cellEditor.textarea){for(var c=this.cellEditor.textarea.getElementsByTagName("img"),e=[],f=0;f<c.length;f++)e.push(c[f]);document.execCommand("insertimage",!1,b);b=this.cellEditor.textarea.getElementsByTagName("img");if(b.length==e.length+1)for(f=b.length-1;0<=f;f--)if(0==f||b[f]!=e[f-1]){b[f].setAttribute("width",d);b[f].setAttribute("height",g);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"),g=[],c=0;c<d.length;c++)g.push(d[c]);document.execCommand("createlink",!1,mxUtils.trim(b));d=this.cellEditor.textarea.getElementsByTagName("a");if(d.length==g.length+1)for(c=d.length-1;0<=c;c--)if(d[c]!=g[c-1]){for(d=d[c].getElementsByTagName("a");0<d.length;){for(g=d[0].parentNode;null!=d[0].firstChild;)g.insertBefore(d[0].firstChild,d[0]);g.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),g=this.getCurrentCellStyle(b);return!this.isTableCell(b)&&!this.isTableRow(b)&&(d||"0"!=mxUtils.getValue(g,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==g[mxConstants.STYLE_WHITE_SPACE])};Graph.prototype.distributeCells=function(b,d){null==d&&(d=this.getSelectionCells());if(null!=d&&1<d.length){for(var g=[],c=null,e=null,f=0;f<d.length;f++)if(this.getModel().isVertex(d[f])){var l=this.view.getState(d[f]);if(null!=l){var k=b?l.getCenterX():
-l.getCenterY(),c=null!=c?Math.max(c,k):k,e=null!=e?Math.min(e,k):k;g.push(l)}}if(2<g.length){g.sort(function(d,g){return b?d.x-g.x:d.y-g.y});l=this.view.translate;k=this.view.scale;e=e/k-(b?l.x:l.y);c=c/k-(b?l.x:l.y);this.getModel().beginUpdate();try{for(var m=(c-e)/(g.length-1),c=e,f=1;f<g.length-1;f++){var p=this.view.getState(this.model.getParent(g[f].cell)),q=this.getCellGeometry(g[f].cell),c=c+m;null!=q&&null!=p&&(q=q.clone(),b?q.x=Math.round(c-q.width/2)-p.origin.x:q.y=Math.round(c-q.height/
-2)-p.origin.y,this.getModel().setGeometry(g[f].cell,q))}}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,g,c,e,f,l,k,m,p,q,E,v,u){var A=null;if(null!=u)for(A=new mxDictionary,q=0;q<u.length;q++)A.put(u[q],!0);if(u=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;g=null!=g?g:0;e=null!=e?e:!0;f=null!=f?f:!0;l=null!=l?l:!0;p=null!=p?p:!1;var n="page"==v?this.view.getBackgroundPageBounds():f&&null==A||c||"diagram"==v?this.getGraphBounds():
-this.getBoundingBox(this.getSelectionCells()),x=this.view.scale;"diagram"==v&&null!=this.backgroundImage&&(n=mxRectangle.fromRectangle(n),n.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==n)throw Error(mxResources.get("drawingEmpty"));var I=mxUtils.createXmlDocument(),t=null!=I.createElementNS?I.createElementNS(mxConstants.NS_SVG,"svg"):I.createElement("svg");
-null!=b&&(null!=t.style?t.style.backgroundColor=b:t.setAttribute("style","background-color:"+b));null==I.createElementNS?(t.setAttribute("xmlns",mxConstants.NS_SVG),t.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):t.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);b=d/x;var y=Math.max(1,Math.ceil(n.width*b)+2*g)+(p&&0==g?5:0),z=Math.max(1,Math.ceil(n.height*b)+2*g)+(p&&0==g?5:0);t.setAttribute("version","1.1");t.setAttribute("width",y+"px");t.setAttribute("height",
-z+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+y+" "+z);I.appendChild(t);var S=null!=I.createElementNS?I.createElementNS(mxConstants.NS_SVG,"g"):I.createElement("g");t.appendChild(S);var C=this.createSvgCanvas(S);C.foOffset=e?-.5:0;C.textOffset=e?-.5:0;C.imageOffset=e?-.5:0;C.translate(Math.floor(g/d-n.x/x),Math.floor(g/d-n.y/x));var ha=document.createElement("div"),N=C.getAlternateText;C.getAlternateText=function(b,d,g,c,e,f,l,k,m,p,q,E,B){if(null!=f&&0<this.state.fontSize)try{mxUtils.isNode(f)?
-f=f.innerText:(ha.innerHTML=f,f=mxUtils.extractTextWithWhitespace(ha.childNodes));for(var va=Math.ceil(2*c/this.state.fontSize),Sa=[],Da=0,Ta=0;(0==va||Da<va)&&Ta<f.length;){var Wa=f.charCodeAt(Ta);if(10==Wa||13==Wa){if(0<Da)break}else Sa.push(f.charAt(Ta)),255>Wa&&Da++;Ta++}Sa.length<f.length&&1<f.length-Sa.length&&(f=mxUtils.trim(Sa.join(""))+"...");return f}catch(hb){return N.apply(this,arguments)}else return N.apply(this,arguments)};var Y=this.backgroundImage;if(null!=Y){d=x/d;var V=this.view.translate,
-P=new mxRectangle((Y.x+V.x)*d,(Y.y+V.y)*d,Y.width*d,Y.height*d);mxUtils.intersects(n,P)&&C.image(Y.x+V.x,Y.y+V.y,Y.width,Y.height,Y.src,!0)}C.scale(b);C.textEnabled=l;k=null!=k?k:this.createSvgImageExport();var ua=k.drawCellState,D=k.getLinkForCellState;k.getLinkForCellState=function(b,d){var g=D.apply(this,arguments);return null==g||b.view.graph.isCustomLink(g)?null:g};k.getLinkTargetForCellState=function(b,d){return b.view.graph.getLinkTargetForCell(b.cell)};k.drawCellState=function(b,d){for(var g=
-b.view.graph,c=null!=A?A.get(b.cell):g.isCellSelected(b.cell),e=g.model.getParent(b.cell);!(f&&null==A||c)&&null!=e;)c=null!=A?A.get(e):g.isCellSelected(e),e=g.model.getParent(e);(f&&null==A||c)&&ua.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),C);this.updateSvgLinks(t,m,!0);this.addForeignObjectWarning(C,t);return t}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 g=b.createElement("switch"),c=b.createElement("g");c.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var e=b.createElement("a");e.setAttribute("transform","translate(0,-5)");null==e.setAttributeNS||d.ownerDocument!=document&&null==document.documentMode?(e.setAttribute("xlink:href",Graph.foreignObjectWarningLink),e.setAttribute("target","_blank")):(e.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",Graph.foreignObjectWarningLink),
-e.setAttributeNS(mxConstants.NS_XLINK,"target","_blank"));var f=b.createElement("text");f.setAttribute("text-anchor","middle");f.setAttribute("font-size","10px");f.setAttribute("x","50%");f.setAttribute("y","100%");mxUtils.write(f,Graph.foreignObjectWarningText);g.appendChild(c);e.appendChild(f);g.appendChild(e);d.appendChild(g)}};Graph.prototype.updateSvgLinks=function(b,d,g){b=b.getElementsByTagName("a");for(var c=0;c<b.length;c++)if(null==b[c].getAttribute("target")){var e=b[c].getAttribute("href");
-null==e&&(e=b[c].getAttribute("xlink:href"));null!=e&&(null!=d&&/^https?:\/\//.test(e)?b[c].setAttribute("target",d):g&&this.isCustomLink(e)&&b[c].setAttribute("href","javascript:void(0);"))}};Graph.prototype.createSvgCanvas=function(b){b=new mxSvgCanvas2D(b);b.pointerEvents=!0;return b};Graph.prototype.getSelectedElement=function(){var b=null;if(window.getSelection){var d=window.getSelection();d.getRangeAt&&d.rangeCount&&(b=d.getRangeAt(0).commonAncestorContainer)}else document.selection&&(b=document.selection.createRange().parentElement());
-return b};Graph.prototype.getSelectedEditingElement=function(){for(var b=this.getSelectedElement();null!=b&&b.nodeType!=mxConstants.NODETYPE_ELEMENT;)b=b.parentNode;null!=b&&b==this.cellEditor.textarea&&1==this.cellEditor.textarea.children.length&&this.cellEditor.textarea.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&(b=this.cellEditor.textarea.firstChild);return b};Graph.prototype.getParentByName=function(b,d,g){for(;null!=b&&b.nodeName!=d;){if(b==g)return null;b=b.parentNode}return b};Graph.prototype.getParentByNames=
-function(b,d,g){for(;null!=b&&!(0<=mxUtils.indexOf(d,b.nodeName));){if(b==g)return null;b=b.parentNode}return b};Graph.prototype.selectNode=function(b){var d=null;if(window.getSelection){if(d=window.getSelection(),d.getRangeAt&&d.rangeCount){var g=document.createRange();g.selectNode(b);d.removeAllRanges();d.addRange(g)}}else(d=document.selection)&&"Control"!=d.type&&(b=d.createRange(),b.collapse(!0),g=d.createRange(),g.setEndPoint("StartToStart",b),g.select())};Graph.prototype.deleteCells=function(b,
-d){var g=null;if(null!=b&&0<b.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){var e=this.model.getParent(b[c]);if(this.isTable(e)){var f=this.getCellGeometry(b[c]),l=this.getCellGeometry(e);null!=f&&null!=l&&(l=l.clone(),l.height-=f.height,this.model.setGeometry(e,l))}}var k=this.selectParentAfterDelete?this.model.getParents(b):null;this.removeCells(b,d)}finally{this.model.endUpdate()}if(null!=k)for(g=[],c=0;c<k.length;c++)this.model.contains(k[c])&&(this.model.isVertex(k[c])||this.model.isEdge(k[c]))&&
-g.push(k[c])}return g};Graph.prototype.insertTableColumn=function(b,d){var g=this.getModel();g.beginUpdate();try{var c=b,e=0;if(this.isTableCell(b))var f=g.getParent(b),c=g.getParent(f),e=mxUtils.indexOf(g.getChildCells(f,!0),b);else this.isTableRow(b)?c=g.getParent(b):b=g.getChildCells(c,!0)[0],d||(e=g.getChildCells(b,!0).length-1);for(var l=g.getChildCells(c,!0),k=Graph.minTableColumnWidth,f=0;f<l.length;f++){var m=g.getChildCells(l[f],!0)[e],p=g.cloneCell(m,!1),q=this.getCellGeometry(p);p.value=
-null;p.style=mxUtils.setStyle(mxUtils.setStyle(p.style,"rowspan",null),"colspan",null);if(null!=q){null!=q.alternateBounds&&(q.width=q.alternateBounds.width,q.height=q.alternateBounds.height,q.alternateBounds=null);var k=q.width,E=this.getCellGeometry(l[f]);null!=E&&(q.height=E.height)}g.add(l[f],p,e+(d?0:1))}var v=this.getCellGeometry(c);null!=v&&(v=v.clone(),v.width+=k,g.setGeometry(c,v))}finally{g.endUpdate()}};Graph.prototype.deleteLane=function(b){var d=this.getModel();d.beginUpdate();try{var g=
-null,g="stackLayout"==this.getCurrentCellStyle(b).childLayout?b:d.getParent(b),c=d.getChildCells(g,!0);0==c.length?d.remove(g):(g==b&&(b=c[c.length-1]),d.remove(b))}finally{d.endUpdate()}};Graph.prototype.insertLane=function(b,d){var g=this.getModel();g.beginUpdate();try{var c=null,e=b;if("stackLayout"==this.getCurrentCellStyle(e).childLayout)var c=e,f=g.getChildCells(c,!0),e=f[d?0:f.length-1];else c=g.getParent(e);var l=c.getIndex(e),e=g.cloneCell(e,!1);e.value=null;g.add(c,e,l+(d?0:1))}finally{g.endUpdate()}};
-Graph.prototype.insertTableRow=function(b,d){var g=this.getModel();g.beginUpdate();try{var c=b,e=b;if(this.isTableCell(b))e=g.getParent(b),c=g.getParent(e);else if(this.isTableRow(b))c=g.getParent(b);else var f=g.getChildCells(c,!0),e=f[d?0:f.length-1];var l=g.getChildCells(e,!0),k=c.getIndex(e),e=g.cloneCell(e,!1);e.value=null;var m=this.getCellGeometry(e);if(null!=m){for(f=0;f<l.length;f++){b=g.cloneCell(l[f],!1);b.value=null;b.style=mxUtils.setStyle(mxUtils.setStyle(b.style,"rowspan",null),"colspan",
-null);var p=this.getCellGeometry(b);null!=p&&(null!=p.alternateBounds&&(p.width=p.alternateBounds.width,p.height=p.alternateBounds.height,p.alternateBounds=null),p.height=m.height);e.insert(b)}g.add(c,e,k+(d?0:1));var q=this.getCellGeometry(c);null!=q&&(q=q.clone(),q.height+=m.height,g.setGeometry(c,q))}}finally{g.endUpdate()}};Graph.prototype.deleteTableColumn=function(b){var d=this.getModel();d.beginUpdate();try{var g=b,c=b;this.isTableCell(b)&&(c=d.getParent(b));this.isTableRow(c)&&(g=d.getParent(c));
-var e=d.getChildCells(g,!0);if(0==e.length)d.remove(g);else{this.isTableRow(c)||(c=e[0]);var f=d.getChildCells(c,!0);if(1>=f.length)d.remove(g);else{var l=f.length-1;this.isTableCell(b)&&(l=mxUtils.indexOf(f,b));for(c=b=0;c<e.length;c++){var k=d.getChildCells(e[c],!0)[l];d.remove(k);var m=this.getCellGeometry(k);null!=m&&(b=Math.max(b,m.width))}var p=this.getCellGeometry(g);null!=p&&(p=p.clone(),p.width-=b,d.setGeometry(g,p))}}}finally{d.endUpdate()}};Graph.prototype.deleteTableRow=function(b){var d=
-this.getModel();d.beginUpdate();try{var g=b,c=b;this.isTableCell(b)&&(b=c=d.getParent(b));this.isTableRow(b)&&(g=d.getParent(c));var e=d.getChildCells(g,!0);if(1>=e.length)d.remove(g);else{this.isTableRow(c)||(c=e[e.length-1]);d.remove(c);b=0;var f=this.getCellGeometry(c);null!=f&&(b=f.height);var l=this.getCellGeometry(g);null!=l&&(l=l.clone(),l.height-=b,d.setGeometry(g,l))}}finally{d.endUpdate()}};Graph.prototype.insertRow=function(b,d){for(var g=b.tBodies[0],c=g.rows[0].cells,e=0,f=0;f<c.length;f++)var l=
-c[f].getAttribute("colspan"),e=e+(null!=l?parseInt(l):1);g=g.insertRow(d);for(f=0;f<e;f++)mxUtils.br(g.insertCell(-1));return g.cells[0]};Graph.prototype.deleteRow=function(b,d){b.tBodies[0].deleteRow(d)};Graph.prototype.insertColumn=function(b,d){var g=b.tHead;if(null!=g)for(var c=0;c<g.rows.length;c++){var e=document.createElement("th");g.rows[c].appendChild(e);mxUtils.br(e)}g=b.tBodies[0];for(c=0;c<g.rows.length;c++)e=g.rows[c].insertCell(d),mxUtils.br(e);return g.rows[0].cells[0<=d?d:g.rows[0].cells.length-
-1]};Graph.prototype.deleteColumn=function(b,d){if(0<=d)for(var g=b.tBodies[0].rows,c=0;c<g.length;c++)g[c].cells.length>d&&g[c].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 g=document.createElement("div");g.innerHTML=b;b=document.createDocumentFragment();for(var c;c=g.firstChild;)lastNode=b.appendChild(c);d.insertNode(b)}}else(d=document.selection)&&"Control"!=
-d.type&&d.createRange().pasteHTML(b)};Graph.prototype.createLinkForHint=function(b,d){function g(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 c=document.createElement("a");c.setAttribute("rel",this.linkRelation);c.setAttribute("href",this.getAbsoluteUrl(b));c.setAttribute("title",g(this.isCustomLink(b)?this.getLinkTitle(b):b,80));null!=
-this.linkTarget&&c.setAttribute("target",this.linkTarget);mxUtils.write(c,g(d,40));this.isCustomLink(b)&&mxEvent.addListener(c,"click",mxUtils.bind(this,function(d){this.customLinkClicked(b);mxEvent.consume(d)}));return c};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(b,d){this.popupMenuHandler.hideMenu()});var b=this.updateMouseEvent;this.updateMouseEvent=function(d){d=
-b.apply(this,arguments);if(mxEvent.isTouchEvent(d.getEvent())&&null==d.getState()){var g=this.getCellAt(d.graphX,d.graphY);null!=g&&this.isSwimlane(g)&&this.hitsSwimlaneContent(g,d.graphX,d.graphY)||(d.state=this.view.getState(g),null!=d.state&&null!=d.state.shape&&(this.container.style.cursor=d.state.shape.node.style.cursor))}null==d.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return d};var d=!1,g=!1,c=!1,e=this.fireMouseEvent;this.fireMouseEvent=function(b,f,l){b==mxEvent.MOUSE_DOWN&&
-(f=this.updateMouseEvent(f),d=this.isCellSelected(f.getCell()),g=this.isSelectionEmpty(),c=this.popupMenuHandler.isMenuShowing());e.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(b,e){var f=mxEvent.isMouseEvent(e.getEvent());this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==e.getState()||!e.isSource(e.getState().control))&&(this.popupMenuHandler.popupTrigger||!c&&!f&&(g&&null==e.getCell()&&this.isSelectionEmpty()||d&&this.isCellSelected(e.getCell())));
-f=!d||f?null:mxUtils.bind(this,function(b){window.setTimeout(mxUtils.bind(this,function(){if(!this.isEditing()){var d=mxUtils.getScrollOrigin();this.popupMenuHandler.popup(e.getX()+d.x+1,e.getY()+d.y+1,b,e.getEvent())}}),500)});mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,[b,e,f])})};mxCellEditor.prototype.isContentEditing=function(){var b=this.graph.view.getState(this.editingCell);return null!=b&&1==b.style.html};mxCellEditor.prototype.isTableSelected=function(){return null!=
-this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",this.textarea)};mxCellEditor.prototype.isTextSelected=function(){var b="";window.getSelection?b=window.getSelection():document.getSelection?b=document.getSelection():document.selection&&(b=document.selection.createRange().text);return""!=b};mxCellEditor.prototype.insertTab=function(b){var d=this.textarea.ownerDocument.defaultView.getSelection(),g=d.getRangeAt(0),c="\t";if(null!=b)for(c="";0<b;)c+=" ",b--;b=document.createElement("span");
-b.style.whiteSpace="pre";b.appendChild(document.createTextNode(c));g.insertNode(b);g.setStartAfter(b);g.setEndAfter(b);d.removeAllRanges();d.addRange(g)};mxCellEditor.prototype.alignText=function(b,d){var g=null!=d&&mxEvent.isShiftDown(d);if(g||null!=window.getSelection&&null!=window.getSelection().containsNode){var c=!0;this.graph.processElements(this.textarea,function(b){g||window.getSelection().containsNode(b,!0)?(b.removeAttribute("align"),b.style.textAlign=null):c=!1});c&&this.graph.cellEditor.setAlign(b)}document.execCommand("justify"+
-b.toLowerCase(),!1,null)};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var b=window.getSelection();if(b.getRangeAt&&b.rangeCount){for(var d=[],g=0,c=b.rangeCount;g<c;++g)d.push(b.getRangeAt(g));return d}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(b){try{if(b)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var d=0,g=b.length;d<
-g;++d)sel.addRange(b[d])}else document.selection&&b.select&&b.select()}catch(ea){}};var v=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(b){null!=b.text&&(b.text.replaceLinefeeds="0"!=mxUtils.getValue(b.style,"nl2Br","1"));v.apply(this,arguments)};var y=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(b,d){this.isKeepFocusEvent(b)||!mxEvent.isAltDown(b.getEvent())?y.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=
-function(b){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var x=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(b,d){b=this.graph.getStartEditingCell(b,d);x.apply(this,arguments);var g=this.graph.view.getState(b);this.textarea.className=null!=g&&1==g.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(b);
-var g=this.graph.getModel().getParent(b),c=this.graph.getCellGeometry(b);if(this.graph.getModel().isEdge(g)&&null!=c&&c.relative||this.graph.getModel().isEdge(b))this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var G=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(b){function d(b,g){g.originalNode=b;b=b.firstChild;for(var c=g.firstChild;null!=b&&null!=c;)d(b,c),b=b.nextSibling,c=c.nextSibling;
-return g}function g(b,d){if(null!=b)if(d.originalNode!=b)c(b);else for(b=b.firstChild,d=d.firstChild;null!=b;){var e=b.nextSibling;null==d?c(b):(g(b,d),d=d.nextSibling);b=e}}function c(b){for(var d=b.firstChild;null!=d;){var g=d.nextSibling;c(d);d=g}1==b.nodeType&&("BR"===b.nodeName||null!=b.firstChild)||3==b.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(b)).length?(3==b.nodeType&&mxUtils.setTextContent(b,mxUtils.getTextContent(b).replace(/\n|\r/g,"")),1==b.nodeType&&(b.removeAttribute("style"),
-b.removeAttribute("class"),b.removeAttribute("width"),b.removeAttribute("cellpadding"),b.removeAttribute("cellspacing"),b.removeAttribute("border"))):b.parentNode.removeChild(b)}G.apply(this,arguments);7!==document.documentMode&&8!==document.documentMode&&mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(b){var c=d(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){null!=this.textarea&&(0<=this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")||
-0<=this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>")?g(this.textarea,c):Graph.removePasteFormatting(this.textarea))}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var b=this.graph.view.getState(this.editingCell);if(null!=b){var d=null!=b&&"0"!=mxUtils.getValue(b.style,"nl2Br","1"),g=this.saveSelection();if(this.codeViewMode){m=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<m.length&&"\n"==m.charAt(m.length-1)&&(m=m.substring(0,m.length-1));m=this.graph.sanitizeHtml(d?
-m.replace(/\n/g,"<br/>"):m,!0);this.textarea.className="mxCellEditor geContentEditable";var c=mxUtils.getValue(b.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),d=mxUtils.getValue(b.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(b.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),f=(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&
-mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,k=[];(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&k.push("underline");(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&k.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(c*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(c)+
-"px";this.textarea.style.textDecoration=k.join(" ");this.textarea.style.fontWeight=f?"bold":"normal";this.textarea.style.fontStyle=l?"italic":"";this.textarea.style.fontFamily=d;this.textarea.style.textAlign=e;this.textarea.style.padding="0px";this.textarea.innerHTML!=m&&(this.textarea.innerHTML=m,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==
-this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var m=mxUtils.htmlEntities(this.textarea.innerHTML);8!=document.documentMode&&(m=mxUtils.replaceTrailingNewlines(m,"<div><br></div>"));m=this.graph.sanitizeHtml(d?m.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):m,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var c=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(c*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;
-this.textarea.style.fontSize=Math.round(c)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.width="";this.textarea.style.padding="2px";this.textarea.innerHTML!=m&&(this.textarea.innerHTML=m);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);
-this.switchSelectionState=g;this.resize()}};var H=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(b,d){if(null!=this.textarea)if(b=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=b){var g=b.view.scale;this.bounds=mxRectangle.fromRectangle(b);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*g;this.bounds.height=60*g;var c=null!=b.text?b.text.margin:null;null==c&&(c=mxUtils.getAlignmentAsPoint(mxUtils.getValue(b.style,mxConstants.STYLE_ALIGN,
-mxConstants.ALIGN_CENTER),mxUtils.getValue(b.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=c.x*this.bounds.width;this.bounds.y+=c.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-4)/g)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/g)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/g)+(this.textarea.offsetHeight-
-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*g);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/g)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*g);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+g+","+
-g+")")}else this.textarea.style.height="",this.textarea.style.overflow="",H.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(b,d){if("0"==mxUtils.getValue(b.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var g=this.graph.getEditingValue(b.cell,d);"1"==mxUtils.getValue(b.style,"nl2Br","1")&&(g=g.replace(/\n/g,"<br/>"));return g=this.graph.sanitizeHtml(g,!0)};mxCellEditorGetCurrentValue=
-mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(b){if("0"==mxUtils.getValue(b.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var d=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return d="1"==mxUtils.getValue(b.style,"nl2Br","1")?d.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):d.replace(/\r\n/g,"").replace(/\n/g,"")};var z=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(b){this.codeViewMode&&this.toggleViewMode();
-z.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(ha){}};var D=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(b,d){this.graph.getModel().beginUpdate();try{D.apply(this,arguments),""==d&&this.graph.isCellDeletable(b.cell)&&0==this.graph.model.getChildCount(b.cell)&&this.graph.isTransparentState(b)&&this.graph.removeCells([b.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=
-function(b){var d=mxUtils.getValue(b.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);null!=d&&d!=mxConstants.NONE||!(null!=b.cell.geometry&&0<b.cell.geometry.width)||0==mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION,0)&&0!=mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,1)||(d=mxUtils.getValue(b.style,mxConstants.STYLE_FILLCOLOR,null));d==mxConstants.NONE&&(d=null);return d};mxCellEditor.prototype.getBorderColor=function(b){var d=mxUtils.getValue(b.style,mxConstants.STYLE_LABEL_BORDERCOLOR,
-null);null!=d&&d!=mxConstants.NONE||!(null!=b.cell.geometry&&0<b.cell.geometry.width)||0==mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION,0)&&0!=mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,1)||(d=mxUtils.getValue(b.style,mxConstants.STYLE_STROKECOLOR,null));d==mxConstants.NONE&&(d=null);return d};mxCellEditor.prototype.getMinimumSize=function(b){var d=this.graph.getView().scale;return new mxRectangle(0,0,null==b.text?30:b.text.size*d+20,30)};mxGraphHandlerIsValidDropTarget=mxGraphHandler.prototype.isValidDropTarget;
-mxGraphHandler.prototype.isValidDropTarget=function(b,d){return mxGraphHandlerIsValidDropTarget.apply(this,arguments)&&!mxEvent.isAltDown(d.getEvent)};mxGraphView.prototype.formatUnitText=function(b){return b?c(b,this.unit):b};mxGraphHandler.prototype.updateHint=function(d){if(null!=this.pBounds&&(null!=this.shape||this.livePreviewActive)){null==this.hint&&(this.hint=b(),this.graph.container.appendChild(this.hint));var g=this.graph.view.translate,e=this.graph.view.scale;d=this.roundLength((this.bounds.x+
-this.currentDx)/e-g.x);g=this.roundLength((this.bounds.y+this.currentDy)/e-g.y);e=this.graph.view.unit;this.hint.innerHTML=c(d,e)+", "+c(g,e);this.hint.style.left=this.pBounds.x+this.currentDx+Math.round((this.pBounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+Editor.hintOffset+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};var L=mxStackLayout.prototype.resizeCell;
-mxStackLayout.prototype.resizeCell=function(b,d){L.apply(this,arguments);var g=this.graph.getCellStyle(b);if(null==g.childLayout){var c=this.graph.model.getParent(b),e=null!=c?this.graph.getCellGeometry(c):null;if(null!=e&&(g=this.graph.getCellStyle(c),"stackLayout"==g.childLayout)){var f=parseFloat(mxUtils.getValue(g,"stackBorder",mxStackLayout.prototype.border)),g="1"==mxUtils.getValue(g,"horizontalStack","1"),l=this.graph.getActualStartSize(c),e=e.clone();g?e.height=d.height+l.y+l.height+2*f:e.width=
-d.width+l.x+l.width+2*f;this.graph.model.setGeometry(c,e)}}};var F=mxSelectionCellsHandler.prototype.getHandledSelectionCells;mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function b(b){g.get(b)||(g.put(b,!0),e.push(b))}for(var d=F.apply(this,arguments),g=new mxDictionary,c=this.graph.model,e=[],f=0;f<d.length;f++){var l=d[f];this.graph.isTableCell(l)?b(c.getParent(c.getParent(l))):this.graph.isTableRow(l)&&b(c.getParent(l));b(l)}return e};var J=mxVertexHandler.prototype.createParentHighlightShape;
-mxVertexHandler.prototype.createParentHighlightShape=function(b){var d=J.apply(this,arguments);d.stroke="#C0C0C0";d.strokewidth=1;return d};var C=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(b){var d=C.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.isControlDown(d.getEvent())};mxVertexHandler.prototype.isCenteredEvent=function(b,d){return!(!this.graph.isSwimlane(b.cell)&&0<this.graph.model.getChildCount(b.cell)&&!this.graph.isCellCollapsed(b.cell)&&"1"==mxUtils.getValue(b.style,"recursiveResize","1")&&null==mxUtils.getValue(b.style,
-"childLayout",null))&&mxEvent.isControlDown(d.getEvent())||mxEvent.isMetaDown(d.getEvent())};var K=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return K.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 M=mxVertexHandler.prototype.isParentHighlightVisible;mxVertexHandler.prototype.isParentHighlightVisible=function(){return M.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var aa=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(b){return b.tableHandle||aa.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 N=mxVertexHandler.prototype.getSelectionBorderBounds;mxVertexHandler.prototype.getSelectionBorderBounds=function(){return N.apply(this,arguments).grow(-this.getSelectionBorderInset())};var O=null,U=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){null==O&&(O=mxCellRenderer.defaultShapes.tableLine);var b=U.apply(this,arguments);
-if(this.graph.isTable(this.state.cell)){var d=function(b,d,g){for(var c=[],e=0;e<b.length;e++){var l=b[e];c.push(null==l?null:new mxPoint((m+l.x+d)*f,(p+l.y+g)*f))}return c},g=this,c=this.graph,e=c.model,f=c.view.scale,l=this.state,k=this.selectionBorder,m=this.state.origin.x+c.view.translate.x,p=this.state.origin.y+c.view.translate.y;null==b&&(b=[]);var q=c.view.getCellStates(e.getChildCells(this.state.cell,!0));if(0<q.length){for(var E=e.getChildCells(q[0].cell,!0),v=c.getTableLines(this.state.cell,
-!1,!0),u=c.getTableLines(this.state.cell,!0,!1),e=0;e<E.length;e++)mxUtils.bind(this,function(e){var m=c.view.getState(E[e]),p=c.getCellGeometry(E[e]),q=null!=p.alternateBounds?p.alternateBounds:p;null==m&&(m=new mxCellState(c.view,E[e],c.getCellStyle(E[e])),m.x=l.x+p.x*f,m.y=l.y+p.y*f,m.width=q.width*f,m.height=q.height*f,m.updateCachedBounds());var p=e<E.length-1?E[e+1]:null,p=null!=p?c.getCellGeometry(p):null,u=null!=p&&null!=p.alternateBounds?p.alternateBounds:p,p=null!=v[e]?new O(v[e],mxConstants.NONE,
-1):new mxLine(new mxRectangle,mxConstants.NONE,1,!0);p.isDashed=k.isDashed;p.svgStrokeTolerance++;m=new mxHandle(m,"col-resize",null,p);m.tableHandle=!0;var A=0;m.shape.node.parentNode.insertBefore(m.shape.node,m.shape.node.parentNode.firstChild);m.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=0==A?mxConstants.NONE:k.stroke;if(this.shape.constructor==O)this.shape.line=d(v[e],A,0),this.shape.updateBoundsFromLine();else{var b=c.getActualStartSize(l.cell,!0);this.shape.bounds.width=
-1;this.shape.bounds.x=this.state.x+(q.width+A)*f;this.shape.bounds.y=l.y+(e==E.length-1?0:b.y*f);this.shape.bounds.height=l.height-(e==E.length-1?0:(b.height+b.y)*f)}this.shape.redraw()}};var n=!1;m.setPosition=function(b,d,g){A=Math.max(Graph.minTableColumnWidth-q.width,d.x-b.x-q.width);n=mxEvent.isShiftDown(g.getEvent());null==u||n||(A=Math.min(A,u.width-Graph.minTableColumnWidth))};m.execute=function(b){if(0!=A)c.setTableColumnWidth(this.state.cell,A,n);else if(!g.blockDelayedSelection){var d=
-c.getCellAt(b.getGraphX(),b.getGraphY())||l.cell;c.graphHandler.selectCellForEvent(d,b)}A=0};m.positionChanged=function(){};m.reset=function(){A=0};b.push(m)})(e);for(e=0;e<q.length;e++)mxUtils.bind(this,function(e){var m=q[e],p=e<q.length-1?q[e+1]:null,p=null!=p?c.getCellGeometry(p.cell):null,E=null!=p&&null!=p.alternateBounds?p.alternateBounds:p,p=null!=u[e]?new O(u[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!1);p.isDashed=k.isDashed;p.svgStrokeTolerance++;m=new mxHandle(m,
-"row-resize",null,p);m.tableHandle=!0;var v=0;m.shape.node.parentNode.insertBefore(m.shape.node,m.shape.node.parentNode.firstChild);m.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=0==v?mxConstants.NONE:k.stroke;if(this.shape.constructor==O)this.shape.line=d(u[e],0,v),this.shape.updateBoundsFromLine();else{var b=c.getActualStartSize(l.cell,!0);this.shape.bounds.height=1;this.shape.bounds.y=this.state.y+this.state.height+v*f;this.shape.bounds.x=l.x+(e==q.length-1?
-0:b.x*f);this.shape.bounds.width=l.width-(e==q.length-1?0:b.width+b.x+f)}this.shape.redraw()}};var A=!1;m.setPosition=function(b,d,g){v=Math.max(Graph.minTableRowHeight-b.height,d.y-b.y-b.height);A=mxEvent.isShiftDown(g.getEvent());null!=E&&A&&(v=Math.min(v,E.height-Graph.minTableRowHeight))};m.execute=function(b){if(0!=v)c.setTableRowHeight(this.state.cell,v,!A);else if(!g.blockDelayedSelection){var d=c.getCellAt(b.getGraphX(),b.getGraphY())||l.cell;c.graphHandler.selectCellForEvent(d,b)}v=0};m.reset=
-function(){v=0};b.push(m)})(e)}}return null!=b?b.reverse():null};var E=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){E.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 g=mxUtils.createImage(Editor.rowMoveImage);g.style.position="absolute";g.style.cursor="pointer";g.style.width="7px";g.style.height="4px";g.style.padding="4px 2px 4px 2px";g.rowState=d;mxEvent.addGestureListeners(g,
-mxUtils.bind(this,function(b){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);!this.graph.isToggleEvent(b)&&this.graph.isCellSelected(d.cell)||this.graph.selectCellForEvent(d.cell,b);mxEvent.isPopupTrigger(b)||(this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=mxEvent.isMouseEvent(b),this.graph.isMouseDown=!0);mxEvent.consume(b)}),null,mxUtils.bind(this,
-function(b){mxEvent.isPopupTrigger(b)&&(this.graph.popupMenuHandler.popup(mxEvent.getClientX(b),mxEvent.getClientY(b),d.cell,b),mxEvent.consume(b))}));this.moveHandles.push(g);this.graph.container.appendChild(g)}})(this.graph.view.getState(b.getChildAt(this.state.cell,d)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){for(var b=0;b<this.customHandles.length;b++)this.customHandles[b].destroy();this.customHandles=this.createCustomHandles()}this.graph.isTable(this.state.cell)&&
-this.refreshMoveHandles()};var I=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var b=new mxPoint(0,0),d=this.tolerance,g=this.state.style.shape;null==mxCellRenderer.defaultShapes[g]&&mxStencilRegistry.getStencil(g);g=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!g&&null!=this.customHandles)for(var c=0;c<this.customHandles.length;c++)if(null!=this.customHandles[c].shape&&null!=this.customHandles[c].shape.bounds){var e=
-this.customHandles[c].shape.bounds,f=e.getCenterX(),l=e.getCenterY();if(Math.abs(this.state.x-f)<e.width/2||Math.abs(this.state.y-l)<e.height/2||Math.abs(this.state.x+this.state.width-f)<e.width/2||Math.abs(this.state.y+this.state.height-l)<e.height/2){g=!0;break}}g&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(d/=2,this.graph.isTable(this.state.cell)&&(d+=7),b.x=this.sizers[0].bounds.width+d,b.y=this.sizers[0].bounds.height+d):b=I.apply(this,arguments);return b};mxVertexHandler.prototype.updateHint=
-function(d){if(this.index!=mxEvent.LABEL_HANDLE){null==this.hint&&(this.hint=b(),this.state.view.graph.container.appendChild(this.hint));if(this.index==mxEvent.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"&deg;";else{d=this.state.view.scale;var g=this.state.view.unit;this.hint.innerHTML=c(this.roundLength(this.bounds.width/d),g)+" x "+c(this.roundLength(this.bounds.height/d),g)}d=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||
-"0");null==d&&(d=this.bounds);this.hint.style.left=d.x+Math.round((d.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=d.y+d.height+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")}};mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};var A=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(b,d){A.apply(this,arguments);null!=
-this.linkHint&&"none"!=this.linkHint.style.display&&null!=this.graph.graphHandler&&null!=this.graph.graphHandler.first&&(this.linkHint.style.display="none")};var Y=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=function(b,d){Y.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(d,g){null==this.hint&&(this.hint=b(),this.state.view.graph.container.appendChild(this.hint));var e=
-this.graph.view.translate,f=this.graph.view.scale,l=this.roundLength(g.x/f-e.x),e=this.roundLength(g.y/f-e.y),f=this.graph.view.unit;this.hint.innerHTML=c(l,f)+", "+c(e,f);this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(l=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*l.x)+"%, "+Math.round(100*l.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility=
-"hidden");this.hint.style.left=Math.round(d.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(d.getGraphY(),g.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};Graph.prototype.expandedImage=Graph.createSvgImage(9,9,'<defs><linearGradient id="grad1" x1="50%" y1="0%" x2="50%" y2="100%"><stop offset="30%" style="stop-color:#f0f0f0;" /><stop offset="100%" style="stop-color:#AFB0B6;" /></linearGradient></defs><rect x="0" y="0" width="9" height="9" stroke="#8A94A5" fill="url(#grad1)" stroke-width="2"/><path d="M 2 4.5 L 7 4.5 z" stroke="#000"/>');
-Graph.prototype.collapsedImage=Graph.createSvgImage(9,9,'<defs><linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="30%" style="stop-color:#f0f0f0;" /><stop offset="100%" style="stop-color:#AFB0B6;" /></linearGradient></defs><rect x="0" y="0" width="9" height="9" stroke="#8A94A5" fill="url(#grad1)" stroke-width="2"/><path d="M 4.5 2 L 4.5 7 M 2 4.5 L 7 4.5 z" stroke="#000"/>');mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=
-Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>');HoverIcons.prototype.endMainHandle=Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>');HoverIcons.prototype.secondaryHandle=Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>');HoverIcons.prototype.fixedHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="#01bd22"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>');
-HoverIcons.prototype.endFixedHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="7" stroke="#fff" fill="#01bd22"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>');HoverIcons.prototype.terminalHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/><circle cx="11" cy="11" r="3" stroke="#fff" fill="transparent"/>');HoverIcons.prototype.endTerminalHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="7" stroke="#fff" fill="'+
-HoverIcons.prototype.arrowFill+'"/><circle cx="11" cy="11" r="3" stroke="#fff" fill="transparent"/>');HoverIcons.prototype.rotationHandle=Graph.createSvgImage(16,16,'<path stroke="'+HoverIcons.prototype.arrowFill+'" fill="'+HoverIcons.prototype.arrowFill+'" d="M15.55 5.55L11 1v3.07C7.06 4.56 4 7.92 4 12s3.05 7.44 7 7.93v-2.02c-2.84-.48-5-2.94-5-5.91s2.16-5.43 5-5.91V10l4.55-4.45zM19.93 11c-.17-1.39-.72-2.73-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02c1.39-.17 2.74-.71 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41c.9-1.16 1.45-2.5 1.62-3.89h-2.02c-.14.87-.48 1.72-1.02 2.48z"/>',
+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 g=0;g<b.length;g++){var c=b[g];d[mxObjectIdentity.get(c)]=c.getId();for(var e=this.model.getChildCount(c),
+f=0;f<e;f++)this.createCellLookup([this.model.getChildAt(c,f)],d)}return d};Graph.prototype.createCellMapping=function(b,d,g){g=null!=g?g:{};for(var c in b){var e=d[c];null==g[e]&&(g[e]=b[c].getId()||"")}return g};Graph.prototype.importGraphModel=function(b,d,g,c){d=null!=d?d:0;g=null!=g?g:0;var e=new mxCodec(b.ownerDocument),f=new mxGraphModel;e.decode(b,f);b=[];var e={},l={},k=f.getChildren(this.cloneCell(f.root,this.isCloneInvalidEdges(),e));if(null!=k){var m=this.createCellLookup([f.root]),k=
+k.slice();this.model.beginUpdate();try{if(1!=k.length||this.isCellLocked(this.getDefaultParent()))for(f=0;f<k.length;f++)p=this.model.getChildren(this.moveCells([k[f]],d,g,!1,this.model.getRoot())[0]),null!=p&&(b=b.concat(p));else{var p=f.getChildren(k[0]);null!=p&&(b=this.moveCells(p,d,g,!1,this.getDefaultParent()),l[f.getChildAt(f.root,0).getId()]=this.getDefaultParent().getId())}if(null!=b&&(this.createCellMapping(e,m,l),this.updateCustomLinks(l,b),c)){this.isGridEnabled()&&(d=this.snap(d),g=this.snap(g));
+var q=this.getBoundingBoxFromGeometry(b,!0);null!=q&&this.moveCells(b,d-q.x,g-q.y)}}finally{this.model.endUpdate()}}return b};Graph.prototype.encodeCells=function(b){for(var d={},g=this.cloneCells(b,null,d),c=new mxDictionary,e=0;e<b.length;e++)c.put(b[e],!0);for(var f=new mxCodec,l=new mxGraphModel,k=l.getChildAt(l.getRoot(),0),e=0;e<g.length;e++){l.add(k,g[e]);var m=this.view.getState(b[e]);if(null!=m){var p=this.getCellGeometry(g[e]);null!=p&&p.relative&&!this.model.isEdge(b[e])&&null==c.get(this.model.getParent(b[e]))&&
+(p.offset=null,p.relative=!1,p.x=m.x/m.view.scale-m.view.translate.x,p.y=m.y/m.view.scale-m.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(d,this.createCellLookup(b)),g);return f.encode(l)};Graph.prototype.isSwimlane=function(b,d){if(null!=b&&this.model.getParent(b)!=this.model.getRoot()&&!this.model.isEdge(b)){var g=this.getCurrentCellStyle(b,d)[mxConstants.STYLE_SHAPE];return g==mxConstants.SHAPE_SWIMLANE||"table"==g}return!1};var d=Graph.prototype.isExtendParent;Graph.prototype.isExtendParent=
+function(b){var g=this.model.getParent(b);if(null!=g){var c=this.getCurrentCellStyle(g);if(null!=c.expand)return"0"!=c.expand}return d.apply(this,arguments)&&(null==g||!this.isTable(g))};var g=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(b,d,c,e,f,l,k,m){null==m&&(m=this.model.getParent(b),this.isTable(m)||this.isTableRow(m))&&(m=this.getCellAt(l,k,null,!0,!1));c=null;this.model.beginUpdate();try{c=g.apply(this,[b,d,c,e,f,l,k,m]);this.model.setValue(c,"");var p=this.getChildCells(c,
+!0);for(d=0;d<p.length;d++){var q=this.getCellGeometry(p[d]);null!=q&&q.relative&&0<q.x&&this.model.remove(p[d])}var F=this.getChildCells(b,!0);for(d=0;d<F.length;d++)q=this.getCellGeometry(F[d]),null!=q&&q.relative&&0>=q.x&&this.model.remove(F[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 ha=this.model.getTerminal(c,!1);if(null!=ha){var v=this.getCurrentCellStyle(ha);null!=v&&"1"==v.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 l=Graph.prototype.selectCell;Graph.prototype.selectCell=function(b,d,g){if(d||g)l.apply(this,arguments);
+else{var c=this.getSelectionCell(),e=null,f=[],k=mxUtils.bind(this,function(d){if(null!=this.view.getState(d)&&(this.model.isVertex(d)||this.model.isEdge(d)))if(f.push(d),d==c)e=f.length-1;else if(b&&null==c&&0<f.length||null!=e&&b&&f.length>e||!b&&0<e)return;for(var g=0;g<this.model.getChildCount(d);g++)k(this.model.getChildAt(d,g))});k(this.model.root);0<f.length&&(e=null!=e?mxUtils.mod(e+(b?1:-1),f.length):0,this.setSelectionCell(f[e]))}};Graph.prototype.swapUmlLifelines=function(b,d){var g=!1;
+if(null!=d&&1==b.length){var c=this.view.getState(d),e=this.view.getState(b[0]);if(null!=c&&null!=e&&"umlLifeline"==c.style.shape&&"umlLifeline"==e.style.shape&&(e=this.getCellGeometry(d),c=this.getCellGeometry(b[0]),null!=e&&null!=c)){g=e.clone();e=c.clone();e.x=g.x;e.y=g.y;g.x=c.x;g.y=c.y;this.model.beginUpdate();try{this.model.setGeometry(d,g),this.model.setGeometry(b[0],e)}finally{this.model.endUpdate()}g=!0}}return g};var m=Graph.prototype.moveCells;Graph.prototype.moveCells=function(b,d,g,c,
+e,f,l){if(!c&&this.swapUmlLifelines(b,e))return b;l=null!=l?l:{};if(this.isTable(e)){for(var k=[],p=0;p<b.length;p++)this.isTable(b[p])?k=k.concat(this.model.getChildCells(b[p],!0).reverse()):k.push(b[p]);b=k}this.model.beginUpdate();try{k=[];for(p=0;p<b.length;p++)if(null!=e&&this.isTableRow(b[p])){var q=this.model.getParent(b[p]),F=this.getCellGeometry(b[p]);this.isTable(q)&&k.push(q);if(null!=q&&null!=F&&this.isTable(q)&&this.isTable(e)&&(c||q!=e)){if(!c){var v=this.getCellGeometry(q);null!=v&&
+(v=v.clone(),v.height-=F.height,this.model.setGeometry(q,v))}v=this.getCellGeometry(e);null!=v&&(v=v.clone(),v.height+=F.height,this.model.setGeometry(e,v));var ha=this.model.getChildCells(e,!0);if(0<ha.length){b[p]=c?this.cloneCell(b[p]):b[p];var u=this.model.getChildCells(b[p],!0),A=this.model.getChildCells(ha[0],!0),n=A.length-u.length;if(0<n)for(var x=0;x<n;x++){var I=this.cloneCell(u[u.length-1]);null!=I&&(I.value="",this.model.add(b[p],I))}else if(0>n)for(x=0;x>n;x--)this.model.remove(u[u.length+
+x-1]);u=this.model.getChildCells(b[p],!0);for(x=0;x<A.length;x++){var P=this.getCellGeometry(A[x]),t=this.getCellGeometry(u[x]);null!=P&&null!=t&&(t=t.clone(),t.width=P.width,this.model.setGeometry(u[x],t))}}}}for(var ua=m.apply(this,arguments),p=0;p<k.length;p++)!c&&this.model.contains(k[p])&&0==this.model.getChildCount(k[p])&&this.model.remove(k[p]);c&&this.updateCustomLinks(this.createCellMapping(l,this.createCellLookup(b)),ua)}finally{this.model.endUpdate()}return ua};var p=Graph.prototype.removeCells;
+Graph.prototype.removeCells=function(b,d){var g=[];this.model.beginUpdate();try{for(var c=0;c<b.length;c++)if(this.isTableCell(b[c])){var e=this.model.getParent(b[c]),f=this.model.getParent(e);1==this.model.getChildCount(e)&&1==this.model.getChildCount(f)?0>mxUtils.indexOf(b,f)&&0>mxUtils.indexOf(g,f)&&g.push(f):this.labelChanged(b[c],"")}else{if(this.isTableRow(b[c])&&(f=this.model.getParent(b[c]),0>mxUtils.indexOf(b,f)&&0>mxUtils.indexOf(g,f))){for(var l=this.model.getChildCells(f,!0),k=0,m=0;m<
+l.length;m++)0<=mxUtils.indexOf(b,l[m])&&k++;k==l.length&&g.push(f)}g.push(b[c])}g=p.apply(this,[g,d])}finally{this.model.endUpdate()}return g};Graph.prototype.updateCustomLinks=function(b,d,g){g=null!=g?g:new Graph;for(var c=0;c<d.length;c++)null!=d[c]&&g.updateCustomLinksForCell(b,d[c],g)};Graph.prototype.updateCustomLinksForCell=function(b,d){this.doUpdateCustomLinksForCell(b,d);for(var g=this.model.getChildCount(d),c=0;c<g;c++)this.updateCustomLinksForCell(b,this.model.getChildAt(d,c))};Graph.prototype.doUpdateCustomLinksForCell=
+function(b,d){};Graph.prototype.getAllConnectionConstraints=function(b,d){if(null!=b){var g=mxUtils.getValue(b.style,"points",null);if(null!=g){var c=[];try{for(var e=JSON.parse(g),g=0;g<e.length;g++){var f=e[g];c.push(new mxConnectionConstraint(new mxPoint(f[0],f[1]),2<f.length?"0"!=f[2]:!0,null,3<f.length?f[3]:0,4<f.length?f[4]:0))}}catch(pa){}return c}if(null!=b.shape&&null!=b.shape.bounds){f=b.shape.direction;e=b.shape.bounds;g=b.shape.scale;c=e.width/g;e=e.height/g;if(f==mxConstants.DIRECTION_NORTH||
+f==mxConstants.DIRECTION_SOUTH)f=c,c=e,e=f;g=b.shape.getConstraints(b.style,c,e);if(null!=g)return g;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),g=0,c=0;c<d;c++){var e=this.model.getChildAt(b,c);this.model.isVertex(e)&&(e=this.getCellGeometry(e),null==e||e.relative||g++)}return 0<g||this.isContainer(b)};Graph.prototype.isValidDropTarget=function(b,d,g){for(var c=this.getCurrentCellStyle(b),e=!0,f=!0,l=0;l<d.length&&f;l++)e=e&&this.isTable(d[l]),f=f&&this.isTableRow(d[l]);return("1"!=mxUtils.getValue(c,"part","0")||
+this.isContainer(b))&&"0"!=mxUtils.getValue(c,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(b))&&!this.isTableRow(b)&&(!this.isTable(b)||f||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 g=
+this.model.getParent(b);null!=g&&(g=this.layoutManager.getLayout(g),null!=g&&g.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 g=this.getModel(),c=[];g.beginUpdate();try{for(var e=0;e<b.length;e++){var f=b[e];if(g.isEdge(f)){var l=
+g.getTerminal(f,!0),k=g.getTerminal(f,!1);g.setTerminal(f,k,!0);g.setTerminal(f,l,!1);var m=g.getGeometry(f);if(null!=m){m=m.clone();null!=m.points&&m.points.reverse();var p=m.getTerminalPoint(!0),q=m.getTerminalPoint(!1);m.setTerminalPoint(p,!1);m.setTerminalPoint(q,!0);g.setGeometry(f,m);var F=this.view.getState(f),v=this.view.getState(l),u=this.view.getState(k);if(null!=F){var A=null!=v?this.getConnectionConstraint(F,v,!0):null,ha=null!=u?this.getConnectionConstraint(F,u,!1):null;this.setConnectionConstraint(f,
+l,!0,ha);this.setConnectionConstraint(f,k,!1,A);var n=mxUtils.getValue(F.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(F.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[f]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,n,[f])}c.push(f)}}else if(g.isVertex(f)&&(m=this.getCellGeometry(f),null!=m)){if(!(this.isTable(f)||this.isTableRow(f)||this.isTableCell(f)||this.isSwimlane(f))){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;g.setGeometry(f,m)}var I=this.view.getState(f);if(null!=I){var t=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],y=mxUtils.getValue(I.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,t[mxUtils.mod(mxUtils.indexOf(t,y)+(d?-1:1),t.length)],[f])}c.push(f)}}}finally{g.endUpdate()}return c};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 q=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 g=this.view.getState(d);null!=g&&null!=g.shape&&(this.view.invalidate(d),g.shape.bounds=null)}q.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 g=this.view.getState(b[d]);null!=g&&null!=g.shape&&null!=g.shape.stencil&&
+this.stencilHasPlaceholders(g.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 g=b.ownerDocument.createElement(null!=d?d:"span"),c=Array.prototype.slice.call(b.attributes);attr=c.pop();)g.setAttribute(attr.nodeName,attr.nodeValue);g.innerHTML=b.innerHTML;b.parentNode.replaceChild(g,b)};Graph.prototype.processElements=function(b,d){if(null!=b)for(var g=b.getElementsByTagName("*"),c=
+0;c<g.length;c++)d(g[c])};Graph.prototype.updateLabelElements=function(b,d,g){b=null!=b?b:this.getSelectionCells();for(var c=document.createElement("div"),e=0;e<b.length;e++)if(this.isHtmlLabel(b[e])){var f=this.convertValueToString(b[e]);if(null!=f&&0<f.length){c.innerHTML=f;for(var l=c.getElementsByTagName(null!=g?g:"*"),k=0;k<l.length;k++)d(l[k]);c.innerHTML!=f&&this.cellLabelChanged(b[e],c.innerHTML)}}};Graph.prototype.cellLabelChanged=function(b,d,g){d=Graph.zapGremlins(d);this.model.beginUpdate();
+try{if(null!=b.value&&"object"==typeof b.value){if(this.isReplacePlaceholders(b)&&null!=b.getAttribute("placeholder"))for(var c=b.getAttribute("placeholder"),e=b;null!=e;){if(e==this.model.getRoot()||null!=e.value&&"object"==typeof e.value&&e.hasAttribute(c)){this.setAttributeForCell(e,c,d);break}e=this.model.getParent(e)}var f=b.value.cloneNode(!0);Graph.translateDiagram&&null!=Graph.diagramLanguage&&f.hasAttribute("label_"+Graph.diagramLanguage)?f.setAttribute("label_"+Graph.diagramLanguage,d):
+f.setAttribute("label",d);d=f}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(b){if(null!=b){for(var d=new mxDictionary,g=0;g<b.length;g++)d.put(b[g],!0);for(var c=[],g=0;g<b.length;g++){var e=this.model.getParent(b[g]);null==e||d.get(e)||(d.put(e,!0),c.push(e))}for(g=0;g<c.length;g++)if(e=this.view.getState(c[g]),null!=e&&(this.model.isEdge(e.cell)||this.model.isVertex(e.cell))&&this.isCellDeletable(e.cell)&&this.isTransparentState(e)){for(var f=
+!0,l=0;l<this.model.getChildCount(e.cell)&&f;l++)d.get(this.model.getChildAt(e.cell,l))||(f=!1);f&&b.push(e.cell)}}mxGraph.prototype.cellsRemoved.apply(this,arguments)};Graph.prototype.removeCellsAfterUngroup=function(b){for(var d=[],g=0;g<b.length;g++)this.isCellDeletable(b[g])&&this.isTransparentState(this.view.getState(b[g]))&&d.push(b[g]);b=d;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(b,d){this.setAttributeForCell(b,"link",d)};Graph.prototype.setTooltipForCell=
+function(b,d){var g="tooltip";Graph.translateDiagram&&null!=Graph.diagramLanguage&&mxUtils.isNode(b.value)&&b.value.hasAttribute("tooltip_"+Graph.diagramLanguage)&&(g="tooltip_"+Graph.diagramLanguage);this.setAttributeForCell(b,g,d)};Graph.prototype.getAttributeForCell=function(b,d,g){b=null!=b.value&&"object"===typeof b.value?b.value.getAttribute(d):null;return null!=b?b:g};Graph.prototype.setAttributeForCell=function(b,d,g){var c;null!=b.value&&"object"==typeof b.value?c=b.value.cloneNode(!0):(c=
+mxUtils.createXmlDocument().createElement("UserObject"),c.setAttribute("label",b.value||""));null!=g?c.setAttribute(d,g):c.removeAttribute(d);this.model.setValue(b,c)};var u=Graph.prototype.getDropTarget;Graph.prototype.getDropTarget=function(b,d,g,c){this.getModel();if(mxEvent.isAltDown(d))return null;for(var e=0;e<b.length;e++){var f=this.model.getParent(b[e]);if(this.model.isEdge(f)&&0>mxUtils.indexOf(b,f))return null}for(var f=u.apply(this,arguments),l=!0,e=0;e<b.length&&l;e++)l=l&&this.isTableRow(b[e]);
+l&&(this.isTableCell(f)&&(f=this.model.getParent(f)),this.isTableRow(f)&&(f=this.model.getParent(f)),this.isTable(f)||(f=null));return f};Graph.prototype.click=function(b){mxGraph.prototype.click.call(this,b);this.firstClickState=b.getState();this.firstClickSource=b.getSource()};Graph.prototype.dblClick=function(b,d){this.isEnabled()&&(d=this.insertTextForEvent(b,d),mxGraph.prototype.dblClick.call(this,b,d))};Graph.prototype.insertTextForEvent=function(b,d){var g=mxUtils.convertPoint(this.container,
+mxEvent.getClientX(b),mxEvent.getClientY(b));if(null!=b&&!this.model.isVertex(d)){var c=this.model.isEdge(d)?this.view.getState(d):null,e=mxEvent.getSource(b);this.firstClickState!=c||this.firstClickSource!=e||null!=c&&null!=c.text&&null!=c.text.node&&null!=c.text.boundingBox&&(mxUtils.contains(c.text.boundingBox,g.x,g.y)||mxUtils.isAncestorNode(c.text.node,mxEvent.getSource(b)))||(null!=c||this.isCellLocked(this.getDefaultParent()))&&(null==c||this.isCellLocked(c.cell))||!(null!=c||mxClient.IS_SVG&&
+e==this.view.getCanvas().ownerSVGElement)||(null==c&&(c=this.view.getState(this.getCellAt(g.x,g.y))),d=this.addText(g.x,g.y,c))}return d};Graph.prototype.getInsertPoint=function(){var b=this.getGridSize(),d=this.container.scrollLeft/this.view.scale-this.view.translate.x,g=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var c=this.getPageLayout(),e=this.getPageSize(),d=Math.max(d,c.x*e.width),g=Math.max(g,c.y*e.height);return new mxPoint(this.snap(d+b),this.snap(g+
+b))};Graph.prototype.getFreeInsertPoint=function(){var b=this.view,d=this.getGraphBounds(),g=this.getInsertPoint(),c=this.snap(Math.round(Math.max(g.x,d.x/b.scale-b.translate.x+(0==d.width?2*this.gridSize:0)))),b=this.snap(Math.round(Math.max(g.y,(d.y+d.height)/b.scale-b.translate.y+2*this.gridSize)));return new mxPoint(c,b)};Graph.prototype.getCenterInsertPoint=function(b){b=null!=b?b:new mxRectangle;return mxUtils.hasScrollbars(this.container)?new mxPoint(this.snap(Math.round((this.container.scrollLeft+
+this.container.clientWidth/2)/this.view.scale-this.view.translate.x-b.width/2)),this.snap(Math.round((this.container.scrollTop+this.container.clientHeight/2)/this.view.scale-this.view.translate.y-b.height/2))):new mxPoint(this.snap(Math.round(this.container.clientWidth/2/this.view.scale-this.view.translate.x-b.width/2)),this.snap(Math.round(this.container.clientHeight/2/this.view.scale-this.view.translate.y-b.height/2)))};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=
+function(b,d,g){var c=new mxCell;c.value="Text";c.geometry=new mxGeometry(0,0,0,0);c.vertex=!0;if(null!=g&&this.model.isEdge(g.cell)){c.style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];";c.geometry.relative=!0;c.connectable=!1;var e=this.view.getRelativePoint(g,b,d);c.geometry.x=Math.round(1E4*e.x)/1E4;c.geometry.y=Math.round(e.y);c.geometry.offset=new mxPoint(0,0);var e=this.view.getPoint(g,c.geometry),f=this.view.scale;c.geometry.offset=new mxPoint(Math.round((b-e.x)/
+f),Math.round((d-e.y)/f))}else e=this.view.translate,c.style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];",c.geometry.width=40,c.geometry.height=20,c.geometry.x=Math.round(b/this.view.scale)-e.x-(null!=g?g.origin.x:0),c.geometry.y=Math.round(d/this.view.scale)-e.y-(null!=g?g.origin.y:0),c.style+="autosize=1;";this.getModel().beginUpdate();try{this.addCells([c],null!=g?g.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[c])),this.autoSizeCell(c)}finally{this.getModel().endUpdate()}return c};
+Graph.prototype.addClickHandler=function(b,d,g){var c=mxUtils.bind(this,function(){var b=this.container.getElementsByTagName("a");if(null!=b)for(var g=0;g<b.length;g++){var c=this.getAbsoluteUrl(b[g].getAttribute("href"));null!=c&&(b[g].setAttribute("rel",this.linkRelation),b[g].setAttribute("href",c),null!=d&&mxEvent.addGestureListeners(b[g],null,null,d))}});this.model.addListener(mxEvent.CHANGE,c);c();var e=this.container.style.cursor,f=this.getTolerance(),l=this,k={currentState:null,currentLink:null,
+currentTarget:null,highlight:null!=b&&""!=b&&b!=mxConstants.NONE?new mxCellHighlight(l,b,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(b){var d=b.sourceState;if(null==d||null==l.getLinkForCell(d.cell))b=l.getCellAt(b.getGraphX(),b.getGraphY(),null,null,null,function(b,d,g){return null==l.getLinkForCell(b.cell)}),d=null==d||l.model.isAncestor(b,d.cell)?l.view.getState(b):null;d!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=d,null!=this.currentState&&
+this.activate(this.currentState))},mouseDown:function(b,d){this.startX=d.getGraphX();this.startY=d.getGraphY();this.scrollLeft=l.container.scrollLeft;this.scrollTop=l.container.scrollTop;null==this.currentLink&&"auto"==l.container.style.overflow&&(l.container.style.cursor="move");this.updateCurrentState(d)},mouseMove:function(b,d){if(l.isMouseDown){if(null!=this.currentLink){var g=Math.abs(this.startX-d.getGraphX()),c=Math.abs(this.startY-d.getGraphY());(g>f||c>f)&&this.clear()}}else{for(g=d.getSource();null!=
+g&&"a"!=g.nodeName.toLowerCase();)g=g.parentNode;null!=g?this.clear():(null!=l.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&l.tooltipHandler.reset(d,!0,this.currentState),(null==this.currentState||d.getState()!=this.currentState&&null!=d.sourceState||!l.intersects(this.currentState,d.getGraphX(),d.getGraphY()))&&this.updateCurrentState(d))}},mouseUp:function(b,c){for(var e=c.getSource(),k=c.getEvent();null!=e&&"a"!=e.nodeName.toLowerCase();)e=e.parentNode;null==e&&Math.abs(this.scrollLeft-
+l.container.scrollLeft)<f&&Math.abs(this.scrollTop-l.container.scrollTop)<f&&(null==c.sourceState||!c.isSource(c.sourceState.control))&&((mxEvent.isLeftMouseButton(k)||mxEvent.isMiddleMouseButton(k))&&!mxEvent.isPopupTrigger(k)||mxEvent.isTouchEvent(k))&&(null!=this.currentLink?(e=l.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&e||null==d||d(k,this.currentLink),mxEvent.isConsumed(k)||(k=null!=this.currentTarget?this.currentTarget:mxEvent.isMiddleMouseButton(k)?"_blank":
+e?l.linkTarget:"_top",l.openLink(this.currentLink,k),c.consume())):null!=g&&!c.isConsumed()&&Math.abs(this.scrollLeft-l.container.scrollLeft)<f&&Math.abs(this.scrollTop-l.container.scrollTop)<f&&Math.abs(this.startX-c.getGraphX())<f&&Math.abs(this.startY-c.getGraphY())<f&&g(c.getEvent()));this.clear()},activate:function(b){this.currentLink=l.getAbsoluteUrl(l.getLinkForCell(b.cell));null!=this.currentLink&&(this.currentTarget=l.getLinkTargetForCell(b.cell),l.container.style.cursor="pointer",null!=
+this.highlight&&this.highlight.highlight(b))},clear:function(){null!=l.container&&(l.container.style.cursor=e);this.currentLink=this.currentState=this.currentTarget=null;null!=this.highlight&&this.highlight.hide();null!=l.tooltipHandler&&l.tooltipHandler.hide()}};l.click=function(b){};l.addMouseListener(k);mxEvent.addListener(document,"mouseleave",function(b){k.clear()})};Graph.prototype.duplicateCells=function(b,d){b=null!=b?b:this.getSelectionCells();d=null!=d?d:!0;for(var g=0;g<b.length;g++)this.isTableCell(b[g])&&
+(b[g]=this.model.getParent(b[g]));b=this.model.getTopmostCells(b);var c=this.getModel(),e=this.gridSize,f=[];c.beginUpdate();try{for(var l={},k=this.createCellLookup(b),m=this.cloneCells(b,!1,l,!0),g=0;g<b.length;g++){var p=c.getParent(b[g]);if(null!=p){var q=this.moveCells([m[g]],e,e,!1)[0];f.push(q);if(d)c.add(p,m[g]);else{var F=p.getIndex(b[g]);c.add(p,m[g],F+1)}if(this.isTable(p)){var v=this.getCellGeometry(m[g]),u=this.getCellGeometry(p);null!=v&&null!=u&&(u=u.clone(),u.height+=v.height,c.setGeometry(p,
+u))}}else f.push(m[g])}this.updateCustomLinks(this.createCellMapping(l,k),m,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",m))}finally{c.endUpdate()}return f};Graph.prototype.insertImage=function(b,d,g){if(null!=b&&null!=this.cellEditor.textarea){for(var c=this.cellEditor.textarea.getElementsByTagName("img"),e=[],f=0;f<c.length;f++)e.push(c[f]);document.execCommand("insertimage",!1,b);b=this.cellEditor.textarea.getElementsByTagName("img");if(b.length==e.length+1)for(f=b.length-
+1;0<=f;f--)if(0==f||b[f]!=e[f-1]){b[f].setAttribute("width",d);b[f].setAttribute("height",g);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"),g=[],c=0;c<d.length;c++)g.push(d[c]);document.execCommand("createlink",!1,mxUtils.trim(b));d=this.cellEditor.textarea.getElementsByTagName("a");if(d.length==g.length+1)for(c=d.length-1;0<=c;c--)if(d[c]!=
+g[c-1]){for(d=d[c].getElementsByTagName("a");0<d.length;){for(g=d[0].parentNode;null!=d[0].firstChild;)g.insertBefore(d[0].firstChild,d[0]);g.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),g=this.getCurrentCellStyle(b);return!this.isTableCell(b)&&!this.isTableRow(b)&&(d||"0"!=mxUtils.getValue(g,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==g[mxConstants.STYLE_WHITE_SPACE])};
+Graph.prototype.distributeCells=function(b,d){null==d&&(d=this.getSelectionCells());if(null!=d&&1<d.length){for(var g=[],c=null,e=null,f=0;f<d.length;f++)if(this.getModel().isVertex(d[f])){var l=this.view.getState(d[f]);if(null!=l){var k=b?l.getCenterX():l.getCenterY(),c=null!=c?Math.max(c,k):k,e=null!=e?Math.min(e,k):k;g.push(l)}}if(2<g.length){g.sort(function(d,g){return b?d.x-g.x:d.y-g.y});l=this.view.translate;k=this.view.scale;e=e/k-(b?l.x:l.y);c=c/k-(b?l.x:l.y);this.getModel().beginUpdate();
+try{for(var m=(c-e)/(g.length-1),c=e,f=1;f<g.length-1;f++){var p=this.view.getState(this.model.getParent(g[f].cell)),q=this.getCellGeometry(g[f].cell),c=c+m;null!=q&&null!=p&&(q=q.clone(),b?q.x=Math.round(c-q.width/2)-p.origin.x:q.y=Math.round(c-q.height/2)-p.origin.y,this.getModel().setGeometry(g[f].cell,q))}}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,g,c,e,f,l,k,m,p,q,F,v,u){var A=null;if(null!=u)for(A=new mxDictionary,q=0;q<u.length;q++)A.put(u[q],!0);if(u=this.useCssTransforms)this.useCssTransforms=
+!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;g=null!=g?g:0;e=null!=e?e:!0;f=null!=f?f:!0;l=null!=l?l:!0;p=null!=p?p:!1;var n="page"==v?this.view.getBackgroundPageBounds():f&&null==A||c||"diagram"==v?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),x=this.view.scale;"diagram"==v&&null!=this.backgroundImage&&(n=mxRectangle.fromRectangle(n),n.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==n)throw Error(mxResources.get("drawingEmpty"));var I=mxUtils.createXmlDocument(),t=null!=I.createElementNS?I.createElementNS(mxConstants.NS_SVG,"svg"):I.createElement("svg");null!=b&&(null!=t.style?t.style.backgroundColor=b:t.setAttribute("style","background-color:"+b));null==I.createElementNS?(t.setAttribute("xmlns",mxConstants.NS_SVG),t.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):t.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);
+b=d/x;var y=Math.max(1,Math.ceil(n.width*b)+2*g)+(p&&0==g?5:0),z=Math.max(1,Math.ceil(n.height*b)+2*g)+(p&&0==g?5:0);t.setAttribute("version","1.1");t.setAttribute("width",y+"px");t.setAttribute("height",z+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+y+" "+z);I.appendChild(t);var S=null!=I.createElementNS?I.createElementNS(mxConstants.NS_SVG,"g"):I.createElement("g");t.appendChild(S);var C=this.createSvgCanvas(S);C.foOffset=e?-.5:0;C.textOffset=e?-.5:0;C.imageOffset=e?-.5:0;C.translate(Math.floor(g/
+d-n.x/x),Math.floor(g/d-n.y/x));var ha=document.createElement("div"),ca=C.getAlternateText;C.getAlternateText=function(b,d,g,c,e,f,l,k,m,p,q,F,B){if(null!=f&&0<this.state.fontSize)try{mxUtils.isNode(f)?f=f.innerText:(ha.innerHTML=f,f=mxUtils.extractTextWithWhitespace(ha.childNodes));for(var va=Math.ceil(2*c/this.state.fontSize),Sa=[],Da=0,Ta=0;(0==va||Da<va)&&Ta<f.length;){var Wa=f.charCodeAt(Ta);if(10==Wa||13==Wa){if(0<Da)break}else Sa.push(f.charAt(Ta)),255>Wa&&Da++;Ta++}Sa.length<f.length&&1<f.length-
+Sa.length&&(f=mxUtils.trim(Sa.join(""))+"...");return f}catch(hb){return ca.apply(this,arguments)}else return ca.apply(this,arguments)};var M=this.backgroundImage;if(null!=M){d=x/d;var V=this.view.translate,P=new mxRectangle((M.x+V.x)*d,(M.y+V.y)*d,M.width*d,M.height*d);mxUtils.intersects(n,P)&&C.image(M.x+V.x,M.y+V.y,M.width,M.height,M.src,!0)}C.scale(b);C.textEnabled=l;k=null!=k?k:this.createSvgImageExport();var ua=k.drawCellState,D=k.getLinkForCellState;k.getLinkForCellState=function(b,d){var g=
+D.apply(this,arguments);return null==g||b.view.graph.isCustomLink(g)?null:g};k.getLinkTargetForCellState=function(b,d){return b.view.graph.getLinkTargetForCell(b.cell)};k.drawCellState=function(b,d){for(var g=b.view.graph,c=null!=A?A.get(b.cell):g.isCellSelected(b.cell),e=g.model.getParent(b.cell);!(f&&null==A||c)&&null!=e;)c=null!=A?A.get(e):g.isCellSelected(e),e=g.model.getParent(e);(f&&null==A||c)&&ua.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),C);this.updateSvgLinks(t,
+m,!0);this.addForeignObjectWarning(C,t);return t}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 g=b.createElement("switch"),c=b.createElement("g");c.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var e=b.createElement("a");e.setAttribute("transform","translate(0,-5)");null==e.setAttributeNS||
+d.ownerDocument!=document&&null==document.documentMode?(e.setAttribute("xlink:href",Graph.foreignObjectWarningLink),e.setAttribute("target","_blank")):(e.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",Graph.foreignObjectWarningLink),e.setAttributeNS(mxConstants.NS_XLINK,"target","_blank"));var f=b.createElement("text");f.setAttribute("text-anchor","middle");f.setAttribute("font-size","10px");f.setAttribute("x","50%");f.setAttribute("y","100%");mxUtils.write(f,Graph.foreignObjectWarningText);g.appendChild(c);
+e.appendChild(f);g.appendChild(e);d.appendChild(g)}};Graph.prototype.updateSvgLinks=function(b,d,g){b=b.getElementsByTagName("a");for(var c=0;c<b.length;c++)if(null==b[c].getAttribute("target")){var e=b[c].getAttribute("href");null==e&&(e=b[c].getAttribute("xlink:href"));null!=e&&(null!=d&&/^https?:\/\//.test(e)?b[c].setAttribute("target",d):g&&this.isCustomLink(e)&&b[c].setAttribute("href","javascript:void(0);"))}};Graph.prototype.createSvgCanvas=function(b){b=new mxSvgCanvas2D(b);b.pointerEvents=
+!0;return b};Graph.prototype.getSelectedElement=function(){var b=null;if(window.getSelection){var d=window.getSelection();d.getRangeAt&&d.rangeCount&&(b=d.getRangeAt(0).commonAncestorContainer)}else document.selection&&(b=document.selection.createRange().parentElement());return b};Graph.prototype.getSelectedEditingElement=function(){for(var b=this.getSelectedElement();null!=b&&b.nodeType!=mxConstants.NODETYPE_ELEMENT;)b=b.parentNode;null!=b&&b==this.cellEditor.textarea&&1==this.cellEditor.textarea.children.length&&
+this.cellEditor.textarea.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&(b=this.cellEditor.textarea.firstChild);return b};Graph.prototype.getParentByName=function(b,d,g){for(;null!=b&&b.nodeName!=d;){if(b==g)return null;b=b.parentNode}return b};Graph.prototype.getParentByNames=function(b,d,g){for(;null!=b&&!(0<=mxUtils.indexOf(d,b.nodeName));){if(b==g)return null;b=b.parentNode}return b};Graph.prototype.selectNode=function(b){var d=null;if(window.getSelection){if(d=window.getSelection(),d.getRangeAt&&
+d.rangeCount){var g=document.createRange();g.selectNode(b);d.removeAllRanges();d.addRange(g)}}else(d=document.selection)&&"Control"!=d.type&&(b=d.createRange(),b.collapse(!0),g=d.createRange(),g.setEndPoint("StartToStart",b),g.select())};Graph.prototype.deleteCells=function(b,d){var g=null;if(null!=b&&0<b.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){var e=this.model.getParent(b[c]);if(this.isTable(e)){var f=this.getCellGeometry(b[c]),l=this.getCellGeometry(e);null!=f&&null!=l&&
+(l=l.clone(),l.height-=f.height,this.model.setGeometry(e,l))}}var k=this.selectParentAfterDelete?this.model.getParents(b):null;this.removeCells(b,d)}finally{this.model.endUpdate()}if(null!=k)for(g=[],c=0;c<k.length;c++)this.model.contains(k[c])&&(this.model.isVertex(k[c])||this.model.isEdge(k[c]))&&g.push(k[c])}return g};Graph.prototype.insertTableColumn=function(b,d){var g=this.getModel();g.beginUpdate();try{var c=b,e=0;if(this.isTableCell(b))var f=g.getParent(b),c=g.getParent(f),e=mxUtils.indexOf(g.getChildCells(f,
+!0),b);else this.isTableRow(b)?c=g.getParent(b):b=g.getChildCells(c,!0)[0],d||(e=g.getChildCells(b,!0).length-1);for(var l=g.getChildCells(c,!0),k=Graph.minTableColumnWidth,f=0;f<l.length;f++){var m=g.getChildCells(l[f],!0)[e],p=g.cloneCell(m,!1),q=this.getCellGeometry(p);p.value=null;p.style=mxUtils.setStyle(mxUtils.setStyle(p.style,"rowspan",null),"colspan",null);if(null!=q){null!=q.alternateBounds&&(q.width=q.alternateBounds.width,q.height=q.alternateBounds.height,q.alternateBounds=null);var k=
+q.width,F=this.getCellGeometry(l[f]);null!=F&&(q.height=F.height)}g.add(l[f],p,e+(d?0:1))}var v=this.getCellGeometry(c);null!=v&&(v=v.clone(),v.width+=k,g.setGeometry(c,v))}finally{g.endUpdate()}};Graph.prototype.deleteLane=function(b){var d=this.getModel();d.beginUpdate();try{var g=null,g="stackLayout"==this.getCurrentCellStyle(b).childLayout?b:d.getParent(b),c=d.getChildCells(g,!0);0==c.length?d.remove(g):(g==b&&(b=c[c.length-1]),d.remove(b))}finally{d.endUpdate()}};Graph.prototype.insertLane=function(b,
+d){var g=this.getModel();g.beginUpdate();try{var c=null,e=b;if("stackLayout"==this.getCurrentCellStyle(e).childLayout)var c=e,f=g.getChildCells(c,!0),e=f[d?0:f.length-1];else c=g.getParent(e);var l=c.getIndex(e),e=g.cloneCell(e,!1);e.value=null;g.add(c,e,l+(d?0:1))}finally{g.endUpdate()}};Graph.prototype.insertTableRow=function(b,d){var g=this.getModel();g.beginUpdate();try{var c=b,e=b;if(this.isTableCell(b))e=g.getParent(b),c=g.getParent(e);else if(this.isTableRow(b))c=g.getParent(b);else var f=
+g.getChildCells(c,!0),e=f[d?0:f.length-1];var l=g.getChildCells(e,!0),k=c.getIndex(e),e=g.cloneCell(e,!1);e.value=null;var m=this.getCellGeometry(e);if(null!=m){for(f=0;f<l.length;f++){b=g.cloneCell(l[f],!1);b.value=null;b.style=mxUtils.setStyle(mxUtils.setStyle(b.style,"rowspan",null),"colspan",null);var p=this.getCellGeometry(b);null!=p&&(null!=p.alternateBounds&&(p.width=p.alternateBounds.width,p.height=p.alternateBounds.height,p.alternateBounds=null),p.height=m.height);e.insert(b)}g.add(c,e,k+
+(d?0:1));var q=this.getCellGeometry(c);null!=q&&(q=q.clone(),q.height+=m.height,g.setGeometry(c,q))}}finally{g.endUpdate()}};Graph.prototype.deleteTableColumn=function(b){var d=this.getModel();d.beginUpdate();try{var g=b,c=b;this.isTableCell(b)&&(c=d.getParent(b));this.isTableRow(c)&&(g=d.getParent(c));var e=d.getChildCells(g,!0);if(0==e.length)d.remove(g);else{this.isTableRow(c)||(c=e[0]);var f=d.getChildCells(c,!0);if(1>=f.length)d.remove(g);else{var l=f.length-1;this.isTableCell(b)&&(l=mxUtils.indexOf(f,
+b));for(c=b=0;c<e.length;c++){var k=d.getChildCells(e[c],!0)[l];d.remove(k);var m=this.getCellGeometry(k);null!=m&&(b=Math.max(b,m.width))}var p=this.getCellGeometry(g);null!=p&&(p=p.clone(),p.width-=b,d.setGeometry(g,p))}}}finally{d.endUpdate()}};Graph.prototype.deleteTableRow=function(b){var d=this.getModel();d.beginUpdate();try{var g=b,c=b;this.isTableCell(b)&&(b=c=d.getParent(b));this.isTableRow(b)&&(g=d.getParent(c));var e=d.getChildCells(g,!0);if(1>=e.length)d.remove(g);else{this.isTableRow(c)||
+(c=e[e.length-1]);d.remove(c);b=0;var f=this.getCellGeometry(c);null!=f&&(b=f.height);var l=this.getCellGeometry(g);null!=l&&(l=l.clone(),l.height-=b,d.setGeometry(g,l))}}finally{d.endUpdate()}};Graph.prototype.insertRow=function(b,d){for(var g=b.tBodies[0],c=g.rows[0].cells,e=0,f=0;f<c.length;f++)var l=c[f].getAttribute("colspan"),e=e+(null!=l?parseInt(l):1);g=g.insertRow(d);for(f=0;f<e;f++)mxUtils.br(g.insertCell(-1));return g.cells[0]};Graph.prototype.deleteRow=function(b,d){b.tBodies[0].deleteRow(d)};
+Graph.prototype.insertColumn=function(b,d){var g=b.tHead;if(null!=g)for(var c=0;c<g.rows.length;c++){var e=document.createElement("th");g.rows[c].appendChild(e);mxUtils.br(e)}g=b.tBodies[0];for(c=0;c<g.rows.length;c++)e=g.rows[c].insertCell(d),mxUtils.br(e);return g.rows[0].cells[0<=d?d:g.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(b,d){if(0<=d)for(var g=b.tBodies[0].rows,c=0;c<g.length;c++)g[c].cells.length>d&&g[c].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 g=document.createElement("div");g.innerHTML=b;b=document.createDocumentFragment();for(var c;c=g.firstChild;)lastNode=b.appendChild(c);d.insertNode(b)}}else(d=document.selection)&&"Control"!=d.type&&d.createRange().pasteHTML(b)};Graph.prototype.createLinkForHint=function(b,d){function g(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 c=document.createElement("a");c.setAttribute("rel",this.linkRelation);c.setAttribute("href",this.getAbsoluteUrl(b));c.setAttribute("title",g(this.isCustomLink(b)?this.getLinkTitle(b):b,80));null!=this.linkTarget&&c.setAttribute("target",this.linkTarget);mxUtils.write(c,g(d,40));this.isCustomLink(b)&&mxEvent.addListener(c,"click",mxUtils.bind(this,function(d){this.customLinkClicked(b);
+mxEvent.consume(d)}));return c};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(b,d){this.popupMenuHandler.hideMenu()});var b=this.updateMouseEvent;this.updateMouseEvent=function(d){d=b.apply(this,arguments);if(mxEvent.isTouchEvent(d.getEvent())&&null==d.getState()){var g=this.getCellAt(d.graphX,d.graphY);null!=g&&this.isSwimlane(g)&&this.hitsSwimlaneContent(g,d.graphX,
+d.graphY)||(d.state=this.view.getState(g),null!=d.state&&null!=d.state.shape&&(this.container.style.cursor=d.state.shape.node.style.cursor))}null==d.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return d};var d=!1,g=!1,c=!1,e=this.fireMouseEvent;this.fireMouseEvent=function(b,f,l){b==mxEvent.MOUSE_DOWN&&(f=this.updateMouseEvent(f),d=this.isCellSelected(f.getCell()),g=this.isSelectionEmpty(),c=this.popupMenuHandler.isMenuShowing());e.apply(this,arguments)};this.popupMenuHandler.mouseUp=
+mxUtils.bind(this,function(b,e){var f=mxEvent.isMouseEvent(e.getEvent());this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==e.getState()||!e.isSource(e.getState().control))&&(this.popupMenuHandler.popupTrigger||!c&&!f&&(g&&null==e.getCell()&&this.isSelectionEmpty()||d&&this.isCellSelected(e.getCell())));f=!d||f?null:mxUtils.bind(this,function(b){window.setTimeout(mxUtils.bind(this,function(){if(!this.isEditing()){var d=mxUtils.getScrollOrigin();this.popupMenuHandler.popup(e.getX()+
+d.x+1,e.getY()+d.y+1,b,e.getEvent())}}),500)});mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,[b,e,f])})};mxCellEditor.prototype.isContentEditing=function(){var b=this.graph.view.getState(this.editingCell);return null!=b&&1==b.style.html};mxCellEditor.prototype.isTableSelected=function(){return null!=this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",this.textarea)};mxCellEditor.prototype.isTextSelected=function(){var b="";window.getSelection?b=window.getSelection():
+document.getSelection?b=document.getSelection():document.selection&&(b=document.selection.createRange().text);return""!=b};mxCellEditor.prototype.insertTab=function(b){var d=this.textarea.ownerDocument.defaultView.getSelection(),g=d.getRangeAt(0),c="\t";if(null!=b)for(c="";0<b;)c+=" ",b--;b=document.createElement("span");b.style.whiteSpace="pre";b.appendChild(document.createTextNode(c));g.insertNode(b);g.setStartAfter(b);g.setEndAfter(b);d.removeAllRanges();d.addRange(g)};mxCellEditor.prototype.alignText=
+function(b,d){var g=null!=d&&mxEvent.isShiftDown(d);if(g||null!=window.getSelection&&null!=window.getSelection().containsNode){var c=!0;this.graph.processElements(this.textarea,function(b){g||window.getSelection().containsNode(b,!0)?(b.removeAttribute("align"),b.style.textAlign=null):c=!1});c&&this.graph.cellEditor.setAlign(b)}document.execCommand("justify"+b.toLowerCase(),!1,null)};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var b=window.getSelection();if(b.getRangeAt&&
+b.rangeCount){for(var d=[],g=0,c=b.rangeCount;g<c;++g)d.push(b.getRangeAt(g));return d}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(b){try{if(b)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var d=0,g=b.length;d<g;++d)sel.addRange(b[d])}else document.selection&&b.select&&b.select()}catch(ea){}};var v=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=
+function(b){null!=b.text&&(b.text.replaceLinefeeds="0"!=mxUtils.getValue(b.style,"nl2Br","1"));v.apply(this,arguments)};var y=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(b,d){this.isKeepFocusEvent(b)||!mxEvent.isAltDown(b.getEvent())?y.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(b){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var x=mxCellEditor.prototype.startEditing;
+mxCellEditor.prototype.startEditing=function(b,d){b=this.graph.getStartEditingCell(b,d);x.apply(this,arguments);var g=this.graph.view.getState(b);this.textarea.className=null!=g&&1==g.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(b);var g=this.graph.getModel().getParent(b),c=this.graph.getCellGeometry(b);if(this.graph.getModel().isEdge(g)&&null!=c&&c.relative||this.graph.getModel().isEdge(b))this.textarea.style.outline=
+mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var G=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(b){function d(b,g){g.originalNode=b;b=b.firstChild;for(var c=g.firstChild;null!=b&&null!=c;)d(b,c),b=b.nextSibling,c=c.nextSibling;return g}function g(b,d){if(null!=b)if(d.originalNode!=b)c(b);else for(b=b.firstChild,d=d.firstChild;null!=b;){var e=b.nextSibling;null==d?c(b):(g(b,d),d=d.nextSibling);b=e}}function c(b){for(var d=
+b.firstChild;null!=d;){var g=d.nextSibling;c(d);d=g}1==b.nodeType&&("BR"===b.nodeName||null!=b.firstChild)||3==b.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(b)).length?(3==b.nodeType&&mxUtils.setTextContent(b,mxUtils.getTextContent(b).replace(/\n|\r/g,"")),1==b.nodeType&&(b.removeAttribute("style"),b.removeAttribute("class"),b.removeAttribute("width"),b.removeAttribute("cellpadding"),b.removeAttribute("cellspacing"),b.removeAttribute("border"))):b.parentNode.removeChild(b)}G.apply(this,arguments);
+7!==document.documentMode&&8!==document.documentMode&&mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(b){var c=d(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){null!=this.textarea&&(0<=this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")||0<=this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>")?g(this.textarea,c):Graph.removePasteFormatting(this.textarea))}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var b=this.graph.view.getState(this.editingCell);
+if(null!=b){var d=null!=b&&"0"!=mxUtils.getValue(b.style,"nl2Br","1"),g=this.saveSelection();if(this.codeViewMode){m=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<m.length&&"\n"==m.charAt(m.length-1)&&(m=m.substring(0,m.length-1));m=this.graph.sanitizeHtml(d?m.replace(/\n/g,"<br/>"):m,!0);this.textarea.className="mxCellEditor geContentEditable";var c=mxUtils.getValue(b.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),d=mxUtils.getValue(b.style,mxConstants.STYLE_FONTFAMILY,
+mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(b.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),f=(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,k=[];(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&k.push("underline");(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,
+0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&k.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(c*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(c)+"px";this.textarea.style.textDecoration=k.join(" ");this.textarea.style.fontWeight=f?"bold":"normal";this.textarea.style.fontStyle=l?"italic":"";this.textarea.style.fontFamily=d;this.textarea.style.textAlign=e;this.textarea.style.padding=
+"0px";this.textarea.innerHTML!=m&&(this.textarea.innerHTML=m,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var m=mxUtils.htmlEntities(this.textarea.innerHTML);8!=document.documentMode&&(m=mxUtils.replaceTrailingNewlines(m,"<div><br></div>"));m=this.graph.sanitizeHtml(d?
+m.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):m,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var c=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(c*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(c)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;
+this.textarea.style.textAlign="left";this.textarea.style.width="";this.textarea.style.padding="2px";this.textarea.innerHTML!=m&&(this.textarea.innerHTML=m);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=g;this.resize()}};var H=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(b,d){if(null!=this.textarea)if(b=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=
+b){var g=b.view.scale;this.bounds=mxRectangle.fromRectangle(b);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*g;this.bounds.height=60*g;var c=null!=b.text?b.text.margin:null;null==c&&(c=mxUtils.getAlignmentAsPoint(mxUtils.getValue(b.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(b.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=c.x*this.bounds.width;this.bounds.y+=c.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-
+4)/g)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/g)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/g)+(this.textarea.offsetHeight-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*g);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/g)+(this.textarea.offsetWidth-this.textarea.clientWidth)+
+"px",this.bounds.width=parseInt(this.textarea.style.width)*g);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+g+","+g+")")}else this.textarea.style.height="",this.textarea.style.overflow="",H.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(b,d){if("0"==mxUtils.getValue(b.style,"html",
+"0"))return mxCellEditorGetInitialValue.apply(this,arguments);var g=this.graph.getEditingValue(b.cell,d);"1"==mxUtils.getValue(b.style,"nl2Br","1")&&(g=g.replace(/\n/g,"<br/>"));return g=this.graph.sanitizeHtml(g,!0)};mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(b){if("0"==mxUtils.getValue(b.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var d=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return d=
+"1"==mxUtils.getValue(b.style,"nl2Br","1")?d.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):d.replace(/\r\n/g,"").replace(/\n/g,"")};var z=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(b){this.codeViewMode&&this.toggleViewMode();z.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(ha){}};var D=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(b,d){this.graph.getModel().beginUpdate();
+try{D.apply(this,arguments),""==d&&this.graph.isCellDeletable(b.cell)&&0==this.graph.model.getChildCount(b.cell)&&this.graph.isTransparentState(b)&&this.graph.removeCells([b.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(b){var d=mxUtils.getValue(b.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);null!=d&&d!=mxConstants.NONE||!(null!=b.cell.geometry&&0<b.cell.geometry.width)||0==mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION,0)&&0!=
+mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,1)||(d=mxUtils.getValue(b.style,mxConstants.STYLE_FILLCOLOR,null));d==mxConstants.NONE&&(d=null);return d};mxCellEditor.prototype.getBorderColor=function(b){var d=mxUtils.getValue(b.style,mxConstants.STYLE_LABEL_BORDERCOLOR,null);null!=d&&d!=mxConstants.NONE||!(null!=b.cell.geometry&&0<b.cell.geometry.width)||0==mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION,0)&&0!=mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,1)||(d=mxUtils.getValue(b.style,
+mxConstants.STYLE_STROKECOLOR,null));d==mxConstants.NONE&&(d=null);return d};mxCellEditor.prototype.getMinimumSize=function(b){var d=this.graph.getView().scale;return new mxRectangle(0,0,null==b.text?30:b.text.size*d+20,30)};mxGraphHandlerIsValidDropTarget=mxGraphHandler.prototype.isValidDropTarget;mxGraphHandler.prototype.isValidDropTarget=function(b,d){return mxGraphHandlerIsValidDropTarget.apply(this,arguments)&&!mxEvent.isAltDown(d.getEvent)};mxGraphView.prototype.formatUnitText=function(b){return b?
+c(b,this.unit):b};mxGraphHandler.prototype.updateHint=function(d){if(null!=this.pBounds&&(null!=this.shape||this.livePreviewActive)){null==this.hint&&(this.hint=b(),this.graph.container.appendChild(this.hint));var g=this.graph.view.translate,e=this.graph.view.scale;d=this.roundLength((this.bounds.x+this.currentDx)/e-g.x);g=this.roundLength((this.bounds.y+this.currentDy)/e-g.y);e=this.graph.view.unit;this.hint.innerHTML=c(d,e)+", "+c(g,e);this.hint.style.left=this.pBounds.x+this.currentDx+Math.round((this.pBounds.width-
+this.hint.clientWidth)/2)+"px";this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+Editor.hintOffset+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};var L=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell=function(b,d){L.apply(this,arguments);var g=this.graph.getCellStyle(b);if(null==g.childLayout){var c=this.graph.model.getParent(b),e=null!=c?this.graph.getCellGeometry(c):null;
+if(null!=e&&(g=this.graph.getCellStyle(c),"stackLayout"==g.childLayout)){var f=parseFloat(mxUtils.getValue(g,"stackBorder",mxStackLayout.prototype.border)),g="1"==mxUtils.getValue(g,"horizontalStack","1"),l=this.graph.getActualStartSize(c),e=e.clone();g?e.height=d.height+l.y+l.height+2*f:e.width=d.width+l.x+l.width+2*f;this.graph.model.setGeometry(c,e)}}};var E=mxSelectionCellsHandler.prototype.getHandledSelectionCells;mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function b(b){g.get(b)||
+(g.put(b,!0),e.push(b))}for(var d=E.apply(this,arguments),g=new mxDictionary,c=this.graph.model,e=[],f=0;f<d.length;f++){var l=d[f];this.graph.isTableCell(l)?b(c.getParent(c.getParent(l))):this.graph.isTableRow(l)&&b(c.getParent(l));b(l)}return e};var J=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(b){var d=J.apply(this,arguments);d.stroke="#C0C0C0";d.strokewidth=1;return d};var C=mxEdgeHandler.prototype.createParentHighlightShape;
+mxEdgeHandler.prototype.createParentHighlightShape=function(b){var d=C.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.isControlDown(d.getEvent())};mxVertexHandler.prototype.isCenteredEvent=function(b,d){return!(!this.graph.isSwimlane(b.cell)&&0<this.graph.model.getChildCount(b.cell)&&!this.graph.isCellCollapsed(b.cell)&&"1"==mxUtils.getValue(b.style,"recursiveResize","1")&&null==mxUtils.getValue(b.style,"childLayout",null))&&mxEvent.isControlDown(d.getEvent())||mxEvent.isMetaDown(d.getEvent())};var K=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return K.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 Z=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(b){return b.tableHandle||Z.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 M=mxVertexHandler.prototype.getSelectionBorderBounds;
+mxVertexHandler.prototype.getSelectionBorderBounds=function(){return M.apply(this,arguments).grow(-this.getSelectionBorderInset())};var O=null,U=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){null==O&&(O=mxCellRenderer.defaultShapes.tableLine);var b=U.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var d=function(b,d,g){for(var c=[],e=0;e<b.length;e++){var l=b[e];c.push(null==l?null:new mxPoint((m+l.x+d)*f,(p+l.y+g)*f))}return c},
+g=this,c=this.graph,e=c.model,f=c.view.scale,l=this.state,k=this.selectionBorder,m=this.state.origin.x+c.view.translate.x,p=this.state.origin.y+c.view.translate.y;null==b&&(b=[]);var q=c.view.getCellStates(e.getChildCells(this.state.cell,!0));if(0<q.length){for(var F=e.getChildCells(q[0].cell,!0),v=c.getTableLines(this.state.cell,!1,!0),u=c.getTableLines(this.state.cell,!0,!1),e=0;e<F.length;e++)mxUtils.bind(this,function(e){var m=c.view.getState(F[e]),p=c.getCellGeometry(F[e]),q=null!=p.alternateBounds?
+p.alternateBounds:p;null==m&&(m=new mxCellState(c.view,F[e],c.getCellStyle(F[e])),m.x=l.x+p.x*f,m.y=l.y+p.y*f,m.width=q.width*f,m.height=q.height*f,m.updateCachedBounds());var p=e<F.length-1?F[e+1]:null,p=null!=p?c.getCellGeometry(p):null,u=null!=p&&null!=p.alternateBounds?p.alternateBounds:p,p=null!=v[e]?new O(v[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!0);p.isDashed=k.isDashed;p.svgStrokeTolerance++;m=new mxHandle(m,"col-resize",null,p);m.tableHandle=!0;var A=0;m.shape.node.parentNode.insertBefore(m.shape.node,
+m.shape.node.parentNode.firstChild);m.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=0==A?mxConstants.NONE:k.stroke;if(this.shape.constructor==O)this.shape.line=d(v[e],A,0),this.shape.updateBoundsFromLine();else{var b=c.getActualStartSize(l.cell,!0);this.shape.bounds.width=1;this.shape.bounds.x=this.state.x+(q.width+A)*f;this.shape.bounds.y=l.y+(e==F.length-1?0:b.y*f);this.shape.bounds.height=l.height-(e==F.length-1?0:(b.height+b.y)*f)}this.shape.redraw()}};var n=
+!1;m.setPosition=function(b,d,g){A=Math.max(Graph.minTableColumnWidth-q.width,d.x-b.x-q.width);n=mxEvent.isShiftDown(g.getEvent());null==u||n||(A=Math.min(A,u.width-Graph.minTableColumnWidth))};m.execute=function(b){if(0!=A)c.setTableColumnWidth(this.state.cell,A,n);else if(!g.blockDelayedSelection){var d=c.getCellAt(b.getGraphX(),b.getGraphY())||l.cell;c.graphHandler.selectCellForEvent(d,b)}A=0};m.positionChanged=function(){};m.reset=function(){A=0};b.push(m)})(e);for(e=0;e<q.length;e++)mxUtils.bind(this,
+function(e){var m=q[e],p=e<q.length-1?q[e+1]:null,p=null!=p?c.getCellGeometry(p.cell):null,F=null!=p&&null!=p.alternateBounds?p.alternateBounds:p,p=null!=u[e]?new O(u[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!1);p.isDashed=k.isDashed;p.svgStrokeTolerance++;m=new mxHandle(m,"row-resize",null,p);m.tableHandle=!0;var v=0;m.shape.node.parentNode.insertBefore(m.shape.node,m.shape.node.parentNode.firstChild);m.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=
+0==v?mxConstants.NONE:k.stroke;if(this.shape.constructor==O)this.shape.line=d(u[e],0,v),this.shape.updateBoundsFromLine();else{var b=c.getActualStartSize(l.cell,!0);this.shape.bounds.height=1;this.shape.bounds.y=this.state.y+this.state.height+v*f;this.shape.bounds.x=l.x+(e==q.length-1?0:b.x*f);this.shape.bounds.width=l.width-(e==q.length-1?0:b.width+b.x+f)}this.shape.redraw()}};var A=!1;m.setPosition=function(b,d,g){v=Math.max(Graph.minTableRowHeight-b.height,d.y-b.y-b.height);A=mxEvent.isShiftDown(g.getEvent());
+null!=F&&A&&(v=Math.min(v,F.height-Graph.minTableRowHeight))};m.execute=function(b){if(0!=v)c.setTableRowHeight(this.state.cell,v,!A);else if(!g.blockDelayedSelection){var d=c.getCellAt(b.getGraphX(),b.getGraphY())||l.cell;c.graphHandler.selectCellForEvent(d,b)}v=0};m.reset=function(){v=0};b.push(m)})(e)}}return null!=b?b.reverse():null};var F=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){F.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 g=mxUtils.createImage(Editor.rowMoveImage);g.style.position="absolute";g.style.cursor="pointer";g.style.width="7px";g.style.height="4px";g.style.padding="4px 2px 4px 2px";g.rowState=d;mxEvent.addGestureListeners(g,mxUtils.bind(this,function(b){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);!this.graph.isToggleEvent(b)&&this.graph.isCellSelected(d.cell)||this.graph.selectCellForEvent(d.cell,b);mxEvent.isPopupTrigger(b)||(this.graph.graphHandler.start(this.state.cell,
+mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=mxEvent.isMouseEvent(b),this.graph.isMouseDown=!0);mxEvent.consume(b)}),null,mxUtils.bind(this,function(b){mxEvent.isPopupTrigger(b)&&(this.graph.popupMenuHandler.popup(mxEvent.getClientX(b),mxEvent.getClientY(b),d.cell,b),mxEvent.consume(b))}));this.moveHandles.push(g);this.graph.container.appendChild(g)}})(this.graph.view.getState(b.getChildAt(this.state.cell,
+d)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){for(var b=0;b<this.customHandles.length;b++)this.customHandles[b].destroy();this.customHandles=this.createCustomHandles()}this.graph.isTable(this.state.cell)&&this.refreshMoveHandles()};var I=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var b=new mxPoint(0,0),d=this.tolerance,g=this.state.style.shape;null==mxCellRenderer.defaultShapes[g]&&mxStencilRegistry.getStencil(g);
+g=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!g&&null!=this.customHandles)for(var c=0;c<this.customHandles.length;c++)if(null!=this.customHandles[c].shape&&null!=this.customHandles[c].shape.bounds){var e=this.customHandles[c].shape.bounds,f=e.getCenterX(),l=e.getCenterY();if(Math.abs(this.state.x-f)<e.width/2||Math.abs(this.state.y-l)<e.height/2||Math.abs(this.state.x+this.state.width-f)<e.width/2||Math.abs(this.state.y+this.state.height-l)<e.height/
+2){g=!0;break}}g&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(d/=2,this.graph.isTable(this.state.cell)&&(d+=7),b.x=this.sizers[0].bounds.width+d,b.y=this.sizers[0].bounds.height+d):b=I.apply(this,arguments);return b};mxVertexHandler.prototype.updateHint=function(d){if(this.index!=mxEvent.LABEL_HANDLE){null==this.hint&&(this.hint=b(),this.state.view.graph.container.appendChild(this.hint));if(this.index==mxEvent.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"&deg;";else{d=
+this.state.view.scale;var g=this.state.view.unit;this.hint.innerHTML=c(this.roundLength(this.bounds.width/d),g)+" x "+c(this.roundLength(this.bounds.height/d),g)}d=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0");null==d&&(d=this.bounds);this.hint.style.left=d.x+Math.round((d.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=d.y+d.height+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")}};
+mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};var A=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(b,d){A.apply(this,arguments);null!=this.linkHint&&"none"!=this.linkHint.style.display&&null!=this.graph.graphHandler&&null!=this.graph.graphHandler.first&&(this.linkHint.style.display="none")};var ca=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=
+function(b,d){ca.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(d,g){null==this.hint&&(this.hint=b(),this.state.view.graph.container.appendChild(this.hint));var e=this.graph.view.translate,f=this.graph.view.scale,l=this.roundLength(g.x/f-e.x),e=this.roundLength(g.y/f-e.y),f=this.graph.view.unit;this.hint.innerHTML=c(l,f)+", "+c(e,f);this.hint.style.visibility="visible";if(this.isSource||
+this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(l=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*l.x)+"%, "+Math.round(100*l.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(d.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(d.getGraphY(),g.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};
+Graph.prototype.expandedImage=Graph.createSvgImage(9,9,'<defs><linearGradient id="grad1" x1="50%" y1="0%" x2="50%" y2="100%"><stop offset="30%" style="stop-color:#f0f0f0;" /><stop offset="100%" style="stop-color:#AFB0B6;" /></linearGradient></defs><rect x="0" y="0" width="9" height="9" stroke="#8A94A5" fill="url(#grad1)" stroke-width="2"/><path d="M 2 4.5 L 7 4.5 z" stroke="#000"/>');Graph.prototype.collapsedImage=Graph.createSvgImage(9,9,'<defs><linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="30%" style="stop-color:#f0f0f0;" /><stop offset="100%" style="stop-color:#AFB0B6;" /></linearGradient></defs><rect x="0" y="0" width="9" height="9" stroke="#8A94A5" fill="url(#grad1)" stroke-width="2"/><path d="M 4.5 2 L 4.5 7 M 2 4.5 L 7 4.5 z" stroke="#000"/>');
+mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>');HoverIcons.prototype.endMainHandle=Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>');HoverIcons.prototype.secondaryHandle=Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>');
+HoverIcons.prototype.fixedHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="#01bd22"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>');HoverIcons.prototype.endFixedHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="7" stroke="#fff" fill="#01bd22"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>');HoverIcons.prototype.terminalHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+
+'"/><circle cx="11" cy="11" r="3" stroke="#fff" fill="transparent"/>');HoverIcons.prototype.endTerminalHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="7" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/><circle cx="11" cy="11" r="3" stroke="#fff" fill="transparent"/>');HoverIcons.prototype.rotationHandle=Graph.createSvgImage(16,16,'<path stroke="'+HoverIcons.prototype.arrowFill+'" fill="'+HoverIcons.prototype.arrowFill+'" d="M15.55 5.55L11 1v3.07C7.06 4.56 4 7.92 4 12s3.05 7.44 7 7.93v-2.02c-2.84-.48-5-2.94-5-5.91s2.16-5.43 5-5.91V10l4.55-4.45zM19.93 11c-.17-1.39-.72-2.73-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02c1.39-.17 2.74-.71 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41c.9-1.16 1.45-2.5 1.62-3.89h-2.02c-.14.87-.48 1.72-1.02 2.48z"/>',
24,24);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="'+HoverIcons.prototype.arrowFill+'"/>');mxVertexHandler.TABLE_HANDLE_COLOR="#fca000";mxVertexHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxVertexHandler.prototype.secondaryHandleImage=HoverIcons.prototype.secondaryHandle;mxEdgeHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;
mxEdgeHandler.prototype.endHandleImage=HoverIcons.prototype.endMainHandle;mxEdgeHandler.prototype.terminalHandleImage=HoverIcons.prototype.terminalHandle;mxEdgeHandler.prototype.endTerminalHandleImage=HoverIcons.prototype.endTerminalHandle;mxEdgeHandler.prototype.fixedHandleImage=HoverIcons.prototype.fixedHandle;mxEdgeHandler.prototype.endFixedHandleImage=HoverIcons.prototype.endFixedHandle;mxEdgeHandler.prototype.labelHandleImage=HoverIcons.prototype.secondaryHandle;mxOutline.prototype.sizerImage=
HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangleUp=HoverIcons.prototype.triangleUp,Sidebar.prototype.triangleRight=HoverIcons.prototype.triangleRight,Sidebar.prototype.triangleDown=HoverIcons.prototype.triangleDown,Sidebar.prototype.triangleLeft=HoverIcons.prototype.triangleLeft,Sidebar.prototype.refreshTarget=HoverIcons.prototype.refreshTarget,Sidebar.prototype.roundDrop=HoverIcons.prototype.roundDrop);mxVertexHandler.prototype.rotationEnabled=!0;mxVertexHandler.prototype.manageSizers=
@@ -2674,13 +2672,13 @@ this.graph.view.getState(k[g]),p=this.graph.getCellGeometry(k[g]);null!=m&&null!
var c=d.getX()+g.x,g=d.getY()+g.y,e=this.first.x-c,f=this.first.y-g,l=this.graph.tolerance;if(null!=this.div||Math.abs(e)>l||Math.abs(f)>l)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(c,g),this.isSpaceEvent(d)?(c=this.x+this.width,g=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=c-this.width),this.y<this.first.y&&(this.y=g-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 Q=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);Q.apply(this,arguments)};var V=(new Date).getTime(),na=0,fa=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(b,d,g,c){fa.apply(this,arguments);g!=this.currentTerminalState?(V=(new Date).getTime(),na=0):na=(new Date).getTime()-V;this.currentTerminalState=
-g};var ka=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(b){return null!=this.currentTerminalState&&b.getState()==this.currentTerminalState&&2E3<na||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&ka.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(b,d,g){d=null!=b&&0==b;var c=this.state.getVisibleTerminalState(d);b=null!=b&&(0==b||b>=this.state.absolutePoints.length-
+this.secondDiv=null)),d.consume()}};var Q=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);Q.apply(this,arguments)};var V=(new Date).getTime(),oa=0,fa=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(b,d,g,c){fa.apply(this,arguments);g!=this.currentTerminalState?(V=(new Date).getTime(),oa=0):oa=(new Date).getTime()-V;this.currentTerminalState=
+g};var ka=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(b){return null!=this.currentTerminalState&&b.getState()==this.currentTerminalState&&2E3<oa||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&ka.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(b,d,g){d=null!=b&&0==b;var c=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,c,d):null;g=null!=(null!=b?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(d),b):null)?g?this.endFixedHandleImage:this.fixedHandleImage:null!=b&&null!=c?g?this.endTerminalHandleImage:this.terminalHandleImage:g?this.endHandleImage:this.handleImage;if(null!=g)return g=new mxImageShape(new mxRectangle(0,0,g.width,g.height),g.src),g.preserveImageAspect=!1,g;g=mxConstants.HANDLE_SIZE;this.preferHtml&&
--g;return new mxRectangleShape(new mxRectangle(0,0,g,g),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var ra=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(b,d,g){this.handleImage=d==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:d==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return ra.apply(this,arguments)};var la=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(b){if(null!=
b&&1==b.length){var d=this.graph.getModel(),g=d.getParent(b[0]),c=this.graph.getCellGeometry(b[0]);if(d.isEdge(g)&&null!=c&&c.relative&&(d=this.graph.view.getState(b[0]),null!=d&&2>d.width&&2>d.height&&null!=d.text&&null!=d.text.boundingBox))return mxRectangle.fromRectangle(d.text.boundingBox)}return la.apply(this,arguments)};var ja=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var b=ja.apply(this,arguments),d=[],g=0;g<b.length;g++)"1"!=mxUtils.getValue(b[g].style,
-"part","0")&&d.push(b[g]);return d};var ba=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(b){var d=this.graph.getModel(),g=d.getParent(b.cell),c=this.graph.getCellGeometry(b.cell);return d.isEdge(g)&&null!=c&&c.relative&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox?(d=b.text.unrotatedBoundingBox||b.text.boundingBox,new mxRectangle(Math.round(d.x),Math.round(d.y),Math.round(d.width),Math.round(d.height))):ba.apply(this,arguments)};
-var ca=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(b,d){var g=this.graph.getModel(),c=g.getParent(this.state.cell),e=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(d)==mxEvent.ROTATION_HANDLE||!g.isEdge(c)||null==e||!e.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&ca.apply(this,arguments)};mxVertexHandler.prototype.rotateClick=function(){var b=mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),
+"part","0")&&d.push(b[g]);return d};var aa=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(b){var d=this.graph.getModel(),g=d.getParent(b.cell),c=this.graph.getCellGeometry(b.cell);return d.isEdge(g)&&null!=c&&c.relative&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox?(d=b.text.unrotatedBoundingBox||b.text.boundingBox,new mxRectangle(Math.round(d.x),Math.round(d.y),Math.round(d.width),Math.round(d.height))):aa.apply(this,arguments)};
+var ba=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(b,d){var g=this.graph.getModel(),c=g.getParent(this.state.cell),e=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(d)==mxEvent.ROTATION_HANDLE||!g.isEdge(c)||null==e||!e.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&ba.apply(this,arguments)};mxVertexHandler.prototype.rotateClick=function(){var b=mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),
d=mxUtils.getValue(this.state.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);this.state.view.graph.model.isVertex(this.state.cell)&&b==mxConstants.NONE&&d==mxConstants.NONE?(b=mxUtils.mod(mxUtils.getValue(this.state.style,mxConstants.STYLE_ROTATION,0)+90,360),this.state.view.graph.setCellStyles(mxConstants.STYLE_ROTATION,b,[this.state.cell])):this.state.view.graph.turnShapes([this.state.cell])};var R=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(b,d){R.apply(this,
arguments);null!=this.graph.graphHandler.first&&(null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none"),null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none"))};var sa=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(b,d){sa.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");
null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="");this.blockDelayedSelection=null};var W=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){W.apply(this,arguments);var b=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));if(this.graph.isTable(this.state.cell))this.refreshMoveHandles();else if(1==this.graph.getSelectionCount()&&(this.graph.isTableCell(this.state.cell)||this.graph.isTableRow(this.state.cell))){this.cornerHandles=
@@ -2698,14 +2696,14 @@ null!=this.linkHint&&(b=new mxPoint(this.state.getCenterX(),this.state.getCenter
Math.max(0,Math.round(b.x+(b.width-this.linkHint.clientWidth)/2))+"px",this.linkHint.style.top=Math.round(g+this.verticalOffset/2+Editor.hintOffset)+"px")};var T=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){T.apply(this,arguments);if(null!=this.moveHandles){for(var b=0;b<this.moveHandles.length;b++)null!=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 ia=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(ia.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 da=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){da.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var oa=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){oa.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.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(b.y+b.height+Editor.hintOffset)+"px"}};var da=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){da.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var na=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){na.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,g){mxShape.call(this);this.line=b;this.stroke=d;this.strokewidth=null!=g?g:1;this.updateBoundsFromLine()}function c(){mxSwimlane.call(this)}function e(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function f(){mxActor.call(this)}function n(){mxCylinder.call(this)}function t(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function g(){mxCylinder.call(this)}function l(){mxShape.call(this)}function m(){mxShape.call(this)}function p(b,d,g,c){mxShape.call(this);
-this.bounds=b;this.fill=d;this.stroke=g;this.strokewidth=null!=c?c:1}function q(){mxActor.call(this)}function u(){mxCylinder.call(this)}function v(){mxCylinder.call(this)}function y(){mxActor.call(this)}function x(){mxActor.call(this)}function G(){mxActor.call(this)}function H(){mxActor.call(this)}function z(){mxActor.call(this)}function D(){mxActor.call(this)}function L(){mxActor.call(this)}function F(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,F.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,F.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,F.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,F.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,F.prototype.curveTo);this.originalArcTo=
-this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,F.prototype.arcTo)}function J(){mxRectangleShape.call(this)}function C(){mxRectangleShape.call(this)}function K(){mxActor.call(this)}function M(){mxActor.call(this)}function aa(){mxActor.call(this)}function N(){mxRectangleShape.call(this)}function O(){mxRectangleShape.call(this)}function U(){mxCylinder.call(this)}function E(){mxShape.call(this)}function I(){mxShape.call(this)}function A(){mxEllipse.call(this)}function Y(){mxShape.call(this)}function S(){mxShape.call(this)}
-function Q(){mxRectangleShape.call(this)}function V(){mxShape.call(this)}function na(){mxShape.call(this)}function fa(){mxShape.call(this)}function ka(){mxShape.call(this)}function ra(){mxShape.call(this)}function la(){mxCylinder.call(this)}function ja(){mxCylinder.call(this)}function ba(){mxRectangleShape.call(this)}function ca(){mxDoubleEllipse.call(this)}function R(){mxDoubleEllipse.call(this)}function sa(){mxArrowConnector.call(this);this.spacing=0}function W(){mxArrowConnector.call(this);this.spacing=
-0}function X(){mxActor.call(this)}function ma(){mxRectangleShape.call(this)}function qa(){mxActor.call(this)}function T(){mxActor.call(this)}function ia(){mxActor.call(this)}function da(){mxActor.call(this)}function oa(){mxActor.call(this)}function ha(){mxActor.call(this)}function ua(){mxActor.call(this)}function P(){mxActor.call(this)}function ea(){mxActor.call(this)}function ta(){mxActor.call(this)}function ya(){mxEllipse.call(this)}function pa(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}
-function za(){mxRhombus.call(this)}function Ba(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}function Ja(){mxEllipse.call(this)}function Aa(){mxEllipse.call(this)}function Ka(){mxActor.call(this)}function Ca(){mxActor.call(this)}function wa(){mxActor.call(this)}function Z(b,d,g,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=g;this.strokewidth=null!=c?c:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Fa(){mxConnector.call(this)}
+this.bounds=b;this.fill=d;this.stroke=g;this.strokewidth=null!=c?c:1}function q(){mxActor.call(this)}function u(){mxCylinder.call(this)}function v(){mxCylinder.call(this)}function y(){mxActor.call(this)}function x(){mxActor.call(this)}function G(){mxActor.call(this)}function H(){mxActor.call(this)}function z(){mxActor.call(this)}function D(){mxActor.call(this)}function L(){mxActor.call(this)}function E(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,E.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,E.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,E.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,E.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,E.prototype.curveTo);this.originalArcTo=
+this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,E.prototype.arcTo)}function J(){mxRectangleShape.call(this)}function C(){mxRectangleShape.call(this)}function K(){mxActor.call(this)}function N(){mxActor.call(this)}function Z(){mxActor.call(this)}function M(){mxRectangleShape.call(this)}function O(){mxRectangleShape.call(this)}function U(){mxCylinder.call(this)}function F(){mxShape.call(this)}function I(){mxShape.call(this)}function A(){mxEllipse.call(this)}function ca(){mxShape.call(this)}function S(){mxShape.call(this)}
+function Q(){mxRectangleShape.call(this)}function V(){mxShape.call(this)}function oa(){mxShape.call(this)}function fa(){mxShape.call(this)}function ka(){mxShape.call(this)}function ra(){mxShape.call(this)}function la(){mxCylinder.call(this)}function ja(){mxCylinder.call(this)}function aa(){mxRectangleShape.call(this)}function ba(){mxDoubleEllipse.call(this)}function R(){mxDoubleEllipse.call(this)}function sa(){mxArrowConnector.call(this);this.spacing=0}function W(){mxArrowConnector.call(this);this.spacing=
+0}function X(){mxActor.call(this)}function ma(){mxRectangleShape.call(this)}function qa(){mxActor.call(this)}function T(){mxActor.call(this)}function ia(){mxActor.call(this)}function da(){mxActor.call(this)}function na(){mxActor.call(this)}function ha(){mxActor.call(this)}function ua(){mxActor.call(this)}function P(){mxActor.call(this)}function ea(){mxActor.call(this)}function ta(){mxActor.call(this)}function ya(){mxEllipse.call(this)}function pa(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}
+function za(){mxRhombus.call(this)}function Ba(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}function Ja(){mxEllipse.call(this)}function Aa(){mxEllipse.call(this)}function Ka(){mxActor.call(this)}function Ca(){mxActor.call(this)}function wa(){mxActor.call(this)}function Y(b,d,g,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=g;this.strokewidth=null!=c?c:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Fa(){mxConnector.call(this)}
function Na(b,d,g,c,e,f,l,k,m,p){l+=m;var B=c.clone();c.x-=e*(2*l+m);c.y-=f*(2*l+m);e*=l+m;f*=l+m;return function(){b.ellipse(B.x-e-l,B.y-f-l,2*l,2*l);p?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 g=this.line[d];null!=g&&(g=new mxRectangle(g.x,g.y,this.strokewidth,this.strokewidth),null==b?b=g:b.add(g))}this.bounds=null!=b?b:new mxRectangle};b.prototype.paintVertexShape=function(b,
d,g,c,e){this.paintTableLine(b,this.line,0,0)};b.prototype.paintTableLine=function(b,d,g,c){if(null!=d){var e=null;b.begin();for(var B=0;B<d.length;B++){var f=d[B];null!=f&&(null==e?b.moveTo(f.x+g,f.y+c):null!=e&&b.lineTo(f.x+g,f.y+c));e=f}b.end();b.stroke()}};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,g,c,e){0==this.getTitleSize()?mxRectangleShape.prototype.paintBackground.apply(this,arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),b.translate(-d,-g));this.paintForeground(b,d,g,c,e)};c.prototype.paintForeground=function(b,d,g,c,e){if(null!=this.state){var B=this.flipH,f=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)var l=B,B=f,f=l;b.rotate(-this.getShapeRotation(),
@@ -2740,32 +2738,32 @@ function(b,d,g,c){var e=mxUtils.getValue(this.style,"size");return null!=e?c*Mat
function(b,d,g,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c-d,e)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("parallelogram",H);mxUtils.extend(z,
mxActor);z.prototype.size=.2;z.prototype.fixedSize=20;z.prototype.isRoundable=function(){return!0};z.prototype.redrawPath=function(b,d,g,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(d,
0),new mxPoint(c-d,0),new mxPoint(c,e)],this.isRounded,g,!0)};mxCellRenderer.registerShape("trapezoid",z);mxUtils.extend(D,mxActor);D.prototype.size=.5;D.prototype.redrawPath=function(b,d,g,c,e){b.setFillColor(null);d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(c,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(c,e)],this.isRounded,g,!1);b.end()};mxCellRenderer.registerShape("curlyBracket",D);mxUtils.extend(L,mxActor);L.prototype.redrawPath=function(b,d,g,c,e){b.setStrokeWidth(1);b.setFillColor(this.stroke);d=c/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",L);F.prototype.moveTo=function(b,d){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;this.firstX=b;this.firstY=
-d};F.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)};F.prototype.quadTo=function(b,d,g,c){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=g;this.lastY=c};F.prototype.curveTo=function(b,d,g,c,e,f){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=f};F.prototype.arcTo=function(b,d,g,c,e,f,l){this.originalArcTo.apply(this.canvas,
-arguments);this.lastX=f;this.lastY=l};F.prototype.lineTo=function(b,d){if(null!=this.lastX&&null!=this.lastY){var g=function(b){return"number"===typeof b?b?0>b?-1:1:b===b?0:NaN:NaN},c=Math.abs(b-this.lastX),e=Math.abs(d-this.lastY),B=Math.sqrt(c*c+e*e);if(2>B){this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;return}var f=Math.round(B/10),l=this.defaultVariation;5>f&&(f=5,l/=3);for(var k=g(b-this.lastX)*c/f,g=g(d-this.lastY)*e/f,c=c/B,e=e/B,B=0;B<f;B++){var m=(Math.random()-
-.5)*l;this.originalLineTo.call(this.canvas,k*B+this.lastX-m*e,g*B+this.lastY-m*c)}this.originalLineTo.call(this.canvas,b,d)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d};F.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 bb=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(b){bb.apply(this,arguments);null==b.handJiggle&&(b.handJiggle=this.createHandJiggle(b))};var cb=mxShape.prototype.afterPaint;mxShape.prototype.afterPaint=function(b){cb.apply(this,arguments);null!=b.handJiggle&&(b.handJiggle.destroy(),delete b.handJiggle)};mxShape.prototype.createComicCanvas=function(b){return new F(b,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle))};mxShape.prototype.createHandJiggle=function(b){return this.outline||
+e),new mxPoint(c,e)],this.isRounded,g,!1);b.end()};mxCellRenderer.registerShape("curlyBracket",D);mxUtils.extend(L,mxActor);L.prototype.redrawPath=function(b,d,g,c,e){b.setStrokeWidth(1);b.setFillColor(this.stroke);d=c/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",L);E.prototype.moveTo=function(b,d){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;this.firstX=b;this.firstY=
+d};E.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)};E.prototype.quadTo=function(b,d,g,c){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=g;this.lastY=c};E.prototype.curveTo=function(b,d,g,c,e,f){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=f};E.prototype.arcTo=function(b,d,g,c,e,f,l){this.originalArcTo.apply(this.canvas,
+arguments);this.lastX=f;this.lastY=l};E.prototype.lineTo=function(b,d){if(null!=this.lastX&&null!=this.lastY){var g=function(b){return"number"===typeof b?b?0>b?-1:1:b===b?0:NaN:NaN},c=Math.abs(b-this.lastX),e=Math.abs(d-this.lastY),B=Math.sqrt(c*c+e*e);if(2>B){this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;return}var f=Math.round(B/10),l=this.defaultVariation;5>f&&(f=5,l/=3);for(var k=g(b-this.lastX)*c/f,g=g(d-this.lastY)*e/f,c=c/B,e=e/B,B=0;B<f;B++){var m=(Math.random()-
+.5)*l;this.originalLineTo.call(this.canvas,k*B+this.lastX-m*e,g*B+this.lastY-m*c)}this.originalLineTo.call(this.canvas,b,d)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d};E.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 bb=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(b){bb.apply(this,arguments);null==b.handJiggle&&(b.handJiggle=this.createHandJiggle(b))};var cb=mxShape.prototype.afterPaint;mxShape.prototype.afterPaint=function(b){cb.apply(this,arguments);null!=b.handJiggle&&(b.handJiggle.destroy(),delete b.handJiggle)};mxShape.prototype.createComicCanvas=function(b){return new E(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 db=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"))&&db.apply(this,arguments)};var gb=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=
-function(b,d,g,c,e){if(null==b.handJiggle||b.handJiggle.constructor!=F)gb.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)f||null!=this.fill&&this.fill!=mxConstants.NONE||(b.pointerEvents=!1),b.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?f=Math.min(c/2,Math.min(e/2,mxUtils.getValue(this.style,
+function(b,d,g,c,e){if(null==b.handJiggle||b.handJiggle.constructor!=E)gb.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)f||null!=this.fill&&this.fill!=mxConstants.NONE||(b.pointerEvents=!1),b.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?f=Math.min(c/2,Math.min(e/2,mxUtils.getValue(this.style,
mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(c*f,e*f)),b.moveTo(d+f,g),b.lineTo(d+c-f,g),b.quadTo(d+c,g,d+c,g+f),b.lineTo(d+c,g+e-f),b.quadTo(d+c,g+e,d+c-f,g+e),b.lineTo(d+f,g+e),b.quadTo(d,g+e,d,g+e-f),b.lineTo(d,g+f),b.quadTo(d,g,d+f,g)):(b.moveTo(d,g),b.lineTo(d+c,g),b.lineTo(d+c,g+e),b.lineTo(d,g+e),b.lineTo(d,g)),b.close(),b.end(),b.fillAndStroke()}};mxUtils.extend(J,
mxRectangleShape);J.prototype.size=.1;J.prototype.fixedSize=!1;J.prototype.isHtmlAllowed=function(){return!1};J.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,g=b.height;b=new mxRectangle(b.x,b.y,d,g);var c=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,c=Math.max(c,Math.min(d*e,g*e));b.x+=Math.round(c);b.width-=Math.round(2*c)}return b};J.prototype.paintForeground=function(b,d,g,c,e){var f=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),B=parseFloat(mxUtils.getValue(this.style,"size",this.size)),B=f?Math.max(0,Math.min(c,B)):c*Math.max(0,Math.min(1,B));this.isRounded&&(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/
100,B=Math.max(B,Math.min(c*f,e*f)));B=Math.round(B);b.begin();b.moveTo(d+B,g);b.lineTo(d+B,g+e);b.moveTo(d+c-B,g);b.lineTo(d+c-B,g+e);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",J);mxCellRenderer.registerShape("process2",J);mxUtils.extend(C,mxRectangleShape);C.prototype.paintBackground=function(b,d,g,c,e){b.setFillColor(mxConstants.NONE);b.rect(d,g,c,e);b.fill()};C.prototype.paintForeground=function(b,d,g,c,e){};mxCellRenderer.registerShape("transparent",
C);mxUtils.extend(K,mxHexagon);K.prototype.size=30;K.prototype.position=.5;K.prototype.position2=.5;K.prototype.base=20;K.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};K.prototype.isRoundable=function(){return!0};K.prototype.redrawPath=function(b,d,g,c,e){d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",
this.size))));var f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),B=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),l=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(b,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,e-g),new mxPoint(Math.min(c,f+l),e-g),new mxPoint(B,e),new mxPoint(Math.max(0,f),e-g),new mxPoint(0,e-g)],this.isRounded,d,!0,[4])};mxCellRenderer.registerShape("callout",
-K);mxUtils.extend(M,mxActor);M.prototype.size=.2;M.prototype.fixedSize=20;M.prototype.isRoundable=function(){return!0};M.prototype.redrawPath=function(b,d,g,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,
-0),new mxPoint(c-d,0),new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(0,e),new mxPoint(d,e/2)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("step",M);mxUtils.extend(aa,mxHexagon);aa.prototype.size=.25;aa.prototype.fixedSize=20;aa.prototype.isRoundable=function(){return!0};aa.prototype.redrawPath=function(b,d,g,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,.5*e),new mxPoint(c-d,e),new mxPoint(d,e),new mxPoint(0,.5*e)],this.isRounded,g,!0)};mxCellRenderer.registerShape("hexagon",aa);mxUtils.extend(N,mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.prototype.paintForeground=function(b,d,g,c,e){var f=Math.min(c/5,e/5)+1;b.begin();b.moveTo(d+c/2,g+f);b.lineTo(d+c/2,
-g+e-f);b.moveTo(d+f,g+e/2);b.lineTo(d+c-f,g+e/2);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",N);var Za=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=
+K);mxUtils.extend(N,mxActor);N.prototype.size=.2;N.prototype.fixedSize=20;N.prototype.isRoundable=function(){return!0};N.prototype.redrawPath=function(b,d,g,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,
+0),new mxPoint(c-d,0),new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(0,e),new mxPoint(d,e/2)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("step",N);mxUtils.extend(Z,mxHexagon);Z.prototype.size=.25;Z.prototype.fixedSize=20;Z.prototype.isRoundable=function(){return!0};Z.prototype.redrawPath=function(b,d,g,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,.5*e),new mxPoint(c-d,e),new mxPoint(d,e),new mxPoint(0,.5*e)],this.isRounded,g,!0)};mxCellRenderer.registerShape("hexagon",Z);mxUtils.extend(M,mxRectangleShape);M.prototype.isHtmlAllowed=function(){return!1};M.prototype.paintForeground=function(b,d,g,c,e){var f=Math.min(c/5,e/5)+1;b.begin();b.moveTo(d+c/2,g+f);b.lineTo(d+c/2,
+g+e-f);b.moveTo(d+f,g+e/2);b.lineTo(d+c-f,g+e/2);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",M);var Za=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,g,c,e){Za.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);d+=f;g+=f;c-=2*f;e-=2*f;0<c&&0<e&&(b.setShadow(!1),Za.apply(this,[b,d,g,c,e]))}};mxUtils.extend(O,mxRectangleShape);O.prototype.isHtmlAllowed=function(){return!1};O.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};O.prototype.paintForeground=function(b,d,g,c,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var f=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);d+=f;g+=f;c-=2*f;e-=2*f;0<c&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}b.setDashed(!1);var f=0,B;do{B=mxCellRenderer.defaultShapes[this.style["symbol"+f]];if(null!=B){var l=this.style["symbol"+f+"Align"],
-k=this.style["symbol"+f+"VerticalAlign"],m=this.style["symbol"+f+"Width"],p=this.style["symbol"+f+"Height"],q=this.style["symbol"+f+"Spacing"]||0,E=this.style["symbol"+f+"VSpacing"]||q,va=this.style["symbol"+f+"ArcSpacing"];null!=va&&(va*=this.getArcSize(c+this.strokewidth,e+this.strokewidth),q+=va,E+=va);var va=d,Da=g,va=l==mxConstants.ALIGN_CENTER?va+(c-m)/2:l==mxConstants.ALIGN_RIGHT?va+(c-m-q):va+q,Da=k==mxConstants.ALIGN_MIDDLE?Da+(e-p)/2:k==mxConstants.ALIGN_BOTTOM?Da+(e-p-E):Da+E;b.save();
-l=new B;l.style=this.style;B.prototype.paintVertexShape.call(l,b,va,Da,m,p);b.restore()}f++}while(null!=B)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",O);mxUtils.extend(U,mxCylinder);U.prototype.redrawPath=function(b,d,g,c,e,f){f?(b.moveTo(0,0),b.lineTo(c/2,e/2),b.lineTo(c,0),b.end()):(b.moveTo(0,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(0,e),b.close())};mxCellRenderer.registerShape("message",U);mxUtils.extend(E,mxShape);E.prototype.paintBackground=
-function(b,d,g,c,e){b.translate(d,g);b.ellipse(c/4,0,c/2,e/4);b.fillAndStroke();b.begin();b.moveTo(c/2,e/4);b.lineTo(c/2,2*e/3);b.moveTo(c/2,e/3);b.lineTo(0,e/3);b.moveTo(c/2,e/3);b.lineTo(c,e/3);b.moveTo(c/2,2*e/3);b.lineTo(0,e);b.moveTo(c/2,2*e/3);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlActor",E);mxUtils.extend(I,mxShape);I.prototype.getLabelMargins=function(b){return new mxRectangle(b.width/6,0,0,0)};I.prototype.paintBackground=function(b,d,g,c,e){b.translate(d,g);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(c/6,e/2);b.end();b.stroke();b.ellipse(c/6,0,5*c/6,e);b.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",I);mxUtils.extend(A,mxEllipse);A.prototype.paintVertexShape=function(b,d,g,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/8,g+e);b.lineTo(d+7*c/8,g+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",A);mxUtils.extend(Y,mxShape);Y.prototype.paintVertexShape=
-function(b,d,g,c,e){b.translate(d,g);b.begin();b.moveTo(c,0);b.lineTo(0,e);b.moveTo(0,0);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlDestroy",Y);mxUtils.extend(S,mxShape);S.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};S.prototype.paintBackground=function(b,d,g,c,e){b.translate(d,g);b.begin();b.moveTo(3*c/8,e/8*1.1);b.lineTo(5*c/8,0);b.end();b.stroke();b.ellipse(0,e/8,c,7*e/8);b.fillAndStroke()};S.prototype.paintForeground=
+k=this.style["symbol"+f+"VerticalAlign"],m=this.style["symbol"+f+"Width"],p=this.style["symbol"+f+"Height"],q=this.style["symbol"+f+"Spacing"]||0,F=this.style["symbol"+f+"VSpacing"]||q,va=this.style["symbol"+f+"ArcSpacing"];null!=va&&(va*=this.getArcSize(c+this.strokewidth,e+this.strokewidth),q+=va,F+=va);var va=d,Da=g,va=l==mxConstants.ALIGN_CENTER?va+(c-m)/2:l==mxConstants.ALIGN_RIGHT?va+(c-m-q):va+q,Da=k==mxConstants.ALIGN_MIDDLE?Da+(e-p)/2:k==mxConstants.ALIGN_BOTTOM?Da+(e-p-F):Da+F;b.save();
+l=new B;l.style=this.style;B.prototype.paintVertexShape.call(l,b,va,Da,m,p);b.restore()}f++}while(null!=B)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",O);mxUtils.extend(U,mxCylinder);U.prototype.redrawPath=function(b,d,g,c,e,f){f?(b.moveTo(0,0),b.lineTo(c/2,e/2),b.lineTo(c,0),b.end()):(b.moveTo(0,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(0,e),b.close())};mxCellRenderer.registerShape("message",U);mxUtils.extend(F,mxShape);F.prototype.paintBackground=
+function(b,d,g,c,e){b.translate(d,g);b.ellipse(c/4,0,c/2,e/4);b.fillAndStroke();b.begin();b.moveTo(c/2,e/4);b.lineTo(c/2,2*e/3);b.moveTo(c/2,e/3);b.lineTo(0,e/3);b.moveTo(c/2,e/3);b.lineTo(c,e/3);b.moveTo(c/2,2*e/3);b.lineTo(0,e);b.moveTo(c/2,2*e/3);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlActor",F);mxUtils.extend(I,mxShape);I.prototype.getLabelMargins=function(b){return new mxRectangle(b.width/6,0,0,0)};I.prototype.paintBackground=function(b,d,g,c,e){b.translate(d,g);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(c/6,e/2);b.end();b.stroke();b.ellipse(c/6,0,5*c/6,e);b.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",I);mxUtils.extend(A,mxEllipse);A.prototype.paintVertexShape=function(b,d,g,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/8,g+e);b.lineTo(d+7*c/8,g+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",A);mxUtils.extend(ca,mxShape);ca.prototype.paintVertexShape=
+function(b,d,g,c,e){b.translate(d,g);b.begin();b.moveTo(c,0);b.lineTo(0,e);b.moveTo(0,0);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlDestroy",ca);mxUtils.extend(S,mxShape);S.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};S.prototype.paintBackground=function(b,d,g,c,e){b.translate(d,g);b.begin();b.moveTo(3*c/8,e/8*1.1);b.lineTo(5*c/8,0);b.end();b.stroke();b.ellipse(0,e/8,c,7*e/8);b.fillAndStroke()};S.prototype.paintForeground=
function(b,d,g,c,e){b.begin();b.moveTo(3*c/8,e/8*1.1);b.lineTo(5*c/8,e/4);b.end();b.stroke()};mxCellRenderer.registerShape("umlControl",S);mxUtils.extend(Q,mxRectangleShape);Q.prototype.size=40;Q.prototype.isHtmlAllowed=function(){return!1};Q.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)};Q.prototype.paintBackground=function(b,d,g,c,e){var f=Math.max(0,Math.min(e,
-parseFloat(mxUtils.getValue(this.style,"size",this.size)))),l=mxUtils.getValue(this.style,"participant");null==l||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,b,d,g,c,f):(l=this.state.view.graph.cellRenderer.getShape(l),null!=l&&l!=Q&&(l=new l,l.apply(this.state),b.save(),l.paintVertexShape(b,d,g,c,f),b.restore()));f<e&&(b.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),b.begin(),b.moveTo(d+c/2,g+f),b.lineTo(d+c/2,g+e),b.end(),b.stroke())};Q.prototype.paintForeground=
+parseFloat(mxUtils.getValue(this.style,"size",this.size)))),B=mxUtils.getValue(this.style,"participant");null==B||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,b,d,g,c,f):(B=this.state.view.graph.cellRenderer.getShape(B),null!=B&&B!=Q&&(B=new B,B.apply(this.state),b.save(),B.paintVertexShape(b,d,g,c,f),b.restore()));f<e&&(b.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),b.begin(),b.moveTo(d+c/2,g+f),b.lineTo(d+c/2,g+e),b.end(),b.stroke())};Q.prototype.paintForeground=
function(b,d,g,c,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,b,d,g,c,Math.min(e,f))};mxCellRenderer.registerShape("umlLifeline",Q);mxUtils.extend(V,mxShape);V.prototype.width=60;V.prototype.height=30;V.prototype.corner=10;V.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))};V.prototype.paintBackground=function(b,d,g,c,e){var f=this.corner,l=Math.min(c,Math.max(f,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),B=Math.min(e,Math.max(1.5*f,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),k=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);k!=mxConstants.NONE&&(b.setFillColor(k),b.rect(d,g,c,e),b.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=
mxConstants.NONE?(this.getGradientBounds(b,d,g,c,e),b.setGradient(this.fill,this.gradient,d,g,c,e,this.gradientDirection)):b.setFillColor(this.fill);b.begin();b.moveTo(d,g);b.lineTo(d+l,g);b.lineTo(d+l,g+Math.max(0,B-1.5*f));b.lineTo(d+Math.max(0,l-f),g+B);b.lineTo(d,g+B);b.close();b.fillAndStroke();b.begin();b.moveTo(d+l,g);b.lineTo(d+c,g);b.lineTo(d+c,g+e);b.lineTo(d,g+e);b.lineTo(d,g+B);b.stroke()};mxCellRenderer.registerShape("umlFrame",V);mxPerimeter.CenterPerimeter=function(b,d,g,c){return new mxPoint(b.getCenterX(),
@@ -2776,19 +2774,19 @@ d,g,c)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter
(e=e?Math.max(0,Math.min(m,f)):m*Math.max(0,Math.min(1,f)),B=[new mxPoint(l,B),new mxPoint(l+k,B+e),new mxPoint(l+k,B+m),new mxPoint(l,B+m-e),new mxPoint(l,B)]):(e=e?Math.max(0,Math.min(.5*k,f)):k*Math.max(0,Math.min(1,f)),B=[new mxPoint(l+e,B),new mxPoint(l+k,B),new mxPoint(l+k-e,B+m),new mxPoint(l,B+m),new mxPoint(l+e,B)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(g.x<l||g.x>l+k?b.y=g.y:b.x=g.x);return mxUtils.getPerimeterPoint(B,b,g)};mxStyleRegistry.putValue("parallelogramPerimeter",
mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(b,d,g,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),f=e?z.prototype.fixedSize:z.prototype.size;null!=d&&(f=mxUtils.getValue(d.style,"size",f));e&&(f*=d.view.scale);var l=b.x,B=b.y,k=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*k,f)):k*Math.max(0,Math.min(1,f)),B=[new mxPoint(l+
e,B),new mxPoint(l+k-e,B),new mxPoint(l+k,B+m),new mxPoint(l,B+m),new mxPoint(l+e,B)]):d==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),B=[new mxPoint(l,B),new mxPoint(l+k,B),new mxPoint(l+k-e,B+m),new mxPoint(l+e,B+m),new mxPoint(l,B)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(m,f)):m*Math.max(0,Math.min(1,f)),B=[new mxPoint(l,B+e),new mxPoint(l+k,B),new mxPoint(l+k,B+m),new mxPoint(l,B+m-e),new mxPoint(l,B+e)]):(e=e?Math.max(0,Math.min(m,f)):
-m*Math.max(0,Math.min(1,f)),B=[new mxPoint(l,B),new mxPoint(l+k,B+e),new mxPoint(l+k,B+m-e),new mxPoint(l,B+m),new mxPoint(l,B)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(g.x<l||g.x>l+k?b.y=g.y:b.x=g.x);return mxUtils.getPerimeterPoint(B,b,g)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(b,d,g,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),f=e?M.prototype.fixedSize:M.prototype.size;null!=d&&(f=mxUtils.getValue(d.style,
+m*Math.max(0,Math.min(1,f)),B=[new mxPoint(l,B),new mxPoint(l+k,B+e),new mxPoint(l+k,B+m-e),new mxPoint(l,B+m),new mxPoint(l,B)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(g.x<l||g.x>l+k?b.y=g.y:b.x=g.x);return mxUtils.getPerimeterPoint(B,b,g)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(b,d,g,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),f=e?N.prototype.fixedSize:N.prototype.size;null!=d&&(f=mxUtils.getValue(d.style,
"size",f));e&&(f*=d.view.scale);var l=b.x,B=b.y,k=b.width,m=b.height,p=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(k,f)):k*Math.max(0,Math.min(1,f)),B=[new mxPoint(l,B),new mxPoint(l+k-e,B),new mxPoint(l+k,b),new mxPoint(l+k-e,B+m),new mxPoint(l,B+m),new mxPoint(l+e,b),new mxPoint(l,B)]):d==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,
f)):k*Math.max(0,Math.min(1,f)),B=[new mxPoint(l+e,B),new mxPoint(l+k,B),new mxPoint(l+k-e,b),new mxPoint(l+k,B+m),new mxPoint(l+e,B+m),new mxPoint(l,b),new mxPoint(l+e,B)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(m,f)):m*Math.max(0,Math.min(1,f)),B=[new mxPoint(l,B+e),new mxPoint(p,B),new mxPoint(l+k,B+e),new mxPoint(l+k,B+m),new mxPoint(p,B+m-e),new mxPoint(l,B+m),new mxPoint(l,B+e)]):(e=e?Math.max(0,Math.min(m,f)):m*Math.max(0,Math.min(1,f)),B=[new mxPoint(l,B),new mxPoint(p,B+
-e),new mxPoint(l+k,B),new mxPoint(l+k,B+m-e),new mxPoint(p,B+m),new mxPoint(l,B+m-e),new mxPoint(l,B)]);p=new mxPoint(p,b);c&&(g.x<l||g.x>l+k?p.y=g.y:p.x=g.x);return mxUtils.getPerimeterPoint(B,p,g)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(b,d,g,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),f=e?aa.prototype.fixedSize:aa.prototype.size;null!=d&&(f=mxUtils.getValue(d.style,"size",f));e&&(f*=d.view.scale);var l=b.x,B=b.y,k=
-b.width,m=b.height,p=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,f)):m*Math.max(0,Math.min(1,f)),B=[new mxPoint(p,B),new mxPoint(l+k,B+e),new mxPoint(l+k,B+m-e),new mxPoint(p,B+m),new mxPoint(l,B+m-e),new mxPoint(l,B+e),new mxPoint(p,B)]):(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),B=[new mxPoint(l+
-e,B),new mxPoint(l+k-e,B),new mxPoint(l+k,b),new mxPoint(l+k-e,B+m),new mxPoint(l+e,B+m),new mxPoint(l,b),new mxPoint(l+e,B)]);p=new mxPoint(p,b);c&&(g.x<l||g.x>l+k?p.y=g.y:p.x=g.x);return mxUtils.getPerimeterPoint(B,p,g)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(na,mxShape);na.prototype.size=10;na.prototype.paintBackground=function(b,d,g,c,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size));b.translate(d,g);b.ellipse((c-f)/2,0,f,f);
-b.fillAndStroke();b.begin();b.moveTo(c/2,f);b.lineTo(c/2,e);b.end();b.stroke()};mxCellRenderer.registerShape("lollipop",na);mxUtils.extend(fa,mxShape);fa.prototype.size=10;fa.prototype.inset=2;fa.prototype.paintBackground=function(b,d,g,c,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),l=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(d,g);b.begin();b.moveTo(c/2,f+l);b.lineTo(c/2,e);b.end();b.stroke();b.begin();b.moveTo((c-f)/2-l,f/2);b.quadTo((c-
+e),new mxPoint(l+k,B),new mxPoint(l+k,B+m-e),new mxPoint(p,B+m),new mxPoint(l,B+m-e),new mxPoint(l,B)]);p=new mxPoint(p,b);c&&(g.x<l||g.x>l+k?p.y=g.y:p.x=g.x);return mxUtils.getPerimeterPoint(B,p,g)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(b,d,g,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),f=e?Z.prototype.fixedSize:Z.prototype.size;null!=d&&(f=mxUtils.getValue(d.style,"size",f));e&&(f*=d.view.scale);var l=b.x,B=b.y,k=b.width,
+m=b.height,p=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,f)):m*Math.max(0,Math.min(1,f)),B=[new mxPoint(p,B),new mxPoint(l+k,B+e),new mxPoint(l+k,B+m-e),new mxPoint(p,B+m),new mxPoint(l,B+m-e),new mxPoint(l,B+e),new mxPoint(p,B)]):(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),B=[new mxPoint(l+
+e,B),new mxPoint(l+k-e,B),new mxPoint(l+k,b),new mxPoint(l+k-e,B+m),new mxPoint(l+e,B+m),new mxPoint(l,b),new mxPoint(l+e,B)]);p=new mxPoint(p,b);c&&(g.x<l||g.x>l+k?p.y=g.y:p.x=g.x);return mxUtils.getPerimeterPoint(B,p,g)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(oa,mxShape);oa.prototype.size=10;oa.prototype.paintBackground=function(b,d,g,c,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size));b.translate(d,g);b.ellipse((c-f)/2,0,f,f);
+b.fillAndStroke();b.begin();b.moveTo(c/2,f);b.lineTo(c/2,e);b.end();b.stroke()};mxCellRenderer.registerShape("lollipop",oa);mxUtils.extend(fa,mxShape);fa.prototype.size=10;fa.prototype.inset=2;fa.prototype.paintBackground=function(b,d,g,c,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),l=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(d,g);b.begin();b.moveTo(c/2,f+l);b.lineTo(c/2,e);b.end();b.stroke();b.begin();b.moveTo((c-f)/2-l,f/2);b.quadTo((c-
f)/2-l,f+l,c/2,f+l);b.quadTo((c+f)/2+l,f+l,(c+f)/2+l,f/2);b.end();b.stroke()};mxCellRenderer.registerShape("requires",fa);mxUtils.extend(ka,mxShape);ka.prototype.paintBackground=function(b,d,g,c,e){b.translate(d,g);b.begin();b.moveTo(0,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,0,e);b.end();b.stroke()};mxCellRenderer.registerShape("requiredInterface",ka);mxUtils.extend(ra,mxShape);ra.prototype.inset=2;ra.prototype.paintBackground=function(b,d,g,c,e){var f=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+
this.strokewidth;b.translate(d,g);b.ellipse(0,f,c-2*f,e-2*f);b.fillAndStroke();b.begin();b.moveTo(c/2,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,c/2,e);b.end();b.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",ra);mxUtils.extend(la,mxCylinder);la.prototype.jettyWidth=20;la.prototype.jettyHeight=10;la.prototype.redrawPath=function(b,d,g,c,e,f){var l=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));
g=l/2;var l=g+l/2,B=Math.min(d,e-d),k=Math.min(B+2*d,e-d);f?(b.moveTo(g,B),b.lineTo(l,B),b.lineTo(l,B+d),b.lineTo(g,B+d),b.moveTo(g,k),b.lineTo(l,k),b.lineTo(l,k+d),b.lineTo(g,k+d)):(b.moveTo(g,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(g,e),b.lineTo(g,k+d),b.lineTo(0,k+d),b.lineTo(0,k),b.lineTo(g,k),b.lineTo(g,B+d),b.lineTo(0,B+d),b.lineTo(0,B),b.lineTo(g,B),b.close());b.end()};mxCellRenderer.registerShape("module",la);mxUtils.extend(ja,mxCylinder);ja.prototype.jettyWidth=32;ja.prototype.jettyHeight=
12;ja.prototype.redrawPath=function(b,d,g,c,e,f){var l=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));g=l/2;var l=g+l/2,B=.3*e-d/2,k=.7*e-d/2;f?(b.moveTo(g,B),b.lineTo(l,B),b.lineTo(l,B+d),b.lineTo(g,B+d),b.moveTo(g,k),b.lineTo(l,k),b.lineTo(l,k+d),b.lineTo(g,k+d)):(b.moveTo(g,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(g,e),b.lineTo(g,k+d),b.lineTo(0,k+d),b.lineTo(0,k),b.lineTo(g,k),b.lineTo(g,B+d),b.lineTo(0,
-B+d),b.lineTo(0,B),b.lineTo(g,B),b.close());b.end()};mxCellRenderer.registerShape("component",ja);mxUtils.extend(ba,mxRectangleShape);ba.prototype.paintForeground=function(b,d,g,c,e){var f=c/2,l=e/2,B=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b.begin();this.addPoints(b,[new mxPoint(d+f,g),new mxPoint(d+c,g+l),new mxPoint(d+f,g+e),new mxPoint(d,g+l)],this.isRounded,B,!0);b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",
-ba);mxUtils.extend(ca,mxDoubleEllipse);ca.prototype.outerStroke=!0;ca.prototype.paintVertexShape=function(b,d,g,c,e){var f=Math.min(4,Math.min(c/5,e/5));0<c&&0<e&&(b.ellipse(d+f,g+f,c-2*f,e-2*f),b.fillAndStroke());b.setShadow(!1);this.outerStroke&&(b.ellipse(d,g,c,e),b.stroke())};mxCellRenderer.registerShape("endState",ca);mxUtils.extend(R,ca);R.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",R);mxUtils.extend(sa,mxArrowConnector);sa.prototype.defaultWidth=4;sa.prototype.isOpenEnded=
+B+d),b.lineTo(0,B),b.lineTo(g,B),b.close());b.end()};mxCellRenderer.registerShape("component",ja);mxUtils.extend(aa,mxRectangleShape);aa.prototype.paintForeground=function(b,d,g,c,e){var f=c/2,l=e/2,B=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b.begin();this.addPoints(b,[new mxPoint(d+f,g),new mxPoint(d+c,g+l),new mxPoint(d+f,g+e),new mxPoint(d,g+l)],this.isRounded,B,!0);b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",
+aa);mxUtils.extend(ba,mxDoubleEllipse);ba.prototype.outerStroke=!0;ba.prototype.paintVertexShape=function(b,d,g,c,e){var f=Math.min(4,Math.min(c/5,e/5));0<c&&0<e&&(b.ellipse(d+f,g+f,c-2*f,e-2*f),b.fillAndStroke());b.setShadow(!1);this.outerStroke&&(b.ellipse(d,g,c,e),b.stroke())};mxCellRenderer.registerShape("endState",ba);mxUtils.extend(R,ba);R.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",R);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(W,mxArrowConnector);W.prototype.defaultWidth=10;W.prototype.defaultArrowWidth=20;W.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};W.prototype.getEndArrowWidth=
function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};W.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",W);mxUtils.extend(X,mxActor);X.prototype.size=30;X.prototype.isRoundable=function(){return!0};X.prototype.redrawPath=function(b,d,g,c,e){d=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));g=mxUtils.getValue(this.style,
mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(0,d),new mxPoint(c,0),new mxPoint(c,e)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("manualInput",X);mxUtils.extend(ma,mxRectangleShape);ma.prototype.dx=20;ma.prototype.dy=20;ma.prototype.isHtmlAllowed=function(){return!1};ma.prototype.paintForeground=function(b,d,g,c,e){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var f=0;if(this.isRounded)var l=mxUtils.getValue(this.style,
@@ -2797,8 +2795,8 @@ mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.
mxCellRenderer.registerShape("corner",qa);mxUtils.extend(T,mxActor);T.prototype.redrawPath=function(b,d,g,c,e){b.moveTo(0,0);b.lineTo(0,e);b.end();b.moveTo(c,0);b.lineTo(c,e);b.end();b.moveTo(0,e/2);b.lineTo(c,e/2);b.end()};mxCellRenderer.registerShape("crossbar",T);mxUtils.extend(ia,mxActor);ia.prototype.dx=20;ia.prototype.dy=20;ia.prototype.redrawPath=function(b,d,g,c,e){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,
"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,g),new mxPoint((c+d)/2,g),new mxPoint((c+d)/2,e),new mxPoint((c-d)/2,e),new mxPoint((c-d)/2,g),new mxPoint(0,g)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("tee",ia);mxUtils.extend(da,mxActor);da.prototype.arrowWidth=.3;da.prototype.arrowSize=.2;da.prototype.redrawPath=
function(b,d,g,c,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));g=(e-f)/2;var f=g+f,l=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,g),new mxPoint(c-d,g),new mxPoint(c-d,0),new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(c-d,f),new mxPoint(0,f)],this.isRounded,l,!0);b.end()};mxCellRenderer.registerShape("singleArrow",
-da);mxUtils.extend(oa,mxActor);oa.prototype.redrawPath=function(b,d,g,c,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",da.prototype.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",da.prototype.arrowSize))));g=(e-f)/2;var f=g+f,l=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e/2),new mxPoint(d,0),new mxPoint(d,g),new mxPoint(c-d,g),new mxPoint(c-d,0),
-new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(c-d,f),new mxPoint(d,f),new mxPoint(d,e)],this.isRounded,l,!0);b.end()};mxCellRenderer.registerShape("doubleArrow",oa);mxUtils.extend(ha,mxActor);ha.prototype.size=.1;ha.prototype.fixedSize=20;ha.prototype.redrawPath=function(b,d,g,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));
+da);mxUtils.extend(na,mxActor);na.prototype.redrawPath=function(b,d,g,c,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",da.prototype.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",da.prototype.arrowSize))));g=(e-f)/2;var f=g+f,l=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e/2),new mxPoint(d,0),new mxPoint(d,g),new mxPoint(c-d,g),new mxPoint(c-d,0),
+new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(c-d,f),new mxPoint(d,f),new mxPoint(d,e)],this.isRounded,l,!0);b.end()};mxCellRenderer.registerShape("doubleArrow",na);mxUtils.extend(ha,mxActor);ha.prototype.size=.1;ha.prototype.fixedSize=20;ha.prototype.redrawPath=function(b,d,g,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));
b.moveTo(d,0);b.lineTo(c,0);b.quadTo(c-2*d,e/2,c,e);b.lineTo(d,e);b.quadTo(d-2*d,e/2,d,0);b.close();b.end()};mxCellRenderer.registerShape("dataStorage",ha);mxUtils.extend(ua,mxActor);ua.prototype.redrawPath=function(b,d,g,c,e){b.moveTo(0,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,0,e);b.close();b.end()};mxCellRenderer.registerShape("or",ua);mxUtils.extend(P,mxActor);P.prototype.redrawPath=function(b,d,g,c,e){b.moveTo(0,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,0,e);b.quadTo(c/2,e/2,0,0);b.close();b.end()};mxCellRenderer.registerShape("xor",
P);mxUtils.extend(ea,mxActor);ea.prototype.size=20;ea.prototype.isRoundable=function(){return!0};ea.prototype.redrawPath=function(b,d,g,c,e){d=Math.min(c/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,.8*d),new mxPoint(c,e),new mxPoint(0,e),new mxPoint(0,.8*d)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("loopLimit",
ea);mxUtils.extend(ta,mxActor);ta.prototype.size=.375;ta.prototype.isRoundable=function(){return!0};ta.prototype.redrawPath=function(b,d,g,c,e){d=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,e-d),new mxPoint(c/2,e),new mxPoint(0,e-d)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("offPageConnector",
@@ -2806,21 +2804,21 @@ ta);mxUtils.extend(ya,mxEllipse);ya.prototype.paintVertexShape=function(b,d,g,c,
b.lineTo(d+c/2,g+e);b.end();b.stroke()};mxCellRenderer.registerShape("orEllipse",pa);mxUtils.extend(xa,mxEllipse);xa.prototype.paintVertexShape=function(b,d,g,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d+.145*c,g+.145*e);b.lineTo(d+.855*c,g+.855*e);b.end();b.stroke();b.begin();b.moveTo(d+.855*c,g+.145*e);b.lineTo(d+.145*c,g+.855*e);b.end();b.stroke()};mxCellRenderer.registerShape("sumEllipse",xa);mxUtils.extend(za,mxRhombus);za.prototype.paintVertexShape=
function(b,d,g,c,e){mxRhombus.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d,g+e/2);b.lineTo(d+c,g+e/2);b.end();b.stroke()};mxCellRenderer.registerShape("sortShape",za);mxUtils.extend(Ba,mxEllipse);Ba.prototype.paintVertexShape=function(b,d,g,c,e){b.begin();b.moveTo(d,g);b.lineTo(d+c,g);b.lineTo(d+c/2,g+e/2);b.close();b.fillAndStroke();b.begin();b.moveTo(d,g+e);b.lineTo(d+c,g+e);b.lineTo(d+c/2,g+e/2);b.close();b.fillAndStroke()};mxCellRenderer.registerShape("collate",
Ba);mxUtils.extend(Ea,mxEllipse);Ea.prototype.paintVertexShape=function(b,d,g,c,e){var f=g+e-5;b.begin();b.moveTo(d,g);b.lineTo(d,g+e);b.moveTo(d,f);b.lineTo(d+10,f-5);b.moveTo(d,f);b.lineTo(d+10,f+5);b.moveTo(d,f);b.lineTo(d+c,f);b.moveTo(d+c,g);b.lineTo(d+c,g+e);b.moveTo(d+c,f);b.lineTo(d+c-10,f-5);b.moveTo(d+c,f);b.lineTo(d+c-10,f+5);b.end();b.stroke()};mxCellRenderer.registerShape("dimension",Ea);mxUtils.extend(Ja,mxEllipse);Ja.prototype.paintVertexShape=function(b,d,g,c,e){this.outline||b.setStrokeColor(null);
-if(null!=this.style){var f=b.pointerEvents;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=this.fill&&this.fill!=mxConstants.NONE||(b.pointerEvents=!1);b.rect(d,g,c,e);b.fill();b.pointerEvents=f;b.setStrokeColor(this.stroke);b.begin();b.moveTo(d,g);this.outline||"1"==mxUtils.getValue(this.style,"top","1")?b.lineTo(d+c,g):b.moveTo(d+c,g);this.outline||"1"==mxUtils.getValue(this.style,"right","1")?b.lineTo(d+c,g+e):b.moveTo(d+c,g+e);this.outline||"1"==mxUtils.getValue(this.style,
-"bottom","1")?b.lineTo(d,g+e):b.moveTo(d,g+e);(this.outline||"1"==mxUtils.getValue(this.style,"left","1"))&&b.lineTo(d,g);b.end();b.stroke()}};mxCellRenderer.registerShape("partialRectangle",Ja);mxUtils.extend(Aa,mxEllipse);Aa.prototype.paintVertexShape=function(b,d,g,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();"vertical"==mxUtils.getValue(this.style,"line")?(b.moveTo(d+c/2,g),b.lineTo(d+c/2,g+e)):(b.moveTo(d,g+e/2),b.lineTo(d+c,g+e/2));b.end();b.stroke()};
-mxCellRenderer.registerShape("lineEllipse",Aa);mxUtils.extend(Ka,mxActor);Ka.prototype.redrawPath=function(b,d,g,c,e){d=Math.min(c,e/2);b.moveTo(0,0);b.lineTo(c-d,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,c-d,e);b.lineTo(0,e);b.close();b.end()};mxCellRenderer.registerShape("delay",Ka);mxUtils.extend(Ca,mxActor);Ca.prototype.size=.2;Ca.prototype.redrawPath=function(b,d,g,c,e){d=Math.min(e,c);var f=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=(e-f)/2;g=d+f;var l=(c-
-f)/2,f=l+f;b.moveTo(0,d);b.lineTo(l,d);b.lineTo(l,0);b.lineTo(f,0);b.lineTo(f,d);b.lineTo(c,d);b.lineTo(c,g);b.lineTo(f,g);b.lineTo(f,e);b.lineTo(l,e);b.lineTo(l,g);b.lineTo(0,g);b.close();b.end()};mxCellRenderer.registerShape("cross",Ca);mxUtils.extend(wa,mxActor);wa.prototype.size=.25;wa.prototype.redrawPath=function(b,d,g,c,e){d=Math.min(c,e/2);g=Math.min(c-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);b.moveTo(0,e/2);b.lineTo(g,0);b.lineTo(c-d,0);b.quadTo(c,0,c,e/
-2);b.quadTo(c,e,c-d,e);b.lineTo(g,e);b.close();b.end()};mxCellRenderer.registerShape("display",wa);mxUtils.extend(Z,mxActor);Z.prototype.cst={RECT2:"mxgraph.basic.rect"};Z.prototype.customProperties=[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"size",dispName:"Corner Size",type:"float",defVal:10},{name:"absoluteCornerSize",
-dispName:"Abs. Corner Size",type:"bool",defVal:!0},{name:"indent",dispName:"Indent",type:"float",defVal:2},{name:"rectOutline",dispName:"Outline",type:"enum",defVal:"single",enumList:[{val:"single",dispName:"Single"},{val:"double",dispName:"Double"},{val:"frame",dispName:"Frame"}]},{name:"fillColor2",dispName:"Inside Fill Color",type:"color",defVal:"none"},{name:"gradientColor2",dispName:"Inside Gradient Color",type:"color",defVal:"none"},{name:"gradientDirection2",dispName:"Inside Gradient Direction",
-type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",dispName:"West"},{val:"north",dispName:"North"},{val:"east",dispName:"East"}]},{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left ",type:"bool",defVal:!0},{name:"topLeftStyle",dispName:"Top Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},
-{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",
+if(null!=this.style){var f=b.pointerEvents;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=this.fill&&this.fill!=mxConstants.NONE||(b.pointerEvents=!1);b.rect(d,g,c,e);b.fill();b.pointerEvents=f;b.setStrokeColor(this.stroke);b.setLineCap("square");b.begin();b.moveTo(d,g);this.outline||"1"==mxUtils.getValue(this.style,"top","1")?b.lineTo(d+c,g):b.moveTo(d+c,g);this.outline||"1"==mxUtils.getValue(this.style,"right","1")?b.lineTo(d+c,g+e):b.moveTo(d+c,g+e);this.outline||
+"1"==mxUtils.getValue(this.style,"bottom","1")?b.lineTo(d,g+e):b.moveTo(d,g+e);(this.outline||"1"==mxUtils.getValue(this.style,"left","1"))&&b.lineTo(d,g);b.end();b.stroke();b.setLineCap("flat")}};mxCellRenderer.registerShape("partialRectangle",Ja);mxUtils.extend(Aa,mxEllipse);Aa.prototype.paintVertexShape=function(b,d,g,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();"vertical"==mxUtils.getValue(this.style,"line")?(b.moveTo(d+c/2,g),b.lineTo(d+c/2,g+e)):
+(b.moveTo(d,g+e/2),b.lineTo(d+c,g+e/2));b.end();b.stroke()};mxCellRenderer.registerShape("lineEllipse",Aa);mxUtils.extend(Ka,mxActor);Ka.prototype.redrawPath=function(b,d,g,c,e){d=Math.min(c,e/2);b.moveTo(0,0);b.lineTo(c-d,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,c-d,e);b.lineTo(0,e);b.close();b.end()};mxCellRenderer.registerShape("delay",Ka);mxUtils.extend(Ca,mxActor);Ca.prototype.size=.2;Ca.prototype.redrawPath=function(b,d,g,c,e){d=Math.min(e,c);var f=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));d=(e-f)/2;g=d+f;var l=(c-f)/2,f=l+f;b.moveTo(0,d);b.lineTo(l,d);b.lineTo(l,0);b.lineTo(f,0);b.lineTo(f,d);b.lineTo(c,d);b.lineTo(c,g);b.lineTo(f,g);b.lineTo(f,e);b.lineTo(l,e);b.lineTo(l,g);b.lineTo(0,g);b.close();b.end()};mxCellRenderer.registerShape("cross",Ca);mxUtils.extend(wa,mxActor);wa.prototype.size=.25;wa.prototype.redrawPath=function(b,d,g,c,e){d=Math.min(c,e/2);g=Math.min(c-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);b.moveTo(0,e/2);b.lineTo(g,
+0);b.lineTo(c-d,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,c-d,e);b.lineTo(g,e);b.close();b.end()};mxCellRenderer.registerShape("display",wa);mxUtils.extend(Y,mxActor);Y.prototype.cst={RECT2:"mxgraph.basic.rect"};Y.prototype.customProperties=[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"size",dispName:"Corner Size",
+type:"float",defVal:10},{name:"absoluteCornerSize",dispName:"Abs. Corner Size",type:"bool",defVal:!0},{name:"indent",dispName:"Indent",type:"float",defVal:2},{name:"rectOutline",dispName:"Outline",type:"enum",defVal:"single",enumList:[{val:"single",dispName:"Single"},{val:"double",dispName:"Double"},{val:"frame",dispName:"Frame"}]},{name:"fillColor2",dispName:"Inside Fill Color",type:"color",defVal:"none"},{name:"gradientColor2",dispName:"Inside Gradient Color",type:"color",defVal:"none"},{name:"gradientDirection2",
+dispName:"Inside Gradient Direction",type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",dispName:"West"},{val:"north",dispName:"North"},{val:"east",dispName:"East"}]},{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left ",type:"bool",defVal:!0},{name:"topLeftStyle",dispName:"Top Left Style",type:"enum",defVal:"default",enumList:[{val:"default",
+dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",
type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",
-dispName:"Fold"}]}];Z.prototype.paintVertexShape=function(b,d,g,c,e){b.translate(d,g);this.strictDrawShape(b,0,0,c,e)};Z.prototype.strictDrawShape=function(b,d,g,c,e,f){var l=f&&f.rectStyle?f.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=f&&f.absoluteCornerSize?f.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),m=f&&f.size?f.size:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),p=f&&f.rectOutline?f.rectOutline:
-mxUtils.getValue(this.style,"rectOutline",this.rectOutline),q=f&&f.indent?f.indent:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),E=f&&f.dashed?f.dashed:mxUtils.getValue(this.style,"dashed",!1),B=f&&f.dashPattern?f.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),v=f&&f.relIndent?f.relIndent:Math.max(0,Math.min(50,q)),u=f&&f.top?f.top:mxUtils.getValue(this.style,"top",!0),A=f&&f.right?f.right:mxUtils.getValue(this.style,"right",!0),n=f&&f.bottom?f.bottom:
+dispName:"Fold"}]}];Y.prototype.paintVertexShape=function(b,d,g,c,e){b.translate(d,g);this.strictDrawShape(b,0,0,c,e)};Y.prototype.strictDrawShape=function(b,d,g,c,e,f){var l=f&&f.rectStyle?f.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=f&&f.absoluteCornerSize?f.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),m=f&&f.size?f.size:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),p=f&&f.rectOutline?f.rectOutline:
+mxUtils.getValue(this.style,"rectOutline",this.rectOutline),q=f&&f.indent?f.indent:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),F=f&&f.dashed?f.dashed:mxUtils.getValue(this.style,"dashed",!1),B=f&&f.dashPattern?f.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),v=f&&f.relIndent?f.relIndent:Math.max(0,Math.min(50,q)),u=f&&f.top?f.top:mxUtils.getValue(this.style,"top",!0),A=f&&f.right?f.right:mxUtils.getValue(this.style,"right",!0),n=f&&f.bottom?f.bottom:
mxUtils.getValue(this.style,"bottom",!0),x=f&&f.left?f.left:mxUtils.getValue(this.style,"left",!0),I=f&&f.topLeftStyle?f.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),t=f&&f.topRightStyle?f.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),y=f&&f.bottomRightStyle?f.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),z=f&&f.bottomLeftStyle?f.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),S=f&&f.fillColor?f.fillColor:
-mxUtils.getValue(this.style,"fillColor","#ffffff");f&&f.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var C=f&&f.strokeWidth?f.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),Y=f&&f.fillColor2?f.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),N=f&&f.gradientColor2?f.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),V=f&&f.gradientDirection2?f.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),Da=f&&f.opacity?f.opacity:
-mxUtils.getValue(this.style,"opacity","100"),va=Math.max(0,Math.min(50,m));f=Z.prototype;b.setDashed(E);B&&""!=B&&b.setDashPattern(B);b.setStrokeWidth(C);m=Math.min(.5*e,.5*c,m);k||(m=va*Math.min(c,e)/100);m=Math.min(m,.5*Math.min(c,e));k||(q=Math.min(v*Math.min(c,e)/100));q=Math.min(q,.5*Math.min(c,e)-m);(u||A||n||x)&&"frame"!=p&&(b.begin(),u?f.moveNW(b,d,g,c,e,l,I,m,x):b.moveTo(0,0),u&&f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,A),A&&f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,
-c,e,l,y,m,n),n&&f.paintSE(b,d,g,c,e,l,y,m,A),f.paintBottom(b,d,g,c,e,l,z,m,x),x&&f.paintSW(b,d,g,c,e,l,z,m,n),f.paintLeft(b,d,g,c,e,l,I,m,u),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(Y),E=k=Da,"none"==Y&&(k=0),"none"==N&&(E=0),b.setGradient(Y,N,0,0,c,e,V,k,E),b.begin(),u?f.moveNWInner(b,d,g,c,e,l,I,m,q,u,x):b.moveTo(q,0),f.paintLeftInner(b,d,g,c,e,l,z,m,q,n,x),x&&n&&f.paintSWInner(b,d,g,c,e,l,z,m,q,n),f.paintBottomInner(b,d,g,c,e,l,y,m,q,A,n),n&&A&&f.paintSEInner(b,d,g,c,e,l,y,m,q),f.paintRightInner(b,
+mxUtils.getValue(this.style,"fillColor","#ffffff");f&&f.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var C=f&&f.strokeWidth?f.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),M=f&&f.fillColor2?f.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),ca=f&&f.gradientColor2?f.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),V=f&&f.gradientDirection2?f.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),Da=f&&f.opacity?f.opacity:
+mxUtils.getValue(this.style,"opacity","100"),va=Math.max(0,Math.min(50,m));f=Y.prototype;b.setDashed(F);B&&""!=B&&b.setDashPattern(B);b.setStrokeWidth(C);m=Math.min(.5*e,.5*c,m);k||(m=va*Math.min(c,e)/100);m=Math.min(m,.5*Math.min(c,e));k||(q=Math.min(v*Math.min(c,e)/100));q=Math.min(q,.5*Math.min(c,e)-m);(u||A||n||x)&&"frame"!=p&&(b.begin(),u?f.moveNW(b,d,g,c,e,l,I,m,x):b.moveTo(0,0),u&&f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,A),A&&f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,
+c,e,l,y,m,n),n&&f.paintSE(b,d,g,c,e,l,y,m,A),f.paintBottom(b,d,g,c,e,l,z,m,x),x&&f.paintSW(b,d,g,c,e,l,z,m,n),f.paintLeft(b,d,g,c,e,l,I,m,u),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(M),F=k=Da,"none"==M&&(k=0),"none"==ca&&(F=0),b.setGradient(M,ca,0,0,c,e,V,k,F),b.begin(),u?f.moveNWInner(b,d,g,c,e,l,I,m,q,u,x):b.moveTo(q,0),f.paintLeftInner(b,d,g,c,e,l,z,m,q,n,x),x&&n&&f.paintSWInner(b,d,g,c,e,l,z,m,q,n),f.paintBottomInner(b,d,g,c,e,l,y,m,q,A,n),n&&A&&f.paintSEInner(b,d,g,c,e,l,y,m,q),f.paintRightInner(b,
d,g,c,e,l,t,m,q,u,A),A&&u&&f.paintNEInner(b,d,g,c,e,l,t,m,q),f.paintTopInner(b,d,g,c,e,l,I,m,q,x,u),u&&x&&f.paintNWInner(b,d,g,c,e,l,I,m,q),b.fill(),"none"==S&&(b.begin(),f.paintFolds(b,d,g,c,e,l,I,t,y,z,m,u,A,n,x),b.stroke()));u||A||n||!x?u||A||!n||x?!u&&!A&&n&&x?"frame"!=p?(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,A),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,n),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==p&&(f.moveNWInner(b,d,g,c,e,l,I,m,q,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,q,n,x),f.paintSWInner(b,
d,g,c,e,l,z,m,q,n),f.paintBottomInner(b,d,g,c,e,l,y,m,q,A,n)),b.stroke()):(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,A),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,n),f.paintLeft(b,d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,q,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,q,n,x),f.paintSWInner(b,d,g,c,e,l,z,m,q,n),f.paintBottomInner(b,d,g,c,e,l,y,m,q,A,n),b.close(),b.fillAndStroke()):u||!A||n||x?!u&&A&&!n&&x?"frame"!=p?(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,n),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==
p&&(f.moveNWInner(b,d,g,c,e,l,I,m,q,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,q,n,x)),b.stroke(),b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,n),"double"==p&&(f.moveSEInner(b,d,g,c,e,l,y,m,q,n),f.paintRightInner(b,d,g,c,e,l,t,m,q,u,A)),b.stroke()):(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,n),f.paintLeft(b,d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,q,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,q,n,x),b.close(),b.fillAndStroke(),b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,
@@ -2842,31 +2840,31 @@ e,l,z,m,q,n,x),b.close()),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.p
e,l,t,m,q,u,A),f.paintNEInner(b,d,g,c,e,l,t,m,q),f.paintTopInner(b,d,g,c,e,l,I,m,q,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,q),f.paintLeftInner(b,d,g,c,e,l,z,m,q,n,x),b.close(),b.fillAndStroke())):"frame"!=p?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,A),"double"==p&&(f.moveNEInner(b,d,g,c,e,l,t,m,q,A),f.paintTopInner(b,d,g,c,e,l,I,m,q,x,u)),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,A),f.lineNEInner(b,d,g,c,e,l,t,m,q,A),f.paintTopInner(b,d,g,c,
e,l,I,m,q,x,u),b.close(),b.fillAndStroke()):"frame"!=p?(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,n),"double"==p&&(f.moveSEInner(b,d,g,c,e,l,y,m,q,n),f.paintRightInner(b,d,g,c,e,l,t,m,q,u,A)),b.stroke()):(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,n),f.lineSEInner(b,d,g,c,e,l,y,m,q,n),f.paintRightInner(b,d,g,c,e,l,t,m,q,u,A),b.close(),b.fillAndStroke()):"frame"!=p?(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,A),f.paintBottom(b,d,g,c,e,l,z,m,x),"double"==p&&
(f.moveSWInner(b,d,g,c,e,l,z,m,q,x),f.paintBottomInner(b,d,g,c,e,l,y,m,q,A,n)),b.stroke()):(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,A),f.paintBottom(b,d,g,c,e,l,z,m,x),f.lineSWInner(b,d,g,c,e,l,z,m,q,x),f.paintBottomInner(b,d,g,c,e,l,y,m,q,A,n),b.close(),b.fillAndStroke()):"frame"!=p?(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,n),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==p&&(f.moveNWInner(b,d,g,c,e,l,I,m,q,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,q,n,x)),b.stroke()):(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,n),f.paintLeft(b,
-d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,q,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,q,n,x),b.close(),b.fillAndStroke());b.begin();f.paintFolds(b,d,g,c,e,l,I,t,y,z,m,u,A,n,x);b.stroke()};Z.prototype.moveNW=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(0,0):b.moveTo(0,m)};Z.prototype.moveNE=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(c,0):b.moveTo(c-m,0)};Z.prototype.moveSE=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&
-"square"==f||!k?b.moveTo(c,e):b.moveTo(c,e-m)};Z.prototype.moveSW=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(0,e):b.moveTo(m,e)};Z.prototype.paintNW=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,m,0)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(m,0);else b.lineTo(0,0)};Z.prototype.paintTop=
-function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.lineTo(c,0):b.lineTo(c-m,0)};Z.prototype.paintNE=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,c,m)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c,m);else b.lineTo(c,0)};Z.prototype.paintRight=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==
-l&&"square"==f||!k?b.lineTo(c,e):b.lineTo(c,e-m)};Z.prototype.paintLeft=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.lineTo(0,0):b.lineTo(0,m)};Z.prototype.paintSE=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,c-m,e)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-m,e);else b.lineTo(c,
-e)};Z.prototype.paintBottom=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.lineTo(0,e):b.lineTo(m,e)};Z.prototype.paintSW=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,0,e-m)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(0,e-m);else b.lineTo(0,e)};Z.prototype.paintNWInner=function(b,d,g,
-c,e,f,l,m,k){if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,k,.5*k+m);else if("invRound"==l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,k,k+m);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(k,.5*k+m);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(k+m,k+m),b.lineTo(k,k+m)};Z.prototype.paintTopInner=function(b,d,g,c,e,f,l,m,k,q,p){q||p?!q&&p?b.lineTo(0,k):q&&!p?b.lineTo(k,0):q?"square"==l||"default"==l&&"square"==f?b.lineTo(k,k):"rounded"==l||"default"==l&&
-"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(m+.5*k,k):b.lineTo(m+k,k):b.lineTo(0,k):b.lineTo(0,0)};Z.prototype.paintNEInner=function(b,d,g,c,e,f,l,m,k){if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-m-.5*k,k);else if("invRound"==l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,c-m-k,k);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(c-m-.5*k,k);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(c-m-k,m+k),b.lineTo(c-m-k,k)};Z.prototype.paintRightInner=
-function(b,d,g,c,e,f,l,m,k,q,p){q||p?!q&&p?b.lineTo(c-k,0):q&&!p?b.lineTo(c,k):q?"square"==l||"default"==l&&"square"==f?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-k,m+.5*k):b.lineTo(c-k,m+k):b.lineTo(c-k,0):b.lineTo(c,0)};Z.prototype.paintLeftInner=function(b,d,g,c,e,f,l,m,k,q,p){q||p?!q&&p?b.lineTo(k,e):q&&!p?b.lineTo(0,e-k):q?"square"==l||"default"==l&&"square"==f?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==
-l&&"snip"==f?b.lineTo(k,e-m-.5*k):b.lineTo(k,e-m-k):b.lineTo(k,e):b.lineTo(0,e)};Z.prototype.paintSEInner=function(b,d,g,c,e,f,l,m,k){if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-k,e-m-.5*k);else if("invRound"==l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,c-k,e-m-k);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(c-k,e-m-.5*k);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(c-m-k,e-m-k),b.lineTo(c-k,e-m-k)};Z.prototype.paintBottomInner=function(b,d,g,c,
-e,f,l,m,k,q,p){q||p?!q&&p?b.lineTo(c,e-k):q&&!p?b.lineTo(c-k,e):"square"==l||"default"==l&&"square"==f||!q?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-m-.5*k,e-k):b.lineTo(c-m-k,e-k):b.lineTo(c,e)};Z.prototype.paintSWInner=function(b,d,g,c,e,f,l,m,k,q){if(!q)b.lineTo(k,e);else if("square"==l||"default"==l&&"square"==f)b.lineTo(k,e-k);else if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,m+.5*k,e-k);else if("invRound"==
-l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,m+k,e-k);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(m+.5*k,e-k);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(k+m,e-m-k),b.lineTo(k+m,e-k)};Z.prototype.moveSWInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.moveTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(k,
-e-m-k):b.moveTo(0,e-k)};Z.prototype.lineSWInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(k,e-m-k):b.lineTo(0,e-k)};Z.prototype.moveSEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.moveTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==
-f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(c-k,e-m-k):b.moveTo(c-k,e)};Z.prototype.lineSEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-k,e-m-k):b.lineTo(c-
-k,e)};Z.prototype.moveNEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f||q?b.moveTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(c-k,m+k):b.moveTo(c,k)};Z.prototype.lineNEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f||q?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==
-l&&"snip"==f?b.lineTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-k,m+k):b.lineTo(c,k)};Z.prototype.moveNWInner=function(b,d,g,c,e,f,l,m,k,q,p){q||p?!q&&p?b.moveTo(k,0):q&&!p?b.moveTo(0,k):"square"==l||"default"==l&&"square"==f?b.moveTo(k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(k,m+k):b.moveTo(0,
-0)};Z.prototype.lineNWInner=function(b,d,g,c,e,f,l,m,k,q,p){q||p?!q&&p?b.lineTo(k,0):q&&!p?b.lineTo(0,k):"square"==l||"default"==l&&"square"==f?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(k,m+k):b.lineTo(0,0)};Z.prototype.paintFolds=function(b,d,g,c,e,f,l,m,k,q,p,E,u,A,n){if("fold"==f||"fold"==l||"fold"==m||"fold"==k||"fold"==q)("fold"==l||"default"==
-l&&"fold"==f)&&E&&n&&(b.moveTo(0,p),b.lineTo(p,p),b.lineTo(p,0)),("fold"==m||"default"==m&&"fold"==f)&&E&&u&&(b.moveTo(c-p,0),b.lineTo(c-p,p),b.lineTo(c,p)),("fold"==k||"default"==k&&"fold"==f)&&A&&u&&(b.moveTo(c-p,e),b.lineTo(c-p,e-p),b.lineTo(c,e-p)),("fold"==q||"default"==q&&"fold"==f)&&A&&n&&(b.moveTo(0,e-p),b.lineTo(p,e-p),b.lineTo(p,e))};mxCellRenderer.registerShape(Z.prototype.cst.RECT2,Z);Z.prototype.constraints=null;mxUtils.extend(Fa,mxConnector);Fa.prototype.origPaintEdgeShape=Fa.prototype.paintEdgeShape;
+d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,q,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,q,n,x),b.close(),b.fillAndStroke());b.begin();f.paintFolds(b,d,g,c,e,l,I,t,y,z,m,u,A,n,x);b.stroke()};Y.prototype.moveNW=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(0,0):b.moveTo(0,m)};Y.prototype.moveNE=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(c,0):b.moveTo(c-m,0)};Y.prototype.moveSE=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&
+"square"==f||!k?b.moveTo(c,e):b.moveTo(c,e-m)};Y.prototype.moveSW=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(0,e):b.moveTo(m,e)};Y.prototype.paintNW=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,m,0)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(m,0);else b.lineTo(0,0)};Y.prototype.paintTop=
+function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.lineTo(c,0):b.lineTo(c-m,0)};Y.prototype.paintNE=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,c,m)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c,m);else b.lineTo(c,0)};Y.prototype.paintRight=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==
+l&&"square"==f||!k?b.lineTo(c,e):b.lineTo(c,e-m)};Y.prototype.paintLeft=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.lineTo(0,0):b.lineTo(0,m)};Y.prototype.paintSE=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,c-m,e)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-m,e);else b.lineTo(c,
+e)};Y.prototype.paintBottom=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.lineTo(0,e):b.lineTo(m,e)};Y.prototype.paintSW=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,0,e-m)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(0,e-m);else b.lineTo(0,e)};Y.prototype.paintNWInner=function(b,d,g,
+c,e,f,l,m,k){if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,k,.5*k+m);else if("invRound"==l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,k,k+m);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(k,.5*k+m);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(k+m,k+m),b.lineTo(k,k+m)};Y.prototype.paintTopInner=function(b,d,g,c,e,f,l,m,k,q,p){q||p?!q&&p?b.lineTo(0,k):q&&!p?b.lineTo(k,0):q?"square"==l||"default"==l&&"square"==f?b.lineTo(k,k):"rounded"==l||"default"==l&&
+"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(m+.5*k,k):b.lineTo(m+k,k):b.lineTo(0,k):b.lineTo(0,0)};Y.prototype.paintNEInner=function(b,d,g,c,e,f,l,m,k){if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-m-.5*k,k);else if("invRound"==l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,c-m-k,k);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(c-m-.5*k,k);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(c-m-k,m+k),b.lineTo(c-m-k,k)};Y.prototype.paintRightInner=
+function(b,d,g,c,e,f,l,m,k,q,p){q||p?!q&&p?b.lineTo(c-k,0):q&&!p?b.lineTo(c,k):q?"square"==l||"default"==l&&"square"==f?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-k,m+.5*k):b.lineTo(c-k,m+k):b.lineTo(c-k,0):b.lineTo(c,0)};Y.prototype.paintLeftInner=function(b,d,g,c,e,f,l,m,k,q,p){q||p?!q&&p?b.lineTo(k,e):q&&!p?b.lineTo(0,e-k):q?"square"==l||"default"==l&&"square"==f?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==
+l&&"snip"==f?b.lineTo(k,e-m-.5*k):b.lineTo(k,e-m-k):b.lineTo(k,e):b.lineTo(0,e)};Y.prototype.paintSEInner=function(b,d,g,c,e,f,l,m,k){if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-k,e-m-.5*k);else if("invRound"==l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,c-k,e-m-k);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(c-k,e-m-.5*k);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(c-m-k,e-m-k),b.lineTo(c-k,e-m-k)};Y.prototype.paintBottomInner=function(b,d,g,c,
+e,f,l,m,k,q,p){q||p?!q&&p?b.lineTo(c,e-k):q&&!p?b.lineTo(c-k,e):"square"==l||"default"==l&&"square"==f||!q?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-m-.5*k,e-k):b.lineTo(c-m-k,e-k):b.lineTo(c,e)};Y.prototype.paintSWInner=function(b,d,g,c,e,f,l,m,k,q){if(!q)b.lineTo(k,e);else if("square"==l||"default"==l&&"square"==f)b.lineTo(k,e-k);else if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,m+.5*k,e-k);else if("invRound"==
+l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,m+k,e-k);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(m+.5*k,e-k);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(k+m,e-m-k),b.lineTo(k+m,e-k)};Y.prototype.moveSWInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.moveTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(k,
+e-m-k):b.moveTo(0,e-k)};Y.prototype.lineSWInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(k,e-m-k):b.lineTo(0,e-k)};Y.prototype.moveSEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.moveTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==
+f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(c-k,e-m-k):b.moveTo(c-k,e)};Y.prototype.lineSEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-k,e-m-k):b.lineTo(c-
+k,e)};Y.prototype.moveNEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f||q?b.moveTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(c-k,m+k):b.moveTo(c,k)};Y.prototype.lineNEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f||q?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==
+l&&"snip"==f?b.lineTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-k,m+k):b.lineTo(c,k)};Y.prototype.moveNWInner=function(b,d,g,c,e,f,l,m,k,q,p){q||p?!q&&p?b.moveTo(k,0):q&&!p?b.moveTo(0,k):"square"==l||"default"==l&&"square"==f?b.moveTo(k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(k,m+k):b.moveTo(0,
+0)};Y.prototype.lineNWInner=function(b,d,g,c,e,f,l,m,k,q,p){q||p?!q&&p?b.lineTo(k,0):q&&!p?b.lineTo(0,k):"square"==l||"default"==l&&"square"==f?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(k,m+k):b.lineTo(0,0)};Y.prototype.paintFolds=function(b,d,g,c,e,f,l,m,k,q,p,F,u,A,n){if("fold"==f||"fold"==l||"fold"==m||"fold"==k||"fold"==q)("fold"==l||"default"==
+l&&"fold"==f)&&F&&n&&(b.moveTo(0,p),b.lineTo(p,p),b.lineTo(p,0)),("fold"==m||"default"==m&&"fold"==f)&&F&&u&&(b.moveTo(c-p,0),b.lineTo(c-p,p),b.lineTo(c,p)),("fold"==k||"default"==k&&"fold"==f)&&A&&u&&(b.moveTo(c-p,e),b.lineTo(c-p,e-p),b.lineTo(c,e-p)),("fold"==q||"default"==q&&"fold"==f)&&A&&n&&(b.moveTo(0,e-p),b.lineTo(p,e-p),b.lineTo(p,e))};mxCellRenderer.registerShape(Y.prototype.cst.RECT2,Y);Y.prototype.constraints=null;mxUtils.extend(Fa,mxConnector);Fa.prototype.origPaintEdgeShape=Fa.prototype.paintEdgeShape;
Fa.prototype.paintEdgeShape=function(b,d,g){for(var c=[],e=0;e<d.length;e++)c.push(mxUtils.clone(d[e]));var e=b.state.dashed,f=b.state.fixDash;Fa.prototype.origPaintEdgeShape.apply(this,[b,c,g]);3<=b.state.strokeWidth&&(c=mxUtils.getValue(this.style,"fillColor",null),null!=c&&(b.setStrokeColor(c),b.setStrokeWidth(b.state.strokeWidth-2),b.setDashed(e,f),Fa.prototype.origPaintEdgeShape.apply(this,[b,d,g])))};mxCellRenderer.registerShape("filledEdge",Fa);"undefined"!==typeof StyleFormatPanel&&function(){var b=
-StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var d=this.format.getSelectionState(),g=b.apply(this,arguments);"umlFrame"==d.style.shape&&g.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return g}}();mxMarker.addMarker("dash",function(b,d,g,c,e,f,l,m,k,q){var p=e*(l+k+1),E=f*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-E/2,c.y-E/2+p/2);b.lineTo(c.x+E/2-3*p/2,c.y-3*E/2-p/2);b.stroke()}});mxMarker.addMarker("box",
-function(b,d,g,c,e,f,l,m,k,q){var p=e*(l+k+1),E=f*(l+k+1),u=c.x+p/2,A=c.y+E/2;c.x-=p;c.y-=E;return function(){b.begin();b.moveTo(u-p/2-E/2,A-E/2+p/2);b.lineTo(u-p/2+E/2,A-E/2-p/2);b.lineTo(u+E/2-3*p/2,A-3*E/2-p/2);b.lineTo(u-E/2-3*p/2,A-3*E/2+p/2);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,g,c,e,f,l,m,k,q){var p=e*(l+k+1),E=f*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-E/2,c.y-E/2+p/2);b.lineTo(c.x+E/2-3*p/2,c.y-3*E/2-p/2);b.moveTo(c.x-p/2+E/2,c.y-
-E/2-p/2);b.lineTo(c.x-E/2-3*p/2,c.y-3*E/2+p/2);b.stroke()}});mxMarker.addMarker("circle",Na);mxMarker.addMarker("circlePlus",function(b,d,g,c,e,f,l,m,k,q){var p=c.clone(),E=Na.apply(this,arguments),u=e*(l+2*k),A=f*(l+2*k);return function(){E.apply(this,arguments);b.begin();b.moveTo(p.x-e*k,p.y-f*k);b.lineTo(p.x-2*u+e*k,p.y-2*A+f*k);b.moveTo(p.x-u-A+f*k,p.y-A+u-e*k);b.lineTo(p.x+A-u-f*k,p.y-A-u+e*k);b.stroke()}});mxMarker.addMarker("halfCircle",function(b,d,g,c,e,f,l,m,k,q){var p=e*(l+k+1),E=f*(l+
-k+1),u=c.clone();c.x-=p;c.y-=E;return function(){b.begin();b.moveTo(u.x-E,u.y+p);b.quadTo(c.x-E,c.y+p,c.x,c.y);b.quadTo(c.x+E,c.y-p,u.x+E,u.y-p);b.stroke()}});mxMarker.addMarker("async",function(b,d,g,c,e,f,l,m,k,q){d=e*k*1.118;g=f*k*1.118;e*=l+k;f*=l+k;var p=c.clone();p.x-=d;p.y-=g;c.x+=1*-e-d;c.y+=1*-f-g;return function(){b.begin();b.moveTo(p.x,p.y);m?b.lineTo(p.x-e-f/2,p.y-f+e/2):b.lineTo(p.x+f/2-e,p.y-f-e/2);b.lineTo(p.x-e,p.y-f);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",
-function(b){b=null!=b?b:2;return function(d,g,c,e,f,l,m,k,p,q){f*=m+p;l*=m+p;var E=e.clone();return function(){d.begin();d.moveTo(E.x,E.y);k?d.lineTo(E.x-f-l/b,E.y-l+f/b):d.lineTo(E.x+l/b-f,E.y-l-f/b);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var $a=function(b,d,g){return Ma(b,["width"],d,function(d,c,e,f,l){l=b.shape.getEdgeWidth()*b.view.scale+g;return new mxPoint(f.x+c*d/4+e*l/2,f.y+e*d/4-c*l/2)},function(d,c,e,f,l,m){d=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,l.x,l.y,m.x,m.y));b.style.width=
-Math.round(2*d)/b.view.scale-g})},Ma=function(b,d,g,c,e){return ga(b,d,function(d){var e=b.absolutePoints,f=e.length-1;d=b.view.translate;var l=b.view.scale,m=g?e[0]:e[f],e=g?e[1]:e[f-1],f=e.x-m.x,k=e.y-m.y,p=Math.sqrt(f*f+k*k),m=c.call(this,p,f/p,k/p,m,e);return new mxPoint(m.x/l-d.x,m.y/l-d.y)},function(d,c,f){var l=b.absolutePoints,m=l.length-1;d=b.view.translate;var k=b.view.scale,p=g?l[0]:l[m],l=g?l[1]:l[m-1],m=l.x-p.x,q=l.y-p.y,E=Math.sqrt(m*m+q*q);c.x=(c.x+d.x)*k;c.y=(c.y+d.y)*k;e.call(this,
-E,m/E,q/E,p,l,c,f)})},Ha=function(b){return function(d){return[ga(d,["arrowWidth","arrowSize"],function(d){var g=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",da.prototype.arrowWidth))),c=Math.max(0,Math.min(b,mxUtils.getValue(this.state.style,"arrowSize",da.prototype.arrowSize)));return new mxPoint(d.x+(1-c)*d.width,d.y+(1-g)*d.height/2)},function(d,g){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(d.y+d.height/2-g.y)/d.height*2));this.state.style.arrowSize=Math.max(0,
+StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var d=this.format.getSelectionState(),g=b.apply(this,arguments);"umlFrame"==d.style.shape&&g.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return g}}();mxMarker.addMarker("dash",function(b,d,g,c,e,f,l,m,k,q){var p=e*(l+k+1),F=f*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-F/2,c.y-F/2+p/2);b.lineTo(c.x+F/2-3*p/2,c.y-3*F/2-p/2);b.stroke()}});mxMarker.addMarker("box",
+function(b,d,g,c,e,f,l,m,k,q){var p=e*(l+k+1),F=f*(l+k+1),u=c.x+p/2,A=c.y+F/2;c.x-=p;c.y-=F;return function(){b.begin();b.moveTo(u-p/2-F/2,A-F/2+p/2);b.lineTo(u-p/2+F/2,A-F/2-p/2);b.lineTo(u+F/2-3*p/2,A-3*F/2-p/2);b.lineTo(u-F/2-3*p/2,A-3*F/2+p/2);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,g,c,e,f,l,m,k,q){var p=e*(l+k+1),F=f*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-F/2,c.y-F/2+p/2);b.lineTo(c.x+F/2-3*p/2,c.y-3*F/2-p/2);b.moveTo(c.x-p/2+F/2,c.y-
+F/2-p/2);b.lineTo(c.x-F/2-3*p/2,c.y-3*F/2+p/2);b.stroke()}});mxMarker.addMarker("circle",Na);mxMarker.addMarker("circlePlus",function(b,d,g,c,e,f,l,m,k,q){var p=c.clone(),F=Na.apply(this,arguments),u=e*(l+2*k),A=f*(l+2*k);return function(){F.apply(this,arguments);b.begin();b.moveTo(p.x-e*k,p.y-f*k);b.lineTo(p.x-2*u+e*k,p.y-2*A+f*k);b.moveTo(p.x-u-A+f*k,p.y-A+u-e*k);b.lineTo(p.x+A-u-f*k,p.y-A-u+e*k);b.stroke()}});mxMarker.addMarker("halfCircle",function(b,d,g,c,e,f,l,m,k,q){var p=e*(l+k+1),F=f*(l+
+k+1),u=c.clone();c.x-=p;c.y-=F;return function(){b.begin();b.moveTo(u.x-F,u.y+p);b.quadTo(c.x-F,c.y+p,c.x,c.y);b.quadTo(c.x+F,c.y-p,u.x+F,u.y-p);b.stroke()}});mxMarker.addMarker("async",function(b,d,g,c,e,f,l,m,k,q){d=e*k*1.118;g=f*k*1.118;e*=l+k;f*=l+k;var p=c.clone();p.x-=d;p.y-=g;c.x+=1*-e-d;c.y+=1*-f-g;return function(){b.begin();b.moveTo(p.x,p.y);m?b.lineTo(p.x-e-f/2,p.y-f+e/2):b.lineTo(p.x+f/2-e,p.y-f-e/2);b.lineTo(p.x-e,p.y-f);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",
+function(b){b=null!=b?b:2;return function(d,g,c,e,f,l,m,k,p,q){f*=m+p;l*=m+p;var F=e.clone();return function(){d.begin();d.moveTo(F.x,F.y);k?d.lineTo(F.x-f-l/b,F.y-l+f/b):d.lineTo(F.x+l/b-f,F.y-l-f/b);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var $a=function(b,d,g){return Ma(b,["width"],d,function(d,c,e,f,l){l=b.shape.getEdgeWidth()*b.view.scale+g;return new mxPoint(f.x+c*d/4+e*l/2,f.y+e*d/4-c*l/2)},function(d,c,e,f,l,m){d=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,l.x,l.y,m.x,m.y));b.style.width=
+Math.round(2*d)/b.view.scale-g})},Ma=function(b,d,g,c,e){return ga(b,d,function(d){var e=b.absolutePoints,f=e.length-1;d=b.view.translate;var l=b.view.scale,m=g?e[0]:e[f],e=g?e[1]:e[f-1],f=e.x-m.x,k=e.y-m.y,p=Math.sqrt(f*f+k*k),m=c.call(this,p,f/p,k/p,m,e);return new mxPoint(m.x/l-d.x,m.y/l-d.y)},function(d,c,f){var l=b.absolutePoints,m=l.length-1;d=b.view.translate;var k=b.view.scale,p=g?l[0]:l[m],l=g?l[1]:l[m-1],m=l.x-p.x,q=l.y-p.y,F=Math.sqrt(m*m+q*q);c.x=(c.x+d.x)*k;c.y=(c.y+d.y)*k;e.call(this,
+F,m/F,q/F,p,l,c,f)})},Ha=function(b){return function(d){return[ga(d,["arrowWidth","arrowSize"],function(d){var g=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",da.prototype.arrowWidth))),c=Math.max(0,Math.min(b,mxUtils.getValue(this.state.style,"arrowSize",da.prototype.arrowSize)));return new mxPoint(d.x+(1-c)*d.width,d.y+(1-g)*d.height/2)},function(d,g){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(d.y+d.height/2-g.y)/d.height*2));this.state.style.arrowSize=Math.max(0,
Math.min(b,(d.x+d.width-g.x)/d.width))})]}},Xa=function(b){return function(d){return[ga(d,["size"],function(d){var g=Math.max(0,Math.min(.5*d.height,parseFloat(mxUtils.getValue(this.state.style,"size",b))));return new mxPoint(d.x,d.y+g)},function(b,d){this.state.style.size=Math.max(0,d.y-b.y)},!0)]}},Va=function(b,d,g){return function(c){var e=[ga(c,["size"],function(g){var c=Math.max(0,Math.min(g.width,Math.min(g.height,parseFloat(mxUtils.getValue(this.state.style,"size",d)))))*b;return new mxPoint(g.x+
c,g.y+c)},function(d,g){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(d.width,g.x-d.x),Math.min(d.height,g.y-d.y)))/b)},!1)];g&&mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(Ga(c));return e}},Oa=function(b,d,g,c,e){g=null!=g?g:.5;return function(f){var l=[ga(f,["size"],function(d){var g=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,c=parseFloat(mxUtils.getValue(this.state.style,"size",g?e:b));return new mxPoint(d.x+Math.max(0,Math.min(.5*d.width,
c*(g?1:d.width))),d.getCenterY())},function(b,d,c){b=null!=e&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?d.x-b.x:Math.max(0,Math.min(g,(d.x-b.x)/b.width));this.state.style.size=b},!1,c)];d&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&l.push(Ga(f));return l}},Ya=function(b,d,g){b=null!=b?b:.5;return function(c){var e=[ga(c,["size"],function(c){var e=null!=g?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,f=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,
@@ -2903,11 +2901,11 @@ d){this.state.style.dx=Math.round(Math.max(0,2*Math.min(b.width/2,d.x-b.x-b.widt
"size",G.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",x.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",l.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:Xa(m.prototype.size),cylinder3:Xa(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",ta.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(aa.prototype.size,!0,.5,!0,aa.prototype.fixedSize),curlyBracket:Oa(D.prototype.size,!1),display:Oa(wa.prototype.size,!1),cube:Va(1,
+["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(N.prototype.size,!0,null,!0,N.prototype.fixedSize),hexagon:Oa(Z.prototype.size,!0,.5,!0,Z.prototype.fixedSize),curlyBracket:Oa(D.prototype.size,!1),display:Oa(wa.prototype.size,!1),cube:Va(1,
e.prototype.size,!1),card:Va(.5,y.prototype.size,!0),loopLimit:Va(.5,ea.prototype.size,!0),trapezoid:Ya(.5,z.prototype.size,z.prototype.fixedSize),parallelogram:Ya(1,H.prototype.size,H.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),Ha=mxUtils.toRadians(-30),Qa=mxUtils.getRotatedPoint(Qa,Math.cos(Ha),Math.sin(Ha)),Ha=mxUtils.toRadians(-150),Ra=mxUtils.getRotatedPoint(Ra,Math.cos(Ha),Math.sin(Ha));mxEdgeStyle.IsometricConnector=function(b,d,g,c,e){var f=b.view;c=null!=c&&0<c.length?c[0]:null;var l=b.absolutePoints,m=l[0],l=l[l.length-1];null!=c&&(c=f.transformControlPoint(b,c));null==
-m&&null!=d&&(m=new mxPoint(d.getCenterX(),d.getCenterY()));null==l&&null!=g&&(l=new mxPoint(g.getCenterX(),g.getCenterY()));var k=Qa.x,p=Qa.y,q=Ra.x,E=Ra.y,u="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=l&&null!=m){b=function(b,d,g){b-=A.x;var c=d-A.y;d=(E*b-q*c)/(k*E-p*q);b=(p*b-k*c)/(p*q-k*E);u?(g&&(A=new mxPoint(A.x+k*d,A.y+p*d),e.push(A)),A=new mxPoint(A.x+q*b,A.y+E*b)):(g&&(A=new mxPoint(A.x+q*b,A.y+E*b),e.push(A)),A=new mxPoint(A.x+k*d,A.y+p*d));e.push(A)};var A=m;null==
+m&&null!=d&&(m=new mxPoint(d.getCenterX(),d.getCenterY()));null==l&&null!=g&&(l=new mxPoint(g.getCenterX(),g.getCenterY()));var k=Qa.x,p=Qa.y,q=Ra.x,F=Ra.y,u="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=l&&null!=m){b=function(b,d,g){b-=A.x;var c=d-A.y;d=(F*b-q*c)/(k*F-p*q);b=(p*b-k*c)/(p*q-k*F);u?(g&&(A=new mxPoint(A.x+k*d,A.y+p*d),e.push(A)),A=new mxPoint(A.x+q*b,A.y+F*b)):(g&&(A=new mxPoint(A.x+q*b,A.y+F*b),e.push(A)),A=new mxPoint(A.x+k*d,A.y+p*d));e.push(A)};var A=m;null==
c&&(c=new mxPoint(m.x+(l.x-m.x)/2,m.y+(l.y-m.y)/2));b(c.x,c.y,!0);b(l.x,l.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var fb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(b,d){if(d==mxEdgeStyle.IsometricConnector){var g=new mxElbowEdgeHandler(b);g.snapToTerminals=!1;return g}return fb.apply(this,arguments)};f.prototype.constraints=[];n.prototype.getConstraints=function(b,d,g){b=[];var c=Math.tan(mxUtils.toRadians(30)),e=(.5-
c)/2,c=Math.min(d,g/(.5+c));d=(d-c)/2;g=(g-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,g+c*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,g+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,g+.75*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,g+(1-e)*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g+.75*c));return b};l.prototype.getConstraints=
function(b,d,g){b=[];var c=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,c=Math.min(d*Math.tan(c),.5*g);b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g-c));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
@@ -2916,7 +2914,7 @@ function(b,d,g){b=[];var c=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(
d,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(g-c)));d>=2*c&&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,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,
1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];Ja.prototype.constraints=mxRectangleShape.prototype.constraints;
-mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;N.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;d.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
+mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;M.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;d.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,.5*(d-c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*c,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(g+c)));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
.5),!1));d>=2*c&&b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return b};y.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,0,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(g+c)));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));d>=2*c&&b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return b};e.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,Math.min(g,parseFloat(mxUtils.getValue(this.style,
@@ -2933,13 +2931,13 @@ xa.prototype.constraints=mxEllipse.prototype.constraints;Aa.prototype.constraint
"jettyWidth",la.prototype.jettyWidth))/2;b=parseFloat(mxUtils.getValue(b,"jettyHeight",la.prototype.jettyHeight));var c=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,d),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,
.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!1,null,d),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(g-.5*b,1.5*b)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(g-.5*b,3.5*b))];g>5*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,d));g>8*b&&c.push(new mxConnectionConstraint(new mxPoint(0,
.5),!1,null,d));g>15*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,d));return c};ea.prototype.constraints=mxRectangleShape.prototype.constraints;ta.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
-.5),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,.3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];E.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,
+.5),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,.3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];F.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,
.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];ja.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
.7),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.25,.2),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(0,
.75),!0),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];q.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,
.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];x.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,
-.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];M.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,
-.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];na.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,
+.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];N.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,
+.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];oa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,
0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];mxDoubleEllipse.prototype.constraints=mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1,
.5),!0)];mxHexagon.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.375,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.625,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.375,
1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.625,1),!0)];mxCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.4,.1),!1),new mxConnectionConstraint(new mxPoint(.16,.55),!1),new mxConnectionConstraint(new mxPoint(.07,.4),!1),new mxConnectionConstraint(new mxPoint(.31,.8),!1),new mxConnectionConstraint(new mxPoint(.13,.77),!1),new mxConnectionConstraint(new mxPoint(.8,.8),!1),new mxConnectionConstraint(new mxPoint(.55,
@@ -2951,7 +2949,7 @@ xa.prototype.constraints=mxEllipse.prototype.constraints;Aa.prototype.constraint
0),!1,null,d,.5*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(g+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,g));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
1),!1));return b};T.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];da.prototype.getConstraints=
function(b,d,g){b=[];var c=g*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize)))),c=(g-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-e),c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,0));b.push(new mxConnectionConstraint(new mxPoint(1,
-.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-e),g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-c));return b};oa.prototype.getConstraints=function(b,d,g){b=[];var c=g*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",da.prototype.arrowWidth)))),e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",da.prototype.arrowSize)))),c=(g-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,
+.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-e),g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-c));return b};na.prototype.getConstraints=function(b,d,g){b=[];var c=g*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",da.prototype.arrowWidth)))),e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",da.prototype.arrowSize)))),c=(g-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,
.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,0));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));return b};Ca.prototype.getConstraints=
function(b,d,g){b=[];var c=Math.min(g,d),e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),c=(g-e)/2,f=c+e,l=(d-e)/2,e=l+e;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,0));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,e,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,g-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,g));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+e),c));b.push(new mxConnectionConstraint(new mxPoint(0,
@@ -3183,7 +3181,7 @@ null!=g&&(e=new mxCodec(g.ownerDocument),e.decode(g,this.graph.getStylesheet()))
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"==d.getAttribute("shadow"),!1);if(c=d.getAttribute("extFonts"))try{for(c=c.split("|").map(function(b){b=b.split("^");return{name:b[0],url:b[1]}}),g=0;g<c.length;g++)this.graph.addExtFont(c[g].name,
c[g].url)}catch(S){console.log("ExtFonts format error: "+S.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 c=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(b,d){b=null!=b?b:!0;var g=c.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&g.setAttribute("style",
this.graph.currentStyle);var e=this.graph.getBackgroundImageObject(this.graph.backgroundImage,d);null!=e&&g.setAttribute("backgroundImage",JSON.stringify(e));g.setAttribute("math",this.graph.mathEnabled?"1":"0");g.setAttribute("shadow",this.graph.shadowVisible?"1":"0");null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(e=this.graph.extFonts.map(function(b){return b.name+"^"+b.url}),g.setAttribute("extFonts",e.join("|")));return g};Editor.prototype.isDataSvg=function(b){try{var d=mxUtils.parseXml(b).documentElement.getAttribute("content");
-if(null!=d&&(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)){var c=mxUtils.parseXml(d).documentElement;return"mxfile"==c.nodeName||"mxGraphModel"==c.nodeName}}catch(Y){}return!1};Editor.prototype.extractGraphModel=function(b,d,c){return Editor.extractGraphModel.apply(this,arguments)};var e=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled=
+if(null!=d&&(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)){var c=mxUtils.parseXml(d).documentElement;return"mxfile"==c.nodeName||"mxGraphModel"==c.nodeName}}catch(ca){}return!1};Editor.prototype.extractGraphModel=function(b,d,c){return Editor.extractGraphModel.apply(this,arguments)};var e=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();e.apply(this,arguments)};var k=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){k.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,d){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";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(b){window.setTimeout(function(){"hidden"!=b.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,b])},0)};var c=null!=urlParams["math-font"]?decodeURIComponent(urlParams["math-font"]):"TeX";d=null!=d?d:{"HTML-CSS":{availableFonts:[c],imageFont:null},SVG:{font:c,useFontCache:!1},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",
@@ -3193,8 +3191,8 @@ Editor.prototype.csvToArray=function(b){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*
'"')):void 0!==e&&d.push(e);return""});/,\s*$/.test(b)&&d.push("");return d};Editor.prototype.isCorsEnabledForUrl=function(b){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||b.substring(0,window.location.origin.length)==window.location.origin)return!0;null!=urlParams.cors&&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)};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"),f=b.getContext("2d");b.height=e.height;b.width=e.width;f.drawImage(e,0,0);d(b.toDataURL())}catch(na){d(Editor.svgBrokenImage.src)}};e.onerror=function(){window.clearTimeout(g);c&&d(Editor.svgBrokenImage.src)};e.src=b}}catch(Q){d(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(b,d,c,g){null==g&&(g=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,l){for(var k=b.getElementsByTagName(c),m=0;m<k.length;m++)mxUtils.bind(this,
-function(c){try{if(null!=c){var k=g.convert(c.getAttribute(l));if(null!=k&&"data:"!=k.substring(0,5)){var m=f[k];null==m?(e++,this.convertImageToDataUri(k,function(g){null!=g&&(f[k]=g,c.setAttribute(l,g));e--;0==e&&d(b)})):c.setAttribute(l,m)}else null!=k&&c.setAttribute(l,k)}}catch(ba){}})(k[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,f,l;c<g;){e=b.charCodeAt(c++)&255;if(c==g){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
+if(c)try{var b=document.createElement("canvas"),f=b.getContext("2d");b.height=e.height;b.width=e.width;f.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(Q){d(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(b,d,c,g){null==g&&(g=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,l){for(var k=b.getElementsByTagName(c),m=0;m<k.length;m++)mxUtils.bind(this,
+function(c){try{if(null!=c){var k=g.convert(c.getAttribute(l));if(null!=k&&"data:"!=k.substring(0,5)){var m=f[k];null==m?(e++,this.convertImageToDataUri(k,function(g){null!=g&&(f[k]=g,c.setAttribute(l,g));e--;0==e&&d(b)})):c.setAttribute(l,m)}else null!=k&&c.setAttribute(l,k)}}catch(aa){}})(k[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,f,l;c<g;){e=b.charCodeAt(c++)&255;if(c==g){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);d+="==";break}f=b.charCodeAt(c++);if(c==g){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2);d+="=";break}l=b.charCodeAt(c++);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2|(l&192)>>6);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(l&63)}return d};Editor.prototype.loadUrl=function(b,d,c,g,e,f,l,k){try{var m=!l&&(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("")}f=null!=f?f:"data:image/png;base64,";g=f+Editor.base64Encode(g)}d(g)}}else null!=c&&(0==b.getStatus()?c({message:mxResources.get("accessDenied")},
@@ -3208,8 +3206,8 @@ b+'";src: url("'+d+'")}'})(d[f].name,d[f].url);e()}else b()};Editor.prototype.ad
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,f,l,k,m,p,q,u,n,x,v,t,z,y){try{f=null!=f?f:!0;l=null!=l?l:!0;u=null!=u?u:this.graph;n=null!=n?n:0;var A=m?null:u.background;A==mxConstants.NONE&&(A=null);null==A&&(A=g);null==A&&0==m&&(A=t?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(u.getSvg(null,null,n,x,null,l,null,null,null,p,null,t,z,y),mxUtils.bind(this,function(c){try{var g=new Image;g.onload=mxUtils.bind(this,function(){try{var l=
function(){mxClient.IS_SF?window.setTimeout(function(){x.drawImage(g,0,0);b(m,c)},0):(x.drawImage(g,0,0),b(m,c))},m=document.createElement("canvas"),p=parseInt(c.getAttribute("width")),q=parseInt(c.getAttribute("height"));k=null!=k?k:1;null!=d&&(k=f?Math.min(1,Math.min(3*d/(4*q),d/p)):d/p);k=this.getMaxCanvasScale(p,q,k);p=Math.ceil(k*p);q=Math.ceil(k*q);m.setAttribute("width",p);m.setAttribute("height",q);var x=m.getContext("2d");null!=A&&(x.beginPath(),x.rect(0,0,p,q),x.fillStyle=A,x.fill());1!=
-k&&x.scale(k,k);if(v){var t=u.view,E=t.scale;t.scale=1;var z=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=E;var z="data:image/svg+xml;base64,"+z,y=u.gridSize*t.gridSteps*k,C=u.getGraphBounds(),I=t.translate.x*E,N=t.translate.y*E,D=I+(C.x-I)/E-n,M=N+(C.y-N)/E-n,S=new Image;S.onload=function(){try{for(var b=-Math.round(y-mxUtils.mod((I-D)*k,y)),d=-Math.round(y-mxUtils.mod((N-M)*k,y));b<p;b+=y)for(var c=d;c<q;c+=y)x.drawImage(S,b/k,c/k);l()}catch(wa){null!=e&&e(wa)}};S.onerror=
-function(b){null!=e&&e(b)};S.src=z}else l()}catch(Aa){null!=e&&e(Aa)}});g.onerror=function(b){null!=e&&e(b)};p&&this.graph.addSvgShadow(c);this.graph.mathEnabled&&this.addMathCss(c);var l=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(l)}catch(da){null!=e&&e(da)}}))}catch(ia){null!=
+k&&x.scale(k,k);if(v){var t=u.view,z=t.scale;t.scale=1;var F=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=z;var F="data:image/svg+xml;base64,"+F,y=u.gridSize*t.gridSteps*k,C=u.getGraphBounds(),I=t.translate.x*z,M=t.translate.y*z,D=I+(C.x-I)/z-n,N=M+(C.y-M)/z-n,S=new Image;S.onload=function(){try{for(var b=-Math.round(y-mxUtils.mod((I-D)*k,y)),d=-Math.round(y-mxUtils.mod((M-N)*k,y));b<p;b+=y)for(var c=d;c<q;c+=y)x.drawImage(S,b/k,c/k);l()}catch(wa){null!=e&&e(wa)}};S.onerror=
+function(b){null!=e&&e(b)};S.src=F}else l()}catch(Aa){null!=e&&e(Aa)}});g.onerror=function(b){null!=e&&e(b)};p&&this.graph.addSvgShadow(c);this.graph.mathEnabled&&this.addMathCss(c);var l=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(l)}catch(da){null!=e&&e(da)}}))}catch(ia){null!=
e&&e(ia)}}),c,q)}catch(ma){null!=e&&e(ma)}};Editor.crcTable=[];for(var f=0;256>f;f++)for(var n=f,t=0;8>t;t++)n=1==(n&1)?3988292384^n>>>1:n>>>1,Editor.crcTable[f]=n;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 f(b,d){var c=m;m+=d;return b.substring(c,
m)}function l(b){b=f(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}function k(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(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);e=b.substring(0,m);do{var p=l(b);if("IDAT"==f(b,4)){e=b.substring(0,m-8);"pHYs"==d&&
"dpi"==c?(c=Math.round(g/.0254),c=k(c)+k(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+=k(c.length)+d+c+k(g^4294967295);e+=b.substring(m-8,b.length);break}e+=b.substring(m-8,m-4+p);f(b,p);f(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";
@@ -3258,8 +3256,8 @@ mxEvent.addListener(f,"change",function(){var b=mxUtils.htmlEntities(f.value);g(
(l.min=parseFloat(p.min)),null!=p.max&&(l.max=parseFloat(p.max)));b.appendChild(l);mxEvent.addListener(l,"keypress",function(b){13==b.keyCode&&f()});l.focus();mxEvent.addListener(l,"blur",function(){f()})})));p.isDeletable&&(n=mxUtils.button("-",mxUtils.bind(q,function(b){g(d,"",p,p.index);mxEvent.consume(b)})),n.style.height="16px",n.style.width="25px",n.style["float"]="right",n.className="geColorBtn",z.appendChild(n));t.appendChild(z);return t}var q=this,u=this.editorUi.editor.graph,n=[];b.style.position=
"relative";b.style.padding="0";var x=document.createElement("table");x.className="geProperties";x.style.whiteSpace="nowrap";x.style.width="100%";var v=document.createElement("tr");v.className="gePropHeader";var t=document.createElement("th");t.className="gePropHeaderCell";var z=document.createElement("img");z.src=Sidebar.prototype.expandedImage;z.style.verticalAlign="middle";t.appendChild(z);mxUtils.write(t,mxResources.get("property"));v.style.cursor="pointer";var y=function(){var d=x.querySelectorAll(".gePropNonHeaderRow"),
c;if(q.editorUi.propertiesCollapsed){z.src=Sidebar.prototype.collapsedImage;c="none";for(var g=b.childNodes.length-1;0<=g;g--)try{var e=b.childNodes[g],f=e.nodeName.toUpperCase();"INPUT"!=f&&"SELECT"!=f||b.removeChild(e)}catch(pa){}}else z.src=Sidebar.prototype.expandedImage,c="";for(g=0;g<d.length;g++)d[g].style.display=c};mxEvent.addListener(v,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;y()});v.appendChild(t);t=document.createElement("th");t.className="gePropHeaderCell";
-t.innerHTML=mxResources.get("value");v.appendChild(t);x.appendChild(v);var A=!1,E=!1,v=null;1==c.vertices.length&&0==c.edges.length?v=c.vertices[0].id:0==c.vertices.length&&1==c.edges.length&&(v=c.edges[0].id);null!=v&&x.appendChild(p("id",mxUtils.htmlEntities(v),{dispName:"ID",type:"readOnly"},!0,!1));for(var C in d)if(v=d[C],"function"!=typeof v.isVisible||v.isVisible(c,this)){var N=null!=c.style[C]?mxUtils.htmlEntities(c.style[C]+""):null!=v.getDefaultValue?v.getDefaultValue(c,this):v.defVal;if("separator"==
-v.type)E=!E;else{if("staticArr"==v.type)v.size=parseInt(c.style[v.sizeProperty]||d[v.sizeProperty].defVal)||0;else if(null!=v.dependentProps){for(var I=v.dependentProps,D=[],M=[],t=0;t<I.length;t++){var G=c.style[I[t]];M.push(d[I[t]].subDefVal);D.push(null!=G?G.split(","):[])}v.dependentPropsDefVal=M;v.dependentPropsVals=D}x.appendChild(p(C,N,v,A,E));A=!A}}for(t=0;t<n.length;t++)for(v=n[t],d=v.parentRow,c=0;c<v.values.length;c++)C=p(v.name,v.values[c],{type:v.type,parentRow:v.parentRow,isDeletable:v.isDeletable,
+t.innerHTML=mxResources.get("value");v.appendChild(t);x.appendChild(v);var A=!1,F=!1,v=null;1==c.vertices.length&&0==c.edges.length?v=c.vertices[0].id:0==c.vertices.length&&1==c.edges.length&&(v=c.edges[0].id);null!=v&&x.appendChild(p("id",mxUtils.htmlEntities(v),{dispName:"ID",type:"readOnly"},!0,!1));for(var C in d)if(v=d[C],"function"!=typeof v.isVisible||v.isVisible(c,this)){var M=null!=c.style[C]?mxUtils.htmlEntities(c.style[C]+""):null!=v.getDefaultValue?v.getDefaultValue(c,this):v.defVal;if("separator"==
+v.type)F=!F;else{if("staticArr"==v.type)v.size=parseInt(c.style[v.sizeProperty]||d[v.sizeProperty].defVal)||0;else if(null!=v.dependentProps){for(var I=v.dependentProps,D=[],N=[],t=0;t<I.length;t++){var G=c.style[I[t]];N.push(d[I[t]].subDefVal);D.push(null!=G?G.split(","):[])}v.dependentPropsDefVal=N;v.dependentPropsVals=D}x.appendChild(p(C,M,v,A,F));A=!A}}for(t=0;t<n.length;t++)for(v=n[t],d=v.parentRow,c=0;c<v.values.length;c++)C=p(v.name,v.values[c],{type:v.type,parentRow:v.parentRow,isDeletable:v.isDeletable,
index:c,defVal:v.defVal,countProperty:v.countProperty,size:v.size},0==c%2,v.flipBkg),d.parentNode.insertBefore(C,d.nextSibling),d=C;b.appendChild(x);y();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.editor.graph,g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.paddingLeft="24px";g.style.paddingRight=
"20px";b.style.paddingLeft="16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(g);var e="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=[],k=0;k<this.defaultColorSchemes.length;k++){var m=document.createElement("div");
m.style.display="inline-block";m.style.width="6px";m.style.height="6px";m.style.marginLeft="4px";m.style.marginRight="3px";m.style.borderRadius="3px";m.style.cursor="pointer";m.style.background="transparent";m.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(b){mxEvent.addListener(m,"click",mxUtils.bind(this,function(){p(b)}))})(k);l.push(m);f.appendChild(m)}var p=mxUtils.bind(this,function(b){null!=l[b]&&(null!=this.format.currentScheme&&null!=l[this.format.currentScheme]&&(l[this.format.currentScheme].style.background=
@@ -3282,8 +3280,8 @@ b[d].getAttribute("face"):b[d].style.fontFamily;null!=g&&Graph.addFont(g,c)}}};G
"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 y=Graph.prototype.init;Graph.prototype.init=function(){function b(b){d=b}y.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 x=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=
-function(b){this.replaceDefaultColors(b);return Graph.processFontStyle(x.apply(this,arguments))};Graph.prototype.replaceDefaultColors=function(b){if(null!=b){var d=mxUtils.hex2rgb(this.shapeBackgroundColor),c=mxUtils.hex2rgb(this.shapeForegroundColor);this.replaceDefaultColor(b,mxConstants.STYLE_FONTCOLOR,c);this.replaceDefaultColor(b,mxConstants.STYLE_FILLCOLOR,d);this.replaceDefaultColor(b,mxConstants.STYLE_STROKECOLOR,c);this.replaceDefaultColor(b,mxConstants.STYLE_IMAGE_BORDER,c);this.replaceDefaultColor(b,
-mxConstants.STYLE_IMAGE_BACKGROUND,d);this.replaceDefaultColor(b,mxConstants.STYLE_LABEL_BORDERCOLOR,c);this.replaceDefaultColor(b,mxConstants.STYLE_SWIMLANE_FILLCOLOR,d);this.replaceDefaultColor(b,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,d)}};Graph.prototype.replaceDefaultColor=function(b,d,c){null!=b&&"default"==b[d]&&null!=c&&(b[d]=c)};var G=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,d,c,g,e,f,l,k,m,p,q){G.apply(this,arguments);Graph.processFontAttributes(q)};
+function(b,d){this.replaceDefaultColors(b,d);return Graph.processFontStyle(x.apply(this,arguments))};Graph.prototype.replaceDefaultColors=function(b,d){if(null!=d){var c=mxUtils.hex2rgb(this.shapeBackgroundColor),g=mxUtils.hex2rgb(this.shapeForegroundColor);this.replaceDefaultColor(d,mxConstants.STYLE_FONTCOLOR,g);this.replaceDefaultColor(d,mxConstants.STYLE_FILLCOLOR,c);this.replaceDefaultColor(d,mxConstants.STYLE_STROKECOLOR,g);this.replaceDefaultColor(d,mxConstants.STYLE_IMAGE_BORDER,g);this.replaceDefaultColor(d,
+mxConstants.STYLE_IMAGE_BACKGROUND,c);this.replaceDefaultColor(d,mxConstants.STYLE_LABEL_BORDERCOLOR,g);this.replaceDefaultColor(d,mxConstants.STYLE_SWIMLANE_FILLCOLOR,c);this.replaceDefaultColor(d,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,c)}};Graph.prototype.replaceDefaultColor=function(b,d,c){null!=b&&"default"==b[d]&&null!=c&&(b[d]=c)};var G=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,d,c,g,e,f,l,k,m,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=l.getSelectionCells(),d=[],c=0;c<b.length;c++)l.isCellVisible(b[c])&&d.push(b[c]);l.setSelectionCells(d)}function e(b){l.hiddenTags=b?[]:k.slice();g();l.refresh()}function f(b,c){p.innerHTML="";if(0<b.length){var f=document.createElement("table");f.setAttribute("cellpadding",
"2");f.style.boxSizing="border-box";f.style.tableLayout="fixed";f.style.width="100%";var m=document.createElement("tbody");if(null!=b&&0<b.length)for(var q=0;q<b.length;q++)(function(b){var f=0>mxUtils.indexOf(l.hiddenTags,b),p=document.createElement("tr"),q=document.createElement("td");q.style.align="center";q.style.width="16px";var u=document.createElement("img");u.setAttribute("src",f?Editor.visibleImage:Editor.hiddenImage);u.setAttribute("title",mxResources.get(f?"hideIt":"show",[b]));mxUtils.setOpacity(u,
f?75:25);u.style.verticalAlign="middle";u.style.cursor="pointer";u.style.width="16px";if(d||Editor.isDarkMode())u.style.filter="invert(100%)";q.appendChild(u);mxEvent.addListener(u,"click",function(d){var c=mxUtils.indexOf(l.hiddenTags,b);mxEvent.isShiftDown(d)?e(0<=mxUtils.indexOf(l.hiddenTags,b)):(0>c?l.hiddenTags.push(b):0<=c&&l.hiddenTags.splice(c,1),g(),l.refresh());mxEvent.consume(d)});p.appendChild(q);q=document.createElement("td");q.style.overflow="hidden";q.style.whiteSpace="nowrap";q.style.textOverflow=
@@ -3298,8 +3296,8 @@ Graph.customFontElements[d];b.push({name:c.name,url:c.url})}return b};Graph.prot
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(A){null!=window.console&&console.log("Error in vars URL parameter: "+A)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):
{}};var D=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var d=D.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 L=Graph.prototype.getSvg;Graph.prototype.getSvg=
function(b,d,c,g,e,f,l,k,m,p,q,u,n,v){var x=null,t=null,z=null;u||null==this.themes||"darkTheme"!=this.defaultThemeName||(x=this.stylesheet,t=this.shapeForegroundColor,z=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 y=L.apply(this,arguments),C=this.getCustomFonts();if(q&&0<C.length){var A=
-y.ownerDocument,E=null!=A.createElementNS?A.createElementNS(mxConstants.NS_SVG,"style"):A.createElement("style");null!=A.setAttributeNS?E.setAttributeNS("type","text/css"):E.setAttribute("type","text/css");for(var N="",D="",I=0;I<C.length;I++){var M=C[I].name,G=C[I].url;Graph.isCssFontUrl(G)?N+="@import url("+G+");\n":D+='@font-face {\nfont-family: "'+M+'";\nsrc: url("'+G+'");\n}\n'}E.appendChild(A.createTextNode(N+D));y.getElementsByTagName("defs")[0].appendChild(E)}null!=x&&(this.shapeBackgroundColor=
-z,this.shapeForegroundColor=t,this.stylesheet=x,this.refresh());return y};var F=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var b=F.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",
+y.ownerDocument,M=null!=A.createElementNS?A.createElementNS(mxConstants.NS_SVG,"style"):A.createElement("style");null!=A.setAttributeNS?M.setAttributeNS("type","text/css"):M.setAttribute("type","text/css");for(var F="",D="",I=0;I<C.length;I++){var N=C[I].name,G=C[I].url;Graph.isCssFontUrl(G)?F+="@import url("+G+");\n":D+='@font-face {\nfont-family: "'+N+'";\nsrc: url("'+G+'");\n}\n'}M.appendChild(A.createTextNode(F+D));y.getElementsByTagName("defs")[0].appendChild(M)}null!=x&&(this.shapeBackgroundColor=
+z,this.shapeForegroundColor=t,this.stylesheet=x,this.refresh());return y};var E=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var b=E.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 J=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){J.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 C=Graph.prototype.refresh;Graph.prototype.refresh=function(){C.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,
@@ -3310,9 +3308,9 @@ function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;k()}),g++,t
0),this.setCellsVisible(u,!1));null!=p.toggleStyle&&null!=p.toggleStyle.key&&(f(),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&&(f(),this.setCellStyles(p.style.key,p.style.value,this.getCellsForAction(p.style,!0)));u=[];null!=p.select&&this.isEnabled()&&(u=this.getCellsForAction(p.select),this.setSelectionCells(u));null!=p.highlight&&(u=this.getCellsForAction(p.highlight),
this.highlightCells(u,p.highlight.color,p.highlight.duration,p.highlight.opacity));null!=p.scroll&&(u=this.getCellsForAction(p.scroll));null!=p.viewbox&&this.fitWindow(p.viewbox,p.viewbox.border);0<u.length&&this.scrollCellToVisible(u[0]);if(null!=p.tags){u=[];null!=p.tags.hidden&&(u=u.concat(p.tags.hidden));if(null!=p.tags.visible)for(var n=this.getAllTags(),v=0;v<n.length;v++)0>mxUtils.indexOf(p.tags.visible,n[v])&&0>mxUtils.indexOf(u,n[v])&&u.push(n[v]);this.hiddenTags=u;this.refresh()}0<q.length&&
(g++,this.executeAnimations(q,k,c?1:p.steps,c?0:p.delay));0==g?m():l()}else this.stoppingCustomActions=this.executingCustomActions=!1,l(),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"),f=!1,l=0;l<
-e.length;l++)c=e[l].getAttribute("href"),null!=c&&"data:action/json,"==c.substring(0,17)&&(e[l].setAttribute("href",this.updateCustomLink(b,c)),f=!0);f&&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(Y){}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 f=b[d[c][e]];null!=f?""!=f&&g.push(f):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 M=Graph.prototype.isCellVisible;Graph.prototype.isCellVisible=function(b){return M.apply(this,arguments)&&!this.isAllTagsHidden(this.getTagsForCell(b))};
+e.length;l++)c=e[l].getAttribute("href"),null!=c&&"data:action/json,"==c.substring(0,17)&&(e[l].setAttribute("href",this.updateCustomLink(b,c)),f=!0);f&&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(ca){}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 f=b[d[c][e]];null!=f?""!=f&&g.push(f):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 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 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 f=0,l={},k=0;k<b.length;k++)0<b[k].length&&(l[b[k]]=!0,f++);for(k=0;k<d.length;k++)if(c&&this.model.getParent(d[k])==
this.model.root||this.model.isVertex(d[k])||this.model.isEdge(d[k])){var m=this.getTagsForCell(d[k]),p=!1;if(0<m.length&&(m=m.split(" "),m.length>=b.length)){for(var q=p=0;q<m.length&&p<f;q++)null!=l[m[q]]&&p++;p=p==f}p&&(1!=g||this.isCellVisible(d[k]))&&e.push(d[k])}}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(" "),f={},l=0;l<e.length;l++)if(null==d||null!=d[e[l]])f[e[l]]=!0,c.push(e[l]);d=f}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(" "),f=0;f<e.length;f++)null==c[e[f]]&&(c[e[f]]=!0,d.push(e[f]))}return d};Graph.prototype.getTagsForCell=function(b){return this.getAttributeForCell(b,"tags","")};Graph.prototype.addTagsForCells=function(b,d){if(0<
@@ -3335,32 +3333,32 @@ mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js
"/mxBasic.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/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 aa=mxMarker.createMarker;mxMarker.createMarker=function(b,d,c,g,e,f,l,k,m,p){if(null!=c&&null==mxMarker.markers[c]){var q=this.getPackageForType(c);null!=
-q&&mxStencilRegistry.getStencil(q)}return aa.apply(this,arguments)};PrintDialog.prototype.create=function(b,d){function c(){v.value=Math.max(1,Math.min(k,Math.max(parseInt(v.value),parseInt(n.value))));n.value=Math.max(1,Math.min(k,Math.min(parseInt(v.value),parseInt(n.value))))}function g(d){function c(d,c,f){var l=d.useCssTransforms,k=d.currentTranslate,m=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 u=d.getGraphBounds(),n=0,v=0,x=F.get(),t=1/d.pageScale,C=y.checked;if(C)var t=parseInt(O.value),N=parseInt(I.value),t=Math.min(x.height*N/(u.height/d.view.scale),x.width*t/(u.width/d.view.scale));else t=parseInt(z.value)/(100*d.pageScale),isNaN(t)&&(g=1/d.pageScale,z.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?(u=d.getPageLayout(),n-=u.x*x.width,v-=u.y*x.height):
+"/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 Z=mxMarker.createMarker;mxMarker.createMarker=function(b,d,c,g,e,f,l,k,m,p){if(null!=c&&null==mxMarker.markers[c]){var q=this.getPackageForType(c);null!=q&&
+mxStencilRegistry.getStencil(q)}return Z.apply(this,arguments)};PrintDialog.prototype.create=function(b,d){function c(){v.value=Math.max(1,Math.min(k,Math.max(parseInt(v.value),parseInt(n.value))));n.value=Math.max(1,Math.min(k,Math.min(parseInt(v.value),parseInt(n.value))))}function g(d){function c(d,c,f){var l=d.useCssTransforms,k=d.currentTranslate,m=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 u=d.getGraphBounds(),n=0,v=0,x=E.get(),t=1/d.pageScale,C=y.checked;if(C)var t=parseInt(O.value),M=parseInt(I.value),t=Math.min(x.height*M/(u.height/d.view.scale),x.width*t/(u.width/d.view.scale));else t=parseInt(z.value)/(100*d.pageScale),isNaN(t)&&(g=1/d.pageScale,z.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?(u=d.getPageLayout(),n-=u.x*x.width,v-=u.y*x.height):
C=!0;if(null==c){c=PrintDialog.createPrintPreview(d,t,x,0,n,v,C);c.pageSelector=!1;c.mathEnabled=!1;n=b.getCurrentFile();null!=n&&(c.title=n.getTitle());var A=c.writeHead;c.writeHead=function(c){A.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 f=g[e].name,l=g[e].url;Graph.isCssFontUrl(l)?c.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(l)+'" charset="UTF-8" type="text/css">'):(c.writeln('<style type="text/css">'),c.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(f)+'";\nsrc: url("'+mxUtils.htmlEntities(l)+'");\n}'),c.writeln("</style>"))}};
if("undefined"!==typeof MathJax){var D=c.renderPage;c.renderPage=function(d,c,g,e,f,l){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var m=D.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:m.className="geDisableMathJax";return m}}n=null;v=e.enableFlowAnimation;e.enableFlowAnimation=!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(n=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),
e.refresh());c.open(null,null,f,!0);e.enableFlowAnimation=v;null!=n&&(e.stylesheet=n,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,n,v,f,!0);f=d.getCustomFonts();if(null!=c.wnd)for(n=0;n<f.length;n++)v=f[n].name,C=f[n].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>"))}l&&(d.useCssTransforms=l,d.currentTranslate=k,d.currentScale=m,d.view.translate=p,d.view.scale=q);return c}var g=parseInt(L.value)/100;isNaN(g)&&(g=1,L.value="100 %");var g=.75*g,f=null;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(f=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.refresh());var l=n.value,k=v.value,p=!q.checked,
-u=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,l,k,y.checked,O.value,I.value,parseInt(z.value)/100,parseInt(L.value)/100,F.get());else{p&&(p=l==m&&k==m);if(!p&&null!=b.pages&&b.pages.length){var x=0,p=b.pages.length-1;q.checked||(x=parseInt(l)-1,p=parseInt(k)-1);for(var t=x;t<=p;t++){var C=b.pages[t],l=C==b.currentPage?e:null;if(null==l){var l=b.createTemporaryGraph(e.stylesheet),k=!0,x=!1,N=null,A=null;null==C.viewState&&null==C.root&&b.updatePageRoot(C);null!=C.viewState&&
-(k=C.viewState.pageVisible,x=C.viewState.mathEnabled,N=C.viewState.background,A=C.viewState.backgroundImage,l.extFonts=C.viewState.extFonts);l.background=N;l.backgroundImage=null!=A?new mxImage(A.src,A.width,A.height):null;l.pageVisible=k;l.mathEnabled=x;var D=l.getGlobalVariable;l.getGlobalVariable=function(d){return"page"==d?C.getName():"pagenumber"==d?t+1:"pagecount"==d?null!=b.pages?b.pages.length:1:D.apply(this,arguments)};document.body.appendChild(l.container);b.updatePageRoot(C);l.model.setRoot(C.root)}u=
+u=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,l,k,y.checked,O.value,I.value,parseInt(z.value)/100,parseInt(L.value)/100,E.get());else{p&&(p=l==m&&k==m);if(!p&&null!=b.pages&&b.pages.length){var x=0,p=b.pages.length-1;q.checked||(x=parseInt(l)-1,p=parseInt(k)-1);for(var t=x;t<=p;t++){var C=b.pages[t],l=C==b.currentPage?e:null;if(null==l){var l=b.createTemporaryGraph(e.stylesheet),k=!0,x=!1,M=null,A=null;null==C.viewState&&null==C.root&&b.updatePageRoot(C);null!=C.viewState&&
+(k=C.viewState.pageVisible,x=C.viewState.mathEnabled,M=C.viewState.background,A=C.viewState.backgroundImage,l.extFonts=C.viewState.extFonts);l.background=M;l.backgroundImage=null!=A?new mxImage(A.src,A.width,A.height):null;l.pageVisible=k;l.mathEnabled=x;var D=l.getGlobalVariable;l.getGlobalVariable=function(d){return"page"==d?C.getName():"pagenumber"==d?t+1:"pagecount"==d?null!=b.pages?b.pages.length:1:D.apply(this,arguments)};document.body.appendChild(l.container);b.updatePageRoot(C);l.model.setRoot(C.root)}u=
c(l,u,t!=p);l!=e&&l.container.parentNode.removeChild(l.container)}}else u=c(e);null==u?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(u.mathEnabled&&(p=u.wnd.document,d&&(u.wnd.IMMEDIATE_PRINT=!0),p.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),u.closeDocument(),!u.mathEnabled&&d&&PrintDialog.printPreview(u));null!=f&&(e.stylesheet=f,e.refresh())}}var e=b.editor.graph,f=document.createElement("div"),l=document.createElement("h3");
l.style.width="100%";l.style.textAlign="center";l.style.marginTop="0px";mxUtils.write(l,d||mxResources.get("print"));f.appendChild(l);var k=1,m=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);l=document.createElement("span");
mxUtils.write(l,mxResources.get("printAllPages"));p.appendChild(l);mxUtils.br(p);var u=q.cloneNode(!0);q.setAttribute("checked","checked");u.setAttribute("value","range");p.appendChild(u);l=document.createElement("span");mxUtils.write(l,mxResources.get("pages")+":");p.appendChild(l);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";p.appendChild(n);l=document.createElement("span");
mxUtils.write(l,mxResources.get("to"));p.appendChild(l);var v=n.cloneNode(!0);p.appendChild(v);mxEvent.addListener(n,"focus",function(){u.checked=!0});mxEvent.addListener(v,"focus",function(){u.checked=!0});mxEvent.addListener(n,"change",c);mxEvent.addListener(v,"change",c);if(null!=b.pages&&(k=b.pages.length,null!=b.currentPage))for(l=0;l<b.pages.length;l++)if(b.currentPage==b.pages[l]){m=l+1;n.value=m;v.value=m;break}n.setAttribute("max",k);v.setAttribute("max",k);b.isPagesEnabled()?1<k&&(f.appendChild(p),
u.checked=!0):u.checked=!0;var x=document.createElement("div");x.style.marginBottom="10px";var t=document.createElement("input");t.style.marginRight="8px";t.setAttribute("value","adjust");t.setAttribute("type","radio");t.setAttribute("name","printZoom");x.appendChild(t);l=document.createElement("span");mxUtils.write(l,mxResources.get("adjustTo"));x.appendChild(l);var z=document.createElement("input");z.style.cssText="margin:0 8px 0 8px;";z.setAttribute("value","100 %");z.style.width="50px";x.appendChild(z);
-mxEvent.addListener(z,"focus",function(){t.checked=!0});f.appendChild(x);var p=p.cloneNode(!1),y=t.cloneNode(!0);y.setAttribute("value","fit");t.setAttribute("checked","checked");l=document.createElement("div");l.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";l.appendChild(y);p.appendChild(l);x=document.createElement("table");x.style.display="inline-block";var C=document.createElement("tbody"),N=document.createElement("tr"),D=N.cloneNode(!0),M=document.createElement("td"),
-G=M.cloneNode(!0),E=M.cloneNode(!0),H=M.cloneNode(!0),K=M.cloneNode(!0),J=M.cloneNode(!0);M.style.textAlign="right";H.style.textAlign="right";mxUtils.write(M,mxResources.get("fitTo"));var O=document.createElement("input");O.style.cssText="margin:0 8px 0 8px;";O.setAttribute("value","1");O.setAttribute("min","1");O.setAttribute("type","number");O.style.width="40px";G.appendChild(O);l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));E.appendChild(l);mxUtils.write(H,
-mxResources.get("fitToBy"));var I=O.cloneNode(!0);K.appendChild(I);mxEvent.addListener(O,"focus",function(){y.checked=!0});mxEvent.addListener(I,"focus",function(){y.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));J.appendChild(l);N.appendChild(M);N.appendChild(G);N.appendChild(E);D.appendChild(H);D.appendChild(K);D.appendChild(J);C.appendChild(N);C.appendChild(D);x.appendChild(C);p.appendChild(x);f.appendChild(p);p=document.createElement("div");l=
-document.createElement("div");l.style.fontWeight="bold";l.style.marginBottom="12px";mxUtils.write(l,mxResources.get("paperSize"));p.appendChild(l);l=document.createElement("div");l.style.marginBottom="12px";var F=PageSetupDialog.addPageFormatPanel(l,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);p.appendChild(l);l=document.createElement("span");mxUtils.write(l,mxResources.get("pageScale"));p.appendChild(l);var L=document.createElement("input");L.style.cssText="margin:0 8px 0 8px;";
+mxEvent.addListener(z,"focus",function(){t.checked=!0});f.appendChild(x);var p=p.cloneNode(!1),y=t.cloneNode(!0);y.setAttribute("value","fit");t.setAttribute("checked","checked");l=document.createElement("div");l.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";l.appendChild(y);p.appendChild(l);x=document.createElement("table");x.style.display="inline-block";var C=document.createElement("tbody"),M=document.createElement("tr"),D=M.cloneNode(!0),N=document.createElement("td"),
+G=N.cloneNode(!0),F=N.cloneNode(!0),H=N.cloneNode(!0),K=N.cloneNode(!0),J=N.cloneNode(!0);N.style.textAlign="right";H.style.textAlign="right";mxUtils.write(N,mxResources.get("fitTo"));var O=document.createElement("input");O.style.cssText="margin:0 8px 0 8px;";O.setAttribute("value","1");O.setAttribute("min","1");O.setAttribute("type","number");O.style.width="40px";G.appendChild(O);l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));F.appendChild(l);mxUtils.write(H,
+mxResources.get("fitToBy"));var I=O.cloneNode(!0);K.appendChild(I);mxEvent.addListener(O,"focus",function(){y.checked=!0});mxEvent.addListener(I,"focus",function(){y.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));J.appendChild(l);M.appendChild(N);M.appendChild(G);M.appendChild(F);D.appendChild(H);D.appendChild(K);D.appendChild(J);C.appendChild(M);C.appendChild(D);x.appendChild(C);p.appendChild(x);f.appendChild(p);p=document.createElement("div");l=
+document.createElement("div");l.style.fontWeight="bold";l.style.marginBottom="12px";mxUtils.write(l,mxResources.get("paperSize"));p.appendChild(l);l=document.createElement("div");l.style.marginBottom="12px";var E=PageSetupDialog.addPageFormatPanel(l,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);p.appendChild(l);l=document.createElement("span");mxUtils.write(l,mxResources.get("pageScale"));p.appendChild(l);var L=document.createElement("input");L.style.cssText="margin:0 8px 0 8px;";
L.setAttribute("value","100 %");L.style.width="60px";p.appendChild(L);f.appendChild(p);l=document.createElement("div");l.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&&l.appendChild(p);b.isOffline()||(x=mxUtils.button(mxResources.get("help"),function(){e.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),x.className="geBtn",l.appendChild(x));PrintDialog.previewEnabled&&(x=
-mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();g(!1)}),x.className="geBtn",l.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();g(!0)});x.className="geBtn gePrimaryBtn";l.appendChild(x);b.editor.cancelFirst||l.appendChild(p);f.appendChild(l);this.container=f};var N=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 N.apply(this,arguments),null!=this.mathEnabled&&
+mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();g(!1)}),x.className="geBtn",l.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();g(!0)});x.className="geBtn gePrimaryBtn";l.appendChild(x);b.editor.cancelFirst||l.appendChild(p);f.appendChild(l);this.container=f};var M=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 M.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 O=document.createElement("canvas"),U=new Image;U.onload=function(){try{O.getContext("2d").drawImage(U,0,0);var b=O.toDataURL("image/png");Editor.prototype.useCanvasForExport=
-null!=b&&6<b.length}catch(I){}};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(E){}})();
+null!=b&&6<b.length}catch(I){}};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(F){}})();
(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};b.afterDecode=function(b,e,k){k.previousColor=k.color;k.previousImage=k.image;k.previousFormat=k.format;null!=k.foldingEnabled&&(k.foldingEnabled=!k.foldingEnabled);null!=k.mathEnabled&&(k.mathEnabled=!k.mathEnabled);null!=k.shadowVisible&&(k.shadowVisible=!k.shadowVisible);return k};mxCodecRegistry.register(b)})();
-(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="15.9.1";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,k){k.ui=b.ui;return e};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="15.9.3";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?"/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&&!EditorUi.isElectronApp&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";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,k,q,u){q=null!=q?q:0<=b.indexOf("NetworkError")||0<=b.indexOf("SecurityError")||0<=b.indexOf("NS_ERROR_FAILURE")||0<=b.indexOf("out of memory")?"CONFIG":
@@ -3412,15 +3410,15 @@ this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.
this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(b,c,e,f,k,q,n,v,t,x,G,H){try{f=null!=f?f:this.editor.graph.isSelectionEmpty();var d=this.getBaseFilename(!k),g=d+("xml"==b||"pdf"==b&&G?".drawio":"")+"."+b;if("xml"==b){var l=Graph.xmlDeclaration+"\n"+this.getFileData(!0,null,null,null,f,k,null,null,null,c);this.saveData(g,b,l,"text/xml")}else if("html"==b)l=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(g,b,l,"text/html");else if("svg"!=b&&"xmlsvg"!=
b||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==b?g=d+".png":"jpeg"==b&&(g=d+".jpg"),this.saveRequest(g,b,mxUtils.bind(this,function(d,c){try{var g=this.editor.graph.pageVisible;null!=q&&(this.editor.graph.pageVisible=q);var e=this.createDownloadRequest(d,b,f,c,n,k,v,t,x,G,H);this.editor.graph.pageVisible=g;return e}catch(U){this.handleError(U)}}));else{var m=null,p=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 u=this.editor.graph.background;if(n||u==mxConstants.NONE)u=null;var y=this.editor.graph.getSvg(u,null,null,null,null,f);e&&this.editor.graph.addSvgShadow(y);this.editor.convertImages(y,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();p(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();
-p(b)}),f)}}catch(M){this.handleError(M)}};EditorUi.prototype.createDownloadRequest=function(b,c,e,f,k,q,n,v,t,x,G){var d=this.editor.graph,g=d.getGraphBounds();e=this.getFileData(!0,null,null,null,e,0==q?!1:"xmlpng"!=c,null,null,null,!1,"pdf"==c);var l="",m="";if(g.width*g.height>MAX_AREA||e.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};x=x?"1":"0";"pdf"==c&&(null!=G?m="&from="+G.from+"&to="+G.to:0==q&&(m="&allPages=1"));if("xmlpng"==c&&(x="1",c="png",null!=this.pages&&
+p(b)}),f)}}catch(N){this.handleError(N)}};EditorUi.prototype.createDownloadRequest=function(b,c,e,f,k,q,n,v,t,x,G){var d=this.editor.graph,g=d.getGraphBounds();e=this.getFileData(!0,null,null,null,e,0==q?!1:"xmlpng"!=c,null,null,null,!1,"pdf"==c);var l="",m="";if(g.width*g.height>MAX_AREA||e.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};x=x?"1":"0";"pdf"==c&&(null!=G?m="&from="+G.from+"&to="+G.to:0==q&&(m="&allPages=1"));if("xmlpng"==c&&(x="1",c="png",null!=this.pages&&
null!=this.currentPage))for(q=0;q<this.pages.length;q++)if(this.pages[q]==this.currentPage){l="&from="+q;break}q=d.background;"png"!=c&&"pdf"!=c||!k?k||null!=q&&q!=mxConstants.NONE||(q="#ffffff"):q=mxConstants.NONE;k={globalVars:d.getExportVariables()};t&&(k.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});Graph.translateDiagram&&(k.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+c+l+m+"&bg="+(null!=q?q:mxConstants.NONE)+"&base64="+f+"&embedXml="+
x+"&xml="+encodeURIComponent(e)+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(k))+(null!=n?"&scale="+n:"")+(null!=v?"&border="+v:""))};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(g){var e=null!=b.data?b.data:"";null!=g&&0<g.length&&(0<e.length&&(e+="\n"),e+=g);g=new LocalFile(this,"csv"!=b.format&&0<e.length?e:this.emptyDiagramXml,null!=
urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);g.getHash=function(){return d};this.fileLoaded(g);"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 f=null!=b.interval?parseInt(b.interval):6E4,l=null,k=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(l);l=window.setTimeout(k,f)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){m();k()}));m();k()}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,k=f.getModel();k.beginUpdate();var n=null;try{for(b=b.firstChild;null!=b;){if("update"==
-b.nodeName){var v=k.getCell(b.getAttribute("id"));if(null!=v){try{var t=b.getAttribute("value");if(null!=t){var x=mxUtils.parseXml(t).documentElement;if(null!=x)if("1"==x.getAttribute("replace-value"))k.setValue(v,x);else for(var G=x.attributes,H=0;H<G.length;H++)f.setAttributeForCell(v,G[H].nodeName,0<G[H].nodeValue.length?G[H].nodeValue:null)}}catch(M){null!=window.console&&console.log("Error in value for "+v.id+": "+M)}try{var z=b.getAttribute("style");null!=z&&f.model.setStyle(v,z)}catch(M){null!=
-window.console&&console.log("Error in style for "+v.id+": "+M)}try{var D=b.getAttribute("icon");if(null!=D){var L=0<D.length?JSON.parse(D):null;null!=L&&L.append||f.removeCellOverlays(v);null!=L&&f.addCellOverlay(v,d(L))}}catch(M){null!=window.console&&console.log("Error in icon for "+v.id+": "+M)}try{var F=b.getAttribute("geometry");if(null!=F){var F=JSON.parse(F),J=f.getCellGeometry(v);if(null!=J){J=J.clone();for(key in F){var C=parseFloat(F[key]);"dx"==key?J.x+=C:"dy"==key?J.y+=C:"dw"==key?J.width+=
-C:"dh"==key?J.height+=C:J[key]=parseFloat(F[key])}f.model.setGeometry(v,J)}}}catch(M){null!=window.console&&console.log("Error in icon for "+v.id+": "+M)}}}else if("model"==b.nodeName){for(var K=b.firstChild;null!=K&&K.nodeType!=mxConstants.NODETYPE_ELEMENT;)K=K.nextSibling;null!=K&&(new mxCodec(b.firstChild)).decode(K,k)}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")||
+b.nodeName){var v=k.getCell(b.getAttribute("id"));if(null!=v){try{var t=b.getAttribute("value");if(null!=t){var x=mxUtils.parseXml(t).documentElement;if(null!=x)if("1"==x.getAttribute("replace-value"))k.setValue(v,x);else for(var G=x.attributes,H=0;H<G.length;H++)f.setAttributeForCell(v,G[H].nodeName,0<G[H].nodeValue.length?G[H].nodeValue:null)}}catch(N){null!=window.console&&console.log("Error in value for "+v.id+": "+N)}try{var z=b.getAttribute("style");null!=z&&f.model.setStyle(v,z)}catch(N){null!=
+window.console&&console.log("Error in style for "+v.id+": "+N)}try{var D=b.getAttribute("icon");if(null!=D){var L=0<D.length?JSON.parse(D):null;null!=L&&L.append||f.removeCellOverlays(v);null!=L&&f.addCellOverlay(v,d(L))}}catch(N){null!=window.console&&console.log("Error in icon for "+v.id+": "+N)}try{var E=b.getAttribute("geometry");if(null!=E){var E=JSON.parse(E),J=f.getCellGeometry(v);if(null!=J){J=J.clone();for(key in E){var C=parseFloat(E[key]);"dx"==key?J.x+=C:"dy"==key?J.y+=C:"dw"==key?J.width+=
+C:"dh"==key?J.height+=C:J[key]=parseFloat(E[key])}f.model.setGeometry(v,J)}}}catch(N){null!=window.console&&console.log("Error in icon for "+v.id+": "+N)}}}else if("model"==b.nodeName){for(var K=b.firstChild;null!=K&&K.nodeType!=mxConstants.NODETYPE_ELEMENT;)K=K.nextSibling;null!=K&&(new mxCodec(b.firstChild)).decode(K,k)}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{k.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,g="",e=d.lastIndexOf(".");0<=e&&(g=d.substring(e),d=d.substring(0,e));if(c)var f=new Date,e=f.getFullYear(),k=f.getMonth()+1,n=f.getDate(),
t=f.getHours(),x=f.getMinutes(),f=f.getSeconds(),d=d+(" "+(e+"-"+k+"-"+n+"-"+t+"-"+x+"-"+f));return d=mxResources.get("copyOf",[d])+g};EditorUi.prototype.fileLoaded=function(b,c){var d=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var g=!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 e=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=
@@ -3439,15 +3437,15 @@ EditorUi.prototype.libraryLoaded=function(b,c,e,f){if(null!=this.sidebar){b.cons
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 k=this.sidebar.addPalette(b.getHash(),e,null!=f?f:!0,mxUtils.bind(this,function(b){l(c,b)}));this.repositionLibrary(d);var m=k.parentNode.previousSibling;f=m.getAttribute("title");null!=f&&0<f.length&&".scratchpad"!=b.title&&m.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";m.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 z=this.editor.graph,D=null,L=mxUtils.bind(this,function(d){this.showLibraryDialog(b.getTitle(),k,c,b,b.getMode());
-mxEvent.consume(d)}),F=mxUtils.bind(this,function(d){b.setModified(!0);b.isAutosave()?(null!=D&&null!=D.parentNode&&D.parentNode.removeChild(D),D=t.cloneNode(!1),D.setAttribute("src",Editor.spinImage),D.setAttribute("title",mxResources.get("saving")),D.style.cursor="default",D.style.marginRight="2px",D.style.marginTop="-2px",n.insertBefore(D,n.firstChild),m.style.paddingRight=18*n.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=D&&null!=D.parentNode&&(D.parentNode.removeChild(D),
+mxEvent.consume(d)}),E=mxUtils.bind(this,function(d){b.setModified(!0);b.isAutosave()?(null!=D&&null!=D.parentNode&&D.parentNode.removeChild(D),D=t.cloneNode(!1),D.setAttribute("src",Editor.spinImage),D.setAttribute("title",mxResources.get("saving")),D.style.cursor="default",D.style.marginRight="2px",D.style.marginTop="-2px",n.insertBefore(D,n.firstChild),m.style.paddingRight=18*n.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=D&&null!=D.parentNode&&(D.parentNode.removeChild(D),
m.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()||(m.style.paddingRight=18*n.childNodes.length+"px",H.parentNode.removeChild(H),H=null)});mxEvent.consume(d)})),m.style.paddingRight=
-18*n.childNodes.length+"px")}),J=mxUtils.bind(this,function(b,d,e,f){b=z.cloneCells(mxUtils.sortCells(z.model.getTopmostCells(b)));for(var l=0;l<b.length;l++){var m=z.getCellGeometry(b[l]);null!=m&&m.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(b,d.width,d.height,f||"",!0,!1,!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);F(e);null!=g&&null!=g.parentNode&&0<c.length&&(g.parentNode.removeChild(g),
+18*n.childNodes.length+"px")}),J=mxUtils.bind(this,function(b,d,e,f){b=z.cloneCells(mxUtils.sortCells(z.model.getTopmostCells(b)));for(var l=0;l<b.length;l++){var m=z.getCellGeometry(b[l]);null!=m&&m.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(b,d.width,d.height,f||"",!0,!1,!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);E(e);null!=g&&null!=g.parentNode&&0<c.length&&(g.parentNode.removeChild(g),
g=null)}),C=mxUtils.bind(this,function(b){if(z.isSelectionEmpty())z.getRubberband().isActive()?(z.getRubberband().execute(b),z.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=z.getSelectionCells(),c=z.view.getBounds(d),e=z.view.scale;c.x/=e;c.y/=e;c.width/=e;c.height/=e;c.x-=z.view.translate.x;c.y-=z.view.translate.y;J(d,c)}mxEvent.consume(b)});mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(b){z.isMouseDown&&
null!=z.panningManager&&null!=z.graphHandler.first&&(z.graphHandler.suspend(),null!=z.graphHandler.hint&&(z.graphHandler.hint.style.visibility="hidden"),k.style.backgroundColor="#f1f3f4",k.style.cursor="copy",z.panningManager.stop(),z.autoScroll=!1,mxEvent.consume(b))}),mxUtils.bind(this,function(b){z.isMouseDown&&null!=z.panningManager&&null!=z.graphHandler&&(k.style.backgroundColor="",k.style.cursor="default",this.sidebar.showTooltips=!0,z.panningManager.stop(),z.graphHandler.reset(),z.isMouseDown=
!1,z.autoScroll=!0,C(b),mxEvent.consume(b))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(b){z.isMouseDown&&null!=z.graphHandler.first&&(z.graphHandler.resume(),null!=z.graphHandler.hint&&(z.graphHandler.hint.style.visibility="visible"),k.style.backgroundColor="",k.style.cursor="",z.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(b){k.style.backgroundColor="#f1f3f4";b.dataTransfer.dropEffect="copy";k.style.cursor="copy";this.sidebar.hideTooltip();
b.stopPropagation();b.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(b){k.style.cursor="";k.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,
-J(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&&(g.parentNode.removeChild(g),g=null);else{var x=!1,t=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));l(m,k);c=c.concat(m);F(b);
-this.spinner.stop();x=!0}catch(ba){}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);J(q,new mxRectangle(0,0,n.width,n.height),b)}x=!0}catch(ba){null!=window.console&&console.log("error in drop handler:",ba)}x||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=g&&null!=g.parentNode&&
+J(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&&(g.parentNode.removeChild(g),g=null);else{var x=!1,t=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));l(m,k);c=c.concat(m);E(b);
+this.spinner.stop();x=!0}catch(aa){}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);J(q,new mxRectangle(0,0,n.width,n.height),b)}x=!0}catch(aa){null!=window.console&&console.log("error in drop handler:",aa)}x||(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){t(b,"text/xml")},null,n):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,n)&&null!=v?this.parseFile(v,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?t(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},
mxResources.get("errorLoadingFile")))})):t(d,e)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(k,"dragleave",function(b){k.style.cursor="";k.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",L);mxEvent.addListener(k,"dblclick",function(b){mxEvent.getSource(b)==k&&L(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",C);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)})),
@@ -3498,9 +3496,9 @@ null!=g&&(d==App.MODE_DEVICE||"download"==d||"_blank"==d?g.simulate(document,"_b
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,q,k);d=this.isServices(d)?4<d?390:270: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,k,q){};EditorUi.prototype.pickFolder=function(b,
c,e){c(null)};EditorUi.prototype.exportSvg=function(b,c,e,f,k,q,n,t,y,x,G,H,z,D){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 l=this.editor.graph.getSvg(g,b,n,t,null,e,null,null,"blank"==x?"_blank":"self"==x?"_top":null,null,!0,G,H);f&&this.editor.graph.addSvgShadow(l);var m=
this.getBaseFilename()+(k?".drawio":"")+".svg";D=null!=D?D: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 p=mxUtils.bind(this,function(b){this.spinner.stop();k&&b.setAttribute("content",this.getFileData(!0,null,null,null,e,y,null,null,null,!1));D(Graph.xmlDeclaration+"\n"+(k?Graph.svgFileComment+
-"\n":"")+Graph.svgDoctype+"\n"+mxUtils.getXml(b))});this.editor.graph.mathEnabled&&this.editor.addMathCss(l);var u=mxUtils.bind(this,function(b){q?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(b,p,this.thumbImageCache)):p(b)});z?this.embedFonts(l,u):(this.editor.addFontCss(l),u(l))}catch(aa){this.handleError(aa)}};EditorUi.prototype.addRadiobox=function(b,c,e,f,k,q,n){return this.addCheckbox(b,e,f,k,q,n,!0,c)};EditorUi.prototype.addCheckbox=function(b,c,e,f,k,q,
-n,t){q=null!=q?q:!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!=t&&d.setAttribute("name",t);e&&(d.setAttribute("checked","checked"),d.defaultChecked=!0);f&&d.setAttribute("disabled","disabled");q&&(b.appendChild(d),e=document.createElement("label"),mxUtils.write(e,c),e.setAttribute("for",n),b.appendChild(e),k||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(),g="";null!=e&&e.getMode()!=App.MODE_DEVICE&&e.getMode()!=App.MODE_BROWSER&&(g=window.location.href);var f=document.createElement("select");f.style.width="120px";f.style.marginLeft="8px";f.style.marginRight="10px";f.className="geBtn";e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("makeCopy"));f.appendChild(e);e=document.createElement("option");
+"\n":"")+Graph.svgDoctype+"\n"+mxUtils.getXml(b))});this.editor.graph.mathEnabled&&this.editor.addMathCss(l);var u=mxUtils.bind(this,function(b){q?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(b,p,this.thumbImageCache)):p(b)});z?this.embedFonts(l,u):(this.editor.addFontCss(l),u(l))}catch(Z){this.handleError(Z)}};EditorUi.prototype.addRadiobox=function(b,c,e,f,k,q,n){return this.addCheckbox(b,e,f,k,q,n,!0,c)};EditorUi.prototype.addCheckbox=function(b,c,e,f,k,q,n,
+t){q=null!=q?q:!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!=t&&d.setAttribute("name",t);e&&(d.setAttribute("checked","checked"),d.defaultChecked=!0);f&&d.setAttribute("disabled","disabled");q&&(b.appendChild(d),e=document.createElement("label"),mxUtils.write(e,c),e.setAttribute("for",n),b.appendChild(e),k||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(),g="";null!=e&&e.getMode()!=App.MODE_DEVICE&&e.getMode()!=App.MODE_BROWSER&&(g=window.location.href);var f=document.createElement("select");f.style.width="120px";f.style.marginLeft="8px";f.style.marginRight="10px";f.className="geBtn";e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("makeCopy"));f.appendChild(e);e=document.createElement("option");
e.setAttribute("value","custom");mxUtils.write(e,mxResources.get("custom")+"...");f.appendChild(e);b.appendChild(f);mxEvent.addListener(f,"change",mxUtils.bind(this,function(){if("custom"==f.value){var b=new FilenameDialog(this,g,mxResources.get("ok"),function(b){null!=b?g=b:f.value="blank"},mxResources.get("url"),null,null,null,null,function(){f.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)?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled")}));mxUtils.br(b);return{getLink:function(){return d.checked?"blank"===f.value?"_blank":g:null},getEditInput:function(){return d},getEditSelect:function(){return f}}};EditorUi.prototype.addLinkSection=function(b,c){function d(){var b=document.createElement("div");b.style.width="100%";b.style.height="100%";b.style.boxSizing="border-box";null!=f&&f!=mxConstants.NONE?(b.style.border="1px solid black",b.style.backgroundColor=
f):(b.style.backgroundPosition="center center",b.style.backgroundRepeat="no-repeat",b.style.backgroundImage="url('"+Dialog.prototype.closeImage+"')");k.innerHTML="";k.appendChild(b)}mxUtils.write(b,mxResources.get("links")+":");var e=document.createElement("select");e.style.width="100px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";var g=document.createElement("option");g.setAttribute("value","auto");mxUtils.write(g,mxResources.get("automatic"));e.appendChild(g);g=document.createElement("option");
@@ -3514,29 +3512,29 @@ f&&(d.target=f);x||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;e=pars
'">\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 l=document.createElement("div");l.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";
k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name","type-embedhtmldialog");g=k.cloneNode(!0);g.setAttribute("value","copy");l.appendChild(g);var m=document.createElement("span");mxUtils.write(m,mxResources.get("includeCopyOfMyDiagram"));l.appendChild(m);mxUtils.br(l);l.appendChild(k);m=document.createElement("span");mxUtils.write(m,mxResources.get("publicDiagramUrl"));l.appendChild(m);var n=this.getCurrentFile();null==e&&null!=n&&n.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")),l.appendChild(m),mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(n.getId())})));g.setAttribute("checked","checked");null==e&&k.setAttribute("disabled","disabled");d.appendChild(l);var t=this.addLinkSection(d),H=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,":");var z=document.createElement("input");
-z.setAttribute("type","text");z.style.marginRight="16px";z.style.width="60px";z.style.marginLeft="4px";z.style.marginRight="12px";z.value="100%";d.appendChild(z);var D=this.addCheckbox(d,mxResources.get("fit"),!0),l=null!=this.pages&&1<this.pages.length,L=L=this.addCheckbox(d,mxResources.get("allPages"),l,!l),F=this.addCheckbox(d,mxResources.get("layers"),!0),J=this.addCheckbox(d,mxResources.get("tags"),!0),C=this.addCheckbox(d,mxResources.get("lightbox"),!0),K=this.addEditButton(d,C),M=K.getEditInput();
-M.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?M.removeAttribute("disabled"):M.setAttribute("disabled","disabled");M.checked&&C.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){f(k.checked?e:null,H.checked,z.value,t.getTarget(),t.getColor(),D.checked,L.checked,F.checked,J.checked,C.checked,K.getLink())}),null,b,c);this.showDialog(b.container,340,430,
+z.setAttribute("type","text");z.style.marginRight="16px";z.style.width="60px";z.style.marginLeft="4px";z.style.marginRight="12px";z.value="100%";d.appendChild(z);var D=this.addCheckbox(d,mxResources.get("fit"),!0),l=null!=this.pages&&1<this.pages.length,L=L=this.addCheckbox(d,mxResources.get("allPages"),l,!l),E=this.addCheckbox(d,mxResources.get("layers"),!0),J=this.addCheckbox(d,mxResources.get("tags"),!0),C=this.addCheckbox(d,mxResources.get("lightbox"),!0),K=this.addEditButton(d,C),N=K.getEditInput();
+N.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?N.removeAttribute("disabled"):N.setAttribute("disabled","disabled");N.checked&&C.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){f(k.checked?e:null,H.checked,z.value,t.getTarget(),t.getColor(),D.checked,L.checked,E.checked,J.checked,C.checked,K.getLink())}),null,b,c);this.showDialog(b.container,340,430,
!0,!0);g.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,e,f,k,q,n,t){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 l=this.getCurrentFile();b=0;if(null==l||l.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(l.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 p=null,u=null;if(null!=e||null!=f)b+=30,mxUtils.write(d,mxResources.get("width")+":"),p=document.createElement("input"),p.setAttribute("type","text"),p.style.marginRight="16px",p.style.width="50px",p.style.marginLeft="6px",p.style.marginRight="16px",p.style.marginBottom="10px",p.value="100%",d.appendChild(p),mxUtils.write(d,mxResources.get("height")+":"),u=document.createElement("input"),u.setAttribute("type","text"),u.style.width="50px",u.style.marginLeft="6px",u.style.marginBottom=
-"10px",u.value=f+"px",d.appendChild(u),mxUtils.br(d);var v=this.addLinkSection(d,q);e=null!=this.pages&&1<this.pages.length;var F=null;if(null==l||l.constructor!=window.DriveFile||c)F=this.addCheckbox(d,mxResources.get("allPages"),e,!e);var J=this.addCheckbox(d,mxResources.get("lightbox"),!0,null,null,!q),C=this.addEditButton(d,J),K=C.getEditInput();q&&(K.style.marginLeft=J.style.marginLeft,J.style.display="none",b-=20);var M=this.addCheckbox(d,mxResources.get("layers"),!0);M.style.marginLeft=K.style.marginLeft;
-M.style.marginTop="8px";var aa=this.addCheckbox(d,mxResources.get("tags"),!0);aa.style.marginLeft=K.style.marginLeft;aa.style.marginBottom="16px";aa.style.marginTop="16px";mxEvent.addListener(J,"change",function(){J.checked?(M.removeAttribute("disabled"),K.removeAttribute("disabled")):(M.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"));K.checked&&J.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,
-d,mxUtils.bind(this,function(){k(v.getTarget(),v.getColor(),null==F?!0:F.checked,J.checked,C.getLink(),M.checked,null!=p?p.value:null,null!=u?u.value:null,aa.checked)}),null,mxResources.get("create"),n,t);this.showDialog(c.container,340,300+b,!0,!0);null!=p?(p.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?p.select():document.execCommand("selectAll",!1,null)):v.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,f,k){var d=document.createElement("div");d.style.whiteSpace=
+"10px",u.value=f+"px",d.appendChild(u),mxUtils.br(d);var v=this.addLinkSection(d,q);e=null!=this.pages&&1<this.pages.length;var E=null;if(null==l||l.constructor!=window.DriveFile||c)E=this.addCheckbox(d,mxResources.get("allPages"),e,!e);var J=this.addCheckbox(d,mxResources.get("lightbox"),!0,null,null,!q),C=this.addEditButton(d,J),K=C.getEditInput();q&&(K.style.marginLeft=J.style.marginLeft,J.style.display="none",b-=20);var N=this.addCheckbox(d,mxResources.get("layers"),!0);N.style.marginLeft=K.style.marginLeft;
+N.style.marginTop="8px";var Z=this.addCheckbox(d,mxResources.get("tags"),!0);Z.style.marginLeft=K.style.marginLeft;Z.style.marginBottom="16px";Z.style.marginTop="16px";mxEvent.addListener(J,"change",function(){J.checked?(N.removeAttribute("disabled"),K.removeAttribute("disabled")):(N.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"));K.checked&&J.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,
+d,mxUtils.bind(this,function(){k(v.getTarget(),v.getColor(),null==E?!0:E.checked,J.checked,C.getLink(),N.checked,null!=p?p.value:null,null!=u?u.value:null,Z.checked)}),null,mxResources.get("create"),n,t);this.showDialog(c.container,340,300+b,!0,!0);null!=p?(p.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?p.select():document.execCommand("selectAll",!1,null)):v.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,f,k){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:"+(k?"10":"4")+"px";d.appendChild(g);if(k){mxUtils.write(d,mxResources.get("zoom")+":");var l=document.createElement("input");l.setAttribute("type","text");l.style.marginRight="16px";l.style.width="60px";l.style.marginLeft="4px";l.style.marginRight="12px";l.value=this.lastExportZoom||"100%";d.appendChild(l);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 p=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),n=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(l.value)/100||1,d=parseInt(m.value)||0;e(!p.checked,null!=n?n.checked:!1,null!=t?t.checked:!1,b,d)}),null,b,c);this.showDialog(b.container,300,(k?25:0)+(f?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(b,c,e,f,k,q,n,t,y){n=null!=n?n:Editor.defaultIncludeDiagram;var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=this.editor.graph,
l="jpeg"==t?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 p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.style.marginRight="12px";p.value=this.lastExportZoom||"100%";d.appendChild(p);mxUtils.write(d,mxResources.get("borderWidth")+":");var u=document.createElement("input");
u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.value=this.lastExportBorder||"0";d.appendChild(u);mxUtils.br(d);var v=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,g.isSelectionEmpty()),J=document.createElement("input");J.style.marginTop="16px";J.style.marginRight="8px";J.style.marginLeft="24px";J.setAttribute("disabled","disabled");J.setAttribute("type","checkbox");var C=document.createElement("select");C.style.marginTop="16px";C.style.marginLeft=
"8px";b=["selectionOnly","diagram","page"];for(m=0;m<b.length;m++)if(!g.isSelectionEmpty()||"selectionOnly"!=b[m]){var K=document.createElement("option");mxUtils.write(K,mxResources.get(b[m]));K.setAttribute("value",b[m]);C.appendChild(K)}y?(mxUtils.write(d,mxResources.get("size")+":"),d.appendChild(C),mxUtils.br(d),l+=26,mxEvent.addListener(C,"change",function(){"selectionOnly"==C.value&&(v.checked=!0)})):q&&(d.appendChild(J),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),l+=30,mxEvent.addListener(v,
-"change",function(){v.checked?J.removeAttribute("disabled"):J.setAttribute("disabled","disabled")}));g.isSelectionEmpty()?y&&(v.style.display="none",v.nextSibling.style.display="none",v.nextSibling.nextSibling.style.display="none",l-=30):(C.value="diagram",J.setAttribute("checked","checked"),J.defaultChecked=!0,mxEvent.addListener(v,"change",function(){C.value=v.checked?"selectionOnly":"diagram"}));var M=this.addCheckbox(d,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),aa=null;Editor.isDarkMode()&&
-(aa=this.addCheckbox(d,mxResources.get("dark"),!0),l+=26);var N=this.addCheckbox(d,mxResources.get("shadow"),g.shadowVisible),O=document.createElement("input");O.style.marginTop="16px";O.style.marginRight="8px";O.setAttribute("type","checkbox");var U=document.createElement("input");U.style.marginTop="16px";U.style.marginRight="8px";U.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||O.setAttribute("disabled","disabled");c&&(d.appendChild(O),mxUtils.write(d,mxResources.get("embedImages")),
-mxUtils.br(d),d.appendChild(U),mxUtils.write(d,mxResources.get("embedFonts")),mxUtils.br(d),l+=60);var E=null;if("png"==t||"jpeg"==t)E=this.addCheckbox(d,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=30;var I=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=t);I.style.marginBottom="16px";var A=document.createElement("select");A.style.maxWidth="260px";A.style.marginLeft="8px";A.style.marginRight="10px";A.className="geBtn";c=document.createElement("option");
+"change",function(){v.checked?J.removeAttribute("disabled"):J.setAttribute("disabled","disabled")}));g.isSelectionEmpty()?y&&(v.style.display="none",v.nextSibling.style.display="none",v.nextSibling.nextSibling.style.display="none",l-=30):(C.value="diagram",J.setAttribute("checked","checked"),J.defaultChecked=!0,mxEvent.addListener(v,"change",function(){C.value=v.checked?"selectionOnly":"diagram"}));var N=this.addCheckbox(d,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),Z=null;Editor.isDarkMode()&&
+(Z=this.addCheckbox(d,mxResources.get("dark"),!0),l+=26);var M=this.addCheckbox(d,mxResources.get("shadow"),g.shadowVisible),O=document.createElement("input");O.style.marginTop="16px";O.style.marginRight="8px";O.setAttribute("type","checkbox");var U=document.createElement("input");U.style.marginTop="16px";U.style.marginRight="8px";U.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||O.setAttribute("disabled","disabled");c&&(d.appendChild(O),mxUtils.write(d,mxResources.get("embedImages")),
+mxUtils.br(d),d.appendChild(U),mxUtils.write(d,mxResources.get("embedFonts")),mxUtils.br(d),l+=60);var F=null;if("png"==t||"jpeg"==t)F=this.addCheckbox(d,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=30;var I=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=t);I.style.marginBottom="16px";var A=document.createElement("select");A.style.maxWidth="260px";A.style.marginLeft="8px";A.style.marginRight="10px";A.className="geBtn";c=document.createElement("option");
c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));A.appendChild(c);c=document.createElement("option");c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("openInNewWindow"));A.appendChild(c);c=document.createElement("option");c.setAttribute("value","self");mxUtils.write(c,mxResources.get("openInThisWindow"));A.appendChild(c);"svg"==t&&(mxUtils.write(d,mxResources.get("links")+":"),d.appendChild(A),mxUtils.br(d),mxUtils.br(d),l+=50);e=new CustomDialog(this,d,
-mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=p.value;k(p.value,M.checked,!v.checked,N.checked,I.checked,O.checked,u.value,J.checked,!1,A.value,null!=E?E.checked:null,null!=aa?aa.checked:null,C.value,U.checked)}),null,e,f);this.showDialog(e.container,340,l,!0,!0,null,null,null,null,!0);p.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?p.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,e,f,k){var d=
+mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=p.value;k(p.value,N.checked,!v.checked,M.checked,I.checked,O.checked,u.value,J.checked,!1,A.value,null!=F?F.checked:null,null!=Z?Z.checked:null,C.value,U.checked)}),null,e,f);this.showDialog(e.container,340,l,!0,!0,null,null,null,null,!0);p.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?p.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,e,f,k){var d=
document.createElement("div");d.style.whiteSpace="nowrap";var g=this.editor.graph;if(null!=c){var l=document.createElement("h3");mxUtils.write(l,c);l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(l)}var m=this.addCheckbox(d,mxResources.get("fit"),!0),p=this.addCheckbox(d,mxResources.get("shadow"),g.shadowVisible&&f,!f),n=this.addCheckbox(d,e),t=this.addCheckbox(d,mxResources.get("lightbox"),!0),z=this.addEditButton(d,t),D=z.getEditInput(),L=1<g.model.getChildCount(g.model.getRoot()),
-F=this.addCheckbox(d,mxResources.get("layers"),L,!L);F.style.marginLeft=D.style.marginLeft;F.style.marginBottom="12px";F.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?(L&&F.removeAttribute("disabled"),D.removeAttribute("disabled")):(F.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"));D.checked&&t.checked?z.getEditSelect().removeAttribute("disabled"):z.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,
-function(){b(m.checked,p.checked,n.checked,t.checked,z.getLink(),F.checked)}),null,mxResources.get("embed"),k);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,e,f,k,q,n,t){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('"+
+E=this.addCheckbox(d,mxResources.get("layers"),L,!L);E.style.marginLeft=D.style.marginLeft;E.style.marginBottom="12px";E.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?(L&&E.removeAttribute("disabled"),D.removeAttribute("disabled")):(E.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"));D.checked&&t.checked?z.getEditSelect().removeAttribute("disabled"):z.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,
+function(){b(m.checked,p.checked,n.checked,t.checked,z.getLink(),E.checked)}),null,mxResources.get("embed"),k);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,e,f,k,q,n,t){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!=l?"&page="+l:"")+(k?"&edit=_blank":"")+(q?"&layers=1":"")+"');}})(this);\"",m+="cursor:pointer;");b&&(m+="max-width:100%;");var p="";e&&(p=' width="'+Math.round(g.width)+'" height="'+Math.round(g.height)+'"');n('<img src="'+d+'"'+p+(""!=m?' style="'+m+'"':"")+c+"/>")}var g=this.editor.graph.getGraphBounds(),l=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){t({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 p=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(f?"1":"0")+m+"&xml="+encodeURIComponent(c));p.send(mxUtils.bind(this,function(){200<=p.getStatus()&&
299>=p.getStatus()?d("data:image/png;base64,"+p.getText()):t({message:mxResources.get("unknownError")})}))}else t({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(b,c,e,f,k,q,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 l=0;l<g.length;l++){var m=g[l].getAttribute("href");null!=m&&"#"==m.charAt(0)&&"_blank"==g[l].getAttribute("target")&&g[l].removeAttribute("target")}f&&
@@ -3551,10 +3549,10 @@ arguments)};document.body.appendChild(d.container);d.model.setRoot(p.root)}this.
c(b)}),null,null,f,null,d.shadowVisible,null,d,k,null,null,null,"diagram",null)}catch(G){null!=c&&c(G)}};EditorUi.prototype.getEmbeddedSvg=function(b,c,e,f,k,q,n,t,y,x,G,H,z){t=null!=t?t:!0;G=null!=G?G:0;n=null!=y?y:c.background;n==mxConstants.NONE&&(n=null);q=c.getSvg(n,x,G,null,null,q,null,null,null,c.shadowVisible||H,null,z,"diagram");(c.shadowVisible||H)&&c.addSvgShadow(q,null,null,0==G);null!=b&&q.setAttribute("content",b);null!=e&&q.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!=k&&k(b);return b});c.mathEnabled&&this.editor.addMathCss(q);if(null!=k)this.embedFonts(q,mxUtils.bind(this,function(b){t?this.editor.convertImages(b,mxUtils.bind(this,function(b){d(b)})):d(b)}));else return d(q)};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(m){c(b)}}))}catch(l){c(b)}}))};EditorUi.prototype.exportImage=function(b,c,e,f,k,q,n,t,y,x,G,H,z){y=null!=y?y:"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,
-k?this.getFileData(!0,null,null,null,e,t):null,y,null==this.pages||0==this.pages.length,G)}catch(F){this.handleError(F)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,e,b||1,c,f,null,null,q,n,x,H,z)}catch(L){this.spinner.stop(),this.handleError(L)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,e,f,k,q,n){c=null!=c?c:0;e=null!=e?e:0;var d=[];try{var g=
+k?this.getFileData(!0,null,null,null,e,t):null,y,null==this.pages||0==this.pages.length,G)}catch(E){this.handleError(E)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,e,b||1,c,f,null,null,q,n,x,H,z)}catch(L){this.spinner.stop(),this.handleError(L)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,e,f,k,q,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 l=mxUtils.parseXml(b);b={};var m=this.editor.extractGraphModel(l.documentElement,null!=this.pages);if(null!=m&&"mxfile"==m.nodeName&&null!=this.pages){var p=m.getElementsByTagName("diagram");if(1==p.length&&!q){if(m=Editor.parseDiagramNode(p[0]),null!=this.currentPage&&(b[p[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",
-[1]))){var t=p[0].getAttribute("name");null!=t&&""!=t&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,t))}}else if(0<p.length){q=[];var u=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(b[p[0].getAttribute("id")]=this.pages[0].getId(),m=Editor.parseDiagramNode(p[0]),f=!1,u=1);for(;u<p.length;u++){var L=p[u].getAttribute("id");p[u].removeAttribute("id");var F=this.updatePageRoot(new DiagramPage(p[u]));b[L]=p[u].getAttribute("id");var J=this.pages.length;null==
-F.getName()&&F.setName(mxResources.get("pageWithNumber",[J+1]));g.model.execute(new ChangePage(this,F,F,J,!0));q.push(F)}this.updatePageLinks(b,q)}}if(null!=m&&"mxGraphModel"===m.nodeName&&(d=g.importGraphModel(m,c,e,f),null!=d))for(u=0;u<d.length;u++)this.updatePageLinksForCell(b,d[u]);n&&this.insertHandler(d,null,null,g.defaultVertexStyle,g.defaultEdgeStyle,!1,!0)}finally{g.model.endUpdate()}}}catch(C){if(k)throw C;this.handleError(C)}return d};EditorUi.prototype.updatePageLinks=function(b,c){for(var d=
+[1]))){var t=p[0].getAttribute("name");null!=t&&""!=t&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,t))}}else if(0<p.length){q=[];var u=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(b[p[0].getAttribute("id")]=this.pages[0].getId(),m=Editor.parseDiagramNode(p[0]),f=!1,u=1);for(;u<p.length;u++){var L=p[u].getAttribute("id");p[u].removeAttribute("id");var E=this.updatePageRoot(new DiagramPage(p[u]));b[L]=p[u].getAttribute("id");var J=this.pages.length;null==
+E.getName()&&E.setName(mxResources.get("pageWithNumber",[J+1]));g.model.execute(new ChangePage(this,E,E,J,!0));q.push(E)}this.updatePageLinks(b,q)}}if(null!=m&&"mxGraphModel"===m.nodeName&&(d=g.importGraphModel(m,c,e,f),null!=d))for(u=0;u<d.length;u++)this.updatePageLinksForCell(b,d[u]);n&&this.insertHandler(d,null,null,g.defaultVertexStyle,g.defaultEdgeStyle,!1,!0)}finally{g.model.endUpdate()}}}catch(C){if(k)throw C;this.handleError(C)}return d};EditorUi.prototype.updatePageLinks=function(b,c){for(var d=
0;d<c.length;d++)this.updatePageLinksForCell(b,c[d].root)};EditorUi.prototype.updatePageLinksForCell=function(b,c){var d=document.createElement("div"),e=this.editor.graph,g=e.getLinkForCell(c);null!=g&&e.setLinkForCell(c,this.updatePageLink(b,g));if(e.isHtmlLabel(c)){d.innerHTML=e.sanitizeHtml(e.getLabel(c));for(var f=d.getElementsByTagName("a"),k=!1,n=0;n<f.length;n++)g=f[n].getAttribute("href"),null!=g&&(f[n].setAttribute("href",this.updatePageLink(b,g)),k=!0);k&&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 g=0;g<e.actions.length;g++){var f=e.actions[g];if(null!=f.open&&Graph.isPageLink(f.open)){var k=f.open.substring(f.open.indexOf(",")+1),d=b[k];null!=d?f.open=
"data:page/id,"+d:null==this.getPageById(k)&&delete f.open}}c="data:action/json,"+JSON.stringify(e)}}catch(v){}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,k){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=
@@ -3590,196 +3588,196 @@ null!=f?f:this.maxImageSize;x=null!=x?x:this.maxImageBytes;var d=null!=c&&null!=
b,k)),null):this.importFile(b,c,e,g,f,l,k,m,p,d,H,z)}catch(la){return this.handleError(la),null}});q=null!=q?q:mxUtils.bind(this,function(b){l.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=b.length,u=p,v=[],C=mxUtils.bind(this,function(b,d){v[b]=d;if(0==--u){this.spinner.stop();if(null!=t)t(v);else{var c=[];l.getModel().beginUpdate();try{for(var e=0;e<v.length;e++){var g=v[e]();null!=g&&(c=c.concat(g))}}finally{l.getModel().endUpdate()}}q(c)}}),y=
0;y<p;y++)mxUtils.bind(this,function(d){var p=b[d];if(null!=p){var q=new FileReader;q.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 q=Graph.clipSvgDataUri(b.target.result),t=q.indexOf(","),u=decodeURIComponent(escape(atob(q.substring(t+1)))),v=mxUtils.parseXml(u),u=v.getElementsByTagName("svg");if(0<u.length){var u=u[0],z=H?null:u.getAttribute("content");null!=z&&"<"!=z.charAt(0)&&"%"!=z.charAt(0)&&(z=unescape(window.atob?
atob(z):Base64.decode(z,!0)));null!=z&&"%"==z.charAt(0)&&(z=decodeURIComponent(z));null==z||"<mxfile "!==z.substring(0,8)&&"<mxGraphModel "!==z.substring(0,14)?C(d,mxUtils.bind(this,function(){try{if(q.substring(0,t+1),null!=v){var b=v.getElementsByTagName("svg");if(0<b.length){var g=b[0],n=g.getAttribute("width"),u=g.getAttribute("height"),n=null!=n&&"%"!=n.charAt(n.length-1)?parseFloat(n):NaN,u=null!=u&&"%"!=u.charAt(u.length-1)?parseFloat(u):NaN,x=g.getAttribute("viewBox");if(null==x||0==x.length)g.setAttribute("viewBox",
-"0 0 "+n+" "+u);else if(isNaN(n)||isNaN(u)){var C=x.split(" ");3<C.length&&(n=parseFloat(C[2]),u=parseFloat(C[3]))}q=Editor.createSvgDataUri(mxUtils.getXml(g));var z=Math.min(1,Math.min(f/Math.max(1,n)),f/Math.max(1,u)),N=k(q,p.type,c+d*m,e+d*m,Math.max(1,Math.round(n*z)),Math.max(1,Math.round(u*z)),p.name);if(isNaN(n)||isNaN(u)){var y=new Image;y.onload=mxUtils.bind(this,function(){n=Math.max(1,y.width);u=Math.max(1,y.height);N[0].geometry.width=n;N[0].geometry.height=u;g.setAttribute("viewBox",
-"0 0 "+n+" "+u);q=Editor.createSvgDataUri(mxUtils.getXml(g));var b=q.indexOf(";");0<b&&(q=q.substring(0,b)+q.substring(q.indexOf(",",b+1)));l.setCellStyles("image",q,[N[0]])});y.src=Editor.createSvgDataUri(mxUtils.getXml(g))}return N}}}catch(ia){}return null})):C(d,mxUtils.bind(this,function(){return k(z,"text/xml",c+d*m,e+d*m,0,0,p.name)}))}else C(d,mxUtils.bind(this,function(){return null}))}else{u=!1;if("image/png"==p.type){var N=H?null:this.extractGraphModelFromPng(b.target.result);if(null!=N&&
-0<N.length){var y=new Image;y.src=b.target.result;C(d,mxUtils.bind(this,function(){return k(N,"text/xml",c+d*m,e+d*m,y.width,y.height,p.name)}));u=!0}}u||(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(l){this.resizeImage(l,
+"0 0 "+n+" "+u);else if(isNaN(n)||isNaN(u)){var C=x.split(" ");3<C.length&&(n=parseFloat(C[2]),u=parseFloat(C[3]))}q=Editor.createSvgDataUri(mxUtils.getXml(g));var z=Math.min(1,Math.min(f/Math.max(1,n)),f/Math.max(1,u)),M=k(q,p.type,c+d*m,e+d*m,Math.max(1,Math.round(n*z)),Math.max(1,Math.round(u*z)),p.name);if(isNaN(n)||isNaN(u)){var y=new Image;y.onload=mxUtils.bind(this,function(){n=Math.max(1,y.width);u=Math.max(1,y.height);M[0].geometry.width=n;M[0].geometry.height=u;g.setAttribute("viewBox",
+"0 0 "+n+" "+u);q=Editor.createSvgDataUri(mxUtils.getXml(g));var b=q.indexOf(";");0<b&&(q=q.substring(0,b)+q.substring(q.indexOf(",",b+1)));l.setCellStyles("image",q,[M[0]])});y.src=Editor.createSvgDataUri(mxUtils.getXml(g))}return M}}}catch(ia){}return null})):C(d,mxUtils.bind(this,function(){return k(z,"text/xml",c+d*m,e+d*m,0,0,p.name)}))}else C(d,mxUtils.bind(this,function(){return null}))}else{u=!1;if("image/png"==p.type){var M=H?null:this.extractGraphModelFromPng(b.target.result);if(null!=M&&
+0<M.length){var y=new Image;y.src=b.target.result;C(d,mxUtils.bind(this,function(){return k(M,"text/xml",c+d*m,e+d*m,y.width,y.height,p.name)}));u=!0}}u||(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(l){this.resizeImage(l,
b.target.result,mxUtils.bind(this,function(b,l,q){C(d,mxUtils.bind(this,function(){if(null!=b&&b.length<x){var n=g&&this.isResampleImageSize(p.size,G)?Math.min(1,Math.min(f/l,f/q)):1;return k(b,p.type,c+d*m,e+d*m,Math.round(l*n),Math.round(q*n),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 q=b.target.result,k(q,p.type,c+d*m,e+d*m,240,160,p.name,
function(b){C(d,function(){return b})},p)});/(\.v(dx|sdx?))($|\?)/i.test(p.name)||/(\.vs(x|sx?))($|\?)/i.test(p.name)?k(null,p.type,c+d*m,e+d*m,240,160,p.name,function(b){C(d,function(){return b})},p):"image"==p.type.substring(0,5)||"application/pdf"==p.type?q.readAsDataURL(p):q.readAsText(p)}})(y)});if(l){l=[];for(p=0;p<b.length;p++)l.push(b[p]);b=l;this.confirmImageResize(function(b){g=b;u()},y)}else u()};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,g=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){g(b,!0)},function(b){g(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):g(!1,e)};EditorUi.prototype.parseFile=function(b,c,e){e=null!=e?e:b.name;var d=new FormData;d.append("format","xml");d.append("upfile",b,e);var g=new XMLHttpRequest;g.open("POST",OPEN_URL);g.onreadystatechange=function(){c(g)};g.send(d);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+b.size})}catch(q){}};EditorUi.prototype.isResampleImageSize=function(b,
c){c=null!=c?c:this.resampleThreshold;return b>c};EditorUi.prototype.resizeImage=function(b,c,e,f,k,q,n){k=null!=k?k:this.maxImageSize;var d=Math.max(1,b.width),g=Math.max(1,b.height);if(f&&this.isResampleImageSize(null!=n?n:c.length,q))try{var l=Math.max(d/k,g/k);if(1<l){var m=Math.round(d/l),p=Math.round(g/l),t=document.createElement("canvas");t.width=m;t.height=p;t.getContext("2d").drawImage(b,0,0,m,p);var u=t.toDataURL();if(u.length<c.length){var L=document.createElement("canvas");L.width=m;L.height=
-p;var F=L.toDataURL();u!==F&&(c=u,d=m,g=p)}}}catch(J){}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(p){if(null!=e)e(p);else throw p;}};var f=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&
+p;var E=L.toDataURL();u!==E&&(c=u,d=m,g=p)}}}catch(J){}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(p){if(null!=e)e(p);else throw p;}};var f=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:"0"!=urlParams.rough),this.formatWidth=mxSettings.getFormatWidth());var b=this,c=this.editor.graph;Editor.isDarkMode()&&(c.view.defaultGridColor=mxGraphView.prototype.defaultDarkGridColor);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,l,k){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=l,m.height=k,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,l,k){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,
l),m.height=Math.max(m.height,k),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 l=c.getCellStyle(d);"1"==mxUtils.getValue(l,"metaEdit","0")?b.showDataDialog(d):e.apply(this,arguments)}}catch(aa){b.handleError(aa)}};c.getLinkTitle=function(d){return b.getLinkTitle(d)};c.customLinkClicked=function(d){var c=!1;try{b.handleCustomLink(d),c=!0}catch(K){b.handleError(K)}return c};var k=c.parseBackgroundImage;c.parseBackgroundImage=function(b){var d=k.apply(this,arguments);null!=d&&null!=d.src&&Graph.isPageLink(d.src)&&(d={originalSrc:d.src});
+null!=f)this.editMermaidData(d,g,f);else{var l=c.getCellStyle(d);"1"==mxUtils.getValue(l,"metaEdit","0")?b.showDataDialog(d):e.apply(this,arguments)}}catch(Z){b.handleError(Z)}};c.getLinkTitle=function(d){return b.getLinkTitle(d)};c.customLinkClicked=function(d){var c=!1;try{b.handleCustomLink(d),c=!0}catch(K){b.handleError(K)}return c};var k=c.parseBackgroundImage;c.parseBackgroundImage=function(b){var d=k.apply(this,arguments);null!=d&&null!=d.src&&Graph.isPageLink(d.src)&&(d={originalSrc:d.src});
return d};var p=c.setBackgroundImage;c.setBackgroundImage=function(d){null!=d&&null!=d.originalSrc&&(d=b.createImageForPageLink(d.originalSrc,b.currentPage,this));p.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]){c.refreshBackgroundImage();break}}}));var q=c.getBackgroundImageObject;c.getBackgroundImageObject=function(d,c){var e=q.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;this.stylesheet=this.getDefaultStylesheet();
-e=b.createImageForPageLink(e.originalSrc);this.stylesheet=g}return e};var n=this.clearDefaultStyle;this.clearDefaultStyle=function(){n.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 t=b.editor.getEditBlankUrl;
-this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1");return t.apply(this,arguments)};var y=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)};y.call(this,b,d,e)};f.apply(this,arguments);
-mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var x=Menus.prototype.addPopupMenuEditItems;this.menus.addPopupMenuEditItems=function(d,c,e){b.editor.graph.isSelectionEmpty()?x.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?450:370,!0,!0)};this.defaultFilename=
-mxResources.get("untitledDiagram");var G=c.getExportVariables;c.getExportVariables=function(){var d=G.apply(this,arguments),c=b.getCurrentFile();null!=c&&(d.filename=c.getTitle());d.pagecount=null!=b.pages?b.pages.length:1;d.page=null!=b.currentPage?b.currentPage.getName():"";d.pagenumber=null!=b.pages&&null!=b.currentPage?mxUtils.indexOf(b.pages,b.currentPage)+1:1;return d};var H=c.getGlobalVariable;c.getGlobalVariable=function(d){var c=b.getCurrentFile();return"filename"==d&&null!=c?c.getTitle():
-"page"==d&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==d?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:"pagecount"==d?null!=b.pages?b.pages.length:1:H.apply(this,arguments)};var z=c.labelLinkClicked;c.labelLinkClicked=function(b,d,e){var g=d.getAttribute("href");if(null==g||!c.isCustomLink(g)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))z.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))c.customLinkClicked(g),c.getRubberband().reset();
-mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var d=b.defaultFilename,c=b.getCurrentFile();null!=c&&(d=null!=c.getTitle()?c.getTitle():d);return d};var D=this.actions.get("print");D.setEnabled(!mxClient.IS_IOS||!navigator.standalone);D.visible=D.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,!0,"findReplace"),this.keyHandler.bindAction(67,!0,"copyStyle",!0),this.keyHandler.bindAction(86,!0,"pasteStyle",!0),this.keyHandler.bindAction(77,
-!0,"editGeometry",!0),this.keyHandler.bindAction(88,!0,"insertText",!0),this.keyHandler.bindAction(75,!0,"insertRectangle"),this.keyHandler.bindAction(75,!0,"insertEllipse",!0),this.altShiftActions[83]="synchronize",this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(null,null,24);Graph.fileSupport&&c.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(b){var d=c.cellEditor.text2,e=null;null!=d&&(mxEvent.addListener(d,"dragleave",function(b){null!=
-e&&(e.parentNode.removeChild(e),e=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(b){null==e&&(!mxClient.IS_IE||10<document.documentMode)&&(e=this.highlightElement(d));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(d,"drop",mxUtils.bind(this,function(b){null!=e&&(e.parentNode.removeChild(e),e=null);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,function(b,d,e,g,f,l){c.insertImage(b,
-f,l)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()},mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var d=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(d)?this.loadImage(decodeURIComponent(d),mxUtils.bind(this,function(b){var e=Math.max(1,b.width);b=Math.max(1,b.height);var g=this.maxImageSize,g=Math.min(1,Math.min(g/Math.max(1,e)),g/Math.max(1,b));c.insertImage(decodeURIComponent(d),
-e*g,b*g)})):document.execCommand("insertHTML",!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()&&(D=this.editor.graph.view,D.setUnit(mxSettings.getUnit()),D.addListener("unitChanged",
-function(b,d){mxSettings.setUnit(d.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,D.unit),this.refresh());if("1"==urlParams.styledev){D=document.getElementById("geFooter");null!=D&&(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)})),D.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(b,d){if(0<this.editor.graph.getSelectionCount()){var c=
-this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var L=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==this.styleInput?!0:L.apply(this,arguments)}}D=document.getElementById("geInfo");null!=D&&D.parentNode.removeChild(D);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var F=null;mxEvent.addListener(c.container,
-"dragleave",function(b){c.isEnabled()&&(null!=F&&(F.parentNode.removeChild(F),F=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(b){null==F&&(!mxClient.IS_IE||10<document.documentMode)&&(F=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!=F&&(F.parentNode.removeChild(F),F=null);if(c.isEnabled()){var d=
-mxUtils.convertPoint(c.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),e=c.view.translate,g=c.view.scale,f=d.x/g-e.x,l=d.y/g-e.y;if(0<b.dataTransfer.files.length)mxEvent.isShiftDown(b)?this.openFiles(b.dataTransfer.files,!0):(mxEvent.isAltDown(b)&&(l=f=null),this.importFiles(b.dataTransfer.files,f,l,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b),b));else{mxEvent.isAltDown(b)&&(l=f=0);var k=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?
-b.dataTransfer.getData("text/uri-list"):null,d=this.extractGraphModelFromEvent(b,null!=this.pages);if(null!=d)c.setSelectionCells(this.importXml(d,f,l,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){var m=b.dataTransfer.getData("text/html"),d=document.createElement("div");d.innerHTML=c.sanitizeHtml(m);var p=null,e=d.getElementsByTagName("img");null!=e&&1==e.length?(m=e[0].getAttribute("src"),null==m&&(m=e[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)||(p=
-!0)):(e=d.getElementsByTagName("a"),null!=e&&1==e.length?m=e[0].getAttribute("href"):(d=d.getElementsByTagName("pre"),null!=d&&1==d.length&&(m=mxUtils.getTextContent(d[0]))));var q=!0,n=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(m,f,l,!0,p,null,q,mxEvent.isControlDown(b)))});p&&null!=m&&m.length>this.resampleThreshold?this.confirmImageResize(function(b){q=b;n()},mxEvent.isControlDown(b)):n()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),
-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,"",f,l,d*e,b*e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+k+";"))}),mxUtils.bind(this,function(b){c.setSelectionCells(this.insertTextAt(k,f,l,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&c.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),
-f,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,g=0;g<c.types.length;g++)if("text/"===c.types[g].substring(0,5)){e=!0;break}if(!e){var f=
-c.items;for(index in f){var k=f[index];if("file"===k.kind){if(b.isEditing())this.importFiles([k.getAsFile()],0,0,this.maxImageSize,function(d,c,e,g,f,l){b.insertImage(d,f,l)},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([k.getAsFile()],n.x,n.y,this.maxImageSize);mxEvent.consume(d)}break}}}}catch(y){}}),!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","false");e.style.textRendering="optimizeSpeed";e.style.fontFamily="monospace";e.style.wordBreak="break-all";e.style.background="transparent";e.style.color="transparent";e.style.position="absolute";e.style.whiteSpace="nowrap";e.style.overflow=
-"hidden";e.style.display="block";e.style.fontSize="1";e.style.zIndex="-1";e.style.resize="none";e.style.outline="none";e.style.width="1px";e.style.height="1px";mxUtils.setOpacity(e,0);e.contentEditable=!0;e.innerHTML="&nbsp;";var f=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var d=mxEvent.getSource(b);null==c.container||!c.isEnabled()||c.isMouseDown||
-c.isEditing()||null!=this.dialog||"INPUT"==d.nodeName||"TEXTAREA"==d.nodeName||224!=b.keyCode&&(mxClient.IS_MAC||17!=b.keyCode)&&(!mxClient.IS_MAC||91!=b.keyCode&&93!=b.keyCode)||f||(e.style.left=c.container.scrollLeft+10+"px",e.style.top=c.container.scrollTop+10+"px",c.container.appendChild(e),f=!0,e.focus(),document.execCommand("selectAll",!1,null))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var d=b.keyCode;window.setTimeout(mxUtils.bind(this,function(){!f||224!=d&&17!=
-d&&91!=d&&93!=d||(f=!1,c.isEditing()||null!=this.dialog||null==c.container||c.container.focus(),e.parentNode.removeChild(e),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(e,"copy",mxUtils.bind(this,function(d){if(c.isEnabled())try{mxClipboard.copy(c),this.copyCells(e),b()}catch(u){this.handleError(u)}}));mxEvent.addListener(e,"cut",mxUtils.bind(this,function(d){if(c.isEnabled())try{mxClipboard.copy(c),this.copyCells(e,!0),b()}catch(u){this.handleError(u)}}));mxEvent.addListener(e,
-"paste",mxUtils.bind(this,function(b){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&(e.innerHTML="&nbsp;",e.focus(),null!=b.clipboardData&&this.pasteCells(b,e,!0,!0),mxEvent.isConsumed(b)||window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,e,!1,!0)}),0))}),!0);var k=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==e?!0:k.apply(this,arguments)}};EditorUi.prototype.setSketchMode=function(b){this.spinner.spin(document.body,mxResources.get("working")+
-"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetSketchMode(b);null==urlParams.rough&&(mxSettings.settings.sketchMode=b,mxSettings.save());this.fireEvent(new mxEventObject("sketchModeChanged"))}),0)};EditorUi.prototype.setPagesVisible=function(b){Editor.pagesVisible!=b&&(Editor.pagesVisible=b,mxSettings.settings.pagesVisible=b,mxSettings.save(),this.fireEvent(new mxEventObject("pagesVisibleChanged")))};EditorUi.prototype.setInlineFullscreen=function(b){Editor.inlineFullscreen!=
-b&&(Editor.inlineFullscreen=b,this.fireEvent(new mxEventObject("inlineFullscreenChanged")),(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:this.diagramContainer.getBoundingClientRect()}),"*"),window.setTimeout(mxUtils.bind(this,function(){this.refresh();this.actions.get("resetView").funct()}),10))};EditorUi.prototype.doSetSketchMode=function(b){if(Editor.sketchMode!=b){var d=function(b,d,c){null==b[d]&&(b[d]=c)},c=this.editor.graph;
-Editor.sketchMode=b;this.menus.defaultFonts=Menus.prototype.defaultFonts;this.menus.defaultFontSize=b?20:16;c.defaultVertexStyle=mxUtils.clone(Graph.prototype.defaultVertexStyle);d(c.defaultVertexStyle,"fontSize",this.menus.defaultFontSize);c.defaultEdgeStyle=mxUtils.clone(Graph.prototype.defaultEdgeStyle);d(c.defaultEdgeStyle,"fontSize",this.menus.defaultFontSize-4);d(c.defaultEdgeStyle,"edgeStyle","none");d(c.defaultEdgeStyle,"rounded","0");d(c.defaultEdgeStyle,"curved","1");d(c.defaultEdgeStyle,
-"jettySize","auto");d(c.defaultEdgeStyle,"orthogonalLoop","1");d(c.defaultEdgeStyle,"endArrow","open");d(c.defaultEdgeStyle,"endSize","14");d(c.defaultEdgeStyle,"startSize","14");b&&(d(c.defaultVertexStyle,"fontFamily",Editor.sketchFontFamily),d(c.defaultVertexStyle,"fontSource",Editor.sketchFontSource),d(c.defaultVertexStyle,"hachureGap","4"),d(c.defaultVertexStyle,"sketch","1"),d(c.defaultEdgeStyle,"fontFamily",Editor.sketchFontFamily),d(c.defaultEdgeStyle,"fontSource",Editor.sketchFontSource),
-d(c.defaultEdgeStyle,"sketch","1"),d(c.defaultEdgeStyle,"hachureGap","4"),d(c.defaultEdgeStyle,"sourcePerimeterSpacing","8"),d(c.defaultEdgeStyle,"targetPerimeterSpacing","8"),this.menus.defaultFonts=[{fontFamily:Editor.sketchFontFamily,fontUrl:decodeURIComponent(Editor.sketchFontSource)},{fontFamily:"Rock Salt",fontUrl:"https://fonts.googleapis.com/css?family=Rock+Salt"},{fontFamily:"Permanent Marker",fontUrl:"https://fonts.googleapis.com/css?family=Permanent+Marker"}].concat(this.menus.defaultFonts));
-c.currentVertexStyle=mxUtils.clone(c.defaultVertexStyle);c.currentEdgeStyle=mxUtils.clone(c.defaultEdgeStyle);this.clearDefaultStyle()}};EditorUi.prototype.getLinkTitle=function(b){var d=Graph.prototype.getLinkTitle.apply(this,arguments);if(Graph.isPageLink(b)){var c=b.indexOf(",");0<c&&(d=this.getPageById(b.substring(c+1)),d=null!=d?d.getName():mxResources.get("pageNotFound"))}else"data:"==b.substring(0,5)&&(d=mxResources.get("action"));return d};EditorUi.prototype.handleCustomLink=function(b){if(Graph.isPageLink(b)){var d=
-b.indexOf(",");if(b=this.getPageById(b.substring(d+1)))this.selectPage(b);else throw Error(mxResources.get("pageNotFound")||"Page not found");}else this.editor.graph.handleCustomLink(b)};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){Editor.pagesVisible=mxSettings.settings.pagesVisible;ColorDialog.recentColors=mxSettings.getRecentColors();
-if(isLocalStorage)try{window.addEventListener("storage",mxUtils.bind(this,function(b){b.key==mxSettings.key&&(mxSettings.load(),ColorDialog.recentColors=mxSettings.getRecentColors(),this.menus.customFonts=mxSettings.getCustomFonts())}),!1)}catch(d){}this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]));this.menus.customFonts=mxSettings.getCustomFonts();this.addListener("customFontsChanged",mxUtils.bind(this,function(b,c){if("1"!=urlParams["ext-fonts"])mxSettings.setCustomFonts(this.menus.customFonts);
-else{var d=c.getProperty("customFonts");this.menus.customFonts=d;mxSettings.setCustomFonts(d)}mxSettings.save()}));this.editor.graph.connectionHandler.setCreateTarget(mxSettings.isCreateTarget());this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyConnectChanged",mxUtils.bind(this,function(b,c){mxSettings.setCreateTarget(this.editor.graph.connectionHandler.isCreateTarget());mxSettings.save()}));this.editor.graph.pageFormat=null!=this.editor.graph.defaultPageFormat?this.editor.graph.defaultPageFormat:
-mxSettings.getPageFormat();this.addListener("pageFormatChanged",mxUtils.bind(this,function(b,c){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor(Editor.isDarkMode());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(y){this.handleError(y)}}),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(m){this.handleError(m)}};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())),g=mxUtils.getXml(d.encodeCells(e));mxUtils.setTextContent(b,encodeURIComponent(g));c?(d.removeCells(e,!1),d.lastPasteXml=null):(d.lastPasteXml=
-g,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 m=decodeURIComponent(k);this.isCompatibleString(m)&&(l=!0,k=m)}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 n=g.lastIndexOf("%3E");0<=n&&n<
-g.length-3&&(g=g.substring(0,n+3))}catch(H){}try{k=d.getElementsByTagName("span"),m=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(g),this.isCompatibleString(m)&&(l=!0,g=m)}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&&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.isOffline()&&this.isRemoteFileFormat(c)?(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(),null,!0)})):/^https?:\/\//.test(c)&&(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(c):window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+
-encodeURIComponent(c)))))}else this.openLocalFile(c,null,!0)}b.stopPropagation();b.preventDefault()}))};EditorUi.prototype.highlightElement=function(b){var d=0,c=0,e,f;if(null==b){f=document.body;var k=document.documentElement;e=(f.clientWidth||k.clientWidth)-3;f=Math.max(f.clientHeight||0,k.clientHeight)-3}else d=b.offsetTop,c=b.offsetLeft,e=b.clientWidth,f=b.clientHeight;k=document.createElement("div");k.style.zIndex=mxPopupMenu.prototype.zIndex+2;k.style.border="3px dotted rgb(254, 137, 12)";k.style.pointerEvents=
-"none";k.style.position="absolute";k.style.top=d+"px";k.style.left=c+"px";k.style.width=Math.max(0,e-3)+"px";k.style.height=Math.max(0,f-3)+"px";null!=b&&b.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(k):document.body.appendChild(k);return k};EditorUi.prototype.stringToCells=function(b){b=mxUtils.parseXml(b);var d=this.editor.extractGraphModel(b.documentElement);b=[];if(null!=d){var c=new mxCodec(d.ownerDocument),e=new mxGraphModel;c.decode(d,e);d=e.getChildAt(e.getRoot(),
-0);for(c=0;c<e.getChildCount(d);c++)b.push(e.getChildAt(d,c))}return b};EditorUi.prototype.openFileHandle=function(b,c,e,f,k){if(null!=c&&0<c.length){!this.useCanvasForExport&&/(\.png)$/i.test(c)?c=c.substring(0,c.length-4)+".drawio":/(\.pdf)$/i.test(c)&&(c=c.substring(0,c.length-4)+".drawio");var d=mxUtils.bind(this,function(b){c=0<=c.lastIndexOf(".")?c.substring(0,c.lastIndexOf("."))+".drawio":c+".drawio";if("<mxlibrary"==b.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,
-this.defaultFilename,f);try{this.loadLibrary(new LocalLibrary(this,b,c))}catch(y){this.handleError(y,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(b,c,f)});if(/(\.v(dx|sdx?))($|\?)/i.test(c)||/(\.vs(x|sx?))($|\?)/i.test(c))this.importVisio(e,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}));else if(/(\.*<graphml )/.test(b))this.importGraphML(b,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&
-this.isRemoteFileFormat(b,c))this.parseFile(e,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?d(b.responseText):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(b))/(\.json)$/i.test(c)&&(c=c.substring(0,c.length-5)+".drawio"),this.convertLucidChart(b,mxUtils.bind(this,function(b){this.spinner.stop();this.openLocalFile(b,c,f)}),mxUtils.bind(this,
-function(b){this.spinner.stop();this.handleError(b)}));else if("<mxlibrary"==b.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,f);try{this.loadLibrary(new LocalLibrary(this,b,e.name))}catch(v){this.handleError(v,mxResources.get("errorLoadingFile"))}}else if(0==b.indexOf("PK"))this.importZipFile(e,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}),mxUtils.bind(this,function(){this.spinner.stop();
-this.openLocalFile(b,c,f)}));else{if("image/png"==e.type.substring(0,9))b=this.extractGraphModelFromPng(b);else if("application/pdf"==e.type){var g=Editor.extractGraphModelFromPdf(b);null!=g&&(k=null,f=!0,b=g)}this.spinner.stop();this.openLocalFile(b,c,f,k,null!=k?e:null)}}};EditorUi.prototype.openFiles=function(b,c){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var d=0;d<b.length;d++)mxUtils.bind(this,function(b){var d=new FileReader;d.onload=mxUtils.bind(this,function(d){try{this.openFileHandle(d.target.result,
-b.name,b,c)}catch(u){this.handleError(u)}});d.onerror=mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b);window.openFile=null});"image"!==b.type.substring(0,5)&&"application/pdf"!==b.type||"image/svg"===b.type.substring(0,9)?d.readAsText(b):d.readAsDataURL(b)})(b[d])};EditorUi.prototype.openLocalFile=function(b,c,e,f,k){var d=this.getCurrentFile(),g=mxUtils.bind(this,function(){window.openFile=null;if(null==c&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var d=mxUtils.parseXml(b);
-null!=d&&(this.editor.setGraphXml(d.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,b,c||this.defaultFilename,e,f,k))});if(null!=b&&0<b.length)null==d||!d.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=f)?g():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=f)&&null!=d&&d.isModified()?this.confirm(mxResources.get("allChangesLost"),null,g,mxResources.get("cancel"),mxResources.get("discardChanges")):(window.openFile=new OpenFile(function(){window.openFile=
-null}),window.openFile.setData(b,c),window.openWindow(this.getUrl(),null,mxUtils.bind(this,function(){null!=d&&d.isModified()?this.confirm(mxResources.get("allChangesLost"),null,g,mxResources.get("cancel"),mxResources.get("discardChanges")):g()})));else throw Error(mxResources.get("notADiagramFile"));};EditorUi.prototype.getBasenames=function(){var b={};if(null!=this.pages)for(var c=0;c<this.pages.length;c++)this.updatePageRoot(this.pages[c]),this.addBasenamesForCell(this.pages[c].root,b);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),
-b);var c=[],e;for(e in b)c.push(e);return c};EditorUi.prototype.addBasenamesForCell=function(b,c){function d(b){if(null!=b){var d=b.lastIndexOf(".");0<d&&(b=b.substring(d+1,b.length));null==c[b]&&(c[b]=!0)}}var e=this.editor.graph,g=e.getCellStyle(b);d(mxStencilRegistry.getBasenameForStencil(g[mxConstants.STYLE_SHAPE]));e.model.isEdge(b)&&(d(mxMarker.getPackageForType(g[mxConstants.STYLE_STARTARROW])),d(mxMarker.getPackageForType(g[mxConstants.STYLE_ENDARROW])));for(var g=e.model.getChildCount(b),
-f=0;f<g;f++)this.addBasenamesForCell(e.model.getChildAt(b,f),c)};EditorUi.prototype.setGraphEnabled=function(b){this.diagramContainer.style.visibility=b?"":"hidden";this.formatContainer.style.visibility=b?"":"hidden";this.sidebarFooterContainer.style.display=b?"":"none";this.sidebarContainer.style.display=b?"":"none";this.hsplit.style.display=b?"":"none";this.editor.graph.setEnabled(b);null!=this.ruler&&(this.ruler.hRuler.container.style.visibility=b?"":"hidden",this.ruler.vRuler.container.style.visibility=
-b?"":"hidden");null!=this.tabContainer&&(this.tabContainer.style.visibility=b?"":"hidden");b||(null!=this.actions.outlineWindow&&this.actions.outlineWindow.window.setVisible(!1),null!=this.actions.layersWindow&&this.actions.layersWindow.window.setVisible(!1),null!=this.menus.tagsWindow&&this.menus.tagsWindow.window.setVisible(!1),null!=this.menus.findWindow&&this.menus.findWindow.window.setVisible(!1),null!=this.menus.findReplaceWindow&&this.menus.findReplaceWindow.window.setVisible(!1))};EditorUi.prototype.initializeEmbedMode=
-function(){this.setGraphEnabled(!1);if((window.opener||window.parent)!=window&&("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))){var b=!1;this.installMessageHandler(mxUtils.bind(this,function(d,c,e,f){b||(b=!0,this.spinner.stop(),this.addEmbedButtons(),this.setGraphEnabled(!0));if(null==d||0==d.length)d=this.emptyDiagramXml;this.setCurrentFile(new EmbedFile(this,d,{}));this.mode=App.MODE_EMBED;this.setFileData(d);if(f)try{var g=this.editor.graph;g.setGridEnabled(!1);
-g.pageVisible=!1;var k=g.model.cells,l;for(l in k){var m=k[l];null!=m&&null!=m.style&&(m.style+=";sketch=1;"+(-1==m.style.indexOf("fontFamily=")||-1<m.style.indexOf("fontFamily=Helvetica;")?"fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;":""))}}catch(x){console.log(x)}this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&this.lightboxFit():this.showLayersDialog();this.chromelessResize&&this.chromelessResize();this.editor.undoManager.clear();
-this.editor.modified=null!=e?e:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))}};EditorUi.prototype.showLayersDialog=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 d=this.editor.graph;return{event:b,pageVisible:d.pageVisible,translate:d.view.translate,bounds:d.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:d.view.scale,page:d.view.getBackgroundPageBounds()}};EditorUi.prototype.sendEmbeddedSvgExport=function(b){var d=this.editor.graph;d.isEditing()&&d.stopEditing(!d.isInvokesStopCellEditing());var c=window.opener||window.parent;if(this.editor.modified){var e=d.background;if(null==e||e==mxConstants.NONE)e=this.embedExportBackground;
-this.getEmbeddedSvg(this.getFileData(!0,null,null,null,null,null,null,null,null,!1),d,null,!0,mxUtils.bind(this,function(d){c.postMessage(JSON.stringify({event:"export",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,k=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,k);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(ra){}return b});if("json"==urlParams.proto){var p=
-!1;try{k=JSON.parse(k)}catch(ka){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(ka){n.postMessage(JSON.stringify({event:"draft",error:ka.toString(),message:k}),"*")}return}if("template"==k.action){this.spinner.stop();var u=1==k.enableRecent,v=1==k.enableSearch,C=1==k.enableCustomTemp;if("1"==urlParams.newTempDlg&&!k.templatesOnly&&null!=k.callback){var y=this.getCurrentUser(),M=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!=y?y.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,C?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",
-null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(M.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}q=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,C?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 aa=this.getDiagramTextContent();n.postMessage(JSON.stringify({event:"textContent",data:aa,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 N=null!=k.messageKey?mxResources.get(k.messageKey):k.message;null==k.show||k.show?this.spinner.spin(document.body,N):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 O=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var U=this.editor.graph,E=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=O;n.postMessage(JSON.stringify(d),"*")}),I=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&
-(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(O)));U!=this.editor.graph&&U.container.parentNode.removeChild(U.container);E(b)}),A=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var Y=mxUtils.bind(this,function(){if(null!=this.pages&&this.currentPage.getId()!=A){var b=U.getGlobalVariable;U=this.createTemporaryGraph(U.getStylesheet());for(var d,c=0;c<this.pages.length;c++)if(this.pages[c].getId()==A){d=
-this.updatePageRoot(this.pages[c]);break}null==d&&(d=this.currentPage);U.getGlobalVariable=function(c){return"page"==c?d.getName():"pagenumber"==c?1:b.apply(this,arguments)};document.body.appendChild(U.container);U.model.setRoot(d.root)}if(null!=k.layerIds){for(var e=U.model,g=e.getChildCells(e.getRoot()),f={},c=0;c<k.layerIds.length;c++)f[k.layerIds[c]]=!0;for(c=0;c<g.length;c++)e.setVisible(g[c],f[g[c].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){I(b.toDataURL("image/png"))}),
-k.width,null,k.background,mxUtils.bind(this,function(){I(null)}),null,null,k.scale,k.transparent,k.shadow,null,U,k.border,null,k.grid,k.keepTheme)});null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(O),c=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(Y)},0):Y()):Y()}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==k.format?"1":"0")+(null!=A?"&pageId="+A:"")+(null!=k.layerIds&&0<k.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):
-"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(O))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?E("data:image/png;base64,"+b.getText()):I(null)}),mxUtils.bind(this,function(){I(null)}))}}else Y=mxUtils.bind(this,function(){var b=this.createLoadMessage("export");b.message=k;if("html2"==k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var d=this.getXmlFileData();b.xml=mxUtils.getXml(d);b.data=this.getFileData(null,
-null,!0,null,null,null,d);b.format=k.format}else if("html"==k.format)d=this.editor.getGraphXml(),b.data=this.getHtml(d,this.editor.graph),b.xml=mxUtils.getXml(d),b.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;d=null!=k.background?k.background:this.editor.graph.background;d==mxConstants.NONE&&(d=null);b.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);b.format="svg";var c=mxUtils.bind(this,function(d){this.editor.graph.setEnabled(!0);this.spinner.stop();b.data=Editor.createSvgDataUri(d);
-n.postMessage(JSON.stringify(b),"*")});if("xmlsvg"==k.format)(null==k.spin&&null==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(Y)},
-0):Y()):Y();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 S=Editor.sketchMode;this.doSetSketchMode(k.rough);S!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=k.dark&&(S=Editor.darkMode,
-this.doSetDarkMode(k.dark),S!=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 Q=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*Q);b.maxFitScale=d;b.container.scrollTop-=2*Q;b.container.scrollLeft-=2*Q;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(ka){}k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):null!=k.descriptor?k.descriptor:k.xml}else{if("merge"==k.action){var V=this.getCurrentFile();null!=V&&(t=m(k.xml),null!=t&&""!=t&&V.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(ka){this.handleError(ka)}}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())}),fa=mxUtils.bind(this,function(g,k){c=!0;try{b(g,k,null,p)}catch(ja){this.handleError(ja)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");f=na();e&&null==d&&(d=mxUtils.bind(this,function(b,d){var e=na();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&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(k,"")?this.parseFile(new Blob([k],
-{type:"application/octet-stream"}),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(na(),
-g)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var n=window.opener||window.parent,k="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMessage(k,"*");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(),g=0;g<b.length;g++){var f=new window[b[g].layout](d);if(null!=b[g].config)for(var k in b[g].config)f[k]=b[g].config[k];this.executeLayout(function(){f.execute(d.getDefaultParent(),
-0==e.length?null:e)},g==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],g=[],f=[],k={};if(0<d.length){var n={},t=null,x=null,G=null,H=null,z=null,D=null,L="whiteSpace=wrap;html=1;",F=null,J=null,C="",K="auto",M="auto",aa=null,N=null,O=40,U=40,E=100,I=0,A=this.editor.graph;A.getGraphBounds();for(var Y=function(){null!=c?c(pa):(A.setSelectionCells(pa),A.scrollCellToVisible(A.getSelectionCell()))},S=A.getFreeInsertPoint(),Q=S.x,V=S.y,S=V,na=null,fa="auto",J=null,
-ka=[],ra=null,la=null,ja=0;ja<d.length&&"#"==d[ja].charAt(0);){b=d[ja];for(ja++;ja<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[ja].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[ja].substring(1)),ja++;if("#"!=b.charAt(1)){var ba=b.indexOf(":");if(0<ba){var ca=mxUtils.trim(b.substring(1,ba)),R=mxUtils.trim(b.substring(ba+1));"label"==ca?na=A.sanitizeHtml(R):"labelname"==ca&&0<R.length&&"-"!=R?z=R:"labels"==ca&&0<R.length&&"-"!=R?D=JSON.parse(R):"style"==ca?x=R:"parentstyle"==ca?L=R:"stylename"==
-ca&&0<R.length&&"-"!=R?H=R:"styles"==ca&&0<R.length&&"-"!=R?G=JSON.parse(R):"vars"==ca&&0<R.length&&"-"!=R?t=JSON.parse(R):"identity"==ca&&0<R.length&&"-"!=R?F=R:"parent"==ca&&0<R.length&&"-"!=R?J=R:"namespace"==ca&&0<R.length&&"-"!=R?C=R:"width"==ca?K=R:"height"==ca?M=R:"left"==ca&&0<R.length?aa=R:"top"==ca&&0<R.length?N=R:"ignore"==ca?la=R.split(","):"connect"==ca?ka.push(JSON.parse(R)):"link"==ca?ra=R:"padding"==ca?I=parseFloat(R):"edgespacing"==ca?O=parseFloat(R):"nodespacing"==ca?U=parseFloat(R):
-"levelspacing"==ca?E=parseFloat(R):"layout"==ca&&(fa=R)}}}if(null==d[ja])throw Error(mxResources.get("invalidOrMissingFile"));for(var sa=this.editor.csvToArray(d[ja]),ca=ba=null,R=[],W=0;W<sa.length;W++)F==sa[W]&&(ba=W),J==sa[W]&&(ca=W),R.push(mxUtils.trim(sa[W]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==na&&(na="%"+R[0]+"%");if(null!=ka)for(var X=0;X<ka.length;X++)null==n[ka[X].to]&&(n[ka[X].to]={});F=[];for(W=ja+1;W<d.length;W++){var ma=this.editor.csvToArray(d[W]);
-if(null==ma){var qa=40<d[W].length?d[W].substring(0,40)+"...":d[W];throw Error(qa+" ("+W+"):\n"+mxResources.get("containsValidationErrors"));}0<ma.length&&F.push(ma)}A.model.beginUpdate();try{for(W=0;W<F.length;W++){var ma=F[W],T=null,ia=null!=ba?C+ma[ba]:null;null!=ia&&(T=A.model.getCell(ia));var d=null!=T,da=new mxCell(na,new mxGeometry(Q,S,0,0),x||"whiteSpace=wrap;html=1;");da.vertex=!0;da.id=ia;for(var oa=0;oa<ma.length;oa++)A.setAttributeForCell(da,R[oa],ma[oa]);if(null!=z&&null!=D){var ha=D[da.getAttribute(z)];
-null!=ha&&A.labelChanged(da,ha)}if(null!=H&&null!=G){var ua=G[da.getAttribute(H)];null!=ua&&(da.style=ua)}A.setAttributeForCell(da,"placeholders","1");da.style=A.replacePlaceholders(da,da.style,t);d?(A.model.setValue(T,da.value),A.model.setStyle(T,da.style),0>mxUtils.indexOf(f,T)&&f.push(T),A.fireEvent(new mxEventObject("cellsInserted","cells",[T]))):A.fireEvent(new mxEventObject("cellsInserted","cells",[da]));T=da;if(!d)for(X=0;X<ka.length;X++)n[ka[X].to][T.getAttribute(ka[X].to)]=T;null!=ra&&"link"!=
-ra&&(A.setLinkForCell(T,T.getAttribute(ra)),A.setAttributeForCell(T,ra,null));var P=this.editor.graph.getPreferredSizeForCell(T),J=null!=ca?A.model.getCell(C+ma[ca]):null;if(T.vertex){qa=null!=J?0:Q;ja=null!=J?0:V;null!=aa&&null!=T.getAttribute(aa)&&(T.geometry.x=qa+parseFloat(T.getAttribute(aa)));null!=N&&null!=T.getAttribute(N)&&(T.geometry.y=ja+parseFloat(T.getAttribute(N)));var ea="@"==K.charAt(0)?T.getAttribute(K.substring(1)):null;T.geometry.width=null!=ea&&"auto"!=ea?parseFloat(T.getAttribute(K.substring(1))):
-"auto"==K||"auto"==ea?P.width+I:parseFloat(K);var ta="@"==M.charAt(0)?T.getAttribute(M.substring(1)):null;T.geometry.height=null!=ta&&"auto"!=ta?parseFloat(ta):"auto"==M||"auto"==ta?P.height+I:parseFloat(M);S+=T.geometry.height+U}d?(null==k[ia]&&(k[ia]=[]),k[ia].push(T)):(e.push(T),null!=J?(J.style=A.replacePlaceholders(J,L,t),A.addCell(T,J),g.push(J)):f.push(A.addCell(T)))}for(W=0;W<g.length;W++)ea="@"==K.charAt(0)?g[W].getAttribute(K.substring(1)):null,ta="@"==M.charAt(0)?g[W].getAttribute(M.substring(1)):
-null,"auto"!=K&&"auto"!=ea||"auto"!=M&&"auto"!=ta||A.updateGroupBounds([g[W]],I,!0);for(var ya=f.slice(),pa=f.slice(),X=0;X<ka.length;X++)for(var xa=ka[X],W=0;W<e.length;W++){var T=e[W],za=mxUtils.bind(this,function(b,d,c){var e=d.getAttribute(c.from);if(null!=e&&""!=e)for(var e=e.split(","),g=0;g<e.length;g++){var f=n[c.to][e[g]];if(null!=f){var k=c.label;null!=c.fromlabel&&(k=(d.getAttribute(c.fromlabel)||"")+(k||""));null!=c.sourcelabel&&(k=A.replacePlaceholders(d,c.sourcelabel,t)+(k||""));null!=
-c.tolabel&&(k=(k||"")+(f.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(k=(k||"")+A.replacePlaceholders(f,c.targetlabel,t));var l="target"==c.placeholders==!c.invert?f:b,l=null!=c.style?A.replacePlaceholders(l,c.style,t):A.createCurrentEdgeStyle(),k=A.insertEdge(null,null,k||"",c.invert?f:b,c.invert?b:f,l);if(null!=c.labels)for(l=0;l<c.labels.length;l++){var m=c.labels[l],p=new mxCell(m.label||l,new mxGeometry(null!=m.x?m.x:0,null!=m.y?m.y:0,0,0),"resizable=0;html=1;");p.vertex=!0;p.connectable=
-!1;p.geometry.relative=!0;null!=m.placeholders&&(p.value=A.replacePlaceholders("target"==m.placeholders==!c.invert?f:b,p.value,t));if(null!=m.dx||null!=m.dy)p.geometry.offset=new mxPoint(null!=m.dx?m.dx:0,null!=m.dy?m.dy:0);k.insert(p)}pa.push(k);mxUtils.remove(c.invert?b:f,ya)}}});za(T,T,xa);if(null!=k[T.id])for(oa=0;oa<k[T.id].length;oa++)za(T,k[T.id][oa],xa)}if(null!=la)for(W=0;W<e.length;W++)for(T=e[W],oa=0;oa<la.length;oa++)A.setAttributeForCell(T,mxUtils.trim(la[oa]),null);if(0<f.length){var Ba=
-new mxParallelEdgeLayout(A);Ba.spacing=O;Ba.checkOverlap=!0;var Ea=function(){0<Ba.spacing&&Ba.execute(A.getDefaultParent());for(var b=0;b<f.length;b++){var d=A.getCellGeometry(f[b]);d.x=Math.round(A.snap(d.x));d.y=Math.round(A.snap(d.y));"auto"==K&&(d.width=Math.round(A.snap(d.width)));"auto"==M&&(d.height=Math.round(A.snap(d.height)))}};if("["==fa.charAt(0)){var Ja=Y;A.view.validate();this.executeLayoutList(JSON.parse(fa),function(){Ea();Ja()});Y=null}else if("circle"==fa){var Aa=new mxCircleLayout(A);
-Aa.disableEdgeStyle=!1;Aa.resetEdges=!1;var Ka=Aa.isVertexIgnored;Aa.isVertexIgnored=function(b){return Ka.apply(this,arguments)||0>mxUtils.indexOf(f,b)};this.executeLayout(function(){Aa.execute(A.getDefaultParent());Ea()},!0,Y);Y=null}else if("horizontaltree"==fa||"verticaltree"==fa||"auto"==fa&&pa.length==2*f.length-1&&1==ya.length){A.view.validate();var Ca=new mxCompactTreeLayout(A,"horizontaltree"==fa);Ca.levelDistance=U;Ca.edgeRouting=!1;Ca.resetEdges=!1;this.executeLayout(function(){Ca.execute(A.getDefaultParent(),
-0<ya.length?ya[0]:null)},!0,Y);Y=null}else if("horizontalflow"==fa||"verticalflow"==fa||"auto"==fa&&1==ya.length){A.view.validate();var wa=new mxHierarchicalLayout(A,"horizontalflow"==fa?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);wa.intraCellSpacing=U;wa.parallelEdgeSpacing=O;wa.interRankCellSpacing=E;wa.disableEdgeStyle=!1;this.executeLayout(function(){wa.execute(A.getDefaultParent(),pa);A.moveCells(pa,Q,V)},!0,Y);Y=null}else if("organic"==fa||"auto"==fa&&pa.length>f.length){A.view.validate();
-var Z=new mxFastOrganicLayout(A);Z.forceConstant=3*U;Z.disableEdgeStyle=!1;Z.resetEdges=!1;var Fa=Z.isVertexIgnored;Z.isVertexIgnored=function(b){return Fa.apply(this,arguments)||0>mxUtils.indexOf(f,b)};this.executeLayout(function(){Z.execute(A.getDefaultParent());Ea()},!0,Y);Y=null}}this.hideDialog()}finally{A.model.endUpdate()}null!=Y&&Y()}}catch(Na){this.handleError(Na)}};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,k){b=new LinkDialog(this,b,c,e,!0,f,k);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++;null!=this.notion&&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 n=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){n.apply(this,arguments);var b=this.editor.graph,c=this.getCurrentFile(),e=this.isDiagramActive(),
-f=b.getEditableCells(b.getSelectionCells());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(0<f.length||b.isSelectionEmpty());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<f.length);this.actions.get("editGeometry").setEnabled(0<f.length&&b.getModel().isVertex(f[0]));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 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,k,n,t,v){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,k,n)),"image/svg+xml");else{var g=b.getFileData(!0,null,null,null,null,!0),l=d.getGraphBounds(),m=Math.floor(l.width*k/d.view.scale),p=Math.floor(l.height*k/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()};v&&(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(k,
-null==f||"none"==f,!0,!1,!1,n,!0,!1,null,v,t):b.exportImage(k,!1,!0,!1,!1,n,!0,!1,"jpeg",v);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 k={};try{var n=mxSettings.getCustomLibraries();for(b=0;b<n.length;b++){var t=n[b];if("R"==t.substring(0,1)){var y=JSON.parse(decodeURIComponent(t.substring(1)));k[y[0]]={id:y[0],title:y[1],downloadUrl:y[2]}}}}catch(x){}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];k[e.id]&&(c[e.id]=e);var g=this.addCheckbox(f,e.title,k[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==k[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(D){this.handleError(D,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){b--;0==b&&this.spinner.stop();this.handleError(null,
-mxResources.get("errorLoadingFile"))}))})(c[d]));for(d in k)c[d]||this.closeLibrary(new RemoteLibrary(this,null,k[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,k){var d=!0,g=window.setTimeout(mxUtils.bind(this,function(){d=!1;k({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.timeout),l=mxUtils.bind(this,function(){window.clearTimeout(g);d&&f.apply(this,arguments)}),m=mxUtils.bind(this,function(){window.clearTimeout(g);d&&k.apply(this,
-arguments)});e=e||{};e.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:l,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,g=this.remoteInvokableFns[e];if(null!=g&&"function"===typeof this[e]){if(g.allowedDomains){for(var f=!1,k=0;k<g.allowedDomains.length;k++)if(c=="https://"+g.allowedDomains[k]){f=!0;break}if(!f){d(null,"Invalid Call: "+e+" is not allowed.");return}}var n=b.functionArgs;Array.isArray(n)||(n=[]);if(g.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: "+e+" is not found.")}catch(x){d(null,"Invalid Call: An error occurred, "+x.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(u){null!=c&&c(u)}};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(C){console.log(C)}}),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(C){console.log(C)}});b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var f=
-{};try{f=JSON.parse(b.data)}catch(K){}"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(K){console.log(K)}});window.addEventListener("message",b)}})));b(d);d.onversionchange=
-function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(p){null!=c&&c(p)}else null!=c&&c()}else b(this.database)};EditorUi.prototype.setDatabaseItem=function(b,c,e,f,k){this.openDatabase(mxUtils.bind(this,function(d){try{k=k||"objects";Array.isArray(k)||(k=[k],b=[b],c=[c]);var g=d.transaction(k,"readwrite");g.oncomplete=e;g.onerror=f;for(d=0;d<k.length;d++)g.objectStore(k[d]).put(null!=b&&null!=b[d]?{key:b[d],data:c[d]}:c[d])}catch(v){null!=f&&f(v)}}),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(u){null!=e&&e(u)}}),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(u){null!=c&&c(u)}}),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(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,k,n,t,v){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(b,c,e,f,k,n,t,v)};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,k,n,t,v,y,x,G,H,z,D,L,F){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,f,k,n,t,v,
-y,x,G,H,z,D,L,F)};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,k){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(b,
-c,e,f,k)};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 k="<mxfile "===f.substring(0,8)||"<?xml"===f.substring(0,5)||"\x3c!--[if IE]>"===f.substring(0,12),f="<mxlibrary>"===f.substring(0,11);(k||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")}})();
+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]){c.refreshBackgroundImage();break}}}));var q=c.getBackgroundImageObject;c.getBackgroundImageObject=function(d,c){var e=q.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,
+l=this.shapeBackgroundColor;this.stylesheet=this.getDefaultStylesheet();this.shapeBackgroundColor="#ffffff";this.shapeForegroundColor="#000000";e=b.createImageForPageLink(e.originalSrc);this.shapeBackgroundColor=l;this.shapeForegroundColor=f;this.stylesheet=g}return e};var n=this.clearDefaultStyle;this.clearDefaultStyle=function(){n.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 t=b.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1");return t.apply(this,arguments)};var y=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)};y.call(this,b,d,e)};f.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var x=Menus.prototype.addPopupMenuEditItems;this.menus.addPopupMenuEditItems=function(d,c,e){b.editor.graph.isSelectionEmpty()?x.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?450:370,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var G=c.getExportVariables;c.getExportVariables=function(){var d=G.apply(this,arguments),c=b.getCurrentFile();null!=c&&(d.filename=c.getTitle());d.pagecount=null!=b.pages?b.pages.length:1;d.page=null!=b.currentPage?b.currentPage.getName():"";d.pagenumber=null!=b.pages&&null!=b.currentPage?mxUtils.indexOf(b.pages,
+b.currentPage)+1:1;return d};var H=c.getGlobalVariable;c.getGlobalVariable=function(d){var c=b.getCurrentFile();return"filename"==d&&null!=c?c.getTitle():"page"==d&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==d?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:"pagecount"==d?null!=b.pages?b.pages.length:1:H.apply(this,arguments)};var z=c.labelLinkClicked;c.labelLinkClicked=function(b,d,e){var g=d.getAttribute("href");if(null==g||!c.isCustomLink(g)||!mxEvent.isTouchEvent(e)&&
+mxEvent.isPopupTrigger(e))z.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))c.customLinkClicked(g),c.getRubberband().reset();mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var d=b.defaultFilename,c=b.getCurrentFile();null!=c&&(d=null!=c.getTitle()?c.getTitle():d);return d};var D=this.actions.get("print");D.setEnabled(!mxClient.IS_IOS||!navigator.standalone);D.visible=D.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,
+!0,"findReplace"),this.keyHandler.bindAction(67,!0,"copyStyle",!0),this.keyHandler.bindAction(86,!0,"pasteStyle",!0),this.keyHandler.bindAction(77,!0,"editGeometry",!0),this.keyHandler.bindAction(88,!0,"insertText",!0),this.keyHandler.bindAction(75,!0,"insertRectangle"),this.keyHandler.bindAction(75,!0,"insertEllipse",!0),this.altShiftActions[83]="synchronize",this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(null,null,24);Graph.fileSupport&&c.addListener(mxEvent.EDITING_STARTED,
+mxUtils.bind(this,function(b){var d=c.cellEditor.text2,e=null;null!=d&&(mxEvent.addListener(d,"dragleave",function(b){null!=e&&(e.parentNode.removeChild(e),e=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(b){null==e&&(!mxClient.IS_IE||10<document.documentMode)&&(e=this.highlightElement(d));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(d,"drop",mxUtils.bind(this,function(b){null!=e&&(e.parentNode.removeChild(e),e=null);if(0<
+b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,function(b,d,e,g,f,l){c.insertImage(b,f,l)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()},mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var d=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(d)?this.loadImage(decodeURIComponent(d),mxUtils.bind(this,function(b){var e=Math.max(1,
+b.width);b=Math.max(1,b.height);var g=this.maxImageSize,g=Math.min(1,Math.min(g/Math.max(1,e)),g/Math.max(1,b));c.insertImage(decodeURIComponent(d),e*g,b*g)})):document.execCommand("insertHTML",!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()&&(D=this.editor.graph.view,D.setUnit(mxSettings.getUnit()),D.addListener("unitChanged",function(b,d){mxSettings.setUnit(d.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,D.unit),this.refresh());if("1"==urlParams.styledev){D=document.getElementById("geFooter");null!=D&&(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)})),D.appendChild(this.styleInput),
+this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(b,d){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var L=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==this.styleInput?!0:L.apply(this,arguments)}}D=document.getElementById("geInfo");
+null!=D&&D.parentNode.removeChild(D);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var E=null;mxEvent.addListener(c.container,"dragleave",function(b){c.isEnabled()&&(null!=E&&(E.parentNode.removeChild(E),E=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(b){null==E&&(!mxClient.IS_IE||10<document.documentMode)&&(E=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!=E&&(E.parentNode.removeChild(E),E=null);if(c.isEnabled()){var d=mxUtils.convertPoint(c.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),e=c.view.translate,g=c.view.scale,f=d.x/g-e.x,l=d.y/g-e.y;if(0<b.dataTransfer.files.length)mxEvent.isShiftDown(b)?this.openFiles(b.dataTransfer.files,!0):(mxEvent.isAltDown(b)&&(l=f=null),this.importFiles(b.dataTransfer.files,f,l,this.maxImageSize,null,null,null,
+null,mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b),b));else{mxEvent.isAltDown(b)&&(l=f=0);var k=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,d=this.extractGraphModelFromEvent(b,null!=this.pages);if(null!=d)c.setSelectionCells(this.importXml(d,f,l,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){var m=b.dataTransfer.getData("text/html"),d=document.createElement("div");d.innerHTML=c.sanitizeHtml(m);var p=null,e=d.getElementsByTagName("img");
+null!=e&&1==e.length?(m=e[0].getAttribute("src"),null==m&&(m=e[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)||(p=!0)):(e=d.getElementsByTagName("a"),null!=e&&1==e.length?m=e[0].getAttribute("href"):(d=d.getElementsByTagName("pre"),null!=d&&1==d.length&&(m=mxUtils.getTextContent(d[0]))));var q=!0,n=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(m,f,l,!0,p,null,q,mxEvent.isControlDown(b)))});p&&null!=m&&m.length>this.resampleThreshold?this.confirmImageResize(function(b){q=
+b;n()},mxEvent.isControlDown(b)):n()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),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,"",f,l,d*e,b*e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+k+";"))}),mxUtils.bind(this,function(b){c.setSelectionCells(this.insertTextAt(k,
+f,l,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&c.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),f,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,g=0;g<c.types.length;g++)if("text/"===c.types[g].substring(0,5)){e=!0;break}if(!e){var f=c.items;for(index in f){var k=f[index];if("file"===k.kind){if(b.isEditing())this.importFiles([k.getAsFile()],0,0,this.maxImageSize,function(d,c,e,g,f,l){b.insertImage(d,f,l)},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([k.getAsFile()],
+n.x,n.y,this.maxImageSize);mxEvent.consume(d)}break}}}}catch(y){}}),!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","false");e.style.textRendering="optimizeSpeed";e.style.fontFamily=
+"monospace";e.style.wordBreak="break-all";e.style.background="transparent";e.style.color="transparent";e.style.position="absolute";e.style.whiteSpace="nowrap";e.style.overflow="hidden";e.style.display="block";e.style.fontSize="1";e.style.zIndex="-1";e.style.resize="none";e.style.outline="none";e.style.width="1px";e.style.height="1px";mxUtils.setOpacity(e,0);e.contentEditable=!0;e.innerHTML="&nbsp;";var f=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,
+null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var d=mxEvent.getSource(b);null==c.container||!c.isEnabled()||c.isMouseDown||c.isEditing()||null!=this.dialog||"INPUT"==d.nodeName||"TEXTAREA"==d.nodeName||224!=b.keyCode&&(mxClient.IS_MAC||17!=b.keyCode)&&(!mxClient.IS_MAC||91!=b.keyCode&&93!=b.keyCode)||f||(e.style.left=c.container.scrollLeft+10+"px",e.style.top=c.container.scrollTop+10+"px",c.container.appendChild(e),f=!0,e.focus(),document.execCommand("selectAll",!1,null))}));
+mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var d=b.keyCode;window.setTimeout(mxUtils.bind(this,function(){!f||224!=d&&17!=d&&91!=d&&93!=d||(f=!1,c.isEditing()||null!=this.dialog||null==c.container||c.container.focus(),e.parentNode.removeChild(e),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(e,"copy",mxUtils.bind(this,function(d){if(c.isEnabled())try{mxClipboard.copy(c),this.copyCells(e),b()}catch(u){this.handleError(u)}}));mxEvent.addListener(e,"cut",
+mxUtils.bind(this,function(d){if(c.isEnabled())try{mxClipboard.copy(c),this.copyCells(e,!0),b()}catch(u){this.handleError(u)}}));mxEvent.addListener(e,"paste",mxUtils.bind(this,function(b){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&(e.innerHTML="&nbsp;",e.focus(),null!=b.clipboardData&&this.pasteCells(b,e,!0,!0),mxEvent.isConsumed(b)||window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,e,!1,!0)}),0))}),!0);var k=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==
+e?!0:k.apply(this,arguments)}};EditorUi.prototype.setSketchMode=function(b){this.spinner.spin(document.body,mxResources.get("working")+"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetSketchMode(b);null==urlParams.rough&&(mxSettings.settings.sketchMode=b,mxSettings.save());this.fireEvent(new mxEventObject("sketchModeChanged"))}),0)};EditorUi.prototype.setPagesVisible=function(b){Editor.pagesVisible!=b&&(Editor.pagesVisible=b,mxSettings.settings.pagesVisible=b,mxSettings.save(),
+this.fireEvent(new mxEventObject("pagesVisibleChanged")))};EditorUi.prototype.setInlineFullscreen=function(b){Editor.inlineFullscreen!=b&&(Editor.inlineFullscreen=b,this.fireEvent(new mxEventObject("inlineFullscreenChanged")),(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:this.diagramContainer.getBoundingClientRect()}),"*"),window.setTimeout(mxUtils.bind(this,function(){this.refresh();this.actions.get("resetView").funct()}),10))};
+EditorUi.prototype.doSetSketchMode=function(b){if(Editor.sketchMode!=b){var d=function(b,d,c){null==b[d]&&(b[d]=c)},c=this.editor.graph;Editor.sketchMode=b;this.menus.defaultFonts=Menus.prototype.defaultFonts;this.menus.defaultFontSize=b?20:16;c.defaultVertexStyle=mxUtils.clone(Graph.prototype.defaultVertexStyle);d(c.defaultVertexStyle,"fontSize",this.menus.defaultFontSize);c.defaultEdgeStyle=mxUtils.clone(Graph.prototype.defaultEdgeStyle);d(c.defaultEdgeStyle,"fontSize",this.menus.defaultFontSize-
+4);d(c.defaultEdgeStyle,"edgeStyle","none");d(c.defaultEdgeStyle,"rounded","0");d(c.defaultEdgeStyle,"curved","1");d(c.defaultEdgeStyle,"jettySize","auto");d(c.defaultEdgeStyle,"orthogonalLoop","1");d(c.defaultEdgeStyle,"endArrow","open");d(c.defaultEdgeStyle,"endSize","14");d(c.defaultEdgeStyle,"startSize","14");b&&(d(c.defaultVertexStyle,"fontFamily",Editor.sketchFontFamily),d(c.defaultVertexStyle,"fontSource",Editor.sketchFontSource),d(c.defaultVertexStyle,"hachureGap","4"),d(c.defaultVertexStyle,
+"sketch","1"),d(c.defaultEdgeStyle,"fontFamily",Editor.sketchFontFamily),d(c.defaultEdgeStyle,"fontSource",Editor.sketchFontSource),d(c.defaultEdgeStyle,"sketch","1"),d(c.defaultEdgeStyle,"hachureGap","4"),d(c.defaultEdgeStyle,"sourcePerimeterSpacing","8"),d(c.defaultEdgeStyle,"targetPerimeterSpacing","8"),this.menus.defaultFonts=[{fontFamily:Editor.sketchFontFamily,fontUrl:decodeURIComponent(Editor.sketchFontSource)},{fontFamily:"Rock Salt",fontUrl:"https://fonts.googleapis.com/css?family=Rock+Salt"},
+{fontFamily:"Permanent Marker",fontUrl:"https://fonts.googleapis.com/css?family=Permanent+Marker"}].concat(this.menus.defaultFonts));c.currentVertexStyle=mxUtils.clone(c.defaultVertexStyle);c.currentEdgeStyle=mxUtils.clone(c.defaultEdgeStyle);this.clearDefaultStyle()}};EditorUi.prototype.getLinkTitle=function(b){var d=Graph.prototype.getLinkTitle.apply(this,arguments);if(Graph.isPageLink(b)){var c=b.indexOf(",");0<c&&(d=this.getPageById(b.substring(c+1)),d=null!=d?d.getName():mxResources.get("pageNotFound"))}else"data:"==
+b.substring(0,5)&&(d=mxResources.get("action"));return d};EditorUi.prototype.handleCustomLink=function(b){if(Graph.isPageLink(b)){var d=b.indexOf(",");if(b=this.getPageById(b.substring(d+1)))this.selectPage(b);else throw Error(mxResources.get("pageNotFound")||"Page not found");}else this.editor.graph.handleCustomLink(b)};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){Editor.pagesVisible=
+mxSettings.settings.pagesVisible;ColorDialog.recentColors=mxSettings.getRecentColors();if(isLocalStorage)try{window.addEventListener("storage",mxUtils.bind(this,function(b){b.key==mxSettings.key&&(mxSettings.load(),ColorDialog.recentColors=mxSettings.getRecentColors(),this.menus.customFonts=mxSettings.getCustomFonts())}),!1)}catch(d){}this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]));this.menus.customFonts=mxSettings.getCustomFonts();this.addListener("customFontsChanged",
+mxUtils.bind(this,function(b,c){if("1"!=urlParams["ext-fonts"])mxSettings.setCustomFonts(this.menus.customFonts);else{var d=c.getProperty("customFonts");this.menus.customFonts=d;mxSettings.setCustomFonts(d)}mxSettings.save()}));this.editor.graph.connectionHandler.setCreateTarget(mxSettings.isCreateTarget());this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyConnectChanged",mxUtils.bind(this,function(b,c){mxSettings.setCreateTarget(this.editor.graph.connectionHandler.isCreateTarget());
+mxSettings.save()}));this.editor.graph.pageFormat=null!=this.editor.graph.defaultPageFormat?this.editor.graph.defaultPageFormat:mxSettings.getPageFormat();this.addListener("pageFormatChanged",mxUtils.bind(this,function(b,c){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor(Editor.isDarkMode());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(y){this.handleError(y)}}),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(m){this.handleError(m)}};
+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())),g=mxUtils.getXml(d.encodeCells(e));
+mxUtils.setTextContent(b,encodeURIComponent(g));c?(d.removeCells(e,!1),d.lastPasteXml=null):(d.lastPasteXml=g,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 m=decodeURIComponent(k);this.isCompatibleString(m)&&(l=!0,k=m)}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 n=g.lastIndexOf("%3E");0<=n&&n<g.length-3&&(g=g.substring(0,n+3))}catch(H){}try{k=d.getElementsByTagName("span"),m=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(g),this.isCompatibleString(m)&&(l=!0,g=m)}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&&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.isOffline()&&this.isRemoteFileFormat(c)?(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(),null,!0)})):/^https?:\/\//.test(c)&&(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(c):
+window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(c)))))}else this.openLocalFile(c,null,!0)}b.stopPropagation();b.preventDefault()}))};EditorUi.prototype.highlightElement=function(b){var d=0,c=0,e,f;if(null==b){f=document.body;var k=document.documentElement;e=(f.clientWidth||k.clientWidth)-3;f=Math.max(f.clientHeight||0,k.clientHeight)-3}else d=b.offsetTop,c=b.offsetLeft,e=b.clientWidth,f=b.clientHeight;k=document.createElement("div");
+k.style.zIndex=mxPopupMenu.prototype.zIndex+2;k.style.border="3px dotted rgb(254, 137, 12)";k.style.pointerEvents="none";k.style.position="absolute";k.style.top=d+"px";k.style.left=c+"px";k.style.width=Math.max(0,e-3)+"px";k.style.height=Math.max(0,f-3)+"px";null!=b&&b.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(k):document.body.appendChild(k);return k};EditorUi.prototype.stringToCells=function(b){b=mxUtils.parseXml(b);var d=this.editor.extractGraphModel(b.documentElement);
+b=[];if(null!=d){var c=new mxCodec(d.ownerDocument),e=new mxGraphModel;c.decode(d,e);d=e.getChildAt(e.getRoot(),0);for(c=0;c<e.getChildCount(d);c++)b.push(e.getChildAt(d,c))}return b};EditorUi.prototype.openFileHandle=function(b,c,e,f,k){if(null!=c&&0<c.length){!this.useCanvasForExport&&/(\.png)$/i.test(c)?c=c.substring(0,c.length-4)+".drawio":/(\.pdf)$/i.test(c)&&(c=c.substring(0,c.length-4)+".drawio");var d=mxUtils.bind(this,function(b){c=0<=c.lastIndexOf(".")?c.substring(0,c.lastIndexOf("."))+
+".drawio":c+".drawio";if("<mxlibrary"==b.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,f);try{this.loadLibrary(new LocalLibrary(this,b,c))}catch(y){this.handleError(y,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(b,c,f)});if(/(\.v(dx|sdx?))($|\?)/i.test(c)||/(\.vs(x|sx?))($|\?)/i.test(c))this.importVisio(e,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}));else if(/(\.*<graphml )/.test(b))this.importGraphML(b,
+mxUtils.bind(this,function(b){this.spinner.stop();d(b)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,c))this.parseFile(e,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?d(b.responseText):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(b))/(\.json)$/i.test(c)&&(c=c.substring(0,
+c.length-5)+".drawio"),this.convertLucidChart(b,mxUtils.bind(this,function(b){this.spinner.stop();this.openLocalFile(b,c,f)}),mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}));else if("<mxlibrary"==b.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,f);try{this.loadLibrary(new LocalLibrary(this,b,e.name))}catch(v){this.handleError(v,mxResources.get("errorLoadingFile"))}}else if(0==
+b.indexOf("PK"))this.importZipFile(e,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}),mxUtils.bind(this,function(){this.spinner.stop();this.openLocalFile(b,c,f)}));else{if("image/png"==e.type.substring(0,9))b=this.extractGraphModelFromPng(b);else if("application/pdf"==e.type){var g=Editor.extractGraphModelFromPdf(b);null!=g&&(k=null,f=!0,b=g)}this.spinner.stop();this.openLocalFile(b,c,f,k,null!=k?e:null)}}};EditorUi.prototype.openFiles=function(b,c){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var d=
+0;d<b.length;d++)mxUtils.bind(this,function(b){var d=new FileReader;d.onload=mxUtils.bind(this,function(d){try{this.openFileHandle(d.target.result,b.name,b,c)}catch(u){this.handleError(u)}});d.onerror=mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b);window.openFile=null});"image"!==b.type.substring(0,5)&&"application/pdf"!==b.type||"image/svg"===b.type.substring(0,9)?d.readAsText(b):d.readAsDataURL(b)})(b[d])};EditorUi.prototype.openLocalFile=function(b,c,e,f,k){var d=this.getCurrentFile(),
+g=mxUtils.bind(this,function(){window.openFile=null;if(null==c&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var d=mxUtils.parseXml(b);null!=d&&(this.editor.setGraphXml(d.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,b,c||this.defaultFilename,e,f,k))});if(null!=b&&0<b.length)null==d||!d.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=f)?g():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=f)&&null!=d&&d.isModified()?this.confirm(mxResources.get("allChangesLost"),
+null,g,mxResources.get("cancel"),mxResources.get("discardChanges")):(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(b,c),window.openWindow(this.getUrl(),null,mxUtils.bind(this,function(){null!=d&&d.isModified()?this.confirm(mxResources.get("allChangesLost"),null,g,mxResources.get("cancel"),mxResources.get("discardChanges")):g()})));else throw Error(mxResources.get("notADiagramFile"));};EditorUi.prototype.getBasenames=function(){var b={};if(null!=this.pages)for(var c=
+0;c<this.pages.length;c++)this.updatePageRoot(this.pages[c]),this.addBasenamesForCell(this.pages[c].root,b);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),b);var c=[],e;for(e in b)c.push(e);return c};EditorUi.prototype.addBasenamesForCell=function(b,c){function d(b){if(null!=b){var d=b.lastIndexOf(".");0<d&&(b=b.substring(d+1,b.length));null==c[b]&&(c[b]=!0)}}var e=this.editor.graph,g=e.getCellStyle(b);d(mxStencilRegistry.getBasenameForStencil(g[mxConstants.STYLE_SHAPE]));e.model.isEdge(b)&&
+(d(mxMarker.getPackageForType(g[mxConstants.STYLE_STARTARROW])),d(mxMarker.getPackageForType(g[mxConstants.STYLE_ENDARROW])));for(var g=e.model.getChildCount(b),f=0;f<g;f++)this.addBasenamesForCell(e.model.getChildAt(b,f),c)};EditorUi.prototype.setGraphEnabled=function(b){this.diagramContainer.style.visibility=b?"":"hidden";this.formatContainer.style.visibility=b?"":"hidden";this.sidebarFooterContainer.style.display=b?"":"none";this.sidebarContainer.style.display=b?"":"none";this.hsplit.style.display=
+b?"":"none";this.editor.graph.setEnabled(b);null!=this.ruler&&(this.ruler.hRuler.container.style.visibility=b?"":"hidden",this.ruler.vRuler.container.style.visibility=b?"":"hidden");null!=this.tabContainer&&(this.tabContainer.style.visibility=b?"":"hidden");b||(null!=this.actions.outlineWindow&&this.actions.outlineWindow.window.setVisible(!1),null!=this.actions.layersWindow&&this.actions.layersWindow.window.setVisible(!1),null!=this.menus.tagsWindow&&this.menus.tagsWindow.window.setVisible(!1),null!=
+this.menus.findWindow&&this.menus.findWindow.window.setVisible(!1),null!=this.menus.findReplaceWindow&&this.menus.findReplaceWindow.window.setVisible(!1))};EditorUi.prototype.initializeEmbedMode=function(){this.setGraphEnabled(!1);if((window.opener||window.parent)!=window&&("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))){var b=!1;this.installMessageHandler(mxUtils.bind(this,function(d,c,e,f){b||(b=!0,this.spinner.stop(),this.addEmbedButtons(),this.setGraphEnabled(!0));
+if(null==d||0==d.length)d=this.emptyDiagramXml;this.setCurrentFile(new EmbedFile(this,d,{}));this.mode=App.MODE_EMBED;this.setFileData(d);if(f)try{var g=this.editor.graph;g.setGridEnabled(!1);g.pageVisible=!1;var k=g.model.cells,l;for(l in k){var m=k[l];null!=m&&null!=m.style&&(m.style+=";sketch=1;"+(-1==m.style.indexOf("fontFamily=")||-1<m.style.indexOf("fontFamily=Helvetica;")?"fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;":
+""))}}catch(x){console.log(x)}this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&this.lightboxFit():this.showLayersDialog();this.chromelessResize&&this.chromelessResize();this.editor.undoManager.clear();this.editor.modified=null!=e?e:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))}};EditorUi.prototype.showLayersDialog=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 d=this.editor.graph;return{event:b,pageVisible:d.pageVisible,translate:d.view.translate,bounds:d.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:d.view.scale,page:d.view.getBackgroundPageBounds()}};EditorUi.prototype.sendEmbeddedSvgExport=function(b){var d=this.editor.graph;
+d.isEditing()&&d.stopEditing(!d.isInvokesStopCellEditing());var c=window.opener||window.parent;if(this.editor.modified){var e=d.background;if(null==e||e==mxConstants.NONE)e=this.embedExportBackground;this.getEmbeddedSvg(this.getFileData(!0,null,null,null,null,null,null,null,null,!1),d,null,!0,mxUtils.bind(this,function(d){c.postMessage(JSON.stringify({event:"export",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,k=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,k);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(ra){}return b});if("json"==urlParams.proto){var p=!1;try{k=JSON.parse(k)}catch(ka){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(ka){n.postMessage(JSON.stringify({event:"draft",error:ka.toString(),message:k}),"*")}return}if("template"==k.action){this.spinner.stop();var u=1==k.enableRecent,v=1==k.enableSearch,C=1==k.enableCustomTemp;if("1"==urlParams.newTempDlg&&!k.templatesOnly&&null!=
+k.callback){var y=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!=y?y.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,C?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=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,C?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 Z=this.getDiagramTextContent();n.postMessage(JSON.stringify({event:"textContent",
+data:Z,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 M=null!=k.messageKey?mxResources.get(k.messageKey):k.message;null==k.show||k.show?this.spinner.spin(document.body,M):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 O=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var U=this.editor.graph,F=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=O;n.postMessage(JSON.stringify(d),"*")}),I=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(O)));U!=this.editor.graph&&U.container.parentNode.removeChild(U.container);F(b)}),A=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var ca=mxUtils.bind(this,
+function(){if(null!=this.pages&&this.currentPage.getId()!=A){var b=U.getGlobalVariable;U=this.createTemporaryGraph(U.getStylesheet());for(var d,c=0;c<this.pages.length;c++)if(this.pages[c].getId()==A){d=this.updatePageRoot(this.pages[c]);break}null==d&&(d=this.currentPage);U.getGlobalVariable=function(c){return"page"==c?d.getName():"pagenumber"==c?1:b.apply(this,arguments)};document.body.appendChild(U.container);U.model.setRoot(d.root)}if(null!=k.layerIds){for(var e=U.model,g=e.getChildCells(e.getRoot()),
+f={},c=0;c<k.layerIds.length;c++)f[k.layerIds[c]]=!0;for(c=0;c<g.length;c++)e.setVisible(g[c],f[g[c].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){I(b.toDataURL("image/png"))}),k.width,null,k.background,mxUtils.bind(this,function(){I(null)}),null,null,k.scale,k.transparent,k.shadow,null,U,k.border,null,k.grid,k.keepTheme)});null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(O),c=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(ca)},0):ca()):
+ca()}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==k.format?"1":"0")+(null!=A?"&pageId="+A:"")+(null!=k.layerIds&&0<k.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(O))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?F("data:image/png;base64,"+b.getText()):I(null)}),mxUtils.bind(this,function(){I(null)}))}}else ca=mxUtils.bind(this,function(){var b=
+this.createLoadMessage("export");b.message=k;if("html2"==k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var d=this.getXmlFileData();b.xml=mxUtils.getXml(d);b.data=this.getFileData(null,null,!0,null,null,null,d);b.format=k.format}else if("html"==k.format)d=this.editor.getGraphXml(),b.data=this.getHtml(d,this.editor.graph),b.xml=mxUtils.getXml(d),b.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;d=null!=k.background?k.background:this.editor.graph.background;
+d==mxConstants.NONE&&(d=null);b.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);b.format="svg";var c=mxUtils.bind(this,function(d){this.editor.graph.setEnabled(!0);this.spinner.stop();b.data=Editor.createSvgDataUri(d);n.postMessage(JSON.stringify(b),"*")});if("xmlsvg"==k.format)(null==k.spin&&null==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(ca)},0):ca()):ca();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 S=Editor.sketchMode;this.doSetSketchMode(k.rough);S!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=k.dark&&(S=Editor.darkMode,this.doSetDarkMode(k.dark),S!=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 Q=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*Q);b.maxFitScale=d;b.container.scrollTop-=2*Q;b.container.scrollLeft-=2*Q;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(ka){}k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):null!=k.descriptor?k.descriptor:k.xml}else{if("merge"==k.action){var V=this.getCurrentFile();null!=V&&(t=m(k.xml),null!=t&&""!=t&&V.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(ka){this.handleError(ka)}}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())}),fa=mxUtils.bind(this,function(g,k){c=!0;try{b(g,k,null,p)}catch(ja){this.handleError(ja)}c=
+!1;null!=urlParams.modified&&this.editor.setStatus("");f=oa();e&&null==d&&(d=mxUtils.bind(this,function(b,d){var e=oa();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&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(k,"")?this.parseFile(new Blob([k],{type:"application/octet-stream"}),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(oa(),g)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var n=window.opener||window.parent,k="json"==
+urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMessage(k,"*");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(),g=0;g<b.length;g++){var f=new window[b[g].layout](d);if(null!=b[g].config)for(var k in b[g].config)f[k]=b[g].config[k];this.executeLayout(function(){f.execute(d.getDefaultParent(),0==e.length?null:e)},g==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],g=[],f=[],k={};if(0<d.length){var n={},t=null,x=null,G=null,H=null,z=null,D=null,L="whiteSpace=wrap;html=1;",
+E=null,J=null,C="",K="auto",N="auto",Z=null,M=null,O=40,U=40,F=100,I=0,A=this.editor.graph;A.getGraphBounds();for(var ca=function(){null!=c?c(pa):(A.setSelectionCells(pa),A.scrollCellToVisible(A.getSelectionCell()))},S=A.getFreeInsertPoint(),Q=S.x,V=S.y,S=V,oa=null,fa="auto",J=null,ka=[],ra=null,la=null,ja=0;ja<d.length&&"#"==d[ja].charAt(0);){b=d[ja];for(ja++;ja<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[ja].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[ja].substring(1)),ja++;if("#"!=b.charAt(1)){var aa=
+b.indexOf(":");if(0<aa){var ba=mxUtils.trim(b.substring(1,aa)),R=mxUtils.trim(b.substring(aa+1));"label"==ba?oa=A.sanitizeHtml(R):"labelname"==ba&&0<R.length&&"-"!=R?z=R:"labels"==ba&&0<R.length&&"-"!=R?D=JSON.parse(R):"style"==ba?x=R:"parentstyle"==ba?L=R:"stylename"==ba&&0<R.length&&"-"!=R?H=R:"styles"==ba&&0<R.length&&"-"!=R?G=JSON.parse(R):"vars"==ba&&0<R.length&&"-"!=R?t=JSON.parse(R):"identity"==ba&&0<R.length&&"-"!=R?E=R:"parent"==ba&&0<R.length&&"-"!=R?J=R:"namespace"==ba&&0<R.length&&"-"!=
+R?C=R:"width"==ba?K=R:"height"==ba?N=R:"left"==ba&&0<R.length?Z=R:"top"==ba&&0<R.length?M=R:"ignore"==ba?la=R.split(","):"connect"==ba?ka.push(JSON.parse(R)):"link"==ba?ra=R:"padding"==ba?I=parseFloat(R):"edgespacing"==ba?O=parseFloat(R):"nodespacing"==ba?U=parseFloat(R):"levelspacing"==ba?F=parseFloat(R):"layout"==ba&&(fa=R)}}}if(null==d[ja])throw Error(mxResources.get("invalidOrMissingFile"));for(var sa=this.editor.csvToArray(d[ja]),ba=aa=null,R=[],W=0;W<sa.length;W++)E==sa[W]&&(aa=W),J==sa[W]&&
+(ba=W),R.push(mxUtils.trim(sa[W]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==oa&&(oa="%"+R[0]+"%");if(null!=ka)for(var X=0;X<ka.length;X++)null==n[ka[X].to]&&(n[ka[X].to]={});E=[];for(W=ja+1;W<d.length;W++){var ma=this.editor.csvToArray(d[W]);if(null==ma){var qa=40<d[W].length?d[W].substring(0,40)+"...":d[W];throw Error(qa+" ("+W+"):\n"+mxResources.get("containsValidationErrors"));}0<ma.length&&E.push(ma)}A.model.beginUpdate();try{for(W=0;W<E.length;W++){var ma=E[W],T=
+null,ia=null!=aa?C+ma[aa]:null;null!=ia&&(T=A.model.getCell(ia));var d=null!=T,da=new mxCell(oa,new mxGeometry(Q,S,0,0),x||"whiteSpace=wrap;html=1;");da.vertex=!0;da.id=ia;for(var na=0;na<ma.length;na++)A.setAttributeForCell(da,R[na],ma[na]);if(null!=z&&null!=D){var ha=D[da.getAttribute(z)];null!=ha&&A.labelChanged(da,ha)}if(null!=H&&null!=G){var ua=G[da.getAttribute(H)];null!=ua&&(da.style=ua)}A.setAttributeForCell(da,"placeholders","1");da.style=A.replacePlaceholders(da,da.style,t);d?(A.model.setValue(T,
+da.value),A.model.setStyle(T,da.style),0>mxUtils.indexOf(f,T)&&f.push(T),A.fireEvent(new mxEventObject("cellsInserted","cells",[T]))):A.fireEvent(new mxEventObject("cellsInserted","cells",[da]));T=da;if(!d)for(X=0;X<ka.length;X++)n[ka[X].to][T.getAttribute(ka[X].to)]=T;null!=ra&&"link"!=ra&&(A.setLinkForCell(T,T.getAttribute(ra)),A.setAttributeForCell(T,ra,null));var P=this.editor.graph.getPreferredSizeForCell(T),J=null!=ba?A.model.getCell(C+ma[ba]):null;if(T.vertex){qa=null!=J?0:Q;ja=null!=J?0:V;
+null!=Z&&null!=T.getAttribute(Z)&&(T.geometry.x=qa+parseFloat(T.getAttribute(Z)));null!=M&&null!=T.getAttribute(M)&&(T.geometry.y=ja+parseFloat(T.getAttribute(M)));var ea="@"==K.charAt(0)?T.getAttribute(K.substring(1)):null;T.geometry.width=null!=ea&&"auto"!=ea?parseFloat(T.getAttribute(K.substring(1))):"auto"==K||"auto"==ea?P.width+I:parseFloat(K);var ta="@"==N.charAt(0)?T.getAttribute(N.substring(1)):null;T.geometry.height=null!=ta&&"auto"!=ta?parseFloat(ta):"auto"==N||"auto"==ta?P.height+I:parseFloat(N);
+S+=T.geometry.height+U}d?(null==k[ia]&&(k[ia]=[]),k[ia].push(T)):(e.push(T),null!=J?(J.style=A.replacePlaceholders(J,L,t),A.addCell(T,J),g.push(J)):f.push(A.addCell(T)))}for(W=0;W<g.length;W++)ea="@"==K.charAt(0)?g[W].getAttribute(K.substring(1)):null,ta="@"==N.charAt(0)?g[W].getAttribute(N.substring(1)):null,"auto"!=K&&"auto"!=ea||"auto"!=N&&"auto"!=ta||A.updateGroupBounds([g[W]],I,!0);for(var ya=f.slice(),pa=f.slice(),X=0;X<ka.length;X++)for(var xa=ka[X],W=0;W<e.length;W++){var T=e[W],za=mxUtils.bind(this,
+function(b,d,c){var e=d.getAttribute(c.from);if(null!=e&&""!=e)for(var e=e.split(","),g=0;g<e.length;g++){var f=n[c.to][e[g]];if(null!=f){var k=c.label;null!=c.fromlabel&&(k=(d.getAttribute(c.fromlabel)||"")+(k||""));null!=c.sourcelabel&&(k=A.replacePlaceholders(d,c.sourcelabel,t)+(k||""));null!=c.tolabel&&(k=(k||"")+(f.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(k=(k||"")+A.replacePlaceholders(f,c.targetlabel,t));var l="target"==c.placeholders==!c.invert?f:b,l=null!=c.style?A.replacePlaceholders(l,
+c.style,t):A.createCurrentEdgeStyle(),k=A.insertEdge(null,null,k||"",c.invert?f:b,c.invert?b:f,l);if(null!=c.labels)for(l=0;l<c.labels.length;l++){var m=c.labels[l],p=new mxCell(m.label||l,new mxGeometry(null!=m.x?m.x:0,null!=m.y?m.y:0,0,0),"resizable=0;html=1;");p.vertex=!0;p.connectable=!1;p.geometry.relative=!0;null!=m.placeholders&&(p.value=A.replacePlaceholders("target"==m.placeholders==!c.invert?f:b,p.value,t));if(null!=m.dx||null!=m.dy)p.geometry.offset=new mxPoint(null!=m.dx?m.dx:0,null!=
+m.dy?m.dy:0);k.insert(p)}pa.push(k);mxUtils.remove(c.invert?b:f,ya)}}});za(T,T,xa);if(null!=k[T.id])for(na=0;na<k[T.id].length;na++)za(T,k[T.id][na],xa)}if(null!=la)for(W=0;W<e.length;W++)for(T=e[W],na=0;na<la.length;na++)A.setAttributeForCell(T,mxUtils.trim(la[na]),null);if(0<f.length){var Ba=new mxParallelEdgeLayout(A);Ba.spacing=O;Ba.checkOverlap=!0;var Ea=function(){0<Ba.spacing&&Ba.execute(A.getDefaultParent());for(var b=0;b<f.length;b++){var d=A.getCellGeometry(f[b]);d.x=Math.round(A.snap(d.x));
+d.y=Math.round(A.snap(d.y));"auto"==K&&(d.width=Math.round(A.snap(d.width)));"auto"==N&&(d.height=Math.round(A.snap(d.height)))}};if("["==fa.charAt(0)){var Ja=ca;A.view.validate();this.executeLayoutList(JSON.parse(fa),function(){Ea();Ja()});ca=null}else if("circle"==fa){var Aa=new mxCircleLayout(A);Aa.disableEdgeStyle=!1;Aa.resetEdges=!1;var Ka=Aa.isVertexIgnored;Aa.isVertexIgnored=function(b){return Ka.apply(this,arguments)||0>mxUtils.indexOf(f,b)};this.executeLayout(function(){Aa.execute(A.getDefaultParent());
+Ea()},!0,ca);ca=null}else if("horizontaltree"==fa||"verticaltree"==fa||"auto"==fa&&pa.length==2*f.length-1&&1==ya.length){A.view.validate();var Ca=new mxCompactTreeLayout(A,"horizontaltree"==fa);Ca.levelDistance=U;Ca.edgeRouting=!1;Ca.resetEdges=!1;this.executeLayout(function(){Ca.execute(A.getDefaultParent(),0<ya.length?ya[0]:null)},!0,ca);ca=null}else if("horizontalflow"==fa||"verticalflow"==fa||"auto"==fa&&1==ya.length){A.view.validate();var wa=new mxHierarchicalLayout(A,"horizontalflow"==fa?mxConstants.DIRECTION_WEST:
+mxConstants.DIRECTION_NORTH);wa.intraCellSpacing=U;wa.parallelEdgeSpacing=O;wa.interRankCellSpacing=F;wa.disableEdgeStyle=!1;this.executeLayout(function(){wa.execute(A.getDefaultParent(),pa);A.moveCells(pa,Q,V)},!0,ca);ca=null}else if("organic"==fa||"auto"==fa&&pa.length>f.length){A.view.validate();var Y=new mxFastOrganicLayout(A);Y.forceConstant=3*U;Y.disableEdgeStyle=!1;Y.resetEdges=!1;var Fa=Y.isVertexIgnored;Y.isVertexIgnored=function(b){return Fa.apply(this,arguments)||0>mxUtils.indexOf(f,b)};
+this.executeLayout(function(){Y.execute(A.getDefaultParent());Ea()},!0,ca);ca=null}}this.hideDialog()}finally{A.model.endUpdate()}null!=ca&&ca()}}catch(Na){this.handleError(Na)}};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,k){b=new LinkDialog(this,b,c,e,!0,f,k);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=
+function(b){var d=1;null==this.drive&&"function"!==typeof window.DriveClient||d++;null==this.dropbox&&"function"!==typeof window.DropboxClient||d++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||d++;null!=this.gitHub&&d++;null!=this.gitLab&&d++;null!=this.notion&&d++;b&&isLocalStorage&&"1"==urlParams.browser&&d++;return d};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 n=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){n.apply(this,arguments);var b=this.editor.graph,c=this.getCurrentFile(),e=this.isDiagramActive(),f=b.getEditableCells(b.getSelectionCells());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(0<
+f.length||b.isSelectionEmpty());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<f.length);this.actions.get("editGeometry").setEnabled(0<f.length&&b.getModel().isVertex(f[0]));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 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,k,n,t,v){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,
+k,n)),"image/svg+xml");else{var g=b.getFileData(!0,null,null,null,null,!0),l=d.getGraphBounds(),m=Math.floor(l.width*k/d.view.scale),p=Math.floor(l.height*k/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()};v&&(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(k,null==f||"none"==f,!0,!1,!1,n,!0,!1,null,v,t):b.exportImage(k,!1,!0,!1,!1,n,!0,!1,"jpeg",v);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 k={};try{var n=mxSettings.getCustomLibraries();for(b=0;b<n.length;b++){var t=n[b];if("R"==t.substring(0,1)){var y=JSON.parse(decodeURIComponent(t.substring(1)));k[y[0]]=
+{id:y[0],title:y[1],downloadUrl:y[2]}}}}catch(x){}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];k[e.id]&&(c[e.id]=e);var g=this.addCheckbox(f,e.title,k[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==k[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(D){this.handleError(D,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){b--;0==b&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(c[d]));for(d in k)c[d]||this.closeLibrary(new RemoteLibrary(this,null,k[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,k){var d=!0,g=window.setTimeout(mxUtils.bind(this,function(){d=!1;k({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),
+this.timeout),l=mxUtils.bind(this,function(){window.clearTimeout(g);d&&f.apply(this,arguments)}),m=mxUtils.bind(this,function(){window.clearTimeout(g);d&&k.apply(this,arguments)});e=e||{};e.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:l,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,g=this.remoteInvokableFns[e];if(null!=g&&"function"===typeof this[e]){if(g.allowedDomains){for(var f=!1,k=0;k<g.allowedDomains.length;k++)if(c=="https://"+g.allowedDomains[k]){f=!0;break}if(!f){d(null,"Invalid Call: "+e+" is not allowed.");return}}var n=b.functionArgs;Array.isArray(n)||
+(n=[]);if(g.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: "+e+" is not found.")}catch(x){d(null,"Invalid Call: An error occurred, "+x.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(u){null!=c&&c(u)}};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(C){console.log(C)}}),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(C){console.log(C)}});b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var f={};try{f=JSON.parse(b.data)}catch(K){}"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(K){console.log(K)}});window.addEventListener("message",b)}})));b(d);d.onversionchange=function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(p){null!=c&&c(p)}else null!=c&&c()}else b(this.database)};EditorUi.prototype.setDatabaseItem=function(b,c,e,f,k){this.openDatabase(mxUtils.bind(this,function(d){try{k=k||"objects";Array.isArray(k)||(k=
+[k],b=[b],c=[c]);var g=d.transaction(k,"readwrite");g.oncomplete=e;g.onerror=f;for(d=0;d<k.length;d++)g.objectStore(k[d]).put(null!=b&&null!=b[d]?{key:b[d],data:c[d]}:c[d])}catch(v){null!=f&&f(v)}}),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(u){null!=e&&e(u)}}),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(u){null!=c&&c(u)}}),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(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,k,n,t,v){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");
+return this.editor.loadUrl(b,c,e,f,k,n,t,v)};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,k,n,t,v,y,x,G,H,z,D,L,E){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,f,k,n,t,v,y,x,G,H,z,D,L,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,k){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(b,c,e,f,k)};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 k=
+"<mxfile "===f.substring(0,8)||"<?xml"===f.substring(0,5)||"\x3c!--[if IE]>"===f.substring(0,12),f="<mxlibrary>"===f.substring(0,11);(k||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,k,f,n){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++;z.style.display=0==c?"block":"none"}function d(b,c,d,e){function g(){c.removeChild(l);c.removeChild(m);k.style.display="block";f.style.display="block"}y={div:c,comment:b,saveCallback:d,deleteOnCancel:e};var f=c.querySelector(".geCommentTxt"),k=c.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
"geCommentEditTxtArea";l.style.minHeight=f.offsetHeight+"px";l.value=b.content;c.insertBefore(l,f);var m=document.createElement("div");m.className="geCommentEditBtns";var n=mxUtils.button(mxResources.get("cancel"),function(){e?(c.parentNode.removeChild(c),t()):g();y=null});n.className="geCommentEditBtn";m.appendChild(n);var p=mxUtils.button(mxResources.get("save"),function(){f.innerHTML="";b.content=l.value;mxUtils.write(f,b.content);g();d(b);y=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,f);k.style.display="none";f.style.display="none";l.focus()}function g(c,d){d.innerHTML="";var e=new Date(c.modifiedDate),g=b.timeSince(e);null==g&&(g=mxResources.get("lessThanAMinute"));mxUtils.write(d,mxResources.get("timeAgo",
-[g],"{1} ago"));d.setAttribute("title",e.toLocaleDateString()+" "+e.toLocaleTimeString())}function l(b){var c=document.createElement("img");c.className="geCommentBusyImg";c.src=IMAGE_PATH+"/spin.gif";b.appendChild(c);b.busyImg=c}function m(b){b.style.border="1px solid red";b.removeChild(b.busyImg)}function p(b){b.style.border="";b.removeChild(b.busyImg)}function q(c,e,f,k,n){function C(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)});M.appendChild(f);e&&(f.style.display="none")}function N(){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=O;b(c);return{pdiv:e,replies:d}}function x(e,f,g,n,t){function u(){l(x);c.addReply(C,function(b){C.id=b;c.replies.push(C);p(x);g&&g()},function(c){v();m(x);b.handleError(c,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},n,t)}function v(){d(C,x,function(b){u()},!0)}var z=N().pdiv,C=b.newComment(e,b.getCurrentUser());C.pCommentId=c.id;null==c.replies&&(c.replies=[]);var x=q(C,c.replies,z,k+1);f?v():u()}if(n||!c.isResolved){z.style.display="none";var O=document.createElement("div");O.className="geCommentContainer";O.setAttribute("data-commentId",c.id);O.style.marginLeft=20*k+5+"px";c.isResolved&&!Editor.isDarkMode()&&(O.style.backgroundColor="ghostWhite");
+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,f);k.style.display="none";f.style.display="none";l.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",
+[f],"{1} ago"));d.setAttribute("title",e.toLocaleDateString()+" "+e.toLocaleTimeString())}function l(b){var c=document.createElement("img");c.className="geCommentBusyImg";c.src=IMAGE_PATH+"/spin.gif";b.appendChild(c);b.busyImg=c}function m(b){b.style.border="1px solid red";b.removeChild(b.busyImg)}function p(b){b.style.border="";b.removeChild(b.busyImg)}function q(c,e,f,k,n){function C(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)});N.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=O;b(c);return{pdiv:e,replies:d}}function x(e,f,g,n,t){function u(){l(x);c.addReply(C,function(b){C.id=b;c.replies.push(C);p(x);g&&g()},function(c){v();m(x);b.handleError(c,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},n,t)}function v(){d(C,x,function(b){u()},!0)}var z=M().pdiv,C=b.newComment(e,b.getCurrentUser());C.pCommentId=c.id;null==c.replies&&(c.replies=[]);var x=q(C,c.replies,z,k+1);f?v():u()}if(n||!c.isResolved){z.style.display="none";var O=document.createElement("div");O.className="geCommentContainer";O.setAttribute("data-commentId",c.id);O.style.marginLeft=20*k+5+"px";c.isResolved&&!Editor.isDarkMode()&&(O.style.backgroundColor="ghostWhite");
var D=document.createElement("div");D.className="geCommentHeader";var K=document.createElement("img");K.className="geCommentUserImg";K.src=c.user.pictureUrl||Editor.userImage;D.appendChild(K);K=document.createElement("div");K.className="geCommentHeaderTxt";D.appendChild(K);var U=document.createElement("div");U.className="geCommentUsername";mxUtils.write(U,c.user.displayName||"");K.appendChild(U);U=document.createElement("div");U.className="geCommentDate";U.setAttribute("data-commentId",c.id);g(c,
-U);K.appendChild(U);O.appendChild(D);D=document.createElement("div");D.className="geCommentTxt";mxUtils.write(D,c.content||"");O.appendChild(D);c.isLocked&&(O.style.opacity="0.5");D=document.createElement("div");D.className="geCommentActions";var M=document.createElement("ul");M.className="geCommentActionsList";D.appendChild(M);u||c.isLocked||0!=k&&!v||C(mxResources.get("reply"),function(){x("",!0)},c.isResolved);K=b.getCurrentUser();null==K||K.id!=c.user.id||u||c.isLocked||(C(mxResources.get("edit"),
+U);K.appendChild(U);O.appendChild(D);D=document.createElement("div");D.className="geCommentTxt";mxUtils.write(D,c.content||"");O.appendChild(D);c.isLocked&&(O.style.opacity="0.5");D=document.createElement("div");D.className="geCommentActions";var N=document.createElement("ul");N.className="geCommentActionsList";D.appendChild(N);u||c.isLocked||0!=k&&!v||C(mxResources.get("reply"),function(){x("",!0)},c.isResolved);K=b.getCurrentUser();null==K||K.id!=c.user.id||u||c.isLocked||(C(mxResources.get("edit"),
function(){function e(){d(c,O,function(){l(O);c.editComment(c.content,function(){p(O)},function(c){m(O);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}e()},c.isResolved),C(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){l(O);c.deleteComment(function(b){if(!0===b){b=O.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var d=O.querySelectorAll(".geCommentAction");for(b=
-0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);p(O);O.style.opacity="0.5"}else{d=N(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}z.style.display=0==H.getElementsByTagName("div").length?"block":"none"}},function(c){m(O);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));u||c.isLocked||0!=k||C(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=N(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);F||(f[k].style.display="none")}t()}c.isResolved?x(mxResources.get("reOpened")+": ",!0,
+0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);p(O);O.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}z.style.display=0==H.getElementsByTagName("div").length?"block":"none"}},function(c){m(O);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));u||c.isLocked||0!=k||C(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);E||(f[k].style.display="none")}t()}c.isResolved?x(mxResources.get("reOpened")+": ",!0,
d,!1,!0):x(mxResources.get("markedAsResolved"),!1,d,!0)});O.appendChild(D);null!=f?H.insertBefore(O,f.nextSibling):H.appendChild(O);for(f=0;null!=c.replies&&f<c.replies.length;f++)D=c.replies[f],D.isResolved=c.isResolved,q(D,c.replies,null,k+1,n);null!=y&&(y.comment.id==c.id?(n=c.content,c.content=y.comment.content,d(c,O,y.saveCallback,y.deleteOnCancel),c.content=n):null==y.comment.id&&y.comment.pCommentId==c.id&&(H.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel)));return O}}
var u=!b.canComment(),v=b.canReplyToReplies(),y=null,x=document.createElement("div");x.className="geCommentsWin";x.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";x.appendChild(H);var z=document.createElement("span");z.style.cssText="display:none;padding-top:10px;text-align:center;";
mxUtils.write(z,mxResources.get("noCommentsFound"));var D=document.createElement("div");D.className="geToolbarContainer geCommentsToolbar";D.style.height=G;D.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";D.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";G=document.createElement("a");G.className="geButton";if(!u){var L=G.cloneNode();L.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';L.setAttribute("title",mxResources.get("create")+
"...");mxEvent.addListener(L,"click",function(c){function e(){d(f,g,function(c){l(g);b.addComment(c,function(b){c.id=b;J.push(c);p(g)},function(c){m(g);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var f=b.newComment("",b.getCurrentUser()),g=q(f,J,null,0);e();c.preventDefault();mxEvent.consume(c)});D.appendChild(L)}L=G.cloneNode();L.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';L.setAttribute("title",mxResources.get("showResolved"));
-var F=!1;Editor.isDarkMode()&&(L.style.filter="invert(100%)");mxEvent.addListener(L,"click",function(b){this.className=(F=!F)?"geButton geCheckedBtn":"geButton";C();b.preventDefault();mxEvent.consume(b)});D.appendChild(L);b.commentsRefreshNeeded()&&(L=G.cloneNode(),L.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',L.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(L.style.filter="invert(100%)"),mxEvent.addListener(L,"click",function(b){C();
+var E=!1;Editor.isDarkMode()&&(L.style.filter="invert(100%)");mxEvent.addListener(L,"click",function(b){this.className=(E=!E)?"geButton geCheckedBtn":"geButton";C();b.preventDefault();mxEvent.consume(b)});D.appendChild(L);b.commentsRefreshNeeded()&&(L=G.cloneNode(),L.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',L.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(L.style.filter="invert(100%)"),mxEvent.addListener(L,"click",function(b){C();
b.preventDefault();mxEvent.consume(b)}),D.appendChild(L));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){n();b.preventDefault();mxEvent.consume(b)}),D.appendChild(G));x.appendChild(D);var J=[],C=mxUtils.bind(this,function(){this.hasError=!1;if(null!=y)try{y.div=y.div.cloneNode(!0);
-var c=y.div.querySelector(".geCommentEditTxtArea"),e=y.div.querySelector(".geCommentEditBtns");y.comment.content=c.value;c.parentNode.removeChild(c);e.parentNode.removeChild(e)}catch(N){b.handleError(N)}H.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";v=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(z);z.style.display="block";J=b;for(b=0;b<J.length;b++)c(J[b].replies),q(J[b],J,null,0,F);null!=y&&null==y.comment.id&&null==y.comment.pCommentId&&(H.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel))},mxUtils.bind(this,function(b){H.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(b&&b.message?
+var c=y.div.querySelector(".geCommentEditTxtArea"),e=y.div.querySelector(".geCommentEditBtns");y.comment.content=c.value;c.parentNode.removeChild(c);e.parentNode.removeChild(e)}catch(M){b.handleError(M)}H.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";v=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(z);z.style.display="block";J=b;for(b=0;b<J.length;b++)c(J[b].replies),q(J[b],J,null,0,E);null!=y&&null==y.comment.id&&null==y.comment.pCommentId&&(H.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.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"))});C();this.refreshComments=C;D=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(g(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<J.length;e++)b(J[e])}});setInterval(D,6E4);this.refreshCommentsTime=D;this.window=
new mxWindow(mxResources.get("comments"),x,c,e,k,f,!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 K=mxUtils.bind(this,function(){var b=this.window.getX(),c=this.window.getY();this.window.setLocation(b,c)});mxEvent.addListener(window,"resize",K);this.destroy=function(){mxEvent.removeListener(window,"resize",K);this.window.destroy()}},ConfirmDialog=function(b,c,e,
@@ -3877,14 +3875,14 @@ f;return G.apply(this,arguments)};u.hoverIcons.getStateAt=function(c,d,e){return
v.getIncomingTreeEdges(l[f]),k=v.getIncomingTreeEdges(c[f]);if(0==m.length&&0<k.length){var n=this.cloneCell(k[0]);this.addEdge(n,v.getDefaultParent(),this.model.getTerminal(k[0],!0),l[f])}}}finally{this.model.endUpdate()}return l};var z=v.moveCells;v.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])||v.model.isEdge(c[q])&&null==v.model.getTerminal(c[q],
!0)){g=v.model.getParent(c[q]);break}if(null!=n&&g!=n&&null!=this.view.getState(c[0])){var t=v.getIncomingTreeEdges(c[0]);if(0<t.length){var u=v.view.getState(v.model.getTerminal(t[0],!0));if(null!=u){var C=v.view.getState(n);null!=C&&(d=(C.getCenterX()-u.getCenterX())/v.view.scale,e=(C.getCenterY()-u.getCenterY())/v.view.scale)}}}}m=z.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=v.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==v.getIncomingTreeEdges(m[q]).length){p=n;if(null==p||p==v.model.getParent(c[q]))p=v.model.getTerminal(t[0],!0);f=this.cloneCell(t[0]);this.addEdge(f,v.getDefaultParent(),p,m[q])}}finally{this.model.endUpdate()}return m};if(null!=u.sidebar){var D=u.sidebar.dropAndConnect;u.sidebar.dropAndConnect=
-function(c,d,e,f){var g=v.model,k=null;g.beginUpdate();try{if(k=D.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=v.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var L={88:u.actions.get("selectChildren"),84:u.actions.get("selectSubtree"),80:u.actions.get("selectParent"),83:u.actions.get("selectSiblings")},F=u.onKeyDown;u.onKeyDown=function(c){try{if(v.isEnabled()&&
+function(c,d,e,f){var g=v.model,k=null;g.beginUpdate();try{if(k=D.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=v.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var L={88:u.actions.get("selectChildren"),84:u.actions.get("selectSubtree"),80:u.actions.get("selectParent"),83:u.actions.get("selectSiblings")},E=u.onKeyDown;u.onKeyDown=function(c){try{if(v.isEnabled()&&
!v.isEditing()&&b(v.getSelectionCell())&&1==v.getSelectionCount()){var d=null;0<v.getIncomingTreeEdges(v.getSelectionCell()).length&&(9==c.which?d=mxEvent.isShiftDown(c)?l(v.getSelectionCell()):m(v.getSelectionCell()):13==c.which&&(d=g(v.getSelectionCell(),!mxEvent.isShiftDown(c))));if(null!=d&&0<d.length)1==d.length&&v.model.isEdge(d[0])?v.setSelectionCell(v.model.getTerminal(d[0],!1)):v.setSelectionCell(d[d.length-1]),null!=u.hoverIcons&&u.hoverIcons.update(v.view.getState(v.getSelectionCell())),
v.startEditingAtCell(v.getSelectionCell()),mxEvent.consume(c);else if(mxEvent.isAltDown(c)&&mxEvent.isShiftDown(c)){var e=L[c.keyCode];null!=e&&(e.funct(c),mxEvent.consume(c))}else 37==c.keyCode?(q(v.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(c)):38==c.keyCode?(q(v.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(c)):39==c.keyCode?(q(v.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(c)):40==c.keyCode&&(q(v.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
-mxEvent.consume(c))}}catch(E){u.handleError(E)}mxEvent.isConsumed(c)||F.apply(this,arguments)};var J=v.connectVertex;v.connectVertex=function(c,e,f,k,n,p,q){var t=v.getIncomingTreeEdges(c);if(b(c)){var u=d(c),z=u==mxConstants.DIRECTION_EAST||u==mxConstants.DIRECTION_WEST,C=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return u==e||0==t.length?m(c,e):z==C?l(c):g(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return J.apply(this,arguments)};v.getSubtree=function(d){var e=
+mxEvent.consume(c))}}catch(F){u.handleError(F)}mxEvent.isConsumed(c)||E.apply(this,arguments)};var J=v.connectVertex;v.connectVertex=function(c,e,f,k,n,p,q){var t=v.getIncomingTreeEdges(c);if(b(c)){var u=d(c),z=u==mxConstants.DIRECTION_EAST||u==mxConstants.DIRECTION_WEST,C=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return u==e||0==t.length?m(c,e):z==C?l(c):g(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return J.apply(this,arguments)};v.getSubtree=function(d){var e=
[d];!c(d)&&!b(d)||t(d)||v.traverse(d,!0,function(b,c){var d=null!=c&&v.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 C=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){C.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",
"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;u.hoverIcons.reset();mxEvent.consume(b)})))};var K=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){K.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 M=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){M.apply(this,
-arguments);null!=this.moveHandle&&(this.moveHandle.style.display=b?"":"none")};var aa=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(b,c){aa.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",
+this.graph.isMouseDown=!0;u.hoverIcons.reset();mxEvent.consume(b)})))};var K=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){K.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 Z=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(b,c){Z.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;");
b.vertex=!0;var c=new mxCell("Central Idea",new mxGeometry(160,60,100,40),'ellipse;whiteSpace=wrap;html=1;align=center;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');c.vertex=!0;var d=new mxCell("Topic",new mxGeometry(320,40,80,20),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
@@ -3909,9 +3907,9 @@ e.className="geTitle",f=document.createElement("span"),f.style.cssText="position
f.style.cssText="position:relative;top:6px;",mxUtils.write(f,mxResources.get("openLibrary")),e.appendChild(f),c.appendChild(e),mxEvent.addListener(e,"click",b.actions.get("openLibrary").funct)):(e=d("newLibrary",mxResources.get("newLibrary")),e.style.boxSizing="border-box",e.style.paddingRight="6px",e.style.paddingLeft="6px",e.style.height="32px",e.style.left="0",e=d("openLibraryFrom",mxResources.get("openLibraryFrom")),e.style.borderLeft="1px solid lightgray",e.style.boxSizing="border-box",e.style.paddingRight=
"6px",e.style.paddingLeft="6px",e.style.height="32px",e.style.left="50%");c.appendChild(b.sidebar.container);c.style.overflow="hidden";return c});b.sidebarWindow.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){b.sidebarWindow.window.fit()}));b.sidebarWindow.window.minimumSize=new mxRectangle(0,0,90,90);b.sidebarWindow.window.setVisible(!0);b.getLocalData("sidebar",function(c){b.sidebar.showEntries(c,null,!0)});b.restoreLibraries()}else b.sidebarWindow.window.setVisible(null!=c?c:!b.sidebarWindow.window.isVisible())}
if("1"==urlParams.lightbox||"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=null;else{var e=0;try{e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth}catch(z){}var k=function(b,c,d,e,f,g,k){var l=document.createElement("div");l.className="geSidebarContainer";l.style.position="absolute";l.style.width="100%";l.style.height="100%";l.style.border="1px solid whiteSmoke";l.style.overflowX="hidden";l.style.overflowY=
-"auto";k(l);this.window=new mxWindow(c,l,d,e,f,g,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.setLocation=function(b,c){var d=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-this.table.clientWidth-2));c=Math.max(0,Math.min(c,d-this.table.clientHeight-
-2));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};mxClient.IS_SF&&(this.window.div.onselectstart=mxUtils.bind(this,function(c){null==c&&(c=window.event);return null!=c&&b.isSelectionAllowed(c)}))};Editor.checkmarkImage=Graph.createSvgImage(22,18,'<path transform="translate(4 0)" d="M7.181,15.007a1,1,0,0,1-.793-0.391L3.222,10.5A1,1,0,1,1,4.808,9.274L7.132,12.3l6.044-8.86A1,1,0,1,1,14.83,4.569l-6.823,10a1,1,0,0,1-.8.437H7.181Z" fill="#29b6f2"/>').src;mxWindow.prototype.closeImage=
-Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;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"/>');
+"auto";k(l);this.window=new mxWindow(c,l,d,e,f,g,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.setLocation=function(b,c){var d=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,e=this.table.firstChild.firstChild.firstChild;b=Math.max(0,Math.min(b,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-e.clientWidth-2));
+c=Math.max(0,Math.min(c,d-e.clientHeight-2));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};mxClient.IS_SF&&(this.window.div.onselectstart=mxUtils.bind(this,function(c){null==c&&(c=window.event);return null!=c&&b.isSelectionAllowed(c)}))};Editor.checkmarkImage=Graph.createSvgImage(22,18,'<path transform="translate(4 0)" d="M7.181,15.007a1,1,0,0,1-.793-0.391L3.222,10.5A1,1,0,1,1,4.808,9.274L7.132,12.3l6.044-8.86A1,1,0,1,1,14.83,4.569l-6.823,10a1,1,0,0,1-.8.437H7.181Z" fill="#29b6f2"/>').src;
+mxWindow.prototype.closeImage=Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;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 f=document.createElement("link");f.setAttribute("rel","stylesheet");f.setAttribute("href",STYLE_PATH+"/dark.css");f.setAttribute("charset","UTF-8");f.setAttribute("type",
@@ -3948,74 +3946,75 @@ f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.sketchMode}
new ParseDialog(d,"Insert from Text");d.showDialog(b.container,620,420,!0,!1);b.init()}));d.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var b=new ParseDialog(d,"Insert from Text","formatSql");d.showDialog(b.container,620,420,!0,!1);b.init()}));d.actions.put("toggleShapes",new Action(mxResources.get("1"==urlParams.sketch?"moreShapes":"shapes")+"...",function(){c(d)},null,null,Editor.ctrlKey+"+Shift+K"));d.actions.put("toggleFormat",new Action(mxResources.get("format")+
"...",function(){b(d)})).shortcut=d.actions.get("formatPanel").shortcut;EditorUi.enablePlantUml&&!d.isOffline()&&d.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var b=new ParseDialog(d,mxResources.get("plantUml")+"...","plantUml");d.showDialog(b.container,620,420,!0,!1);b.init()}));d.actions.put("mermaid",new Action(mxResources.get("mermaid")+"...",function(){var b=new ParseDialog(d,mxResources.get("mermaid")+"...","mermaid");d.showDialog(b.container,620,420,!0,!1);
b.init()}));var g=this.addPopupMenuCellEditItems;this.put("editCell",new Menu(mxUtils.bind(this,function(b,c){var d=this.editorUi.editor.graph,e=d.getSelectionCell();g.call(this,b,e,null,c);this.addMenuItems(b,["editTooltip"],c);d.model.isVertex(e)&&this.addMenuItems(b,["editGeometry"],c);this.addMenuItems(b,["-","edit"],c)})));this.addPopupMenuCellEditItems=function(b,c,d,e){b.addSeparator();this.addSubmenu("editCell",b,e,mxResources.get("edit"))};this.put("diagram",new Menu(mxUtils.bind(this,function(b,
-c){var e=d.getCurrentFile();d.menus.addSubmenu("extras",b,c,mxResources.get("preferences"));b.addSeparator(c);if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)d.menus.addMenuItems(b,"new open - synchronize - save saveAs -".split(" "),c);else if("1"==urlParams.embed){"1"!=urlParams.noSaveBtn&&"1"!=urlParams.embedInline&&d.menus.addMenuItems(b,["-","save"],c);if("1"==urlParams.saveAndExit||"1"==urlParams.noSaveBtn&&"0"!=urlParams.saveAndExit)d.menus.addMenuItems(b,["saveAndExit"],c),null!=e&&e.isRevisionHistorySupported()&&
-d.menus.addMenuItems(b,["revisionHistory"],c);b.addSeparator(c)}else d.mode==App.MODE_ATLAS?d.menus.addMenuItems(b,["save","synchronize","-"],c):"1"!=urlParams.noFileMenu&&(d.menus.addMenuItems(b,["new"],c),d.menus.addSubmenu("openFrom",b,c),isLocalStorage&&this.addSubmenu("openRecent",b,c),"1"!=urlParams.sketch&&(b.addSeparator(c),null!=e&&e.constructor==DriveFile&&d.menus.addMenuItems(b,["share"],c),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,
-["synchronize"],c)),b.addSeparator(c),d.menus.addSubmenu("save",b,c));d.menus.addSubmenu("exportAs",b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?d.menus.addMenuItems(b,["import"],c):"1"!=urlParams.noFileMenu&&d.menus.addSubmenu("importFrom",b,c);"1"!=urlParams.sketch&&(d.menus.addMenuItems(b,["-","outline"],c),d.commentsSupported()&&d.menus.addMenuItems(b,["comments"],c));d.menus.addMenuItems(b,"- findReplace layers tags - pageSetup".split(" "),c);"1"==urlParams.noFileMenu||mxClient.IS_IOS&&
-navigator.standalone||d.menus.addMenuItems(b,["print"],c);null!=e&&null!=d.fileNode&&"1"!=urlParams.embedInline&&(e=null!=e.getTitle()?e.getTitle():d.defaultFilename,/(\.html)$/i.test(e)||/(\.svg)$/i.test(e)||this.addMenuItems(b,["-","properties"]));b.addSeparator(c);d.menus.addSubmenu("help",b,c);"1"==urlParams.embed?"1"!=urlParams.noExitBtn&&d.menus.addMenuItems(b,["-","exit"],c):"1"!=urlParams.noFileMenu&&d.menus.addMenuItems(b,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(b,
-c){var e=d.getCurrentFile();null!=e&&e.constructor==DriveFile?d.menus.addMenuItems(b,["save","makeCopy","-","rename","moveToFolder"],c):(d.menus.addMenuItems(b,["save","saveAs","-","rename"],c),d.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(b,["upload"],c):d.menus.addMenuItems(b,["makeCopy"],c));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["-","synchronize"],c);
-d.menus.addMenuItems(b,["-","autosave"],c);null!=e&&e.isRevisionHistorySupported()&&d.menus.addMenuItems(b,["-","revisionHistory"],c)})));var k=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){k.funct(b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||d.menus.addMenuItems(b,["publishLink"],c);d.mode!=App.MODE_ATLAS&&"1"!=urlParams.extAuth&&(b.addSeparator(c),d.menus.addSubmenu("embed",b,c))})));var l=this.get("language");this.put("table",new Menu(mxUtils.bind(this,
-function(b,c){d.menus.addInsertTableCellItem(b,c)})));var m=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(b,c){m.funct(b,c);this.addMenuItems(b,["editDiagram"],c);"1"==urlParams.sketch&&(b.addSeparator(c),b.addItem(mxResources.get("csv")+"...",null,function(){d.showImportCsvDialog()},c,null,mxUtils.bind(e,e.isEnabled)),d.addInsertMenuItems(b,c,["formatSql","-","fromText","plantUml","mermaid"]))})));this.put("extras",new Menu(mxUtils.bind(this,function(b,c){"1"!=
-urlParams.embed&&"1"!=urlParams.extAuth&&d.menus.addSubmenu("theme",b,c);null!=l&&d.menus.addSubmenu("language",b,c);d.menus.addSubmenu("units",b,c);d.menus.addMenuItems(b,"- pageScale ruler - scrollbars tooltips - copyConnect collapseExpand -".split(" "),c);"1"==urlParams.sketch&&this.addMenuItems(b,["toggleSketchMode"],c);"1"!=urlParams.embedInline&&((Editor.isDarkMode()||!mxClient.IS_IE&&!mxClient.IS_IE11)&&this.addMenuItems(b,["toggleDarkMode"],c),"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&
-d.menus.addMenuItems(b,["-","showStartScreen","search","scratchpad"],c),"1"==urlParams.sketch&&null==urlParams.pages&&this.addMenuItems(b,["togglePagesVisible"],c));b.addSeparator(c);d.menus.addMenuItem(b,"configuration",c);!d.isOfflineApp()&&isLocalStorage&&d.menus.addMenuItem(b,"plugins",c);this.addMenuItems(b,["-","fullscreen"],c);b.addSeparator(c)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(b,c){d.menus.addMenuItems(b,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),
-c)})));mxUtils.bind(this,function(){var b=this.get("insert"),c=b.funct;b.funct=function(b,e){"1"==urlParams.sketch?(d.menus.addMenuItems(b,["insertFreehand"],e),d.insertTemplateEnabled&&!d.isOffline()&&d.menus.addMenuItems(b,["insertTemplate"],e)):(c.apply(this,arguments),d.menus.addSubmenu("table",b,e),b.addSeparator(e));d.menus.addMenuItems(b,["-","toggleShapes"],e)}})();var n="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),p=function(b,c,e,f){b.addItem(e,
-null,mxUtils.bind(this,function(){var b=new CreateGraphDialog(d,e,f);d.showDialog(b.container,620,420,!0,!1);b.init()}),c)};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 G=!1;EditorUi.prototype.initFormatWindow=function(){if(!G){G=!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 H=EditorUi.prototype.init;EditorUi.prototype.init=function(){function d(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",k.style.width="34px"):mxUtils.write(k,
-b);mxEvent.addListener(k,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(k,"click",function(b){"disabled"!=k.getAttribute("disabled")&&c(b);mxEvent.consume(b)});null==d&&(k.style.marginRight="4px");null!=e&&k.setAttribute("title",e);null!=f&&(b=function(){f.isEnabled()?(k.removeAttribute("disabled"),k.style.cursor="pointer"):(k.setAttribute("disabled","disabled"),k.style.cursor="default")},f.addListener("stateChanged",b),n.addListener("enabledChanged",
-b),b());return k}function g(b,c,d){d=document.createElement("div");d.className="geMenuItem";d.style.display="inline-block";d.style.verticalAlign="top";d.style.marginRight="6px";d.style.padding="0 4px 0 4px";d.style.height="30px";d.style.position="relative";d.style.top="0px";"1"==urlParams.sketch&&(d.style.boxShadow="none");for(var e=0;e<b.length;e++)null!=b[e]&&("1"==urlParams.sketch&&(b[e].style.padding="10px 8px",b[e].style.width="30px"),b[e].style.margin="0px",b[e].style.boxShadow="none",d.appendChild(b[e]));
-null!=c&&mxUtils.setOpacity(d,c);null!=m.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(d,m.statusContainer):p.appendChild(d);return d}function k(){if("1"==urlParams.sketch)"1"!=urlParams.embedInline&&(V.style.left=58>Q.offsetTop-Q.offsetHeight/2?"70px":"10px");else{for(var b=p.firstChild;null!=b;){var c=b.nextSibling;"geMenuItem"!=b.className&&"geItem"!=b.className||b.parentNode.removeChild(b);b=c}q=p.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;
-var b=1E3>e||"1"==urlParams.sketch,k=null;b||(k=d("diagram"));c=b?d("diagram",null,Editor.drawLogoImage):null;null!=c&&(k=c);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);c=d("insert",!0,b?G:null);
-g([c,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<=e&&(g([ia,da],60),520<=e&&g([ta,640<=e?f("",sa.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",sa,Editor.zoomInImage):null,640<=e?f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",W,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));c=m.menus.get("language");null!=c&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=e&&"1"!=urlParams.sketch?(null==pa&&(c=t.addMenu("",c.funct),c.setAttribute("title",mxResources.get("language")),c.className="geToolbarButton",c.style.backgroundImage="url("+Editor.globeImage+")",c.style.backgroundPosition="center center",c.style.backgroundRepeat="no-repeat",c.style.backgroundSize=
-"24px 24px",c.style.position="absolute",c.style.height="24px",c.style.width="24px",c.style.zIndex="1",c.style.right="8px",c.style.cursor="pointer",c.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(c),pa=c),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=pa&&(pa.parentNode.removeChild(pa),pa=null))}H.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&&this.toggleScratchpad();if("1"!=urlParams.sketch&&1E3<=e||null!=urlParams.clibs||null!=urlParams.libs||
-null!=urlParams["search-shapes"])c(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);this.div.style.left=Math.max(m.embedViewport.x,Math.min(b,m.embedViewport.x+m.embedViewport.width-
-c))+"px";b=parseInt(this.div.offsetTop);c=parseInt(this.div.offsetHeight);this.div.style.top=Math.max(m.embedViewport.y,Math.min(b,m.embedViewport.y+m.embedViewport.height-c))+"px"}};this.keyHandler.bindAction(75,!0,"toggleShapes",!0);("1"==urlParams.sketch||1E3<=e)&&"1"!=urlParams.embedInline&&(b(this,!0),"1"==urlParams.sketch&&(this.initFormatWindow(),this.formatWindow.window.toggleMinimized()));var m=this,n=m.editor.graph;m.toolbar=this.createToolbar(m.createDiv("geToolbar"));m.defaultLibraryName=
-mxResources.get("untitledLibrary");var p=document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(m,p);m.statusContainer=m.createStatusContainer();m.statusContainer.style.position="relative";m.statusContainer.style.maxWidth="";m.statusContainer.style.marginTop="7px";m.statusContainer.style.marginLeft="6px";m.statusContainer.style.color="gray";m.statusContainer.style.cursor="default";var u=m.hideCurrentMenu;m.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};
-var v=m.descriptorChanged;m.descriptorChanged=function(){v.apply(this,arguments);var b=m.getCurrentFile();if(null!=b&&null!=b.getTitle()){var c=b.getMode();"google"==c?c="googleDrive":"github"==c?c="gitHub":"gitlab"==c?c="gitLab":"onedrive"==c&&(c="oneDrive");c=mxResources.get(c);p.setAttribute("title",b.getTitle()+(null!=c?" ("+c+")":""))}else p.removeAttribute("title")};m.setStatusText(m.editor.getStatus());p.appendChild(m.statusContainer);m.buttonContainer=document.createElement("div");m.buttonContainer.style.cssText=
-"position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";p.appendChild(m.buttonContainer);m.menubarContainer=m.buttonContainer;m.tabContainer=document.createElement("div");m.tabContainer.className="geTabContainer";m.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var l=m.diagramContainer.parentNode,x=document.createElement("div");x.style.cssText=
-"position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";if("1"==urlParams.winCtrls&&"1"==urlParams.sketch){x.style.top="20px";m.titlebar=document.createElement("div");m.titlebar.style.cssText="position:absolute;top:0px;left:0px;right:0px;height:20px;overflow:hidden;box-shadow: 0px 0px 2px #c0c0c0;";var y=document.createElement("div");y.style.cssText="max-width: calc(100% - 100px);text-overflow: ellipsis;user-select:none;height:20px;margin: 2px 10px;font-size: 12px;white-space: nowrap;overflow: hidden;";
-m.titlebar.appendChild(y);l.appendChild(m.titlebar)}var A=m.menus.get("viewZoom"),G="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,S="1"==urlParams.sketch?document.createElement("div"):null,Q="1"==urlParams.sketch?document.createElement("div"):null,V="1"==urlParams.sketch?document.createElement("div"):null,y=mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes=
-{},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));n.refresh();n.view.validateBackground()});m.addListener("darkModeChanged",y);m.addListener("sketchModeChanged",y);var na=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)V.style.left="10px",V.style.top="10px",Q.style.left="10px",Q.style.top="60px",S.style.top="10px",S.style.right="12px",S.style.left="",m.diagramContainer.setAttribute("data-bounds",m.diagramContainer.style.top+" "+m.diagramContainer.style.left+
-" "+m.diagramContainer.style.width+" "+m.diagramContainer.style.height),m.diagramContainer.style.top="0px",m.diagramContainer.style.left="0px",m.diagramContainer.style.bottom="0px",m.diagramContainer.style.right="0px",m.diagramContainer.style.width="",m.diagramContainer.style.height="";else{var b=m.diagramContainer.getAttribute("data-bounds");if(null!=b){m.diagramContainer.style.background="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()}V.style.left=m.diagramContainer.offsetLeft+"px";V.style.top=m.diagramContainer.offsetTop-V.offsetHeight-4+"px";Q.style.display="";Q.style.left=m.diagramContainer.offsetLeft-
-Q.offsetWidth-4+"px";Q.style.top=m.diagramContainer.offsetTop+"px";S.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-S.offsetWidth+"px";S.style.top=V.style.top;S.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";V.style.visibility="";S.style.visibility=""}),fa=mxUtils.bind(this,function(){oa.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:
-Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";na()}),y=mxUtils.bind(this,function(){fa();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",fa);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";V.style.visibility="hidden";S.style.visibility="hidden";Q.style.display="none"}));Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(b){var c=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(c)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(c)&&(null==
-b.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))});if(null!=m.hoverIcons){var ka=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||ka.apply(this,arguments)}}if(null!=n.freehand){var ra=n.freehand.createStyle;n.freehand.createStyle=function(b){return ra.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){Q.className="geToolbarContainer";S.className="geToolbarContainer";V.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=Q;var la=
-!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){la||(m.statusContainer.style.display="none")});var ja=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=null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):m.editor.getStatus();ja(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",la=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display="none",la=!1)}else m.statusContainer.style.display="inline-block",ja(null),la=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}))):m.editor.addListener("statusChanged",mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));P=d("diagram",null,Editor.menuImage);P.style.boxShadow=
-"none";P.style.padding="6px";P.style.margin="0px";V.appendChild(P);mxEvent.disableContextMenu(P);mxEvent.addGestureListeners(P,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(e-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 ba=document.createElement("a");ba.style.padding="0px";ba.style.boxShadow="none";ba.className="geMenuItem";ba.style.display="inline-block";ba.style.width="40px";ba.style.height="12px";ba.style.marginBottom="-2px";ba.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+
-")";ba.style.backgroundPosition="top center";ba.style.backgroundRepeat="no-repeat";ba.setAttribute("title","Minimize");var ca=!1,R=mxUtils.bind(this,function(){Q.innerHTML="";if(!ca){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";Q.appendChild(b);mxUtils.br(Q);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 e=m.actions.get("toggleShapes");b(e,mxResources.get("shapes")+" ("+e.shortcut+")",G);P=d("table",null,Editor.tableImage);P.style.boxShadow="none";P.style.opacity="0.7";P.style.padding="6px";
-P.style.margin="0px";P.style.width="37px";c(P,null,"pointer");b(m.actions.get("insertTemplate"),mxResources.get("template"),Editor.templateImage)}"1"!=urlParams.embedInline&&Q.appendChild(ba)});mxEvent.addListener(ba,"click",mxUtils.bind(this,function(){ca?(mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, -50%)"),Q.style.padding="8px 6px 4px",Q.style.top="50%",Q.style.bottom="",Q.style.height="",ba.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",ba.style.width="40px",
-ba.style.height="12px",ba.setAttribute("title","Minimize"),ca=!1,R()):(Q.innerHTML="",Q.appendChild(ba),mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, 0)"),Q.style.top="",Q.style.bottom="12px",Q.style.padding="0px",Q.style.height="24px",ba.style.height="24px",ba.style.backgroundImage="url("+Editor.plusImage+")",ba.setAttribute("title",mxResources.get("insert")),ba.style.width="24px",ca=!0)}));R();m.addListener("darkModeChanged",R);m.addListener("sketchModeChanged",R)}else m.editor.addListener("statusChanged",
-mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus())}));if(null!=A){var y=function(b){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)||mxEvent.isShiftDown(b)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},sa=m.actions.get("zoomIn"),W=m.actions.get("zoomOut"),X=m.actions.get("resetView"),ma=m.actions.get("fullscreen");m.actions.get("toggleDarkMode");var qa=m.actions.get("undo"),T=m.actions.get("redo"),ia=f("",qa.funct,null,mxResources.get("undo")+" ("+qa.shortcut+
-")",qa,Editor.undoImage),da=f("",T.funct,null,mxResources.get("redo")+" ("+T.shortcut+")",T,Editor.redoImage),oa=f("",ma.funct,null,mxResources.get("fullscreen"),ma,Editor.fullscreenImage);if(null!=S){A=function(){ea.style.display=null!=m.pages&&("1"==urlParams.pages||1<m.pages.length||Editor.pagesVisible)?"inline-block":"none"};oa.parentNode.removeChild(oa);var ha=m.actions.get("delete"),ua=f("",ha.funct,null,mxResources.get("delete"),ha,Editor.trashImage);ua.style.opacity="0.1";V.appendChild(ua);
-ha.addListener("stateChanged",function(){ua.style.opacity=ha.enabled?"":"0.1"});X=function(){ia.style.display=0<m.editor.undoManager.history.length||n.isEditing()?"inline-block":"none";da.style.display=ia.style.display;ia.style.opacity=qa.enabled?"":"0.1";da.style.opacity=T.enabled?"":"0.1"};V.appendChild(ia);V.appendChild(da);qa.addListener("stateChanged",X);T.addListener("stateChanged",X);X();null!=urlParams.layers&&(X=m.actions.get("layers"),X=f("",X.funct,null,mxResources.get("layers"),X,Editor.layersImage),
-X.style.opacity="0.4",S.appendChild(X));null!=urlParams.tags&&(X=m.actions.get("tags"),X=f("",X.funct,null,mxResources.get("tags"),X,Editor.tagsImage),X.style.opacity="0.4",S.appendChild(X));X=m.actions.get("outline");X=f("",X.funct,null,mxResources.get("outline"),X,Editor.outlineImage);S.appendChild(X);X=f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",W,Editor.zoomOutImage);S.appendChild(X);var P=document.createElement("div");P.innerHTML="100%";P.setAttribute("title",
-mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+" (Enter)");P.style.display="inline-block";P.style.cursor="pointer";P.style.textAlign="center";P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.verticalAlign="top";P.style.padding="6px 0";P.style.fontSize="14px";P.style.width="40px";P.style.opacity="0.4";S.appendChild(P);mxEvent.addListener(P,"click",y);y=f("",sa.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",sa,
-Editor.zoomInImage);S.appendChild(y);"1"==urlParams.embedInline&&(S.appendChild(oa),y=m.actions.get("exit"),S.appendChild(f("",y.funct,null,mxResources.get("exit"),y,Editor.closeImage)));var ea=this.createPageMenuTab(!1);ea.style.display="none";ea.style.position="";ea.style.marginLeft="";ea.style.top="";ea.style.left="";ea.style.height="100%";ea.style.lineHeight="";ea.style.borderStyle="none";ea.style.padding="3px 0";ea.style.margin="0px";ea.style.background="";ea.style.border="";ea.style.boxShadow=
-"none";ea.style.verticalAlign="top";ea.firstChild.style.height="100%";ea.firstChild.style.opacity="0.6";ea.firstChild.style.margin="0px";S.appendChild(ea);m.addListener("fileDescriptorChanged",A);m.addListener("pagesVisibleChanged",A);A();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;";
-V.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;";S.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(V);x.appendChild(S);Q.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;";
-x.appendChild(Q);window.setTimeout(function(){mxUtils.setPrefixedStyle(Q.style,"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(x)}else{var ta=f("",y,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",X,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";P=t.addMenu("100%",A.funct);P.setAttribute("title",mxResources.get("zoom")+
-" (Alt+Mousewheel)");P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.textDecoration="none";P.style.overflow="hidden";P.style.visibility="hidden";P.style.textAlign="center";P.style.cursor="pointer";P.style.height=parseInt(m.tabContainerHeight)-1+"px";P.style.lineHeight=parseInt(m.tabContainerHeight)+1+"px";P.style.position="absolute";P.style.display="block";P.style.fontSize="12px";P.style.width="59px";P.style.right="0px";P.style.bottom="0px";P.style.backgroundImage=
-"url("+mxWindow.prototype.minimizeImage+")";P.style.backgroundPosition="right 6px center";P.style.backgroundRepeat="no-repeat";x.appendChild(P)}(function(b){var c=mxUtils.bind(this,function(){b.innerHTML=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)})(P);var ya=m.setGraphEnabled;m.setGraphEnabled=function(){ya.apply(this,arguments);null!=this.tabContainer&&(P.style.visibility=
-this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==S?this.tabContainerHeight+"px":"0px")}}x.appendChild(p);x.appendChild(m.diagramContainer);l.appendChild(x);m.updateTabContainer();null==S&&x.appendChild(m.tabContainer);var pa=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";Q.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 xa=null,za=null,Ba=null,Ea=null;mxEvent.addGestureListeners(l,function(b){Ea=parseInt(m.diagramContainer.style.height);za=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){Ba=parseInt(m.diagramContainer.style.width);xa=mxEvent.getClientX(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});mxEvent.addGestureListeners(document.body,null,function(b){var c=!1;null!=xa&&(m.diagramContainer.style.width=Math.max(20,Ba+mxEvent.getClientX(b)-xa)+"px",c=!0);null!=za&&(m.diagramContainer.style.height=Math.max(20,
-Ea+mxEvent.getClientY(b)-za)+"px",c=!0);c&&((window.opener||window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:m.diagramContainer.getBoundingClientRect()}),"*"),na(),m.refresh())},function(b){null==xa&&null==za||mxEvent.consume(b);za=xa=null});this.diagramContainer.style.borderRadius="4px";document.body.style.backgroundColor="transparent";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";V.style.visibility="hidden";S.style.visibility=
-"hidden";Q.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,k,f,n,t){this.file=b;this.id=c;this.content=e;this.modifiedDate=k;this.createdDate=f;this.isResolved=n;this.user=t;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,c,e,k,f){c()};DrawioComment.prototype.editComment=function(b,c,e){c()};DrawioComment.prototype.deleteComment=function(b,c){b()};DrawioUser=function(b,c,e,k,f){this.id=b;this.email=c;this.displayName=e;this.pictureUrl=k;this.locale=f};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\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\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\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\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\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\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\npickGDriveFile=Pick 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.\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;
+c){var e=d.getCurrentFile();d.menus.addSubmenu("extras",b,c,mxResources.get("preferences"));b.addSeparator(c);if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)d.menus.addMenuItems(b,"new open - synchronize - save saveAs -".split(" "),c);else if("1"==urlParams.embed||d.mode==App.MODE_ATLAS){"1"!=urlParams.noSaveBtn&&"1"!=urlParams.embedInline&&d.menus.addMenuItems(b,["-","save"],c);if("1"==urlParams.saveAndExit||"1"==urlParams.noSaveBtn&&"0"!=urlParams.saveAndExit||d.mode==App.MODE_ATLAS)d.menus.addMenuItems(b,
+["saveAndExit"],c),null!=e&&e.isRevisionHistorySupported()&&d.menus.addMenuItems(b,["revisionHistory"],c);b.addSeparator(c)}else d.mode==App.MODE_ATLAS?d.menus.addMenuItems(b,["save","synchronize","-"],c):"1"!=urlParams.noFileMenu&&(d.menus.addMenuItems(b,["new"],c),d.menus.addSubmenu("openFrom",b,c),isLocalStorage&&this.addSubmenu("openRecent",b,c),"1"!=urlParams.sketch&&(b.addSeparator(c),null!=e&&e.constructor==DriveFile&&d.menus.addMenuItems(b,["share"],c),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
+null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["synchronize"],c)),b.addSeparator(c),d.menus.addSubmenu("save",b,c));d.menus.addSubmenu("exportAs",b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?d.menus.addMenuItems(b,["import"],c):"1"!=urlParams.noFileMenu&&d.menus.addSubmenu("importFrom",b,c);"1"!=urlParams.sketch&&(d.menus.addMenuItems(b,["-","outline"],c),d.commentsSupported()&&d.menus.addMenuItems(b,["comments"],c));d.menus.addMenuItems(b,"- findReplace layers tags - pageSetup".split(" "),
+c);"1"==urlParams.noFileMenu||mxClient.IS_IOS&&navigator.standalone||d.menus.addMenuItems(b,["print"],c);null!=e&&null!=d.fileNode&&"1"!=urlParams.embedInline&&(e=null!=e.getTitle()?e.getTitle():d.defaultFilename,/(\.html)$/i.test(e)||/(\.svg)$/i.test(e)||this.addMenuItems(b,["-","properties"]));b.addSeparator(c);d.menus.addSubmenu("help",b,c);"1"==urlParams.embed||d.mode==App.MODE_ATLAS?"1"==urlParams.noExitBtn&&d.mode!=App.MODE_ATLAS||d.menus.addMenuItems(b,["-","exit"],c):"1"!=urlParams.noFileMenu&&
+d.menus.addMenuItems(b,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(b,c){var e=d.getCurrentFile();null!=e&&e.constructor==DriveFile?d.menus.addMenuItems(b,["save","makeCopy","-","rename","moveToFolder"],c):(d.menus.addMenuItems(b,["save","saveAs","-","rename"],c),d.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(b,["upload"],c):d.menus.addMenuItems(b,["makeCopy"],c));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
+null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["-","synchronize"],c);d.menus.addMenuItems(b,["-","autosave"],c);null!=e&&e.isRevisionHistorySupported()&&d.menus.addMenuItems(b,["-","revisionHistory"],c)})));var k=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){k.funct(b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||d.menus.addMenuItems(b,["publishLink"],c);d.mode!=App.MODE_ATLAS&&"1"!=urlParams.extAuth&&(b.addSeparator(c),d.menus.addSubmenu("embed",
+b,c))})));var l=this.get("language");this.put("table",new Menu(mxUtils.bind(this,function(b,c){d.menus.addInsertTableCellItem(b,c)})));var m=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(b,c){m.funct(b,c);this.addMenuItems(b,["editDiagram"],c);"1"==urlParams.sketch&&(b.addSeparator(c),b.addItem(mxResources.get("csv")+"...",null,function(){d.showImportCsvDialog()},c,null,mxUtils.bind(e,e.isEnabled)),d.addInsertMenuItems(b,c,["formatSql","-","fromText","plantUml",
+"mermaid"]))})));this.put("extras",new Menu(mxUtils.bind(this,function(b,c){"1"!=urlParams.embed&&"1"!=urlParams.extAuth&&d.menus.addSubmenu("theme",b,c);null!=l&&d.menus.addSubmenu("language",b,c);d.menus.addSubmenu("units",b,c);d.menus.addMenuItems(b,"- pageScale ruler - scrollbars tooltips - copyConnect collapseExpand -".split(" "),c);"1"!=urlParams.embedInline&&("1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&d.menus.addMenuItems(b,["-","showStartScreen","search","scratchpad"],
+c),"1"==urlParams.sketch&&null==urlParams.pages&&this.addMenuItems(b,["togglePagesVisible"],c));b.addSeparator(c);d.menus.addMenuItem(b,"configuration",c);!d.isOfflineApp()&&isLocalStorage&&d.mode!=App.MODE_ATLAS&&d.menus.addMenuItem(b,"plugins",c);this.addMenuItems(b,["-","fullscreen"],c);(Editor.isDarkMode()||!mxClient.IS_IE&&!mxClient.IS_IE11)&&this.addMenuItems(b,["toggleDarkMode"],c);"1"==urlParams.sketch&&this.addMenuItems(b,["-","toggleSketchMode"],c);b.addSeparator(c)})));this.put("insertAdvanced",
+new Menu(mxUtils.bind(this,function(b,c){d.menus.addMenuItems(b,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),c)})));mxUtils.bind(this,function(){var b=this.get("insert"),c=b.funct;b.funct=function(b,e){"1"==urlParams.sketch?(d.menus.addMenuItems(b,["insertFreehand"],e),d.insertTemplateEnabled&&!d.isOffline()&&d.menus.addMenuItems(b,["insertTemplate"],e)):(c.apply(this,arguments),d.menus.addSubmenu("table",b,e),b.addSeparator(e));d.menus.addMenuItems(b,["-",
+"toggleShapes"],e)}})();var n="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),p=function(b,c,e,f){b.addItem(e,null,mxUtils.bind(this,function(){var b=new CreateGraphDialog(d,e,f);d.showDialog(b.container,620,420,!0,!1);b.init()}),c)};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 G=!1;EditorUi.prototype.initFormatWindow=
+function(){if(!G){G=!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 H=EditorUi.prototype.init;EditorUi.prototype.init=function(){function d(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",k.style.width="34px"):mxUtils.write(k,b);mxEvent.addListener(k,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(k,"click",function(b){"disabled"!=k.getAttribute("disabled")&&c(b);mxEvent.consume(b)});
+null==d&&(k.style.marginRight="4px");null!=e&&k.setAttribute("title",e);null!=f&&(b=function(){f.isEnabled()?(k.removeAttribute("disabled"),k.style.cursor="pointer"):(k.setAttribute("disabled","disabled"),k.style.cursor="default")},f.addListener("stateChanged",b),n.addListener("enabledChanged",b),b());return k}function g(b,c,d){d=document.createElement("div");d.className="geMenuItem";d.style.display="inline-block";d.style.verticalAlign="top";d.style.marginRight="6px";d.style.padding="0 4px 0 4px";
+d.style.height="30px";d.style.position="relative";d.style.top="0px";"1"==urlParams.sketch&&(d.style.boxShadow="none");for(var e=0;e<b.length;e++)null!=b[e]&&("1"==urlParams.sketch&&(b[e].style.padding="10px 8px",b[e].style.width="30px"),b[e].style.margin="0px",b[e].style.boxShadow="none",d.appendChild(b[e]));null!=c&&mxUtils.setOpacity(d,c);null!=m.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(d,m.statusContainer):p.appendChild(d);return d}function k(){if("1"==urlParams.sketch)"1"!=urlParams.embedInline&&
+(V.style.left=58>Q.offsetTop-Q.offsetHeight/2?"70px":"10px");else{for(var b=p.firstChild;null!=b;){var c=b.nextSibling;"geMenuItem"!=b.className&&"geItem"!=b.className||b.parentNode.removeChild(b);b=c}q=p.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var b=1E3>e||"1"==urlParams.sketch,k=null;b||(k=d("diagram"));c=b?d("diagram",null,Editor.drawLogoImage):null;null!=c&&(k=c);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);c=d("insert",!0,b?G:null);g([c,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<=e&&(g([ia,da],60),520<=e&&g([ta,640<=e?f("",sa.funct,!0,mxResources.get("zoomIn")+
+" ("+Editor.ctrlKey+" +)",sa,Editor.zoomInImage):null,640<=e?f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",W,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));c=m.menus.get("language");null!=c&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&
+600<=e&&"1"!=urlParams.sketch?(null==pa&&(c=t.addMenu("",c.funct),c.setAttribute("title",mxResources.get("language")),c.className="geToolbarButton",c.style.backgroundImage="url("+Editor.globeImage+")",c.style.backgroundPosition="center center",c.style.backgroundRepeat="no-repeat",c.style.backgroundSize="24px 24px",c.style.position="absolute",c.style.height="24px",c.style.width="24px",c.style.zIndex="1",c.style.right="8px",c.style.cursor="pointer",c.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(c),
+pa=c),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=pa&&(pa.parentNode.removeChild(pa),pa=null))}H.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&&this.toggleScratchpad();if("1"!=urlParams.sketch&&1E3<=e||null!=urlParams.clibs||null!=urlParams.libs||null!=urlParams["search-shapes"])c(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);this.div.style.left=Math.max(m.embedViewport.x,Math.min(b,m.embedViewport.x+m.embedViewport.width-c))+"px";b=parseInt(this.div.offsetTop);c=parseInt(this.div.offsetHeight);this.div.style.top=Math.max(m.embedViewport.y,Math.min(b,m.embedViewport.y+m.embedViewport.height-c))+"px"}};this.keyHandler.bindAction(75,!0,"toggleShapes",!0);("1"==urlParams.sketch||1E3<=e)&&"1"!=urlParams.embedInline&&
+(b(this,!0),"1"==urlParams.sketch&&(this.initFormatWindow(),this.formatWindow.window.toggleMinimized()));var m=this,n=m.editor.graph;m.toolbar=this.createToolbar(m.createDiv("geToolbar"));m.defaultLibraryName=mxResources.get("untitledLibrary");var p=document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(m,p);m.statusContainer=m.createStatusContainer();m.statusContainer.style.position="relative";m.statusContainer.style.maxWidth="";m.statusContainer.style.marginTop=
+"7px";m.statusContainer.style.marginLeft="6px";m.statusContainer.style.color="gray";m.statusContainer.style.cursor="default";var u=m.hideCurrentMenu;m.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=m.descriptorChanged;m.descriptorChanged=function(){v.apply(this,arguments);var b=m.getCurrentFile();if(null!=b&&null!=b.getTitle()){var c=b.getMode();"google"==c?c="googleDrive":"github"==c?c="gitHub":"gitlab"==c?c="gitLab":"onedrive"==c&&(c="oneDrive");
+c=mxResources.get(c);p.setAttribute("title",b.getTitle()+(null!=c?" ("+c+")":""))}else p.removeAttribute("title")};m.setStatusText(m.editor.getStatus());p.appendChild(m.statusContainer);m.buttonContainer=document.createElement("div");m.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";p.appendChild(m.buttonContainer);m.menubarContainer=m.buttonContainer;m.tabContainer=document.createElement("div");m.tabContainer.className=
+"geTabContainer";m.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var l=m.diagramContainer.parentNode,x=document.createElement("div");x.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";if("1"==urlParams.winCtrls&&"1"==urlParams.sketch){x.style.top="20px";m.titlebar=document.createElement("div");m.titlebar.style.cssText=
+"position:absolute;top:0px;left:0px;right:0px;height:20px;overflow:hidden;box-shadow: 0px 0px 2px #c0c0c0;";var y=document.createElement("div");y.style.cssText="max-width: calc(100% - 100px);text-overflow: ellipsis;user-select:none;height:20px;margin: 2px 10px;font-size: 12px;white-space: nowrap;overflow: hidden;";m.titlebar.appendChild(y);l.appendChild(m.titlebar)}var A=m.menus.get("viewZoom"),G="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,S="1"==urlParams.sketch?document.createElement("div"):
+null,Q="1"==urlParams.sketch?document.createElement("div"):null,V="1"==urlParams.sketch?document.createElement("div"):null,y=mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));n.refresh();n.view.validateBackground()});m.addListener("darkModeChanged",y);m.addListener("sketchModeChanged",
+y);var oa=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)V.style.left="10px",V.style.top="10px",Q.style.left="10px",Q.style.top="60px",S.style.top="10px",S.style.right="12px",S.style.left="",m.diagramContainer.setAttribute("data-bounds",m.diagramContainer.style.top+" "+m.diagramContainer.style.left+" "+m.diagramContainer.style.width+" "+m.diagramContainer.style.height),m.diagramContainer.style.top="0px",m.diagramContainer.style.left="0px",m.diagramContainer.style.bottom="0px",m.diagramContainer.style.right=
+"0px",m.diagramContainer.style.width="",m.diagramContainer.style.height="";else{var b=m.diagramContainer.getAttribute("data-bounds");if(null!=b){m.diagramContainer.style.background="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()}V.style.left=m.diagramContainer.offsetLeft+"px";V.style.top=m.diagramContainer.offsetTop-V.offsetHeight-4+"px";Q.style.display="";Q.style.left=m.diagramContainer.offsetLeft-Q.offsetWidth-4+"px";Q.style.top=m.diagramContainer.offsetTop+"px";S.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-S.offsetWidth+"px";S.style.top=V.style.top;
+S.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";V.style.visibility="";S.style.visibility=""}),fa=mxUtils.bind(this,function(){na.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";oa()}),y=mxUtils.bind(this,
+function(){fa();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",fa);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";V.style.visibility="hidden";S.style.visibility="hidden";Q.style.display="none"}));Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(b){var c=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(c)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(c)&&(null==b.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))});if(null!=m.hoverIcons){var ka=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||ka.apply(this,
+arguments)}}if(null!=n.freehand){var ra=n.freehand.createStyle;n.freehand.createStyle=function(b){return ra.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){Q.className="geToolbarContainer";S.className="geToolbarContainer";V.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=Q;var la=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){la||(m.statusContainer.style.display="none")});
+var ja=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=
+null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):m.editor.getStatus();ja(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",la=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display=
+"none",la=!1)}else m.statusContainer.style.display="inline-block",ja(null),la=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}))):m.editor.addListener("statusChanged",mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));P=d("diagram",null,Editor.menuImage);P.style.boxShadow="none";P.style.padding="6px";P.style.margin="0px";V.appendChild(P);mxEvent.disableContextMenu(P);mxEvent.addGestureListeners(P,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(e-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 aa=document.createElement("a");aa.style.padding="0px";aa.style.boxShadow="none";aa.className="geMenuItem";aa.style.display="inline-block";aa.style.width="40px";aa.style.height="12px";aa.style.marginBottom="-2px";aa.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";aa.style.backgroundPosition="top center";aa.style.backgroundRepeat="no-repeat";aa.setAttribute("title","Minimize");var ba=!1,R=mxUtils.bind(this,function(){Q.innerHTML="";if(!ba){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";Q.appendChild(b);mxUtils.br(Q);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 e=m.actions.get("toggleShapes");b(e,mxResources.get("shapes")+" ("+e.shortcut+")",G);P=d("table",null,Editor.tableImage);P.style.boxShadow="none";P.style.opacity="0.7";P.style.padding="6px";P.style.margin="0px";P.style.width="37px";c(P,null,"pointer");b(m.actions.get("insertTemplate"),
+mxResources.get("template"),Editor.templateImage)}"1"!=urlParams.embedInline&&Q.appendChild(aa)});mxEvent.addListener(aa,"click",mxUtils.bind(this,function(){ba?(mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, -50%)"),Q.style.padding="8px 6px 4px",Q.style.top="50%",Q.style.bottom="",Q.style.height="",aa.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",aa.style.width="40px",aa.style.height="12px",aa.setAttribute("title","Minimize"),ba=!1,R()):(Q.innerHTML="",Q.appendChild(aa),
+mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, 0)"),Q.style.top="",Q.style.bottom="12px",Q.style.padding="0px",Q.style.height="24px",aa.style.height="24px",aa.style.backgroundImage="url("+Editor.plusImage+")",aa.setAttribute("title",mxResources.get("insert")),aa.style.width="24px",ba=!0)}));R();m.addListener("darkModeChanged",R);m.addListener("sketchModeChanged",R)}else m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus())}));if(null!=
+A){var y=function(b){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)||mxEvent.isShiftDown(b)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},sa=m.actions.get("zoomIn"),W=m.actions.get("zoomOut"),X=m.actions.get("resetView"),ma=m.actions.get("fullscreen");m.actions.get("toggleDarkMode");var qa=m.actions.get("undo"),T=m.actions.get("redo"),ia=f("",qa.funct,null,mxResources.get("undo")+" ("+qa.shortcut+")",qa,Editor.undoImage),da=f("",T.funct,null,mxResources.get("redo")+" ("+
+T.shortcut+")",T,Editor.redoImage),na=f("",ma.funct,null,mxResources.get("fullscreen"),ma,Editor.fullscreenImage);if(null!=S){A=function(){ea.style.display=null!=m.pages&&("1"==urlParams.pages||1<m.pages.length||Editor.pagesVisible)?"inline-block":"none"};na.parentNode.removeChild(na);var ha=m.actions.get("delete"),ua=f("",ha.funct,null,mxResources.get("delete"),ha,Editor.trashImage);ua.style.opacity="0.1";V.appendChild(ua);ha.addListener("stateChanged",function(){ua.style.opacity=ha.enabled?"":"0.1"});
+X=function(){ia.style.display=0<m.editor.undoManager.history.length||n.isEditing()?"inline-block":"none";da.style.display=ia.style.display;ia.style.opacity=qa.enabled?"":"0.1";da.style.opacity=T.enabled?"":"0.1"};V.appendChild(ia);V.appendChild(da);qa.addListener("stateChanged",X);T.addListener("stateChanged",X);X();null!=urlParams.layers&&(X=m.actions.get("layers"),X=f("",X.funct,null,mxResources.get("layers"),X,Editor.layersImage),X.style.opacity="0.4",S.appendChild(X));null!=urlParams.tags&&(X=
+m.actions.get("tags"),X=f("",X.funct,null,mxResources.get("tags"),X,Editor.tagsImage),X.style.opacity="0.4",S.appendChild(X));X=m.actions.get("outline");X=f("",X.funct,null,mxResources.get("outline"),X,Editor.outlineImage);S.appendChild(X);X=f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",W,Editor.zoomOutImage);S.appendChild(X);var P=document.createElement("div");P.innerHTML="100%";P.setAttribute("title",mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+
+" (Enter)");P.style.display="inline-block";P.style.cursor="pointer";P.style.textAlign="center";P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.verticalAlign="top";P.style.padding="6px 0";P.style.fontSize="14px";P.style.width="40px";P.style.opacity="0.4";S.appendChild(P);mxEvent.addListener(P,"click",y);y=f("",sa.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",sa,Editor.zoomInImage);S.appendChild(y);"1"==urlParams.embedInline&&
+(S.appendChild(na),y=m.actions.get("exit"),S.appendChild(f("",y.funct,null,mxResources.get("exit"),y,Editor.closeImage)));var ea=this.createPageMenuTab(!1);ea.style.display="none";ea.style.position="";ea.style.marginLeft="";ea.style.top="";ea.style.left="";ea.style.height="100%";ea.style.lineHeight="";ea.style.borderStyle="none";ea.style.padding="3px 0";ea.style.margin="0px";ea.style.background="";ea.style.border="";ea.style.boxShadow="none";ea.style.verticalAlign="top";ea.firstChild.style.height=
+"100%";ea.firstChild.style.opacity="0.6";ea.firstChild.style.margin="0px";S.appendChild(ea);m.addListener("fileDescriptorChanged",A);m.addListener("pagesVisibleChanged",A);A();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;";V.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;";
+S.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(V);x.appendChild(S);Q.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;";x.appendChild(Q);window.setTimeout(function(){mxUtils.setPrefixedStyle(Q.style,
+"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(x)}else{var ta=f("",y,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",X,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";P=t.addMenu("100%",A.funct);P.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)");P.style.whiteSpace="nowrap";P.style.paddingRight=
+"10px";P.style.textDecoration="none";P.style.textDecoration="none";P.style.overflow="hidden";P.style.visibility="hidden";P.style.textAlign="center";P.style.cursor="pointer";P.style.height=parseInt(m.tabContainerHeight)-1+"px";P.style.lineHeight=parseInt(m.tabContainerHeight)+1+"px";P.style.position="absolute";P.style.display="block";P.style.fontSize="12px";P.style.width="59px";P.style.right="0px";P.style.bottom="0px";P.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")";P.style.backgroundPosition=
+"right 6px center";P.style.backgroundRepeat="no-repeat";x.appendChild(P)}(function(b){var c=mxUtils.bind(this,function(){b.innerHTML=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)})(P);var ya=m.setGraphEnabled;m.setGraphEnabled=function(){ya.apply(this,arguments);null!=this.tabContainer&&(P.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom=
+"hidden"!=this.tabContainer.style.visibility&&null==S?this.tabContainerHeight+"px":"0px")}}x.appendChild(p);x.appendChild(m.diagramContainer);l.appendChild(x);m.updateTabContainer();null==S&&x.appendChild(m.tabContainer);var pa=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";Q.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 xa=null,za=null,Ba=null,Ea=null;mxEvent.addGestureListeners(l,function(b){Ea=parseInt(m.diagramContainer.style.height);za=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){Ba=parseInt(m.diagramContainer.style.width);xa=mxEvent.getClientX(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});mxEvent.addGestureListeners(document.body,null,function(b){var c=!1;null!=xa&&(m.diagramContainer.style.width=Math.max(20,Ba+mxEvent.getClientX(b)-xa)+"px",c=!0);null!=za&&(m.diagramContainer.style.height=Math.max(20,Ea+mxEvent.getClientY(b)-za)+"px",c=!0);c&&((window.opener||
+window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:m.diagramContainer.getBoundingClientRect()}),"*"),oa(),m.refresh())},function(b){null==xa&&null==za||mxEvent.consume(b);za=xa=null});this.diagramContainer.style.borderRadius="4px";document.body.style.backgroundColor="transparent";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";V.style.visibility="hidden";S.style.visibility="hidden";Q.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,k,f,n,t){this.file=b;this.id=c;this.content=e;this.modifiedDate=k;this.createdDate=f;this.isResolved=n;this.user=t;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,c,e,k,f){c()};DrawioComment.prototype.editComment=function(b,c,e){c()};DrawioComment.prototype.deleteComment=function(b,c){b()};DrawioUser=function(b,c,e,k,f){this.id=b;this.email=c;this.displayName=e;this.pictureUrl=k;this.locale=f};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\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\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\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\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\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\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\npickGDriveFile=Pick 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.\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"]?
@@ -4065,9 +4064,9 @@ p=null;else{p=this.graph.createLayersDialog(mxUtils.bind(this,function(){if(this
function(b){null==q&&(q=this.graph.createTagsDialog(mxUtils.bind(this,function(){return!0})),q.div.getElementsByTagName("div")[0].style.position="",q.div.style.maxHeight="160px",q.div.style.maxWidth="120px",q.div.style.padding="2px",q.div.style.overflow="auto",q.div.style.height="auto",q.div.style.position="fixed",q.div.style.fontFamily=Editor.defaultHtmlFont,q.div.style.fontSize="11px",q.div.style.backgroundColor="#eee",q.div.style.color="#000",q.div.style.border="1px solid #d0d0d0",q.div.style.zIndex=
this.toolbarZIndex+1,mxUtils.setOpacity(q.div,80));if(null!=u)u.parentNode.removeChild(u),u=null;else{u=q.div;mxEvent.addListener(u,"mouseleave",function(){u.parentNode.removeChild(u);u=null});b=L.getBoundingClientRect();var c=mxUtils.getDocumentScrollOrigin(document);u.style.left=c.x+b.left-1+"px";u.style.top=c.y+b.bottom-2+"px";document.body.appendChild(u);q.refresh()}}),Editor.tagsImage,mxResources.get("tags")||"Tags");z.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){L.style.display=0<
this.graph.getAllTags().length?"inline-block":"none"}));L.style.display=0<this.graph.getAllTags().length?"inline-block":"none"}}else"lightbox"==x?this.lightboxEnabled&&b(mxUtils.bind(this,function(){this.showLightbox()}),Editor.fullscreenImage,mxResources.get("fullscreen")||"Fullscreen"):null!=this.graphConfig["toolbar-buttons"]&&(x=this.graphConfig["toolbar-buttons"][x],null!=x&&(x.elem=b(null==x.enabled||x.enabled?x.handler:function(){},x.image,x.title,x.enabled)))}null!=this.graph.minimumContainerSize&&
-(this.graph.minimumContainerSize.width=34*m);null!=this.graphConfig.title&&(l=c.ownerDocument.createElement("div"),l.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;",l.setAttribute("title",this.graphConfig.title),mxUtils.write(l,this.graphConfig.title),mxUtils.setOpacity(l,70),e.appendChild(l),this.filename=l);this.minToolbarWidth=34*m;var F=c.style.border,J=mxUtils.bind(this,function(){e.style.width=
+(this.graph.minimumContainerSize.width=34*m);null!=this.graphConfig.title&&(l=c.ownerDocument.createElement("div"),l.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;",l.setAttribute("title",this.graphConfig.title),mxUtils.write(l,this.graphConfig.title),mxUtils.setOpacity(l,70),e.appendChild(l),this.filename=l);this.minToolbarWidth=34*m;var E=c.style.border,J=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"==F&&(c.style.border="1px solid #d0d0d0");document.body.appendChild(e);var f=mxUtils.bind(this,function(){null!=e.parentNode&&e.parentNode.removeChild(e);null!=p&&(p.parentNode.removeChild(p),p=null);c.style.border=F});mxEvent.addListener(document,"mousemove",function(b){for(b=mxEvent.getSource(b);null!=b;){if(b==
+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"==E&&(c.style.border="1px solid #d0d0d0");document.body.appendChild(e);var f=mxUtils.bind(this,function(){null!=e.parentNode&&e.parentNode.removeChild(e);null!=p&&(p.parentNode.removeChild(p),p=null);c.style.border=E});mxEvent.addListener(document,"mousemove",function(b){for(b=mxEvent.getSource(b);null!=b;){if(b==
c||b==e||b==p)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",J):J();this.responsive&&"undefined"!==typeof ResizeObserver&&(new ResizeObserver(function(){null!=e.parentNode&&J()})).observe(c)};
GraphViewer.prototype.disableButton=function(b){var c=this.graphConfig["toolbar-buttons"][b];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"}))};
GraphViewer.prototype.addClickHandler=function(b,c){b.linkPolicy=this.graphConfig.target||b.linkPolicy;b.addClickHandler(this.graphConfig.highlight,mxUtils.bind(this,function(e,k){if(null==k)for(var f=mxEvent.getSource(e);f!=b.container&&null!=f&&null==k;)"a"==f.nodeName.toLowerCase()&&(k=f.getAttribute("href")),f=f.parentNode;null!=c?null==k||b.isCustomLink(k)?mxEvent.consume(e):b.isExternalProtocol(k)||b.isBlankLink(k)||window.setTimeout(function(){c.destroy()},0):null!=k&&null==c&&b.isCustomLink(k)&&
@@ -4090,7 +4089,7 @@ GraphViewer.initCss=function(){try{var b=document.createElement("style");b.type=
GraphViewer.cachedUrls={};GraphViewer.getUrl=function(b,c,e){if(null!=GraphViewer.cachedUrls[b])c(GraphViewer.cachedUrls[b]);else{var k=null!=navigator.userAgent&&0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;k.open("GET",b);k.onload=function(){c(null!=k.getText?k.getText():k.responseText)};k.onerror=e;k.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,k){function f(){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 n(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=
new f,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"==n(c,"position")&&(c.style.position="relative");var e=c.resizeSensor.childNodes[0],g=e.childNodes[0],k=c.resizeSensor.childNodes[1],l=function(){g.style.width="100000px";g.style.height="100000px";e.scrollLeft=1E5;e.scrollTop=1E5;k.scrollLeft=1E5;k.scrollTop=1E5};l();var m=!1,p=function(){c.resizedAttached&&(m&&(c.resizedAttached.call(),m=!1),b(p))};b(p);var q,t,L,F,J=function(){if((L=c.offsetWidth)!=q||(F=c.offsetHeight)!=t)m=!0,q=L,t=F;l()},C=function(b,c,d){b.attachEvent?
+c.appendChild(c.resizeSensor);"static"==n(c,"position")&&(c.style.position="relative");var e=c.resizeSensor.childNodes[0],g=e.childNodes[0],k=c.resizeSensor.childNodes[1],l=function(){g.style.width="100000px";g.style.height="100000px";e.scrollLeft=1E5;e.scrollTop=1E5;k.scrollLeft=1E5;k.scrollTop=1E5};l();var m=!1,p=function(){c.resizedAttached&&(m&&(c.resizedAttached.call(),m=!1),b(p))};b(p);var q,t,L,E,J=function(){if((L=c.offsetWidth)!=q||(E=c.offsetHeight)!=t)m=!0,q=L,t=E;l()},C=function(b,c,d){b.attachEvent?
b.attachEvent("on"+c,d):b.addEventListener(c,d)};C(e,"scroll",J);C(k,"scroll",J)}var d=function(){GraphViewer.resizeSensorEnabled&&k()},g=Object.prototype.toString.call(e),l="[object Array]"===g||"[object NodeList]"===g||"[object HTMLCollection]"===g||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(l)for(var g=0,m=e.length;g<m;g++)t(e[g],d);else t(e,d);this.detach=function(){if(l)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);
diff --git a/src/main/webapp/js/viewer.min.js b/src/main/webapp/js/viewer.min.js
index 8dd5fb8f..e6d25fe6 100644
--- a/src/main/webapp/js/viewer.min.js
+++ b/src/main/webapp/js/viewer.min.js
@@ -202,7 +202,7 @@ null!=a&&(DRAWIO_GITLAB_ID=a);window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";a=
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:"15.9.1",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:"15.9.3",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),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]"!==document.createElementNS("http://www.w3.org/2000/svg","foreignObject").toString()||0<=navigator.userAgent.indexOf("Opera/"),
@@ -1047,7 +1047,7 @@ mxPrintPreview.prototype.getAppendices=function(){return null};mxPrintPreview.pr
mxStylesheet.prototype.createDefaultVertexStyle=function(){var a={};a[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_RECTANGLE;a[mxConstants.STYLE_PERIMETER]=mxPerimeter.RectanglePerimeter;a[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE;a[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER;a[mxConstants.STYLE_FILLCOLOR]="#C3D9FF";a[mxConstants.STYLE_STROKECOLOR]="#6482B9";a[mxConstants.STYLE_FONTCOLOR]="#774400";return a};
mxStylesheet.prototype.createDefaultEdgeStyle=function(){var a={};a[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_CONNECTOR;a[mxConstants.STYLE_ENDARROW]=mxConstants.ARROW_CLASSIC;a[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE;a[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER;a[mxConstants.STYLE_STROKECOLOR]="#6482B9";a[mxConstants.STYLE_FONTCOLOR]="#446299";return a};mxStylesheet.prototype.putDefaultVertexStyle=function(a){this.putCellStyle("defaultVertex",a)};
mxStylesheet.prototype.putDefaultEdgeStyle=function(a){this.putCellStyle("defaultEdge",a)};mxStylesheet.prototype.getDefaultVertexStyle=function(){return this.styles.defaultVertex};mxStylesheet.prototype.getDefaultEdgeStyle=function(){return this.styles.defaultEdge};mxStylesheet.prototype.putCellStyle=function(a,b){this.styles[a]=b};
-mxStylesheet.prototype.getCellStyle=function(a,b){var c=b;if(null!=a&&0<a.length)for(var d=a.split(";"),c=null!=c&&";"!=a.charAt(0)?mxUtils.clone(c):{},e=0;e<d.length;e++){var f=d[e],g=f.indexOf("=");if(0<=g){var k=f.substring(0,g),f=f.substring(g+1);f==mxConstants.NONE?delete c[k]:mxUtils.isNumeric(f)?c[k]=parseFloat(f):c[k]=f}else if(f=this.styles[f],null!=f)for(k in f)c[k]=f[k]}return c};
+mxStylesheet.prototype.getCellStyle=function(a,b,c){c=null!=c?c:!0;if(null!=a&&0<a.length){var d=a.split(";");b=null!=b&&";"!=a.charAt(0)?mxUtils.clone(b):{};for(a=0;a<d.length;a++){var e=d[a],f=e.indexOf("=");if(0<=f){var g=e.substring(0,f),e=e.substring(f+1);e==mxConstants.NONE&&c?delete b[g]:mxUtils.isNumeric(e)?b[g]=parseFloat(e):b[g]=e}else if(e=this.styles[e],null!=e)for(g in e)b[g]=e[g]}}return b};
function mxCellState(a,b,c){this.view=a;this.cell=b;this.style=null!=c?c:{};this.origin=new mxPoint;this.absoluteOffset=new mxPoint}mxCellState.prototype=new mxRectangle;mxCellState.prototype.constructor=mxCellState;mxCellState.prototype.view=null;mxCellState.prototype.cell=null;mxCellState.prototype.style=null;mxCellState.prototype.invalidStyle=!1;mxCellState.prototype.invalid=!0;mxCellState.prototype.origin=null;mxCellState.prototype.absolutePoints=null;mxCellState.prototype.absoluteOffset=null;
mxCellState.prototype.visibleSourceState=null;mxCellState.prototype.visibleTargetState=null;mxCellState.prototype.terminalDistance=0;mxCellState.prototype.length=0;mxCellState.prototype.segments=null;mxCellState.prototype.shape=null;mxCellState.prototype.text=null;mxCellState.prototype.unscaledWidth=null;mxCellState.prototype.unscaledHeight=null;
mxCellState.prototype.getPerimeterBounds=function(a,b){a=a||0;b=null!=b?b:new mxRectangle(this.x,this.y,this.width,this.height);if(null!=this.shape&&null!=this.shape.stencil&&"fixed"==this.shape.stencil.aspect){var c=this.shape.stencil.computeAspect(this.style,b.x,b.y,b.width,b.height);b.x=c.x;b.y=c.y;b.width=this.shape.stencil.w0*c.width;b.height=this.shape.stencil.h0*c.height}0!=a&&b.grow(a);return b};
@@ -1308,8 +1308,8 @@ b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mx
mxGraph.prototype.updatePageBreaks=function(a,b,c){b=this.view.scale;c=this.view.translate;var d=this.pageFormat,e=b*this.pageScale,f=new mxRectangle(0,0,d.width*e,d.height*e),d=mxRectangle.fromRectangle(this.getGraphBounds());d.width=Math.max(1,d.width);d.height=Math.max(1,d.height);f.x=Math.floor((d.x-c.x*b)/f.width)*f.width+c.x*b;f.y=Math.floor((d.y-c.y*b)/f.height)*f.height+c.y*b;d.width=Math.ceil((d.width+(d.x-f.x))/f.width)*f.width;d.height=Math.ceil((d.height+(d.y-f.y))/f.height)*f.height;
var g=(a=a&&Math.min(f.width,f.height)>this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,k=a?Math.ceil(d.width/f.width)+1:0,l=(k-1)*f.width,m=(g-1)*f.height;null==this.horizontalPageBreaks&&0<g&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<k&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?g:k,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(f.x),Math.round(f.y+c*f.height)),new mxPoint(Math.round(f.x+
l),Math.round(f.y+c*f.height))]:[new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y)),new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y+m))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.pointerEvents=!1,d.isDashed=this.pageBreakDashed,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
-mxGraph.prototype.getCurrentCellStyle=function(a,b){var c=b?null:this.view.getState(a);return null!=c?c.style:this.getCellStyle(a)};mxGraph.prototype.getCellStyle=function(a){var b=this.model.getStyle(a);a=this.model.isEdge(a)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();null!=b&&(a=this.postProcessCellStyle(this.stylesheet.getCellStyle(b,a)));null==a&&(a={});return a};
-mxGraph.prototype.postProcessCellStyle=function(a){if(null!=a){var b=a[mxConstants.STYLE_IMAGE],c=this.getImageFromBundles(b);null!=c?a[mxConstants.STYLE_IMAGE]=c:c=b;null!=c&&"data:image/"==c.substring(0,11)&&("data:image/svg+xml,<"==c.substring(0,20)?c=c.substring(0,19)+encodeURIComponent(c.substring(19)):"data:image/svg+xml,%3C"!=c.substring(0,22)&&(b=c.indexOf(","),0<b&&";base64,"!=c.substring(b-7,b+1)&&(c=c.substring(0,b)+";base64,"+c.substring(b+1))),a[mxConstants.STYLE_IMAGE]=c)}return a};
+mxGraph.prototype.getCurrentCellStyle=function(a,b){var c=b?null:this.view.getState(a);return null!=c?c.style:this.getCellStyle(a)};mxGraph.prototype.getCellStyle=function(a,b){b=null!=b?b:!0;var c=this.model.getStyle(a),d;d=this.model.isEdge(a)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();null!=c?d=this.stylesheet.getCellStyle(c,d,b):null!=d&&(d=mxUtils.clone(d));null==d?d={}:b&&(d=this.postProcessCellStyle(a,d));return d};
+mxGraph.prototype.postProcessCellStyle=function(a,b){if(null!=b){var c=b[mxConstants.STYLE_IMAGE],d=this.getImageFromBundles(c);null!=d?b[mxConstants.STYLE_IMAGE]=d:d=c;null!=d&&"data:image/"==d.substring(0,11)&&("data:image/svg+xml,<"==d.substring(0,20)?d=d.substring(0,19)+encodeURIComponent(d.substring(19)):"data:image/svg+xml,%3C"!=d.substring(0,22)&&(c=d.indexOf(","),0<c&&";base64,"!=d.substring(c-7,c+1)&&(d=d.substring(0,c)+";base64,"+d.substring(c+1))),b[mxConstants.STYLE_IMAGE]=d)}return b};
mxGraph.prototype.setCellStyle=function(a,b){b=b||this.getSelectionCells();if(null!=b){this.model.beginUpdate();try{for(var c=0;c<b.length;c++)this.model.setStyle(b[c],a)}finally{this.model.endUpdate()}}};mxGraph.prototype.toggleCellStyle=function(a,b,c){c=c||this.getSelectionCell();return this.toggleCellStyles(a,b,[c])};
mxGraph.prototype.toggleCellStyles=function(a,b,c){b=null!=b?b:!1;c=c||this.getEditableCells(this.getSelectionCells());var d=null;null!=c&&0<c.length&&(d=this.getCurrentCellStyle(c[0]),d=mxUtils.getValue(d,a,b)?0:1,this.setCellStyles(a,d,c));return d};mxGraph.prototype.setCellStyles=function(a,b,c){c=c||this.getEditableCells(this.getSelectionCells());mxUtils.setCellStyles(this.model,c,a,b)};mxGraph.prototype.toggleCellStyleFlags=function(a,b,c){this.setCellStyleFlags(a,b,null,c)};
mxGraph.prototype.setCellStyleFlags=function(a,b,c,d){d=d||this.getEditableCells(this.getSelectionCells());null!=d&&0<d.length&&(null==c&&(c=this.getCurrentCellStyle(d[0]),c=(parseInt(c[a]||0)&b)!=b),mxUtils.setCellStyleFlags(this.model,d,a,b,c))};mxGraph.prototype.getOriginForCell=function(a){a=this.model.getParent(a);for(var b=new mxPoint;null!=a;){var c=this.getCellGeometry(a);null==c||c.relative||(b.x+=c.x,b.y+=c.y);a=this.model.getParent(a)}return b};
@@ -2125,7 +2125,7 @@ mxGraphView.prototype.validateBackgroundStyles=function(){var b=this.graph,d=nul
")";var f=g=0;null!=b.view.backgroundPageShape&&(f=this.getBackgroundPageBounds(),g=1+f.x,f=1+f.y);e=-Math.round(e-mxUtils.mod(this.translate.x*this.scale-g,e))+"px "+-Math.round(e-mxUtils.mod(this.translate.y*this.scale-f,e))+"px"}g=b.view.canvas;null!=g.ownerSVGElement&&(g=g.ownerSVGElement);null!=b.view.backgroundPageShape?(b.view.backgroundPageShape.node.style.backgroundPosition=e,b.view.backgroundPageShape.node.style.backgroundImage=c,b.view.backgroundPageShape.node.style.backgroundColor=d,b.view.backgroundPageShape.node.style.borderColor=
b.defaultPageBorderColor,b.container.className="geDiagramContainer geDiagramBackdrop",g.style.backgroundImage="none",g.style.backgroundColor=""):(b.container.className="geDiagramContainer",g.style.backgroundPosition=e,g.style.backgroundColor=d,g.style.backgroundImage=c)};mxGraphView.prototype.createSvgGrid=function(b){for(var d=this.graph.gridSize*this.scale;d<this.minGridSize;)d*=2;for(var g=this.gridSteps*d,c=[],e=1;e<this.gridSteps;e++){var f=e*d;c.push("M 0 "+f+" L "+g+" "+f+" M "+f+" 0 L "+f+
" "+g)}return'<svg width="'+g+'" height="'+g+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+g+'" height="'+g+'" patternUnits="userSpaceOnUse"><path d="'+c.join(" ")+'" fill="none" stroke="'+b+'" opacity="0.2" stroke-width="1"/><path d="M '+g+" 0 L 0 0 0 "+g+'" 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 g=this.view.canvas;null!=g.ownerSVGElement&&(g=g.ownerSVGElement);var l=this.gridSize*this.view.scale*this.view.gridSteps,l=-Math.round(l-mxUtils.mod(this.view.translate.x*this.view.scale+c,l))+"px "+-Math.round(l-mxUtils.mod(this.view.translate.y*this.view.scale+d,l))+"px";g.style.backgroundPosition=l}};mxGraph.prototype.updatePageBreaks=function(b,d,g){var c=this.view.scale,e=this.view.translate,f=this.pageFormat,k=c*this.pageScale,u=this.view.getBackgroundPageBounds();
+if(null!=this.shiftPreview1){var g=this.view.canvas;null!=g.ownerSVGElement&&(g=g.ownerSVGElement);var e=this.gridSize*this.view.scale*this.view.gridSteps,e=-Math.round(e-mxUtils.mod(this.view.translate.x*this.view.scale+c,e))+"px "+-Math.round(e-mxUtils.mod(this.view.translate.y*this.view.scale+d,e))+"px";g.style.backgroundPosition=e}};mxGraph.prototype.updatePageBreaks=function(b,d,g){var c=this.view.scale,e=this.view.translate,f=this.pageFormat,k=c*this.pageScale,u=this.view.getBackgroundPageBounds();
d=u.width;g=u.height;var v=new mxRectangle(c*e.x,c*e.y,f.width*k,f.height*k),t=(b=b&&Math.min(v.width,v.height)>this.minPageBreakDist)?Math.ceil(g/v.height)-1:0,n=b?Math.ceil(d/v.width)-1:0,G=u.x+d,H=u.y+g;null==this.horizontalPageBreaks&&0<t&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<n&&(this.verticalPageBreaks=[]);b=mxUtils.bind(this,function(b){if(null!=b){for(var d=b==this.horizontalPageBreaks?t:n,g=0;g<=d;g++){var c=b==this.horizontalPageBreaks?[new mxPoint(Math.round(u.x),
Math.round(u.y+(g+1)*v.height)),new mxPoint(Math.round(G),Math.round(u.y+(g+1)*v.height))]:[new mxPoint(Math.round(u.x+(g+1)*v.width),Math.round(u.y)),new mxPoint(Math.round(u.x+(g+1)*v.width),Math.round(H))];null!=b[g]?(b[g].points=c,b[g].redraw()):(c=new mxPolyline(c,this.pageBreakColor),c.dialect=this.dialect,c.isDashed=this.pageBreakDashed,c.pointerEvents=!1,c.init(this.view.backgroundPane),c.redraw(),b[g]=c)}for(g=d;g<b.length;g++)b[g].destroy();b.splice(d,b.length-d)}});b(this.horizontalPageBreaks);
b(this.verticalPageBreaks)};var c=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(b,d,g){for(var e=0;e<d.length;e++){if(this.graph.isTableCell(d[e])||this.graph.isTableRow(d[e]))return!1;if(this.graph.getModel().isVertex(d[e])){var f=this.graph.getCellGeometry(d[e]);if(null!=f&&f.relative)return!1}}return c.apply(this,arguments)};var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var b=
@@ -2136,32 +2136,31 @@ function(b,d,g){var c,e=this.graph.model.getParent(b);if(d)c=this.graph.model.is
this.graph.isCellSelected(b)&&!this.graph.isToggleEvent(g.getEvent())||this.graph.isTableCell(b)&&this.graph.isCellSelected(e);return c};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(b){b=b.getCell();for(var d=this.graph.getModel(),g=d.getParent(b),c=this.graph.view.getState(g),e=this.graph.isCellSelected(b);null!=c&&(d.isVertex(g)||d.isEdge(g));){var f=this.graph.isCellSelected(g),e=e||f;if(f||!e&&(this.graph.isTableCell(b)||this.graph.isTableRow(b)))b=g;g=d.getParent(g)}return b}})();EditorUi=function(b,c,e){mxEventSource.call(this);this.destroyFunctions=[];this.editor=b||new Editor;this.container=c||document.body;var k=this.editor.graph;k.lightbox=e;var f=k.getGraphBounds;k.getGraphBounds=function(b){var d=f.apply(this,arguments);b=this.backgroundImage;if(null!=b){var g=this.view.translate,c=this.view.scale,d=mxRectangle.fromRectangle(d);d.add(new mxRectangle((g.x+b.x)*c,(g.y+b.y)*c,b.width*c,b.height*c))}return d};k.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.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,k.isEnabled=function(){return!1},k.panningHandler.isForcePanningEvent=function(b){return!mxEvent.isPopupTrigger(b.getEvent())});this.actions=new Actions(this);
this.menus=this.createMenus();if(!k.standalone){var n="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(" "),
-d="curved sourcePerimeterSpacing targetPerimeterSpacing startArrow startFill startSize endArrow endFill endSize".split(" ");this.setDefaultStyle=function(b){try{var d=k.view.getState(b);if(null!=d){var g=b.clone();g.style="";var c=k.getCellStyle(g);b=[];var g=[],e;for(e in d.style)c[e]!=d.style[e]&&(b.push(d.style[e]),g.push(e));for(var l=k.getModel().getStyle(d.cell),f=null!=l?l.split(";"):[],l=0;l<f.length;l++){var m=f[l],p=m.indexOf("=");if(0<=p){e=m.substring(0,p);var q=m.substring(p+1);null!=
-c[e]&&"none"==q&&(b.push(q),g.push(e))}}k.getModel().isEdge(d.cell)?k.currentEdgeStyle={}:k.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",g,"values",b,"cells",[d.cell]))}}catch(na){this.handleError(na)}};this.clearDefaultStyle=function(){k.currentEdgeStyle=mxUtils.clone(k.defaultEdgeStyle);k.currentVertexStyle=mxUtils.clone(k.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var g=["fontFamily","fontSource","fontSize",
-"fontColor"];for(c=0;c<g.length;c++)0>mxUtils.indexOf(n,g[c])&&n.push(g[c]);var l="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),m=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor","gradientDirection"],["opacity"],["html"]];for(c=0;c<m.length;c++)for(e=0;e<m[c].length;e++)n.push(m[c][e]);for(c=0;c<t.length;c++)0>mxUtils.indexOf(n,t[c])&&
-n.push(t[c]);var p=function(b,g,c,e,l,f,p){e=null!=e?e:k.currentVertexStyle;l=null!=l?l:k.currentEdgeStyle;f=null!=f?f:!0;c=null!=c?c:k.getModel();if(p){p=[];for(var E=0;E<b.length;E++)p=p.concat(c.getDescendants(b[E]));b=p}c.beginUpdate();try{for(E=0;E<b.length;E++){var q=b[E],A;if(g)A=["fontSize","fontFamily","fontColor"];else{var v=c.getStyle(q),u=null!=v?v.split(";"):[];A=n.slice();for(var I=0;I<u.length;I++){var t=u[I],x=t.indexOf("=");if(0<=x){var N=t.substring(0,x),y=mxUtils.indexOf(A,N);0<=
-y&&A.splice(y,1);for(p=0;p<m.length;p++){var z=m[p];if(0<=mxUtils.indexOf(z,N))for(var Y=0;Y<z.length;Y++){var C=mxUtils.indexOf(A,z[Y]);0<=C&&A.splice(C,1)}}}}}var U=c.isEdge(q);p=U?l:e;for(var D=c.getStyle(q),I=0;I<A.length;I++){var N=A[I],O=p[N];null!=O&&"edgeStyle"!=N&&("shape"!=N||U)&&(!U||f||0>mxUtils.indexOf(d,N))&&(D=mxUtils.setStyle(D,N,O))}Editor.simpleLabels&&(D=mxUtils.setStyle(mxUtils.setStyle(D,"html",null),"whiteSpace",null));c.setStyle(q,D)}}finally{c.endUpdate()}return b};k.addListener("cellsInserted",
-function(b,d){p(d.getProperty("cells"),null,null,null,null,!0,!0)});k.addListener("textInserted",function(b,d){p(d.getProperty("cells"),!0)});this.insertHandler=p;this.createDivs();this.createUi();this.refresh();var q=mxUtils.bind(this,function(b){null==b&&(b=window.event);return k.isEditing()||null!=b&&this.isSelectionAllowed(b)});this.container==document.body&&(this.menubarContainer.onselectstart=q,this.menubarContainer.onmousedown=q,this.toolbarContainer.onselectstart=q,this.toolbarContainer.onmousedown=
-q,this.diagramContainer.onselectstart=q,this.diagramContainer.onmousedown=q,this.sidebarContainer.onselectstart=q,this.sidebarContainer.onmousedown=q,this.formatContainer.onselectstart=q,this.formatContainer.onmousedown=q,this.footerContainer.onselectstart=q,this.footerContainer.onmousedown=q,null!=this.tabContainer&&(this.tabContainer.onselectstart=q));!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 q(b)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",c):this.diagramContainer.oncontextmenu=c):k.panningHandler.usePopupTrigger=!1;k.init(this.diagramContainer);mxClient.IS_SVG&&null!=k.view.getDrawPane()&&(c=k.view.getDrawPane().ownerSVGElement,null!=c&&(c.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=k.graphHandler){var u=k.graphHandler.start;
-k.graphHandler.start=function(){null!=C.hoverIcons&&C.hoverIcons.reset();u.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(b){var d=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(b)-d.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(b)-d.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var v=!1,y=this.hoverIcons.isResetEvent;
-this.hoverIcons.isResetEvent=function(b,d){return v||y.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(b){32!=b.which||k.isEditing()?mxEvent.isConsumed(b)||27!=b.keyCode||this.hideDialog(null,!0):(v=!0,this.hoverIcons.reset(),k.container.style.cursor="move",k.isEditing()||mxEvent.getSource(b)!=k.container||mxEvent.consume(b))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(b){k.container.style.cursor="";v=!1});mxEvent.addListener(document,
-"keyup",this.keyupHandler);var x=k.panningHandler.isForcePanningEvent;k.panningHandler.isForcePanningEvent=function(b){return x.apply(this,arguments)||v||mxEvent.isMouseEvent(b.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(b.getEvent()))&&(!mxEvent.isControlDown(b.getEvent())&&mxEvent.isRightMouseButton(b.getEvent())||mxEvent.isMiddleMouseButton(b.getEvent()))};var G=k.cellEditor.isStopEditingEvent;k.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=k.isZoomWheelEvent;k.isZoomWheelEvent=function(){return v||H.apply(this,arguments)};var z=!1,D=null,L=null,F=null,J=mxUtils.bind(this,function(){if(null!=this.toolbar&&z!=k.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var g=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),d.push(b));
-b=g}b=this.toolbar.fontMenu;g=this.toolbar.sizeMenu;if(null==F)this.toolbar.createTextToolbar();else{for(var c=0;c<F.length;c++)this.toolbar.container.appendChild(F[c]);this.toolbar.fontMenu=D;this.toolbar.sizeMenu=L}z=k.cellEditor.isContentEditing();D=b;L=g;F=d}}),C=this,K=k.cellEditor.startEditing;k.cellEditor.startEditing=function(){K.apply(this,arguments);J();if(k.cellEditor.isContentEditing()){var b=!1,d=function(){b||(b=!0,window.setTimeout(function(){var d=k.getSelectedEditingElement();null!=
-d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=C.toolbar&&(C.toolbar.setFontName(Graph.stripQuotes(d.fontFamily)),C.toolbar.setFontSize(parseInt(d.fontSize))));b=!1},0))};mxEvent.addListener(k.cellEditor.textarea,"input",d);mxEvent.addListener(k.cellEditor.textarea,"touchend",d);mxEvent.addListener(k.cellEditor.textarea,"mouseup",d);mxEvent.addListener(k.cellEditor.textarea,"keyup",d);d()}};var M=k.cellEditor.stopEditing;k.cellEditor.stopEditing=function(b,d){try{M.apply(this,arguments),J()}catch(U){C.handleError(U)}};
-k.container.setAttribute("tabindex","0");k.container.style.cursor="default";if(window.self===window.top&&null!=k.container.parentNode)try{k.container.focus()}catch(N){}var aa=k.fireMouseEvent;k.fireMouseEvent=function(b,d,g){b==mxEvent.MOUSE_DOWN&&this.container.focus();aa.apply(this,arguments)};k.popupMenuHandler.autoExpand=!0;null!=this.menus&&(k.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(b,d,g){this.menus.createPopupMenu(b,d,g)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,
-function(b){k.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(b);this.getKeyHandler=function(){return keyHandler};k.connectionHandler.addListener(mxEvent.CONNECT,function(b,d){var g=[d.getProperty("cell")];d.getProperty("terminalInserted")&&(g.push(d.getProperty("terminal")),window.setTimeout(function(){null!=C.hoverIcons&&C.hoverIcons.update(k.view.getState(g[g.length-1]))},0));p(g)});this.addListener("styleChanged",mxUtils.bind(this,function(b,d){var c=d.getProperty("cells"),
-e=!1,f=!1;if(0<c.length)for(var m=0;m<c.length&&(e=k.getModel().isVertex(c[m])||e,!(f=k.getModel().isEdge(c[m])||f)||!e);m++);else f=e=!0;for(var c=d.getProperty("keys"),p=d.getProperty("values"),m=0;m<c.length;m++){var q=0<=mxUtils.indexOf(g,c[m]);if("strokeColor"!=c[m]||null!=p[m]&&"none"!=p[m])if(0<=mxUtils.indexOf(t,c[m]))f||0<=mxUtils.indexOf(l,c[m])?null==p[m]?delete k.currentEdgeStyle[c[m]]:k.currentEdgeStyle[c[m]]=p[m]:e&&0<=mxUtils.indexOf(n,c[m])&&(null==p[m]?delete k.currentVertexStyle[c[m]]:
-k.currentVertexStyle[c[m]]=p[m]);else if(0<=mxUtils.indexOf(n,c[m])){if(e||q)null==p[m]?delete k.currentVertexStyle[c[m]]:k.currentVertexStyle[c[m]]=p[m];if(f||q||0<=mxUtils.indexOf(l,c[m]))null==p[m]?delete k.currentEdgeStyle[c[m]]:k.currentEdgeStyle[c[m]]=p[m]}}null!=this.toolbar&&(this.toolbar.setFontName(k.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(k.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className=
-"orthogonalEdgeStyle"==k.currentEdgeStyle.edgeStyle&&"1"==k.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==k.currentEdgeStyle.edgeStyle||"none"==k.currentEdgeStyle.edgeStyle||null==k.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==k.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==k.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==k.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==
-k.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==k.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==k.currentEdgeStyle.shape?"geSprite geSprite-linkedge":"flexArrow"==k.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==k.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&
-(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",k.currentEdgeStyle.shape,k.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(k.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("end",k.currentEdgeStyle.shape,k.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(k.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&
-(b=mxUtils.bind(this,function(){var b=k.currentVertexStyle.fontFamily||"Helvetica",d=String(k.currentVertexStyle.fontSize||"12"),g=k.getView().getState(k.getSelectionCell());null!=g&&(b=g.style[mxConstants.STYLE_FONTFAMILY]||b,d=g.style[mxConstants.STYLE_FONTSIZE]||d,10<b.length&&(b=b.substring(0,8)+"..."));this.toolbar.setFontName(b);this.toolbar.setFontSize(d)}),k.getSelectionModel().addListener(mxEvent.CHANGE,b),k.getModel().addListener(mxEvent.CHANGE,b));k.addListener(mxEvent.CELLS_ADDED,function(b,
-d){var g=d.getProperty("cells"),c=d.getProperty("parent");null!=c&&k.getModel().isLayer(c)&&!k.isCellVisible(c)&&null!=g&&0<g.length&&k.getModel().setVisible(c,!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&&(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(){k.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){k.view.validateBackground()}));k.addListener("gridSizeChanged",mxUtils.bind(this,function(){k.isGridEnabled()&&k.view.validateBackground()}));this.editor.resetGraph()}this.init();k.standalone||this.open()};EditorUi.compactUi=!0;
-EditorUi.parsePng=function(b,c,e){function k(b,g){var d=n;n+=g;return b.substring(d,n)}function f(b){b=k(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}var n=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);do{e=f(b);var t=k(b,4);if(null!=c&&c(n-8,t,e))break;value=k(b,e);k(b,4);if("IEND"==t)break}while(e)}};mxUtils.extend(EditorUi,mxEventSource);
+d="curved sourcePerimeterSpacing targetPerimeterSpacing startArrow startFill startSize endArrow endFill endSize".split(" ");this.setDefaultStyle=function(b){try{var d=k.getCellStyle(b,!1),g=[],c=[],e;for(e in d)g.push(d[e]),c.push(e);k.getModel().isEdge(b)?k.currentEdgeStyle={}:k.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",c,"values",g,"cells",[b]))}catch(A){this.handleError(A)}};this.clearDefaultStyle=function(){k.currentEdgeStyle=mxUtils.clone(k.defaultEdgeStyle);
+k.currentVertexStyle=mxUtils.clone(k.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var g=["fontFamily","fontSource","fontSize","fontColor"];for(c=0;c<g.length;c++)0>mxUtils.indexOf(n,g[c])&&n.push(g[c]);var l="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),m=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],
+["fillColor","gradientColor","gradientDirection"],["opacity"],["html"]];for(c=0;c<m.length;c++)for(e=0;e<m[c].length;e++)n.push(m[c][e]);for(c=0;c<t.length;c++)0>mxUtils.indexOf(n,t[c])&&n.push(t[c]);var p=function(b,g,c,e,l,f,p){e=null!=e?e:k.currentVertexStyle;l=null!=l?l:k.currentEdgeStyle;f=null!=f?f:!0;c=null!=c?c:k.getModel();if(p){p=[];for(var F=0;F<b.length;F++)p=p.concat(c.getDescendants(b[F]));b=p}c.beginUpdate();try{for(F=0;F<b.length;F++){var q=b[F],A;if(g)A=["fontSize","fontFamily","fontColor"];
+else{var v=c.getStyle(q),u=null!=v?v.split(";"):[];A=n.slice();for(var I=0;I<u.length;I++){var t=u[I],x=t.indexOf("=");if(0<=x){var M=t.substring(0,x),y=mxUtils.indexOf(A,M);0<=y&&A.splice(y,1);for(p=0;p<m.length;p++){var z=m[p];if(0<=mxUtils.indexOf(z,M))for(var ca=0;ca<z.length;ca++){var C=mxUtils.indexOf(A,z[ca]);0<=C&&A.splice(C,1)}}}}}var U=c.isEdge(q);p=U?l:e;for(var D=c.getStyle(q),I=0;I<A.length;I++){var M=A[I],O=p[M];null!=O&&"edgeStyle"!=M&&("shape"!=M||U)&&(!U||f||0>mxUtils.indexOf(d,M))&&
+(D=mxUtils.setStyle(D,M,O))}}Editor.simpleLabels&&(D=mxUtils.setStyle(mxUtils.setStyle(D,"html",null),"whiteSpace",null));c.setStyle(q,D)}finally{c.endUpdate()}return b};k.addListener("cellsInserted",function(b,d){p(d.getProperty("cells"),null,null,null,null,!0,!0)});k.addListener("textInserted",function(b,d){p(d.getProperty("cells"),!0)});this.insertHandler=p;this.createDivs();this.createUi();this.refresh();var q=mxUtils.bind(this,function(b){null==b&&(b=window.event);return k.isEditing()||null!=
+b&&this.isSelectionAllowed(b)});this.container==document.body&&(this.menubarContainer.onselectstart=q,this.menubarContainer.onmousedown=q,this.toolbarContainer.onselectstart=q,this.toolbarContainer.onmousedown=q,this.diagramContainer.onselectstart=q,this.diagramContainer.onmousedown=q,this.sidebarContainer.onselectstart=q,this.sidebarContainer.onmousedown=q,this.formatContainer.onselectstart=q,this.formatContainer.onmousedown=q,this.footerContainer.onselectstart=q,this.footerContainer.onmousedown=
+q,null!=this.tabContainer&&(this.tabContainer.onselectstart=q));!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 q(b)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",c):this.diagramContainer.oncontextmenu=c):k.panningHandler.usePopupTrigger=!1;k.init(this.diagramContainer);
+mxClient.IS_SVG&&null!=k.view.getDrawPane()&&(c=k.view.getDrawPane().ownerSVGElement,null!=c&&(c.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=k.graphHandler){var u=k.graphHandler.start;k.graphHandler.start=function(){null!=C.hoverIcons&&C.hoverIcons.reset();u.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(b){var d=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(b)-d.x-this.diagramContainer.clientWidth||
+0<mxEvent.getClientY(b)-d.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var v=!1,y=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(b,d){return v||y.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(b){32!=b.which||k.isEditing()?mxEvent.isConsumed(b)||27!=b.keyCode||this.hideDialog(null,!0):(v=!0,this.hoverIcons.reset(),k.container.style.cursor="move",
+k.isEditing()||mxEvent.getSource(b)!=k.container||mxEvent.consume(b))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(b){k.container.style.cursor="";v=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var x=k.panningHandler.isForcePanningEvent;k.panningHandler.isForcePanningEvent=function(b){return x.apply(this,arguments)||v||mxEvent.isMouseEvent(b.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(b.getEvent()))&&(!mxEvent.isControlDown(b.getEvent())&&
+mxEvent.isRightMouseButton(b.getEvent())||mxEvent.isMiddleMouseButton(b.getEvent()))};var G=k.cellEditor.isStopEditingEvent;k.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=k.isZoomWheelEvent;k.isZoomWheelEvent=function(){return v||H.apply(this,arguments)};var z=!1,D=null,L=null,E=null,J=mxUtils.bind(this,function(){if(null!=this.toolbar&&
+z!=k.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var g=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),d.push(b));b=g}b=this.toolbar.fontMenu;g=this.toolbar.sizeMenu;if(null==E)this.toolbar.createTextToolbar();else{for(var c=0;c<E.length;c++)this.toolbar.container.appendChild(E[c]);this.toolbar.fontMenu=D;this.toolbar.sizeMenu=L}z=k.cellEditor.isContentEditing();D=b;L=g;E=d}}),C=this,K=k.cellEditor.startEditing;
+k.cellEditor.startEditing=function(){K.apply(this,arguments);J();if(k.cellEditor.isContentEditing()){var b=!1,d=function(){b||(b=!0,window.setTimeout(function(){var d=k.getSelectedEditingElement();null!=d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=C.toolbar&&(C.toolbar.setFontName(Graph.stripQuotes(d.fontFamily)),C.toolbar.setFontSize(parseInt(d.fontSize))));b=!1},0))};mxEvent.addListener(k.cellEditor.textarea,"input",d);mxEvent.addListener(k.cellEditor.textarea,"touchend",d);mxEvent.addListener(k.cellEditor.textarea,
+"mouseup",d);mxEvent.addListener(k.cellEditor.textarea,"keyup",d);d()}};var N=k.cellEditor.stopEditing;k.cellEditor.stopEditing=function(b,d){try{N.apply(this,arguments),J()}catch(U){C.handleError(U)}};k.container.setAttribute("tabindex","0");k.container.style.cursor="default";if(window.self===window.top&&null!=k.container.parentNode)try{k.container.focus()}catch(M){}var Z=k.fireMouseEvent;k.fireMouseEvent=function(b,d,g){b==mxEvent.MOUSE_DOWN&&this.container.focus();Z.apply(this,arguments)};k.popupMenuHandler.autoExpand=
+!0;null!=this.menus&&(k.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(b,d,g){this.menus.createPopupMenu(b,d,g)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(b){k.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(b);this.getKeyHandler=function(){return keyHandler};k.connectionHandler.addListener(mxEvent.CONNECT,function(b,d){var g=[d.getProperty("cell")];d.getProperty("terminalInserted")&&(g.push(d.getProperty("terminal")),window.setTimeout(function(){null!=
+C.hoverIcons&&C.hoverIcons.update(k.view.getState(g[g.length-1]))},0));p(g)});this.addListener("styleChanged",mxUtils.bind(this,function(b,d){var c=d.getProperty("cells"),e=!1,f=!1;if(0<c.length)for(var m=0;m<c.length&&(e=k.getModel().isVertex(c[m])||e,!(f=k.getModel().isEdge(c[m])||f)||!e);m++);else f=e=!0;for(var c=d.getProperty("keys"),p=d.getProperty("values"),m=0;m<c.length;m++){var q=0<=mxUtils.indexOf(g,c[m]);if("strokeColor"!=c[m]||null!=p[m]&&"none"!=p[m])if(0<=mxUtils.indexOf(t,c[m]))f||
+0<=mxUtils.indexOf(l,c[m])?null==p[m]?delete k.currentEdgeStyle[c[m]]:k.currentEdgeStyle[c[m]]=p[m]:e&&0<=mxUtils.indexOf(n,c[m])&&(null==p[m]?delete k.currentVertexStyle[c[m]]:k.currentVertexStyle[c[m]]=p[m]);else if(0<=mxUtils.indexOf(n,c[m])){if(e||q)null==p[m]?delete k.currentVertexStyle[c[m]]:k.currentVertexStyle[c[m]]=p[m];if(f||q||0<=mxUtils.indexOf(l,c[m]))null==p[m]?delete k.currentEdgeStyle[c[m]]:k.currentEdgeStyle[c[m]]=p[m]}}null!=this.toolbar&&(this.toolbar.setFontName(k.currentVertexStyle.fontFamily||
+Menus.prototype.defaultFont),this.toolbar.setFontSize(k.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==k.currentEdgeStyle.edgeStyle&&"1"==k.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==k.currentEdgeStyle.edgeStyle||"none"==k.currentEdgeStyle.edgeStyle||null==k.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==
+k.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==k.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==k.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==k.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==k.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==k.currentEdgeStyle.shape?
+"geSprite geSprite-linkedge":"flexArrow"==k.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==k.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",k.currentEdgeStyle.shape,k.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(k.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=
+this.getCssClassForMarker("end",k.currentEdgeStyle.shape,k.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(k.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(b=mxUtils.bind(this,function(){var b=k.currentVertexStyle.fontFamily||"Helvetica",d=String(k.currentVertexStyle.fontSize||"12"),g=k.getView().getState(k.getSelectionCell());null!=g&&(b=g.style[mxConstants.STYLE_FONTFAMILY]||b,d=g.style[mxConstants.STYLE_FONTSIZE]||d,10<b.length&&(b=b.substring(0,8)+"..."));this.toolbar.setFontName(b);
+this.toolbar.setFontSize(d)}),k.getSelectionModel().addListener(mxEvent.CHANGE,b),k.getModel().addListener(mxEvent.CHANGE,b));k.addListener(mxEvent.CELLS_ADDED,function(b,d){var g=d.getProperty("cells"),c=d.getProperty("parent");null!=c&&k.getModel().isLayer(c)&&!k.isCellVisible(c)&&null!=g&&0<g.length&&k.getModel().setVisible(c,!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&&(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(){k.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){k.view.validateBackground()}));k.addListener("gridSizeChanged",mxUtils.bind(this,function(){k.isGridEnabled()&&k.view.validateBackground()}));this.editor.resetGraph()}this.init();k.standalone||this.open()};
+EditorUi.compactUi=!0;EditorUi.parsePng=function(b,c,e){function k(b,g){var d=n;n+=g;return b.substring(d,n)}function f(b){b=k(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}var n=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);do{e=f(b);var t=k(b,4);if(null!=c&&c(n-8,t,e))break;value=k(b,e);k(b,4);if("IEND"==t)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,
@@ -2197,9 +2196,9 @@ 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 k=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){k.apply(this,arguments);b.updatePasteActionStates()};var f=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(c,e){f.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,g){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,g,c,e){if(null!=b.container&&!b.isViewer()){c=null!=c?c:0;e=null!=e?e:0;var l=b.pageVisible?b.view.getBackgroundPageBounds():b.getGraphBounds(),f=mxUtils.hasScrollbars(b.container),k=b.view.translate,m=b.view.scale,E=mxRectangle.fromRectangle(l);
-E.x=E.x/m-k.x;E.y=E.y/m-k.y;E.width/=m;E.height/=m;var k=b.container.scrollTop,p=b.container.scrollLeft,q=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)q+=3;var A=b.container.offsetWidth-q,q=b.container.offsetHeight-q;d=d?Math.max(.3,Math.min(g||1,A/E.width)):m;g=(A-d*E.width)/2/d;var v=0==this.lightboxVerticalDivider?0:(q-d*E.height)/this.lightboxVerticalDivider/d;f&&(g=Math.max(g,0),v=Math.max(v,0));if(f||l.width<A||l.height<q)b.view.scaleAndTranslate(d,Math.floor(g-
-E.x),Math.floor(v-E.y)),b.container.scrollTop=k*d/m,b.container.scrollLeft=p*d/m;else if(0!=c||0!=e)l=b.view.translate,b.view.setTranslate(Math.floor(l.x+c/m),Math.floor(l.y+e/m))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var k=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",k);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",k)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
+this.scale*b.height*d.height)};b.getPreferredPageSize=function(b,d,g){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,g,c,e){if(null!=b.container&&!b.isViewer()){c=null!=c?c:0;e=null!=e?e:0;var l=b.pageVisible?b.view.getBackgroundPageBounds():b.getGraphBounds(),f=mxUtils.hasScrollbars(b.container),k=b.view.translate,m=b.view.scale,F=mxRectangle.fromRectangle(l);
+F.x=F.x/m-k.x;F.y=F.y/m-k.y;F.width/=m;F.height/=m;var k=b.container.scrollTop,p=b.container.scrollLeft,q=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)q+=3;var A=b.container.offsetWidth-q,q=b.container.offsetHeight-q;d=d?Math.max(.3,Math.min(g||1,A/F.width)):m;g=(A-d*F.width)/2/d;var v=0==this.lightboxVerticalDivider?0:(q-d*F.height)/this.lightboxVerticalDivider/d;f&&(g=Math.max(g,0),v=Math.max(v,0));if(f||l.width<A||l.height<q)b.view.scaleAndTranslate(d,Math.floor(g-
+F.x),Math.floor(v-F.y)),b.container.scrollTop=k*d/m,b.container.scrollLeft=p*d/m;else if(0!=c||0!=e)l=b.view.translate,b.view.setTranslate(Math.floor(l.x+c/m),Math.floor(l.y+e/m))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var k=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",k);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",k)});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 f=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 n=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",n);n();var t=0,n=mxUtils.bind(this,function(b,d,g){t++;var c=document.createElement("span");c.style.paddingLeft="8px";c.style.paddingRight=
@@ -2219,15 +2218,15 @@ mxUtils.bind(this,function(d){b.tooltipHandler.resetTimer();b.tooltipHandler.hid
g.getGraphX();this.startY=g.getGraphY();this.scrollLeft=b.container.scrollLeft;this.scrollTop=b.container.scrollTop},mouseMove:function(b,d){},mouseUp:function(d,g){mxEvent.isTouchEvent(g.getEvent())&&Math.abs(this.scrollLeft-b.container.scrollLeft)<z&&Math.abs(this.scrollTop-b.container.scrollTop)<z&&Math.abs(this.startX-g.getGraphX())<z&&Math.abs(this.startY-g.getGraphY())<z&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?v():y(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var D=
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}D.apply(this,arguments)};if(!b.isViewer()){var L=b.sizeDidChange;b.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var d=this.getPageLayout(),g=this.getPagePadding(),c=this.getPageSize(),e=Math.ceil(2*
g.x+d.width*c.width),l=Math.ceil(2*g.y+d.height*c.height),f=b.minimumGraphSize;if(null==f||f.width!=e||f.height!=l)b.minimumGraphSize=new mxRectangle(0,0,e,l);e=g.x-d.x*c.width;g=g.y-d.y*c.height;this.autoTranslate||this.view.translate.x==e&&this.view.translate.y==g?L.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=d.x,this.view.y0=d.y,d=b.view.translate.x,c=b.view.translate.y,b.view.setTranslate(e,g),b.container.scrollLeft+=Math.round((e-d)*b.view.scale),b.container.scrollTop+=Math.round((g-
-c)*b.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var F=b.view.getBackgroundPane(),J=b.view.getDrawPane();b.cumulativeZoomFactor=1;var C=null,K=null,M=null,aa=null,N=null,O=function(d){null!=C&&window.clearTimeout(C);window.setTimeout(function(){if(!b.isMouseDown||aa)C=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)),J.style.transformOrigin="",F.style.transformOrigin="",mxClient.IS_SF?(J.style.transform="scale(1)",F.style.transform="scale(1)",window.setTimeout(function(){J.style.transform="";F.style.transform=""},0)):(J.style.transform="",F.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),l=b.view.scale,f=0,k=0;null!=K&&(f=b.container.offsetWidth/2-K.x+g.x,k=b.container.offsetHeight/2-K.y+g.y);b.zoom(b.cumulativeZoomFactor,null,20);b.view.scale!=l&&(null!=M&&(f+=d.x-M.x,k+=d.y-M.y),null!=c&&e.chromelessResize(!1,null,f*(b.cumulativeZoomFactor-1),k*(b.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(b.container)||0==f&&0==k||(b.container.scrollLeft-=f*(b.cumulativeZoomFactor-1),b.container.scrollTop-=k*(b.cumulativeZoomFactor-1)));null!=N&&J.setAttribute("filter",
-N);b.cumulativeZoomFactor=1;N=aa=K=M=C=null}),null!=d?d:b.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)};b.lazyZoom=function(d,g,c,l){l=null!=l?l:this.zoomFactor;(g=g||!b.scrollbars)&&(K=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*=l,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/=l,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==N&&""!=J.getAttribute("filter")&&(N=J.getAttribute("filter"),
-J.removeAttribute("filter")),M=new mxPoint(b.container.scrollLeft,b.container.scrollTop),d=g?b.container.scrollLeft+b.container.clientWidth/2:K.x+b.container.scrollLeft-b.container.offsetLeft,l=g?b.container.scrollTop+b.container.clientHeight/2:K.y+b.container.scrollTop-b.container.offsetTop,J.style.transformOrigin=d+"px "+l+"px",J.style.transform="scale("+this.cumulativeZoomFactor+")",F.style.transformOrigin=d+"px "+l+"px",F.style.transform="scale("+this.cumulativeZoomFactor+")",null!=b.view.backgroundPageShape&&
+c)*b.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var E=b.view.getBackgroundPane(),J=b.view.getDrawPane();b.cumulativeZoomFactor=1;var C=null,K=null,N=null,Z=null,M=null,O=function(d){null!=C&&window.clearTimeout(C);window.setTimeout(function(){if(!b.isMouseDown||Z)C=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)),J.style.transformOrigin="",E.style.transformOrigin="",mxClient.IS_SF?(J.style.transform="scale(1)",E.style.transform="scale(1)",window.setTimeout(function(){J.style.transform="";E.style.transform=""},0)):(J.style.transform="",E.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),l=b.view.scale,f=0,k=0;null!=K&&(f=b.container.offsetWidth/2-K.x+g.x,k=b.container.offsetHeight/2-K.y+g.y);b.zoom(b.cumulativeZoomFactor,null,20);b.view.scale!=l&&(null!=N&&(f+=d.x-N.x,k+=d.y-N.y),null!=c&&e.chromelessResize(!1,null,f*(b.cumulativeZoomFactor-1),k*(b.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(b.container)||0==f&&0==k||(b.container.scrollLeft-=f*(b.cumulativeZoomFactor-1),b.container.scrollTop-=k*(b.cumulativeZoomFactor-1)));null!=M&&J.setAttribute("filter",
+M);b.cumulativeZoomFactor=1;M=Z=K=N=C=null}),null!=d?d:b.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)};b.lazyZoom=function(d,g,c,l){l=null!=l?l:this.zoomFactor;(g=g||!b.scrollbars)&&(K=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*=l,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/=l,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==M&&""!=J.getAttribute("filter")&&(M=J.getAttribute("filter"),
+J.removeAttribute("filter")),N=new mxPoint(b.container.scrollLeft,b.container.scrollTop),d=g?b.container.scrollLeft+b.container.clientWidth/2:K.x+b.container.scrollLeft-b.container.offsetLeft,l=g?b.container.scrollTop+b.container.clientHeight/2:K.y+b.container.scrollTop-b.container.offsetTop,J.style.transformOrigin=d+"px "+l+"px",J.style.transform="scale("+this.cumulativeZoomFactor+")",E.style.transformOrigin=d+"px "+l+"px",E.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",(g?b.container.clientWidth/2+b.container.scrollLeft-d.offsetLeft+"px":K.x+b.container.scrollLeft-d.offsetLeft-b.container.offsetLeft+"px")+" "+(g?b.container.clientHeight/2+b.container.scrollTop-d.offsetTop+"px":K.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());O(c)};mxEvent.addGestureListeners(b.container,function(b){null!=C&&window.clearTimeout(C)},null,function(d){1!=b.cumulativeZoomFactor&&O(0)});mxEvent.addListener(b.container,"scroll",function(d){null==C||b.isMouseDown||1==b.cumulativeZoomFactor||O(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(d,g,c,e,l){b.fireEvent(new mxEventObject("wheel"));if(null==this.dialogs||0==this.dialogs.length)if(!b.scrollbars&&
-!c&&b.isScrollWheelEvent(d))c=b.view.getTranslate(),e=40/b.view.scale,mxEvent.isShiftDown(d)?b.view.setTranslate(c.x+(g?-e:e),c.y):b.view.setTranslate(c.x,c.y+(g?e:-e));else if(c||b.isZoomWheelEvent(d))for(var f=mxEvent.getSource(d);null!=f;){if(f==b.container)return b.tooltipHandler.hideTooltip(),K=null!=e&&null!=l?new mxPoint(e,l):new mxPoint(mxEvent.getClientX(d),mxEvent.getClientY(d)),aa=c,c=b.zoomFactor,null!=d.deltaY&&Math.round(d.deltaY)!=d.deltaY&&(c=1+Math.abs(d.deltaY)/20*(c-1)),b.lazyZoom(g,
+!c&&b.isScrollWheelEvent(d))c=b.view.getTranslate(),e=40/b.view.scale,mxEvent.isShiftDown(d)?b.view.setTranslate(c.x+(g?-e:e),c.y):b.view.setTranslate(c.x,c.y+(g?e:-e));else if(c||b.isZoomWheelEvent(d))for(var f=mxEvent.getSource(d);null!=f;){if(f==b.container)return b.tooltipHandler.hideTooltip(),K=null!=e&&null!=l?new mxPoint(e,l):new mxPoint(mxEvent.getClientX(d),mxEvent.getClientY(d)),Z=c,c=b.zoomFactor,null!=d.deltaY&&Math.round(d.deltaY)!=d.deltaY&&(c=1+Math.abs(d.deltaY)/20*(c-1)),b.lazyZoom(g,
null,null,c),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")))};
EditorUi.prototype.lightboxFit=function(b){if(this.isDiagramEmpty())this.editor.graph.view.setScale(1);else{var c=urlParams.border,e=60;null!=c&&(e=parseInt(c));this.editor.graph.maxFitScale=this.lightboxMaxFitScale;this.editor.graph.fit(e,null,null,null,null,null,b);this.editor.graph.maxFitScale=null}};EditorUi.prototype.isDiagramEmpty=function(){var b=this.editor.graph.getModel();return 1==b.getChildCount(b.root)&&0==b.getChildCount(b.getChildAt(b.root,0))};
@@ -2333,19 +2332,19 @@ new mxRectangle(c.getGraphX()-1,c.getGraphY()-1);f.grow(mxShape.prototype.svgStr
new mxRectangle(e.x,e.y+e.height-2,e.width,3)))k="row-resize";for(q=e;null==k&&null!=q&&(this.isTableCell(q.cell)||this.isTableRow(q.cell)||this.isTable(q.cell));){if(this.isSwimlane(q.cell)){var p=this.getActualStartSize(q.cell),v=this.view.scale;(0<p.x||0<p.width)&&mxUtils.intersects(f,new mxRectangle(q.x+(p.x-p.width-1)*v+(0==p.x?q.width*v:0),q.y,1,q.height))?k="col-resize":(0<p.y||0<p.height)&&mxUtils.intersects(f,new mxRectangle(q.x,q.y+(p.y-p.height-1)*v+(0==p.y?q.height:0),q.width,1))&&(k=
"row-resize")}q=this.view.getState(this.model.getParent(q.cell))}}null!=k&&e.setCursor(k)}}),mouseUp:mxUtils.bind(this,function(b,c){l=t=d=g=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==k&&this.loadStylesheet();var p=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=
-function(){var b=p.apply(this,arguments);if(this.graph.pageVisible){for(var d=[],g=this.graph.pageFormat,c=this.graph.pageScale,e=g.width*c,g=g.height*c,c=this.graph.view.translate,l=this.graph.view.scale,f=this.graph.getPageLayout(),k=0;k<f.width;k++)d.push(new mxRectangle(((f.x+k)*e+c.x)*l,(f.y*g+c.y)*l,e*l,g*l));for(k=1;k<f.height;k++)d.push(new mxRectangle((f.x*e+c.x)*l,((f.y+k)*g+c.y)*l,e*l,g*l));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 q=this.graphHandler.getCells;this.graphHandler.getCells=function(b){for(var d=q.apply(this,arguments),g=new mxDictionary,c=[],e=0;e<d.length;e++){var l=this.graph.isTableCell(b)&&this.graph.isTableCell(d[e])&&
-this.graph.isCellSelected(d[e])?this.graph.model.getParent(d[e]):this.graph.isTableRow(b)&&this.graph.isTableRow(d[e])&&this.graph.isCellSelected(d[e])?d[e]:this.graph.getCompositeParent(d[e]);null==l||g.get(l)||(g.put(l,!0),c.push(l))}return c};var u=this.graphHandler.start;this.graphHandler.start=function(b,d,g,c){var e=!1;this.graph.isTableCell(b)&&(this.graph.isCellSelected(b)?e=!0:b=this.graph.model.getParent(b));e||this.graph.isTableRow(b)&&this.graph.isCellSelected(b)||(b=this.graph.getCompositeParent(b));
+function(){var b=p.apply(this,arguments);if(this.graph.pageVisible){for(var d=[],g=this.graph.pageFormat,c=this.graph.pageScale,e=g.width*c,g=g.height*c,c=this.graph.view.translate,f=this.graph.view.scale,l=this.graph.getPageLayout(),k=0;k<l.width;k++)d.push(new mxRectangle(((l.x+k)*e+c.x)*f,(l.y*g+c.y)*f,e*f,g*f));for(k=1;k<l.height;k++)d.push(new mxRectangle((l.x*e+c.x)*f,((l.y+k)*g+c.y)*f,e*f,g*f));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 q=this.graphHandler.getCells;this.graphHandler.getCells=function(b){for(var d=q.apply(this,arguments),g=new mxDictionary,c=[],e=0;e<d.length;e++){var f=this.graph.isTableCell(b)&&this.graph.isTableCell(d[e])&&
+this.graph.isCellSelected(d[e])?this.graph.model.getParent(d[e]):this.graph.isTableRow(b)&&this.graph.isTableRow(d[e])&&this.graph.isCellSelected(d[e])?d[e]:this.graph.getCompositeParent(d[e]);null==f||g.get(f)||(g.put(f,!0),c.push(f))}return c};var u=this.graphHandler.start;this.graphHandler.start=function(b,d,g,c){var e=!1;this.graph.isTableCell(b)&&(this.graph.isCellSelected(b)?e=!0:b=this.graph.model.getParent(b));e||this.graph.isTableRow(b)&&this.graph.isCellSelected(b)||(b=this.graph.getCompositeParent(b));
u.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(b,d){d=this.graph.getCompositeParent(d);return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var v=new mxRubberband(this);this.getRubberband=function(){return v};var y=(new Date).getTime(),x=0,G=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var b=this.currentState;G.apply(this,arguments);b!=this.currentState?(y=(new Date).getTime(),x=0):x=(new Date).getTime()-y};var H=
this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(b){return null!=this.currentState&&b.getState()==this.currentState&&2E3<x||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&H.apply(this,arguments)};var z=this.isToggleEvent;this.isToggleEvent=function(b){return z.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b)};var D=v.isForceRubberbandEvent;v.isForceRubberbandEvent=function(b){return D.apply(this,
arguments)&&!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isControlDown(b.getEvent())||mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==b.getState()&&mxEvent.isTouchEvent(b.getEvent())};var L=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(L=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=L)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(b){return mxEvent.isMouseEvent(b.getEvent())};var F=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 F.apply(this,arguments);var g=d?b.sourceState.cell:b.getCell();null!=g&&(g=this.getClickableLinkForCell(g),null!=g&&(this.isCustomLink(g)?
+mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=L)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(b){return mxEvent.isMouseEvent(b.getEvent())};var E=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 E.apply(this,arguments);var g=d?b.sourceState.cell:b.getCell();null!=g&&(g=this.getClickableLinkForCell(g),null!=g&&(this.isCustomLink(g)?
this.customLinkClicked(g):this.openLink(g)));this.isEnabled()&&d&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};var J=this.tooltipHandler.show;this.tooltipHandler.show=function(){J.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 C=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 C.apply(this,arguments)};this.selectRegion=function(b,d){var g=mxEvent.isAltDown(d)?b:null,g=this.getCells(b.x,
b.y,b.width,b.height,null,null,g,function(b){return"1"==mxUtils.getValue(b.style,"locked","0")},!0);if(this.isToggleEvent(d))for(var c=0;c<g.length;c++)this.selectCellForEvent(g[c],d);else this.selectCellsForEvent(g,d);return g};var K=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(b,d,g){return this.graph.isCellSelected(b)?!1:K.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 M=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,d){if("mouseDown"==d.getProperty("eventName")){var g=d.getProperty("event").getState();M=null==g||this.isSelectionEmpty()||this.isCellSelected(g.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(b,d){if(!mxEvent.isMultiTouchEvent(d)){var g=d.getProperty("event"),c=d.getProperty("cell");null==c?(g=mxUtils.convertPoint(this.container,
-mxEvent.getClientX(g),mxEvent.getClientY(g)),v.start(g.x,g.y)):null!=M?this.addSelectionCells(M):1<this.getSelectionCount()&&this.isCellSelected(c)&&this.removeSelectionCell(c);M=null;d.consume()}}));this.connectionHandler.selectCells=function(b,d){this.graph.setSelectionCell(d||b)};this.connectionHandler.constraintHandler.isStateIgnored=function(b,d){var g=b.view.graph;return d&&(g.isCellSelected(b.cell)||g.isTableRow(b.cell)&&g.selectionCellsHandler.isHandled(g.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 aa=this.updateMouseEvent;this.updateMouseEvent=function(b){b=aa.apply(this,arguments);null!=b.state&&this.isCellLocked(b.getCell())&&(b.state=null);return b}}this.currentTranslate=new mxPoint(0,0)};
+"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 g=d.getProperty("event").getState();N=null==g||this.isSelectionEmpty()||this.isCellSelected(g.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(b,d){if(!mxEvent.isMultiTouchEvent(d)){var g=d.getProperty("event"),c=d.getProperty("cell");null==c?(g=mxUtils.convertPoint(this.container,
+mxEvent.getClientX(g),mxEvent.getClientY(g)),v.start(g.x,g.y)):null!=N?this.addSelectionCells(N):1<this.getSelectionCount()&&this.isCellSelected(c)&&this.removeSelectionCell(c);N=null;d.consume()}}));this.connectionHandler.selectCells=function(b,d){this.graph.setSelectionCell(d||b)};this.connectionHandler.constraintHandler.isStateIgnored=function(b,d){var g=b.view.graph;return d&&(g.isCellSelected(b.cell)||g.isTableRow(b.cell)&&g.selectionCellsHandler.isHandled(g.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 Z=this.updateMouseEvent;this.updateMouseEvent=function(b){b=Z.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"];Graph.diagramLanguage=null!=urlParams["diagram-language"]?urlParams["diagram-language"]:mxClient.language;Graph.lineJumpsEnabled=!0;
Graph.defaultJumpSize=6;Graph.zoomWheel=!1;Graph.minTableColumnWidth=20;Graph.minTableRowHeight=20;Graph.foreignObjectWarningText="Viewer does not support full SVG 1.1";Graph.foreignObjectWarningLink="https://www.diagrams.net/doc/faq/svg-export-text-problems";Graph.xmlDeclaration='<?xml version="1.0" encoding="UTF-8"?>';Graph.svgDoctype='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">';Graph.svgFileComment="\x3c!-- Do not edit this file with editors other than diagrams.net --\x3e";
Graph.pasteStyles="rounded shadow dashed dashPattern fontFamily fontSource fontSize fontColor fontStyle align verticalAlign strokeColor strokeWidth fillColor gradientColor swimlaneFillColor textOpacity gradientDirection glass labelBackgroundColor labelBorderColor opacity spacing spacingTop spacingLeft spacingBottom spacingRight endFill endArrow endSize targetPerimeterSpacing startFill startArrow startSize sourcePerimeterSpacing arcSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle".split(" ");
@@ -2356,8 +2355,9 @@ Graph.base64EncodeUnicode=function(b){return btoa(encodeURIComponent(b).replace(
Graph.arrayBufferToString=function(b){var c="";b=new Uint8Array(b);for(var e=b.byteLength,k=0;k<e;k++)c+=String.fromCharCode(b[k]);return c};Graph.stringToArrayBuffer=function(b){return Uint8Array.from(b,function(b){return b.charCodeAt(0)})};
Graph.arrayBufferIndexOfString=function(b,c,e){var k=c.charCodeAt(0),f=1,n=-1;for(e=e||0;e<b.byteLength;e++)if(b[e]==k){n=e;break}for(e=n+1;-1<n&&e<b.byteLength&&e<n+c.length-1;e++){if(b[e]!=c.charCodeAt(f))return Graph.arrayBufferIndexOfString(b,c,n+1);f++}return f==c.length-1?n:-1};Graph.compress=function(b,c){if(null==b||0==b.length||"undefined"===typeof pako)return b;var e=c?pako.deflate(encodeURIComponent(b)):pako.deflateRaw(encodeURIComponent(b));return btoa(Graph.arrayBufferToString(new Uint8Array(e)))};
Graph.decompress=function(b,c,e){if(null==b||0==b.length||"undefined"===typeof pako)return b;b=Graph.stringToArrayBuffer(atob(b));c=decodeURIComponent(c?pako.inflate(b,{to:"string"}):pako.inflateRaw(b,{to:"string"}));return e?c:Graph.zapGremlins(c)};
-Graph.fadeNodes=function(b,c,e,k,f){f=null!=f?f:1E3;Graph.setTransitionForNodes(b,null);Graph.setOpacityForNodes(b,c);window.setTimeout(function(){Graph.setTransitionForNodes(b,"all "+f+"ms ease-in-out");Graph.setOpacityForNodes(b,e);window.setTimeout(function(){Graph.setTransitionForNodes(b,null);null!=k&&k()},f)},0)};Graph.setTransitionForNodes=function(b,c){for(var e=0;e<b.length;e++)mxUtils.setPrefixedStyle(b[e].style,"transition",c)};
-Graph.setOpacityForNodes=function(b,c){for(var e=0;e<b.length;e++)b[e].style.opacity=c};Graph.removePasteFormatting=function(b){for(;null!=b;)null!=b.firstChild&&Graph.removePasteFormatting(b.firstChild),b.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=b.style&&(b.style.whiteSpace="","#000000"==b.style.color&&(b.style.color="")),b=b.nextSibling};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.fadeNodes=function(b,c,e,k,f){f=null!=f?f:1E3;Graph.setTransitionForNodes(b,null);Graph.setOpacityForNodes(b,c);window.setTimeout(function(){Graph.setTransitionForNodes(b,"all "+f+"ms ease-in-out");Graph.setOpacityForNodes(b,e);window.setTimeout(function(){Graph.setTransitionForNodes(b,null);null!=k&&k()},f)},0)};Graph.removeKeys=function(b,c){for(var e in b)c(e)&&delete b[e]};
+Graph.setTransitionForNodes=function(b,c){for(var e=0;e<b.length;e++)mxUtils.setPrefixedStyle(b[e].style,"transition",c)};Graph.setOpacityForNodes=function(b,c){for(var e=0;e<b.length;e++)b[e].style.opacity=c};Graph.removePasteFormatting=function(b){for(;null!=b;)null!=b.firstChild&&Graph.removePasteFormatting(b.firstChild),b.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=b.style&&(b.style.whiteSpace="","#000000"==b.style.color&&(b.style.color="")),b=b.nextSibling};
+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("*"),k=0;k<e.length;k++)for(var f=0;f<e[k].attributes.length;f++){var n=e[k].attributes[f];2<n.name.length&&"on"==n.name.toLowerCase().substring(0,2)&&e[k].removeAttribute(n.name)}c("meta");c("script");c("metadata")};
Graph.clipSvgDataUri=function(b){if(!mxClient.IS_IE&&!mxClient.IS_IE11&&null!=b&&"data:image/svg+xml;base64,"==b.substring(0,26))try{var c=document.createElement("div");c.style.position="absolute";c.style.visibility="hidden";var e=decodeURIComponent(escape(atob(b.substring(26)))),k=e.indexOf("<svg");if(0<=k){c.innerHTML=e.substring(k);Graph.sanitizeSvg(c);var f=c.getElementsByTagName("svg");if(0<f.length){document.body.appendChild(c);try{var k=e=1,n=f[0].getAttribute("width"),t=f[0].getAttribute("height"),
n=null!=n&&"%"!=n.charAt(n.length-1)?parseFloat(n):NaN,t=null!=t&&"%"!=t.charAt(t.length-1)?parseFloat(t):NaN,d=f[0].getAttribute("viewBox");if(null!=d&&!isNaN(n)&&!isNaN(t)){var g=d.split(" ");4<=d.length&&(e=parseFloat(g[2])/n,k=parseFloat(g[3])/t)}var l=f[0].getBBox();0<l.width&&0<l.height&&(c.getElementsByTagName("svg")[0].setAttribute("viewBox",l.x+" "+l.y+" "+l.width+" "+l.height),c.getElementsByTagName("svg")[0].setAttribute("width",l.width/e),c.getElementsByTagName("svg")[0].setAttribute("height",
@@ -2372,19 +2372,18 @@ g&&g!=c.node;){if("a"==g.nodeName.toLowerCase()){b.view.graph.labelLinkClicked(b
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.getVerticesAndEdges=function(b,d){b=null!=b?b:!0;d=null!=d?d:!0;var g=this.model;return g.filterDescendants(function(c){return b&&g.isVertex(c)||d&&g.isEdge(c)},g.getRoot())};Graph.prototype.getCommonStyle=function(b){for(var d={},g=0;g<b.length;g++){var c=this.view.getState(b[g]);this.mergeStyle(c.style,d,0==g)}return d};Graph.prototype.mergeStyle=function(b,
d,g){if(null!=b){var c={},e;for(e in b){var f=b[e];null!=f&&(c[e]=!0,null==d[e]&&g?d[e]=f:d[e]!=f&&delete d[e])}for(e in d)c[e]||delete d[e]}};Graph.prototype.getStartEditingCell=function(b,d){var g=this.getCellStyle(b),g=parseInt(mxUtils.getValue(g,mxConstants.STYLE_STARTSIZE,0));this.isTable(b)&&(!this.isSwimlane(b)||0==g)&&""==this.getLabel(b)&&0<this.model.getChildCount(b)&&(b=this.model.getChildAt(b,0),g=this.getCellStyle(b),g=parseInt(mxUtils.getValue(g,mxConstants.STYLE_STARTSIZE,0)));if(this.isTableRow(b)&&
-(!this.isSwimlane(b)||0==g)&&""==this.getLabel(b)&&0<this.model.getChildCount(b))for(g=0;g<this.model.getChildCount(b);g++){var c=this.model.getChildAt(b,g);if(this.isCellEditable(c)){b=c;break}}return b};Graph.prototype.copyStyle=function(b){var d=null;if(null!=b){d=mxUtils.clone(this.getCurrentCellStyle(b));b=this.model.getStyle(b);b=null!=b?b.split(";"):[];for(var g=0;g<b.length;g++){var c=b[g],e=c.indexOf("=");if(0<=e){var f=c.substring(0,e),c=c.substring(e+1);null==d[f]&&c==mxConstants.NONE&&
-(d[f]=mxConstants.NONE)}}}return d};Graph.prototype.pasteStyle=function(b,d,g){g=null!=g?g:Graph.pasteStyles;this.model.beginUpdate();try{for(var c=0;c<d.length;c++)for(var e=this.getCurrentCellStyle(d[c]),f=0;f<g.length;f++){var k=e[g[f]],u=b[g[f]];k==u||null==k&&u==mxConstants.NONE||this.setCellStyles(g[f],u,[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,g,c,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,g,c,e,f){c=null!=c?c:!0;e=null!=e?e:!0;null==g&&(g=this.getCurrentRoot(),
-null==g&&(g=this.getModel().getRoot()));if(null!=g)for(var l=this.model.getChildCount(g)-1;0<=l;l--){var k=this.model.getChildAt(g,l),m=this.getScaledCellAt(b,d,k,c,e,f);if(null!=m)return m;if(this.isCellVisible(k)&&(e&&this.model.isEdge(k)||c&&this.model.isVertex(k))&&(m=this.view.getState(k),null!=m&&(null==f||!f(m,b,d))&&this.intersects(m,b,d)))return k}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 g=[],c=0;c<d.length;c++)b(d[c])||g.push(d[c]);d=g}return d};var b=mxGraph.prototype.scrollRectToVisible;Graph.prototype.scrollRectToVisible=function(c){if(this.useCssTransforms){var d=this.currentScale,g=this.currentTranslate;c=new mxRectangle((c.x+2*g.x)*d-g.x,(c.y+2*g.y)*d-g.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,g=this.graph.currentScale,b=new mxRectangle((b.x+d.x)*g,(b.y+d.y)*g,b.width*g,b.height*g);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=this.scale,this.graph.currentTranslate.x=this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=0,this.translate.y=0);c.apply(this,arguments);this.graph.useCssTransforms&&(this.graph.updateCssTransform(),this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=this.graph.currentTranslate.y)};var e=mxGraph.prototype.getCellsForGroup;
-Graph.prototype.getCellsForGroup=function(b){b=e.apply(this,arguments);for(var d=[],g=0;g<b.length;g++)this.isTableRow(b[g])||this.isTableCell(b[g])||d.push(b[g]);return d};var k=mxGraph.prototype.getCellsForUngroup;Graph.prototype.getCellsForUngroup=function(b){b=k.apply(this,arguments);for(var d=[],g=0;g<b.length;g++)this.isTable(b[g])||this.isTableRow(b[g])||this.isTableCell(b[g])||d.push(b[g]);return d};Graph.prototype.updateCssTransform=function(){var b=this.view.getDrawPane();if(null!=b)if(b=
-b.parentNode,this.useCssTransforms){var d=b.getAttribute("transform");b.setAttribute("transformOrigin","0 0");var g=Math.round(100*this.currentScale)/100;b.setAttribute("transform","scale("+g+","+g+")translate("+Math.round(100*this.currentTranslate.x)/100+","+Math.round(100*this.currentTranslate.y)/100+")");d!=b.getAttribute("transform")&&this.fireEvent(new mxEventObject("cssTransformChanged"),"transform",b.getAttribute("transform"))}else b.removeAttribute("transformOrigin"),b.removeAttribute("transform")};
-var f=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){var b=this.graph.useCssTransforms,d=this.scale,g=this.translate;b&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);f.apply(this,arguments);b&&(this.scale=d,this.translate=g)};var n=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(b,d,g){var c=this.useCssTransforms,e=this.view.scale,f=this.view.translate;c&&(this.view.scale=1,this.view.translate=
-new mxPoint(0,0),this.useCssTransforms=!1);n.apply(this,arguments);c&&(this.view.scale=e,this.view.translate=f,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.isViewer=function(){return!1};
-Graph.prototype.labelLinkClicked=function(b,c,e){c=c.getAttribute("href");if(null!=c&&!this.isCustomLink(c)&&(mxEvent.isLeftMouseButton(e)&&!mxEvent.isPopupTrigger(e)||mxEvent.isTouchEvent(e))){if(!this.isEnabled()||this.isCellLocked(b.cell))b=this.isBlankLink(c)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(c),b);mxEvent.consume(e)}};
+(!this.isSwimlane(b)||0==g)&&""==this.getLabel(b)&&0<this.model.getChildCount(b))for(g=0;g<this.model.getChildCount(b);g++){var c=this.model.getChildAt(b,g);if(this.isCellEditable(c)){b=c;break}}return b};Graph.prototype.copyStyle=function(b){return this.getCellStyle(b,!1)};Graph.prototype.pasteStyle=function(b,d,g){g=null!=g?g:Graph.pasteStyles;Graph.removeKeys(b,function(b){return 0>mxUtils.indexOf(g,b)});this.updateCellStyles(b,d)};Graph.prototype.updateCellStyles=function(b,d){this.model.beginUpdate();
+try{for(var g=0;g<d.length;g++)if(this.model.isVertex(d[g])||this.model.isEdge(d[g])){var c=this.getCellStyle(d[g],!1),e;for(e in b){var f=b[e];c[e]!=f&&this.setCellStyles(e,f,[d[g]])}}}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,g,c,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,g,c,e,f){c=null!=c?c:!0;e=null!=e?e:!0;null==g&&(g=this.getCurrentRoot(),null==g&&(g=this.getModel().getRoot()));if(null!=g)for(var l=this.model.getChildCount(g)-1;0<=l;l--){var k=this.model.getChildAt(g,
+l),m=this.getScaledCellAt(b,d,k,c,e,f);if(null!=m)return m;if(this.isCellVisible(k)&&(e&&this.model.isEdge(k)||c&&this.model.isVertex(k))&&(m=this.view.getState(k),null!=m&&(null==f||!f(m,b,d))&&this.intersects(m,b,d)))return k}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 g=[],c=0;c<d.length;c++)b(d[c])||g.push(d[c]);d=g}return d};var b=mxGraph.prototype.scrollRectToVisible;Graph.prototype.scrollRectToVisible=function(c){if(this.useCssTransforms){var d=this.currentScale,g=this.currentTranslate;c=new mxRectangle((c.x+2*g.x)*d-g.x,(c.y+2*g.y)*d-g.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,g=this.graph.currentScale,b=new mxRectangle((b.x+d.x)*g,(b.y+d.y)*g,b.width*g,b.height*g);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=this.scale,this.graph.currentTranslate.x=
+this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=0,this.translate.y=0);c.apply(this,arguments);this.graph.useCssTransforms&&(this.graph.updateCssTransform(),this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=this.graph.currentTranslate.y)};var e=mxGraph.prototype.getCellsForGroup;Graph.prototype.getCellsForGroup=function(b){b=e.apply(this,arguments);for(var d=[],g=0;g<b.length;g++)this.isTableRow(b[g])||this.isTableCell(b[g])||
+d.push(b[g]);return d};var k=mxGraph.prototype.getCellsForUngroup;Graph.prototype.getCellsForUngroup=function(b){b=k.apply(this,arguments);for(var d=[],g=0;g<b.length;g++)this.isTable(b[g])||this.isTableRow(b[g])||this.isTableCell(b[g])||d.push(b[g]);return d};Graph.prototype.updateCssTransform=function(){var b=this.view.getDrawPane();if(null!=b)if(b=b.parentNode,this.useCssTransforms){var d=b.getAttribute("transform");b.setAttribute("transformOrigin","0 0");var g=Math.round(100*this.currentScale)/
+100;b.setAttribute("transform","scale("+g+","+g+")translate("+Math.round(100*this.currentTranslate.x)/100+","+Math.round(100*this.currentTranslate.y)/100+")");d!=b.getAttribute("transform")&&this.fireEvent(new mxEventObject("cssTransformChanged"),"transform",b.getAttribute("transform"))}else b.removeAttribute("transformOrigin"),b.removeAttribute("transform")};var f=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){var b=this.graph.useCssTransforms,
+d=this.scale,g=this.translate;b&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);f.apply(this,arguments);b&&(this.scale=d,this.translate=g)};var n=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(b,d,g){var c=this.useCssTransforms,e=this.view.scale,f=this.view.translate;c&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms=!1);n.apply(this,arguments);c&&(this.view.scale=e,this.view.translate=f,this.useCssTransforms=
+!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.isViewer=function(){return!1};Graph.prototype.labelLinkClicked=function(b,c,e){c=c.getAttribute("href");if(null!=c&&!this.isCustomLink(c)&&(mxEvent.isLeftMouseButton(e)&&!mxEvent.isPopupTrigger(e)||mxEvent.isTouchEvent(e))){if(!this.isEnabled()||this.isCellLocked(b.cell))b=this.isBlankLink(c)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(c),b);mxEvent.consume(e)}};
Graph.prototype.openLink=function(b,c,e){var k=window;try{if("_self"==c&&window!=window.top)window.location.href=b;else if(b.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==b.charAt(this.baseUrl.length)&&"_top"==c&&window==window.top){var f=b.split("#")[1];window.location.hash=="#"+f&&(window.location.hash="");window.location.hash=f}else k=window.open(b,null!=c?c:"_blank"),null==k||e||(k.opener=null)}catch(n){}return k};
Graph.prototype.getLinkTitle=function(b){return b.substring(b.lastIndexOf("/")+1)};Graph.prototype.isCustomLink=function(b){return"data:"==b.substring(0,5)};Graph.prototype.customLinkClicked=function(b){return!1};Graph.prototype.isExternalProtocol=function(b){return"mailto:"===b.substring(0,7)};Graph.prototype.isBlankLink=function(b){return!this.isExternalProtocol(b)&&("blank"===this.linkPolicy||"self"!==this.linkPolicy&&!this.isRelativeUrl(b)&&b.substring(0,this.domainUrl.length)!==this.domainUrl)};
Graph.prototype.isRelativeUrl=function(b){return null!=b&&!this.absoluteUrlPattern.test(b)&&"data:"!==b.substring(0,5)&&!this.isExternalProtocol(b)};Graph.prototype.getAbsoluteUrl=function(b){null!=b&&this.isRelativeUrl(b)&&(b="#"==b.charAt(0)?this.baseUrl+b:"/"==b.charAt(0)?this.domainUrl+b:this.domainPathUrl+b);return b};
@@ -2428,7 +2427,7 @@ z,q));null!=p&&H.push(p);null==v&&null!=z&&H.push(z);null==z&&null!=p&&p.geometr
Graph.prototype.getIndexableText=function(){var b=document.createElement("div"),c=[],e,k;for(k in this.model.cells)if(e=this.model.cells[k],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"),k=b;null==e&&null!=k;)null!=k.value&&"object"==typeof k.value&&(e=k.hasAttribute(c)?null!=k.getAttribute(c)?k.getAttribute(c):"":null),k=this.model.getParent(k);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};
-Graph.prototype.getLinkTargetForCell=function(b){return null!=b.value&&"object"==typeof b.value?b.value.getAttribute("linkTarget"):null};Graph.prototype.getCellStyle=function(b){var c=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=b&&null!=this.layoutManager){var e=this.model.getParent(b);this.model.isVertex(e)&&this.isCellCollapsed(b)&&(e=this.layoutManager.getLayout(e),null!=e&&e.constructor==mxStackLayout&&(c[mxConstants.STYLE_HORIZONTAL]=!e.horizontal))}return c};
+Graph.prototype.getLinkTargetForCell=function(b){return null!=b.value&&"object"==typeof b.value?b.value.getAttribute("linkTarget"):null};Graph.prototype.postProcessCellStyle=function(b,c){if(null!=b&&null!=this.layoutManager){var e=this.model.getParent(b);this.model.isVertex(e)&&this.isCellCollapsed(b)&&(e=this.layoutManager.getLayout(e),null!=e&&e.constructor==mxStackLayout&&(c[mxConstants.STYLE_HORIZONTAL]=!e.horizontal))}return c};
Graph.prototype.updateAlternateBounds=function(b,c,e){if(null!=b&&null!=c&&null!=this.layoutManager&&null!=c.alternateBounds){var k=this.layoutManager.getLayout(this.model.getParent(b));null!=k&&k.constructor==mxStackLayout&&(k.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,k,f){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 n=0;n<e.length;n++){var t=this.view.getState(e[n]),d=this.getCellGeometry(e[n]);if(null!=t&&null!=d){var g=Math.round(d.width-t.width/this.view.scale),l=Math.round(d.height-t.height/this.view.scale);if(0!=l||0!=g){var m=this.model.getParent(e[n]),p=this.layoutManager.getLayout(m);
null==p?null!=f&&this.isMoveCellsEvent(f,t)&&this.moveSiblings(t,m,g,l):null!=f&&mxEvent.isAltDown(f)||p.constructor!=mxStackLayout||p.resizeLast||this.resizeParentStacks(m,p,g,l)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
@@ -2502,12 +2501,12 @@ c.x+Graph.minTableColumnWidth,t.setGeometry(b,e));this.graph.visitTableCells(b,m
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 k=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(b,d){return k.apply(this,arguments)||null!=b.routedPoints&&null!=d.routedPoints&&!mxUtils.equalPoints(d.routedPoints,b.routedPoints)};var f=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=
function(b){f.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 g=null!=b.routedPoints,c=null;if(null!=d&&null!=this.validEdges&&"none"!==mxUtils.getValue(b.style,"jumpStyle","none")){for(var e=function(d,g,e){var f=new mxPoint(g,e);f.type=d;c.push(f);f=null!=b.routedPoints?b.routedPoints[c.length-1]:null;return null==f||f.type!=
-d||f.x!=g||f.y!=e},f=.5*this.scale,g=!1,c=[],l=0;l<d.length-1;l++){for(var k=d[l+1],m=d[l],n=[],t=d[l+2];l<d.length-2&&mxUtils.ptSegDistSq(m.x,m.y,t.x,t.y,k.x,k.y)<1*this.scale*this.scale;)k=t,l++,t=d[l+2];for(var g=e(0,m.x,m.y)||g,L=0;L<this.validEdges.length;L++){var F=this.validEdges[L],J=F.absolutePoints;if(null!=J&&mxUtils.intersects(b,F)&&"1"!=F.style.noJump)for(F=0;F<J.length-1;F++){for(var C=J[F+1],K=J[F],t=J[F+2];F<J.length-2&&mxUtils.ptSegDistSq(K.x,K.y,t.x,t.y,C.x,C.y)<1*this.scale*this.scale;)C=
-t,F++,t=J[F+2];t=mxUtils.intersection(m.x,m.y,k.x,k.y,K.x,K.y,C.x,C.y);if(null!=t&&(Math.abs(t.x-m.x)>f||Math.abs(t.y-m.y)>f)&&(Math.abs(t.x-k.x)>f||Math.abs(t.y-k.y)>f)&&(Math.abs(t.x-K.x)>f||Math.abs(t.y-K.y)>f)&&(Math.abs(t.x-C.x)>f||Math.abs(t.y-C.y)>f)){C=t.x-m.x;K=t.y-m.y;t={distSq:C*C+K*K,x:t.x,y:t.y};for(C=0;C<n.length;C++)if(n[C].distSq>t.distSq){n.splice(C,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(F=0;F<n.length;F++)g=e(1,n[F].x,
-n[F].y)||g}t=d[d.length-1];g=e(0,t.x,t.y)||g}b.routedPoints=c;return g}return!1};var n=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(b,d,g){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)n.apply(this,arguments);else{var c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,e=(parseInt(mxUtils.getValue(this.style,
-"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,f=mxUtils.getValue(this.style,"jumpStyle","none"),l=!0,k=null,m=null,p=[],q=null;b.begin();for(var t=0;t<this.state.routedPoints.length;t++){var F=this.state.routedPoints[t],J=new mxPoint(F.x/this.scale,F.y/this.scale);0==t?J=d[0]:t==this.state.routedPoints.length-1&&(J=d[d.length-1]);var C=!1;if(null!=k&&1==F.type){var K=this.state.routedPoints[t+1],F=K.x/this.scale-J.x,K=K.y/this.scale-J.y,F=F*F+K*K;null==q&&(q=new mxPoint(J.x-k.x,J.y-k.y),
-m=Math.sqrt(q.x*q.x+q.y*q.y),0<m?(q.x=q.x*e/m,q.y=q.y*e/m):q=null);F>e*e&&0<m&&(F=k.x-J.x,K=k.y-J.y,F=F*F+K*K,F>e*e&&(C=new mxPoint(J.x-q.x,J.y-q.y),F=new mxPoint(J.x+q.x,J.y+q.y),p.push(C),this.addPoints(b,p,g,c,!1,null,l),p=0>Math.round(q.x)||0==Math.round(q.x)&&0>=Math.round(q.y)?1:-1,l=!1,"sharp"==f?(b.lineTo(C.x-q.y*p,C.y+q.x*p),b.lineTo(F.x-q.y*p,F.y+q.x*p),b.lineTo(F.x,F.y)):"line"==f?(b.moveTo(C.x+q.y*p,C.y-q.x*p),b.lineTo(C.x-q.y*p,C.y+q.x*p),b.moveTo(F.x-q.y*p,F.y+q.x*p),b.lineTo(F.x+q.y*
-p,F.y-q.x*p),b.moveTo(F.x,F.y)):"arc"==f?(p*=1.3,b.curveTo(C.x-q.y*p,C.y+q.x*p,F.x-q.y*p,F.y+q.x*p,F.x,F.y)):(b.moveTo(F.x,F.y),l=!0),p=[F],C=!0))}else q=null;C||(p.push(J),k=J)}this.addPoints(b,p,g,c,!1,null,l);b.stroke()}};var t=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(b,d,g,c){return null!=d&&"centerPerimeter"==d.style[mxConstants.STYLE_PERIMETER]?new mxPoint(d.getCenterX(),d.getCenterY()):t.apply(this,arguments)};var d=mxGraphView.prototype.updateFloatingTerminalPoint;
+d||f.x!=g||f.y!=e},f=.5*this.scale,g=!1,c=[],l=0;l<d.length-1;l++){for(var k=d[l+1],m=d[l],n=[],t=d[l+2];l<d.length-2&&mxUtils.ptSegDistSq(m.x,m.y,t.x,t.y,k.x,k.y)<1*this.scale*this.scale;)k=t,l++,t=d[l+2];for(var g=e(0,m.x,m.y)||g,L=0;L<this.validEdges.length;L++){var E=this.validEdges[L],J=E.absolutePoints;if(null!=J&&mxUtils.intersects(b,E)&&"1"!=E.style.noJump)for(E=0;E<J.length-1;E++){for(var C=J[E+1],K=J[E],t=J[E+2];E<J.length-2&&mxUtils.ptSegDistSq(K.x,K.y,t.x,t.y,C.x,C.y)<1*this.scale*this.scale;)C=
+t,E++,t=J[E+2];t=mxUtils.intersection(m.x,m.y,k.x,k.y,K.x,K.y,C.x,C.y);if(null!=t&&(Math.abs(t.x-m.x)>f||Math.abs(t.y-m.y)>f)&&(Math.abs(t.x-k.x)>f||Math.abs(t.y-k.y)>f)&&(Math.abs(t.x-K.x)>f||Math.abs(t.y-K.y)>f)&&(Math.abs(t.x-C.x)>f||Math.abs(t.y-C.y)>f)){C=t.x-m.x;K=t.y-m.y;t={distSq:C*C+K*K,x:t.x,y:t.y};for(C=0;C<n.length;C++)if(n[C].distSq>t.distSq){n.splice(C,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(E=0;E<n.length;E++)g=e(1,n[E].x,
+n[E].y)||g}t=d[d.length-1];g=e(0,t.x,t.y)||g}b.routedPoints=c;return g}return!1};var n=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(b,d,g){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)n.apply(this,arguments);else{var c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,e=(parseInt(mxUtils.getValue(this.style,
+"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,f=mxUtils.getValue(this.style,"jumpStyle","none"),l=!0,k=null,m=null,p=[],q=null;b.begin();for(var t=0;t<this.state.routedPoints.length;t++){var E=this.state.routedPoints[t],J=new mxPoint(E.x/this.scale,E.y/this.scale);0==t?J=d[0]:t==this.state.routedPoints.length-1&&(J=d[d.length-1]);var C=!1;if(null!=k&&1==E.type){var K=this.state.routedPoints[t+1],E=K.x/this.scale-J.x,K=K.y/this.scale-J.y,E=E*E+K*K;null==q&&(q=new mxPoint(J.x-k.x,J.y-k.y),
+m=Math.sqrt(q.x*q.x+q.y*q.y),0<m?(q.x=q.x*e/m,q.y=q.y*e/m):q=null);E>e*e&&0<m&&(E=k.x-J.x,K=k.y-J.y,E=E*E+K*K,E>e*e&&(C=new mxPoint(J.x-q.x,J.y-q.y),E=new mxPoint(J.x+q.x,J.y+q.y),p.push(C),this.addPoints(b,p,g,c,!1,null,l),p=0>Math.round(q.x)||0==Math.round(q.x)&&0>=Math.round(q.y)?1:-1,l=!1,"sharp"==f?(b.lineTo(C.x-q.y*p,C.y+q.x*p),b.lineTo(E.x-q.y*p,E.y+q.x*p),b.lineTo(E.x,E.y)):"line"==f?(b.moveTo(C.x+q.y*p,C.y-q.x*p),b.lineTo(C.x-q.y*p,C.y+q.x*p),b.moveTo(E.x-q.y*p,E.y+q.x*p),b.lineTo(E.x+q.y*
+p,E.y-q.x*p),b.moveTo(E.x,E.y)):"arc"==f?(p*=1.3,b.curveTo(C.x-q.y*p,C.y+q.x*p,E.x-q.y*p,E.y+q.x*p,E.x,E.y)):(b.moveTo(E.x,E.y),l=!0),p=[E],C=!0))}else q=null;C||(p.push(J),k=J)}this.addPoints(b,p,g,c,!1,null,l);b.stroke()}};var t=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(b,d,g,c){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,g,c,e){if(null==g||null==b||"1"!=g.style.snapToPoint&&"1"!=b.style.snapToPoint)d.apply(this,arguments);else{g=this.getTerminalPort(b,g,e);var f=this.getNextPoint(b,c,e),l=this.graph.isOrthogonal(b),k=mxUtils.toRadians(Number(g.style[mxConstants.STYLE_ROTATION]||"0")),m=new mxPoint(g.getCenterX(),g.getCenterY());if(0!=k)var p=Math.cos(-k),q=Math.sin(-k),f=mxUtils.getRotatedPoint(f,p,q,m);p=parseFloat(b.style[mxConstants.STYLE_PERIMETER_SPACING]||
0);p+=parseFloat(b.style[e?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);f=this.getPerimeterPoint(g,f,0==k&&l,p);0!=k&&(p=Math.cos(k),q=Math.sin(k),f=mxUtils.getRotatedPoint(f,p,q,m));b.setAbsoluteTerminalPoint(this.snapToAnchorPoint(b,g,c,e,f),e)}};mxGraphView.prototype.snapToAnchorPoint=function(b,d,g,c,e){if(null!=d&&null!=b){b=this.graph.getAllConnectionConstraints(d);c=g=null;if(null!=b)for(var f=0;f<b.length;f++){var l=this.graph.getConnectionPoint(d,
b[f]);if(null!=l){var k=(l.x-e.x)*(l.x-e.x)+(l.y-e.y)*(l.y-e.y);if(null==c||k<c)g=l,c=k}}null!=g&&(e=g)}return e};var g=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(b,d,c){var e=g.apply(this,arguments);"1"==b.getAttribute("placeholders")&&null!=c.state&&(e=c.state.view.graph.replacePlaceholders(c.state.cell,e));return e};var l=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(b){if(null!=b.style&&"undefined"!==typeof pako){var d=
@@ -2524,143 +2523,142 @@ d=k.getAttribute("h"),t=null==t?80:parseInt(t,10),d=null==d?80:parseInt(d,10);c(
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 k=mxGraphLayout.prototype.isEdgeIgnored;mxGraphLayout.prototype.isEdgeIgnored=function(b){return k.apply(this,arguments)||
this.graph.isEdgeIgnored(b)};var f=mxConnectionHandler.prototype.isCreateTarget;mxConnectionHandler.prototype.isCreateTarget=function(b){return this.graph.isCloneEvent(b)||f.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.style);return b};var n=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var b=n.apply(this,arguments);b.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];
+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 n=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var b=n.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 g=d.apply(this,arguments);this.error=null;return g});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(" "),g=0;g<d.length;g++)null!=this.currentEdgeStyle[d[g]]&&(b+=d[g]+"="+this.currentEdgeStyle[d[g]]+";");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.updateCellStyles=function(b,d,g){this.model.beginUpdate();try{for(var c=0;c<g.length;c++)if(this.model.isVertex(g[c])||this.model.isEdge(g[c])){this.setCellStyles(b,null,[g[c]]);var e=this.getCellStyle(g[c])[b];d!=(null==e?mxConstants.NONE:e)&&this.setCellStyles(b,d,[g[c]])}}finally{this.model.endUpdate()}};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 g=0;g<b.length;g++){var c=b[g];d[mxObjectIdentity.get(c)]=c.getId();for(var e=this.model.getChildCount(c),f=0;f<e;f++)this.createCellLookup([this.model.getChildAt(c,f)],d)}return d};Graph.prototype.createCellMapping=function(b,d,g){g=null!=g?g:{};for(var c in b){var e=d[c];null==g[e]&&(g[e]=b[c].getId()||
-"")}return g};Graph.prototype.importGraphModel=function(b,d,g,c){d=null!=d?d:0;g=null!=g?g:0;var e=new mxCodec(b.ownerDocument),f=new mxGraphModel;e.decode(b,f);b=[];var e={},l={},k=f.getChildren(this.cloneCell(f.root,this.isCloneInvalidEdges(),e));if(null!=k){var m=this.createCellLookup([f.root]),k=k.slice();this.model.beginUpdate();try{if(1!=k.length||this.isCellLocked(this.getDefaultParent()))for(f=0;f<k.length;f++)p=this.model.getChildren(this.moveCells([k[f]],d,g,!1,this.model.getRoot())[0]),
-null!=p&&(b=b.concat(p));else{var p=f.getChildren(k[0]);null!=p&&(b=this.moveCells(p,d,g,!1,this.getDefaultParent()),l[f.getChildAt(f.root,0).getId()]=this.getDefaultParent().getId())}if(null!=b&&(this.createCellMapping(e,m,l),this.updateCustomLinks(l,b),c)){this.isGridEnabled()&&(d=this.snap(d),g=this.snap(g));var q=this.getBoundingBoxFromGeometry(b,!0);null!=q&&this.moveCells(b,d-q.x,g-q.y)}}finally{this.model.endUpdate()}}return b};Graph.prototype.encodeCells=function(b){for(var d={},g=this.cloneCells(b,
-null,d),c=new mxDictionary,e=0;e<b.length;e++)c.put(b[e],!0);for(var f=new mxCodec,l=new mxGraphModel,k=l.getChildAt(l.getRoot(),0),e=0;e<g.length;e++){l.add(k,g[e]);var m=this.view.getState(b[e]);if(null!=m){var p=this.getCellGeometry(g[e]);null!=p&&p.relative&&!this.model.isEdge(b[e])&&null==c.get(this.model.getParent(b[e]))&&(p.offset=null,p.relative=!1,p.x=m.x/m.view.scale-m.view.translate.x,p.y=m.y/m.view.scale-m.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(d,this.createCellLookup(b)),
-g);return f.encode(l)};Graph.prototype.isSwimlane=function(b,d){if(null!=b&&this.model.getParent(b)!=this.model.getRoot()&&!this.model.isEdge(b)){var g=this.getCurrentCellStyle(b,d)[mxConstants.STYLE_SHAPE];return g==mxConstants.SHAPE_SWIMLANE||"table"==g}return!1};var d=Graph.prototype.isExtendParent;Graph.prototype.isExtendParent=function(b){var g=this.model.getParent(b);if(null!=g){var c=this.getCurrentCellStyle(g);if(null!=c.expand)return"0"!=c.expand}return d.apply(this,arguments)&&(null==g||
-!this.isTable(g))};var g=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(b,d,c,e,f,l,k,m){null==m&&(m=this.model.getParent(b),this.isTable(m)||this.isTableRow(m))&&(m=this.getCellAt(l,k,null,!0,!1));c=null;this.model.beginUpdate();try{c=g.apply(this,[b,d,c,e,f,l,k,m]);this.model.setValue(c,"");var p=this.getChildCells(c,!0);for(d=0;d<p.length;d++){var q=this.getCellGeometry(p[d]);null!=q&&q.relative&&0<q.x&&this.model.remove(p[d])}var E=this.getChildCells(b,!0);for(d=0;d<E.length;d++)q=
-this.getCellGeometry(E[d]),null!=q&&q.relative&&0>=q.x&&this.model.remove(E[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 ha=this.model.getTerminal(c,!1);if(null!=ha){var v=this.getCurrentCellStyle(ha);null!=v&&"1"==v.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 l=Graph.prototype.selectCell;Graph.prototype.selectCell=function(b,d,g){if(d||g)l.apply(this,arguments);else{var c=this.getSelectionCell(),e=null,f=[],k=mxUtils.bind(this,function(d){if(null!=this.view.getState(d)&&(this.model.isVertex(d)||this.model.isEdge(d)))if(f.push(d),d==c)e=
-f.length-1;else if(b&&null==c&&0<f.length||null!=e&&b&&f.length>e||!b&&0<e)return;for(var g=0;g<this.model.getChildCount(d);g++)k(this.model.getChildAt(d,g))});k(this.model.root);0<f.length&&(e=null!=e?mxUtils.mod(e+(b?1:-1),f.length):0,this.setSelectionCell(f[e]))}};Graph.prototype.swapUmlLifelines=function(b,d){var g=!1;if(null!=d&&1==b.length){var c=this.view.getState(d),e=this.view.getState(b[0]);if(null!=c&&null!=e&&"umlLifeline"==c.style.shape&&"umlLifeline"==e.style.shape&&(e=this.getCellGeometry(d),
-c=this.getCellGeometry(b[0]),null!=e&&null!=c)){g=e.clone();e=c.clone();e.x=g.x;e.y=g.y;g.x=c.x;g.y=c.y;this.model.beginUpdate();try{this.model.setGeometry(d,g),this.model.setGeometry(b[0],e)}finally{this.model.endUpdate()}g=!0}}return g};var m=Graph.prototype.moveCells;Graph.prototype.moveCells=function(b,d,g,c,e,f,l){if(!c&&this.swapUmlLifelines(b,e))return b;l=null!=l?l:{};if(this.isTable(e)){for(var k=[],p=0;p<b.length;p++)this.isTable(b[p])?k=k.concat(this.model.getChildCells(b[p],!0).reverse()):
-k.push(b[p]);b=k}this.model.beginUpdate();try{k=[];for(p=0;p<b.length;p++)if(null!=e&&this.isTableRow(b[p])){var q=this.model.getParent(b[p]),E=this.getCellGeometry(b[p]);this.isTable(q)&&k.push(q);if(null!=q&&null!=E&&this.isTable(q)&&this.isTable(e)&&(c||q!=e)){if(!c){var v=this.getCellGeometry(q);null!=v&&(v=v.clone(),v.height-=E.height,this.model.setGeometry(q,v))}v=this.getCellGeometry(e);null!=v&&(v=v.clone(),v.height+=E.height,this.model.setGeometry(e,v));var ha=this.model.getChildCells(e,
-!0);if(0<ha.length){b[p]=c?this.cloneCell(b[p]):b[p];var u=this.model.getChildCells(b[p],!0),A=this.model.getChildCells(ha[0],!0),n=A.length-u.length;if(0<n)for(var x=0;x<n;x++){var I=this.cloneCell(u[u.length-1]);null!=I&&(I.value="",this.model.add(b[p],I))}else if(0>n)for(x=0;x>n;x--)this.model.remove(u[u.length+x-1]);u=this.model.getChildCells(b[p],!0);for(x=0;x<A.length;x++){var P=this.getCellGeometry(A[x]),t=this.getCellGeometry(u[x]);null!=P&&null!=t&&(t=t.clone(),t.width=P.width,this.model.setGeometry(u[x],
-t))}}}}for(var ua=m.apply(this,arguments),p=0;p<k.length;p++)!c&&this.model.contains(k[p])&&0==this.model.getChildCount(k[p])&&this.model.remove(k[p]);c&&this.updateCustomLinks(this.createCellMapping(l,this.createCellLookup(b)),ua)}finally{this.model.endUpdate()}return ua};var p=Graph.prototype.removeCells;Graph.prototype.removeCells=function(b,d){var g=[];this.model.beginUpdate();try{for(var c=0;c<b.length;c++)if(this.isTableCell(b[c])){var e=this.model.getParent(b[c]),f=this.model.getParent(e);
-1==this.model.getChildCount(e)&&1==this.model.getChildCount(f)?0>mxUtils.indexOf(b,f)&&0>mxUtils.indexOf(g,f)&&g.push(f):this.labelChanged(b[c],"")}else{if(this.isTableRow(b[c])&&(f=this.model.getParent(b[c]),0>mxUtils.indexOf(b,f)&&0>mxUtils.indexOf(g,f))){for(var l=this.model.getChildCells(f,!0),k=0,m=0;m<l.length;m++)0<=mxUtils.indexOf(b,l[m])&&k++;k==l.length&&g.push(f)}g.push(b[c])}g=p.apply(this,[g,d])}finally{this.model.endUpdate()}return g};Graph.prototype.updateCustomLinks=function(b,d,g){g=
-null!=g?g:new Graph;for(var c=0;c<d.length;c++)null!=d[c]&&g.updateCustomLinksForCell(b,d[c],g)};Graph.prototype.updateCustomLinksForCell=function(b,d){this.doUpdateCustomLinksForCell(b,d);for(var g=this.model.getChildCount(d),c=0;c<g;c++)this.updateCustomLinksForCell(b,this.model.getChildAt(d,c))};Graph.prototype.doUpdateCustomLinksForCell=function(b,d){};Graph.prototype.getAllConnectionConstraints=function(b,d){if(null!=b){var g=mxUtils.getValue(b.style,"points",null);if(null!=g){var c=[];try{for(var e=
-JSON.parse(g),g=0;g<e.length;g++){var f=e[g];c.push(new mxConnectionConstraint(new mxPoint(f[0],f[1]),2<f.length?"0"!=f[2]:!0,null,3<f.length?f[3]:0,4<f.length?f[4]:0))}}catch(pa){}return c}if(null!=b.shape&&null!=b.shape.bounds){f=b.shape.direction;e=b.shape.bounds;g=b.shape.scale;c=e.width/g;e=e.height/g;if(f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH)f=c,c=e,e=f;g=b.shape.getConstraints(b.style,c,e);if(null!=g)return g;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),g=0,c=0;c<d;c++){var e=this.model.getChildAt(b,c);this.model.isVertex(e)&&
-(e=this.getCellGeometry(e),null==e||e.relative||g++)}return 0<g||this.isContainer(b)};Graph.prototype.isValidDropTarget=function(b,d,g){for(var c=this.getCurrentCellStyle(b),e=!0,f=!0,l=0;l<d.length&&f;l++)e=e&&this.isTable(d[l]),f=f&&this.isTableRow(d[l]);return("1"!=mxUtils.getValue(c,"part","0")||this.isContainer(b))&&"0"!=mxUtils.getValue(c,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(b))&&!this.isTableRow(b)&&(!this.isTable(b)||f||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 g=this.model.getParent(b);null!=g&&(g=this.layoutManager.getLayout(g),null!=g&&g.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 g=this.getModel(),c=[];g.beginUpdate();try{for(var e=0;e<b.length;e++){var f=b[e];if(g.isEdge(f)){var l=g.getTerminal(f,!0),k=g.getTerminal(f,!1);g.setTerminal(f,k,!0);g.setTerminal(f,l,!1);var m=g.getGeometry(f);if(null!=m){m=m.clone();null!=m.points&&m.points.reverse();var p=m.getTerminalPoint(!0),q=m.getTerminalPoint(!1);
-m.setTerminalPoint(p,!1);m.setTerminalPoint(q,!0);g.setGeometry(f,m);var E=this.view.getState(f),v=this.view.getState(l),u=this.view.getState(k);if(null!=E){var A=null!=v?this.getConnectionConstraint(E,v,!0):null,ha=null!=u?this.getConnectionConstraint(E,u,!1):null;this.setConnectionConstraint(f,l,!0,ha);this.setConnectionConstraint(f,k,!1,A);var n=mxUtils.getValue(E.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(E.style,
-mxConstants.STYLE_TARGET_PERIMETER_SPACING),[f]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,n,[f])}c.push(f)}}else if(g.isVertex(f)&&(m=this.getCellGeometry(f),null!=m)){if(!(this.isTable(f)||this.isTableRow(f)||this.isTableCell(f)||this.isSwimlane(f))){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;g.setGeometry(f,m)}var I=this.view.getState(f);if(null!=I){var t=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,
-mxConstants.DIRECTION_NORTH],y=mxUtils.getValue(I.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,t[mxUtils.mod(mxUtils.indexOf(t,y)+(d?-1:1),t.length)],[f])}c.push(f)}}}finally{g.endUpdate()}return c};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 q=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 g=this.view.getState(d);null!=g&&null!=g.shape&&(this.view.invalidate(d),g.shape.bounds=null)}q.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 g=this.view.getState(b[d]);null!=g&&null!=g.shape&&null!=g.shape.stencil&&this.stencilHasPlaceholders(g.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 g=b.ownerDocument.createElement(null!=
-d?d:"span"),c=Array.prototype.slice.call(b.attributes);attr=c.pop();)g.setAttribute(attr.nodeName,attr.nodeValue);g.innerHTML=b.innerHTML;b.parentNode.replaceChild(g,b)};Graph.prototype.processElements=function(b,d){if(null!=b)for(var g=b.getElementsByTagName("*"),c=0;c<g.length;c++)d(g[c])};Graph.prototype.updateLabelElements=function(b,d,g){b=null!=b?b:this.getSelectionCells();for(var c=document.createElement("div"),e=0;e<b.length;e++)if(this.isHtmlLabel(b[e])){var f=this.convertValueToString(b[e]);
-if(null!=f&&0<f.length){c.innerHTML=f;for(var l=c.getElementsByTagName(null!=g?g:"*"),k=0;k<l.length;k++)d(l[k]);c.innerHTML!=f&&this.cellLabelChanged(b[e],c.innerHTML)}}};Graph.prototype.cellLabelChanged=function(b,d,g){d=Graph.zapGremlins(d);this.model.beginUpdate();try{if(null!=b.value&&"object"==typeof b.value){if(this.isReplacePlaceholders(b)&&null!=b.getAttribute("placeholder"))for(var c=b.getAttribute("placeholder"),e=b;null!=e;){if(e==this.model.getRoot()||null!=e.value&&"object"==typeof e.value&&
-e.hasAttribute(c)){this.setAttributeForCell(e,c,d);break}e=this.model.getParent(e)}var f=b.value.cloneNode(!0);Graph.translateDiagram&&null!=Graph.diagramLanguage&&f.hasAttribute("label_"+Graph.diagramLanguage)?f.setAttribute("label_"+Graph.diagramLanguage,d):f.setAttribute("label",d);d=f}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(b){if(null!=b){for(var d=new mxDictionary,g=0;g<b.length;g++)d.put(b[g],!0);for(var c=
-[],g=0;g<b.length;g++){var e=this.model.getParent(b[g]);null==e||d.get(e)||(d.put(e,!0),c.push(e))}for(g=0;g<c.length;g++)if(e=this.view.getState(c[g]),null!=e&&(this.model.isEdge(e.cell)||this.model.isVertex(e.cell))&&this.isCellDeletable(e.cell)&&this.isTransparentState(e)){for(var f=!0,l=0;l<this.model.getChildCount(e.cell)&&f;l++)d.get(this.model.getChildAt(e.cell,l))||(f=!1);f&&b.push(e.cell)}}mxGraph.prototype.cellsRemoved.apply(this,arguments)};Graph.prototype.removeCellsAfterUngroup=function(b){for(var d=
-[],g=0;g<b.length;g++)this.isCellDeletable(b[g])&&this.isTransparentState(this.view.getState(b[g]))&&d.push(b[g]);b=d;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(b,d){this.setAttributeForCell(b,"link",d)};Graph.prototype.setTooltipForCell=function(b,d){var g="tooltip";Graph.translateDiagram&&null!=Graph.diagramLanguage&&mxUtils.isNode(b.value)&&b.value.hasAttribute("tooltip_"+Graph.diagramLanguage)&&(g="tooltip_"+Graph.diagramLanguage);
-this.setAttributeForCell(b,g,d)};Graph.prototype.getAttributeForCell=function(b,d,g){b=null!=b.value&&"object"===typeof b.value?b.value.getAttribute(d):null;return null!=b?b:g};Graph.prototype.setAttributeForCell=function(b,d,g){var c;null!=b.value&&"object"==typeof b.value?c=b.value.cloneNode(!0):(c=mxUtils.createXmlDocument().createElement("UserObject"),c.setAttribute("label",b.value||""));null!=g?c.setAttribute(d,g):c.removeAttribute(d);this.model.setValue(b,c)};var u=Graph.prototype.getDropTarget;
-Graph.prototype.getDropTarget=function(b,d,g,c){this.getModel();if(mxEvent.isAltDown(d))return null;for(var e=0;e<b.length;e++){var f=this.model.getParent(b[e]);if(this.model.isEdge(f)&&0>mxUtils.indexOf(b,f))return null}for(var f=u.apply(this,arguments),l=!0,e=0;e<b.length&&l;e++)l=l&&this.isTableRow(b[e]);l&&(this.isTableCell(f)&&(f=this.model.getParent(f)),this.isTableRow(f)&&(f=this.model.getParent(f)),this.isTable(f)||(f=null));return f};Graph.prototype.click=function(b){mxGraph.prototype.click.call(this,
-b);this.firstClickState=b.getState();this.firstClickSource=b.getSource()};Graph.prototype.dblClick=function(b,d){this.isEnabled()&&(d=this.insertTextForEvent(b,d),mxGraph.prototype.dblClick.call(this,b,d))};Graph.prototype.insertTextForEvent=function(b,d){var g=mxUtils.convertPoint(this.container,mxEvent.getClientX(b),mxEvent.getClientY(b));if(null!=b&&!this.model.isVertex(d)){var c=this.model.isEdge(d)?this.view.getState(d):null,e=mxEvent.getSource(b);this.firstClickState!=c||this.firstClickSource!=
-e||null!=c&&null!=c.text&&null!=c.text.node&&null!=c.text.boundingBox&&(mxUtils.contains(c.text.boundingBox,g.x,g.y)||mxUtils.isAncestorNode(c.text.node,mxEvent.getSource(b)))||(null!=c||this.isCellLocked(this.getDefaultParent()))&&(null==c||this.isCellLocked(c.cell))||!(null!=c||mxClient.IS_SVG&&e==this.view.getCanvas().ownerSVGElement)||(null==c&&(c=this.view.getState(this.getCellAt(g.x,g.y))),d=this.addText(g.x,g.y,c))}return d};Graph.prototype.getInsertPoint=function(){var b=this.getGridSize(),
-d=this.container.scrollLeft/this.view.scale-this.view.translate.x,g=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var c=this.getPageLayout(),e=this.getPageSize(),d=Math.max(d,c.x*e.width),g=Math.max(g,c.y*e.height);return new mxPoint(this.snap(d+b),this.snap(g+b))};Graph.prototype.getFreeInsertPoint=function(){var b=this.view,d=this.getGraphBounds(),g=this.getInsertPoint(),c=this.snap(Math.round(Math.max(g.x,d.x/b.scale-b.translate.x+(0==d.width?2*this.gridSize:
-0)))),b=this.snap(Math.round(Math.max(g.y,(d.y+d.height)/b.scale-b.translate.y+2*this.gridSize)));return new mxPoint(c,b)};Graph.prototype.getCenterInsertPoint=function(b){b=null!=b?b:new mxRectangle;return mxUtils.hasScrollbars(this.container)?new mxPoint(this.snap(Math.round((this.container.scrollLeft+this.container.clientWidth/2)/this.view.scale-this.view.translate.x-b.width/2)),this.snap(Math.round((this.container.scrollTop+this.container.clientHeight/2)/this.view.scale-this.view.translate.y-
-b.height/2))):new mxPoint(this.snap(Math.round(this.container.clientWidth/2/this.view.scale-this.view.translate.x-b.width/2)),this.snap(Math.round(this.container.clientHeight/2/this.view.scale-this.view.translate.y-b.height/2)))};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(b,d,g){var c=new mxCell;c.value="Text";c.geometry=new mxGeometry(0,0,0,0);c.vertex=!0;if(null!=g&&this.model.isEdge(g.cell)){c.style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];";
-c.geometry.relative=!0;c.connectable=!1;var e=this.view.getRelativePoint(g,b,d);c.geometry.x=Math.round(1E4*e.x)/1E4;c.geometry.y=Math.round(e.y);c.geometry.offset=new mxPoint(0,0);var e=this.view.getPoint(g,c.geometry),f=this.view.scale;c.geometry.offset=new mxPoint(Math.round((b-e.x)/f),Math.round((d-e.y)/f))}else e=this.view.translate,c.style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];",c.geometry.width=40,c.geometry.height=20,c.geometry.x=Math.round(b/this.view.scale)-
-e.x-(null!=g?g.origin.x:0),c.geometry.y=Math.round(d/this.view.scale)-e.y-(null!=g?g.origin.y:0),c.style+="autosize=1;";this.getModel().beginUpdate();try{this.addCells([c],null!=g?g.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[c])),this.autoSizeCell(c)}finally{this.getModel().endUpdate()}return c};Graph.prototype.addClickHandler=function(b,d,g){var c=mxUtils.bind(this,function(){var b=this.container.getElementsByTagName("a");if(null!=b)for(var g=0;g<b.length;g++){var c=this.getAbsoluteUrl(b[g].getAttribute("href"));
-null!=c&&(b[g].setAttribute("rel",this.linkRelation),b[g].setAttribute("href",c),null!=d&&mxEvent.addGestureListeners(b[g],null,null,d))}});this.model.addListener(mxEvent.CHANGE,c);c();var e=this.container.style.cursor,f=this.getTolerance(),l=this,k={currentState:null,currentLink:null,currentTarget:null,highlight:null!=b&&""!=b&&b!=mxConstants.NONE?new mxCellHighlight(l,b,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(b){var d=b.sourceState;if(null==d||null==l.getLinkForCell(d.cell))b=
-l.getCellAt(b.getGraphX(),b.getGraphY(),null,null,null,function(b,d,g){return null==l.getLinkForCell(b.cell)}),d=null==d||l.model.isAncestor(b,d.cell)?l.view.getState(b):null;d!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=d,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(b,d){this.startX=d.getGraphX();this.startY=d.getGraphY();this.scrollLeft=l.container.scrollLeft;this.scrollTop=l.container.scrollTop;null==this.currentLink&&"auto"==l.container.style.overflow&&
-(l.container.style.cursor="move");this.updateCurrentState(d)},mouseMove:function(b,d){if(l.isMouseDown){if(null!=this.currentLink){var g=Math.abs(this.startX-d.getGraphX()),c=Math.abs(this.startY-d.getGraphY());(g>f||c>f)&&this.clear()}}else{for(g=d.getSource();null!=g&&"a"!=g.nodeName.toLowerCase();)g=g.parentNode;null!=g?this.clear():(null!=l.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&l.tooltipHandler.reset(d,!0,this.currentState),(null==this.currentState||d.getState()!=this.currentState&&
-null!=d.sourceState||!l.intersects(this.currentState,d.getGraphX(),d.getGraphY()))&&this.updateCurrentState(d))}},mouseUp:function(b,c){for(var e=c.getSource(),k=c.getEvent();null!=e&&"a"!=e.nodeName.toLowerCase();)e=e.parentNode;null==e&&Math.abs(this.scrollLeft-l.container.scrollLeft)<f&&Math.abs(this.scrollTop-l.container.scrollTop)<f&&(null==c.sourceState||!c.isSource(c.sourceState.control))&&((mxEvent.isLeftMouseButton(k)||mxEvent.isMiddleMouseButton(k))&&!mxEvent.isPopupTrigger(k)||mxEvent.isTouchEvent(k))&&
-(null!=this.currentLink?(e=l.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&e||null==d||d(k,this.currentLink),mxEvent.isConsumed(k)||(k=null!=this.currentTarget?this.currentTarget:mxEvent.isMiddleMouseButton(k)?"_blank":e?l.linkTarget:"_top",l.openLink(this.currentLink,k),c.consume())):null!=g&&!c.isConsumed()&&Math.abs(this.scrollLeft-l.container.scrollLeft)<f&&Math.abs(this.scrollTop-l.container.scrollTop)<f&&Math.abs(this.startX-c.getGraphX())<f&&Math.abs(this.startY-
-c.getGraphY())<f&&g(c.getEvent()));this.clear()},activate:function(b){this.currentLink=l.getAbsoluteUrl(l.getLinkForCell(b.cell));null!=this.currentLink&&(this.currentTarget=l.getLinkTargetForCell(b.cell),l.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(b))},clear:function(){null!=l.container&&(l.container.style.cursor=e);this.currentLink=this.currentState=this.currentTarget=null;null!=this.highlight&&this.highlight.hide();null!=l.tooltipHandler&&l.tooltipHandler.hide()}};
-l.click=function(b){};l.addMouseListener(k);mxEvent.addListener(document,"mouseleave",function(b){k.clear()})};Graph.prototype.duplicateCells=function(b,d){b=null!=b?b:this.getSelectionCells();d=null!=d?d:!0;for(var g=0;g<b.length;g++)this.isTableCell(b[g])&&(b[g]=this.model.getParent(b[g]));b=this.model.getTopmostCells(b);var c=this.getModel(),e=this.gridSize,f=[];c.beginUpdate();try{for(var l={},k=this.createCellLookup(b),m=this.cloneCells(b,!1,l,!0),g=0;g<b.length;g++){var p=c.getParent(b[g]);
-if(null!=p){var q=this.moveCells([m[g]],e,e,!1)[0];f.push(q);if(d)c.add(p,m[g]);else{var E=p.getIndex(b[g]);c.add(p,m[g],E+1)}if(this.isTable(p)){var v=this.getCellGeometry(m[g]),u=this.getCellGeometry(p);null!=v&&null!=u&&(u=u.clone(),u.height+=v.height,c.setGeometry(p,u))}}else f.push(m[g])}this.updateCustomLinks(this.createCellMapping(l,k),m,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",m))}finally{c.endUpdate()}return f};Graph.prototype.insertImage=function(b,d,g){if(null!=
-b&&null!=this.cellEditor.textarea){for(var c=this.cellEditor.textarea.getElementsByTagName("img"),e=[],f=0;f<c.length;f++)e.push(c[f]);document.execCommand("insertimage",!1,b);b=this.cellEditor.textarea.getElementsByTagName("img");if(b.length==e.length+1)for(f=b.length-1;0<=f;f--)if(0==f||b[f]!=e[f-1]){b[f].setAttribute("width",d);b[f].setAttribute("height",g);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"),g=[],c=0;c<d.length;c++)g.push(d[c]);document.execCommand("createlink",!1,mxUtils.trim(b));d=this.cellEditor.textarea.getElementsByTagName("a");if(d.length==g.length+1)for(c=d.length-1;0<=c;c--)if(d[c]!=g[c-1]){for(d=d[c].getElementsByTagName("a");0<d.length;){for(g=d[0].parentNode;null!=d[0].firstChild;)g.insertBefore(d[0].firstChild,d[0]);g.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),g=this.getCurrentCellStyle(b);return!this.isTableCell(b)&&!this.isTableRow(b)&&(d||"0"!=mxUtils.getValue(g,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==g[mxConstants.STYLE_WHITE_SPACE])};Graph.prototype.distributeCells=function(b,d){null==d&&(d=this.getSelectionCells());if(null!=d&&1<d.length){for(var g=[],c=null,e=null,f=0;f<d.length;f++)if(this.getModel().isVertex(d[f])){var l=this.view.getState(d[f]);if(null!=l){var k=b?l.getCenterX():
-l.getCenterY(),c=null!=c?Math.max(c,k):k,e=null!=e?Math.min(e,k):k;g.push(l)}}if(2<g.length){g.sort(function(d,g){return b?d.x-g.x:d.y-g.y});l=this.view.translate;k=this.view.scale;e=e/k-(b?l.x:l.y);c=c/k-(b?l.x:l.y);this.getModel().beginUpdate();try{for(var m=(c-e)/(g.length-1),c=e,f=1;f<g.length-1;f++){var p=this.view.getState(this.model.getParent(g[f].cell)),q=this.getCellGeometry(g[f].cell),c=c+m;null!=q&&null!=p&&(q=q.clone(),b?q.x=Math.round(c-q.width/2)-p.origin.x:q.y=Math.round(c-q.height/
-2)-p.origin.y,this.getModel().setGeometry(g[f].cell,q))}}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,g,c,e,f,l,k,m,p,q,E,v,u){var A=null;if(null!=u)for(A=new mxDictionary,q=0;q<u.length;q++)A.put(u[q],!0);if(u=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;g=null!=g?g:0;e=null!=e?e:!0;f=null!=f?f:!0;l=null!=l?l:!0;p=null!=p?p:!1;var n="page"==v?this.view.getBackgroundPageBounds():f&&null==A||c||"diagram"==v?this.getGraphBounds():
-this.getBoundingBox(this.getSelectionCells()),x=this.view.scale;"diagram"==v&&null!=this.backgroundImage&&(n=mxRectangle.fromRectangle(n),n.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==n)throw Error(mxResources.get("drawingEmpty"));var I=mxUtils.createXmlDocument(),t=null!=I.createElementNS?I.createElementNS(mxConstants.NS_SVG,"svg"):I.createElement("svg");
-null!=b&&(null!=t.style?t.style.backgroundColor=b:t.setAttribute("style","background-color:"+b));null==I.createElementNS?(t.setAttribute("xmlns",mxConstants.NS_SVG),t.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):t.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);b=d/x;var y=Math.max(1,Math.ceil(n.width*b)+2*g)+(p&&0==g?5:0),z=Math.max(1,Math.ceil(n.height*b)+2*g)+(p&&0==g?5:0);t.setAttribute("version","1.1");t.setAttribute("width",y+"px");t.setAttribute("height",
-z+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+y+" "+z);I.appendChild(t);var S=null!=I.createElementNS?I.createElementNS(mxConstants.NS_SVG,"g"):I.createElement("g");t.appendChild(S);var C=this.createSvgCanvas(S);C.foOffset=e?-.5:0;C.textOffset=e?-.5:0;C.imageOffset=e?-.5:0;C.translate(Math.floor(g/d-n.x/x),Math.floor(g/d-n.y/x));var ha=document.createElement("div"),N=C.getAlternateText;C.getAlternateText=function(b,d,g,c,e,f,l,k,m,p,q,E,B){if(null!=f&&0<this.state.fontSize)try{mxUtils.isNode(f)?
-f=f.innerText:(ha.innerHTML=f,f=mxUtils.extractTextWithWhitespace(ha.childNodes));for(var va=Math.ceil(2*c/this.state.fontSize),Sa=[],Da=0,Ta=0;(0==va||Da<va)&&Ta<f.length;){var Wa=f.charCodeAt(Ta);if(10==Wa||13==Wa){if(0<Da)break}else Sa.push(f.charAt(Ta)),255>Wa&&Da++;Ta++}Sa.length<f.length&&1<f.length-Sa.length&&(f=mxUtils.trim(Sa.join(""))+"...");return f}catch(hb){return N.apply(this,arguments)}else return N.apply(this,arguments)};var Y=this.backgroundImage;if(null!=Y){d=x/d;var V=this.view.translate,
-P=new mxRectangle((Y.x+V.x)*d,(Y.y+V.y)*d,Y.width*d,Y.height*d);mxUtils.intersects(n,P)&&C.image(Y.x+V.x,Y.y+V.y,Y.width,Y.height,Y.src,!0)}C.scale(b);C.textEnabled=l;k=null!=k?k:this.createSvgImageExport();var ua=k.drawCellState,D=k.getLinkForCellState;k.getLinkForCellState=function(b,d){var g=D.apply(this,arguments);return null==g||b.view.graph.isCustomLink(g)?null:g};k.getLinkTargetForCellState=function(b,d){return b.view.graph.getLinkTargetForCell(b.cell)};k.drawCellState=function(b,d){for(var g=
-b.view.graph,c=null!=A?A.get(b.cell):g.isCellSelected(b.cell),e=g.model.getParent(b.cell);!(f&&null==A||c)&&null!=e;)c=null!=A?A.get(e):g.isCellSelected(e),e=g.model.getParent(e);(f&&null==A||c)&&ua.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),C);this.updateSvgLinks(t,m,!0);this.addForeignObjectWarning(C,t);return t}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 g=b.createElement("switch"),c=b.createElement("g");c.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var e=b.createElement("a");e.setAttribute("transform","translate(0,-5)");null==e.setAttributeNS||d.ownerDocument!=document&&null==document.documentMode?(e.setAttribute("xlink:href",Graph.foreignObjectWarningLink),e.setAttribute("target","_blank")):(e.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",Graph.foreignObjectWarningLink),
-e.setAttributeNS(mxConstants.NS_XLINK,"target","_blank"));var f=b.createElement("text");f.setAttribute("text-anchor","middle");f.setAttribute("font-size","10px");f.setAttribute("x","50%");f.setAttribute("y","100%");mxUtils.write(f,Graph.foreignObjectWarningText);g.appendChild(c);e.appendChild(f);g.appendChild(e);d.appendChild(g)}};Graph.prototype.updateSvgLinks=function(b,d,g){b=b.getElementsByTagName("a");for(var c=0;c<b.length;c++)if(null==b[c].getAttribute("target")){var e=b[c].getAttribute("href");
-null==e&&(e=b[c].getAttribute("xlink:href"));null!=e&&(null!=d&&/^https?:\/\//.test(e)?b[c].setAttribute("target",d):g&&this.isCustomLink(e)&&b[c].setAttribute("href","javascript:void(0);"))}};Graph.prototype.createSvgCanvas=function(b){b=new mxSvgCanvas2D(b);b.pointerEvents=!0;return b};Graph.prototype.getSelectedElement=function(){var b=null;if(window.getSelection){var d=window.getSelection();d.getRangeAt&&d.rangeCount&&(b=d.getRangeAt(0).commonAncestorContainer)}else document.selection&&(b=document.selection.createRange().parentElement());
-return b};Graph.prototype.getSelectedEditingElement=function(){for(var b=this.getSelectedElement();null!=b&&b.nodeType!=mxConstants.NODETYPE_ELEMENT;)b=b.parentNode;null!=b&&b==this.cellEditor.textarea&&1==this.cellEditor.textarea.children.length&&this.cellEditor.textarea.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&(b=this.cellEditor.textarea.firstChild);return b};Graph.prototype.getParentByName=function(b,d,g){for(;null!=b&&b.nodeName!=d;){if(b==g)return null;b=b.parentNode}return b};Graph.prototype.getParentByNames=
-function(b,d,g){for(;null!=b&&!(0<=mxUtils.indexOf(d,b.nodeName));){if(b==g)return null;b=b.parentNode}return b};Graph.prototype.selectNode=function(b){var d=null;if(window.getSelection){if(d=window.getSelection(),d.getRangeAt&&d.rangeCount){var g=document.createRange();g.selectNode(b);d.removeAllRanges();d.addRange(g)}}else(d=document.selection)&&"Control"!=d.type&&(b=d.createRange(),b.collapse(!0),g=d.createRange(),g.setEndPoint("StartToStart",b),g.select())};Graph.prototype.deleteCells=function(b,
-d){var g=null;if(null!=b&&0<b.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){var e=this.model.getParent(b[c]);if(this.isTable(e)){var f=this.getCellGeometry(b[c]),l=this.getCellGeometry(e);null!=f&&null!=l&&(l=l.clone(),l.height-=f.height,this.model.setGeometry(e,l))}}var k=this.selectParentAfterDelete?this.model.getParents(b):null;this.removeCells(b,d)}finally{this.model.endUpdate()}if(null!=k)for(g=[],c=0;c<k.length;c++)this.model.contains(k[c])&&(this.model.isVertex(k[c])||this.model.isEdge(k[c]))&&
-g.push(k[c])}return g};Graph.prototype.insertTableColumn=function(b,d){var g=this.getModel();g.beginUpdate();try{var c=b,e=0;if(this.isTableCell(b))var f=g.getParent(b),c=g.getParent(f),e=mxUtils.indexOf(g.getChildCells(f,!0),b);else this.isTableRow(b)?c=g.getParent(b):b=g.getChildCells(c,!0)[0],d||(e=g.getChildCells(b,!0).length-1);for(var l=g.getChildCells(c,!0),k=Graph.minTableColumnWidth,f=0;f<l.length;f++){var m=g.getChildCells(l[f],!0)[e],p=g.cloneCell(m,!1),q=this.getCellGeometry(p);p.value=
-null;p.style=mxUtils.setStyle(mxUtils.setStyle(p.style,"rowspan",null),"colspan",null);if(null!=q){null!=q.alternateBounds&&(q.width=q.alternateBounds.width,q.height=q.alternateBounds.height,q.alternateBounds=null);var k=q.width,E=this.getCellGeometry(l[f]);null!=E&&(q.height=E.height)}g.add(l[f],p,e+(d?0:1))}var v=this.getCellGeometry(c);null!=v&&(v=v.clone(),v.width+=k,g.setGeometry(c,v))}finally{g.endUpdate()}};Graph.prototype.deleteLane=function(b){var d=this.getModel();d.beginUpdate();try{var g=
-null,g="stackLayout"==this.getCurrentCellStyle(b).childLayout?b:d.getParent(b),c=d.getChildCells(g,!0);0==c.length?d.remove(g):(g==b&&(b=c[c.length-1]),d.remove(b))}finally{d.endUpdate()}};Graph.prototype.insertLane=function(b,d){var g=this.getModel();g.beginUpdate();try{var c=null,e=b;if("stackLayout"==this.getCurrentCellStyle(e).childLayout)var c=e,f=g.getChildCells(c,!0),e=f[d?0:f.length-1];else c=g.getParent(e);var l=c.getIndex(e),e=g.cloneCell(e,!1);e.value=null;g.add(c,e,l+(d?0:1))}finally{g.endUpdate()}};
-Graph.prototype.insertTableRow=function(b,d){var g=this.getModel();g.beginUpdate();try{var c=b,e=b;if(this.isTableCell(b))e=g.getParent(b),c=g.getParent(e);else if(this.isTableRow(b))c=g.getParent(b);else var f=g.getChildCells(c,!0),e=f[d?0:f.length-1];var l=g.getChildCells(e,!0),k=c.getIndex(e),e=g.cloneCell(e,!1);e.value=null;var m=this.getCellGeometry(e);if(null!=m){for(f=0;f<l.length;f++){b=g.cloneCell(l[f],!1);b.value=null;b.style=mxUtils.setStyle(mxUtils.setStyle(b.style,"rowspan",null),"colspan",
-null);var p=this.getCellGeometry(b);null!=p&&(null!=p.alternateBounds&&(p.width=p.alternateBounds.width,p.height=p.alternateBounds.height,p.alternateBounds=null),p.height=m.height);e.insert(b)}g.add(c,e,k+(d?0:1));var q=this.getCellGeometry(c);null!=q&&(q=q.clone(),q.height+=m.height,g.setGeometry(c,q))}}finally{g.endUpdate()}};Graph.prototype.deleteTableColumn=function(b){var d=this.getModel();d.beginUpdate();try{var g=b,c=b;this.isTableCell(b)&&(c=d.getParent(b));this.isTableRow(c)&&(g=d.getParent(c));
-var e=d.getChildCells(g,!0);if(0==e.length)d.remove(g);else{this.isTableRow(c)||(c=e[0]);var f=d.getChildCells(c,!0);if(1>=f.length)d.remove(g);else{var l=f.length-1;this.isTableCell(b)&&(l=mxUtils.indexOf(f,b));for(c=b=0;c<e.length;c++){var k=d.getChildCells(e[c],!0)[l];d.remove(k);var m=this.getCellGeometry(k);null!=m&&(b=Math.max(b,m.width))}var p=this.getCellGeometry(g);null!=p&&(p=p.clone(),p.width-=b,d.setGeometry(g,p))}}}finally{d.endUpdate()}};Graph.prototype.deleteTableRow=function(b){var d=
-this.getModel();d.beginUpdate();try{var g=b,c=b;this.isTableCell(b)&&(b=c=d.getParent(b));this.isTableRow(b)&&(g=d.getParent(c));var e=d.getChildCells(g,!0);if(1>=e.length)d.remove(g);else{this.isTableRow(c)||(c=e[e.length-1]);d.remove(c);b=0;var f=this.getCellGeometry(c);null!=f&&(b=f.height);var l=this.getCellGeometry(g);null!=l&&(l=l.clone(),l.height-=b,d.setGeometry(g,l))}}finally{d.endUpdate()}};Graph.prototype.insertRow=function(b,d){for(var g=b.tBodies[0],c=g.rows[0].cells,e=0,f=0;f<c.length;f++)var l=
-c[f].getAttribute("colspan"),e=e+(null!=l?parseInt(l):1);g=g.insertRow(d);for(f=0;f<e;f++)mxUtils.br(g.insertCell(-1));return g.cells[0]};Graph.prototype.deleteRow=function(b,d){b.tBodies[0].deleteRow(d)};Graph.prototype.insertColumn=function(b,d){var g=b.tHead;if(null!=g)for(var c=0;c<g.rows.length;c++){var e=document.createElement("th");g.rows[c].appendChild(e);mxUtils.br(e)}g=b.tBodies[0];for(c=0;c<g.rows.length;c++)e=g.rows[c].insertCell(d),mxUtils.br(e);return g.rows[0].cells[0<=d?d:g.rows[0].cells.length-
-1]};Graph.prototype.deleteColumn=function(b,d){if(0<=d)for(var g=b.tBodies[0].rows,c=0;c<g.length;c++)g[c].cells.length>d&&g[c].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 g=document.createElement("div");g.innerHTML=b;b=document.createDocumentFragment();for(var c;c=g.firstChild;)lastNode=b.appendChild(c);d.insertNode(b)}}else(d=document.selection)&&"Control"!=
-d.type&&d.createRange().pasteHTML(b)};Graph.prototype.createLinkForHint=function(b,d){function g(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 c=document.createElement("a");c.setAttribute("rel",this.linkRelation);c.setAttribute("href",this.getAbsoluteUrl(b));c.setAttribute("title",g(this.isCustomLink(b)?this.getLinkTitle(b):b,80));null!=
-this.linkTarget&&c.setAttribute("target",this.linkTarget);mxUtils.write(c,g(d,40));this.isCustomLink(b)&&mxEvent.addListener(c,"click",mxUtils.bind(this,function(d){this.customLinkClicked(b);mxEvent.consume(d)}));return c};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(b,d){this.popupMenuHandler.hideMenu()});var b=this.updateMouseEvent;this.updateMouseEvent=function(d){d=
-b.apply(this,arguments);if(mxEvent.isTouchEvent(d.getEvent())&&null==d.getState()){var g=this.getCellAt(d.graphX,d.graphY);null!=g&&this.isSwimlane(g)&&this.hitsSwimlaneContent(g,d.graphX,d.graphY)||(d.state=this.view.getState(g),null!=d.state&&null!=d.state.shape&&(this.container.style.cursor=d.state.shape.node.style.cursor))}null==d.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return d};var d=!1,g=!1,c=!1,e=this.fireMouseEvent;this.fireMouseEvent=function(b,f,l){b==mxEvent.MOUSE_DOWN&&
-(f=this.updateMouseEvent(f),d=this.isCellSelected(f.getCell()),g=this.isSelectionEmpty(),c=this.popupMenuHandler.isMenuShowing());e.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(b,e){var f=mxEvent.isMouseEvent(e.getEvent());this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==e.getState()||!e.isSource(e.getState().control))&&(this.popupMenuHandler.popupTrigger||!c&&!f&&(g&&null==e.getCell()&&this.isSelectionEmpty()||d&&this.isCellSelected(e.getCell())));
-f=!d||f?null:mxUtils.bind(this,function(b){window.setTimeout(mxUtils.bind(this,function(){if(!this.isEditing()){var d=mxUtils.getScrollOrigin();this.popupMenuHandler.popup(e.getX()+d.x+1,e.getY()+d.y+1,b,e.getEvent())}}),500)});mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,[b,e,f])})};mxCellEditor.prototype.isContentEditing=function(){var b=this.graph.view.getState(this.editingCell);return null!=b&&1==b.style.html};mxCellEditor.prototype.isTableSelected=function(){return null!=
-this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",this.textarea)};mxCellEditor.prototype.isTextSelected=function(){var b="";window.getSelection?b=window.getSelection():document.getSelection?b=document.getSelection():document.selection&&(b=document.selection.createRange().text);return""!=b};mxCellEditor.prototype.insertTab=function(b){var d=this.textarea.ownerDocument.defaultView.getSelection(),g=d.getRangeAt(0),c="\t";if(null!=b)for(c="";0<b;)c+=" ",b--;b=document.createElement("span");
-b.style.whiteSpace="pre";b.appendChild(document.createTextNode(c));g.insertNode(b);g.setStartAfter(b);g.setEndAfter(b);d.removeAllRanges();d.addRange(g)};mxCellEditor.prototype.alignText=function(b,d){var g=null!=d&&mxEvent.isShiftDown(d);if(g||null!=window.getSelection&&null!=window.getSelection().containsNode){var c=!0;this.graph.processElements(this.textarea,function(b){g||window.getSelection().containsNode(b,!0)?(b.removeAttribute("align"),b.style.textAlign=null):c=!1});c&&this.graph.cellEditor.setAlign(b)}document.execCommand("justify"+
-b.toLowerCase(),!1,null)};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var b=window.getSelection();if(b.getRangeAt&&b.rangeCount){for(var d=[],g=0,c=b.rangeCount;g<c;++g)d.push(b.getRangeAt(g));return d}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(b){try{if(b)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var d=0,g=b.length;d<
-g;++d)sel.addRange(b[d])}else document.selection&&b.select&&b.select()}catch(ea){}};var v=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(b){null!=b.text&&(b.text.replaceLinefeeds="0"!=mxUtils.getValue(b.style,"nl2Br","1"));v.apply(this,arguments)};var y=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(b,d){this.isKeepFocusEvent(b)||!mxEvent.isAltDown(b.getEvent())?y.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=
-function(b){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var x=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(b,d){b=this.graph.getStartEditingCell(b,d);x.apply(this,arguments);var g=this.graph.view.getState(b);this.textarea.className=null!=g&&1==g.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(b);
-var g=this.graph.getModel().getParent(b),c=this.graph.getCellGeometry(b);if(this.graph.getModel().isEdge(g)&&null!=c&&c.relative||this.graph.getModel().isEdge(b))this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var G=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(b){function d(b,g){g.originalNode=b;b=b.firstChild;for(var c=g.firstChild;null!=b&&null!=c;)d(b,c),b=b.nextSibling,c=c.nextSibling;
-return g}function g(b,d){if(null!=b)if(d.originalNode!=b)c(b);else for(b=b.firstChild,d=d.firstChild;null!=b;){var e=b.nextSibling;null==d?c(b):(g(b,d),d=d.nextSibling);b=e}}function c(b){for(var d=b.firstChild;null!=d;){var g=d.nextSibling;c(d);d=g}1==b.nodeType&&("BR"===b.nodeName||null!=b.firstChild)||3==b.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(b)).length?(3==b.nodeType&&mxUtils.setTextContent(b,mxUtils.getTextContent(b).replace(/\n|\r/g,"")),1==b.nodeType&&(b.removeAttribute("style"),
-b.removeAttribute("class"),b.removeAttribute("width"),b.removeAttribute("cellpadding"),b.removeAttribute("cellspacing"),b.removeAttribute("border"))):b.parentNode.removeChild(b)}G.apply(this,arguments);7!==document.documentMode&&8!==document.documentMode&&mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(b){var c=d(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){null!=this.textarea&&(0<=this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")||
-0<=this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>")?g(this.textarea,c):Graph.removePasteFormatting(this.textarea))}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var b=this.graph.view.getState(this.editingCell);if(null!=b){var d=null!=b&&"0"!=mxUtils.getValue(b.style,"nl2Br","1"),g=this.saveSelection();if(this.codeViewMode){m=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<m.length&&"\n"==m.charAt(m.length-1)&&(m=m.substring(0,m.length-1));m=this.graph.sanitizeHtml(d?
-m.replace(/\n/g,"<br/>"):m,!0);this.textarea.className="mxCellEditor geContentEditable";var c=mxUtils.getValue(b.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),d=mxUtils.getValue(b.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(b.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),f=(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&
-mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,k=[];(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&k.push("underline");(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&k.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(c*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(c)+
-"px";this.textarea.style.textDecoration=k.join(" ");this.textarea.style.fontWeight=f?"bold":"normal";this.textarea.style.fontStyle=l?"italic":"";this.textarea.style.fontFamily=d;this.textarea.style.textAlign=e;this.textarea.style.padding="0px";this.textarea.innerHTML!=m&&(this.textarea.innerHTML=m,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==
-this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var m=mxUtils.htmlEntities(this.textarea.innerHTML);8!=document.documentMode&&(m=mxUtils.replaceTrailingNewlines(m,"<div><br></div>"));m=this.graph.sanitizeHtml(d?m.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):m,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var c=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(c*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;
-this.textarea.style.fontSize=Math.round(c)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.width="";this.textarea.style.padding="2px";this.textarea.innerHTML!=m&&(this.textarea.innerHTML=m);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);
-this.switchSelectionState=g;this.resize()}};var H=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(b,d){if(null!=this.textarea)if(b=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=b){var g=b.view.scale;this.bounds=mxRectangle.fromRectangle(b);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*g;this.bounds.height=60*g;var c=null!=b.text?b.text.margin:null;null==c&&(c=mxUtils.getAlignmentAsPoint(mxUtils.getValue(b.style,mxConstants.STYLE_ALIGN,
-mxConstants.ALIGN_CENTER),mxUtils.getValue(b.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=c.x*this.bounds.width;this.bounds.y+=c.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-4)/g)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/g)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/g)+(this.textarea.offsetHeight-
-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*g);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/g)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*g);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+g+","+
-g+")")}else this.textarea.style.height="",this.textarea.style.overflow="",H.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(b,d){if("0"==mxUtils.getValue(b.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var g=this.graph.getEditingValue(b.cell,d);"1"==mxUtils.getValue(b.style,"nl2Br","1")&&(g=g.replace(/\n/g,"<br/>"));return g=this.graph.sanitizeHtml(g,!0)};mxCellEditorGetCurrentValue=
-mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(b){if("0"==mxUtils.getValue(b.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var d=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return d="1"==mxUtils.getValue(b.style,"nl2Br","1")?d.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):d.replace(/\r\n/g,"").replace(/\n/g,"")};var z=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(b){this.codeViewMode&&this.toggleViewMode();
-z.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(ha){}};var D=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(b,d){this.graph.getModel().beginUpdate();try{D.apply(this,arguments),""==d&&this.graph.isCellDeletable(b.cell)&&0==this.graph.model.getChildCount(b.cell)&&this.graph.isTransparentState(b)&&this.graph.removeCells([b.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=
-function(b){var d=mxUtils.getValue(b.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);null!=d&&d!=mxConstants.NONE||!(null!=b.cell.geometry&&0<b.cell.geometry.width)||0==mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION,0)&&0!=mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,1)||(d=mxUtils.getValue(b.style,mxConstants.STYLE_FILLCOLOR,null));d==mxConstants.NONE&&(d=null);return d};mxCellEditor.prototype.getBorderColor=function(b){var d=mxUtils.getValue(b.style,mxConstants.STYLE_LABEL_BORDERCOLOR,
-null);null!=d&&d!=mxConstants.NONE||!(null!=b.cell.geometry&&0<b.cell.geometry.width)||0==mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION,0)&&0!=mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,1)||(d=mxUtils.getValue(b.style,mxConstants.STYLE_STROKECOLOR,null));d==mxConstants.NONE&&(d=null);return d};mxCellEditor.prototype.getMinimumSize=function(b){var d=this.graph.getView().scale;return new mxRectangle(0,0,null==b.text?30:b.text.size*d+20,30)};mxGraphHandlerIsValidDropTarget=mxGraphHandler.prototype.isValidDropTarget;
-mxGraphHandler.prototype.isValidDropTarget=function(b,d){return mxGraphHandlerIsValidDropTarget.apply(this,arguments)&&!mxEvent.isAltDown(d.getEvent)};mxGraphView.prototype.formatUnitText=function(b){return b?c(b,this.unit):b};mxGraphHandler.prototype.updateHint=function(d){if(null!=this.pBounds&&(null!=this.shape||this.livePreviewActive)){null==this.hint&&(this.hint=b(),this.graph.container.appendChild(this.hint));var g=this.graph.view.translate,e=this.graph.view.scale;d=this.roundLength((this.bounds.x+
-this.currentDx)/e-g.x);g=this.roundLength((this.bounds.y+this.currentDy)/e-g.y);e=this.graph.view.unit;this.hint.innerHTML=c(d,e)+", "+c(g,e);this.hint.style.left=this.pBounds.x+this.currentDx+Math.round((this.pBounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+Editor.hintOffset+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};var L=mxStackLayout.prototype.resizeCell;
-mxStackLayout.prototype.resizeCell=function(b,d){L.apply(this,arguments);var g=this.graph.getCellStyle(b);if(null==g.childLayout){var c=this.graph.model.getParent(b),e=null!=c?this.graph.getCellGeometry(c):null;if(null!=e&&(g=this.graph.getCellStyle(c),"stackLayout"==g.childLayout)){var f=parseFloat(mxUtils.getValue(g,"stackBorder",mxStackLayout.prototype.border)),g="1"==mxUtils.getValue(g,"horizontalStack","1"),l=this.graph.getActualStartSize(c),e=e.clone();g?e.height=d.height+l.y+l.height+2*f:e.width=
-d.width+l.x+l.width+2*f;this.graph.model.setGeometry(c,e)}}};var F=mxSelectionCellsHandler.prototype.getHandledSelectionCells;mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function b(b){g.get(b)||(g.put(b,!0),e.push(b))}for(var d=F.apply(this,arguments),g=new mxDictionary,c=this.graph.model,e=[],f=0;f<d.length;f++){var l=d[f];this.graph.isTableCell(l)?b(c.getParent(c.getParent(l))):this.graph.isTableRow(l)&&b(c.getParent(l));b(l)}return e};var J=mxVertexHandler.prototype.createParentHighlightShape;
-mxVertexHandler.prototype.createParentHighlightShape=function(b){var d=J.apply(this,arguments);d.stroke="#C0C0C0";d.strokewidth=1;return d};var C=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(b){var d=C.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.isControlDown(d.getEvent())};mxVertexHandler.prototype.isCenteredEvent=function(b,d){return!(!this.graph.isSwimlane(b.cell)&&0<this.graph.model.getChildCount(b.cell)&&!this.graph.isCellCollapsed(b.cell)&&"1"==mxUtils.getValue(b.style,"recursiveResize","1")&&null==mxUtils.getValue(b.style,
-"childLayout",null))&&mxEvent.isControlDown(d.getEvent())||mxEvent.isMetaDown(d.getEvent())};var K=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return K.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 M=mxVertexHandler.prototype.isParentHighlightVisible;mxVertexHandler.prototype.isParentHighlightVisible=function(){return M.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var aa=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(b){return b.tableHandle||aa.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 N=mxVertexHandler.prototype.getSelectionBorderBounds;mxVertexHandler.prototype.getSelectionBorderBounds=function(){return N.apply(this,arguments).grow(-this.getSelectionBorderInset())};var O=null,U=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){null==O&&(O=mxCellRenderer.defaultShapes.tableLine);var b=U.apply(this,arguments);
-if(this.graph.isTable(this.state.cell)){var d=function(b,d,g){for(var c=[],e=0;e<b.length;e++){var l=b[e];c.push(null==l?null:new mxPoint((m+l.x+d)*f,(p+l.y+g)*f))}return c},g=this,c=this.graph,e=c.model,f=c.view.scale,l=this.state,k=this.selectionBorder,m=this.state.origin.x+c.view.translate.x,p=this.state.origin.y+c.view.translate.y;null==b&&(b=[]);var q=c.view.getCellStates(e.getChildCells(this.state.cell,!0));if(0<q.length){for(var E=e.getChildCells(q[0].cell,!0),v=c.getTableLines(this.state.cell,
-!1,!0),u=c.getTableLines(this.state.cell,!0,!1),e=0;e<E.length;e++)mxUtils.bind(this,function(e){var m=c.view.getState(E[e]),p=c.getCellGeometry(E[e]),q=null!=p.alternateBounds?p.alternateBounds:p;null==m&&(m=new mxCellState(c.view,E[e],c.getCellStyle(E[e])),m.x=l.x+p.x*f,m.y=l.y+p.y*f,m.width=q.width*f,m.height=q.height*f,m.updateCachedBounds());var p=e<E.length-1?E[e+1]:null,p=null!=p?c.getCellGeometry(p):null,u=null!=p&&null!=p.alternateBounds?p.alternateBounds:p,p=null!=v[e]?new O(v[e],mxConstants.NONE,
-1):new mxLine(new mxRectangle,mxConstants.NONE,1,!0);p.isDashed=k.isDashed;p.svgStrokeTolerance++;m=new mxHandle(m,"col-resize",null,p);m.tableHandle=!0;var A=0;m.shape.node.parentNode.insertBefore(m.shape.node,m.shape.node.parentNode.firstChild);m.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=0==A?mxConstants.NONE:k.stroke;if(this.shape.constructor==O)this.shape.line=d(v[e],A,0),this.shape.updateBoundsFromLine();else{var b=c.getActualStartSize(l.cell,!0);this.shape.bounds.width=
-1;this.shape.bounds.x=this.state.x+(q.width+A)*f;this.shape.bounds.y=l.y+(e==E.length-1?0:b.y*f);this.shape.bounds.height=l.height-(e==E.length-1?0:(b.height+b.y)*f)}this.shape.redraw()}};var n=!1;m.setPosition=function(b,d,g){A=Math.max(Graph.minTableColumnWidth-q.width,d.x-b.x-q.width);n=mxEvent.isShiftDown(g.getEvent());null==u||n||(A=Math.min(A,u.width-Graph.minTableColumnWidth))};m.execute=function(b){if(0!=A)c.setTableColumnWidth(this.state.cell,A,n);else if(!g.blockDelayedSelection){var d=
-c.getCellAt(b.getGraphX(),b.getGraphY())||l.cell;c.graphHandler.selectCellForEvent(d,b)}A=0};m.positionChanged=function(){};m.reset=function(){A=0};b.push(m)})(e);for(e=0;e<q.length;e++)mxUtils.bind(this,function(e){var m=q[e],p=e<q.length-1?q[e+1]:null,p=null!=p?c.getCellGeometry(p.cell):null,E=null!=p&&null!=p.alternateBounds?p.alternateBounds:p,p=null!=u[e]?new O(u[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!1);p.isDashed=k.isDashed;p.svgStrokeTolerance++;m=new mxHandle(m,
-"row-resize",null,p);m.tableHandle=!0;var v=0;m.shape.node.parentNode.insertBefore(m.shape.node,m.shape.node.parentNode.firstChild);m.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=0==v?mxConstants.NONE:k.stroke;if(this.shape.constructor==O)this.shape.line=d(u[e],0,v),this.shape.updateBoundsFromLine();else{var b=c.getActualStartSize(l.cell,!0);this.shape.bounds.height=1;this.shape.bounds.y=this.state.y+this.state.height+v*f;this.shape.bounds.x=l.x+(e==q.length-1?
-0:b.x*f);this.shape.bounds.width=l.width-(e==q.length-1?0:b.width+b.x+f)}this.shape.redraw()}};var A=!1;m.setPosition=function(b,d,g){v=Math.max(Graph.minTableRowHeight-b.height,d.y-b.y-b.height);A=mxEvent.isShiftDown(g.getEvent());null!=E&&A&&(v=Math.min(v,E.height-Graph.minTableRowHeight))};m.execute=function(b){if(0!=v)c.setTableRowHeight(this.state.cell,v,!A);else if(!g.blockDelayedSelection){var d=c.getCellAt(b.getGraphX(),b.getGraphY())||l.cell;c.graphHandler.selectCellForEvent(d,b)}v=0};m.reset=
-function(){v=0};b.push(m)})(e)}}return null!=b?b.reverse():null};var E=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){E.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 g=mxUtils.createImage(Editor.rowMoveImage);g.style.position="absolute";g.style.cursor="pointer";g.style.width="7px";g.style.height="4px";g.style.padding="4px 2px 4px 2px";g.rowState=d;mxEvent.addGestureListeners(g,
-mxUtils.bind(this,function(b){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);!this.graph.isToggleEvent(b)&&this.graph.isCellSelected(d.cell)||this.graph.selectCellForEvent(d.cell,b);mxEvent.isPopupTrigger(b)||(this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=mxEvent.isMouseEvent(b),this.graph.isMouseDown=!0);mxEvent.consume(b)}),null,mxUtils.bind(this,
-function(b){mxEvent.isPopupTrigger(b)&&(this.graph.popupMenuHandler.popup(mxEvent.getClientX(b),mxEvent.getClientY(b),d.cell,b),mxEvent.consume(b))}));this.moveHandles.push(g);this.graph.container.appendChild(g)}})(this.graph.view.getState(b.getChildAt(this.state.cell,d)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){for(var b=0;b<this.customHandles.length;b++)this.customHandles[b].destroy();this.customHandles=this.createCustomHandles()}this.graph.isTable(this.state.cell)&&
-this.refreshMoveHandles()};var I=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var b=new mxPoint(0,0),d=this.tolerance,g=this.state.style.shape;null==mxCellRenderer.defaultShapes[g]&&mxStencilRegistry.getStencil(g);g=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!g&&null!=this.customHandles)for(var c=0;c<this.customHandles.length;c++)if(null!=this.customHandles[c].shape&&null!=this.customHandles[c].shape.bounds){var e=
-this.customHandles[c].shape.bounds,f=e.getCenterX(),l=e.getCenterY();if(Math.abs(this.state.x-f)<e.width/2||Math.abs(this.state.y-l)<e.height/2||Math.abs(this.state.x+this.state.width-f)<e.width/2||Math.abs(this.state.y+this.state.height-l)<e.height/2){g=!0;break}}g&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(d/=2,this.graph.isTable(this.state.cell)&&(d+=7),b.x=this.sizers[0].bounds.width+d,b.y=this.sizers[0].bounds.height+d):b=I.apply(this,arguments);return b};mxVertexHandler.prototype.updateHint=
-function(d){if(this.index!=mxEvent.LABEL_HANDLE){null==this.hint&&(this.hint=b(),this.state.view.graph.container.appendChild(this.hint));if(this.index==mxEvent.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"&deg;";else{d=this.state.view.scale;var g=this.state.view.unit;this.hint.innerHTML=c(this.roundLength(this.bounds.width/d),g)+" x "+c(this.roundLength(this.bounds.height/d),g)}d=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||
-"0");null==d&&(d=this.bounds);this.hint.style.left=d.x+Math.round((d.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=d.y+d.height+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")}};mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};var A=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(b,d){A.apply(this,arguments);null!=
-this.linkHint&&"none"!=this.linkHint.style.display&&null!=this.graph.graphHandler&&null!=this.graph.graphHandler.first&&(this.linkHint.style.display="none")};var Y=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=function(b,d){Y.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(d,g){null==this.hint&&(this.hint=b(),this.state.view.graph.container.appendChild(this.hint));var e=
-this.graph.view.translate,f=this.graph.view.scale,l=this.roundLength(g.x/f-e.x),e=this.roundLength(g.y/f-e.y),f=this.graph.view.unit;this.hint.innerHTML=c(l,f)+", "+c(e,f);this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(l=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*l.x)+"%, "+Math.round(100*l.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility=
-"hidden");this.hint.style.left=Math.round(d.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(d.getGraphY(),g.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};Graph.prototype.expandedImage=Graph.createSvgImage(9,9,'<defs><linearGradient id="grad1" x1="50%" y1="0%" x2="50%" y2="100%"><stop offset="30%" style="stop-color:#f0f0f0;" /><stop offset="100%" style="stop-color:#AFB0B6;" /></linearGradient></defs><rect x="0" y="0" width="9" height="9" stroke="#8A94A5" fill="url(#grad1)" stroke-width="2"/><path d="M 2 4.5 L 7 4.5 z" stroke="#000"/>');
-Graph.prototype.collapsedImage=Graph.createSvgImage(9,9,'<defs><linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="30%" style="stop-color:#f0f0f0;" /><stop offset="100%" style="stop-color:#AFB0B6;" /></linearGradient></defs><rect x="0" y="0" width="9" height="9" stroke="#8A94A5" fill="url(#grad1)" stroke-width="2"/><path d="M 4.5 2 L 4.5 7 M 2 4.5 L 7 4.5 z" stroke="#000"/>');mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=
-Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>');HoverIcons.prototype.endMainHandle=Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>');HoverIcons.prototype.secondaryHandle=Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>');HoverIcons.prototype.fixedHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="#01bd22"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>');
-HoverIcons.prototype.endFixedHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="7" stroke="#fff" fill="#01bd22"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>');HoverIcons.prototype.terminalHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/><circle cx="11" cy="11" r="3" stroke="#fff" fill="transparent"/>');HoverIcons.prototype.endTerminalHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="7" stroke="#fff" fill="'+
-HoverIcons.prototype.arrowFill+'"/><circle cx="11" cy="11" r="3" stroke="#fff" fill="transparent"/>');HoverIcons.prototype.rotationHandle=Graph.createSvgImage(16,16,'<path stroke="'+HoverIcons.prototype.arrowFill+'" fill="'+HoverIcons.prototype.arrowFill+'" d="M15.55 5.55L11 1v3.07C7.06 4.56 4 7.92 4 12s3.05 7.44 7 7.93v-2.02c-2.84-.48-5-2.94-5-5.91s2.16-5.43 5-5.91V10l4.55-4.45zM19.93 11c-.17-1.39-.72-2.73-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02c1.39-.17 2.74-.71 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41c.9-1.16 1.45-2.5 1.62-3.89h-2.02c-.14.87-.48 1.72-1.02 2.48z"/>',
+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 g=0;g<b.length;g++){var c=b[g];d[mxObjectIdentity.get(c)]=c.getId();for(var e=this.model.getChildCount(c),
+f=0;f<e;f++)this.createCellLookup([this.model.getChildAt(c,f)],d)}return d};Graph.prototype.createCellMapping=function(b,d,g){g=null!=g?g:{};for(var c in b){var e=d[c];null==g[e]&&(g[e]=b[c].getId()||"")}return g};Graph.prototype.importGraphModel=function(b,d,g,c){d=null!=d?d:0;g=null!=g?g:0;var e=new mxCodec(b.ownerDocument),f=new mxGraphModel;e.decode(b,f);b=[];var e={},l={},k=f.getChildren(this.cloneCell(f.root,this.isCloneInvalidEdges(),e));if(null!=k){var m=this.createCellLookup([f.root]),k=
+k.slice();this.model.beginUpdate();try{if(1!=k.length||this.isCellLocked(this.getDefaultParent()))for(f=0;f<k.length;f++)p=this.model.getChildren(this.moveCells([k[f]],d,g,!1,this.model.getRoot())[0]),null!=p&&(b=b.concat(p));else{var p=f.getChildren(k[0]);null!=p&&(b=this.moveCells(p,d,g,!1,this.getDefaultParent()),l[f.getChildAt(f.root,0).getId()]=this.getDefaultParent().getId())}if(null!=b&&(this.createCellMapping(e,m,l),this.updateCustomLinks(l,b),c)){this.isGridEnabled()&&(d=this.snap(d),g=this.snap(g));
+var q=this.getBoundingBoxFromGeometry(b,!0);null!=q&&this.moveCells(b,d-q.x,g-q.y)}}finally{this.model.endUpdate()}}return b};Graph.prototype.encodeCells=function(b){for(var d={},g=this.cloneCells(b,null,d),c=new mxDictionary,e=0;e<b.length;e++)c.put(b[e],!0);for(var f=new mxCodec,l=new mxGraphModel,k=l.getChildAt(l.getRoot(),0),e=0;e<g.length;e++){l.add(k,g[e]);var m=this.view.getState(b[e]);if(null!=m){var p=this.getCellGeometry(g[e]);null!=p&&p.relative&&!this.model.isEdge(b[e])&&null==c.get(this.model.getParent(b[e]))&&
+(p.offset=null,p.relative=!1,p.x=m.x/m.view.scale-m.view.translate.x,p.y=m.y/m.view.scale-m.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(d,this.createCellLookup(b)),g);return f.encode(l)};Graph.prototype.isSwimlane=function(b,d){if(null!=b&&this.model.getParent(b)!=this.model.getRoot()&&!this.model.isEdge(b)){var g=this.getCurrentCellStyle(b,d)[mxConstants.STYLE_SHAPE];return g==mxConstants.SHAPE_SWIMLANE||"table"==g}return!1};var d=Graph.prototype.isExtendParent;Graph.prototype.isExtendParent=
+function(b){var g=this.model.getParent(b);if(null!=g){var c=this.getCurrentCellStyle(g);if(null!=c.expand)return"0"!=c.expand}return d.apply(this,arguments)&&(null==g||!this.isTable(g))};var g=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(b,d,c,e,f,l,k,m){null==m&&(m=this.model.getParent(b),this.isTable(m)||this.isTableRow(m))&&(m=this.getCellAt(l,k,null,!0,!1));c=null;this.model.beginUpdate();try{c=g.apply(this,[b,d,c,e,f,l,k,m]);this.model.setValue(c,"");var p=this.getChildCells(c,
+!0);for(d=0;d<p.length;d++){var q=this.getCellGeometry(p[d]);null!=q&&q.relative&&0<q.x&&this.model.remove(p[d])}var F=this.getChildCells(b,!0);for(d=0;d<F.length;d++)q=this.getCellGeometry(F[d]),null!=q&&q.relative&&0>=q.x&&this.model.remove(F[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 ha=this.model.getTerminal(c,!1);if(null!=ha){var v=this.getCurrentCellStyle(ha);null!=v&&"1"==v.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 l=Graph.prototype.selectCell;Graph.prototype.selectCell=function(b,d,g){if(d||g)l.apply(this,arguments);
+else{var c=this.getSelectionCell(),e=null,f=[],k=mxUtils.bind(this,function(d){if(null!=this.view.getState(d)&&(this.model.isVertex(d)||this.model.isEdge(d)))if(f.push(d),d==c)e=f.length-1;else if(b&&null==c&&0<f.length||null!=e&&b&&f.length>e||!b&&0<e)return;for(var g=0;g<this.model.getChildCount(d);g++)k(this.model.getChildAt(d,g))});k(this.model.root);0<f.length&&(e=null!=e?mxUtils.mod(e+(b?1:-1),f.length):0,this.setSelectionCell(f[e]))}};Graph.prototype.swapUmlLifelines=function(b,d){var g=!1;
+if(null!=d&&1==b.length){var c=this.view.getState(d),e=this.view.getState(b[0]);if(null!=c&&null!=e&&"umlLifeline"==c.style.shape&&"umlLifeline"==e.style.shape&&(e=this.getCellGeometry(d),c=this.getCellGeometry(b[0]),null!=e&&null!=c)){g=e.clone();e=c.clone();e.x=g.x;e.y=g.y;g.x=c.x;g.y=c.y;this.model.beginUpdate();try{this.model.setGeometry(d,g),this.model.setGeometry(b[0],e)}finally{this.model.endUpdate()}g=!0}}return g};var m=Graph.prototype.moveCells;Graph.prototype.moveCells=function(b,d,g,c,
+e,f,l){if(!c&&this.swapUmlLifelines(b,e))return b;l=null!=l?l:{};if(this.isTable(e)){for(var k=[],p=0;p<b.length;p++)this.isTable(b[p])?k=k.concat(this.model.getChildCells(b[p],!0).reverse()):k.push(b[p]);b=k}this.model.beginUpdate();try{k=[];for(p=0;p<b.length;p++)if(null!=e&&this.isTableRow(b[p])){var q=this.model.getParent(b[p]),F=this.getCellGeometry(b[p]);this.isTable(q)&&k.push(q);if(null!=q&&null!=F&&this.isTable(q)&&this.isTable(e)&&(c||q!=e)){if(!c){var v=this.getCellGeometry(q);null!=v&&
+(v=v.clone(),v.height-=F.height,this.model.setGeometry(q,v))}v=this.getCellGeometry(e);null!=v&&(v=v.clone(),v.height+=F.height,this.model.setGeometry(e,v));var ha=this.model.getChildCells(e,!0);if(0<ha.length){b[p]=c?this.cloneCell(b[p]):b[p];var u=this.model.getChildCells(b[p],!0),A=this.model.getChildCells(ha[0],!0),n=A.length-u.length;if(0<n)for(var x=0;x<n;x++){var I=this.cloneCell(u[u.length-1]);null!=I&&(I.value="",this.model.add(b[p],I))}else if(0>n)for(x=0;x>n;x--)this.model.remove(u[u.length+
+x-1]);u=this.model.getChildCells(b[p],!0);for(x=0;x<A.length;x++){var P=this.getCellGeometry(A[x]),t=this.getCellGeometry(u[x]);null!=P&&null!=t&&(t=t.clone(),t.width=P.width,this.model.setGeometry(u[x],t))}}}}for(var ua=m.apply(this,arguments),p=0;p<k.length;p++)!c&&this.model.contains(k[p])&&0==this.model.getChildCount(k[p])&&this.model.remove(k[p]);c&&this.updateCustomLinks(this.createCellMapping(l,this.createCellLookup(b)),ua)}finally{this.model.endUpdate()}return ua};var p=Graph.prototype.removeCells;
+Graph.prototype.removeCells=function(b,d){var g=[];this.model.beginUpdate();try{for(var c=0;c<b.length;c++)if(this.isTableCell(b[c])){var e=this.model.getParent(b[c]),f=this.model.getParent(e);1==this.model.getChildCount(e)&&1==this.model.getChildCount(f)?0>mxUtils.indexOf(b,f)&&0>mxUtils.indexOf(g,f)&&g.push(f):this.labelChanged(b[c],"")}else{if(this.isTableRow(b[c])&&(f=this.model.getParent(b[c]),0>mxUtils.indexOf(b,f)&&0>mxUtils.indexOf(g,f))){for(var l=this.model.getChildCells(f,!0),k=0,m=0;m<
+l.length;m++)0<=mxUtils.indexOf(b,l[m])&&k++;k==l.length&&g.push(f)}g.push(b[c])}g=p.apply(this,[g,d])}finally{this.model.endUpdate()}return g};Graph.prototype.updateCustomLinks=function(b,d,g){g=null!=g?g:new Graph;for(var c=0;c<d.length;c++)null!=d[c]&&g.updateCustomLinksForCell(b,d[c],g)};Graph.prototype.updateCustomLinksForCell=function(b,d){this.doUpdateCustomLinksForCell(b,d);for(var g=this.model.getChildCount(d),c=0;c<g;c++)this.updateCustomLinksForCell(b,this.model.getChildAt(d,c))};Graph.prototype.doUpdateCustomLinksForCell=
+function(b,d){};Graph.prototype.getAllConnectionConstraints=function(b,d){if(null!=b){var g=mxUtils.getValue(b.style,"points",null);if(null!=g){var c=[];try{for(var e=JSON.parse(g),g=0;g<e.length;g++){var f=e[g];c.push(new mxConnectionConstraint(new mxPoint(f[0],f[1]),2<f.length?"0"!=f[2]:!0,null,3<f.length?f[3]:0,4<f.length?f[4]:0))}}catch(pa){}return c}if(null!=b.shape&&null!=b.shape.bounds){f=b.shape.direction;e=b.shape.bounds;g=b.shape.scale;c=e.width/g;e=e.height/g;if(f==mxConstants.DIRECTION_NORTH||
+f==mxConstants.DIRECTION_SOUTH)f=c,c=e,e=f;g=b.shape.getConstraints(b.style,c,e);if(null!=g)return g;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),g=0,c=0;c<d;c++){var e=this.model.getChildAt(b,c);this.model.isVertex(e)&&(e=this.getCellGeometry(e),null==e||e.relative||g++)}return 0<g||this.isContainer(b)};Graph.prototype.isValidDropTarget=function(b,d,g){for(var c=this.getCurrentCellStyle(b),e=!0,f=!0,l=0;l<d.length&&f;l++)e=e&&this.isTable(d[l]),f=f&&this.isTableRow(d[l]);return("1"!=mxUtils.getValue(c,"part","0")||
+this.isContainer(b))&&"0"!=mxUtils.getValue(c,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(b))&&!this.isTableRow(b)&&(!this.isTable(b)||f||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 g=
+this.model.getParent(b);null!=g&&(g=this.layoutManager.getLayout(g),null!=g&&g.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 g=this.getModel(),c=[];g.beginUpdate();try{for(var e=0;e<b.length;e++){var f=b[e];if(g.isEdge(f)){var l=
+g.getTerminal(f,!0),k=g.getTerminal(f,!1);g.setTerminal(f,k,!0);g.setTerminal(f,l,!1);var m=g.getGeometry(f);if(null!=m){m=m.clone();null!=m.points&&m.points.reverse();var p=m.getTerminalPoint(!0),q=m.getTerminalPoint(!1);m.setTerminalPoint(p,!1);m.setTerminalPoint(q,!0);g.setGeometry(f,m);var F=this.view.getState(f),v=this.view.getState(l),u=this.view.getState(k);if(null!=F){var A=null!=v?this.getConnectionConstraint(F,v,!0):null,ha=null!=u?this.getConnectionConstraint(F,u,!1):null;this.setConnectionConstraint(f,
+l,!0,ha);this.setConnectionConstraint(f,k,!1,A);var n=mxUtils.getValue(F.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(F.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[f]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,n,[f])}c.push(f)}}else if(g.isVertex(f)&&(m=this.getCellGeometry(f),null!=m)){if(!(this.isTable(f)||this.isTableRow(f)||this.isTableCell(f)||this.isSwimlane(f))){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;g.setGeometry(f,m)}var I=this.view.getState(f);if(null!=I){var t=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],y=mxUtils.getValue(I.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,t[mxUtils.mod(mxUtils.indexOf(t,y)+(d?-1:1),t.length)],[f])}c.push(f)}}}finally{g.endUpdate()}return c};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 q=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 g=this.view.getState(d);null!=g&&null!=g.shape&&(this.view.invalidate(d),g.shape.bounds=null)}q.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 g=this.view.getState(b[d]);null!=g&&null!=g.shape&&null!=g.shape.stencil&&
+this.stencilHasPlaceholders(g.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 g=b.ownerDocument.createElement(null!=d?d:"span"),c=Array.prototype.slice.call(b.attributes);attr=c.pop();)g.setAttribute(attr.nodeName,attr.nodeValue);g.innerHTML=b.innerHTML;b.parentNode.replaceChild(g,b)};Graph.prototype.processElements=function(b,d){if(null!=b)for(var g=b.getElementsByTagName("*"),c=
+0;c<g.length;c++)d(g[c])};Graph.prototype.updateLabelElements=function(b,d,g){b=null!=b?b:this.getSelectionCells();for(var c=document.createElement("div"),e=0;e<b.length;e++)if(this.isHtmlLabel(b[e])){var f=this.convertValueToString(b[e]);if(null!=f&&0<f.length){c.innerHTML=f;for(var l=c.getElementsByTagName(null!=g?g:"*"),k=0;k<l.length;k++)d(l[k]);c.innerHTML!=f&&this.cellLabelChanged(b[e],c.innerHTML)}}};Graph.prototype.cellLabelChanged=function(b,d,g){d=Graph.zapGremlins(d);this.model.beginUpdate();
+try{if(null!=b.value&&"object"==typeof b.value){if(this.isReplacePlaceholders(b)&&null!=b.getAttribute("placeholder"))for(var c=b.getAttribute("placeholder"),e=b;null!=e;){if(e==this.model.getRoot()||null!=e.value&&"object"==typeof e.value&&e.hasAttribute(c)){this.setAttributeForCell(e,c,d);break}e=this.model.getParent(e)}var f=b.value.cloneNode(!0);Graph.translateDiagram&&null!=Graph.diagramLanguage&&f.hasAttribute("label_"+Graph.diagramLanguage)?f.setAttribute("label_"+Graph.diagramLanguage,d):
+f.setAttribute("label",d);d=f}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(b){if(null!=b){for(var d=new mxDictionary,g=0;g<b.length;g++)d.put(b[g],!0);for(var c=[],g=0;g<b.length;g++){var e=this.model.getParent(b[g]);null==e||d.get(e)||(d.put(e,!0),c.push(e))}for(g=0;g<c.length;g++)if(e=this.view.getState(c[g]),null!=e&&(this.model.isEdge(e.cell)||this.model.isVertex(e.cell))&&this.isCellDeletable(e.cell)&&this.isTransparentState(e)){for(var f=
+!0,l=0;l<this.model.getChildCount(e.cell)&&f;l++)d.get(this.model.getChildAt(e.cell,l))||(f=!1);f&&b.push(e.cell)}}mxGraph.prototype.cellsRemoved.apply(this,arguments)};Graph.prototype.removeCellsAfterUngroup=function(b){for(var d=[],g=0;g<b.length;g++)this.isCellDeletable(b[g])&&this.isTransparentState(this.view.getState(b[g]))&&d.push(b[g]);b=d;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(b,d){this.setAttributeForCell(b,"link",d)};Graph.prototype.setTooltipForCell=
+function(b,d){var g="tooltip";Graph.translateDiagram&&null!=Graph.diagramLanguage&&mxUtils.isNode(b.value)&&b.value.hasAttribute("tooltip_"+Graph.diagramLanguage)&&(g="tooltip_"+Graph.diagramLanguage);this.setAttributeForCell(b,g,d)};Graph.prototype.getAttributeForCell=function(b,d,g){b=null!=b.value&&"object"===typeof b.value?b.value.getAttribute(d):null;return null!=b?b:g};Graph.prototype.setAttributeForCell=function(b,d,g){var c;null!=b.value&&"object"==typeof b.value?c=b.value.cloneNode(!0):(c=
+mxUtils.createXmlDocument().createElement("UserObject"),c.setAttribute("label",b.value||""));null!=g?c.setAttribute(d,g):c.removeAttribute(d);this.model.setValue(b,c)};var u=Graph.prototype.getDropTarget;Graph.prototype.getDropTarget=function(b,d,g,c){this.getModel();if(mxEvent.isAltDown(d))return null;for(var e=0;e<b.length;e++){var f=this.model.getParent(b[e]);if(this.model.isEdge(f)&&0>mxUtils.indexOf(b,f))return null}for(var f=u.apply(this,arguments),l=!0,e=0;e<b.length&&l;e++)l=l&&this.isTableRow(b[e]);
+l&&(this.isTableCell(f)&&(f=this.model.getParent(f)),this.isTableRow(f)&&(f=this.model.getParent(f)),this.isTable(f)||(f=null));return f};Graph.prototype.click=function(b){mxGraph.prototype.click.call(this,b);this.firstClickState=b.getState();this.firstClickSource=b.getSource()};Graph.prototype.dblClick=function(b,d){this.isEnabled()&&(d=this.insertTextForEvent(b,d),mxGraph.prototype.dblClick.call(this,b,d))};Graph.prototype.insertTextForEvent=function(b,d){var g=mxUtils.convertPoint(this.container,
+mxEvent.getClientX(b),mxEvent.getClientY(b));if(null!=b&&!this.model.isVertex(d)){var c=this.model.isEdge(d)?this.view.getState(d):null,e=mxEvent.getSource(b);this.firstClickState!=c||this.firstClickSource!=e||null!=c&&null!=c.text&&null!=c.text.node&&null!=c.text.boundingBox&&(mxUtils.contains(c.text.boundingBox,g.x,g.y)||mxUtils.isAncestorNode(c.text.node,mxEvent.getSource(b)))||(null!=c||this.isCellLocked(this.getDefaultParent()))&&(null==c||this.isCellLocked(c.cell))||!(null!=c||mxClient.IS_SVG&&
+e==this.view.getCanvas().ownerSVGElement)||(null==c&&(c=this.view.getState(this.getCellAt(g.x,g.y))),d=this.addText(g.x,g.y,c))}return d};Graph.prototype.getInsertPoint=function(){var b=this.getGridSize(),d=this.container.scrollLeft/this.view.scale-this.view.translate.x,g=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var c=this.getPageLayout(),e=this.getPageSize(),d=Math.max(d,c.x*e.width),g=Math.max(g,c.y*e.height);return new mxPoint(this.snap(d+b),this.snap(g+
+b))};Graph.prototype.getFreeInsertPoint=function(){var b=this.view,d=this.getGraphBounds(),g=this.getInsertPoint(),c=this.snap(Math.round(Math.max(g.x,d.x/b.scale-b.translate.x+(0==d.width?2*this.gridSize:0)))),b=this.snap(Math.round(Math.max(g.y,(d.y+d.height)/b.scale-b.translate.y+2*this.gridSize)));return new mxPoint(c,b)};Graph.prototype.getCenterInsertPoint=function(b){b=null!=b?b:new mxRectangle;return mxUtils.hasScrollbars(this.container)?new mxPoint(this.snap(Math.round((this.container.scrollLeft+
+this.container.clientWidth/2)/this.view.scale-this.view.translate.x-b.width/2)),this.snap(Math.round((this.container.scrollTop+this.container.clientHeight/2)/this.view.scale-this.view.translate.y-b.height/2))):new mxPoint(this.snap(Math.round(this.container.clientWidth/2/this.view.scale-this.view.translate.x-b.width/2)),this.snap(Math.round(this.container.clientHeight/2/this.view.scale-this.view.translate.y-b.height/2)))};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=
+function(b,d,g){var c=new mxCell;c.value="Text";c.geometry=new mxGeometry(0,0,0,0);c.vertex=!0;if(null!=g&&this.model.isEdge(g.cell)){c.style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];";c.geometry.relative=!0;c.connectable=!1;var e=this.view.getRelativePoint(g,b,d);c.geometry.x=Math.round(1E4*e.x)/1E4;c.geometry.y=Math.round(e.y);c.geometry.offset=new mxPoint(0,0);var e=this.view.getPoint(g,c.geometry),f=this.view.scale;c.geometry.offset=new mxPoint(Math.round((b-e.x)/
+f),Math.round((d-e.y)/f))}else e=this.view.translate,c.style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];",c.geometry.width=40,c.geometry.height=20,c.geometry.x=Math.round(b/this.view.scale)-e.x-(null!=g?g.origin.x:0),c.geometry.y=Math.round(d/this.view.scale)-e.y-(null!=g?g.origin.y:0),c.style+="autosize=1;";this.getModel().beginUpdate();try{this.addCells([c],null!=g?g.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[c])),this.autoSizeCell(c)}finally{this.getModel().endUpdate()}return c};
+Graph.prototype.addClickHandler=function(b,d,g){var c=mxUtils.bind(this,function(){var b=this.container.getElementsByTagName("a");if(null!=b)for(var g=0;g<b.length;g++){var c=this.getAbsoluteUrl(b[g].getAttribute("href"));null!=c&&(b[g].setAttribute("rel",this.linkRelation),b[g].setAttribute("href",c),null!=d&&mxEvent.addGestureListeners(b[g],null,null,d))}});this.model.addListener(mxEvent.CHANGE,c);c();var e=this.container.style.cursor,f=this.getTolerance(),l=this,k={currentState:null,currentLink:null,
+currentTarget:null,highlight:null!=b&&""!=b&&b!=mxConstants.NONE?new mxCellHighlight(l,b,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(b){var d=b.sourceState;if(null==d||null==l.getLinkForCell(d.cell))b=l.getCellAt(b.getGraphX(),b.getGraphY(),null,null,null,function(b,d,g){return null==l.getLinkForCell(b.cell)}),d=null==d||l.model.isAncestor(b,d.cell)?l.view.getState(b):null;d!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=d,null!=this.currentState&&
+this.activate(this.currentState))},mouseDown:function(b,d){this.startX=d.getGraphX();this.startY=d.getGraphY();this.scrollLeft=l.container.scrollLeft;this.scrollTop=l.container.scrollTop;null==this.currentLink&&"auto"==l.container.style.overflow&&(l.container.style.cursor="move");this.updateCurrentState(d)},mouseMove:function(b,d){if(l.isMouseDown){if(null!=this.currentLink){var g=Math.abs(this.startX-d.getGraphX()),c=Math.abs(this.startY-d.getGraphY());(g>f||c>f)&&this.clear()}}else{for(g=d.getSource();null!=
+g&&"a"!=g.nodeName.toLowerCase();)g=g.parentNode;null!=g?this.clear():(null!=l.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&l.tooltipHandler.reset(d,!0,this.currentState),(null==this.currentState||d.getState()!=this.currentState&&null!=d.sourceState||!l.intersects(this.currentState,d.getGraphX(),d.getGraphY()))&&this.updateCurrentState(d))}},mouseUp:function(b,c){for(var e=c.getSource(),k=c.getEvent();null!=e&&"a"!=e.nodeName.toLowerCase();)e=e.parentNode;null==e&&Math.abs(this.scrollLeft-
+l.container.scrollLeft)<f&&Math.abs(this.scrollTop-l.container.scrollTop)<f&&(null==c.sourceState||!c.isSource(c.sourceState.control))&&((mxEvent.isLeftMouseButton(k)||mxEvent.isMiddleMouseButton(k))&&!mxEvent.isPopupTrigger(k)||mxEvent.isTouchEvent(k))&&(null!=this.currentLink?(e=l.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&e||null==d||d(k,this.currentLink),mxEvent.isConsumed(k)||(k=null!=this.currentTarget?this.currentTarget:mxEvent.isMiddleMouseButton(k)?"_blank":
+e?l.linkTarget:"_top",l.openLink(this.currentLink,k),c.consume())):null!=g&&!c.isConsumed()&&Math.abs(this.scrollLeft-l.container.scrollLeft)<f&&Math.abs(this.scrollTop-l.container.scrollTop)<f&&Math.abs(this.startX-c.getGraphX())<f&&Math.abs(this.startY-c.getGraphY())<f&&g(c.getEvent()));this.clear()},activate:function(b){this.currentLink=l.getAbsoluteUrl(l.getLinkForCell(b.cell));null!=this.currentLink&&(this.currentTarget=l.getLinkTargetForCell(b.cell),l.container.style.cursor="pointer",null!=
+this.highlight&&this.highlight.highlight(b))},clear:function(){null!=l.container&&(l.container.style.cursor=e);this.currentLink=this.currentState=this.currentTarget=null;null!=this.highlight&&this.highlight.hide();null!=l.tooltipHandler&&l.tooltipHandler.hide()}};l.click=function(b){};l.addMouseListener(k);mxEvent.addListener(document,"mouseleave",function(b){k.clear()})};Graph.prototype.duplicateCells=function(b,d){b=null!=b?b:this.getSelectionCells();d=null!=d?d:!0;for(var g=0;g<b.length;g++)this.isTableCell(b[g])&&
+(b[g]=this.model.getParent(b[g]));b=this.model.getTopmostCells(b);var c=this.getModel(),e=this.gridSize,f=[];c.beginUpdate();try{for(var l={},k=this.createCellLookup(b),m=this.cloneCells(b,!1,l,!0),g=0;g<b.length;g++){var p=c.getParent(b[g]);if(null!=p){var q=this.moveCells([m[g]],e,e,!1)[0];f.push(q);if(d)c.add(p,m[g]);else{var F=p.getIndex(b[g]);c.add(p,m[g],F+1)}if(this.isTable(p)){var v=this.getCellGeometry(m[g]),u=this.getCellGeometry(p);null!=v&&null!=u&&(u=u.clone(),u.height+=v.height,c.setGeometry(p,
+u))}}else f.push(m[g])}this.updateCustomLinks(this.createCellMapping(l,k),m,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",m))}finally{c.endUpdate()}return f};Graph.prototype.insertImage=function(b,d,g){if(null!=b&&null!=this.cellEditor.textarea){for(var c=this.cellEditor.textarea.getElementsByTagName("img"),e=[],f=0;f<c.length;f++)e.push(c[f]);document.execCommand("insertimage",!1,b);b=this.cellEditor.textarea.getElementsByTagName("img");if(b.length==e.length+1)for(f=b.length-
+1;0<=f;f--)if(0==f||b[f]!=e[f-1]){b[f].setAttribute("width",d);b[f].setAttribute("height",g);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"),g=[],c=0;c<d.length;c++)g.push(d[c]);document.execCommand("createlink",!1,mxUtils.trim(b));d=this.cellEditor.textarea.getElementsByTagName("a");if(d.length==g.length+1)for(c=d.length-1;0<=c;c--)if(d[c]!=
+g[c-1]){for(d=d[c].getElementsByTagName("a");0<d.length;){for(g=d[0].parentNode;null!=d[0].firstChild;)g.insertBefore(d[0].firstChild,d[0]);g.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),g=this.getCurrentCellStyle(b);return!this.isTableCell(b)&&!this.isTableRow(b)&&(d||"0"!=mxUtils.getValue(g,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==g[mxConstants.STYLE_WHITE_SPACE])};
+Graph.prototype.distributeCells=function(b,d){null==d&&(d=this.getSelectionCells());if(null!=d&&1<d.length){for(var g=[],c=null,e=null,f=0;f<d.length;f++)if(this.getModel().isVertex(d[f])){var l=this.view.getState(d[f]);if(null!=l){var k=b?l.getCenterX():l.getCenterY(),c=null!=c?Math.max(c,k):k,e=null!=e?Math.min(e,k):k;g.push(l)}}if(2<g.length){g.sort(function(d,g){return b?d.x-g.x:d.y-g.y});l=this.view.translate;k=this.view.scale;e=e/k-(b?l.x:l.y);c=c/k-(b?l.x:l.y);this.getModel().beginUpdate();
+try{for(var m=(c-e)/(g.length-1),c=e,f=1;f<g.length-1;f++){var p=this.view.getState(this.model.getParent(g[f].cell)),q=this.getCellGeometry(g[f].cell),c=c+m;null!=q&&null!=p&&(q=q.clone(),b?q.x=Math.round(c-q.width/2)-p.origin.x:q.y=Math.round(c-q.height/2)-p.origin.y,this.getModel().setGeometry(g[f].cell,q))}}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,g,c,e,f,l,k,m,p,q,F,v,u){var A=null;if(null!=u)for(A=new mxDictionary,q=0;q<u.length;q++)A.put(u[q],!0);if(u=this.useCssTransforms)this.useCssTransforms=
+!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;g=null!=g?g:0;e=null!=e?e:!0;f=null!=f?f:!0;l=null!=l?l:!0;p=null!=p?p:!1;var n="page"==v?this.view.getBackgroundPageBounds():f&&null==A||c||"diagram"==v?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),x=this.view.scale;"diagram"==v&&null!=this.backgroundImage&&(n=mxRectangle.fromRectangle(n),n.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==n)throw Error(mxResources.get("drawingEmpty"));var I=mxUtils.createXmlDocument(),t=null!=I.createElementNS?I.createElementNS(mxConstants.NS_SVG,"svg"):I.createElement("svg");null!=b&&(null!=t.style?t.style.backgroundColor=b:t.setAttribute("style","background-color:"+b));null==I.createElementNS?(t.setAttribute("xmlns",mxConstants.NS_SVG),t.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):t.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);
+b=d/x;var y=Math.max(1,Math.ceil(n.width*b)+2*g)+(p&&0==g?5:0),z=Math.max(1,Math.ceil(n.height*b)+2*g)+(p&&0==g?5:0);t.setAttribute("version","1.1");t.setAttribute("width",y+"px");t.setAttribute("height",z+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+y+" "+z);I.appendChild(t);var S=null!=I.createElementNS?I.createElementNS(mxConstants.NS_SVG,"g"):I.createElement("g");t.appendChild(S);var C=this.createSvgCanvas(S);C.foOffset=e?-.5:0;C.textOffset=e?-.5:0;C.imageOffset=e?-.5:0;C.translate(Math.floor(g/
+d-n.x/x),Math.floor(g/d-n.y/x));var ha=document.createElement("div"),ca=C.getAlternateText;C.getAlternateText=function(b,d,g,c,e,f,l,k,m,p,q,F,B){if(null!=f&&0<this.state.fontSize)try{mxUtils.isNode(f)?f=f.innerText:(ha.innerHTML=f,f=mxUtils.extractTextWithWhitespace(ha.childNodes));for(var va=Math.ceil(2*c/this.state.fontSize),Sa=[],Da=0,Ta=0;(0==va||Da<va)&&Ta<f.length;){var Wa=f.charCodeAt(Ta);if(10==Wa||13==Wa){if(0<Da)break}else Sa.push(f.charAt(Ta)),255>Wa&&Da++;Ta++}Sa.length<f.length&&1<f.length-
+Sa.length&&(f=mxUtils.trim(Sa.join(""))+"...");return f}catch(hb){return ca.apply(this,arguments)}else return ca.apply(this,arguments)};var M=this.backgroundImage;if(null!=M){d=x/d;var V=this.view.translate,P=new mxRectangle((M.x+V.x)*d,(M.y+V.y)*d,M.width*d,M.height*d);mxUtils.intersects(n,P)&&C.image(M.x+V.x,M.y+V.y,M.width,M.height,M.src,!0)}C.scale(b);C.textEnabled=l;k=null!=k?k:this.createSvgImageExport();var ua=k.drawCellState,D=k.getLinkForCellState;k.getLinkForCellState=function(b,d){var g=
+D.apply(this,arguments);return null==g||b.view.graph.isCustomLink(g)?null:g};k.getLinkTargetForCellState=function(b,d){return b.view.graph.getLinkTargetForCell(b.cell)};k.drawCellState=function(b,d){for(var g=b.view.graph,c=null!=A?A.get(b.cell):g.isCellSelected(b.cell),e=g.model.getParent(b.cell);!(f&&null==A||c)&&null!=e;)c=null!=A?A.get(e):g.isCellSelected(e),e=g.model.getParent(e);(f&&null==A||c)&&ua.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),C);this.updateSvgLinks(t,
+m,!0);this.addForeignObjectWarning(C,t);return t}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 g=b.createElement("switch"),c=b.createElement("g");c.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var e=b.createElement("a");e.setAttribute("transform","translate(0,-5)");null==e.setAttributeNS||
+d.ownerDocument!=document&&null==document.documentMode?(e.setAttribute("xlink:href",Graph.foreignObjectWarningLink),e.setAttribute("target","_blank")):(e.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",Graph.foreignObjectWarningLink),e.setAttributeNS(mxConstants.NS_XLINK,"target","_blank"));var f=b.createElement("text");f.setAttribute("text-anchor","middle");f.setAttribute("font-size","10px");f.setAttribute("x","50%");f.setAttribute("y","100%");mxUtils.write(f,Graph.foreignObjectWarningText);g.appendChild(c);
+e.appendChild(f);g.appendChild(e);d.appendChild(g)}};Graph.prototype.updateSvgLinks=function(b,d,g){b=b.getElementsByTagName("a");for(var c=0;c<b.length;c++)if(null==b[c].getAttribute("target")){var e=b[c].getAttribute("href");null==e&&(e=b[c].getAttribute("xlink:href"));null!=e&&(null!=d&&/^https?:\/\//.test(e)?b[c].setAttribute("target",d):g&&this.isCustomLink(e)&&b[c].setAttribute("href","javascript:void(0);"))}};Graph.prototype.createSvgCanvas=function(b){b=new mxSvgCanvas2D(b);b.pointerEvents=
+!0;return b};Graph.prototype.getSelectedElement=function(){var b=null;if(window.getSelection){var d=window.getSelection();d.getRangeAt&&d.rangeCount&&(b=d.getRangeAt(0).commonAncestorContainer)}else document.selection&&(b=document.selection.createRange().parentElement());return b};Graph.prototype.getSelectedEditingElement=function(){for(var b=this.getSelectedElement();null!=b&&b.nodeType!=mxConstants.NODETYPE_ELEMENT;)b=b.parentNode;null!=b&&b==this.cellEditor.textarea&&1==this.cellEditor.textarea.children.length&&
+this.cellEditor.textarea.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&(b=this.cellEditor.textarea.firstChild);return b};Graph.prototype.getParentByName=function(b,d,g){for(;null!=b&&b.nodeName!=d;){if(b==g)return null;b=b.parentNode}return b};Graph.prototype.getParentByNames=function(b,d,g){for(;null!=b&&!(0<=mxUtils.indexOf(d,b.nodeName));){if(b==g)return null;b=b.parentNode}return b};Graph.prototype.selectNode=function(b){var d=null;if(window.getSelection){if(d=window.getSelection(),d.getRangeAt&&
+d.rangeCount){var g=document.createRange();g.selectNode(b);d.removeAllRanges();d.addRange(g)}}else(d=document.selection)&&"Control"!=d.type&&(b=d.createRange(),b.collapse(!0),g=d.createRange(),g.setEndPoint("StartToStart",b),g.select())};Graph.prototype.deleteCells=function(b,d){var g=null;if(null!=b&&0<b.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){var e=this.model.getParent(b[c]);if(this.isTable(e)){var f=this.getCellGeometry(b[c]),l=this.getCellGeometry(e);null!=f&&null!=l&&
+(l=l.clone(),l.height-=f.height,this.model.setGeometry(e,l))}}var k=this.selectParentAfterDelete?this.model.getParents(b):null;this.removeCells(b,d)}finally{this.model.endUpdate()}if(null!=k)for(g=[],c=0;c<k.length;c++)this.model.contains(k[c])&&(this.model.isVertex(k[c])||this.model.isEdge(k[c]))&&g.push(k[c])}return g};Graph.prototype.insertTableColumn=function(b,d){var g=this.getModel();g.beginUpdate();try{var c=b,e=0;if(this.isTableCell(b))var f=g.getParent(b),c=g.getParent(f),e=mxUtils.indexOf(g.getChildCells(f,
+!0),b);else this.isTableRow(b)?c=g.getParent(b):b=g.getChildCells(c,!0)[0],d||(e=g.getChildCells(b,!0).length-1);for(var l=g.getChildCells(c,!0),k=Graph.minTableColumnWidth,f=0;f<l.length;f++){var m=g.getChildCells(l[f],!0)[e],p=g.cloneCell(m,!1),q=this.getCellGeometry(p);p.value=null;p.style=mxUtils.setStyle(mxUtils.setStyle(p.style,"rowspan",null),"colspan",null);if(null!=q){null!=q.alternateBounds&&(q.width=q.alternateBounds.width,q.height=q.alternateBounds.height,q.alternateBounds=null);var k=
+q.width,F=this.getCellGeometry(l[f]);null!=F&&(q.height=F.height)}g.add(l[f],p,e+(d?0:1))}var v=this.getCellGeometry(c);null!=v&&(v=v.clone(),v.width+=k,g.setGeometry(c,v))}finally{g.endUpdate()}};Graph.prototype.deleteLane=function(b){var d=this.getModel();d.beginUpdate();try{var g=null,g="stackLayout"==this.getCurrentCellStyle(b).childLayout?b:d.getParent(b),c=d.getChildCells(g,!0);0==c.length?d.remove(g):(g==b&&(b=c[c.length-1]),d.remove(b))}finally{d.endUpdate()}};Graph.prototype.insertLane=function(b,
+d){var g=this.getModel();g.beginUpdate();try{var c=null,e=b;if("stackLayout"==this.getCurrentCellStyle(e).childLayout)var c=e,f=g.getChildCells(c,!0),e=f[d?0:f.length-1];else c=g.getParent(e);var l=c.getIndex(e),e=g.cloneCell(e,!1);e.value=null;g.add(c,e,l+(d?0:1))}finally{g.endUpdate()}};Graph.prototype.insertTableRow=function(b,d){var g=this.getModel();g.beginUpdate();try{var c=b,e=b;if(this.isTableCell(b))e=g.getParent(b),c=g.getParent(e);else if(this.isTableRow(b))c=g.getParent(b);else var f=
+g.getChildCells(c,!0),e=f[d?0:f.length-1];var l=g.getChildCells(e,!0),k=c.getIndex(e),e=g.cloneCell(e,!1);e.value=null;var m=this.getCellGeometry(e);if(null!=m){for(f=0;f<l.length;f++){b=g.cloneCell(l[f],!1);b.value=null;b.style=mxUtils.setStyle(mxUtils.setStyle(b.style,"rowspan",null),"colspan",null);var p=this.getCellGeometry(b);null!=p&&(null!=p.alternateBounds&&(p.width=p.alternateBounds.width,p.height=p.alternateBounds.height,p.alternateBounds=null),p.height=m.height);e.insert(b)}g.add(c,e,k+
+(d?0:1));var q=this.getCellGeometry(c);null!=q&&(q=q.clone(),q.height+=m.height,g.setGeometry(c,q))}}finally{g.endUpdate()}};Graph.prototype.deleteTableColumn=function(b){var d=this.getModel();d.beginUpdate();try{var g=b,c=b;this.isTableCell(b)&&(c=d.getParent(b));this.isTableRow(c)&&(g=d.getParent(c));var e=d.getChildCells(g,!0);if(0==e.length)d.remove(g);else{this.isTableRow(c)||(c=e[0]);var f=d.getChildCells(c,!0);if(1>=f.length)d.remove(g);else{var l=f.length-1;this.isTableCell(b)&&(l=mxUtils.indexOf(f,
+b));for(c=b=0;c<e.length;c++){var k=d.getChildCells(e[c],!0)[l];d.remove(k);var m=this.getCellGeometry(k);null!=m&&(b=Math.max(b,m.width))}var p=this.getCellGeometry(g);null!=p&&(p=p.clone(),p.width-=b,d.setGeometry(g,p))}}}finally{d.endUpdate()}};Graph.prototype.deleteTableRow=function(b){var d=this.getModel();d.beginUpdate();try{var g=b,c=b;this.isTableCell(b)&&(b=c=d.getParent(b));this.isTableRow(b)&&(g=d.getParent(c));var e=d.getChildCells(g,!0);if(1>=e.length)d.remove(g);else{this.isTableRow(c)||
+(c=e[e.length-1]);d.remove(c);b=0;var f=this.getCellGeometry(c);null!=f&&(b=f.height);var l=this.getCellGeometry(g);null!=l&&(l=l.clone(),l.height-=b,d.setGeometry(g,l))}}finally{d.endUpdate()}};Graph.prototype.insertRow=function(b,d){for(var g=b.tBodies[0],c=g.rows[0].cells,e=0,f=0;f<c.length;f++)var l=c[f].getAttribute("colspan"),e=e+(null!=l?parseInt(l):1);g=g.insertRow(d);for(f=0;f<e;f++)mxUtils.br(g.insertCell(-1));return g.cells[0]};Graph.prototype.deleteRow=function(b,d){b.tBodies[0].deleteRow(d)};
+Graph.prototype.insertColumn=function(b,d){var g=b.tHead;if(null!=g)for(var c=0;c<g.rows.length;c++){var e=document.createElement("th");g.rows[c].appendChild(e);mxUtils.br(e)}g=b.tBodies[0];for(c=0;c<g.rows.length;c++)e=g.rows[c].insertCell(d),mxUtils.br(e);return g.rows[0].cells[0<=d?d:g.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(b,d){if(0<=d)for(var g=b.tBodies[0].rows,c=0;c<g.length;c++)g[c].cells.length>d&&g[c].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 g=document.createElement("div");g.innerHTML=b;b=document.createDocumentFragment();for(var c;c=g.firstChild;)lastNode=b.appendChild(c);d.insertNode(b)}}else(d=document.selection)&&"Control"!=d.type&&d.createRange().pasteHTML(b)};Graph.prototype.createLinkForHint=function(b,d){function g(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 c=document.createElement("a");c.setAttribute("rel",this.linkRelation);c.setAttribute("href",this.getAbsoluteUrl(b));c.setAttribute("title",g(this.isCustomLink(b)?this.getLinkTitle(b):b,80));null!=this.linkTarget&&c.setAttribute("target",this.linkTarget);mxUtils.write(c,g(d,40));this.isCustomLink(b)&&mxEvent.addListener(c,"click",mxUtils.bind(this,function(d){this.customLinkClicked(b);
+mxEvent.consume(d)}));return c};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(b,d){this.popupMenuHandler.hideMenu()});var b=this.updateMouseEvent;this.updateMouseEvent=function(d){d=b.apply(this,arguments);if(mxEvent.isTouchEvent(d.getEvent())&&null==d.getState()){var g=this.getCellAt(d.graphX,d.graphY);null!=g&&this.isSwimlane(g)&&this.hitsSwimlaneContent(g,d.graphX,
+d.graphY)||(d.state=this.view.getState(g),null!=d.state&&null!=d.state.shape&&(this.container.style.cursor=d.state.shape.node.style.cursor))}null==d.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return d};var d=!1,g=!1,c=!1,e=this.fireMouseEvent;this.fireMouseEvent=function(b,f,l){b==mxEvent.MOUSE_DOWN&&(f=this.updateMouseEvent(f),d=this.isCellSelected(f.getCell()),g=this.isSelectionEmpty(),c=this.popupMenuHandler.isMenuShowing());e.apply(this,arguments)};this.popupMenuHandler.mouseUp=
+mxUtils.bind(this,function(b,e){var f=mxEvent.isMouseEvent(e.getEvent());this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==e.getState()||!e.isSource(e.getState().control))&&(this.popupMenuHandler.popupTrigger||!c&&!f&&(g&&null==e.getCell()&&this.isSelectionEmpty()||d&&this.isCellSelected(e.getCell())));f=!d||f?null:mxUtils.bind(this,function(b){window.setTimeout(mxUtils.bind(this,function(){if(!this.isEditing()){var d=mxUtils.getScrollOrigin();this.popupMenuHandler.popup(e.getX()+
+d.x+1,e.getY()+d.y+1,b,e.getEvent())}}),500)});mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,[b,e,f])})};mxCellEditor.prototype.isContentEditing=function(){var b=this.graph.view.getState(this.editingCell);return null!=b&&1==b.style.html};mxCellEditor.prototype.isTableSelected=function(){return null!=this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",this.textarea)};mxCellEditor.prototype.isTextSelected=function(){var b="";window.getSelection?b=window.getSelection():
+document.getSelection?b=document.getSelection():document.selection&&(b=document.selection.createRange().text);return""!=b};mxCellEditor.prototype.insertTab=function(b){var d=this.textarea.ownerDocument.defaultView.getSelection(),g=d.getRangeAt(0),c="\t";if(null!=b)for(c="";0<b;)c+=" ",b--;b=document.createElement("span");b.style.whiteSpace="pre";b.appendChild(document.createTextNode(c));g.insertNode(b);g.setStartAfter(b);g.setEndAfter(b);d.removeAllRanges();d.addRange(g)};mxCellEditor.prototype.alignText=
+function(b,d){var g=null!=d&&mxEvent.isShiftDown(d);if(g||null!=window.getSelection&&null!=window.getSelection().containsNode){var c=!0;this.graph.processElements(this.textarea,function(b){g||window.getSelection().containsNode(b,!0)?(b.removeAttribute("align"),b.style.textAlign=null):c=!1});c&&this.graph.cellEditor.setAlign(b)}document.execCommand("justify"+b.toLowerCase(),!1,null)};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var b=window.getSelection();if(b.getRangeAt&&
+b.rangeCount){for(var d=[],g=0,c=b.rangeCount;g<c;++g)d.push(b.getRangeAt(g));return d}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(b){try{if(b)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var d=0,g=b.length;d<g;++d)sel.addRange(b[d])}else document.selection&&b.select&&b.select()}catch(ea){}};var v=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=
+function(b){null!=b.text&&(b.text.replaceLinefeeds="0"!=mxUtils.getValue(b.style,"nl2Br","1"));v.apply(this,arguments)};var y=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(b,d){this.isKeepFocusEvent(b)||!mxEvent.isAltDown(b.getEvent())?y.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(b){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var x=mxCellEditor.prototype.startEditing;
+mxCellEditor.prototype.startEditing=function(b,d){b=this.graph.getStartEditingCell(b,d);x.apply(this,arguments);var g=this.graph.view.getState(b);this.textarea.className=null!=g&&1==g.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(b);var g=this.graph.getModel().getParent(b),c=this.graph.getCellGeometry(b);if(this.graph.getModel().isEdge(g)&&null!=c&&c.relative||this.graph.getModel().isEdge(b))this.textarea.style.outline=
+mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var G=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(b){function d(b,g){g.originalNode=b;b=b.firstChild;for(var c=g.firstChild;null!=b&&null!=c;)d(b,c),b=b.nextSibling,c=c.nextSibling;return g}function g(b,d){if(null!=b)if(d.originalNode!=b)c(b);else for(b=b.firstChild,d=d.firstChild;null!=b;){var e=b.nextSibling;null==d?c(b):(g(b,d),d=d.nextSibling);b=e}}function c(b){for(var d=
+b.firstChild;null!=d;){var g=d.nextSibling;c(d);d=g}1==b.nodeType&&("BR"===b.nodeName||null!=b.firstChild)||3==b.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(b)).length?(3==b.nodeType&&mxUtils.setTextContent(b,mxUtils.getTextContent(b).replace(/\n|\r/g,"")),1==b.nodeType&&(b.removeAttribute("style"),b.removeAttribute("class"),b.removeAttribute("width"),b.removeAttribute("cellpadding"),b.removeAttribute("cellspacing"),b.removeAttribute("border"))):b.parentNode.removeChild(b)}G.apply(this,arguments);
+7!==document.documentMode&&8!==document.documentMode&&mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(b){var c=d(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){null!=this.textarea&&(0<=this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")||0<=this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>")?g(this.textarea,c):Graph.removePasteFormatting(this.textarea))}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var b=this.graph.view.getState(this.editingCell);
+if(null!=b){var d=null!=b&&"0"!=mxUtils.getValue(b.style,"nl2Br","1"),g=this.saveSelection();if(this.codeViewMode){m=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<m.length&&"\n"==m.charAt(m.length-1)&&(m=m.substring(0,m.length-1));m=this.graph.sanitizeHtml(d?m.replace(/\n/g,"<br/>"):m,!0);this.textarea.className="mxCellEditor geContentEditable";var c=mxUtils.getValue(b.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),d=mxUtils.getValue(b.style,mxConstants.STYLE_FONTFAMILY,
+mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(b.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),f=(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,k=[];(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&k.push("underline");(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,
+0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&k.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(c*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(c)+"px";this.textarea.style.textDecoration=k.join(" ");this.textarea.style.fontWeight=f?"bold":"normal";this.textarea.style.fontStyle=l?"italic":"";this.textarea.style.fontFamily=d;this.textarea.style.textAlign=e;this.textarea.style.padding=
+"0px";this.textarea.innerHTML!=m&&(this.textarea.innerHTML=m,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var m=mxUtils.htmlEntities(this.textarea.innerHTML);8!=document.documentMode&&(m=mxUtils.replaceTrailingNewlines(m,"<div><br></div>"));m=this.graph.sanitizeHtml(d?
+m.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):m,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var c=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(c*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(c)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;
+this.textarea.style.textAlign="left";this.textarea.style.width="";this.textarea.style.padding="2px";this.textarea.innerHTML!=m&&(this.textarea.innerHTML=m);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=g;this.resize()}};var H=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(b,d){if(null!=this.textarea)if(b=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=
+b){var g=b.view.scale;this.bounds=mxRectangle.fromRectangle(b);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*g;this.bounds.height=60*g;var c=null!=b.text?b.text.margin:null;null==c&&(c=mxUtils.getAlignmentAsPoint(mxUtils.getValue(b.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(b.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=c.x*this.bounds.width;this.bounds.y+=c.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-
+4)/g)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/g)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/g)+(this.textarea.offsetHeight-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*g);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/g)+(this.textarea.offsetWidth-this.textarea.clientWidth)+
+"px",this.bounds.width=parseInt(this.textarea.style.width)*g);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+g+","+g+")")}else this.textarea.style.height="",this.textarea.style.overflow="",H.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(b,d){if("0"==mxUtils.getValue(b.style,"html",
+"0"))return mxCellEditorGetInitialValue.apply(this,arguments);var g=this.graph.getEditingValue(b.cell,d);"1"==mxUtils.getValue(b.style,"nl2Br","1")&&(g=g.replace(/\n/g,"<br/>"));return g=this.graph.sanitizeHtml(g,!0)};mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(b){if("0"==mxUtils.getValue(b.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var d=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return d=
+"1"==mxUtils.getValue(b.style,"nl2Br","1")?d.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):d.replace(/\r\n/g,"").replace(/\n/g,"")};var z=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(b){this.codeViewMode&&this.toggleViewMode();z.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(ha){}};var D=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(b,d){this.graph.getModel().beginUpdate();
+try{D.apply(this,arguments),""==d&&this.graph.isCellDeletable(b.cell)&&0==this.graph.model.getChildCount(b.cell)&&this.graph.isTransparentState(b)&&this.graph.removeCells([b.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(b){var d=mxUtils.getValue(b.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);null!=d&&d!=mxConstants.NONE||!(null!=b.cell.geometry&&0<b.cell.geometry.width)||0==mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION,0)&&0!=
+mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,1)||(d=mxUtils.getValue(b.style,mxConstants.STYLE_FILLCOLOR,null));d==mxConstants.NONE&&(d=null);return d};mxCellEditor.prototype.getBorderColor=function(b){var d=mxUtils.getValue(b.style,mxConstants.STYLE_LABEL_BORDERCOLOR,null);null!=d&&d!=mxConstants.NONE||!(null!=b.cell.geometry&&0<b.cell.geometry.width)||0==mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION,0)&&0!=mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,1)||(d=mxUtils.getValue(b.style,
+mxConstants.STYLE_STROKECOLOR,null));d==mxConstants.NONE&&(d=null);return d};mxCellEditor.prototype.getMinimumSize=function(b){var d=this.graph.getView().scale;return new mxRectangle(0,0,null==b.text?30:b.text.size*d+20,30)};mxGraphHandlerIsValidDropTarget=mxGraphHandler.prototype.isValidDropTarget;mxGraphHandler.prototype.isValidDropTarget=function(b,d){return mxGraphHandlerIsValidDropTarget.apply(this,arguments)&&!mxEvent.isAltDown(d.getEvent)};mxGraphView.prototype.formatUnitText=function(b){return b?
+c(b,this.unit):b};mxGraphHandler.prototype.updateHint=function(d){if(null!=this.pBounds&&(null!=this.shape||this.livePreviewActive)){null==this.hint&&(this.hint=b(),this.graph.container.appendChild(this.hint));var g=this.graph.view.translate,e=this.graph.view.scale;d=this.roundLength((this.bounds.x+this.currentDx)/e-g.x);g=this.roundLength((this.bounds.y+this.currentDy)/e-g.y);e=this.graph.view.unit;this.hint.innerHTML=c(d,e)+", "+c(g,e);this.hint.style.left=this.pBounds.x+this.currentDx+Math.round((this.pBounds.width-
+this.hint.clientWidth)/2)+"px";this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+Editor.hintOffset+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};var L=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell=function(b,d){L.apply(this,arguments);var g=this.graph.getCellStyle(b);if(null==g.childLayout){var c=this.graph.model.getParent(b),e=null!=c?this.graph.getCellGeometry(c):null;
+if(null!=e&&(g=this.graph.getCellStyle(c),"stackLayout"==g.childLayout)){var f=parseFloat(mxUtils.getValue(g,"stackBorder",mxStackLayout.prototype.border)),g="1"==mxUtils.getValue(g,"horizontalStack","1"),l=this.graph.getActualStartSize(c),e=e.clone();g?e.height=d.height+l.y+l.height+2*f:e.width=d.width+l.x+l.width+2*f;this.graph.model.setGeometry(c,e)}}};var E=mxSelectionCellsHandler.prototype.getHandledSelectionCells;mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function b(b){g.get(b)||
+(g.put(b,!0),e.push(b))}for(var d=E.apply(this,arguments),g=new mxDictionary,c=this.graph.model,e=[],f=0;f<d.length;f++){var l=d[f];this.graph.isTableCell(l)?b(c.getParent(c.getParent(l))):this.graph.isTableRow(l)&&b(c.getParent(l));b(l)}return e};var J=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(b){var d=J.apply(this,arguments);d.stroke="#C0C0C0";d.strokewidth=1;return d};var C=mxEdgeHandler.prototype.createParentHighlightShape;
+mxEdgeHandler.prototype.createParentHighlightShape=function(b){var d=C.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.isControlDown(d.getEvent())};mxVertexHandler.prototype.isCenteredEvent=function(b,d){return!(!this.graph.isSwimlane(b.cell)&&0<this.graph.model.getChildCount(b.cell)&&!this.graph.isCellCollapsed(b.cell)&&"1"==mxUtils.getValue(b.style,"recursiveResize","1")&&null==mxUtils.getValue(b.style,"childLayout",null))&&mxEvent.isControlDown(d.getEvent())||mxEvent.isMetaDown(d.getEvent())};var K=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return K.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 Z=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(b){return b.tableHandle||Z.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 M=mxVertexHandler.prototype.getSelectionBorderBounds;
+mxVertexHandler.prototype.getSelectionBorderBounds=function(){return M.apply(this,arguments).grow(-this.getSelectionBorderInset())};var O=null,U=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){null==O&&(O=mxCellRenderer.defaultShapes.tableLine);var b=U.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var d=function(b,d,g){for(var c=[],e=0;e<b.length;e++){var l=b[e];c.push(null==l?null:new mxPoint((m+l.x+d)*f,(p+l.y+g)*f))}return c},
+g=this,c=this.graph,e=c.model,f=c.view.scale,l=this.state,k=this.selectionBorder,m=this.state.origin.x+c.view.translate.x,p=this.state.origin.y+c.view.translate.y;null==b&&(b=[]);var q=c.view.getCellStates(e.getChildCells(this.state.cell,!0));if(0<q.length){for(var F=e.getChildCells(q[0].cell,!0),v=c.getTableLines(this.state.cell,!1,!0),u=c.getTableLines(this.state.cell,!0,!1),e=0;e<F.length;e++)mxUtils.bind(this,function(e){var m=c.view.getState(F[e]),p=c.getCellGeometry(F[e]),q=null!=p.alternateBounds?
+p.alternateBounds:p;null==m&&(m=new mxCellState(c.view,F[e],c.getCellStyle(F[e])),m.x=l.x+p.x*f,m.y=l.y+p.y*f,m.width=q.width*f,m.height=q.height*f,m.updateCachedBounds());var p=e<F.length-1?F[e+1]:null,p=null!=p?c.getCellGeometry(p):null,u=null!=p&&null!=p.alternateBounds?p.alternateBounds:p,p=null!=v[e]?new O(v[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!0);p.isDashed=k.isDashed;p.svgStrokeTolerance++;m=new mxHandle(m,"col-resize",null,p);m.tableHandle=!0;var A=0;m.shape.node.parentNode.insertBefore(m.shape.node,
+m.shape.node.parentNode.firstChild);m.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=0==A?mxConstants.NONE:k.stroke;if(this.shape.constructor==O)this.shape.line=d(v[e],A,0),this.shape.updateBoundsFromLine();else{var b=c.getActualStartSize(l.cell,!0);this.shape.bounds.width=1;this.shape.bounds.x=this.state.x+(q.width+A)*f;this.shape.bounds.y=l.y+(e==F.length-1?0:b.y*f);this.shape.bounds.height=l.height-(e==F.length-1?0:(b.height+b.y)*f)}this.shape.redraw()}};var n=
+!1;m.setPosition=function(b,d,g){A=Math.max(Graph.minTableColumnWidth-q.width,d.x-b.x-q.width);n=mxEvent.isShiftDown(g.getEvent());null==u||n||(A=Math.min(A,u.width-Graph.minTableColumnWidth))};m.execute=function(b){if(0!=A)c.setTableColumnWidth(this.state.cell,A,n);else if(!g.blockDelayedSelection){var d=c.getCellAt(b.getGraphX(),b.getGraphY())||l.cell;c.graphHandler.selectCellForEvent(d,b)}A=0};m.positionChanged=function(){};m.reset=function(){A=0};b.push(m)})(e);for(e=0;e<q.length;e++)mxUtils.bind(this,
+function(e){var m=q[e],p=e<q.length-1?q[e+1]:null,p=null!=p?c.getCellGeometry(p.cell):null,F=null!=p&&null!=p.alternateBounds?p.alternateBounds:p,p=null!=u[e]?new O(u[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!1);p.isDashed=k.isDashed;p.svgStrokeTolerance++;m=new mxHandle(m,"row-resize",null,p);m.tableHandle=!0;var v=0;m.shape.node.parentNode.insertBefore(m.shape.node,m.shape.node.parentNode.firstChild);m.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=
+0==v?mxConstants.NONE:k.stroke;if(this.shape.constructor==O)this.shape.line=d(u[e],0,v),this.shape.updateBoundsFromLine();else{var b=c.getActualStartSize(l.cell,!0);this.shape.bounds.height=1;this.shape.bounds.y=this.state.y+this.state.height+v*f;this.shape.bounds.x=l.x+(e==q.length-1?0:b.x*f);this.shape.bounds.width=l.width-(e==q.length-1?0:b.width+b.x+f)}this.shape.redraw()}};var A=!1;m.setPosition=function(b,d,g){v=Math.max(Graph.minTableRowHeight-b.height,d.y-b.y-b.height);A=mxEvent.isShiftDown(g.getEvent());
+null!=F&&A&&(v=Math.min(v,F.height-Graph.minTableRowHeight))};m.execute=function(b){if(0!=v)c.setTableRowHeight(this.state.cell,v,!A);else if(!g.blockDelayedSelection){var d=c.getCellAt(b.getGraphX(),b.getGraphY())||l.cell;c.graphHandler.selectCellForEvent(d,b)}v=0};m.reset=function(){v=0};b.push(m)})(e)}}return null!=b?b.reverse():null};var F=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){F.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 g=mxUtils.createImage(Editor.rowMoveImage);g.style.position="absolute";g.style.cursor="pointer";g.style.width="7px";g.style.height="4px";g.style.padding="4px 2px 4px 2px";g.rowState=d;mxEvent.addGestureListeners(g,mxUtils.bind(this,function(b){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);!this.graph.isToggleEvent(b)&&this.graph.isCellSelected(d.cell)||this.graph.selectCellForEvent(d.cell,b);mxEvent.isPopupTrigger(b)||(this.graph.graphHandler.start(this.state.cell,
+mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=mxEvent.isMouseEvent(b),this.graph.isMouseDown=!0);mxEvent.consume(b)}),null,mxUtils.bind(this,function(b){mxEvent.isPopupTrigger(b)&&(this.graph.popupMenuHandler.popup(mxEvent.getClientX(b),mxEvent.getClientY(b),d.cell,b),mxEvent.consume(b))}));this.moveHandles.push(g);this.graph.container.appendChild(g)}})(this.graph.view.getState(b.getChildAt(this.state.cell,
+d)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){for(var b=0;b<this.customHandles.length;b++)this.customHandles[b].destroy();this.customHandles=this.createCustomHandles()}this.graph.isTable(this.state.cell)&&this.refreshMoveHandles()};var I=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var b=new mxPoint(0,0),d=this.tolerance,g=this.state.style.shape;null==mxCellRenderer.defaultShapes[g]&&mxStencilRegistry.getStencil(g);
+g=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!g&&null!=this.customHandles)for(var c=0;c<this.customHandles.length;c++)if(null!=this.customHandles[c].shape&&null!=this.customHandles[c].shape.bounds){var e=this.customHandles[c].shape.bounds,f=e.getCenterX(),l=e.getCenterY();if(Math.abs(this.state.x-f)<e.width/2||Math.abs(this.state.y-l)<e.height/2||Math.abs(this.state.x+this.state.width-f)<e.width/2||Math.abs(this.state.y+this.state.height-l)<e.height/
+2){g=!0;break}}g&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(d/=2,this.graph.isTable(this.state.cell)&&(d+=7),b.x=this.sizers[0].bounds.width+d,b.y=this.sizers[0].bounds.height+d):b=I.apply(this,arguments);return b};mxVertexHandler.prototype.updateHint=function(d){if(this.index!=mxEvent.LABEL_HANDLE){null==this.hint&&(this.hint=b(),this.state.view.graph.container.appendChild(this.hint));if(this.index==mxEvent.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"&deg;";else{d=
+this.state.view.scale;var g=this.state.view.unit;this.hint.innerHTML=c(this.roundLength(this.bounds.width/d),g)+" x "+c(this.roundLength(this.bounds.height/d),g)}d=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0");null==d&&(d=this.bounds);this.hint.style.left=d.x+Math.round((d.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=d.y+d.height+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")}};
+mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};var A=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(b,d){A.apply(this,arguments);null!=this.linkHint&&"none"!=this.linkHint.style.display&&null!=this.graph.graphHandler&&null!=this.graph.graphHandler.first&&(this.linkHint.style.display="none")};var ca=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=
+function(b,d){ca.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(d,g){null==this.hint&&(this.hint=b(),this.state.view.graph.container.appendChild(this.hint));var e=this.graph.view.translate,f=this.graph.view.scale,l=this.roundLength(g.x/f-e.x),e=this.roundLength(g.y/f-e.y),f=this.graph.view.unit;this.hint.innerHTML=c(l,f)+", "+c(e,f);this.hint.style.visibility="visible";if(this.isSource||
+this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(l=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*l.x)+"%, "+Math.round(100*l.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(d.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(d.getGraphY(),g.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};
+Graph.prototype.expandedImage=Graph.createSvgImage(9,9,'<defs><linearGradient id="grad1" x1="50%" y1="0%" x2="50%" y2="100%"><stop offset="30%" style="stop-color:#f0f0f0;" /><stop offset="100%" style="stop-color:#AFB0B6;" /></linearGradient></defs><rect x="0" y="0" width="9" height="9" stroke="#8A94A5" fill="url(#grad1)" stroke-width="2"/><path d="M 2 4.5 L 7 4.5 z" stroke="#000"/>');Graph.prototype.collapsedImage=Graph.createSvgImage(9,9,'<defs><linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="30%" style="stop-color:#f0f0f0;" /><stop offset="100%" style="stop-color:#AFB0B6;" /></linearGradient></defs><rect x="0" y="0" width="9" height="9" stroke="#8A94A5" fill="url(#grad1)" stroke-width="2"/><path d="M 4.5 2 L 4.5 7 M 2 4.5 L 7 4.5 z" stroke="#000"/>');
+mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>');HoverIcons.prototype.endMainHandle=Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>');HoverIcons.prototype.secondaryHandle=Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>');
+HoverIcons.prototype.fixedHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="#01bd22"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>');HoverIcons.prototype.endFixedHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="7" stroke="#fff" fill="#01bd22"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>');HoverIcons.prototype.terminalHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+
+'"/><circle cx="11" cy="11" r="3" stroke="#fff" fill="transparent"/>');HoverIcons.prototype.endTerminalHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="7" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/><circle cx="11" cy="11" r="3" stroke="#fff" fill="transparent"/>');HoverIcons.prototype.rotationHandle=Graph.createSvgImage(16,16,'<path stroke="'+HoverIcons.prototype.arrowFill+'" fill="'+HoverIcons.prototype.arrowFill+'" d="M15.55 5.55L11 1v3.07C7.06 4.56 4 7.92 4 12s3.05 7.44 7 7.93v-2.02c-2.84-.48-5-2.94-5-5.91s2.16-5.43 5-5.91V10l4.55-4.45zM19.93 11c-.17-1.39-.72-2.73-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02c1.39-.17 2.74-.71 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41c.9-1.16 1.45-2.5 1.62-3.89h-2.02c-.14.87-.48 1.72-1.02 2.48z"/>',
24,24);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="'+HoverIcons.prototype.arrowFill+'"/>');mxVertexHandler.TABLE_HANDLE_COLOR="#fca000";mxVertexHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxVertexHandler.prototype.secondaryHandleImage=HoverIcons.prototype.secondaryHandle;mxEdgeHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;
mxEdgeHandler.prototype.endHandleImage=HoverIcons.prototype.endMainHandle;mxEdgeHandler.prototype.terminalHandleImage=HoverIcons.prototype.terminalHandle;mxEdgeHandler.prototype.endTerminalHandleImage=HoverIcons.prototype.endTerminalHandle;mxEdgeHandler.prototype.fixedHandleImage=HoverIcons.prototype.fixedHandle;mxEdgeHandler.prototype.endFixedHandleImage=HoverIcons.prototype.endFixedHandle;mxEdgeHandler.prototype.labelHandleImage=HoverIcons.prototype.secondaryHandle;mxOutline.prototype.sizerImage=
HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangleUp=HoverIcons.prototype.triangleUp,Sidebar.prototype.triangleRight=HoverIcons.prototype.triangleRight,Sidebar.prototype.triangleDown=HoverIcons.prototype.triangleDown,Sidebar.prototype.triangleLeft=HoverIcons.prototype.triangleLeft,Sidebar.prototype.refreshTarget=HoverIcons.prototype.refreshTarget,Sidebar.prototype.roundDrop=HoverIcons.prototype.roundDrop);mxVertexHandler.prototype.rotationEnabled=!0;mxVertexHandler.prototype.manageSizers=
@@ -2674,13 +2672,13 @@ this.graph.view.getState(k[g]),p=this.graph.getCellGeometry(k[g]);null!=m&&null!
var c=d.getX()+g.x,g=d.getY()+g.y,e=this.first.x-c,f=this.first.y-g,l=this.graph.tolerance;if(null!=this.div||Math.abs(e)>l||Math.abs(f)>l)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(c,g),this.isSpaceEvent(d)?(c=this.x+this.width,g=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=c-this.width),this.y<this.first.y&&(this.y=g-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 Q=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);Q.apply(this,arguments)};var V=(new Date).getTime(),na=0,fa=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(b,d,g,c){fa.apply(this,arguments);g!=this.currentTerminalState?(V=(new Date).getTime(),na=0):na=(new Date).getTime()-V;this.currentTerminalState=
-g};var ka=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(b){return null!=this.currentTerminalState&&b.getState()==this.currentTerminalState&&2E3<na||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&ka.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(b,d,g){d=null!=b&&0==b;var c=this.state.getVisibleTerminalState(d);b=null!=b&&(0==b||b>=this.state.absolutePoints.length-
+this.secondDiv=null)),d.consume()}};var Q=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);Q.apply(this,arguments)};var V=(new Date).getTime(),oa=0,fa=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(b,d,g,c){fa.apply(this,arguments);g!=this.currentTerminalState?(V=(new Date).getTime(),oa=0):oa=(new Date).getTime()-V;this.currentTerminalState=
+g};var ka=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(b){return null!=this.currentTerminalState&&b.getState()==this.currentTerminalState&&2E3<oa||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&ka.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(b,d,g){d=null!=b&&0==b;var c=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,c,d):null;g=null!=(null!=b?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(d),b):null)?g?this.endFixedHandleImage:this.fixedHandleImage:null!=b&&null!=c?g?this.endTerminalHandleImage:this.terminalHandleImage:g?this.endHandleImage:this.handleImage;if(null!=g)return g=new mxImageShape(new mxRectangle(0,0,g.width,g.height),g.src),g.preserveImageAspect=!1,g;g=mxConstants.HANDLE_SIZE;this.preferHtml&&
--g;return new mxRectangleShape(new mxRectangle(0,0,g,g),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var ra=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(b,d,g){this.handleImage=d==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:d==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return ra.apply(this,arguments)};var la=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(b){if(null!=
b&&1==b.length){var d=this.graph.getModel(),g=d.getParent(b[0]),c=this.graph.getCellGeometry(b[0]);if(d.isEdge(g)&&null!=c&&c.relative&&(d=this.graph.view.getState(b[0]),null!=d&&2>d.width&&2>d.height&&null!=d.text&&null!=d.text.boundingBox))return mxRectangle.fromRectangle(d.text.boundingBox)}return la.apply(this,arguments)};var ja=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var b=ja.apply(this,arguments),d=[],g=0;g<b.length;g++)"1"!=mxUtils.getValue(b[g].style,
-"part","0")&&d.push(b[g]);return d};var ba=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(b){var d=this.graph.getModel(),g=d.getParent(b.cell),c=this.graph.getCellGeometry(b.cell);return d.isEdge(g)&&null!=c&&c.relative&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox?(d=b.text.unrotatedBoundingBox||b.text.boundingBox,new mxRectangle(Math.round(d.x),Math.round(d.y),Math.round(d.width),Math.round(d.height))):ba.apply(this,arguments)};
-var ca=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(b,d){var g=this.graph.getModel(),c=g.getParent(this.state.cell),e=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(d)==mxEvent.ROTATION_HANDLE||!g.isEdge(c)||null==e||!e.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&ca.apply(this,arguments)};mxVertexHandler.prototype.rotateClick=function(){var b=mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),
+"part","0")&&d.push(b[g]);return d};var aa=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(b){var d=this.graph.getModel(),g=d.getParent(b.cell),c=this.graph.getCellGeometry(b.cell);return d.isEdge(g)&&null!=c&&c.relative&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox?(d=b.text.unrotatedBoundingBox||b.text.boundingBox,new mxRectangle(Math.round(d.x),Math.round(d.y),Math.round(d.width),Math.round(d.height))):aa.apply(this,arguments)};
+var ba=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(b,d){var g=this.graph.getModel(),c=g.getParent(this.state.cell),e=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(d)==mxEvent.ROTATION_HANDLE||!g.isEdge(c)||null==e||!e.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&ba.apply(this,arguments)};mxVertexHandler.prototype.rotateClick=function(){var b=mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),
d=mxUtils.getValue(this.state.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);this.state.view.graph.model.isVertex(this.state.cell)&&b==mxConstants.NONE&&d==mxConstants.NONE?(b=mxUtils.mod(mxUtils.getValue(this.state.style,mxConstants.STYLE_ROTATION,0)+90,360),this.state.view.graph.setCellStyles(mxConstants.STYLE_ROTATION,b,[this.state.cell])):this.state.view.graph.turnShapes([this.state.cell])};var R=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(b,d){R.apply(this,
arguments);null!=this.graph.graphHandler.first&&(null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none"),null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none"))};var sa=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(b,d){sa.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");
null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="");this.blockDelayedSelection=null};var W=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){W.apply(this,arguments);var b=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));if(this.graph.isTable(this.state.cell))this.refreshMoveHandles();else if(1==this.graph.getSelectionCount()&&(this.graph.isTableCell(this.state.cell)||this.graph.isTableRow(this.state.cell))){this.cornerHandles=
@@ -2698,14 +2696,14 @@ null!=this.linkHint&&(b=new mxPoint(this.state.getCenterX(),this.state.getCenter
Math.max(0,Math.round(b.x+(b.width-this.linkHint.clientWidth)/2))+"px",this.linkHint.style.top=Math.round(g+this.verticalOffset/2+Editor.hintOffset)+"px")};var T=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){T.apply(this,arguments);if(null!=this.moveHandles){for(var b=0;b<this.moveHandles.length;b++)null!=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 ia=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(ia.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 da=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){da.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var oa=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){oa.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.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(b.y+b.height+Editor.hintOffset)+"px"}};var da=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){da.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var na=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){na.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,g){mxShape.call(this);this.line=b;this.stroke=d;this.strokewidth=null!=g?g:1;this.updateBoundsFromLine()}function c(){mxSwimlane.call(this)}function e(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function f(){mxActor.call(this)}function n(){mxCylinder.call(this)}function t(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function g(){mxCylinder.call(this)}function l(){mxShape.call(this)}function m(){mxShape.call(this)}function p(b,d,g,c){mxShape.call(this);
-this.bounds=b;this.fill=d;this.stroke=g;this.strokewidth=null!=c?c:1}function q(){mxActor.call(this)}function u(){mxCylinder.call(this)}function v(){mxCylinder.call(this)}function y(){mxActor.call(this)}function x(){mxActor.call(this)}function G(){mxActor.call(this)}function H(){mxActor.call(this)}function z(){mxActor.call(this)}function D(){mxActor.call(this)}function L(){mxActor.call(this)}function F(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,F.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,F.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,F.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,F.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,F.prototype.curveTo);this.originalArcTo=
-this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,F.prototype.arcTo)}function J(){mxRectangleShape.call(this)}function C(){mxRectangleShape.call(this)}function K(){mxActor.call(this)}function M(){mxActor.call(this)}function aa(){mxActor.call(this)}function N(){mxRectangleShape.call(this)}function O(){mxRectangleShape.call(this)}function U(){mxCylinder.call(this)}function E(){mxShape.call(this)}function I(){mxShape.call(this)}function A(){mxEllipse.call(this)}function Y(){mxShape.call(this)}function S(){mxShape.call(this)}
-function Q(){mxRectangleShape.call(this)}function V(){mxShape.call(this)}function na(){mxShape.call(this)}function fa(){mxShape.call(this)}function ka(){mxShape.call(this)}function ra(){mxShape.call(this)}function la(){mxCylinder.call(this)}function ja(){mxCylinder.call(this)}function ba(){mxRectangleShape.call(this)}function ca(){mxDoubleEllipse.call(this)}function R(){mxDoubleEllipse.call(this)}function sa(){mxArrowConnector.call(this);this.spacing=0}function W(){mxArrowConnector.call(this);this.spacing=
-0}function X(){mxActor.call(this)}function ma(){mxRectangleShape.call(this)}function qa(){mxActor.call(this)}function T(){mxActor.call(this)}function ia(){mxActor.call(this)}function da(){mxActor.call(this)}function oa(){mxActor.call(this)}function ha(){mxActor.call(this)}function ua(){mxActor.call(this)}function P(){mxActor.call(this)}function ea(){mxActor.call(this)}function ta(){mxActor.call(this)}function ya(){mxEllipse.call(this)}function pa(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}
-function za(){mxRhombus.call(this)}function Ba(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}function Ja(){mxEllipse.call(this)}function Aa(){mxEllipse.call(this)}function Ka(){mxActor.call(this)}function Ca(){mxActor.call(this)}function wa(){mxActor.call(this)}function Z(b,d,g,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=g;this.strokewidth=null!=c?c:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Fa(){mxConnector.call(this)}
+this.bounds=b;this.fill=d;this.stroke=g;this.strokewidth=null!=c?c:1}function q(){mxActor.call(this)}function u(){mxCylinder.call(this)}function v(){mxCylinder.call(this)}function y(){mxActor.call(this)}function x(){mxActor.call(this)}function G(){mxActor.call(this)}function H(){mxActor.call(this)}function z(){mxActor.call(this)}function D(){mxActor.call(this)}function L(){mxActor.call(this)}function E(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,E.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,E.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,E.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,E.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,E.prototype.curveTo);this.originalArcTo=
+this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,E.prototype.arcTo)}function J(){mxRectangleShape.call(this)}function C(){mxRectangleShape.call(this)}function K(){mxActor.call(this)}function N(){mxActor.call(this)}function Z(){mxActor.call(this)}function M(){mxRectangleShape.call(this)}function O(){mxRectangleShape.call(this)}function U(){mxCylinder.call(this)}function F(){mxShape.call(this)}function I(){mxShape.call(this)}function A(){mxEllipse.call(this)}function ca(){mxShape.call(this)}function S(){mxShape.call(this)}
+function Q(){mxRectangleShape.call(this)}function V(){mxShape.call(this)}function oa(){mxShape.call(this)}function fa(){mxShape.call(this)}function ka(){mxShape.call(this)}function ra(){mxShape.call(this)}function la(){mxCylinder.call(this)}function ja(){mxCylinder.call(this)}function aa(){mxRectangleShape.call(this)}function ba(){mxDoubleEllipse.call(this)}function R(){mxDoubleEllipse.call(this)}function sa(){mxArrowConnector.call(this);this.spacing=0}function W(){mxArrowConnector.call(this);this.spacing=
+0}function X(){mxActor.call(this)}function ma(){mxRectangleShape.call(this)}function qa(){mxActor.call(this)}function T(){mxActor.call(this)}function ia(){mxActor.call(this)}function da(){mxActor.call(this)}function na(){mxActor.call(this)}function ha(){mxActor.call(this)}function ua(){mxActor.call(this)}function P(){mxActor.call(this)}function ea(){mxActor.call(this)}function ta(){mxActor.call(this)}function ya(){mxEllipse.call(this)}function pa(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}
+function za(){mxRhombus.call(this)}function Ba(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}function Ja(){mxEllipse.call(this)}function Aa(){mxEllipse.call(this)}function Ka(){mxActor.call(this)}function Ca(){mxActor.call(this)}function wa(){mxActor.call(this)}function Y(b,d,g,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=g;this.strokewidth=null!=c?c:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Fa(){mxConnector.call(this)}
function Na(b,d,g,c,e,f,l,k,m,p){l+=m;var B=c.clone();c.x-=e*(2*l+m);c.y-=f*(2*l+m);e*=l+m;f*=l+m;return function(){b.ellipse(B.x-e-l,B.y-f-l,2*l,2*l);p?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 g=this.line[d];null!=g&&(g=new mxRectangle(g.x,g.y,this.strokewidth,this.strokewidth),null==b?b=g:b.add(g))}this.bounds=null!=b?b:new mxRectangle};b.prototype.paintVertexShape=function(b,
d,g,c,e){this.paintTableLine(b,this.line,0,0)};b.prototype.paintTableLine=function(b,d,g,c){if(null!=d){var e=null;b.begin();for(var B=0;B<d.length;B++){var f=d[B];null!=f&&(null==e?b.moveTo(f.x+g,f.y+c):null!=e&&b.lineTo(f.x+g,f.y+c));e=f}b.end();b.stroke()}};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,g,c,e){0==this.getTitleSize()?mxRectangleShape.prototype.paintBackground.apply(this,arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),b.translate(-d,-g));this.paintForeground(b,d,g,c,e)};c.prototype.paintForeground=function(b,d,g,c,e){if(null!=this.state){var B=this.flipH,f=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)var l=B,B=f,f=l;b.rotate(-this.getShapeRotation(),
@@ -2740,32 +2738,32 @@ function(b,d,g,c){var e=mxUtils.getValue(this.style,"size");return null!=e?c*Mat
function(b,d,g,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c-d,e)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("parallelogram",H);mxUtils.extend(z,
mxActor);z.prototype.size=.2;z.prototype.fixedSize=20;z.prototype.isRoundable=function(){return!0};z.prototype.redrawPath=function(b,d,g,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(d,
0),new mxPoint(c-d,0),new mxPoint(c,e)],this.isRounded,g,!0)};mxCellRenderer.registerShape("trapezoid",z);mxUtils.extend(D,mxActor);D.prototype.size=.5;D.prototype.redrawPath=function(b,d,g,c,e){b.setFillColor(null);d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(c,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(c,e)],this.isRounded,g,!1);b.end()};mxCellRenderer.registerShape("curlyBracket",D);mxUtils.extend(L,mxActor);L.prototype.redrawPath=function(b,d,g,c,e){b.setStrokeWidth(1);b.setFillColor(this.stroke);d=c/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",L);F.prototype.moveTo=function(b,d){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;this.firstX=b;this.firstY=
-d};F.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)};F.prototype.quadTo=function(b,d,g,c){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=g;this.lastY=c};F.prototype.curveTo=function(b,d,g,c,e,f){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=f};F.prototype.arcTo=function(b,d,g,c,e,f,l){this.originalArcTo.apply(this.canvas,
-arguments);this.lastX=f;this.lastY=l};F.prototype.lineTo=function(b,d){if(null!=this.lastX&&null!=this.lastY){var g=function(b){return"number"===typeof b?b?0>b?-1:1:b===b?0:NaN:NaN},c=Math.abs(b-this.lastX),e=Math.abs(d-this.lastY),B=Math.sqrt(c*c+e*e);if(2>B){this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;return}var f=Math.round(B/10),l=this.defaultVariation;5>f&&(f=5,l/=3);for(var k=g(b-this.lastX)*c/f,g=g(d-this.lastY)*e/f,c=c/B,e=e/B,B=0;B<f;B++){var m=(Math.random()-
-.5)*l;this.originalLineTo.call(this.canvas,k*B+this.lastX-m*e,g*B+this.lastY-m*c)}this.originalLineTo.call(this.canvas,b,d)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d};F.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 bb=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(b){bb.apply(this,arguments);null==b.handJiggle&&(b.handJiggle=this.createHandJiggle(b))};var cb=mxShape.prototype.afterPaint;mxShape.prototype.afterPaint=function(b){cb.apply(this,arguments);null!=b.handJiggle&&(b.handJiggle.destroy(),delete b.handJiggle)};mxShape.prototype.createComicCanvas=function(b){return new F(b,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle))};mxShape.prototype.createHandJiggle=function(b){return this.outline||
+e),new mxPoint(c,e)],this.isRounded,g,!1);b.end()};mxCellRenderer.registerShape("curlyBracket",D);mxUtils.extend(L,mxActor);L.prototype.redrawPath=function(b,d,g,c,e){b.setStrokeWidth(1);b.setFillColor(this.stroke);d=c/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",L);E.prototype.moveTo=function(b,d){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;this.firstX=b;this.firstY=
+d};E.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)};E.prototype.quadTo=function(b,d,g,c){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=g;this.lastY=c};E.prototype.curveTo=function(b,d,g,c,e,f){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=f};E.prototype.arcTo=function(b,d,g,c,e,f,l){this.originalArcTo.apply(this.canvas,
+arguments);this.lastX=f;this.lastY=l};E.prototype.lineTo=function(b,d){if(null!=this.lastX&&null!=this.lastY){var g=function(b){return"number"===typeof b?b?0>b?-1:1:b===b?0:NaN:NaN},c=Math.abs(b-this.lastX),e=Math.abs(d-this.lastY),B=Math.sqrt(c*c+e*e);if(2>B){this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;return}var f=Math.round(B/10),l=this.defaultVariation;5>f&&(f=5,l/=3);for(var k=g(b-this.lastX)*c/f,g=g(d-this.lastY)*e/f,c=c/B,e=e/B,B=0;B<f;B++){var m=(Math.random()-
+.5)*l;this.originalLineTo.call(this.canvas,k*B+this.lastX-m*e,g*B+this.lastY-m*c)}this.originalLineTo.call(this.canvas,b,d)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d};E.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 bb=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(b){bb.apply(this,arguments);null==b.handJiggle&&(b.handJiggle=this.createHandJiggle(b))};var cb=mxShape.prototype.afterPaint;mxShape.prototype.afterPaint=function(b){cb.apply(this,arguments);null!=b.handJiggle&&(b.handJiggle.destroy(),delete b.handJiggle)};mxShape.prototype.createComicCanvas=function(b){return new E(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 db=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"))&&db.apply(this,arguments)};var gb=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=
-function(b,d,g,c,e){if(null==b.handJiggle||b.handJiggle.constructor!=F)gb.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)f||null!=this.fill&&this.fill!=mxConstants.NONE||(b.pointerEvents=!1),b.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?f=Math.min(c/2,Math.min(e/2,mxUtils.getValue(this.style,
+function(b,d,g,c,e){if(null==b.handJiggle||b.handJiggle.constructor!=E)gb.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)f||null!=this.fill&&this.fill!=mxConstants.NONE||(b.pointerEvents=!1),b.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?f=Math.min(c/2,Math.min(e/2,mxUtils.getValue(this.style,
mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(c*f,e*f)),b.moveTo(d+f,g),b.lineTo(d+c-f,g),b.quadTo(d+c,g,d+c,g+f),b.lineTo(d+c,g+e-f),b.quadTo(d+c,g+e,d+c-f,g+e),b.lineTo(d+f,g+e),b.quadTo(d,g+e,d,g+e-f),b.lineTo(d,g+f),b.quadTo(d,g,d+f,g)):(b.moveTo(d,g),b.lineTo(d+c,g),b.lineTo(d+c,g+e),b.lineTo(d,g+e),b.lineTo(d,g)),b.close(),b.end(),b.fillAndStroke()}};mxUtils.extend(J,
mxRectangleShape);J.prototype.size=.1;J.prototype.fixedSize=!1;J.prototype.isHtmlAllowed=function(){return!1};J.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,g=b.height;b=new mxRectangle(b.x,b.y,d,g);var c=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,c=Math.max(c,Math.min(d*e,g*e));b.x+=Math.round(c);b.width-=Math.round(2*c)}return b};J.prototype.paintForeground=function(b,d,g,c,e){var f=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),B=parseFloat(mxUtils.getValue(this.style,"size",this.size)),B=f?Math.max(0,Math.min(c,B)):c*Math.max(0,Math.min(1,B));this.isRounded&&(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/
100,B=Math.max(B,Math.min(c*f,e*f)));B=Math.round(B);b.begin();b.moveTo(d+B,g);b.lineTo(d+B,g+e);b.moveTo(d+c-B,g);b.lineTo(d+c-B,g+e);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",J);mxCellRenderer.registerShape("process2",J);mxUtils.extend(C,mxRectangleShape);C.prototype.paintBackground=function(b,d,g,c,e){b.setFillColor(mxConstants.NONE);b.rect(d,g,c,e);b.fill()};C.prototype.paintForeground=function(b,d,g,c,e){};mxCellRenderer.registerShape("transparent",
C);mxUtils.extend(K,mxHexagon);K.prototype.size=30;K.prototype.position=.5;K.prototype.position2=.5;K.prototype.base=20;K.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};K.prototype.isRoundable=function(){return!0};K.prototype.redrawPath=function(b,d,g,c,e){d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",
this.size))));var f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),B=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),l=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(b,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,e-g),new mxPoint(Math.min(c,f+l),e-g),new mxPoint(B,e),new mxPoint(Math.max(0,f),e-g),new mxPoint(0,e-g)],this.isRounded,d,!0,[4])};mxCellRenderer.registerShape("callout",
-K);mxUtils.extend(M,mxActor);M.prototype.size=.2;M.prototype.fixedSize=20;M.prototype.isRoundable=function(){return!0};M.prototype.redrawPath=function(b,d,g,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,
-0),new mxPoint(c-d,0),new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(0,e),new mxPoint(d,e/2)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("step",M);mxUtils.extend(aa,mxHexagon);aa.prototype.size=.25;aa.prototype.fixedSize=20;aa.prototype.isRoundable=function(){return!0};aa.prototype.redrawPath=function(b,d,g,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,.5*e),new mxPoint(c-d,e),new mxPoint(d,e),new mxPoint(0,.5*e)],this.isRounded,g,!0)};mxCellRenderer.registerShape("hexagon",aa);mxUtils.extend(N,mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.prototype.paintForeground=function(b,d,g,c,e){var f=Math.min(c/5,e/5)+1;b.begin();b.moveTo(d+c/2,g+f);b.lineTo(d+c/2,
-g+e-f);b.moveTo(d+f,g+e/2);b.lineTo(d+c-f,g+e/2);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",N);var Za=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=
+K);mxUtils.extend(N,mxActor);N.prototype.size=.2;N.prototype.fixedSize=20;N.prototype.isRoundable=function(){return!0};N.prototype.redrawPath=function(b,d,g,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,
+0),new mxPoint(c-d,0),new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(0,e),new mxPoint(d,e/2)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("step",N);mxUtils.extend(Z,mxHexagon);Z.prototype.size=.25;Z.prototype.fixedSize=20;Z.prototype.isRoundable=function(){return!0};Z.prototype.redrawPath=function(b,d,g,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,.5*e),new mxPoint(c-d,e),new mxPoint(d,e),new mxPoint(0,.5*e)],this.isRounded,g,!0)};mxCellRenderer.registerShape("hexagon",Z);mxUtils.extend(M,mxRectangleShape);M.prototype.isHtmlAllowed=function(){return!1};M.prototype.paintForeground=function(b,d,g,c,e){var f=Math.min(c/5,e/5)+1;b.begin();b.moveTo(d+c/2,g+f);b.lineTo(d+c/2,
+g+e-f);b.moveTo(d+f,g+e/2);b.lineTo(d+c-f,g+e/2);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",M);var Za=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,g,c,e){Za.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);d+=f;g+=f;c-=2*f;e-=2*f;0<c&&0<e&&(b.setShadow(!1),Za.apply(this,[b,d,g,c,e]))}};mxUtils.extend(O,mxRectangleShape);O.prototype.isHtmlAllowed=function(){return!1};O.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};O.prototype.paintForeground=function(b,d,g,c,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var f=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);d+=f;g+=f;c-=2*f;e-=2*f;0<c&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}b.setDashed(!1);var f=0,B;do{B=mxCellRenderer.defaultShapes[this.style["symbol"+f]];if(null!=B){var l=this.style["symbol"+f+"Align"],
-k=this.style["symbol"+f+"VerticalAlign"],m=this.style["symbol"+f+"Width"],p=this.style["symbol"+f+"Height"],q=this.style["symbol"+f+"Spacing"]||0,E=this.style["symbol"+f+"VSpacing"]||q,va=this.style["symbol"+f+"ArcSpacing"];null!=va&&(va*=this.getArcSize(c+this.strokewidth,e+this.strokewidth),q+=va,E+=va);var va=d,Da=g,va=l==mxConstants.ALIGN_CENTER?va+(c-m)/2:l==mxConstants.ALIGN_RIGHT?va+(c-m-q):va+q,Da=k==mxConstants.ALIGN_MIDDLE?Da+(e-p)/2:k==mxConstants.ALIGN_BOTTOM?Da+(e-p-E):Da+E;b.save();
-l=new B;l.style=this.style;B.prototype.paintVertexShape.call(l,b,va,Da,m,p);b.restore()}f++}while(null!=B)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",O);mxUtils.extend(U,mxCylinder);U.prototype.redrawPath=function(b,d,g,c,e,f){f?(b.moveTo(0,0),b.lineTo(c/2,e/2),b.lineTo(c,0),b.end()):(b.moveTo(0,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(0,e),b.close())};mxCellRenderer.registerShape("message",U);mxUtils.extend(E,mxShape);E.prototype.paintBackground=
-function(b,d,g,c,e){b.translate(d,g);b.ellipse(c/4,0,c/2,e/4);b.fillAndStroke();b.begin();b.moveTo(c/2,e/4);b.lineTo(c/2,2*e/3);b.moveTo(c/2,e/3);b.lineTo(0,e/3);b.moveTo(c/2,e/3);b.lineTo(c,e/3);b.moveTo(c/2,2*e/3);b.lineTo(0,e);b.moveTo(c/2,2*e/3);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlActor",E);mxUtils.extend(I,mxShape);I.prototype.getLabelMargins=function(b){return new mxRectangle(b.width/6,0,0,0)};I.prototype.paintBackground=function(b,d,g,c,e){b.translate(d,g);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(c/6,e/2);b.end();b.stroke();b.ellipse(c/6,0,5*c/6,e);b.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",I);mxUtils.extend(A,mxEllipse);A.prototype.paintVertexShape=function(b,d,g,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/8,g+e);b.lineTo(d+7*c/8,g+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",A);mxUtils.extend(Y,mxShape);Y.prototype.paintVertexShape=
-function(b,d,g,c,e){b.translate(d,g);b.begin();b.moveTo(c,0);b.lineTo(0,e);b.moveTo(0,0);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlDestroy",Y);mxUtils.extend(S,mxShape);S.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};S.prototype.paintBackground=function(b,d,g,c,e){b.translate(d,g);b.begin();b.moveTo(3*c/8,e/8*1.1);b.lineTo(5*c/8,0);b.end();b.stroke();b.ellipse(0,e/8,c,7*e/8);b.fillAndStroke()};S.prototype.paintForeground=
+k=this.style["symbol"+f+"VerticalAlign"],m=this.style["symbol"+f+"Width"],p=this.style["symbol"+f+"Height"],q=this.style["symbol"+f+"Spacing"]||0,F=this.style["symbol"+f+"VSpacing"]||q,va=this.style["symbol"+f+"ArcSpacing"];null!=va&&(va*=this.getArcSize(c+this.strokewidth,e+this.strokewidth),q+=va,F+=va);var va=d,Da=g,va=l==mxConstants.ALIGN_CENTER?va+(c-m)/2:l==mxConstants.ALIGN_RIGHT?va+(c-m-q):va+q,Da=k==mxConstants.ALIGN_MIDDLE?Da+(e-p)/2:k==mxConstants.ALIGN_BOTTOM?Da+(e-p-F):Da+F;b.save();
+l=new B;l.style=this.style;B.prototype.paintVertexShape.call(l,b,va,Da,m,p);b.restore()}f++}while(null!=B)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",O);mxUtils.extend(U,mxCylinder);U.prototype.redrawPath=function(b,d,g,c,e,f){f?(b.moveTo(0,0),b.lineTo(c/2,e/2),b.lineTo(c,0),b.end()):(b.moveTo(0,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(0,e),b.close())};mxCellRenderer.registerShape("message",U);mxUtils.extend(F,mxShape);F.prototype.paintBackground=
+function(b,d,g,c,e){b.translate(d,g);b.ellipse(c/4,0,c/2,e/4);b.fillAndStroke();b.begin();b.moveTo(c/2,e/4);b.lineTo(c/2,2*e/3);b.moveTo(c/2,e/3);b.lineTo(0,e/3);b.moveTo(c/2,e/3);b.lineTo(c,e/3);b.moveTo(c/2,2*e/3);b.lineTo(0,e);b.moveTo(c/2,2*e/3);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlActor",F);mxUtils.extend(I,mxShape);I.prototype.getLabelMargins=function(b){return new mxRectangle(b.width/6,0,0,0)};I.prototype.paintBackground=function(b,d,g,c,e){b.translate(d,g);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(c/6,e/2);b.end();b.stroke();b.ellipse(c/6,0,5*c/6,e);b.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",I);mxUtils.extend(A,mxEllipse);A.prototype.paintVertexShape=function(b,d,g,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/8,g+e);b.lineTo(d+7*c/8,g+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",A);mxUtils.extend(ca,mxShape);ca.prototype.paintVertexShape=
+function(b,d,g,c,e){b.translate(d,g);b.begin();b.moveTo(c,0);b.lineTo(0,e);b.moveTo(0,0);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlDestroy",ca);mxUtils.extend(S,mxShape);S.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};S.prototype.paintBackground=function(b,d,g,c,e){b.translate(d,g);b.begin();b.moveTo(3*c/8,e/8*1.1);b.lineTo(5*c/8,0);b.end();b.stroke();b.ellipse(0,e/8,c,7*e/8);b.fillAndStroke()};S.prototype.paintForeground=
function(b,d,g,c,e){b.begin();b.moveTo(3*c/8,e/8*1.1);b.lineTo(5*c/8,e/4);b.end();b.stroke()};mxCellRenderer.registerShape("umlControl",S);mxUtils.extend(Q,mxRectangleShape);Q.prototype.size=40;Q.prototype.isHtmlAllowed=function(){return!1};Q.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)};Q.prototype.paintBackground=function(b,d,g,c,e){var f=Math.max(0,Math.min(e,
-parseFloat(mxUtils.getValue(this.style,"size",this.size)))),l=mxUtils.getValue(this.style,"participant");null==l||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,b,d,g,c,f):(l=this.state.view.graph.cellRenderer.getShape(l),null!=l&&l!=Q&&(l=new l,l.apply(this.state),b.save(),l.paintVertexShape(b,d,g,c,f),b.restore()));f<e&&(b.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),b.begin(),b.moveTo(d+c/2,g+f),b.lineTo(d+c/2,g+e),b.end(),b.stroke())};Q.prototype.paintForeground=
+parseFloat(mxUtils.getValue(this.style,"size",this.size)))),B=mxUtils.getValue(this.style,"participant");null==B||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,b,d,g,c,f):(B=this.state.view.graph.cellRenderer.getShape(B),null!=B&&B!=Q&&(B=new B,B.apply(this.state),b.save(),B.paintVertexShape(b,d,g,c,f),b.restore()));f<e&&(b.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),b.begin(),b.moveTo(d+c/2,g+f),b.lineTo(d+c/2,g+e),b.end(),b.stroke())};Q.prototype.paintForeground=
function(b,d,g,c,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,b,d,g,c,Math.min(e,f))};mxCellRenderer.registerShape("umlLifeline",Q);mxUtils.extend(V,mxShape);V.prototype.width=60;V.prototype.height=30;V.prototype.corner=10;V.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))};V.prototype.paintBackground=function(b,d,g,c,e){var f=this.corner,l=Math.min(c,Math.max(f,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),B=Math.min(e,Math.max(1.5*f,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),k=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);k!=mxConstants.NONE&&(b.setFillColor(k),b.rect(d,g,c,e),b.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=
mxConstants.NONE?(this.getGradientBounds(b,d,g,c,e),b.setGradient(this.fill,this.gradient,d,g,c,e,this.gradientDirection)):b.setFillColor(this.fill);b.begin();b.moveTo(d,g);b.lineTo(d+l,g);b.lineTo(d+l,g+Math.max(0,B-1.5*f));b.lineTo(d+Math.max(0,l-f),g+B);b.lineTo(d,g+B);b.close();b.fillAndStroke();b.begin();b.moveTo(d+l,g);b.lineTo(d+c,g);b.lineTo(d+c,g+e);b.lineTo(d,g+e);b.lineTo(d,g+B);b.stroke()};mxCellRenderer.registerShape("umlFrame",V);mxPerimeter.CenterPerimeter=function(b,d,g,c){return new mxPoint(b.getCenterX(),
@@ -2776,19 +2774,19 @@ d,g,c)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter
(e=e?Math.max(0,Math.min(m,f)):m*Math.max(0,Math.min(1,f)),B=[new mxPoint(l,B),new mxPoint(l+k,B+e),new mxPoint(l+k,B+m),new mxPoint(l,B+m-e),new mxPoint(l,B)]):(e=e?Math.max(0,Math.min(.5*k,f)):k*Math.max(0,Math.min(1,f)),B=[new mxPoint(l+e,B),new mxPoint(l+k,B),new mxPoint(l+k-e,B+m),new mxPoint(l,B+m),new mxPoint(l+e,B)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(g.x<l||g.x>l+k?b.y=g.y:b.x=g.x);return mxUtils.getPerimeterPoint(B,b,g)};mxStyleRegistry.putValue("parallelogramPerimeter",
mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(b,d,g,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),f=e?z.prototype.fixedSize:z.prototype.size;null!=d&&(f=mxUtils.getValue(d.style,"size",f));e&&(f*=d.view.scale);var l=b.x,B=b.y,k=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*k,f)):k*Math.max(0,Math.min(1,f)),B=[new mxPoint(l+
e,B),new mxPoint(l+k-e,B),new mxPoint(l+k,B+m),new mxPoint(l,B+m),new mxPoint(l+e,B)]):d==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),B=[new mxPoint(l,B),new mxPoint(l+k,B),new mxPoint(l+k-e,B+m),new mxPoint(l+e,B+m),new mxPoint(l,B)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(m,f)):m*Math.max(0,Math.min(1,f)),B=[new mxPoint(l,B+e),new mxPoint(l+k,B),new mxPoint(l+k,B+m),new mxPoint(l,B+m-e),new mxPoint(l,B+e)]):(e=e?Math.max(0,Math.min(m,f)):
-m*Math.max(0,Math.min(1,f)),B=[new mxPoint(l,B),new mxPoint(l+k,B+e),new mxPoint(l+k,B+m-e),new mxPoint(l,B+m),new mxPoint(l,B)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(g.x<l||g.x>l+k?b.y=g.y:b.x=g.x);return mxUtils.getPerimeterPoint(B,b,g)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(b,d,g,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),f=e?M.prototype.fixedSize:M.prototype.size;null!=d&&(f=mxUtils.getValue(d.style,
+m*Math.max(0,Math.min(1,f)),B=[new mxPoint(l,B),new mxPoint(l+k,B+e),new mxPoint(l+k,B+m-e),new mxPoint(l,B+m),new mxPoint(l,B)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(g.x<l||g.x>l+k?b.y=g.y:b.x=g.x);return mxUtils.getPerimeterPoint(B,b,g)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(b,d,g,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),f=e?N.prototype.fixedSize:N.prototype.size;null!=d&&(f=mxUtils.getValue(d.style,
"size",f));e&&(f*=d.view.scale);var l=b.x,B=b.y,k=b.width,m=b.height,p=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(k,f)):k*Math.max(0,Math.min(1,f)),B=[new mxPoint(l,B),new mxPoint(l+k-e,B),new mxPoint(l+k,b),new mxPoint(l+k-e,B+m),new mxPoint(l,B+m),new mxPoint(l+e,b),new mxPoint(l,B)]):d==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,
f)):k*Math.max(0,Math.min(1,f)),B=[new mxPoint(l+e,B),new mxPoint(l+k,B),new mxPoint(l+k-e,b),new mxPoint(l+k,B+m),new mxPoint(l+e,B+m),new mxPoint(l,b),new mxPoint(l+e,B)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(m,f)):m*Math.max(0,Math.min(1,f)),B=[new mxPoint(l,B+e),new mxPoint(p,B),new mxPoint(l+k,B+e),new mxPoint(l+k,B+m),new mxPoint(p,B+m-e),new mxPoint(l,B+m),new mxPoint(l,B+e)]):(e=e?Math.max(0,Math.min(m,f)):m*Math.max(0,Math.min(1,f)),B=[new mxPoint(l,B),new mxPoint(p,B+
-e),new mxPoint(l+k,B),new mxPoint(l+k,B+m-e),new mxPoint(p,B+m),new mxPoint(l,B+m-e),new mxPoint(l,B)]);p=new mxPoint(p,b);c&&(g.x<l||g.x>l+k?p.y=g.y:p.x=g.x);return mxUtils.getPerimeterPoint(B,p,g)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(b,d,g,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),f=e?aa.prototype.fixedSize:aa.prototype.size;null!=d&&(f=mxUtils.getValue(d.style,"size",f));e&&(f*=d.view.scale);var l=b.x,B=b.y,k=
-b.width,m=b.height,p=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,f)):m*Math.max(0,Math.min(1,f)),B=[new mxPoint(p,B),new mxPoint(l+k,B+e),new mxPoint(l+k,B+m-e),new mxPoint(p,B+m),new mxPoint(l,B+m-e),new mxPoint(l,B+e),new mxPoint(p,B)]):(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),B=[new mxPoint(l+
-e,B),new mxPoint(l+k-e,B),new mxPoint(l+k,b),new mxPoint(l+k-e,B+m),new mxPoint(l+e,B+m),new mxPoint(l,b),new mxPoint(l+e,B)]);p=new mxPoint(p,b);c&&(g.x<l||g.x>l+k?p.y=g.y:p.x=g.x);return mxUtils.getPerimeterPoint(B,p,g)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(na,mxShape);na.prototype.size=10;na.prototype.paintBackground=function(b,d,g,c,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size));b.translate(d,g);b.ellipse((c-f)/2,0,f,f);
-b.fillAndStroke();b.begin();b.moveTo(c/2,f);b.lineTo(c/2,e);b.end();b.stroke()};mxCellRenderer.registerShape("lollipop",na);mxUtils.extend(fa,mxShape);fa.prototype.size=10;fa.prototype.inset=2;fa.prototype.paintBackground=function(b,d,g,c,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),l=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(d,g);b.begin();b.moveTo(c/2,f+l);b.lineTo(c/2,e);b.end();b.stroke();b.begin();b.moveTo((c-f)/2-l,f/2);b.quadTo((c-
+e),new mxPoint(l+k,B),new mxPoint(l+k,B+m-e),new mxPoint(p,B+m),new mxPoint(l,B+m-e),new mxPoint(l,B)]);p=new mxPoint(p,b);c&&(g.x<l||g.x>l+k?p.y=g.y:p.x=g.x);return mxUtils.getPerimeterPoint(B,p,g)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(b,d,g,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),f=e?Z.prototype.fixedSize:Z.prototype.size;null!=d&&(f=mxUtils.getValue(d.style,"size",f));e&&(f*=d.view.scale);var l=b.x,B=b.y,k=b.width,
+m=b.height,p=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,f)):m*Math.max(0,Math.min(1,f)),B=[new mxPoint(p,B),new mxPoint(l+k,B+e),new mxPoint(l+k,B+m-e),new mxPoint(p,B+m),new mxPoint(l,B+m-e),new mxPoint(l,B+e),new mxPoint(p,B)]):(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),B=[new mxPoint(l+
+e,B),new mxPoint(l+k-e,B),new mxPoint(l+k,b),new mxPoint(l+k-e,B+m),new mxPoint(l+e,B+m),new mxPoint(l,b),new mxPoint(l+e,B)]);p=new mxPoint(p,b);c&&(g.x<l||g.x>l+k?p.y=g.y:p.x=g.x);return mxUtils.getPerimeterPoint(B,p,g)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(oa,mxShape);oa.prototype.size=10;oa.prototype.paintBackground=function(b,d,g,c,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size));b.translate(d,g);b.ellipse((c-f)/2,0,f,f);
+b.fillAndStroke();b.begin();b.moveTo(c/2,f);b.lineTo(c/2,e);b.end();b.stroke()};mxCellRenderer.registerShape("lollipop",oa);mxUtils.extend(fa,mxShape);fa.prototype.size=10;fa.prototype.inset=2;fa.prototype.paintBackground=function(b,d,g,c,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),l=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(d,g);b.begin();b.moveTo(c/2,f+l);b.lineTo(c/2,e);b.end();b.stroke();b.begin();b.moveTo((c-f)/2-l,f/2);b.quadTo((c-
f)/2-l,f+l,c/2,f+l);b.quadTo((c+f)/2+l,f+l,(c+f)/2+l,f/2);b.end();b.stroke()};mxCellRenderer.registerShape("requires",fa);mxUtils.extend(ka,mxShape);ka.prototype.paintBackground=function(b,d,g,c,e){b.translate(d,g);b.begin();b.moveTo(0,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,0,e);b.end();b.stroke()};mxCellRenderer.registerShape("requiredInterface",ka);mxUtils.extend(ra,mxShape);ra.prototype.inset=2;ra.prototype.paintBackground=function(b,d,g,c,e){var f=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+
this.strokewidth;b.translate(d,g);b.ellipse(0,f,c-2*f,e-2*f);b.fillAndStroke();b.begin();b.moveTo(c/2,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,c/2,e);b.end();b.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",ra);mxUtils.extend(la,mxCylinder);la.prototype.jettyWidth=20;la.prototype.jettyHeight=10;la.prototype.redrawPath=function(b,d,g,c,e,f){var l=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));
g=l/2;var l=g+l/2,B=Math.min(d,e-d),k=Math.min(B+2*d,e-d);f?(b.moveTo(g,B),b.lineTo(l,B),b.lineTo(l,B+d),b.lineTo(g,B+d),b.moveTo(g,k),b.lineTo(l,k),b.lineTo(l,k+d),b.lineTo(g,k+d)):(b.moveTo(g,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(g,e),b.lineTo(g,k+d),b.lineTo(0,k+d),b.lineTo(0,k),b.lineTo(g,k),b.lineTo(g,B+d),b.lineTo(0,B+d),b.lineTo(0,B),b.lineTo(g,B),b.close());b.end()};mxCellRenderer.registerShape("module",la);mxUtils.extend(ja,mxCylinder);ja.prototype.jettyWidth=32;ja.prototype.jettyHeight=
12;ja.prototype.redrawPath=function(b,d,g,c,e,f){var l=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));g=l/2;var l=g+l/2,B=.3*e-d/2,k=.7*e-d/2;f?(b.moveTo(g,B),b.lineTo(l,B),b.lineTo(l,B+d),b.lineTo(g,B+d),b.moveTo(g,k),b.lineTo(l,k),b.lineTo(l,k+d),b.lineTo(g,k+d)):(b.moveTo(g,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(g,e),b.lineTo(g,k+d),b.lineTo(0,k+d),b.lineTo(0,k),b.lineTo(g,k),b.lineTo(g,B+d),b.lineTo(0,
-B+d),b.lineTo(0,B),b.lineTo(g,B),b.close());b.end()};mxCellRenderer.registerShape("component",ja);mxUtils.extend(ba,mxRectangleShape);ba.prototype.paintForeground=function(b,d,g,c,e){var f=c/2,l=e/2,B=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b.begin();this.addPoints(b,[new mxPoint(d+f,g),new mxPoint(d+c,g+l),new mxPoint(d+f,g+e),new mxPoint(d,g+l)],this.isRounded,B,!0);b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",
-ba);mxUtils.extend(ca,mxDoubleEllipse);ca.prototype.outerStroke=!0;ca.prototype.paintVertexShape=function(b,d,g,c,e){var f=Math.min(4,Math.min(c/5,e/5));0<c&&0<e&&(b.ellipse(d+f,g+f,c-2*f,e-2*f),b.fillAndStroke());b.setShadow(!1);this.outerStroke&&(b.ellipse(d,g,c,e),b.stroke())};mxCellRenderer.registerShape("endState",ca);mxUtils.extend(R,ca);R.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",R);mxUtils.extend(sa,mxArrowConnector);sa.prototype.defaultWidth=4;sa.prototype.isOpenEnded=
+B+d),b.lineTo(0,B),b.lineTo(g,B),b.close());b.end()};mxCellRenderer.registerShape("component",ja);mxUtils.extend(aa,mxRectangleShape);aa.prototype.paintForeground=function(b,d,g,c,e){var f=c/2,l=e/2,B=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b.begin();this.addPoints(b,[new mxPoint(d+f,g),new mxPoint(d+c,g+l),new mxPoint(d+f,g+e),new mxPoint(d,g+l)],this.isRounded,B,!0);b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",
+aa);mxUtils.extend(ba,mxDoubleEllipse);ba.prototype.outerStroke=!0;ba.prototype.paintVertexShape=function(b,d,g,c,e){var f=Math.min(4,Math.min(c/5,e/5));0<c&&0<e&&(b.ellipse(d+f,g+f,c-2*f,e-2*f),b.fillAndStroke());b.setShadow(!1);this.outerStroke&&(b.ellipse(d,g,c,e),b.stroke())};mxCellRenderer.registerShape("endState",ba);mxUtils.extend(R,ba);R.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",R);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(W,mxArrowConnector);W.prototype.defaultWidth=10;W.prototype.defaultArrowWidth=20;W.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};W.prototype.getEndArrowWidth=
function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};W.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",W);mxUtils.extend(X,mxActor);X.prototype.size=30;X.prototype.isRoundable=function(){return!0};X.prototype.redrawPath=function(b,d,g,c,e){d=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));g=mxUtils.getValue(this.style,
mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(0,d),new mxPoint(c,0),new mxPoint(c,e)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("manualInput",X);mxUtils.extend(ma,mxRectangleShape);ma.prototype.dx=20;ma.prototype.dy=20;ma.prototype.isHtmlAllowed=function(){return!1};ma.prototype.paintForeground=function(b,d,g,c,e){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var f=0;if(this.isRounded)var l=mxUtils.getValue(this.style,
@@ -2797,8 +2795,8 @@ mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.
mxCellRenderer.registerShape("corner",qa);mxUtils.extend(T,mxActor);T.prototype.redrawPath=function(b,d,g,c,e){b.moveTo(0,0);b.lineTo(0,e);b.end();b.moveTo(c,0);b.lineTo(c,e);b.end();b.moveTo(0,e/2);b.lineTo(c,e/2);b.end()};mxCellRenderer.registerShape("crossbar",T);mxUtils.extend(ia,mxActor);ia.prototype.dx=20;ia.prototype.dy=20;ia.prototype.redrawPath=function(b,d,g,c,e){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,
"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,g),new mxPoint((c+d)/2,g),new mxPoint((c+d)/2,e),new mxPoint((c-d)/2,e),new mxPoint((c-d)/2,g),new mxPoint(0,g)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("tee",ia);mxUtils.extend(da,mxActor);da.prototype.arrowWidth=.3;da.prototype.arrowSize=.2;da.prototype.redrawPath=
function(b,d,g,c,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));g=(e-f)/2;var f=g+f,l=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,g),new mxPoint(c-d,g),new mxPoint(c-d,0),new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(c-d,f),new mxPoint(0,f)],this.isRounded,l,!0);b.end()};mxCellRenderer.registerShape("singleArrow",
-da);mxUtils.extend(oa,mxActor);oa.prototype.redrawPath=function(b,d,g,c,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",da.prototype.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",da.prototype.arrowSize))));g=(e-f)/2;var f=g+f,l=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e/2),new mxPoint(d,0),new mxPoint(d,g),new mxPoint(c-d,g),new mxPoint(c-d,0),
-new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(c-d,f),new mxPoint(d,f),new mxPoint(d,e)],this.isRounded,l,!0);b.end()};mxCellRenderer.registerShape("doubleArrow",oa);mxUtils.extend(ha,mxActor);ha.prototype.size=.1;ha.prototype.fixedSize=20;ha.prototype.redrawPath=function(b,d,g,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));
+da);mxUtils.extend(na,mxActor);na.prototype.redrawPath=function(b,d,g,c,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",da.prototype.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",da.prototype.arrowSize))));g=(e-f)/2;var f=g+f,l=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e/2),new mxPoint(d,0),new mxPoint(d,g),new mxPoint(c-d,g),new mxPoint(c-d,0),
+new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(c-d,f),new mxPoint(d,f),new mxPoint(d,e)],this.isRounded,l,!0);b.end()};mxCellRenderer.registerShape("doubleArrow",na);mxUtils.extend(ha,mxActor);ha.prototype.size=.1;ha.prototype.fixedSize=20;ha.prototype.redrawPath=function(b,d,g,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));
b.moveTo(d,0);b.lineTo(c,0);b.quadTo(c-2*d,e/2,c,e);b.lineTo(d,e);b.quadTo(d-2*d,e/2,d,0);b.close();b.end()};mxCellRenderer.registerShape("dataStorage",ha);mxUtils.extend(ua,mxActor);ua.prototype.redrawPath=function(b,d,g,c,e){b.moveTo(0,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,0,e);b.close();b.end()};mxCellRenderer.registerShape("or",ua);mxUtils.extend(P,mxActor);P.prototype.redrawPath=function(b,d,g,c,e){b.moveTo(0,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,0,e);b.quadTo(c/2,e/2,0,0);b.close();b.end()};mxCellRenderer.registerShape("xor",
P);mxUtils.extend(ea,mxActor);ea.prototype.size=20;ea.prototype.isRoundable=function(){return!0};ea.prototype.redrawPath=function(b,d,g,c,e){d=Math.min(c/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,.8*d),new mxPoint(c,e),new mxPoint(0,e),new mxPoint(0,.8*d)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("loopLimit",
ea);mxUtils.extend(ta,mxActor);ta.prototype.size=.375;ta.prototype.isRoundable=function(){return!0};ta.prototype.redrawPath=function(b,d,g,c,e){d=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,e-d),new mxPoint(c/2,e),new mxPoint(0,e-d)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("offPageConnector",
@@ -2806,21 +2804,21 @@ ta);mxUtils.extend(ya,mxEllipse);ya.prototype.paintVertexShape=function(b,d,g,c,
b.lineTo(d+c/2,g+e);b.end();b.stroke()};mxCellRenderer.registerShape("orEllipse",pa);mxUtils.extend(xa,mxEllipse);xa.prototype.paintVertexShape=function(b,d,g,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d+.145*c,g+.145*e);b.lineTo(d+.855*c,g+.855*e);b.end();b.stroke();b.begin();b.moveTo(d+.855*c,g+.145*e);b.lineTo(d+.145*c,g+.855*e);b.end();b.stroke()};mxCellRenderer.registerShape("sumEllipse",xa);mxUtils.extend(za,mxRhombus);za.prototype.paintVertexShape=
function(b,d,g,c,e){mxRhombus.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d,g+e/2);b.lineTo(d+c,g+e/2);b.end();b.stroke()};mxCellRenderer.registerShape("sortShape",za);mxUtils.extend(Ba,mxEllipse);Ba.prototype.paintVertexShape=function(b,d,g,c,e){b.begin();b.moveTo(d,g);b.lineTo(d+c,g);b.lineTo(d+c/2,g+e/2);b.close();b.fillAndStroke();b.begin();b.moveTo(d,g+e);b.lineTo(d+c,g+e);b.lineTo(d+c/2,g+e/2);b.close();b.fillAndStroke()};mxCellRenderer.registerShape("collate",
Ba);mxUtils.extend(Ea,mxEllipse);Ea.prototype.paintVertexShape=function(b,d,g,c,e){var f=g+e-5;b.begin();b.moveTo(d,g);b.lineTo(d,g+e);b.moveTo(d,f);b.lineTo(d+10,f-5);b.moveTo(d,f);b.lineTo(d+10,f+5);b.moveTo(d,f);b.lineTo(d+c,f);b.moveTo(d+c,g);b.lineTo(d+c,g+e);b.moveTo(d+c,f);b.lineTo(d+c-10,f-5);b.moveTo(d+c,f);b.lineTo(d+c-10,f+5);b.end();b.stroke()};mxCellRenderer.registerShape("dimension",Ea);mxUtils.extend(Ja,mxEllipse);Ja.prototype.paintVertexShape=function(b,d,g,c,e){this.outline||b.setStrokeColor(null);
-if(null!=this.style){var f=b.pointerEvents;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=this.fill&&this.fill!=mxConstants.NONE||(b.pointerEvents=!1);b.rect(d,g,c,e);b.fill();b.pointerEvents=f;b.setStrokeColor(this.stroke);b.begin();b.moveTo(d,g);this.outline||"1"==mxUtils.getValue(this.style,"top","1")?b.lineTo(d+c,g):b.moveTo(d+c,g);this.outline||"1"==mxUtils.getValue(this.style,"right","1")?b.lineTo(d+c,g+e):b.moveTo(d+c,g+e);this.outline||"1"==mxUtils.getValue(this.style,
-"bottom","1")?b.lineTo(d,g+e):b.moveTo(d,g+e);(this.outline||"1"==mxUtils.getValue(this.style,"left","1"))&&b.lineTo(d,g);b.end();b.stroke()}};mxCellRenderer.registerShape("partialRectangle",Ja);mxUtils.extend(Aa,mxEllipse);Aa.prototype.paintVertexShape=function(b,d,g,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();"vertical"==mxUtils.getValue(this.style,"line")?(b.moveTo(d+c/2,g),b.lineTo(d+c/2,g+e)):(b.moveTo(d,g+e/2),b.lineTo(d+c,g+e/2));b.end();b.stroke()};
-mxCellRenderer.registerShape("lineEllipse",Aa);mxUtils.extend(Ka,mxActor);Ka.prototype.redrawPath=function(b,d,g,c,e){d=Math.min(c,e/2);b.moveTo(0,0);b.lineTo(c-d,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,c-d,e);b.lineTo(0,e);b.close();b.end()};mxCellRenderer.registerShape("delay",Ka);mxUtils.extend(Ca,mxActor);Ca.prototype.size=.2;Ca.prototype.redrawPath=function(b,d,g,c,e){d=Math.min(e,c);var f=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=(e-f)/2;g=d+f;var l=(c-
-f)/2,f=l+f;b.moveTo(0,d);b.lineTo(l,d);b.lineTo(l,0);b.lineTo(f,0);b.lineTo(f,d);b.lineTo(c,d);b.lineTo(c,g);b.lineTo(f,g);b.lineTo(f,e);b.lineTo(l,e);b.lineTo(l,g);b.lineTo(0,g);b.close();b.end()};mxCellRenderer.registerShape("cross",Ca);mxUtils.extend(wa,mxActor);wa.prototype.size=.25;wa.prototype.redrawPath=function(b,d,g,c,e){d=Math.min(c,e/2);g=Math.min(c-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);b.moveTo(0,e/2);b.lineTo(g,0);b.lineTo(c-d,0);b.quadTo(c,0,c,e/
-2);b.quadTo(c,e,c-d,e);b.lineTo(g,e);b.close();b.end()};mxCellRenderer.registerShape("display",wa);mxUtils.extend(Z,mxActor);Z.prototype.cst={RECT2:"mxgraph.basic.rect"};Z.prototype.customProperties=[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"size",dispName:"Corner Size",type:"float",defVal:10},{name:"absoluteCornerSize",
-dispName:"Abs. Corner Size",type:"bool",defVal:!0},{name:"indent",dispName:"Indent",type:"float",defVal:2},{name:"rectOutline",dispName:"Outline",type:"enum",defVal:"single",enumList:[{val:"single",dispName:"Single"},{val:"double",dispName:"Double"},{val:"frame",dispName:"Frame"}]},{name:"fillColor2",dispName:"Inside Fill Color",type:"color",defVal:"none"},{name:"gradientColor2",dispName:"Inside Gradient Color",type:"color",defVal:"none"},{name:"gradientDirection2",dispName:"Inside Gradient Direction",
-type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",dispName:"West"},{val:"north",dispName:"North"},{val:"east",dispName:"East"}]},{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left ",type:"bool",defVal:!0},{name:"topLeftStyle",dispName:"Top Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},
-{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",
+if(null!=this.style){var f=b.pointerEvents;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=this.fill&&this.fill!=mxConstants.NONE||(b.pointerEvents=!1);b.rect(d,g,c,e);b.fill();b.pointerEvents=f;b.setStrokeColor(this.stroke);b.setLineCap("square");b.begin();b.moveTo(d,g);this.outline||"1"==mxUtils.getValue(this.style,"top","1")?b.lineTo(d+c,g):b.moveTo(d+c,g);this.outline||"1"==mxUtils.getValue(this.style,"right","1")?b.lineTo(d+c,g+e):b.moveTo(d+c,g+e);this.outline||
+"1"==mxUtils.getValue(this.style,"bottom","1")?b.lineTo(d,g+e):b.moveTo(d,g+e);(this.outline||"1"==mxUtils.getValue(this.style,"left","1"))&&b.lineTo(d,g);b.end();b.stroke();b.setLineCap("flat")}};mxCellRenderer.registerShape("partialRectangle",Ja);mxUtils.extend(Aa,mxEllipse);Aa.prototype.paintVertexShape=function(b,d,g,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();"vertical"==mxUtils.getValue(this.style,"line")?(b.moveTo(d+c/2,g),b.lineTo(d+c/2,g+e)):
+(b.moveTo(d,g+e/2),b.lineTo(d+c,g+e/2));b.end();b.stroke()};mxCellRenderer.registerShape("lineEllipse",Aa);mxUtils.extend(Ka,mxActor);Ka.prototype.redrawPath=function(b,d,g,c,e){d=Math.min(c,e/2);b.moveTo(0,0);b.lineTo(c-d,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,c-d,e);b.lineTo(0,e);b.close();b.end()};mxCellRenderer.registerShape("delay",Ka);mxUtils.extend(Ca,mxActor);Ca.prototype.size=.2;Ca.prototype.redrawPath=function(b,d,g,c,e){d=Math.min(e,c);var f=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));d=(e-f)/2;g=d+f;var l=(c-f)/2,f=l+f;b.moveTo(0,d);b.lineTo(l,d);b.lineTo(l,0);b.lineTo(f,0);b.lineTo(f,d);b.lineTo(c,d);b.lineTo(c,g);b.lineTo(f,g);b.lineTo(f,e);b.lineTo(l,e);b.lineTo(l,g);b.lineTo(0,g);b.close();b.end()};mxCellRenderer.registerShape("cross",Ca);mxUtils.extend(wa,mxActor);wa.prototype.size=.25;wa.prototype.redrawPath=function(b,d,g,c,e){d=Math.min(c,e/2);g=Math.min(c-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);b.moveTo(0,e/2);b.lineTo(g,
+0);b.lineTo(c-d,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,c-d,e);b.lineTo(g,e);b.close();b.end()};mxCellRenderer.registerShape("display",wa);mxUtils.extend(Y,mxActor);Y.prototype.cst={RECT2:"mxgraph.basic.rect"};Y.prototype.customProperties=[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"size",dispName:"Corner Size",
+type:"float",defVal:10},{name:"absoluteCornerSize",dispName:"Abs. Corner Size",type:"bool",defVal:!0},{name:"indent",dispName:"Indent",type:"float",defVal:2},{name:"rectOutline",dispName:"Outline",type:"enum",defVal:"single",enumList:[{val:"single",dispName:"Single"},{val:"double",dispName:"Double"},{val:"frame",dispName:"Frame"}]},{name:"fillColor2",dispName:"Inside Fill Color",type:"color",defVal:"none"},{name:"gradientColor2",dispName:"Inside Gradient Color",type:"color",defVal:"none"},{name:"gradientDirection2",
+dispName:"Inside Gradient Direction",type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",dispName:"West"},{val:"north",dispName:"North"},{val:"east",dispName:"East"}]},{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left ",type:"bool",defVal:!0},{name:"topLeftStyle",dispName:"Top Left Style",type:"enum",defVal:"default",enumList:[{val:"default",
+dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",
type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",
-dispName:"Fold"}]}];Z.prototype.paintVertexShape=function(b,d,g,c,e){b.translate(d,g);this.strictDrawShape(b,0,0,c,e)};Z.prototype.strictDrawShape=function(b,d,g,c,e,f){var l=f&&f.rectStyle?f.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=f&&f.absoluteCornerSize?f.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),m=f&&f.size?f.size:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),p=f&&f.rectOutline?f.rectOutline:
-mxUtils.getValue(this.style,"rectOutline",this.rectOutline),q=f&&f.indent?f.indent:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),E=f&&f.dashed?f.dashed:mxUtils.getValue(this.style,"dashed",!1),B=f&&f.dashPattern?f.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),v=f&&f.relIndent?f.relIndent:Math.max(0,Math.min(50,q)),u=f&&f.top?f.top:mxUtils.getValue(this.style,"top",!0),A=f&&f.right?f.right:mxUtils.getValue(this.style,"right",!0),n=f&&f.bottom?f.bottom:
+dispName:"Fold"}]}];Y.prototype.paintVertexShape=function(b,d,g,c,e){b.translate(d,g);this.strictDrawShape(b,0,0,c,e)};Y.prototype.strictDrawShape=function(b,d,g,c,e,f){var l=f&&f.rectStyle?f.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=f&&f.absoluteCornerSize?f.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),m=f&&f.size?f.size:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),p=f&&f.rectOutline?f.rectOutline:
+mxUtils.getValue(this.style,"rectOutline",this.rectOutline),q=f&&f.indent?f.indent:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),F=f&&f.dashed?f.dashed:mxUtils.getValue(this.style,"dashed",!1),B=f&&f.dashPattern?f.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),v=f&&f.relIndent?f.relIndent:Math.max(0,Math.min(50,q)),u=f&&f.top?f.top:mxUtils.getValue(this.style,"top",!0),A=f&&f.right?f.right:mxUtils.getValue(this.style,"right",!0),n=f&&f.bottom?f.bottom:
mxUtils.getValue(this.style,"bottom",!0),x=f&&f.left?f.left:mxUtils.getValue(this.style,"left",!0),I=f&&f.topLeftStyle?f.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),t=f&&f.topRightStyle?f.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),y=f&&f.bottomRightStyle?f.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),z=f&&f.bottomLeftStyle?f.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),S=f&&f.fillColor?f.fillColor:
-mxUtils.getValue(this.style,"fillColor","#ffffff");f&&f.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var C=f&&f.strokeWidth?f.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),Y=f&&f.fillColor2?f.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),N=f&&f.gradientColor2?f.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),V=f&&f.gradientDirection2?f.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),Da=f&&f.opacity?f.opacity:
-mxUtils.getValue(this.style,"opacity","100"),va=Math.max(0,Math.min(50,m));f=Z.prototype;b.setDashed(E);B&&""!=B&&b.setDashPattern(B);b.setStrokeWidth(C);m=Math.min(.5*e,.5*c,m);k||(m=va*Math.min(c,e)/100);m=Math.min(m,.5*Math.min(c,e));k||(q=Math.min(v*Math.min(c,e)/100));q=Math.min(q,.5*Math.min(c,e)-m);(u||A||n||x)&&"frame"!=p&&(b.begin(),u?f.moveNW(b,d,g,c,e,l,I,m,x):b.moveTo(0,0),u&&f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,A),A&&f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,
-c,e,l,y,m,n),n&&f.paintSE(b,d,g,c,e,l,y,m,A),f.paintBottom(b,d,g,c,e,l,z,m,x),x&&f.paintSW(b,d,g,c,e,l,z,m,n),f.paintLeft(b,d,g,c,e,l,I,m,u),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(Y),E=k=Da,"none"==Y&&(k=0),"none"==N&&(E=0),b.setGradient(Y,N,0,0,c,e,V,k,E),b.begin(),u?f.moveNWInner(b,d,g,c,e,l,I,m,q,u,x):b.moveTo(q,0),f.paintLeftInner(b,d,g,c,e,l,z,m,q,n,x),x&&n&&f.paintSWInner(b,d,g,c,e,l,z,m,q,n),f.paintBottomInner(b,d,g,c,e,l,y,m,q,A,n),n&&A&&f.paintSEInner(b,d,g,c,e,l,y,m,q),f.paintRightInner(b,
+mxUtils.getValue(this.style,"fillColor","#ffffff");f&&f.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var C=f&&f.strokeWidth?f.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),M=f&&f.fillColor2?f.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),ca=f&&f.gradientColor2?f.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),V=f&&f.gradientDirection2?f.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),Da=f&&f.opacity?f.opacity:
+mxUtils.getValue(this.style,"opacity","100"),va=Math.max(0,Math.min(50,m));f=Y.prototype;b.setDashed(F);B&&""!=B&&b.setDashPattern(B);b.setStrokeWidth(C);m=Math.min(.5*e,.5*c,m);k||(m=va*Math.min(c,e)/100);m=Math.min(m,.5*Math.min(c,e));k||(q=Math.min(v*Math.min(c,e)/100));q=Math.min(q,.5*Math.min(c,e)-m);(u||A||n||x)&&"frame"!=p&&(b.begin(),u?f.moveNW(b,d,g,c,e,l,I,m,x):b.moveTo(0,0),u&&f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,A),A&&f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,
+c,e,l,y,m,n),n&&f.paintSE(b,d,g,c,e,l,y,m,A),f.paintBottom(b,d,g,c,e,l,z,m,x),x&&f.paintSW(b,d,g,c,e,l,z,m,n),f.paintLeft(b,d,g,c,e,l,I,m,u),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(M),F=k=Da,"none"==M&&(k=0),"none"==ca&&(F=0),b.setGradient(M,ca,0,0,c,e,V,k,F),b.begin(),u?f.moveNWInner(b,d,g,c,e,l,I,m,q,u,x):b.moveTo(q,0),f.paintLeftInner(b,d,g,c,e,l,z,m,q,n,x),x&&n&&f.paintSWInner(b,d,g,c,e,l,z,m,q,n),f.paintBottomInner(b,d,g,c,e,l,y,m,q,A,n),n&&A&&f.paintSEInner(b,d,g,c,e,l,y,m,q),f.paintRightInner(b,
d,g,c,e,l,t,m,q,u,A),A&&u&&f.paintNEInner(b,d,g,c,e,l,t,m,q),f.paintTopInner(b,d,g,c,e,l,I,m,q,x,u),u&&x&&f.paintNWInner(b,d,g,c,e,l,I,m,q),b.fill(),"none"==S&&(b.begin(),f.paintFolds(b,d,g,c,e,l,I,t,y,z,m,u,A,n,x),b.stroke()));u||A||n||!x?u||A||!n||x?!u&&!A&&n&&x?"frame"!=p?(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,A),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,n),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==p&&(f.moveNWInner(b,d,g,c,e,l,I,m,q,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,q,n,x),f.paintSWInner(b,
d,g,c,e,l,z,m,q,n),f.paintBottomInner(b,d,g,c,e,l,y,m,q,A,n)),b.stroke()):(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,A),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,n),f.paintLeft(b,d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,q,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,q,n,x),f.paintSWInner(b,d,g,c,e,l,z,m,q,n),f.paintBottomInner(b,d,g,c,e,l,y,m,q,A,n),b.close(),b.fillAndStroke()):u||!A||n||x?!u&&A&&!n&&x?"frame"!=p?(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,n),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==
p&&(f.moveNWInner(b,d,g,c,e,l,I,m,q,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,q,n,x)),b.stroke(),b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,n),"double"==p&&(f.moveSEInner(b,d,g,c,e,l,y,m,q,n),f.paintRightInner(b,d,g,c,e,l,t,m,q,u,A)),b.stroke()):(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,n),f.paintLeft(b,d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,q,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,q,n,x),b.close(),b.fillAndStroke(),b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,
@@ -2842,31 +2840,31 @@ e,l,z,m,q,n,x),b.close()),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.p
e,l,t,m,q,u,A),f.paintNEInner(b,d,g,c,e,l,t,m,q),f.paintTopInner(b,d,g,c,e,l,I,m,q,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,q),f.paintLeftInner(b,d,g,c,e,l,z,m,q,n,x),b.close(),b.fillAndStroke())):"frame"!=p?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,A),"double"==p&&(f.moveNEInner(b,d,g,c,e,l,t,m,q,A),f.paintTopInner(b,d,g,c,e,l,I,m,q,x,u)),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,A),f.lineNEInner(b,d,g,c,e,l,t,m,q,A),f.paintTopInner(b,d,g,c,
e,l,I,m,q,x,u),b.close(),b.fillAndStroke()):"frame"!=p?(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,n),"double"==p&&(f.moveSEInner(b,d,g,c,e,l,y,m,q,n),f.paintRightInner(b,d,g,c,e,l,t,m,q,u,A)),b.stroke()):(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,n),f.lineSEInner(b,d,g,c,e,l,y,m,q,n),f.paintRightInner(b,d,g,c,e,l,t,m,q,u,A),b.close(),b.fillAndStroke()):"frame"!=p?(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,A),f.paintBottom(b,d,g,c,e,l,z,m,x),"double"==p&&
(f.moveSWInner(b,d,g,c,e,l,z,m,q,x),f.paintBottomInner(b,d,g,c,e,l,y,m,q,A,n)),b.stroke()):(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,A),f.paintBottom(b,d,g,c,e,l,z,m,x),f.lineSWInner(b,d,g,c,e,l,z,m,q,x),f.paintBottomInner(b,d,g,c,e,l,y,m,q,A,n),b.close(),b.fillAndStroke()):"frame"!=p?(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,n),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==p&&(f.moveNWInner(b,d,g,c,e,l,I,m,q,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,q,n,x)),b.stroke()):(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,n),f.paintLeft(b,
-d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,q,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,q,n,x),b.close(),b.fillAndStroke());b.begin();f.paintFolds(b,d,g,c,e,l,I,t,y,z,m,u,A,n,x);b.stroke()};Z.prototype.moveNW=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(0,0):b.moveTo(0,m)};Z.prototype.moveNE=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(c,0):b.moveTo(c-m,0)};Z.prototype.moveSE=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&
-"square"==f||!k?b.moveTo(c,e):b.moveTo(c,e-m)};Z.prototype.moveSW=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(0,e):b.moveTo(m,e)};Z.prototype.paintNW=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,m,0)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(m,0);else b.lineTo(0,0)};Z.prototype.paintTop=
-function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.lineTo(c,0):b.lineTo(c-m,0)};Z.prototype.paintNE=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,c,m)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c,m);else b.lineTo(c,0)};Z.prototype.paintRight=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==
-l&&"square"==f||!k?b.lineTo(c,e):b.lineTo(c,e-m)};Z.prototype.paintLeft=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.lineTo(0,0):b.lineTo(0,m)};Z.prototype.paintSE=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,c-m,e)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-m,e);else b.lineTo(c,
-e)};Z.prototype.paintBottom=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.lineTo(0,e):b.lineTo(m,e)};Z.prototype.paintSW=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,0,e-m)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(0,e-m);else b.lineTo(0,e)};Z.prototype.paintNWInner=function(b,d,g,
-c,e,f,l,m,k){if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,k,.5*k+m);else if("invRound"==l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,k,k+m);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(k,.5*k+m);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(k+m,k+m),b.lineTo(k,k+m)};Z.prototype.paintTopInner=function(b,d,g,c,e,f,l,m,k,q,p){q||p?!q&&p?b.lineTo(0,k):q&&!p?b.lineTo(k,0):q?"square"==l||"default"==l&&"square"==f?b.lineTo(k,k):"rounded"==l||"default"==l&&
-"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(m+.5*k,k):b.lineTo(m+k,k):b.lineTo(0,k):b.lineTo(0,0)};Z.prototype.paintNEInner=function(b,d,g,c,e,f,l,m,k){if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-m-.5*k,k);else if("invRound"==l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,c-m-k,k);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(c-m-.5*k,k);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(c-m-k,m+k),b.lineTo(c-m-k,k)};Z.prototype.paintRightInner=
-function(b,d,g,c,e,f,l,m,k,q,p){q||p?!q&&p?b.lineTo(c-k,0):q&&!p?b.lineTo(c,k):q?"square"==l||"default"==l&&"square"==f?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-k,m+.5*k):b.lineTo(c-k,m+k):b.lineTo(c-k,0):b.lineTo(c,0)};Z.prototype.paintLeftInner=function(b,d,g,c,e,f,l,m,k,q,p){q||p?!q&&p?b.lineTo(k,e):q&&!p?b.lineTo(0,e-k):q?"square"==l||"default"==l&&"square"==f?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==
-l&&"snip"==f?b.lineTo(k,e-m-.5*k):b.lineTo(k,e-m-k):b.lineTo(k,e):b.lineTo(0,e)};Z.prototype.paintSEInner=function(b,d,g,c,e,f,l,m,k){if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-k,e-m-.5*k);else if("invRound"==l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,c-k,e-m-k);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(c-k,e-m-.5*k);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(c-m-k,e-m-k),b.lineTo(c-k,e-m-k)};Z.prototype.paintBottomInner=function(b,d,g,c,
-e,f,l,m,k,q,p){q||p?!q&&p?b.lineTo(c,e-k):q&&!p?b.lineTo(c-k,e):"square"==l||"default"==l&&"square"==f||!q?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-m-.5*k,e-k):b.lineTo(c-m-k,e-k):b.lineTo(c,e)};Z.prototype.paintSWInner=function(b,d,g,c,e,f,l,m,k,q){if(!q)b.lineTo(k,e);else if("square"==l||"default"==l&&"square"==f)b.lineTo(k,e-k);else if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,m+.5*k,e-k);else if("invRound"==
-l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,m+k,e-k);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(m+.5*k,e-k);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(k+m,e-m-k),b.lineTo(k+m,e-k)};Z.prototype.moveSWInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.moveTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(k,
-e-m-k):b.moveTo(0,e-k)};Z.prototype.lineSWInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(k,e-m-k):b.lineTo(0,e-k)};Z.prototype.moveSEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.moveTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==
-f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(c-k,e-m-k):b.moveTo(c-k,e)};Z.prototype.lineSEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-k,e-m-k):b.lineTo(c-
-k,e)};Z.prototype.moveNEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f||q?b.moveTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(c-k,m+k):b.moveTo(c,k)};Z.prototype.lineNEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f||q?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==
-l&&"snip"==f?b.lineTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-k,m+k):b.lineTo(c,k)};Z.prototype.moveNWInner=function(b,d,g,c,e,f,l,m,k,q,p){q||p?!q&&p?b.moveTo(k,0):q&&!p?b.moveTo(0,k):"square"==l||"default"==l&&"square"==f?b.moveTo(k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(k,m+k):b.moveTo(0,
-0)};Z.prototype.lineNWInner=function(b,d,g,c,e,f,l,m,k,q,p){q||p?!q&&p?b.lineTo(k,0):q&&!p?b.lineTo(0,k):"square"==l||"default"==l&&"square"==f?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(k,m+k):b.lineTo(0,0)};Z.prototype.paintFolds=function(b,d,g,c,e,f,l,m,k,q,p,E,u,A,n){if("fold"==f||"fold"==l||"fold"==m||"fold"==k||"fold"==q)("fold"==l||"default"==
-l&&"fold"==f)&&E&&n&&(b.moveTo(0,p),b.lineTo(p,p),b.lineTo(p,0)),("fold"==m||"default"==m&&"fold"==f)&&E&&u&&(b.moveTo(c-p,0),b.lineTo(c-p,p),b.lineTo(c,p)),("fold"==k||"default"==k&&"fold"==f)&&A&&u&&(b.moveTo(c-p,e),b.lineTo(c-p,e-p),b.lineTo(c,e-p)),("fold"==q||"default"==q&&"fold"==f)&&A&&n&&(b.moveTo(0,e-p),b.lineTo(p,e-p),b.lineTo(p,e))};mxCellRenderer.registerShape(Z.prototype.cst.RECT2,Z);Z.prototype.constraints=null;mxUtils.extend(Fa,mxConnector);Fa.prototype.origPaintEdgeShape=Fa.prototype.paintEdgeShape;
+d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,q,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,q,n,x),b.close(),b.fillAndStroke());b.begin();f.paintFolds(b,d,g,c,e,l,I,t,y,z,m,u,A,n,x);b.stroke()};Y.prototype.moveNW=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(0,0):b.moveTo(0,m)};Y.prototype.moveNE=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(c,0):b.moveTo(c-m,0)};Y.prototype.moveSE=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&
+"square"==f||!k?b.moveTo(c,e):b.moveTo(c,e-m)};Y.prototype.moveSW=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(0,e):b.moveTo(m,e)};Y.prototype.paintNW=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,m,0)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(m,0);else b.lineTo(0,0)};Y.prototype.paintTop=
+function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.lineTo(c,0):b.lineTo(c-m,0)};Y.prototype.paintNE=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,c,m)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c,m);else b.lineTo(c,0)};Y.prototype.paintRight=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==
+l&&"square"==f||!k?b.lineTo(c,e):b.lineTo(c,e-m)};Y.prototype.paintLeft=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.lineTo(0,0):b.lineTo(0,m)};Y.prototype.paintSE=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,c-m,e)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-m,e);else b.lineTo(c,
+e)};Y.prototype.paintBottom=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.lineTo(0,e):b.lineTo(m,e)};Y.prototype.paintSW=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,0,e-m)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(0,e-m);else b.lineTo(0,e)};Y.prototype.paintNWInner=function(b,d,g,
+c,e,f,l,m,k){if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,k,.5*k+m);else if("invRound"==l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,k,k+m);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(k,.5*k+m);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(k+m,k+m),b.lineTo(k,k+m)};Y.prototype.paintTopInner=function(b,d,g,c,e,f,l,m,k,q,p){q||p?!q&&p?b.lineTo(0,k):q&&!p?b.lineTo(k,0):q?"square"==l||"default"==l&&"square"==f?b.lineTo(k,k):"rounded"==l||"default"==l&&
+"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(m+.5*k,k):b.lineTo(m+k,k):b.lineTo(0,k):b.lineTo(0,0)};Y.prototype.paintNEInner=function(b,d,g,c,e,f,l,m,k){if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-m-.5*k,k);else if("invRound"==l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,c-m-k,k);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(c-m-.5*k,k);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(c-m-k,m+k),b.lineTo(c-m-k,k)};Y.prototype.paintRightInner=
+function(b,d,g,c,e,f,l,m,k,q,p){q||p?!q&&p?b.lineTo(c-k,0):q&&!p?b.lineTo(c,k):q?"square"==l||"default"==l&&"square"==f?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-k,m+.5*k):b.lineTo(c-k,m+k):b.lineTo(c-k,0):b.lineTo(c,0)};Y.prototype.paintLeftInner=function(b,d,g,c,e,f,l,m,k,q,p){q||p?!q&&p?b.lineTo(k,e):q&&!p?b.lineTo(0,e-k):q?"square"==l||"default"==l&&"square"==f?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==
+l&&"snip"==f?b.lineTo(k,e-m-.5*k):b.lineTo(k,e-m-k):b.lineTo(k,e):b.lineTo(0,e)};Y.prototype.paintSEInner=function(b,d,g,c,e,f,l,m,k){if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-k,e-m-.5*k);else if("invRound"==l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,c-k,e-m-k);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(c-k,e-m-.5*k);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(c-m-k,e-m-k),b.lineTo(c-k,e-m-k)};Y.prototype.paintBottomInner=function(b,d,g,c,
+e,f,l,m,k,q,p){q||p?!q&&p?b.lineTo(c,e-k):q&&!p?b.lineTo(c-k,e):"square"==l||"default"==l&&"square"==f||!q?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-m-.5*k,e-k):b.lineTo(c-m-k,e-k):b.lineTo(c,e)};Y.prototype.paintSWInner=function(b,d,g,c,e,f,l,m,k,q){if(!q)b.lineTo(k,e);else if("square"==l||"default"==l&&"square"==f)b.lineTo(k,e-k);else if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,m+.5*k,e-k);else if("invRound"==
+l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,m+k,e-k);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(m+.5*k,e-k);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(k+m,e-m-k),b.lineTo(k+m,e-k)};Y.prototype.moveSWInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.moveTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(k,
+e-m-k):b.moveTo(0,e-k)};Y.prototype.lineSWInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(k,e-m-k):b.lineTo(0,e-k)};Y.prototype.moveSEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.moveTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==
+f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(c-k,e-m-k):b.moveTo(c-k,e)};Y.prototype.lineSEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-k,e-m-k):b.lineTo(c-
+k,e)};Y.prototype.moveNEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f||q?b.moveTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(c-k,m+k):b.moveTo(c,k)};Y.prototype.lineNEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f||q?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==
+l&&"snip"==f?b.lineTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-k,m+k):b.lineTo(c,k)};Y.prototype.moveNWInner=function(b,d,g,c,e,f,l,m,k,q,p){q||p?!q&&p?b.moveTo(k,0):q&&!p?b.moveTo(0,k):"square"==l||"default"==l&&"square"==f?b.moveTo(k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(k,m+k):b.moveTo(0,
+0)};Y.prototype.lineNWInner=function(b,d,g,c,e,f,l,m,k,q,p){q||p?!q&&p?b.lineTo(k,0):q&&!p?b.lineTo(0,k):"square"==l||"default"==l&&"square"==f?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(k,m+k):b.lineTo(0,0)};Y.prototype.paintFolds=function(b,d,g,c,e,f,l,m,k,q,p,F,u,A,n){if("fold"==f||"fold"==l||"fold"==m||"fold"==k||"fold"==q)("fold"==l||"default"==
+l&&"fold"==f)&&F&&n&&(b.moveTo(0,p),b.lineTo(p,p),b.lineTo(p,0)),("fold"==m||"default"==m&&"fold"==f)&&F&&u&&(b.moveTo(c-p,0),b.lineTo(c-p,p),b.lineTo(c,p)),("fold"==k||"default"==k&&"fold"==f)&&A&&u&&(b.moveTo(c-p,e),b.lineTo(c-p,e-p),b.lineTo(c,e-p)),("fold"==q||"default"==q&&"fold"==f)&&A&&n&&(b.moveTo(0,e-p),b.lineTo(p,e-p),b.lineTo(p,e))};mxCellRenderer.registerShape(Y.prototype.cst.RECT2,Y);Y.prototype.constraints=null;mxUtils.extend(Fa,mxConnector);Fa.prototype.origPaintEdgeShape=Fa.prototype.paintEdgeShape;
Fa.prototype.paintEdgeShape=function(b,d,g){for(var c=[],e=0;e<d.length;e++)c.push(mxUtils.clone(d[e]));var e=b.state.dashed,f=b.state.fixDash;Fa.prototype.origPaintEdgeShape.apply(this,[b,c,g]);3<=b.state.strokeWidth&&(c=mxUtils.getValue(this.style,"fillColor",null),null!=c&&(b.setStrokeColor(c),b.setStrokeWidth(b.state.strokeWidth-2),b.setDashed(e,f),Fa.prototype.origPaintEdgeShape.apply(this,[b,d,g])))};mxCellRenderer.registerShape("filledEdge",Fa);"undefined"!==typeof StyleFormatPanel&&function(){var b=
-StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var d=this.format.getSelectionState(),g=b.apply(this,arguments);"umlFrame"==d.style.shape&&g.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return g}}();mxMarker.addMarker("dash",function(b,d,g,c,e,f,l,m,k,q){var p=e*(l+k+1),E=f*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-E/2,c.y-E/2+p/2);b.lineTo(c.x+E/2-3*p/2,c.y-3*E/2-p/2);b.stroke()}});mxMarker.addMarker("box",
-function(b,d,g,c,e,f,l,m,k,q){var p=e*(l+k+1),E=f*(l+k+1),u=c.x+p/2,A=c.y+E/2;c.x-=p;c.y-=E;return function(){b.begin();b.moveTo(u-p/2-E/2,A-E/2+p/2);b.lineTo(u-p/2+E/2,A-E/2-p/2);b.lineTo(u+E/2-3*p/2,A-3*E/2-p/2);b.lineTo(u-E/2-3*p/2,A-3*E/2+p/2);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,g,c,e,f,l,m,k,q){var p=e*(l+k+1),E=f*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-E/2,c.y-E/2+p/2);b.lineTo(c.x+E/2-3*p/2,c.y-3*E/2-p/2);b.moveTo(c.x-p/2+E/2,c.y-
-E/2-p/2);b.lineTo(c.x-E/2-3*p/2,c.y-3*E/2+p/2);b.stroke()}});mxMarker.addMarker("circle",Na);mxMarker.addMarker("circlePlus",function(b,d,g,c,e,f,l,m,k,q){var p=c.clone(),E=Na.apply(this,arguments),u=e*(l+2*k),A=f*(l+2*k);return function(){E.apply(this,arguments);b.begin();b.moveTo(p.x-e*k,p.y-f*k);b.lineTo(p.x-2*u+e*k,p.y-2*A+f*k);b.moveTo(p.x-u-A+f*k,p.y-A+u-e*k);b.lineTo(p.x+A-u-f*k,p.y-A-u+e*k);b.stroke()}});mxMarker.addMarker("halfCircle",function(b,d,g,c,e,f,l,m,k,q){var p=e*(l+k+1),E=f*(l+
-k+1),u=c.clone();c.x-=p;c.y-=E;return function(){b.begin();b.moveTo(u.x-E,u.y+p);b.quadTo(c.x-E,c.y+p,c.x,c.y);b.quadTo(c.x+E,c.y-p,u.x+E,u.y-p);b.stroke()}});mxMarker.addMarker("async",function(b,d,g,c,e,f,l,m,k,q){d=e*k*1.118;g=f*k*1.118;e*=l+k;f*=l+k;var p=c.clone();p.x-=d;p.y-=g;c.x+=1*-e-d;c.y+=1*-f-g;return function(){b.begin();b.moveTo(p.x,p.y);m?b.lineTo(p.x-e-f/2,p.y-f+e/2):b.lineTo(p.x+f/2-e,p.y-f-e/2);b.lineTo(p.x-e,p.y-f);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",
-function(b){b=null!=b?b:2;return function(d,g,c,e,f,l,m,k,p,q){f*=m+p;l*=m+p;var E=e.clone();return function(){d.begin();d.moveTo(E.x,E.y);k?d.lineTo(E.x-f-l/b,E.y-l+f/b):d.lineTo(E.x+l/b-f,E.y-l-f/b);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var $a=function(b,d,g){return Ma(b,["width"],d,function(d,c,e,f,l){l=b.shape.getEdgeWidth()*b.view.scale+g;return new mxPoint(f.x+c*d/4+e*l/2,f.y+e*d/4-c*l/2)},function(d,c,e,f,l,m){d=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,l.x,l.y,m.x,m.y));b.style.width=
-Math.round(2*d)/b.view.scale-g})},Ma=function(b,d,g,c,e){return ga(b,d,function(d){var e=b.absolutePoints,f=e.length-1;d=b.view.translate;var l=b.view.scale,m=g?e[0]:e[f],e=g?e[1]:e[f-1],f=e.x-m.x,k=e.y-m.y,p=Math.sqrt(f*f+k*k),m=c.call(this,p,f/p,k/p,m,e);return new mxPoint(m.x/l-d.x,m.y/l-d.y)},function(d,c,f){var l=b.absolutePoints,m=l.length-1;d=b.view.translate;var k=b.view.scale,p=g?l[0]:l[m],l=g?l[1]:l[m-1],m=l.x-p.x,q=l.y-p.y,E=Math.sqrt(m*m+q*q);c.x=(c.x+d.x)*k;c.y=(c.y+d.y)*k;e.call(this,
-E,m/E,q/E,p,l,c,f)})},Ha=function(b){return function(d){return[ga(d,["arrowWidth","arrowSize"],function(d){var g=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",da.prototype.arrowWidth))),c=Math.max(0,Math.min(b,mxUtils.getValue(this.state.style,"arrowSize",da.prototype.arrowSize)));return new mxPoint(d.x+(1-c)*d.width,d.y+(1-g)*d.height/2)},function(d,g){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(d.y+d.height/2-g.y)/d.height*2));this.state.style.arrowSize=Math.max(0,
+StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var d=this.format.getSelectionState(),g=b.apply(this,arguments);"umlFrame"==d.style.shape&&g.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return g}}();mxMarker.addMarker("dash",function(b,d,g,c,e,f,l,m,k,q){var p=e*(l+k+1),F=f*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-F/2,c.y-F/2+p/2);b.lineTo(c.x+F/2-3*p/2,c.y-3*F/2-p/2);b.stroke()}});mxMarker.addMarker("box",
+function(b,d,g,c,e,f,l,m,k,q){var p=e*(l+k+1),F=f*(l+k+1),u=c.x+p/2,A=c.y+F/2;c.x-=p;c.y-=F;return function(){b.begin();b.moveTo(u-p/2-F/2,A-F/2+p/2);b.lineTo(u-p/2+F/2,A-F/2-p/2);b.lineTo(u+F/2-3*p/2,A-3*F/2-p/2);b.lineTo(u-F/2-3*p/2,A-3*F/2+p/2);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,g,c,e,f,l,m,k,q){var p=e*(l+k+1),F=f*(l+k+1);return function(){b.begin();b.moveTo(c.x-p/2-F/2,c.y-F/2+p/2);b.lineTo(c.x+F/2-3*p/2,c.y-3*F/2-p/2);b.moveTo(c.x-p/2+F/2,c.y-
+F/2-p/2);b.lineTo(c.x-F/2-3*p/2,c.y-3*F/2+p/2);b.stroke()}});mxMarker.addMarker("circle",Na);mxMarker.addMarker("circlePlus",function(b,d,g,c,e,f,l,m,k,q){var p=c.clone(),F=Na.apply(this,arguments),u=e*(l+2*k),A=f*(l+2*k);return function(){F.apply(this,arguments);b.begin();b.moveTo(p.x-e*k,p.y-f*k);b.lineTo(p.x-2*u+e*k,p.y-2*A+f*k);b.moveTo(p.x-u-A+f*k,p.y-A+u-e*k);b.lineTo(p.x+A-u-f*k,p.y-A-u+e*k);b.stroke()}});mxMarker.addMarker("halfCircle",function(b,d,g,c,e,f,l,m,k,q){var p=e*(l+k+1),F=f*(l+
+k+1),u=c.clone();c.x-=p;c.y-=F;return function(){b.begin();b.moveTo(u.x-F,u.y+p);b.quadTo(c.x-F,c.y+p,c.x,c.y);b.quadTo(c.x+F,c.y-p,u.x+F,u.y-p);b.stroke()}});mxMarker.addMarker("async",function(b,d,g,c,e,f,l,m,k,q){d=e*k*1.118;g=f*k*1.118;e*=l+k;f*=l+k;var p=c.clone();p.x-=d;p.y-=g;c.x+=1*-e-d;c.y+=1*-f-g;return function(){b.begin();b.moveTo(p.x,p.y);m?b.lineTo(p.x-e-f/2,p.y-f+e/2):b.lineTo(p.x+f/2-e,p.y-f-e/2);b.lineTo(p.x-e,p.y-f);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",
+function(b){b=null!=b?b:2;return function(d,g,c,e,f,l,m,k,p,q){f*=m+p;l*=m+p;var F=e.clone();return function(){d.begin();d.moveTo(F.x,F.y);k?d.lineTo(F.x-f-l/b,F.y-l+f/b):d.lineTo(F.x+l/b-f,F.y-l-f/b);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var $a=function(b,d,g){return Ma(b,["width"],d,function(d,c,e,f,l){l=b.shape.getEdgeWidth()*b.view.scale+g;return new mxPoint(f.x+c*d/4+e*l/2,f.y+e*d/4-c*l/2)},function(d,c,e,f,l,m){d=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,l.x,l.y,m.x,m.y));b.style.width=
+Math.round(2*d)/b.view.scale-g})},Ma=function(b,d,g,c,e){return ga(b,d,function(d){var e=b.absolutePoints,f=e.length-1;d=b.view.translate;var l=b.view.scale,m=g?e[0]:e[f],e=g?e[1]:e[f-1],f=e.x-m.x,k=e.y-m.y,p=Math.sqrt(f*f+k*k),m=c.call(this,p,f/p,k/p,m,e);return new mxPoint(m.x/l-d.x,m.y/l-d.y)},function(d,c,f){var l=b.absolutePoints,m=l.length-1;d=b.view.translate;var k=b.view.scale,p=g?l[0]:l[m],l=g?l[1]:l[m-1],m=l.x-p.x,q=l.y-p.y,F=Math.sqrt(m*m+q*q);c.x=(c.x+d.x)*k;c.y=(c.y+d.y)*k;e.call(this,
+F,m/F,q/F,p,l,c,f)})},Ha=function(b){return function(d){return[ga(d,["arrowWidth","arrowSize"],function(d){var g=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",da.prototype.arrowWidth))),c=Math.max(0,Math.min(b,mxUtils.getValue(this.state.style,"arrowSize",da.prototype.arrowSize)));return new mxPoint(d.x+(1-c)*d.width,d.y+(1-g)*d.height/2)},function(d,g){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(d.y+d.height/2-g.y)/d.height*2));this.state.style.arrowSize=Math.max(0,
Math.min(b,(d.x+d.width-g.x)/d.width))})]}},Xa=function(b){return function(d){return[ga(d,["size"],function(d){var g=Math.max(0,Math.min(.5*d.height,parseFloat(mxUtils.getValue(this.state.style,"size",b))));return new mxPoint(d.x,d.y+g)},function(b,d){this.state.style.size=Math.max(0,d.y-b.y)},!0)]}},Va=function(b,d,g){return function(c){var e=[ga(c,["size"],function(g){var c=Math.max(0,Math.min(g.width,Math.min(g.height,parseFloat(mxUtils.getValue(this.state.style,"size",d)))))*b;return new mxPoint(g.x+
c,g.y+c)},function(d,g){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(d.width,g.x-d.x),Math.min(d.height,g.y-d.y)))/b)},!1)];g&&mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(Ga(c));return e}},Oa=function(b,d,g,c,e){g=null!=g?g:.5;return function(f){var l=[ga(f,["size"],function(d){var g=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,c=parseFloat(mxUtils.getValue(this.state.style,"size",g?e:b));return new mxPoint(d.x+Math.max(0,Math.min(.5*d.width,
c*(g?1:d.width))),d.getCenterY())},function(b,d,c){b=null!=e&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?d.x-b.x:Math.max(0,Math.min(g,(d.x-b.x)/b.width));this.state.style.size=b},!1,c)];d&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&l.push(Ga(f));return l}},Ya=function(b,d,g){b=null!=b?b:.5;return function(c){var e=[ga(c,["size"],function(c){var e=null!=g?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,f=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,
@@ -2903,11 +2901,11 @@ d){this.state.style.dx=Math.round(Math.max(0,2*Math.min(b.width/2,d.x-b.x-b.widt
"size",G.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",x.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",l.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:Xa(m.prototype.size),cylinder3:Xa(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",ta.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(aa.prototype.size,!0,.5,!0,aa.prototype.fixedSize),curlyBracket:Oa(D.prototype.size,!1),display:Oa(wa.prototype.size,!1),cube:Va(1,
+["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(N.prototype.size,!0,null,!0,N.prototype.fixedSize),hexagon:Oa(Z.prototype.size,!0,.5,!0,Z.prototype.fixedSize),curlyBracket:Oa(D.prototype.size,!1),display:Oa(wa.prototype.size,!1),cube:Va(1,
e.prototype.size,!1),card:Va(.5,y.prototype.size,!0),loopLimit:Va(.5,ea.prototype.size,!0),trapezoid:Ya(.5,z.prototype.size,z.prototype.fixedSize),parallelogram:Ya(1,H.prototype.size,H.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),Ha=mxUtils.toRadians(-30),Qa=mxUtils.getRotatedPoint(Qa,Math.cos(Ha),Math.sin(Ha)),Ha=mxUtils.toRadians(-150),Ra=mxUtils.getRotatedPoint(Ra,Math.cos(Ha),Math.sin(Ha));mxEdgeStyle.IsometricConnector=function(b,d,g,c,e){var f=b.view;c=null!=c&&0<c.length?c[0]:null;var l=b.absolutePoints,m=l[0],l=l[l.length-1];null!=c&&(c=f.transformControlPoint(b,c));null==
-m&&null!=d&&(m=new mxPoint(d.getCenterX(),d.getCenterY()));null==l&&null!=g&&(l=new mxPoint(g.getCenterX(),g.getCenterY()));var k=Qa.x,p=Qa.y,q=Ra.x,E=Ra.y,u="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=l&&null!=m){b=function(b,d,g){b-=A.x;var c=d-A.y;d=(E*b-q*c)/(k*E-p*q);b=(p*b-k*c)/(p*q-k*E);u?(g&&(A=new mxPoint(A.x+k*d,A.y+p*d),e.push(A)),A=new mxPoint(A.x+q*b,A.y+E*b)):(g&&(A=new mxPoint(A.x+q*b,A.y+E*b),e.push(A)),A=new mxPoint(A.x+k*d,A.y+p*d));e.push(A)};var A=m;null==
+m&&null!=d&&(m=new mxPoint(d.getCenterX(),d.getCenterY()));null==l&&null!=g&&(l=new mxPoint(g.getCenterX(),g.getCenterY()));var k=Qa.x,p=Qa.y,q=Ra.x,F=Ra.y,u="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=l&&null!=m){b=function(b,d,g){b-=A.x;var c=d-A.y;d=(F*b-q*c)/(k*F-p*q);b=(p*b-k*c)/(p*q-k*F);u?(g&&(A=new mxPoint(A.x+k*d,A.y+p*d),e.push(A)),A=new mxPoint(A.x+q*b,A.y+F*b)):(g&&(A=new mxPoint(A.x+q*b,A.y+F*b),e.push(A)),A=new mxPoint(A.x+k*d,A.y+p*d));e.push(A)};var A=m;null==
c&&(c=new mxPoint(m.x+(l.x-m.x)/2,m.y+(l.y-m.y)/2));b(c.x,c.y,!0);b(l.x,l.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var fb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(b,d){if(d==mxEdgeStyle.IsometricConnector){var g=new mxElbowEdgeHandler(b);g.snapToTerminals=!1;return g}return fb.apply(this,arguments)};f.prototype.constraints=[];n.prototype.getConstraints=function(b,d,g){b=[];var c=Math.tan(mxUtils.toRadians(30)),e=(.5-
c)/2,c=Math.min(d,g/(.5+c));d=(d-c)/2;g=(g-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,g+c*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,g+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,g+.75*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,g+(1-e)*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g+.75*c));return b};l.prototype.getConstraints=
function(b,d,g){b=[];var c=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,c=Math.min(d*Math.tan(c),.5*g);b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g-c));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
@@ -2916,7 +2914,7 @@ function(b,d,g){b=[];var c=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(
d,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(g-c)));d>=2*c&&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,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,
1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];Ja.prototype.constraints=mxRectangleShape.prototype.constraints;
-mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;N.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;d.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
+mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;M.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;d.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,.5*(d-c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*c,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(g+c)));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
.5),!1));d>=2*c&&b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return b};y.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,0,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(g+c)));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));d>=2*c&&b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return b};e.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,Math.min(g,parseFloat(mxUtils.getValue(this.style,
@@ -2933,13 +2931,13 @@ xa.prototype.constraints=mxEllipse.prototype.constraints;Aa.prototype.constraint
"jettyWidth",la.prototype.jettyWidth))/2;b=parseFloat(mxUtils.getValue(b,"jettyHeight",la.prototype.jettyHeight));var c=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,d),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,
.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!1,null,d),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(g-.5*b,1.5*b)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(g-.5*b,3.5*b))];g>5*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,d));g>8*b&&c.push(new mxConnectionConstraint(new mxPoint(0,
.5),!1,null,d));g>15*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,d));return c};ea.prototype.constraints=mxRectangleShape.prototype.constraints;ta.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
-.5),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,.3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];E.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,
+.5),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,.3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];F.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,
.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];ja.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
.7),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.25,.2),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(0,
.75),!0),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];q.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,
.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];x.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,
-.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];M.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,
-.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];na.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,
+.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];N.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,
+.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];oa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,
0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];mxDoubleEllipse.prototype.constraints=mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1,
.5),!0)];mxHexagon.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.375,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.625,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.375,
1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.625,1),!0)];mxCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.4,.1),!1),new mxConnectionConstraint(new mxPoint(.16,.55),!1),new mxConnectionConstraint(new mxPoint(.07,.4),!1),new mxConnectionConstraint(new mxPoint(.31,.8),!1),new mxConnectionConstraint(new mxPoint(.13,.77),!1),new mxConnectionConstraint(new mxPoint(.8,.8),!1),new mxConnectionConstraint(new mxPoint(.55,
@@ -2951,7 +2949,7 @@ xa.prototype.constraints=mxEllipse.prototype.constraints;Aa.prototype.constraint
0),!1,null,d,.5*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(g+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,g));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
1),!1));return b};T.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];da.prototype.getConstraints=
function(b,d,g){b=[];var c=g*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize)))),c=(g-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-e),c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,0));b.push(new mxConnectionConstraint(new mxPoint(1,
-.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-e),g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-c));return b};oa.prototype.getConstraints=function(b,d,g){b=[];var c=g*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",da.prototype.arrowWidth)))),e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",da.prototype.arrowSize)))),c=(g-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,
+.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-e),g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-c));return b};na.prototype.getConstraints=function(b,d,g){b=[];var c=g*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",da.prototype.arrowWidth)))),e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",da.prototype.arrowSize)))),c=(g-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,
.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,0));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));return b};Ca.prototype.getConstraints=
function(b,d,g){b=[];var c=Math.min(g,d),e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),c=(g-e)/2,f=c+e,l=(d-e)/2,e=l+e;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,0));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,e,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,g-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,g));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+e),c));b.push(new mxConnectionConstraint(new mxPoint(0,
@@ -3183,7 +3181,7 @@ null!=g&&(e=new mxCodec(g.ownerDocument),e.decode(g,this.graph.getStylesheet()))
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"==d.getAttribute("shadow"),!1);if(c=d.getAttribute("extFonts"))try{for(c=c.split("|").map(function(b){b=b.split("^");return{name:b[0],url:b[1]}}),g=0;g<c.length;g++)this.graph.addExtFont(c[g].name,
c[g].url)}catch(S){console.log("ExtFonts format error: "+S.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 c=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(b,d){b=null!=b?b:!0;var g=c.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&g.setAttribute("style",
this.graph.currentStyle);var e=this.graph.getBackgroundImageObject(this.graph.backgroundImage,d);null!=e&&g.setAttribute("backgroundImage",JSON.stringify(e));g.setAttribute("math",this.graph.mathEnabled?"1":"0");g.setAttribute("shadow",this.graph.shadowVisible?"1":"0");null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(e=this.graph.extFonts.map(function(b){return b.name+"^"+b.url}),g.setAttribute("extFonts",e.join("|")));return g};Editor.prototype.isDataSvg=function(b){try{var d=mxUtils.parseXml(b).documentElement.getAttribute("content");
-if(null!=d&&(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)){var c=mxUtils.parseXml(d).documentElement;return"mxfile"==c.nodeName||"mxGraphModel"==c.nodeName}}catch(Y){}return!1};Editor.prototype.extractGraphModel=function(b,d,c){return Editor.extractGraphModel.apply(this,arguments)};var e=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled=
+if(null!=d&&(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)){var c=mxUtils.parseXml(d).documentElement;return"mxfile"==c.nodeName||"mxGraphModel"==c.nodeName}}catch(ca){}return!1};Editor.prototype.extractGraphModel=function(b,d,c){return Editor.extractGraphModel.apply(this,arguments)};var e=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();e.apply(this,arguments)};var k=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){k.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,d){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";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(b){window.setTimeout(function(){"hidden"!=b.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,b])},0)};var c=null!=urlParams["math-font"]?decodeURIComponent(urlParams["math-font"]):"TeX";d=null!=d?d:{"HTML-CSS":{availableFonts:[c],imageFont:null},SVG:{font:c,useFontCache:!1},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",
@@ -3193,8 +3191,8 @@ Editor.prototype.csvToArray=function(b){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*
'"')):void 0!==e&&d.push(e);return""});/,\s*$/.test(b)&&d.push("");return d};Editor.prototype.isCorsEnabledForUrl=function(b){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||b.substring(0,window.location.origin.length)==window.location.origin)return!0;null!=urlParams.cors&&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)};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"),f=b.getContext("2d");b.height=e.height;b.width=e.width;f.drawImage(e,0,0);d(b.toDataURL())}catch(na){d(Editor.svgBrokenImage.src)}};e.onerror=function(){window.clearTimeout(g);c&&d(Editor.svgBrokenImage.src)};e.src=b}}catch(Q){d(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(b,d,c,g){null==g&&(g=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,l){for(var k=b.getElementsByTagName(c),m=0;m<k.length;m++)mxUtils.bind(this,
-function(c){try{if(null!=c){var k=g.convert(c.getAttribute(l));if(null!=k&&"data:"!=k.substring(0,5)){var m=f[k];null==m?(e++,this.convertImageToDataUri(k,function(g){null!=g&&(f[k]=g,c.setAttribute(l,g));e--;0==e&&d(b)})):c.setAttribute(l,m)}else null!=k&&c.setAttribute(l,k)}}catch(ba){}})(k[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,f,l;c<g;){e=b.charCodeAt(c++)&255;if(c==g){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
+if(c)try{var b=document.createElement("canvas"),f=b.getContext("2d");b.height=e.height;b.width=e.width;f.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(Q){d(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(b,d,c,g){null==g&&(g=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,l){for(var k=b.getElementsByTagName(c),m=0;m<k.length;m++)mxUtils.bind(this,
+function(c){try{if(null!=c){var k=g.convert(c.getAttribute(l));if(null!=k&&"data:"!=k.substring(0,5)){var m=f[k];null==m?(e++,this.convertImageToDataUri(k,function(g){null!=g&&(f[k]=g,c.setAttribute(l,g));e--;0==e&&d(b)})):c.setAttribute(l,m)}else null!=k&&c.setAttribute(l,k)}}catch(aa){}})(k[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,f,l;c<g;){e=b.charCodeAt(c++)&255;if(c==g){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);d+="==";break}f=b.charCodeAt(c++);if(c==g){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2);d+="=";break}l=b.charCodeAt(c++);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2|(l&192)>>6);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(l&63)}return d};Editor.prototype.loadUrl=function(b,d,c,g,e,f,l,k){try{var m=!l&&(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("")}f=null!=f?f:"data:image/png;base64,";g=f+Editor.base64Encode(g)}d(g)}}else null!=c&&(0==b.getStatus()?c({message:mxResources.get("accessDenied")},
@@ -3208,8 +3206,8 @@ b+'";src: url("'+d+'")}'})(d[f].name,d[f].url);e()}else b()};Editor.prototype.ad
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,f,l,k,m,p,q,u,n,x,v,t,z,y){try{f=null!=f?f:!0;l=null!=l?l:!0;u=null!=u?u:this.graph;n=null!=n?n:0;var A=m?null:u.background;A==mxConstants.NONE&&(A=null);null==A&&(A=g);null==A&&0==m&&(A=t?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(u.getSvg(null,null,n,x,null,l,null,null,null,p,null,t,z,y),mxUtils.bind(this,function(c){try{var g=new Image;g.onload=mxUtils.bind(this,function(){try{var l=
function(){mxClient.IS_SF?window.setTimeout(function(){x.drawImage(g,0,0);b(m,c)},0):(x.drawImage(g,0,0),b(m,c))},m=document.createElement("canvas"),p=parseInt(c.getAttribute("width")),q=parseInt(c.getAttribute("height"));k=null!=k?k:1;null!=d&&(k=f?Math.min(1,Math.min(3*d/(4*q),d/p)):d/p);k=this.getMaxCanvasScale(p,q,k);p=Math.ceil(k*p);q=Math.ceil(k*q);m.setAttribute("width",p);m.setAttribute("height",q);var x=m.getContext("2d");null!=A&&(x.beginPath(),x.rect(0,0,p,q),x.fillStyle=A,x.fill());1!=
-k&&x.scale(k,k);if(v){var t=u.view,E=t.scale;t.scale=1;var z=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=E;var z="data:image/svg+xml;base64,"+z,y=u.gridSize*t.gridSteps*k,C=u.getGraphBounds(),I=t.translate.x*E,N=t.translate.y*E,D=I+(C.x-I)/E-n,M=N+(C.y-N)/E-n,S=new Image;S.onload=function(){try{for(var b=-Math.round(y-mxUtils.mod((I-D)*k,y)),d=-Math.round(y-mxUtils.mod((N-M)*k,y));b<p;b+=y)for(var c=d;c<q;c+=y)x.drawImage(S,b/k,c/k);l()}catch(wa){null!=e&&e(wa)}};S.onerror=
-function(b){null!=e&&e(b)};S.src=z}else l()}catch(Aa){null!=e&&e(Aa)}});g.onerror=function(b){null!=e&&e(b)};p&&this.graph.addSvgShadow(c);this.graph.mathEnabled&&this.addMathCss(c);var l=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(l)}catch(da){null!=e&&e(da)}}))}catch(ia){null!=
+k&&x.scale(k,k);if(v){var t=u.view,z=t.scale;t.scale=1;var F=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=z;var F="data:image/svg+xml;base64,"+F,y=u.gridSize*t.gridSteps*k,C=u.getGraphBounds(),I=t.translate.x*z,M=t.translate.y*z,D=I+(C.x-I)/z-n,N=M+(C.y-M)/z-n,S=new Image;S.onload=function(){try{for(var b=-Math.round(y-mxUtils.mod((I-D)*k,y)),d=-Math.round(y-mxUtils.mod((M-N)*k,y));b<p;b+=y)for(var c=d;c<q;c+=y)x.drawImage(S,b/k,c/k);l()}catch(wa){null!=e&&e(wa)}};S.onerror=
+function(b){null!=e&&e(b)};S.src=F}else l()}catch(Aa){null!=e&&e(Aa)}});g.onerror=function(b){null!=e&&e(b)};p&&this.graph.addSvgShadow(c);this.graph.mathEnabled&&this.addMathCss(c);var l=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(l)}catch(da){null!=e&&e(da)}}))}catch(ia){null!=
e&&e(ia)}}),c,q)}catch(ma){null!=e&&e(ma)}};Editor.crcTable=[];for(var f=0;256>f;f++)for(var n=f,t=0;8>t;t++)n=1==(n&1)?3988292384^n>>>1:n>>>1,Editor.crcTable[f]=n;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 f(b,d){var c=m;m+=d;return b.substring(c,
m)}function l(b){b=f(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}function k(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(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);e=b.substring(0,m);do{var p=l(b);if("IDAT"==f(b,4)){e=b.substring(0,m-8);"pHYs"==d&&
"dpi"==c?(c=Math.round(g/.0254),c=k(c)+k(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+=k(c.length)+d+c+k(g^4294967295);e+=b.substring(m-8,b.length);break}e+=b.substring(m-8,m-4+p);f(b,p);f(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";
@@ -3258,8 +3256,8 @@ mxEvent.addListener(f,"change",function(){var b=mxUtils.htmlEntities(f.value);g(
(l.min=parseFloat(p.min)),null!=p.max&&(l.max=parseFloat(p.max)));b.appendChild(l);mxEvent.addListener(l,"keypress",function(b){13==b.keyCode&&f()});l.focus();mxEvent.addListener(l,"blur",function(){f()})})));p.isDeletable&&(n=mxUtils.button("-",mxUtils.bind(q,function(b){g(d,"",p,p.index);mxEvent.consume(b)})),n.style.height="16px",n.style.width="25px",n.style["float"]="right",n.className="geColorBtn",z.appendChild(n));t.appendChild(z);return t}var q=this,u=this.editorUi.editor.graph,n=[];b.style.position=
"relative";b.style.padding="0";var x=document.createElement("table");x.className="geProperties";x.style.whiteSpace="nowrap";x.style.width="100%";var v=document.createElement("tr");v.className="gePropHeader";var t=document.createElement("th");t.className="gePropHeaderCell";var z=document.createElement("img");z.src=Sidebar.prototype.expandedImage;z.style.verticalAlign="middle";t.appendChild(z);mxUtils.write(t,mxResources.get("property"));v.style.cursor="pointer";var y=function(){var d=x.querySelectorAll(".gePropNonHeaderRow"),
c;if(q.editorUi.propertiesCollapsed){z.src=Sidebar.prototype.collapsedImage;c="none";for(var g=b.childNodes.length-1;0<=g;g--)try{var e=b.childNodes[g],f=e.nodeName.toUpperCase();"INPUT"!=f&&"SELECT"!=f||b.removeChild(e)}catch(pa){}}else z.src=Sidebar.prototype.expandedImage,c="";for(g=0;g<d.length;g++)d[g].style.display=c};mxEvent.addListener(v,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;y()});v.appendChild(t);t=document.createElement("th");t.className="gePropHeaderCell";
-t.innerHTML=mxResources.get("value");v.appendChild(t);x.appendChild(v);var A=!1,E=!1,v=null;1==c.vertices.length&&0==c.edges.length?v=c.vertices[0].id:0==c.vertices.length&&1==c.edges.length&&(v=c.edges[0].id);null!=v&&x.appendChild(p("id",mxUtils.htmlEntities(v),{dispName:"ID",type:"readOnly"},!0,!1));for(var C in d)if(v=d[C],"function"!=typeof v.isVisible||v.isVisible(c,this)){var N=null!=c.style[C]?mxUtils.htmlEntities(c.style[C]+""):null!=v.getDefaultValue?v.getDefaultValue(c,this):v.defVal;if("separator"==
-v.type)E=!E;else{if("staticArr"==v.type)v.size=parseInt(c.style[v.sizeProperty]||d[v.sizeProperty].defVal)||0;else if(null!=v.dependentProps){for(var I=v.dependentProps,D=[],M=[],t=0;t<I.length;t++){var G=c.style[I[t]];M.push(d[I[t]].subDefVal);D.push(null!=G?G.split(","):[])}v.dependentPropsDefVal=M;v.dependentPropsVals=D}x.appendChild(p(C,N,v,A,E));A=!A}}for(t=0;t<n.length;t++)for(v=n[t],d=v.parentRow,c=0;c<v.values.length;c++)C=p(v.name,v.values[c],{type:v.type,parentRow:v.parentRow,isDeletable:v.isDeletable,
+t.innerHTML=mxResources.get("value");v.appendChild(t);x.appendChild(v);var A=!1,F=!1,v=null;1==c.vertices.length&&0==c.edges.length?v=c.vertices[0].id:0==c.vertices.length&&1==c.edges.length&&(v=c.edges[0].id);null!=v&&x.appendChild(p("id",mxUtils.htmlEntities(v),{dispName:"ID",type:"readOnly"},!0,!1));for(var C in d)if(v=d[C],"function"!=typeof v.isVisible||v.isVisible(c,this)){var M=null!=c.style[C]?mxUtils.htmlEntities(c.style[C]+""):null!=v.getDefaultValue?v.getDefaultValue(c,this):v.defVal;if("separator"==
+v.type)F=!F;else{if("staticArr"==v.type)v.size=parseInt(c.style[v.sizeProperty]||d[v.sizeProperty].defVal)||0;else if(null!=v.dependentProps){for(var I=v.dependentProps,D=[],N=[],t=0;t<I.length;t++){var G=c.style[I[t]];N.push(d[I[t]].subDefVal);D.push(null!=G?G.split(","):[])}v.dependentPropsDefVal=N;v.dependentPropsVals=D}x.appendChild(p(C,M,v,A,F));A=!A}}for(t=0;t<n.length;t++)for(v=n[t],d=v.parentRow,c=0;c<v.values.length;c++)C=p(v.name,v.values[c],{type:v.type,parentRow:v.parentRow,isDeletable:v.isDeletable,
index:c,defVal:v.defVal,countProperty:v.countProperty,size:v.size},0==c%2,v.flipBkg),d.parentNode.insertBefore(C,d.nextSibling),d=C;b.appendChild(x);y();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.editor.graph,g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.paddingLeft="24px";g.style.paddingRight=
"20px";b.style.paddingLeft="16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(g);var e="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=[],k=0;k<this.defaultColorSchemes.length;k++){var m=document.createElement("div");
m.style.display="inline-block";m.style.width="6px";m.style.height="6px";m.style.marginLeft="4px";m.style.marginRight="3px";m.style.borderRadius="3px";m.style.cursor="pointer";m.style.background="transparent";m.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(b){mxEvent.addListener(m,"click",mxUtils.bind(this,function(){p(b)}))})(k);l.push(m);f.appendChild(m)}var p=mxUtils.bind(this,function(b){null!=l[b]&&(null!=this.format.currentScheme&&null!=l[this.format.currentScheme]&&(l[this.format.currentScheme].style.background=
@@ -3282,8 +3280,8 @@ b[d].getAttribute("face"):b[d].style.fontFamily;null!=g&&Graph.addFont(g,c)}}};G
"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 y=Graph.prototype.init;Graph.prototype.init=function(){function b(b){d=b}y.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 x=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=
-function(b){this.replaceDefaultColors(b);return Graph.processFontStyle(x.apply(this,arguments))};Graph.prototype.replaceDefaultColors=function(b){if(null!=b){var d=mxUtils.hex2rgb(this.shapeBackgroundColor),c=mxUtils.hex2rgb(this.shapeForegroundColor);this.replaceDefaultColor(b,mxConstants.STYLE_FONTCOLOR,c);this.replaceDefaultColor(b,mxConstants.STYLE_FILLCOLOR,d);this.replaceDefaultColor(b,mxConstants.STYLE_STROKECOLOR,c);this.replaceDefaultColor(b,mxConstants.STYLE_IMAGE_BORDER,c);this.replaceDefaultColor(b,
-mxConstants.STYLE_IMAGE_BACKGROUND,d);this.replaceDefaultColor(b,mxConstants.STYLE_LABEL_BORDERCOLOR,c);this.replaceDefaultColor(b,mxConstants.STYLE_SWIMLANE_FILLCOLOR,d);this.replaceDefaultColor(b,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,d)}};Graph.prototype.replaceDefaultColor=function(b,d,c){null!=b&&"default"==b[d]&&null!=c&&(b[d]=c)};var G=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,d,c,g,e,f,l,k,m,p,q){G.apply(this,arguments);Graph.processFontAttributes(q)};
+function(b,d){this.replaceDefaultColors(b,d);return Graph.processFontStyle(x.apply(this,arguments))};Graph.prototype.replaceDefaultColors=function(b,d){if(null!=d){var c=mxUtils.hex2rgb(this.shapeBackgroundColor),g=mxUtils.hex2rgb(this.shapeForegroundColor);this.replaceDefaultColor(d,mxConstants.STYLE_FONTCOLOR,g);this.replaceDefaultColor(d,mxConstants.STYLE_FILLCOLOR,c);this.replaceDefaultColor(d,mxConstants.STYLE_STROKECOLOR,g);this.replaceDefaultColor(d,mxConstants.STYLE_IMAGE_BORDER,g);this.replaceDefaultColor(d,
+mxConstants.STYLE_IMAGE_BACKGROUND,c);this.replaceDefaultColor(d,mxConstants.STYLE_LABEL_BORDERCOLOR,g);this.replaceDefaultColor(d,mxConstants.STYLE_SWIMLANE_FILLCOLOR,c);this.replaceDefaultColor(d,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,c)}};Graph.prototype.replaceDefaultColor=function(b,d,c){null!=b&&"default"==b[d]&&null!=c&&(b[d]=c)};var G=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,d,c,g,e,f,l,k,m,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=l.getSelectionCells(),d=[],c=0;c<b.length;c++)l.isCellVisible(b[c])&&d.push(b[c]);l.setSelectionCells(d)}function e(b){l.hiddenTags=b?[]:k.slice();g();l.refresh()}function f(b,c){p.innerHTML="";if(0<b.length){var f=document.createElement("table");f.setAttribute("cellpadding",
"2");f.style.boxSizing="border-box";f.style.tableLayout="fixed";f.style.width="100%";var m=document.createElement("tbody");if(null!=b&&0<b.length)for(var q=0;q<b.length;q++)(function(b){var f=0>mxUtils.indexOf(l.hiddenTags,b),p=document.createElement("tr"),q=document.createElement("td");q.style.align="center";q.style.width="16px";var u=document.createElement("img");u.setAttribute("src",f?Editor.visibleImage:Editor.hiddenImage);u.setAttribute("title",mxResources.get(f?"hideIt":"show",[b]));mxUtils.setOpacity(u,
f?75:25);u.style.verticalAlign="middle";u.style.cursor="pointer";u.style.width="16px";if(d||Editor.isDarkMode())u.style.filter="invert(100%)";q.appendChild(u);mxEvent.addListener(u,"click",function(d){var c=mxUtils.indexOf(l.hiddenTags,b);mxEvent.isShiftDown(d)?e(0<=mxUtils.indexOf(l.hiddenTags,b)):(0>c?l.hiddenTags.push(b):0<=c&&l.hiddenTags.splice(c,1),g(),l.refresh());mxEvent.consume(d)});p.appendChild(q);q=document.createElement("td");q.style.overflow="hidden";q.style.whiteSpace="nowrap";q.style.textOverflow=
@@ -3298,8 +3296,8 @@ Graph.customFontElements[d];b.push({name:c.name,url:c.url})}return b};Graph.prot
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(A){null!=window.console&&console.log("Error in vars URL parameter: "+A)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):
{}};var D=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var d=D.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 L=Graph.prototype.getSvg;Graph.prototype.getSvg=
function(b,d,c,g,e,f,l,k,m,p,q,u,n,v){var x=null,t=null,z=null;u||null==this.themes||"darkTheme"!=this.defaultThemeName||(x=this.stylesheet,t=this.shapeForegroundColor,z=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 y=L.apply(this,arguments),C=this.getCustomFonts();if(q&&0<C.length){var A=
-y.ownerDocument,E=null!=A.createElementNS?A.createElementNS(mxConstants.NS_SVG,"style"):A.createElement("style");null!=A.setAttributeNS?E.setAttributeNS("type","text/css"):E.setAttribute("type","text/css");for(var N="",D="",I=0;I<C.length;I++){var M=C[I].name,G=C[I].url;Graph.isCssFontUrl(G)?N+="@import url("+G+");\n":D+='@font-face {\nfont-family: "'+M+'";\nsrc: url("'+G+'");\n}\n'}E.appendChild(A.createTextNode(N+D));y.getElementsByTagName("defs")[0].appendChild(E)}null!=x&&(this.shapeBackgroundColor=
-z,this.shapeForegroundColor=t,this.stylesheet=x,this.refresh());return y};var F=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var b=F.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",
+y.ownerDocument,M=null!=A.createElementNS?A.createElementNS(mxConstants.NS_SVG,"style"):A.createElement("style");null!=A.setAttributeNS?M.setAttributeNS("type","text/css"):M.setAttribute("type","text/css");for(var F="",D="",I=0;I<C.length;I++){var N=C[I].name,G=C[I].url;Graph.isCssFontUrl(G)?F+="@import url("+G+");\n":D+='@font-face {\nfont-family: "'+N+'";\nsrc: url("'+G+'");\n}\n'}M.appendChild(A.createTextNode(F+D));y.getElementsByTagName("defs")[0].appendChild(M)}null!=x&&(this.shapeBackgroundColor=
+z,this.shapeForegroundColor=t,this.stylesheet=x,this.refresh());return y};var E=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var b=E.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 J=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){J.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 C=Graph.prototype.refresh;Graph.prototype.refresh=function(){C.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,
@@ -3310,9 +3308,9 @@ function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;k()}),g++,t
0),this.setCellsVisible(u,!1));null!=p.toggleStyle&&null!=p.toggleStyle.key&&(f(),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&&(f(),this.setCellStyles(p.style.key,p.style.value,this.getCellsForAction(p.style,!0)));u=[];null!=p.select&&this.isEnabled()&&(u=this.getCellsForAction(p.select),this.setSelectionCells(u));null!=p.highlight&&(u=this.getCellsForAction(p.highlight),
this.highlightCells(u,p.highlight.color,p.highlight.duration,p.highlight.opacity));null!=p.scroll&&(u=this.getCellsForAction(p.scroll));null!=p.viewbox&&this.fitWindow(p.viewbox,p.viewbox.border);0<u.length&&this.scrollCellToVisible(u[0]);if(null!=p.tags){u=[];null!=p.tags.hidden&&(u=u.concat(p.tags.hidden));if(null!=p.tags.visible)for(var n=this.getAllTags(),v=0;v<n.length;v++)0>mxUtils.indexOf(p.tags.visible,n[v])&&0>mxUtils.indexOf(u,n[v])&&u.push(n[v]);this.hiddenTags=u;this.refresh()}0<q.length&&
(g++,this.executeAnimations(q,k,c?1:p.steps,c?0:p.delay));0==g?m():l()}else this.stoppingCustomActions=this.executingCustomActions=!1,l(),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"),f=!1,l=0;l<
-e.length;l++)c=e[l].getAttribute("href"),null!=c&&"data:action/json,"==c.substring(0,17)&&(e[l].setAttribute("href",this.updateCustomLink(b,c)),f=!0);f&&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(Y){}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 f=b[d[c][e]];null!=f?""!=f&&g.push(f):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 M=Graph.prototype.isCellVisible;Graph.prototype.isCellVisible=function(b){return M.apply(this,arguments)&&!this.isAllTagsHidden(this.getTagsForCell(b))};
+e.length;l++)c=e[l].getAttribute("href"),null!=c&&"data:action/json,"==c.substring(0,17)&&(e[l].setAttribute("href",this.updateCustomLink(b,c)),f=!0);f&&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(ca){}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 f=b[d[c][e]];null!=f?""!=f&&g.push(f):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 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 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 f=0,l={},k=0;k<b.length;k++)0<b[k].length&&(l[b[k]]=!0,f++);for(k=0;k<d.length;k++)if(c&&this.model.getParent(d[k])==
this.model.root||this.model.isVertex(d[k])||this.model.isEdge(d[k])){var m=this.getTagsForCell(d[k]),p=!1;if(0<m.length&&(m=m.split(" "),m.length>=b.length)){for(var q=p=0;q<m.length&&p<f;q++)null!=l[m[q]]&&p++;p=p==f}p&&(1!=g||this.isCellVisible(d[k]))&&e.push(d[k])}}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(" "),f={},l=0;l<e.length;l++)if(null==d||null!=d[e[l]])f[e[l]]=!0,c.push(e[l]);d=f}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(" "),f=0;f<e.length;f++)null==c[e[f]]&&(c[e[f]]=!0,d.push(e[f]))}return d};Graph.prototype.getTagsForCell=function(b){return this.getAttributeForCell(b,"tags","")};Graph.prototype.addTagsForCells=function(b,d){if(0<
@@ -3335,32 +3333,32 @@ mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js
"/mxBasic.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/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 aa=mxMarker.createMarker;mxMarker.createMarker=function(b,d,c,g,e,f,l,k,m,p){if(null!=c&&null==mxMarker.markers[c]){var q=this.getPackageForType(c);null!=
-q&&mxStencilRegistry.getStencil(q)}return aa.apply(this,arguments)};PrintDialog.prototype.create=function(b,d){function c(){v.value=Math.max(1,Math.min(k,Math.max(parseInt(v.value),parseInt(n.value))));n.value=Math.max(1,Math.min(k,Math.min(parseInt(v.value),parseInt(n.value))))}function g(d){function c(d,c,f){var l=d.useCssTransforms,k=d.currentTranslate,m=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 u=d.getGraphBounds(),n=0,v=0,x=F.get(),t=1/d.pageScale,C=y.checked;if(C)var t=parseInt(O.value),N=parseInt(I.value),t=Math.min(x.height*N/(u.height/d.view.scale),x.width*t/(u.width/d.view.scale));else t=parseInt(z.value)/(100*d.pageScale),isNaN(t)&&(g=1/d.pageScale,z.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?(u=d.getPageLayout(),n-=u.x*x.width,v-=u.y*x.height):
+"/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 Z=mxMarker.createMarker;mxMarker.createMarker=function(b,d,c,g,e,f,l,k,m,p){if(null!=c&&null==mxMarker.markers[c]){var q=this.getPackageForType(c);null!=q&&
+mxStencilRegistry.getStencil(q)}return Z.apply(this,arguments)};PrintDialog.prototype.create=function(b,d){function c(){v.value=Math.max(1,Math.min(k,Math.max(parseInt(v.value),parseInt(n.value))));n.value=Math.max(1,Math.min(k,Math.min(parseInt(v.value),parseInt(n.value))))}function g(d){function c(d,c,f){var l=d.useCssTransforms,k=d.currentTranslate,m=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 u=d.getGraphBounds(),n=0,v=0,x=E.get(),t=1/d.pageScale,C=y.checked;if(C)var t=parseInt(O.value),M=parseInt(I.value),t=Math.min(x.height*M/(u.height/d.view.scale),x.width*t/(u.width/d.view.scale));else t=parseInt(z.value)/(100*d.pageScale),isNaN(t)&&(g=1/d.pageScale,z.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?(u=d.getPageLayout(),n-=u.x*x.width,v-=u.y*x.height):
C=!0;if(null==c){c=PrintDialog.createPrintPreview(d,t,x,0,n,v,C);c.pageSelector=!1;c.mathEnabled=!1;n=b.getCurrentFile();null!=n&&(c.title=n.getTitle());var A=c.writeHead;c.writeHead=function(c){A.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 f=g[e].name,l=g[e].url;Graph.isCssFontUrl(l)?c.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(l)+'" charset="UTF-8" type="text/css">'):(c.writeln('<style type="text/css">'),c.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(f)+'";\nsrc: url("'+mxUtils.htmlEntities(l)+'");\n}'),c.writeln("</style>"))}};
if("undefined"!==typeof MathJax){var D=c.renderPage;c.renderPage=function(d,c,g,e,f,l){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var m=D.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:m.className="geDisableMathJax";return m}}n=null;v=e.enableFlowAnimation;e.enableFlowAnimation=!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(n=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),
e.refresh());c.open(null,null,f,!0);e.enableFlowAnimation=v;null!=n&&(e.stylesheet=n,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,n,v,f,!0);f=d.getCustomFonts();if(null!=c.wnd)for(n=0;n<f.length;n++)v=f[n].name,C=f[n].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>"))}l&&(d.useCssTransforms=l,d.currentTranslate=k,d.currentScale=m,d.view.translate=p,d.view.scale=q);return c}var g=parseInt(L.value)/100;isNaN(g)&&(g=1,L.value="100 %");var g=.75*g,f=null;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(f=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.refresh());var l=n.value,k=v.value,p=!q.checked,
-u=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,l,k,y.checked,O.value,I.value,parseInt(z.value)/100,parseInt(L.value)/100,F.get());else{p&&(p=l==m&&k==m);if(!p&&null!=b.pages&&b.pages.length){var x=0,p=b.pages.length-1;q.checked||(x=parseInt(l)-1,p=parseInt(k)-1);for(var t=x;t<=p;t++){var C=b.pages[t],l=C==b.currentPage?e:null;if(null==l){var l=b.createTemporaryGraph(e.stylesheet),k=!0,x=!1,N=null,A=null;null==C.viewState&&null==C.root&&b.updatePageRoot(C);null!=C.viewState&&
-(k=C.viewState.pageVisible,x=C.viewState.mathEnabled,N=C.viewState.background,A=C.viewState.backgroundImage,l.extFonts=C.viewState.extFonts);l.background=N;l.backgroundImage=null!=A?new mxImage(A.src,A.width,A.height):null;l.pageVisible=k;l.mathEnabled=x;var D=l.getGlobalVariable;l.getGlobalVariable=function(d){return"page"==d?C.getName():"pagenumber"==d?t+1:"pagecount"==d?null!=b.pages?b.pages.length:1:D.apply(this,arguments)};document.body.appendChild(l.container);b.updatePageRoot(C);l.model.setRoot(C.root)}u=
+u=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,l,k,y.checked,O.value,I.value,parseInt(z.value)/100,parseInt(L.value)/100,E.get());else{p&&(p=l==m&&k==m);if(!p&&null!=b.pages&&b.pages.length){var x=0,p=b.pages.length-1;q.checked||(x=parseInt(l)-1,p=parseInt(k)-1);for(var t=x;t<=p;t++){var C=b.pages[t],l=C==b.currentPage?e:null;if(null==l){var l=b.createTemporaryGraph(e.stylesheet),k=!0,x=!1,M=null,A=null;null==C.viewState&&null==C.root&&b.updatePageRoot(C);null!=C.viewState&&
+(k=C.viewState.pageVisible,x=C.viewState.mathEnabled,M=C.viewState.background,A=C.viewState.backgroundImage,l.extFonts=C.viewState.extFonts);l.background=M;l.backgroundImage=null!=A?new mxImage(A.src,A.width,A.height):null;l.pageVisible=k;l.mathEnabled=x;var D=l.getGlobalVariable;l.getGlobalVariable=function(d){return"page"==d?C.getName():"pagenumber"==d?t+1:"pagecount"==d?null!=b.pages?b.pages.length:1:D.apply(this,arguments)};document.body.appendChild(l.container);b.updatePageRoot(C);l.model.setRoot(C.root)}u=
c(l,u,t!=p);l!=e&&l.container.parentNode.removeChild(l.container)}}else u=c(e);null==u?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(u.mathEnabled&&(p=u.wnd.document,d&&(u.wnd.IMMEDIATE_PRINT=!0),p.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),u.closeDocument(),!u.mathEnabled&&d&&PrintDialog.printPreview(u));null!=f&&(e.stylesheet=f,e.refresh())}}var e=b.editor.graph,f=document.createElement("div"),l=document.createElement("h3");
l.style.width="100%";l.style.textAlign="center";l.style.marginTop="0px";mxUtils.write(l,d||mxResources.get("print"));f.appendChild(l);var k=1,m=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);l=document.createElement("span");
mxUtils.write(l,mxResources.get("printAllPages"));p.appendChild(l);mxUtils.br(p);var u=q.cloneNode(!0);q.setAttribute("checked","checked");u.setAttribute("value","range");p.appendChild(u);l=document.createElement("span");mxUtils.write(l,mxResources.get("pages")+":");p.appendChild(l);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";p.appendChild(n);l=document.createElement("span");
mxUtils.write(l,mxResources.get("to"));p.appendChild(l);var v=n.cloneNode(!0);p.appendChild(v);mxEvent.addListener(n,"focus",function(){u.checked=!0});mxEvent.addListener(v,"focus",function(){u.checked=!0});mxEvent.addListener(n,"change",c);mxEvent.addListener(v,"change",c);if(null!=b.pages&&(k=b.pages.length,null!=b.currentPage))for(l=0;l<b.pages.length;l++)if(b.currentPage==b.pages[l]){m=l+1;n.value=m;v.value=m;break}n.setAttribute("max",k);v.setAttribute("max",k);b.isPagesEnabled()?1<k&&(f.appendChild(p),
u.checked=!0):u.checked=!0;var x=document.createElement("div");x.style.marginBottom="10px";var t=document.createElement("input");t.style.marginRight="8px";t.setAttribute("value","adjust");t.setAttribute("type","radio");t.setAttribute("name","printZoom");x.appendChild(t);l=document.createElement("span");mxUtils.write(l,mxResources.get("adjustTo"));x.appendChild(l);var z=document.createElement("input");z.style.cssText="margin:0 8px 0 8px;";z.setAttribute("value","100 %");z.style.width="50px";x.appendChild(z);
-mxEvent.addListener(z,"focus",function(){t.checked=!0});f.appendChild(x);var p=p.cloneNode(!1),y=t.cloneNode(!0);y.setAttribute("value","fit");t.setAttribute("checked","checked");l=document.createElement("div");l.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";l.appendChild(y);p.appendChild(l);x=document.createElement("table");x.style.display="inline-block";var C=document.createElement("tbody"),N=document.createElement("tr"),D=N.cloneNode(!0),M=document.createElement("td"),
-G=M.cloneNode(!0),E=M.cloneNode(!0),H=M.cloneNode(!0),K=M.cloneNode(!0),J=M.cloneNode(!0);M.style.textAlign="right";H.style.textAlign="right";mxUtils.write(M,mxResources.get("fitTo"));var O=document.createElement("input");O.style.cssText="margin:0 8px 0 8px;";O.setAttribute("value","1");O.setAttribute("min","1");O.setAttribute("type","number");O.style.width="40px";G.appendChild(O);l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));E.appendChild(l);mxUtils.write(H,
-mxResources.get("fitToBy"));var I=O.cloneNode(!0);K.appendChild(I);mxEvent.addListener(O,"focus",function(){y.checked=!0});mxEvent.addListener(I,"focus",function(){y.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));J.appendChild(l);N.appendChild(M);N.appendChild(G);N.appendChild(E);D.appendChild(H);D.appendChild(K);D.appendChild(J);C.appendChild(N);C.appendChild(D);x.appendChild(C);p.appendChild(x);f.appendChild(p);p=document.createElement("div");l=
-document.createElement("div");l.style.fontWeight="bold";l.style.marginBottom="12px";mxUtils.write(l,mxResources.get("paperSize"));p.appendChild(l);l=document.createElement("div");l.style.marginBottom="12px";var F=PageSetupDialog.addPageFormatPanel(l,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);p.appendChild(l);l=document.createElement("span");mxUtils.write(l,mxResources.get("pageScale"));p.appendChild(l);var L=document.createElement("input");L.style.cssText="margin:0 8px 0 8px;";
+mxEvent.addListener(z,"focus",function(){t.checked=!0});f.appendChild(x);var p=p.cloneNode(!1),y=t.cloneNode(!0);y.setAttribute("value","fit");t.setAttribute("checked","checked");l=document.createElement("div");l.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";l.appendChild(y);p.appendChild(l);x=document.createElement("table");x.style.display="inline-block";var C=document.createElement("tbody"),M=document.createElement("tr"),D=M.cloneNode(!0),N=document.createElement("td"),
+G=N.cloneNode(!0),F=N.cloneNode(!0),H=N.cloneNode(!0),K=N.cloneNode(!0),J=N.cloneNode(!0);N.style.textAlign="right";H.style.textAlign="right";mxUtils.write(N,mxResources.get("fitTo"));var O=document.createElement("input");O.style.cssText="margin:0 8px 0 8px;";O.setAttribute("value","1");O.setAttribute("min","1");O.setAttribute("type","number");O.style.width="40px";G.appendChild(O);l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));F.appendChild(l);mxUtils.write(H,
+mxResources.get("fitToBy"));var I=O.cloneNode(!0);K.appendChild(I);mxEvent.addListener(O,"focus",function(){y.checked=!0});mxEvent.addListener(I,"focus",function(){y.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));J.appendChild(l);M.appendChild(N);M.appendChild(G);M.appendChild(F);D.appendChild(H);D.appendChild(K);D.appendChild(J);C.appendChild(M);C.appendChild(D);x.appendChild(C);p.appendChild(x);f.appendChild(p);p=document.createElement("div");l=
+document.createElement("div");l.style.fontWeight="bold";l.style.marginBottom="12px";mxUtils.write(l,mxResources.get("paperSize"));p.appendChild(l);l=document.createElement("div");l.style.marginBottom="12px";var E=PageSetupDialog.addPageFormatPanel(l,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);p.appendChild(l);l=document.createElement("span");mxUtils.write(l,mxResources.get("pageScale"));p.appendChild(l);var L=document.createElement("input");L.style.cssText="margin:0 8px 0 8px;";
L.setAttribute("value","100 %");L.style.width="60px";p.appendChild(L);f.appendChild(p);l=document.createElement("div");l.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&&l.appendChild(p);b.isOffline()||(x=mxUtils.button(mxResources.get("help"),function(){e.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),x.className="geBtn",l.appendChild(x));PrintDialog.previewEnabled&&(x=
-mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();g(!1)}),x.className="geBtn",l.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();g(!0)});x.className="geBtn gePrimaryBtn";l.appendChild(x);b.editor.cancelFirst||l.appendChild(p);f.appendChild(l);this.container=f};var N=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 N.apply(this,arguments),null!=this.mathEnabled&&
+mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();g(!1)}),x.className="geBtn",l.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();g(!0)});x.className="geBtn gePrimaryBtn";l.appendChild(x);b.editor.cancelFirst||l.appendChild(p);f.appendChild(l);this.container=f};var M=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 M.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 O=document.createElement("canvas"),U=new Image;U.onload=function(){try{O.getContext("2d").drawImage(U,0,0);var b=O.toDataURL("image/png");Editor.prototype.useCanvasForExport=
-null!=b&&6<b.length}catch(I){}};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(E){}})();
+null!=b&&6<b.length}catch(I){}};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(F){}})();
(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};b.afterDecode=function(b,e,k){k.previousColor=k.color;k.previousImage=k.image;k.previousFormat=k.format;null!=k.foldingEnabled&&(k.foldingEnabled=!k.foldingEnabled);null!=k.mathEnabled&&(k.mathEnabled=!k.mathEnabled);null!=k.shadowVisible&&(k.shadowVisible=!k.shadowVisible);return k};mxCodecRegistry.register(b)})();
-(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="15.9.1";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,k){k.ui=b.ui;return e};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="15.9.3";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?"/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&&!EditorUi.isElectronApp&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";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,k,q,u){q=null!=q?q:0<=b.indexOf("NetworkError")||0<=b.indexOf("SecurityError")||0<=b.indexOf("NS_ERROR_FAILURE")||0<=b.indexOf("out of memory")?"CONFIG":
@@ -3412,15 +3410,15 @@ this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.
this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(b,c,e,f,k,q,n,v,t,x,G,H){try{f=null!=f?f:this.editor.graph.isSelectionEmpty();var d=this.getBaseFilename(!k),g=d+("xml"==b||"pdf"==b&&G?".drawio":"")+"."+b;if("xml"==b){var l=Graph.xmlDeclaration+"\n"+this.getFileData(!0,null,null,null,f,k,null,null,null,c);this.saveData(g,b,l,"text/xml")}else if("html"==b)l=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(g,b,l,"text/html");else if("svg"!=b&&"xmlsvg"!=
b||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==b?g=d+".png":"jpeg"==b&&(g=d+".jpg"),this.saveRequest(g,b,mxUtils.bind(this,function(d,c){try{var g=this.editor.graph.pageVisible;null!=q&&(this.editor.graph.pageVisible=q);var e=this.createDownloadRequest(d,b,f,c,n,k,v,t,x,G,H);this.editor.graph.pageVisible=g;return e}catch(U){this.handleError(U)}}));else{var m=null,p=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 u=this.editor.graph.background;if(n||u==mxConstants.NONE)u=null;var y=this.editor.graph.getSvg(u,null,null,null,null,f);e&&this.editor.graph.addSvgShadow(y);this.editor.convertImages(y,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();p(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();
-p(b)}),f)}}catch(M){this.handleError(M)}};EditorUi.prototype.createDownloadRequest=function(b,c,e,f,k,q,n,v,t,x,G){var d=this.editor.graph,g=d.getGraphBounds();e=this.getFileData(!0,null,null,null,e,0==q?!1:"xmlpng"!=c,null,null,null,!1,"pdf"==c);var l="",m="";if(g.width*g.height>MAX_AREA||e.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};x=x?"1":"0";"pdf"==c&&(null!=G?m="&from="+G.from+"&to="+G.to:0==q&&(m="&allPages=1"));if("xmlpng"==c&&(x="1",c="png",null!=this.pages&&
+p(b)}),f)}}catch(N){this.handleError(N)}};EditorUi.prototype.createDownloadRequest=function(b,c,e,f,k,q,n,v,t,x,G){var d=this.editor.graph,g=d.getGraphBounds();e=this.getFileData(!0,null,null,null,e,0==q?!1:"xmlpng"!=c,null,null,null,!1,"pdf"==c);var l="",m="";if(g.width*g.height>MAX_AREA||e.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};x=x?"1":"0";"pdf"==c&&(null!=G?m="&from="+G.from+"&to="+G.to:0==q&&(m="&allPages=1"));if("xmlpng"==c&&(x="1",c="png",null!=this.pages&&
null!=this.currentPage))for(q=0;q<this.pages.length;q++)if(this.pages[q]==this.currentPage){l="&from="+q;break}q=d.background;"png"!=c&&"pdf"!=c||!k?k||null!=q&&q!=mxConstants.NONE||(q="#ffffff"):q=mxConstants.NONE;k={globalVars:d.getExportVariables()};t&&(k.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});Graph.translateDiagram&&(k.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+c+l+m+"&bg="+(null!=q?q:mxConstants.NONE)+"&base64="+f+"&embedXml="+
x+"&xml="+encodeURIComponent(e)+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(k))+(null!=n?"&scale="+n:"")+(null!=v?"&border="+v:""))};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(g){var e=null!=b.data?b.data:"";null!=g&&0<g.length&&(0<e.length&&(e+="\n"),e+=g);g=new LocalFile(this,"csv"!=b.format&&0<e.length?e:this.emptyDiagramXml,null!=
urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);g.getHash=function(){return d};this.fileLoaded(g);"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 f=null!=b.interval?parseInt(b.interval):6E4,l=null,k=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(l);l=window.setTimeout(k,f)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){m();k()}));m();k()}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,k=f.getModel();k.beginUpdate();var n=null;try{for(b=b.firstChild;null!=b;){if("update"==
-b.nodeName){var v=k.getCell(b.getAttribute("id"));if(null!=v){try{var t=b.getAttribute("value");if(null!=t){var x=mxUtils.parseXml(t).documentElement;if(null!=x)if("1"==x.getAttribute("replace-value"))k.setValue(v,x);else for(var G=x.attributes,H=0;H<G.length;H++)f.setAttributeForCell(v,G[H].nodeName,0<G[H].nodeValue.length?G[H].nodeValue:null)}}catch(M){null!=window.console&&console.log("Error in value for "+v.id+": "+M)}try{var z=b.getAttribute("style");null!=z&&f.model.setStyle(v,z)}catch(M){null!=
-window.console&&console.log("Error in style for "+v.id+": "+M)}try{var D=b.getAttribute("icon");if(null!=D){var L=0<D.length?JSON.parse(D):null;null!=L&&L.append||f.removeCellOverlays(v);null!=L&&f.addCellOverlay(v,d(L))}}catch(M){null!=window.console&&console.log("Error in icon for "+v.id+": "+M)}try{var F=b.getAttribute("geometry");if(null!=F){var F=JSON.parse(F),J=f.getCellGeometry(v);if(null!=J){J=J.clone();for(key in F){var C=parseFloat(F[key]);"dx"==key?J.x+=C:"dy"==key?J.y+=C:"dw"==key?J.width+=
-C:"dh"==key?J.height+=C:J[key]=parseFloat(F[key])}f.model.setGeometry(v,J)}}}catch(M){null!=window.console&&console.log("Error in icon for "+v.id+": "+M)}}}else if("model"==b.nodeName){for(var K=b.firstChild;null!=K&&K.nodeType!=mxConstants.NODETYPE_ELEMENT;)K=K.nextSibling;null!=K&&(new mxCodec(b.firstChild)).decode(K,k)}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")||
+b.nodeName){var v=k.getCell(b.getAttribute("id"));if(null!=v){try{var t=b.getAttribute("value");if(null!=t){var x=mxUtils.parseXml(t).documentElement;if(null!=x)if("1"==x.getAttribute("replace-value"))k.setValue(v,x);else for(var G=x.attributes,H=0;H<G.length;H++)f.setAttributeForCell(v,G[H].nodeName,0<G[H].nodeValue.length?G[H].nodeValue:null)}}catch(N){null!=window.console&&console.log("Error in value for "+v.id+": "+N)}try{var z=b.getAttribute("style");null!=z&&f.model.setStyle(v,z)}catch(N){null!=
+window.console&&console.log("Error in style for "+v.id+": "+N)}try{var D=b.getAttribute("icon");if(null!=D){var L=0<D.length?JSON.parse(D):null;null!=L&&L.append||f.removeCellOverlays(v);null!=L&&f.addCellOverlay(v,d(L))}}catch(N){null!=window.console&&console.log("Error in icon for "+v.id+": "+N)}try{var E=b.getAttribute("geometry");if(null!=E){var E=JSON.parse(E),J=f.getCellGeometry(v);if(null!=J){J=J.clone();for(key in E){var C=parseFloat(E[key]);"dx"==key?J.x+=C:"dy"==key?J.y+=C:"dw"==key?J.width+=
+C:"dh"==key?J.height+=C:J[key]=parseFloat(E[key])}f.model.setGeometry(v,J)}}}catch(N){null!=window.console&&console.log("Error in icon for "+v.id+": "+N)}}}else if("model"==b.nodeName){for(var K=b.firstChild;null!=K&&K.nodeType!=mxConstants.NODETYPE_ELEMENT;)K=K.nextSibling;null!=K&&(new mxCodec(b.firstChild)).decode(K,k)}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{k.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,g="",e=d.lastIndexOf(".");0<=e&&(g=d.substring(e),d=d.substring(0,e));if(c)var f=new Date,e=f.getFullYear(),k=f.getMonth()+1,n=f.getDate(),
t=f.getHours(),x=f.getMinutes(),f=f.getSeconds(),d=d+(" "+(e+"-"+k+"-"+n+"-"+t+"-"+x+"-"+f));return d=mxResources.get("copyOf",[d])+g};EditorUi.prototype.fileLoaded=function(b,c){var d=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var g=!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 e=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=
@@ -3439,15 +3437,15 @@ EditorUi.prototype.libraryLoaded=function(b,c,e,f){if(null!=this.sidebar){b.cons
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 k=this.sidebar.addPalette(b.getHash(),e,null!=f?f:!0,mxUtils.bind(this,function(b){l(c,b)}));this.repositionLibrary(d);var m=k.parentNode.previousSibling;f=m.getAttribute("title");null!=f&&0<f.length&&".scratchpad"!=b.title&&m.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";m.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 z=this.editor.graph,D=null,L=mxUtils.bind(this,function(d){this.showLibraryDialog(b.getTitle(),k,c,b,b.getMode());
-mxEvent.consume(d)}),F=mxUtils.bind(this,function(d){b.setModified(!0);b.isAutosave()?(null!=D&&null!=D.parentNode&&D.parentNode.removeChild(D),D=t.cloneNode(!1),D.setAttribute("src",Editor.spinImage),D.setAttribute("title",mxResources.get("saving")),D.style.cursor="default",D.style.marginRight="2px",D.style.marginTop="-2px",n.insertBefore(D,n.firstChild),m.style.paddingRight=18*n.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=D&&null!=D.parentNode&&(D.parentNode.removeChild(D),
+mxEvent.consume(d)}),E=mxUtils.bind(this,function(d){b.setModified(!0);b.isAutosave()?(null!=D&&null!=D.parentNode&&D.parentNode.removeChild(D),D=t.cloneNode(!1),D.setAttribute("src",Editor.spinImage),D.setAttribute("title",mxResources.get("saving")),D.style.cursor="default",D.style.marginRight="2px",D.style.marginTop="-2px",n.insertBefore(D,n.firstChild),m.style.paddingRight=18*n.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=D&&null!=D.parentNode&&(D.parentNode.removeChild(D),
m.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()||(m.style.paddingRight=18*n.childNodes.length+"px",H.parentNode.removeChild(H),H=null)});mxEvent.consume(d)})),m.style.paddingRight=
-18*n.childNodes.length+"px")}),J=mxUtils.bind(this,function(b,d,e,f){b=z.cloneCells(mxUtils.sortCells(z.model.getTopmostCells(b)));for(var l=0;l<b.length;l++){var m=z.getCellGeometry(b[l]);null!=m&&m.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(b,d.width,d.height,f||"",!0,!1,!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);F(e);null!=g&&null!=g.parentNode&&0<c.length&&(g.parentNode.removeChild(g),
+18*n.childNodes.length+"px")}),J=mxUtils.bind(this,function(b,d,e,f){b=z.cloneCells(mxUtils.sortCells(z.model.getTopmostCells(b)));for(var l=0;l<b.length;l++){var m=z.getCellGeometry(b[l]);null!=m&&m.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(b,d.width,d.height,f||"",!0,!1,!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);E(e);null!=g&&null!=g.parentNode&&0<c.length&&(g.parentNode.removeChild(g),
g=null)}),C=mxUtils.bind(this,function(b){if(z.isSelectionEmpty())z.getRubberband().isActive()?(z.getRubberband().execute(b),z.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=z.getSelectionCells(),c=z.view.getBounds(d),e=z.view.scale;c.x/=e;c.y/=e;c.width/=e;c.height/=e;c.x-=z.view.translate.x;c.y-=z.view.translate.y;J(d,c)}mxEvent.consume(b)});mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(b){z.isMouseDown&&
null!=z.panningManager&&null!=z.graphHandler.first&&(z.graphHandler.suspend(),null!=z.graphHandler.hint&&(z.graphHandler.hint.style.visibility="hidden"),k.style.backgroundColor="#f1f3f4",k.style.cursor="copy",z.panningManager.stop(),z.autoScroll=!1,mxEvent.consume(b))}),mxUtils.bind(this,function(b){z.isMouseDown&&null!=z.panningManager&&null!=z.graphHandler&&(k.style.backgroundColor="",k.style.cursor="default",this.sidebar.showTooltips=!0,z.panningManager.stop(),z.graphHandler.reset(),z.isMouseDown=
!1,z.autoScroll=!0,C(b),mxEvent.consume(b))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(b){z.isMouseDown&&null!=z.graphHandler.first&&(z.graphHandler.resume(),null!=z.graphHandler.hint&&(z.graphHandler.hint.style.visibility="visible"),k.style.backgroundColor="",k.style.cursor="",z.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(b){k.style.backgroundColor="#f1f3f4";b.dataTransfer.dropEffect="copy";k.style.cursor="copy";this.sidebar.hideTooltip();
b.stopPropagation();b.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(b){k.style.cursor="";k.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,
-J(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&&(g.parentNode.removeChild(g),g=null);else{var x=!1,t=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));l(m,k);c=c.concat(m);F(b);
-this.spinner.stop();x=!0}catch(ba){}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);J(q,new mxRectangle(0,0,n.width,n.height),b)}x=!0}catch(ba){null!=window.console&&console.log("error in drop handler:",ba)}x||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=g&&null!=g.parentNode&&
+J(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&&(g.parentNode.removeChild(g),g=null);else{var x=!1,t=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));l(m,k);c=c.concat(m);E(b);
+this.spinner.stop();x=!0}catch(aa){}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);J(q,new mxRectangle(0,0,n.width,n.height),b)}x=!0}catch(aa){null!=window.console&&console.log("error in drop handler:",aa)}x||(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){t(b,"text/xml")},null,n):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,n)&&null!=v?this.parseFile(v,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?t(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},
mxResources.get("errorLoadingFile")))})):t(d,e)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(k,"dragleave",function(b){k.style.cursor="";k.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",L);mxEvent.addListener(k,"dblclick",function(b){mxEvent.getSource(b)==k&&L(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",C);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)})),
@@ -3498,9 +3496,9 @@ null!=g&&(d==App.MODE_DEVICE||"download"==d||"_blank"==d?g.simulate(document,"_b
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,q,k);d=this.isServices(d)?4<d?390:270: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,k,q){};EditorUi.prototype.pickFolder=function(b,
c,e){c(null)};EditorUi.prototype.exportSvg=function(b,c,e,f,k,q,n,t,y,x,G,H,z,D){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 l=this.editor.graph.getSvg(g,b,n,t,null,e,null,null,"blank"==x?"_blank":"self"==x?"_top":null,null,!0,G,H);f&&this.editor.graph.addSvgShadow(l);var m=
this.getBaseFilename()+(k?".drawio":"")+".svg";D=null!=D?D: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 p=mxUtils.bind(this,function(b){this.spinner.stop();k&&b.setAttribute("content",this.getFileData(!0,null,null,null,e,y,null,null,null,!1));D(Graph.xmlDeclaration+"\n"+(k?Graph.svgFileComment+
-"\n":"")+Graph.svgDoctype+"\n"+mxUtils.getXml(b))});this.editor.graph.mathEnabled&&this.editor.addMathCss(l);var u=mxUtils.bind(this,function(b){q?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(b,p,this.thumbImageCache)):p(b)});z?this.embedFonts(l,u):(this.editor.addFontCss(l),u(l))}catch(aa){this.handleError(aa)}};EditorUi.prototype.addRadiobox=function(b,c,e,f,k,q,n){return this.addCheckbox(b,e,f,k,q,n,!0,c)};EditorUi.prototype.addCheckbox=function(b,c,e,f,k,q,
-n,t){q=null!=q?q:!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!=t&&d.setAttribute("name",t);e&&(d.setAttribute("checked","checked"),d.defaultChecked=!0);f&&d.setAttribute("disabled","disabled");q&&(b.appendChild(d),e=document.createElement("label"),mxUtils.write(e,c),e.setAttribute("for",n),b.appendChild(e),k||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(),g="";null!=e&&e.getMode()!=App.MODE_DEVICE&&e.getMode()!=App.MODE_BROWSER&&(g=window.location.href);var f=document.createElement("select");f.style.width="120px";f.style.marginLeft="8px";f.style.marginRight="10px";f.className="geBtn";e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("makeCopy"));f.appendChild(e);e=document.createElement("option");
+"\n":"")+Graph.svgDoctype+"\n"+mxUtils.getXml(b))});this.editor.graph.mathEnabled&&this.editor.addMathCss(l);var u=mxUtils.bind(this,function(b){q?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(b,p,this.thumbImageCache)):p(b)});z?this.embedFonts(l,u):(this.editor.addFontCss(l),u(l))}catch(Z){this.handleError(Z)}};EditorUi.prototype.addRadiobox=function(b,c,e,f,k,q,n){return this.addCheckbox(b,e,f,k,q,n,!0,c)};EditorUi.prototype.addCheckbox=function(b,c,e,f,k,q,n,
+t){q=null!=q?q:!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!=t&&d.setAttribute("name",t);e&&(d.setAttribute("checked","checked"),d.defaultChecked=!0);f&&d.setAttribute("disabled","disabled");q&&(b.appendChild(d),e=document.createElement("label"),mxUtils.write(e,c),e.setAttribute("for",n),b.appendChild(e),k||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(),g="";null!=e&&e.getMode()!=App.MODE_DEVICE&&e.getMode()!=App.MODE_BROWSER&&(g=window.location.href);var f=document.createElement("select");f.style.width="120px";f.style.marginLeft="8px";f.style.marginRight="10px";f.className="geBtn";e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("makeCopy"));f.appendChild(e);e=document.createElement("option");
e.setAttribute("value","custom");mxUtils.write(e,mxResources.get("custom")+"...");f.appendChild(e);b.appendChild(f);mxEvent.addListener(f,"change",mxUtils.bind(this,function(){if("custom"==f.value){var b=new FilenameDialog(this,g,mxResources.get("ok"),function(b){null!=b?g=b:f.value="blank"},mxResources.get("url"),null,null,null,null,function(){f.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)?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled")}));mxUtils.br(b);return{getLink:function(){return d.checked?"blank"===f.value?"_blank":g:null},getEditInput:function(){return d},getEditSelect:function(){return f}}};EditorUi.prototype.addLinkSection=function(b,c){function d(){var b=document.createElement("div");b.style.width="100%";b.style.height="100%";b.style.boxSizing="border-box";null!=f&&f!=mxConstants.NONE?(b.style.border="1px solid black",b.style.backgroundColor=
f):(b.style.backgroundPosition="center center",b.style.backgroundRepeat="no-repeat",b.style.backgroundImage="url('"+Dialog.prototype.closeImage+"')");k.innerHTML="";k.appendChild(b)}mxUtils.write(b,mxResources.get("links")+":");var e=document.createElement("select");e.style.width="100px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";var g=document.createElement("option");g.setAttribute("value","auto");mxUtils.write(g,mxResources.get("automatic"));e.appendChild(g);g=document.createElement("option");
@@ -3514,29 +3512,29 @@ f&&(d.target=f);x||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;e=pars
'">\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 l=document.createElement("div");l.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";
k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name","type-embedhtmldialog");g=k.cloneNode(!0);g.setAttribute("value","copy");l.appendChild(g);var m=document.createElement("span");mxUtils.write(m,mxResources.get("includeCopyOfMyDiagram"));l.appendChild(m);mxUtils.br(l);l.appendChild(k);m=document.createElement("span");mxUtils.write(m,mxResources.get("publicDiagramUrl"));l.appendChild(m);var n=this.getCurrentFile();null==e&&null!=n&&n.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")),l.appendChild(m),mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(n.getId())})));g.setAttribute("checked","checked");null==e&&k.setAttribute("disabled","disabled");d.appendChild(l);var t=this.addLinkSection(d),H=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,":");var z=document.createElement("input");
-z.setAttribute("type","text");z.style.marginRight="16px";z.style.width="60px";z.style.marginLeft="4px";z.style.marginRight="12px";z.value="100%";d.appendChild(z);var D=this.addCheckbox(d,mxResources.get("fit"),!0),l=null!=this.pages&&1<this.pages.length,L=L=this.addCheckbox(d,mxResources.get("allPages"),l,!l),F=this.addCheckbox(d,mxResources.get("layers"),!0),J=this.addCheckbox(d,mxResources.get("tags"),!0),C=this.addCheckbox(d,mxResources.get("lightbox"),!0),K=this.addEditButton(d,C),M=K.getEditInput();
-M.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?M.removeAttribute("disabled"):M.setAttribute("disabled","disabled");M.checked&&C.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){f(k.checked?e:null,H.checked,z.value,t.getTarget(),t.getColor(),D.checked,L.checked,F.checked,J.checked,C.checked,K.getLink())}),null,b,c);this.showDialog(b.container,340,430,
+z.setAttribute("type","text");z.style.marginRight="16px";z.style.width="60px";z.style.marginLeft="4px";z.style.marginRight="12px";z.value="100%";d.appendChild(z);var D=this.addCheckbox(d,mxResources.get("fit"),!0),l=null!=this.pages&&1<this.pages.length,L=L=this.addCheckbox(d,mxResources.get("allPages"),l,!l),E=this.addCheckbox(d,mxResources.get("layers"),!0),J=this.addCheckbox(d,mxResources.get("tags"),!0),C=this.addCheckbox(d,mxResources.get("lightbox"),!0),K=this.addEditButton(d,C),N=K.getEditInput();
+N.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?N.removeAttribute("disabled"):N.setAttribute("disabled","disabled");N.checked&&C.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){f(k.checked?e:null,H.checked,z.value,t.getTarget(),t.getColor(),D.checked,L.checked,E.checked,J.checked,C.checked,K.getLink())}),null,b,c);this.showDialog(b.container,340,430,
!0,!0);g.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,e,f,k,q,n,t){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 l=this.getCurrentFile();b=0;if(null==l||l.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(l.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 p=null,u=null;if(null!=e||null!=f)b+=30,mxUtils.write(d,mxResources.get("width")+":"),p=document.createElement("input"),p.setAttribute("type","text"),p.style.marginRight="16px",p.style.width="50px",p.style.marginLeft="6px",p.style.marginRight="16px",p.style.marginBottom="10px",p.value="100%",d.appendChild(p),mxUtils.write(d,mxResources.get("height")+":"),u=document.createElement("input"),u.setAttribute("type","text"),u.style.width="50px",u.style.marginLeft="6px",u.style.marginBottom=
-"10px",u.value=f+"px",d.appendChild(u),mxUtils.br(d);var v=this.addLinkSection(d,q);e=null!=this.pages&&1<this.pages.length;var F=null;if(null==l||l.constructor!=window.DriveFile||c)F=this.addCheckbox(d,mxResources.get("allPages"),e,!e);var J=this.addCheckbox(d,mxResources.get("lightbox"),!0,null,null,!q),C=this.addEditButton(d,J),K=C.getEditInput();q&&(K.style.marginLeft=J.style.marginLeft,J.style.display="none",b-=20);var M=this.addCheckbox(d,mxResources.get("layers"),!0);M.style.marginLeft=K.style.marginLeft;
-M.style.marginTop="8px";var aa=this.addCheckbox(d,mxResources.get("tags"),!0);aa.style.marginLeft=K.style.marginLeft;aa.style.marginBottom="16px";aa.style.marginTop="16px";mxEvent.addListener(J,"change",function(){J.checked?(M.removeAttribute("disabled"),K.removeAttribute("disabled")):(M.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"));K.checked&&J.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,
-d,mxUtils.bind(this,function(){k(v.getTarget(),v.getColor(),null==F?!0:F.checked,J.checked,C.getLink(),M.checked,null!=p?p.value:null,null!=u?u.value:null,aa.checked)}),null,mxResources.get("create"),n,t);this.showDialog(c.container,340,300+b,!0,!0);null!=p?(p.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?p.select():document.execCommand("selectAll",!1,null)):v.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,f,k){var d=document.createElement("div");d.style.whiteSpace=
+"10px",u.value=f+"px",d.appendChild(u),mxUtils.br(d);var v=this.addLinkSection(d,q);e=null!=this.pages&&1<this.pages.length;var E=null;if(null==l||l.constructor!=window.DriveFile||c)E=this.addCheckbox(d,mxResources.get("allPages"),e,!e);var J=this.addCheckbox(d,mxResources.get("lightbox"),!0,null,null,!q),C=this.addEditButton(d,J),K=C.getEditInput();q&&(K.style.marginLeft=J.style.marginLeft,J.style.display="none",b-=20);var N=this.addCheckbox(d,mxResources.get("layers"),!0);N.style.marginLeft=K.style.marginLeft;
+N.style.marginTop="8px";var Z=this.addCheckbox(d,mxResources.get("tags"),!0);Z.style.marginLeft=K.style.marginLeft;Z.style.marginBottom="16px";Z.style.marginTop="16px";mxEvent.addListener(J,"change",function(){J.checked?(N.removeAttribute("disabled"),K.removeAttribute("disabled")):(N.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"));K.checked&&J.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,
+d,mxUtils.bind(this,function(){k(v.getTarget(),v.getColor(),null==E?!0:E.checked,J.checked,C.getLink(),N.checked,null!=p?p.value:null,null!=u?u.value:null,Z.checked)}),null,mxResources.get("create"),n,t);this.showDialog(c.container,340,300+b,!0,!0);null!=p?(p.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?p.select():document.execCommand("selectAll",!1,null)):v.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,f,k){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:"+(k?"10":"4")+"px";d.appendChild(g);if(k){mxUtils.write(d,mxResources.get("zoom")+":");var l=document.createElement("input");l.setAttribute("type","text");l.style.marginRight="16px";l.style.width="60px";l.style.marginLeft="4px";l.style.marginRight="12px";l.value=this.lastExportZoom||"100%";d.appendChild(l);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 p=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),n=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(l.value)/100||1,d=parseInt(m.value)||0;e(!p.checked,null!=n?n.checked:!1,null!=t?t.checked:!1,b,d)}),null,b,c);this.showDialog(b.container,300,(k?25:0)+(f?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(b,c,e,f,k,q,n,t,y){n=null!=n?n:Editor.defaultIncludeDiagram;var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=this.editor.graph,
l="jpeg"==t?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 p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.style.marginRight="12px";p.value=this.lastExportZoom||"100%";d.appendChild(p);mxUtils.write(d,mxResources.get("borderWidth")+":");var u=document.createElement("input");
u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.value=this.lastExportBorder||"0";d.appendChild(u);mxUtils.br(d);var v=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,g.isSelectionEmpty()),J=document.createElement("input");J.style.marginTop="16px";J.style.marginRight="8px";J.style.marginLeft="24px";J.setAttribute("disabled","disabled");J.setAttribute("type","checkbox");var C=document.createElement("select");C.style.marginTop="16px";C.style.marginLeft=
"8px";b=["selectionOnly","diagram","page"];for(m=0;m<b.length;m++)if(!g.isSelectionEmpty()||"selectionOnly"!=b[m]){var K=document.createElement("option");mxUtils.write(K,mxResources.get(b[m]));K.setAttribute("value",b[m]);C.appendChild(K)}y?(mxUtils.write(d,mxResources.get("size")+":"),d.appendChild(C),mxUtils.br(d),l+=26,mxEvent.addListener(C,"change",function(){"selectionOnly"==C.value&&(v.checked=!0)})):q&&(d.appendChild(J),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),l+=30,mxEvent.addListener(v,
-"change",function(){v.checked?J.removeAttribute("disabled"):J.setAttribute("disabled","disabled")}));g.isSelectionEmpty()?y&&(v.style.display="none",v.nextSibling.style.display="none",v.nextSibling.nextSibling.style.display="none",l-=30):(C.value="diagram",J.setAttribute("checked","checked"),J.defaultChecked=!0,mxEvent.addListener(v,"change",function(){C.value=v.checked?"selectionOnly":"diagram"}));var M=this.addCheckbox(d,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),aa=null;Editor.isDarkMode()&&
-(aa=this.addCheckbox(d,mxResources.get("dark"),!0),l+=26);var N=this.addCheckbox(d,mxResources.get("shadow"),g.shadowVisible),O=document.createElement("input");O.style.marginTop="16px";O.style.marginRight="8px";O.setAttribute("type","checkbox");var U=document.createElement("input");U.style.marginTop="16px";U.style.marginRight="8px";U.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||O.setAttribute("disabled","disabled");c&&(d.appendChild(O),mxUtils.write(d,mxResources.get("embedImages")),
-mxUtils.br(d),d.appendChild(U),mxUtils.write(d,mxResources.get("embedFonts")),mxUtils.br(d),l+=60);var E=null;if("png"==t||"jpeg"==t)E=this.addCheckbox(d,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=30;var I=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=t);I.style.marginBottom="16px";var A=document.createElement("select");A.style.maxWidth="260px";A.style.marginLeft="8px";A.style.marginRight="10px";A.className="geBtn";c=document.createElement("option");
+"change",function(){v.checked?J.removeAttribute("disabled"):J.setAttribute("disabled","disabled")}));g.isSelectionEmpty()?y&&(v.style.display="none",v.nextSibling.style.display="none",v.nextSibling.nextSibling.style.display="none",l-=30):(C.value="diagram",J.setAttribute("checked","checked"),J.defaultChecked=!0,mxEvent.addListener(v,"change",function(){C.value=v.checked?"selectionOnly":"diagram"}));var N=this.addCheckbox(d,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),Z=null;Editor.isDarkMode()&&
+(Z=this.addCheckbox(d,mxResources.get("dark"),!0),l+=26);var M=this.addCheckbox(d,mxResources.get("shadow"),g.shadowVisible),O=document.createElement("input");O.style.marginTop="16px";O.style.marginRight="8px";O.setAttribute("type","checkbox");var U=document.createElement("input");U.style.marginTop="16px";U.style.marginRight="8px";U.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||O.setAttribute("disabled","disabled");c&&(d.appendChild(O),mxUtils.write(d,mxResources.get("embedImages")),
+mxUtils.br(d),d.appendChild(U),mxUtils.write(d,mxResources.get("embedFonts")),mxUtils.br(d),l+=60);var F=null;if("png"==t||"jpeg"==t)F=this.addCheckbox(d,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=30;var I=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=t);I.style.marginBottom="16px";var A=document.createElement("select");A.style.maxWidth="260px";A.style.marginLeft="8px";A.style.marginRight="10px";A.className="geBtn";c=document.createElement("option");
c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));A.appendChild(c);c=document.createElement("option");c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("openInNewWindow"));A.appendChild(c);c=document.createElement("option");c.setAttribute("value","self");mxUtils.write(c,mxResources.get("openInThisWindow"));A.appendChild(c);"svg"==t&&(mxUtils.write(d,mxResources.get("links")+":"),d.appendChild(A),mxUtils.br(d),mxUtils.br(d),l+=50);e=new CustomDialog(this,d,
-mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=p.value;k(p.value,M.checked,!v.checked,N.checked,I.checked,O.checked,u.value,J.checked,!1,A.value,null!=E?E.checked:null,null!=aa?aa.checked:null,C.value,U.checked)}),null,e,f);this.showDialog(e.container,340,l,!0,!0,null,null,null,null,!0);p.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?p.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,e,f,k){var d=
+mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=p.value;k(p.value,N.checked,!v.checked,M.checked,I.checked,O.checked,u.value,J.checked,!1,A.value,null!=F?F.checked:null,null!=Z?Z.checked:null,C.value,U.checked)}),null,e,f);this.showDialog(e.container,340,l,!0,!0,null,null,null,null,!0);p.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?p.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,e,f,k){var d=
document.createElement("div");d.style.whiteSpace="nowrap";var g=this.editor.graph;if(null!=c){var l=document.createElement("h3");mxUtils.write(l,c);l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(l)}var m=this.addCheckbox(d,mxResources.get("fit"),!0),p=this.addCheckbox(d,mxResources.get("shadow"),g.shadowVisible&&f,!f),n=this.addCheckbox(d,e),t=this.addCheckbox(d,mxResources.get("lightbox"),!0),z=this.addEditButton(d,t),D=z.getEditInput(),L=1<g.model.getChildCount(g.model.getRoot()),
-F=this.addCheckbox(d,mxResources.get("layers"),L,!L);F.style.marginLeft=D.style.marginLeft;F.style.marginBottom="12px";F.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?(L&&F.removeAttribute("disabled"),D.removeAttribute("disabled")):(F.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"));D.checked&&t.checked?z.getEditSelect().removeAttribute("disabled"):z.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,
-function(){b(m.checked,p.checked,n.checked,t.checked,z.getLink(),F.checked)}),null,mxResources.get("embed"),k);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,e,f,k,q,n,t){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('"+
+E=this.addCheckbox(d,mxResources.get("layers"),L,!L);E.style.marginLeft=D.style.marginLeft;E.style.marginBottom="12px";E.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?(L&&E.removeAttribute("disabled"),D.removeAttribute("disabled")):(E.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"));D.checked&&t.checked?z.getEditSelect().removeAttribute("disabled"):z.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,
+function(){b(m.checked,p.checked,n.checked,t.checked,z.getLink(),E.checked)}),null,mxResources.get("embed"),k);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,e,f,k,q,n,t){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!=l?"&page="+l:"")+(k?"&edit=_blank":"")+(q?"&layers=1":"")+"');}})(this);\"",m+="cursor:pointer;");b&&(m+="max-width:100%;");var p="";e&&(p=' width="'+Math.round(g.width)+'" height="'+Math.round(g.height)+'"');n('<img src="'+d+'"'+p+(""!=m?' style="'+m+'"':"")+c+"/>")}var g=this.editor.graph.getGraphBounds(),l=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){t({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 p=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(f?"1":"0")+m+"&xml="+encodeURIComponent(c));p.send(mxUtils.bind(this,function(){200<=p.getStatus()&&
299>=p.getStatus()?d("data:image/png;base64,"+p.getText()):t({message:mxResources.get("unknownError")})}))}else t({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(b,c,e,f,k,q,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 l=0;l<g.length;l++){var m=g[l].getAttribute("href");null!=m&&"#"==m.charAt(0)&&"_blank"==g[l].getAttribute("target")&&g[l].removeAttribute("target")}f&&
@@ -3551,10 +3549,10 @@ arguments)};document.body.appendChild(d.container);d.model.setRoot(p.root)}this.
c(b)}),null,null,f,null,d.shadowVisible,null,d,k,null,null,null,"diagram",null)}catch(G){null!=c&&c(G)}};EditorUi.prototype.getEmbeddedSvg=function(b,c,e,f,k,q,n,t,y,x,G,H,z){t=null!=t?t:!0;G=null!=G?G:0;n=null!=y?y:c.background;n==mxConstants.NONE&&(n=null);q=c.getSvg(n,x,G,null,null,q,null,null,null,c.shadowVisible||H,null,z,"diagram");(c.shadowVisible||H)&&c.addSvgShadow(q,null,null,0==G);null!=b&&q.setAttribute("content",b);null!=e&&q.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!=k&&k(b);return b});c.mathEnabled&&this.editor.addMathCss(q);if(null!=k)this.embedFonts(q,mxUtils.bind(this,function(b){t?this.editor.convertImages(b,mxUtils.bind(this,function(b){d(b)})):d(b)}));else return d(q)};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(m){c(b)}}))}catch(l){c(b)}}))};EditorUi.prototype.exportImage=function(b,c,e,f,k,q,n,t,y,x,G,H,z){y=null!=y?y:"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,
-k?this.getFileData(!0,null,null,null,e,t):null,y,null==this.pages||0==this.pages.length,G)}catch(F){this.handleError(F)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,e,b||1,c,f,null,null,q,n,x,H,z)}catch(L){this.spinner.stop(),this.handleError(L)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,e,f,k,q,n){c=null!=c?c:0;e=null!=e?e:0;var d=[];try{var g=
+k?this.getFileData(!0,null,null,null,e,t):null,y,null==this.pages||0==this.pages.length,G)}catch(E){this.handleError(E)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,e,b||1,c,f,null,null,q,n,x,H,z)}catch(L){this.spinner.stop(),this.handleError(L)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,e,f,k,q,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 l=mxUtils.parseXml(b);b={};var m=this.editor.extractGraphModel(l.documentElement,null!=this.pages);if(null!=m&&"mxfile"==m.nodeName&&null!=this.pages){var p=m.getElementsByTagName("diagram");if(1==p.length&&!q){if(m=Editor.parseDiagramNode(p[0]),null!=this.currentPage&&(b[p[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",
-[1]))){var t=p[0].getAttribute("name");null!=t&&""!=t&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,t))}}else if(0<p.length){q=[];var u=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(b[p[0].getAttribute("id")]=this.pages[0].getId(),m=Editor.parseDiagramNode(p[0]),f=!1,u=1);for(;u<p.length;u++){var L=p[u].getAttribute("id");p[u].removeAttribute("id");var F=this.updatePageRoot(new DiagramPage(p[u]));b[L]=p[u].getAttribute("id");var J=this.pages.length;null==
-F.getName()&&F.setName(mxResources.get("pageWithNumber",[J+1]));g.model.execute(new ChangePage(this,F,F,J,!0));q.push(F)}this.updatePageLinks(b,q)}}if(null!=m&&"mxGraphModel"===m.nodeName&&(d=g.importGraphModel(m,c,e,f),null!=d))for(u=0;u<d.length;u++)this.updatePageLinksForCell(b,d[u]);n&&this.insertHandler(d,null,null,g.defaultVertexStyle,g.defaultEdgeStyle,!1,!0)}finally{g.model.endUpdate()}}}catch(C){if(k)throw C;this.handleError(C)}return d};EditorUi.prototype.updatePageLinks=function(b,c){for(var d=
+[1]))){var t=p[0].getAttribute("name");null!=t&&""!=t&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,t))}}else if(0<p.length){q=[];var u=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(b[p[0].getAttribute("id")]=this.pages[0].getId(),m=Editor.parseDiagramNode(p[0]),f=!1,u=1);for(;u<p.length;u++){var L=p[u].getAttribute("id");p[u].removeAttribute("id");var E=this.updatePageRoot(new DiagramPage(p[u]));b[L]=p[u].getAttribute("id");var J=this.pages.length;null==
+E.getName()&&E.setName(mxResources.get("pageWithNumber",[J+1]));g.model.execute(new ChangePage(this,E,E,J,!0));q.push(E)}this.updatePageLinks(b,q)}}if(null!=m&&"mxGraphModel"===m.nodeName&&(d=g.importGraphModel(m,c,e,f),null!=d))for(u=0;u<d.length;u++)this.updatePageLinksForCell(b,d[u]);n&&this.insertHandler(d,null,null,g.defaultVertexStyle,g.defaultEdgeStyle,!1,!0)}finally{g.model.endUpdate()}}}catch(C){if(k)throw C;this.handleError(C)}return d};EditorUi.prototype.updatePageLinks=function(b,c){for(var d=
0;d<c.length;d++)this.updatePageLinksForCell(b,c[d].root)};EditorUi.prototype.updatePageLinksForCell=function(b,c){var d=document.createElement("div"),e=this.editor.graph,g=e.getLinkForCell(c);null!=g&&e.setLinkForCell(c,this.updatePageLink(b,g));if(e.isHtmlLabel(c)){d.innerHTML=e.sanitizeHtml(e.getLabel(c));for(var f=d.getElementsByTagName("a"),k=!1,n=0;n<f.length;n++)g=f[n].getAttribute("href"),null!=g&&(f[n].setAttribute("href",this.updatePageLink(b,g)),k=!0);k&&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 g=0;g<e.actions.length;g++){var f=e.actions[g];if(null!=f.open&&Graph.isPageLink(f.open)){var k=f.open.substring(f.open.indexOf(",")+1),d=b[k];null!=d?f.open=
"data:page/id,"+d:null==this.getPageById(k)&&delete f.open}}c="data:action/json,"+JSON.stringify(e)}}catch(v){}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,k){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=
@@ -3590,196 +3588,196 @@ null!=f?f:this.maxImageSize;x=null!=x?x:this.maxImageBytes;var d=null!=c&&null!=
b,k)),null):this.importFile(b,c,e,g,f,l,k,m,p,d,H,z)}catch(la){return this.handleError(la),null}});q=null!=q?q:mxUtils.bind(this,function(b){l.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=b.length,u=p,v=[],C=mxUtils.bind(this,function(b,d){v[b]=d;if(0==--u){this.spinner.stop();if(null!=t)t(v);else{var c=[];l.getModel().beginUpdate();try{for(var e=0;e<v.length;e++){var g=v[e]();null!=g&&(c=c.concat(g))}}finally{l.getModel().endUpdate()}}q(c)}}),y=
0;y<p;y++)mxUtils.bind(this,function(d){var p=b[d];if(null!=p){var q=new FileReader;q.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 q=Graph.clipSvgDataUri(b.target.result),t=q.indexOf(","),u=decodeURIComponent(escape(atob(q.substring(t+1)))),v=mxUtils.parseXml(u),u=v.getElementsByTagName("svg");if(0<u.length){var u=u[0],z=H?null:u.getAttribute("content");null!=z&&"<"!=z.charAt(0)&&"%"!=z.charAt(0)&&(z=unescape(window.atob?
atob(z):Base64.decode(z,!0)));null!=z&&"%"==z.charAt(0)&&(z=decodeURIComponent(z));null==z||"<mxfile "!==z.substring(0,8)&&"<mxGraphModel "!==z.substring(0,14)?C(d,mxUtils.bind(this,function(){try{if(q.substring(0,t+1),null!=v){var b=v.getElementsByTagName("svg");if(0<b.length){var g=b[0],n=g.getAttribute("width"),u=g.getAttribute("height"),n=null!=n&&"%"!=n.charAt(n.length-1)?parseFloat(n):NaN,u=null!=u&&"%"!=u.charAt(u.length-1)?parseFloat(u):NaN,x=g.getAttribute("viewBox");if(null==x||0==x.length)g.setAttribute("viewBox",
-"0 0 "+n+" "+u);else if(isNaN(n)||isNaN(u)){var C=x.split(" ");3<C.length&&(n=parseFloat(C[2]),u=parseFloat(C[3]))}q=Editor.createSvgDataUri(mxUtils.getXml(g));var z=Math.min(1,Math.min(f/Math.max(1,n)),f/Math.max(1,u)),N=k(q,p.type,c+d*m,e+d*m,Math.max(1,Math.round(n*z)),Math.max(1,Math.round(u*z)),p.name);if(isNaN(n)||isNaN(u)){var y=new Image;y.onload=mxUtils.bind(this,function(){n=Math.max(1,y.width);u=Math.max(1,y.height);N[0].geometry.width=n;N[0].geometry.height=u;g.setAttribute("viewBox",
-"0 0 "+n+" "+u);q=Editor.createSvgDataUri(mxUtils.getXml(g));var b=q.indexOf(";");0<b&&(q=q.substring(0,b)+q.substring(q.indexOf(",",b+1)));l.setCellStyles("image",q,[N[0]])});y.src=Editor.createSvgDataUri(mxUtils.getXml(g))}return N}}}catch(ia){}return null})):C(d,mxUtils.bind(this,function(){return k(z,"text/xml",c+d*m,e+d*m,0,0,p.name)}))}else C(d,mxUtils.bind(this,function(){return null}))}else{u=!1;if("image/png"==p.type){var N=H?null:this.extractGraphModelFromPng(b.target.result);if(null!=N&&
-0<N.length){var y=new Image;y.src=b.target.result;C(d,mxUtils.bind(this,function(){return k(N,"text/xml",c+d*m,e+d*m,y.width,y.height,p.name)}));u=!0}}u||(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(l){this.resizeImage(l,
+"0 0 "+n+" "+u);else if(isNaN(n)||isNaN(u)){var C=x.split(" ");3<C.length&&(n=parseFloat(C[2]),u=parseFloat(C[3]))}q=Editor.createSvgDataUri(mxUtils.getXml(g));var z=Math.min(1,Math.min(f/Math.max(1,n)),f/Math.max(1,u)),M=k(q,p.type,c+d*m,e+d*m,Math.max(1,Math.round(n*z)),Math.max(1,Math.round(u*z)),p.name);if(isNaN(n)||isNaN(u)){var y=new Image;y.onload=mxUtils.bind(this,function(){n=Math.max(1,y.width);u=Math.max(1,y.height);M[0].geometry.width=n;M[0].geometry.height=u;g.setAttribute("viewBox",
+"0 0 "+n+" "+u);q=Editor.createSvgDataUri(mxUtils.getXml(g));var b=q.indexOf(";");0<b&&(q=q.substring(0,b)+q.substring(q.indexOf(",",b+1)));l.setCellStyles("image",q,[M[0]])});y.src=Editor.createSvgDataUri(mxUtils.getXml(g))}return M}}}catch(ia){}return null})):C(d,mxUtils.bind(this,function(){return k(z,"text/xml",c+d*m,e+d*m,0,0,p.name)}))}else C(d,mxUtils.bind(this,function(){return null}))}else{u=!1;if("image/png"==p.type){var M=H?null:this.extractGraphModelFromPng(b.target.result);if(null!=M&&
+0<M.length){var y=new Image;y.src=b.target.result;C(d,mxUtils.bind(this,function(){return k(M,"text/xml",c+d*m,e+d*m,y.width,y.height,p.name)}));u=!0}}u||(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(l){this.resizeImage(l,
b.target.result,mxUtils.bind(this,function(b,l,q){C(d,mxUtils.bind(this,function(){if(null!=b&&b.length<x){var n=g&&this.isResampleImageSize(p.size,G)?Math.min(1,Math.min(f/l,f/q)):1;return k(b,p.type,c+d*m,e+d*m,Math.round(l*n),Math.round(q*n),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 q=b.target.result,k(q,p.type,c+d*m,e+d*m,240,160,p.name,
function(b){C(d,function(){return b})},p)});/(\.v(dx|sdx?))($|\?)/i.test(p.name)||/(\.vs(x|sx?))($|\?)/i.test(p.name)?k(null,p.type,c+d*m,e+d*m,240,160,p.name,function(b){C(d,function(){return b})},p):"image"==p.type.substring(0,5)||"application/pdf"==p.type?q.readAsDataURL(p):q.readAsText(p)}})(y)});if(l){l=[];for(p=0;p<b.length;p++)l.push(b[p]);b=l;this.confirmImageResize(function(b){g=b;u()},y)}else u()};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,g=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){g(b,!0)},function(b){g(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):g(!1,e)};EditorUi.prototype.parseFile=function(b,c,e){e=null!=e?e:b.name;var d=new FormData;d.append("format","xml");d.append("upfile",b,e);var g=new XMLHttpRequest;g.open("POST",OPEN_URL);g.onreadystatechange=function(){c(g)};g.send(d);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+b.size})}catch(q){}};EditorUi.prototype.isResampleImageSize=function(b,
c){c=null!=c?c:this.resampleThreshold;return b>c};EditorUi.prototype.resizeImage=function(b,c,e,f,k,q,n){k=null!=k?k:this.maxImageSize;var d=Math.max(1,b.width),g=Math.max(1,b.height);if(f&&this.isResampleImageSize(null!=n?n:c.length,q))try{var l=Math.max(d/k,g/k);if(1<l){var m=Math.round(d/l),p=Math.round(g/l),t=document.createElement("canvas");t.width=m;t.height=p;t.getContext("2d").drawImage(b,0,0,m,p);var u=t.toDataURL();if(u.length<c.length){var L=document.createElement("canvas");L.width=m;L.height=
-p;var F=L.toDataURL();u!==F&&(c=u,d=m,g=p)}}}catch(J){}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(p){if(null!=e)e(p);else throw p;}};var f=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&
+p;var E=L.toDataURL();u!==E&&(c=u,d=m,g=p)}}}catch(J){}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(p){if(null!=e)e(p);else throw p;}};var f=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:"0"!=urlParams.rough),this.formatWidth=mxSettings.getFormatWidth());var b=this,c=this.editor.graph;Editor.isDarkMode()&&(c.view.defaultGridColor=mxGraphView.prototype.defaultDarkGridColor);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,l,k){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=l,m.height=k,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,l,k){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,
l),m.height=Math.max(m.height,k),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 l=c.getCellStyle(d);"1"==mxUtils.getValue(l,"metaEdit","0")?b.showDataDialog(d):e.apply(this,arguments)}}catch(aa){b.handleError(aa)}};c.getLinkTitle=function(d){return b.getLinkTitle(d)};c.customLinkClicked=function(d){var c=!1;try{b.handleCustomLink(d),c=!0}catch(K){b.handleError(K)}return c};var k=c.parseBackgroundImage;c.parseBackgroundImage=function(b){var d=k.apply(this,arguments);null!=d&&null!=d.src&&Graph.isPageLink(d.src)&&(d={originalSrc:d.src});
+null!=f)this.editMermaidData(d,g,f);else{var l=c.getCellStyle(d);"1"==mxUtils.getValue(l,"metaEdit","0")?b.showDataDialog(d):e.apply(this,arguments)}}catch(Z){b.handleError(Z)}};c.getLinkTitle=function(d){return b.getLinkTitle(d)};c.customLinkClicked=function(d){var c=!1;try{b.handleCustomLink(d),c=!0}catch(K){b.handleError(K)}return c};var k=c.parseBackgroundImage;c.parseBackgroundImage=function(b){var d=k.apply(this,arguments);null!=d&&null!=d.src&&Graph.isPageLink(d.src)&&(d={originalSrc:d.src});
return d};var p=c.setBackgroundImage;c.setBackgroundImage=function(d){null!=d&&null!=d.originalSrc&&(d=b.createImageForPageLink(d.originalSrc,b.currentPage,this));p.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]){c.refreshBackgroundImage();break}}}));var q=c.getBackgroundImageObject;c.getBackgroundImageObject=function(d,c){var e=q.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;this.stylesheet=this.getDefaultStylesheet();
-e=b.createImageForPageLink(e.originalSrc);this.stylesheet=g}return e};var n=this.clearDefaultStyle;this.clearDefaultStyle=function(){n.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 t=b.editor.getEditBlankUrl;
-this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1");return t.apply(this,arguments)};var y=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)};y.call(this,b,d,e)};f.apply(this,arguments);
-mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var x=Menus.prototype.addPopupMenuEditItems;this.menus.addPopupMenuEditItems=function(d,c,e){b.editor.graph.isSelectionEmpty()?x.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?450:370,!0,!0)};this.defaultFilename=
-mxResources.get("untitledDiagram");var G=c.getExportVariables;c.getExportVariables=function(){var d=G.apply(this,arguments),c=b.getCurrentFile();null!=c&&(d.filename=c.getTitle());d.pagecount=null!=b.pages?b.pages.length:1;d.page=null!=b.currentPage?b.currentPage.getName():"";d.pagenumber=null!=b.pages&&null!=b.currentPage?mxUtils.indexOf(b.pages,b.currentPage)+1:1;return d};var H=c.getGlobalVariable;c.getGlobalVariable=function(d){var c=b.getCurrentFile();return"filename"==d&&null!=c?c.getTitle():
-"page"==d&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==d?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:"pagecount"==d?null!=b.pages?b.pages.length:1:H.apply(this,arguments)};var z=c.labelLinkClicked;c.labelLinkClicked=function(b,d,e){var g=d.getAttribute("href");if(null==g||!c.isCustomLink(g)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))z.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))c.customLinkClicked(g),c.getRubberband().reset();
-mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var d=b.defaultFilename,c=b.getCurrentFile();null!=c&&(d=null!=c.getTitle()?c.getTitle():d);return d};var D=this.actions.get("print");D.setEnabled(!mxClient.IS_IOS||!navigator.standalone);D.visible=D.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,!0,"findReplace"),this.keyHandler.bindAction(67,!0,"copyStyle",!0),this.keyHandler.bindAction(86,!0,"pasteStyle",!0),this.keyHandler.bindAction(77,
-!0,"editGeometry",!0),this.keyHandler.bindAction(88,!0,"insertText",!0),this.keyHandler.bindAction(75,!0,"insertRectangle"),this.keyHandler.bindAction(75,!0,"insertEllipse",!0),this.altShiftActions[83]="synchronize",this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(null,null,24);Graph.fileSupport&&c.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(b){var d=c.cellEditor.text2,e=null;null!=d&&(mxEvent.addListener(d,"dragleave",function(b){null!=
-e&&(e.parentNode.removeChild(e),e=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(b){null==e&&(!mxClient.IS_IE||10<document.documentMode)&&(e=this.highlightElement(d));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(d,"drop",mxUtils.bind(this,function(b){null!=e&&(e.parentNode.removeChild(e),e=null);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,function(b,d,e,g,f,l){c.insertImage(b,
-f,l)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()},mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var d=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(d)?this.loadImage(decodeURIComponent(d),mxUtils.bind(this,function(b){var e=Math.max(1,b.width);b=Math.max(1,b.height);var g=this.maxImageSize,g=Math.min(1,Math.min(g/Math.max(1,e)),g/Math.max(1,b));c.insertImage(decodeURIComponent(d),
-e*g,b*g)})):document.execCommand("insertHTML",!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()&&(D=this.editor.graph.view,D.setUnit(mxSettings.getUnit()),D.addListener("unitChanged",
-function(b,d){mxSettings.setUnit(d.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,D.unit),this.refresh());if("1"==urlParams.styledev){D=document.getElementById("geFooter");null!=D&&(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)})),D.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(b,d){if(0<this.editor.graph.getSelectionCount()){var c=
-this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var L=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==this.styleInput?!0:L.apply(this,arguments)}}D=document.getElementById("geInfo");null!=D&&D.parentNode.removeChild(D);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var F=null;mxEvent.addListener(c.container,
-"dragleave",function(b){c.isEnabled()&&(null!=F&&(F.parentNode.removeChild(F),F=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(b){null==F&&(!mxClient.IS_IE||10<document.documentMode)&&(F=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!=F&&(F.parentNode.removeChild(F),F=null);if(c.isEnabled()){var d=
-mxUtils.convertPoint(c.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),e=c.view.translate,g=c.view.scale,f=d.x/g-e.x,l=d.y/g-e.y;if(0<b.dataTransfer.files.length)mxEvent.isShiftDown(b)?this.openFiles(b.dataTransfer.files,!0):(mxEvent.isAltDown(b)&&(l=f=null),this.importFiles(b.dataTransfer.files,f,l,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b),b));else{mxEvent.isAltDown(b)&&(l=f=0);var k=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?
-b.dataTransfer.getData("text/uri-list"):null,d=this.extractGraphModelFromEvent(b,null!=this.pages);if(null!=d)c.setSelectionCells(this.importXml(d,f,l,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){var m=b.dataTransfer.getData("text/html"),d=document.createElement("div");d.innerHTML=c.sanitizeHtml(m);var p=null,e=d.getElementsByTagName("img");null!=e&&1==e.length?(m=e[0].getAttribute("src"),null==m&&(m=e[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)||(p=
-!0)):(e=d.getElementsByTagName("a"),null!=e&&1==e.length?m=e[0].getAttribute("href"):(d=d.getElementsByTagName("pre"),null!=d&&1==d.length&&(m=mxUtils.getTextContent(d[0]))));var q=!0,n=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(m,f,l,!0,p,null,q,mxEvent.isControlDown(b)))});p&&null!=m&&m.length>this.resampleThreshold?this.confirmImageResize(function(b){q=b;n()},mxEvent.isControlDown(b)):n()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),
-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,"",f,l,d*e,b*e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+k+";"))}),mxUtils.bind(this,function(b){c.setSelectionCells(this.insertTextAt(k,f,l,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&c.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),
-f,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,g=0;g<c.types.length;g++)if("text/"===c.types[g].substring(0,5)){e=!0;break}if(!e){var f=
-c.items;for(index in f){var k=f[index];if("file"===k.kind){if(b.isEditing())this.importFiles([k.getAsFile()],0,0,this.maxImageSize,function(d,c,e,g,f,l){b.insertImage(d,f,l)},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([k.getAsFile()],n.x,n.y,this.maxImageSize);mxEvent.consume(d)}break}}}}catch(y){}}),!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","false");e.style.textRendering="optimizeSpeed";e.style.fontFamily="monospace";e.style.wordBreak="break-all";e.style.background="transparent";e.style.color="transparent";e.style.position="absolute";e.style.whiteSpace="nowrap";e.style.overflow=
-"hidden";e.style.display="block";e.style.fontSize="1";e.style.zIndex="-1";e.style.resize="none";e.style.outline="none";e.style.width="1px";e.style.height="1px";mxUtils.setOpacity(e,0);e.contentEditable=!0;e.innerHTML="&nbsp;";var f=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var d=mxEvent.getSource(b);null==c.container||!c.isEnabled()||c.isMouseDown||
-c.isEditing()||null!=this.dialog||"INPUT"==d.nodeName||"TEXTAREA"==d.nodeName||224!=b.keyCode&&(mxClient.IS_MAC||17!=b.keyCode)&&(!mxClient.IS_MAC||91!=b.keyCode&&93!=b.keyCode)||f||(e.style.left=c.container.scrollLeft+10+"px",e.style.top=c.container.scrollTop+10+"px",c.container.appendChild(e),f=!0,e.focus(),document.execCommand("selectAll",!1,null))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var d=b.keyCode;window.setTimeout(mxUtils.bind(this,function(){!f||224!=d&&17!=
-d&&91!=d&&93!=d||(f=!1,c.isEditing()||null!=this.dialog||null==c.container||c.container.focus(),e.parentNode.removeChild(e),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(e,"copy",mxUtils.bind(this,function(d){if(c.isEnabled())try{mxClipboard.copy(c),this.copyCells(e),b()}catch(u){this.handleError(u)}}));mxEvent.addListener(e,"cut",mxUtils.bind(this,function(d){if(c.isEnabled())try{mxClipboard.copy(c),this.copyCells(e,!0),b()}catch(u){this.handleError(u)}}));mxEvent.addListener(e,
-"paste",mxUtils.bind(this,function(b){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&(e.innerHTML="&nbsp;",e.focus(),null!=b.clipboardData&&this.pasteCells(b,e,!0,!0),mxEvent.isConsumed(b)||window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,e,!1,!0)}),0))}),!0);var k=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==e?!0:k.apply(this,arguments)}};EditorUi.prototype.setSketchMode=function(b){this.spinner.spin(document.body,mxResources.get("working")+
-"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetSketchMode(b);null==urlParams.rough&&(mxSettings.settings.sketchMode=b,mxSettings.save());this.fireEvent(new mxEventObject("sketchModeChanged"))}),0)};EditorUi.prototype.setPagesVisible=function(b){Editor.pagesVisible!=b&&(Editor.pagesVisible=b,mxSettings.settings.pagesVisible=b,mxSettings.save(),this.fireEvent(new mxEventObject("pagesVisibleChanged")))};EditorUi.prototype.setInlineFullscreen=function(b){Editor.inlineFullscreen!=
-b&&(Editor.inlineFullscreen=b,this.fireEvent(new mxEventObject("inlineFullscreenChanged")),(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:this.diagramContainer.getBoundingClientRect()}),"*"),window.setTimeout(mxUtils.bind(this,function(){this.refresh();this.actions.get("resetView").funct()}),10))};EditorUi.prototype.doSetSketchMode=function(b){if(Editor.sketchMode!=b){var d=function(b,d,c){null==b[d]&&(b[d]=c)},c=this.editor.graph;
-Editor.sketchMode=b;this.menus.defaultFonts=Menus.prototype.defaultFonts;this.menus.defaultFontSize=b?20:16;c.defaultVertexStyle=mxUtils.clone(Graph.prototype.defaultVertexStyle);d(c.defaultVertexStyle,"fontSize",this.menus.defaultFontSize);c.defaultEdgeStyle=mxUtils.clone(Graph.prototype.defaultEdgeStyle);d(c.defaultEdgeStyle,"fontSize",this.menus.defaultFontSize-4);d(c.defaultEdgeStyle,"edgeStyle","none");d(c.defaultEdgeStyle,"rounded","0");d(c.defaultEdgeStyle,"curved","1");d(c.defaultEdgeStyle,
-"jettySize","auto");d(c.defaultEdgeStyle,"orthogonalLoop","1");d(c.defaultEdgeStyle,"endArrow","open");d(c.defaultEdgeStyle,"endSize","14");d(c.defaultEdgeStyle,"startSize","14");b&&(d(c.defaultVertexStyle,"fontFamily",Editor.sketchFontFamily),d(c.defaultVertexStyle,"fontSource",Editor.sketchFontSource),d(c.defaultVertexStyle,"hachureGap","4"),d(c.defaultVertexStyle,"sketch","1"),d(c.defaultEdgeStyle,"fontFamily",Editor.sketchFontFamily),d(c.defaultEdgeStyle,"fontSource",Editor.sketchFontSource),
-d(c.defaultEdgeStyle,"sketch","1"),d(c.defaultEdgeStyle,"hachureGap","4"),d(c.defaultEdgeStyle,"sourcePerimeterSpacing","8"),d(c.defaultEdgeStyle,"targetPerimeterSpacing","8"),this.menus.defaultFonts=[{fontFamily:Editor.sketchFontFamily,fontUrl:decodeURIComponent(Editor.sketchFontSource)},{fontFamily:"Rock Salt",fontUrl:"https://fonts.googleapis.com/css?family=Rock+Salt"},{fontFamily:"Permanent Marker",fontUrl:"https://fonts.googleapis.com/css?family=Permanent+Marker"}].concat(this.menus.defaultFonts));
-c.currentVertexStyle=mxUtils.clone(c.defaultVertexStyle);c.currentEdgeStyle=mxUtils.clone(c.defaultEdgeStyle);this.clearDefaultStyle()}};EditorUi.prototype.getLinkTitle=function(b){var d=Graph.prototype.getLinkTitle.apply(this,arguments);if(Graph.isPageLink(b)){var c=b.indexOf(",");0<c&&(d=this.getPageById(b.substring(c+1)),d=null!=d?d.getName():mxResources.get("pageNotFound"))}else"data:"==b.substring(0,5)&&(d=mxResources.get("action"));return d};EditorUi.prototype.handleCustomLink=function(b){if(Graph.isPageLink(b)){var d=
-b.indexOf(",");if(b=this.getPageById(b.substring(d+1)))this.selectPage(b);else throw Error(mxResources.get("pageNotFound")||"Page not found");}else this.editor.graph.handleCustomLink(b)};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){Editor.pagesVisible=mxSettings.settings.pagesVisible;ColorDialog.recentColors=mxSettings.getRecentColors();
-if(isLocalStorage)try{window.addEventListener("storage",mxUtils.bind(this,function(b){b.key==mxSettings.key&&(mxSettings.load(),ColorDialog.recentColors=mxSettings.getRecentColors(),this.menus.customFonts=mxSettings.getCustomFonts())}),!1)}catch(d){}this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]));this.menus.customFonts=mxSettings.getCustomFonts();this.addListener("customFontsChanged",mxUtils.bind(this,function(b,c){if("1"!=urlParams["ext-fonts"])mxSettings.setCustomFonts(this.menus.customFonts);
-else{var d=c.getProperty("customFonts");this.menus.customFonts=d;mxSettings.setCustomFonts(d)}mxSettings.save()}));this.editor.graph.connectionHandler.setCreateTarget(mxSettings.isCreateTarget());this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyConnectChanged",mxUtils.bind(this,function(b,c){mxSettings.setCreateTarget(this.editor.graph.connectionHandler.isCreateTarget());mxSettings.save()}));this.editor.graph.pageFormat=null!=this.editor.graph.defaultPageFormat?this.editor.graph.defaultPageFormat:
-mxSettings.getPageFormat();this.addListener("pageFormatChanged",mxUtils.bind(this,function(b,c){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor(Editor.isDarkMode());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(y){this.handleError(y)}}),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(m){this.handleError(m)}};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())),g=mxUtils.getXml(d.encodeCells(e));mxUtils.setTextContent(b,encodeURIComponent(g));c?(d.removeCells(e,!1),d.lastPasteXml=null):(d.lastPasteXml=
-g,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 m=decodeURIComponent(k);this.isCompatibleString(m)&&(l=!0,k=m)}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 n=g.lastIndexOf("%3E");0<=n&&n<
-g.length-3&&(g=g.substring(0,n+3))}catch(H){}try{k=d.getElementsByTagName("span"),m=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(g),this.isCompatibleString(m)&&(l=!0,g=m)}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&&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.isOffline()&&this.isRemoteFileFormat(c)?(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(),null,!0)})):/^https?:\/\//.test(c)&&(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(c):window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+
-encodeURIComponent(c)))))}else this.openLocalFile(c,null,!0)}b.stopPropagation();b.preventDefault()}))};EditorUi.prototype.highlightElement=function(b){var d=0,c=0,e,f;if(null==b){f=document.body;var k=document.documentElement;e=(f.clientWidth||k.clientWidth)-3;f=Math.max(f.clientHeight||0,k.clientHeight)-3}else d=b.offsetTop,c=b.offsetLeft,e=b.clientWidth,f=b.clientHeight;k=document.createElement("div");k.style.zIndex=mxPopupMenu.prototype.zIndex+2;k.style.border="3px dotted rgb(254, 137, 12)";k.style.pointerEvents=
-"none";k.style.position="absolute";k.style.top=d+"px";k.style.left=c+"px";k.style.width=Math.max(0,e-3)+"px";k.style.height=Math.max(0,f-3)+"px";null!=b&&b.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(k):document.body.appendChild(k);return k};EditorUi.prototype.stringToCells=function(b){b=mxUtils.parseXml(b);var d=this.editor.extractGraphModel(b.documentElement);b=[];if(null!=d){var c=new mxCodec(d.ownerDocument),e=new mxGraphModel;c.decode(d,e);d=e.getChildAt(e.getRoot(),
-0);for(c=0;c<e.getChildCount(d);c++)b.push(e.getChildAt(d,c))}return b};EditorUi.prototype.openFileHandle=function(b,c,e,f,k){if(null!=c&&0<c.length){!this.useCanvasForExport&&/(\.png)$/i.test(c)?c=c.substring(0,c.length-4)+".drawio":/(\.pdf)$/i.test(c)&&(c=c.substring(0,c.length-4)+".drawio");var d=mxUtils.bind(this,function(b){c=0<=c.lastIndexOf(".")?c.substring(0,c.lastIndexOf("."))+".drawio":c+".drawio";if("<mxlibrary"==b.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,
-this.defaultFilename,f);try{this.loadLibrary(new LocalLibrary(this,b,c))}catch(y){this.handleError(y,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(b,c,f)});if(/(\.v(dx|sdx?))($|\?)/i.test(c)||/(\.vs(x|sx?))($|\?)/i.test(c))this.importVisio(e,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}));else if(/(\.*<graphml )/.test(b))this.importGraphML(b,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&
-this.isRemoteFileFormat(b,c))this.parseFile(e,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?d(b.responseText):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(b))/(\.json)$/i.test(c)&&(c=c.substring(0,c.length-5)+".drawio"),this.convertLucidChart(b,mxUtils.bind(this,function(b){this.spinner.stop();this.openLocalFile(b,c,f)}),mxUtils.bind(this,
-function(b){this.spinner.stop();this.handleError(b)}));else if("<mxlibrary"==b.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,f);try{this.loadLibrary(new LocalLibrary(this,b,e.name))}catch(v){this.handleError(v,mxResources.get("errorLoadingFile"))}}else if(0==b.indexOf("PK"))this.importZipFile(e,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}),mxUtils.bind(this,function(){this.spinner.stop();
-this.openLocalFile(b,c,f)}));else{if("image/png"==e.type.substring(0,9))b=this.extractGraphModelFromPng(b);else if("application/pdf"==e.type){var g=Editor.extractGraphModelFromPdf(b);null!=g&&(k=null,f=!0,b=g)}this.spinner.stop();this.openLocalFile(b,c,f,k,null!=k?e:null)}}};EditorUi.prototype.openFiles=function(b,c){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var d=0;d<b.length;d++)mxUtils.bind(this,function(b){var d=new FileReader;d.onload=mxUtils.bind(this,function(d){try{this.openFileHandle(d.target.result,
-b.name,b,c)}catch(u){this.handleError(u)}});d.onerror=mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b);window.openFile=null});"image"!==b.type.substring(0,5)&&"application/pdf"!==b.type||"image/svg"===b.type.substring(0,9)?d.readAsText(b):d.readAsDataURL(b)})(b[d])};EditorUi.prototype.openLocalFile=function(b,c,e,f,k){var d=this.getCurrentFile(),g=mxUtils.bind(this,function(){window.openFile=null;if(null==c&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var d=mxUtils.parseXml(b);
-null!=d&&(this.editor.setGraphXml(d.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,b,c||this.defaultFilename,e,f,k))});if(null!=b&&0<b.length)null==d||!d.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=f)?g():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=f)&&null!=d&&d.isModified()?this.confirm(mxResources.get("allChangesLost"),null,g,mxResources.get("cancel"),mxResources.get("discardChanges")):(window.openFile=new OpenFile(function(){window.openFile=
-null}),window.openFile.setData(b,c),window.openWindow(this.getUrl(),null,mxUtils.bind(this,function(){null!=d&&d.isModified()?this.confirm(mxResources.get("allChangesLost"),null,g,mxResources.get("cancel"),mxResources.get("discardChanges")):g()})));else throw Error(mxResources.get("notADiagramFile"));};EditorUi.prototype.getBasenames=function(){var b={};if(null!=this.pages)for(var c=0;c<this.pages.length;c++)this.updatePageRoot(this.pages[c]),this.addBasenamesForCell(this.pages[c].root,b);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),
-b);var c=[],e;for(e in b)c.push(e);return c};EditorUi.prototype.addBasenamesForCell=function(b,c){function d(b){if(null!=b){var d=b.lastIndexOf(".");0<d&&(b=b.substring(d+1,b.length));null==c[b]&&(c[b]=!0)}}var e=this.editor.graph,g=e.getCellStyle(b);d(mxStencilRegistry.getBasenameForStencil(g[mxConstants.STYLE_SHAPE]));e.model.isEdge(b)&&(d(mxMarker.getPackageForType(g[mxConstants.STYLE_STARTARROW])),d(mxMarker.getPackageForType(g[mxConstants.STYLE_ENDARROW])));for(var g=e.model.getChildCount(b),
-f=0;f<g;f++)this.addBasenamesForCell(e.model.getChildAt(b,f),c)};EditorUi.prototype.setGraphEnabled=function(b){this.diagramContainer.style.visibility=b?"":"hidden";this.formatContainer.style.visibility=b?"":"hidden";this.sidebarFooterContainer.style.display=b?"":"none";this.sidebarContainer.style.display=b?"":"none";this.hsplit.style.display=b?"":"none";this.editor.graph.setEnabled(b);null!=this.ruler&&(this.ruler.hRuler.container.style.visibility=b?"":"hidden",this.ruler.vRuler.container.style.visibility=
-b?"":"hidden");null!=this.tabContainer&&(this.tabContainer.style.visibility=b?"":"hidden");b||(null!=this.actions.outlineWindow&&this.actions.outlineWindow.window.setVisible(!1),null!=this.actions.layersWindow&&this.actions.layersWindow.window.setVisible(!1),null!=this.menus.tagsWindow&&this.menus.tagsWindow.window.setVisible(!1),null!=this.menus.findWindow&&this.menus.findWindow.window.setVisible(!1),null!=this.menus.findReplaceWindow&&this.menus.findReplaceWindow.window.setVisible(!1))};EditorUi.prototype.initializeEmbedMode=
-function(){this.setGraphEnabled(!1);if((window.opener||window.parent)!=window&&("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))){var b=!1;this.installMessageHandler(mxUtils.bind(this,function(d,c,e,f){b||(b=!0,this.spinner.stop(),this.addEmbedButtons(),this.setGraphEnabled(!0));if(null==d||0==d.length)d=this.emptyDiagramXml;this.setCurrentFile(new EmbedFile(this,d,{}));this.mode=App.MODE_EMBED;this.setFileData(d);if(f)try{var g=this.editor.graph;g.setGridEnabled(!1);
-g.pageVisible=!1;var k=g.model.cells,l;for(l in k){var m=k[l];null!=m&&null!=m.style&&(m.style+=";sketch=1;"+(-1==m.style.indexOf("fontFamily=")||-1<m.style.indexOf("fontFamily=Helvetica;")?"fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;":""))}}catch(x){console.log(x)}this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&this.lightboxFit():this.showLayersDialog();this.chromelessResize&&this.chromelessResize();this.editor.undoManager.clear();
-this.editor.modified=null!=e?e:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))}};EditorUi.prototype.showLayersDialog=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 d=this.editor.graph;return{event:b,pageVisible:d.pageVisible,translate:d.view.translate,bounds:d.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:d.view.scale,page:d.view.getBackgroundPageBounds()}};EditorUi.prototype.sendEmbeddedSvgExport=function(b){var d=this.editor.graph;d.isEditing()&&d.stopEditing(!d.isInvokesStopCellEditing());var c=window.opener||window.parent;if(this.editor.modified){var e=d.background;if(null==e||e==mxConstants.NONE)e=this.embedExportBackground;
-this.getEmbeddedSvg(this.getFileData(!0,null,null,null,null,null,null,null,null,!1),d,null,!0,mxUtils.bind(this,function(d){c.postMessage(JSON.stringify({event:"export",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,k=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,k);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(ra){}return b});if("json"==urlParams.proto){var p=
-!1;try{k=JSON.parse(k)}catch(ka){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(ka){n.postMessage(JSON.stringify({event:"draft",error:ka.toString(),message:k}),"*")}return}if("template"==k.action){this.spinner.stop();var u=1==k.enableRecent,v=1==k.enableSearch,C=1==k.enableCustomTemp;if("1"==urlParams.newTempDlg&&!k.templatesOnly&&null!=k.callback){var y=this.getCurrentUser(),M=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!=y?y.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,C?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",
-null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(M.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}q=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,C?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 aa=this.getDiagramTextContent();n.postMessage(JSON.stringify({event:"textContent",data:aa,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 N=null!=k.messageKey?mxResources.get(k.messageKey):k.message;null==k.show||k.show?this.spinner.spin(document.body,N):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 O=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var U=this.editor.graph,E=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=O;n.postMessage(JSON.stringify(d),"*")}),I=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&
-(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(O)));U!=this.editor.graph&&U.container.parentNode.removeChild(U.container);E(b)}),A=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var Y=mxUtils.bind(this,function(){if(null!=this.pages&&this.currentPage.getId()!=A){var b=U.getGlobalVariable;U=this.createTemporaryGraph(U.getStylesheet());for(var d,c=0;c<this.pages.length;c++)if(this.pages[c].getId()==A){d=
-this.updatePageRoot(this.pages[c]);break}null==d&&(d=this.currentPage);U.getGlobalVariable=function(c){return"page"==c?d.getName():"pagenumber"==c?1:b.apply(this,arguments)};document.body.appendChild(U.container);U.model.setRoot(d.root)}if(null!=k.layerIds){for(var e=U.model,g=e.getChildCells(e.getRoot()),f={},c=0;c<k.layerIds.length;c++)f[k.layerIds[c]]=!0;for(c=0;c<g.length;c++)e.setVisible(g[c],f[g[c].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){I(b.toDataURL("image/png"))}),
-k.width,null,k.background,mxUtils.bind(this,function(){I(null)}),null,null,k.scale,k.transparent,k.shadow,null,U,k.border,null,k.grid,k.keepTheme)});null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(O),c=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(Y)},0):Y()):Y()}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==k.format?"1":"0")+(null!=A?"&pageId="+A:"")+(null!=k.layerIds&&0<k.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):
-"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(O))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?E("data:image/png;base64,"+b.getText()):I(null)}),mxUtils.bind(this,function(){I(null)}))}}else Y=mxUtils.bind(this,function(){var b=this.createLoadMessage("export");b.message=k;if("html2"==k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var d=this.getXmlFileData();b.xml=mxUtils.getXml(d);b.data=this.getFileData(null,
-null,!0,null,null,null,d);b.format=k.format}else if("html"==k.format)d=this.editor.getGraphXml(),b.data=this.getHtml(d,this.editor.graph),b.xml=mxUtils.getXml(d),b.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;d=null!=k.background?k.background:this.editor.graph.background;d==mxConstants.NONE&&(d=null);b.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);b.format="svg";var c=mxUtils.bind(this,function(d){this.editor.graph.setEnabled(!0);this.spinner.stop();b.data=Editor.createSvgDataUri(d);
-n.postMessage(JSON.stringify(b),"*")});if("xmlsvg"==k.format)(null==k.spin&&null==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(Y)},
-0):Y()):Y();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 S=Editor.sketchMode;this.doSetSketchMode(k.rough);S!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=k.dark&&(S=Editor.darkMode,
-this.doSetDarkMode(k.dark),S!=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 Q=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*Q);b.maxFitScale=d;b.container.scrollTop-=2*Q;b.container.scrollLeft-=2*Q;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(ka){}k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):null!=k.descriptor?k.descriptor:k.xml}else{if("merge"==k.action){var V=this.getCurrentFile();null!=V&&(t=m(k.xml),null!=t&&""!=t&&V.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(ka){this.handleError(ka)}}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())}),fa=mxUtils.bind(this,function(g,k){c=!0;try{b(g,k,null,p)}catch(ja){this.handleError(ja)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");f=na();e&&null==d&&(d=mxUtils.bind(this,function(b,d){var e=na();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&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(k,"")?this.parseFile(new Blob([k],
-{type:"application/octet-stream"}),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(na(),
-g)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var n=window.opener||window.parent,k="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMessage(k,"*");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(),g=0;g<b.length;g++){var f=new window[b[g].layout](d);if(null!=b[g].config)for(var k in b[g].config)f[k]=b[g].config[k];this.executeLayout(function(){f.execute(d.getDefaultParent(),
-0==e.length?null:e)},g==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],g=[],f=[],k={};if(0<d.length){var n={},t=null,x=null,G=null,H=null,z=null,D=null,L="whiteSpace=wrap;html=1;",F=null,J=null,C="",K="auto",M="auto",aa=null,N=null,O=40,U=40,E=100,I=0,A=this.editor.graph;A.getGraphBounds();for(var Y=function(){null!=c?c(pa):(A.setSelectionCells(pa),A.scrollCellToVisible(A.getSelectionCell()))},S=A.getFreeInsertPoint(),Q=S.x,V=S.y,S=V,na=null,fa="auto",J=null,
-ka=[],ra=null,la=null,ja=0;ja<d.length&&"#"==d[ja].charAt(0);){b=d[ja];for(ja++;ja<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[ja].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[ja].substring(1)),ja++;if("#"!=b.charAt(1)){var ba=b.indexOf(":");if(0<ba){var ca=mxUtils.trim(b.substring(1,ba)),R=mxUtils.trim(b.substring(ba+1));"label"==ca?na=A.sanitizeHtml(R):"labelname"==ca&&0<R.length&&"-"!=R?z=R:"labels"==ca&&0<R.length&&"-"!=R?D=JSON.parse(R):"style"==ca?x=R:"parentstyle"==ca?L=R:"stylename"==
-ca&&0<R.length&&"-"!=R?H=R:"styles"==ca&&0<R.length&&"-"!=R?G=JSON.parse(R):"vars"==ca&&0<R.length&&"-"!=R?t=JSON.parse(R):"identity"==ca&&0<R.length&&"-"!=R?F=R:"parent"==ca&&0<R.length&&"-"!=R?J=R:"namespace"==ca&&0<R.length&&"-"!=R?C=R:"width"==ca?K=R:"height"==ca?M=R:"left"==ca&&0<R.length?aa=R:"top"==ca&&0<R.length?N=R:"ignore"==ca?la=R.split(","):"connect"==ca?ka.push(JSON.parse(R)):"link"==ca?ra=R:"padding"==ca?I=parseFloat(R):"edgespacing"==ca?O=parseFloat(R):"nodespacing"==ca?U=parseFloat(R):
-"levelspacing"==ca?E=parseFloat(R):"layout"==ca&&(fa=R)}}}if(null==d[ja])throw Error(mxResources.get("invalidOrMissingFile"));for(var sa=this.editor.csvToArray(d[ja]),ca=ba=null,R=[],W=0;W<sa.length;W++)F==sa[W]&&(ba=W),J==sa[W]&&(ca=W),R.push(mxUtils.trim(sa[W]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==na&&(na="%"+R[0]+"%");if(null!=ka)for(var X=0;X<ka.length;X++)null==n[ka[X].to]&&(n[ka[X].to]={});F=[];for(W=ja+1;W<d.length;W++){var ma=this.editor.csvToArray(d[W]);
-if(null==ma){var qa=40<d[W].length?d[W].substring(0,40)+"...":d[W];throw Error(qa+" ("+W+"):\n"+mxResources.get("containsValidationErrors"));}0<ma.length&&F.push(ma)}A.model.beginUpdate();try{for(W=0;W<F.length;W++){var ma=F[W],T=null,ia=null!=ba?C+ma[ba]:null;null!=ia&&(T=A.model.getCell(ia));var d=null!=T,da=new mxCell(na,new mxGeometry(Q,S,0,0),x||"whiteSpace=wrap;html=1;");da.vertex=!0;da.id=ia;for(var oa=0;oa<ma.length;oa++)A.setAttributeForCell(da,R[oa],ma[oa]);if(null!=z&&null!=D){var ha=D[da.getAttribute(z)];
-null!=ha&&A.labelChanged(da,ha)}if(null!=H&&null!=G){var ua=G[da.getAttribute(H)];null!=ua&&(da.style=ua)}A.setAttributeForCell(da,"placeholders","1");da.style=A.replacePlaceholders(da,da.style,t);d?(A.model.setValue(T,da.value),A.model.setStyle(T,da.style),0>mxUtils.indexOf(f,T)&&f.push(T),A.fireEvent(new mxEventObject("cellsInserted","cells",[T]))):A.fireEvent(new mxEventObject("cellsInserted","cells",[da]));T=da;if(!d)for(X=0;X<ka.length;X++)n[ka[X].to][T.getAttribute(ka[X].to)]=T;null!=ra&&"link"!=
-ra&&(A.setLinkForCell(T,T.getAttribute(ra)),A.setAttributeForCell(T,ra,null));var P=this.editor.graph.getPreferredSizeForCell(T),J=null!=ca?A.model.getCell(C+ma[ca]):null;if(T.vertex){qa=null!=J?0:Q;ja=null!=J?0:V;null!=aa&&null!=T.getAttribute(aa)&&(T.geometry.x=qa+parseFloat(T.getAttribute(aa)));null!=N&&null!=T.getAttribute(N)&&(T.geometry.y=ja+parseFloat(T.getAttribute(N)));var ea="@"==K.charAt(0)?T.getAttribute(K.substring(1)):null;T.geometry.width=null!=ea&&"auto"!=ea?parseFloat(T.getAttribute(K.substring(1))):
-"auto"==K||"auto"==ea?P.width+I:parseFloat(K);var ta="@"==M.charAt(0)?T.getAttribute(M.substring(1)):null;T.geometry.height=null!=ta&&"auto"!=ta?parseFloat(ta):"auto"==M||"auto"==ta?P.height+I:parseFloat(M);S+=T.geometry.height+U}d?(null==k[ia]&&(k[ia]=[]),k[ia].push(T)):(e.push(T),null!=J?(J.style=A.replacePlaceholders(J,L,t),A.addCell(T,J),g.push(J)):f.push(A.addCell(T)))}for(W=0;W<g.length;W++)ea="@"==K.charAt(0)?g[W].getAttribute(K.substring(1)):null,ta="@"==M.charAt(0)?g[W].getAttribute(M.substring(1)):
-null,"auto"!=K&&"auto"!=ea||"auto"!=M&&"auto"!=ta||A.updateGroupBounds([g[W]],I,!0);for(var ya=f.slice(),pa=f.slice(),X=0;X<ka.length;X++)for(var xa=ka[X],W=0;W<e.length;W++){var T=e[W],za=mxUtils.bind(this,function(b,d,c){var e=d.getAttribute(c.from);if(null!=e&&""!=e)for(var e=e.split(","),g=0;g<e.length;g++){var f=n[c.to][e[g]];if(null!=f){var k=c.label;null!=c.fromlabel&&(k=(d.getAttribute(c.fromlabel)||"")+(k||""));null!=c.sourcelabel&&(k=A.replacePlaceholders(d,c.sourcelabel,t)+(k||""));null!=
-c.tolabel&&(k=(k||"")+(f.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(k=(k||"")+A.replacePlaceholders(f,c.targetlabel,t));var l="target"==c.placeholders==!c.invert?f:b,l=null!=c.style?A.replacePlaceholders(l,c.style,t):A.createCurrentEdgeStyle(),k=A.insertEdge(null,null,k||"",c.invert?f:b,c.invert?b:f,l);if(null!=c.labels)for(l=0;l<c.labels.length;l++){var m=c.labels[l],p=new mxCell(m.label||l,new mxGeometry(null!=m.x?m.x:0,null!=m.y?m.y:0,0,0),"resizable=0;html=1;");p.vertex=!0;p.connectable=
-!1;p.geometry.relative=!0;null!=m.placeholders&&(p.value=A.replacePlaceholders("target"==m.placeholders==!c.invert?f:b,p.value,t));if(null!=m.dx||null!=m.dy)p.geometry.offset=new mxPoint(null!=m.dx?m.dx:0,null!=m.dy?m.dy:0);k.insert(p)}pa.push(k);mxUtils.remove(c.invert?b:f,ya)}}});za(T,T,xa);if(null!=k[T.id])for(oa=0;oa<k[T.id].length;oa++)za(T,k[T.id][oa],xa)}if(null!=la)for(W=0;W<e.length;W++)for(T=e[W],oa=0;oa<la.length;oa++)A.setAttributeForCell(T,mxUtils.trim(la[oa]),null);if(0<f.length){var Ba=
-new mxParallelEdgeLayout(A);Ba.spacing=O;Ba.checkOverlap=!0;var Ea=function(){0<Ba.spacing&&Ba.execute(A.getDefaultParent());for(var b=0;b<f.length;b++){var d=A.getCellGeometry(f[b]);d.x=Math.round(A.snap(d.x));d.y=Math.round(A.snap(d.y));"auto"==K&&(d.width=Math.round(A.snap(d.width)));"auto"==M&&(d.height=Math.round(A.snap(d.height)))}};if("["==fa.charAt(0)){var Ja=Y;A.view.validate();this.executeLayoutList(JSON.parse(fa),function(){Ea();Ja()});Y=null}else if("circle"==fa){var Aa=new mxCircleLayout(A);
-Aa.disableEdgeStyle=!1;Aa.resetEdges=!1;var Ka=Aa.isVertexIgnored;Aa.isVertexIgnored=function(b){return Ka.apply(this,arguments)||0>mxUtils.indexOf(f,b)};this.executeLayout(function(){Aa.execute(A.getDefaultParent());Ea()},!0,Y);Y=null}else if("horizontaltree"==fa||"verticaltree"==fa||"auto"==fa&&pa.length==2*f.length-1&&1==ya.length){A.view.validate();var Ca=new mxCompactTreeLayout(A,"horizontaltree"==fa);Ca.levelDistance=U;Ca.edgeRouting=!1;Ca.resetEdges=!1;this.executeLayout(function(){Ca.execute(A.getDefaultParent(),
-0<ya.length?ya[0]:null)},!0,Y);Y=null}else if("horizontalflow"==fa||"verticalflow"==fa||"auto"==fa&&1==ya.length){A.view.validate();var wa=new mxHierarchicalLayout(A,"horizontalflow"==fa?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);wa.intraCellSpacing=U;wa.parallelEdgeSpacing=O;wa.interRankCellSpacing=E;wa.disableEdgeStyle=!1;this.executeLayout(function(){wa.execute(A.getDefaultParent(),pa);A.moveCells(pa,Q,V)},!0,Y);Y=null}else if("organic"==fa||"auto"==fa&&pa.length>f.length){A.view.validate();
-var Z=new mxFastOrganicLayout(A);Z.forceConstant=3*U;Z.disableEdgeStyle=!1;Z.resetEdges=!1;var Fa=Z.isVertexIgnored;Z.isVertexIgnored=function(b){return Fa.apply(this,arguments)||0>mxUtils.indexOf(f,b)};this.executeLayout(function(){Z.execute(A.getDefaultParent());Ea()},!0,Y);Y=null}}this.hideDialog()}finally{A.model.endUpdate()}null!=Y&&Y()}}catch(Na){this.handleError(Na)}};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,k){b=new LinkDialog(this,b,c,e,!0,f,k);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++;null!=this.notion&&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 n=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){n.apply(this,arguments);var b=this.editor.graph,c=this.getCurrentFile(),e=this.isDiagramActive(),
-f=b.getEditableCells(b.getSelectionCells());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(0<f.length||b.isSelectionEmpty());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<f.length);this.actions.get("editGeometry").setEnabled(0<f.length&&b.getModel().isVertex(f[0]));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 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,k,n,t,v){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,k,n)),"image/svg+xml");else{var g=b.getFileData(!0,null,null,null,null,!0),l=d.getGraphBounds(),m=Math.floor(l.width*k/d.view.scale),p=Math.floor(l.height*k/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()};v&&(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(k,
-null==f||"none"==f,!0,!1,!1,n,!0,!1,null,v,t):b.exportImage(k,!1,!0,!1,!1,n,!0,!1,"jpeg",v);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 k={};try{var n=mxSettings.getCustomLibraries();for(b=0;b<n.length;b++){var t=n[b];if("R"==t.substring(0,1)){var y=JSON.parse(decodeURIComponent(t.substring(1)));k[y[0]]={id:y[0],title:y[1],downloadUrl:y[2]}}}}catch(x){}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];k[e.id]&&(c[e.id]=e);var g=this.addCheckbox(f,e.title,k[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==k[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(D){this.handleError(D,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){b--;0==b&&this.spinner.stop();this.handleError(null,
-mxResources.get("errorLoadingFile"))}))})(c[d]));for(d in k)c[d]||this.closeLibrary(new RemoteLibrary(this,null,k[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,k){var d=!0,g=window.setTimeout(mxUtils.bind(this,function(){d=!1;k({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),this.timeout),l=mxUtils.bind(this,function(){window.clearTimeout(g);d&&f.apply(this,arguments)}),m=mxUtils.bind(this,function(){window.clearTimeout(g);d&&k.apply(this,
-arguments)});e=e||{};e.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:l,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,g=this.remoteInvokableFns[e];if(null!=g&&"function"===typeof this[e]){if(g.allowedDomains){for(var f=!1,k=0;k<g.allowedDomains.length;k++)if(c=="https://"+g.allowedDomains[k]){f=!0;break}if(!f){d(null,"Invalid Call: "+e+" is not allowed.");return}}var n=b.functionArgs;Array.isArray(n)||(n=[]);if(g.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: "+e+" is not found.")}catch(x){d(null,"Invalid Call: An error occurred, "+x.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(u){null!=c&&c(u)}};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(C){console.log(C)}}),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(C){console.log(C)}});b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var f=
-{};try{f=JSON.parse(b.data)}catch(K){}"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(K){console.log(K)}});window.addEventListener("message",b)}})));b(d);d.onversionchange=
-function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(p){null!=c&&c(p)}else null!=c&&c()}else b(this.database)};EditorUi.prototype.setDatabaseItem=function(b,c,e,f,k){this.openDatabase(mxUtils.bind(this,function(d){try{k=k||"objects";Array.isArray(k)||(k=[k],b=[b],c=[c]);var g=d.transaction(k,"readwrite");g.oncomplete=e;g.onerror=f;for(d=0;d<k.length;d++)g.objectStore(k[d]).put(null!=b&&null!=b[d]?{key:b[d],data:c[d]}:c[d])}catch(v){null!=f&&f(v)}}),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(u){null!=e&&e(u)}}),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(u){null!=c&&c(u)}}),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(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,k,n,t,v){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(b,c,e,f,k,n,t,v)};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,k,n,t,v,y,x,G,H,z,D,L,F){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,f,k,n,t,v,
-y,x,G,H,z,D,L,F)};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,k){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(b,
-c,e,f,k)};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 k="<mxfile "===f.substring(0,8)||"<?xml"===f.substring(0,5)||"\x3c!--[if IE]>"===f.substring(0,12),f="<mxlibrary>"===f.substring(0,11);(k||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")}})();
+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]){c.refreshBackgroundImage();break}}}));var q=c.getBackgroundImageObject;c.getBackgroundImageObject=function(d,c){var e=q.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,
+l=this.shapeBackgroundColor;this.stylesheet=this.getDefaultStylesheet();this.shapeBackgroundColor="#ffffff";this.shapeForegroundColor="#000000";e=b.createImageForPageLink(e.originalSrc);this.shapeBackgroundColor=l;this.shapeForegroundColor=f;this.stylesheet=g}return e};var n=this.clearDefaultStyle;this.clearDefaultStyle=function(){n.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 t=b.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1");return t.apply(this,arguments)};var y=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)};y.call(this,b,d,e)};f.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var x=Menus.prototype.addPopupMenuEditItems;this.menus.addPopupMenuEditItems=function(d,c,e){b.editor.graph.isSelectionEmpty()?x.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?450:370,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var G=c.getExportVariables;c.getExportVariables=function(){var d=G.apply(this,arguments),c=b.getCurrentFile();null!=c&&(d.filename=c.getTitle());d.pagecount=null!=b.pages?b.pages.length:1;d.page=null!=b.currentPage?b.currentPage.getName():"";d.pagenumber=null!=b.pages&&null!=b.currentPage?mxUtils.indexOf(b.pages,
+b.currentPage)+1:1;return d};var H=c.getGlobalVariable;c.getGlobalVariable=function(d){var c=b.getCurrentFile();return"filename"==d&&null!=c?c.getTitle():"page"==d&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==d?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:"pagecount"==d?null!=b.pages?b.pages.length:1:H.apply(this,arguments)};var z=c.labelLinkClicked;c.labelLinkClicked=function(b,d,e){var g=d.getAttribute("href");if(null==g||!c.isCustomLink(g)||!mxEvent.isTouchEvent(e)&&
+mxEvent.isPopupTrigger(e))z.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))c.customLinkClicked(g),c.getRubberband().reset();mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var d=b.defaultFilename,c=b.getCurrentFile();null!=c&&(d=null!=c.getTitle()?c.getTitle():d);return d};var D=this.actions.get("print");D.setEnabled(!mxClient.IS_IOS||!navigator.standalone);D.visible=D.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,
+!0,"findReplace"),this.keyHandler.bindAction(67,!0,"copyStyle",!0),this.keyHandler.bindAction(86,!0,"pasteStyle",!0),this.keyHandler.bindAction(77,!0,"editGeometry",!0),this.keyHandler.bindAction(88,!0,"insertText",!0),this.keyHandler.bindAction(75,!0,"insertRectangle"),this.keyHandler.bindAction(75,!0,"insertEllipse",!0),this.altShiftActions[83]="synchronize",this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(null,null,24);Graph.fileSupport&&c.addListener(mxEvent.EDITING_STARTED,
+mxUtils.bind(this,function(b){var d=c.cellEditor.text2,e=null;null!=d&&(mxEvent.addListener(d,"dragleave",function(b){null!=e&&(e.parentNode.removeChild(e),e=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(b){null==e&&(!mxClient.IS_IE||10<document.documentMode)&&(e=this.highlightElement(d));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(d,"drop",mxUtils.bind(this,function(b){null!=e&&(e.parentNode.removeChild(e),e=null);if(0<
+b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,function(b,d,e,g,f,l){c.insertImage(b,f,l)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()},mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var d=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(d)?this.loadImage(decodeURIComponent(d),mxUtils.bind(this,function(b){var e=Math.max(1,
+b.width);b=Math.max(1,b.height);var g=this.maxImageSize,g=Math.min(1,Math.min(g/Math.max(1,e)),g/Math.max(1,b));c.insertImage(decodeURIComponent(d),e*g,b*g)})):document.execCommand("insertHTML",!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()&&(D=this.editor.graph.view,D.setUnit(mxSettings.getUnit()),D.addListener("unitChanged",function(b,d){mxSettings.setUnit(d.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,D.unit),this.refresh());if("1"==urlParams.styledev){D=document.getElementById("geFooter");null!=D&&(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)})),D.appendChild(this.styleInput),
+this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(b,d){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var L=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==this.styleInput?!0:L.apply(this,arguments)}}D=document.getElementById("geInfo");
+null!=D&&D.parentNode.removeChild(D);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var E=null;mxEvent.addListener(c.container,"dragleave",function(b){c.isEnabled()&&(null!=E&&(E.parentNode.removeChild(E),E=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(b){null==E&&(!mxClient.IS_IE||10<document.documentMode)&&(E=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!=E&&(E.parentNode.removeChild(E),E=null);if(c.isEnabled()){var d=mxUtils.convertPoint(c.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),e=c.view.translate,g=c.view.scale,f=d.x/g-e.x,l=d.y/g-e.y;if(0<b.dataTransfer.files.length)mxEvent.isShiftDown(b)?this.openFiles(b.dataTransfer.files,!0):(mxEvent.isAltDown(b)&&(l=f=null),this.importFiles(b.dataTransfer.files,f,l,this.maxImageSize,null,null,null,
+null,mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b),b));else{mxEvent.isAltDown(b)&&(l=f=0);var k=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,d=this.extractGraphModelFromEvent(b,null!=this.pages);if(null!=d)c.setSelectionCells(this.importXml(d,f,l,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){var m=b.dataTransfer.getData("text/html"),d=document.createElement("div");d.innerHTML=c.sanitizeHtml(m);var p=null,e=d.getElementsByTagName("img");
+null!=e&&1==e.length?(m=e[0].getAttribute("src"),null==m&&(m=e[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)||(p=!0)):(e=d.getElementsByTagName("a"),null!=e&&1==e.length?m=e[0].getAttribute("href"):(d=d.getElementsByTagName("pre"),null!=d&&1==d.length&&(m=mxUtils.getTextContent(d[0]))));var q=!0,n=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(m,f,l,!0,p,null,q,mxEvent.isControlDown(b)))});p&&null!=m&&m.length>this.resampleThreshold?this.confirmImageResize(function(b){q=
+b;n()},mxEvent.isControlDown(b)):n()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),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,"",f,l,d*e,b*e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+k+";"))}),mxUtils.bind(this,function(b){c.setSelectionCells(this.insertTextAt(k,
+f,l,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&c.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),f,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,g=0;g<c.types.length;g++)if("text/"===c.types[g].substring(0,5)){e=!0;break}if(!e){var f=c.items;for(index in f){var k=f[index];if("file"===k.kind){if(b.isEditing())this.importFiles([k.getAsFile()],0,0,this.maxImageSize,function(d,c,e,g,f,l){b.insertImage(d,f,l)},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([k.getAsFile()],
+n.x,n.y,this.maxImageSize);mxEvent.consume(d)}break}}}}catch(y){}}),!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","false");e.style.textRendering="optimizeSpeed";e.style.fontFamily=
+"monospace";e.style.wordBreak="break-all";e.style.background="transparent";e.style.color="transparent";e.style.position="absolute";e.style.whiteSpace="nowrap";e.style.overflow="hidden";e.style.display="block";e.style.fontSize="1";e.style.zIndex="-1";e.style.resize="none";e.style.outline="none";e.style.width="1px";e.style.height="1px";mxUtils.setOpacity(e,0);e.contentEditable=!0;e.innerHTML="&nbsp;";var f=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,
+null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var d=mxEvent.getSource(b);null==c.container||!c.isEnabled()||c.isMouseDown||c.isEditing()||null!=this.dialog||"INPUT"==d.nodeName||"TEXTAREA"==d.nodeName||224!=b.keyCode&&(mxClient.IS_MAC||17!=b.keyCode)&&(!mxClient.IS_MAC||91!=b.keyCode&&93!=b.keyCode)||f||(e.style.left=c.container.scrollLeft+10+"px",e.style.top=c.container.scrollTop+10+"px",c.container.appendChild(e),f=!0,e.focus(),document.execCommand("selectAll",!1,null))}));
+mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var d=b.keyCode;window.setTimeout(mxUtils.bind(this,function(){!f||224!=d&&17!=d&&91!=d&&93!=d||(f=!1,c.isEditing()||null!=this.dialog||null==c.container||c.container.focus(),e.parentNode.removeChild(e),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(e,"copy",mxUtils.bind(this,function(d){if(c.isEnabled())try{mxClipboard.copy(c),this.copyCells(e),b()}catch(u){this.handleError(u)}}));mxEvent.addListener(e,"cut",
+mxUtils.bind(this,function(d){if(c.isEnabled())try{mxClipboard.copy(c),this.copyCells(e,!0),b()}catch(u){this.handleError(u)}}));mxEvent.addListener(e,"paste",mxUtils.bind(this,function(b){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&(e.innerHTML="&nbsp;",e.focus(),null!=b.clipboardData&&this.pasteCells(b,e,!0,!0),mxEvent.isConsumed(b)||window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,e,!1,!0)}),0))}),!0);var k=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==
+e?!0:k.apply(this,arguments)}};EditorUi.prototype.setSketchMode=function(b){this.spinner.spin(document.body,mxResources.get("working")+"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetSketchMode(b);null==urlParams.rough&&(mxSettings.settings.sketchMode=b,mxSettings.save());this.fireEvent(new mxEventObject("sketchModeChanged"))}),0)};EditorUi.prototype.setPagesVisible=function(b){Editor.pagesVisible!=b&&(Editor.pagesVisible=b,mxSettings.settings.pagesVisible=b,mxSettings.save(),
+this.fireEvent(new mxEventObject("pagesVisibleChanged")))};EditorUi.prototype.setInlineFullscreen=function(b){Editor.inlineFullscreen!=b&&(Editor.inlineFullscreen=b,this.fireEvent(new mxEventObject("inlineFullscreenChanged")),(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:this.diagramContainer.getBoundingClientRect()}),"*"),window.setTimeout(mxUtils.bind(this,function(){this.refresh();this.actions.get("resetView").funct()}),10))};
+EditorUi.prototype.doSetSketchMode=function(b){if(Editor.sketchMode!=b){var d=function(b,d,c){null==b[d]&&(b[d]=c)},c=this.editor.graph;Editor.sketchMode=b;this.menus.defaultFonts=Menus.prototype.defaultFonts;this.menus.defaultFontSize=b?20:16;c.defaultVertexStyle=mxUtils.clone(Graph.prototype.defaultVertexStyle);d(c.defaultVertexStyle,"fontSize",this.menus.defaultFontSize);c.defaultEdgeStyle=mxUtils.clone(Graph.prototype.defaultEdgeStyle);d(c.defaultEdgeStyle,"fontSize",this.menus.defaultFontSize-
+4);d(c.defaultEdgeStyle,"edgeStyle","none");d(c.defaultEdgeStyle,"rounded","0");d(c.defaultEdgeStyle,"curved","1");d(c.defaultEdgeStyle,"jettySize","auto");d(c.defaultEdgeStyle,"orthogonalLoop","1");d(c.defaultEdgeStyle,"endArrow","open");d(c.defaultEdgeStyle,"endSize","14");d(c.defaultEdgeStyle,"startSize","14");b&&(d(c.defaultVertexStyle,"fontFamily",Editor.sketchFontFamily),d(c.defaultVertexStyle,"fontSource",Editor.sketchFontSource),d(c.defaultVertexStyle,"hachureGap","4"),d(c.defaultVertexStyle,
+"sketch","1"),d(c.defaultEdgeStyle,"fontFamily",Editor.sketchFontFamily),d(c.defaultEdgeStyle,"fontSource",Editor.sketchFontSource),d(c.defaultEdgeStyle,"sketch","1"),d(c.defaultEdgeStyle,"hachureGap","4"),d(c.defaultEdgeStyle,"sourcePerimeterSpacing","8"),d(c.defaultEdgeStyle,"targetPerimeterSpacing","8"),this.menus.defaultFonts=[{fontFamily:Editor.sketchFontFamily,fontUrl:decodeURIComponent(Editor.sketchFontSource)},{fontFamily:"Rock Salt",fontUrl:"https://fonts.googleapis.com/css?family=Rock+Salt"},
+{fontFamily:"Permanent Marker",fontUrl:"https://fonts.googleapis.com/css?family=Permanent+Marker"}].concat(this.menus.defaultFonts));c.currentVertexStyle=mxUtils.clone(c.defaultVertexStyle);c.currentEdgeStyle=mxUtils.clone(c.defaultEdgeStyle);this.clearDefaultStyle()}};EditorUi.prototype.getLinkTitle=function(b){var d=Graph.prototype.getLinkTitle.apply(this,arguments);if(Graph.isPageLink(b)){var c=b.indexOf(",");0<c&&(d=this.getPageById(b.substring(c+1)),d=null!=d?d.getName():mxResources.get("pageNotFound"))}else"data:"==
+b.substring(0,5)&&(d=mxResources.get("action"));return d};EditorUi.prototype.handleCustomLink=function(b){if(Graph.isPageLink(b)){var d=b.indexOf(",");if(b=this.getPageById(b.substring(d+1)))this.selectPage(b);else throw Error(mxResources.get("pageNotFound")||"Page not found");}else this.editor.graph.handleCustomLink(b)};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){Editor.pagesVisible=
+mxSettings.settings.pagesVisible;ColorDialog.recentColors=mxSettings.getRecentColors();if(isLocalStorage)try{window.addEventListener("storage",mxUtils.bind(this,function(b){b.key==mxSettings.key&&(mxSettings.load(),ColorDialog.recentColors=mxSettings.getRecentColors(),this.menus.customFonts=mxSettings.getCustomFonts())}),!1)}catch(d){}this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]));this.menus.customFonts=mxSettings.getCustomFonts();this.addListener("customFontsChanged",
+mxUtils.bind(this,function(b,c){if("1"!=urlParams["ext-fonts"])mxSettings.setCustomFonts(this.menus.customFonts);else{var d=c.getProperty("customFonts");this.menus.customFonts=d;mxSettings.setCustomFonts(d)}mxSettings.save()}));this.editor.graph.connectionHandler.setCreateTarget(mxSettings.isCreateTarget());this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyConnectChanged",mxUtils.bind(this,function(b,c){mxSettings.setCreateTarget(this.editor.graph.connectionHandler.isCreateTarget());
+mxSettings.save()}));this.editor.graph.pageFormat=null!=this.editor.graph.defaultPageFormat?this.editor.graph.defaultPageFormat:mxSettings.getPageFormat();this.addListener("pageFormatChanged",mxUtils.bind(this,function(b,c){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor(Editor.isDarkMode());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(y){this.handleError(y)}}),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(m){this.handleError(m)}};
+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())),g=mxUtils.getXml(d.encodeCells(e));
+mxUtils.setTextContent(b,encodeURIComponent(g));c?(d.removeCells(e,!1),d.lastPasteXml=null):(d.lastPasteXml=g,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 m=decodeURIComponent(k);this.isCompatibleString(m)&&(l=!0,k=m)}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 n=g.lastIndexOf("%3E");0<=n&&n<g.length-3&&(g=g.substring(0,n+3))}catch(H){}try{k=d.getElementsByTagName("span"),m=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(g),this.isCompatibleString(m)&&(l=!0,g=m)}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&&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.isOffline()&&this.isRemoteFileFormat(c)?(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(),null,!0)})):/^https?:\/\//.test(c)&&(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(c):
+window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(c)))))}else this.openLocalFile(c,null,!0)}b.stopPropagation();b.preventDefault()}))};EditorUi.prototype.highlightElement=function(b){var d=0,c=0,e,f;if(null==b){f=document.body;var k=document.documentElement;e=(f.clientWidth||k.clientWidth)-3;f=Math.max(f.clientHeight||0,k.clientHeight)-3}else d=b.offsetTop,c=b.offsetLeft,e=b.clientWidth,f=b.clientHeight;k=document.createElement("div");
+k.style.zIndex=mxPopupMenu.prototype.zIndex+2;k.style.border="3px dotted rgb(254, 137, 12)";k.style.pointerEvents="none";k.style.position="absolute";k.style.top=d+"px";k.style.left=c+"px";k.style.width=Math.max(0,e-3)+"px";k.style.height=Math.max(0,f-3)+"px";null!=b&&b.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(k):document.body.appendChild(k);return k};EditorUi.prototype.stringToCells=function(b){b=mxUtils.parseXml(b);var d=this.editor.extractGraphModel(b.documentElement);
+b=[];if(null!=d){var c=new mxCodec(d.ownerDocument),e=new mxGraphModel;c.decode(d,e);d=e.getChildAt(e.getRoot(),0);for(c=0;c<e.getChildCount(d);c++)b.push(e.getChildAt(d,c))}return b};EditorUi.prototype.openFileHandle=function(b,c,e,f,k){if(null!=c&&0<c.length){!this.useCanvasForExport&&/(\.png)$/i.test(c)?c=c.substring(0,c.length-4)+".drawio":/(\.pdf)$/i.test(c)&&(c=c.substring(0,c.length-4)+".drawio");var d=mxUtils.bind(this,function(b){c=0<=c.lastIndexOf(".")?c.substring(0,c.lastIndexOf("."))+
+".drawio":c+".drawio";if("<mxlibrary"==b.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,f);try{this.loadLibrary(new LocalLibrary(this,b,c))}catch(y){this.handleError(y,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(b,c,f)});if(/(\.v(dx|sdx?))($|\?)/i.test(c)||/(\.vs(x|sx?))($|\?)/i.test(c))this.importVisio(e,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}));else if(/(\.*<graphml )/.test(b))this.importGraphML(b,
+mxUtils.bind(this,function(b){this.spinner.stop();d(b)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,c))this.parseFile(e,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?d(b.responseText):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(b))/(\.json)$/i.test(c)&&(c=c.substring(0,
+c.length-5)+".drawio"),this.convertLucidChart(b,mxUtils.bind(this,function(b){this.spinner.stop();this.openLocalFile(b,c,f)}),mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}));else if("<mxlibrary"==b.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,f);try{this.loadLibrary(new LocalLibrary(this,b,e.name))}catch(v){this.handleError(v,mxResources.get("errorLoadingFile"))}}else if(0==
+b.indexOf("PK"))this.importZipFile(e,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}),mxUtils.bind(this,function(){this.spinner.stop();this.openLocalFile(b,c,f)}));else{if("image/png"==e.type.substring(0,9))b=this.extractGraphModelFromPng(b);else if("application/pdf"==e.type){var g=Editor.extractGraphModelFromPdf(b);null!=g&&(k=null,f=!0,b=g)}this.spinner.stop();this.openLocalFile(b,c,f,k,null!=k?e:null)}}};EditorUi.prototype.openFiles=function(b,c){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var d=
+0;d<b.length;d++)mxUtils.bind(this,function(b){var d=new FileReader;d.onload=mxUtils.bind(this,function(d){try{this.openFileHandle(d.target.result,b.name,b,c)}catch(u){this.handleError(u)}});d.onerror=mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b);window.openFile=null});"image"!==b.type.substring(0,5)&&"application/pdf"!==b.type||"image/svg"===b.type.substring(0,9)?d.readAsText(b):d.readAsDataURL(b)})(b[d])};EditorUi.prototype.openLocalFile=function(b,c,e,f,k){var d=this.getCurrentFile(),
+g=mxUtils.bind(this,function(){window.openFile=null;if(null==c&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var d=mxUtils.parseXml(b);null!=d&&(this.editor.setGraphXml(d.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,b,c||this.defaultFilename,e,f,k))});if(null!=b&&0<b.length)null==d||!d.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=f)?g():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=f)&&null!=d&&d.isModified()?this.confirm(mxResources.get("allChangesLost"),
+null,g,mxResources.get("cancel"),mxResources.get("discardChanges")):(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(b,c),window.openWindow(this.getUrl(),null,mxUtils.bind(this,function(){null!=d&&d.isModified()?this.confirm(mxResources.get("allChangesLost"),null,g,mxResources.get("cancel"),mxResources.get("discardChanges")):g()})));else throw Error(mxResources.get("notADiagramFile"));};EditorUi.prototype.getBasenames=function(){var b={};if(null!=this.pages)for(var c=
+0;c<this.pages.length;c++)this.updatePageRoot(this.pages[c]),this.addBasenamesForCell(this.pages[c].root,b);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),b);var c=[],e;for(e in b)c.push(e);return c};EditorUi.prototype.addBasenamesForCell=function(b,c){function d(b){if(null!=b){var d=b.lastIndexOf(".");0<d&&(b=b.substring(d+1,b.length));null==c[b]&&(c[b]=!0)}}var e=this.editor.graph,g=e.getCellStyle(b);d(mxStencilRegistry.getBasenameForStencil(g[mxConstants.STYLE_SHAPE]));e.model.isEdge(b)&&
+(d(mxMarker.getPackageForType(g[mxConstants.STYLE_STARTARROW])),d(mxMarker.getPackageForType(g[mxConstants.STYLE_ENDARROW])));for(var g=e.model.getChildCount(b),f=0;f<g;f++)this.addBasenamesForCell(e.model.getChildAt(b,f),c)};EditorUi.prototype.setGraphEnabled=function(b){this.diagramContainer.style.visibility=b?"":"hidden";this.formatContainer.style.visibility=b?"":"hidden";this.sidebarFooterContainer.style.display=b?"":"none";this.sidebarContainer.style.display=b?"":"none";this.hsplit.style.display=
+b?"":"none";this.editor.graph.setEnabled(b);null!=this.ruler&&(this.ruler.hRuler.container.style.visibility=b?"":"hidden",this.ruler.vRuler.container.style.visibility=b?"":"hidden");null!=this.tabContainer&&(this.tabContainer.style.visibility=b?"":"hidden");b||(null!=this.actions.outlineWindow&&this.actions.outlineWindow.window.setVisible(!1),null!=this.actions.layersWindow&&this.actions.layersWindow.window.setVisible(!1),null!=this.menus.tagsWindow&&this.menus.tagsWindow.window.setVisible(!1),null!=
+this.menus.findWindow&&this.menus.findWindow.window.setVisible(!1),null!=this.menus.findReplaceWindow&&this.menus.findReplaceWindow.window.setVisible(!1))};EditorUi.prototype.initializeEmbedMode=function(){this.setGraphEnabled(!1);if((window.opener||window.parent)!=window&&("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))){var b=!1;this.installMessageHandler(mxUtils.bind(this,function(d,c,e,f){b||(b=!0,this.spinner.stop(),this.addEmbedButtons(),this.setGraphEnabled(!0));
+if(null==d||0==d.length)d=this.emptyDiagramXml;this.setCurrentFile(new EmbedFile(this,d,{}));this.mode=App.MODE_EMBED;this.setFileData(d);if(f)try{var g=this.editor.graph;g.setGridEnabled(!1);g.pageVisible=!1;var k=g.model.cells,l;for(l in k){var m=k[l];null!=m&&null!=m.style&&(m.style+=";sketch=1;"+(-1==m.style.indexOf("fontFamily=")||-1<m.style.indexOf("fontFamily=Helvetica;")?"fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;":
+""))}}catch(x){console.log(x)}this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&this.lightboxFit():this.showLayersDialog();this.chromelessResize&&this.chromelessResize();this.editor.undoManager.clear();this.editor.modified=null!=e?e:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))}};EditorUi.prototype.showLayersDialog=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 d=this.editor.graph;return{event:b,pageVisible:d.pageVisible,translate:d.view.translate,bounds:d.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:d.view.scale,page:d.view.getBackgroundPageBounds()}};EditorUi.prototype.sendEmbeddedSvgExport=function(b){var d=this.editor.graph;
+d.isEditing()&&d.stopEditing(!d.isInvokesStopCellEditing());var c=window.opener||window.parent;if(this.editor.modified){var e=d.background;if(null==e||e==mxConstants.NONE)e=this.embedExportBackground;this.getEmbeddedSvg(this.getFileData(!0,null,null,null,null,null,null,null,null,!1),d,null,!0,mxUtils.bind(this,function(d){c.postMessage(JSON.stringify({event:"export",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,k=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,k);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(ra){}return b});if("json"==urlParams.proto){var p=!1;try{k=JSON.parse(k)}catch(ka){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(ka){n.postMessage(JSON.stringify({event:"draft",error:ka.toString(),message:k}),"*")}return}if("template"==k.action){this.spinner.stop();var u=1==k.enableRecent,v=1==k.enableSearch,C=1==k.enableCustomTemp;if("1"==urlParams.newTempDlg&&!k.templatesOnly&&null!=
+k.callback){var y=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!=y?y.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,C?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=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,C?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 Z=this.getDiagramTextContent();n.postMessage(JSON.stringify({event:"textContent",
+data:Z,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 M=null!=k.messageKey?mxResources.get(k.messageKey):k.message;null==k.show||k.show?this.spinner.spin(document.body,M):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 O=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var U=this.editor.graph,F=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=O;n.postMessage(JSON.stringify(d),"*")}),I=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(O)));U!=this.editor.graph&&U.container.parentNode.removeChild(U.container);F(b)}),A=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var ca=mxUtils.bind(this,
+function(){if(null!=this.pages&&this.currentPage.getId()!=A){var b=U.getGlobalVariable;U=this.createTemporaryGraph(U.getStylesheet());for(var d,c=0;c<this.pages.length;c++)if(this.pages[c].getId()==A){d=this.updatePageRoot(this.pages[c]);break}null==d&&(d=this.currentPage);U.getGlobalVariable=function(c){return"page"==c?d.getName():"pagenumber"==c?1:b.apply(this,arguments)};document.body.appendChild(U.container);U.model.setRoot(d.root)}if(null!=k.layerIds){for(var e=U.model,g=e.getChildCells(e.getRoot()),
+f={},c=0;c<k.layerIds.length;c++)f[k.layerIds[c]]=!0;for(c=0;c<g.length;c++)e.setVisible(g[c],f[g[c].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){I(b.toDataURL("image/png"))}),k.width,null,k.background,mxUtils.bind(this,function(){I(null)}),null,null,k.scale,k.transparent,k.shadow,null,U,k.border,null,k.grid,k.keepTheme)});null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(O),c=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(ca)},0):ca()):
+ca()}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==k.format?"1":"0")+(null!=A?"&pageId="+A:"")+(null!=k.layerIds&&0<k.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(O))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?F("data:image/png;base64,"+b.getText()):I(null)}),mxUtils.bind(this,function(){I(null)}))}}else ca=mxUtils.bind(this,function(){var b=
+this.createLoadMessage("export");b.message=k;if("html2"==k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var d=this.getXmlFileData();b.xml=mxUtils.getXml(d);b.data=this.getFileData(null,null,!0,null,null,null,d);b.format=k.format}else if("html"==k.format)d=this.editor.getGraphXml(),b.data=this.getHtml(d,this.editor.graph),b.xml=mxUtils.getXml(d),b.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;d=null!=k.background?k.background:this.editor.graph.background;
+d==mxConstants.NONE&&(d=null);b.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);b.format="svg";var c=mxUtils.bind(this,function(d){this.editor.graph.setEnabled(!0);this.spinner.stop();b.data=Editor.createSvgDataUri(d);n.postMessage(JSON.stringify(b),"*")});if("xmlsvg"==k.format)(null==k.spin&&null==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(ca)},0):ca()):ca();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 S=Editor.sketchMode;this.doSetSketchMode(k.rough);S!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=k.dark&&(S=Editor.darkMode,this.doSetDarkMode(k.dark),S!=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 Q=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*Q);b.maxFitScale=d;b.container.scrollTop-=2*Q;b.container.scrollLeft-=2*Q;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(ka){}k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):null!=k.descriptor?k.descriptor:k.xml}else{if("merge"==k.action){var V=this.getCurrentFile();null!=V&&(t=m(k.xml),null!=t&&""!=t&&V.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(ka){this.handleError(ka)}}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())}),fa=mxUtils.bind(this,function(g,k){c=!0;try{b(g,k,null,p)}catch(ja){this.handleError(ja)}c=
+!1;null!=urlParams.modified&&this.editor.setStatus("");f=oa();e&&null==d&&(d=mxUtils.bind(this,function(b,d){var e=oa();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&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(k,"")?this.parseFile(new Blob([k],{type:"application/octet-stream"}),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(oa(),g)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var n=window.opener||window.parent,k="json"==
+urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMessage(k,"*");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(),g=0;g<b.length;g++){var f=new window[b[g].layout](d);if(null!=b[g].config)for(var k in b[g].config)f[k]=b[g].config[k];this.executeLayout(function(){f.execute(d.getDefaultParent(),0==e.length?null:e)},g==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],g=[],f=[],k={};if(0<d.length){var n={},t=null,x=null,G=null,H=null,z=null,D=null,L="whiteSpace=wrap;html=1;",
+E=null,J=null,C="",K="auto",N="auto",Z=null,M=null,O=40,U=40,F=100,I=0,A=this.editor.graph;A.getGraphBounds();for(var ca=function(){null!=c?c(pa):(A.setSelectionCells(pa),A.scrollCellToVisible(A.getSelectionCell()))},S=A.getFreeInsertPoint(),Q=S.x,V=S.y,S=V,oa=null,fa="auto",J=null,ka=[],ra=null,la=null,ja=0;ja<d.length&&"#"==d[ja].charAt(0);){b=d[ja];for(ja++;ja<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[ja].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[ja].substring(1)),ja++;if("#"!=b.charAt(1)){var aa=
+b.indexOf(":");if(0<aa){var ba=mxUtils.trim(b.substring(1,aa)),R=mxUtils.trim(b.substring(aa+1));"label"==ba?oa=A.sanitizeHtml(R):"labelname"==ba&&0<R.length&&"-"!=R?z=R:"labels"==ba&&0<R.length&&"-"!=R?D=JSON.parse(R):"style"==ba?x=R:"parentstyle"==ba?L=R:"stylename"==ba&&0<R.length&&"-"!=R?H=R:"styles"==ba&&0<R.length&&"-"!=R?G=JSON.parse(R):"vars"==ba&&0<R.length&&"-"!=R?t=JSON.parse(R):"identity"==ba&&0<R.length&&"-"!=R?E=R:"parent"==ba&&0<R.length&&"-"!=R?J=R:"namespace"==ba&&0<R.length&&"-"!=
+R?C=R:"width"==ba?K=R:"height"==ba?N=R:"left"==ba&&0<R.length?Z=R:"top"==ba&&0<R.length?M=R:"ignore"==ba?la=R.split(","):"connect"==ba?ka.push(JSON.parse(R)):"link"==ba?ra=R:"padding"==ba?I=parseFloat(R):"edgespacing"==ba?O=parseFloat(R):"nodespacing"==ba?U=parseFloat(R):"levelspacing"==ba?F=parseFloat(R):"layout"==ba&&(fa=R)}}}if(null==d[ja])throw Error(mxResources.get("invalidOrMissingFile"));for(var sa=this.editor.csvToArray(d[ja]),ba=aa=null,R=[],W=0;W<sa.length;W++)E==sa[W]&&(aa=W),J==sa[W]&&
+(ba=W),R.push(mxUtils.trim(sa[W]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==oa&&(oa="%"+R[0]+"%");if(null!=ka)for(var X=0;X<ka.length;X++)null==n[ka[X].to]&&(n[ka[X].to]={});E=[];for(W=ja+1;W<d.length;W++){var ma=this.editor.csvToArray(d[W]);if(null==ma){var qa=40<d[W].length?d[W].substring(0,40)+"...":d[W];throw Error(qa+" ("+W+"):\n"+mxResources.get("containsValidationErrors"));}0<ma.length&&E.push(ma)}A.model.beginUpdate();try{for(W=0;W<E.length;W++){var ma=E[W],T=
+null,ia=null!=aa?C+ma[aa]:null;null!=ia&&(T=A.model.getCell(ia));var d=null!=T,da=new mxCell(oa,new mxGeometry(Q,S,0,0),x||"whiteSpace=wrap;html=1;");da.vertex=!0;da.id=ia;for(var na=0;na<ma.length;na++)A.setAttributeForCell(da,R[na],ma[na]);if(null!=z&&null!=D){var ha=D[da.getAttribute(z)];null!=ha&&A.labelChanged(da,ha)}if(null!=H&&null!=G){var ua=G[da.getAttribute(H)];null!=ua&&(da.style=ua)}A.setAttributeForCell(da,"placeholders","1");da.style=A.replacePlaceholders(da,da.style,t);d?(A.model.setValue(T,
+da.value),A.model.setStyle(T,da.style),0>mxUtils.indexOf(f,T)&&f.push(T),A.fireEvent(new mxEventObject("cellsInserted","cells",[T]))):A.fireEvent(new mxEventObject("cellsInserted","cells",[da]));T=da;if(!d)for(X=0;X<ka.length;X++)n[ka[X].to][T.getAttribute(ka[X].to)]=T;null!=ra&&"link"!=ra&&(A.setLinkForCell(T,T.getAttribute(ra)),A.setAttributeForCell(T,ra,null));var P=this.editor.graph.getPreferredSizeForCell(T),J=null!=ba?A.model.getCell(C+ma[ba]):null;if(T.vertex){qa=null!=J?0:Q;ja=null!=J?0:V;
+null!=Z&&null!=T.getAttribute(Z)&&(T.geometry.x=qa+parseFloat(T.getAttribute(Z)));null!=M&&null!=T.getAttribute(M)&&(T.geometry.y=ja+parseFloat(T.getAttribute(M)));var ea="@"==K.charAt(0)?T.getAttribute(K.substring(1)):null;T.geometry.width=null!=ea&&"auto"!=ea?parseFloat(T.getAttribute(K.substring(1))):"auto"==K||"auto"==ea?P.width+I:parseFloat(K);var ta="@"==N.charAt(0)?T.getAttribute(N.substring(1)):null;T.geometry.height=null!=ta&&"auto"!=ta?parseFloat(ta):"auto"==N||"auto"==ta?P.height+I:parseFloat(N);
+S+=T.geometry.height+U}d?(null==k[ia]&&(k[ia]=[]),k[ia].push(T)):(e.push(T),null!=J?(J.style=A.replacePlaceholders(J,L,t),A.addCell(T,J),g.push(J)):f.push(A.addCell(T)))}for(W=0;W<g.length;W++)ea="@"==K.charAt(0)?g[W].getAttribute(K.substring(1)):null,ta="@"==N.charAt(0)?g[W].getAttribute(N.substring(1)):null,"auto"!=K&&"auto"!=ea||"auto"!=N&&"auto"!=ta||A.updateGroupBounds([g[W]],I,!0);for(var ya=f.slice(),pa=f.slice(),X=0;X<ka.length;X++)for(var xa=ka[X],W=0;W<e.length;W++){var T=e[W],za=mxUtils.bind(this,
+function(b,d,c){var e=d.getAttribute(c.from);if(null!=e&&""!=e)for(var e=e.split(","),g=0;g<e.length;g++){var f=n[c.to][e[g]];if(null!=f){var k=c.label;null!=c.fromlabel&&(k=(d.getAttribute(c.fromlabel)||"")+(k||""));null!=c.sourcelabel&&(k=A.replacePlaceholders(d,c.sourcelabel,t)+(k||""));null!=c.tolabel&&(k=(k||"")+(f.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(k=(k||"")+A.replacePlaceholders(f,c.targetlabel,t));var l="target"==c.placeholders==!c.invert?f:b,l=null!=c.style?A.replacePlaceholders(l,
+c.style,t):A.createCurrentEdgeStyle(),k=A.insertEdge(null,null,k||"",c.invert?f:b,c.invert?b:f,l);if(null!=c.labels)for(l=0;l<c.labels.length;l++){var m=c.labels[l],p=new mxCell(m.label||l,new mxGeometry(null!=m.x?m.x:0,null!=m.y?m.y:0,0,0),"resizable=0;html=1;");p.vertex=!0;p.connectable=!1;p.geometry.relative=!0;null!=m.placeholders&&(p.value=A.replacePlaceholders("target"==m.placeholders==!c.invert?f:b,p.value,t));if(null!=m.dx||null!=m.dy)p.geometry.offset=new mxPoint(null!=m.dx?m.dx:0,null!=
+m.dy?m.dy:0);k.insert(p)}pa.push(k);mxUtils.remove(c.invert?b:f,ya)}}});za(T,T,xa);if(null!=k[T.id])for(na=0;na<k[T.id].length;na++)za(T,k[T.id][na],xa)}if(null!=la)for(W=0;W<e.length;W++)for(T=e[W],na=0;na<la.length;na++)A.setAttributeForCell(T,mxUtils.trim(la[na]),null);if(0<f.length){var Ba=new mxParallelEdgeLayout(A);Ba.spacing=O;Ba.checkOverlap=!0;var Ea=function(){0<Ba.spacing&&Ba.execute(A.getDefaultParent());for(var b=0;b<f.length;b++){var d=A.getCellGeometry(f[b]);d.x=Math.round(A.snap(d.x));
+d.y=Math.round(A.snap(d.y));"auto"==K&&(d.width=Math.round(A.snap(d.width)));"auto"==N&&(d.height=Math.round(A.snap(d.height)))}};if("["==fa.charAt(0)){var Ja=ca;A.view.validate();this.executeLayoutList(JSON.parse(fa),function(){Ea();Ja()});ca=null}else if("circle"==fa){var Aa=new mxCircleLayout(A);Aa.disableEdgeStyle=!1;Aa.resetEdges=!1;var Ka=Aa.isVertexIgnored;Aa.isVertexIgnored=function(b){return Ka.apply(this,arguments)||0>mxUtils.indexOf(f,b)};this.executeLayout(function(){Aa.execute(A.getDefaultParent());
+Ea()},!0,ca);ca=null}else if("horizontaltree"==fa||"verticaltree"==fa||"auto"==fa&&pa.length==2*f.length-1&&1==ya.length){A.view.validate();var Ca=new mxCompactTreeLayout(A,"horizontaltree"==fa);Ca.levelDistance=U;Ca.edgeRouting=!1;Ca.resetEdges=!1;this.executeLayout(function(){Ca.execute(A.getDefaultParent(),0<ya.length?ya[0]:null)},!0,ca);ca=null}else if("horizontalflow"==fa||"verticalflow"==fa||"auto"==fa&&1==ya.length){A.view.validate();var wa=new mxHierarchicalLayout(A,"horizontalflow"==fa?mxConstants.DIRECTION_WEST:
+mxConstants.DIRECTION_NORTH);wa.intraCellSpacing=U;wa.parallelEdgeSpacing=O;wa.interRankCellSpacing=F;wa.disableEdgeStyle=!1;this.executeLayout(function(){wa.execute(A.getDefaultParent(),pa);A.moveCells(pa,Q,V)},!0,ca);ca=null}else if("organic"==fa||"auto"==fa&&pa.length>f.length){A.view.validate();var Y=new mxFastOrganicLayout(A);Y.forceConstant=3*U;Y.disableEdgeStyle=!1;Y.resetEdges=!1;var Fa=Y.isVertexIgnored;Y.isVertexIgnored=function(b){return Fa.apply(this,arguments)||0>mxUtils.indexOf(f,b)};
+this.executeLayout(function(){Y.execute(A.getDefaultParent());Ea()},!0,ca);ca=null}}this.hideDialog()}finally{A.model.endUpdate()}null!=ca&&ca()}}catch(Na){this.handleError(Na)}};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,k){b=new LinkDialog(this,b,c,e,!0,f,k);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=
+function(b){var d=1;null==this.drive&&"function"!==typeof window.DriveClient||d++;null==this.dropbox&&"function"!==typeof window.DropboxClient||d++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||d++;null!=this.gitHub&&d++;null!=this.gitLab&&d++;null!=this.notion&&d++;b&&isLocalStorage&&"1"==urlParams.browser&&d++;return d};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 n=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){n.apply(this,arguments);var b=this.editor.graph,c=this.getCurrentFile(),e=this.isDiagramActive(),f=b.getEditableCells(b.getSelectionCells());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(0<
+f.length||b.isSelectionEmpty());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<f.length);this.actions.get("editGeometry").setEnabled(0<f.length&&b.getModel().isVertex(f[0]));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 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,k,n,t,v){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,
+k,n)),"image/svg+xml");else{var g=b.getFileData(!0,null,null,null,null,!0),l=d.getGraphBounds(),m=Math.floor(l.width*k/d.view.scale),p=Math.floor(l.height*k/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()};v&&(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(k,null==f||"none"==f,!0,!1,!1,n,!0,!1,null,v,t):b.exportImage(k,!1,!0,!1,!1,n,!0,!1,"jpeg",v);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 k={};try{var n=mxSettings.getCustomLibraries();for(b=0;b<n.length;b++){var t=n[b];if("R"==t.substring(0,1)){var y=JSON.parse(decodeURIComponent(t.substring(1)));k[y[0]]=
+{id:y[0],title:y[1],downloadUrl:y[2]}}}}catch(x){}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];k[e.id]&&(c[e.id]=e);var g=this.addCheckbox(f,e.title,k[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==k[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(D){this.handleError(D,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){b--;0==b&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(c[d]));for(d in k)c[d]||this.closeLibrary(new RemoteLibrary(this,null,k[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,k){var d=!0,g=window.setTimeout(mxUtils.bind(this,function(){d=!1;k({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),
+this.timeout),l=mxUtils.bind(this,function(){window.clearTimeout(g);d&&f.apply(this,arguments)}),m=mxUtils.bind(this,function(){window.clearTimeout(g);d&&k.apply(this,arguments)});e=e||{};e.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:l,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,g=this.remoteInvokableFns[e];if(null!=g&&"function"===typeof this[e]){if(g.allowedDomains){for(var f=!1,k=0;k<g.allowedDomains.length;k++)if(c=="https://"+g.allowedDomains[k]){f=!0;break}if(!f){d(null,"Invalid Call: "+e+" is not allowed.");return}}var n=b.functionArgs;Array.isArray(n)||
+(n=[]);if(g.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: "+e+" is not found.")}catch(x){d(null,"Invalid Call: An error occurred, "+x.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(u){null!=c&&c(u)}};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(C){console.log(C)}}),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(C){console.log(C)}});b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var f={};try{f=JSON.parse(b.data)}catch(K){}"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(K){console.log(K)}});window.addEventListener("message",b)}})));b(d);d.onversionchange=function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(p){null!=c&&c(p)}else null!=c&&c()}else b(this.database)};EditorUi.prototype.setDatabaseItem=function(b,c,e,f,k){this.openDatabase(mxUtils.bind(this,function(d){try{k=k||"objects";Array.isArray(k)||(k=
+[k],b=[b],c=[c]);var g=d.transaction(k,"readwrite");g.oncomplete=e;g.onerror=f;for(d=0;d<k.length;d++)g.objectStore(k[d]).put(null!=b&&null!=b[d]?{key:b[d],data:c[d]}:c[d])}catch(v){null!=f&&f(v)}}),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(u){null!=e&&e(u)}}),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(u){null!=c&&c(u)}}),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(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,k,n,t,v){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");
+return this.editor.loadUrl(b,c,e,f,k,n,t,v)};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,k,n,t,v,y,x,G,H,z,D,L,E){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,f,k,n,t,v,y,x,G,H,z,D,L,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,k){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(b,c,e,f,k)};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 k=
+"<mxfile "===f.substring(0,8)||"<?xml"===f.substring(0,5)||"\x3c!--[if IE]>"===f.substring(0,12),f="<mxlibrary>"===f.substring(0,11);(k||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,k,f,n){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++;z.style.display=0==c?"block":"none"}function d(b,c,d,e){function g(){c.removeChild(l);c.removeChild(m);k.style.display="block";f.style.display="block"}y={div:c,comment:b,saveCallback:d,deleteOnCancel:e};var f=c.querySelector(".geCommentTxt"),k=c.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
"geCommentEditTxtArea";l.style.minHeight=f.offsetHeight+"px";l.value=b.content;c.insertBefore(l,f);var m=document.createElement("div");m.className="geCommentEditBtns";var n=mxUtils.button(mxResources.get("cancel"),function(){e?(c.parentNode.removeChild(c),t()):g();y=null});n.className="geCommentEditBtn";m.appendChild(n);var p=mxUtils.button(mxResources.get("save"),function(){f.innerHTML="";b.content=l.value;mxUtils.write(f,b.content);g();d(b);y=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,f);k.style.display="none";f.style.display="none";l.focus()}function g(c,d){d.innerHTML="";var e=new Date(c.modifiedDate),g=b.timeSince(e);null==g&&(g=mxResources.get("lessThanAMinute"));mxUtils.write(d,mxResources.get("timeAgo",
-[g],"{1} ago"));d.setAttribute("title",e.toLocaleDateString()+" "+e.toLocaleTimeString())}function l(b){var c=document.createElement("img");c.className="geCommentBusyImg";c.src=IMAGE_PATH+"/spin.gif";b.appendChild(c);b.busyImg=c}function m(b){b.style.border="1px solid red";b.removeChild(b.busyImg)}function p(b){b.style.border="";b.removeChild(b.busyImg)}function q(c,e,f,k,n){function C(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)});M.appendChild(f);e&&(f.style.display="none")}function N(){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=O;b(c);return{pdiv:e,replies:d}}function x(e,f,g,n,t){function u(){l(x);c.addReply(C,function(b){C.id=b;c.replies.push(C);p(x);g&&g()},function(c){v();m(x);b.handleError(c,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},n,t)}function v(){d(C,x,function(b){u()},!0)}var z=N().pdiv,C=b.newComment(e,b.getCurrentUser());C.pCommentId=c.id;null==c.replies&&(c.replies=[]);var x=q(C,c.replies,z,k+1);f?v():u()}if(n||!c.isResolved){z.style.display="none";var O=document.createElement("div");O.className="geCommentContainer";O.setAttribute("data-commentId",c.id);O.style.marginLeft=20*k+5+"px";c.isResolved&&!Editor.isDarkMode()&&(O.style.backgroundColor="ghostWhite");
+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,f);k.style.display="none";f.style.display="none";l.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",
+[f],"{1} ago"));d.setAttribute("title",e.toLocaleDateString()+" "+e.toLocaleTimeString())}function l(b){var c=document.createElement("img");c.className="geCommentBusyImg";c.src=IMAGE_PATH+"/spin.gif";b.appendChild(c);b.busyImg=c}function m(b){b.style.border="1px solid red";b.removeChild(b.busyImg)}function p(b){b.style.border="";b.removeChild(b.busyImg)}function q(c,e,f,k,n){function C(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)});N.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=O;b(c);return{pdiv:e,replies:d}}function x(e,f,g,n,t){function u(){l(x);c.addReply(C,function(b){C.id=b;c.replies.push(C);p(x);g&&g()},function(c){v();m(x);b.handleError(c,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},n,t)}function v(){d(C,x,function(b){u()},!0)}var z=M().pdiv,C=b.newComment(e,b.getCurrentUser());C.pCommentId=c.id;null==c.replies&&(c.replies=[]);var x=q(C,c.replies,z,k+1);f?v():u()}if(n||!c.isResolved){z.style.display="none";var O=document.createElement("div");O.className="geCommentContainer";O.setAttribute("data-commentId",c.id);O.style.marginLeft=20*k+5+"px";c.isResolved&&!Editor.isDarkMode()&&(O.style.backgroundColor="ghostWhite");
var D=document.createElement("div");D.className="geCommentHeader";var K=document.createElement("img");K.className="geCommentUserImg";K.src=c.user.pictureUrl||Editor.userImage;D.appendChild(K);K=document.createElement("div");K.className="geCommentHeaderTxt";D.appendChild(K);var U=document.createElement("div");U.className="geCommentUsername";mxUtils.write(U,c.user.displayName||"");K.appendChild(U);U=document.createElement("div");U.className="geCommentDate";U.setAttribute("data-commentId",c.id);g(c,
-U);K.appendChild(U);O.appendChild(D);D=document.createElement("div");D.className="geCommentTxt";mxUtils.write(D,c.content||"");O.appendChild(D);c.isLocked&&(O.style.opacity="0.5");D=document.createElement("div");D.className="geCommentActions";var M=document.createElement("ul");M.className="geCommentActionsList";D.appendChild(M);u||c.isLocked||0!=k&&!v||C(mxResources.get("reply"),function(){x("",!0)},c.isResolved);K=b.getCurrentUser();null==K||K.id!=c.user.id||u||c.isLocked||(C(mxResources.get("edit"),
+U);K.appendChild(U);O.appendChild(D);D=document.createElement("div");D.className="geCommentTxt";mxUtils.write(D,c.content||"");O.appendChild(D);c.isLocked&&(O.style.opacity="0.5");D=document.createElement("div");D.className="geCommentActions";var N=document.createElement("ul");N.className="geCommentActionsList";D.appendChild(N);u||c.isLocked||0!=k&&!v||C(mxResources.get("reply"),function(){x("",!0)},c.isResolved);K=b.getCurrentUser();null==K||K.id!=c.user.id||u||c.isLocked||(C(mxResources.get("edit"),
function(){function e(){d(c,O,function(){l(O);c.editComment(c.content,function(){p(O)},function(c){m(O);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}e()},c.isResolved),C(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){l(O);c.deleteComment(function(b){if(!0===b){b=O.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var d=O.querySelectorAll(".geCommentAction");for(b=
-0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);p(O);O.style.opacity="0.5"}else{d=N(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}z.style.display=0==H.getElementsByTagName("div").length?"block":"none"}},function(c){m(O);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));u||c.isLocked||0!=k||C(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=N(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);F||(f[k].style.display="none")}t()}c.isResolved?x(mxResources.get("reOpened")+": ",!0,
+0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);p(O);O.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}z.style.display=0==H.getElementsByTagName("div").length?"block":"none"}},function(c){m(O);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));u||c.isLocked||0!=k||C(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);E||(f[k].style.display="none")}t()}c.isResolved?x(mxResources.get("reOpened")+": ",!0,
d,!1,!0):x(mxResources.get("markedAsResolved"),!1,d,!0)});O.appendChild(D);null!=f?H.insertBefore(O,f.nextSibling):H.appendChild(O);for(f=0;null!=c.replies&&f<c.replies.length;f++)D=c.replies[f],D.isResolved=c.isResolved,q(D,c.replies,null,k+1,n);null!=y&&(y.comment.id==c.id?(n=c.content,c.content=y.comment.content,d(c,O,y.saveCallback,y.deleteOnCancel),c.content=n):null==y.comment.id&&y.comment.pCommentId==c.id&&(H.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel)));return O}}
var u=!b.canComment(),v=b.canReplyToReplies(),y=null,x=document.createElement("div");x.className="geCommentsWin";x.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";x.appendChild(H);var z=document.createElement("span");z.style.cssText="display:none;padding-top:10px;text-align:center;";
mxUtils.write(z,mxResources.get("noCommentsFound"));var D=document.createElement("div");D.className="geToolbarContainer geCommentsToolbar";D.style.height=G;D.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";D.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";G=document.createElement("a");G.className="geButton";if(!u){var L=G.cloneNode();L.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';L.setAttribute("title",mxResources.get("create")+
"...");mxEvent.addListener(L,"click",function(c){function e(){d(f,g,function(c){l(g);b.addComment(c,function(b){c.id=b;J.push(c);p(g)},function(c){m(g);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var f=b.newComment("",b.getCurrentUser()),g=q(f,J,null,0);e();c.preventDefault();mxEvent.consume(c)});D.appendChild(L)}L=G.cloneNode();L.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';L.setAttribute("title",mxResources.get("showResolved"));
-var F=!1;Editor.isDarkMode()&&(L.style.filter="invert(100%)");mxEvent.addListener(L,"click",function(b){this.className=(F=!F)?"geButton geCheckedBtn":"geButton";C();b.preventDefault();mxEvent.consume(b)});D.appendChild(L);b.commentsRefreshNeeded()&&(L=G.cloneNode(),L.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',L.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(L.style.filter="invert(100%)"),mxEvent.addListener(L,"click",function(b){C();
+var E=!1;Editor.isDarkMode()&&(L.style.filter="invert(100%)");mxEvent.addListener(L,"click",function(b){this.className=(E=!E)?"geButton geCheckedBtn":"geButton";C();b.preventDefault();mxEvent.consume(b)});D.appendChild(L);b.commentsRefreshNeeded()&&(L=G.cloneNode(),L.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',L.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(L.style.filter="invert(100%)"),mxEvent.addListener(L,"click",function(b){C();
b.preventDefault();mxEvent.consume(b)}),D.appendChild(L));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){n();b.preventDefault();mxEvent.consume(b)}),D.appendChild(G));x.appendChild(D);var J=[],C=mxUtils.bind(this,function(){this.hasError=!1;if(null!=y)try{y.div=y.div.cloneNode(!0);
-var c=y.div.querySelector(".geCommentEditTxtArea"),e=y.div.querySelector(".geCommentEditBtns");y.comment.content=c.value;c.parentNode.removeChild(c);e.parentNode.removeChild(e)}catch(N){b.handleError(N)}H.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";v=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(z);z.style.display="block";J=b;for(b=0;b<J.length;b++)c(J[b].replies),q(J[b],J,null,0,F);null!=y&&null==y.comment.id&&null==y.comment.pCommentId&&(H.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel))},mxUtils.bind(this,function(b){H.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(b&&b.message?
+var c=y.div.querySelector(".geCommentEditTxtArea"),e=y.div.querySelector(".geCommentEditBtns");y.comment.content=c.value;c.parentNode.removeChild(c);e.parentNode.removeChild(e)}catch(M){b.handleError(M)}H.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";v=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(z);z.style.display="block";J=b;for(b=0;b<J.length;b++)c(J[b].replies),q(J[b],J,null,0,E);null!=y&&null==y.comment.id&&null==y.comment.pCommentId&&(H.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.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"))});C();this.refreshComments=C;D=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(g(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<J.length;e++)b(J[e])}});setInterval(D,6E4);this.refreshCommentsTime=D;this.window=
new mxWindow(mxResources.get("comments"),x,c,e,k,f,!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 K=mxUtils.bind(this,function(){var b=this.window.getX(),c=this.window.getY();this.window.setLocation(b,c)});mxEvent.addListener(window,"resize",K);this.destroy=function(){mxEvent.removeListener(window,"resize",K);this.window.destroy()}},ConfirmDialog=function(b,c,e,
@@ -3877,14 +3875,14 @@ f;return G.apply(this,arguments)};u.hoverIcons.getStateAt=function(c,d,e){return
v.getIncomingTreeEdges(l[f]),k=v.getIncomingTreeEdges(c[f]);if(0==m.length&&0<k.length){var n=this.cloneCell(k[0]);this.addEdge(n,v.getDefaultParent(),this.model.getTerminal(k[0],!0),l[f])}}}finally{this.model.endUpdate()}return l};var z=v.moveCells;v.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])||v.model.isEdge(c[q])&&null==v.model.getTerminal(c[q],
!0)){g=v.model.getParent(c[q]);break}if(null!=n&&g!=n&&null!=this.view.getState(c[0])){var t=v.getIncomingTreeEdges(c[0]);if(0<t.length){var u=v.view.getState(v.model.getTerminal(t[0],!0));if(null!=u){var C=v.view.getState(n);null!=C&&(d=(C.getCenterX()-u.getCenterX())/v.view.scale,e=(C.getCenterY()-u.getCenterY())/v.view.scale)}}}}m=z.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=v.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==v.getIncomingTreeEdges(m[q]).length){p=n;if(null==p||p==v.model.getParent(c[q]))p=v.model.getTerminal(t[0],!0);f=this.cloneCell(t[0]);this.addEdge(f,v.getDefaultParent(),p,m[q])}}finally{this.model.endUpdate()}return m};if(null!=u.sidebar){var D=u.sidebar.dropAndConnect;u.sidebar.dropAndConnect=
-function(c,d,e,f){var g=v.model,k=null;g.beginUpdate();try{if(k=D.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=v.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var L={88:u.actions.get("selectChildren"),84:u.actions.get("selectSubtree"),80:u.actions.get("selectParent"),83:u.actions.get("selectSiblings")},F=u.onKeyDown;u.onKeyDown=function(c){try{if(v.isEnabled()&&
+function(c,d,e,f){var g=v.model,k=null;g.beginUpdate();try{if(k=D.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=v.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var L={88:u.actions.get("selectChildren"),84:u.actions.get("selectSubtree"),80:u.actions.get("selectParent"),83:u.actions.get("selectSiblings")},E=u.onKeyDown;u.onKeyDown=function(c){try{if(v.isEnabled()&&
!v.isEditing()&&b(v.getSelectionCell())&&1==v.getSelectionCount()){var d=null;0<v.getIncomingTreeEdges(v.getSelectionCell()).length&&(9==c.which?d=mxEvent.isShiftDown(c)?l(v.getSelectionCell()):m(v.getSelectionCell()):13==c.which&&(d=g(v.getSelectionCell(),!mxEvent.isShiftDown(c))));if(null!=d&&0<d.length)1==d.length&&v.model.isEdge(d[0])?v.setSelectionCell(v.model.getTerminal(d[0],!1)):v.setSelectionCell(d[d.length-1]),null!=u.hoverIcons&&u.hoverIcons.update(v.view.getState(v.getSelectionCell())),
v.startEditingAtCell(v.getSelectionCell()),mxEvent.consume(c);else if(mxEvent.isAltDown(c)&&mxEvent.isShiftDown(c)){var e=L[c.keyCode];null!=e&&(e.funct(c),mxEvent.consume(c))}else 37==c.keyCode?(q(v.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(c)):38==c.keyCode?(q(v.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(c)):39==c.keyCode?(q(v.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(c)):40==c.keyCode&&(q(v.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
-mxEvent.consume(c))}}catch(E){u.handleError(E)}mxEvent.isConsumed(c)||F.apply(this,arguments)};var J=v.connectVertex;v.connectVertex=function(c,e,f,k,n,p,q){var t=v.getIncomingTreeEdges(c);if(b(c)){var u=d(c),z=u==mxConstants.DIRECTION_EAST||u==mxConstants.DIRECTION_WEST,C=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return u==e||0==t.length?m(c,e):z==C?l(c):g(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return J.apply(this,arguments)};v.getSubtree=function(d){var e=
+mxEvent.consume(c))}}catch(F){u.handleError(F)}mxEvent.isConsumed(c)||E.apply(this,arguments)};var J=v.connectVertex;v.connectVertex=function(c,e,f,k,n,p,q){var t=v.getIncomingTreeEdges(c);if(b(c)){var u=d(c),z=u==mxConstants.DIRECTION_EAST||u==mxConstants.DIRECTION_WEST,C=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return u==e||0==t.length?m(c,e):z==C?l(c):g(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return J.apply(this,arguments)};v.getSubtree=function(d){var e=
[d];!c(d)&&!b(d)||t(d)||v.traverse(d,!0,function(b,c){var d=null!=c&&v.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 C=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){C.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",
"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;u.hoverIcons.reset();mxEvent.consume(b)})))};var K=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){K.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 M=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){M.apply(this,
-arguments);null!=this.moveHandle&&(this.moveHandle.style.display=b?"":"none")};var aa=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(b,c){aa.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",
+this.graph.isMouseDown=!0;u.hoverIcons.reset();mxEvent.consume(b)})))};var K=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){K.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 Z=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(b,c){Z.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;");
b.vertex=!0;var c=new mxCell("Central Idea",new mxGeometry(160,60,100,40),'ellipse;whiteSpace=wrap;html=1;align=center;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');c.vertex=!0;var d=new mxCell("Topic",new mxGeometry(320,40,80,20),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
@@ -3909,9 +3907,9 @@ e.className="geTitle",f=document.createElement("span"),f.style.cssText="position
f.style.cssText="position:relative;top:6px;",mxUtils.write(f,mxResources.get("openLibrary")),e.appendChild(f),c.appendChild(e),mxEvent.addListener(e,"click",b.actions.get("openLibrary").funct)):(e=d("newLibrary",mxResources.get("newLibrary")),e.style.boxSizing="border-box",e.style.paddingRight="6px",e.style.paddingLeft="6px",e.style.height="32px",e.style.left="0",e=d("openLibraryFrom",mxResources.get("openLibraryFrom")),e.style.borderLeft="1px solid lightgray",e.style.boxSizing="border-box",e.style.paddingRight=
"6px",e.style.paddingLeft="6px",e.style.height="32px",e.style.left="50%");c.appendChild(b.sidebar.container);c.style.overflow="hidden";return c});b.sidebarWindow.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){b.sidebarWindow.window.fit()}));b.sidebarWindow.window.minimumSize=new mxRectangle(0,0,90,90);b.sidebarWindow.window.setVisible(!0);b.getLocalData("sidebar",function(c){b.sidebar.showEntries(c,null,!0)});b.restoreLibraries()}else b.sidebarWindow.window.setVisible(null!=c?c:!b.sidebarWindow.window.isVisible())}
if("1"==urlParams.lightbox||"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=null;else{var e=0;try{e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth}catch(z){}var k=function(b,c,d,e,f,g,k){var l=document.createElement("div");l.className="geSidebarContainer";l.style.position="absolute";l.style.width="100%";l.style.height="100%";l.style.border="1px solid whiteSmoke";l.style.overflowX="hidden";l.style.overflowY=
-"auto";k(l);this.window=new mxWindow(c,l,d,e,f,g,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.setLocation=function(b,c){var d=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-this.table.clientWidth-2));c=Math.max(0,Math.min(c,d-this.table.clientHeight-
-2));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};mxClient.IS_SF&&(this.window.div.onselectstart=mxUtils.bind(this,function(c){null==c&&(c=window.event);return null!=c&&b.isSelectionAllowed(c)}))};Editor.checkmarkImage=Graph.createSvgImage(22,18,'<path transform="translate(4 0)" d="M7.181,15.007a1,1,0,0,1-.793-0.391L3.222,10.5A1,1,0,1,1,4.808,9.274L7.132,12.3l6.044-8.86A1,1,0,1,1,14.83,4.569l-6.823,10a1,1,0,0,1-.8.437H7.181Z" fill="#29b6f2"/>').src;mxWindow.prototype.closeImage=
-Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;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"/>');
+"auto";k(l);this.window=new mxWindow(c,l,d,e,f,g,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.setLocation=function(b,c){var d=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,e=this.table.firstChild.firstChild.firstChild;b=Math.max(0,Math.min(b,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-e.clientWidth-2));
+c=Math.max(0,Math.min(c,d-e.clientHeight-2));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};mxClient.IS_SF&&(this.window.div.onselectstart=mxUtils.bind(this,function(c){null==c&&(c=window.event);return null!=c&&b.isSelectionAllowed(c)}))};Editor.checkmarkImage=Graph.createSvgImage(22,18,'<path transform="translate(4 0)" d="M7.181,15.007a1,1,0,0,1-.793-0.391L3.222,10.5A1,1,0,1,1,4.808,9.274L7.132,12.3l6.044-8.86A1,1,0,1,1,14.83,4.569l-6.823,10a1,1,0,0,1-.8.437H7.181Z" fill="#29b6f2"/>').src;
+mxWindow.prototype.closeImage=Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;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 f=document.createElement("link");f.setAttribute("rel","stylesheet");f.setAttribute("href",STYLE_PATH+"/dark.css");f.setAttribute("charset","UTF-8");f.setAttribute("type",
@@ -3948,74 +3946,75 @@ f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.sketchMode}
new ParseDialog(d,"Insert from Text");d.showDialog(b.container,620,420,!0,!1);b.init()}));d.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var b=new ParseDialog(d,"Insert from Text","formatSql");d.showDialog(b.container,620,420,!0,!1);b.init()}));d.actions.put("toggleShapes",new Action(mxResources.get("1"==urlParams.sketch?"moreShapes":"shapes")+"...",function(){c(d)},null,null,Editor.ctrlKey+"+Shift+K"));d.actions.put("toggleFormat",new Action(mxResources.get("format")+
"...",function(){b(d)})).shortcut=d.actions.get("formatPanel").shortcut;EditorUi.enablePlantUml&&!d.isOffline()&&d.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var b=new ParseDialog(d,mxResources.get("plantUml")+"...","plantUml");d.showDialog(b.container,620,420,!0,!1);b.init()}));d.actions.put("mermaid",new Action(mxResources.get("mermaid")+"...",function(){var b=new ParseDialog(d,mxResources.get("mermaid")+"...","mermaid");d.showDialog(b.container,620,420,!0,!1);
b.init()}));var g=this.addPopupMenuCellEditItems;this.put("editCell",new Menu(mxUtils.bind(this,function(b,c){var d=this.editorUi.editor.graph,e=d.getSelectionCell();g.call(this,b,e,null,c);this.addMenuItems(b,["editTooltip"],c);d.model.isVertex(e)&&this.addMenuItems(b,["editGeometry"],c);this.addMenuItems(b,["-","edit"],c)})));this.addPopupMenuCellEditItems=function(b,c,d,e){b.addSeparator();this.addSubmenu("editCell",b,e,mxResources.get("edit"))};this.put("diagram",new Menu(mxUtils.bind(this,function(b,
-c){var e=d.getCurrentFile();d.menus.addSubmenu("extras",b,c,mxResources.get("preferences"));b.addSeparator(c);if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)d.menus.addMenuItems(b,"new open - synchronize - save saveAs -".split(" "),c);else if("1"==urlParams.embed){"1"!=urlParams.noSaveBtn&&"1"!=urlParams.embedInline&&d.menus.addMenuItems(b,["-","save"],c);if("1"==urlParams.saveAndExit||"1"==urlParams.noSaveBtn&&"0"!=urlParams.saveAndExit)d.menus.addMenuItems(b,["saveAndExit"],c),null!=e&&e.isRevisionHistorySupported()&&
-d.menus.addMenuItems(b,["revisionHistory"],c);b.addSeparator(c)}else d.mode==App.MODE_ATLAS?d.menus.addMenuItems(b,["save","synchronize","-"],c):"1"!=urlParams.noFileMenu&&(d.menus.addMenuItems(b,["new"],c),d.menus.addSubmenu("openFrom",b,c),isLocalStorage&&this.addSubmenu("openRecent",b,c),"1"!=urlParams.sketch&&(b.addSeparator(c),null!=e&&e.constructor==DriveFile&&d.menus.addMenuItems(b,["share"],c),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,
-["synchronize"],c)),b.addSeparator(c),d.menus.addSubmenu("save",b,c));d.menus.addSubmenu("exportAs",b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?d.menus.addMenuItems(b,["import"],c):"1"!=urlParams.noFileMenu&&d.menus.addSubmenu("importFrom",b,c);"1"!=urlParams.sketch&&(d.menus.addMenuItems(b,["-","outline"],c),d.commentsSupported()&&d.menus.addMenuItems(b,["comments"],c));d.menus.addMenuItems(b,"- findReplace layers tags - pageSetup".split(" "),c);"1"==urlParams.noFileMenu||mxClient.IS_IOS&&
-navigator.standalone||d.menus.addMenuItems(b,["print"],c);null!=e&&null!=d.fileNode&&"1"!=urlParams.embedInline&&(e=null!=e.getTitle()?e.getTitle():d.defaultFilename,/(\.html)$/i.test(e)||/(\.svg)$/i.test(e)||this.addMenuItems(b,["-","properties"]));b.addSeparator(c);d.menus.addSubmenu("help",b,c);"1"==urlParams.embed?"1"!=urlParams.noExitBtn&&d.menus.addMenuItems(b,["-","exit"],c):"1"!=urlParams.noFileMenu&&d.menus.addMenuItems(b,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(b,
-c){var e=d.getCurrentFile();null!=e&&e.constructor==DriveFile?d.menus.addMenuItems(b,["save","makeCopy","-","rename","moveToFolder"],c):(d.menus.addMenuItems(b,["save","saveAs","-","rename"],c),d.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(b,["upload"],c):d.menus.addMenuItems(b,["makeCopy"],c));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["-","synchronize"],c);
-d.menus.addMenuItems(b,["-","autosave"],c);null!=e&&e.isRevisionHistorySupported()&&d.menus.addMenuItems(b,["-","revisionHistory"],c)})));var k=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){k.funct(b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||d.menus.addMenuItems(b,["publishLink"],c);d.mode!=App.MODE_ATLAS&&"1"!=urlParams.extAuth&&(b.addSeparator(c),d.menus.addSubmenu("embed",b,c))})));var l=this.get("language");this.put("table",new Menu(mxUtils.bind(this,
-function(b,c){d.menus.addInsertTableCellItem(b,c)})));var m=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(b,c){m.funct(b,c);this.addMenuItems(b,["editDiagram"],c);"1"==urlParams.sketch&&(b.addSeparator(c),b.addItem(mxResources.get("csv")+"...",null,function(){d.showImportCsvDialog()},c,null,mxUtils.bind(e,e.isEnabled)),d.addInsertMenuItems(b,c,["formatSql","-","fromText","plantUml","mermaid"]))})));this.put("extras",new Menu(mxUtils.bind(this,function(b,c){"1"!=
-urlParams.embed&&"1"!=urlParams.extAuth&&d.menus.addSubmenu("theme",b,c);null!=l&&d.menus.addSubmenu("language",b,c);d.menus.addSubmenu("units",b,c);d.menus.addMenuItems(b,"- pageScale ruler - scrollbars tooltips - copyConnect collapseExpand -".split(" "),c);"1"==urlParams.sketch&&this.addMenuItems(b,["toggleSketchMode"],c);"1"!=urlParams.embedInline&&((Editor.isDarkMode()||!mxClient.IS_IE&&!mxClient.IS_IE11)&&this.addMenuItems(b,["toggleDarkMode"],c),"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&
-d.menus.addMenuItems(b,["-","showStartScreen","search","scratchpad"],c),"1"==urlParams.sketch&&null==urlParams.pages&&this.addMenuItems(b,["togglePagesVisible"],c));b.addSeparator(c);d.menus.addMenuItem(b,"configuration",c);!d.isOfflineApp()&&isLocalStorage&&d.menus.addMenuItem(b,"plugins",c);this.addMenuItems(b,["-","fullscreen"],c);b.addSeparator(c)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(b,c){d.menus.addMenuItems(b,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),
-c)})));mxUtils.bind(this,function(){var b=this.get("insert"),c=b.funct;b.funct=function(b,e){"1"==urlParams.sketch?(d.menus.addMenuItems(b,["insertFreehand"],e),d.insertTemplateEnabled&&!d.isOffline()&&d.menus.addMenuItems(b,["insertTemplate"],e)):(c.apply(this,arguments),d.menus.addSubmenu("table",b,e),b.addSeparator(e));d.menus.addMenuItems(b,["-","toggleShapes"],e)}})();var n="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),p=function(b,c,e,f){b.addItem(e,
-null,mxUtils.bind(this,function(){var b=new CreateGraphDialog(d,e,f);d.showDialog(b.container,620,420,!0,!1);b.init()}),c)};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 G=!1;EditorUi.prototype.initFormatWindow=function(){if(!G){G=!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 H=EditorUi.prototype.init;EditorUi.prototype.init=function(){function d(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",k.style.width="34px"):mxUtils.write(k,
-b);mxEvent.addListener(k,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(k,"click",function(b){"disabled"!=k.getAttribute("disabled")&&c(b);mxEvent.consume(b)});null==d&&(k.style.marginRight="4px");null!=e&&k.setAttribute("title",e);null!=f&&(b=function(){f.isEnabled()?(k.removeAttribute("disabled"),k.style.cursor="pointer"):(k.setAttribute("disabled","disabled"),k.style.cursor="default")},f.addListener("stateChanged",b),n.addListener("enabledChanged",
-b),b());return k}function g(b,c,d){d=document.createElement("div");d.className="geMenuItem";d.style.display="inline-block";d.style.verticalAlign="top";d.style.marginRight="6px";d.style.padding="0 4px 0 4px";d.style.height="30px";d.style.position="relative";d.style.top="0px";"1"==urlParams.sketch&&(d.style.boxShadow="none");for(var e=0;e<b.length;e++)null!=b[e]&&("1"==urlParams.sketch&&(b[e].style.padding="10px 8px",b[e].style.width="30px"),b[e].style.margin="0px",b[e].style.boxShadow="none",d.appendChild(b[e]));
-null!=c&&mxUtils.setOpacity(d,c);null!=m.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(d,m.statusContainer):p.appendChild(d);return d}function k(){if("1"==urlParams.sketch)"1"!=urlParams.embedInline&&(V.style.left=58>Q.offsetTop-Q.offsetHeight/2?"70px":"10px");else{for(var b=p.firstChild;null!=b;){var c=b.nextSibling;"geMenuItem"!=b.className&&"geItem"!=b.className||b.parentNode.removeChild(b);b=c}q=p.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;
-var b=1E3>e||"1"==urlParams.sketch,k=null;b||(k=d("diagram"));c=b?d("diagram",null,Editor.drawLogoImage):null;null!=c&&(k=c);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);c=d("insert",!0,b?G:null);
-g([c,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<=e&&(g([ia,da],60),520<=e&&g([ta,640<=e?f("",sa.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",sa,Editor.zoomInImage):null,640<=e?f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",W,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));c=m.menus.get("language");null!=c&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=e&&"1"!=urlParams.sketch?(null==pa&&(c=t.addMenu("",c.funct),c.setAttribute("title",mxResources.get("language")),c.className="geToolbarButton",c.style.backgroundImage="url("+Editor.globeImage+")",c.style.backgroundPosition="center center",c.style.backgroundRepeat="no-repeat",c.style.backgroundSize=
-"24px 24px",c.style.position="absolute",c.style.height="24px",c.style.width="24px",c.style.zIndex="1",c.style.right="8px",c.style.cursor="pointer",c.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(c),pa=c),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=pa&&(pa.parentNode.removeChild(pa),pa=null))}H.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&&this.toggleScratchpad();if("1"!=urlParams.sketch&&1E3<=e||null!=urlParams.clibs||null!=urlParams.libs||
-null!=urlParams["search-shapes"])c(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);this.div.style.left=Math.max(m.embedViewport.x,Math.min(b,m.embedViewport.x+m.embedViewport.width-
-c))+"px";b=parseInt(this.div.offsetTop);c=parseInt(this.div.offsetHeight);this.div.style.top=Math.max(m.embedViewport.y,Math.min(b,m.embedViewport.y+m.embedViewport.height-c))+"px"}};this.keyHandler.bindAction(75,!0,"toggleShapes",!0);("1"==urlParams.sketch||1E3<=e)&&"1"!=urlParams.embedInline&&(b(this,!0),"1"==urlParams.sketch&&(this.initFormatWindow(),this.formatWindow.window.toggleMinimized()));var m=this,n=m.editor.graph;m.toolbar=this.createToolbar(m.createDiv("geToolbar"));m.defaultLibraryName=
-mxResources.get("untitledLibrary");var p=document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(m,p);m.statusContainer=m.createStatusContainer();m.statusContainer.style.position="relative";m.statusContainer.style.maxWidth="";m.statusContainer.style.marginTop="7px";m.statusContainer.style.marginLeft="6px";m.statusContainer.style.color="gray";m.statusContainer.style.cursor="default";var u=m.hideCurrentMenu;m.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};
-var v=m.descriptorChanged;m.descriptorChanged=function(){v.apply(this,arguments);var b=m.getCurrentFile();if(null!=b&&null!=b.getTitle()){var c=b.getMode();"google"==c?c="googleDrive":"github"==c?c="gitHub":"gitlab"==c?c="gitLab":"onedrive"==c&&(c="oneDrive");c=mxResources.get(c);p.setAttribute("title",b.getTitle()+(null!=c?" ("+c+")":""))}else p.removeAttribute("title")};m.setStatusText(m.editor.getStatus());p.appendChild(m.statusContainer);m.buttonContainer=document.createElement("div");m.buttonContainer.style.cssText=
-"position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";p.appendChild(m.buttonContainer);m.menubarContainer=m.buttonContainer;m.tabContainer=document.createElement("div");m.tabContainer.className="geTabContainer";m.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var l=m.diagramContainer.parentNode,x=document.createElement("div");x.style.cssText=
-"position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";if("1"==urlParams.winCtrls&&"1"==urlParams.sketch){x.style.top="20px";m.titlebar=document.createElement("div");m.titlebar.style.cssText="position:absolute;top:0px;left:0px;right:0px;height:20px;overflow:hidden;box-shadow: 0px 0px 2px #c0c0c0;";var y=document.createElement("div");y.style.cssText="max-width: calc(100% - 100px);text-overflow: ellipsis;user-select:none;height:20px;margin: 2px 10px;font-size: 12px;white-space: nowrap;overflow: hidden;";
-m.titlebar.appendChild(y);l.appendChild(m.titlebar)}var A=m.menus.get("viewZoom"),G="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,S="1"==urlParams.sketch?document.createElement("div"):null,Q="1"==urlParams.sketch?document.createElement("div"):null,V="1"==urlParams.sketch?document.createElement("div"):null,y=mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes=
-{},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));n.refresh();n.view.validateBackground()});m.addListener("darkModeChanged",y);m.addListener("sketchModeChanged",y);var na=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)V.style.left="10px",V.style.top="10px",Q.style.left="10px",Q.style.top="60px",S.style.top="10px",S.style.right="12px",S.style.left="",m.diagramContainer.setAttribute("data-bounds",m.diagramContainer.style.top+" "+m.diagramContainer.style.left+
-" "+m.diagramContainer.style.width+" "+m.diagramContainer.style.height),m.diagramContainer.style.top="0px",m.diagramContainer.style.left="0px",m.diagramContainer.style.bottom="0px",m.diagramContainer.style.right="0px",m.diagramContainer.style.width="",m.diagramContainer.style.height="";else{var b=m.diagramContainer.getAttribute("data-bounds");if(null!=b){m.diagramContainer.style.background="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()}V.style.left=m.diagramContainer.offsetLeft+"px";V.style.top=m.diagramContainer.offsetTop-V.offsetHeight-4+"px";Q.style.display="";Q.style.left=m.diagramContainer.offsetLeft-
-Q.offsetWidth-4+"px";Q.style.top=m.diagramContainer.offsetTop+"px";S.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-S.offsetWidth+"px";S.style.top=V.style.top;S.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";V.style.visibility="";S.style.visibility=""}),fa=mxUtils.bind(this,function(){oa.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:
-Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";na()}),y=mxUtils.bind(this,function(){fa();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",fa);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";V.style.visibility="hidden";S.style.visibility="hidden";Q.style.display="none"}));Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(b){var c=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(c)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(c)&&(null==
-b.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))});if(null!=m.hoverIcons){var ka=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||ka.apply(this,arguments)}}if(null!=n.freehand){var ra=n.freehand.createStyle;n.freehand.createStyle=function(b){return ra.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){Q.className="geToolbarContainer";S.className="geToolbarContainer";V.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=Q;var la=
-!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){la||(m.statusContainer.style.display="none")});var ja=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=null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):m.editor.getStatus();ja(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",la=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display="none",la=!1)}else m.statusContainer.style.display="inline-block",ja(null),la=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}))):m.editor.addListener("statusChanged",mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));P=d("diagram",null,Editor.menuImage);P.style.boxShadow=
-"none";P.style.padding="6px";P.style.margin="0px";V.appendChild(P);mxEvent.disableContextMenu(P);mxEvent.addGestureListeners(P,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(e-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 ba=document.createElement("a");ba.style.padding="0px";ba.style.boxShadow="none";ba.className="geMenuItem";ba.style.display="inline-block";ba.style.width="40px";ba.style.height="12px";ba.style.marginBottom="-2px";ba.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+
-")";ba.style.backgroundPosition="top center";ba.style.backgroundRepeat="no-repeat";ba.setAttribute("title","Minimize");var ca=!1,R=mxUtils.bind(this,function(){Q.innerHTML="";if(!ca){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";Q.appendChild(b);mxUtils.br(Q);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 e=m.actions.get("toggleShapes");b(e,mxResources.get("shapes")+" ("+e.shortcut+")",G);P=d("table",null,Editor.tableImage);P.style.boxShadow="none";P.style.opacity="0.7";P.style.padding="6px";
-P.style.margin="0px";P.style.width="37px";c(P,null,"pointer");b(m.actions.get("insertTemplate"),mxResources.get("template"),Editor.templateImage)}"1"!=urlParams.embedInline&&Q.appendChild(ba)});mxEvent.addListener(ba,"click",mxUtils.bind(this,function(){ca?(mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, -50%)"),Q.style.padding="8px 6px 4px",Q.style.top="50%",Q.style.bottom="",Q.style.height="",ba.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",ba.style.width="40px",
-ba.style.height="12px",ba.setAttribute("title","Minimize"),ca=!1,R()):(Q.innerHTML="",Q.appendChild(ba),mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, 0)"),Q.style.top="",Q.style.bottom="12px",Q.style.padding="0px",Q.style.height="24px",ba.style.height="24px",ba.style.backgroundImage="url("+Editor.plusImage+")",ba.setAttribute("title",mxResources.get("insert")),ba.style.width="24px",ca=!0)}));R();m.addListener("darkModeChanged",R);m.addListener("sketchModeChanged",R)}else m.editor.addListener("statusChanged",
-mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus())}));if(null!=A){var y=function(b){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)||mxEvent.isShiftDown(b)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},sa=m.actions.get("zoomIn"),W=m.actions.get("zoomOut"),X=m.actions.get("resetView"),ma=m.actions.get("fullscreen");m.actions.get("toggleDarkMode");var qa=m.actions.get("undo"),T=m.actions.get("redo"),ia=f("",qa.funct,null,mxResources.get("undo")+" ("+qa.shortcut+
-")",qa,Editor.undoImage),da=f("",T.funct,null,mxResources.get("redo")+" ("+T.shortcut+")",T,Editor.redoImage),oa=f("",ma.funct,null,mxResources.get("fullscreen"),ma,Editor.fullscreenImage);if(null!=S){A=function(){ea.style.display=null!=m.pages&&("1"==urlParams.pages||1<m.pages.length||Editor.pagesVisible)?"inline-block":"none"};oa.parentNode.removeChild(oa);var ha=m.actions.get("delete"),ua=f("",ha.funct,null,mxResources.get("delete"),ha,Editor.trashImage);ua.style.opacity="0.1";V.appendChild(ua);
-ha.addListener("stateChanged",function(){ua.style.opacity=ha.enabled?"":"0.1"});X=function(){ia.style.display=0<m.editor.undoManager.history.length||n.isEditing()?"inline-block":"none";da.style.display=ia.style.display;ia.style.opacity=qa.enabled?"":"0.1";da.style.opacity=T.enabled?"":"0.1"};V.appendChild(ia);V.appendChild(da);qa.addListener("stateChanged",X);T.addListener("stateChanged",X);X();null!=urlParams.layers&&(X=m.actions.get("layers"),X=f("",X.funct,null,mxResources.get("layers"),X,Editor.layersImage),
-X.style.opacity="0.4",S.appendChild(X));null!=urlParams.tags&&(X=m.actions.get("tags"),X=f("",X.funct,null,mxResources.get("tags"),X,Editor.tagsImage),X.style.opacity="0.4",S.appendChild(X));X=m.actions.get("outline");X=f("",X.funct,null,mxResources.get("outline"),X,Editor.outlineImage);S.appendChild(X);X=f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",W,Editor.zoomOutImage);S.appendChild(X);var P=document.createElement("div");P.innerHTML="100%";P.setAttribute("title",
-mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+" (Enter)");P.style.display="inline-block";P.style.cursor="pointer";P.style.textAlign="center";P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.verticalAlign="top";P.style.padding="6px 0";P.style.fontSize="14px";P.style.width="40px";P.style.opacity="0.4";S.appendChild(P);mxEvent.addListener(P,"click",y);y=f("",sa.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",sa,
-Editor.zoomInImage);S.appendChild(y);"1"==urlParams.embedInline&&(S.appendChild(oa),y=m.actions.get("exit"),S.appendChild(f("",y.funct,null,mxResources.get("exit"),y,Editor.closeImage)));var ea=this.createPageMenuTab(!1);ea.style.display="none";ea.style.position="";ea.style.marginLeft="";ea.style.top="";ea.style.left="";ea.style.height="100%";ea.style.lineHeight="";ea.style.borderStyle="none";ea.style.padding="3px 0";ea.style.margin="0px";ea.style.background="";ea.style.border="";ea.style.boxShadow=
-"none";ea.style.verticalAlign="top";ea.firstChild.style.height="100%";ea.firstChild.style.opacity="0.6";ea.firstChild.style.margin="0px";S.appendChild(ea);m.addListener("fileDescriptorChanged",A);m.addListener("pagesVisibleChanged",A);A();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;";
-V.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;";S.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(V);x.appendChild(S);Q.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;";
-x.appendChild(Q);window.setTimeout(function(){mxUtils.setPrefixedStyle(Q.style,"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(x)}else{var ta=f("",y,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",X,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";P=t.addMenu("100%",A.funct);P.setAttribute("title",mxResources.get("zoom")+
-" (Alt+Mousewheel)");P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.textDecoration="none";P.style.overflow="hidden";P.style.visibility="hidden";P.style.textAlign="center";P.style.cursor="pointer";P.style.height=parseInt(m.tabContainerHeight)-1+"px";P.style.lineHeight=parseInt(m.tabContainerHeight)+1+"px";P.style.position="absolute";P.style.display="block";P.style.fontSize="12px";P.style.width="59px";P.style.right="0px";P.style.bottom="0px";P.style.backgroundImage=
-"url("+mxWindow.prototype.minimizeImage+")";P.style.backgroundPosition="right 6px center";P.style.backgroundRepeat="no-repeat";x.appendChild(P)}(function(b){var c=mxUtils.bind(this,function(){b.innerHTML=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)})(P);var ya=m.setGraphEnabled;m.setGraphEnabled=function(){ya.apply(this,arguments);null!=this.tabContainer&&(P.style.visibility=
-this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==S?this.tabContainerHeight+"px":"0px")}}x.appendChild(p);x.appendChild(m.diagramContainer);l.appendChild(x);m.updateTabContainer();null==S&&x.appendChild(m.tabContainer);var pa=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";Q.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 xa=null,za=null,Ba=null,Ea=null;mxEvent.addGestureListeners(l,function(b){Ea=parseInt(m.diagramContainer.style.height);za=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){Ba=parseInt(m.diagramContainer.style.width);xa=mxEvent.getClientX(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});mxEvent.addGestureListeners(document.body,null,function(b){var c=!1;null!=xa&&(m.diagramContainer.style.width=Math.max(20,Ba+mxEvent.getClientX(b)-xa)+"px",c=!0);null!=za&&(m.diagramContainer.style.height=Math.max(20,
-Ea+mxEvent.getClientY(b)-za)+"px",c=!0);c&&((window.opener||window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:m.diagramContainer.getBoundingClientRect()}),"*"),na(),m.refresh())},function(b){null==xa&&null==za||mxEvent.consume(b);za=xa=null});this.diagramContainer.style.borderRadius="4px";document.body.style.backgroundColor="transparent";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";V.style.visibility="hidden";S.style.visibility=
-"hidden";Q.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,k,f,n,t){this.file=b;this.id=c;this.content=e;this.modifiedDate=k;this.createdDate=f;this.isResolved=n;this.user=t;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,c,e,k,f){c()};DrawioComment.prototype.editComment=function(b,c,e){c()};DrawioComment.prototype.deleteComment=function(b,c){b()};DrawioUser=function(b,c,e,k,f){this.id=b;this.email=c;this.displayName=e;this.pictureUrl=k;this.locale=f};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\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\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\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\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\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\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\npickGDriveFile=Pick 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.\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;
+c){var e=d.getCurrentFile();d.menus.addSubmenu("extras",b,c,mxResources.get("preferences"));b.addSeparator(c);if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)d.menus.addMenuItems(b,"new open - synchronize - save saveAs -".split(" "),c);else if("1"==urlParams.embed||d.mode==App.MODE_ATLAS){"1"!=urlParams.noSaveBtn&&"1"!=urlParams.embedInline&&d.menus.addMenuItems(b,["-","save"],c);if("1"==urlParams.saveAndExit||"1"==urlParams.noSaveBtn&&"0"!=urlParams.saveAndExit||d.mode==App.MODE_ATLAS)d.menus.addMenuItems(b,
+["saveAndExit"],c),null!=e&&e.isRevisionHistorySupported()&&d.menus.addMenuItems(b,["revisionHistory"],c);b.addSeparator(c)}else d.mode==App.MODE_ATLAS?d.menus.addMenuItems(b,["save","synchronize","-"],c):"1"!=urlParams.noFileMenu&&(d.menus.addMenuItems(b,["new"],c),d.menus.addSubmenu("openFrom",b,c),isLocalStorage&&this.addSubmenu("openRecent",b,c),"1"!=urlParams.sketch&&(b.addSeparator(c),null!=e&&e.constructor==DriveFile&&d.menus.addMenuItems(b,["share"],c),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
+null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["synchronize"],c)),b.addSeparator(c),d.menus.addSubmenu("save",b,c));d.menus.addSubmenu("exportAs",b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?d.menus.addMenuItems(b,["import"],c):"1"!=urlParams.noFileMenu&&d.menus.addSubmenu("importFrom",b,c);"1"!=urlParams.sketch&&(d.menus.addMenuItems(b,["-","outline"],c),d.commentsSupported()&&d.menus.addMenuItems(b,["comments"],c));d.menus.addMenuItems(b,"- findReplace layers tags - pageSetup".split(" "),
+c);"1"==urlParams.noFileMenu||mxClient.IS_IOS&&navigator.standalone||d.menus.addMenuItems(b,["print"],c);null!=e&&null!=d.fileNode&&"1"!=urlParams.embedInline&&(e=null!=e.getTitle()?e.getTitle():d.defaultFilename,/(\.html)$/i.test(e)||/(\.svg)$/i.test(e)||this.addMenuItems(b,["-","properties"]));b.addSeparator(c);d.menus.addSubmenu("help",b,c);"1"==urlParams.embed||d.mode==App.MODE_ATLAS?"1"==urlParams.noExitBtn&&d.mode!=App.MODE_ATLAS||d.menus.addMenuItems(b,["-","exit"],c):"1"!=urlParams.noFileMenu&&
+d.menus.addMenuItems(b,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(b,c){var e=d.getCurrentFile();null!=e&&e.constructor==DriveFile?d.menus.addMenuItems(b,["save","makeCopy","-","rename","moveToFolder"],c):(d.menus.addMenuItems(b,["save","saveAs","-","rename"],c),d.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(b,["upload"],c):d.menus.addMenuItems(b,["makeCopy"],c));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
+null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["-","synchronize"],c);d.menus.addMenuItems(b,["-","autosave"],c);null!=e&&e.isRevisionHistorySupported()&&d.menus.addMenuItems(b,["-","revisionHistory"],c)})));var k=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){k.funct(b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||d.menus.addMenuItems(b,["publishLink"],c);d.mode!=App.MODE_ATLAS&&"1"!=urlParams.extAuth&&(b.addSeparator(c),d.menus.addSubmenu("embed",
+b,c))})));var l=this.get("language");this.put("table",new Menu(mxUtils.bind(this,function(b,c){d.menus.addInsertTableCellItem(b,c)})));var m=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(b,c){m.funct(b,c);this.addMenuItems(b,["editDiagram"],c);"1"==urlParams.sketch&&(b.addSeparator(c),b.addItem(mxResources.get("csv")+"...",null,function(){d.showImportCsvDialog()},c,null,mxUtils.bind(e,e.isEnabled)),d.addInsertMenuItems(b,c,["formatSql","-","fromText","plantUml",
+"mermaid"]))})));this.put("extras",new Menu(mxUtils.bind(this,function(b,c){"1"!=urlParams.embed&&"1"!=urlParams.extAuth&&d.menus.addSubmenu("theme",b,c);null!=l&&d.menus.addSubmenu("language",b,c);d.menus.addSubmenu("units",b,c);d.menus.addMenuItems(b,"- pageScale ruler - scrollbars tooltips - copyConnect collapseExpand -".split(" "),c);"1"!=urlParams.embedInline&&("1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&d.menus.addMenuItems(b,["-","showStartScreen","search","scratchpad"],
+c),"1"==urlParams.sketch&&null==urlParams.pages&&this.addMenuItems(b,["togglePagesVisible"],c));b.addSeparator(c);d.menus.addMenuItem(b,"configuration",c);!d.isOfflineApp()&&isLocalStorage&&d.mode!=App.MODE_ATLAS&&d.menus.addMenuItem(b,"plugins",c);this.addMenuItems(b,["-","fullscreen"],c);(Editor.isDarkMode()||!mxClient.IS_IE&&!mxClient.IS_IE11)&&this.addMenuItems(b,["toggleDarkMode"],c);"1"==urlParams.sketch&&this.addMenuItems(b,["-","toggleSketchMode"],c);b.addSeparator(c)})));this.put("insertAdvanced",
+new Menu(mxUtils.bind(this,function(b,c){d.menus.addMenuItems(b,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),c)})));mxUtils.bind(this,function(){var b=this.get("insert"),c=b.funct;b.funct=function(b,e){"1"==urlParams.sketch?(d.menus.addMenuItems(b,["insertFreehand"],e),d.insertTemplateEnabled&&!d.isOffline()&&d.menus.addMenuItems(b,["insertTemplate"],e)):(c.apply(this,arguments),d.menus.addSubmenu("table",b,e),b.addSeparator(e));d.menus.addMenuItems(b,["-",
+"toggleShapes"],e)}})();var n="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),p=function(b,c,e,f){b.addItem(e,null,mxUtils.bind(this,function(){var b=new CreateGraphDialog(d,e,f);d.showDialog(b.container,620,420,!0,!1);b.init()}),c)};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 G=!1;EditorUi.prototype.initFormatWindow=
+function(){if(!G){G=!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 H=EditorUi.prototype.init;EditorUi.prototype.init=function(){function d(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",k.style.width="34px"):mxUtils.write(k,b);mxEvent.addListener(k,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(k,"click",function(b){"disabled"!=k.getAttribute("disabled")&&c(b);mxEvent.consume(b)});
+null==d&&(k.style.marginRight="4px");null!=e&&k.setAttribute("title",e);null!=f&&(b=function(){f.isEnabled()?(k.removeAttribute("disabled"),k.style.cursor="pointer"):(k.setAttribute("disabled","disabled"),k.style.cursor="default")},f.addListener("stateChanged",b),n.addListener("enabledChanged",b),b());return k}function g(b,c,d){d=document.createElement("div");d.className="geMenuItem";d.style.display="inline-block";d.style.verticalAlign="top";d.style.marginRight="6px";d.style.padding="0 4px 0 4px";
+d.style.height="30px";d.style.position="relative";d.style.top="0px";"1"==urlParams.sketch&&(d.style.boxShadow="none");for(var e=0;e<b.length;e++)null!=b[e]&&("1"==urlParams.sketch&&(b[e].style.padding="10px 8px",b[e].style.width="30px"),b[e].style.margin="0px",b[e].style.boxShadow="none",d.appendChild(b[e]));null!=c&&mxUtils.setOpacity(d,c);null!=m.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(d,m.statusContainer):p.appendChild(d);return d}function k(){if("1"==urlParams.sketch)"1"!=urlParams.embedInline&&
+(V.style.left=58>Q.offsetTop-Q.offsetHeight/2?"70px":"10px");else{for(var b=p.firstChild;null!=b;){var c=b.nextSibling;"geMenuItem"!=b.className&&"geItem"!=b.className||b.parentNode.removeChild(b);b=c}q=p.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var b=1E3>e||"1"==urlParams.sketch,k=null;b||(k=d("diagram"));c=b?d("diagram",null,Editor.drawLogoImage):null;null!=c&&(k=c);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);c=d("insert",!0,b?G:null);g([c,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<=e&&(g([ia,da],60),520<=e&&g([ta,640<=e?f("",sa.funct,!0,mxResources.get("zoomIn")+
+" ("+Editor.ctrlKey+" +)",sa,Editor.zoomInImage):null,640<=e?f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",W,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));c=m.menus.get("language");null!=c&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&
+600<=e&&"1"!=urlParams.sketch?(null==pa&&(c=t.addMenu("",c.funct),c.setAttribute("title",mxResources.get("language")),c.className="geToolbarButton",c.style.backgroundImage="url("+Editor.globeImage+")",c.style.backgroundPosition="center center",c.style.backgroundRepeat="no-repeat",c.style.backgroundSize="24px 24px",c.style.position="absolute",c.style.height="24px",c.style.width="24px",c.style.zIndex="1",c.style.right="8px",c.style.cursor="pointer",c.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(c),
+pa=c),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=pa&&(pa.parentNode.removeChild(pa),pa=null))}H.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&&this.toggleScratchpad();if("1"!=urlParams.sketch&&1E3<=e||null!=urlParams.clibs||null!=urlParams.libs||null!=urlParams["search-shapes"])c(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);this.div.style.left=Math.max(m.embedViewport.x,Math.min(b,m.embedViewport.x+m.embedViewport.width-c))+"px";b=parseInt(this.div.offsetTop);c=parseInt(this.div.offsetHeight);this.div.style.top=Math.max(m.embedViewport.y,Math.min(b,m.embedViewport.y+m.embedViewport.height-c))+"px"}};this.keyHandler.bindAction(75,!0,"toggleShapes",!0);("1"==urlParams.sketch||1E3<=e)&&"1"!=urlParams.embedInline&&
+(b(this,!0),"1"==urlParams.sketch&&(this.initFormatWindow(),this.formatWindow.window.toggleMinimized()));var m=this,n=m.editor.graph;m.toolbar=this.createToolbar(m.createDiv("geToolbar"));m.defaultLibraryName=mxResources.get("untitledLibrary");var p=document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(m,p);m.statusContainer=m.createStatusContainer();m.statusContainer.style.position="relative";m.statusContainer.style.maxWidth="";m.statusContainer.style.marginTop=
+"7px";m.statusContainer.style.marginLeft="6px";m.statusContainer.style.color="gray";m.statusContainer.style.cursor="default";var u=m.hideCurrentMenu;m.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=m.descriptorChanged;m.descriptorChanged=function(){v.apply(this,arguments);var b=m.getCurrentFile();if(null!=b&&null!=b.getTitle()){var c=b.getMode();"google"==c?c="googleDrive":"github"==c?c="gitHub":"gitlab"==c?c="gitLab":"onedrive"==c&&(c="oneDrive");
+c=mxResources.get(c);p.setAttribute("title",b.getTitle()+(null!=c?" ("+c+")":""))}else p.removeAttribute("title")};m.setStatusText(m.editor.getStatus());p.appendChild(m.statusContainer);m.buttonContainer=document.createElement("div");m.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";p.appendChild(m.buttonContainer);m.menubarContainer=m.buttonContainer;m.tabContainer=document.createElement("div");m.tabContainer.className=
+"geTabContainer";m.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var l=m.diagramContainer.parentNode,x=document.createElement("div");x.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";if("1"==urlParams.winCtrls&&"1"==urlParams.sketch){x.style.top="20px";m.titlebar=document.createElement("div");m.titlebar.style.cssText=
+"position:absolute;top:0px;left:0px;right:0px;height:20px;overflow:hidden;box-shadow: 0px 0px 2px #c0c0c0;";var y=document.createElement("div");y.style.cssText="max-width: calc(100% - 100px);text-overflow: ellipsis;user-select:none;height:20px;margin: 2px 10px;font-size: 12px;white-space: nowrap;overflow: hidden;";m.titlebar.appendChild(y);l.appendChild(m.titlebar)}var A=m.menus.get("viewZoom"),G="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,S="1"==urlParams.sketch?document.createElement("div"):
+null,Q="1"==urlParams.sketch?document.createElement("div"):null,V="1"==urlParams.sketch?document.createElement("div"):null,y=mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));n.refresh();n.view.validateBackground()});m.addListener("darkModeChanged",y);m.addListener("sketchModeChanged",
+y);var oa=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)V.style.left="10px",V.style.top="10px",Q.style.left="10px",Q.style.top="60px",S.style.top="10px",S.style.right="12px",S.style.left="",m.diagramContainer.setAttribute("data-bounds",m.diagramContainer.style.top+" "+m.diagramContainer.style.left+" "+m.diagramContainer.style.width+" "+m.diagramContainer.style.height),m.diagramContainer.style.top="0px",m.diagramContainer.style.left="0px",m.diagramContainer.style.bottom="0px",m.diagramContainer.style.right=
+"0px",m.diagramContainer.style.width="",m.diagramContainer.style.height="";else{var b=m.diagramContainer.getAttribute("data-bounds");if(null!=b){m.diagramContainer.style.background="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()}V.style.left=m.diagramContainer.offsetLeft+"px";V.style.top=m.diagramContainer.offsetTop-V.offsetHeight-4+"px";Q.style.display="";Q.style.left=m.diagramContainer.offsetLeft-Q.offsetWidth-4+"px";Q.style.top=m.diagramContainer.offsetTop+"px";S.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-S.offsetWidth+"px";S.style.top=V.style.top;
+S.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";V.style.visibility="";S.style.visibility=""}),fa=mxUtils.bind(this,function(){na.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";oa()}),y=mxUtils.bind(this,
+function(){fa();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",fa);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";V.style.visibility="hidden";S.style.visibility="hidden";Q.style.display="none"}));Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(b){var c=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(c)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(c)&&(null==b.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))});if(null!=m.hoverIcons){var ka=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||ka.apply(this,
+arguments)}}if(null!=n.freehand){var ra=n.freehand.createStyle;n.freehand.createStyle=function(b){return ra.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){Q.className="geToolbarContainer";S.className="geToolbarContainer";V.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=Q;var la=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){la||(m.statusContainer.style.display="none")});
+var ja=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=
+null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):m.editor.getStatus();ja(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",la=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display=
+"none",la=!1)}else m.statusContainer.style.display="inline-block",ja(null),la=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}))):m.editor.addListener("statusChanged",mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));P=d("diagram",null,Editor.menuImage);P.style.boxShadow="none";P.style.padding="6px";P.style.margin="0px";V.appendChild(P);mxEvent.disableContextMenu(P);mxEvent.addGestureListeners(P,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(e-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 aa=document.createElement("a");aa.style.padding="0px";aa.style.boxShadow="none";aa.className="geMenuItem";aa.style.display="inline-block";aa.style.width="40px";aa.style.height="12px";aa.style.marginBottom="-2px";aa.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";aa.style.backgroundPosition="top center";aa.style.backgroundRepeat="no-repeat";aa.setAttribute("title","Minimize");var ba=!1,R=mxUtils.bind(this,function(){Q.innerHTML="";if(!ba){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";Q.appendChild(b);mxUtils.br(Q);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 e=m.actions.get("toggleShapes");b(e,mxResources.get("shapes")+" ("+e.shortcut+")",G);P=d("table",null,Editor.tableImage);P.style.boxShadow="none";P.style.opacity="0.7";P.style.padding="6px";P.style.margin="0px";P.style.width="37px";c(P,null,"pointer");b(m.actions.get("insertTemplate"),
+mxResources.get("template"),Editor.templateImage)}"1"!=urlParams.embedInline&&Q.appendChild(aa)});mxEvent.addListener(aa,"click",mxUtils.bind(this,function(){ba?(mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, -50%)"),Q.style.padding="8px 6px 4px",Q.style.top="50%",Q.style.bottom="",Q.style.height="",aa.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",aa.style.width="40px",aa.style.height="12px",aa.setAttribute("title","Minimize"),ba=!1,R()):(Q.innerHTML="",Q.appendChild(aa),
+mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, 0)"),Q.style.top="",Q.style.bottom="12px",Q.style.padding="0px",Q.style.height="24px",aa.style.height="24px",aa.style.backgroundImage="url("+Editor.plusImage+")",aa.setAttribute("title",mxResources.get("insert")),aa.style.width="24px",ba=!0)}));R();m.addListener("darkModeChanged",R);m.addListener("sketchModeChanged",R)}else m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus())}));if(null!=
+A){var y=function(b){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)||mxEvent.isShiftDown(b)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},sa=m.actions.get("zoomIn"),W=m.actions.get("zoomOut"),X=m.actions.get("resetView"),ma=m.actions.get("fullscreen");m.actions.get("toggleDarkMode");var qa=m.actions.get("undo"),T=m.actions.get("redo"),ia=f("",qa.funct,null,mxResources.get("undo")+" ("+qa.shortcut+")",qa,Editor.undoImage),da=f("",T.funct,null,mxResources.get("redo")+" ("+
+T.shortcut+")",T,Editor.redoImage),na=f("",ma.funct,null,mxResources.get("fullscreen"),ma,Editor.fullscreenImage);if(null!=S){A=function(){ea.style.display=null!=m.pages&&("1"==urlParams.pages||1<m.pages.length||Editor.pagesVisible)?"inline-block":"none"};na.parentNode.removeChild(na);var ha=m.actions.get("delete"),ua=f("",ha.funct,null,mxResources.get("delete"),ha,Editor.trashImage);ua.style.opacity="0.1";V.appendChild(ua);ha.addListener("stateChanged",function(){ua.style.opacity=ha.enabled?"":"0.1"});
+X=function(){ia.style.display=0<m.editor.undoManager.history.length||n.isEditing()?"inline-block":"none";da.style.display=ia.style.display;ia.style.opacity=qa.enabled?"":"0.1";da.style.opacity=T.enabled?"":"0.1"};V.appendChild(ia);V.appendChild(da);qa.addListener("stateChanged",X);T.addListener("stateChanged",X);X();null!=urlParams.layers&&(X=m.actions.get("layers"),X=f("",X.funct,null,mxResources.get("layers"),X,Editor.layersImage),X.style.opacity="0.4",S.appendChild(X));null!=urlParams.tags&&(X=
+m.actions.get("tags"),X=f("",X.funct,null,mxResources.get("tags"),X,Editor.tagsImage),X.style.opacity="0.4",S.appendChild(X));X=m.actions.get("outline");X=f("",X.funct,null,mxResources.get("outline"),X,Editor.outlineImage);S.appendChild(X);X=f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",W,Editor.zoomOutImage);S.appendChild(X);var P=document.createElement("div");P.innerHTML="100%";P.setAttribute("title",mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+
+" (Enter)");P.style.display="inline-block";P.style.cursor="pointer";P.style.textAlign="center";P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.verticalAlign="top";P.style.padding="6px 0";P.style.fontSize="14px";P.style.width="40px";P.style.opacity="0.4";S.appendChild(P);mxEvent.addListener(P,"click",y);y=f("",sa.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",sa,Editor.zoomInImage);S.appendChild(y);"1"==urlParams.embedInline&&
+(S.appendChild(na),y=m.actions.get("exit"),S.appendChild(f("",y.funct,null,mxResources.get("exit"),y,Editor.closeImage)));var ea=this.createPageMenuTab(!1);ea.style.display="none";ea.style.position="";ea.style.marginLeft="";ea.style.top="";ea.style.left="";ea.style.height="100%";ea.style.lineHeight="";ea.style.borderStyle="none";ea.style.padding="3px 0";ea.style.margin="0px";ea.style.background="";ea.style.border="";ea.style.boxShadow="none";ea.style.verticalAlign="top";ea.firstChild.style.height=
+"100%";ea.firstChild.style.opacity="0.6";ea.firstChild.style.margin="0px";S.appendChild(ea);m.addListener("fileDescriptorChanged",A);m.addListener("pagesVisibleChanged",A);A();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;";V.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;";
+S.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(V);x.appendChild(S);Q.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;";x.appendChild(Q);window.setTimeout(function(){mxUtils.setPrefixedStyle(Q.style,
+"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(x)}else{var ta=f("",y,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",X,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";P=t.addMenu("100%",A.funct);P.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)");P.style.whiteSpace="nowrap";P.style.paddingRight=
+"10px";P.style.textDecoration="none";P.style.textDecoration="none";P.style.overflow="hidden";P.style.visibility="hidden";P.style.textAlign="center";P.style.cursor="pointer";P.style.height=parseInt(m.tabContainerHeight)-1+"px";P.style.lineHeight=parseInt(m.tabContainerHeight)+1+"px";P.style.position="absolute";P.style.display="block";P.style.fontSize="12px";P.style.width="59px";P.style.right="0px";P.style.bottom="0px";P.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")";P.style.backgroundPosition=
+"right 6px center";P.style.backgroundRepeat="no-repeat";x.appendChild(P)}(function(b){var c=mxUtils.bind(this,function(){b.innerHTML=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)})(P);var ya=m.setGraphEnabled;m.setGraphEnabled=function(){ya.apply(this,arguments);null!=this.tabContainer&&(P.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom=
+"hidden"!=this.tabContainer.style.visibility&&null==S?this.tabContainerHeight+"px":"0px")}}x.appendChild(p);x.appendChild(m.diagramContainer);l.appendChild(x);m.updateTabContainer();null==S&&x.appendChild(m.tabContainer);var pa=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";Q.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 xa=null,za=null,Ba=null,Ea=null;mxEvent.addGestureListeners(l,function(b){Ea=parseInt(m.diagramContainer.style.height);za=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){Ba=parseInt(m.diagramContainer.style.width);xa=mxEvent.getClientX(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});mxEvent.addGestureListeners(document.body,null,function(b){var c=!1;null!=xa&&(m.diagramContainer.style.width=Math.max(20,Ba+mxEvent.getClientX(b)-xa)+"px",c=!0);null!=za&&(m.diagramContainer.style.height=Math.max(20,Ea+mxEvent.getClientY(b)-za)+"px",c=!0);c&&((window.opener||
+window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:m.diagramContainer.getBoundingClientRect()}),"*"),oa(),m.refresh())},function(b){null==xa&&null==za||mxEvent.consume(b);za=xa=null});this.diagramContainer.style.borderRadius="4px";document.body.style.backgroundColor="transparent";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";V.style.visibility="hidden";S.style.visibility="hidden";Q.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,k,f,n,t){this.file=b;this.id=c;this.content=e;this.modifiedDate=k;this.createdDate=f;this.isResolved=n;this.user=t;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,c,e,k,f){c()};DrawioComment.prototype.editComment=function(b,c,e){c()};DrawioComment.prototype.deleteComment=function(b,c){b()};DrawioUser=function(b,c,e,k,f){this.id=b;this.email=c;this.displayName=e;this.pictureUrl=k;this.locale=f};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\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\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\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\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\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\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\npickGDriveFile=Pick 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.\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"]?
@@ -4065,9 +4064,9 @@ p=null;else{p=this.graph.createLayersDialog(mxUtils.bind(this,function(){if(this
function(b){null==q&&(q=this.graph.createTagsDialog(mxUtils.bind(this,function(){return!0})),q.div.getElementsByTagName("div")[0].style.position="",q.div.style.maxHeight="160px",q.div.style.maxWidth="120px",q.div.style.padding="2px",q.div.style.overflow="auto",q.div.style.height="auto",q.div.style.position="fixed",q.div.style.fontFamily=Editor.defaultHtmlFont,q.div.style.fontSize="11px",q.div.style.backgroundColor="#eee",q.div.style.color="#000",q.div.style.border="1px solid #d0d0d0",q.div.style.zIndex=
this.toolbarZIndex+1,mxUtils.setOpacity(q.div,80));if(null!=u)u.parentNode.removeChild(u),u=null;else{u=q.div;mxEvent.addListener(u,"mouseleave",function(){u.parentNode.removeChild(u);u=null});b=L.getBoundingClientRect();var c=mxUtils.getDocumentScrollOrigin(document);u.style.left=c.x+b.left-1+"px";u.style.top=c.y+b.bottom-2+"px";document.body.appendChild(u);q.refresh()}}),Editor.tagsImage,mxResources.get("tags")||"Tags");z.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){L.style.display=0<
this.graph.getAllTags().length?"inline-block":"none"}));L.style.display=0<this.graph.getAllTags().length?"inline-block":"none"}}else"lightbox"==x?this.lightboxEnabled&&b(mxUtils.bind(this,function(){this.showLightbox()}),Editor.fullscreenImage,mxResources.get("fullscreen")||"Fullscreen"):null!=this.graphConfig["toolbar-buttons"]&&(x=this.graphConfig["toolbar-buttons"][x],null!=x&&(x.elem=b(null==x.enabled||x.enabled?x.handler:function(){},x.image,x.title,x.enabled)))}null!=this.graph.minimumContainerSize&&
-(this.graph.minimumContainerSize.width=34*m);null!=this.graphConfig.title&&(l=c.ownerDocument.createElement("div"),l.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;",l.setAttribute("title",this.graphConfig.title),mxUtils.write(l,this.graphConfig.title),mxUtils.setOpacity(l,70),e.appendChild(l),this.filename=l);this.minToolbarWidth=34*m;var F=c.style.border,J=mxUtils.bind(this,function(){e.style.width=
+(this.graph.minimumContainerSize.width=34*m);null!=this.graphConfig.title&&(l=c.ownerDocument.createElement("div"),l.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;",l.setAttribute("title",this.graphConfig.title),mxUtils.write(l,this.graphConfig.title),mxUtils.setOpacity(l,70),e.appendChild(l),this.filename=l);this.minToolbarWidth=34*m;var E=c.style.border,J=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"==F&&(c.style.border="1px solid #d0d0d0");document.body.appendChild(e);var f=mxUtils.bind(this,function(){null!=e.parentNode&&e.parentNode.removeChild(e);null!=p&&(p.parentNode.removeChild(p),p=null);c.style.border=F});mxEvent.addListener(document,"mousemove",function(b){for(b=mxEvent.getSource(b);null!=b;){if(b==
+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"==E&&(c.style.border="1px solid #d0d0d0");document.body.appendChild(e);var f=mxUtils.bind(this,function(){null!=e.parentNode&&e.parentNode.removeChild(e);null!=p&&(p.parentNode.removeChild(p),p=null);c.style.border=E});mxEvent.addListener(document,"mousemove",function(b){for(b=mxEvent.getSource(b);null!=b;){if(b==
c||b==e||b==p)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",J):J();this.responsive&&"undefined"!==typeof ResizeObserver&&(new ResizeObserver(function(){null!=e.parentNode&&J()})).observe(c)};
GraphViewer.prototype.disableButton=function(b){var c=this.graphConfig["toolbar-buttons"][b];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"}))};
GraphViewer.prototype.addClickHandler=function(b,c){b.linkPolicy=this.graphConfig.target||b.linkPolicy;b.addClickHandler(this.graphConfig.highlight,mxUtils.bind(this,function(e,k){if(null==k)for(var f=mxEvent.getSource(e);f!=b.container&&null!=f&&null==k;)"a"==f.nodeName.toLowerCase()&&(k=f.getAttribute("href")),f=f.parentNode;null!=c?null==k||b.isCustomLink(k)?mxEvent.consume(e):b.isExternalProtocol(k)||b.isBlankLink(k)||window.setTimeout(function(){c.destroy()},0):null!=k&&null==c&&b.isCustomLink(k)&&
@@ -4090,7 +4089,7 @@ GraphViewer.initCss=function(){try{var b=document.createElement("style");b.type=
GraphViewer.cachedUrls={};GraphViewer.getUrl=function(b,c,e){if(null!=GraphViewer.cachedUrls[b])c(GraphViewer.cachedUrls[b]);else{var k=null!=navigator.userAgent&&0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;k.open("GET",b);k.onload=function(){c(null!=k.getText?k.getText():k.responseText)};k.onerror=e;k.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,k){function f(){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 n(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=
new f,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"==n(c,"position")&&(c.style.position="relative");var e=c.resizeSensor.childNodes[0],g=e.childNodes[0],k=c.resizeSensor.childNodes[1],l=function(){g.style.width="100000px";g.style.height="100000px";e.scrollLeft=1E5;e.scrollTop=1E5;k.scrollLeft=1E5;k.scrollTop=1E5};l();var m=!1,p=function(){c.resizedAttached&&(m&&(c.resizedAttached.call(),m=!1),b(p))};b(p);var q,t,L,F,J=function(){if((L=c.offsetWidth)!=q||(F=c.offsetHeight)!=t)m=!0,q=L,t=F;l()},C=function(b,c,d){b.attachEvent?
+c.appendChild(c.resizeSensor);"static"==n(c,"position")&&(c.style.position="relative");var e=c.resizeSensor.childNodes[0],g=e.childNodes[0],k=c.resizeSensor.childNodes[1],l=function(){g.style.width="100000px";g.style.height="100000px";e.scrollLeft=1E5;e.scrollTop=1E5;k.scrollLeft=1E5;k.scrollTop=1E5};l();var m=!1,p=function(){c.resizedAttached&&(m&&(c.resizedAttached.call(),m=!1),b(p))};b(p);var q,t,L,E,J=function(){if((L=c.offsetWidth)!=q||(E=c.offsetHeight)!=t)m=!0,q=L,t=E;l()},C=function(b,c,d){b.attachEvent?
b.attachEvent("on"+c,d):b.addEventListener(c,d)};C(e,"scroll",J);C(k,"scroll",J)}var d=function(){GraphViewer.resizeSensorEnabled&&k()},g=Object.prototype.toString.call(e),l="[object Array]"===g||"[object NodeList]"===g||"[object HTMLCollection]"===g||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(l)for(var g=0,m=e.length;g<m;g++)t(e[g],d);else t(e,d);this.detach=function(){if(l)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 8ac16afb..f137bd44 100644
--- a/src/main/webapp/mxgraph/mxClient.js
+++ b/src/main/webapp/mxgraph/mxClient.js
@@ -1,4 +1,4 @@
-var mxClient={VERSION:"15.9.1",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:"15.9.3",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),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]"!==document.createElementNS("http://www.w3.org/2000/svg","foreignObject").toString()||0<=navigator.userAgent.indexOf("Opera/"),
@@ -843,7 +843,7 @@ mxPrintPreview.prototype.getAppendices=function(){return null};mxPrintPreview.pr
mxStylesheet.prototype.createDefaultVertexStyle=function(){var a={};a[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_RECTANGLE;a[mxConstants.STYLE_PERIMETER]=mxPerimeter.RectanglePerimeter;a[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE;a[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER;a[mxConstants.STYLE_FILLCOLOR]="#C3D9FF";a[mxConstants.STYLE_STROKECOLOR]="#6482B9";a[mxConstants.STYLE_FONTCOLOR]="#774400";return a};
mxStylesheet.prototype.createDefaultEdgeStyle=function(){var a={};a[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_CONNECTOR;a[mxConstants.STYLE_ENDARROW]=mxConstants.ARROW_CLASSIC;a[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE;a[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER;a[mxConstants.STYLE_STROKECOLOR]="#6482B9";a[mxConstants.STYLE_FONTCOLOR]="#446299";return a};mxStylesheet.prototype.putDefaultVertexStyle=function(a){this.putCellStyle("defaultVertex",a)};
mxStylesheet.prototype.putDefaultEdgeStyle=function(a){this.putCellStyle("defaultEdge",a)};mxStylesheet.prototype.getDefaultVertexStyle=function(){return this.styles.defaultVertex};mxStylesheet.prototype.getDefaultEdgeStyle=function(){return this.styles.defaultEdge};mxStylesheet.prototype.putCellStyle=function(a,b){this.styles[a]=b};
-mxStylesheet.prototype.getCellStyle=function(a,b){var c=b;if(null!=a&&0<a.length)for(var d=a.split(";"),c=null!=c&&";"!=a.charAt(0)?mxUtils.clone(c):{},e=0;e<d.length;e++){var f=d[e],g=f.indexOf("=");if(0<=g){var k=f.substring(0,g),f=f.substring(g+1);f==mxConstants.NONE?delete c[k]:mxUtils.isNumeric(f)?c[k]=parseFloat(f):c[k]=f}else if(f=this.styles[f],null!=f)for(k in f)c[k]=f[k]}return c};
+mxStylesheet.prototype.getCellStyle=function(a,b,c){c=null!=c?c:!0;if(null!=a&&0<a.length){var d=a.split(";");b=null!=b&&";"!=a.charAt(0)?mxUtils.clone(b):{};for(a=0;a<d.length;a++){var e=d[a],f=e.indexOf("=");if(0<=f){var g=e.substring(0,f),e=e.substring(f+1);e==mxConstants.NONE&&c?delete b[g]:mxUtils.isNumeric(e)?b[g]=parseFloat(e):b[g]=e}else if(e=this.styles[e],null!=e)for(g in e)b[g]=e[g]}}return b};
function mxCellState(a,b,c){this.view=a;this.cell=b;this.style=null!=c?c:{};this.origin=new mxPoint;this.absoluteOffset=new mxPoint}mxCellState.prototype=new mxRectangle;mxCellState.prototype.constructor=mxCellState;mxCellState.prototype.view=null;mxCellState.prototype.cell=null;mxCellState.prototype.style=null;mxCellState.prototype.invalidStyle=!1;mxCellState.prototype.invalid=!0;mxCellState.prototype.origin=null;mxCellState.prototype.absolutePoints=null;mxCellState.prototype.absoluteOffset=null;
mxCellState.prototype.visibleSourceState=null;mxCellState.prototype.visibleTargetState=null;mxCellState.prototype.terminalDistance=0;mxCellState.prototype.length=0;mxCellState.prototype.segments=null;mxCellState.prototype.shape=null;mxCellState.prototype.text=null;mxCellState.prototype.unscaledWidth=null;mxCellState.prototype.unscaledHeight=null;
mxCellState.prototype.getPerimeterBounds=function(a,b){a=a||0;b=null!=b?b:new mxRectangle(this.x,this.y,this.width,this.height);if(null!=this.shape&&null!=this.shape.stencil&&"fixed"==this.shape.stencil.aspect){var c=this.shape.stencil.computeAspect(this.style,b.x,b.y,b.width,b.height);b.x=c.x;b.y=c.y;b.width=this.shape.stencil.w0*c.width;b.height=this.shape.stencil.h0*c.height}0!=a&&b.grow(a);return b};
@@ -1104,8 +1104,8 @@ b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mx
mxGraph.prototype.updatePageBreaks=function(a,b,c){b=this.view.scale;c=this.view.translate;var d=this.pageFormat,e=b*this.pageScale,f=new mxRectangle(0,0,d.width*e,d.height*e),d=mxRectangle.fromRectangle(this.getGraphBounds());d.width=Math.max(1,d.width);d.height=Math.max(1,d.height);f.x=Math.floor((d.x-c.x*b)/f.width)*f.width+c.x*b;f.y=Math.floor((d.y-c.y*b)/f.height)*f.height+c.y*b;d.width=Math.ceil((d.width+(d.x-f.x))/f.width)*f.width;d.height=Math.ceil((d.height+(d.y-f.y))/f.height)*f.height;
var g=(a=a&&Math.min(f.width,f.height)>this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,k=a?Math.ceil(d.width/f.width)+1:0,l=(k-1)*f.width,m=(g-1)*f.height;null==this.horizontalPageBreaks&&0<g&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<k&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?g:k,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(f.x),Math.round(f.y+c*f.height)),new mxPoint(Math.round(f.x+
l),Math.round(f.y+c*f.height))]:[new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y)),new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y+m))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.pointerEvents=!1,d.isDashed=this.pageBreakDashed,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
-mxGraph.prototype.getCurrentCellStyle=function(a,b){var c=b?null:this.view.getState(a);return null!=c?c.style:this.getCellStyle(a)};mxGraph.prototype.getCellStyle=function(a){var b=this.model.getStyle(a);a=this.model.isEdge(a)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();null!=b&&(a=this.postProcessCellStyle(this.stylesheet.getCellStyle(b,a)));null==a&&(a={});return a};
-mxGraph.prototype.postProcessCellStyle=function(a){if(null!=a){var b=a[mxConstants.STYLE_IMAGE],c=this.getImageFromBundles(b);null!=c?a[mxConstants.STYLE_IMAGE]=c:c=b;null!=c&&"data:image/"==c.substring(0,11)&&("data:image/svg+xml,<"==c.substring(0,20)?c=c.substring(0,19)+encodeURIComponent(c.substring(19)):"data:image/svg+xml,%3C"!=c.substring(0,22)&&(b=c.indexOf(","),0<b&&";base64,"!=c.substring(b-7,b+1)&&(c=c.substring(0,b)+";base64,"+c.substring(b+1))),a[mxConstants.STYLE_IMAGE]=c)}return a};
+mxGraph.prototype.getCurrentCellStyle=function(a,b){var c=b?null:this.view.getState(a);return null!=c?c.style:this.getCellStyle(a)};mxGraph.prototype.getCellStyle=function(a,b){b=null!=b?b:!0;var c=this.model.getStyle(a),d;d=this.model.isEdge(a)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();null!=c?d=this.stylesheet.getCellStyle(c,d,b):null!=d&&(d=mxUtils.clone(d));null==d?d={}:b&&(d=this.postProcessCellStyle(a,d));return d};
+mxGraph.prototype.postProcessCellStyle=function(a,b){if(null!=b){var c=b[mxConstants.STYLE_IMAGE],d=this.getImageFromBundles(c);null!=d?b[mxConstants.STYLE_IMAGE]=d:d=c;null!=d&&"data:image/"==d.substring(0,11)&&("data:image/svg+xml,<"==d.substring(0,20)?d=d.substring(0,19)+encodeURIComponent(d.substring(19)):"data:image/svg+xml,%3C"!=d.substring(0,22)&&(c=d.indexOf(","),0<c&&";base64,"!=d.substring(c-7,c+1)&&(d=d.substring(0,c)+";base64,"+d.substring(c+1))),b[mxConstants.STYLE_IMAGE]=d)}return b};
mxGraph.prototype.setCellStyle=function(a,b){b=b||this.getSelectionCells();if(null!=b){this.model.beginUpdate();try{for(var c=0;c<b.length;c++)this.model.setStyle(b[c],a)}finally{this.model.endUpdate()}}};mxGraph.prototype.toggleCellStyle=function(a,b,c){c=c||this.getSelectionCell();return this.toggleCellStyles(a,b,[c])};
mxGraph.prototype.toggleCellStyles=function(a,b,c){b=null!=b?b:!1;c=c||this.getEditableCells(this.getSelectionCells());var d=null;null!=c&&0<c.length&&(d=this.getCurrentCellStyle(c[0]),d=mxUtils.getValue(d,a,b)?0:1,this.setCellStyles(a,d,c));return d};mxGraph.prototype.setCellStyles=function(a,b,c){c=c||this.getEditableCells(this.getSelectionCells());mxUtils.setCellStyles(this.model,c,a,b)};mxGraph.prototype.toggleCellStyleFlags=function(a,b,c){this.setCellStyleFlags(a,b,null,c)};
mxGraph.prototype.setCellStyleFlags=function(a,b,c,d){d=d||this.getEditableCells(this.getSelectionCells());null!=d&&0<d.length&&(null==c&&(c=this.getCurrentCellStyle(d[0]),c=(parseInt(c[a]||0)&b)!=b),mxUtils.setCellStyleFlags(this.model,d,a,b,c))};mxGraph.prototype.getOriginForCell=function(a){a=this.model.getParent(a);for(var b=new mxPoint;null!=a;){var c=this.getCellGeometry(a);null==c||c.relative||(b.x+=c.x,b.y+=c.y);a=this.model.getParent(a)}return b};
diff --git a/src/main/webapp/resources/dia_eu.txt b/src/main/webapp/resources/dia_eu.txt
index 827762b4..8c19158f 100644
--- a/src/main/webapp/resources/dia_eu.txt
+++ b/src/main/webapp/resources/dia_eu.txt
@@ -352,7 +352,7 @@ fullscreen=Pantaila osoa
gap=Tartea
gcp=GCP
general=Orokorra
-getNotionChromeExtension=Get the Notion Chrome Extension
+getNotionChromeExtension=Eskuratu Notion Chrome gehigarria
github=GitHub
gitlab=GitLab
gliffy=Gliffy
@@ -1168,5 +1168,5 @@ contactOwner=Contact Owner
viewerOnlyMsg=Ezin dituzu diagramak editatu plataforma mugikorrean, mesedez erabili mahaigaineko bezeroa edo web arakatzailea.
website=Webgunea
check4Updates=Bilat eguneraketak
-attWriteFailedRetry={1}: Attachment write failed, trying again in {2} seconds...
-confPartialPageList=We couldn't fetch all pages due to an error in Confluence. Continuing using {1} pages only.
+attWriteFailedRetry={1}: Eranskinaren idazketa huts egin du, berriro saiatuko da {2} segundo barru...
+confPartialPageList=Ezin izan ditugu orrialde guztiak eskuratu konfluentzia errore bat dela medio. {1} orrialde soilik erabiliko dira.
diff --git a/src/main/webapp/service-worker.js b/src/main/webapp/service-worker.js
index 18a9ae9f..81fb0d65 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-bed83ea8"],(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:"062c40c81ff96840527dd858b7d74f6e"},{url:"js/extensions.min.js",revision:"65e0f601fa1bccf78fd9e755c3922826"},{url:"js/stencils.min.js",revision:"9a266887804da50e85424f7930350173"},{url:"js/shapes-14-6-5.min.js",revision:"ba6695ab64bca62059a0ccfebceb1222"},{url:"js/math-print.js",revision:"9d98c920695f6c3395da4b68f723e60a"},{url:"index.html",revision:"9200e0815b5a48cae7db8f54f9604990"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/grapheditor.css",revision:"748da0cd0a068a52eac70ee2b2c194fe"},{url:"styles/atlas.css",revision:"e8152cda9233d3a3af017422993abfce"},{url:"styles/dark.css",revision:"3179f617dd02efd2cefeb8c06f965880"},{url:"js/croppie/croppie.min.css",revision:"fc297c9002c79c15a132f13ee3ec427e"},{url:"js/dropbox/Dropbox-sdk.min.js",revision:"4b9842892aa37b156db0a8364b7a83b0"},{url:"js/onedrive/OneDrive.js",revision:"505e8280346666f7ee801bc59521fa67"},{url:"js/viewer-static.min.js",revision:"9e0f461b2f67681b062a5829327e0e3b"},{url:"connect/jira/editor-1-3-3.html",revision:"a2b0e7267a08a838f3cc404eba831ec0"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"2ce6e99d95113e9ca6b24343cea202e0"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"ba7ece2dfb2833b72f97280d7092f25e"},{url:"connect/jira/viewerPanel.js",revision:"6e9412c359a21b86dc7c5128bf6208d4"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"01caa325f3ad3f6565e0b4228907fb63"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"197ed5837ed27992688fc424699a9a78"},{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:"6402d993b3a947fa86fa334581ed165b"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"8f6c85460791915b01d83cd0a793effb"},{url:"connect/new_common/cac.js",revision:"3d8c436c566db645fb1e6e6ba9f69bbc"},{url:"connect/gdrive_common/gac.js",revision:"38f1df3ecc4d78290493f47e62202138"},{url:"connect/onedrive_common/ac.js",revision:"887d3ac605a7bb297067537e7c1f5686"},{url:"connect/confluence/viewer-init.js",revision:"4a60c6c805cab7bc782f1e52f7818d9f"},{url:"connect/confluence/viewer.js",revision:"d025b0929817299fa154f273525aa0ec"},{url:"connect/confluence/viewer-1-4-42.html",revision:"c7b38b3af4eb7a58ab6dc4791216530e"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"8cd74a2fb60bf2e3e86026d66107cf11"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"8b670f4b6ccde55358851da705ae884f"},{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:"6ac22c2dd7bf24f2ce4db6ea5cd82470"},{url:"resources/dia_am.txt",revision:"7b87288182abf40af0364ee000959b7b"},{url:"resources/dia_ar.txt",revision:"8cb02cb9d3740ac3306b963f060db29f"},{url:"resources/dia_bg.txt",revision:"c3fe70b41c1c99a3817f45a533f0d3d1"},{url:"resources/dia_bn.txt",revision:"50da78b0b7f2f65bdf25eabae73b3228"},{url:"resources/dia_bs.txt",revision:"568b22ef20ebfe162fce127fa9bcc6b5"},{url:"resources/dia_ca.txt",revision:"a4f3c89b030191d40999805696e6859b"},{url:"resources/dia_cs.txt",revision:"feebdfef9385384c37fbadd1a1a1b6c2"},{url:"resources/dia_da.txt",revision:"163d26afd66826247cf1553314ec70f5"},{url:"resources/dia_de.txt",revision:"9aa8d6e1d10659624519c88a7ad3e042"},{url:"resources/dia_el.txt",revision:"5289ac0ed78737231ca568be2c777d1a"},{url:"resources/dia_eo.txt",revision:"98e0cca265917fe115de548ca2c6d7a4"},{url:"resources/dia_es.txt",revision:"1a590b0b38299487e1267d440ba04350"},{url:"resources/dia_et.txt",revision:"bed7cfc8f949531f762ad86a225c15a2"},{url:"resources/dia_eu.txt",revision:"5186a4cce8e53bb454e4d539d1792b4d"},{url:"resources/dia_fa.txt",revision:"21e0279f46bcdd79063c06fcfc7b1120"},{url:"resources/dia_fi.txt",revision:"649cea556e9168919b0492f8565bac8b"},{url:"resources/dia_fil.txt",revision:"a717e0751e11dbb6502acfcc51c1a704"},{url:"resources/dia_fr.txt",revision:"4e6530553659158b0f55cc43ec46cc7e"},{url:"resources/dia_gl.txt",revision:"4fe5a563571d23001fb0dcd28dadcb32"},{url:"resources/dia_gu.txt",revision:"5eef301316f5945a700c13d1d96570ed"},{url:"resources/dia_he.txt",revision:"d13e2c3ec4f6f34948f874eda3d63a55"},{url:"resources/dia_hi.txt",revision:"65a2374e09cee44447e9462f3acb7f6a"},{url:"resources/dia_hr.txt",revision:"21626f14592c1b84ee28b058fcb74194"},{url:"resources/dia_hu.txt",revision:"1698e21cde2ed5f5b599429e5e68a8c4"},{url:"resources/dia_id.txt",revision:"a3af078b5bc5cd36df5368fb2604ed02"},{url:"resources/dia_it.txt",revision:"f3b29c577b79c37687f37c1b0748b9d1"},{url:"resources/dia_ja.txt",revision:"990f1ad82383245f1f9e37678a1c9bab"},{url:"resources/dia_kn.txt",revision:"836030c27dc0bb91a25ebcc722f2df41"},{url:"resources/dia_ko.txt",revision:"4a5032d2cad4be2a1815f7e29238664a"},{url:"resources/dia_lt.txt",revision:"d0a2bbb32c3d7d860c8c0385075407ee"},{url:"resources/dia_lv.txt",revision:"8cdfac8996f69486b99302eb0c01757a"},{url:"resources/dia_ml.txt",revision:"53f0f853779db48abc46023e507cb698"},{url:"resources/dia_mr.txt",revision:"4f3bffbf25b0d07a0946e77a288f40b9"},{url:"resources/dia_ms.txt",revision:"55d9c222689543ab6a091636d12dc92f"},{url:"resources/dia_my.txt",revision:"6ac22c2dd7bf24f2ce4db6ea5cd82470"},{url:"resources/dia_nl.txt",revision:"da45f841b898121c268b02e5cf0c0f5e"},{url:"resources/dia_no.txt",revision:"afa660c88bef1253c9827f857e3c2a99"},{url:"resources/dia_pl.txt",revision:"934cb78df740c1377b724cc68b28b436"},{url:"resources/dia_pt-br.txt",revision:"128c5640c8ea34d4e5296bbb2ef35db3"},{url:"resources/dia_pt.txt",revision:"1d30c678b01d010a0c8a5cf415fa68a0"},{url:"resources/dia_ro.txt",revision:"a90bf597059e90eff0d955d12058df23"},{url:"resources/dia_ru.txt",revision:"b225c1bd151294617e8d600181d9e44e"},{url:"resources/dia_si.txt",revision:"6ac22c2dd7bf24f2ce4db6ea5cd82470"},{url:"resources/dia_sk.txt",revision:"be785304786ae06fe6cdae4c029e5f28"},{url:"resources/dia_sl.txt",revision:"c3748f17f0775bdd539ed69a49acd1e1"},{url:"resources/dia_sr.txt",revision:"611506593ed67893a50c3a9000a12c79"},{url:"resources/dia_sv.txt",revision:"54157da886c9c17d4eb1fe9e3d195368"},{url:"resources/dia_sw.txt",revision:"0cd0148f07578cbac9dc4e2222277266"},{url:"resources/dia_ta.txt",revision:"79cb0ed533e753ae646f055fb75d25fc"},{url:"resources/dia_te.txt",revision:"305740ddcfe539071f9f65d844c13068"},{url:"resources/dia_th.txt",revision:"ffc4698dc2f34eb02bf02f3ac26c5c7e"},{url:"resources/dia_tr.txt",revision:"1092cea9e131780ae817c5c5915be3b6"},{url:"resources/dia_uk.txt",revision:"e1ab64d71b13935ef5ef05c09a8f95d9"},{url:"resources/dia_vi.txt",revision:"a9ead4c2e8460af1b127b7405dba35a3"},{url:"resources/dia_zh-tw.txt",revision:"28d610fd1f35a68bcc8a555fea09dc12"},{url:"resources/dia_zh.txt",revision:"f49748b5eb13dee86003c5f57aa628ff"},{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-bed83ea8"],(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:"1c1a6b8e4ebc69f3bd2e7f5e314395bd"},{url:"js/extensions.min.js",revision:"65e0f601fa1bccf78fd9e755c3922826"},{url:"js/stencils.min.js",revision:"9a266887804da50e85424f7930350173"},{url:"js/shapes-14-6-5.min.js",revision:"ba6695ab64bca62059a0ccfebceb1222"},{url:"js/math-print.js",revision:"9d98c920695f6c3395da4b68f723e60a"},{url:"index.html",revision:"9200e0815b5a48cae7db8f54f9604990"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/grapheditor.css",revision:"748da0cd0a068a52eac70ee2b2c194fe"},{url:"styles/atlas.css",revision:"e8152cda9233d3a3af017422993abfce"},{url:"styles/dark.css",revision:"3179f617dd02efd2cefeb8c06f965880"},{url:"js/croppie/croppie.min.css",revision:"fc297c9002c79c15a132f13ee3ec427e"},{url:"js/dropbox/Dropbox-sdk.min.js",revision:"4b9842892aa37b156db0a8364b7a83b0"},{url:"js/onedrive/OneDrive.js",revision:"505e8280346666f7ee801bc59521fa67"},{url:"js/viewer-static.min.js",revision:"bcfea9ad21c432be680213c0fb4fe919"},{url:"connect/jira/editor-1-3-3.html",revision:"a2b0e7267a08a838f3cc404eba831ec0"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"2ce6e99d95113e9ca6b24343cea202e0"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"ba7ece2dfb2833b72f97280d7092f25e"},{url:"connect/jira/viewerPanel.js",revision:"6e9412c359a21b86dc7c5128bf6208d4"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"01caa325f3ad3f6565e0b4228907fb63"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"197ed5837ed27992688fc424699a9a78"},{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:"6402d993b3a947fa86fa334581ed165b"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"8f6c85460791915b01d83cd0a793effb"},{url:"connect/new_common/cac.js",revision:"3d8c436c566db645fb1e6e6ba9f69bbc"},{url:"connect/gdrive_common/gac.js",revision:"38f1df3ecc4d78290493f47e62202138"},{url:"connect/onedrive_common/ac.js",revision:"887d3ac605a7bb297067537e7c1f5686"},{url:"connect/confluence/viewer-init.js",revision:"4a60c6c805cab7bc782f1e52f7818d9f"},{url:"connect/confluence/viewer.js",revision:"d025b0929817299fa154f273525aa0ec"},{url:"connect/confluence/viewer-1-4-42.html",revision:"c7b38b3af4eb7a58ab6dc4791216530e"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"8cd74a2fb60bf2e3e86026d66107cf11"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"8b670f4b6ccde55358851da705ae884f"},{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:"6ac22c2dd7bf24f2ce4db6ea5cd82470"},{url:"resources/dia_am.txt",revision:"7b87288182abf40af0364ee000959b7b"},{url:"resources/dia_ar.txt",revision:"8cb02cb9d3740ac3306b963f060db29f"},{url:"resources/dia_bg.txt",revision:"c3fe70b41c1c99a3817f45a533f0d3d1"},{url:"resources/dia_bn.txt",revision:"50da78b0b7f2f65bdf25eabae73b3228"},{url:"resources/dia_bs.txt",revision:"568b22ef20ebfe162fce127fa9bcc6b5"},{url:"resources/dia_ca.txt",revision:"a4f3c89b030191d40999805696e6859b"},{url:"resources/dia_cs.txt",revision:"feebdfef9385384c37fbadd1a1a1b6c2"},{url:"resources/dia_da.txt",revision:"163d26afd66826247cf1553314ec70f5"},{url:"resources/dia_de.txt",revision:"9aa8d6e1d10659624519c88a7ad3e042"},{url:"resources/dia_el.txt",revision:"5289ac0ed78737231ca568be2c777d1a"},{url:"resources/dia_eo.txt",revision:"98e0cca265917fe115de548ca2c6d7a4"},{url:"resources/dia_es.txt",revision:"1a590b0b38299487e1267d440ba04350"},{url:"resources/dia_et.txt",revision:"bed7cfc8f949531f762ad86a225c15a2"},{url:"resources/dia_eu.txt",revision:"1d65da41d45cf45dfb81d13f360d7193"},{url:"resources/dia_fa.txt",revision:"21e0279f46bcdd79063c06fcfc7b1120"},{url:"resources/dia_fi.txt",revision:"649cea556e9168919b0492f8565bac8b"},{url:"resources/dia_fil.txt",revision:"a717e0751e11dbb6502acfcc51c1a704"},{url:"resources/dia_fr.txt",revision:"4e6530553659158b0f55cc43ec46cc7e"},{url:"resources/dia_gl.txt",revision:"4fe5a563571d23001fb0dcd28dadcb32"},{url:"resources/dia_gu.txt",revision:"5eef301316f5945a700c13d1d96570ed"},{url:"resources/dia_he.txt",revision:"d13e2c3ec4f6f34948f874eda3d63a55"},{url:"resources/dia_hi.txt",revision:"65a2374e09cee44447e9462f3acb7f6a"},{url:"resources/dia_hr.txt",revision:"21626f14592c1b84ee28b058fcb74194"},{url:"resources/dia_hu.txt",revision:"1698e21cde2ed5f5b599429e5e68a8c4"},{url:"resources/dia_id.txt",revision:"a3af078b5bc5cd36df5368fb2604ed02"},{url:"resources/dia_it.txt",revision:"f3b29c577b79c37687f37c1b0748b9d1"},{url:"resources/dia_ja.txt",revision:"990f1ad82383245f1f9e37678a1c9bab"},{url:"resources/dia_kn.txt",revision:"836030c27dc0bb91a25ebcc722f2df41"},{url:"resources/dia_ko.txt",revision:"4a5032d2cad4be2a1815f7e29238664a"},{url:"resources/dia_lt.txt",revision:"d0a2bbb32c3d7d860c8c0385075407ee"},{url:"resources/dia_lv.txt",revision:"8cdfac8996f69486b99302eb0c01757a"},{url:"resources/dia_ml.txt",revision:"53f0f853779db48abc46023e507cb698"},{url:"resources/dia_mr.txt",revision:"4f3bffbf25b0d07a0946e77a288f40b9"},{url:"resources/dia_ms.txt",revision:"55d9c222689543ab6a091636d12dc92f"},{url:"resources/dia_my.txt",revision:"6ac22c2dd7bf24f2ce4db6ea5cd82470"},{url:"resources/dia_nl.txt",revision:"da45f841b898121c268b02e5cf0c0f5e"},{url:"resources/dia_no.txt",revision:"afa660c88bef1253c9827f857e3c2a99"},{url:"resources/dia_pl.txt",revision:"934cb78df740c1377b724cc68b28b436"},{url:"resources/dia_pt-br.txt",revision:"128c5640c8ea34d4e5296bbb2ef35db3"},{url:"resources/dia_pt.txt",revision:"1d30c678b01d010a0c8a5cf415fa68a0"},{url:"resources/dia_ro.txt",revision:"a90bf597059e90eff0d955d12058df23"},{url:"resources/dia_ru.txt",revision:"b225c1bd151294617e8d600181d9e44e"},{url:"resources/dia_si.txt",revision:"6ac22c2dd7bf24f2ce4db6ea5cd82470"},{url:"resources/dia_sk.txt",revision:"be785304786ae06fe6cdae4c029e5f28"},{url:"resources/dia_sl.txt",revision:"c3748f17f0775bdd539ed69a49acd1e1"},{url:"resources/dia_sr.txt",revision:"611506593ed67893a50c3a9000a12c79"},{url:"resources/dia_sv.txt",revision:"54157da886c9c17d4eb1fe9e3d195368"},{url:"resources/dia_sw.txt",revision:"0cd0148f07578cbac9dc4e2222277266"},{url:"resources/dia_ta.txt",revision:"79cb0ed533e753ae646f055fb75d25fc"},{url:"resources/dia_te.txt",revision:"305740ddcfe539071f9f65d844c13068"},{url:"resources/dia_th.txt",revision:"ffc4698dc2f34eb02bf02f3ac26c5c7e"},{url:"resources/dia_tr.txt",revision:"1092cea9e131780ae817c5c5915be3b6"},{url:"resources/dia_uk.txt",revision:"e1ab64d71b13935ef5ef05c09a8f95d9"},{url:"resources/dia_vi.txt",revision:"a9ead4c2e8460af1b127b7405dba35a3"},{url:"resources/dia_zh-tw.txt",revision:"28d610fd1f35a68bcc8a555fea09dc12"},{url:"resources/dia_zh.txt",revision:"f49748b5eb13dee86003c5f57aa628ff"},{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 ab747427..c3b57db0 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/e747da1a1930a9d7736cf28960d652d3/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/opt/hostedtoolcache/node/14.18.1/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\": \"062c40c81ff96840527dd858b7d74f6e\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"65e0f601fa1bccf78fd9e755c3922826\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"9a266887804da50e85424f7930350173\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"ba6695ab64bca62059a0ccfebceb1222\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"9d98c920695f6c3395da4b68f723e60a\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"9200e0815b5a48cae7db8f54f9604990\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\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/croppie/croppie.min.css\",\n \"revision\": \"fc297c9002c79c15a132f13ee3ec427e\"\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\": \"9e0f461b2f67681b062a5829327e0e3b\"\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\": \"2ce6e99d95113e9ca6b24343cea202e0\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"ba7ece2dfb2833b72f97280d7092f25e\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"6e9412c359a21b86dc7c5128bf6208d4\"\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\": \"197ed5837ed27992688fc424699a9a78\"\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\": \"6402d993b3a947fa86fa334581ed165b\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"8f6c85460791915b01d83cd0a793effb\"\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\": \"887d3ac605a7bb297067537e7c1f5686\"\n },\n {\n \"url\": \"connect/confluence/viewer-init.js\",\n \"revision\": \"4a60c6c805cab7bc782f1e52f7818d9f\"\n },\n {\n \"url\": \"connect/confluence/viewer.js\",\n \"revision\": \"d025b0929817299fa154f273525aa0ec\"\n },\n {\n \"url\": \"connect/confluence/viewer-1-4-42.html\",\n \"revision\": \"c7b38b3af4eb7a58ab6dc4791216530e\"\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\": \"8b670f4b6ccde55358851da705ae884f\"\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\": \"6ac22c2dd7bf24f2ce4db6ea5cd82470\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"7b87288182abf40af0364ee000959b7b\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"8cb02cb9d3740ac3306b963f060db29f\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"c3fe70b41c1c99a3817f45a533f0d3d1\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"50da78b0b7f2f65bdf25eabae73b3228\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"568b22ef20ebfe162fce127fa9bcc6b5\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"a4f3c89b030191d40999805696e6859b\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"feebdfef9385384c37fbadd1a1a1b6c2\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"163d26afd66826247cf1553314ec70f5\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"9aa8d6e1d10659624519c88a7ad3e042\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"5289ac0ed78737231ca568be2c777d1a\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"98e0cca265917fe115de548ca2c6d7a4\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"1a590b0b38299487e1267d440ba04350\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"bed7cfc8f949531f762ad86a225c15a2\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"5186a4cce8e53bb454e4d539d1792b4d\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"21e0279f46bcdd79063c06fcfc7b1120\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"649cea556e9168919b0492f8565bac8b\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"a717e0751e11dbb6502acfcc51c1a704\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"4e6530553659158b0f55cc43ec46cc7e\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"4fe5a563571d23001fb0dcd28dadcb32\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"5eef301316f5945a700c13d1d96570ed\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"d13e2c3ec4f6f34948f874eda3d63a55\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"65a2374e09cee44447e9462f3acb7f6a\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"21626f14592c1b84ee28b058fcb74194\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"1698e21cde2ed5f5b599429e5e68a8c4\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"a3af078b5bc5cd36df5368fb2604ed02\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"f3b29c577b79c37687f37c1b0748b9d1\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"990f1ad82383245f1f9e37678a1c9bab\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"836030c27dc0bb91a25ebcc722f2df41\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"4a5032d2cad4be2a1815f7e29238664a\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"d0a2bbb32c3d7d860c8c0385075407ee\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"8cdfac8996f69486b99302eb0c01757a\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"53f0f853779db48abc46023e507cb698\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"4f3bffbf25b0d07a0946e77a288f40b9\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"55d9c222689543ab6a091636d12dc92f\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"6ac22c2dd7bf24f2ce4db6ea5cd82470\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"da45f841b898121c268b02e5cf0c0f5e\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"afa660c88bef1253c9827f857e3c2a99\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"934cb78df740c1377b724cc68b28b436\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"128c5640c8ea34d4e5296bbb2ef35db3\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"1d30c678b01d010a0c8a5cf415fa68a0\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"a90bf597059e90eff0d955d12058df23\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"b225c1bd151294617e8d600181d9e44e\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"6ac22c2dd7bf24f2ce4db6ea5cd82470\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"be785304786ae06fe6cdae4c029e5f28\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"c3748f17f0775bdd539ed69a49acd1e1\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"611506593ed67893a50c3a9000a12c79\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"54157da886c9c17d4eb1fe9e3d195368\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"0cd0148f07578cbac9dc4e2222277266\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"79cb0ed533e753ae646f055fb75d25fc\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"305740ddcfe539071f9f65d844c13068\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"ffc4698dc2f34eb02bf02f3ac26c5c7e\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"1092cea9e131780ae817c5c5915be3b6\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"e1ab64d71b13935ef5ef05c09a8f95d9\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"a9ead4c2e8460af1b127b7405dba35a3\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"28d610fd1f35a68bcc8a555fea09dc12\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"f49748b5eb13dee86003c5f57aa628ff\"\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"],"mappings":"szBAmBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,oCAY2B,CAClC,KACS,yBACK,oCAEd,KACS,gCACK,oCAEd,KACS,8BACK,oCAEd,KACS,mCACK,oCAEd,KACS,4BACK,oCAEd,KACS,sBACK,oCAEd,KACS,qBACK,oCAEd,KACS,kCACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,sCACK,oCAEd,KACS,yCACK,oCAEd,KACS,mCACK,oCAEd,KACS,mCACK,oCAEd,KACS,0CACK,oCAEd,KACS,gDACK,oCAEd,KACS,oDACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kDACK,oCAEd,KACS,6CACK,oCAEd,KACS,kCACK,oCAEd,KACS,qCACK,oCAEd,KACS,kCACK,oCAEd,KACS,oDACK,oCAEd,KACS,qCACK,oCAEd,KACS,wCACK,oCAEd,KACS,yCACK,oCAEd,KACS,6CACK,oCAEd,KACS,wCACK,oCAEd,KACS,iDACK,oCAEd,KACS,qDACK,oCAEd,KACS,sDACK,oCAEd,KACS,kDACK,oCAEd,KACS,8CACK,oCAEd,KACS,2BACK,oCAEd,KACS,8CACK,oCAEd,KACS,qDACK,oCAEd,KACS,sDACK,oCAEd,KACS,+DACK,oCAEd,KACS,2EACK,oCAEd,KACS,wEACK,oCAEd,KACS,6BACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,iCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,mCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,mCACK,oCAEd,KACS,gCACK,oCAEd,KACS,uBACK,oCAEd,KACS,gCACK,oCAEd,KACS,2BACK,oCAEd,KACS,+BACK,oCAEd,KACS,iCACK,oCAEd,KACS,oCACK,oCAEd,KACS,2CACK,oCAEd,KACS,mCACK,oCAEd,KACS,sCACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,oCACK,oCAEd,KACS,6CACK,oCAEd,KACS,6CACK,oCAEd,KACS,6BACK,oCAEd,KACS,iCACK,oCAEd,KACS,2BACK,oCAEd,KACS,+BACK,oCAEd,KACS,gCACK,oCAEd,KACS,wCACK,oCAEd,KACS,oCACK,oCAEd,KACS,mCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kCACK,oCAEd,KACS,yCACK,oCAEd,KACS,mCACK,oCAEd,KACS,8CACK,oCAEd,KACS,yCACK,oCAEd,KACS,0CACK,oCAEd,KACS,wCACK,oCAEd,KACS,wCACK,oCAEd,KACS,+CACK,oCAEd,KACS,sCACK,oCAEd,KACS,gCACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,gCACK,oCAEd,KACS,yBACK,oCAEd,KACS,+BACK,oCAEd,KACS,kCACK,oCAEd,KACS,uCACK,oCAEd,KACS,wCACK,oCAEd,KACS,uCACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,qCACK,oCAEd,KACS,wCACK,oCAEd,KACS,qCACK,oCAEd,KACS,2CACK,oCAEd,KACS,qCACK,oCAEd,KACS,oCACK,qCAEb,6BAC8B,CAAC"} \ No newline at end of file
+{"version":3,"file":"service-worker.js","sources":["../../../../../../../tmp/a0bdc40d33a940e56ff9e02614eee471/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/opt/hostedtoolcache/node/14.18.1/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\": \"1c1a6b8e4ebc69f3bd2e7f5e314395bd\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"65e0f601fa1bccf78fd9e755c3922826\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"9a266887804da50e85424f7930350173\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"ba6695ab64bca62059a0ccfebceb1222\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"9d98c920695f6c3395da4b68f723e60a\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"9200e0815b5a48cae7db8f54f9604990\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\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/croppie/croppie.min.css\",\n \"revision\": \"fc297c9002c79c15a132f13ee3ec427e\"\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\": \"bcfea9ad21c432be680213c0fb4fe919\"\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\": \"2ce6e99d95113e9ca6b24343cea202e0\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"ba7ece2dfb2833b72f97280d7092f25e\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"6e9412c359a21b86dc7c5128bf6208d4\"\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\": \"197ed5837ed27992688fc424699a9a78\"\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\": \"6402d993b3a947fa86fa334581ed165b\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"8f6c85460791915b01d83cd0a793effb\"\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\": \"887d3ac605a7bb297067537e7c1f5686\"\n },\n {\n \"url\": \"connect/confluence/viewer-init.js\",\n \"revision\": \"4a60c6c805cab7bc782f1e52f7818d9f\"\n },\n {\n \"url\": \"connect/confluence/viewer.js\",\n \"revision\": \"d025b0929817299fa154f273525aa0ec\"\n },\n {\n \"url\": \"connect/confluence/viewer-1-4-42.html\",\n \"revision\": \"c7b38b3af4eb7a58ab6dc4791216530e\"\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\": \"8b670f4b6ccde55358851da705ae884f\"\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\": \"6ac22c2dd7bf24f2ce4db6ea5cd82470\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"7b87288182abf40af0364ee000959b7b\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"8cb02cb9d3740ac3306b963f060db29f\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"c3fe70b41c1c99a3817f45a533f0d3d1\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"50da78b0b7f2f65bdf25eabae73b3228\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"568b22ef20ebfe162fce127fa9bcc6b5\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"a4f3c89b030191d40999805696e6859b\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"feebdfef9385384c37fbadd1a1a1b6c2\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"163d26afd66826247cf1553314ec70f5\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"9aa8d6e1d10659624519c88a7ad3e042\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"5289ac0ed78737231ca568be2c777d1a\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"98e0cca265917fe115de548ca2c6d7a4\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"1a590b0b38299487e1267d440ba04350\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"bed7cfc8f949531f762ad86a225c15a2\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"1d65da41d45cf45dfb81d13f360d7193\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"21e0279f46bcdd79063c06fcfc7b1120\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"649cea556e9168919b0492f8565bac8b\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"a717e0751e11dbb6502acfcc51c1a704\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"4e6530553659158b0f55cc43ec46cc7e\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"4fe5a563571d23001fb0dcd28dadcb32\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"5eef301316f5945a700c13d1d96570ed\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"d13e2c3ec4f6f34948f874eda3d63a55\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"65a2374e09cee44447e9462f3acb7f6a\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"21626f14592c1b84ee28b058fcb74194\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"1698e21cde2ed5f5b599429e5e68a8c4\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"a3af078b5bc5cd36df5368fb2604ed02\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"f3b29c577b79c37687f37c1b0748b9d1\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"990f1ad82383245f1f9e37678a1c9bab\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"836030c27dc0bb91a25ebcc722f2df41\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"4a5032d2cad4be2a1815f7e29238664a\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"d0a2bbb32c3d7d860c8c0385075407ee\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"8cdfac8996f69486b99302eb0c01757a\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"53f0f853779db48abc46023e507cb698\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"4f3bffbf25b0d07a0946e77a288f40b9\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"55d9c222689543ab6a091636d12dc92f\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"6ac22c2dd7bf24f2ce4db6ea5cd82470\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"da45f841b898121c268b02e5cf0c0f5e\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"afa660c88bef1253c9827f857e3c2a99\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"934cb78df740c1377b724cc68b28b436\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"128c5640c8ea34d4e5296bbb2ef35db3\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"1d30c678b01d010a0c8a5cf415fa68a0\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"a90bf597059e90eff0d955d12058df23\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"b225c1bd151294617e8d600181d9e44e\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"6ac22c2dd7bf24f2ce4db6ea5cd82470\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"be785304786ae06fe6cdae4c029e5f28\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"c3748f17f0775bdd539ed69a49acd1e1\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"611506593ed67893a50c3a9000a12c79\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"54157da886c9c17d4eb1fe9e3d195368\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"0cd0148f07578cbac9dc4e2222277266\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"79cb0ed533e753ae646f055fb75d25fc\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"305740ddcfe539071f9f65d844c13068\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"ffc4698dc2f34eb02bf02f3ac26c5c7e\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"1092cea9e131780ae817c5c5915be3b6\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"e1ab64d71b13935ef5ef05c09a8f95d9\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"a9ead4c2e8460af1b127b7405dba35a3\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"28d610fd1f35a68bcc8a555fea09dc12\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"f49748b5eb13dee86003c5f57aa628ff\"\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"],"mappings":"szBAmBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,oCAY2B,CAClC,KACS,yBACK,oCAEd,KACS,gCACK,oCAEd,KACS,8BACK,oCAEd,KACS,mCACK,oCAEd,KACS,4BACK,oCAEd,KACS,sBACK,oCAEd,KACS,qBACK,oCAEd,KACS,kCACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,sCACK,oCAEd,KACS,yCACK,oCAEd,KACS,mCACK,oCAEd,KACS,mCACK,oCAEd,KACS,0CACK,oCAEd,KACS,gDACK,oCAEd,KACS,oDACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kDACK,oCAEd,KACS,6CACK,oCAEd,KACS,kCACK,oCAEd,KACS,qCACK,oCAEd,KACS,kCACK,oCAEd,KACS,oDACK,oCAEd,KACS,qCACK,oCAEd,KACS,wCACK,oCAEd,KACS,yCACK,oCAEd,KACS,6CACK,oCAEd,KACS,wCACK,oCAEd,KACS,iDACK,oCAEd,KACS,qDACK,oCAEd,KACS,sDACK,oCAEd,KACS,kDACK,oCAEd,KACS,8CACK,oCAEd,KACS,2BACK,oCAEd,KACS,8CACK,oCAEd,KACS,qDACK,oCAEd,KACS,sDACK,oCAEd,KACS,+DACK,oCAEd,KACS,2EACK,oCAEd,KACS,wEACK,oCAEd,KACS,6BACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,iCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,mCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,mCACK,oCAEd,KACS,gCACK,oCAEd,KACS,uBACK,oCAEd,KACS,gCACK,oCAEd,KACS,2BACK,oCAEd,KACS,+BACK,oCAEd,KACS,iCACK,oCAEd,KACS,oCACK,oCAEd,KACS,2CACK,oCAEd,KACS,mCACK,oCAEd,KACS,sCACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,oCACK,oCAEd,KACS,6CACK,oCAEd,KACS,6CACK,oCAEd,KACS,6BACK,oCAEd,KACS,iCACK,oCAEd,KACS,2BACK,oCAEd,KACS,+BACK,oCAEd,KACS,gCACK,oCAEd,KACS,wCACK,oCAEd,KACS,oCACK,oCAEd,KACS,mCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kCACK,oCAEd,KACS,yCACK,oCAEd,KACS,mCACK,oCAEd,KACS,8CACK,oCAEd,KACS,yCACK,oCAEd,KACS,0CACK,oCAEd,KACS,wCACK,oCAEd,KACS,wCACK,oCAEd,KACS,+CACK,oCAEd,KACS,sCACK,oCAEd,KACS,gCACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,gCACK,oCAEd,KACS,yBACK,oCAEd,KACS,+BACK,oCAEd,KACS,kCACK,oCAEd,KACS,uCACK,oCAEd,KACS,wCACK,oCAEd,KACS,uCACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,qCACK,oCAEd,KACS,wCACK,oCAEd,KACS,qCACK,oCAEd,KACS,2CACK,oCAEd,KACS,qCACK,oCAEd,KACS,oCACK,qCAEb,6BAC8B,CAAC"} \ No newline at end of file
diff --git a/src/main/webapp/teams.html b/src/main/webapp/teams.html
index 5e16d42f..7dd4fcc6 100644
--- a/src/main/webapp/teams.html
+++ b/src/main/webapp/teams.html
@@ -290,7 +290,6 @@
// Supported domains are *.draw.io and the packaged version in Quip
var supportedDomain = (hostName.substring(hostName.length - 8, hostName.length) === '.draw.io') ||
(hostName.substring(hostName.length - 13, hostName.length) === '.diagrams.net');
- (hostName.substring(hostName.length - 17, hostName.length) === '.quipelements.com');
function loadAppJS()
{
@@ -299,11 +298,6 @@
mxScriptsLoaded = true;
checkAllLoaded();
- if (!supportedDomain)
- {
- mxscript('js/PostConfig.js');
- }
-
// Electron
if (mxIsElectron)
{
@@ -324,6 +318,10 @@
});
});
}
+ else if (!supportedDomain)
+ {
+ mxscript('js/PostConfig.js');
+ }
});
};