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 [draw.io] <david@jgraph.com>2021-11-01 18:45:08 +0300
committerDavid Benson [draw.io] <david@jgraph.com>2021-11-01 18:45:08 +0300
commit8a8053202b63093845f989c7c586013299cddc71 (patch)
treee2bfbd877aab359784bc176d7ca2e9ddf1ab51a0
parent694b9d1e6a0a5faf6474029d2ce2e37603a1de02 (diff)
15.6.4 releasev15.6.4
-rw-r--r--ChangeLog9
-rw-r--r--VERSION2
-rw-r--r--src/main/webapp/js/app.min.js1344
-rw-r--r--src/main/webapp/js/diagramly/App.js5
-rw-r--r--src/main/webapp/js/diagramly/Editor.js34
-rw-r--r--src/main/webapp/js/diagramly/EditorUi.js9
-rw-r--r--src/main/webapp/js/diagramly/Menus.js23
-rw-r--r--src/main/webapp/js/diagramly/Minimal.js17
-rw-r--r--src/main/webapp/js/grapheditor/Format.js23
-rw-r--r--src/main/webapp/js/grapheditor/Graph.js33
-rw-r--r--src/main/webapp/js/grapheditor/Sidebar.js5
-rw-r--r--src/main/webapp/js/viewer-static.min.js1540
-rw-r--r--src/main/webapp/js/viewer.min.js1540
-rw-r--r--src/main/webapp/mxgraph/mxClient.js10
-rw-r--r--src/main/webapp/resources/dia.txt1
-rw-r--r--src/main/webapp/resources/dia_am.txt1
-rw-r--r--src/main/webapp/resources/dia_ar.txt1
-rw-r--r--src/main/webapp/resources/dia_bg.txt1
-rw-r--r--src/main/webapp/resources/dia_bn.txt1
-rw-r--r--src/main/webapp/resources/dia_bs.txt1
-rw-r--r--src/main/webapp/resources/dia_ca.txt1
-rw-r--r--src/main/webapp/resources/dia_cs.txt1
-rw-r--r--src/main/webapp/resources/dia_da.txt1
-rw-r--r--src/main/webapp/resources/dia_de.txt1
-rw-r--r--src/main/webapp/resources/dia_el.txt1
-rw-r--r--src/main/webapp/resources/dia_eo.txt1
-rw-r--r--src/main/webapp/resources/dia_es.txt1
-rw-r--r--src/main/webapp/resources/dia_et.txt1
-rw-r--r--src/main/webapp/resources/dia_eu.txt1
-rw-r--r--src/main/webapp/resources/dia_fa.txt1
-rw-r--r--src/main/webapp/resources/dia_fi.txt1
-rw-r--r--src/main/webapp/resources/dia_fil.txt1
-rw-r--r--src/main/webapp/resources/dia_fr.txt1
-rw-r--r--src/main/webapp/resources/dia_gl.txt1
-rw-r--r--src/main/webapp/resources/dia_gu.txt1
-rw-r--r--src/main/webapp/resources/dia_he.txt1
-rw-r--r--src/main/webapp/resources/dia_hi.txt1
-rw-r--r--src/main/webapp/resources/dia_hr.txt1
-rw-r--r--src/main/webapp/resources/dia_hu.txt1
-rw-r--r--src/main/webapp/resources/dia_i18n.txt1
-rw-r--r--src/main/webapp/resources/dia_id.txt1
-rw-r--r--src/main/webapp/resources/dia_it.txt1
-rw-r--r--src/main/webapp/resources/dia_ja.txt1
-rw-r--r--src/main/webapp/resources/dia_kn.txt1
-rw-r--r--src/main/webapp/resources/dia_ko.txt1
-rw-r--r--src/main/webapp/resources/dia_lt.txt1
-rw-r--r--src/main/webapp/resources/dia_lv.txt1
-rw-r--r--src/main/webapp/resources/dia_ml.txt1
-rw-r--r--src/main/webapp/resources/dia_mr.txt1
-rw-r--r--src/main/webapp/resources/dia_ms.txt1
-rw-r--r--src/main/webapp/resources/dia_my.txt1
-rw-r--r--src/main/webapp/resources/dia_nl.txt1
-rw-r--r--src/main/webapp/resources/dia_no.txt1
-rw-r--r--src/main/webapp/resources/dia_pl.txt1
-rw-r--r--src/main/webapp/resources/dia_pt-br.txt1
-rw-r--r--src/main/webapp/resources/dia_pt.txt1
-rw-r--r--src/main/webapp/resources/dia_ro.txt1
-rw-r--r--src/main/webapp/resources/dia_ru.txt1
-rw-r--r--src/main/webapp/resources/dia_si.txt1
-rw-r--r--src/main/webapp/resources/dia_sk.txt1
-rw-r--r--src/main/webapp/resources/dia_sl.txt1
-rw-r--r--src/main/webapp/resources/dia_sr.txt1
-rw-r--r--src/main/webapp/resources/dia_sv.txt1
-rw-r--r--src/main/webapp/resources/dia_sw.txt1
-rw-r--r--src/main/webapp/resources/dia_ta.txt1
-rw-r--r--src/main/webapp/resources/dia_te.txt1
-rw-r--r--src/main/webapp/resources/dia_th.txt1
-rw-r--r--src/main/webapp/resources/dia_tr.txt1
-rw-r--r--src/main/webapp/resources/dia_uk.txt1
-rw-r--r--src/main/webapp/resources/dia_vi.txt1
-rw-r--r--src/main/webapp/resources/dia_zh-tw.txt1
-rw-r--r--src/main/webapp/resources/dia_zh.txt1
-rw-r--r--src/main/webapp/service-worker.js2
-rw-r--r--src/main/webapp/service-worker.js.map2
74 files changed, 2378 insertions, 2278 deletions
diff --git a/ChangeLog b/ChangeLog
index 38990790..68896ce8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+01-NOV-2021: 15.6.4
+
+- Moves resolve default colors to cell style https://github.com/jgraph/drawio/issues/2370
+- Adds default text border color
+- FIxes handling of Atlas mode and default colors
+- Updates default color via prototype
+- Fixes sticky scrollbar in FF on Windows [DID-3588]
+- Restores previous Notion embed menu
+
31-OCT-2021: 15.6.3
- Hides dragHandle while editing diagram
diff --git a/VERSION b/VERSION
index 17113114..5d62dc83 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-15.6.3 \ No newline at end of file
+15.6.4 \ No newline at end of file
diff --git a/src/main/webapp/js/app.min.js b/src/main/webapp/js/app.min.js
index 80534061..8200708e 100644
--- a/src/main/webapp/js/app.min.js
+++ b/src/main/webapp/js/app.min.js
@@ -235,7 +235,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.6.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/"),
+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.6.4",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")||0<=navigator.userAgent.indexOf("Opera/"),
@@ -1639,16 +1639,16 @@ mxGraphHandler.prototype.destroyShapes=function(){null!=this.shape&&(this.shape.
mxGraphHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);this.graph.removeListener(this.panHandler);null!=this.escapeHandler&&(this.graph.removeListener(this.escapeHandler),this.escapeHandler=null);null!=this.refreshHandler&&(this.graph.getModel().removeListener(this.refreshHandler),this.graph.removeListener(this.refreshHandler),this.refreshHandler=null);mxEvent.removeListener(document,"keydown",this.keyHandler);mxEvent.removeListener(document,"keyup",this.keyHandler);this.destroyShapes();
this.removeHint()};
function mxPanningHandler(a){null!=a&&(this.graph=a,this.graph.addMouseListener(this),this.forcePanningHandler=mxUtils.bind(this,function(a,c){var b=c.getProperty("eventName"),e=c.getProperty("event");b==mxEvent.MOUSE_DOWN&&this.isForcePanningEvent(e)&&(this.start(e),this.active=!0,this.fireEvent(new mxEventObject(mxEvent.PAN_START,"event",e)),e.consume())}),this.graph.addListener(mxEvent.FIRE_MOUSE_EVENT,this.forcePanningHandler),this.gestureHandler=mxUtils.bind(this,function(a,c){if(this.isPinchEnabled()){var b=
-c.getProperty("event");mxEvent.isConsumed(b)||"gesturestart"!=b.type?"gestureend"==b.type&&null!=this.initialScale&&(this.initialScale=null):(this.initialScale=this.graph.view.scale,this.active||null==this.mouseDownEvent||(this.start(this.mouseDownEvent),this.mouseDownEvent=null));null!=this.initialScale&&this.zoomGraph(b)}}),this.graph.addListener(mxEvent.GESTURE,this.gestureHandler),this.mouseUpListener=mxUtils.bind(this,function(){this.active&&this.reset()}),mxEvent.addListener(document,"mouseup",
-this.mouseUpListener),mxEvent.addListener(document,"mouseleave",this.mouseUpListener))}mxPanningHandler.prototype=new mxEventSource;mxPanningHandler.prototype.constructor=mxPanningHandler;mxPanningHandler.prototype.graph=null;mxPanningHandler.prototype.useLeftButtonForPanning=!1;mxPanningHandler.prototype.usePopupTrigger=!0;mxPanningHandler.prototype.ignoreCell=!1;mxPanningHandler.prototype.previewEnabled=!0;mxPanningHandler.prototype.useGrid=!1;mxPanningHandler.prototype.panningEnabled=!0;
-mxPanningHandler.prototype.pinchEnabled=!0;mxPanningHandler.prototype.maxScale=8;mxPanningHandler.prototype.minScale=.01;mxPanningHandler.prototype.dx=null;mxPanningHandler.prototype.dy=null;mxPanningHandler.prototype.startX=0;mxPanningHandler.prototype.startY=0;mxPanningHandler.prototype.isActive=function(){return this.active||null!=this.initialScale};mxPanningHandler.prototype.isPanningEnabled=function(){return this.panningEnabled};
+c.getProperty("event");mxEvent.isConsumed(b)||"gesturestart"!=b.type?"gestureend"==b.type&&null!=this.initialScale&&(this.initialScale=null):(this.initialScale=this.graph.view.scale,this.active||null==this.mouseDownEvent||(this.start(this.mouseDownEvent),this.mouseDownEvent=null));null!=this.initialScale&&this.zoomGraph(b)}}),this.graph.addListener(mxEvent.GESTURE,this.gestureHandler),this.mouseUpListener=mxUtils.bind(this,function(){this.active&&this.reset()}),mxEvent.addGestureListeners(document,
+null,null,this.mouseUpListener),mxEvent.addListener(document,"mouseleave",this.mouseUpListener))}mxPanningHandler.prototype=new mxEventSource;mxPanningHandler.prototype.constructor=mxPanningHandler;mxPanningHandler.prototype.graph=null;mxPanningHandler.prototype.useLeftButtonForPanning=!1;mxPanningHandler.prototype.usePopupTrigger=!0;mxPanningHandler.prototype.ignoreCell=!1;mxPanningHandler.prototype.previewEnabled=!0;mxPanningHandler.prototype.useGrid=!1;
+mxPanningHandler.prototype.panningEnabled=!0;mxPanningHandler.prototype.pinchEnabled=!0;mxPanningHandler.prototype.maxScale=8;mxPanningHandler.prototype.minScale=.01;mxPanningHandler.prototype.dx=null;mxPanningHandler.prototype.dy=null;mxPanningHandler.prototype.startX=0;mxPanningHandler.prototype.startY=0;mxPanningHandler.prototype.isActive=function(){return this.active||null!=this.initialScale};mxPanningHandler.prototype.isPanningEnabled=function(){return this.panningEnabled};
mxPanningHandler.prototype.setPanningEnabled=function(a){this.panningEnabled=a};mxPanningHandler.prototype.isPinchEnabled=function(){return this.pinchEnabled};mxPanningHandler.prototype.setPinchEnabled=function(a){this.pinchEnabled=a};mxPanningHandler.prototype.isPanningTrigger=function(a){var b=a.getEvent();return this.useLeftButtonForPanning&&null==a.getState()&&mxEvent.isLeftMouseButton(b)||mxEvent.isControlDown(b)&&mxEvent.isShiftDown(b)||this.usePopupTrigger&&mxEvent.isPopupTrigger(b)};
mxPanningHandler.prototype.isForcePanningEvent=function(a){return this.ignoreCell||mxEvent.isMultiTouchEvent(a.getEvent())};mxPanningHandler.prototype.mouseDown=function(a,b){this.mouseDownEvent=b;!b.isConsumed()&&this.isPanningEnabled()&&!this.active&&this.isPanningTrigger(b)&&(this.start(b),this.consumePanningTrigger(b))};
mxPanningHandler.prototype.start=function(a){this.dx0=-this.graph.container.scrollLeft;this.dy0=-this.graph.container.scrollTop;this.startX=a.getX();this.startY=a.getY();this.dy=this.dx=null;this.panningTrigger=!0};mxPanningHandler.prototype.consumePanningTrigger=function(a){a.consume()};
mxPanningHandler.prototype.mouseMove=function(a,b){this.dx=b.getX()-this.startX;this.dy=b.getY()-this.startY;if(this.active)this.previewEnabled&&(this.useGrid&&(this.dx=this.graph.snap(this.dx),this.dy=this.graph.snap(this.dy)),this.graph.panGraph(this.dx+this.dx0,this.dy+this.dy0)),this.fireEvent(new mxEventObject(mxEvent.PAN,"event",b));else if(this.panningTrigger){var c=this.active;this.active=Math.abs(this.dx)>this.graph.tolerance||Math.abs(this.dy)>this.graph.tolerance;!c&&this.active&&this.fireEvent(new mxEventObject(mxEvent.PAN_START,
"event",b))}(this.active||this.panningTrigger)&&b.consume()};mxPanningHandler.prototype.mouseUp=function(a,b){if(this.active){if(null!=this.dx&&null!=this.dy){if(!this.graph.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.graph.container)){var c=this.graph.getView().scale,d=this.graph.getView().translate;this.graph.panGraph(0,0);this.panGraph(d.x+this.dx/c,d.y+this.dy/c)}b.consume()}this.fireEvent(new mxEventObject(mxEvent.PAN_END,"event",b))}this.reset()};
mxPanningHandler.prototype.zoomGraph=function(a){var b=Math.round(this.initialScale*a.scale*100)/100;null!=this.minScale&&(b=Math.max(this.minScale,b));null!=this.maxScale&&(b=Math.min(this.maxScale,b));this.graph.view.scale!=b&&(this.graph.zoomTo(b),mxEvent.consume(a))};mxPanningHandler.prototype.reset=function(){this.panningTrigger=this.graph.isMouseDown=!1;this.mouseDownEvent=null;this.active=!1;this.dy=this.dx=null};
-mxPanningHandler.prototype.panGraph=function(a,b){this.graph.getView().setTranslate(a,b)};mxPanningHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);this.graph.removeListener(this.forcePanningHandler);this.graph.removeListener(this.gestureHandler);mxEvent.removeListener(document,"mouseup",this.mouseUpListener);mxEvent.removeListener(document,"mouseleave",this.mouseUpListener)};
+mxPanningHandler.prototype.panGraph=function(a,b){this.graph.getView().setTranslate(a,b)};mxPanningHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);this.graph.removeListener(this.forcePanningHandler);this.graph.removeListener(this.gestureHandler);mxEvent.removeGestureListeners(document,null,null,this.mouseUpListener);mxEvent.removeListener(document,"mouseleave",this.mouseUpListener)};
function mxPopupMenuHandler(a,b){null!=a&&(this.graph=a,this.factoryMethod=b,this.graph.addMouseListener(this),this.gestureHandler=mxUtils.bind(this,function(a,b){this.inTolerance=!1}),this.graph.addListener(mxEvent.GESTURE,this.gestureHandler),this.init())}mxPopupMenuHandler.prototype=new mxPopupMenu;mxPopupMenuHandler.prototype.constructor=mxPopupMenuHandler;mxPopupMenuHandler.prototype.graph=null;mxPopupMenuHandler.prototype.selectOnPopup=!0;
mxPopupMenuHandler.prototype.clearSelectionOnBackground=!0;mxPopupMenuHandler.prototype.triggerX=null;mxPopupMenuHandler.prototype.triggerY=null;mxPopupMenuHandler.prototype.screenX=null;mxPopupMenuHandler.prototype.screenY=null;mxPopupMenuHandler.prototype.init=function(){mxPopupMenu.prototype.init.apply(this);mxEvent.addGestureListeners(this.div,mxUtils.bind(this,function(a){this.graph.tooltipHandler.hide()}))};mxPopupMenuHandler.prototype.isSelectOnPopup=function(a){return this.selectOnPopup};
mxPopupMenuHandler.prototype.mouseDown=function(a,b){this.isEnabled()&&!mxEvent.isMultiTouchEvent(b.getEvent())&&(this.hideMenu(),this.triggerX=b.getGraphX(),this.triggerY=b.getGraphY(),this.screenX=mxEvent.getMainEvent(b.getEvent()).screenX,this.screenY=mxEvent.getMainEvent(b.getEvent()).screenY,this.popupTrigger=this.isPopupTrigger(b),this.inTolerance=!0)};
@@ -2168,20 +2168,20 @@ this.graph.isCellSelected(a)&&!this.graph.isToggleEvent(c.getEvent())||this.grap
a.x)*e,(d.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(da){this.handleError(da)}};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",
+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(ja){this.handleError(ja)}};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 l="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),m=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor","gradientDirection"],["align","verticalAlign"],["opacity"],["html"]];for(b=0;b<m.length;b++)for(d=0;d<m[b].length;d++)f.push(m[b][d]);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,l){d=null!=d?d:e.currentVertexStyle;g=null!=g?g:e.currentEdgeStyle;k=null!=k?k:!0;c=null!=c?c:e.getModel();if(l){l=[];for(var n=0;n<a.length;n++)l=l.concat(c.getDescendants(a[n]));a=l}c.beginUpdate();try{for(n=0;n<a.length;n++){var p=a[n],q;if(b)q=["fontSize","fontFamily","fontColor"];else{var u=c.getStyle(p),t=null!=u?u.split(";"):[];q=f.slice();for(var v=0;v<t.length;v++){var aa=t[v],R=aa.indexOf("=");if(0<=R){var w=aa.substring(0,
-R),O=mxUtils.indexOf(q,w);0<=O&&q.splice(O,1);for(l=0;l<m.length;l++){var E=m[l];if(0<=mxUtils.indexOf(E,w))for(var z=0;z<E.length;z++){var x=mxUtils.indexOf(q,E[z]);0<=x&&q.splice(x,1)}}}}}var N=c.isEdge(p);l=N?g:d;for(var J=c.getStyle(p),v=0;v<q.length;v++){var w=q[v],I=l[w];null!=I&&"edgeStyle"!=w&&("shape"!=w||N)&&(!N||k||0>mxUtils.indexOf(h,w))&&(J=mxUtils.setStyle(J,w,I))}Editor.simpleLabels&&(J=mxUtils.setStyle(mxUtils.setStyle(J,"html",null),"whiteSpace",null));c.setStyle(p,J)}}finally{c.endUpdate()}return a};
+mxUtils.indexOf(f,k[b])&&f.push(k[b]);var n=function(a,b,c,d,g,k,l){d=null!=d?d:e.currentVertexStyle;g=null!=g?g:e.currentEdgeStyle;k=null!=k?k:!0;c=null!=c?c:e.getModel();if(l){l=[];for(var n=0;n<a.length;n++)l=l.concat(c.getDescendants(a[n]));a=l}c.beginUpdate();try{for(n=0;n<a.length;n++){var p=a[n],q;if(b)q=["fontSize","fontFamily","fontColor"];else{var u=c.getStyle(p),t=null!=u?u.split(";"):[];q=f.slice();for(var v=0;v<t.length;v++){var X=t[v],R=X.indexOf("=");if(0<=R){var w=X.substring(0,R),
+P=mxUtils.indexOf(q,w);0<=P&&q.splice(P,1);for(l=0;l<m.length;l++){var E=m[l];if(0<=mxUtils.indexOf(E,w))for(var z=0;z<E.length;z++){var x=mxUtils.indexOf(q,E[z]);0<=x&&q.splice(x,1)}}}}}var O=c.isEdge(p);l=O?g:d;for(var K=c.getStyle(p),v=0;v<q.length;v++){var w=q[v],I=l[w];null!=I&&"edgeStyle"!=w&&("shape"!=w||O)&&(!O||k||0>mxUtils.indexOf(h,w))&&(K=mxUtils.setStyle(K,w,I))}Editor.simpleLabels&&(K=mxUtils.setStyle(mxUtils.setStyle(K,"html",null),"whiteSpace",null));c.setStyle(p,K)}}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 q=
e.graphHandler.start;e.graphHandler.start=function(){null!=y.hoverIcons&&y.hoverIcons.reset();q.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 w=e.cellEditor.isStopEditingEvent;e.cellEditor.isStopEditingEvent=function(a){return w.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 x=e.isZoomWheelEvent;e.isZoomWheelEvent=function(){return u||x.apply(this,arguments)};var z=!1,E=null,H=null,C=null,F=mxUtils.bind(this,function(){if(null!=this.toolbar&&z!=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==C)this.toolbar.createTextToolbar();else{for(var d=0;d<C.length;d++)this.toolbar.container.appendChild(C[d]);this.toolbar.fontMenu=E;this.toolbar.sizeMenu=H}z=e.cellEditor.isContentEditing();E=a;H=c;C=b}}),y=this,I=e.cellEditor.startEditing;e.cellEditor.startEditing=function(){I.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!=y.toolbar&&(y.toolbar.setFontName(Graph.stripQuotes(b.fontFamily)),y.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(O){y.handleError(O)}};
-e.container.setAttribute("tabindex","0");e.container.style.cursor="default";if(window.self===window.top&&null!=e.container.parentNode)try{e.container.focus()}catch(R){}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,
+arguments)||13==a.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))};var x=e.isZoomWheelEvent;e.isZoomWheelEvent=function(){return u||x.apply(this,arguments)};var z=!1,E=null,H=null,C=null,G=mxUtils.bind(this,function(){if(null!=this.toolbar&&z!=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==C)this.toolbar.createTextToolbar();else{for(var d=0;d<C.length;d++)this.toolbar.container.appendChild(C[d]);this.toolbar.fontMenu=E;this.toolbar.sizeMenu=H}z=e.cellEditor.isContentEditing();E=a;H=c;C=b}}),y=this,I=e.cellEditor.startEditing;e.cellEditor.startEditing=function(){I.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!=y.toolbar&&(y.toolbar.setFontName(Graph.stripQuotes(b.fontFamily)),y.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 L=e.cellEditor.stopEditing;e.cellEditor.stopEditing=function(a,b){try{L.apply(this,arguments),G()}catch(P){y.handleError(P)}};
+e.container.setAttribute("tabindex","0");e.container.style.cursor="default";if(window.self===window.top&&null!=e.container.parentNode)try{e.container.focus()}catch(R){}var M=e.fireMouseEvent;e.fireMouseEvent=function(a,b,c){a==mxEvent.MOUSE_DOWN&&this.container.focus();M.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!=y.hoverIcons&&y.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 m=0;m<c.length&&(d=e.getModel().isVertex(c[m])||d,!(h=e.getModel().isEdge(c[m])||h)||!d);m++);else h=d=!0;for(var c=b.getProperty("keys"),n=b.getProperty("values"),m=0;m<c.length;m++){var p=0<=mxUtils.indexOf(g,c[m]);if("strokeColor"!=c[m]||null!=n[m]&&"none"!=n[m])if(0<=mxUtils.indexOf(k,c[m]))h||0<=mxUtils.indexOf(l,c[m])?null==n[m]?delete e.currentEdgeStyle[c[m]]:e.currentEdgeStyle[c[m]]=n[m]:d&&0<=mxUtils.indexOf(f,c[m])&&(null==n[m]?delete e.currentVertexStyle[c[m]]:
e.currentVertexStyle[c[m]]=n[m]);else if(0<=mxUtils.indexOf(f,c[m])){if(d||p)null==n[m]?delete e.currentVertexStyle[c[m]]:e.currentVertexStyle[c[m]]=n[m];if(h||p||0<=mxUtils.indexOf(l,c[m]))null==n[m]?delete e.currentEdgeStyle[c[m]]:e.currentEdgeStyle[c[m]]=n[m]}}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=
@@ -2248,15 +2248,15 @@ mxUtils.bind(this,function(b){a.tooltipHandler.resetTimer();a.tooltipHandler.hid
c.getGraphX();this.startY=c.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<z&&Math.abs(this.scrollTop-a.container.scrollTop)<z&&Math.abs(this.startX-c.getGraphX())<z&&Math.abs(this.startY-c.getGraphY())<z&&(0<parseFloat(d.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 H=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?H.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 C=a.view.getBackgroundPane(),F=a.view.getDrawPane();a.cumulativeZoomFactor=1;var y=null,I=null,K=null,L=null,R=null,J=function(c){null!=y&&window.clearTimeout(y);window.setTimeout(function(){if(!a.isMouseDown||L)y=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="",C.style.transformOrigin="",mxClient.IS_SF?(F.style.transform="scale(1)",C.style.transform="scale(1)",window.setTimeout(function(){F.style.transform="";C.style.transform=""},0)):(F.style.transform="",C.style.transform=""),a.view.getDecoratorPane().style.opacity="",a.view.getOverlayPane().style.opacity="");var c=new mxPoint(a.container.scrollLeft,a.container.scrollTop),
-e=mxUtils.getOffset(a.container),f=a.view.scale,g=0,k=0;null!=I&&(g=a.container.offsetWidth/2-I.x+e.x,k=a.container.offsetHeight/2-I.y+e.y);a.zoom(a.cumulativeZoomFactor);a.view.scale!=f&&(null!=K&&(g+=c.x-K.x,k+=c.y-K.y),null!=b&&d.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!=R&&F.setAttribute("filter",
-R);a.cumulativeZoomFactor=1;R=L=I=K=y=null}),null!=c?c:a.isFastZoomEnabled()?d.wheelZoomDelay:d.lazyZoomDelay)},0)},O=Date.now();a.lazyZoom=function(b,c,e){(c=c||!a.scrollbars)&&(I=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));if(mxClient.IS_IOS||!(15>Date.now()-O)){O=Date.now();b?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,
+d)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var C=a.view.getBackgroundPane(),G=a.view.getDrawPane();a.cumulativeZoomFactor=1;var y=null,I=null,L=null,M=null,R=null,K=function(c){null!=y&&window.clearTimeout(y);window.setTimeout(function(){if(!a.isMouseDown||M)y=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="",C.style.transformOrigin="",mxClient.IS_SF?(G.style.transform="scale(1)",C.style.transform="scale(1)",window.setTimeout(function(){G.style.transform="";C.style.transform=""},0)):(G.style.transform="",C.style.transform=""),a.view.getDecoratorPane().style.opacity="",a.view.getOverlayPane().style.opacity="");var c=new mxPoint(a.container.scrollLeft,a.container.scrollTop),
+e=mxUtils.getOffset(a.container),f=a.view.scale,g=0,k=0;null!=I&&(g=a.container.offsetWidth/2-I.x+e.x,k=a.container.offsetHeight/2-I.y+e.y);a.zoom(a.cumulativeZoomFactor);a.view.scale!=f&&(null!=L&&(g+=c.x-L.x,k+=c.y-L.y),null!=b&&d.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!=R&&G.setAttribute("filter",
+R);a.cumulativeZoomFactor=1;R=M=I=L=y=null}),null!=c?c:a.isFastZoomEnabled()?d.wheelZoomDelay:d.lazyZoomDelay)},0)},P=Date.now();a.lazyZoom=function(b,c,e){(c=c||!a.scrollbars)&&(I=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));if(mxClient.IS_IOS||!(15>Date.now()-P)){P=Date.now();b?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,
this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,160))/this.view.scale;if(a.isFastZoomEnabled()){null==
-R&&""!=F.getAttribute("filter")&&(R=F.getAttribute("filter"),F.removeAttribute("filter"));K=new mxPoint(a.container.scrollLeft,a.container.scrollTop);b=c?a.container.scrollLeft+a.container.clientWidth/2:I.x+a.container.scrollLeft-a.container.offsetLeft;var f=c?a.container.scrollTop+a.container.clientHeight/2:I.y+a.container.scrollTop-a.container.offsetTop;F.style.transformOrigin=b+"px "+f+"px";F.style.transform="scale("+this.cumulativeZoomFactor+")";C.style.transformOrigin=b+"px "+f+"px";C.style.transform=
+R&&""!=G.getAttribute("filter")&&(R=G.getAttribute("filter"),G.removeAttribute("filter"));L=new mxPoint(a.container.scrollLeft,a.container.scrollTop);b=c?a.container.scrollLeft+a.container.clientWidth/2:I.x+a.container.scrollLeft-a.container.offsetLeft;var f=c?a.container.scrollTop+a.container.clientHeight/2:I.y+a.container.scrollTop-a.container.offsetTop;G.style.transformOrigin=b+"px "+f+"px";G.style.transform="scale("+this.cumulativeZoomFactor+")";C.style.transformOrigin=b+"px "+f+"px";C.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",(c?a.container.clientWidth/2+a.container.scrollLeft-b.offsetLeft+"px":I.x+a.container.scrollLeft-b.offsetLeft-a.container.offsetLeft+"px")+" "+(c?a.container.clientHeight/2+a.container.scrollTop-b.offsetTop+"px":I.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!=d.hoverIcons&&d.hoverIcons.reset()}J(e)}};mxEvent.addGestureListeners(a.container,function(a){null!=y&&window.clearTimeout(y)},null,function(b){1!=a.cumulativeZoomFactor&&J(0)});mxEvent.addListener(a.container,"scroll",function(b){null==y||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(),I=null!=e&&null!=f?new mxPoint(e,f):new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b)),L=d,a.lazyZoom(c),mxEvent.consume(b),!1;g=g.parentNode}}),
+"transform","scale("+this.cumulativeZoomFactor+")"));a.view.getDecoratorPane().style.opacity="0";a.view.getOverlayPane().style.opacity="0";null!=d.hoverIcons&&d.hoverIcons.reset()}K(e)}};mxEvent.addGestureListeners(a.container,function(a){null!=y&&window.clearTimeout(y)},null,function(b){1!=a.cumulativeZoomFactor&&K(0)});mxEvent.addListener(a.container,"scroll",function(b){null==y||a.isMouseDown||1==a.cumulativeZoomFactor||K(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(),I=null!=e&&null!=f?new mxPoint(e,f):new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b)),M=d,a.lazyZoom(c),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,d=60;null!=b&&(d=parseInt(b));this.editor.graph.maxFitScale=this.lightboxMaxFitScale;this.editor.graph.fit(d,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))};
@@ -2340,10 +2340,10 @@ c.bindAction(66,!0,"toBack",!0),c.bindAction(70,!0,"toFront",!0),c.bindAction(68
c.bindAction(85,!0,"underline"),c.bindAction(85,!0,"ungroup",!0),c.bindAction(190,!0,"superscript"),c.bindAction(188,!0,"subscript"),c.bindAction(13,!1,"keyPressEnter"),c.bindKey(113,function(){e.isEnabled()&&e.startEditingAtCell()});mxClient.IS_WIN?c.bindAction(89,!0,"redo"):c.bindAction(90,!0,"redo",!0);return c};
EditorUi.prototype.destroy=function(){null!=this.editor&&(this.editor.destroy(),this.editor=null);null!=this.menubar&&(this.menubar.destroy(),this.menubar=null);null!=this.toolbar&&(this.toolbar.destroy(),this.toolbar=null);null!=this.sidebar&&(this.sidebar.destroy(),this.sidebar=null);null!=this.keyHandler&&(this.keyHandler.destroy(),this.keyHandler=null);null!=this.keydownHandler&&(mxEvent.removeListener(document,"keydown",this.keydownHandler),this.keydownHandler=null);null!=this.keyupHandler&&
(mxEvent.removeListener(document,"keyup",this.keyupHandler),this.keyupHandler=null);null!=this.resizeHandler&&(mxEvent.removeListener(window,"resize",this.resizeHandler),this.resizeHandler=null);null!=this.gestureHandler&&(mxEvent.removeGestureListeners(document,this.gestureHandler),this.gestureHandler=null);null!=this.orientationChangeHandler&&(mxEvent.removeListener(window,"orientationchange",this.orientationChangeHandler),this.orientationChangeHandler=null);null!=this.scrollHandler&&(mxEvent.removeListener(window,
-"scroll",this.scrollHandler),this.scrollHandler=null);if(null!=this.destroyFunctions){for(var a=0;a<this.destroyFunctions.length;a++)this.destroyFunctions[a]();this.destroyFunctions=null}for(var b=[this.menubarContainer,this.toolbarContainer,this.sidebarContainer,this.formatContainer,this.diagramContainer,this.footerContainer,this.chromelessToolbar,this.hsplit,this.sidebarFooterContainer,this.layersDialog],a=0;a<b.length;a++)null!=b[a]&&null!=b[a].parentNode&&b[a].parentNode.removeChild(b[a])};function Sidebar(a,b){this.editorUi=a;this.container=b;this.palettes={};this.taglist={};this.lastCreated=0;this.showTooltips=!0;this.graph=a.createTemporaryGraph(this.editorUi.editor.graph.getStylesheet());this.graph.defaultForegroundColor=a.editor.graph.defaultForegroundColor;this.graph.cellRenderer.minSvgStrokeWidth=this.minThumbStrokeWidth;this.graph.cellRenderer.antiAlias=this.thumbAntiAlias;this.graph.container.style.visibility="hidden";this.graph.foldingEnabled=!1;document.body.appendChild(this.graph.container);
-this.pointerUpHandler=mxUtils.bind(this,function(){if(null==this.tooltipCloseImage||"none"==this.tooltipCloseImage.style.display)this.showTooltips=!0,this.hideTooltip()});mxEvent.addListener(document,mxClient.IS_POINTER?"pointerup":"mouseup",this.pointerUpHandler);this.pointerDownHandler=mxUtils.bind(this,function(){if(null==this.tooltipCloseImage||"none"==this.tooltipCloseImage.style.display)this.showTooltips=!1,this.hideTooltip()});mxEvent.addListener(document,mxClient.IS_POINTER?"pointerdown":
-"mousedown",this.pointerDownHandler);this.pointerMoveHandler=mxUtils.bind(this,function(a){if(300<Date.now()-this.lastCreated&&(null==this.tooltipCloseImage||"none"==this.tooltipCloseImage.style.display)){for(a=mxEvent.getSource(a);null!=a;){if(a==this.currentElt)return;a=a.parentNode}this.hideTooltip()}});mxEvent.addListener(document,mxClient.IS_POINTER?"pointermove":"mousemove",this.pointerMoveHandler);this.pointerOutHandler=mxUtils.bind(this,function(a){null==a.toElement&&null==a.relatedTarget&&
-this.hideTooltip()});mxEvent.addListener(document,mxClient.IS_POINTER?"pointerout":"mouseout",this.pointerOutHandler);mxEvent.addListener(b,"scroll",mxUtils.bind(this,function(){this.showTooltips=!0;this.hideTooltip()}));this.init()}
+"scroll",this.scrollHandler),this.scrollHandler=null);if(null!=this.destroyFunctions){for(var a=0;a<this.destroyFunctions.length;a++)this.destroyFunctions[a]();this.destroyFunctions=null}for(var b=[this.menubarContainer,this.toolbarContainer,this.sidebarContainer,this.formatContainer,this.diagramContainer,this.footerContainer,this.chromelessToolbar,this.hsplit,this.sidebarFooterContainer,this.layersDialog],a=0;a<b.length;a++)null!=b[a]&&null!=b[a].parentNode&&b[a].parentNode.removeChild(b[a])};function Sidebar(a,b){this.editorUi=a;this.container=b;this.palettes={};this.taglist={};this.lastCreated=0;this.showTooltips=!0;this.graph=a.createTemporaryGraph(this.editorUi.editor.graph.getStylesheet());this.graph.cellRenderer.minSvgStrokeWidth=this.minThumbStrokeWidth;this.graph.cellRenderer.antiAlias=this.thumbAntiAlias;this.graph.container.style.visibility="hidden";this.graph.foldingEnabled=!1;document.body.appendChild(this.graph.container);this.pointerUpHandler=mxUtils.bind(this,function(){if(null==
+this.tooltipCloseImage||"none"==this.tooltipCloseImage.style.display)this.showTooltips=!0,this.hideTooltip()});mxEvent.addListener(document,mxClient.IS_POINTER?"pointerup":"mouseup",this.pointerUpHandler);this.pointerDownHandler=mxUtils.bind(this,function(){if(null==this.tooltipCloseImage||"none"==this.tooltipCloseImage.style.display)this.showTooltips=!1,this.hideTooltip()});mxEvent.addListener(document,mxClient.IS_POINTER?"pointerdown":"mousedown",this.pointerDownHandler);this.pointerMoveHandler=
+mxUtils.bind(this,function(a){if(300<Date.now()-this.lastCreated&&(null==this.tooltipCloseImage||"none"==this.tooltipCloseImage.style.display)){for(a=mxEvent.getSource(a);null!=a;){if(a==this.currentElt)return;a=a.parentNode}this.hideTooltip()}});mxEvent.addListener(document,mxClient.IS_POINTER?"pointermove":"mousemove",this.pointerMoveHandler);this.pointerOutHandler=mxUtils.bind(this,function(a){null==a.toElement&&null==a.relatedTarget&&this.hideTooltip()});mxEvent.addListener(document,mxClient.IS_POINTER?
+"pointerout":"mouseout",this.pointerOutHandler);mxEvent.addListener(b,"scroll",mxUtils.bind(this,function(){this.showTooltips=!0;this.hideTooltip()}));this.init()}
Sidebar.prototype.init=function(){var a=STENCIL_PATH;this.addSearchPalette(!0);this.addGeneralPalette(!0);this.addMiscPalette(!1);this.addAdvancedPalette(!1);this.addBasicPalette(a);this.setCurrentSearchEntryLibrary("arrows");this.addStencilPalette("arrows",mxResources.get("arrows"),a+"/arrows.xml",";whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=2");this.setCurrentSearchEntryLibrary();this.addUmlPalette(!1);this.addBpmnPalette(a,!1);this.setCurrentSearchEntryLibrary("flowchart");
this.addStencilPalette("flowchart","Flowchart",a+"/flowchart.xml",";whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=2");this.setCurrentSearchEntryLibrary();this.setCurrentSearchEntryLibrary("clipart");this.addImagePalette("clipart",mxResources.get("clipart"),a+"/clipart/","_128x128.png","Earth_globe Empty_Folder Full_Folder Gear Lock Software Virus Email Database Router_Icon iPad iMac Laptop MacBook Monitor_Tower Printer Server_Tower Workstation Firewall_02 Wireless_Router_N Credit_Card Piggy_Bank Graph Safe Shopping_Cart Suit1 Suit2 Suit3 Pilot1 Worker1 Soldier1 Doctor1 Tech1 Security1 Telesales1".split(" "),
null,{Wireless_Router_N:"wireless router switch wap wifi access point wlan",Router_Icon:"router switch"});this.setCurrentSearchEntryLibrary()};
@@ -2359,12 +2359,12 @@ Sidebar.prototype.getTooltipOffset=function(a,b){var d=b.height+2*this.tooltipBo
Sidebar.prototype.createTooltip=function(a,b,d,e,c,f,k,h,g,l,m){m=null!=m?m:!0;this.tooltipMouseDown=g;null==this.tooltip&&(this.tooltip=document.createElement("div"),this.tooltip.className="geSidebarTooltip",this.tooltip.style.userSelect="none",this.tooltip.style.zIndex=mxPopupMenu.prototype.zIndex-1,document.body.appendChild(this.tooltip),mxEvent.addMouseWheelListener(mxUtils.bind(this,function(a){this.hideTooltip()}),this.tooltip),this.graph2=new Graph(this.tooltip,null,null,this.editorUi.editor.graph.getStylesheet()),
this.graph2.resetViewOnRootChange=!1,this.graph2.foldingEnabled=!1,this.graph2.gridEnabled=!1,this.graph2.autoScroll=!1,this.graph2.setTooltips(!1),this.graph2.setConnectable(!1),this.graph2.setPanning(!1),this.graph2.setEnabled(!1),this.graph2.openLink=mxUtils.bind(this,function(){this.hideTooltip()}),mxEvent.addGestureListeners(this.tooltip,mxUtils.bind(this,function(a){null!=this.tooltipMouseDown&&this.tooltipMouseDown(a);window.setTimeout(mxUtils.bind(this,function(){null!=this.tooltipCloseImage&&
"none"!=this.tooltipCloseImage.style.display||this.hideTooltip()}),0)}),null,mxUtils.bind(this,function(a){this.hideTooltip()})),mxClient.IS_SVG||(this.graph2.view.canvas.style.position="relative"),g=document.createElement("img"),g.setAttribute("src",Dialog.prototype.closeImage),g.setAttribute("title",mxResources.get("close")),g.style.position="absolute",g.style.cursor="default",g.style.padding="8px",g.style.right="2px",g.style.top="2px",this.tooltip.appendChild(g),this.tooltipCloseImage=g,mxEvent.addListener(g,
-"click",mxUtils.bind(this,function(a){this.hideTooltip();mxEvent.consume(a)})));this.tooltipCloseImage.style.display=l?"":"none";this.graph2.model.clear();this.graph2.view.setTranslate(this.tooltipBorder,this.tooltipBorder);this.graph2.defaultForegroundColor=this.editorUi.editor.graph.defaultForegroundColor;this.graph2.view.scale=!h&&(d>this.maxTooltipWidth||e>this.maxTooltipHeight)?Math.round(100*Math.min(this.maxTooltipWidth/d,this.maxTooltipHeight/e))/100:1;this.tooltip.style.display="block";this.graph2.labelsVisible=
-null==f||f;f=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;b=this.graph2.cloneCells(b);this.editorUi.insertHandler(b,null,this.graph2.model,m?null:this.editorUi.editor.graph.defaultVertexStyle,m?null:this.editorUi.editor.graph.defaultEdgeStyle,m,!0);this.graph2.addCells(b);mxClient.NO_FO=f;m=this.graph2.getGraphBounds();h&&0<d&&0<e&&(m.width>d||m.height>e)?(d=Math.round(100*Math.min(d/m.width,e/m.height))/100,mxClient.NO_FO?(this.graph2.view.setScale(Math.round(100*Math.min(this.maxTooltipWidth/
-m.width,this.maxTooltipHeight/m.height))/100),m=this.graph2.getGraphBounds()):(this.graph2.view.getDrawPane().ownerSVGElement.style.transform="scale("+d+")",this.graph2.view.getDrawPane().ownerSVGElement.style.transformOrigin="0 0",m.width*=d,m.height*=d)):mxClient.NO_FO||(this.graph2.view.getDrawPane().ownerSVGElement.style.transform="");d=m.width+2*this.tooltipBorder+4;e=m.height+2*this.tooltipBorder;this.tooltip.style.overflow="visible";this.tooltip.style.width=d+"px";h=d;this.tooltipTitles&&null!=
-c&&0<c.length?(null==this.tooltipTitle?(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.style.borderTop="1px solid gray",this.tooltipTitle.style.textAlign="center",this.tooltipTitle.style.width="100%",this.tooltipTitle.style.overflow="hidden",this.tooltipTitle.style.position="absolute",this.tooltipTitle.style.paddingTop="6px",this.tooltipTitle.style.bottom="6px",this.tooltip.appendChild(this.tooltipTitle)):this.tooltipTitle.innerHTML="",this.tooltipTitle.style.display="",mxUtils.write(this.tooltipTitle,
-c),h=Math.min(this.maxTooltipWidth,Math.max(d,this.tooltipTitle.scrollWidth+4)),c=this.tooltipTitle.offsetHeight+10,e+=c,mxClient.IS_SVG?this.tooltipTitle.style.marginTop=2-c+"px":(e-=6,this.tooltipTitle.style.top=e-c+"px")):null!=this.tooltipTitle&&null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");h>d&&(this.tooltip.style.width=h+"px");this.tooltip.style.height=e+"px";c=-Math.round(m.x-this.tooltipBorder)+(h>d?(h-d)/2:0);d=-Math.round(m.y-this.tooltipBorder);k=null!=k?
-k:this.getTooltipOffset(a,m);a=k.x;k=k.y;mxClient.IS_SVG?0!=c||0!=d?this.graph2.view.canvas.setAttribute("transform","translate("+c+","+d+")"):this.graph2.view.canvas.removeAttribute("transform"):(this.graph2.view.drawPane.style.left=c+"px",this.graph2.view.drawPane.style.top=d+"px");this.tooltip.style.position="absolute";this.tooltip.style.left=a+"px";this.tooltip.style.top=k+"px";mxUtils.fit(this.tooltip);this.lastCreated=Date.now()};
+"click",mxUtils.bind(this,function(a){this.hideTooltip();mxEvent.consume(a)})));this.tooltipCloseImage.style.display=l?"":"none";this.graph2.model.clear();this.graph2.view.setTranslate(this.tooltipBorder,this.tooltipBorder);this.graph2.view.scale=!h&&(d>this.maxTooltipWidth||e>this.maxTooltipHeight)?Math.round(100*Math.min(this.maxTooltipWidth/d,this.maxTooltipHeight/e))/100:1;this.tooltip.style.display="block";this.graph2.labelsVisible=null==f||f;f=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;
+b=this.graph2.cloneCells(b);this.editorUi.insertHandler(b,null,this.graph2.model,m?null:this.editorUi.editor.graph.defaultVertexStyle,m?null:this.editorUi.editor.graph.defaultEdgeStyle,m,!0);this.graph2.addCells(b);mxClient.NO_FO=f;m=this.graph2.getGraphBounds();h&&0<d&&0<e&&(m.width>d||m.height>e)?(d=Math.round(100*Math.min(d/m.width,e/m.height))/100,mxClient.NO_FO?(this.graph2.view.setScale(Math.round(100*Math.min(this.maxTooltipWidth/m.width,this.maxTooltipHeight/m.height))/100),m=this.graph2.getGraphBounds()):
+(this.graph2.view.getDrawPane().ownerSVGElement.style.transform="scale("+d+")",this.graph2.view.getDrawPane().ownerSVGElement.style.transformOrigin="0 0",m.width*=d,m.height*=d)):mxClient.NO_FO||(this.graph2.view.getDrawPane().ownerSVGElement.style.transform="");d=m.width+2*this.tooltipBorder+4;e=m.height+2*this.tooltipBorder;this.tooltip.style.overflow="visible";this.tooltip.style.width=d+"px";h=d;this.tooltipTitles&&null!=c&&0<c.length?(null==this.tooltipTitle?(this.tooltipTitle=document.createElement("div"),
+this.tooltipTitle.style.borderTop="1px solid gray",this.tooltipTitle.style.textAlign="center",this.tooltipTitle.style.width="100%",this.tooltipTitle.style.overflow="hidden",this.tooltipTitle.style.position="absolute",this.tooltipTitle.style.paddingTop="6px",this.tooltipTitle.style.bottom="6px",this.tooltip.appendChild(this.tooltipTitle)):this.tooltipTitle.innerHTML="",this.tooltipTitle.style.display="",mxUtils.write(this.tooltipTitle,c),h=Math.min(this.maxTooltipWidth,Math.max(d,this.tooltipTitle.scrollWidth+
+4)),c=this.tooltipTitle.offsetHeight+10,e+=c,mxClient.IS_SVG?this.tooltipTitle.style.marginTop=2-c+"px":(e-=6,this.tooltipTitle.style.top=e-c+"px")):null!=this.tooltipTitle&&null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");h>d&&(this.tooltip.style.width=h+"px");this.tooltip.style.height=e+"px";c=-Math.round(m.x-this.tooltipBorder)+(h>d?(h-d)/2:0);d=-Math.round(m.y-this.tooltipBorder);k=null!=k?k:this.getTooltipOffset(a,m);a=k.x;k=k.y;mxClient.IS_SVG?0!=c||0!=d?this.graph2.view.canvas.setAttribute("transform",
+"translate("+c+","+d+")"):this.graph2.view.canvas.removeAttribute("transform"):(this.graph2.view.drawPane.style.left=c+"px",this.graph2.view.drawPane.style.top=d+"px");this.tooltip.style.position="absolute";this.tooltip.style.left=a+"px";this.tooltip.style.top=k+"px";mxUtils.fit(this.tooltip);this.lastCreated=Date.now()};
Sidebar.prototype.showTooltip=function(a,b,d,e,c,f){if(this.enableTooltips&&this.showTooltips&&this.currentElt!=a){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);var k=mxUtils.bind(this,function(){this.createTooltip(a,b,d,e,c,f)});null!=this.tooltip&&"none"!=this.tooltip.style.display?k():this.thread=window.setTimeout(k,this.tooltipDelay);this.currentElt=a}};
Sidebar.prototype.hideTooltip=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);null!=this.tooltip&&(this.tooltip.style.display="none",this.currentElt=null);this.tooltipMouseDown=null};Sidebar.prototype.addDataEntry=function(a,b,d,e,c){return this.addEntry(a,mxUtils.bind(this,function(){return this.createVertexTemplateFromData(c,b,d,e)}))};
Sidebar.prototype.addEntries=function(a){for(var b=0;b<a.length;b++)mxUtils.bind(this,function(a){var b=a.data,c=null!=a.title?a.title:"";null!=a.tags&&(c+=" "+a.tags);null!=b&&0<c.length?this.addEntry(c,mxUtils.bind(this,function(){b=this.editorUi.convertDataUri(b);var c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==a.aspect&&(c+="aspect=fixed;");return this.createVertexTemplate(c+"image="+b,a.w,a.h,"",a.title||"",!1,!1,!0)})):null!=a.xml&&0<c.length&&this.addEntry(c,
@@ -2378,7 +2378,7 @@ e.style.cursor="default";var c=document.createElement("input");c.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);d.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);d.appendChild(h);var l="",m=!1,n=!1,p=0,q={},u=12,v=mxUtils.bind(this,function(){m=!1;this.currentSearch=null;for(var a=d.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",l=c.value="",v());c.focus()});k=mxUtils.bind(this,
function(){u=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10)));this.hideTooltip();if(""!=c.value){if(null!=h.parentNode&&(l!=c.value&&(v(),l=c.value,q={},n=!1,p=0),!m&&!n)){g.setAttribute("disabled","true");g.style.display="";g.style.cursor="wait";g.innerHTML=mxResources.get("loading")+"...";m=!0;var a={};this.currentSearch=a;this.searchEntries(l,u,p,mxUtils.bind(this,function(b,c,e,f){if(this.currentSearch==a){b=null!=b?b:[];m=!1;p++;this.insertSearchHint(d,l,u,p,b,c,e,f);
-0==b.length&&1==p&&(l="");null!=h.parentNode&&h.parentNode.removeChild(h);for(c=0;c<b.length;c++)mxUtils.bind(this,function(a){try{var b=a();null==q[b.innerHTML]?(q[b.innerHTML]=null!=a.parentLibraries?a.parentLibraries.slice():[],d.appendChild(b)):null!=a.parentLibraries&&(q[b.innerHTML]=q[b.innerHTML].concat(a.parentLibraries));mxEvent.addGestureListeners(b,null,null,mxUtils.bind(this,function(a){var c=q[b.innerHTML];mxEvent.isPopupTrigger(a)&&this.showPopupMenuForEntry(b,c,a)}));mxEvent.disableContextMenu(b)}catch(F){}})(b[c]);
+0==b.length&&1==p&&(l="");null!=h.parentNode&&h.parentNode.removeChild(h);for(c=0;c<b.length;c++)mxUtils.bind(this,function(a){try{var b=a();null==q[b.innerHTML]?(q[b.innerHTML]=null!=a.parentLibraries?a.parentLibraries.slice():[],d.appendChild(b)):null!=a.parentLibraries&&(q[b.innerHTML]=q[b.innerHTML].concat(a.parentLibraries));mxEvent.addGestureListeners(b,null,null,mxUtils.bind(this,function(a){var c=q[b.innerHTML];mxEvent.isPopupTrigger(a)&&this.showPopupMenuForEntry(b,c,a)}));mxEvent.disableContextMenu(b)}catch(G){}})(b[c]);
e?(g.removeAttribute("disabled"),g.innerHTML=mxResources.get("moreResults")):(g.innerHTML=mxResources.get("reset"),g.style.display="none",n=!0);g.style.cursor="";d.appendChild(h)}}),mxUtils.bind(this,function(){g.style.cursor=""}))}}else v(),l=c.value="",q={},g.style.display="none",n=!1,c.focus()});this.searchShapes=function(a){c.value=a;k()};mxEvent.addListener(c,"keydown",mxUtils.bind(this,function(a){13==a.keyCode&&(k(),mxEvent.consume(a))}));mxEvent.addListener(c,"keyup",mxUtils.bind(this,function(a){""==
c.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")));""==c.value?(n=!0,g.style.display="none"):c.value!=l?(g.style.display="none",n=!1):m||(g.style.display=n?"none":"")}));mxEvent.addListener(c,"mousedown",function(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=!0});mxEvent.addListener(c,"selectstart",function(a){a.stopPropagation&&
a.stopPropagation();a.cancelBubble=!0});a=document.createElement("div");a.appendChild(d);this.container.appendChild(a);this.palettes.search=[b,a]};
@@ -2515,28 +2515,28 @@ e.width,e.y),!1)):d==mxConstants.DIRECTION_SOUTH?(e.height=f,e.y=h.y+h.height,e.
e.width/2+f:d==mxConstants.DIRECTION_SOUTH?e.y=e.y+h.height/2+e.height/2+f:d==mxConstants.DIRECTION_WEST&&(e.x=e.x-h.width/2-e.width/2-f),c.model.isEdge(b)&&null!=e.getTerminalPoint(!0)&&null!=b.getTerminal(!1)&&(h=c.getCellGeometry(b.getTerminal(!1)),null!=h&&(d==mxConstants.DIRECTION_NORTH?(e.x-=h.getCenterX(),e.y-=h.getCenterY()+h.height/2):d==mxConstants.DIRECTION_EAST?(e.x-=h.getCenterX()-h.width/2,e.y-=h.getCenterY()):d==mxConstants.DIRECTION_SOUTH?(e.x-=h.getCenterX(),e.y-=h.getCenterY()-h.height/
2):d==mxConstants.DIRECTION_WEST&&(e.x-=h.getCenterX()+h.width/2,e.y-=h.getCenterY()))))));return e};Sidebar.prototype.isDropStyleEnabled=function(a,b){var d=!0;if(null!=b&&1==a.length){var e=this.graph.getCellStyle(a[b]);null!=e&&(d=mxUtils.getValue(e,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(e,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE)}return d};
Sidebar.prototype.isDropStyleTargetIgnored=function(a){return this.graph.isSwimlane(a.cell)||this.graph.isTableCell(a.cell)||this.graph.isTableRow(a.cell)||this.graph.isTable(a.cell)};
-Sidebar.prototype.createDragSource=function(a,b,d,e,c){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==y?30:20));return c}for(var h=this.editorUi,g=h.editor.graph,l=null,m=
-null,n=this,p=0;p<e.length&&(null==m&&g.model.isVertex(e[p])?m=p:null==l&&g.model.isEdge(e[p])&&null==g.model.getTerminal(e[p],!0)&&(l=p),null==m||null==l);p++);var q=this.isDropStyleEnabled(e,m),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!=x&&J==y){var k=a.isCellSelected(x.cell)?a.getSelectionCells():[x.cell],k=this.updateShapes(a.model.isEdge(x.cell)?e[0]:e[m],k);a.setSelectionCells(k)}else null!=
-e&&null!=J&&null!=t&&J!=y?(k=a.model.isEdge(t.cell)||null==l?m:l,a.setSelectionCells(this.dropAndConnect(t.cell,e,R,k,c))):b.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(a.view.getState(a.getSelectionCell()))}),d,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,w=null,x=null,z=!1,E=f(this.triangleUp,mxResources.get("connect")),H=f(this.triangleRight,mxResources.get("connect")),C=f(this.triangleDown,mxResources.get("connect")),F=f(this.triangleLeft,mxResources.get("connect")),y=f(this.refreshTarget,mxResources.get("replace")),I=null,K=f(this.roundDrop),L=f(this.roundDrop),R=mxConstants.DIRECTION_NORTH,J=null,O=u.createPreviewElement;u.createPreviewElement=function(a){var b=O.apply(this,arguments);mxClient.IS_SVG&&(b.style.pointerEvents=
-"none");this.previewElementWidth=b.style.width;this.previewElementHeight=b.style.height;return b};var aa=u.dragEnter;u.dragEnter=function(a,b){null!=h.hoverIcons&&h.hoverIcons.setDisplay("none");aa.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 d=
-a.view;if(null!=x&&J==y)this.previewElement.style.display=a.model.isEdge(x.cell)?"none":"",this.previewElement.style.left=x.x+"px",this.previewElement.style.top=x.y+"px",this.previewElement.style.width=x.width+"px",this.previewElement.style.height=x.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==l?m:l,g=n.getDropAndConnectGeometry(t.cell,e[f],R,e),k=a.model.isEdge(t.cell)?null:a.getCellGeometry(t.cell),
+Sidebar.prototype.createDragSource=function(a,b,d,e,c){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),K=d):mxUtils.setOpacity(d,d==y?30:20));return c}for(var h=this.editorUi,g=h.editor.graph,l=null,m=
+null,n=this,p=0;p<e.length&&(null==m&&g.model.isVertex(e[p])?m=p:null==l&&g.model.isEdge(e[p])&&null==g.model.getTerminal(e[p],!0)&&(l=p),null==m||null==l);p++);var q=this.isDropStyleEnabled(e,m),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!=x&&K==y){var k=a.isCellSelected(x.cell)?a.getSelectionCells():[x.cell],k=this.updateShapes(a.model.isEdge(x.cell)?e[0]:e[m],k);a.setSelectionCells(k)}else null!=
+e&&null!=K&&null!=t&&K!=y?(k=a.model.isEdge(t.cell)||null==l?m:l,a.setSelectionCells(this.dropAndConnect(t.cell,e,R,k,c))):b.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(a.view.getState(a.getSelectionCell()))}),d,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,w=null,x=null,z=!1,E=f(this.triangleUp,mxResources.get("connect")),H=f(this.triangleRight,mxResources.get("connect")),C=f(this.triangleDown,mxResources.get("connect")),G=f(this.triangleLeft,mxResources.get("connect")),y=f(this.refreshTarget,mxResources.get("replace")),I=null,L=f(this.roundDrop),M=f(this.roundDrop),R=mxConstants.DIRECTION_NORTH,K=null,P=u.createPreviewElement;u.createPreviewElement=function(a){var b=P.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 Z=u.dragExit;u.dragExit=function(a,b){null!=h.hoverIcons&&h.hoverIcons.setDisplay("");Z.apply(this,arguments)};u.dragOver=function(a,b){mxDragSource.prototype.dragOver.apply(this,arguments);null!=this.currentGuide&&null!=K&&this.currentGuide.hide();if(null!=this.previewElement){var d=
+a.view;if(null!=x&&K==y)this.previewElement.style.display=a.model.isEdge(x.cell)?"none":"",this.previewElement.style.left=x.x+"px",this.previewElement.style.top=x.y+"px",this.previewElement.style.width=x.width+"px",this.previewElement.style.height=x.height+"px";else if(null!=t&&null!=K){null!=u.currentHighlight&&null!=u.currentHighlight.state&&u.currentHighlight.hide();var f=a.model.isEdge(t.cell)||null==l?m:l,g=n.getDropAndConnectGeometry(t.cell,e[f],R,e),k=a.model.isEdge(t.cell)?null:a.getCellGeometry(t.cell),
h=a.getCellGeometry(e[f]),p=a.model.getParent(t.cell),q=d.translate.x*d.scale,v=d.translate.y*d.scale;null!=k&&!k.relative&&a.model.isVertex(p)&&p!=d.currentRoot&&(v=d.getState(p),q=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)*d.scale+q+"px";this.previewElement.style.top=(g.y-h)*d.scale+v+"px";1==e.length&&(this.previewElement.style.width=g.width*d.scale+"px",this.previewElement.style.height=g.height*d.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)-c.width*d.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-c.height*d.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};var N=(new Date).getTime(),S=0,Q=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;Q!=h?(N=(new Date).getTime(),S=0,Q=h,null!=this.updateThread&&window.clearTimeout(this.updateThread),
-null!=h&&(this.updateThread=window.setTimeout(function(){null==J&&(Q=h,u.getDropTarget(a,b,c,d))},this.dropTargetDelay+10))):S=(new Date).getTime()-N;if(q&&2500>S&&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,
+u.currentHighlight.state&&a.model.isEdge(u.currentHighlight.state.cell)?(this.previewElement.style.left=Math.round(parseInt(this.previewElement.style.left)-c.width*d.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-c.height*d.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,Q=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=K=null;Q!=h?(O=(new Date).getTime(),S=0,Q=h,null!=this.updateThread&&window.clearTimeout(this.updateThread),
+null!=h&&(this.updateThread=window.setTimeout(function(){null==K&&(Q=h,u.getDropTarget(a,b,c,d))},this.dropTargetDelay+10))):S=(new Date).getTime()-O;if(q&&2500>S&&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<S||a.model.isEdge(h.cell))&&S>this.dropTargetDelay&&!this.isDropStyleTargetIgnored(h)&&(a.model.isVertex(h.cell)&&null!=m||a.model.isEdge(h.cell)&&a.model.isEdge(e[0]))){if(a.isCellEditable(h.cell)){x=h;var l=a.model.isEdge(h.cell)?a.view.getPoint(h):new mxPoint(h.getCenterX(),h.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/
2,this.refreshTarget.width,this.refreshTarget.height);y.style.left=Math.floor(l.x)+"px";y.style.top=Math.floor(l.y)+"px";null==I&&(a.container.appendChild(y),I=y.parentNode);k(b,c,l,y)}}else null==x||!mxUtils.contains(x,b,c)||1500<S&&!mxEvent.isShiftDown(d)?(x=null,null!=I&&(y.parentNode.removeChild(y),I=null)):null!=x&&null!=I&&(l=a.model.isEdge(x.cell)?a.view.getPoint(x):new mxPoint(x.getCenterX(),x.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/2,this.refreshTarget.width,
-this.refreshTarget.height),k(b,c,l,y));if(z&&null!=t&&!mxEvent.isAltDown(d)&&null==J){g=mxRectangle.fromRectangle(t);if(a.model.isEdge(t.cell)){var n=t.absolutePoints;null!=K.parentNode&&(l=n[0],g.add(k(b,c,new mxRectangle(l.x-this.roundDrop.width/2,l.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 l=
+this.refreshTarget.height),k(b,c,l,y));if(z&&null!=t&&!mxEvent.isAltDown(d)&&null==K){g=mxRectangle.fromRectangle(t);if(a.model.isEdge(t.cell)){var n=t.absolutePoints;null!=L.parentNode&&(l=n[0],g.add(k(b,c,new mxRectangle(l.x-this.roundDrop.width/2,l.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),L)));null!=M.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),M)))}else l=
mxRectangle.fromRectangle(t),null!=t.shape&&null!=t.shape.boundingBox&&(l=mxRectangle.fromRectangle(t.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),n=this.graph.selectionCellsHandler.getHandler(t.cell),null!=n&&(l.x-=n.horizontalOffset/2,l.y-=n.verticalOffset/2,l.width+=n.horizontalOffset,l.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&&l.add(n.rotationShape.boundingBox)),g.add(k(b,c,new mxRectangle(t.getCenterX()-this.triangleUp.width/2,l.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),E)),g.add(k(b,c,new mxRectangle(l.x+l.width,t.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,this.triangleRight.height),H)),g.add(k(b,c,new mxRectangle(t.getCenterX()-this.triangleDown.width/2,l.y+l.height,this.triangleDown.width,this.triangleDown.height),C)),g.add(k(b,c,
-new mxRectangle(l.x-this.triangleLeft.width,t.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),F));null!=g&&g.grow(10)}R=mxConstants.DIRECTION_NORTH;J==H?R=mxConstants.DIRECTION_EAST:J==C||J==L?R=mxConstants.DIRECTION_SOUTH:J==F&&(R=mxConstants.DIRECTION_WEST);null!=x&&J==y&&(h=x);l=(null==m||a.isCellConnectable(e[m]))&&(a.model.isEdge(f)&&null!=m||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&&l))if(z=!1,t=5E3>S&&S>this.dropTargetDelay||a.model.isEdge(f)?h:null,null!=t&&l){g=[K,L,E,H,C,F];for(l=0;l<g.length;l++)null!=g[l].parentNode&&g[l].parentNode.removeChild(g[l]);a.model.isEdge(f)?(n=h.absolutePoints,null!=n&&(l=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(l.x-this.roundDrop.width/2)+"px",K.style.top=Math.floor(l.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))):(l=mxRectangle.fromRectangle(h),null!=h.shape&&null!=h.shape.boundingBox&&(l=mxRectangle.fromRectangle(h.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),n=this.graph.selectionCellsHandler.getHandler(h.cell),null!=n&&(l.x-=n.horizontalOffset/2,l.y-=n.verticalOffset/2,l.width+=n.horizontalOffset,l.height+=n.verticalOffset,
+new mxRectangle(l.x-this.triangleLeft.width,t.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),G));null!=g&&g.grow(10)}R=mxConstants.DIRECTION_NORTH;K==H?R=mxConstants.DIRECTION_EAST:K==C||K==M?R=mxConstants.DIRECTION_SOUTH:K==G&&(R=mxConstants.DIRECTION_WEST);null!=x&&K==y&&(h=x);l=(null==m||a.isCellConnectable(e[m]))&&(a.model.isEdge(f)&&null!=m||a.model.isVertex(f)&&a.isCellConnectable(f));if(null!=t&&5E3<=S||t!=h&&(null==g||!mxUtils.contains(g,b,c)||500<
+S&&null==K&&l))if(z=!1,t=5E3>S&&S>this.dropTargetDelay||a.model.isEdge(f)?h:null,null!=t&&l){g=[L,M,E,H,C,G];for(l=0;l<g.length;l++)null!=g[l].parentNode&&g[l].parentNode.removeChild(g[l]);a.model.isEdge(f)?(n=h.absolutePoints,null!=n&&(l=n[0],n=n[n.length-1],g=a.tolerance,new mxRectangle(b-g,c-g,2*g,2*g),L.style.left=Math.floor(l.x-this.roundDrop.width/2)+"px",L.style.top=Math.floor(l.y-this.roundDrop.height/2)+"px",M.style.left=Math.floor(n.x-this.roundDrop.width/2)+"px",M.style.top=Math.floor(n.y-
+this.roundDrop.height/2)+"px",null==a.model.getTerminal(f,!0)&&a.container.appendChild(L),null==a.model.getTerminal(f,!1)&&a.container.appendChild(M))):(l=mxRectangle.fromRectangle(h),null!=h.shape&&null!=h.shape.boundingBox&&(l=mxRectangle.fromRectangle(h.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),n=this.graph.selectionCellsHandler.getHandler(h.cell),null!=n&&(l.x-=n.horizontalOffset/2,l.y-=n.verticalOffset/2,l.width+=n.horizontalOffset,l.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&&l.add(n.rotationShape.boundingBox)),E.style.left=Math.floor(h.getCenterX()-this.triangleUp.width/2)+"px",E.style.top=Math.floor(l.y-this.triangleUp.height)+"px",H.style.left=Math.floor(l.x+l.width)+"px",H.style.top=Math.floor(h.getCenterY()-this.triangleRight.height/2)+"px",C.style.left=E.style.left,C.style.top=Math.floor(l.y+
-l.height)+"px",F.style.left=Math.floor(l.x-this.triangleLeft.width)+"px",F.style.top=H.style.top,"eastwest"!=h.style.portConstraint&&(a.container.appendChild(E),a.container.appendChild(C)),a.container.appendChild(H),a.container.appendChild(F));null!=h&&(w=a.selectionCellsHandler.getHandler(h.cell),null!=w&&null!=w.setHandlesVisible&&w.setHandlesVisible(!1));z=!0}else for(g=[K,L,E,H,C,F],l=0;l<g.length;l++)null!=g[l].parentNode&&g[l].parentNode.removeChild(g[l]);z||null==w||w.setHandlesVisible(!0);
-f=mxEvent.isAltDown(d)&&!mxEvent.isShiftDown(d)||null!=x&&J==y?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,y,E,H,C,F],b=0;b<a.length;b++)null!=a[b].parentNode&&a[b].parentNode.removeChild(a[b]);null!=t&&null!=w&&w.reset();J=I=x=t=w=null};return u};
+l.height)+"px",G.style.left=Math.floor(l.x-this.triangleLeft.width)+"px",G.style.top=H.style.top,"eastwest"!=h.style.portConstraint&&(a.container.appendChild(E),a.container.appendChild(C)),a.container.appendChild(H),a.container.appendChild(G));null!=h&&(w=a.selectionCellsHandler.getHandler(h.cell),null!=w&&null!=w.setHandlesVisible&&w.setHandlesVisible(!1));z=!0}else for(g=[L,M,E,H,C,G],l=0;l<g.length;l++)null!=g[l].parentNode&&g[l].parentNode.removeChild(g[l]);z||null==w||w.setHandlesVisible(!0);
+f=mxEvent.isAltDown(d)&&!mxEvent.isShiftDown(d)||null!=x&&K==y?null:mxDragSource.prototype.getDropTarget.apply(this,arguments);g=a.getModel();if(null!=f&&(null!=K||!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=[L,M,y,E,H,C,G],b=0;b<a.length;b++)null!=a[b].parentNode&&a[b].parentNode.removeChild(a[b]);null!=t&&null!=w&&w.reset();K=I=x=t=w=null};return u};
Sidebar.prototype.itemClicked=function(a,b,d,e){e=this.editorUi.editor.graph;e.container.focus();if(mxEvent.isAltDown(d)&&1==e.getSelectionCount()&&e.model.isVertex(e.getSelectionCell())){b=null;for(var c=0;c<a.length&&null==b;c++)e.model.isVertex(a[c])&&(b=c);null!=b&&(e.setSelectionCells(this.dropAndConnect(e.getSelectionCell(),a,mxEvent.isMetaDown(d)||mxEvent.isControlDown(d)?mxEvent.isShiftDown(d)?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH:mxEvent.isShiftDown(d)?mxConstants.DIRECTION_EAST:
mxConstants.DIRECTION_SOUTH,b,d)),e.scrollCellToVisible(e.getSelectionCell()))}else mxEvent.isShiftDown(d)&&!e.isSelectionEmpty()?(d=e.getEditableCells(e.getSelectionCells()),this.updateShapes(a[0],d),e.scrollCellToVisible(d)):(a=mxEvent.isAltDown(d)?e.getFreeInsertPoint():e.getCenterInsertPoint(e.getBoundingBoxFromGeometry(a,!0)),b.drop(e,d,null,a.x,a.y,!0))};
Sidebar.prototype.addClickHandler=function(a,b,d){var e=b.mouseDown,c=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))>
@@ -2585,12 +2585,12 @@ q.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(a,b)
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"))&&x.apply(this,arguments)};var z=this.isToggleEvent;this.isToggleEvent=function(a){return z.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 H=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(H=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=H)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var C=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 C.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 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.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.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 y=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 y.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 I=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,b,c){return this.graph.isCellSelected(a)?!1:I.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)};
+"locked","0"))return!0;a=this.model.getParent(a)}return!1};var L=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")){var c=b.getProperty("event").getState();L=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!=L?this.addSelectionCells(L):1<this.getSelectionCount()&&this.isCellSelected(d)&&this.removeSelectionCell(d);L=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 M=this.updateMouseEvent;this.updateMouseEvent=function(a){a=M.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=null);return a}}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(" ");
@@ -2744,12 +2744,12 @@ b.x+Graph.minTableColumnWidth,k.setGeometry(a,d))}}finally{k.endUpdate()}}};
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 d=mxShape.prototype.paint;mxShape.prototype.paint=function(){d.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 c=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=
function(a){c.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],l=[],m=b[g+2];g<b.length-2&&mxUtils.ptSegDistSq(h.x,h.y,m.x,m.y,k.x,k.y)<1*this.scale*this.scale;)k=m,g++,m=b[g+2];for(var c=e(0,h.x,h.y)||c,H=0;H<this.validEdges.length;H++){var C=this.validEdges[H],F=C.absolutePoints;if(null!=F&&mxUtils.intersects(a,C)&&"1"!=C.style.noJump)for(C=0;C<F.length-1;C++){for(var y=F[C+1],I=F[C],m=F[C+2];C<F.length-2&&mxUtils.ptSegDistSq(I.x,I.y,m.x,m.y,y.x,y.y)<1*this.scale*this.scale;)y=
-m,C++,m=F[C+2];m=mxUtils.intersection(h.x,h.y,k.x,k.y,I.x,I.y,y.x,y.y);if(null!=m&&(Math.abs(m.x-h.x)>f||Math.abs(m.y-h.y)>f)&&(Math.abs(m.x-k.x)>f||Math.abs(m.y-k.y)>f)&&(Math.abs(m.x-I.x)>f||Math.abs(m.y-I.y)>f)&&(Math.abs(m.x-y.x)>f||Math.abs(m.y-y.y)>f)){y=m.x-h.x;I=m.y-h.y;m={distSq:y*y+I*I,x:m.x,y:m.y};for(y=0;y<l.length;y++)if(l[y].distSq>m.distSq){l.splice(y,0,m);m=null;break}null==m||0!=l.length&&l[l.length-1].x===m.x&&l[l.length-1].y===m.y||l.push(m)}}}for(C=0;C<l.length;C++)c=e(1,l[C].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],l=[],m=b[g+2];g<b.length-2&&mxUtils.ptSegDistSq(h.x,h.y,m.x,m.y,k.x,k.y)<1*this.scale*this.scale;)k=m,g++,m=b[g+2];for(var c=e(0,h.x,h.y)||c,H=0;H<this.validEdges.length;H++){var C=this.validEdges[H],G=C.absolutePoints;if(null!=G&&mxUtils.intersects(a,C)&&"1"!=C.style.noJump)for(C=0;C<G.length-1;C++){for(var y=G[C+1],I=G[C],m=G[C+2];C<G.length-2&&mxUtils.ptSegDistSq(I.x,I.y,m.x,m.y,y.x,y.y)<1*this.scale*this.scale;)y=
+m,C++,m=G[C+2];m=mxUtils.intersection(h.x,h.y,k.x,k.y,I.x,I.y,y.x,y.y);if(null!=m&&(Math.abs(m.x-h.x)>f||Math.abs(m.y-h.y)>f)&&(Math.abs(m.x-k.x)>f||Math.abs(m.y-k.y)>f)&&(Math.abs(m.x-I.x)>f||Math.abs(m.y-I.y)>f)&&(Math.abs(m.x-y.x)>f||Math.abs(m.y-y.y)>f)){y=m.x-h.x;I=m.y-h.y;m={distSq:y*y+I*I,x:m.x,y:m.y};for(y=0;y<l.length;y++)if(l[y].distSq>m.distSq){l.splice(y,0,m);m=null;break}null==m||0!=l.length&&l[l.length-1].x===m.x&&l[l.length-1].y===m.y||l.push(m)}}}for(C=0;C<l.length;C++)c=e(1,l[C].x,
l[C].y)||c}m=b[b.length-1];c=e(0,m.x,m.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,l=null,m=[],n=null;a.begin();for(var p=0;p<this.state.routedPoints.length;p++){var C=this.state.routedPoints[p],F=new mxPoint(C.x/this.scale,C.y/this.scale);0==p?F=b[0]:p==this.state.routedPoints.length-1&&(F=b[b.length-1]);var y=!1;if(null!=h&&1==C.type){var I=this.state.routedPoints[p+1],C=I.x/this.scale-F.x,I=I.y/this.scale-F.y,C=C*C+I*I;null==n&&(n=new mxPoint(F.x-h.x,F.y-h.y),
-l=Math.sqrt(n.x*n.x+n.y*n.y),0<l?(n.x=n.x*e/l,n.y=n.y*e/l):n=null);C>e*e&&0<l&&(C=h.x-F.x,I=h.y-F.y,C=C*C+I*I,C>e*e&&(y=new mxPoint(F.x-n.x,F.y-n.y),C=new mxPoint(F.x+n.x,F.y+n.y),m.push(y),this.addPoints(a,m,c,d,!1,null,k),m=0>Math.round(n.x)||0==Math.round(n.x)&&0>=Math.round(n.y)?1:-1,k=!1,"sharp"==g?(a.lineTo(y.x-n.y*m,y.y+n.x*m),a.lineTo(C.x-n.y*m,C.y+n.x*m),a.lineTo(C.x,C.y)):"line"==g?(a.moveTo(y.x+n.y*m,y.y-n.x*m),a.lineTo(y.x-n.y*m,y.y+n.x*m),a.moveTo(C.x-n.y*m,C.y+n.x*m),a.lineTo(C.x+n.y*
-m,C.y-n.x*m),a.moveTo(C.x,C.y)):"arc"==g?(m*=1.3,a.curveTo(y.x-n.y*m,y.y+n.x*m,C.x-n.y*m,C.y+n.x*m,C.x,C.y)):(a.moveTo(C.x,C.y),k=!0),m=[C],y=!0))}else n=null;y||(m.push(F),h=F)}this.addPoints(a,m,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,l=null,m=[],n=null;a.begin();for(var p=0;p<this.state.routedPoints.length;p++){var C=this.state.routedPoints[p],G=new mxPoint(C.x/this.scale,C.y/this.scale);0==p?G=b[0]:p==this.state.routedPoints.length-1&&(G=b[b.length-1]);var y=!1;if(null!=h&&1==C.type){var I=this.state.routedPoints[p+1],C=I.x/this.scale-G.x,I=I.y/this.scale-G.y,C=C*C+I*I;null==n&&(n=new mxPoint(G.x-h.x,G.y-h.y),
+l=Math.sqrt(n.x*n.x+n.y*n.y),0<l?(n.x=n.x*e/l,n.y=n.y*e/l):n=null);C>e*e&&0<l&&(C=h.x-G.x,I=h.y-G.y,C=C*C+I*I,C>e*e&&(y=new mxPoint(G.x-n.x,G.y-n.y),C=new mxPoint(G.x+n.x,G.y+n.y),m.push(y),this.addPoints(a,m,c,d,!1,null,k),m=0>Math.round(n.x)||0==Math.round(n.x)&&0>=Math.round(n.y)?1:-1,k=!1,"sharp"==g?(a.lineTo(y.x-n.y*m,y.y+n.x*m),a.lineTo(C.x-n.y*m,C.y+n.x*m),a.lineTo(C.x,C.y)):"line"==g?(a.moveTo(y.x+n.y*m,y.y-n.x*m),a.lineTo(y.x-n.y*m,y.y+n.x*m),a.moveTo(C.x-n.y*m,C.y+n.x*m),a.lineTo(C.x+n.y*
+m,C.y-n.x*m),a.moveTo(C.x,C.y)):"arc"==g?(m*=1.3,a.curveTo(y.x-n.y*m,y.y+n.x*m,C.x-n.y*m,C.y+n.x*m,C.x,C.y)):(a.moveTo(C.x,C.y),k=!0),m=[C],y=!0))}else n=null;y||(m.push(G),h=G)}this.addPoints(a,m,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 l=Math.cos(-g),m=Math.sin(-g),e=mxUtils.getRotatedPoint(e,l,m,k);l=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||
0);l+=parseFloat(a.style[d?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);e=this.getPerimeterPoint(b,e,0==g&&f,l);0!=g&&(l=Math.cos(g),m=Math.sin(g),e=mxUtils.getRotatedPoint(e,l,m,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 l=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var b=
@@ -2772,26 +2772,26 @@ function(a){};var k=mxConnectionHandler.prototype.createMarker;mxConnectionHandl
";");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++)l=this.model.getChildren(this.moveCells([k[f]],b,c,!1,this.model.getRoot())[0]),null!=l&&(a=a.concat(l));else{var l=f.getChildren(k[0]);null!=
-l&&(a=this.moveCells(l,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 l=this.getCellGeometry(c[e]);null!=l&&l.relative&&!this.model.isEdge(a[e])&&null==d.get(this.model.getParent(a[e]))&&(l.offset=null,l.relative=!1,l.x=h.x/h.view.scale-h.view.translate.x,l.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=
+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++)J=this.model.getChildren(this.moveCells([k[f]],b,c,!1,this.model.getRoot())[0]),null!=J&&(a=a.concat(J));else{var J=f.getChildren(k[0]);null!=
+J&&(a=this.moveCells(J,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 l=this.getBoundingBoxFromGeometry(a,!0);null!=l&&this.moveCells(a,b-l.x,c-l.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 J=this.getCellGeometry(c[e]);null!=J&&J.relative&&!this.model.isEdge(a[e])&&null==d.get(this.model.getParent(a[e]))&&(J.offset=null,J.relative=!1,J.x=h.x/h.view.scale-h.view.translate.x,J.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 l=this.getChildCells(c,!0);for(b=0;b<l.length;b++){var m=this.getCellGeometry(l[b]);null!=m&&m.relative&&0<m.x&&this.model.remove(l[b])}var P=this.getChildCells(a,!0);for(b=0;b<P.length;b++)m=this.getCellGeometry(P[b]),null!=m&&m.relative&&
-0>=m.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 X=this.getCurrentCellStyle(n);null!=X&&"1"==X.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[a]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,
+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 J=this.getChildCells(c,!0);for(b=0;b<J.length;b++){var l=this.getCellGeometry(J[b]);null!=l&&l.relative&&0<l.x&&this.model.remove(J[b])}var m=this.getChildCells(a,!0);for(b=0;b<m.length;b++)l=this.getCellGeometry(m[b]),null!=l&&l.relative&&
+0>=l.x&&this.model.remove(m[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 W=this.getCurrentCellStyle(n);null!=W&&"1"==W.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 l=Graph.prototype.selectCell;Graph.prototype.selectCell=function(a,b,c){if(b||c)l.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 m=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 l=this.model.getParent(a[h]),P=this.getCellGeometry(a[h]);this.isTable(l)&&k.push(l);if(null!=l&&null!=P&&this.isTable(l)&&this.isTable(e)&&(d||l!=e)){if(!d){var n=this.getCellGeometry(l);null!=n&&(n=n.clone(),n.height-=P.height,this.model.setGeometry(l,n))}n=this.getCellGeometry(e);null!=n&&(n=n.clone(),n.height+=P.height,this.model.setGeometry(e,n));var X=this.model.getChildCells(e,!0);if(0<X.length){a[h]=d?this.cloneCell(a[h]):
-a[h];var p=this.model.getChildCells(a[h],!0),Z=this.model.getChildCells(X[0],!0),q=Z.length-p.length;if(0<q)for(var V=0;V<q;V++){var la=this.cloneCell(p[p.length-1]);null!=la&&(la.value="",this.model.add(a[h],la))}else if(0>q)for(V=0;V>q;V--)this.model.remove(p[p.length+V-1]);p=this.model.getChildCells(a[h],!0);for(V=0;V<Z.length;V++){var u=this.getCellGeometry(Z[V]),t=this.getCellGeometry(p[V]);null!=u&&null!=t&&(t=t.clone(),t.width=u.width,this.model.setGeometry(p[V],t))}}}}for(var v=m.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)),v)}finally{this.model.endUpdate()}return v};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!=
+try{k=[];for(h=0;h<a.length;h++)if(null!=e&&this.isTableRow(a[h])){var J=this.model.getParent(a[h]),l=this.getCellGeometry(a[h]);this.isTable(J)&&k.push(J);if(null!=J&&null!=l&&this.isTable(J)&&this.isTable(e)&&(d||J!=e)){if(!d){var n=this.getCellGeometry(J);null!=n&&(n=n.clone(),n.height-=l.height,this.model.setGeometry(J,n))}n=this.getCellGeometry(e);null!=n&&(n=n.clone(),n.height+=l.height,this.model.setGeometry(e,n));var W=this.model.getChildCells(e,!0);if(0<W.length){a[h]=d?this.cloneCell(a[h]):
+a[h];var p=this.model.getChildCells(a[h],!0),Y=this.model.getChildCells(W[0],!0),ba=Y.length-p.length;if(0<ba)for(var q=0;q<ba;q++){var ea=this.cloneCell(p[p.length-1]);null!=ea&&(ea.value="",this.model.add(a[h],ea))}else if(0>ba)for(q=0;q>ba;q--)this.model.remove(p[p.length+q-1]);p=this.model.getChildCells(a[h],!0);for(q=0;q<Y.length;q++){var u=this.getCellGeometry(Y[q]),t=this.getCellGeometry(p[q]);null!=u&&null!=t&&(t=t.clone(),t.width=u.width,this.model.setGeometry(p[q],t))}}}}for(var va=m.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)),va)}finally{this.model.endUpdate()}return va};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(Aa){}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 l=h.getTerminalPoint(!0),m=h.getTerminalPoint(!1);
-h.setTerminalPoint(l,!1);h.setTerminalPoint(m,!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 X=null!=P?this.getConnectionConstraint(n,P,!0):null,q=null!=p?this.getConnectionConstraint(n,p,!1):null;this.setConnectionConstraint(f,g,!0,q);this.setConnectionConstraint(f,k,!1,X);var u=mxUtils.getValue(n.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(n.style,
+h.setTerminalPoint(l,!1);h.setTerminalPoint(m,!0);c.setGeometry(f,h);var J=this.view.getState(f),n=this.view.getState(g),p=this.view.getState(k);if(null!=J){var W=null!=n?this.getConnectionConstraint(J,n,!0):null,q=null!=p?this.getConnectionConstraint(J,p,!1):null;this.setConnectionConstraint(f,g,!0,q);this.setConnectionConstraint(f,k,!1,W);var u=mxUtils.getValue(J.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(J.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 w=[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,w[mxUtils.mod(mxUtils.indexOf(w,U)+(b?-1:1),w.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&&
@@ -2817,19 +2817,19 @@ null!=b.sourceState||!g.intersects(this.currentState,b.getGraphX(),b.getGraphY()
(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 l=d.getParent(a[c]);
-if(null!=l){var m=this.moveCells([h[c]],e,e,!1)[0];f.push(m);if(b)d.add(l,h[c]);else{var n=l.getIndex(a[c]);d.add(l,h[c],n+1)}if(this.isTable(l)){var P=this.getCellGeometry(h[c]),p=this.getCellGeometry(l);null!=P&&null!=p&&(p=p.clone(),p.height+=P.height,d.setGeometry(l,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!=
+if(null!=l){var m=this.moveCells([h[c]],e,e,!1)[0];f.push(m);if(b)d.add(l,h[c]);else{var n=l.getIndex(a[c]);d.add(l,h[c],n+1)}if(this.isTable(l)){var J=this.getCellGeometry(h[c]),p=this.getCellGeometry(l);null!=J&&null!=p&&(p=p.clone(),p.height+=J.height,d.setGeometry(l,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 l=this.view.getState(this.model.getParent(c[f].cell)),m=this.getCellGeometry(c[f].cell),d=d+h;null!=m&&null!=l&&(m=m.clone(),a?m.x=Math.round(d-m.width/2)-l.origin.x:m.y=Math.round(d-m.height/
2)-l.origin.y,this.getModel().setGeometry(c[f].cell,m))}}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,l,m,n,p,q){var P=null;if(null!=q)for(P=new mxDictionary,m=0;m<q.length;m++)P.put(q[m],!0);if(q=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;l=null!=l?l:!1;var X="page"==p?this.view.getBackgroundPageBounds():f&&null==P||d||"diagram"==p?this.getGraphBounds():
-this.getBoundingBox(this.getSelectionCells()),Z=this.view.scale;"diagram"==p&&null!=this.backgroundImage&&(X=mxRectangle.fromRectangle(X),X.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*Z,(this.view.translate.y+this.backgroundImage.y)*Z,this.backgroundImage.width*Z,this.backgroundImage.height*Z)));if(null==X)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/Z;var v=Math.max(1,Math.ceil(X.width*a)+2*c)+(l&&0==c?5:0),V=Math.max(1,Math.ceil(X.height*a)+2*c)+(l&&0==c?5:0);t.setAttribute("version","1.1");t.setAttribute("width",v+"px");t.setAttribute("height",
-V+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+v+" "+V);u.appendChild(t);var la=null!=u.createElementNS?u.createElementNS(mxConstants.NS_SVG,"g"):u.createElement("g");t.appendChild(la);var w=this.createSvgCanvas(la);w.foOffset=e?-.5:0;w.textOffset=e?-.5:0;w.imageOffset=e?-.5:0;w.translate(Math.floor(c/b-X.x/Z),Math.floor(c/b-X.y/Z));var U=document.createElement("div"),I=w.getAlternateText;w.getAlternateText=function(a,b,c,d,e,f,g,k,h,l,m,r,A){if(null!=f&&0<this.state.fontSize)try{mxUtils.isNode(f)?
-f=f.innerText:(U.innerHTML=f,f=mxUtils.extractTextWithWhitespace(U.childNodes));for(var B=Math.ceil(2*d/this.state.fontSize),D=[],G=0,Aa=0;(0==B||G<B)&&Aa<f.length;){var Ra=f.charCodeAt(Aa);if(10==Ra||13==Ra){if(0<G)break}else D.push(f.charAt(Aa)),255>Ra&&G++;Aa++}D.length<f.length&&1<f.length-D.length&&(f=mxUtils.trim(D.join(""))+"...");return f}catch(db){return I.apply(this,arguments)}else return I.apply(this,arguments)};var y=this.backgroundImage;if(null!=y){b=Z/b;var z=this.view.translate,x=new mxRectangle((y.x+
-z.x)*b,(y.y+z.y)*b,y.width*b,y.height*b);mxUtils.intersects(X,x)&&w.image(y.x+z.x,y.y+z.y,y.width,y.height,y.src,!0)}w.scale(a);w.textEnabled=g;k=null!=k?k:this.createSvgImageExport();var C=k.drawCellState,F=k.getLinkForCellState;k.getLinkForCellState=function(a,b){var c=F.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)&&C.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),w);this.updateSvgLinks(t,h,!0);this.addForeignObjectWarning(w,t);return t}finally{q&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(a,b){if("0"!=urlParams["svg-warning"]&&0<
+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,l,m,n,p,q){var J=null;if(null!=q)for(J=new mxDictionary,m=0;m<q.length;m++)J.put(q[m],!0);if(q=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;l=null!=l?l:!1;var W="page"==p?this.view.getBackgroundPageBounds():f&&null==J||d||"diagram"==p?this.getGraphBounds():
+this.getBoundingBox(this.getSelectionCells()),Y=this.view.scale;"diagram"==p&&null!=this.backgroundImage&&(W=mxRectangle.fromRectangle(W),W.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*Y,(this.view.translate.y+this.backgroundImage.y)*Y,this.backgroundImage.width*Y,this.backgroundImage.height*Y)));if(null==W)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/Y;var v=Math.max(1,Math.ceil(W.width*a)+2*c)+(l&&0==c?5:0),ba=Math.max(1,Math.ceil(W.height*a)+2*c)+(l&&0==c?5:0);t.setAttribute("version","1.1");t.setAttribute("width",v+"px");t.setAttribute("height",
+ba+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+v+" "+ba);u.appendChild(t);var ea=null!=u.createElementNS?u.createElementNS(mxConstants.NS_SVG,"g"):u.createElement("g");t.appendChild(ea);var w=this.createSvgCanvas(ea);w.foOffset=e?-.5:0;w.textOffset=e?-.5:0;w.imageOffset=e?-.5:0;w.translate(Math.floor(c/b-W.x/Y),Math.floor(c/b-W.y/Y));var U=document.createElement("div"),I=w.getAlternateText;w.getAlternateText=function(a,b,c,d,e,f,g,k,h,l,m,n,r){if(null!=f&&0<this.state.fontSize)try{mxUtils.isNode(f)?
+f=f.innerText:(U.innerHTML=f,f=mxUtils.extractTextWithWhitespace(U.childNodes));for(var A=Math.ceil(2*d/this.state.fontSize),B=[],D=0,F=0;(0==A||D<A)&&F<f.length;){var Ca=f.charCodeAt(F);if(10==Ca||13==Ca){if(0<D)break}else B.push(f.charAt(F)),255>Ca&&D++;F++}B.length<f.length&&1<f.length-B.length&&(f=mxUtils.trim(B.join(""))+"...");return f}catch(cb){return I.apply(this,arguments)}else return I.apply(this,arguments)};var y=this.backgroundImage;if(null!=y){b=Y/b;var z=this.view.translate,x=new mxRectangle((y.x+
+z.x)*b,(y.y+z.y)*b,y.width*b,y.height*b);mxUtils.intersects(W,x)&&w.image(y.x+z.x,y.y+z.y,y.width,y.height,y.src,!0)}w.scale(a);w.textEnabled=g;k=null!=k?k:this.createSvgImageExport();var C=k.drawCellState,G=k.getLinkForCellState;k.getLinkForCellState=function(a,b){var c=G.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!=
+J?J.get(a.cell):c.isCellSelected(a.cell),e=c.model.getParent(a.cell);!(f&&null==J||d)&&null!=e;)d=null!=J?J.get(e):c.isCellSelected(e),e=c.model.getParent(e);(f&&null==J||d)&&C.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),w);this.updateSvgLinks(t,h,!0);this.addForeignObjectWarning(w,t);return t}finally{q&&(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());
@@ -2837,7 +2837,7 @@ return a};Graph.prototype.getSelectedEditingElement=function(){for(var a=this.ge
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],l=c.cloneCell(h,!1),m=this.getCellGeometry(l);l.value=
-null;if(null!=m){var k=m.width,n=this.getCellGeometry(g[f]);null!=n&&(m.height=n.height)}c.add(g[f],l,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=
+null;if(null!=m){var k=m.width,n=this.getCellGeometry(g[f]);null!=n&&(m.height=n.height)}c.add(g[f],l,e+(b?0:1))}var J=this.getCellGeometry(d);null!=J&&(J=J.clone(),J.width+=k,c.setGeometry(d,J))}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);e.insert(a);a.value=null;var l=this.getCellGeometry(a);null!=l&&(l.height=h.height)}c.add(d,e,k+(b?0:1));var m=this.getCellGeometry(d);null!=m&&(m=m.clone(),m.height+=h.height,c.setGeometry(d,m))}}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 l=this.getCellGeometry(c);null!=l&&(l=l.clone(),
@@ -2852,93 +2852,91 @@ function(a,b){this.popupMenuHandler.hideMenu()});var a=this.updateMouseEvent;thi
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(V){}};var u=mxCellRenderer.prototype.postConfigureShape;mxCellRenderer.prototype.postConfigureShape=function(a){var b=mxUtils.hex2rgba(a.view.graph.defaultPageBackgroundColor),c=mxUtils.hex2rgba(a.view.graph.defaultForegroundColor);this.resolveDefaultColor(a,"fill",a.shape,b);this.resolveDefaultColor(a,"color",
-a.text,c);this.resolveDefaultColor(a,"border",a.text,c);this.resolveDefaultColor(a,"stroke",a.shape,c);this.resolveDefaultColor(a,"laneFill",a.shape,b);this.resolveDefaultColor(a,"background",a.text,b);this.resolveDefaultColor(a,"imageBorder",a.shape,c);this.resolveDefaultColor(a,"imageBackground",a.shape,b);u.apply(this,arguments)};mxCellRenderer.prototype.resolveDefaultColor=function(a,b,c,d){null!=c&&"default"==c[b]&&null!=d&&(c[b]=d)};var v=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=
-function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));v.apply(this,arguments)};var t=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,b){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?t.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var w=mxCellEditor.prototype.startEditing;
-mxCellEditor.prototype.startEditing=function(a,b){a=this.graph.getStartEditingCell(a,b);w.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 z=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="",z.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 E=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();E.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(P){}};var H=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,b){this.graph.getModel().beginUpdate();
-try{H.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.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 C=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell=function(a,b){C.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 F=mxSelectionCellsHandler.prototype.getHandledSelectionCells;
-mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function a(a){c.get(a)||(c.put(a,!0),e.push(a))}for(var b=F.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 y=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(a){var b=y.apply(this,arguments);b.stroke=
-"#C0C0C0";b.strokewidth=1;return b};var I=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(a){var b=I.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 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 L=mxVertexHandler.prototype.isParentHighlightVisible;
-mxVertexHandler.prototype.isParentHighlightVisible=function(){return L.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var R=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(a){return a.tableHandle||R.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 J=mxVertexHandler.prototype.getSelectionBorderBounds;mxVertexHandler.prototype.getSelectionBorderBounds=function(){return J.apply(this,arguments).grow(-this.getSelectionBorderInset())};var O=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=O.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var b=this.graph,c=b.model,d=this.state,e=this.selectionBorder,f=this;null==
-a&&(a=[]);var g=b.view.getCellStates(c.getChildCells(this.state.cell,!0));if(0<g.length){for(var k=c.getChildCells(g[0].cell,!0),c=0;c<k.length;c++)mxUtils.bind(this,function(c){var g=b.view.getState(k[c]),h=b.getCellGeometry(k[c]),l=null!=h.alternateBounds?h.alternateBounds:h;null==g&&(g=new mxCellState(b.view,k[c],b.getCellStyle(k[c])),g.x=d.x+h.x*b.view.scale,g.y=d.y+h.y*b.view.scale,g.width=l.width*b.view.scale,g.height=l.height*b.view.scale,g.updateCachedBounds());var h=c<k.length-1?k[c+1]:null,
-h=null!=h?b.getCellGeometry(h):null,m=null!=h&&null!=h.alternateBounds?h.alternateBounds:h,h=new mxLine(new mxRectangle,mxConstants.NONE,1,!0);h.isDashed=e.isDashed;h.svgStrokeTolerance++;g=new mxHandle(g,"col-resize",null,h);g.tableHandle=!0;var n=0;g.shape.node.parentNode.insertBefore(g.shape.node,g.shape.node.parentNode.firstChild);g.redraw=function(){if(null!=this.shape){var a=b.getActualStartSize(d.cell);this.shape.stroke=0==n?mxConstants.NONE:e.stroke;this.shape.bounds.x=this.state.x+(l.width+
-n)*this.graph.view.scale;this.shape.bounds.width=1;this.shape.bounds.y=d.y+(c==k.length-1?0:a.y*this.graph.view.scale);this.shape.bounds.height=d.height-(c==k.length-1?0:(a.height+a.y)*this.graph.view.scale);this.shape.redraw()}};var p=!1;g.setPosition=function(a,b,c){n=Math.max(Graph.minTableColumnWidth-l.width,b.x-a.x-l.width);p=mxEvent.isShiftDown(c.getEvent());null==m||p||(n=Math.min(n,m.width-Graph.minTableColumnWidth))};g.execute=function(a){if(0!=n)b.setTableColumnWidth(this.state.cell,n,p);
-else if(!f.blockDelayedSelection){var c=b.getCellAt(a.getGraphX(),a.getGraphY())||d.cell;b.graphHandler.selectCellForEvent(c,a)}n=0};g.positionChanged=function(){};g.reset=function(){n=0};a.push(g)})(c);for(c=0;c<g.length;c++)mxUtils.bind(this,function(c){c=g[c];var k=new mxLine(new mxRectangle,mxConstants.NONE,1);k.isDashed=e.isDashed;k.svgStrokeTolerance++;c=new mxHandle(c,"row-resize",null,k);c.tableHandle=!0;var h=0;c.shape.node.parentNode.insertBefore(c.shape.node,c.shape.node.parentNode.firstChild);
-c.redraw=function(){null!=this.shape&&null!=this.state.shape&&(this.shape.stroke=0==h?mxConstants.NONE:e.stroke,this.shape.bounds.x=this.state.x,this.shape.bounds.width=this.state.width,this.shape.bounds.y=this.state.y+this.state.height+h*this.graph.view.scale,this.shape.bounds.height=1,this.shape.redraw())};c.setPosition=function(a,b,c){h=Math.max(Graph.minTableRowHeight-a.height,b.y-a.y-a.height)};c.execute=function(a){if(0!=h)b.setTableRowHeight(this.state.cell,h,!mxEvent.isShiftDown(a.getEvent()));
-else if(!f.blockDelayedSelection){var c=b.getCellAt(a.getGraphX(),a.getGraphY())||d.cell;b.graphHandler.selectCellForEvent(c,a)}h=0};c.reset=function(){h=0};a.push(c)})(c)}}return null!=a?a.reverse():null};var aa=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){aa.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 N=mxEdgeHandler.prototype.mouseMove;
-mxEdgeHandler.prototype.mouseMove=function(a,b){N.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")};mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+
-HoverIcons.prototype.arrowFill+'" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="#01bd22" stroke-width="1"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>'):
-new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><circle cx="11" cy="11" r="3" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=mxClient.IS_SVG?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):new mxImage(IMAGE_PATH+"/handle-rotate.png",16,16);mxClient.IS_SVG&&(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.terminalHandleImage=HoverIcons.prototype.terminalHandle;
-mxEdgeHandler.prototype.fixedHandleImage=HoverIcons.prototype.fixedHandle;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);mxClient.IS_SVG||((new Image).src=HoverIcons.prototype.mainHandle.src,(new Image).src=HoverIcons.prototype.fixedHandle.src,(new Image).src=HoverIcons.prototype.terminalHandle.src,(new Image).src=HoverIcons.prototype.secondaryHandle.src,(new Image).src=HoverIcons.prototype.rotationHandle.src,(new Image).src=HoverIcons.prototype.triangleUp.src,(new Image).src=HoverIcons.prototype.triangleRight.src,(new Image).src=
-HoverIcons.prototype.triangleDown.src,(new Image).src=HoverIcons.prototype.triangleLeft.src,(new Image).src=HoverIcons.prototype.refreshTarget.src,(new Image).src=HoverIcons.prototype.roundDrop.src);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 Q=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,b){Q.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]),l=this.graph.getCellGeometry(k[c]);null!=h&&null!=l&&(l=l.clone(),l.translate(f,g),this.graph.model.setGeometry(k[c],l))}}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 ja=(new Date).getTime(),da=0,na=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d){na.apply(this,arguments);c!=this.currentTerminalState?(ja=(new Date).getTime(),da=0):da=(new Date).getTime()-ja;this.currentTerminalState=c};var oa=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<da||(null==this.currentTerminalState||
-"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&oa.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(a,b){var c=null!=a&&0==a,d=this.state.getVisibleTerminalState(c),e=null!=a&&(0==a||a>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,c):null,c=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(c),e):null)?this.fixedHandleImage:null!=e&&
-null!=d?this.terminalHandleImage: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 ea=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 ea.apply(this,arguments)};var pa=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 pa.apply(this,
-arguments)};var ta=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var a=ta.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 qa=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))):qa.apply(this,arguments)};var ua=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)&&ua.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 ka=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,b){ka.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 ga=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=
-function(a,b){ga.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 ha=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){ha.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(la){}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var ca=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=
-function(){ca.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 fa=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){fa.apply(this,arguments);this.constraintHandler.isEnabled=
-mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var ma=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=b[0].bounds.y;b[1].redraw();b[2].bounds.x=b[0].bounds.x;b[2].bounds.y=this.state.y+this.state.height-2*a;b[2].redraw();b[3].bounds.x=b[1].bounds.x;b[3].bounds.y=b[2].bounds.y;b[3].redraw();for(a=0;a<this.cornerHandles.length;a++)this.cornerHandles[a].node.style.display=1==this.graph.getSelectionCount()?
-"":"none"}null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=null!=this.moveHandles||1!=this.graph.getSelectionCount()||null!=this.index&&this.index!=mxEvent.ROTATION_HANDLE?"none":"");ma.apply(this);null!=this.state&&null!=this.linkHint&&(a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),b=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),c=mxUtils.getBoundingBox(b,this.state.style[mxConstants.STYLE_ROTATION]||
-"0",a),a=null!=c?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state,b=null!=this.state.text?this.state.text.boundingBox:null,null==c&&(c=this.state),c=c.y+c.height,null!=b&&(c=Math.max(c,b.y+b.height)),this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px",this.linkHint.style.top=Math.round(c+this.verticalOffset/2+Editor.hintOffset)+"px")};var ia=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=
-function(){ia.apply(this,arguments);if(null!=this.moveHandles){for(var a=0;a<this.moveHandles.length;a++)null!=this.moveHandles[a]&&null!=this.moveHandles[a].parentNode&&this.moveHandles[a].parentNode.removeChild(this.moveHandles[a]);this.moveHandles=null}if(null!=this.cornerHandles){for(a=0;a<this.cornerHandles.length;a++)null!=this.cornerHandles[a]&&null!=this.cornerHandles[a].node&&null!=this.cornerHandles[a].node.parentNode&&this.cornerHandles[a].node.parentNode.removeChild(this.cornerHandles[a].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 W=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=
-function(){if(null!=this.marker&&(W.apply(this),null!=this.state&&null!=this.linkHint)){var a=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height),a.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(a.y+a.height+Editor.hintOffset)+"px"}};var ra=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){ra.apply(this,arguments);
-null!=this.linkHint&&(this.linkHint.style.visibility="")};var Y=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){Y.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)}}();Format=function(a,b){this.editorUi=a;this.container=b};Format.inactiveTabBackgroundColor="#f1f3f4";Format.classicFilledMarkerImage=Graph.createSvgImage(20,22,'<path transform="translate(4,2)" stroke-width="2" d="M 0 8 L 10 2 L 5 8 L 10 14 Z M 0 8 L 24 8" stroke="#404040" fill="#404040"/>',32,20);Format.classicThinFilledMarkerImage=Graph.createSvgImage(20,22,'<path transform="translate(4,2)" stroke-width="2" d="M 0 8 L 8 4 L 3 8 L 8 12 Z M 0 8 L 24 8" stroke="#404040" fill="#404040"/>',32,20);
+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(ba){}};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 w=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)}w.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 x=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="",x.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 z=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();
+z.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(J){}};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.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 H=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell=function(a,b){H.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 C=mxSelectionCellsHandler.prototype.getHandledSelectionCells;mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function a(a){c.get(a)||(c.put(a,!0),e.push(a))}for(var b=C.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 y=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(a){var b=y.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 I=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return I.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 L=mxVertexHandler.prototype.isParentHighlightVisible;mxVertexHandler.prototype.isParentHighlightVisible=function(){return L.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var M=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=
+function(a){return a.tableHandle||M.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 R=mxVertexHandler.prototype.getSelectionBorderBounds;mxVertexHandler.prototype.getSelectionBorderBounds=function(){return R.apply(this,arguments).grow(-this.getSelectionBorderInset())};
+var K=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=K.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var b=this.graph,c=b.model,d=this.state,e=this.selectionBorder,f=this;null==a&&(a=[]);var g=b.view.getCellStates(c.getChildCells(this.state.cell,!0));if(0<g.length){for(var k=c.getChildCells(g[0].cell,!0),c=0;c<k.length;c++)mxUtils.bind(this,function(c){var g=b.view.getState(k[c]),h=b.getCellGeometry(k[c]),l=null!=h.alternateBounds?
+h.alternateBounds:h;null==g&&(g=new mxCellState(b.view,k[c],b.getCellStyle(k[c])),g.x=d.x+h.x*b.view.scale,g.y=d.y+h.y*b.view.scale,g.width=l.width*b.view.scale,g.height=l.height*b.view.scale,g.updateCachedBounds());var h=c<k.length-1?k[c+1]:null,h=null!=h?b.getCellGeometry(h):null,m=null!=h&&null!=h.alternateBounds?h.alternateBounds:h,h=new mxLine(new mxRectangle,mxConstants.NONE,1,!0);h.isDashed=e.isDashed;h.svgStrokeTolerance++;g=new mxHandle(g,"col-resize",null,h);g.tableHandle=!0;var n=0;g.shape.node.parentNode.insertBefore(g.shape.node,
+g.shape.node.parentNode.firstChild);g.redraw=function(){if(null!=this.shape){var a=b.getActualStartSize(d.cell);this.shape.stroke=0==n?mxConstants.NONE:e.stroke;this.shape.bounds.x=this.state.x+(l.width+n)*this.graph.view.scale;this.shape.bounds.width=1;this.shape.bounds.y=d.y+(c==k.length-1?0:a.y*this.graph.view.scale);this.shape.bounds.height=d.height-(c==k.length-1?0:(a.height+a.y)*this.graph.view.scale);this.shape.redraw()}};var p=!1;g.setPosition=function(a,b,c){n=Math.max(Graph.minTableColumnWidth-
+l.width,b.x-a.x-l.width);p=mxEvent.isShiftDown(c.getEvent());null==m||p||(n=Math.min(n,m.width-Graph.minTableColumnWidth))};g.execute=function(a){if(0!=n)b.setTableColumnWidth(this.state.cell,n,p);else if(!f.blockDelayedSelection){var c=b.getCellAt(a.getGraphX(),a.getGraphY())||d.cell;b.graphHandler.selectCellForEvent(c,a)}n=0};g.positionChanged=function(){};g.reset=function(){n=0};a.push(g)})(c);for(c=0;c<g.length;c++)mxUtils.bind(this,function(c){c=g[c];var k=new mxLine(new mxRectangle,mxConstants.NONE,
+1);k.isDashed=e.isDashed;k.svgStrokeTolerance++;c=new mxHandle(c,"row-resize",null,k);c.tableHandle=!0;var h=0;c.shape.node.parentNode.insertBefore(c.shape.node,c.shape.node.parentNode.firstChild);c.redraw=function(){null!=this.shape&&null!=this.state.shape&&(this.shape.stroke=0==h?mxConstants.NONE:e.stroke,this.shape.bounds.x=this.state.x,this.shape.bounds.width=this.state.width,this.shape.bounds.y=this.state.y+this.state.height+h*this.graph.view.scale,this.shape.bounds.height=1,this.shape.redraw())};
+c.setPosition=function(a,b,c){h=Math.max(Graph.minTableRowHeight-a.height,b.y-a.y-a.height)};c.execute=function(a){if(0!=h)b.setTableRowHeight(this.state.cell,h,!mxEvent.isShiftDown(a.getEvent()));else if(!f.blockDelayedSelection){var c=b.getCellAt(a.getGraphX(),a.getGraphY())||d.cell;b.graphHandler.selectCellForEvent(c,a)}h=0};c.reset=function(){h=0};a.push(c)})(c)}}return null!=a?a.reverse():null};var P=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){P.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 X=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=X.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 Z=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(a,b){Z.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 O=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=
+function(a,b){O.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")};mxEdgeHandler.prototype.removeHint=
+mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=
+mxClient.IS_SVG?Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="#01bd22" stroke-width="1"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>'):new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><circle cx="11" cy="11" r="3" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+"/handle-terminal.png",
+17,17);HoverIcons.prototype.rotationHandle=mxClient.IS_SVG?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):new mxImage(IMAGE_PATH+"/handle-rotate.png",16,16);mxClient.IS_SVG&&(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.terminalHandleImage=HoverIcons.prototype.terminalHandle;mxEdgeHandler.prototype.fixedHandleImage=HoverIcons.prototype.fixedHandle;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);mxClient.IS_SVG||((new Image).src=HoverIcons.prototype.mainHandle.src,(new Image).src=HoverIcons.prototype.fixedHandle.src,(new Image).src=HoverIcons.prototype.terminalHandle.src,(new Image).src=HoverIcons.prototype.secondaryHandle.src,(new Image).src=
+HoverIcons.prototype.rotationHandle.src,(new Image).src=HoverIcons.prototype.triangleUp.src,(new Image).src=HoverIcons.prototype.triangleRight.src,(new Image).src=HoverIcons.prototype.triangleDown.src,(new Image).src=HoverIcons.prototype.triangleLeft.src,(new Image).src=HoverIcons.prototype.refreshTarget.src,(new Image).src=HoverIcons.prototype.roundDrop.src);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 S=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,b){S.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]),l=this.graph.getCellGeometry(k[c]);
+null!=h&&null!=l&&(l=l.clone(),l.translate(f,g),this.graph.model.setGeometry(k[c],l))}}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 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 U=(new Date).getTime(),fa=0,ja=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d){ja.apply(this,arguments);c!=this.currentTerminalState?(U=(new Date).getTime(),fa=0):fa=(new Date).getTime()-U;this.currentTerminalState=c};var ma=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=
+function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<fa||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&ma.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(a,b){var c=null!=a&&0==a,d=this.state.getVisibleTerminalState(c),e=null!=a&&(0==a||a>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,
+d,c):null,c=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(c),e):null)?this.fixedHandleImage:null!=e&&null!=d?this.terminalHandleImage: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 na=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 na.apply(this,arguments)};var ca=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 ca.apply(this,arguments)};var oa=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var a=oa.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 sa=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))):sa.apply(this,arguments)};var pa=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)&&pa.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 ta=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,b){ta.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 ka=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,b){ka.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 ga=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){ga.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(ea){}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var ha=mxEdgeHandler.prototype.init;
+mxEdgeHandler.prototype.init=function(){ha.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 aa=mxConnectionHandler.prototype.init;
+mxConnectionHandler.prototype.init=function(){aa.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var da=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=b[0].bounds.y;b[1].redraw();b[2].bounds.x=b[0].bounds.x;b[2].bounds.y=this.state.y+this.state.height-2*a;b[2].redraw();b[3].bounds.x=b[1].bounds.x;b[3].bounds.y=b[2].bounds.y;b[3].redraw();
+for(a=0;a<this.cornerHandles.length;a++)this.cornerHandles[a].node.style.display=1==this.graph.getSelectionCount()?"":"none"}null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=null!=this.moveHandles||1!=this.graph.getSelectionCount()||null!=this.index&&this.index!=mxEvent.ROTATION_HANDLE?"none":"");da.apply(this);null!=this.state&&null!=this.linkHint&&(a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),b=new mxRectangle(this.state.x,this.state.y-
+22,this.state.width+24,this.state.height+22),c=mxUtils.getBoundingBox(b,this.state.style[mxConstants.STYLE_ROTATION]||"0",a),a=null!=c?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state,b=null!=this.state.text?this.state.text.boundingBox:null,null==c&&(c=this.state),c=c.y+c.height,null!=b&&(c=Math.max(c,b.y+b.height)),this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px",this.linkHint.style.top=Math.round(c+this.verticalOffset/
+2+Editor.hintOffset)+"px")};var la=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){la.apply(this,arguments);if(null!=this.moveHandles){for(var a=0;a<this.moveHandles.length;a++)null!=this.moveHandles[a]&&null!=this.moveHandles[a].parentNode&&this.moveHandles[a].parentNode.removeChild(this.moveHandles[a]);this.moveHandles=null}if(null!=this.cornerHandles){for(a=0;a<this.cornerHandles.length;a++)null!=this.cornerHandles[a]&&null!=this.cornerHandles[a].node&&null!=this.cornerHandles[a].node.parentNode&&
+this.cornerHandles[a].node.parentNode.removeChild(this.cornerHandles[a].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 a=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height),a.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(a.y+a.height+Editor.hintOffset)+"px"}};var V=mxEdgeHandler.prototype.reset;
+mxEdgeHandler.prototype.reset=function(){V.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var qa=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){qa.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)}}();Format=function(a,b){this.editorUi=a;this.container=b};Format.inactiveTabBackgroundColor="#f1f3f4";Format.classicFilledMarkerImage=Graph.createSvgImage(20,22,'<path transform="translate(4,2)" stroke-width="2" d="M 0 8 L 10 2 L 5 8 L 10 14 Z M 0 8 L 24 8" stroke="#404040" fill="#404040"/>',32,20);Format.classicThinFilledMarkerImage=Graph.createSvgImage(20,22,'<path transform="translate(4,2)" stroke-width="2" d="M 0 8 L 8 4 L 3 8 L 8 12 Z M 0 8 L 24 8" stroke="#404040" fill="#404040"/>',32,20);
Format.openFilledMarkerImage=Graph.createSvgImage(20,22,'<path transform="translate(4,2)" stroke-width="2" d="M 8 0 L 0 8 L 8 16 M 0 8 L 24 8" stroke="#404040" fill="transparent"/>',32,20);Format.openThinFilledMarkerImage=Graph.createSvgImage(20,22,'<path transform="translate(4,2)" stroke-width="2" d="M 8 4 L 0 8 L 8 12 M 0 8 L 24 8" stroke="#404040" fill="transparent"/>',32,20);
Format.openAsyncFilledMarkerImage=Graph.createSvgImage(20,22,'<path transform="translate(4,2)" stroke-width="2" d="M 8 4 L 0 8 L 24 8" stroke="#404040" fill="transparent"/>',32,20);Format.blockFilledMarkerImage=Graph.createSvgImage(20,22,'<path transform="translate(4,2)" stroke-width="2" d="M 0 8 L 8 2 L 8 14 Z M 0 8 L 24 8" stroke="#404040" fill="#404040"/>',32,20);
Format.blockThinFilledMarkerImage=Graph.createSvgImage(20,22,'<path transform="translate(4,2)" stroke-width="2" d="M 0 8 L 8 4 L 8 12 Z M 0 8 L 24 8" stroke="#404040" fill="#404040"/>',32,20);Format.asyncFilledMarkerImage=Graph.createSvgImage(20,22,'<path transform="translate(4,2)" stroke-width="2" d="M 6 8 L 6 4 L 0 8 L 24 8" stroke="#404040" fill="#404040"/>',32,20);
@@ -3067,53 +3065,53 @@ n),u=this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center")
function(a){e.cellEditor.alignText(mxConstants.ALIGN_RIGHT,a);d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ALIGN],"values",[mxConstants.ALIGN_RIGHT],"cells",c.cells))}:p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT])),n);this.styleButtons([q,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 w=this.editorUi.toolbar.addButton("geSprite-top",mxResources.get("top"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP])),n),x=this.editorUi.toolbar.addButton("geSprite-middle",mxResources.get("middle"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE])),n),z=this.editorUi.toolbar.addButton("geSprite-bottom",
-mxResources.get("bottom"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM])),n);this.styleButtons([w,x,z]);a.appendChild(n);var E,H,C,F,y,I,K;e.cellEditor.isContentEditing()?(w.style.display="none",x.style.display="none",z.style.display="none",m.style.display="none",C=this.editorUi.toolbar.addButton("geSprite-justifyfull",mxResources.get("block"),function(){1==C.style.opacity&&document.execCommand("justifyfull",!1,null)},n),C.style.marginRight=
+mxResources.get("bottom"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM])),n);this.styleButtons([w,x,z]);a.appendChild(n);var E,H,C,G,y,I,L;e.cellEditor.isContentEditing()?(w.style.display="none",x.style.display="none",z.style.display="none",m.style.display="none",C=this.editorUi.toolbar.addButton("geSprite-justifyfull",mxResources.get("block"),function(){1==C.style.opacity&&document.execCommand("justifyfull",!1,null)},n),C.style.marginRight=
"9px",C.style.opacity=1,this.styleButtons([C,E=this.editorUi.toolbar.addButton("geSprite-subscript",mxResources.get("subscript")+" ("+Editor.ctrlKey+"+,)",function(){document.execCommand("subscript",!1,null)},n),H=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)):(l[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(" "),R={topLeft:[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM],top:[mxConstants.ALIGN_CENTER,
+"4px";n.style.fontWeight="normal";mxUtils.write(n,mxResources.get("position"));var M=document.createElement("select");M.style.position="absolute";M.style.left="126px";M.style.width="98px";M.style.border="1px solid rgb(160, 160, 160)";M.style.borderRadius="4px";M.style.marginTop="-2px";for(var t="topLeft top topRight left center right bottomLeft bottom bottomRight".split(" "),R={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 O=document.createElement("select");O.style.position="absolute";O.style.border="1px solid rgb(160, 160, 160)";O.style.left="126px";O.style.width="98px";O.style.borderRadius="4px";O.style.marginTop="-2px";for(var J=["automatic","leftToRight","rightToLeft"],aa={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]));O.appendChild(ba)}t.appendChild(O);e.isEditing()||(a.appendChild(n),mxEvent.addListener(L,"change",function(a){e.getModel().beginUpdate();try{var b=R[L.value];null!=b&&(e.setCellStyles(mxConstants.STYLE_LABEL_POSITION,b[0],c.cells),e.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION,b[1],c.cells),e.setCellStyles(mxConstants.STYLE_ALIGN,b[2],c.cells),e.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,
-b[3],c.cells))}finally{e.getModel().endUpdate()}mxEvent.consume(a)}),a.appendChild(t),mxEvent.addListener(O,"change",function(a){e.setCellStyles(mxConstants.STYLE_TEXT_DIRECTION,aa[O.value],c.cells);mxEvent.consume(a)}));var N=document.createElement("input");N.style.position="absolute";N.style.border="1px solid rgb(160, 160, 160)";N.style.textAlign="right";N.style.marginTop="4px";N.style.left="161px";N.style.width="53px";N.style.borderRadius="4px";N.style.height="23px";N.style.boxSizing="border-box";
-h.appendChild(N);var S=null,n=this.installInputHandler(N,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!=
+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 K=document.createElement("option");K.setAttribute("value",t[p]);mxUtils.write(K,mxResources.get(t[p]));M.appendChild(K)}n.appendChild(M);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 P=document.createElement("select");P.style.position="absolute";P.style.border="1px solid rgb(160, 160, 160)";P.style.left="126px";P.style.width="98px";P.style.borderRadius="4px";P.style.marginTop="-2px";for(var K=["automatic","leftToRight","rightToLeft"],X={automatic:null,leftToRight:mxConstants.TEXT_DIRECTION_LTR,rightToLeft:mxConstants.TEXT_DIRECTION_RTL},p=0;p<K.length;p++){var Z=
+document.createElement("option");Z.setAttribute("value",K[p]);mxUtils.write(Z,mxResources.get(K[p]));P.appendChild(Z)}t.appendChild(P);e.isEditing()||(a.appendChild(n),mxEvent.addListener(M,"change",function(a){e.getModel().beginUpdate();try{var b=R[M.value];null!=b&&(e.setCellStyles(mxConstants.STYLE_LABEL_POSITION,b[0],c.cells),e.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION,b[1],c.cells),e.setCellStyles(mxConstants.STYLE_ALIGN,b[2],c.cells),e.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,
+b[3],c.cells))}finally{e.getModel().endUpdate()}mxEvent.consume(a)}),a.appendChild(t),mxEvent.addListener(P,"change",function(a){e.setCellStyles(mxConstants.STYLE_TEXT_DIRECTION,X[P.value],c.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=""));d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTSIZE],"values",[a],"cells",c.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])}N.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(){N.value=S+" pt";S=null},0);break}},!0),n=this.createStepper(N,n,1,10,!0,Menus.prototype.defaultFontSize);n.style.display=N.style.display;n.style.marginTop="4px";n.style.left="214px";h.appendChild(n);h=g.getElementsByTagName("div")[0];h.style.cssFloat="right";var Q=null,U="#ffffff",ja=null,da="#000000",na=e.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),
+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 Q=null,U="#ffffff",fa=null,ja="#000000",ma=e.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),
function(){return U},function(a){document.execCommand("backcolor",!1,a!=mxConstants.NONE?a:"transparent");d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],"values",[a],"cells",c.cells))},"#ffffff",{install:function(a){Q=a},destroy:function(){Q=null}},null,!0):this.createCellColorOption(mxResources.get("backgroundColor"),mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"default",null,function(a){e.updateLabelElements(c.cells,function(a){a.style.backgroundColor=null})},
-e.defaultPageBackgroundColor);na.style.fontWeight="bold";var oa=this.createCellColorOption(mxResources.get("borderColor"),mxConstants.STYLE_LABEL_BORDERCOLOR,"#000000");oa.style.fontWeight="bold";h=1<=c.vertices.length?e.stylesheet.getDefaultVertexStyle():e.stylesheet.getDefaultEdgeStyle();h=e.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("fontColor"),function(){return da},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");d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTCOLOR],"values",[a],"cells",c.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"),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTCOLOR],"values",[a],"cells",c.cells))},null!=h[mxConstants.STYLE_FONTCOLOR]?h[mxConstants.STYLE_FONTCOLOR]:"#000000",{install:function(a){ja=a},destroy:function(){ja=null}},null,!0):this.createCellColorOption(mxResources.get("fontColor"),mxConstants.STYLE_FONTCOLOR,
-"default",function(a){na.style.display=a==mxConstants.NONE?"none":"";oa.style.display=na.style.display},function(a){a==mxConstants.NONE?e.setCellStyles(mxConstants.STYLE_NOLABEL,"1",c.cells):e.setCellStyles(mxConstants.STYLE_NOLABEL,null,c.cells);e.setCellStyles(mxConstants.STYLE_FONTCOLOR,a,c.cells);e.updateLabelElements(c.cells,function(a){a.removeAttribute("color");a.style.color=null})},Editor.isDarkMode()?"#ffffff":"#000000");h.style.fontWeight="bold";k.appendChild(h);k.appendChild(na);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,d.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 ea,pa,ta,qa,ua,ka=this.addUnitInput(h,"pt",87,52,function(){ea.apply(this,arguments)}),ga=this.addUnitInput(h,
-"pt",16,52,function(){pa.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 ha=this.addUnitInput(h,"pt",158,52,function(){ta.apply(this,arguments)}),ca=this.addUnitInput(h,"pt",87,52,function(){qa.apply(this,arguments)}),fa=this.addUnitInput(h,"pt",16,52,function(){ua.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 ma=null,ia=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!=ma&&(e.cellEditor.restoreSelection(ma),ma=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){ia=a;mxEvent.addListener(a,"mousedown",function(){document.activeElement==e.cellEditor.textarea&&(ma=e.cellEditor.saveSelection())});mxEvent.addListener(a,"touchstart",function(){document.activeElement==e.cellEditor.textarea&&(ma=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!=y&&e.insertColumn(y,null!=I?I.cellIndex:0)}catch(Y){this.editorUi.handleError(Y)}}),h),this.editorUi.toolbar.addButton("geSprite-insertcolumnafter",
-mxResources.get("insertColumnAfter"),mxUtils.bind(this,function(){try{null!=y&&e.insertColumn(y,null!=I?I.cellIndex+1:-1)}catch(Y){this.editorUi.handleError(Y)}}),h),this.editorUi.toolbar.addButton("geSprite-deletecolumn",mxResources.get("deleteColumn"),mxUtils.bind(this,function(){try{null!=y&&null!=I&&e.deleteColumn(y,I.cellIndex)}catch(Y){this.editorUi.handleError(Y)}}),h),this.editorUi.toolbar.addButton("geSprite-insertrowbefore",mxResources.get("insertRowBefore"),mxUtils.bind(this,function(){try{null!=
-y&&null!=K&&e.insertRow(y,K.sectionRowIndex)}catch(Y){this.editorUi.handleError(Y)}}),h),this.editorUi.toolbar.addButton("geSprite-insertrowafter",mxResources.get("insertRowAfter"),mxUtils.bind(this,function(){try{null!=y&&null!=K&&e.insertRow(y,K.sectionRowIndex+1)}catch(Y){this.editorUi.handleError(Y)}}),h),this.editorUi.toolbar.addButton("geSprite-deleterow",mxResources.get("deleteRow"),mxUtils.bind(this,function(){try{null!=y&&null!=K&&e.deleteRow(y,K.sectionRowIndex)}catch(Y){this.editorUi.handleError(Y)}}),
-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!=y){var b=y.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==I||null!=a&&mxEvent.isShiftDown(a)?y:I;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!=y){var b=y.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==I||null!=a&&mxEvent.isShiftDown(a)?y:I;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!=y){var a=y.getAttribute("cellPadding")||0,a=new FilenameDialog(d,a,mxResources.get("apply"),mxUtils.bind(this,function(a){null!=a&&0<a.length?y.setAttribute("cellPadding",a):y.removeAttribute("cellPadding")}),mxResources.get("spacing"));d.showDialog(a.container,300,80,!0,!0);a.init()}},f),this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),function(){null!=y&&y.setAttribute("align","left")},f),this.editorUi.toolbar.addButton("geSprite-center",
-mxResources.get("center"),function(){null!=y&&y.setAttribute("align","center")},f),this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),function(){null!=y&&y.setAttribute("align","right")},f)];this.styleButtons(n);n[2].style.marginRight="10px";k.appendChild(f);a.appendChild(k);F=k}else a.appendChild(k),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(h);var W=mxUtils.bind(this,function(a,d,e){c=this.format.getSelectionState();
-a=mxUtils.getValue(c.style,mxConstants.STYLE_FONTSTYLE,0);b(l[0],(a&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);b(l[1],(a&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC);b(l[2],(a&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);g.firstChild.nodeValue=mxUtils.getValue(c.style,mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont);b(m,"0"==mxUtils.getValue(c.style,mxConstants.STYLE_HORIZONTAL,"1"));if(e||document.activeElement!=N)a=parseFloat(mxUtils.getValue(c.style,mxConstants.STYLE_FONTSIZE,
-Menus.prototype.defaultFontSize)),N.value=isNaN(a)?"":a+" pt";a=mxUtils.getValue(c.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);b(q,a==mxConstants.ALIGN_LEFT);b(u,a==mxConstants.ALIGN_CENTER);b(v,a==mxConstants.ALIGN_RIGHT);a=mxUtils.getValue(c.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);b(w,a==mxConstants.ALIGN_TOP);b(x,a==mxConstants.ALIGN_MIDDLE);b(z,a==mxConstants.ALIGN_BOTTOM);a=mxUtils.getValue(c.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);
-d=mxUtils.getValue(c.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);L.value=a==mxConstants.ALIGN_LEFT&&d==mxConstants.ALIGN_TOP?"topLeft":a==mxConstants.ALIGN_CENTER&&d==mxConstants.ALIGN_TOP?"top":a==mxConstants.ALIGN_RIGHT&&d==mxConstants.ALIGN_TOP?"topRight":a==mxConstants.ALIGN_LEFT&&d==mxConstants.ALIGN_BOTTOM?"bottomLeft":a==mxConstants.ALIGN_CENTER&&d==mxConstants.ALIGN_BOTTOM?"bottom":a==mxConstants.ALIGN_RIGHT&&d==mxConstants.ALIGN_BOTTOM?"bottomRight":a==mxConstants.ALIGN_LEFT?
-"left":a==mxConstants.ALIGN_RIGHT?"right":"center";a=mxUtils.getValue(c.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);a==mxConstants.TEXT_DIRECTION_RTL?O.value="rightToLeft":a==mxConstants.TEXT_DIRECTION_LTR?O.value="leftToRight":a==mxConstants.TEXT_DIRECTION_AUTO&&(O.value="automatic");if(e||document.activeElement!=ga)a=parseFloat(mxUtils.getValue(c.style,mxConstants.STYLE_SPACING,2)),ga.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=ka)a=parseFloat(mxUtils.getValue(c.style,
-mxConstants.STYLE_SPACING_TOP,0)),ka.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=fa)a=parseFloat(mxUtils.getValue(c.style,mxConstants.STYLE_SPACING_RIGHT,0)),fa.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=ca)a=parseFloat(mxUtils.getValue(c.style,mxConstants.STYLE_SPACING_BOTTOM,0)),ca.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=ha)a=parseFloat(mxUtils.getValue(c.style,mxConstants.STYLE_SPACING_LEFT,0)),ha.value=isNaN(a)?"":a+" pt"});pa=this.installInputHandler(ga,
-mxConstants.STYLE_SPACING,2,-999,999," pt");ea=this.installInputHandler(ka,mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");ua=this.installInputHandler(fa,mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");qa=this.installInputHandler(ca,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");ta=this.installInputHandler(ha,mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(N,W);this.addKeyHandler(ga,W);this.addKeyHandler(ka,W);this.addKeyHandler(fa,W);this.addKeyHandler(ca,W);this.addKeyHandler(ha,
-W);e.getModel().addListener(mxEvent.CHANGE,W);this.listeners.push({destroy:function(){e.getModel().removeListener(W)}});W();if(e.cellEditor.isContentEditing()){var ra=!1,f=function(){ra||(ra=!0,window.setTimeout(function(){var a=e.getSelectedEditingElement();if(null!=a){var d=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)):""},m=mxUtils.getCurrentStyle(a),n=k(m),
-p=h(n,m,a),t=a.getElementsByTagName("*");if(0<t.length&&window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11)for(var w=window.getSelection(),x=0;x<t.length;x++)if(w.containsNode(t[x],!0)){temp=mxUtils.getCurrentStyle(t[x]);var n=Math.max(k(temp),n),z=h(n,temp,t[x]);if(z!=p||isNaN(z))p=""}null!=m&&(b(l[0],"bold"==m.fontWeight||400<m.fontWeight||f("B")||f("STRONG")),b(l[1],"italic"==m.fontStyle||f("I")||f("EM")),b(l[2],f("U")),b(H,f("SUP")),b(E,f("SUB")),e.cellEditor.isTableSelected()?(b(C,d(m.textAlign,
-"justify")),b(q,d(m.textAlign,"left")),b(u,d(m.textAlign,"center")),b(v,d(m.textAlign,"right"))):(f=e.cellEditor.align||mxUtils.getValue(c.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),d(m.textAlign,"justify")?(b(C,d(m.textAlign,"justify")),b(q,!1),b(u,!1),b(v,!1)):(b(C,!1),b(q,f==mxConstants.ALIGN_LEFT),b(u,f==mxConstants.ALIGN_CENTER),b(v,f==mxConstants.ALIGN_RIGHT))),y=e.getParentByName(a,"TABLE",e.cellEditor.textarea),K=null==y?null:e.getParentByName(a,"TR",y),I=null==y?null:e.getParentByNames(a,
-["TD","TH"],y),F.style.display=null!=y?"":"none",document.activeElement!=N&&("FONT"==a.nodeName&&"4"==a.getAttribute("size")&&null!=S?(a.removeAttribute("size"),a.style.fontSize=S+" pt",S=null):N.value=isNaN(n)?"":n+" pt",z=parseFloat(p),isNaN(z)?ia.value="100 %":ia.value=Math.round(100*z)+" %"),d=m.color.replace(/\brgba?\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+)\s*)?\)/g,function(a,b,c,d,e){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)+
-(null!=e?("0"+Number(e).toString(16)).substr(-2):"")}),n=m.backgroundColor.replace(/\brgba?\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+)\s*)?\)/g,function(a,b,c,d,e){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)+(null!=e?("0"+Number(e).toString(16)).substr(-2):"")}),null!=ja&&(da="#"==d.charAt(0)?d:"#000000",ja(da,!0)),null!=Q&&(U="#"==n.charAt(0)?n:null,Q(U,!0)),null!=g.firstChild&&(g.firstChild.nodeValue=
-Graph.stripQuotes(m.fontFamily)))}ra=!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,d){BaseFormatPanel.call(this,a,b,d);this.init()};mxUtils.extend(StyleFormatPanel,BaseFormatPanel);StyleFormatPanel.prototype.defaultStrokeColor="black";
+e.defaultPageBackgroundColor);ma.style.fontWeight="bold";var na=this.createCellColorOption(mxResources.get("borderColor"),mxConstants.STYLE_LABEL_BORDERCOLOR,"default",null,null,e.defaultForegroundColor);na.style.fontWeight="bold";h=1<=c.vertices.length?e.stylesheet.getDefaultVertexStyle():e.stylesheet.getDefaultEdgeStyle();h=e.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("fontColor"),function(){return ja},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");d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTCOLOR],"values",[a],"cells",c.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"),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTCOLOR],"values",[a],"cells",c.cells))},null!=h[mxConstants.STYLE_FONTCOLOR]?h[mxConstants.STYLE_FONTCOLOR]:"#000000",{install:function(a){fa=a},destroy:function(){fa=null}},null,!0):this.createCellColorOption(mxResources.get("fontColor"),
+mxConstants.STYLE_FONTCOLOR,"default",function(a){ma.style.display=a==mxConstants.NONE?"none":"";na.style.display=ma.style.display},function(a){a==mxConstants.NONE?e.setCellStyles(mxConstants.STYLE_NOLABEL,"1",c.cells):e.setCellStyles(mxConstants.STYLE_NOLABEL,null,c.cells);e.setCellStyles(mxConstants.STYLE_FONTCOLOR,a,c.cells);e.updateLabelElements(c.cells,function(a){a.removeAttribute("color");a.style.color=null})},Editor.isDarkMode()?"#ffffff":"#000000");h.style.fontWeight="bold";k.appendChild(h);
+k.appendChild(ma);e.cellEditor.isContentEditing()||k.appendChild(na);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,d.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 ca,oa,sa,
+pa,ta,ka=this.addUnitInput(h,"pt",87,52,function(){ca.apply(this,arguments)}),ga=this.addUnitInput(h,"pt",16,52,function(){oa.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 ha=this.addUnitInput(h,"pt",158,52,function(){sa.apply(this,arguments)}),aa=this.addUnitInput(h,"pt",87,52,function(){pa.apply(this,arguments)}),da=this.addUnitInput(h,"pt",16,52,function(){ta.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 la=null,ia=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!=la&&(e.cellEditor.restoreSelection(la),la=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){ia=a;mxEvent.addListener(a,"mousedown",function(){document.activeElement==e.cellEditor.textarea&&
+(la=e.cellEditor.saveSelection())});mxEvent.addListener(a,"touchstart",function(){document.activeElement==e.cellEditor.textarea&&(la=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!=
+y&&e.insertColumn(y,null!=I?I.cellIndex:0)}catch(J){this.editorUi.handleError(J)}}),h),this.editorUi.toolbar.addButton("geSprite-insertcolumnafter",mxResources.get("insertColumnAfter"),mxUtils.bind(this,function(){try{null!=y&&e.insertColumn(y,null!=I?I.cellIndex+1:-1)}catch(J){this.editorUi.handleError(J)}}),h),this.editorUi.toolbar.addButton("geSprite-deletecolumn",mxResources.get("deleteColumn"),mxUtils.bind(this,function(){try{null!=y&&null!=I&&e.deleteColumn(y,I.cellIndex)}catch(J){this.editorUi.handleError(J)}}),
+h),this.editorUi.toolbar.addButton("geSprite-insertrowbefore",mxResources.get("insertRowBefore"),mxUtils.bind(this,function(){try{null!=y&&null!=L&&e.insertRow(y,L.sectionRowIndex)}catch(J){this.editorUi.handleError(J)}}),h),this.editorUi.toolbar.addButton("geSprite-insertrowafter",mxResources.get("insertRowAfter"),mxUtils.bind(this,function(){try{null!=y&&null!=L&&e.insertRow(y,L.sectionRowIndex+1)}catch(J){this.editorUi.handleError(J)}}),h),this.editorUi.toolbar.addButton("geSprite-deleterow",mxResources.get("deleteRow"),
+mxUtils.bind(this,function(){try{null!=y&&null!=L&&e.deleteRow(y,L.sectionRowIndex)}catch(J){this.editorUi.handleError(J)}}),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!=
+y){var b=y.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==I||null!=a&&mxEvent.isShiftDown(a)?y:I;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!=y){var b=y.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==I||null!=
+a&&mxEvent.isShiftDown(a)?y:I;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!=y){var a=y.getAttribute("cellPadding")||0,a=new FilenameDialog(d,a,mxResources.get("apply"),mxUtils.bind(this,function(a){null!=a&&0<a.length?y.setAttribute("cellPadding",a):y.removeAttribute("cellPadding")}),mxResources.get("spacing"));d.showDialog(a.container,
+300,80,!0,!0);a.init()}},f),this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),function(){null!=y&&y.setAttribute("align","left")},f),this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center"),function(){null!=y&&y.setAttribute("align","center")},f),this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),function(){null!=y&&y.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 V=mxUtils.bind(this,function(a,d,e){c=this.format.getSelectionState();a=mxUtils.getValue(c.style,mxConstants.STYLE_FONTSTYLE,0);b(l[0],(a&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);b(l[1],(a&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC);b(l[2],(a&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);g.firstChild.nodeValue=mxUtils.getValue(c.style,
+mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont);b(m,"0"==mxUtils.getValue(c.style,mxConstants.STYLE_HORIZONTAL,"1"));if(e||document.activeElement!=O)a=parseFloat(mxUtils.getValue(c.style,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize)),O.value=isNaN(a)?"":a+" pt";a=mxUtils.getValue(c.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);b(q,a==mxConstants.ALIGN_LEFT);b(u,a==mxConstants.ALIGN_CENTER);b(v,a==mxConstants.ALIGN_RIGHT);a=mxUtils.getValue(c.style,mxConstants.STYLE_VERTICAL_ALIGN,
+mxConstants.ALIGN_MIDDLE);b(w,a==mxConstants.ALIGN_TOP);b(x,a==mxConstants.ALIGN_MIDDLE);b(z,a==mxConstants.ALIGN_BOTTOM);a=mxUtils.getValue(c.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);d=mxUtils.getValue(c.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);M.value=a==mxConstants.ALIGN_LEFT&&d==mxConstants.ALIGN_TOP?"topLeft":a==mxConstants.ALIGN_CENTER&&d==mxConstants.ALIGN_TOP?"top":a==mxConstants.ALIGN_RIGHT&&d==mxConstants.ALIGN_TOP?"topRight":a==mxConstants.ALIGN_LEFT&&
+d==mxConstants.ALIGN_BOTTOM?"bottomLeft":a==mxConstants.ALIGN_CENTER&&d==mxConstants.ALIGN_BOTTOM?"bottom":a==mxConstants.ALIGN_RIGHT&&d==mxConstants.ALIGN_BOTTOM?"bottomRight":a==mxConstants.ALIGN_LEFT?"left":a==mxConstants.ALIGN_RIGHT?"right":"center";a=mxUtils.getValue(c.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);a==mxConstants.TEXT_DIRECTION_RTL?P.value="rightToLeft":a==mxConstants.TEXT_DIRECTION_LTR?P.value="leftToRight":a==mxConstants.TEXT_DIRECTION_AUTO&&(P.value=
+"automatic");if(e||document.activeElement!=ga)a=parseFloat(mxUtils.getValue(c.style,mxConstants.STYLE_SPACING,2)),ga.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=ka)a=parseFloat(mxUtils.getValue(c.style,mxConstants.STYLE_SPACING_TOP,0)),ka.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=da)a=parseFloat(mxUtils.getValue(c.style,mxConstants.STYLE_SPACING_RIGHT,0)),da.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=aa)a=parseFloat(mxUtils.getValue(c.style,mxConstants.STYLE_SPACING_BOTTOM,
+0)),aa.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=ha)a=parseFloat(mxUtils.getValue(c.style,mxConstants.STYLE_SPACING_LEFT,0)),ha.value=isNaN(a)?"":a+" pt"});oa=this.installInputHandler(ga,mxConstants.STYLE_SPACING,2,-999,999," pt");ca=this.installInputHandler(ka,mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");ta=this.installInputHandler(da,mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");pa=this.installInputHandler(aa,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");sa=this.installInputHandler(ha,
+mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(O,V);this.addKeyHandler(ga,V);this.addKeyHandler(ka,V);this.addKeyHandler(da,V);this.addKeyHandler(aa,V);this.addKeyHandler(ha,V);e.getModel().addListener(mxEvent.CHANGE,V);this.listeners.push({destroy:function(){e.getModel().removeListener(V)}});V();if(e.cellEditor.isContentEditing()){var qa=!1,f=function(){qa||(qa=!0,window.setTimeout(function(){var a=e.getSelectedEditingElement();if(null!=a){var d=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)):""},m=mxUtils.getCurrentStyle(a),n=k(m),p=h(n,m,a),t=a.getElementsByTagName("*");if(0<t.length&&window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11)for(var w=window.getSelection(),x=0;x<t.length;x++)if(w.containsNode(t[x],!0)){temp=mxUtils.getCurrentStyle(t[x]);var n=Math.max(k(temp),n),z=h(n,temp,t[x]);if(z!=p||isNaN(z))p=""}null!=m&&(b(l[0],
+"bold"==m.fontWeight||400<m.fontWeight||f("B")||f("STRONG")),b(l[1],"italic"==m.fontStyle||f("I")||f("EM")),b(l[2],f("U")),b(H,f("SUP")),b(E,f("SUB")),e.cellEditor.isTableSelected()?(b(C,d(m.textAlign,"justify")),b(q,d(m.textAlign,"left")),b(u,d(m.textAlign,"center")),b(v,d(m.textAlign,"right"))):(f=e.cellEditor.align||mxUtils.getValue(c.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),d(m.textAlign,"justify")?(b(C,d(m.textAlign,"justify")),b(q,!1),b(u,!1),b(v,!1)):(b(C,!1),b(q,f==mxConstants.ALIGN_LEFT),
+b(u,f==mxConstants.ALIGN_CENTER),b(v,f==mxConstants.ALIGN_RIGHT))),y=e.getParentByName(a,"TABLE",e.cellEditor.textarea),L=null==y?null:e.getParentByName(a,"TR",y),I=null==y?null:e.getParentByNames(a,["TD","TH"],y),G.style.display=null!=y?"":"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",z=parseFloat(p),isNaN(z)?ia.value="100 %":ia.value=Math.round(100*z)+" %"),d=m.color.replace(/\brgba?\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+)\s*)?\)/g,
+function(a,b,c,d,e){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)+(null!=e?("0"+Number(e).toString(16)).substr(-2):"")}),n=m.backgroundColor.replace(/\brgba?\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+)\s*)?\)/g,function(a,b,c,d,e){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)+(null!=e?("0"+Number(e).toString(16)).substr(-2):
+"")}),null!=fa&&(ja="#"==d.charAt(0)?d:"#000000",fa(ja,!0)),null!=Q&&(U="#"==n.charAt(0)?n:null,Q(U,!0)),null!=g.firstChild&&(g.firstChild.nodeValue=Graph.stripQuotes(m.fontFamily)))}qa=!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,d){BaseFormatPanel.call(this,a,b,d);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))};
StyleFormatPanel.prototype.getCssRules=function(a){var b=document.implementation.createHTMLDocument(""),d=document.createElement("style");mxUtils.setTextContent(d,a);b.body.appendChild(d);return d.sheet.cssRules};
@@ -3176,21 +3174,21 @@ 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"}})),x=this.addArrow(v,8);x.nextSibling.style.position="relative";x.nextSibling.style.top="-2px";x=this.addArrow(z,10);x.nextSibling.style.position="relative";x.nextSibling.style.top="-3px";z.getElementsByTagName("img")[0].style.top="-1px";this.addArrow(E);this.addArrow(H);x=this.addArrow(l,9);x.className="geIcon";x.style.width="auto";var C=this.addArrow(m,9);C.className="geIcon";C.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";x.appendChild(F);var y=document.createElement("div");y.style.width="23px";y.style.height="1px";y.style.borderBottom="1px solid "+this.defaultStrokeColor;y.style.marginBottom="7px";C.appendChild(y);l.style.height="15px";l.style.marginLeft="16px";m.style.height="15px";m.style.marginLeft="3px";v.style.marginLeft="10px";v.style.height="15px";z.style.marginLeft="10px";z.style.height="17px";E.style.marginLeft="3px";E.style.height=
-"17px";H.style.marginLeft="3px";H.style.height="17px";a.appendChild(k);a.appendChild(u);a.appendChild(p);l=p.cloneNode(!1);l.style.padding="5px 4px 6px 0px";l.style.fontWeight="normal";m=document.createElement("div");m.style.position="absolute";m.style.marginLeft="0px";m.style.marginBottom="12px";m.style.marginTop="2px";m.style.fontWeight="normal";m.style.width="76px";mxUtils.write(m,mxResources.get("lineend"));l.appendChild(m);var I,K,L=this.addUnitInput(l,"pt",98,52,function(){I.apply(this,arguments)}),
-R=this.addUnitInput(l,"pt",30,52,function(){K.apply(this,arguments)});mxUtils.br(l);x=document.createElement("div");x.style.height="8px";l.appendChild(x);m=m.cloneNode(!1);mxUtils.write(m,mxResources.get("linestart"));l.appendChild(m);var J,O,aa=this.addUnitInput(l,"pt",98,52,function(){J.apply(this,arguments)}),ba=this.addUnitInput(l,"pt",30,52,function(){O.apply(this,arguments)});mxUtils.br(l);this.addLabel(l,mxResources.get("spacing"),98,52);this.addLabel(l,mxResources.get("size"),30,52);mxUtils.br(l);
-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";m=document.createElement("div");m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom="12px";m.style.marginTop="1px";m.style.fontWeight="normal";m.style.width="120px";mxUtils.write(m,mxResources.get("perimeter"));k.appendChild(m);var N,S=this.addUnitInput(k,"pt",30,52,function(){N.apply(this,
+a.div.style.width="40px"}})),x=this.addArrow(v,8);x.nextSibling.style.position="relative";x.nextSibling.style.top="-2px";x=this.addArrow(z,10);x.nextSibling.style.position="relative";x.nextSibling.style.top="-3px";z.getElementsByTagName("img")[0].style.top="-1px";this.addArrow(E);this.addArrow(H);x=this.addArrow(l,9);x.className="geIcon";x.style.width="auto";var C=this.addArrow(m,9);C.className="geIcon";C.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";x.appendChild(G);var y=document.createElement("div");y.style.width="23px";y.style.height="1px";y.style.borderBottom="1px solid "+this.defaultStrokeColor;y.style.marginBottom="7px";C.appendChild(y);l.style.height="15px";l.style.marginLeft="16px";m.style.height="15px";m.style.marginLeft="3px";v.style.marginLeft="10px";v.style.height="15px";z.style.marginLeft="10px";z.style.height="17px";E.style.marginLeft="3px";E.style.height=
+"17px";H.style.marginLeft="3px";H.style.height="17px";a.appendChild(k);a.appendChild(u);a.appendChild(p);l=p.cloneNode(!1);l.style.padding="5px 4px 6px 0px";l.style.fontWeight="normal";m=document.createElement("div");m.style.position="absolute";m.style.marginLeft="0px";m.style.marginBottom="12px";m.style.marginTop="2px";m.style.fontWeight="normal";m.style.width="76px";mxUtils.write(m,mxResources.get("lineend"));l.appendChild(m);var I,L,M=this.addUnitInput(l,"pt",98,52,function(){I.apply(this,arguments)}),
+R=this.addUnitInput(l,"pt",30,52,function(){L.apply(this,arguments)});mxUtils.br(l);x=document.createElement("div");x.style.height="8px";l.appendChild(x);m=m.cloneNode(!1);mxUtils.write(m,mxResources.get("linestart"));l.appendChild(m);var K,P,X=this.addUnitInput(l,"pt",98,52,function(){K.apply(this,arguments)}),Z=this.addUnitInput(l,"pt",30,52,function(){P.apply(this,arguments)});mxUtils.br(l);this.addLabel(l,mxResources.get("spacing"),98,52);this.addLabel(l,mxResources.get("size"),30,52);mxUtils.br(l);
+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";m=document.createElement("div");m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom="12px";m.style.marginTop="1px";m.style.fontWeight="normal";m.style.width="120px";mxUtils.write(m,mxResources.get("perimeter"));k.appendChild(m);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(l)):f.vertices.length==f.cells.length&&a.appendChild(k);var Q=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!=w)b=parseFloat(mxUtils.getValue(f.style,
-mxConstants.STYLE_STROKEWIDTH,1)),w.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;y.style.borderBottom=F.style.borderBottom;b=z.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)),w.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;y.style.borderBottom=G.style.borderBottom;b=z.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"),E,"start");c=g(mxUtils.getValue(f.style,
mxConstants.STYLE_ENDARROW,null),mxUtils.getValue(f.style,"endFill","1"),H,"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(z,"arrow"==f.style.shape?30:100);"connector"!=f.style.shape&&"flexArrow"!=f.style.shape&&"filledEdge"!=f.style.shape?(mxUtils.setOpacity(E,30),mxUtils.setOpacity(H,
-30)):(mxUtils.setOpacity(E,100),mxUtils.setOpacity(H,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!=aa)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),aa.value=isNaN(b)?"":b+" pt";if(d||document.activeElement!=R)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),R.value=isNaN(b)?
-"":b+" pt";if(d||document.activeElement!=aa)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"});O=this.installInputHandler(ba,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");J=this.installInputHandler(aa,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");K=this.installInputHandler(R,
-mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");I=this.installInputHandler(L,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0,-999,999," pt");N=this.installInputHandler(S,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(t,Q);this.addKeyHandler(ba,Q);this.addKeyHandler(aa,Q);this.addKeyHandler(R,Q);this.addKeyHandler(L,Q);this.addKeyHandler(S,Q);c.getModel().addListener(mxEvent.CHANGE,Q);this.listeners.push({destroy:function(){c.getModel().removeListener(Q)}});
+30)):(mxUtils.setOpacity(E,100),mxUtils.setOpacity(H,100));if(d||document.activeElement!=Z)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)),Z.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!=R)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),R.value=isNaN(b)?
+"":b+" pt";if(d||document.activeElement!=X)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0)),M.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"});P=this.installInputHandler(Z,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");K=this.installInputHandler(X,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");L=this.installInputHandler(R,
+mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");I=this.installInputHandler(M,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0,-999,999," pt");O=this.installInputHandler(S,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(t,Q);this.addKeyHandler(Z,Q);this.addKeyHandler(X,Q);this.addKeyHandler(R,Q);this.addKeyHandler(M,Q);this.addKeyHandler(S,Q);c.getModel().addListener(mxEvent.CHANGE,Q);this.listeners.push({destroy:function(){c.getModel().removeListener(Q)}});
Q();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 d=this.editorUi,e=d.editor.graph,c=document.createElement("div");c.style.position="absolute";c.style.maxWidth="82px";c.style.overflow="hidden";c.style.textOverflow="ellipsis";mxUtils.write(c,mxResources.get("lineJumps"));a.appendChild(c);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 c=["none","arc","gap","sharp","line"],k=0;k<c.length;k++){var h=document.createElement("option");h.setAttribute("value",c[k]);mxUtils.write(h,mxResources.get(c[k]));f.appendChild(h)}mxEvent.addListener(f,"change",function(a){e.getModel().beginUpdate();try{e.setCellStyles("jumpStyle",
@@ -3208,18 +3206,18 @@ m.appendChild(n);m.appendChild(p);l.appendChild(m);n.appendChild(this.createOpti
0;f<c.length;f++){var g=d.getCellStyle(c[f]);null!=g.labelBackgroundColor&&d.updateCellStyles("labelBackgroundColor",null!=b?b.background:null,[c[f]]);for(var k=e.isEdge(c[f]),h=e.getStyle(c[f]),l=k?d.currentEdgeStyle:d.currentVertexStyle,m=0;m<a.length;m++)if(null!=g[a[m]]&&g[a[m]]!=mxConstants.NONE||a[m]!=mxConstants.STYLE_FILLCOLOR&&a[m]!=mxConstants.STYLE_STROKECOLOR)h=mxUtils.setStyle(h,a[m],l[a[m]]);e.setStyle(c[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,c,e,f){if(null!=a){null!=c&&null!=b.labelBackgroundColor&&(e=null!=e?e.background:null,f=null!=f?f:d,null==e&&(e=f.background),null==e&&(e=f.defaultPageBackgroundColor),b.labelBackgroundColor=e);for(var g in a)if(null==c||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=d.getVerticesAndEdges(!0,!0);if(0<a.length){e.beginUpdate();try{d.updateCellStyles("sketch",null,a),d.updateCellStyles("rounded",null,a),d.updateCellStyles("curved",null,d.getVerticesAndEdges(!1,!0))}finally{e.endUpdate()}}d.defaultVertexStyle=mxUtils.clone(b.initialDefaultVertexStyle);d.defaultEdgeStyle=mxUtils.clone(b.initialDefaultEdgeStyle);b.clearDefaultStyle()}));n.setAttribute("title",mxResources.get("reset"));
-n.style.textOverflow="ellipsis";n.style.maxWidth="90px";p.appendChild(n);var w=mxUtils.bind(this,function(a,b,c,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,d.getStylesheet());h.defaultPageBackgroundColor=d.defaultPageBackgroundColor;h.defaultForegroundColor=d.defaultForegroundColor;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)),l=d.stylesheet.getDefaultVertexStyle(),m=b;e.isEdge(g)&&(l=d.stylesheet.getDefaultEdgeStyle(),m=c);v(k,q,l);t(a,k,g,f,h);t(m,k,g,f,h);return k};h.model.beginUpdate();try{var l=h.insertVertex(h.getDefaultParent(),null,"Shape",14,8,70,40,"strokeWidth=2;"),m=h.insertEdge(h.getDefaultParent(),
-null,"Connector",l,l,"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;endSize=5;strokeWidth=2;");m.geometry.points=[new mxPoint(32,70)];m.geometry.offset=new mxPoint(0,8)}finally{h.model.endUpdate()}}),x=document.createElement("div");x.style.position="relative";a.appendChild(x);null==this.format.cachedStyleEntries&&(this.format.cachedStyleEntries=[]);var z=mxUtils.bind(this,function(a,g,h,l,m){var n=this.format.cachedStyleEntries[m];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!=l&&null!=l.background&&(n.style.backgroundColor=l.background),w(a,g,h,l,n),mxEvent.addGestureListeners(n,mxUtils.bind(this,function(a){n.style.opacity=.5}),null,mxUtils.bind(this,function(m){n.style.opacity=1;d.defaultVertexStyle=mxUtils.clone(b.initialDefaultVertexStyle);
-d.defaultEdgeStyle=mxUtils.clone(b.initialDefaultEdgeStyle);t(a,d.defaultVertexStyle);t(a,d.defaultEdgeStyle);t(g,d.defaultVertexStyle);t(h,d.defaultEdgeStyle);b.clearDefaultStyle();c?(d.currentEdgeStyle.sketch="1",d.currentVertexStyle.sketch="1"):(d.currentEdgeStyle.sketch="0",d.currentVertexStyle.sketch="0");d.currentVertexStyle.rounded=f?"1":"0";d.currentEdgeStyle.rounded="1";d.currentEdgeStyle.curved=k?"1":"0";e.beginUpdate();try{u(q,l);var p=new ChangePageSetup(b,null!=l?l.background:null);p.ignoreImage=
-!0;e.execute(p);e.execute(new ChangeGridColor(b,null!=l&&null!=l.gridColor?l.gridColor:d.view.defaultGridColor))}finally{e.endUpdate()}})),mxEvent.addListener(n,"mouseenter",mxUtils.bind(this,function(b){var c=d.getCellStyle;b=d.background;var f=d.view.gridColor;d.background=null!=l?l.background:null;d.view.gridColor=null!=l&&null!=l.gridColor?l.gridColor:d.view.defaultGridColor;d.getCellStyle=function(b){var f=mxUtils.clone(c.apply(this,arguments)),k=d.stylesheet.getDefaultVertexStyle(),m=g;e.isEdge(b)&&
-(k=d.stylesheet.getDefaultEdgeStyle(),m=h);v(f,q,k);t(a,f,b,l);t(m,f,b,l);return f};d.refresh();d.getCellStyle=c;d.background=b;d.view.gridColor=f})),mxEvent.addListener(n,"mouseleave",mxUtils.bind(this,function(a){d.refresh()})),mxClient.IS_IE||mxClient.IS_IE11||(this.format.cachedStyleEntries[m]=n));x.appendChild(n)}),E=Math.ceil(Editor.styles.length/10);this.format.currentStylePage=null!=this.format.currentStylePage?this.format.currentStylePage:0;var H=[],C=mxUtils.bind(this,function(){0<H.length&&
-(H[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];z(b.commonStyle,b.vertexStyle,b.edgeStyle,b.graph,a)}}),F=mxUtils.bind(this,function(a){0<=a&&a<E&&(H[this.format.currentStylePage].style.background="transparent",x.innerHTML="",this.format.currentStylePage=a,C())});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 y=document.createElement("div");y.style.display="inline-block";y.style.width="6px";y.style.height="6px";y.style.marginLeft="4px";y.style.marginRight="3px";y.style.borderRadius="3px";y.style.cursor="pointer";y.style.background="transparent";y.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(a,b){mxEvent.addListener(y,"click",mxUtils.bind(this,function(){F(a)}))})(p,
-y);h.appendChild(y);H.push(y)}a.appendChild(h);C();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 C();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,d){BaseFormatPanel.call(this,a,b,d);this.init()};mxUtils.extend(DiagramFormatPanel,BaseFormatPanel);DiagramFormatPanel.showPageView=!0;DiagramFormatPanel.prototype.showBackgroundImageOption=!0;
+n.style.textOverflow="ellipsis";n.style.maxWidth="90px";p.appendChild(n);var w=mxUtils.bind(this,function(a,b,c,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,d.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)),l=d.stylesheet.getDefaultVertexStyle(),m=b;e.isEdge(g)&&(l=d.stylesheet.getDefaultEdgeStyle(),m=c);v(k,q,l);t(a,k,g,f,h);t(m,k,g,f,h);null!=k&&(k=this.postProcessCellStyle(k));return k};h.model.beginUpdate();try{var l=h.insertVertex(h.getDefaultParent(),null,"Shape",14,8,70,40,"strokeWidth=2;"),m=h.insertEdge(h.getDefaultParent(),null,"Connector",l,l,"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;endSize=5;strokeWidth=2;");
+m.geometry.points=[new mxPoint(32,70)];m.geometry.offset=new mxPoint(0,8)}finally{h.model.endUpdate()}}),x=document.createElement("div");x.style.position="relative";a.appendChild(x);null==this.format.cachedStyleEntries&&(this.format.cachedStyleEntries=[]);var z=mxUtils.bind(this,function(a,g,h,l,m){var n=this.format.cachedStyleEntries[m];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!=l&&null!=l.background&&(n.style.backgroundColor=l.background),w(a,g,h,l,n),mxEvent.addGestureListeners(n,mxUtils.bind(this,function(a){n.style.opacity=.5}),null,mxUtils.bind(this,function(m){n.style.opacity=1;d.defaultVertexStyle=mxUtils.clone(b.initialDefaultVertexStyle);d.defaultEdgeStyle=mxUtils.clone(b.initialDefaultEdgeStyle);t(a,d.defaultVertexStyle);t(a,d.defaultEdgeStyle);t(g,d.defaultVertexStyle);
+t(h,d.defaultEdgeStyle);b.clearDefaultStyle();c?(d.currentEdgeStyle.sketch="1",d.currentVertexStyle.sketch="1"):(d.currentEdgeStyle.sketch="0",d.currentVertexStyle.sketch="0");d.currentVertexStyle.rounded=f?"1":"0";d.currentEdgeStyle.rounded="1";d.currentEdgeStyle.curved=k?"1":"0";e.beginUpdate();try{u(q,l);var p=new ChangePageSetup(b,null!=l?l.background:null);p.ignoreImage=!0;e.execute(p);e.execute(new ChangeGridColor(b,null!=l&&null!=l.gridColor?l.gridColor:d.view.defaultGridColor))}finally{e.endUpdate()}})),
+mxEvent.addListener(n,"mouseenter",mxUtils.bind(this,function(b){var c=d.getCellStyle;b=d.background;var f=d.view.gridColor;d.background=null!=l?l.background:null;d.view.gridColor=null!=l&&null!=l.gridColor?l.gridColor:d.view.defaultGridColor;d.getCellStyle=function(b){var f=mxUtils.clone(c.apply(this,arguments)),k=d.stylesheet.getDefaultVertexStyle(),m=g;e.isEdge(b)&&(k=d.stylesheet.getDefaultEdgeStyle(),m=h);v(f,q,k);t(a,f,b,l);t(m,f,b,l);null!=f&&(f=this.postProcessCellStyle(f));return f};d.refresh();
+d.getCellStyle=c;d.background=b;d.view.gridColor=f})),mxEvent.addListener(n,"mouseleave",mxUtils.bind(this,function(a){d.refresh()})),mxClient.IS_IE||mxClient.IS_IE11||(this.format.cachedStyleEntries[m]=n));x.appendChild(n)}),E=Math.ceil(Editor.styles.length/10);this.format.currentStylePage=null!=this.format.currentStylePage?this.format.currentStylePage:0;var H=[],C=mxUtils.bind(this,function(){0<H.length&&(H[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];z(b.commonStyle,b.vertexStyle,b.edgeStyle,b.graph,a)}}),G=mxUtils.bind(this,function(a){0<=a&&a<E&&(H[this.format.currentStylePage].style.background="transparent",x.innerHTML="",this.format.currentStylePage=a,C())});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 y=document.createElement("div");y.style.display="inline-block";y.style.width="6px";y.style.height="6px";y.style.marginLeft="4px";y.style.marginRight="3px";y.style.borderRadius="3px";y.style.cursor="pointer";y.style.background="transparent";y.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(a,b){mxEvent.addListener(y,"click",mxUtils.bind(this,function(){G(a)}))})(p,y);h.appendChild(y);H.push(y)}a.appendChild(h);C();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(){G(mxUtils.mod(this.format.currentStylePage-1,E))})),mxEvent.addListener(p,"click",mxUtils.bind(this,function(){G(mxUtils.mod(this.format.currentStylePage+1,E))})),g(n),g(p))}else C();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,d){BaseFormatPanel.call(this,a,b,d);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,d=b.editor.graph;a.appendChild(this.createTitle(mxResources.get("view")));this.addGridOption(a);DiagramFormatPanel.showPageView&&a.appendChild(this.createOption(mxResources.get("pageView"),function(){return d.pageVisible},function(a){b.actions.get("pageView").funct()},{install:function(a){this.listener=function(){a(d.pageVisible)};b.addListener("pageViewChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}}));
if(d.isEnabled()){var e=this.createColorOption(mxResources.get("background"),function(){return d.background},function(a){a=new ChangePageSetup(b,a);a.ignoreImage=!0;d.model.execute(a)},"#ffffff",{install:function(a){this.listener=function(){a(d.background)};b.addListener("backgroundColorChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});if(this.showBackgroundImageOption){var c=e.getElementsByTagName("span")[0];c.style.display="inline-block";c.style.textOverflow="ellipsis";
@@ -3237,16 +3235,16 @@ function(){e.set(d.pageFormat)});var c=function(){e.set(d.pageFormat)};b.addList
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(){mxSwimlane.call(this)}function b(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function e(){mxActor.call(this)}function c(){mxCylinder.call(this)}function f(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function h(){mxCylinder.call(this)}function g(){mxShape.call(this)}function l(){mxShape.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}function n(){mxActor.call(this)}function p(){mxCylinder.call(this)}
function q(){mxCylinder.call(this)}function u(){mxActor.call(this)}function v(){mxActor.call(this)}function t(){mxActor.call(this)}function w(){mxActor.call(this)}function x(){mxActor.call(this)}function z(){mxActor.call(this)}function E(){mxActor.call(this)}function H(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,H.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
-this.canvas.moveTo=mxUtils.bind(this,H.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,H.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,H.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,H.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,H.prototype.arcTo)}function C(){mxRectangleShape.call(this)}function F(){mxRectangleShape.call(this)}
-function y(){mxActor.call(this)}function I(){mxActor.call(this)}function K(){mxActor.call(this)}function L(){mxRectangleShape.call(this)}function R(){mxRectangleShape.call(this)}function J(){mxCylinder.call(this)}function O(){mxShape.call(this)}function aa(){mxShape.call(this)}function ba(){mxEllipse.call(this)}function N(){mxShape.call(this)}function S(){mxShape.call(this)}function Q(){mxRectangleShape.call(this)}function U(){mxShape.call(this)}function ja(){mxShape.call(this)}function da(){mxShape.call(this)}
-function na(){mxShape.call(this)}function oa(){mxShape.call(this)}function ea(){mxCylinder.call(this)}function pa(){mxCylinder.call(this)}function ta(){mxRectangleShape.call(this)}function qa(){mxDoubleEllipse.call(this)}function ua(){mxDoubleEllipse.call(this)}function ka(){mxArrowConnector.call(this);this.spacing=0}function ga(){mxArrowConnector.call(this);this.spacing=0}function ha(){mxActor.call(this)}function ca(){mxRectangleShape.call(this)}function fa(){mxActor.call(this)}function ma(){mxActor.call(this)}
-function ia(){mxActor.call(this)}function W(){mxActor.call(this)}function ra(){mxActor.call(this)}function Y(){mxActor.call(this)}function P(){mxActor.call(this)}function X(){mxActor.call(this)}function Z(){mxActor.call(this)}function V(){mxActor.call(this)}function la(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}function Ba(){mxEllipse.call(this)}function Ma(){mxRhombus.call(this)}function Na(){mxEllipse.call(this)}function Oa(){mxEllipse.call(this)}function Fa(){mxEllipse.call(this)}
-function Ga(){mxEllipse.call(this)}function Ha(){mxActor.call(this)}function ya(){mxActor.call(this)}function za(){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 wa(){mxConnector.call(this)}function Sa(a,b,c,d,e,f,g,k,h,l){g+=h;var r=d.clone();d.x-=e*(2*g+h);d.y-=f*(2*g+h);e*=g+h;f*=g+h;return function(){a.ellipse(r.x-
+this.canvas.moveTo=mxUtils.bind(this,H.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,H.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,H.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,H.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,H.prototype.arcTo)}function C(){mxRectangleShape.call(this)}function G(){mxRectangleShape.call(this)}
+function y(){mxActor.call(this)}function I(){mxActor.call(this)}function L(){mxActor.call(this)}function M(){mxRectangleShape.call(this)}function R(){mxRectangleShape.call(this)}function K(){mxCylinder.call(this)}function P(){mxShape.call(this)}function X(){mxShape.call(this)}function Z(){mxEllipse.call(this)}function O(){mxShape.call(this)}function S(){mxShape.call(this)}function Q(){mxRectangleShape.call(this)}function U(){mxShape.call(this)}function fa(){mxShape.call(this)}function ja(){mxShape.call(this)}
+function ma(){mxShape.call(this)}function na(){mxShape.call(this)}function ca(){mxCylinder.call(this)}function oa(){mxCylinder.call(this)}function sa(){mxRectangleShape.call(this)}function pa(){mxDoubleEllipse.call(this)}function ta(){mxDoubleEllipse.call(this)}function ka(){mxArrowConnector.call(this);this.spacing=0}function ga(){mxArrowConnector.call(this);this.spacing=0}function ha(){mxActor.call(this)}function aa(){mxRectangleShape.call(this)}function da(){mxActor.call(this)}function la(){mxActor.call(this)}
+function ia(){mxActor.call(this)}function V(){mxActor.call(this)}function qa(){mxActor.call(this)}function J(){mxActor.call(this)}function W(){mxActor.call(this)}function Y(){mxActor.call(this)}function ba(){mxActor.call(this)}function ea(){mxActor.call(this)}function va(){mxEllipse.call(this)}function Aa(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}function Ma(){mxRhombus.call(this)}function Na(){mxEllipse.call(this)}function Oa(){mxEllipse.call(this)}function Fa(){mxEllipse.call(this)}
+function Ga(){mxEllipse.call(this)}function Ha(){mxActor.call(this)}function ya(){mxActor.call(this)}function za(){mxActor.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;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function wa(){mxConnector.call(this)}function Ra(a,b,c,d,e,f,g,k,h,l){g+=h;var r=d.clone();d.x-=e*(2*g+h);d.y-=f*(2*g+h);e*=g+h;f*=g+h;return function(){a.ellipse(r.x-
e-g,r.y-f-g,2*g,2*g);l?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxSwimlane);a.prototype.getLabelBounds=function(a){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};a.prototype.paintVertexShape=function(a,b,c,d,e){0==this.getTitleSize()?mxRectangleShape.prototype.paintBackground.apply(this,arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),a.translate(-b,-c));this.paintForeground(a,
b,c,d,e)};a.prototype.paintForeground=function(a,b,c,d,e){if(null!=this.state){var r=this.flipH,f=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)var g=r,r=f,f=g;a.rotate(-this.getShapeRotation(),r,f,b+d/2,c+e/2);s=this.scale;b=this.bounds.x/s;c=this.bounds.y/s;d=this.bounds.width/s;e=this.bounds.height/s;this.paintTableForeground(a,b,c,d,e)}};a.prototype.paintTableForeground=function(a,b,c,d,e){var r=this.state.view.graph,f=r.getActualStartSize(this.state.cell),
-g=r.model.getChildCells(this.state.cell,!0);if(0<g.length){var A="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),D="0"!=mxUtils.getValue(this.state.style,"columnLines","1"),k=r.getCellGeometry(g[0]),h=r.model.getChildCells(g[0],!0),h=[{y:null!=k?k.y+k.height:0,x:0,cells:h,colspans:[]}];if(A)for(A=1;A<g.length;A++){var k=r.getCellGeometry(g[A]),G={y:0,cells:r.model.getChildCells(g[A],!0),colspans:[]};h.push(G);if(null!=k){G.y=k.y+k.height;a.begin();a.moveTo(b+f.x,c+k.y);for(var B=0,l=0;l<G.cells.length;l++)r.model.isVisible(G.cells[l])?
-B=G.x:(0<B&&a.lineTo(b+B-f.width,c+k.y),a.moveTo(b+k.x+k.width+f.x,c+k.y),B=0);a.lineTo(b+d-f.width,c+k.y);a.end();a.stroke()}}if(D)for(d=h[0].cells,A=1;A<d.length;A++)if(k=r.getCellGeometry(d[A]),null!=k){a.begin();a.moveTo(b+k.x+f.x,c+f.y);for(var l=g=0;l<h.length;l++)G=h[l],D=1==A?parseInt(r.getCurrentCellStyle(G.cells[A-1]).colspan||1):h[l].colspans[A-1],G.colspans[A]=D-1,1>G.colspans[A]?(G.colspans[A]=parseInt(r.getCurrentCellStyle(G.cells[A]).colspan||1),g=G.y):(0<g&&a.lineTo(b+k.x+f.x,c+g-
-f.height),a.moveTo(b+k.x+f.x,c+G.y),g=0);a.lineTo(b+k.x+f.x,c+e-f.height);a.end();a.stroke()}}};mxCellRenderer.registerShape("table",a);mxUtils.extend(b,mxCylinder);b.prototype.size=20;b.prototype.darkOpacity=0;b.prototype.darkOpacity2=0;b.prototype.paintVertexShape=function(a,b,c,d,e){var r=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),f=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity)))),g=Math.max(-1,Math.min(1,
+g=r.model.getChildCells(this.state.cell,!0);if(0<g.length){var A="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),D="0"!=mxUtils.getValue(this.state.style,"columnLines","1"),k=r.getCellGeometry(g[0]),h=r.model.getChildCells(g[0],!0),h=[{y:null!=k?k.y+k.height:0,x:0,cells:h,colspans:[]}];if(A)for(A=1;A<g.length;A++){var k=r.getCellGeometry(g[A]),F={y:0,cells:r.model.getChildCells(g[A],!0),colspans:[]};h.push(F);if(null!=k){F.y=k.y+k.height;a.begin();a.moveTo(b+f.x,c+k.y);for(var B=0,l=0;l<F.cells.length;l++)r.model.isVisible(F.cells[l])?
+B=F.x:(0<B&&a.lineTo(b+B-f.width,c+k.y),a.moveTo(b+k.x+k.width+f.x,c+k.y),B=0);a.lineTo(b+d-f.width,c+k.y);a.end();a.stroke()}}if(D)for(d=h[0].cells,A=1;A<d.length;A++)if(k=r.getCellGeometry(d[A]),null!=k){a.begin();a.moveTo(b+k.x+f.x,c+f.y);for(var l=g=0;l<h.length;l++)F=h[l],D=1==A?parseInt(r.getCurrentCellStyle(F.cells[A-1]).colspan||1):h[l].colspans[A-1],F.colspans[A]=D-1,1>F.colspans[A]?(F.colspans[A]=parseInt(r.getCurrentCellStyle(F.cells[A]).colspan||1),g=F.y):(0<g&&a.lineTo(b+k.x+f.x,c+g-
+f.height),a.moveTo(b+k.x+f.x,c+F.y),g=0);a.lineTo(b+k.x+f.x,c+e-f.height);a.end();a.stroke()}}};mxCellRenderer.registerShape("table",a);mxUtils.extend(b,mxCylinder);b.prototype.size=20;b.prototype.darkOpacity=0;b.prototype.darkOpacity2=0;b.prototype.paintVertexShape=function(a,b,c,d,e){var r=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),f=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity)))),g=Math.max(-1,Math.min(1,
parseFloat(mxUtils.getValue(this.style,"darkOpacity2",this.darkOpacity2))));a.translate(b,c);a.begin();a.moveTo(0,0);a.lineTo(d-r,0);a.lineTo(d,r);a.lineTo(d,e);a.lineTo(r,e);a.lineTo(0,e-r);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=f&&(a.setFillAlpha(Math.abs(f)),a.setFillColor(0>f?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(d-r,0),a.lineTo(d,r),a.lineTo(r,r),a.close(),a.fill()),0!=g&&(a.setFillAlpha(Math.abs(g)),a.setFillColor(0>g?"#FFFFFF":"#000000"),
a.begin(),a.moveTo(0,0),a.lineTo(r,r),a.lineTo(r,e),a.lineTo(0,e-r),a.close(),a.fill()),a.begin(),a.moveTo(r,e),a.lineTo(r,r),a.lineTo(0,0),a.moveTo(r,r),a.lineTo(d,r),a.end(),a.stroke())};b.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",b);var Pa=Math.tan(mxUtils.toRadians(30)),xa=(.5-Pa)/2;mxCellRenderer.registerShape("isoRectangle",
e);mxUtils.extend(d,mxCylinder);d.prototype.size=6;d.prototype.paintVertexShape=function(a,b,c,d,e){a.setFillColor(this.stroke);var r=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;a.ellipse(b+.5*(d-r),c+.5*(e-r),r,r);a.fill();a.setFillColor(mxConstants.NONE);a.rect(b,c,d,e);a.fill()};mxCellRenderer.registerShape("waypoint",d);mxUtils.extend(e,mxActor);e.prototype.size=20;e.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/Pa);a.translate((d-b)/2,
@@ -3269,7 +3267,7 @@ c&&(a.ellipse(0,.5*e-10,20,20),a.fillAndStroke(),a.begin(),a.moveTo(5,.5*e-5),a.
function(a,b,c,d,e){b=Math.max(0,Math.min(d,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,0),new mxPoint(d,e),new mxPoint(0,e),new mxPoint(0,b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("card",u);mxUtils.extend(v,mxActor);v.prototype.size=.4;v.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
"size",this.size))));a.moveTo(0,b/2);a.quadTo(d/4,1.4*b,d/2,b/2);a.quadTo(3*d/4,b*(1-1.4),d,b/2);a.lineTo(d,e-b/2);a.quadTo(3*d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();a.end()};v.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"size",this.size),c=a.width,d=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return b*=
d,new mxRectangle(a.x,a.y+b,c,d-2*b);b*=c;return new mxRectangle(a.x+b,a.y,c-2*b,d)}return a};mxCellRenderer.registerShape("tape",v);mxUtils.extend(t,mxActor);t.prototype.size=.3;t.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*a.height):null};t.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,
-0);a.lineTo(d,0);a.lineTo(d,e-b/2);a.quadTo(3*d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();a.end()};mxCellRenderer.registerShape("document",t);var Xa=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(a,b,c,d){var e=mxUtils.getValue(this.style,"size");return null!=e?d*Math.max(0,Math.min(1,e)):Xa.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=2*mxUtils.getValue(this.style,
+0);a.lineTo(d,0);a.lineTo(d,e-b/2);a.quadTo(3*d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();a.end()};mxCellRenderer.registerShape("document",t);var Wa=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(a,b,c,d){var e=mxUtils.getValue(this.style,"size");return null!=e?d*Math.max(0,Math.min(1,e)):Wa.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=2*mxUtils.getValue(this.style,
"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*this.scale,a.height*b),0,0)}return null};m.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(b/=2);return new mxRectangle(0,Math.min(a.height*this.scale,2*b*this.scale),0,Math.max(0,.3*b*this.scale))}return null};p.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,
"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var c=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,b=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1),r=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));e||(r*=Math.min(a.width,a.height));r=Math.min(r,.5*a.width,.5*(a.height-b));d||(r=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?
new mxRectangle(r,0,Math.min(a.width,a.width-c),Math.min(a.height,a.height-b)):new mxRectangle(Math.min(a.width,a.width-c),0,r,Math.min(a.height,a.height-b))}return new mxRectangle(0,Math.min(a.height,b),0,0)}return null};q.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};h.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",
@@ -3280,26 +3278,26 @@ b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.siz
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",E);H.prototype.moveTo=function(a,b){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;this.firstX=a;this.firstY=b};H.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)};
H.prototype.quadTo=function(a,b,c,d){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=d};H.prototype.curveTo=function(a,b,c,d,e,f){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=f};H.prototype.arcTo=function(a,b,c,d,e,f,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=g};H.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),r=Math.sqrt(d*d+e*e);if(2>r){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;return}var f=Math.round(r/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/r,e=e/r,r=0;r<f;r++){var h=(Math.random()-.5)*g;this.originalLineTo.call(this.canvas,k*r+this.lastX-h*e,c*r+this.lastY-h*d)}this.originalLineTo.call(this.canvas,a,b)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=
-b};H.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 H(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 ab=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle||a.handJiggle.constructor!=H)ab.apply(this,arguments);else{var r=!0;null!=this.style&&(r="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,
+b};H.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 Xa=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(a){Xa.apply(this,arguments);null==a.handJiggle&&(a.handJiggle=this.createHandJiggle(a))};var Ya=mxShape.prototype.afterPaint;
+mxShape.prototype.afterPaint=function(a){Ya.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxShape.prototype.createComicCanvas=function(a){return new H(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 Za=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"))&&Za.apply(this,arguments)};var bb=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle||a.handJiggle.constructor!=H)bb.apply(this,arguments);else{var r=!0;null!=this.style&&(r="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,
"1"));if(r||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)r||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?r=Math.min(d/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(r=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,r=Math.min(d*
r,e*r)),a.moveTo(b+r,c),a.lineTo(b+d-r,c),a.quadTo(b+d,c,b+d,c+r),a.lineTo(b+d,c+e-r),a.quadTo(b+d,c+e,b+d-r,c+e),a.lineTo(b+r,c+e),a.quadTo(b,c+e,b,c+e-r),a.lineTo(b,c+r),a.quadTo(b,c,b+r,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(C,mxRectangleShape);C.prototype.size=.1;C.prototype.fixedSize=!1;C.prototype.isHtmlAllowed=function(){return!1};C.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};
C.prototype.paintForeground=function(a,b,c,d,e){var r=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),f=r?Math.max(0,Math.min(d,f)):d*Math.max(0,Math.min(1,f));this.isRounded&&(r=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(d*r,e*r)));f=Math.round(f);a.begin();a.moveTo(b+f,c);a.lineTo(b+f,c+e);a.moveTo(b+d-f,c);a.lineTo(b+d-f,c+e);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
-arguments)};mxCellRenderer.registerShape("process",C);mxCellRenderer.registerShape("process2",C);mxUtils.extend(F,mxRectangleShape);F.prototype.paintBackground=function(a,b,c,d,e){a.setFillColor(mxConstants.NONE);a.rect(b,c,d,e);a.fill()};F.prototype.paintForeground=function(a,b,c,d,e){};mxCellRenderer.registerShape("transparent",F);mxUtils.extend(y,mxHexagon);y.prototype.size=30;y.prototype.position=.5;y.prototype.position2=.5;y.prototype.base=20;y.prototype.getLabelMargins=function(){return new mxRectangle(0,
+arguments)};mxCellRenderer.registerShape("process",C);mxCellRenderer.registerShape("process2",C);mxUtils.extend(G,mxRectangleShape);G.prototype.paintBackground=function(a,b,c,d,e){a.setFillColor(mxConstants.NONE);a.rect(b,c,d,e);a.fill()};G.prototype.paintForeground=function(a,b,c,d,e){};mxCellRenderer.registerShape("transparent",G);mxUtils.extend(y,mxHexagon);y.prototype.size=30;y.prototype.position=.5;y.prototype.position2=.5;y.prototype.base=20;y.prototype.getLabelMargins=function(){return new mxRectangle(0,
0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};y.prototype.isRoundable=function(){return!0};y.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 r=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),f=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,r+g),e-c),new mxPoint(f,e),new mxPoint(Math.max(0,r),e-c),new mxPoint(0,e-c)],this.isRounded,b,!0,[4])};mxCellRenderer.registerShape("callout",y);mxUtils.extend(I,mxActor);I.prototype.size=.2;I.prototype.fixedSize=20;I.prototype.isRoundable=function(){return!0};I.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",I);
-mxUtils.extend(K,mxHexagon);K.prototype.size=.25;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(.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",K);mxUtils.extend(L,mxRectangleShape);L.prototype.isHtmlAllowed=function(){return!1};L.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",
-L);var Ua=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){Ua.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]||
+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(M,mxRectangleShape);M.prototype.isHtmlAllowed=function(){return!1};M.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",
+M);var Ua=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){Ua.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),Ua.apply(this,[a,b,c,d,e]))}};mxUtils.extend(R,mxRectangleShape);R.prototype.isHtmlAllowed=function(){return!1};R.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};R.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,r;do{r=mxCellRenderer.defaultShapes[this.style["symbol"+f]];if(null!=r){var g=this.style["symbol"+f+"Align"],k=this.style["symbol"+f+"VerticalAlign"],h=this.style["symbol"+f+"Width"],A=this.style["symbol"+f+"Height"],D=this.style["symbol"+f+"Spacing"]||0,l=this.style["symbol"+f+"VSpacing"]||D,m=
this.style["symbol"+f+"ArcSpacing"];null!=m&&(m*=this.getArcSize(d+this.strokewidth,e+this.strokewidth),D+=m,l+=m);var m=b,B=c,m=g==mxConstants.ALIGN_CENTER?m+(d-h)/2:g==mxConstants.ALIGN_RIGHT?m+(d-h-D):m+D,B=k==mxConstants.ALIGN_MIDDLE?B+(e-A)/2:k==mxConstants.ALIGN_BOTTOM?B+(e-A-l):B+l;a.save();g=new r;g.style=this.style;r.prototype.paintVertexShape.call(g,a,m,B,h,A);a.restore()}f++}while(null!=r)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",
-R);mxUtils.extend(J,mxCylinder);J.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",J);mxUtils.extend(O,mxShape);O.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",O);mxUtils.extend(aa,mxShape);aa.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};aa.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",
-aa);mxUtils.extend(ba,mxEllipse);ba.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",ba);mxUtils.extend(N,mxShape);N.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",N);mxUtils.extend(S,mxShape);
+R);mxUtils.extend(K,mxCylinder);K.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",K);mxUtils.extend(P,mxShape);P.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",P);mxUtils.extend(X,mxShape);X.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};X.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",
+X);mxUtils.extend(Z,mxEllipse);Z.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",Z);mxUtils.extend(O,mxShape);O.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",O);mxUtils.extend(S,mxShape);
S.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};S.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()};S.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",S);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)))),r=mxUtils.getValue(this.style,"participant");null==r||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,b,
c,d,f):(r=this.state.view.graph.cellRenderer.getShape(r),null!=r&&r!=Q&&(r=new r,r.apply(this.state),a.save(),r.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,
@@ -3316,98 +3314,98 @@ k,g+h),new mxPoint(r,g+h-e),new mxPoint(r,g)]):(e=e?Math.max(0,Math.min(.5*k,f))
g)]);h=a.getCenterX();a=a.getCenterY();a=new mxPoint(h,a);d&&(c.x<r||c.x>r+k?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(g,a,c)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?I.prototype.fixedSize:I.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var r=a.x,g=a.y,k=a.width,h=a.height,l=a.getCenterX();a=a.getCenterY();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(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,g),new mxPoint(r+k-e,g),new mxPoint(r+k,a),new mxPoint(r+k-e,g+h),new mxPoint(r,g+h),new mxPoint(r+e,a),new mxPoint(r,g)]):b==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(r+e,g),new mxPoint(r+k,g),new mxPoint(r+k-e,a),new mxPoint(r+
k,g+h),new mxPoint(r+e,g+h),new mxPoint(r,a),new mxPoint(r+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(r,g+e),new mxPoint(l,g),new mxPoint(r+k,g+e),new mxPoint(r+k,g+h),new mxPoint(l,g+h-e),new mxPoint(r,g+h),new mxPoint(r,g+e)]):(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,g),new mxPoint(l,g+e),new mxPoint(r+k,g),new mxPoint(r+k,g+h-e),new mxPoint(l,g+h),new mxPoint(r,g+h-e),new mxPoint(r,g)]);l=new mxPoint(l,
-a);d&&(c.x<r||c.x>r+k?l.y=c.y:l.x=c.x);return mxUtils.getPerimeterPoint(g,l,c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?K.prototype.fixedSize:K.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var r=a.x,g=a.y,k=a.width,h=a.height,l=a.getCenterX();a=a.getCenterY();b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):
+a);d&&(c.x<r||c.x>r+k?l.y=c.y:l.x=c.x);return mxUtils.getPerimeterPoint(g,l,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 r=a.x,g=a.y,k=a.width,h=a.height,l=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(l,g),new mxPoint(r+k,g+e),new mxPoint(r+k,g+h-e),new mxPoint(l,g+h),new mxPoint(r,g+h-e),new mxPoint(r,g+e),new mxPoint(l,g)]):(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(r+e,g),new mxPoint(r+k-e,g),new mxPoint(r+k,a),new mxPoint(r+k-e,g+h),new mxPoint(r+e,g+h),new mxPoint(r,a),new mxPoint(r+e,g)]);l=new mxPoint(l,
-a);d&&(c.x<r||c.x>r+k?l.y=c.y:l.x=c.x);return mxUtils.getPerimeterPoint(g,l,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(ja,mxShape);ja.prototype.size=10;ja.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",ja);mxUtils.extend(da,
-mxShape);da.prototype.size=10;da.prototype.inset=2;da.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),r=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.begin();a.moveTo(d/2,f+r);a.lineTo(d/2,e);a.end();a.stroke();a.begin();a.moveTo((d-f)/2-r,f/2);a.quadTo((d-f)/2-r,f+r,d/2,f+r);a.quadTo((d+f)/2+r,f+r,(d+f)/2+r,f/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",da);mxUtils.extend(na,
-mxShape);na.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",na);mxUtils.extend(oa,mxShape);oa.prototype.inset=2;oa.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",oa);mxUtils.extend(ea,mxCylinder);ea.prototype.jettyWidth=20;ea.prototype.jettyHeight=10;ea.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,r=Math.min(b,e-b),k=Math.min(r+2*b,e-b);f?(a.moveTo(c,r),a.lineTo(g,r),a.lineTo(g,r+b),a.lineTo(c,r+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,r+b),a.lineTo(0,r+b),a.lineTo(0,r),a.lineTo(c,r),a.close());a.end()};mxCellRenderer.registerShape("module",ea);mxUtils.extend(pa,mxCylinder);pa.prototype.jettyWidth=32;pa.prototype.jettyHeight=12;pa.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,r=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,r),a.lineTo(g,r),a.lineTo(g,r+b),a.lineTo(c,r+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,r+b),a.lineTo(0,r+b),a.lineTo(0,r),a.lineTo(c,r),a.close());a.end()};mxCellRenderer.registerShape("component",pa);mxUtils.extend(ta,mxRectangleShape);ta.prototype.paintForeground=
-function(a,b,c,d,e){var f=d/2,g=e/2,r=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,r,!0);a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",ta);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(ua,qa);ua.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",ua);mxUtils.extend(ka,mxArrowConnector);ka.prototype.defaultWidth=4;ka.prototype.isOpenEnded=function(){return!0};ka.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,
+a);d&&(c.x<r||c.x>r+k?l.y=c.y:l.x=c.x);return mxUtils.getPerimeterPoint(g,l,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(fa,mxShape);fa.prototype.size=10;fa.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",fa);mxUtils.extend(ja,
+mxShape);ja.prototype.size=10;ja.prototype.inset=2;ja.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),r=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.begin();a.moveTo(d/2,f+r);a.lineTo(d/2,e);a.end();a.stroke();a.begin();a.moveTo((d-f)/2-r,f/2);a.quadTo((d-f)/2-r,f+r,d/2,f+r);a.quadTo((d+f)/2+r,f+r,(d+f)/2+r,f/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",ja);mxUtils.extend(ma,
+mxShape);ma.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",ma);mxUtils.extend(na,mxShape);na.prototype.inset=2;na.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",na);mxUtils.extend(ca,mxCylinder);ca.prototype.jettyWidth=20;ca.prototype.jettyHeight=10;ca.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,r=Math.min(b,e-b),k=Math.min(r+2*b,e-b);f?(a.moveTo(c,r),a.lineTo(g,r),a.lineTo(g,r+b),a.lineTo(c,r+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,r+b),a.lineTo(0,r+b),a.lineTo(0,r),a.lineTo(c,r),a.close());a.end()};mxCellRenderer.registerShape("module",ca);mxUtils.extend(oa,mxCylinder);oa.prototype.jettyWidth=32;oa.prototype.jettyHeight=12;oa.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,r=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,r),a.lineTo(g,r),a.lineTo(g,r+b),a.lineTo(c,r+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,r+b),a.lineTo(0,r+b),a.lineTo(0,r),a.lineTo(c,r),a.close());a.end()};mxCellRenderer.registerShape("component",oa);mxUtils.extend(sa,mxRectangleShape);sa.prototype.paintForeground=
+function(a,b,c,d,e){var f=d/2,g=e/2,r=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,r,!0);a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",sa);mxUtils.extend(pa,mxDoubleEllipse);pa.prototype.outerStroke=!0;pa.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",pa);mxUtils.extend(ta,pa);ta.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",ta);mxUtils.extend(ka,mxArrowConnector);ka.prototype.defaultWidth=4;ka.prototype.isOpenEnded=function(){return!0};ka.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,
this.strokewidth-1)};ka.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",ka);mxUtils.extend(ga,mxArrowConnector);ga.prototype.defaultWidth=10;ga.prototype.defaultArrowWidth=20;ga.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};ga.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ga.prototype.getEdgeWidth=
function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ga);mxUtils.extend(ha,mxActor);ha.prototype.size=30;ha.prototype.isRoundable=function(){return!0};ha.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",ha);mxUtils.extend(ca,mxRectangleShape);ca.prototype.dx=20;ca.prototype.dy=20;ca.prototype.isHtmlAllowed=function(){return!1};ca.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",ca);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(ma,mxActor);ma.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",ma);mxUtils.extend(ia,mxActor);ia.prototype.dx=20;ia.prototype.dy=20;ia.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",ia);mxUtils.extend(W,mxActor);W.prototype.arrowWidth=.3;W.prototype.arrowSize=.2;W.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",W);mxUtils.extend(ra,mxActor);ra.prototype.redrawPath=function(a,
-b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",W.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",W.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",ra);mxUtils.extend(Y,mxActor);Y.prototype.size=.1;Y.prototype.fixedSize=20;Y.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",Y);mxUtils.extend(P,mxActor);P.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",P);mxUtils.extend(X,mxActor);X.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",X);mxUtils.extend(Z,mxActor);Z.prototype.size=
-20;Z.prototype.isRoundable=function(){return!0};Z.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",Z);mxUtils.extend(V,mxActor);V.prototype.size=
-.375;V.prototype.isRoundable=function(){return!0};V.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",V);mxUtils.extend(la,mxEllipse);la.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",la);mxUtils.extend(Ea,mxEllipse);Ea.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",
-Ea);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+.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",Ba);mxUtils.extend(Ma,mxRhombus);Ma.prototype.paintVertexShape=function(a,b,c,d,e){mxRhombus.prototype.paintVertexShape.apply(this,
+0),new mxPoint(d,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("manualInput",ha);mxUtils.extend(aa,mxRectangleShape);aa.prototype.dx=20;aa.prototype.dy=20;aa.prototype.isHtmlAllowed=function(){return!1};aa.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",aa);mxUtils.extend(da,mxActor);da.prototype.dx=20;da.prototype.dy=20;da.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",da);mxUtils.extend(la,mxActor);la.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",la);mxUtils.extend(ia,mxActor);ia.prototype.dx=20;ia.prototype.dy=20;ia.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",ia);mxUtils.extend(V,mxActor);V.prototype.arrowWidth=.3;V.prototype.arrowSize=.2;V.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",V);mxUtils.extend(qa,mxActor);qa.prototype.redrawPath=function(a,
+b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",V.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",V.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",qa);mxUtils.extend(J,mxActor);J.prototype.size=.1;J.prototype.fixedSize=20;J.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",J);mxUtils.extend(W,mxActor);W.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",W);mxUtils.extend(Y,mxActor);Y.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",Y);mxUtils.extend(ba,mxActor);ba.prototype.size=
+20;ba.prototype.isRoundable=function(){return!0};ba.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",ba);mxUtils.extend(ea,mxActor);ea.prototype.size=
+.375;ea.prototype.isRoundable=function(){return!0};ea.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",ea);mxUtils.extend(va,mxEllipse);va.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",va);mxUtils.extend(Aa,mxEllipse);Aa.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",
+Aa);mxUtils.extend(Ea,mxEllipse);Ea.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",Ea);mxUtils.extend(Ma,mxRhombus);Ma.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",Ma);mxUtils.extend(Na,mxEllipse);Na.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",Na);mxUtils.extend(Oa,mxEllipse);Oa.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",Oa);mxUtils.extend(Fa,mxEllipse);Fa.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",Fa);mxUtils.extend(Ga,mxEllipse);Ga.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",
Ga);mxUtils.extend(Ha,mxActor);Ha.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",Ha);mxUtils.extend(ya,mxActor);ya.prototype.size=.2;ya.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",ya);mxUtils.extend(za,mxActor);za.prototype.size=.25;za.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",za);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",
+mxCellRenderer.registerShape("display",za);mxUtils.extend(N,mxActor);N.prototype.cst={RECT2:"mxgraph.basic.rect"};N.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)))),r=f&&f.rectOutline?f.rectOutline:mxUtils.getValue(this.style,"rectOutline",
+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"}]}];N.prototype.paintVertexShape=
+function(a,b,c,d,e){a.translate(b,c);this.strictDrawShape(a,0,0,d,e)};N.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)))),r=f&&f.rectOutline?f.rectOutline:mxUtils.getValue(this.style,"rectOutline",
this.rectOutline),l=f&&f.indent?f.indent:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),m=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,l)),D=f&&f.top?f.top:mxUtils.getValue(this.style,"top",!0),A=f&&f.right?f.right:mxUtils.getValue(this.style,"right",!0),B=f&&f.bottom?f.bottom:mxUtils.getValue(this.style,"bottom",
-!0),q=f&&f.left?f.left:mxUtils.getValue(this.style,"left",!0),u=f&&f.topLeftStyle?f.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),t=f&&f.topRightStyle?f.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),G=f&&f.bottomRightStyle?f.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),v=f&&f.bottomLeftStyle?f.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),Aa=f&&f.fillColor?f.fillColor:mxUtils.getValue(this.style,"fillColor",
+!0),q=f&&f.left?f.left:mxUtils.getValue(this.style,"left",!0),u=f&&f.topLeftStyle?f.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),t=f&&f.topRightStyle?f.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),F=f&&f.bottomRightStyle?f.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),v=f&&f.bottomLeftStyle?f.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),Ca=f&&f.fillColor?f.fillColor:mxUtils.getValue(this.style,"fillColor",
"#ffffff");f&&f.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var w=f&&f.strokeWidth?f.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),y=f&&f.fillColor2?f.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),x=f&&f.gradientColor2?f.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),z=f&&f.gradientDirection2?f.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),C=f&&f.opacity?f.opacity:mxUtils.getValue(this.style,"opacity",
-"100"),F=Math.max(0,Math.min(50,h));f=M.prototype;a.setDashed(m);n&&""!=n&&a.setDashPattern(n);a.setStrokeWidth(w);h=Math.min(.5*e,.5*d,h);k||(h=F*Math.min(d,e)/100);h=Math.min(h,.5*Math.min(d,e));k||(l=Math.min(p*Math.min(d,e)/100));l=Math.min(l,.5*Math.min(d,e)-h);(D||A||B||q)&&"frame"!=r&&(a.begin(),D?f.moveNW(a,b,c,d,e,g,u,h,q):a.moveTo(0,0),D&&f.paintNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),A&&f.paintNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,G,h,B),B&&f.paintSE(a,b,c,d,e,g,G,
-h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),q&&f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(y),m=k=C,"none"==y&&(k=0),"none"==x&&(m=0),a.setGradient(y,x,0,0,d,e,z,k,m),a.begin(),D?f.moveNWInner(a,b,c,d,e,g,u,h,l,D,q):a.moveTo(l,0),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),q&&B&&f.paintSWInner(a,b,c,d,e,g,v,h,l,B),f.paintBottomInner(a,b,c,d,e,g,G,h,l,A,B),B&&A&&f.paintSEInner(a,b,c,d,e,g,G,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),A&&D&&
-f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),D&&q&&f.paintNWInner(a,b,c,d,e,g,u,h,l),a.fill(),"none"==Aa&&(a.begin(),f.paintFolds(a,b,c,d,e,g,u,t,G,v,h,D,A,B,q),a.stroke()));D||A||B||!q?D||A||!B||q?!D&&!A&&B&&q?"frame"!=r?(a.begin(),f.moveSE(a,b,c,d,e,g,G,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),"double"==r&&(f.moveNWInner(a,b,c,d,e,g,u,h,l,D,q),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,v,
-h,l,B),f.paintBottomInner(a,b,c,d,e,g,G,h,l,A,B)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,G,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),f.lineNWInner(a,b,c,d,e,g,u,h,l,D,q),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,v,h,l,B),f.paintBottomInner(a,b,c,d,e,g,G,h,l,A,B),a.close(),a.fillAndStroke()):D||!A||B||q?!D&&A&&!B&&q?"frame"!=r?(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),"double"==r&&(f.moveNWInner(a,
-b,c,d,e,g,u,h,l,D,q),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q)),a.stroke(),a.begin(),f.moveNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,G,h,B),"double"==r&&(f.moveSEInner(a,b,c,d,e,g,G,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A)),a.stroke()):(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),f.lineNWInner(a,b,c,d,e,g,u,h,l,D,q),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),a.close(),a.fillAndStroke(),a.begin(),f.moveNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,G,h,B),f.lineSEInner(a,
-b,c,d,e,g,G,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),a.close(),a.fillAndStroke()):!D&&A&&B&&!q?"frame"!=r?(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,G,h,B),f.paintSE(a,b,c,d,e,g,G,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,v,h,l,q),f.paintBottomInner(a,b,c,d,e,g,G,h,l,A,B),f.paintSEInner(a,b,c,d,e,g,G,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,G,h,B),f.paintSE(a,
-b,c,d,e,g,G,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.lineSWInner(a,b,c,d,e,g,v,h,l,q),f.paintBottomInner(a,b,c,d,e,g,G,h,l,A,B),f.paintSEInner(a,b,c,d,e,g,G,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),a.close(),a.fillAndStroke()):!D&&A&&B&&q?"frame"!=r?(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,G,h,B),f.paintSE(a,b,c,d,e,g,G,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),"double"==r&&(f.moveNWInner(a,b,c,d,e,g,u,h,l,D,q),f.paintLeftInner(a,
-b,c,d,e,g,v,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,v,h,l,B),f.paintBottomInner(a,b,c,d,e,g,G,h,l,A,B),f.paintSEInner(a,b,c,d,e,g,G,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,G,h,B),f.paintSE(a,b,c,d,e,g,G,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),f.lineNWInner(a,b,c,d,e,g,u,h,l,D,q),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,v,h,l,B),f.paintBottomInner(a,
-b,c,d,e,g,G,h,l,A,B),f.paintSEInner(a,b,c,d,e,g,G,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),a.close(),a.fillAndStroke()):!D||A||B||q?D&&!A&&!B&&q?"frame"!=r?(a.begin(),f.moveSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),f.paintNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),"double"==r&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,A),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),f.paintNWInner(a,b,c,d,e,g,u,h,l),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q)),a.stroke()):(a.begin(),f.moveSW(a,b,c,d,e,g,v,h,
-B),f.paintLeft(a,b,c,d,e,g,u,h,D),f.paintNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),f.lineNEInner(a,b,c,d,e,g,t,h,l,A),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),f.paintNWInner(a,b,c,d,e,g,u,h,l),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),a.close(),a.fillAndStroke()):D&&!A&&B&&!q?"frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),"double"==r&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,A),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D)),a.stroke(),a.begin(),f.moveSE(a,b,c,d,e,g,G,h,A),
-f.paintBottom(a,b,c,d,e,g,v,h,q),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,v,h,l,q),f.paintBottomInner(a,b,c,d,e,g,G,h,l,A,B)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),f.lineNEInner(a,b,c,d,e,g,t,h,l,A),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),a.close(),a.fillAndStroke(),a.begin(),f.moveSE(a,b,c,d,e,g,G,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.lineSWInner(a,b,c,d,e,g,v,h,l,q),f.paintBottomInner(a,b,c,d,e,g,G,h,l,A,B),a.close(),a.fillAndStroke()):D&&!A&&B&&q?"frame"!=
-r?(a.begin(),f.moveSE(a,b,c,d,e,g,G,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),f.paintNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),"double"==r&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,A),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),f.paintNWInner(a,b,c,d,e,g,u,h,l),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,v,h,l,B),f.paintBottomInner(a,b,c,d,e,g,G,h,l,A,B)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,G,h,A),f.paintBottom(a,
-b,c,d,e,g,v,h,q),f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),f.paintNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),f.lineNEInner(a,b,c,d,e,g,t,h,l,A),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),f.paintNWInner(a,b,c,d,e,g,u,h,l),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,v,h,l,B),f.paintBottomInner(a,b,c,d,e,g,G,h,l,A,B),a.close(),a.fillAndStroke()):D&&A&&!B&&!q?"frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),f.paintNE(a,b,c,d,
-e,g,t,h,D),f.paintRight(a,b,c,d,e,g,G,h,B),"double"==r&&(f.moveSEInner(a,b,c,d,e,g,G,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),f.paintNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,G,h,B),f.lineSEInner(a,b,c,d,e,g,G,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),a.close(),
-a.fillAndStroke()):D&&A&&!B&&q?"frame"!=r?(a.begin(),f.moveSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),f.paintNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),f.paintNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,G,h,B),"double"==r&&(f.moveSEInner(a,b,c,d,e,g,G,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),f.paintNWInner(a,b,c,d,e,g,u,h,l),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q)),a.stroke()):(a.begin(),f.moveSW(a,
-b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),f.paintNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),f.paintNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,G,h,B),f.lineSEInner(a,b,c,d,e,g,G,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),f.paintNWInner(a,b,c,d,e,g,u,h,l),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),a.close(),a.fillAndStroke()):D&&A&&B&&!q?"frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,
-e,g,t,h,A),f.paintNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,G,h,B),f.paintSE(a,b,c,d,e,g,G,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,v,h,l,q),f.paintBottomInner(a,b,c,d,e,g,G,h,l,A,B),f.paintSEInner(a,b,c,d,e,g,G,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),f.paintNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,
-c,d,e,g,G,h,B),f.paintSE(a,b,c,d,e,g,G,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.lineSWInner(a,b,c,d,e,g,v,h,l,q),f.paintBottomInner(a,b,c,d,e,g,G,h,l,A,B),f.paintSEInner(a,b,c,d,e,g,G,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),a.close(),a.fillAndStroke()):D&&A&&B&&q&&("frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,u,h,q),f.paintNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),f.paintNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,
-d,e,g,G,h,B),f.paintSE(a,b,c,d,e,g,G,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),a.close(),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,v,h,l,q),f.paintSWInner(a,b,c,d,e,g,v,h,l,B),f.paintBottomInner(a,b,c,d,e,g,G,h,l,A,B),f.paintSEInner(a,b,c,d,e,g,G,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),f.paintNWInner(a,b,c,d,e,g,u,h,l),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),a.close()),
-a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,u,h,q),f.paintNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),f.paintNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,G,h,B),f.paintSE(a,b,c,d,e,g,G,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),a.close(),f.moveSWInner(a,b,c,d,e,g,v,h,l,q),f.paintSWInner(a,b,c,d,e,g,v,h,l,B),f.paintBottomInner(a,b,c,d,e,g,G,h,l,A,B),f.paintSEInner(a,b,c,d,e,g,G,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),f.paintNEInner(a,
+"100"),G=Math.max(0,Math.min(50,h));f=N.prototype;a.setDashed(m);n&&""!=n&&a.setDashPattern(n);a.setStrokeWidth(w);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||(l=Math.min(p*Math.min(d,e)/100));l=Math.min(l,.5*Math.min(d,e)-h);(D||A||B||q)&&"frame"!=r&&(a.begin(),D?f.moveNW(a,b,c,d,e,g,u,h,q):a.moveTo(0,0),D&&f.paintNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),A&&f.paintNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,F,h,B),B&&f.paintSE(a,b,c,d,e,g,F,
+h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),q&&f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(y),m=k=C,"none"==y&&(k=0),"none"==x&&(m=0),a.setGradient(y,x,0,0,d,e,z,k,m),a.begin(),D?f.moveNWInner(a,b,c,d,e,g,u,h,l,D,q):a.moveTo(l,0),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),q&&B&&f.paintSWInner(a,b,c,d,e,g,v,h,l,B),f.paintBottomInner(a,b,c,d,e,g,F,h,l,A,B),B&&A&&f.paintSEInner(a,b,c,d,e,g,F,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),A&&D&&
+f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),D&&q&&f.paintNWInner(a,b,c,d,e,g,u,h,l),a.fill(),"none"==Ca&&(a.begin(),f.paintFolds(a,b,c,d,e,g,u,t,F,v,h,D,A,B,q),a.stroke()));D||A||B||!q?D||A||!B||q?!D&&!A&&B&&q?"frame"!=r?(a.begin(),f.moveSE(a,b,c,d,e,g,F,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),"double"==r&&(f.moveNWInner(a,b,c,d,e,g,u,h,l,D,q),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,v,
+h,l,B),f.paintBottomInner(a,b,c,d,e,g,F,h,l,A,B)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,F,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),f.lineNWInner(a,b,c,d,e,g,u,h,l,D,q),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,v,h,l,B),f.paintBottomInner(a,b,c,d,e,g,F,h,l,A,B),a.close(),a.fillAndStroke()):D||!A||B||q?!D&&A&&!B&&q?"frame"!=r?(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),"double"==r&&(f.moveNWInner(a,
+b,c,d,e,g,u,h,l,D,q),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q)),a.stroke(),a.begin(),f.moveNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,F,h,B),"double"==r&&(f.moveSEInner(a,b,c,d,e,g,F,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A)),a.stroke()):(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),f.lineNWInner(a,b,c,d,e,g,u,h,l,D,q),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),a.close(),a.fillAndStroke(),a.begin(),f.moveNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,F,h,B),f.lineSEInner(a,
+b,c,d,e,g,F,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),a.close(),a.fillAndStroke()):!D&&A&&B&&!q?"frame"!=r?(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,F,h,B),f.paintSE(a,b,c,d,e,g,F,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,v,h,l,q),f.paintBottomInner(a,b,c,d,e,g,F,h,l,A,B),f.paintSEInner(a,b,c,d,e,g,F,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,F,h,B),f.paintSE(a,
+b,c,d,e,g,F,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.lineSWInner(a,b,c,d,e,g,v,h,l,q),f.paintBottomInner(a,b,c,d,e,g,F,h,l,A,B),f.paintSEInner(a,b,c,d,e,g,F,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),a.close(),a.fillAndStroke()):!D&&A&&B&&q?"frame"!=r?(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,F,h,B),f.paintSE(a,b,c,d,e,g,F,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),"double"==r&&(f.moveNWInner(a,b,c,d,e,g,u,h,l,D,q),f.paintLeftInner(a,
+b,c,d,e,g,v,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,v,h,l,B),f.paintBottomInner(a,b,c,d,e,g,F,h,l,A,B),f.paintSEInner(a,b,c,d,e,g,F,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,F,h,B),f.paintSE(a,b,c,d,e,g,F,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),f.lineNWInner(a,b,c,d,e,g,u,h,l,D,q),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,v,h,l,B),f.paintBottomInner(a,
+b,c,d,e,g,F,h,l,A,B),f.paintSEInner(a,b,c,d,e,g,F,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),a.close(),a.fillAndStroke()):!D||A||B||q?D&&!A&&!B&&q?"frame"!=r?(a.begin(),f.moveSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),f.paintNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),"double"==r&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,A),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),f.paintNWInner(a,b,c,d,e,g,u,h,l),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q)),a.stroke()):(a.begin(),f.moveSW(a,b,c,d,e,g,v,h,
+B),f.paintLeft(a,b,c,d,e,g,u,h,D),f.paintNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),f.lineNEInner(a,b,c,d,e,g,t,h,l,A),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),f.paintNWInner(a,b,c,d,e,g,u,h,l),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),a.close(),a.fillAndStroke()):D&&!A&&B&&!q?"frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),"double"==r&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,A),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D)),a.stroke(),a.begin(),f.moveSE(a,b,c,d,e,g,F,h,A),
+f.paintBottom(a,b,c,d,e,g,v,h,q),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,v,h,l,q),f.paintBottomInner(a,b,c,d,e,g,F,h,l,A,B)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),f.lineNEInner(a,b,c,d,e,g,t,h,l,A),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),a.close(),a.fillAndStroke(),a.begin(),f.moveSE(a,b,c,d,e,g,F,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.lineSWInner(a,b,c,d,e,g,v,h,l,q),f.paintBottomInner(a,b,c,d,e,g,F,h,l,A,B),a.close(),a.fillAndStroke()):D&&!A&&B&&q?"frame"!=
+r?(a.begin(),f.moveSE(a,b,c,d,e,g,F,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),f.paintNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),"double"==r&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,A),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),f.paintNWInner(a,b,c,d,e,g,u,h,l),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,v,h,l,B),f.paintBottomInner(a,b,c,d,e,g,F,h,l,A,B)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,F,h,A),f.paintBottom(a,
+b,c,d,e,g,v,h,q),f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),f.paintNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),f.lineNEInner(a,b,c,d,e,g,t,h,l,A),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),f.paintNWInner(a,b,c,d,e,g,u,h,l),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,v,h,l,B),f.paintBottomInner(a,b,c,d,e,g,F,h,l,A,B),a.close(),a.fillAndStroke()):D&&A&&!B&&!q?"frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),f.paintNE(a,b,c,d,
+e,g,t,h,D),f.paintRight(a,b,c,d,e,g,F,h,B),"double"==r&&(f.moveSEInner(a,b,c,d,e,g,F,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),f.paintNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,F,h,B),f.lineSEInner(a,b,c,d,e,g,F,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),a.close(),
+a.fillAndStroke()):D&&A&&!B&&q?"frame"!=r?(a.begin(),f.moveSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),f.paintNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),f.paintNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,F,h,B),"double"==r&&(f.moveSEInner(a,b,c,d,e,g,F,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),f.paintNWInner(a,b,c,d,e,g,u,h,l),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q)),a.stroke()):(a.begin(),f.moveSW(a,
+b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),f.paintNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),f.paintNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,F,h,B),f.lineSEInner(a,b,c,d,e,g,F,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),f.paintNWInner(a,b,c,d,e,g,u,h,l),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),a.close(),a.fillAndStroke()):D&&A&&B&&!q?"frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,
+e,g,t,h,A),f.paintNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,F,h,B),f.paintSE(a,b,c,d,e,g,F,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,v,h,l,q),f.paintBottomInner(a,b,c,d,e,g,F,h,l,A,B),f.paintSEInner(a,b,c,d,e,g,F,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),f.paintNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,
+c,d,e,g,F,h,B),f.paintSE(a,b,c,d,e,g,F,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.lineSWInner(a,b,c,d,e,g,v,h,l,q),f.paintBottomInner(a,b,c,d,e,g,F,h,l,A,B),f.paintSEInner(a,b,c,d,e,g,F,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),a.close(),a.fillAndStroke()):D&&A&&B&&q&&("frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,u,h,q),f.paintNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),f.paintNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,
+d,e,g,F,h,B),f.paintSE(a,b,c,d,e,g,F,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),a.close(),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,v,h,l,q),f.paintSWInner(a,b,c,d,e,g,v,h,l,B),f.paintBottomInner(a,b,c,d,e,g,F,h,l,A,B),f.paintSEInner(a,b,c,d,e,g,F,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),f.paintNWInner(a,b,c,d,e,g,u,h,l),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),a.close()),
+a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,u,h,q),f.paintNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),f.paintNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,F,h,B),f.paintSE(a,b,c,d,e,g,F,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.paintSW(a,b,c,d,e,g,v,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),a.close(),f.moveSWInner(a,b,c,d,e,g,v,h,l,q),f.paintSWInner(a,b,c,d,e,g,v,h,l,B),f.paintBottomInner(a,b,c,d,e,g,F,h,l,A,B),f.paintSEInner(a,b,c,d,e,g,F,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),f.paintNEInner(a,
b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),f.paintNWInner(a,b,c,d,e,g,u,h,l),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),a.close(),a.fillAndStroke())):"frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),"double"==r&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,A),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,u,h,q),f.paintTop(a,b,c,d,e,g,t,h,A),f.lineNEInner(a,b,c,d,e,g,t,h,l,A),f.paintTopInner(a,b,c,d,e,g,u,h,l,q,D),a.close(),a.fillAndStroke()):
-"frame"!=r?(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,G,h,B),"double"==r&&(f.moveSEInner(a,b,c,d,e,g,G,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,G,h,B),f.lineSEInner(a,b,c,d,e,g,G,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),a.close(),a.fillAndStroke()):"frame"!=r?(a.begin(),f.moveSE(a,b,c,d,e,g,G,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,v,h,l,q),f.paintBottomInner(a,
-b,c,d,e,g,G,h,l,A,B)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,G,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.lineSWInner(a,b,c,d,e,g,v,h,l,q),f.paintBottomInner(a,b,c,d,e,g,G,h,l,A,B),a.close(),a.fillAndStroke()):"frame"!=r?(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),"double"==r&&(f.moveNWInner(a,b,c,d,e,g,u,h,l,D,q),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q)),a.stroke()):(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),f.lineNWInner(a,b,c,d,e,g,u,h,l,D,
-q),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),a.close(),a.fillAndStroke());a.begin();f.paintFolds(a,b,c,d,e,g,u,t,G,v,h,D,A,B,q);a.stroke()};M.prototype.moveNW=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(0,0):a.moveTo(0,h)};M.prototype.moveNE=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(d,0):a.moveTo(d-h,0)};M.prototype.moveSE=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(d,e):a.moveTo(d,e-h)};M.prototype.moveSW=
-function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(0,e):a.moveTo(h,e)};M.prototype.paintNW=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,h,0)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(h,0);else a.lineTo(0,0)};M.prototype.paintTop=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==
-g&&"square"==f||!k?a.lineTo(d,0):a.lineTo(d-h,0)};M.prototype.paintNE=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,d,h)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d,h);else a.lineTo(d,0)};M.prototype.paintRight=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.lineTo(d,e):a.lineTo(d,e-h)};
-M.prototype.paintLeft=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.lineTo(0,0):a.lineTo(0,h)};M.prototype.paintSE=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,d-h,e)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d-h,e);else a.lineTo(d,e)};M.prototype.paintBottom=function(a,b,c,d,e,f,g,
-h,k){"square"==g||"default"==g&&"square"==f||!k?a.lineTo(0,e):a.lineTo(h,e)};M.prototype.paintSW=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,0,e-h)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(0,e-h);else a.lineTo(0,e)};M.prototype.paintNWInner=function(a,b,c,d,e,f,g,h,k){if("rounded"==g||"default"==g&&"rounded"==
-f)a.arcTo(h-.5*k,h-.5*k,0,0,0,k,.5*k+h);else if("invRound"==g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,k,k+h);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(k,.5*k+h);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(k+h,k+h),a.lineTo(k,k+h)};M.prototype.paintTopInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(0,k):l&&!m?a.lineTo(k,0):l?"square"==g||"default"==g&&"square"==f?a.lineTo(k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(h+
-.5*k,k):a.lineTo(h+k,k):a.lineTo(0,k):a.lineTo(0,0)};M.prototype.paintNEInner=function(a,b,c,d,e,f,g,h,k){if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,d-h-.5*k,k);else if("invRound"==g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,d-h-k,k);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(d-h-.5*k,k);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(d-h-k,h+k),a.lineTo(d-h-k,k)};M.prototype.paintRightInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(d-k,
-0):l&&!m?a.lineTo(d,k):l?"square"==g||"default"==g&&"square"==f?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-k,h+.5*k):a.lineTo(d-k,h+k):a.lineTo(d-k,0):a.lineTo(d,0)};M.prototype.paintLeftInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(k,e):l&&!m?a.lineTo(0,e-k):l?"square"==g||"default"==g&&"square"==f?a.lineTo(k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(k,e-h-.5*k):a.lineTo(k,e-
-h-k):a.lineTo(k,e):a.lineTo(0,e)};M.prototype.paintSEInner=function(a,b,c,d,e,f,g,h,k){if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,d-k,e-h-.5*k);else if("invRound"==g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,d-k,e-h-k);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(d-k,e-h-.5*k);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(d-h-k,e-h-k),a.lineTo(d-k,e-h-k)};M.prototype.paintBottomInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(d,e-k):l&&!m?
-a.lineTo(d-k,e):"square"==g||"default"==g&&"square"==f||!l?a.lineTo(d-k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-h-.5*k,e-k):a.lineTo(d-h-k,e-k):a.lineTo(d,e)};M.prototype.paintSWInner=function(a,b,c,d,e,f,g,h,k,l){if(!l)a.lineTo(k,e);else if("square"==g||"default"==g&&"square"==f)a.lineTo(k,e-k);else if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,h+.5*k,e-k);else if("invRound"==g||"default"==g&&"invRound"==f)a.arcTo(h+k,
-h+k,0,0,1,h+k,e-k);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(h+.5*k,e-k);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(k+h,e-h-k),a.lineTo(k+h,e-k)};M.prototype.moveSWInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f?a.moveTo(k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(k,e-h-k):a.moveTo(0,e-k)};M.prototype.lineSWInner=
-function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f?a.lineTo(k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(k,e-h-k):a.lineTo(0,e-k)};M.prototype.moveSEInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f?a.moveTo(d-k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(d-
-k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(d-k,e-h-k):a.moveTo(d-k,e)};M.prototype.lineSEInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f?a.lineTo(d-k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d-k,e-h-k):a.lineTo(d-k,e)};M.prototype.moveNEInner=function(a,b,c,
-d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f||l?a.moveTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(d-k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(d-k,h+k):a.moveTo(d,k)};M.prototype.lineNEInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f||l?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-k,h+.5*k):("invRound"==
-g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d-k,h+k):a.lineTo(d,k)};M.prototype.moveNWInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.moveTo(k,0):l&&!m?a.moveTo(0,k):"square"==g||"default"==g&&"square"==f?a.moveTo(k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(k,h+k):a.moveTo(0,0)};M.prototype.lineNWInner=function(a,b,
-c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(k,0):l&&!m?a.lineTo(0,k):"square"==g||"default"==g&&"square"==f?a.lineTo(k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(k,h+k):a.lineTo(0,0)};M.prototype.paintFolds=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,u){if("fold"==f||"fold"==g||"fold"==h||"fold"==k||"fold"==l)("fold"==g||"default"==g&&"fold"==f)&&n&&u&&(a.moveTo(0,
-m),a.lineTo(m,m),a.lineTo(m,0)),("fold"==h||"default"==h&&"fold"==f)&&n&&p&&(a.moveTo(d-m,0),a.lineTo(d-m,m),a.lineTo(d,m)),("fold"==k||"default"==k&&"fold"==f)&&q&&p&&(a.moveTo(d-m,e),a.lineTo(d-m,e-m),a.lineTo(d,e-m)),("fold"==l||"default"==l&&"fold"==f)&&q&&u&&(a.moveTo(0,e-m),a.lineTo(m,e-m),a.lineTo(m,e))};mxCellRenderer.registerShape(M.prototype.cst.RECT2,M);M.prototype.constraints=null;mxUtils.extend(wa,mxConnector);wa.prototype.origPaintEdgeShape=wa.prototype.paintEdgeShape;wa.prototype.paintEdgeShape=
+"frame"!=r?(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,F,h,B),"double"==r&&(f.moveSEInner(a,b,c,d,e,g,F,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,D),f.paintRight(a,b,c,d,e,g,F,h,B),f.lineSEInner(a,b,c,d,e,g,F,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,D,A),a.close(),a.fillAndStroke()):"frame"!=r?(a.begin(),f.moveSE(a,b,c,d,e,g,F,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,v,h,l,q),f.paintBottomInner(a,
+b,c,d,e,g,F,h,l,A,B)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,F,h,A),f.paintBottom(a,b,c,d,e,g,v,h,q),f.lineSWInner(a,b,c,d,e,g,v,h,l,q),f.paintBottomInner(a,b,c,d,e,g,F,h,l,A,B),a.close(),a.fillAndStroke()):"frame"!=r?(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),"double"==r&&(f.moveNWInner(a,b,c,d,e,g,u,h,l,D,q),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q)),a.stroke()):(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,u,h,D),f.lineNWInner(a,b,c,d,e,g,u,h,l,D,
+q),f.paintLeftInner(a,b,c,d,e,g,v,h,l,B,q),a.close(),a.fillAndStroke());a.begin();f.paintFolds(a,b,c,d,e,g,u,t,F,v,h,D,A,B,q);a.stroke()};N.prototype.moveNW=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(0,0):a.moveTo(0,h)};N.prototype.moveNE=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(d,0):a.moveTo(d-h,0)};N.prototype.moveSE=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(d,e):a.moveTo(d,e-h)};N.prototype.moveSW=
+function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(0,e):a.moveTo(h,e)};N.prototype.paintNW=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,h,0)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(h,0);else a.lineTo(0,0)};N.prototype.paintTop=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==
+g&&"square"==f||!k?a.lineTo(d,0):a.lineTo(d-h,0)};N.prototype.paintNE=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,d,h)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d,h);else a.lineTo(d,0)};N.prototype.paintRight=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.lineTo(d,e):a.lineTo(d,e-h)};
+N.prototype.paintLeft=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.lineTo(0,0):a.lineTo(0,h)};N.prototype.paintSE=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,d-h,e)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d-h,e);else a.lineTo(d,e)};N.prototype.paintBottom=function(a,b,c,d,e,f,g,
+h,k){"square"==g||"default"==g&&"square"==f||!k?a.lineTo(0,e):a.lineTo(h,e)};N.prototype.paintSW=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,0,e-h)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(0,e-h);else a.lineTo(0,e)};N.prototype.paintNWInner=function(a,b,c,d,e,f,g,h,k){if("rounded"==g||"default"==g&&"rounded"==
+f)a.arcTo(h-.5*k,h-.5*k,0,0,0,k,.5*k+h);else if("invRound"==g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,k,k+h);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(k,.5*k+h);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(k+h,k+h),a.lineTo(k,k+h)};N.prototype.paintTopInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(0,k):l&&!m?a.lineTo(k,0):l?"square"==g||"default"==g&&"square"==f?a.lineTo(k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(h+
+.5*k,k):a.lineTo(h+k,k):a.lineTo(0,k):a.lineTo(0,0)};N.prototype.paintNEInner=function(a,b,c,d,e,f,g,h,k){if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,d-h-.5*k,k);else if("invRound"==g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,d-h-k,k);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(d-h-.5*k,k);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(d-h-k,h+k),a.lineTo(d-h-k,k)};N.prototype.paintRightInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(d-k,
+0):l&&!m?a.lineTo(d,k):l?"square"==g||"default"==g&&"square"==f?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-k,h+.5*k):a.lineTo(d-k,h+k):a.lineTo(d-k,0):a.lineTo(d,0)};N.prototype.paintLeftInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(k,e):l&&!m?a.lineTo(0,e-k):l?"square"==g||"default"==g&&"square"==f?a.lineTo(k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(k,e-h-.5*k):a.lineTo(k,e-
+h-k):a.lineTo(k,e):a.lineTo(0,e)};N.prototype.paintSEInner=function(a,b,c,d,e,f,g,h,k){if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,d-k,e-h-.5*k);else if("invRound"==g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,d-k,e-h-k);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(d-k,e-h-.5*k);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(d-h-k,e-h-k),a.lineTo(d-k,e-h-k)};N.prototype.paintBottomInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(d,e-k):l&&!m?
+a.lineTo(d-k,e):"square"==g||"default"==g&&"square"==f||!l?a.lineTo(d-k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-h-.5*k,e-k):a.lineTo(d-h-k,e-k):a.lineTo(d,e)};N.prototype.paintSWInner=function(a,b,c,d,e,f,g,h,k,l){if(!l)a.lineTo(k,e);else if("square"==g||"default"==g&&"square"==f)a.lineTo(k,e-k);else if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,h+.5*k,e-k);else if("invRound"==g||"default"==g&&"invRound"==f)a.arcTo(h+k,
+h+k,0,0,1,h+k,e-k);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(h+.5*k,e-k);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(k+h,e-h-k),a.lineTo(k+h,e-k)};N.prototype.moveSWInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f?a.moveTo(k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(k,e-h-k):a.moveTo(0,e-k)};N.prototype.lineSWInner=
+function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f?a.lineTo(k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(k,e-h-k):a.lineTo(0,e-k)};N.prototype.moveSEInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f?a.moveTo(d-k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(d-
+k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(d-k,e-h-k):a.moveTo(d-k,e)};N.prototype.lineSEInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f?a.lineTo(d-k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d-k,e-h-k):a.lineTo(d-k,e)};N.prototype.moveNEInner=function(a,b,c,
+d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f||l?a.moveTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(d-k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(d-k,h+k):a.moveTo(d,k)};N.prototype.lineNEInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f||l?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-k,h+.5*k):("invRound"==
+g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d-k,h+k):a.lineTo(d,k)};N.prototype.moveNWInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.moveTo(k,0):l&&!m?a.moveTo(0,k):"square"==g||"default"==g&&"square"==f?a.moveTo(k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(k,h+k):a.moveTo(0,0)};N.prototype.lineNWInner=function(a,b,
+c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(k,0):l&&!m?a.lineTo(0,k):"square"==g||"default"==g&&"square"==f?a.lineTo(k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(k,h+k):a.lineTo(0,0)};N.prototype.paintFolds=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,u){if("fold"==f||"fold"==g||"fold"==h||"fold"==k||"fold"==l)("fold"==g||"default"==g&&"fold"==f)&&n&&u&&(a.moveTo(0,
+m),a.lineTo(m,m),a.lineTo(m,0)),("fold"==h||"default"==h&&"fold"==f)&&n&&p&&(a.moveTo(d-m,0),a.lineTo(d-m,m),a.lineTo(d,m)),("fold"==k||"default"==k&&"fold"==f)&&q&&p&&(a.moveTo(d-m,e),a.lineTo(d-m,e-m),a.lineTo(d,e-m)),("fold"==l||"default"==l&&"fold"==f)&&q&&u&&(a.moveTo(0,e-m),a.lineTo(m,e-m),a.lineTo(m,e))};mxCellRenderer.registerShape(N.prototype.cst.RECT2,N);N.prototype.constraints=null;mxUtils.extend(wa,mxConnector);wa.prototype.origPaintEdgeShape=wa.prototype.paintEdgeShape;wa.prototype.paintEdgeShape=
function(a,b,c){for(var d=[],e=0;e<b.length;e++)d.push(mxUtils.clone(b[e]));var e=a.state.dashed,f=a.state.fixDash;wa.prototype.origPaintEdgeShape.apply(this,[a,d,c]);3<=a.state.strokeWidth&&(d=mxUtils.getValue(this.style,"fillColor",null),null!=d&&(a.setStrokeColor(d),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(e,f),wa.prototype.origPaintEdgeShape.apply(this,[a,b,c])))};mxCellRenderer.registerShape("filledEdge",wa);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;
StyleFormatPanel.prototype.getCustomColors=function(){var b=this.format.getSelectionState(),c=a.apply(this,arguments);"umlFrame"==b.style.shape&&c.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return c}}();mxMarker.addMarker("dash",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),r=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-r/2,d.y-r/2+m/2);a.lineTo(d.x+r/2-3*m/2,d.y-3*r/2-m/2);a.stroke()}});mxMarker.addMarker("box",function(a,b,c,d,e,f,g,h,k,l){var m=
e*(g+k+1),r=f*(g+k+1),n=d.x+m/2,p=d.y+r/2;d.x-=m;d.y-=r;return function(){a.begin();a.moveTo(n-m/2-r/2,p-r/2+m/2);a.lineTo(n-m/2+r/2,p-r/2-m/2);a.lineTo(n+r/2-3*m/2,p-3*r/2-m/2);a.lineTo(n-r/2-3*m/2,p-3*r/2+m/2);a.close();l?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),r=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-r/2,d.y-r/2+m/2);a.lineTo(d.x+r/2-3*m/2,d.y-3*r/2-m/2);a.moveTo(d.x-m/2+r/2,d.y-r/2-m/2);a.lineTo(d.x-r/2-3*m/2,d.y-
-3*r/2+m/2);a.stroke()}});mxMarker.addMarker("circle",Sa);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var m=d.clone(),r=Sa.apply(this,arguments),n=e*(g+2*k),p=f*(g+2*k);return function(){r.apply(this,arguments);a.begin();a.moveTo(m.x-e*k,m.y-f*k);a.lineTo(m.x-2*n+e*k,m.y-2*p+f*k);a.moveTo(m.x-n-p+f*k,m.y-p+n-e*k);a.lineTo(m.x+p-n-f*k,m.y-p-n+e*k);a.stroke()}});mxMarker.addMarker("halfCircle",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),r=f*(g+k+1),n=d.clone();d.x-=m;d.y-=r;return function(){a.begin();
+3*r/2+m/2);a.stroke()}});mxMarker.addMarker("circle",Ra);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var m=d.clone(),r=Ra.apply(this,arguments),n=e*(g+2*k),p=f*(g+2*k);return function(){r.apply(this,arguments);a.begin();a.moveTo(m.x-e*k,m.y-f*k);a.lineTo(m.x-2*n+e*k,m.y-2*p+f*k);a.moveTo(m.x-n-p+f*k,m.y-p+n-e*k);a.lineTo(m.x+p-n-f*k,m.y-p-n+e*k);a.stroke()}});mxMarker.addMarker("halfCircle",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),r=f*(g+k+1),n=d.clone();d.x-=m;d.y-=r;return function(){a.begin();
a.moveTo(n.x-r,n.y+m);a.quadTo(d.x-r,d.y+m,d.x,d.y);a.quadTo(d.x+r,d.y-m,n.x+r,n.y-m);a.stroke()}});mxMarker.addMarker("async",function(a,b,c,d,e,f,g,h,k,l){b=e*k*1.118;c=f*k*1.118;e*=g+k;f*=g+k;var m=d.clone();m.x-=b;m.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(m.x,m.y);h?a.lineTo(m.x-e-f/2,m.y-f+e/2):a.lineTo(m.x+f/2-e,m.y-f-e/2);a.lineTo(m.x-e,m.y-f);a.close();l?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(b,c,d,
e,f,g,h,k,l,m){f*=h+l;g*=h+l;var r=e.clone();return function(){b.begin();b.moveTo(r.x,r.y);k?b.lineTo(r.x-f-g/a,r.y-g+f/a):b.lineTo(r.x+g/a-f,r.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Va=function(a,b,c){return Da(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})},Da=
-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,l=Math.sqrt(f*f+k*k),h=d.call(this,l,f/l,k/l,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,l=c?g[0]:g[h],g=c?g[1]:g[h-1],h=g.x-l.x,m=g.y-l.y,r=Math.sqrt(h*h+m*m);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,r,h/r,m/r,l,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",W.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",W.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))})]}},Wa=function(a){return function(b){return[T(b,
+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,l=Math.sqrt(f*f+k*k),h=d.call(this,l,f/l,k/l,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,l=c?g[0]:g[h],g=c?g[1]:g[h-1],h=g.x-l.x,m=g.y-l.y,r=Math.sqrt(h*h+m*m);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,r,h/r,m/r,l,g,d,f)})},ua=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",V.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",V.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))})]}},Sa=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)]}},Qa=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(sa(d));return e}},Ia=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(sa(f));return g}},Ta=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(sa(d));return e}},Ca=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(sa(a));return b}},sa=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,
+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(ra(d));return e}},Ia=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(ra(f));return g}},Ta=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(ra(d));return e}},Ba=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ra(a));return b}},ra=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))))})},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},Ja={link:function(a){return[Va(a,!0,10),Va(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(Da(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,
@@ -3419,40 +3417,40 @@ a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEven
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(Da(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(sa(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,
+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(ra(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[T(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",Q.prototype.size))));
+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:Ba(),ext:Ba(),rectangle:Ba(),triangle:Ba(),rhombus:Ba(),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(U.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",U.prototype.width))),c=Math.max(1.5*U.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",U.prototype.height)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(U.prototype.corner,
Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*U.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",C.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(sa(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",ya.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.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(ra(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",ya.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",k.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",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))))})]},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",ha.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(sa(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?Y.prototype.fixedSize:Y.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.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(ra(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?J.prototype.fixedSize:J.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",y.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",y.prototype.position)));mxUtils.getValue(this.state.style,"base",y.prototype.base);return new mxPoint(a.x+c*a.width,a.y+a.height-b)},function(a,b){mxUtils.getValue(this.state.style,
"base",y.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",y.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",y.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",y.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",y.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",y.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(sa(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",ca.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ca.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(sa(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",ea.prototype.jettyWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"jettyHeight",ea.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",ia.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ia.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",p.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",p.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",p.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,
+b.x-a.x-c*a.width)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ra(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",aa.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",aa.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(ra(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",ca.prototype.jettyWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"jettyHeight",ca.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",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)]},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",ia.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ia.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:ua(1),
+doubleArrow:ua(.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",p.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",p.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",p.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",p.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",t.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",v.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",g.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:Wa(l.prototype.size),cylinder3:Wa(m.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",V.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=
+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:Sa(l.prototype.size),cylinder3:Sa(m.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",ea.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:Ia(I.prototype.size,!0,null,!0,I.prototype.fixedSize),hexagon:Ia(K.prototype.size,!0,.5,!0,K.prototype.fixedSize),curlyBracket:Ia(z.prototype.size,!1),display:Ia(za.prototype.size,!1),cube:Qa(1,b.prototype.size,!1),card:Qa(.5,u.prototype.size,!0),loopLimit:Qa(.5,Z.prototype.size,!0),trapezoid:Ta(.5,x.prototype.size,x.prototype.fixedSize),parallelogram:Ta(1,w.prototype.size,w.prototype.fixedSize)};
-Graph.createHandle=T;Graph.handleFactory=Ja;var bb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=bb.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=Ja[b];null==b&&null!=this.state.shape&&this.state.shape.isRoundable()&&
-(b=Ja[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=Ja[a];return null!=a?a(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Ka=new mxPoint(1,0),La=new mxPoint(1,0),va=mxUtils.toRadians(-30),Ka=mxUtils.getRotatedPoint(Ka,
-Math.cos(va),Math.sin(va)),va=mxUtils.toRadians(-150),La=mxUtils.getRotatedPoint(La,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=Ka.x,l=Ka.y,m=La.x,n=La.y,r="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-m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);r?(c&&(p=new mxPoint(p.x+k*b,p.y+l*b),e.push(p)),p=new mxPoint(p.x+m*a,p.y+n*a)):(c&&(p=new mxPoint(p.x+m*a,p.y+n*a),e.push(p)),p=new mxPoint(p.x+k*b,p.y+l*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 cb=Graph.prototype.createEdgeHandler;
-Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return cb.apply(this,arguments)};e.prototype.constraints=[];c.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,
+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:Ia(I.prototype.size,!0,null,!0,I.prototype.fixedSize),hexagon:Ia(L.prototype.size,!0,.5,!0,L.prototype.fixedSize),curlyBracket:Ia(z.prototype.size,!1),display:Ia(za.prototype.size,!1),cube:Qa(1,b.prototype.size,!1),card:Qa(.5,u.prototype.size,!0),loopLimit:Qa(.5,ba.prototype.size,!0),trapezoid:Ta(.5,x.prototype.size,x.prototype.fixedSize),parallelogram:Ta(1,w.prototype.size,w.prototype.fixedSize)};
+Graph.createHandle=T;Graph.handleFactory=Ja;var $a=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=$a.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=Ja[b];null==b&&null!=this.state.shape&&this.state.shape.isRoundable()&&
+(b=Ja[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=Ja[a];return null!=a?a(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Ka=new mxPoint(1,0),La=new mxPoint(1,0),ua=mxUtils.toRadians(-30),Ka=mxUtils.getRotatedPoint(Ka,
+Math.cos(ua),Math.sin(ua)),ua=mxUtils.toRadians(-150),La=mxUtils.getRotatedPoint(La,Math.cos(ua),Math.sin(ua));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=Ka.x,l=Ka.y,m=La.x,n=La.y,r="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-m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);r?(c&&(p=new mxPoint(p.x+k*b,p.y+l*b),e.push(p)),p=new mxPoint(p.x+m*a,p.y+n*a)):(c&&(p=new mxPoint(p.x+m*a,p.y+n*a),e.push(p)),p=new mxPoint(p.x+k*b,p.y+l*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 ab=Graph.prototype.createEdgeHandler;
+Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return ab.apply(this,arguments)};e.prototype.constraints=[];c.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};g.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};y.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,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))];Fa.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;L.prototype.constraints=mxRectangleShape.prototype.constraints;
+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))];Fa.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;M.prototype.constraints=mxRectangleShape.prototype.constraints;
mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.getConstraints=function(a,b,c){a=[];var d=Math.max(0,Math.min(b,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-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-.5*d,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,b,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.5*(c+d)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};u.prototype.getConstraints=function(a,b,c){a=[];var d=Math.max(0,Math.min(b,Math.min(c,parseFloat(mxUtils.getValue(this.style,
"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b+d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(c+d)));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,
@@ -3464,37 +3462,37 @@ null,0,c-b-.5*(.5*c-b)));a.push(new mxConnectionConstraint(new mxPoint(.145,0),!
"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};ca.prototype.constraints=mxRectangleShape.prototype.constraints;Y.prototype.constraints=mxRectangleShape.prototype.constraints;la.prototype.constraints=mxEllipse.prototype.constraints;Ea.prototype.constraints=mxEllipse.prototype.constraints;Ba.prototype.constraints=mxEllipse.prototype.constraints;Ga.prototype.constraints=mxEllipse.prototype.constraints;ha.prototype.constraints=mxRectangleShape.prototype.constraints;Ha.prototype.constraints=
+1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};aa.prototype.constraints=mxRectangleShape.prototype.constraints;J.prototype.constraints=mxRectangleShape.prototype.constraints;va.prototype.constraints=mxEllipse.prototype.constraints;Aa.prototype.constraints=mxEllipse.prototype.constraints;Ea.prototype.constraints=mxEllipse.prototype.constraints;Ga.prototype.constraints=mxEllipse.prototype.constraints;ha.prototype.constraints=mxRectangleShape.prototype.constraints;Ha.prototype.constraints=
mxRectangleShape.prototype.constraints;za.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};ea.prototype.getConstraints=function(a,b,c){b=parseFloat(mxUtils.getValue(a,"jettyWidth",ea.prototype.jettyWidth))/2;a=parseFloat(mxUtils.getValue(a,"jettyHeight",ea.prototype.jettyHeight));var d=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,b),new mxConnectionConstraint(new mxPoint(.25,
+.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};ca.prototype.getConstraints=function(a,b,c){b=parseFloat(mxUtils.getValue(a,"jettyWidth",ca.prototype.jettyWidth))/2;a=parseFloat(mxUtils.getValue(a,"jettyHeight",ca.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};Z.prototype.constraints=mxRectangleShape.prototype.constraints;V.prototype.constraints=
+!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};ba.prototype.constraints=mxRectangleShape.prototype.constraints;ea.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)];O.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)];pa.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,
+.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];P.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)];oa.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)];n.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)];v.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)];I.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)];ja.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=
+.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)];fa.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,.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,
.25),!1)];w.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=mxRectangleShape.prototype.constraints;t.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),
!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxArrow.prototype.constraints=null;ia.prototype.getConstraints=function(a,b,c){a=[];var d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.5*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*b+.25*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,.5*(b+d),.5*(c+e)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b+d),c));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,.5*(b-d),c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-d),.5*(c+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,.25*b-.25*d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*e));return a};fa.prototype.getConstraints=function(a,b,c){a=[];var d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,
+0),!1,null,.5*(b-d),c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-d),.5*(c+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,.25*b-.25*d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*e));return a};da.prototype.getConstraints=function(a,b,c){a=[];var d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,
"dx",this.dx)))),e=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.5*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,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,d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(c+e)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,c));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));return a};ma.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)];W.prototype.getConstraints=function(a,b,c){a=[];var d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+0),!1,null,d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(c+e)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,c));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));return a};la.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)];V.prototype.getConstraints=function(a,b,c){a=[];var d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
"arrowSize",this.arrowSize)))),d=(c-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));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-e,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-e,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-e),c-d));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,c-d));return a};ra.prototype.getConstraints=function(a,b,c){a=[];var d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",W.prototype.arrowWidth)))),e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",W.prototype.arrowSize)))),d=(c-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,d));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,c-d));return a};qa.prototype.getConstraints=function(a,b,c){a=[];var d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",V.prototype.arrowWidth)))),e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",V.prototype.arrowSize)))),d=(c-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,d));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,b-e,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-e,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,c-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));return a};ya.prototype.getConstraints=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};Q.prototype.constraints=
-null;P.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)];X.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)];na.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];oa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
+null;W.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)];Y.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)];ma.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];na.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){c.escape();a=c.deleteCells(c.getDeletableCells(c.getSelectionCells()),a);null!=a&&c.setSelectionCells(a)}function b(){if(!c.isSelectionEmpty()){c.getModel().beginUpdate();try{for(var a=c.getSelectionCells(),b=0;b<a.length;b++)c.cellLabelChanged(a[b],"")}finally{c.getModel().endUpdate()}}}var d=this.editorUi,e=d.editor,c=e.graph,f=function(){return Action.prototype.isEnabled.apply(this,arguments)&&c.isEnabled()};this.addAction("new...",function(){c.openLink(d.getUrl())});
this.addAction("open...",function(){window.openNew=!0;window.openKey="open";d.openFile()});this.addAction("smartFit",function(){c.popupMenuHandler.hideMenu();var a=c.view.scale,b=c.view.translate.x,e=c.view.translate.y;d.actions.get("resetView").funct();1E-5>Math.abs(a-c.view.scale)&&b==c.view.translate.x&&e==c.view.translate.y&&d.actions.get(c.pageVisible?"fitPage":"fitWindow").funct()});this.addAction("keyPressEnter",function(){c.isEnabled()&&(c.isSelectionEmpty()?d.actions.get("smartFit").funct():
c.startEditingAtCell())});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){d.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var c=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(c.documentElement))}catch(n){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+n.message)}}));d.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=
@@ -3732,7 +3730,7 @@ b.className="geBtn";a.editor.cancelFirst&&f.appendChild(b);d=mxUtils.button(d,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"),l=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():l.funct())})},LayersWindow=function(a,b,d,e,c){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=C.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";
+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=C.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";
C.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";q=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!=q&&g.addCell(c,g.model.root,q);q=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)});
@@ -3750,7 +3748,7 @@ new mxCell),g.setDefaultParent(null)):0<b&&b<=g.model.getChildCount(g.model.root
!g.isSelectionEmpty()){var c=mxUtils.getOffset(z);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+z.offsetHeight,b)}});t.appendChild(z);
var E=w.cloneNode(!1);E.setAttribute("title",mxResources.get("editData"));m=m.cloneNode(!1);m.setAttribute("src",Editor.editImage);E.appendChild(m);mxEvent.addListener(E,"click",function(b){g.isEnabled()&&a.showDataDialog(v);mxEvent.consume(b)});g.isEnabled()||(E.className="geButton mxDisabled");t.appendChild(E);var H=w.cloneNode(!1);H.setAttribute("title",mxResources.get("duplicate"));m=m.cloneNode(!1);m.setAttribute("src",Editor.duplicateImage);H.appendChild(m);mxEvent.addListener(H,"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()||(H.className="geButton mxDisabled");t.appendChild(H);w=w.cloneNode(!1);w.setAttribute("title",mxResources.get("addLayer"));m=m.cloneNode(!1);m.setAttribute("src",Editor.addImage);w.appendChild(m);mxEvent.addListener(w,"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()||(w.className="geButton mxDisabled");t.appendChild(w);l.appendChild(t);var C=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,
+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()||(w.className="geButton mxDisabled");t.appendChild(w);l.appendChild(t);var C=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,
h);g.addListener("defaultParentChanged",h);g.selectionModel.addListener(mxEvent.CHANGE,function(){g.isSelectionEmpty()?z.className="geButton mxDisabled":z.className="geButton";k()});this.window=new mxWindow(mxResources.get("layers"),l,b,d,e,c,!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 y=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",y);this.destroy=function(){mxEvent.removeListener(window,"resize",y);this.window.destroy()}};
@@ -9962,11 +9960,11 @@ var StorageDialog=function(b,e,d){function c(c,g,k,p,x,A){function q(){mxEvent.a
(b.setMode(k,!0),e()):window.location.hostname=DriveClient.prototype.newAppHostname})}f++;++n>d&&(mxUtils.br(l),n=1);var t=document.createElement("a");t.style.overflow="hidden";t.style.display="inline-block";t.className="geBaseButton";t.style.boxSizing="border-box";t.style.fontSize="11px";t.style.position="relative";t.style.margin="4px";t.style.marginTop="8px";t.style.marginBottom="0px";t.style.padding="8px 10px 8px 10px";t.style.width="88px";t.style.height="100px";t.style.whiteSpace="nowrap";t.setAttribute("title",
g);var y=document.createElement("div");y.style.textOverflow="ellipsis";y.style.overflow="hidden";y.style.position="absolute";y.style.bottom="8px";y.style.left="0px";y.style.right="0px";mxUtils.write(y,g);t.appendChild(y);if(null!=c){var u=document.createElement("img");u.setAttribute("src",c);u.setAttribute("border","0");u.setAttribute("align","absmiddle");u.style.width="60px";u.style.height="60px";u.style.paddingBottom="6px";t.appendChild(u)}else y.style.paddingTop="5px",y.style.whiteSpace="normal",
mxClient.IS_IOS?(t.style.padding="0px 10px 20px 10px",t.style.top="6px"):mxClient.IS_FF&&(y.style.paddingTop="0px",y.style.marginTop="-2px");if(null!=x)for(c=0;c<x.length;c++)mxUtils.br(y),mxUtils.write(y,x[c]);if(null!=p&&null==b[p]){u.style.visibility="hidden";mxUtils.setOpacity(y,10);var v=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});v.spin(t);var G=window.setTimeout(function(){null==
-b[p]&&(v.stop(),t.style.display="none")},3E4);b.addListener("clientLoaded",mxUtils.bind(this,function(f,c){null!=b[p]&&c.getProperty("client")==b[p]&&(window.clearTimeout(G),mxUtils.setOpacity(y,100),u.style.visibility="",v.stop(),q(),"drive"==p&&null!=m.parentNode&&m.parentNode.removeChild(m))}))}else q();l.appendChild(t)}d=null!=d?d:2;var k=document.createElement("div");k.style.textAlign="center";k.style.whiteSpace="nowrap";k.style.paddingTop="0px";k.style.paddingBottom="20px";var g=document.createElement("div");
+b[p]&&(v.stop(),t.style.display="none")},3E4);b.addListener("clientLoaded",mxUtils.bind(this,function(c,f){null!=b[p]&&f.getProperty("client")==b[p]&&(window.clearTimeout(G),mxUtils.setOpacity(y,100),u.style.visibility="",v.stop(),q(),"drive"==p&&null!=m.parentNode&&m.parentNode.removeChild(m))}))}else q();l.appendChild(t)}d=null!=d?d:2;var k=document.createElement("div");k.style.textAlign="center";k.style.whiteSpace="nowrap";k.style.paddingTop="0px";k.style.paddingBottom="20px";var g=document.createElement("div");
g.style.border="1px solid #d3d3d3";g.style.borderWidth="1px 0px 1px 0px";g.style.padding="10px 0px 20px 0px";var n=0,f=0,l=document.createElement("div");l.style.paddingTop="2px";g.appendChild(l);var m=document.createElement("p"),p=document.createElement("p");p.style.cssText="font-size:22px;padding:4px 0 16px 0;margin:0;color:gray;";mxUtils.write(p,mxResources.get("saveDiagramsTo")+":");k.appendChild(p);k.appendChild(g);n=0;"function"===typeof window.DriveClient&&c(IMAGE_PATH+"/google-drive-logo.svg",
mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive");"function"===typeof window.OneDriveClient&&c(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),App.MODE_ONEDRIVE,"oneDrive");"1"!=urlParams.noDevice&&c(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);!isLocalStorage||"1"!=urlParams.browser&&"1"!=urlParams.offline||c(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER);"function"===typeof window.DropboxClient&&c(IMAGE_PATH+"/dropbox-logo.svg",
mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox");null!=b.gitHub&&c(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub");null!=b.gitLab&&c(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),App.MODE_GITLAB,"gitLab");6>f&&null!=b.notion&&c(IMAGE_PATH+"/notion-logo.svg",mxResources.get("notion"),App.MODE_NOTION,"notion");g=document.createElement("span");g.style.cssText="position:absolute;cursor:pointer;bottom:27px;color:gray;userSelect:none;text-align:center;left:50%;";
-mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,0)");mxUtils.write(g,mxResources.get("decideLater"));mxEvent.addListener(g,"click",function(){b.hideDialog();var f=Editor.useLocalStorage;b.createFile(b.defaultFilename,null,null,null,null,null,null,!0);Editor.useLocalStorage=f});k.appendChild(g);mxClient.IS_SVG&&isLocalStorage&&"0"!=urlParams.gapi&&(null==document.documentMode||10<=document.documentMode)&&window.setTimeout(function(){null==b.drive&&(m.style.padding="7px",m.style.fontSize=
+mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,0)");mxUtils.write(g,mxResources.get("decideLater"));mxEvent.addListener(g,"click",function(){b.hideDialog();var c=Editor.useLocalStorage;b.createFile(b.defaultFilename,null,null,null,null,null,null,!0);Editor.useLocalStorage=c});k.appendChild(g);mxClient.IS_SVG&&isLocalStorage&&"0"!=urlParams.gapi&&(null==document.documentMode||10<=document.documentMode)&&window.setTimeout(function(){null==b.drive&&(m.style.padding="7px",m.style.fontSize=
"9pt",m.style.marginTop="-14px",m.innerHTML='<a style="background-color:#dcdcdc;padding:6px;color:black;text-decoration:none;" href="https://desk.draw.io/a/solutions/articles/16000074659" target="_blank"><img border="0" src="'+mxGraph.prototype.warningImage.src+'" align="absmiddle" style="margin-top:-4px"> '+mxResources.get("googleDriveMissingClickHere")+"</a>",k.appendChild(m))},5E3);this.container=k},SplashDialog=function(b){var e=document.createElement("div");e.style.textAlign="center";if(mxClient.IS_CHROMEAPP||
EditorUi.isElectronApp){var d=b.addLanguageMenu(e,!0);null!=d&&(d.style.bottom="19px")}b.getServiceCount();var c=document.createElement("img");c.setAttribute("border","0");c.setAttribute("align","absmiddle");c.style.width="32px";c.style.height="32px";c.style.marginRight="8px";c.style.marginTop="-4px";var k=document.createElement("div");k.style.margin="8px 0px 0px 0px";k.style.padding="18px 0px 24px 0px";d="";b.mode==App.MODE_GOOGLE?(c.src=IMAGE_PATH+"/google-drive-logo.svg",d=mxResources.get("googleDrive")):
b.mode==App.MODE_DROPBOX?(c.src=IMAGE_PATH+"/dropbox-logo.svg",d=mxResources.get("dropbox")):b.mode==App.MODE_ONEDRIVE?(c.src=IMAGE_PATH+"/onedrive-logo.svg",d=mxResources.get("oneDrive")):b.mode==App.MODE_GITHUB?(c.src=IMAGE_PATH+"/github-logo.svg",d=mxResources.get("github")):b.mode==App.MODE_GITLAB?(c.src=IMAGE_PATH+"/gitlab-logo.svg",d=mxResources.get("gitlab")):b.mode==App.MODE_NOTION?(c.src=IMAGE_PATH+"/notion-logo.svg",d=mxResources.get("notion")):b.mode==App.MODE_BROWSER?(c.src=IMAGE_PATH+
@@ -9974,8 +9972,8 @@ b.mode==App.MODE_DROPBOX?(c.src=IMAGE_PATH+"/dropbox-logo.svg",d=mxResources.get
g.style.marginBottom="12px";else{k.style.border="1px solid #d3d3d3";k.style.borderWidth="1px 0px 1px 0px";var n=document.createElement("table"),f=document.createElement("tbody"),l=document.createElement("tr"),m=document.createElement("td"),p=document.createElement("td");n.setAttribute("align","center");m.appendChild(c);c=document.createElement("div");c.style.fontSize="22px";c.style.paddingBottom="6px";c.style.color="gray";mxUtils.write(c,d);p.style.textAlign="left";p.appendChild(c);l.appendChild(m);
l.appendChild(p);f.appendChild(l);n.appendChild(f);e.appendChild(n);d=document.createElement("span");d.style.cssText="position:absolute;cursor:pointer;bottom:27px;color:gray;userSelect:none;text-align:center;left:50%;";mxUtils.setPrefixedStyle(d.style,"transform","translate(-50%,0)");mxUtils.write(d,mxResources.get("changeStorage"));mxEvent.addListener(d,"click",function(){b.hideDialog(!1);b.setMode(null);b.clearMode();b.showSplash(!0)});e.appendChild(d)}mxUtils.write(g,mxResources.get("createNewDiagram"));
mxEvent.addListener(g,"click",function(){b.hideDialog();b.actions.get("new").funct()});k.appendChild(g);mxUtils.br(k);g=document.createElement("button");g.className="geBigButton";g.style.marginBottom="22px";g.style.fontSize="18px";g.style.padding="10px";g.style.width="340px";mxUtils.write(g,mxResources.get("openExistingDiagram"));mxEvent.addListener(g,"click",function(){b.actions.get("open").funct()});k.appendChild(g);b.mode==App.MODE_GOOGLE?mxResources.get("googleDrive"):b.mode==App.MODE_DROPBOX?
-mxResources.get("dropbox"):b.mode==App.MODE_ONEDRIVE?mxResources.get("oneDrive"):b.mode==App.MODE_GITHUB?mxResources.get("github"):b.mode==App.MODE_GITLAB?mxResources.get("gitlab"):b.mode==App.MODE_NOTION?mxResources.get("notion"):b.mode==App.MODE_TRELLO?mxResources.get("trello"):b.mode==App.MODE_DEVICE?mxResources.get("device"):b.mode==App.MODE_BROWSER&&mxResources.get("browser");if(!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp)if(d=function(f){g.style.marginBottom="24px";var c=document.createElement("a");
-c.style.display="inline-block";c.style.color="gray";c.style.cursor="pointer";c.style.marginTop="6px";mxUtils.write(c,mxResources.get("signOut"));g.style.marginBottom="16px";k.style.paddingBottom="18px";mxEvent.addListener(c,"click",function(){b.confirm(mxResources.get("areYouSure"),function(){f()})});k.appendChild(c)},b.mode==App.MODE_GOOGLE&&null!=b.drive){var q=b.drive.getUsersList();if(0<q.length){c=document.createElement("span");c.style.marginTop="6px";mxUtils.write(c,mxResources.get("changeUser")+
+mxResources.get("dropbox"):b.mode==App.MODE_ONEDRIVE?mxResources.get("oneDrive"):b.mode==App.MODE_GITHUB?mxResources.get("github"):b.mode==App.MODE_GITLAB?mxResources.get("gitlab"):b.mode==App.MODE_NOTION?mxResources.get("notion"):b.mode==App.MODE_TRELLO?mxResources.get("trello"):b.mode==App.MODE_DEVICE?mxResources.get("device"):b.mode==App.MODE_BROWSER&&mxResources.get("browser");if(!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp)if(d=function(c){g.style.marginBottom="24px";var f=document.createElement("a");
+f.style.display="inline-block";f.style.color="gray";f.style.cursor="pointer";f.style.marginTop="6px";mxUtils.write(f,mxResources.get("signOut"));g.style.marginBottom="16px";k.style.paddingBottom="18px";mxEvent.addListener(f,"click",function(){b.confirm(mxResources.get("areYouSure"),function(){c()})});k.appendChild(f)},b.mode==App.MODE_GOOGLE&&null!=b.drive){var q=b.drive.getUsersList();if(0<q.length){c=document.createElement("span");c.style.marginTop="6px";mxUtils.write(c,mxResources.get("changeUser")+
":");g.style.marginBottom="16px";k.style.paddingBottom="18px";k.appendChild(c);var t=document.createElement("select");t.style.marginLeft="4px";t.style.width="140px";for(d=0;d<q.length;d++)n=document.createElement("option"),mxUtils.write(n,q[d].displayName),n.value=d,t.appendChild(n),n=document.createElement("option"),n.innerHTML="&nbsp;&nbsp;&nbsp;",mxUtils.write(n,"<"+q[d].email+">"),n.setAttribute("disabled","disabled"),t.appendChild(n);n=document.createElement("option");mxUtils.write(n,mxResources.get("addAccount"));
n.value=q.length;t.appendChild(n);mxEvent.addListener(t,"change",function(){var f=t.value,c=q.length!=f;c&&b.drive.setUser(q[f]);b.drive.authorize(c,function(){b.setMode(App.MODE_GOOGLE);b.hideDialog();b.showSplash()},function(f){b.handleError(f,null,function(){b.hideDialog();b.showSplash()})},!0)});k.appendChild(t)}else d(function(){b.drive.logout()})}else b.mode!=App.MODE_ONEDRIVE||null==b.oneDrive||b.oneDrive.noLogout?b.mode==App.MODE_GITHUB&&null!=b.gitHub?d(function(){b.gitHub.logout();b.openLink("https://www.github.com/logout")}):
b.mode==App.MODE_GITLAB&&null!=b.gitLab?d(function(){b.gitLab.logout();b.openLink(DRAWIO_GITLAB_URL+"/users/sign_out")}):b.mode==App.MODE_NOTION&&null!=b.notion?d(function(){b.notion.logout()}):b.mode==App.MODE_TRELLO&&null!=b.trello?b.trello.isAuthorized()&&d(function(){b.trello.logout()}):b.mode==App.MODE_DROPBOX&&null!=b.dropbox&&d(function(){b.dropbox.logout();b.openLink("https://www.dropbox.com/logout")}):d(function(){b.oneDrive.logout()});e.appendChild(k);this.container=e},EmbedDialog=function(b,
@@ -9988,7 +9986,7 @@ e.length){var t=mxUtils.button("",function(){try{var f="https://www.facebook.com
"bottom";t.style.paddingTop="4px";t.style.minWidth="46px";t.className="geBtn";g.appendChild(t)}7168>e.length&&(t=mxUtils.button("",function(){try{var f="https://twitter.com/intent/tweet?text="+encodeURIComponent(n)+"&url="+encodeURIComponent(p.value);b.openLink(f)}catch(v){b.handleError({message:v.message||mxResources.get("drawingTooLarge")})}}),f=document.createElement("img"),f.setAttribute("src",Editor.tweetImage),f.setAttribute("width","18"),f.setAttribute("height","18"),f.setAttribute("border",
"0"),f.style.marginBottom="5px",t.appendChild(f),t.setAttribute("title",mxResources.get("twitter")+" ("+b.formatFileSize(7168)+" max)"),t.style.verticalAlign="bottom",t.style.paddingTop="4px",t.style.minWidth="46px",t.className="geBtn",g.appendChild(t))}f=mxUtils.button(mxResources.get("close"),function(){b.hideDialog()});g.appendChild(f);t=mxUtils.button(mxResources.get("copy"),function(){p.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?p.select():document.execCommand("selectAll",
!1,null);document.execCommand("copy");b.alert(mxResources.get("copiedToClipboard"))});5E5>e.length?mxClient.IS_SF||null!=document.documentMode?f.className="geBtn gePrimaryBtn":(g.appendChild(t),t.className="geBtn gePrimaryBtn",f.className="geBtn"):(g.appendChild(q),f.className="geBtn",q.className="geBtn gePrimaryBtn");c.appendChild(g);this.container=c};EmbedDialog.showPreviewOption=!0;
-var GoogleSitesDialog=function(b,e){function d(){var b=null!=G&&null!=G.getTitle()?G.getTitle():this.defaultFilename;if(C.checked&&""!=t.value){var f="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(t.value));null!=b&&(f+="&title="+encodeURIComponent(b));0<E.length&&(f+="&s="+E);""!=u.value&&"0"!=u.value&&(f+="&border="+u.value);""!=q.value&&(f+="&height="+q.value);f+="&pan="+(v.checked?"1":"0");f+="&zoom="+(x.checked?"1":"0");f+="&fit="+(y.checked?"1":"0");
+var GoogleSitesDialog=function(b,e){function d(){var b=null!=G&&null!=G.getTitle()?G.getTitle():this.defaultFilename;if(C.checked&&""!=t.value){var f="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(t.value));null!=b&&(f+="&title="+encodeURIComponent(b));0<F.length&&(f+="&s="+F);""!=u.value&&"0"!=u.value&&(f+="&border="+u.value);""!=q.value&&(f+="&height="+q.value);f+="&pan="+(v.checked?"1":"0");f+="&zoom="+(x.checked?"1":"0");f+="&fit="+(y.checked?"1":"0");
f+="&resize="+(B.checked?"1":"0");f+="&x0="+Number(p.value);f+="&y0="+l;k.mathEnabled&&(f+="&math=1");z.checked?f+="&edit=_blank":A.checked&&(f+="&edit="+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));m.value=f}else G.constructor==DriveFile||G.constructor==DropboxFile?(f="https://www.draw.io/gadget.xml?embed=0&diagram=",""!=t.value?f+=encodeURIComponent(mxUtils.htmlEntities(t.value))+"&type=3":(f+=G.getHash().substring(1),f=G.constructor==DropboxFile?f+"&type=2":f+"&type=1"),null!=
b&&(f+="&title="+encodeURIComponent(b)),""!=q.value&&(b=parseInt(q.value)+parseInt(p.value),f+="&height="+b),m.value=f):m.value=""}var c=document.createElement("div"),k=b.editor.graph,g=k.getGraphBounds(),n=k.view.scale,f=Math.floor(g.x/n-k.view.translate.x),l=Math.floor(g.y/n-k.view.translate.y);mxUtils.write(c,mxResources.get("googleGadget")+":");mxUtils.br(c);var m=document.createElement("input");m.setAttribute("type","text");m.style.marginBottom="8px";m.style.marginTop="2px";m.style.width="410px";
c.appendChild(m);mxUtils.br(c);this.init=function(){m.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?m.select():document.execCommand("selectAll",!1,null)};mxUtils.write(c,mxResources.get("top")+":");var p=document.createElement("input");p.setAttribute("type","text");p.setAttribute("size","4");p.style.marginRight="16px";p.style.marginLeft="4px";p.value=f;c.appendChild(p);mxUtils.write(c,mxResources.get("height")+":");var q=document.createElement("input");q.setAttribute("type","text");
@@ -9996,7 +9994,7 @@ q.setAttribute("size","4");q.style.marginLeft="4px";q.value=Math.ceil(g.height/n
mxUtils.br(c);mxUtils.write(c,mxResources.get("borderWidth")+":");var u=document.createElement("input");u.setAttribute("type","text");u.setAttribute("size","3");u.style.marginBottom="8px";u.style.marginLeft="4px";u.value="0";c.appendChild(u);mxUtils.br(c);var v=document.createElement("input");v.setAttribute("type","checkbox");v.setAttribute("checked","checked");v.defaultChecked=!0;v.style.marginLeft="16px";c.appendChild(v);mxUtils.write(c,mxResources.get("pan")+" ");var x=document.createElement("input");
x.setAttribute("type","checkbox");x.setAttribute("checked","checked");x.defaultChecked=!0;x.style.marginLeft="8px";c.appendChild(x);mxUtils.write(c,mxResources.get("zoom")+" ");var A=document.createElement("input");A.setAttribute("type","checkbox");A.style.marginLeft="8px";A.setAttribute("title",window.location.href);c.appendChild(A);mxUtils.write(c,mxResources.get("edit")+" ");var z=document.createElement("input");z.setAttribute("type","checkbox");z.style.marginLeft="8px";c.appendChild(z);mxUtils.write(c,
mxResources.get("asNew")+" ");mxUtils.br(c);var B=document.createElement("input");B.setAttribute("type","checkbox");B.setAttribute("checked","checked");B.defaultChecked=!0;B.style.marginLeft="16px";c.appendChild(B);mxUtils.write(c,mxResources.get("resize")+" ");var y=document.createElement("input");y.setAttribute("type","checkbox");y.style.marginLeft="8px";c.appendChild(y);mxUtils.write(c,mxResources.get("fit")+" ");var C=document.createElement("input");C.setAttribute("type","checkbox");C.style.marginLeft=
-"8px";c.appendChild(C);mxUtils.write(c,mxResources.get("embed")+" ");var E=b.getBasenames().join(";"),G=b.getCurrentFile();mxEvent.addListener(v,"change",d);mxEvent.addListener(x,"change",d);mxEvent.addListener(B,"change",d);mxEvent.addListener(y,"change",d);mxEvent.addListener(A,"change",d);mxEvent.addListener(z,"change",d);mxEvent.addListener(C,"change",d);mxEvent.addListener(q,"change",d);mxEvent.addListener(p,"change",d);mxEvent.addListener(u,"change",d);mxEvent.addListener(t,"change",d);d();
+"8px";c.appendChild(C);mxUtils.write(c,mxResources.get("embed")+" ");var F=b.getBasenames().join(";"),G=b.getCurrentFile();mxEvent.addListener(v,"change",d);mxEvent.addListener(x,"change",d);mxEvent.addListener(B,"change",d);mxEvent.addListener(y,"change",d);mxEvent.addListener(A,"change",d);mxEvent.addListener(z,"change",d);mxEvent.addListener(C,"change",d);mxEvent.addListener(q,"change",d);mxEvent.addListener(p,"change",d);mxEvent.addListener(u,"change",d);mxEvent.addListener(t,"change",d);d();
mxEvent.addListener(m,"click",function(){m.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?m.select():document.execCommand("selectAll",!1,null)});g=document.createElement("div");g.style.paddingTop="12px";g.style.textAlign="right";n=mxUtils.button(mxResources.get("close"),function(){b.hideDialog()});n.className="geBtn gePrimaryBtn";g.appendChild(n);c.appendChild(g);this.container=c},CreateGraphDialog=function(b,e,d){var c=document.createElement("div");c.style.textAlign="right";this.init=
function(){var e=document.createElement("div");e.style.position="relative";e.style.border="1px solid gray";e.style.width="100%";e.style.height="360px";e.style.overflow="hidden";e.style.marginBottom="16px";mxEvent.disableContextMenu(e);c.appendChild(e);var g=new Graph(e);g.setCellsCloneable(!0);g.setPanning(!0);g.setAllowDanglingEdges(!1);g.connectionHandler.select=!1;g.view.setTranslate(20,20);g.border=20;g.panningHandler.useLeftButtonForPanning=!0;var n="curved=1;";g.cellRenderer.installCellOverlayListeners=
function(b,f,c){mxCellRenderer.prototype.installCellOverlayListeners.apply(this,arguments);mxEvent.addListener(c.node,mxClient.IS_POINTER?"pointerdown":"mousedown",function(c){f.fireEvent(new mxEventObject("pointerdown","event",c,"state",b))});!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&mxEvent.addListener(c.node,"touchstart",function(c){f.fireEvent(new mxEventObject("pointerdown","event",c,"state",b))})};g.getAllConnectionConstraints=function(){return null};g.connectionHandler.marker.highlight.keepOnTop=
@@ -10041,8 +10039,8 @@ mxUtils.write(l,mxResources.get("diagram"));"plantUml"!=d&&f.appendChild(l);l=do
"plantUmlTxt");mxUtils.write(p,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!b.isOffline()&&"plantUml"==d&&(f.appendChild(l),f.appendChild(m),f.appendChild(p));var q=k();n.value=q;e.appendChild(n);this.init=function(){n.focus()};Graph.fileSupport&&(n.addEventListener("dragover",function(b){b.stopPropagation();b.preventDefault()},!1),n.addEventListener("drop",function(b){b.stopPropagation();b.preventDefault();if(0<b.dataTransfer.files.length){b=
b.dataTransfer.files[0];var c=new FileReader;c.onload=function(b){n.value=b.target.result};c.readAsText(b)}},!1));e.appendChild(f);mxEvent.addListener(f,"change",function(){var b=k();if(0==n.value.length||n.value==q)q=b,n.value=q});b.isOffline()||"mermaid"!=d&&"plantUml"!=d||(l=mxUtils.button(mxResources.get("help"),function(){b.openLink("mermaid"==d?"https://mermaid-js.github.io/mermaid/#/":"https://plantuml.com/")}),l.className="geBtn",e.appendChild(l));l=mxUtils.button(mxResources.get("close"),
function(){n.value==q?b.hideDialog():b.confirm(mxResources.get("areYouSure"),function(){b.hideDialog()})});l.className="geBtn";b.editor.cancelFirst&&e.appendChild(l);m=mxUtils.button(mxResources.get("insert"),function(d){b.hideDialog();c(n.value,f.value,d)});e.appendChild(m);m.className="geBtn gePrimaryBtn";b.editor.cancelFirst||e.appendChild(l);this.container=e},NewDialog=function(b,e,d,c,k,g,n,f,l,m,p,q,t,u,v,x,A,z){function B(b){null!=b&&(ra=V=b?135:140);b=!0;if(null!=ma)for(;M<ma.length&&(b||
-0!=mxUtils.mod(M,30));){var c=ma[M++],c=E(c.url,c.libs,c.title,c.tooltip?c.tooltip:c.title,c.select,c.imgUrl,c.info,c.onClick,c.preview,c.noImg,c.clibs);b&&c.click();b=!1}}function y(){if(pa&&null!=u)d||b.hideDialog(),u(pa,ca,L.value);else if(c)d||b.hideDialog(),c(ba,L.value,fa,ka);else{var f=L.value;null!=f&&0<f.length&&b.pickFolder(b.mode,function(c){b.createFile(f,ba,null!=ka&&0<ka.length?ka:null,null,function(){b.hideDialog()},null,c,null,null!=aa&&0<aa.length?aa:null)},b.mode!=App.MODE_GOOGLE||
-null==b.stateArg||null==b.stateArg.folderId)}}function C(b,c,d,e,m,g,k){null!=na&&(na.style.backgroundColor="transparent",na.style.border="1px solid transparent");P.removeAttribute("disabled");ba=c;ka=d;aa=g;na=b;pa=e;fa=k;ca=m;na.style.backgroundColor=f;na.style.border=l}function E(c,f,d,e,l,m,g,k,p,q,t){function n(c,f){if(null==B){var d=c,d=/^https?:\/\//.test(d)&&!b.editor.isCorsEnabledForUrl(d)?PROXY_URL+"?url="+encodeURIComponent(d):TEMPLATE_PATH+"/"+d;mxUtils.get(d,mxUtils.bind(this,function(b){200<=
+0!=mxUtils.mod(M,30));){var c=ma[M++],c=F(c.url,c.libs,c.title,c.tooltip?c.tooltip:c.title,c.select,c.imgUrl,c.info,c.onClick,c.preview,c.noImg,c.clibs);b&&c.click();b=!1}}function y(){if(pa&&null!=u)d||b.hideDialog(),u(pa,ca,L.value);else if(c)d||b.hideDialog(),c(ba,L.value,fa,ka);else{var f=L.value;null!=f&&0<f.length&&b.pickFolder(b.mode,function(c){b.createFile(f,ba,null!=ka&&0<ka.length?ka:null,null,function(){b.hideDialog()},null,c,null,null!=aa&&0<aa.length?aa:null)},b.mode!=App.MODE_GOOGLE||
+null==b.stateArg||null==b.stateArg.folderId)}}function C(b,c,d,e,m,g,k){null!=na&&(na.style.backgroundColor="transparent",na.style.border="1px solid transparent");P.removeAttribute("disabled");ba=c;ka=d;aa=g;na=b;pa=e;fa=k;ca=m;na.style.backgroundColor=f;na.style.border=l}function F(c,f,d,e,l,m,g,k,p,q,t){function n(c,f){if(null==B){var d=c,d=/^https?:\/\//.test(d)&&!b.editor.isCorsEnabledForUrl(d)?PROXY_URL+"?url="+encodeURIComponent(d):TEMPLATE_PATH+"/"+d;mxUtils.get(d,mxUtils.bind(this,function(b){200<=
b.getStatus()&&299>=b.getStatus()&&(B=b.getText());f(B)}))}else f(B)}function K(f,e,l){if(null!=f&&mxUtils.isAncestorNode(document.body,v)){f=mxUtils.parseXml(f);f=Editor.parseDiagramNode(f.documentElement);var m=new mxCodec(f.ownerDocument),k=new mxGraphModel;m.decode(f,k);f=k.root.getChildAt(0).children;b.sidebar.createTooltip(v,f,Math.min((window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-80,1E3),Math.min((window.innerHeight||document.documentElement.clientHeight||
document.body.clientHeight)-80,800),null!=d?mxResources.get(d,null,d):null,!0,new mxPoint(e,l),!0,function(){X=null!=b.sidebar.tooltip&&"none"!=b.sidebar.tooltip.style.display;C(v,null,null,c,g,t)},!0,!1)}}function u(f,d){null==c||J||b.sidebar.currentElt==v?b.sidebar.hideTooltip():(b.sidebar.hideTooltip(),b.sidebar.currentElt=v,J=!0,n(c,function(c){J&&b.sidebar.currentElt==v&&K(c,mxEvent.getClientX(f),mxEvent.getClientY(f));J=!1}))}var v=document.createElement("div");v.className="geTemplate";v.style.position=
"relative";v.style.height=ra+"px";v.style.width=V+"px";var B=null;Editor.isDarkMode()&&(v.style.filter="invert(100%)");null!=d?v.setAttribute("title",mxResources.get(d,null,d)):null!=e&&0<e.length&&v.setAttribute("title",e);var J=!1;if(null!=m){v.style.display="inline-flex";v.style.justifyContent="center";v.style.alignItems="center";l=document.createElement("img");l.setAttribute("src",m);l.setAttribute("alt",e);l.style.maxWidth=ra+"px";l.style.maxHeight=V+"px";var x=m.replace(".drawio.xml","").replace(".drawio",
@@ -10055,16 +10053,16 @@ f.length&&(f=f.substring(0,18)+"&hellip;");return f+" ("+c.length+")"}function c
mxUtils.write(f,mxResources.get("custom"));ha.appendChild(f);for(var d in ja){var e=document.createElement("div"),l=d,f=ja[d];18<l.length&&(l=l.substring(0,18)+"&hellip;");e.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;user-select:none;";e.setAttribute("title",l+" ("+f.length+")");mxUtils.write(e,e.getAttribute("title"));null!=m&&(e.style.padding=m);ha.appendChild(e);(function(b,c){mxEvent.addListener(e,"click",
function(){S!=c&&(S.style.backgroundColor="",S=c,S.style.backgroundColor=n,R.scrollTop=0,R.innerHTML="",M=0,ma=ja[b],X=null,B(!1))})})(d,e)}f=document.createElement("div");f.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;";mxUtils.write(f,"draw.io");ha.appendChild(f)}for(d in ea){var l=ga[d],k=e=document.createElement(l?"ul":"div"),f=ea[d],g=b(d,f);if(null!=l){var p=document.createElement("li"),q=document.createElement("div");q.className="geTempTreeCaret";
q.setAttribute("title",g);mxUtils.write(q,g);k=q;p.appendChild(q);g=document.createElement("ul");g.className="geTempTreeNested";g.style.visibility="hidden";for(var t in l){var y=document.createElement("li"),K=b(t,l[t]);y.setAttribute("title",K);mxUtils.write(y,K);c(d,y,t);g.appendChild(y)}p.appendChild(g);e.className="geTempTree";e.appendChild(p);(function(b,c){mxEvent.addListener(c,"click",function(){b.style.visibility="visible";b.classList.toggle("geTempTreeActive");b.classList.toggle("geTempTreeNested")&&
-setTimeout(function(){b.style.visibility="hidden"},550);c.classList.toggle("geTempTreeCaret-down")})})(g,q)}else e.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;user-select:none;transition: all 0.5s;",e.setAttribute("title",g),mxUtils.write(e,g);null!=m&&(e.style.padding=m);ha.appendChild(e);null==S&&0<f.length&&(S=e,S.style.backgroundColor=n,ma=f);c(d,k)}B(!1)}var F=500>(window.innerWidth||document.documentElement.clientWidth||
+setTimeout(function(){b.style.visibility="hidden"},550);c.classList.toggle("geTempTreeCaret-down")})})(g,q)}else e.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;user-select:none;transition: all 0.5s;",e.setAttribute("title",g),mxUtils.write(e,g);null!=m&&(e.style.padding=m);ha.appendChild(e);null==S&&0<f.length&&(S=e,S.style.backgroundColor=n,ma=f);c(d,k)}B(!1)}var E=500>(window.innerWidth||document.documentElement.clientWidth||
document.body.clientWidth);d=null!=d?d:!0;k=null!=k?k:!1;n=null!=n?n:"#ebf2f9";f=null!=f?f:Editor.isDarkMode()?"#a2a2a2":"#e6eff8";l=null!=l?l:Editor.isDarkMode()?"1px dashed #00a8ff":"1px solid #ccd9ea";p=null!=p?p:EditorUi.templateFile;var D=document.createElement("div");D.style.userSelect="none";D.style.height="100%";var H=document.createElement("div");H.style.whiteSpace="nowrap";H.style.height="46px";d&&D.appendChild(H);var I=document.createElement("img");I.setAttribute("border","0");I.setAttribute("align",
"absmiddle");I.style.width="40px";I.style.height="40px";I.style.marginRight="10px";I.style.paddingBottom="4px";I.src=b.mode==App.MODE_GOOGLE?IMAGE_PATH+"/google-drive-logo.svg":b.mode==App.MODE_DROPBOX?IMAGE_PATH+"/dropbox-logo.svg":b.mode==App.MODE_ONEDRIVE?IMAGE_PATH+"/onedrive-logo.svg":b.mode==App.MODE_GITHUB?IMAGE_PATH+"/github-logo.svg":b.mode==App.MODE_GITLAB?IMAGE_PATH+"/gitlab-logo.svg":b.mode==App.MODE_NOTION?IMAGE_PATH+"/notion-logo.svg":b.mode==App.MODE_TRELLO?IMAGE_PATH+"/trello-logo.svg":
-b.mode==App.MODE_BROWSER?IMAGE_PATH+"/osa_database.png":IMAGE_PATH+"/osa_drive-harddisk.png";e||F||!d||H.appendChild(I);d&&mxUtils.write(H,(F?mxResources.get("name"):null==b.mode||b.mode==App.MODE_GOOGLE||b.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");I=".drawio";b.mode==App.MODE_GOOGLE&&null!=b.drive?I=b.drive.extension:b.mode==App.MODE_DROPBOX&&null!=b.dropbox?I=b.dropbox.extension:b.mode==App.MODE_ONEDRIVE&&null!=b.oneDrive?I=b.oneDrive.extension:b.mode==
-App.MODE_GITHUB&&null!=b.gitHub?I=b.gitHub.extension:b.mode==App.MODE_GITLAB&&null!=b.gitLab?I=b.gitLab.extension:b.mode==App.MODE_NOTION&&null!=b.notion?I=b.notion.extension:b.mode==App.MODE_TRELLO&&null!=b.trello&&(I=b.trello.extension);var L=document.createElement("input");L.setAttribute("value",b.defaultFilename+I);L.style.marginLeft="10px";L.style.width=e||F?"144px":"244px";this.init=function(){d&&(L.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?L.select():document.execCommand("selectAll",
-!1,null));null!=R.parentNode&&null!=R.parentNode.parentNode&&mxEvent.addGestureListeners(R.parentNode.parentNode,mxUtils.bind(this,function(c){b.sidebar.hideTooltip()}),null,null)};d&&(H.appendChild(L),z?L.style.width=e||F?"350px":"450px":(null!=b.editor.diagramFileTypes&&(z=FilenameDialog.createFileTypes(b,L,b.editor.diagramFileTypes),z.style.marginLeft="6px",z.style.width=e||F?"80px":"180px",H.appendChild(z)),null!=b.editor.fileExtensions&&(F=FilenameDialog.createTypeHint(b,L,b.editor.fileExtensions),
-F.style.marginTop="12px",H.appendChild(F))));var H=!1,M=0,Q=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9}),P=mxUtils.button(x||mxResources.get("create"),function(){P.setAttribute("disabled","disabled");y();P.removeAttribute("disabled")});P.className="geBtn gePrimaryBtn";if(q||t){var K=[],X=null,J=null,N=null,O=function(b){P.setAttribute("disabled","disabled");for(var c=0;c<K.length;c++)K[c].className=c==b?"geBtn gePrimaryBtn":
-"geBtn"},H=!0;x=document.createElement("div");x.style.whiteSpace="nowrap";x.style.height="30px";D.appendChild(x);F=mxUtils.button(mxResources.get("Templates",null,"Templates"),function(){ha.style.display="";T.style.display="";R.style.left="160px";O(0);R.scrollTop=0;R.innerHTML="";M=0;X!=ma&&(ma=X,ea=J,oa=N,ha.innerHTML="",G(),X=null)});K.push(F);x.appendChild(F);var W=function(b){ha.style.display="none";T.style.display="none";R.style.left="30px";O(b?-1:1);null==X&&(X=ma);R.scrollTop=0;R.innerHTML=
-"";Q.spin(R);var c=function(b,c,f){M=0;Q.stop();ma=b;f=f||{};var d=0,e;for(e in f)d+=f[e].length;if(c)R.innerHTML=c;else if(0==b.length&&0==d)R.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams",null,"No Diagrams Found"));else if(R.innerHTML="",0<d){ha.style.display="";R.style.left="160px";ha.innerHTML="";oa=0;ea={"draw.io":b};for(e in f)ea[e]=f[e];G()}else B(!0)};b?t(Y.value,c):q(c)};q&&(F=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){W()}),x.appendChild(F),K.push(F));
-if(t){F=document.createElement("span");F.style.marginLeft="10px";F.innerHTML=mxUtils.htmlEntities(mxResources.get("search")+":");x.appendChild(F);var Y=document.createElement("input");Y.style.marginRight="10px";Y.style.marginLeft="10px";Y.style.width="220px";mxEvent.addListener(Y,"keypress",function(b){13==b.keyCode&&W(!0)});x.appendChild(Y);F=mxUtils.button(mxResources.get("search"),function(){W(!0)});F.className="geBtn";x.appendChild(F)}O(0)}var ka=null,aa=null,ba=null,na=null,pa=null,fa=null,ca=
+b.mode==App.MODE_BROWSER?IMAGE_PATH+"/osa_database.png":IMAGE_PATH+"/osa_drive-harddisk.png";e||E||!d||H.appendChild(I);d&&mxUtils.write(H,(E?mxResources.get("name"):null==b.mode||b.mode==App.MODE_GOOGLE||b.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");I=".drawio";b.mode==App.MODE_GOOGLE&&null!=b.drive?I=b.drive.extension:b.mode==App.MODE_DROPBOX&&null!=b.dropbox?I=b.dropbox.extension:b.mode==App.MODE_ONEDRIVE&&null!=b.oneDrive?I=b.oneDrive.extension:b.mode==
+App.MODE_GITHUB&&null!=b.gitHub?I=b.gitHub.extension:b.mode==App.MODE_GITLAB&&null!=b.gitLab?I=b.gitLab.extension:b.mode==App.MODE_NOTION&&null!=b.notion?I=b.notion.extension:b.mode==App.MODE_TRELLO&&null!=b.trello&&(I=b.trello.extension);var L=document.createElement("input");L.setAttribute("value",b.defaultFilename+I);L.style.marginLeft="10px";L.style.width=e||E?"144px":"244px";this.init=function(){d&&(L.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?L.select():document.execCommand("selectAll",
+!1,null));null!=R.parentNode&&null!=R.parentNode.parentNode&&mxEvent.addGestureListeners(R.parentNode.parentNode,mxUtils.bind(this,function(c){b.sidebar.hideTooltip()}),null,null)};d&&(H.appendChild(L),z?L.style.width=e||E?"350px":"450px":(null!=b.editor.diagramFileTypes&&(z=FilenameDialog.createFileTypes(b,L,b.editor.diagramFileTypes),z.style.marginLeft="6px",z.style.width=e||E?"80px":"180px",H.appendChild(z)),null!=b.editor.fileExtensions&&(E=FilenameDialog.createTypeHint(b,L,b.editor.fileExtensions),
+E.style.marginTop="12px",H.appendChild(E))));var H=!1,M=0,Q=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9}),P=mxUtils.button(x||mxResources.get("create"),function(){P.setAttribute("disabled","disabled");y();P.removeAttribute("disabled")});P.className="geBtn gePrimaryBtn";if(q||t){var K=[],X=null,J=null,N=null,O=function(b){P.setAttribute("disabled","disabled");for(var c=0;c<K.length;c++)K[c].className=c==b?"geBtn gePrimaryBtn":
+"geBtn"},H=!0;x=document.createElement("div");x.style.whiteSpace="nowrap";x.style.height="30px";D.appendChild(x);E=mxUtils.button(mxResources.get("Templates",null,"Templates"),function(){ha.style.display="";T.style.display="";R.style.left="160px";O(0);R.scrollTop=0;R.innerHTML="";M=0;X!=ma&&(ma=X,ea=J,oa=N,ha.innerHTML="",G(),X=null)});K.push(E);x.appendChild(E);var W=function(b){ha.style.display="none";T.style.display="none";R.style.left="30px";O(b?-1:1);null==X&&(X=ma);R.scrollTop=0;R.innerHTML=
+"";Q.spin(R);var c=function(b,c,f){M=0;Q.stop();ma=b;f=f||{};var d=0,e;for(e in f)d+=f[e].length;if(c)R.innerHTML=c;else if(0==b.length&&0==d)R.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams",null,"No Diagrams Found"));else if(R.innerHTML="",0<d){ha.style.display="";R.style.left="160px";ha.innerHTML="";oa=0;ea={"draw.io":b};for(e in f)ea[e]=f[e];G()}else B(!0)};b?t(Y.value,c):q(c)};q&&(E=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){W()}),x.appendChild(E),K.push(E));
+if(t){E=document.createElement("span");E.style.marginLeft="10px";E.innerHTML=mxUtils.htmlEntities(mxResources.get("search")+":");x.appendChild(E);var Y=document.createElement("input");Y.style.marginRight="10px";Y.style.marginLeft="10px";Y.style.width="220px";mxEvent.addListener(Y,"keypress",function(b){13==b.keyCode&&W(!0)});x.appendChild(Y);E=mxUtils.button(mxResources.get("search"),function(){W(!0)});E.className="geBtn";x.appendChild(E)}O(0)}var ka=null,aa=null,ba=null,na=null,pa=null,fa=null,ca=
null,R=document.createElement("div");R.style.border="1px solid #d3d3d3";R.style.position="absolute";R.style.left="160px";R.style.right="34px";x=(d?72:40)+(H?30:0);R.style.top=x+"px";R.style.bottom="68px";R.style.margin="6px 0 0 -1px";R.style.padding="6px";R.style.overflow="auto";var T=document.createElement("div");T.style.cssText="position:absolute;left:30px;width:128px;top:"+x+"px;height:22px;margin-top: 6px;white-space: nowrap";var ia=document.createElement("input");ia.style.cssText="width:105px;height:16px;border:1px solid #d3d3d3;padding: 3px 20px 3px 3px;font-size: 12px";
ia.setAttribute("placeholder",mxResources.get("search"));ia.setAttribute("type","text");T.appendChild(ia);var U=document.createElement("img"),Z="undefined"!=typeof Sidebar?Sidebar.prototype.searchImage:IMAGE_PATH+"/search.png";U.setAttribute("src",Z);U.setAttribute("title",mxResources.get("search"));U.style.position="relative";U.style.left="-18px";U.style.top="1px";U.style.background="url('"+b.editor.transparentImage+"')";T.appendChild(U);mxEvent.addListener(U,"click",function(){U.getAttribute("src")==
Dialog.prototype.closeImage&&(U.setAttribute("src",Z),U.setAttribute("title",mxResources.get("search")),ia.value="",null!=da&&(da.click(),da=null));ia.focus()});mxEvent.addListener(ia,"keydown",mxUtils.bind(this,function(b){if(13==b.keyCode){var c=ia.value;if(""==c)null!=da&&(da.click(),da=null);else{if(null==NewDialog.tagsList[p]){var f={},d;for(d in ea)for(var e=ea[d],l=0;l<e.length;l++){var m=e[l];if(null!=m.tags)for(var g=m.tags.toLowerCase().split(";"),k=0;k<g.length;k++)null==f[g[k]]&&(f[g[k]]=
@@ -10080,11 +10078,11 @@ encodeURIComponent(L.value)+"&create="+encodeURIComponent(c)),null==b.getCurrent
var CreateDialog=function(b,e,d,c,k,g,n,f,l,m,p,q,t,u,v,x,A){function z(c,f,d,l){function m(){mxEvent.addListener(g,"click",function(){var c=d;if(n){var f=C.value,l=f.lastIndexOf(".");if(0>e.lastIndexOf(".")&&0>l){var c=null!=c?c:D.value,m="";c==App.MODE_GOOGLE?m=b.drive.extension:c==App.MODE_GITHUB?m=b.gitHub.extension:c==App.MODE_GITLAB?m=b.gitLab.extension:c==App.MODE_NOTION?m=b.notion.extension:c==App.MODE_TRELLO?m=b.trello.extension:c==App.MODE_DROPBOX?m=b.dropbox.extension:c==App.MODE_ONEDRIVE?
m=b.oneDrive.extension:c==App.MODE_DEVICE&&(m=".drawio");0<=l&&(f=f.substring(0,l));C.value=f+m}}B(d)})}var g=document.createElement("a");g.style.overflow="hidden";var k=document.createElement("img");k.src=c;k.setAttribute("border","0");k.setAttribute("align","absmiddle");k.style.width="60px";k.style.height="60px";k.style.paddingBottom="6px";g.style.display="inline-block";g.className="geBaseButton";g.style.position="relative";g.style.margin="4px";g.style.padding="8px 8px 10px 8px";g.style.whiteSpace=
"nowrap";g.appendChild(k);g.style.color="gray";g.style.fontSize="11px";var p=document.createElement("div");g.appendChild(p);mxUtils.write(p,f);if(null!=l&&null==b[l]){k.style.visibility="hidden";mxUtils.setOpacity(p,10);var t=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});t.spin(g);var y=window.setTimeout(function(){null==b[l]&&(t.stop(),g.style.display="none")},3E4);b.addListener("clientLoaded",mxUtils.bind(this,
-function(){null!=b[l]&&(window.clearTimeout(y),mxUtils.setOpacity(p,100),k.style.visibility="",t.stop(),m())}))}else m();G.appendChild(g);++F==q&&(mxUtils.br(G),F=0)}function B(c){var f=C.value;if(null==c||null!=f&&0<f.length)A&&b.hideDialog(),d(f,c,C)}p="1"==urlParams.noDevice?!1:p;n=null!=n?n:!0;f=null!=f?f:!0;q=null!=q?q:4;A=null!=A?A:!0;g=document.createElement("div");g.style.whiteSpace="nowrap";null==c&&b.addLanguageMenu(g);var y=document.createElement("h2");mxUtils.write(y,k||mxResources.get("create"));
+function(){null!=b[l]&&(window.clearTimeout(y),mxUtils.setOpacity(p,100),k.style.visibility="",t.stop(),m())}))}else m();G.appendChild(g);++E==q&&(mxUtils.br(G),E=0)}function B(c){var f=C.value;if(null==c||null!=f&&0<f.length)A&&b.hideDialog(),d(f,c,C)}p="1"==urlParams.noDevice?!1:p;n=null!=n?n:!0;f=null!=f?f:!0;q=null!=q?q:4;A=null!=A?A:!0;g=document.createElement("div");g.style.whiteSpace="nowrap";null==c&&b.addLanguageMenu(g);var y=document.createElement("h2");mxUtils.write(y,k||mxResources.get("create"));
y.style.marginTop="0px";y.style.marginBottom="24px";g.appendChild(y);mxUtils.write(g,mxResources.get("filename")+":");var C=document.createElement("input");C.setAttribute("value",e);C.style.width="200px";C.style.marginLeft="10px";C.style.marginBottom="20px";C.style.maxWidth="70%";this.init=function(){C.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?C.select():document.execCommand("selectAll",!1,null)};g.appendChild(C);null!=x&&(null!=b.editor.diagramFileTypes&&(k=FilenameDialog.createFileTypes(b,
-C,b.editor.diagramFileTypes),k.style.marginLeft="6px",k.style.width="80px",g.appendChild(k)),g.appendChild(FilenameDialog.createTypeHint(b,C,x)));x=null;if("1"!=urlParams.noDevice&&null!=t&&null!=u&&"image/"==u.substring(0,6)&&("image/svg"!=u.substring(0,9)||mxClient.IS_SVG)){C.style.width="160px";k=document.createElement("img");var E=v?t:btoa(unescape(encodeURIComponent(t)));k.setAttribute("src","data:"+u+";base64,"+E);k.style.position="absolute";k.style.top="70px";k.style.right="100px";k.style.maxWidth=
-"120px";k.style.maxHeight="80px";mxUtils.setPrefixedStyle(k.style,"transform","translate(50%,-50%)");g.appendChild(k);mxClient.IS_FF||null==navigator.clipboard||"image/png"!=u||(x=mxUtils.button(mxResources.get("copy"),function(c){c=b.base64ToBlob(E,"image/png");c=new ClipboardItem({"image/png":c,"text/html":new Blob(['<img src="data:'+u+";base64,"+E+'">'],{type:"text/html"})});navigator.clipboard.write([c]).then(mxUtils.bind(this,function(){b.alert(mxResources.get("copiedToClipboard"))}))["catch"](mxUtils.bind(this,
-function(c){b.handleError(c)}))}),x.style.marginTop="6px",x.className="geBtn");l&&Editor.popupsAllowed&&(k.style.cursor="pointer",mxEvent.addGestureListeners(k,null,null,function(b){mxEvent.isPopupTrigger(b)||B("_blank")}))}mxUtils.br(g);var G=document.createElement("div");G.style.textAlign="center";var F=0;G.style.marginTop="6px";g.appendChild(G);var D=document.createElement("select");D.style.marginLeft="10px";b.isOfflineApp()||b.isOffline()||("function"===typeof window.DriveClient&&(t=document.createElement("option"),
+C,b.editor.diagramFileTypes),k.style.marginLeft="6px",k.style.width="80px",g.appendChild(k)),g.appendChild(FilenameDialog.createTypeHint(b,C,x)));x=null;if("1"!=urlParams.noDevice&&null!=t&&null!=u&&"image/"==u.substring(0,6)&&("image/svg"!=u.substring(0,9)||mxClient.IS_SVG)){C.style.width="160px";k=document.createElement("img");var F=v?t:btoa(unescape(encodeURIComponent(t)));k.setAttribute("src","data:"+u+";base64,"+F);k.style.position="absolute";k.style.top="70px";k.style.right="100px";k.style.maxWidth=
+"120px";k.style.maxHeight="80px";mxUtils.setPrefixedStyle(k.style,"transform","translate(50%,-50%)");g.appendChild(k);mxClient.IS_FF||null==navigator.clipboard||"image/png"!=u||(x=mxUtils.button(mxResources.get("copy"),function(c){c=b.base64ToBlob(F,"image/png");c=new ClipboardItem({"image/png":c,"text/html":new Blob(['<img src="data:'+u+";base64,"+F+'">'],{type:"text/html"})});navigator.clipboard.write([c]).then(mxUtils.bind(this,function(){b.alert(mxResources.get("copiedToClipboard"))}))["catch"](mxUtils.bind(this,
+function(c){b.handleError(c)}))}),x.style.marginTop="6px",x.className="geBtn");l&&Editor.popupsAllowed&&(k.style.cursor="pointer",mxEvent.addGestureListeners(k,null,null,function(b){mxEvent.isPopupTrigger(b)||B("_blank")}))}mxUtils.br(g);var G=document.createElement("div");G.style.textAlign="center";var E=0;G.style.marginTop="6px";g.appendChild(G);var D=document.createElement("select");D.style.marginLeft="10px";b.isOfflineApp()||b.isOffline()||("function"===typeof window.DriveClient&&(t=document.createElement("option"),
t.setAttribute("value",App.MODE_GOOGLE),mxUtils.write(t,mxResources.get("googleDrive")),D.appendChild(t),z(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive")),"function"===typeof window.OneDriveClient&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_ONEDRIVE),mxUtils.write(t,mxResources.get("oneDrive")),D.appendChild(t),b.mode==App.MODE_ONEDRIVE&&t.setAttribute("selected","selected"),z(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),
App.MODE_ONEDRIVE,"oneDrive")),"function"===typeof window.DropboxClient&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_DROPBOX),mxUtils.write(t,mxResources.get("dropbox")),D.appendChild(t),b.mode==App.MODE_DROPBOX&&t.setAttribute("selected","selected"),z(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox")),null!=b.gitHub&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_GITHUB),mxUtils.write(t,mxResources.get("github")),D.appendChild(t),
z(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub")),null!=b.gitLab&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_GITLAB),mxUtils.write(t,mxResources.get("gitlab")),D.appendChild(t),z(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),App.MODE_GITLAB,"gitLab")),null!=b.notion&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_NOTION),mxUtils.write(t,mxResources.get("notion")),D.appendChild(t),z(IMAGE_PATH+"/notion-logo.svg",
@@ -10128,9 +10126,9 @@ f.removeAttribute("disabled"):f.setAttribute("disabled","disabled")});mxEvent.ad
var RevisionDialog=function(b,e,d){var c=document.createElement("div"),k=document.createElement("h3");k.style.marginTop="0px";mxUtils.write(k,mxResources.get("revisionHistory"));c.appendChild(k);k=document.createElement("div");k.style.position="absolute";k.style.overflow="auto";k.style.width="170px";k.style.height="378px";c.appendChild(k);var g=document.createElement("div");g.style.position="absolute";g.style.border="1px solid lightGray";g.style.left="199px";g.style.width="470px";g.style.height="376px";
g.style.overflow="hidden";var n=document.createElement("div");n.style.cssText="position:absolute;left:0;right:0;top:0;bottom:20px;text-align:center;transform:translate(0,50%);pointer-events:none;";g.appendChild(n);mxEvent.disableContextMenu(g);c.appendChild(g);var f=new Graph(g);f.setTooltips(!1);f.setEnabled(!1);f.setPanning(!0);f.panningHandler.ignoreCell=!0;f.panningHandler.useLeftButtonForPanning=!0;f.minFitScale=null;f.maxFitScale=null;f.centerZoom=!0;var l=0,m=null,p=0,q=f.getGlobalVariable;
f.getGlobalVariable=function(b){return"page"==b&&null!=m&&null!=m[p]?m[p].getAttribute("name"):"pagenumber"==b?p+1:"pagecount"==b?null!=m?m.length:1:q.apply(this,arguments)};f.getLinkForCell=function(){return null};Editor.MathJaxRender&&f.addListener(mxEvent.SIZE,mxUtils.bind(this,function(c,d){b.editor.graph.mathEnabled&&Editor.MathJaxRender(f.container)}));for(var t={lines:11,length:15,width:6,radius:10,corners:1,rotate:0,direction:1,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.4,trail:60,
-shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"},u=new Spinner(t),v=b.getCurrentFile(),x=b.getXmlFileData(!0,!1,!0).getElementsByTagName("diagram"),A={},t=0;t<x.length;t++)A[x[t].getAttribute("id")]=x[t];var z=null,B=null,y=null,C=null,E=mxUtils.button("",function(){null!=y&&f.zoomIn()});E.className="geSprite geSprite-zoomin";E.setAttribute("title",mxResources.get("zoomIn"));E.style.outline="none";E.style.border="none";E.style.margin="2px";E.setAttribute("disabled","disabled");
-mxUtils.setOpacity(E,20);var G=mxUtils.button("",function(){null!=y&&f.zoomOut()});G.className="geSprite geSprite-zoomout";G.setAttribute("title",mxResources.get("zoomOut"));G.style.outline="none";G.style.border="none";G.style.margin="2px";G.setAttribute("disabled","disabled");mxUtils.setOpacity(G,20);var F=mxUtils.button("",function(){null!=y&&(f.maxFitScale=8,f.fit(8),f.center())});F.className="geSprite geSprite-fit";F.setAttribute("title",mxResources.get("fit"));F.style.outline="none";F.style.border=
-"none";F.style.margin="2px";F.setAttribute("disabled","disabled");mxUtils.setOpacity(F,20);var D=mxUtils.button("",function(){null!=y&&(f.zoomActual(),f.center())});D.className="geSprite geSprite-actualsize";D.setAttribute("title",mxResources.get("actualSize"));D.style.outline="none";D.style.border="none";D.style.margin="2px";D.setAttribute("disabled","disabled");mxUtils.setOpacity(D,20);var H=mxUtils.button("",function(){});H.className="geSprite geSprite-middle";H.setAttribute("title",mxResources.get("compare"));
+shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"},u=new Spinner(t),v=b.getCurrentFile(),x=b.getXmlFileData(!0,!1,!0).getElementsByTagName("diagram"),A={},t=0;t<x.length;t++)A[x[t].getAttribute("id")]=x[t];var z=null,B=null,y=null,C=null,F=mxUtils.button("",function(){null!=y&&f.zoomIn()});F.className="geSprite geSprite-zoomin";F.setAttribute("title",mxResources.get("zoomIn"));F.style.outline="none";F.style.border="none";F.style.margin="2px";F.setAttribute("disabled","disabled");
+mxUtils.setOpacity(F,20);var G=mxUtils.button("",function(){null!=y&&f.zoomOut()});G.className="geSprite geSprite-zoomout";G.setAttribute("title",mxResources.get("zoomOut"));G.style.outline="none";G.style.border="none";G.style.margin="2px";G.setAttribute("disabled","disabled");mxUtils.setOpacity(G,20);var E=mxUtils.button("",function(){null!=y&&(f.maxFitScale=8,f.fit(8),f.center())});E.className="geSprite geSprite-fit";E.setAttribute("title",mxResources.get("fit"));E.style.outline="none";E.style.border=
+"none";E.style.margin="2px";E.setAttribute("disabled","disabled");mxUtils.setOpacity(E,20);var D=mxUtils.button("",function(){null!=y&&(f.zoomActual(),f.center())});D.className="geSprite geSprite-actualsize";D.setAttribute("title",mxResources.get("actualSize"));D.style.outline="none";D.style.border="none";D.style.margin="2px";D.setAttribute("disabled","disabled");mxUtils.setOpacity(D,20);var H=mxUtils.button("",function(){});H.className="geSprite geSprite-middle";H.setAttribute("title",mxResources.get("compare"));
H.style.outline="none";H.style.border="none";H.style.margin="2px";mxUtils.setOpacity(H,60);var I=g.cloneNode(!1);I.style.pointerEvent="none";g.parentNode.appendChild(I);var L=new Graph(I);L.setTooltips(!1);L.setEnabled(!1);L.setPanning(!0);L.panningHandler.ignoreCell=!0;L.panningHandler.useLeftButtonForPanning=!0;L.minFitScale=null;L.maxFitScale=null;L.centerZoom=!0;mxEvent.addGestureListeners(H,function(b){b=A[m[l].getAttribute("id")];mxUtils.setOpacity(H,20);n.innerHTML="";null==b?mxUtils.write(n,
mxResources.get("pageNotFound")):(M.style.display="none",g.style.display="none",I.style.display="",I.style.backgroundColor=g.style.backgroundColor,b=Editor.parseDiagramNode(b),(new mxCodec(b.ownerDocument)).decode(b,L.getModel()),L.view.scaleAndTranslate(f.view.scale,f.view.translate.x,f.view.translate.y))},null,function(){mxUtils.setOpacity(H,60);n.innerHTML="";"none"==g.style.display&&(M.style.display="",g.style.display="",I.style.display="none")});var M=document.createElement("div");M.style.position=
"absolute";M.style.textAlign="right";M.style.color="gray";M.style.marginTop="10px";M.style.backgroundColor="transparent";M.style.top="440px";M.style.right="32px";M.style.maxWidth="380px";M.style.cursor="default";var Q=mxUtils.button(mxResources.get("download"),function(){if(null!=y){var c=mxUtils.getXml(y.documentElement),f=b.getBaseFilename()+".drawio";b.isLocalFileSave()?b.saveLocalFile(c,f,"text/xml"):(c="undefined"===typeof pako?"&xml="+encodeURIComponent(c):"&data="+encodeURIComponent(Graph.compress(c)),
@@ -10142,42 +10140,42 @@ x=document.createElement("div");x.style.position="absolute";x.style.top="482px";
"0px";Y.style.width="100%";var ka=document.createElement("tbody"),aa=(new Date).toDateString();null!=b.currentPage&&null!=b.pages&&(l=mxUtils.indexOf(b.pages,b.currentPage));for(t=e.length-1;0<=t;t--){var ba=function(c){var d=new Date(c.modifiedDate),k=null;if(0<=d.getTime()){var q=function(e){u.stop();n.innerHTML="";var q=mxUtils.parseXml(e),t=b.editor.extractGraphModel(q.documentElement,!0);if(null!=t){var B=function(b){null!=b&&(b=A(Editor.parseDiagramNode(b)));return b},A=function(b){var c=b.getAttribute("background");
if(null==c||""==c||c==mxConstants.NONE)c=f.defaultPageBackgroundColor;g.style.backgroundColor=c;(new mxCodec(b.ownerDocument)).decode(b,f.getModel());f.maxFitScale=1;f.fit(8);f.center();return b};K.style.display="none";K.innerHTML="";y=q;C=e;m=parseSelectFunction=null;p=0;if("mxfile"==t.nodeName){q=t.getElementsByTagName("diagram");m=[];for(e=0;e<q.length;e++)m.push(q[e]);p=Math.min(l,m.length-1);0<m.length&&B(m[p]);if(1<m.length)for(K.removeAttribute("disabled"),K.style.display="",e=0;e<m.length;e++)q=
document.createElement("option"),mxUtils.write(q,m[e].getAttribute("name")||mxResources.get("pageWithNumber",[e+1])),q.setAttribute("value",e),e==p&&q.setAttribute("selected","selected"),K.appendChild(q);X=function(){try{var c=parseInt(K.value);p=l=c;B(m[c])}catch(V){K.value=l,b.handleError(V)}}}else A(t);e=c.lastModifyingUserName;null!=e&&20<e.length&&(e=e.substring(0,20)+"...");M.innerHTML="";mxUtils.write(M,(null!=e?e+" ":"")+d.toLocaleDateString()+" "+d.toLocaleTimeString());M.setAttribute("title",
-k.getAttribute("title"));E.removeAttribute("disabled");G.removeAttribute("disabled");F.removeAttribute("disabled");D.removeAttribute("disabled");H.removeAttribute("disabled");null!=v&&v.isRestricted()||(b.editor.graph.isEnabled()&&P.removeAttribute("disabled"),Q.removeAttribute("disabled"),N.removeAttribute("disabled"),J.removeAttribute("disabled"));mxUtils.setOpacity(E,60);mxUtils.setOpacity(G,60);mxUtils.setOpacity(F,60);mxUtils.setOpacity(D,60);mxUtils.setOpacity(H,60)}else K.style.display="none",
+k.getAttribute("title"));F.removeAttribute("disabled");G.removeAttribute("disabled");E.removeAttribute("disabled");D.removeAttribute("disabled");H.removeAttribute("disabled");null!=v&&v.isRestricted()||(b.editor.graph.isEnabled()&&P.removeAttribute("disabled"),Q.removeAttribute("disabled"),N.removeAttribute("disabled"),J.removeAttribute("disabled"));mxUtils.setOpacity(F,60);mxUtils.setOpacity(G,60);mxUtils.setOpacity(E,60);mxUtils.setOpacity(D,60);mxUtils.setOpacity(H,60)}else K.style.display="none",
K.innerHTML="",M.innerHTML="",mxUtils.write(M,mxResources.get("errorLoadingFile")),mxUtils.write(n,mxResources.get("errorLoadingFile"))},k=document.createElement("tr");k.style.borderBottom="1px solid lightGray";k.style.fontSize="12px";k.style.cursor="pointer";var t=document.createElement("td");t.style.padding="6px";t.style.whiteSpace="nowrap";c==e[e.length-1]?mxUtils.write(t,mxResources.get("current")):d.toDateString()===aa?mxUtils.write(t,d.toLocaleTimeString()):mxUtils.write(t,d.toLocaleDateString()+
" "+d.toLocaleTimeString());k.appendChild(t);k.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString()+(null!=c.fileSize?" "+b.formatFileSize(parseInt(c.fileSize)):"")+(null!=c.lastModifyingUserName?" "+c.lastModifyingUserName:""));mxEvent.addListener(k,"click",function(b){B!=c&&(u.stop(),null!=z&&(z.style.backgroundColor=""),B=c,z=k,z.style.backgroundColor=Editor.isDarkMode()?"#000000":"#ebf2f9",C=y=null,M.removeAttribute("title"),M.innerHTML=mxUtils.htmlEntities(mxResources.get("loading")+
-"..."),g.style.backgroundColor=f.defaultPageBackgroundColor,n.innerHTML="",f.getModel().clear(),P.setAttribute("disabled","disabled"),Q.setAttribute("disabled","disabled"),E.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"),J.setAttribute("disabled","disabled"),N.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"),mxUtils.setOpacity(E,20),
-mxUtils.setOpacity(G,20),mxUtils.setOpacity(F,20),mxUtils.setOpacity(D,20),mxUtils.setOpacity(H,20),u.spin(g),c.getXml(function(b){if(B==c)try{q(b)}catch(U){M.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+": "+U.message)}},function(b){u.stop();K.style.display="none";K.innerHTML="";M.innerHTML="";mxUtils.write(M,mxResources.get("errorLoadingFile"));mxUtils.write(n,mxResources.get("errorLoadingFile"))}),mxEvent.consume(b))});mxEvent.addListener(k,"dblclick",function(b){N.click();window.getSelection?
+"..."),g.style.backgroundColor=f.defaultPageBackgroundColor,n.innerHTML="",f.getModel().clear(),P.setAttribute("disabled","disabled"),Q.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"),E.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"),J.setAttribute("disabled","disabled"),N.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"),mxUtils.setOpacity(F,20),
+mxUtils.setOpacity(G,20),mxUtils.setOpacity(E,20),mxUtils.setOpacity(D,20),mxUtils.setOpacity(H,20),u.spin(g),c.getXml(function(b){if(B==c)try{q(b)}catch(U){M.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+": "+U.message)}},function(b){u.stop();K.style.display="none";K.innerHTML="";M.innerHTML="";mxUtils.write(M,mxResources.get("errorLoadingFile"));mxUtils.write(n,mxResources.get("errorLoadingFile"))}),mxEvent.consume(b))});mxEvent.addListener(k,"dblclick",function(b){N.click();window.getSelection?
window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(b)},!1);ka.appendChild(k)}return k}(e[t]);null!=ba&&t==e.length-1&&(W=ba)}Y.appendChild(ka);k.appendChild(Y)}else null==v||null==b.drive&&v.constructor==window.DriveFile||null==b.dropbox&&v.constructor==window.DropboxFile?(g.style.display="none",O.style.display="none",mxUtils.write(k,mxResources.get("notAvailable"))):(g.style.display="none",O.style.display="none",mxUtils.write(k,mxResources.get("noRevisions")));
-this.init=function(){null!=W&&W.click()};k=mxUtils.button(mxResources.get("close"),function(){b.hideDialog()});k.className="geBtn";O.appendChild(K);O.appendChild(E);O.appendChild(G);O.appendChild(D);O.appendChild(F);O.appendChild(H);b.editor.cancelFirst?(x.appendChild(k),x.appendChild(Q),x.appendChild(J),x.appendChild(P),x.appendChild(N)):(x.appendChild(Q),x.appendChild(J),x.appendChild(P),x.appendChild(N),x.appendChild(k));c.appendChild(x);c.appendChild(O);c.appendChild(M);this.container=c},DraftDialog=
+this.init=function(){null!=W&&W.click()};k=mxUtils.button(mxResources.get("close"),function(){b.hideDialog()});k.className="geBtn";O.appendChild(K);O.appendChild(F);O.appendChild(G);O.appendChild(D);O.appendChild(E);O.appendChild(H);b.editor.cancelFirst?(x.appendChild(k),x.appendChild(Q),x.appendChild(J),x.appendChild(P),x.appendChild(N)):(x.appendChild(Q),x.appendChild(J),x.appendChild(P),x.appendChild(N),x.appendChild(k));c.appendChild(x);c.appendChild(O);c.appendChild(M);this.container=c},DraftDialog=
function(b,e,d,c,k,g,n,f,l){var m=document.createElement("div"),p=document.createElement("div");p.style.marginTop="0px";p.style.whiteSpace="nowrap";p.style.overflow="auto";p.style.lineHeight="normal";mxUtils.write(p,e);m.appendChild(p);var q=document.createElement("select"),t=mxUtils.bind(this,function(){B=mxUtils.parseXml(l[q.value].data);y=b.editor.extractGraphModel(B.documentElement,!0);C=0;this.init()});if(null!=l){q.style.marginLeft="4px";for(e=0;e<l.length;e++){var u=document.createElement("option");
u.setAttribute("value",e);var v=new Date(l[e].created),x=new Date(l[e].modified);mxUtils.write(u,v.toLocaleDateString()+" "+v.toLocaleTimeString()+" - "+(v.toDateString(),x.toDateString(),x.toLocaleDateString())+" "+x.toLocaleTimeString());q.appendChild(u)}p.appendChild(q);mxEvent.addListener(q,"change",t)}null==d&&(d=l[0].data);var A=document.createElement("div");A.style.position="absolute";A.style.border="1px solid lightGray";A.style.marginTop="10px";A.style.left="40px";A.style.right="40px";A.style.top=
-"46px";A.style.bottom="74px";A.style.overflow="hidden";mxEvent.disableContextMenu(A);m.appendChild(A);var z=new Graph(A);z.setEnabled(!1);z.setPanning(!0);z.panningHandler.ignoreCell=!0;z.panningHandler.useLeftButtonForPanning=!0;z.minFitScale=null;z.maxFitScale=null;z.centerZoom=!0;var B=mxUtils.parseXml(d),y=b.editor.extractGraphModel(B.documentElement,!0),C=0,E=null,G=z.getGlobalVariable;z.getGlobalVariable=function(b){return"page"==b&&null!=E&&null!=E[C]?E[C].getAttribute("name"):"pagenumber"==
-b?C+1:"pagecount"==b?null!=E?E.length:1:G.apply(this,arguments)};z.getLinkForCell=function(){return null};d=mxUtils.button("",function(){z.zoomIn()});d.className="geSprite geSprite-zoomin";d.setAttribute("title",mxResources.get("zoomIn"));d.style.outline="none";d.style.border="none";d.style.margin="2px";mxUtils.setOpacity(d,60);p=mxUtils.button("",function(){z.zoomOut()});p.className="geSprite geSprite-zoomout";p.setAttribute("title",mxResources.get("zoomOut"));p.style.outline="none";p.style.border=
+"46px";A.style.bottom="74px";A.style.overflow="hidden";mxEvent.disableContextMenu(A);m.appendChild(A);var z=new Graph(A);z.setEnabled(!1);z.setPanning(!0);z.panningHandler.ignoreCell=!0;z.panningHandler.useLeftButtonForPanning=!0;z.minFitScale=null;z.maxFitScale=null;z.centerZoom=!0;var B=mxUtils.parseXml(d),y=b.editor.extractGraphModel(B.documentElement,!0),C=0,F=null,G=z.getGlobalVariable;z.getGlobalVariable=function(b){return"page"==b&&null!=F&&null!=F[C]?F[C].getAttribute("name"):"pagenumber"==
+b?C+1:"pagecount"==b?null!=F?F.length:1:G.apply(this,arguments)};z.getLinkForCell=function(){return null};d=mxUtils.button("",function(){z.zoomIn()});d.className="geSprite geSprite-zoomin";d.setAttribute("title",mxResources.get("zoomIn"));d.style.outline="none";d.style.border="none";d.style.margin="2px";mxUtils.setOpacity(d,60);p=mxUtils.button("",function(){z.zoomOut()});p.className="geSprite geSprite-zoomout";p.setAttribute("title",mxResources.get("zoomOut"));p.style.outline="none";p.style.border=
"none";p.style.margin="2px";mxUtils.setOpacity(p,60);e=mxUtils.button("",function(){z.maxFitScale=8;z.fit(8);z.center()});e.className="geSprite geSprite-fit";e.setAttribute("title",mxResources.get("fit"));e.style.outline="none";e.style.border="none";e.style.margin="2px";mxUtils.setOpacity(e,60);u=mxUtils.button("",function(){z.zoomActual();z.center()});u.className="geSprite geSprite-actualsize";u.setAttribute("title",mxResources.get("actualSize"));u.style.outline="none";u.style.border="none";u.style.margin=
-"2px";mxUtils.setOpacity(u,60);n=mxUtils.button(n||mxResources.get("discard"),function(){k.apply(this,[q.value,mxUtils.bind(this,function(){null!=q.parentNode&&(q.options[q.selectedIndex].parentNode.removeChild(q.options[q.selectedIndex]),0<q.options.length?(q.value=q.options[0].value,t()):b.hideDialog(!0))})])});n.className="geBtn";var F=document.createElement("select");F.style.maxWidth="80px";F.style.position="relative";F.style.top="-2px";F.style.verticalAlign="bottom";F.style.marginRight="6px";
-F.style.display="none";g=mxUtils.button(g||mxResources.get("edit"),function(){c.apply(this,[q.value])});g.className="geBtn gePrimaryBtn";v=document.createElement("div");v.style.position="absolute";v.style.bottom="30px";v.style.right="40px";v.style.textAlign="right";x=document.createElement("div");x.className="geToolbarContainer";x.style.cssText="box-shadow:none !important;background-color:transparent;padding:2px;border-style:none !important;bottom:30px;";this.init=function(){function b(b){if(null!=
-b){var c=b.getAttribute("background");if(null==c||""==c||c==mxConstants.NONE)c=Editor.isDarkMode()?"transparent":"#ffffff";A.style.backgroundColor=c;(new mxCodec(b.ownerDocument)).decode(b,z.getModel());z.maxFitScale=1;z.fit(8);z.center()}return b}function c(c){null!=c&&(c=b(Editor.parseDiagramNode(c)));return c}mxEvent.addListener(F,"change",function(b){C=parseInt(F.value);c(E[C]);mxEvent.consume(b)});if("mxfile"==y.nodeName){var f=y.getElementsByTagName("diagram");E=[];for(var d=0;d<f.length;d++)E.push(f[d]);
-0<E.length&&c(E[C]);F.innerHTML="";if(1<E.length)for(F.style.display="",d=0;d<E.length;d++)f=document.createElement("option"),mxUtils.write(f,E[d].getAttribute("name")||mxResources.get("pageWithNumber",[d+1])),f.setAttribute("value",d),d==C&&f.setAttribute("selected","selected"),F.appendChild(f);else F.style.display="none"}else b(y)};x.appendChild(F);x.appendChild(d);x.appendChild(p);x.appendChild(u);x.appendChild(e);d=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog(!0)});d.className=
+"2px";mxUtils.setOpacity(u,60);n=mxUtils.button(n||mxResources.get("discard"),function(){k.apply(this,[q.value,mxUtils.bind(this,function(){null!=q.parentNode&&(q.options[q.selectedIndex].parentNode.removeChild(q.options[q.selectedIndex]),0<q.options.length?(q.value=q.options[0].value,t()):b.hideDialog(!0))})])});n.className="geBtn";var E=document.createElement("select");E.style.maxWidth="80px";E.style.position="relative";E.style.top="-2px";E.style.verticalAlign="bottom";E.style.marginRight="6px";
+E.style.display="none";g=mxUtils.button(g||mxResources.get("edit"),function(){c.apply(this,[q.value])});g.className="geBtn gePrimaryBtn";v=document.createElement("div");v.style.position="absolute";v.style.bottom="30px";v.style.right="40px";v.style.textAlign="right";x=document.createElement("div");x.className="geToolbarContainer";x.style.cssText="box-shadow:none !important;background-color:transparent;padding:2px;border-style:none !important;bottom:30px;";this.init=function(){function b(b){if(null!=
+b){var c=b.getAttribute("background");if(null==c||""==c||c==mxConstants.NONE)c=Editor.isDarkMode()?"transparent":"#ffffff";A.style.backgroundColor=c;(new mxCodec(b.ownerDocument)).decode(b,z.getModel());z.maxFitScale=1;z.fit(8);z.center()}return b}function c(c){null!=c&&(c=b(Editor.parseDiagramNode(c)));return c}mxEvent.addListener(E,"change",function(b){C=parseInt(E.value);c(F[C]);mxEvent.consume(b)});if("mxfile"==y.nodeName){var f=y.getElementsByTagName("diagram");F=[];for(var d=0;d<f.length;d++)F.push(f[d]);
+0<F.length&&c(F[C]);E.innerHTML="";if(1<F.length)for(E.style.display="",d=0;d<F.length;d++)f=document.createElement("option"),mxUtils.write(f,F[d].getAttribute("name")||mxResources.get("pageWithNumber",[d+1])),f.setAttribute("value",d),d==C&&f.setAttribute("selected","selected"),E.appendChild(f);else E.style.display="none"}else b(y)};x.appendChild(E);x.appendChild(d);x.appendChild(p);x.appendChild(u);x.appendChild(e);d=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog(!0)});d.className=
"geBtn";f=null!=f?mxUtils.button(mxResources.get("ignore"),f):null;null!=f&&(f.className="geBtn");b.editor.cancelFirst?(v.appendChild(d),null!=f&&v.appendChild(f),v.appendChild(n),v.appendChild(g)):(v.appendChild(g),v.appendChild(n),null!=f&&v.appendChild(f),v.appendChild(d));m.appendChild(v);m.appendChild(x);this.container=m},FindWindow=function(b,e,d,c,k,g){function n(b,c,f,d){if("object"===typeof c.value&&null!=c.value.attributes){c=c.value.attributes;for(var e=0;e<c.length;e++)if("label"!=c[e].nodeName){var l=
-mxUtils.trim(c[e].nodeValue.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();if(null==b&&(d&&0<=l.indexOf(f)||!d&&l.substring(0,f.length)===f)||null!=b&&b.test(l))return!0}}return!1}function f(){u&&E.value?(Q.removeAttribute("disabled"),P.removeAttribute("disabled")):(Q.setAttribute("disabled","disabled"),P.setAttribute("disabled","disabled"));E.value&&C.value?K.removeAttribute("disabled"):K.setAttribute("disabled","disabled")}function l(c,d,e){L.innerHTML="";var m=p.model.getDescendants(p.model.getRoot()),
-k=C.value.toLowerCase(),y=G.checked?new RegExp(k):null,K=null;x=null;q!=k&&(q=k,t=null,v=!1);var B=null==t;if(0<k.length){if(v){v=!1;for(var J,X=0;X<b.pages.length;X++)if(b.currentPage==b.pages[X]){J=X;break}c=(J+1)%b.pages.length;t=null;do v=!1,m=b.pages[c],p=b.createTemporaryGraph(p.getStylesheet()),b.updatePageRoot(m),p.model.setRoot(m.root),c=(c+1)%b.pages.length;while(!l(!0,d,e)&&c!=J);t&&(t=null,e?b.editor.graph.model.execute(new SelectPage(b,m)):b.selectPage(m));v=!1;p=b.editor.graph;return l(!0,
-d,e)}for(X=0;X<m.length;X++){J=p.view.getState(m[X]);d&&null!=y&&(B=B||J==t);if(null!=J&&null!=J.cell.value&&(B||null==K)&&(p.model.isVertex(J.cell)||p.model.isEdge(J.cell))){null!=J.style&&"1"==J.style.html?(D.innerHTML=p.sanitizeHtml(p.getLabel(J.cell)),label=mxUtils.extractTextWithWhitespace([D])):label=p.getLabel(J.cell);label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();var O=0;d&&g&&null!=y&&J==t&&(label=label.substr(A),O=A);var z=""==E.value,N=z;if(null==y&&(N&&
-0<=label.indexOf(k)||!N&&label.substring(0,k.length)===k||z&&n(y,J.cell,k,N))||null!=y&&(y.test(label)||z&&n(y,J.cell,k,N)))if(g&&(null!=y?(z=label.match(y),x=z[0].toLowerCase(),A=O+z.index+x.length):(x=k,A=x.length)),B){K=J;break}else null==K&&(K=J)}B=B||J==t}}if(null!=K){if(X==m.length&&F.checked)return t=null,v=!0,l(!0,d,e);t=K;p.scrollCellToVisible(t.cell);p.isEnabled()&&!p.isCellLocked(t.cell)?e||p.getSelectionCell()==t.cell&&1==p.getSelectionCount()||p.setSelectionCell(t.cell):p.highlightCell(t.cell)}else{if(!c&&
-F.checked)return v=!0,l(!0,d,e);p.isEnabled()&&!e&&p.clearSelection()}u=null!=K;g&&!c&&f();return 0==k.length||null!=K}var m=b.actions.get("findReplace"),p=b.editor.graph,q=null,t=null,u=!1,v=!1,x=null,A=0,z=1,B=document.createElement("div");B.style.userSelect="none";B.style.overflow="hidden";B.style.padding="10px";B.style.height="100%";var y=g?"260px":"200px",C=document.createElement("input");C.setAttribute("placeholder",mxResources.get("find"));C.setAttribute("type","text");C.style.marginTop="4px";
-C.style.marginBottom="6px";C.style.width=y;C.style.fontSize="12px";C.style.borderRadius="4px";C.style.padding="6px";B.appendChild(C);mxUtils.br(B);var E;g&&(E=document.createElement("input"),E.setAttribute("placeholder",mxResources.get("replaceWith")),E.setAttribute("type","text"),E.style.marginTop="4px",E.style.marginBottom="6px",E.style.width=y,E.style.fontSize="12px",E.style.borderRadius="4px",E.style.padding="6px",B.appendChild(E),mxUtils.br(B),mxEvent.addListener(E,"input",f));var G=document.createElement("input");
-G.setAttribute("id","geFindWinRegExChck");G.setAttribute("type","checkbox");G.style.marginRight="4px";B.appendChild(G);y=document.createElement("label");y.setAttribute("for","geFindWinRegExChck");B.appendChild(y);mxUtils.write(y,mxResources.get("regularExpression"));B.appendChild(y);y=b.menus.createHelpLink("https://www.diagrams.net/doc/faq/find-shapes");y.style.position="relative";y.style.marginLeft="6px";y.style.top="-1px";B.appendChild(y);mxUtils.br(B);var F=document.createElement("input");F.setAttribute("id",
-"geFindWinAllPagesChck");F.setAttribute("type","checkbox");F.style.marginRight="4px";B.appendChild(F);y=document.createElement("label");y.setAttribute("for","geFindWinAllPagesChck");B.appendChild(y);mxUtils.write(y,mxResources.get("allPages"));B.appendChild(y);var D=document.createElement("div");mxUtils.br(B);y=document.createElement("div");y.style.left="0px";y.style.right="0px";y.style.marginTop="6px";y.style.padding="0 6px 0 6px";y.style.textAlign="center";B.appendChild(y);var H=mxUtils.button(mxResources.get("reset"),
-function(){L.innerHTML="";C.value="";C.style.backgroundColor="";g&&(E.value="",f());q=t=null;v=!1;C.focus()});H.setAttribute("title",mxResources.get("reset"));H.style["float"]="none";H.style.width="120px";H.style.marginTop="6px";H.style.marginLeft="8px";H.style.overflow="hidden";H.style.textOverflow="ellipsis";H.className="geBtn";g||y.appendChild(H);var I=mxUtils.button(mxResources.get("find"),function(){try{C.style.backgroundColor=l()?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}catch(J){b.handleError(J)}});
+mxUtils.trim(c[e].nodeValue.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();if(null==b&&(d&&0<=l.indexOf(f)||!d&&l.substring(0,f.length)===f)||null!=b&&b.test(l))return!0}}return!1}function f(){u&&F.value?(Q.removeAttribute("disabled"),P.removeAttribute("disabled")):(Q.setAttribute("disabled","disabled"),P.setAttribute("disabled","disabled"));F.value&&C.value?K.removeAttribute("disabled"):K.setAttribute("disabled","disabled")}function l(c,d,e){L.innerHTML="";var m=p.model.getDescendants(p.model.getRoot()),
+k=C.value.toLowerCase(),K=G.checked?new RegExp(k):null,y=null;x=null;q!=k&&(q=k,t=null,v=!1);var B=null==t;if(0<k.length){if(v){v=!1;for(var J,X=0;X<b.pages.length;X++)if(b.currentPage==b.pages[X]){J=X;break}c=(J+1)%b.pages.length;t=null;do v=!1,m=b.pages[c],p=b.createTemporaryGraph(p.getStylesheet()),b.updatePageRoot(m),p.model.setRoot(m.root),c=(c+1)%b.pages.length;while(!l(!0,d,e)&&c!=J);t&&(t=null,e?b.editor.graph.model.execute(new SelectPage(b,m)):b.selectPage(m));v=!1;p=b.editor.graph;return l(!0,
+d,e)}for(X=0;X<m.length;X++){J=p.view.getState(m[X]);d&&null!=K&&(B=B||J==t);if(null!=J&&null!=J.cell.value&&(B||null==y)&&(p.model.isVertex(J.cell)||p.model.isEdge(J.cell))){null!=J.style&&"1"==J.style.html?(D.innerHTML=p.sanitizeHtml(p.getLabel(J.cell)),label=mxUtils.extractTextWithWhitespace([D])):label=p.getLabel(J.cell);label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();var O=0;d&&g&&null!=K&&J==t&&(label=label.substr(A),O=A);var z=""==F.value,N=z;if(null==K&&(N&&
+0<=label.indexOf(k)||!N&&label.substring(0,k.length)===k||z&&n(K,J.cell,k,N))||null!=K&&(K.test(label)||z&&n(K,J.cell,k,N)))if(g&&(null!=K?(z=label.match(K),x=z[0].toLowerCase(),A=O+z.index+x.length):(x=k,A=x.length)),B){y=J;break}else null==y&&(y=J)}B=B||J==t}}if(null!=y){if(X==m.length&&E.checked)return t=null,v=!0,l(!0,d,e);t=y;p.scrollCellToVisible(t.cell);p.isEnabled()&&!p.isCellLocked(t.cell)?e||p.getSelectionCell()==t.cell&&1==p.getSelectionCount()||p.setSelectionCell(t.cell):p.highlightCell(t.cell)}else{if(!c&&
+E.checked)return v=!0,l(!0,d,e);p.isEnabled()&&!e&&p.clearSelection()}u=null!=y;g&&!c&&f();return 0==k.length||null!=y}var m=b.actions.get("findReplace"),p=b.editor.graph,q=null,t=null,u=!1,v=!1,x=null,A=0,z=1,B=document.createElement("div");B.style.userSelect="none";B.style.overflow="hidden";B.style.padding="10px";B.style.height="100%";var y=g?"260px":"200px",C=document.createElement("input");C.setAttribute("placeholder",mxResources.get("find"));C.setAttribute("type","text");C.style.marginTop="4px";
+C.style.marginBottom="6px";C.style.width=y;C.style.fontSize="12px";C.style.borderRadius="4px";C.style.padding="6px";B.appendChild(C);mxUtils.br(B);var F;g&&(F=document.createElement("input"),F.setAttribute("placeholder",mxResources.get("replaceWith")),F.setAttribute("type","text"),F.style.marginTop="4px",F.style.marginBottom="6px",F.style.width=y,F.style.fontSize="12px",F.style.borderRadius="4px",F.style.padding="6px",B.appendChild(F),mxUtils.br(B),mxEvent.addListener(F,"input",f));var G=document.createElement("input");
+G.setAttribute("id","geFindWinRegExChck");G.setAttribute("type","checkbox");G.style.marginRight="4px";B.appendChild(G);y=document.createElement("label");y.setAttribute("for","geFindWinRegExChck");B.appendChild(y);mxUtils.write(y,mxResources.get("regularExpression"));B.appendChild(y);y=b.menus.createHelpLink("https://www.diagrams.net/doc/faq/find-shapes");y.style.position="relative";y.style.marginLeft="6px";y.style.top="-1px";B.appendChild(y);mxUtils.br(B);var E=document.createElement("input");E.setAttribute("id",
+"geFindWinAllPagesChck");E.setAttribute("type","checkbox");E.style.marginRight="4px";B.appendChild(E);y=document.createElement("label");y.setAttribute("for","geFindWinAllPagesChck");B.appendChild(y);mxUtils.write(y,mxResources.get("allPages"));B.appendChild(y);var D=document.createElement("div");mxUtils.br(B);y=document.createElement("div");y.style.left="0px";y.style.right="0px";y.style.marginTop="6px";y.style.padding="0 6px 0 6px";y.style.textAlign="center";B.appendChild(y);var H=mxUtils.button(mxResources.get("reset"),
+function(){L.innerHTML="";C.value="";C.style.backgroundColor="";g&&(F.value="",f());q=t=null;v=!1;C.focus()});H.setAttribute("title",mxResources.get("reset"));H.style["float"]="none";H.style.width="120px";H.style.marginTop="6px";H.style.marginLeft="8px";H.style.overflow="hidden";H.style.textOverflow="ellipsis";H.className="geBtn";g||y.appendChild(H);var I=mxUtils.button(mxResources.get("find"),function(){try{C.style.backgroundColor=l()?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}catch(J){b.handleError(J)}});
I.setAttribute("title",mxResources.get("find")+" (Enter)");I.style["float"]="none";I.style.width="120px";I.style.marginTop="6px";I.style.marginLeft="8px";I.style.overflow="hidden";I.style.textOverflow="ellipsis";I.className="geBtn gePrimaryBtn";y.appendChild(I);var L=document.createElement("div");L.style.marginTop="10px";if(g){var M=function(b,c,f,d,e){if(null==e||"1"!=e.html)return d=b.toLowerCase().indexOf(c,d),0>d?b:b.substr(0,d)+f+b.substr(d+c.length);var l=b;c=mxUtils.htmlEntities(c);e=[];for(var m=
--1;-1<(m=b.indexOf("<",m+1));)e.push(m);m=b.match(/<[^>]*>/g);b=b.replace(/<[^>]*>/g,"");d=b.toLowerCase().indexOf(c,d);if(0>d)return l;l=d+c.length;f=mxUtils.htmlEntities(f);b=b.substr(0,d)+f+b.substr(l);for(var k=0,g=0;g<e.length;g++){if(e[g]-k<d)b=b.substr(0,e[g])+m[g]+b.substr(e[g]);else{var p=e[g]-k<l?d+k:e[g]+(f.length-c.length);b=b.substr(0,p)+m[g]+b.substr(p)}k+=m[g].length}return b},Q=mxUtils.button(mxResources.get("replFind"),function(){try{if(null!=x&&null!=t&&E.value){var c=t.cell,f=p.getLabel(c);
-p.isCellEditable(c)&&p.model.setValue(c,M(f,x,E.value,A-x.length,p.getCurrentCellStyle(c)));C.style.backgroundColor=l(!1,!0)?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}}catch(O){b.handleError(O)}});Q.setAttribute("title",mxResources.get("replFind"));Q.style["float"]="none";Q.style.width="120px";Q.style.marginTop="6px";Q.style.marginLeft="8px";Q.style.overflow="hidden";Q.style.textOverflow="ellipsis";Q.className="geBtn gePrimaryBtn";Q.setAttribute("disabled","disabled");y.appendChild(Q);mxUtils.br(y);
-var P=mxUtils.button(mxResources.get("replace"),function(){try{if(null!=x&&null!=t&&E.value){var c=t.cell,f=p.getLabel(c);p.model.setValue(c,M(f,x,E.value,A-x.length,p.getCurrentCellStyle(c)));Q.setAttribute("disabled","disabled");P.setAttribute("disabled","disabled")}}catch(O){b.handleError(O)}});P.setAttribute("title",mxResources.get("replace"));P.style["float"]="none";P.style.width="120px";P.style.marginTop="6px";P.style.marginLeft="8px";P.style.overflow="hidden";P.style.textOverflow="ellipsis";
-P.className="geBtn gePrimaryBtn";P.setAttribute("disabled","disabled");y.appendChild(P);var K=mxUtils.button(mxResources.get("replaceAll"),function(){L.innerHTML="";if(E.value){var c=b.currentPage,f=b.editor.graph.getSelectionCells();b.editor.graph.rendering=!1;p.getModel().beginUpdate();try{for(var d=0,e={};l(!1,!0,!0)&&100>d;){var m=t.cell,k=p.getLabel(m),g=e[m.id];if(g&&g.replAllMrk==z&&g.replAllPos>=A)break;e[m.id]={replAllMrk:z,replAllPos:A};p.isCellEditable(m)&&(p.model.setValue(m,M(k,x,E.value,
+-1;-1<(m=b.indexOf("<",m+1));)e.push(m);m=b.match(/<[^>]*>/g);b=b.replace(/<[^>]*>/g,"");d=b.toLowerCase().indexOf(c,d);if(0>d)return l;l=d+c.length;f=mxUtils.htmlEntities(f);b=b.substr(0,d)+f+b.substr(l);for(var k=0,g=0;g<e.length;g++){if(e[g]-k<d)b=b.substr(0,e[g])+m[g]+b.substr(e[g]);else{var p=e[g]-k<l?d+k:e[g]+(f.length-c.length);b=b.substr(0,p)+m[g]+b.substr(p)}k+=m[g].length}return b},Q=mxUtils.button(mxResources.get("replFind"),function(){try{if(null!=x&&null!=t&&F.value){var c=t.cell,f=p.getLabel(c);
+p.isCellEditable(c)&&p.model.setValue(c,M(f,x,F.value,A-x.length,p.getCurrentCellStyle(c)));C.style.backgroundColor=l(!1,!0)?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}}catch(O){b.handleError(O)}});Q.setAttribute("title",mxResources.get("replFind"));Q.style["float"]="none";Q.style.width="120px";Q.style.marginTop="6px";Q.style.marginLeft="8px";Q.style.overflow="hidden";Q.style.textOverflow="ellipsis";Q.className="geBtn gePrimaryBtn";Q.setAttribute("disabled","disabled");y.appendChild(Q);mxUtils.br(y);
+var P=mxUtils.button(mxResources.get("replace"),function(){try{if(null!=x&&null!=t&&F.value){var c=t.cell,f=p.getLabel(c);p.model.setValue(c,M(f,x,F.value,A-x.length,p.getCurrentCellStyle(c)));Q.setAttribute("disabled","disabled");P.setAttribute("disabled","disabled")}}catch(O){b.handleError(O)}});P.setAttribute("title",mxResources.get("replace"));P.style["float"]="none";P.style.width="120px";P.style.marginTop="6px";P.style.marginLeft="8px";P.style.overflow="hidden";P.style.textOverflow="ellipsis";
+P.className="geBtn gePrimaryBtn";P.setAttribute("disabled","disabled");y.appendChild(P);var K=mxUtils.button(mxResources.get("replaceAll"),function(){L.innerHTML="";if(F.value){var c=b.currentPage,f=b.editor.graph.getSelectionCells();b.editor.graph.rendering=!1;p.getModel().beginUpdate();try{for(var d=0,e={};l(!1,!0,!0)&&100>d;){var m=t.cell,k=p.getLabel(m),g=e[m.id];if(g&&g.replAllMrk==z&&g.replAllPos>=A)break;e[m.id]={replAllMrk:z,replAllPos:A};p.isCellEditable(m)&&(p.model.setValue(m,M(k,x,F.value,
A-x.length,p.getCurrentCellStyle(m))),d++)}c!=b.currentPage&&b.editor.graph.model.execute(new SelectPage(b,c));mxUtils.write(L,mxResources.get("matchesRepl",[d]))}catch(ba){b.handleError(ba)}finally{p.getModel().endUpdate(),b.editor.graph.setSelectionCells(f),b.editor.graph.rendering=!0}z++}});K.setAttribute("title",mxResources.get("replaceAll"));K.style["float"]="none";K.style.width="120px";K.style.marginTop="6px";K.style.marginLeft="8px";K.style.overflow="hidden";K.style.textOverflow="ellipsis";
K.className="geBtn gePrimaryBtn";K.setAttribute("disabled","disabled");y.appendChild(K);mxUtils.br(y);y.appendChild(H);H=mxUtils.button(mxResources.get("close"),mxUtils.bind(this,function(){this.window.setVisible(!1)}));H.setAttribute("title",mxResources.get("close"));H.style["float"]="none";H.style.width="120px";H.style.marginTop="6px";H.style.marginLeft="8px";H.style.overflow="hidden";H.style.textOverflow="ellipsis";H.className="geBtn";y.appendChild(H);mxUtils.br(y);y.appendChild(L)}else H.style.width=
"90px",I.style.width="90px";mxEvent.addListener(C,"keyup",function(b){if(91==b.keyCode||93==b.keyCode||17==b.keyCode)mxEvent.consume(b);else if(27==b.keyCode)m.funct();else if(q!=C.value.toLowerCase()||13==b.keyCode)try{C.style.backgroundColor=l()?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}catch(N){C.style.backgroundColor=Editor.isDarkMode()?"#ff0000":"#ffcfcf"}});mxEvent.addListener(B,"keydown",function(c){70==c.keyCode&&b.keyHandler.isControlDown(c)&&!mxEvent.isShiftDown(c)&&(m.funct(),mxEvent.consume(c))});
-this.window=new mxWindow(mxResources.get("find")+(g?"/"+mxResources.get("replace"):""),B,e,d,c,k,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit();this.window.isVisible()?(C.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?C.select():document.execCommand("selectAll",!1,null),null!=b.pages&&1<b.pages.length?F.removeAttribute("disabled"):
-(F.checked=!1,F.setAttribute("disabled","disabled"))):p.container.focus()}));this.window.setLocation=function(b,c){var f=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));c=Math.max(0,Math.min(c,f-this.table.clientHeight-("1"==urlParams.sketch?3:48)));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};
+this.window=new mxWindow(mxResources.get("find")+(g?"/"+mxResources.get("replace"):""),B,e,d,c,k,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit();this.window.isVisible()?(C.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?C.select():document.execCommand("selectAll",!1,null),null!=b.pages&&1<b.pages.length?E.removeAttribute("disabled"):
+(E.checked=!1,E.setAttribute("disabled","disabled"))):p.container.focus()}));this.window.setLocation=function(b,c){var f=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));c=Math.max(0,Math.min(c,f-this.table.clientHeight-("1"==urlParams.sketch?3:48)));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};
var X=mxUtils.bind(this,function(){var b=this.window.getX(),c=this.window.getY();this.window.setLocation(b,c)});mxEvent.addListener(window,"resize",X);this.destroy=function(){mxEvent.removeListener(window,"resize",X);this.window.destroy()}},FreehandWindow=function(b,e,d,c,k){var g=b.editor.graph;b=document.createElement("div");b.style.textAlign="center";b.style.userSelect="none";b.style.overflow="hidden";b.style.height="100%";var n=mxUtils.button(mxResources.get("startDrawing"),function(){g.freehand.isDrawing()?
g.freehand.stopDrawing():g.freehand.startDrawing()});n.setAttribute("title",mxResources.get("startDrawing"));n.style.marginTop="10px";n.style.width="90%";n.style.boxSizing="border-box";n.style.overflow="hidden";n.style.textOverflow="ellipsis";n.style.textAlign="center";n.className="geBtn gePrimaryBtn";b.appendChild(n);this.window=new mxWindow(mxResources.get("freehand"),b,e,d,c,k,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);
g.addListener("freehandStateChanged",mxUtils.bind(this,function(){n.innerHTML="";mxUtils.write(n,mxResources.get(g.freehand.isDrawing()?"stopDrawing":"startDrawing"));n.setAttribute("title",mxResources.get(g.freehand.isDrawing()?"stopDrawing":"startDrawing"));n.className="geBtn"+(g.freehand.isDrawing()?"":" gePrimaryBtn")}));this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit()}));this.window.addListener("hide",mxUtils.bind(this,function(){g.freehand.isDrawing()&&g.freehand.stopDrawing()}));
@@ -10220,27 +10218,27 @@ document.createElement("td");mxUtils.write(l,mxResources.get("height")+":");var
0<mxUtils.trim(q.value).length&&(f.x=Number(q.value)),0<mxUtils.trim(t.value).length&&(f.y=Number(t.value)),0<mxUtils.trim(u.value).length&&(null==f.offset&&(f.offset=new mxPoint),f.offset.x=Number(u.value)),0<mxUtils.trim(v.value).length&&(null==f.offset&&(f.offset=new mxPoint),f.offset.y=Number(v.value))),d.isCellResizable(e[c])&&(0<mxUtils.trim(x.value).length&&(f.width=Number(x.value)),0<mxUtils.trim(A.value).length&&(f.height=Number(A.value))),d.getModel().setGeometry(e[c],f));0<mxUtils.trim(z.value).length&&
d.setCellStyles(mxConstants.STYLE_ROTATION,Number(z.value),[e[c]])}}finally{d.getModel().endUpdate()}});B.className="geBtn gePrimaryBtn";mxEvent.addListener(k,"keypress",function(b){13==b.keyCode&&B.click()});g=document.createElement("div");g.style.marginTop="20px";g.style.textAlign="right";b.editor.cancelFirst?(g.appendChild(c),g.appendChild(B)):(g.appendChild(B),g.appendChild(c));k.appendChild(g);this.container=k},LibraryDialog=function(b,e,d,c,k,g){function n(b){for(b=document.elementFromPoint(b.clientX,
b.clientY);null!=b&&b.parentNode!=u;)b=b.parentNode;var c=null;if(null!=b)for(var f=u.firstChild,c=0;null!=f&&f!=b;)f=f.nextSibling,c++;return c}function f(c,d,e,l,m,k,g,q,t){try{if(b.spinner.stop(),null==d||"image/"==d.substring(0,6))if(null==c&&null!=g||null==x[c]){var K=function(){I.innerHTML="";I.style.cursor="pointer";I.style.whiteSpace="nowrap";I.style.textOverflow="ellipsis";mxUtils.write(I,null!=G.title&&0<G.title.length?G.title:mxResources.get("untitled"));I.style.color=null==G.title||0==
-G.title.length?"#d0d0d0":""};u.style.backgroundImage="";v.style.display="none";var J=m,D=k;if(m>b.maxImageSize||k>b.maxImageSize){var O=Math.min(1,Math.min(b.maxImageSize/Math.max(1,m)),b.maxImageSize/Math.max(1,k));m*=O;k*=O}J>D?(D=Math.round(100*D/J),J=100):(J=Math.round(100*J/D),D=100);var z=document.createElement("div");z.setAttribute("draggable","true");z.style.display="inline-block";z.style.position="relative";z.style.padding="0 12px";z.style.cursor="move";mxUtils.setPrefixedStyle(z.style,"transition",
-"transform .1s ease-in-out");if(null!=c){var F=document.createElement("img");F.setAttribute("src",y.convert(c));F.style.width=J+"px";F.style.height=D+"px";F.style.margin="10px";F.style.paddingBottom=Math.floor((100-D)/2)+"px";F.style.paddingLeft=Math.floor((100-J)/2)+"px";z.appendChild(F)}else if(null!=g){var M=b.stringToCells(Graph.decompress(g.xml));0<M.length&&(b.sidebar.createThumb(M,100,100,z,null,!0,!1),z.firstChild.style.display="inline-block",z.firstChild.style.cursor="")}var E=document.createElement("img");
-E.setAttribute("src",Editor.closeBlackImage);E.setAttribute("border","0");E.setAttribute("title",mxResources.get("delete"));E.setAttribute("align","top");E.style.paddingTop="4px";E.style.position="absolute";E.style.marginLeft="-12px";E.style.zIndex="1";E.style.cursor="pointer";mxEvent.addListener(E,"dragstart",function(b){mxEvent.consume(b)});(function(b,c,f){mxEvent.addListener(E,"click",function(d){x[c]=null;for(var e=0;e<p.length;e++)if(null!=p[e].data&&p[e].data==c||null!=p[e].xml&&null!=f&&p[e].xml==
-f.xml){p.splice(e,1);break}z.parentNode.removeChild(b);0==p.length&&(u.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",v.style.display="");mxEvent.consume(d)});mxEvent.addListener(E,"dblclick",function(b){mxEvent.consume(b)})})(z,c,g);z.appendChild(E);z.style.marginBottom="30px";var I=document.createElement("div");I.style.position="absolute";I.style.boxSizing="border-box";I.style.bottom="-18px";I.style.left="10px";I.style.right="10px";I.style.backgroundColor=Editor.isDarkMode()?Editor.darkColor:
-"#ffffff";I.style.overflow="hidden";I.style.textAlign="center";var G=null;null!=c?(G={data:c,w:m,h:k,title:t},null!=q&&(G.aspect=q),x[c]=F,p.push(G)):null!=g&&(g.aspect="fixed",p.push(g),G=g);mxEvent.addListener(I,"keydown",function(b){13==b.keyCode&&null!=B&&(B(),B=null,mxEvent.consume(b))});K();z.appendChild(I);mxEvent.addListener(I,"mousedown",function(b){"true"!=I.getAttribute("contentEditable")&&mxEvent.consume(b)});M=function(c){if(mxClient.IS_IOS||mxClient.IS_FF||!(null==document.documentMode||
+G.title.length?"#d0d0d0":""};u.style.backgroundImage="";v.style.display="none";var J=m,D=k;if(m>b.maxImageSize||k>b.maxImageSize){var O=Math.min(1,Math.min(b.maxImageSize/Math.max(1,m)),b.maxImageSize/Math.max(1,k));m*=O;k*=O}J>D?(D=Math.round(100*D/J),J=100):(J=Math.round(100*J/D),D=100);var E=document.createElement("div");E.setAttribute("draggable","true");E.style.display="inline-block";E.style.position="relative";E.style.padding="0 12px";E.style.cursor="move";mxUtils.setPrefixedStyle(E.style,"transition",
+"transform .1s ease-in-out");if(null!=c){var z=document.createElement("img");z.setAttribute("src",y.convert(c));z.style.width=J+"px";z.style.height=D+"px";z.style.margin="10px";z.style.paddingBottom=Math.floor((100-D)/2)+"px";z.style.paddingLeft=Math.floor((100-J)/2)+"px";E.appendChild(z)}else if(null!=g){var M=b.stringToCells(Graph.decompress(g.xml));0<M.length&&(b.sidebar.createThumb(M,100,100,E,null,!0,!1),E.firstChild.style.display="inline-block",E.firstChild.style.cursor="")}var F=document.createElement("img");
+F.setAttribute("src",Editor.closeBlackImage);F.setAttribute("border","0");F.setAttribute("title",mxResources.get("delete"));F.setAttribute("align","top");F.style.paddingTop="4px";F.style.position="absolute";F.style.marginLeft="-12px";F.style.zIndex="1";F.style.cursor="pointer";mxEvent.addListener(F,"dragstart",function(b){mxEvent.consume(b)});(function(b,c,f){mxEvent.addListener(F,"click",function(d){x[c]=null;for(var e=0;e<p.length;e++)if(null!=p[e].data&&p[e].data==c||null!=p[e].xml&&null!=f&&p[e].xml==
+f.xml){p.splice(e,1);break}E.parentNode.removeChild(b);0==p.length&&(u.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",v.style.display="");mxEvent.consume(d)});mxEvent.addListener(F,"dblclick",function(b){mxEvent.consume(b)})})(E,c,g);E.appendChild(F);E.style.marginBottom="30px";var I=document.createElement("div");I.style.position="absolute";I.style.boxSizing="border-box";I.style.bottom="-18px";I.style.left="10px";I.style.right="10px";I.style.backgroundColor=Editor.isDarkMode()?Editor.darkColor:
+"#ffffff";I.style.overflow="hidden";I.style.textAlign="center";var G=null;null!=c?(G={data:c,w:m,h:k,title:t},null!=q&&(G.aspect=q),x[c]=z,p.push(G)):null!=g&&(g.aspect="fixed",p.push(g),G=g);mxEvent.addListener(I,"keydown",function(b){13==b.keyCode&&null!=B&&(B(),B=null,mxEvent.consume(b))});K();E.appendChild(I);mxEvent.addListener(I,"mousedown",function(b){"true"!=I.getAttribute("contentEditable")&&mxEvent.consume(b)});M=function(c){if(mxClient.IS_IOS||mxClient.IS_FF||!(null==document.documentMode||
9<document.documentMode)){var f=new FilenameDialog(b,G.title||"",mxResources.get("ok"),function(b){null!=b&&(G.title=b,K())},mxResources.get("enterValue"));b.showDialog(f.container,300,80,!0,!0);f.init();mxEvent.consume(c)}else if("true"!=I.getAttribute("contentEditable")){null!=B&&(B(),B=null);if(null==G.title||0==G.title.length)I.innerHTML="";I.style.textOverflow="";I.style.whiteSpace="";I.style.cursor="text";I.style.color="";I.setAttribute("contentEditable","true");mxUtils.setPrefixedStyle(I.style,
-"user-select","text");I.focus();document.execCommand("selectAll",!1,null);B=function(){I.removeAttribute("contentEditable");I.style.cursor="pointer";G.title=I.innerHTML;K()};mxEvent.consume(c)}};mxEvent.addListener(I,"click",M);mxEvent.addListener(z,"dblclick",M);u.appendChild(z);mxEvent.addListener(z,"dragstart",function(b){null==c&&null!=g&&(E.style.visibility="hidden",I.style.visibility="hidden");mxClient.IS_FF&&null!=g.xml&&b.dataTransfer.setData("Text",g.xml);A=n(b);mxClient.IS_GC&&(z.style.opacity=
-"0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(z.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(z,30);E.style.visibility="";I.style.visibility=""},0)});mxEvent.addListener(z,"dragend",function(b){"hidden"==E.style.visibility&&(E.style.visibility="",I.style.visibility="");A=null;mxUtils.setOpacity(z,100);mxUtils.setPrefixedStyle(z.style,"transform",null)})}else C||(C=!0,b.handleError({message:mxResources.get("fileExists")}));else{m=!1;try{if(J=mxUtils.parseXml(c),"mxlibrary"==
+"user-select","text");I.focus();document.execCommand("selectAll",!1,null);B=function(){I.removeAttribute("contentEditable");I.style.cursor="pointer";G.title=I.innerHTML;K()};mxEvent.consume(c)}};mxEvent.addListener(I,"click",M);mxEvent.addListener(E,"dblclick",M);u.appendChild(E);mxEvent.addListener(E,"dragstart",function(b){null==c&&null!=g&&(F.style.visibility="hidden",I.style.visibility="hidden");mxClient.IS_FF&&null!=g.xml&&b.dataTransfer.setData("Text",g.xml);A=n(b);mxClient.IS_GC&&(E.style.opacity=
+"0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(E.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(E,30);F.style.visibility="";I.style.visibility=""},0)});mxEvent.addListener(E,"dragend",function(b){"hidden"==F.style.visibility&&(F.style.visibility="",I.style.visibility="");A=null;mxUtils.setOpacity(E,100);mxUtils.setPrefixedStyle(E.style,"transform",null)})}else C||(C=!0,b.handleError({message:mxResources.get("fileExists")}));else{m=!1;try{if(J=mxUtils.parseXml(c),"mxlibrary"==
J.documentElement.nodeName){D=JSON.parse(mxUtils.getTextContent(J.documentElement));if(null!=D&&0<D.length)for(var H=0;H<D.length;H++)null!=D[H].xml?f(null,null,0,0,0,0,D[H]):f(D[H].data,null,0,0,D[H].w,D[H].h,null,"fixed",D[H].title);m=!0}else if("mxfile"==J.documentElement.nodeName){for(var Q=J.documentElement.getElementsByTagName("diagram"),H=0;H<Q.length;H++){var D=mxUtils.getTextContent(Q[H]),M=b.stringToCells(Graph.decompress(D)),L=b.editor.graph.getBoundingBoxFromGeometry(M);f(null,null,0,
0,0,0,{xml:D,w:L.width,h:L.height})}m=!0}}catch(R){}m||(b.spinner.stop(),b.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(R){}return null}function l(b){b.dataTransfer.dropEffect=null!=A?"move":"copy";b.stopPropagation();b.preventDefault()}function m(c){c.stopPropagation();c.preventDefault();C=!1;z=n(c);if(null!=A)null!=z&&z<u.children.length?(p.splice(z>A?z-1:z,0,p.splice(A,1)[0]),u.insertBefore(u.children[A],u.children[z])):(p.push(p.splice(A,1)[0]),u.appendChild(u.children[A]));
-else if(0<c.dataTransfer.files.length)b.importFiles(c.dataTransfer.files,0,0,b.maxImageSize,E(c));else if(0<=mxUtils.indexOf(c.dataTransfer.types,"text/uri-list")){var d=decodeURIComponent(c.dataTransfer.getData("text/uri-list"));(/(\.jpg)($|\?)/i.test(d)||/(\.png)($|\?)/i.test(d)||/(\.gif)($|\?)/i.test(d)||/(\.svg)($|\?)/i.test(d))&&b.loadImage(d,function(b){f(d,null,0,0,b.width,b.height);u.scrollTop=u.scrollHeight})}c.stopPropagation();c.preventDefault()}var p=[];d=document.createElement("div");
+else if(0<c.dataTransfer.files.length)b.importFiles(c.dataTransfer.files,0,0,b.maxImageSize,F(c));else if(0<=mxUtils.indexOf(c.dataTransfer.types,"text/uri-list")){var d=decodeURIComponent(c.dataTransfer.getData("text/uri-list"));(/(\.jpg)($|\?)/i.test(d)||/(\.png)($|\?)/i.test(d)||/(\.gif)($|\?)/i.test(d)||/(\.svg)($|\?)/i.test(d))&&b.loadImage(d,function(b){f(d,null,0,0,b.width,b.height);u.scrollTop=u.scrollHeight})}c.stopPropagation();c.preventDefault()}var p=[];d=document.createElement("div");
d.style.height="100%";var q=document.createElement("div");q.style.whiteSpace="nowrap";q.style.height="40px";d.appendChild(q);mxUtils.write(q,mxResources.get("filename")+":");null==e&&(e=b.defaultLibraryName+".xml");var t=document.createElement("input");t.setAttribute("value",e);t.style.marginRight="20px";t.style.marginLeft="10px";t.style.width="500px";null==k||k.isRenamable()||t.setAttribute("disabled","true");this.init=function(){if(null==k||k.isRenamable())t.focus(),mxClient.IS_GC||mxClient.IS_FF||
5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null)};q.appendChild(t);var u=document.createElement("div");u.style.borderWidth="1px 0px 1px 0px";u.style.borderColor="#d3d3d3";u.style.borderStyle="solid";u.style.marginTop="6px";u.style.overflow="auto";u.style.height="340px";u.style.backgroundPosition="center center";u.style.backgroundRepeat="no-repeat";0==p.length&&Graph.fileSupport&&(u.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')");var v=document.createElement("div");
v.style.position="absolute";v.style.width="640px";v.style.top="260px";v.style.textAlign="center";v.style.fontSize="22px";v.style.color="#a0c3ff";mxUtils.write(v,mxResources.get("dragImagesHere"));d.appendChild(v);var x={},A=null,z=null,B=null;e=function(b){"true"!=mxEvent.getSource(b).getAttribute("contentEditable")&&null!=B&&(B(),B=null,mxEvent.consume(b))};mxEvent.addListener(u,"mousedown",e);mxEvent.addListener(u,"pointerdown",e);mxEvent.addListener(u,"touchstart",e);var y=new mxUrlConverter,C=
-!1;if(null!=c)for(e=0;e<c.length;e++)q=c[e],f(q.data,null,0,0,q.w,q.h,q,q.aspect,q.title);mxEvent.addListener(u,"dragleave",function(b){v.style.cursor="";for(var c=mxEvent.getSource(b);null!=c;){if(c==u||c==v){b.stopPropagation();b.preventDefault();break}c=c.parentNode}});var E=function(c){return function(d,e,l,m,k,g,p,q,t){null!=t&&(/(\.v(dx|sdx?))($|\?)/i.test(t.name)||/(\.vs(x|sx?))($|\?)/i.test(t.name))?b.importVisio(t,mxUtils.bind(this,function(b){f(b,e,l,m,k,g,p,"fixed",mxEvent.isAltDown(c)?
+!1;if(null!=c)for(e=0;e<c.length;e++)q=c[e],f(q.data,null,0,0,q.w,q.h,q,q.aspect,q.title);mxEvent.addListener(u,"dragleave",function(b){v.style.cursor="";for(var c=mxEvent.getSource(b);null!=c;){if(c==u||c==v){b.stopPropagation();b.preventDefault();break}c=c.parentNode}});var F=function(c){return function(d,e,l,m,k,g,p,q,t){null!=t&&(/(\.v(dx|sdx?))($|\?)/i.test(t.name)||/(\.vs(x|sx?))($|\?)/i.test(t.name))?b.importVisio(t,mxUtils.bind(this,function(b){f(b,e,l,m,k,g,p,"fixed",mxEvent.isAltDown(c)?
null:p.substring(0,p.lastIndexOf(".")).replace(/_/g," "))})):null!=t&&!b.isOffline()&&(new XMLHttpRequest).upload&&b.isRemoteFileFormat(d,t.name)?b.parseFile(t,mxUtils.bind(this,function(d){4==d.readyState&&(b.spinner.stop(),200<=d.status&&299>=d.status&&(f(d.responseText,e,l,m,k,g,p,"fixed",mxEvent.isAltDown(c)?null:p.substring(0,p.lastIndexOf(".")).replace(/_/g," ")),u.scrollTop=u.scrollHeight))})):(f(d,e,l,m,k,g,p,"fixed",mxEvent.isAltDown(c)?null:p.substring(0,p.lastIndexOf(".")).replace(/_/g,
" ")),u.scrollTop=u.scrollHeight)}};mxEvent.addListener(u,"dragover",l);mxEvent.addListener(u,"drop",m);mxEvent.addListener(v,"dragover",l);mxEvent.addListener(v,"drop",m);d.appendChild(u);c=document.createElement("div");c.style.textAlign="right";c.style.marginTop="20px";e=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog(!0)});e.setAttribute("id","btnCancel");e.className="geBtn";b.editor.cancelFirst&&c.appendChild(e);"draw.io"!=b.getServiceName()||null==k||k.constructor!=DriveLibrary&&
k.constructor!=GitHubLibrary||(q=mxUtils.button(mxResources.get("link"),function(){b.spinner.spin(document.body,mxResources.get("loading"))&&k.getPublicUrl(function(c){b.spinner.stop();if(null!=c){var f=b.getSearch("create title mode url drive splash state clibs ui".split(" ")),f=f+((0==f.length?"?":"&")+"splash=0&clibs=U"+encodeURIComponent(c));c=new EmbedDialog(b,window.location.protocol+"//"+window.location.host+"/"+f,null,null,null,null,"Check out the library I made using @drawio");b.showDialog(c.container,
450,240,!0);c.init()}else k.constructor==DriveLibrary?b.showError(mxResources.get("error"),mxResources.get("diagramIsNotPublic"),mxResources.get("share"),mxUtils.bind(this,function(){b.drive.showPermissions(k.getId())}),null,mxResources.get("ok"),mxUtils.bind(this,function(){})):b.handleError({message:mxResources.get("diagramIsNotPublic")})})}),q.className="geBtn",c.appendChild(q));q=mxUtils.button(mxResources.get("export"),function(){var c=b.createLibraryDataFromImages(p),f=t.value;/(\.xml)$/i.test(f)||
(f+=".xml");b.isLocalFileSave()?b.saveLocalFile(c,f,"text/xml",null,null,!0,null,"xml"):(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(f)+"&format=xml&xml="+encodeURIComponent(c))).simulate(document,"_blank")});q.setAttribute("id","btnDownload");q.className="geBtn";c.appendChild(q);if(Graph.fileSupport){if(null==b.libDlgFileInputElt){var G=document.createElement("input");G.setAttribute("multiple","multiple");G.setAttribute("type","file");mxEvent.addListener(G,"change",function(c){C=!1;
-b.importFiles(G.files,0,0,b.maxImageSize,function(b,f,d,e,l,m,k,g,p){null!=G.files&&(E(c)(b,f,d,e,l,m,k,g,p),G.type="",G.type="file",G.value="")});u.scrollTop=u.scrollHeight});G.style.display="none";document.body.appendChild(G);b.libDlgFileInputElt=G}q=mxUtils.button(mxResources.get("import"),function(){null!=B&&(B(),B=null);b.libDlgFileInputElt.click()});q.setAttribute("id","btnAddImage");q.className="geBtn";c.appendChild(q)}q=mxUtils.button(mxResources.get("addImages"),function(){null!=B&&(B(),
+b.importFiles(G.files,0,0,b.maxImageSize,function(b,f,d,e,l,m,k,g,p){null!=G.files&&(F(c)(b,f,d,e,l,m,k,g,p),G.type="",G.type="file",G.value="")});u.scrollTop=u.scrollHeight});G.style.display="none";document.body.appendChild(G);b.libDlgFileInputElt=G}q=mxUtils.button(mxResources.get("import"),function(){null!=B&&(B(),B=null);b.libDlgFileInputElt.click()});q.setAttribute("id","btnAddImage");q.className="geBtn";c.appendChild(q)}q=mxUtils.button(mxResources.get("addImages"),function(){null!=B&&(B(),
B=null);b.showImageDialog(mxResources.get("addImageUrl"),"",function(b,c,d){C=!1;if(null!=b){if("data:image/"==b.substring(0,11)){var e=b.indexOf(",");0<e&&(b=b.substring(0,e)+";base64,"+b.substring(e+1))}f(b,null,0,0,c,d);u.scrollTop=u.scrollHeight}})});q.setAttribute("id","btnAddImageUrl");q.className="geBtn";c.appendChild(q);this.saveBtnClickHandler=function(c,f,d,e){b.saveLibrary(c,f,d,e)};q=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(){null!=B&&(B(),B=null);this.saveBtnClickHandler(t.value,
p,k,g)}));q.setAttribute("id","btnSave");q.className="geBtn gePrimaryBtn";c.appendChild(q);b.editor.cancelFirst||c.appendChild(e);d.appendChild(c);this.container=d},EditShapeDialog=function(b,e,d,c,k){c=null!=c?c:300;k=null!=k?k:120;var g,n,f=document.createElement("table"),l=document.createElement("tbody");f.style.cellPadding="4px";g=document.createElement("tr");n=document.createElement("td");n.setAttribute("colspan","2");n.style.fontSize="10pt";mxUtils.write(n,d);g.appendChild(n);l.appendChild(g);
g=document.createElement("tr");n=document.createElement("td");var m=document.createElement("textarea");m.style.outline="none";m.style.resize="none";m.style.width=c-200+"px";m.style.height=k+"px";this.textarea=m;this.init=function(){m.focus();m.scrollTop=0};n.appendChild(m);g.appendChild(n);n=document.createElement("td");d=document.createElement("div");d.style.position="relative";d.style.border="1px solid gray";d.style.top="6px";d.style.width="200px";d.style.height=k+4+"px";d.style.overflow="hidden";
@@ -10256,16 +10254,16 @@ m.decode(d,k);d=k.root.getChildAt(0).children||[];b.sidebar.createTooltip(f,d,Ma
function(){g&&(K.removeChild(g),g=null,p.apply(this,arguments),b.sidebar.hideTooltip=p)};mxEvent.addListener(g,"click",function(){b.sidebar.hideTooltip()})}}var g=null;if(da||b.sidebar.currentElt==f)b.sidebar.hideTooltip();else{var p=function(c){da&&b.sidebar.currentElt==f&&k(c,mxEvent.getClientX(e),mxEvent.getClientY(e));da=!1;d.src="/images/icon-search.svg"};b.sidebar.hideTooltip();b.sidebar.currentElt=f;da=!0;d.src="/images/aui-wait.gif";c.isExt?l(c,p,function(){x(mxResources.get("cantLoadPrev"));
da=!1;d.src="/images/icon-search.svg"}):m(c.url,p)}}function y(b,c,f){if(null!=W){for(var d=W.className.split(" "),e=0;e<d.length;e++)if(-1<d[e].indexOf("Active")){d.splice(e,1);break}W.className=d.join(" ")}null!=b?(W=b,W.className+=" "+c,Y=f,ga.className="geTempDlgCreateBtn"):(Y=W=null,ga.className="geTempDlgCreateBtn geTempDlgBtnDisabled")}function C(c,f){if(null!=Y){var d=function(c){t.isExternal?l(t,function(b){g(b,c)},k):t.url?mxUtils.get(TEMPLATE_PATH+"/"+t.url,mxUtils.bind(this,function(b){200<=
b.getStatus()&&299>=b.getStatus()?g(b.getText(),c):k()})):g(b.emptyDiagramXml,c)},g=function(c,d){v||b.hideDialog(!0);e(c,d,t,f)},k=function(){x(mxResources.get("cannotLoad"));p()},p=function(){Y=t;ga.className="geTempDlgCreateBtn";f&&(ja.className="geTempDlgOpenBtn")},t=Y;Y=null;"boolean"!==typeof f&&(f=t.isExternal&&q);if(1==c)m(t.url,t);else if(f)ja.className="geTempDlgOpenBtn geTempDlgBtnDisabled geTempDlgBtnBusy",d();else{ga.className="geTempDlgCreateBtn geTempDlgBtnDisabled geTempDlgBtnBusy";
-var n=null==b.mode||b.mode==App.MODE_GOOGLE||b.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"),n=new FilenameDialog(b,b.defaultFilename+".drawio",mxResources.get("ok"),d,n,function(b){var c=null!=b&&0<b.length;return c&&v?(d(b),!1):c},null,null,null,p,u?null:[]);b.showDialog(n.container,350,80,!0,!0);n.init()}}}function E(b){ga.innerHTML=mxUtils.htmlEntities(mxResources.get(R||b?"create":"copy"));b=b?"none":"";q&&(ja.style.display=b);for(var c=K.querySelectorAll(".geTempDlgLinkToDiagram"),
+var n=null==b.mode||b.mode==App.MODE_GOOGLE||b.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"),n=new FilenameDialog(b,b.defaultFilename+".drawio",mxResources.get("ok"),d,n,function(b){var c=null!=b&&0<b.length;return c&&v?(d(b),!1):c},null,null,null,p,u?null:[]);b.showDialog(n.container,350,80,!0,!0);n.init()}}}function F(b){ga.innerHTML=mxUtils.htmlEntities(mxResources.get(R||b?"create":"copy"));b=b?"none":"";q&&(ja.style.display=b);for(var c=K.querySelectorAll(".geTempDlgLinkToDiagram"),
f=0;f<c.length;f++)c[f].style.display=b}function G(c,f,d,e,l){l||(ia.innerHTML="",y(),na=c,pa=e);var m=null;if(d){m=document.createElement("table");m.className="geTempDlgDiagramsListGrid";var g=document.createElement("tr"),k=document.createElement("th");k.style.width="50%";k.innerHTML=mxUtils.htmlEntities(mxResources.get("diagram"));g.appendChild(k);k=document.createElement("th");k.style.width="25%";k.innerHTML=mxUtils.htmlEntities(mxResources.get("changedBy"));g.appendChild(k);k=document.createElement("th");
k.style.width="25%";k.innerHTML=mxUtils.htmlEntities(mxResources.get("lastModifiedOn"));g.appendChild(k);m.appendChild(g);ia.appendChild(m)}for(g=0;g<c.length;g++){c[g].isExternal=!f;var p=c[g].url,q=(k=mxUtils.htmlEntities(f?mxResources.get(c[g].title,null,c[g].title):c[g].title))||c[g].url,t=c[g].imgUrl,n=mxUtils.htmlEntities(c[g].changedBy||""),K="";c[g].lastModifiedOn&&(K=b.timeSince(new Date(c[g].lastModifiedOn)),null==K&&(K=mxResources.get("lessThanAMinute")),K=mxUtils.htmlEntities(mxResources.get("timeAgo",
[K],"{1} ago")));t||(t=TEMPLATE_PATH+"/"+p.substring(0,p.length-4)+".png");p=d?50:15;null!=k&&k.length>p&&(k=k.substring(0,p)+"&hellip;");if(d){var u=document.createElement("tr"),t=document.createElement("td"),v=document.createElement("img");v.src="/images/icon-search.svg";v.className="geTempDlgDiagramListPreviewBtn";v.setAttribute("title",mxResources.get("preview"));l||t.appendChild(v);q=document.createElement("span");q.className="geTempDlgDiagramTitle";q.innerHTML=k;t.appendChild(q);u.appendChild(t);
-t=document.createElement("td");t.innerHTML=n;u.appendChild(t);t=document.createElement("td");t.innerHTML=K;u.appendChild(t);m.appendChild(u);null==W&&(E(f),y(u,"geTempDlgDiagramsListGridActive",c[g]));(function(b,c,d){mxEvent.addListener(u,"click",function(){W!=c&&(E(f),y(c,"geTempDlgDiagramsListGridActive",b))});mxEvent.addListener(u,"dblclick",C);mxEvent.addListener(v,"click",function(f){B(b,c,d,f)})})(c[g],u,v)}else{var A=document.createElement("div");A.className="geTempDlgDiagramTile";A.setAttribute("title",
-q);null==W&&(E(f),y(A,"geTempDlgDiagramTileActive",c[g]));n=document.createElement("div");n.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgLoading";var J=document.createElement("img");J.style.display="none";(function(b,c,f){J.onload=function(){c.className="geTempDlgDiagramTileImg";b.style.display=""};J.onerror=function(){this.src!=f?this.src=f:c.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgError"}})(J,n,t?t.replace(".drawio.xml","").replace(".drawio","").replace(".xml",""):
-"");J.src=t;n.appendChild(J);A.appendChild(n);n=document.createElement("div");n.className="geTempDlgDiagramTileLbl";n.innerHTML=null!=k?k:"";A.appendChild(n);v=document.createElement("img");v.src="/images/icon-search.svg";v.className="geTempDlgDiagramPreviewBtn";v.setAttribute("title",mxResources.get("preview"));l||A.appendChild(v);(function(b,c,d){mxEvent.addListener(A,"click",function(){W!=c&&(E(f),y(c,"geTempDlgDiagramTileActive",b))});mxEvent.addListener(A,"dblclick",C);mxEvent.addListener(v,
-"click",function(f){B(b,c,d,f)})})(c[g],A,v);ia.appendChild(A)}}for(var x in e)c=e[x],0<c.length&&(l=document.createElement("div"),l.className="geTempDlgImportCat",l.innerHTML=mxResources.get(x,null,x),ia.appendChild(l),G(c,f,d,null,!0))}function F(b,c){ea.innerHTML="";y();for(var f=Math.floor(ea.offsetWidth/150)-1,d=!c&&b.length>f?f:b.length,e=0;e<d;e++){var l=b[e];l.isCategory=!0;var m=document.createElement("div"),g=mxResources.get(l.title);null==g&&(g=l.title.substring(0,1).toUpperCase()+l.title.substring(1));
-m.className="geTempDlgNewDiagramCatItem";m.setAttribute("title",g);g=mxUtils.htmlEntities(g);15<g.length&&(g=g.substring(0,15)+"&hellip;");null==W&&(E(!0),y(m,"geTempDlgNewDiagramCatItemActive",l));var k=document.createElement("div");k.className="geTempDlgNewDiagramCatItemImg";var p=document.createElement("img");p.src=NEW_DIAGRAM_CATS_PATH+"/"+l.img;k.appendChild(p);m.appendChild(k);k=document.createElement("div");k.className="geTempDlgNewDiagramCatItemLbl";k.innerHTML=g;m.appendChild(k);ea.appendChild(m);
-(function(b,c){mxEvent.addListener(m,"click",function(){W!=c&&(E(!0),y(c,"geTempDlgNewDiagramCatItemActive",b))});mxEvent.addListener(m,"dblclick",C)})(l,m)}m=document.createElement("div");m.className="geTempDlgNewDiagramCatItem";g=mxResources.get("showAllTemps");m.setAttribute("title",g);k=document.createElement("div");k.className="geTempDlgNewDiagramCatItemImg";k.innerHTML="...";k.style.fontSize="32px";m.appendChild(k);k=document.createElement("div");k.className="geTempDlgNewDiagramCatItemLbl";
+t=document.createElement("td");t.innerHTML=n;u.appendChild(t);t=document.createElement("td");t.innerHTML=K;u.appendChild(t);m.appendChild(u);null==W&&(F(f),y(u,"geTempDlgDiagramsListGridActive",c[g]));(function(b,c,d){mxEvent.addListener(u,"click",function(){W!=c&&(F(f),y(c,"geTempDlgDiagramsListGridActive",b))});mxEvent.addListener(u,"dblclick",C);mxEvent.addListener(v,"click",function(f){B(b,c,d,f)})})(c[g],u,v)}else{var A=document.createElement("div");A.className="geTempDlgDiagramTile";A.setAttribute("title",
+q);null==W&&(F(f),y(A,"geTempDlgDiagramTileActive",c[g]));n=document.createElement("div");n.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgLoading";var J=document.createElement("img");J.style.display="none";(function(b,c,f){J.onload=function(){c.className="geTempDlgDiagramTileImg";b.style.display=""};J.onerror=function(){this.src!=f?this.src=f:c.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgError"}})(J,n,t?t.replace(".drawio.xml","").replace(".drawio","").replace(".xml",""):
+"");J.src=t;n.appendChild(J);A.appendChild(n);n=document.createElement("div");n.className="geTempDlgDiagramTileLbl";n.innerHTML=null!=k?k:"";A.appendChild(n);v=document.createElement("img");v.src="/images/icon-search.svg";v.className="geTempDlgDiagramPreviewBtn";v.setAttribute("title",mxResources.get("preview"));l||A.appendChild(v);(function(b,c,d){mxEvent.addListener(A,"click",function(){W!=c&&(F(f),y(c,"geTempDlgDiagramTileActive",b))});mxEvent.addListener(A,"dblclick",C);mxEvent.addListener(v,
+"click",function(f){B(b,c,d,f)})})(c[g],A,v);ia.appendChild(A)}}for(var x in e)c=e[x],0<c.length&&(l=document.createElement("div"),l.className="geTempDlgImportCat",l.innerHTML=mxResources.get(x,null,x),ia.appendChild(l),G(c,f,d,null,!0))}function E(b,c){ea.innerHTML="";y();for(var f=Math.floor(ea.offsetWidth/150)-1,d=!c&&b.length>f?f:b.length,e=0;e<d;e++){var l=b[e];l.isCategory=!0;var m=document.createElement("div"),g=mxResources.get(l.title);null==g&&(g=l.title.substring(0,1).toUpperCase()+l.title.substring(1));
+m.className="geTempDlgNewDiagramCatItem";m.setAttribute("title",g);g=mxUtils.htmlEntities(g);15<g.length&&(g=g.substring(0,15)+"&hellip;");null==W&&(F(!0),y(m,"geTempDlgNewDiagramCatItemActive",l));var k=document.createElement("div");k.className="geTempDlgNewDiagramCatItemImg";var p=document.createElement("img");p.src=NEW_DIAGRAM_CATS_PATH+"/"+l.img;k.appendChild(p);m.appendChild(k);k=document.createElement("div");k.className="geTempDlgNewDiagramCatItemLbl";k.innerHTML=g;m.appendChild(k);ea.appendChild(m);
+(function(b,c){mxEvent.addListener(m,"click",function(){W!=c&&(F(!0),y(c,"geTempDlgNewDiagramCatItemActive",b))});mxEvent.addListener(m,"dblclick",C)})(l,m)}m=document.createElement("div");m.className="geTempDlgNewDiagramCatItem";g=mxResources.get("showAllTemps");m.setAttribute("title",g);k=document.createElement("div");k.className="geTempDlgNewDiagramCatItemImg";k.innerHTML="...";k.style.fontSize="32px";m.appendChild(k);k=document.createElement("div");k.className="geTempDlgNewDiagramCatItemLbl";
k.innerHTML=g;m.appendChild(k);ea.appendChild(m);mxEvent.addListener(m,"click",function(){function b(){var f=c.querySelector(".geTemplateDrawioCatLink");null!=f?f.click():setTimeout(b,200)}R=!0;var c=K.querySelector(".geTemplatesList");c.style.display="block";ha.style.width="";oa.style.display="";oa.value="";fa=null;b()});T.style.display=b.length<=f?"none":""}function D(b,c,f){function d(b,c){var f=mxResources.get(b);null==f&&(f=b.substring(0,1).toUpperCase()+b.substring(1));var d=f+" ("+c.length+
")",e=f=mxUtils.htmlEntities(f);15<f.length&&(f=f.substring(0,15)+"&hellip;");return{lbl:f+" ("+c.length+")",fullLbl:d,lblOnly:e}}function e(f,d,e,l,m){mxEvent.addListener(e,"click",function(){N!=e&&(null!=N?(N.style.fontWeight="normal",N.style.textDecoration="none"):(V.style.display="none",ra.style.minHeight="100%"),N=e,N.style.fontWeight="bold",N.style.textDecoration="underline",ha.scrollTop=0,X&&(J=!0),U.innerHTML=d,Z.style.display="none",G(m?c[f]:l?qa[f][l]:b[f],m?!1:!0))})}var l=K.querySelector(".geTemplatesList");
if(0<f){f=document.createElement("div");f.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;margin-top: 10px;";mxUtils.write(f,mxResources.get("custom"));l.appendChild(f);for(var m in c){f=document.createElement("div");var g=c[m],g=d(m,g);f.className="geTemplateCatLink";f.setAttribute("title",g.fullLbl);f.innerHTML=g.lbl;l.appendChild(f);e(m,g.lblOnly,f,null,!0)}f=document.createElement("div");f.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;margin-top: 10px;";
@@ -10284,8 +10282,8 @@ mxResources.get("myDiagrams")+'</span></div><div class="geTempDlgRadioBtn geTemp
ea=K.querySelector(".geTempDlgNewDiagramCatList"),ga=K.querySelector(".geTempDlgCreateBtn"),ja=K.querySelector(".geTempDlgOpenBtn"),oa=K.querySelector(".geTempDlgSearchBox"),ua=K.querySelector(".geTempDlgErrMsg"),S=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"50px",zIndex:2E9});mxEvent.addListener(K.querySelector(".geTempDlgBack"),"click",function(){A();R=!1;K.querySelector(".geTemplatesList").style.display="none";ha.style.width=
"100%";V.style.display="";ra.style.minHeight="calc(100% - 280px)";oa.style.display=f?"":"none";oa.value="";fa=null;I(aa)});mxEvent.addListener(K.querySelector(".geTempDlgRadioBtn[data-id=allDiagramsBtn]"),"click",function(){z(this,"geTempDlgAllDiagramsBtnImg","all-diagrams","myDiagramsBtn","geTempDlgMyDiagramsBtnImg","my-diagrams",!0)&&(aa=!0,null==fa?I(aa):M(fa))});mxEvent.addListener(K.querySelector(".geTempDlgRadioBtn[data-id=myDiagramsBtn]"),"click",function(){z(this,"geTempDlgMyDiagramsBtnImg",
"my-diagrams","allDiagramsBtn","geTempDlgAllDiagramsBtnImg","all-diagrams",!0)&&(aa=!1,null==fa?I(aa):M(fa))});mxEvent.addListener(K.querySelector(".geTempDlgRadioBtn[data-id=listBtn]"),"click",function(){z(this,"geTempDlgListBtnImg","list","tilesBtn","geTempDlgTilesBtnImg","tiles",!1)&&(ba=!0,G(na,!1,ba,pa))});mxEvent.addListener(K.querySelector(".geTempDlgRadioBtn[data-id=tilesBtn]"),"click",function(){z(this,"geTempDlgTilesBtnImg","tiles","listBtn","geTempDlgListBtnImg","list",!1)&&(ba=!1,G(na,
-!1,ba,pa))});var da=!1;mxEvent.addListener(T,"click",function(){ka?(V.style.height="280px",ea.style.height="190px",T.innerHTML=mxUtils.htmlEntities(mxResources.get("showMore")),F(va)):(V.style.height="440px",ea.style.height="355px",T.innerHTML=mxUtils.htmlEntities(mxResources.get("showLess")),F(va,!0));ka=!ka});var ma=!1,sa=!1,la={},qa={},ta={},va=[],xa=1,Ba=0;null!=p?p(function(b,c){ta=b;Ba=c;H()},H):H();mxUtils.get(k,function(b){if(!sa){sa=!0;for(b=b.getXml().documentElement.firstChild;null!=b;)"undefined"!==
-typeof b.getAttribute&&null!=b.getAttribute("title")&&va.push({img:b.getAttribute("img"),libs:b.getAttribute("libs"),clibs:b.getAttribute("clibs"),title:b.getAttribute("title")}),b=b.nextSibling;F(va)}});var wa=function(b,c,f){Z.style.display="";S.stop();X=!1;if(J)J=!1;else if(c)ia.innerHTML=c;else{f=f||{};c=0;for(var d in f)c+=f[d].length;0==b.length&&0==c?ia.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams")):G(b,!1,ba,0==c?null:f)}};I(aa);var za=null;mxEvent.addListener(oa,"keyup",Q);
+!1,ba,pa))});var da=!1;mxEvent.addListener(T,"click",function(){ka?(V.style.height="280px",ea.style.height="190px",T.innerHTML=mxUtils.htmlEntities(mxResources.get("showMore")),E(va)):(V.style.height="440px",ea.style.height="355px",T.innerHTML=mxUtils.htmlEntities(mxResources.get("showLess")),E(va,!0));ka=!ka});var ma=!1,sa=!1,la={},qa={},ta={},va=[],xa=1,Ba=0;null!=p?p(function(b,c){ta=b;Ba=c;H()},H):H();mxUtils.get(k,function(b){if(!sa){sa=!0;for(b=b.getXml().documentElement.firstChild;null!=b;)"undefined"!==
+typeof b.getAttribute&&null!=b.getAttribute("title")&&va.push({img:b.getAttribute("img"),libs:b.getAttribute("libs"),clibs:b.getAttribute("clibs"),title:b.getAttribute("title")}),b=b.nextSibling;E(va)}});var wa=function(b,c,f){Z.style.display="";S.stop();X=!1;if(J)J=!1;else if(c)ia.innerHTML=c;else{f=f||{};c=0;for(var d in f)c+=f[d].length;0==b.length&&0==c?ia.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams")):G(b,!1,ba,0==c?null:f)}};I(aa);var za=null;mxEvent.addListener(oa,"keyup",Q);
mxEvent.addListener(oa,"search",Q);mxEvent.addListener(oa,"input",Q);mxEvent.addListener(ga,"click",function(b){C(!1,!1)});q&&mxEvent.addListener(ja,"click",function(b){C(!1,!0)});t&&mxEvent.addListener(K.querySelector(".geTempDlgLinkToDiagramBtn"),"click",function(b){C(!0)});mxEvent.addListener(K.querySelector(".geTempDlgCancelBtn"),"click",function(){null!=d&&d();v||b.hideDialog(!0)})};TemplatesDialog.tagsList={};
var BtnDialog=function(b,e,d,c){var k=document.createElement("div");k.style.textAlign="center";var g=document.createElement("p");g.style.fontSize="16pt";g.style.padding="0px";g.style.margin="0px";g.style.color="gray";mxUtils.write(g,mxResources.get("done"));var n="Unknown",f=document.createElement("img");f.setAttribute("border","0");f.setAttribute("align","absmiddle");f.style.marginRight="10px";e==b.drive?(n=mxResources.get("googleDrive"),f.src=IMAGE_PATH+"/google-drive-logo-white.svg"):e==b.dropbox?
(n=mxResources.get("dropbox"),f.src=IMAGE_PATH+"/dropbox-logo-white.svg"):e==b.oneDrive?(n=mxResources.get("oneDrive"),f.src=IMAGE_PATH+"/onedrive-logo-white.svg"):e==b.gitHub?(n=mxResources.get("github"),f.src=IMAGE_PATH+"/github-logo-white.svg"):e==b.gitLab?(n=mxResources.get("gitlab"),f.src=IMAGE_PATH+"/gitlab-logo.svg"):e==b.notion?(n=mxResources.get("notion"),f.src=IMAGE_PATH+"/notion-logo.svg"):e==b.trello&&(n=mxResources.get("trello"),f.src=IMAGE_PATH+"/trello-logo-white.svg");b=document.createElement("p");
@@ -10431,7 +10429,7 @@ b+'";src: url("'+c+'")}'})(c[l].name,c[l].url);e()}else b()};Editor.prototype.ad
d.createElementNS(mxConstants.NS_SVG,"defs"):d.createElement("defs"),null!=b.firstChild?b.insertBefore(f,b.firstChild):b.appendChild(f)):f=f[0];d=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"style"):d.createElement("style");d.setAttribute("type","text/css");mxUtils.setTextContent(d,c);f.appendChild(d)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(b,c,f){var d=mxClient.IS_FF?8192:16384;
return Math.min(f,Math.min(d/b,d/c))};Editor.prototype.exportToCanvas=function(b,c,f,d,e,l,m,g,k,p,q,t,n,y,u,v,B,A){try{l=null!=l?l:!0;m=null!=m?m:!0;t=null!=t?t:this.graph;n=null!=n?n:0;var x=k?null:t.background;x==mxConstants.NONE&&(x=null);null==x&&(x=d);null==x&&0==k&&(x=v?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(t.getSvg(null,null,n,y,null,m,null,null,null,p,null,v,B,A),mxUtils.bind(this,function(f){try{var d=new Image;d.onload=mxUtils.bind(this,function(){try{var m=
function(){mxClient.IS_SF?window.setTimeout(function(){y.drawImage(d,0,0);b(k,f)},0):(y.drawImage(d,0,0),b(k,f))},k=document.createElement("canvas"),p=parseInt(f.getAttribute("width")),q=parseInt(f.getAttribute("height"));g=null!=g?g:1;null!=c&&(g=l?Math.min(1,Math.min(3*c/(4*q),c/p)):c/p);g=this.getMaxCanvasScale(p,q,g);p=Math.ceil(g*p);q=Math.ceil(g*q);k.setAttribute("width",p);k.setAttribute("height",q);var y=k.getContext("2d");null!=x&&(y.beginPath(),y.rect(0,0,p,q),y.fillStyle=x,y.fill());1!=
-g&&y.scale(g,g);if(u){var v=t.view,B=v.scale;v.scale=1;var A=btoa(unescape(encodeURIComponent(v.createSvgGrid(v.gridColor))));v.scale=B;var A="data:image/svg+xml;base64,"+A,C=t.gridSize*v.gridSteps*g,D=t.getGraphBounds(),K=v.translate.x*B,z=v.translate.y*B,M=K+(D.x-K)/B-n,F=z+(D.y-z)/B-n,J=new Image;J.onload=function(){try{for(var b=-Math.round(C-mxUtils.mod((K-M)*g,C)),c=-Math.round(C-mxUtils.mod((z-F)*g,C));b<p;b+=C)for(var f=c;f<q;f+=C)y.drawImage(J,b/g,f/g);m()}catch(ya){null!=e&&e(ya)}};J.onerror=
+g&&y.scale(g,g);if(u){var v=t.view,B=v.scale;v.scale=1;var A=btoa(unescape(encodeURIComponent(v.createSvgGrid(v.gridColor))));v.scale=B;var A="data:image/svg+xml;base64,"+A,C=t.gridSize*v.gridSteps*g,D=t.getGraphBounds(),K=v.translate.x*B,z=v.translate.y*B,E=K+(D.x-K)/B-n,M=z+(D.y-z)/B-n,J=new Image;J.onload=function(){try{for(var b=-Math.round(C-mxUtils.mod((K-E)*g,C)),c=-Math.round(C-mxUtils.mod((z-M)*g,C));b<p;b+=C)for(var f=c;f<q;f+=C)y.drawImage(J,b/g,f/g);m()}catch(ya){null!=e&&e(ya)}};J.onerror=
function(b){null!=e&&e(b)};J.src=A}else m()}catch(wa){null!=e&&e(wa)}});d.onerror=function(b){null!=e&&e(b)};p&&this.graph.addSvgShadow(f);this.graph.mathEnabled&&this.addMathCss(f);var m=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(f,this.resolvedFontCss),d.src=Editor.createSvgDataUri(mxUtils.getXml(f))}catch(ea){null!=e&&e(ea)}});this.embedExtFonts(mxUtils.bind(this,function(b){try{null!=b&&this.addFontCss(f,b),this.loadFonts(m)}catch(ga){null!=e&&e(ga)}}))}catch(ea){null!=
e&&e(ea)}}),f,q)}catch(ha){null!=e&&e(ha)}};Editor.crcTable=[];for(var k=0;256>k;k++)for(var g=k,n=0;8>n;n++)g=1==(g&1)?3988292384^g>>>1:g>>>1,Editor.crcTable[k]=g;Editor.updateCRC=function(b,c,f,d){for(var e=0;e<d;e++)b=Editor.crcTable[(b^c.charCodeAt(f+e))&255]^b>>>8;return b};Editor.crc32=function(b){for(var c=-1,f=0;f<b.length;f++)c=c>>>8^Editor.crcTable[(c^b.charCodeAt(f))&255];return(c^-1)>>>0};Editor.writeGraphModelToPng=function(b,c,f,d,e){function l(b,c){var f=k;k+=c;return b.substring(f,
k)}function m(b){b=l(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}function g(b){return String.fromCharCode(b>>24&255,b>>16&255,b>>8&255,b&255)}b=b.substring(b.indexOf(",")+1);b=window.atob?atob(b):Base64.decode(b,!0);var k=0;if(l(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(l(b,4),"IHDR"!=l(b,4))null!=e&&e();else{l(b,17);e=b.substring(0,k);do{var p=m(b);if("IDAT"==l(b,4)){e=b.substring(0,k-8);"pHYs"==c&&
@@ -10481,8 +10479,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 D in c)if(u=c[D],"function"!=typeof u.isVisible||u.isVisible(f,this)){var z=null!=f.style[D]?mxUtils.htmlEntities(f.style[D]+""):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=[],F=[],v=0;v<K.length;v++){var E=f.style[K[v]];F.push(c[K[v]].subDefVal);M.push(null!=E?E.split(","):[])}u.dependentPropsDefVal=F;u.dependentPropsVals=M}y.appendChild(p(D,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++)D=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 D in c)if(u=c[D],"function"!=typeof u.isVisible||u.isVisible(f,this)){var K=null!=f.style[D]?mxUtils.htmlEntities(f.style[D]+""):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,E=[],M=[],v=0;v<z.length;v++){var F=f.style[z[v]];M.push(c[z[v]].subDefVal);E.push(null!=F?F.split(","):[])}u.dependentPropsDefVal=M;u.dependentPropsVals=E}y.appendChild(p(D,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++)D=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(D,c.nextSibling),c=D;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,d=f.editor.graph,e=document.createElement("div");e.style.whiteSpace="nowrap";e.style.paddingLeft="24px";e.style.paddingRight=
"20px";b.style.paddingLeft="16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(e);var l="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),m=document.createElement("div");m.style.whiteSpace="nowrap";m.style.position="relative";m.style.textAlign="center";m.style.width="210px";for(var g=[],k=0;k<this.defaultColorSchemes.length;k++){var p=document.createElement("div");
p.style.display="inline-block";p.style.width="6px";p.style.height="6px";p.style.marginLeft="4px";p.style.marginRight="3px";p.style.borderRadius="3px";p.style.cursor="pointer";p.style.background="transparent";p.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(b){mxEvent.addListener(p,"click",mxUtils.bind(this,function(){q(b)}))})(k);g.push(p);m.appendChild(p)}var q=mxUtils.bind(this,function(b){null!=g[b]&&(null!=this.format.currentScheme&&null!=g[this.format.currentScheme]&&(g[this.format.currentScheme].style.background=
@@ -10506,84 +10504,86 @@ b[c].getAttribute("face"):b[c].style.fontFamily;null!=d&&Graph.addFont(d,f)}}};G
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){if("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}if("undefined"!==typeof mxTableLayout&&"tableLayout"==c.childLayout)return f=new mxTableLayout(this.graph),
f.rows=c.tableRows||2,f.columns=c.tableColumns||2,f.colPercentages=c.colPercentages,f.rowPercentages=c.rowPercentages,f.equalColumns="1"==mxUtils.getValue(c,"equalColumns",f.colPercentages?"0":"1"),f.equalRows="1"==mxUtils.getValue(c,"equalRows",f.rowPercentages?"0":"1"),f.resizeParent="1"==mxUtils.getValue(c,"resizeParent","1"),f.border=c.tableBorder||f.border,f.marginLeft=c.marginLeft||0,f.marginRight=c.marginRight||0,f.marginTop=c.marginTop||0,f.marginBottom=c.marginBottom||0,f.autoAddCol="1"==
-mxUtils.getValue(c,"autoAddCol","0"),f.autoAddRow="1"==mxUtils.getValue(c,"autoAddRow",f.autoAddCol?"0":"1"),f.colWidths=c.colWidths||"100",f.rowHeights=c.rowHeights||"50",f}return d.apply(this,arguments)};this.updateGlobalUrlVariables()};var A=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=function(b){return Graph.processFontStyle(A.apply(this,arguments))};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="ellipsis";q.style.verticalAlign="middle";q.style.cursor="pointer";q.setAttribute("title",b);a=document.createElement("a");mxUtils.write(a,b);a.style.textOverflow="ellipsis";a.style.position="relative";mxUtils.setOpacity(a,l?100:40);q.appendChild(a);mxEvent.addListener(q,"click",function(c){if(mxEvent.isShiftDown(c)){e(!0);var f=m.getCellsForTags([b],null,null,!0);m.isEnabled()?m.setSelectionCells(f):m.highlightCells(f)}else if(l&&
-0<m.hiddenTags.length)e(!0);else{var f=g.slice(),k=mxUtils.indexOf(f,b);f.splice(k,1);m.hiddenTags=f;d();m.refresh()}mxEvent.consume(c)});p.appendChild(q);if(m.isEnabled()){q=document.createElement("td");q.style.verticalAlign="middle";q.style.textAlign="center";q.style.width="18px";if(null==f){q.style.align="center";q.style.width="16px";t=document.createElement("img");t.setAttribute("src",Editor.crossImage);t.setAttribute("title",mxResources.get("removeIt",[b]));mxUtils.setOpacity(t,l?75:25);t.style.verticalAlign=
-"middle";t.style.cursor="pointer";t.style.width="16px";if(c||Editor.isDarkMode())t.style.filter="invert(100%)";mxEvent.addListener(t,"click",function(c){var f=mxUtils.indexOf(g,b);0<=f&&g.splice(f,1);m.removeTagsForCells(m.model.getDescendants(m.model.getRoot()),[b]);m.refresh();mxEvent.consume(c)});q.appendChild(t)}else{var n=document.createElement("input");n.setAttribute("type","checkbox");n.style.margin="0px";n.defaultChecked=null!=f&&0<=mxUtils.indexOf(f,b);n.checked=n.defaultChecked;n.style.background=
-"transparent";n.setAttribute("title",mxResources.get(n.defaultChecked?"removeIt":"add",[b]));mxEvent.addListener(n,"change",function(c){n.checked?m.addTagsForCells(m.getSelectionCells(),[b]):m.removeTagsForCells(m.getSelectionCells(),[b]);mxEvent.consume(c)});q.appendChild(n)}p.appendChild(q)}k.appendChild(p)})(b[q]);l.appendChild(k);p.appendChild(l)}}var m=this,g=m.hiddenTags.slice(),k=document.createElement("div");k.style.userSelect="none";k.style.overflow="hidden";k.style.padding="10px";k.style.height=
-"100%";var p=document.createElement("div");p.style.boxSizing="border-box";p.style.borderRadius="4px";p.style.userSelect="none";p.style.overflow="auto";p.style.position="absolute";p.style.left="10px";p.style.right="10px";p.style.top="10px";p.style.border=m.isEnabled()?"1px solid #808080":"none";p.style.bottom=m.isEnabled()?"48px":"10px";k.appendChild(p);var q=mxUtils.button(mxResources.get("reset"),function(b){m.hiddenTags=[];mxEvent.isShiftDown(b)||(g=m.hiddenTags.slice());d();m.refresh()});q.setAttribute("title",
-mxResources.get("reset"));q.className="geBtn";q.style.margin="0 4px 0 0";var t=mxUtils.button(mxResources.get("add"),function(){null!=f&&f(g,function(b){g=b;n()})});t.setAttribute("title",mxResources.get("add"));t.className="geBtn";t.style.margin="0";m.addListener(mxEvent.ROOT,function(){g=m.hiddenTags.slice()});var n=mxUtils.bind(this,function(c,f){if(b()){for(var d=m.getAllTags(),e=0;e<d.length;e++)0>mxUtils.indexOf(g,d[e])&&g.push(d[e]);g.sort();m.isSelectionEmpty()?l(g):l(g,m.getCommonTagsForCells(m.getSelectionCells()))}});
-m.selectionModel.addListener(mxEvent.CHANGE,n);m.model.addListener(mxEvent.CHANGE,n);m.addListener(mxEvent.REFRESH,n);var y=document.createElement("div");y.style.boxSizing="border-box";y.style.whiteSpace="nowrap";y.style.position="absolute";y.style.overflow="hidden";y.style.bottom="0px";y.style.height="42px";y.style.right="10px";y.style.left="10px";m.isEnabled()&&(y.appendChild(q),y.appendChild(t),k.appendChild(y));return{div:k,refresh:n}};Graph.prototype.getCustomFonts=function(){var b=this.extFonts,
-b=null!=b?b.slice():[],c;for(c in Graph.customFontElements){var f=Graph.customFontElements[c];b.push({name:f.name,url:f.url})}return b};Graph.prototype.setFont=function(b,c){Graph.addFont(b,c);document.execCommand("fontname",!1,b);if(null!=c){var f=this.cellEditor.textarea.getElementsByTagName("font");c=Graph.getFontUrl(b,c);for(var d=0;d<f.length;d++)f[d].getAttribute("face")==b&&f[d].getAttribute("data-font-src")!=c&&f[d].setAttribute("data-font-src",c)}};var y=Graph.prototype.isFastZoomEnabled;
-Graph.prototype.isFastZoomEnabled=function(){return y.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};var b=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=b)for(var c in b)this.globalVars[c]=b[c]}catch(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 E=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.defaultForegroundColor,B=this.defaultPageBackgroundColor,this.defaultPageBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":Editor.darkColor,this.defaultForegroundColor="darkTheme"==this.defaultThemeName?"#000000":"#f0f0f0",this.stylesheet=this.getDefaultStylesheet(),this.refresh());var A=E.apply(this,
-arguments),x=this.getCustomFonts();if(q&&0<x.length){var C=A.ownerDocument,D=null!=C.createElementNS?C.createElementNS(mxConstants.NS_SVG,"style"):C.createElement("style");null!=C.setAttributeNS?D.setAttributeNS("type","text/css"):D.setAttribute("type","text/css");for(var z="",M="",F=0;F<x.length;F++){var I=x[F].name,K=x[F].url;Graph.isCssFontUrl(K)?z+="@import url("+K+");\n":M+='@font-face {\nfont-family: "'+I+'";\nsrc: url("'+K+'");\n}\n'}D.appendChild(C.createTextNode(z+M));A.getElementsByTagName("defs")[0].appendChild(D)}null!=
-u&&(this.defaultPageBackgroundColor=B,this.defaultForegroundColor=v,this.stylesheet=u,this.refresh());return A};var G=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var b=G.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 F=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){F.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 D=Graph.prototype.refresh;Graph.prototype.refresh=function(){D.apply(this,arguments);this.refreshBackgroundImage()};Graph.prototype.refreshBackgroundImage=function(){null!=this.backgroundImage&&null!=this.backgroundImage.originalSrc&&(this.setBackgroundImage(this.backgroundImage),this.view.validateBackgroundImage())};var H=Graph.prototype.loadStylesheet;
-Graph.prototype.loadStylesheet=function(){H.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(b){"data:action/json,"==b.substring(0,17)&&(b=JSON.parse(b.substring(17)),null!=b.actions&&this.executeCustomActions(b.actions))};Graph.prototype.executeCustomActions=function(b,c){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),
-this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var f=!1,d=0,e=0,l=mxUtils.bind(this,function(){f||(f=!0,this.model.beginUpdate())}),m=mxUtils.bind(this,function(){f&&(f=!1,this.model.endUpdate())}),g=mxUtils.bind(this,function(){0<d&&d--;0==d&&k()}),k=mxUtils.bind(this,function(){if(e<b.length){var f=this.stoppingCustomActions,p=b[e++],q=[];if(null!=p.open)if(m(),this.isCustomLink(p.open)){if(!this.customLinkClicked(p.open))return}else this.openLink(p.open);
-null==p.wait||f||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;g()}),d++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,""!=p.wait?parseInt(p.wait):1E3),m());null!=p.opacity&&null!=p.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(p.opacity,!0)),p.opacity.value);null!=p.fadeIn&&(d++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(p.fadeIn,!0)),0,1,g,f?0:
-p.fadeIn.delay));null!=p.fadeOut&&(d++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(p.fadeOut,!0)),1,0,g,f?0:p.fadeOut.delay));null!=p.wipeIn&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(p.wipeIn,!0),!0)));null!=p.wipeOut&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(p.wipeOut,!0),!1)));null!=p.toggle&&(l(),this.toggleCells(this.getCellsForAction(p.toggle,!0)));if(null!=p.show){l();var t=this.getCellsForAction(p.show,!0);Graph.setOpacityForNodes(this.getNodesForCells(t),
-1);this.setCellsVisible(t,!0)}null!=p.hide&&(l(),t=this.getCellsForAction(p.hide,!0),Graph.setOpacityForNodes(this.getNodesForCells(t),0),this.setCellsVisible(t,!1));null!=p.toggleStyle&&null!=p.toggleStyle.key&&(l(),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&&(l(),this.setCellStyles(p.style.key,p.style.value,this.getCellsForAction(p.style,!0)));t=[];null!=p.select&&
-this.isEnabled()&&(t=this.getCellsForAction(p.select),this.setSelectionCells(t));null!=p.highlight&&(t=this.getCellsForAction(p.highlight),this.highlightCells(t,p.highlight.color,p.highlight.duration,p.highlight.opacity));null!=p.scroll&&(t=this.getCellsForAction(p.scroll));null!=p.viewbox&&this.fitWindow(p.viewbox,p.viewbox.border);0<t.length&&this.scrollCellToVisible(t[0]);if(null!=p.tags){t=[];null!=p.tags.hidden&&(t=t.concat(p.tags.hidden));if(null!=p.tags.visible)for(var n=this.getAllTags(),
-y=0;y<n.length;y++)0>mxUtils.indexOf(p.tags.visible,n[y])&&0>mxUtils.indexOf(t,n[y])&&t.push(n[y]);this.hiddenTags=t;this.refresh()}0<q.length&&(d++,this.executeAnimations(q,g,f?1:p.steps,f?0:p.delay));0==d?k():m()}else this.stoppingCustomActions=this.executingCustomActions=!1,m(),null!=c&&c()});k()}};Graph.prototype.doUpdateCustomLinksForCell=function(b,c){var f=this.getLinkForCell(c);null!=f&&"data:action/json,"==f.substring(0,17)&&this.setLinkForCell(c,this.updateCustomLink(b,f));if(this.isHtmlLabel(c)){var d=
-document.createElement("div");d.innerHTML=this.sanitizeHtml(this.getLabel(c));for(var e=d.getElementsByTagName("a"),l=!1,m=0;m<e.length;m++)f=e[m].getAttribute("href"),null!=f&&"data:action/json,"==f.substring(0,17)&&(e[m].setAttribute("href",this.updateCustomLink(b,f)),l=!0);l&&this.labelChanged(c,d.innerHTML)}};Graph.prototype.updateCustomLink=function(b,c){if("data:action/json,"==c.substring(0,17))try{var f=JSON.parse(c.substring(17));null!=f.actions&&(this.updateCustomLinkActions(b,f.actions),
-c="data:action/json,"+JSON.stringify(f))}catch(N){}return c};Graph.prototype.updateCustomLinkActions=function(b,c){for(var f=0;f<c.length;f++){var d=c[f],e;for(e in d)this.updateCustomLinkAction(b,d[e],"cells"),this.updateCustomLinkAction(b,d[e],"excludeCells")}};Graph.prototype.updateCustomLinkAction=function(b,c,f){if(null!=c&&null!=c[f]){for(var d=[],e=0;e<c[f].length;e++)if("*"==c[f][e])d.push(c[f][e]);else{var l=b[c[f][e]];null!=l?""!=l&&d.push(l):d.push(c[f][e])}c[f]=d}};Graph.prototype.getCellsForAction=
-function(b,c){var f=this.getCellsById(b.cells).concat(this.getCellsForTags(b.tags,null,c));if(null!=b.excludeCells){for(var d=[],e=0;e<f.length;e++)0>b.excludeCells.indexOf(f[e].id)&&d.push(f[e]);f=d}return f};Graph.prototype.getCellsById=function(b){var c=[];if(null!=b)for(var f=0;f<b.length;f++)if("*"==b[f])var d=this.model.getRoot(),c=c.concat(this.model.filterDescendants(function(b){return b!=d},d));else{var e=this.model.getCell(b[f]);null!=e&&c.push(e)}return c};var I=Graph.prototype.isCellVisible;
-Graph.prototype.isCellVisible=function(b){return I.apply(this,arguments)&&!this.isAllTagsHidden(this.getTagsForCell(b))};Graph.prototype.isAllTagsHidden=function(b){if(null==b||0==b.length||0==this.hiddenTags.length)return!1;b=b.split(" ");if(b.length>this.hiddenTags.length)return!1;for(var c=0;c<b.length;c++)if(0>mxUtils.indexOf(this.hiddenTags,b[c]))return!1;return!0};Graph.prototype.getCellsForTags=function(b,c,f,d){var e=[];if(null!=b){c=null!=c?c:this.model.getDescendants(this.model.getRoot());
-for(var l=0,m={},g=0;g<b.length;g++)0<b[g].length&&(m[b[g]]=!0,l++);for(g=0;g<c.length;g++)if(f&&this.model.getParent(c[g])==this.model.root||this.model.isVertex(c[g])||this.model.isEdge(c[g])){var k=this.getTagsForCell(c[g]),p=!1;if(0<k.length&&(k=k.split(" "),k.length>=b.length)){for(var q=p=0;q<k.length&&p<l;q++)null!=m[k[q]]&&p++;p=p==l}p&&(1!=d||this.isCellVisible(c[g]))&&e.push(c[g])}}return e};Graph.prototype.getAllTags=function(){return this.getTagsForCells(this.model.getDescendants(this.model.getRoot()))};
-Graph.prototype.getCommonTagsForCells=function(b){for(var c=null,f=[],d=0;d<b.length;d++){var e=this.getTagsForCell(b[d]),f=[];if(0<e.length){for(var e=e.split(" "),l={},m=0;m<e.length;m++)if(null==c||null!=c[e[m]])l[e[m]]=!0,f.push(e[m]);c=l}else return[]}return f};Graph.prototype.getTagsForCells=function(b){for(var c=[],f={},d=0;d<b.length;d++){var e=this.getTagsForCell(b[d]);if(0<e.length)for(var e=e.split(" "),l=0;l<e.length;l++)null==f[e[l]]&&(f[e[l]]=!0,c.push(e[l]))}return c};Graph.prototype.getTagsForCell=
-function(b){return this.getAttributeForCell(b,"tags","")};Graph.prototype.addTagsForCells=function(b,c){if(0<b.length&&0<c.length){this.model.beginUpdate();try{for(var f=0;f<b.length;f++){for(var d=this.getTagsForCell(b[f]),e=d.split(" "),l=!1,m=0;m<c.length;m++){var g=mxUtils.trim(c[m]);""!=g&&0>mxUtils.indexOf(e,g)&&(d=0<d.length?d+" "+g:g,l=!0)}l&&this.setAttributeForCell(b[f],"tags",d)}}finally{this.model.endUpdate()}}};Graph.prototype.removeTagsForCells=function(b,c){if(0<b.length&&0<c.length){this.model.beginUpdate();
-try{for(var f=0;f<b.length;f++){var d=this.getTagsForCell(b[f]);if(0<d.length){for(var e=d.split(" "),l=!1,m=0;m<c.length;m++){var g=mxUtils.indexOf(e,c[m]);0<=g&&(e.splice(g,1),l=!0)}l&&this.setAttributeForCell(b[f],"tags",e.join(" "))}}}finally{this.model.endUpdate()}}};Graph.prototype.toggleCells=function(b){this.model.beginUpdate();try{for(var c=0;c<b.length;c++)this.model.setVisible(b[c],!this.model.isVisible(b[c]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(b,
-c){this.model.beginUpdate();try{for(var f=0;f<b.length;f++)this.model.setVisible(b[f],c)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(b,c,f,d){for(var e=0;e<b.length;e++)this.highlightCell(b[e],c,f,d)};Graph.prototype.highlightCell=function(b,c,f,d){c=null!=c?c:mxConstants.DEFAULT_VALID_COLOR;f=null!=f?f:1E3;b=this.view.getState(b);if(null!=b){var e=Math.max(5,mxUtils.getValue(b.style,mxConstants.STYLE_STROKEWIDTH,1)+4),l=new mxCellHighlight(this,c,e,!1);null!=d&&(l.opacity=
-d);l.highlight(b);window.setTimeout(function(){null!=l.shape&&(mxUtils.setPrefixedStyle(l.shape.node.style,"transition","all 1200ms ease-in-out"),l.shape.node.style.opacity=0);window.setTimeout(function(){l.destroy()},1200)},f)}};Graph.prototype.addSvgShadow=function(b,c,f,d){f=null!=f?f:!1;d=null!=d?d:!0;var e=b.ownerDocument,l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"filter"):e.createElement("filter");l.setAttribute("id",this.shadowId);var m=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,
-"feGaussianBlur"):e.createElement("feGaussianBlur");m.setAttribute("in","SourceAlpha");m.setAttribute("stdDeviation",this.svgShadowBlur);m.setAttribute("result","blur");l.appendChild(m);m=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feOffset"):e.createElement("feOffset");m.setAttribute("in","blur");m.setAttribute("dx",this.svgShadowSize);m.setAttribute("dy",this.svgShadowSize);m.setAttribute("result","offsetBlur");l.appendChild(m);m=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,
-"feFlood"):e.createElement("feFlood");m.setAttribute("flood-color",this.svgShadowColor);m.setAttribute("flood-opacity",this.svgShadowOpacity);m.setAttribute("result","offsetColor");l.appendChild(m);m=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feComposite"):e.createElement("feComposite");m.setAttribute("in","offsetColor");m.setAttribute("in2","offsetBlur");m.setAttribute("operator","in");m.setAttribute("result","offsetBlur");l.appendChild(m);m=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,
-"feBlend"):e.createElement("feBlend");m.setAttribute("in","SourceGraphic");m.setAttribute("in2","offsetBlur");l.appendChild(m);m=b.getElementsByTagName("defs");0==m.length?(e=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"defs"):e.createElement("defs"),null!=b.firstChild?b.insertBefore(e,b.firstChild):b.appendChild(e)):e=m[0];e.appendChild(l);f||(c=null!=c?c:b.getElementsByTagName("g")[0],null!=c&&(c.setAttribute("filter","url(#"+this.shadowId+")"),!isNaN(parseInt(b.getAttribute("width")))&&
-d&&(b.setAttribute("width",parseInt(b.getAttribute("width"))+6),b.setAttribute("height",parseInt(b.getAttribute("height"))+6),c=b.getAttribute("viewBox"),null!=c&&0<c.length&&(c=c.split(" "),3<c.length&&(w=parseFloat(c[2])+6,h=parseFloat(c[3])+6,b.setAttribute("viewBox",c[0]+" "+c[1]+" "+w+" "+h))))));return l};Graph.prototype.setShadowVisible=function(b,c){mxClient.IS_SVG&&!mxClient.IS_SF&&(c=null!=c?c:!0,(this.shadowVisible=b)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+
-")"):this.view.getDrawPane().removeAttribute("filter"),c&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var b=this.model.getChildCount(this.model.root),c,f=0;do c=this.model.getChildAt(this.model.root,f);while(f++<b&&"1"==mxUtils.getValue(this.getCellStyle(c),"locked","0"));null!=c&&this.setDefaultParent(c)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries.arrows2=
-[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.atlassian=[STENCIL_PATH+"/atlassian.xml",SHAPES_PATH+"/mxAtlassian.js"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.bpmn2=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.c4=[SHAPES_PATH+"/mxC4.js"];mxStencilRegistry.libraries.cisco19=[SHAPES_PATH+"/mxCisco19.js",STENCIL_PATH+
-"/cisco19.xml"];mxStencilRegistry.libraries.cisco_safe=[SHAPES_PATH+"/mxCiscoSafe.js",STENCIL_PATH+"/cisco_safe/architecture.xml",STENCIL_PATH+"/cisco_safe/business_icons.xml",STENCIL_PATH+"/cisco_safe/capability.xml",STENCIL_PATH+"/cisco_safe/design.xml",STENCIL_PATH+"/cisco_safe/iot_things_icons.xml",STENCIL_PATH+"/cisco_safe/people_places_things_icons.xml",STENCIL_PATH+"/cisco_safe/security_icons.xml",STENCIL_PATH+"/cisco_safe/technology_icons.xml",STENCIL_PATH+"/cisco_safe/threat.xml"];mxStencilRegistry.libraries.dfd=
-[SHAPES_PATH+"/mxDFD.js"];mxStencilRegistry.libraries.er=[SHAPES_PATH+"/er/mxER.js"];mxStencilRegistry.libraries.kubernetes=[SHAPES_PATH+"/mxKubernetes.js",STENCIL_PATH+"/kubernetes.xml"];mxStencilRegistry.libraries.flowchart=[SHAPES_PATH+"/mxFlowchart.js",STENCIL_PATH+"/flowchart.xml"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral=[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5=[STENCIL_PATH+
-"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android=[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/abstract"]=
-[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/abstract.xml"];mxStencilRegistry.libraries["electrical/logic_gates"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/logic_gates.xml"];mxStencilRegistry.libraries["electrical/miscellaneous"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/miscellaneous.xml"];mxStencilRegistry.libraries["electrical/signal_sources"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/signal_sources.xml"];mxStencilRegistry.libraries["electrical/transmission"]=
-[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries.infographic=[SHAPES_PATH+"/mxInfographic.js"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]=[SHAPES_PATH+"/mockup/mxMockupGraphics.js",
-STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",
-STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",SHAPES_PATH+"/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 c=null;null!=b&&0<b.length&&("ER"==b.substring(0,2)?c="mxgraph.er":"sysML"==b.substring(0,5)&&(c="mxgraph.sysml"));return c};var L=mxMarker.createMarker;mxMarker.createMarker=
-function(b,c,f,d,e,l,m,g,k,p){if(null!=f&&null==mxMarker.markers[f]){var q=this.getPackageForType(f);null!=q&&mxStencilRegistry.getStencil(q)}return L.apply(this,arguments)};PrintDialog.prototype.create=function(b,c){function f(){y.value=Math.max(1,Math.min(g,Math.max(parseInt(y.value),parseInt(n.value))));n.value=Math.max(1,Math.min(g,Math.min(parseInt(y.value),parseInt(n.value))))}function d(c){function f(c,f,l){var m=c.useCssTransforms,g=c.currentTranslate,k=c.currentScale,p=c.view.translate,q=
-c.view.scale;c.useCssTransforms&&(c.useCssTransforms=!1,c.currentTranslate=new mxPoint(0,0),c.currentScale=1,c.view.translate=new mxPoint(0,0),c.view.scale=1);var t=c.getGraphBounds(),n=0,y=0,u=L.get(),v=1/c.pageScale,x=A.checked;if(x)var v=parseInt(H.value),C=parseInt(Q.value),v=Math.min(u.height*C/(t.height/c.view.scale),u.width*v/(t.width/c.view.scale));else v=parseInt(B.value)/(100*c.pageScale),isNaN(v)&&(d=1/c.pageScale,B.value="100 %");u=mxRectangle.fromRectangle(u);u.width=Math.ceil(u.width*
-d);u.height=Math.ceil(u.height*d);v*=d;!x&&c.pageVisible?(t=c.getPageLayout(),n-=t.x*u.width,y-=t.y*u.height):x=!0;if(null==f){f=PrintDialog.createPrintPreview(c,v,u,0,n,y,x);f.pageSelector=!1;f.mathEnabled=!1;n=b.getCurrentFile();null!=n&&(f.title=n.getTitle());var D=f.writeHead;f.writeHead=function(f){D.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)f.writeln('<style type="text/css">'),f.writeln(Editor.mathJaxWebkitCss),f.writeln("</style>");mxClient.IS_GC&&(f.writeln('<style type="text/css">'),
-f.writeln("@media print {"),f.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),f.writeln("}"),f.writeln("</style>"));null!=b.editor.fontCss&&(f.writeln('<style type="text/css">'),f.writeln(b.editor.fontCss),f.writeln("</style>"));for(var d=c.getCustomFonts(),e=0;e<d.length;e++){var l=d[e].name,m=d[e].url;Graph.isCssFontUrl(m)?f.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(m)+'" charset="UTF-8" type="text/css">'):(f.writeln('<style type="text/css">'),f.writeln('@font-face {\nfont-family: "'+
-mxUtils.htmlEntities(l)+'";\nsrc: url("'+mxUtils.htmlEntities(m)+'");\n}'),f.writeln("</style>"))}};if("undefined"!==typeof MathJax){var z=f.renderPage;f.renderPage=function(c,f,d,e,l,m){var g=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var k=z.apply(this,arguments);mxClient.NO_FO=g;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:k.className="geDisableMathJax";return k}}n=null;y=e.enableFlowAnimation;e.enableFlowAnimation=
-!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(n=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.refresh());f.open(null,null,l,!0);e.enableFlowAnimation=y;null!=n&&(e.stylesheet=n,e.refresh())}else{u=c.background;if(null==u||""==u||u==mxConstants.NONE)u="#ffffff";f.backgroundColor=u;f.autoOrigin=x;f.appendGraph(c,v,n,y,l,!0);l=c.getCustomFonts();if(null!=f.wnd)for(n=0;n<l.length;n++)y=l[n].name,x=l[n].url,Graph.isCssFontUrl(x)?f.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(x)+
-'" charset="UTF-8" type="text/css">'):(f.wnd.document.writeln('<style type="text/css">'),f.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(y)+'";\nsrc: url("'+mxUtils.htmlEntities(x)+'");\n}'),f.wnd.document.writeln("</style>"))}m&&(c.useCssTransforms=m,c.currentTranslate=g,c.currentScale=k,c.view.translate=p,c.view.scale=q);return f}var d=parseInt(K.value)/100;isNaN(d)&&(d=1,K.value="100 %");var d=.75*d,l=null;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(l=e.stylesheet,
-e.stylesheet=e.getDefaultStylesheet(),e.refresh());var m=n.value,g=y.value,p=!q.checked,t=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,m,g,A.checked,H.value,Q.value,parseInt(B.value)/100,parseInt(K.value)/100,L.get());else{p&&(p=m==k&&g==k);if(!p&&null!=b.pages&&b.pages.length){var u=0,p=b.pages.length-1;q.checked||(u=parseInt(m)-1,p=parseInt(g)-1);for(var v=u;v<=p;v++){var x=b.pages[v],m=x==b.currentPage?e:null;if(null==m){var m=b.createTemporaryGraph(e.stylesheet),g=!0,u=
-!1,C=null,D=null;null==x.viewState&&null==x.root&&b.updatePageRoot(x);null!=x.viewState&&(g=x.viewState.pageVisible,u=x.viewState.mathEnabled,C=x.viewState.background,D=x.viewState.backgroundImage,m.extFonts=x.viewState.extFonts);m.background=C;m.backgroundImage=null!=D?new mxImage(D.src,D.width,D.height):null;m.pageVisible=g;m.mathEnabled=u;var z=m.getGlobalVariable;m.getGlobalVariable=function(c){return"page"==c?x.getName():"pagenumber"==c?v+1:"pagecount"==c?null!=b.pages?b.pages.length:1:z.apply(this,
-arguments)};document.body.appendChild(m.container);b.updatePageRoot(x);m.model.setRoot(x.root)}t=f(m,t,v!=p);m!=e&&m.container.parentNode.removeChild(m.container)}}else t=f(e);null==t?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(t.mathEnabled&&(p=t.wnd.document,c&&(t.wnd.IMMEDIATE_PRINT=!0),p.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),t.closeDocument(),!t.mathEnabled&&c&&PrintDialog.printPreview(t));null!=l&&(e.stylesheet=
-l,e.refresh())}}var e=b.editor.graph,l=document.createElement("div"),m=document.createElement("h3");m.style.width="100%";m.style.textAlign="center";m.style.marginTop="0px";mxUtils.write(m,c||mxResources.get("print"));l.appendChild(m);var g=1,k=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);m=document.createElement("span");mxUtils.write(m,mxResources.get("printAllPages"));p.appendChild(m);mxUtils.br(p);var t=q.cloneNode(!0);q.setAttribute("checked","checked");t.setAttribute("value","range");p.appendChild(t);m=document.createElement("span");mxUtils.write(m,mxResources.get("pages")+":");p.appendChild(m);var n=document.createElement("input");n.style.cssText="margin:0 8px 0 8px;";n.setAttribute("value","1");n.setAttribute("type",
-"number");n.setAttribute("min","1");n.style.width="50px";p.appendChild(n);m=document.createElement("span");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"),D=C.cloneNode(!0),z=document.createElement("td"),M=z.cloneNode(!0),F=z.cloneNode(!0),E=z.cloneNode(!0),I=z.cloneNode(!0),G=z.cloneNode(!0);z.style.textAlign="right";E.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"));F.appendChild(m);mxUtils.write(E,mxResources.get("fitToBy"));var Q=H.cloneNode(!0);I.appendChild(Q);mxEvent.addListener(H,"focus",function(){A.checked=!0});mxEvent.addListener(Q,"focus",function(){A.checked=!0});m=document.createElement("span");mxUtils.write(m,mxResources.get("fitToSheetsDown"));G.appendChild(m);C.appendChild(z);C.appendChild(M);C.appendChild(F);D.appendChild(E);D.appendChild(I);D.appendChild(G);
-x.appendChild(C);x.appendChild(D);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 L=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 K=document.createElement("input");K.style.cssText="margin:0 8px 0 8px;";K.setAttribute("value","100 %");K.style.width="60px";p.appendChild(K);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!=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 Q=document.createElement("canvas"),P=new Image;P.onload=function(){try{Q.getContext("2d").drawImage(P,
-0,0);var b=Q.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=b&&6<b.length}catch(X){}};P.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){}})();
+mxUtils.getValue(c,"autoAddCol","0"),f.autoAddRow="1"==mxUtils.getValue(c,"autoAddRow",f.autoAddCol?"0":"1"),f.colWidths=c.colWidths||"100",f.rowHeights=c.rowHeights||"50",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.hex2rgba(this.defaultForegroundColor),
+f=mxUtils.hex2rgba(this.defaultPageBackgroundColor);this.replaceDefaultColor(b,mxConstants.STYLE_FONTCOLOR,c);this.replaceDefaultColor(b,mxConstants.STYLE_FILLCOLOR,f);this.replaceDefaultColor(b,mxConstants.STYLE_STROKECOLOR,c);this.replaceDefaultColor(b,mxConstants.STYLE_IMAGE_BORDER,c);this.replaceDefaultColor(b,mxConstants.STYLE_IMAGE_BACKGROUND,f);this.replaceDefaultColor(b,mxConstants.STYLE_LABEL_BORDERCOLOR,c);this.replaceDefaultColor(b,mxConstants.STYLE_SWIMLANE_FILLCOLOR,f);this.replaceDefaultColor(b,
+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="ellipsis";q.style.verticalAlign="middle";q.style.cursor="pointer";q.setAttribute("title",b);a=document.createElement("a");mxUtils.write(a,b);a.style.textOverflow="ellipsis";
+a.style.position="relative";mxUtils.setOpacity(a,l?100:40);q.appendChild(a);mxEvent.addListener(q,"click",function(c){if(mxEvent.isShiftDown(c)){e(!0);var f=m.getCellsForTags([b],null,null,!0);m.isEnabled()?m.setSelectionCells(f):m.highlightCells(f)}else if(l&&0<m.hiddenTags.length)e(!0);else{var f=g.slice(),k=mxUtils.indexOf(f,b);f.splice(k,1);m.hiddenTags=f;d();m.refresh()}mxEvent.consume(c)});p.appendChild(q);if(m.isEnabled()){q=document.createElement("td");q.style.verticalAlign="middle";q.style.textAlign=
+"center";q.style.width="18px";if(null==f){q.style.align="center";q.style.width="16px";t=document.createElement("img");t.setAttribute("src",Editor.crossImage);t.setAttribute("title",mxResources.get("removeIt",[b]));mxUtils.setOpacity(t,l?75:25);t.style.verticalAlign="middle";t.style.cursor="pointer";t.style.width="16px";if(c||Editor.isDarkMode())t.style.filter="invert(100%)";mxEvent.addListener(t,"click",function(c){var f=mxUtils.indexOf(g,b);0<=f&&g.splice(f,1);m.removeTagsForCells(m.model.getDescendants(m.model.getRoot()),
+[b]);m.refresh();mxEvent.consume(c)});q.appendChild(t)}else{var n=document.createElement("input");n.setAttribute("type","checkbox");n.style.margin="0px";n.defaultChecked=null!=f&&0<=mxUtils.indexOf(f,b);n.checked=n.defaultChecked;n.style.background="transparent";n.setAttribute("title",mxResources.get(n.defaultChecked?"removeIt":"add",[b]));mxEvent.addListener(n,"change",function(c){n.checked?m.addTagsForCells(m.getSelectionCells(),[b]):m.removeTagsForCells(m.getSelectionCells(),[b]);mxEvent.consume(c)});
+q.appendChild(n)}p.appendChild(q)}k.appendChild(p)})(b[q]);l.appendChild(k);p.appendChild(l)}}var m=this,g=m.hiddenTags.slice(),k=document.createElement("div");k.style.userSelect="none";k.style.overflow="hidden";k.style.padding="10px";k.style.height="100%";var p=document.createElement("div");p.style.boxSizing="border-box";p.style.borderRadius="4px";p.style.userSelect="none";p.style.overflow="auto";p.style.position="absolute";p.style.left="10px";p.style.right="10px";p.style.top="10px";p.style.border=
+m.isEnabled()?"1px solid #808080":"none";p.style.bottom=m.isEnabled()?"48px":"10px";k.appendChild(p);var q=mxUtils.button(mxResources.get("reset"),function(b){m.hiddenTags=[];mxEvent.isShiftDown(b)||(g=m.hiddenTags.slice());d();m.refresh()});q.setAttribute("title",mxResources.get("reset"));q.className="geBtn";q.style.margin="0 4px 0 0";var t=mxUtils.button(mxResources.get("add"),function(){null!=f&&f(g,function(b){g=b;n()})});t.setAttribute("title",mxResources.get("add"));t.className="geBtn";t.style.margin=
+"0";m.addListener(mxEvent.ROOT,function(){g=m.hiddenTags.slice()});var n=mxUtils.bind(this,function(c,f){if(b()){for(var d=m.getAllTags(),e=0;e<d.length;e++)0>mxUtils.indexOf(g,d[e])&&g.push(d[e]);g.sort();m.isSelectionEmpty()?l(g):l(g,m.getCommonTagsForCells(m.getSelectionCells()))}});m.selectionModel.addListener(mxEvent.CHANGE,n);m.model.addListener(mxEvent.CHANGE,n);m.addListener(mxEvent.REFRESH,n);var y=document.createElement("div");y.style.boxSizing="border-box";y.style.whiteSpace="nowrap";y.style.position=
+"absolute";y.style.overflow="hidden";y.style.bottom="0px";y.style.height="42px";y.style.right="10px";y.style.left="10px";m.isEnabled()&&(y.appendChild(q),y.appendChild(t),k.appendChild(y));return{div:k,refresh:n}};Graph.prototype.getCustomFonts=function(){var b=this.extFonts,b=null!=b?b.slice():[],c;for(c in Graph.customFontElements){var f=Graph.customFontElements[c];b.push({name:f.name,url:f.url})}return b};Graph.prototype.setFont=function(b,c){Graph.addFont(b,c);document.execCommand("fontname",
+!1,b);if(null!=c){var f=this.cellEditor.textarea.getElementsByTagName("font");c=Graph.getFontUrl(b,c);for(var d=0;d<f.length;d++)f[d].getAttribute("face")==b&&f[d].getAttribute("data-font-src")!=c&&f[d].setAttribute("data-font-src",c)}};var y=Graph.prototype.isFastZoomEnabled;Graph.prototype.isFastZoomEnabled=function(){return y.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=
+null!=this.globalVars?mxUtils.clone(this.globalVars):{};var b=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=b)for(var c in b)this.globalVars[c]=b[c]}catch(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 F=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.defaultForegroundColor,
+B=this.defaultPageBackgroundColor,this.defaultPageBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":Editor.darkColor,this.defaultForegroundColor="darkTheme"==this.defaultThemeName?"#000000":"#f0f0f0",this.stylesheet=this.getDefaultStylesheet(),this.refresh());var A=F.apply(this,arguments),x=this.getCustomFonts();if(q&&0<x.length){var C=A.ownerDocument,D=null!=C.createElementNS?C.createElementNS(mxConstants.NS_SVG,"style"):C.createElement("style");null!=C.setAttributeNS?D.setAttributeNS("type",
+"text/css"):D.setAttribute("type","text/css");for(var z="",E="",M=0;M<x.length;M++){var I=x[M].name,K=x[M].url;Graph.isCssFontUrl(K)?z+="@import url("+K+");\n":E+='@font-face {\nfont-family: "'+I+'";\nsrc: url("'+K+'");\n}\n'}D.appendChild(C.createTextNode(z+E));A.getElementsByTagName("defs")[0].appendChild(D)}null!=u&&(this.defaultPageBackgroundColor=B,this.defaultForegroundColor=v,this.stylesheet=u,this.refresh());return A};var G=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=
+function(){var b=G.apply(this,arguments);if(this.mathEnabled){var c=b.drawText;b.drawText=function(b,f){if(null!=b.text&&null!=b.text.value&&b.text.checkBounds()&&(mxUtils.isNode(b.text.value)||b.text.dialect==mxConstants.DIALECT_STRICTHTML)){var d=b.text.getContentNode();if(null!=d){d=d.cloneNode(!0);if(d.getElementsByTagNameNS)for(var e=d.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<e.length;)e[0].parentNode.removeChild(e[0]);null!=d.innerHTML&&(e=b.text.value,b.text.value=
+d.innerHTML,c.apply(this,arguments),b.text.value=e)}}else c.apply(this,arguments)}}return b};var E=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){E.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 D=Graph.prototype.refresh;Graph.prototype.refresh=function(){D.apply(this,arguments);this.refreshBackgroundImage()};Graph.prototype.refreshBackgroundImage=function(){null!=this.backgroundImage&&null!=this.backgroundImage.originalSrc&&(this.setBackgroundImage(this.backgroundImage),this.view.validateBackgroundImage())};var H=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){H.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(b){"data:action/json,"==
+b.substring(0,17)&&(b=JSON.parse(b.substring(17)),null!=b.actions&&this.executeCustomActions(b.actions))};Graph.prototype.executeCustomActions=function(b,c){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var f=!1,d=0,e=0,l=mxUtils.bind(this,function(){f||
+(f=!0,this.model.beginUpdate())}),m=mxUtils.bind(this,function(){f&&(f=!1,this.model.endUpdate())}),g=mxUtils.bind(this,function(){0<d&&d--;0==d&&k()}),k=mxUtils.bind(this,function(){if(e<b.length){var f=this.stoppingCustomActions,p=b[e++],q=[];if(null!=p.open)if(m(),this.isCustomLink(p.open)){if(!this.customLinkClicked(p.open))return}else this.openLink(p.open);null==p.wait||f||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;g()}),
+d++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,""!=p.wait?parseInt(p.wait):1E3),m());null!=p.opacity&&null!=p.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(p.opacity,!0)),p.opacity.value);null!=p.fadeIn&&(d++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(p.fadeIn,!0)),0,1,g,f?0:p.fadeIn.delay));null!=p.fadeOut&&(d++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(p.fadeOut,!0)),1,0,g,f?0:p.fadeOut.delay));
+null!=p.wipeIn&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(p.wipeIn,!0),!0)));null!=p.wipeOut&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(p.wipeOut,!0),!1)));null!=p.toggle&&(l(),this.toggleCells(this.getCellsForAction(p.toggle,!0)));if(null!=p.show){l();var t=this.getCellsForAction(p.show,!0);Graph.setOpacityForNodes(this.getNodesForCells(t),1);this.setCellsVisible(t,!0)}null!=p.hide&&(l(),t=this.getCellsForAction(p.hide,!0),Graph.setOpacityForNodes(this.getNodesForCells(t),
+0),this.setCellsVisible(t,!1));null!=p.toggleStyle&&null!=p.toggleStyle.key&&(l(),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&&(l(),this.setCellStyles(p.style.key,p.style.value,this.getCellsForAction(p.style,!0)));t=[];null!=p.select&&this.isEnabled()&&(t=this.getCellsForAction(p.select),this.setSelectionCells(t));null!=p.highlight&&(t=this.getCellsForAction(p.highlight),
+this.highlightCells(t,p.highlight.color,p.highlight.duration,p.highlight.opacity));null!=p.scroll&&(t=this.getCellsForAction(p.scroll));null!=p.viewbox&&this.fitWindow(p.viewbox,p.viewbox.border);0<t.length&&this.scrollCellToVisible(t[0]);if(null!=p.tags){t=[];null!=p.tags.hidden&&(t=t.concat(p.tags.hidden));if(null!=p.tags.visible)for(var n=this.getAllTags(),y=0;y<n.length;y++)0>mxUtils.indexOf(p.tags.visible,n[y])&&0>mxUtils.indexOf(t,n[y])&&t.push(n[y]);this.hiddenTags=t;this.refresh()}0<q.length&&
+(d++,this.executeAnimations(q,g,f?1:p.steps,f?0:p.delay));0==d?k():m()}else this.stoppingCustomActions=this.executingCustomActions=!1,m(),null!=c&&c()});k()}};Graph.prototype.doUpdateCustomLinksForCell=function(b,c){var f=this.getLinkForCell(c);null!=f&&"data:action/json,"==f.substring(0,17)&&this.setLinkForCell(c,this.updateCustomLink(b,f));if(this.isHtmlLabel(c)){var d=document.createElement("div");d.innerHTML=this.sanitizeHtml(this.getLabel(c));for(var e=d.getElementsByTagName("a"),l=!1,m=0;m<
+e.length;m++)f=e[m].getAttribute("href"),null!=f&&"data:action/json,"==f.substring(0,17)&&(e[m].setAttribute("href",this.updateCustomLink(b,f)),l=!0);l&&this.labelChanged(c,d.innerHTML)}};Graph.prototype.updateCustomLink=function(b,c){if("data:action/json,"==c.substring(0,17))try{var f=JSON.parse(c.substring(17));null!=f.actions&&(this.updateCustomLinkActions(b,f.actions),c="data:action/json,"+JSON.stringify(f))}catch(N){}return c};Graph.prototype.updateCustomLinkActions=function(b,c){for(var f=0;f<
+c.length;f++){var d=c[f],e;for(e in d)this.updateCustomLinkAction(b,d[e],"cells"),this.updateCustomLinkAction(b,d[e],"excludeCells")}};Graph.prototype.updateCustomLinkAction=function(b,c,f){if(null!=c&&null!=c[f]){for(var d=[],e=0;e<c[f].length;e++)if("*"==c[f][e])d.push(c[f][e]);else{var l=b[c[f][e]];null!=l?""!=l&&d.push(l):d.push(c[f][e])}c[f]=d}};Graph.prototype.getCellsForAction=function(b,c){var f=this.getCellsById(b.cells).concat(this.getCellsForTags(b.tags,null,c));if(null!=b.excludeCells){for(var d=
+[],e=0;e<f.length;e++)0>b.excludeCells.indexOf(f[e].id)&&d.push(f[e]);f=d}return f};Graph.prototype.getCellsById=function(b){var c=[];if(null!=b)for(var f=0;f<b.length;f++)if("*"==b[f])var d=this.model.getRoot(),c=c.concat(this.model.filterDescendants(function(b){return b!=d},d));else{var e=this.model.getCell(b[f]);null!=e&&c.push(e)}return c};var I=Graph.prototype.isCellVisible;Graph.prototype.isCellVisible=function(b){return I.apply(this,arguments)&&!this.isAllTagsHidden(this.getTagsForCell(b))};
+Graph.prototype.isAllTagsHidden=function(b){if(null==b||0==b.length||0==this.hiddenTags.length)return!1;b=b.split(" ");if(b.length>this.hiddenTags.length)return!1;for(var c=0;c<b.length;c++)if(0>mxUtils.indexOf(this.hiddenTags,b[c]))return!1;return!0};Graph.prototype.getCellsForTags=function(b,c,f,d){var e=[];if(null!=b){c=null!=c?c:this.model.getDescendants(this.model.getRoot());for(var l=0,m={},g=0;g<b.length;g++)0<b[g].length&&(m[b[g]]=!0,l++);for(g=0;g<c.length;g++)if(f&&this.model.getParent(c[g])==
+this.model.root||this.model.isVertex(c[g])||this.model.isEdge(c[g])){var k=this.getTagsForCell(c[g]),p=!1;if(0<k.length&&(k=k.split(" "),k.length>=b.length)){for(var q=p=0;q<k.length&&p<l;q++)null!=m[k[q]]&&p++;p=p==l}p&&(1!=d||this.isCellVisible(c[g]))&&e.push(c[g])}}return e};Graph.prototype.getAllTags=function(){return this.getTagsForCells(this.model.getDescendants(this.model.getRoot()))};Graph.prototype.getCommonTagsForCells=function(b){for(var c=null,f=[],d=0;d<b.length;d++){var e=this.getTagsForCell(b[d]),
+f=[];if(0<e.length){for(var e=e.split(" "),l={},m=0;m<e.length;m++)if(null==c||null!=c[e[m]])l[e[m]]=!0,f.push(e[m]);c=l}else return[]}return f};Graph.prototype.getTagsForCells=function(b){for(var c=[],f={},d=0;d<b.length;d++){var e=this.getTagsForCell(b[d]);if(0<e.length)for(var e=e.split(" "),l=0;l<e.length;l++)null==f[e[l]]&&(f[e[l]]=!0,c.push(e[l]))}return c};Graph.prototype.getTagsForCell=function(b){return this.getAttributeForCell(b,"tags","")};Graph.prototype.addTagsForCells=function(b,c){if(0<
+b.length&&0<c.length){this.model.beginUpdate();try{for(var f=0;f<b.length;f++){for(var d=this.getTagsForCell(b[f]),e=d.split(" "),l=!1,m=0;m<c.length;m++){var g=mxUtils.trim(c[m]);""!=g&&0>mxUtils.indexOf(e,g)&&(d=0<d.length?d+" "+g:g,l=!0)}l&&this.setAttributeForCell(b[f],"tags",d)}}finally{this.model.endUpdate()}}};Graph.prototype.removeTagsForCells=function(b,c){if(0<b.length&&0<c.length){this.model.beginUpdate();try{for(var f=0;f<b.length;f++){var d=this.getTagsForCell(b[f]);if(0<d.length){for(var e=
+d.split(" "),l=!1,m=0;m<c.length;m++){var g=mxUtils.indexOf(e,c[m]);0<=g&&(e.splice(g,1),l=!0)}l&&this.setAttributeForCell(b[f],"tags",e.join(" "))}}}finally{this.model.endUpdate()}}};Graph.prototype.toggleCells=function(b){this.model.beginUpdate();try{for(var c=0;c<b.length;c++)this.model.setVisible(b[c],!this.model.isVisible(b[c]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(b,c){this.model.beginUpdate();try{for(var f=0;f<b.length;f++)this.model.setVisible(b[f],c)}finally{this.model.endUpdate()}};
+Graph.prototype.highlightCells=function(b,c,f,d){for(var e=0;e<b.length;e++)this.highlightCell(b[e],c,f,d)};Graph.prototype.highlightCell=function(b,c,f,d){c=null!=c?c:mxConstants.DEFAULT_VALID_COLOR;f=null!=f?f:1E3;b=this.view.getState(b);if(null!=b){var e=Math.max(5,mxUtils.getValue(b.style,mxConstants.STYLE_STROKEWIDTH,1)+4),l=new mxCellHighlight(this,c,e,!1);null!=d&&(l.opacity=d);l.highlight(b);window.setTimeout(function(){null!=l.shape&&(mxUtils.setPrefixedStyle(l.shape.node.style,"transition",
+"all 1200ms ease-in-out"),l.shape.node.style.opacity=0);window.setTimeout(function(){l.destroy()},1200)},f)}};Graph.prototype.addSvgShadow=function(b,c,f,d){f=null!=f?f:!1;d=null!=d?d:!0;var e=b.ownerDocument,l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"filter"):e.createElement("filter");l.setAttribute("id",this.shadowId);var m=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):e.createElement("feGaussianBlur");m.setAttribute("in","SourceAlpha");m.setAttribute("stdDeviation",
+this.svgShadowBlur);m.setAttribute("result","blur");l.appendChild(m);m=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feOffset"):e.createElement("feOffset");m.setAttribute("in","blur");m.setAttribute("dx",this.svgShadowSize);m.setAttribute("dy",this.svgShadowSize);m.setAttribute("result","offsetBlur");l.appendChild(m);m=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feFlood"):e.createElement("feFlood");m.setAttribute("flood-color",this.svgShadowColor);m.setAttribute("flood-opacity",
+this.svgShadowOpacity);m.setAttribute("result","offsetColor");l.appendChild(m);m=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feComposite"):e.createElement("feComposite");m.setAttribute("in","offsetColor");m.setAttribute("in2","offsetBlur");m.setAttribute("operator","in");m.setAttribute("result","offsetBlur");l.appendChild(m);m=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feBlend"):e.createElement("feBlend");m.setAttribute("in","SourceGraphic");m.setAttribute("in2",
+"offsetBlur");l.appendChild(m);m=b.getElementsByTagName("defs");0==m.length?(e=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"defs"):e.createElement("defs"),null!=b.firstChild?b.insertBefore(e,b.firstChild):b.appendChild(e)):e=m[0];e.appendChild(l);f||(c=null!=c?c:b.getElementsByTagName("g")[0],null!=c&&(c.setAttribute("filter","url(#"+this.shadowId+")"),!isNaN(parseInt(b.getAttribute("width")))&&d&&(b.setAttribute("width",parseInt(b.getAttribute("width"))+6),b.setAttribute("height",
+parseInt(b.getAttribute("height"))+6),c=b.getAttribute("viewBox"),null!=c&&0<c.length&&(c=c.split(" "),3<c.length&&(w=parseFloat(c[2])+6,h=parseFloat(c[3])+6,b.setAttribute("viewBox",c[0]+" "+c[1]+" "+w+" "+h))))));return l};Graph.prototype.setShadowVisible=function(b,c){mxClient.IS_SVG&&!mxClient.IS_SF&&(c=null!=c?c:!0,(this.shadowVisible=b)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),c&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};
+Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var b=this.model.getChildCount(this.model.root),c,f=0;do c=this.model.getChildAt(this.model.root,f);while(f++<b&&"1"==mxUtils.getValue(this.getCellStyle(c),"locked","0"));null!=c&&this.setDefaultParent(c)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.atlassian=[STENCIL_PATH+"/atlassian.xml",SHAPES_PATH+
+"/mxAtlassian.js"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.bpmn2=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.c4=[SHAPES_PATH+"/mxC4.js"];mxStencilRegistry.libraries.cisco19=[SHAPES_PATH+"/mxCisco19.js",STENCIL_PATH+"/cisco19.xml"];mxStencilRegistry.libraries.cisco_safe=[SHAPES_PATH+"/mxCiscoSafe.js",STENCIL_PATH+"/cisco_safe/architecture.xml",
+STENCIL_PATH+"/cisco_safe/business_icons.xml",STENCIL_PATH+"/cisco_safe/capability.xml",STENCIL_PATH+"/cisco_safe/design.xml",STENCIL_PATH+"/cisco_safe/iot_things_icons.xml",STENCIL_PATH+"/cisco_safe/people_places_things_icons.xml",STENCIL_PATH+"/cisco_safe/security_icons.xml",STENCIL_PATH+"/cisco_safe/technology_icons.xml",STENCIL_PATH+"/cisco_safe/threat.xml"];mxStencilRegistry.libraries.dfd=[SHAPES_PATH+"/mxDFD.js"];mxStencilRegistry.libraries.er=[SHAPES_PATH+"/er/mxER.js"];mxStencilRegistry.libraries.kubernetes=
+[SHAPES_PATH+"/mxKubernetes.js",STENCIL_PATH+"/kubernetes.xml"];mxStencilRegistry.libraries.flowchart=[SHAPES_PATH+"/mxFlowchart.js",STENCIL_PATH+"/flowchart.xml"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral=[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5=[STENCIL_PATH+"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];
+mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android=[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/abstract"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/abstract.xml"];mxStencilRegistry.libraries["electrical/logic_gates"]=
+[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/logic_gates.xml"];mxStencilRegistry.libraries["electrical/miscellaneous"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/miscellaneous.xml"];mxStencilRegistry.libraries["electrical/signal_sources"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/signal_sources.xml"];mxStencilRegistry.libraries["electrical/transmission"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries.infographic=
+[SHAPES_PATH+"/mxInfographic.js"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]=[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];
+mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",SHAPES_PATH+
+"/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 c=null;null!=b&&0<b.length&&("ER"==b.substring(0,2)?c="mxgraph.er":"sysML"==b.substring(0,5)&&(c="mxgraph.sysml"));return c};var L=mxMarker.createMarker;mxMarker.createMarker=function(b,c,f,d,e,l,m,g,k,p){if(null!=f&&null==mxMarker.markers[f]){var q=this.getPackageForType(f);null!=q&&
+mxStencilRegistry.getStencil(q)}return L.apply(this,arguments)};PrintDialog.prototype.create=function(b,c){function f(){y.value=Math.max(1,Math.min(g,Math.max(parseInt(y.value),parseInt(n.value))));n.value=Math.max(1,Math.min(g,Math.min(parseInt(y.value),parseInt(n.value))))}function d(c){function f(c,f,l){var m=c.useCssTransforms,g=c.currentTranslate,k=c.currentScale,p=c.view.translate,q=c.view.scale;c.useCssTransforms&&(c.useCssTransforms=!1,c.currentTranslate=new mxPoint(0,0),c.currentScale=1,
+c.view.translate=new mxPoint(0,0),c.view.scale=1);var t=c.getGraphBounds(),n=0,y=0,u=L.get(),v=1/c.pageScale,x=A.checked;if(x)var v=parseInt(H.value),C=parseInt(Q.value),v=Math.min(u.height*C/(t.height/c.view.scale),u.width*v/(t.width/c.view.scale));else v=parseInt(B.value)/(100*c.pageScale),isNaN(v)&&(d=1/c.pageScale,B.value="100 %");u=mxRectangle.fromRectangle(u);u.width=Math.ceil(u.width*d);u.height=Math.ceil(u.height*d);v*=d;!x&&c.pageVisible?(t=c.getPageLayout(),n-=t.x*u.width,y-=t.y*u.height):
+x=!0;if(null==f){f=PrintDialog.createPrintPreview(c,v,u,0,n,y,x);f.pageSelector=!1;f.mathEnabled=!1;n=b.getCurrentFile();null!=n&&(f.title=n.getTitle());var D=f.writeHead;f.writeHead=function(f){D.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)f.writeln('<style type="text/css">'),f.writeln(Editor.mathJaxWebkitCss),f.writeln("</style>");mxClient.IS_GC&&(f.writeln('<style type="text/css">'),f.writeln("@media print {"),f.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),f.writeln("}"),
+f.writeln("</style>"));null!=b.editor.fontCss&&(f.writeln('<style type="text/css">'),f.writeln(b.editor.fontCss),f.writeln("</style>"));for(var d=c.getCustomFonts(),e=0;e<d.length;e++){var l=d[e].name,m=d[e].url;Graph.isCssFontUrl(m)?f.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(m)+'" charset="UTF-8" type="text/css">'):(f.writeln('<style type="text/css">'),f.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(l)+'";\nsrc: url("'+mxUtils.htmlEntities(m)+'");\n}'),f.writeln("</style>"))}};
+if("undefined"!==typeof MathJax){var z=f.renderPage;f.renderPage=function(c,f,d,e,l,m){var g=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var k=z.apply(this,arguments);mxClient.NO_FO=g;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:k.className="geDisableMathJax";return k}}n=null;y=e.enableFlowAnimation;e.enableFlowAnimation=!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(n=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),
+e.refresh());f.open(null,null,l,!0);e.enableFlowAnimation=y;null!=n&&(e.stylesheet=n,e.refresh())}else{u=c.background;if(null==u||""==u||u==mxConstants.NONE)u="#ffffff";f.backgroundColor=u;f.autoOrigin=x;f.appendGraph(c,v,n,y,l,!0);l=c.getCustomFonts();if(null!=f.wnd)for(n=0;n<l.length;n++)y=l[n].name,x=l[n].url,Graph.isCssFontUrl(x)?f.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(x)+'" charset="UTF-8" type="text/css">'):(f.wnd.document.writeln('<style type="text/css">'),
+f.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(y)+'";\nsrc: url("'+mxUtils.htmlEntities(x)+'");\n}'),f.wnd.document.writeln("</style>"))}m&&(c.useCssTransforms=m,c.currentTranslate=g,c.currentScale=k,c.view.translate=p,c.view.scale=q);return f}var d=parseInt(K.value)/100;isNaN(d)&&(d=1,K.value="100 %");var d=.75*d,l=null;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(l=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.refresh());var m=n.value,g=y.value,p=!q.checked,
+t=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,m,g,A.checked,H.value,Q.value,parseInt(B.value)/100,parseInt(K.value)/100,L.get());else{p&&(p=m==k&&g==k);if(!p&&null!=b.pages&&b.pages.length){var u=0,p=b.pages.length-1;q.checked||(u=parseInt(m)-1,p=parseInt(g)-1);for(var v=u;v<=p;v++){var x=b.pages[v],m=x==b.currentPage?e:null;if(null==m){var m=b.createTemporaryGraph(e.stylesheet),g=!0,u=!1,C=null,D=null;null==x.viewState&&null==x.root&&b.updatePageRoot(x);null!=x.viewState&&
+(g=x.viewState.pageVisible,u=x.viewState.mathEnabled,C=x.viewState.background,D=x.viewState.backgroundImage,m.extFonts=x.viewState.extFonts);m.background=C;m.backgroundImage=null!=D?new mxImage(D.src,D.width,D.height):null;m.pageVisible=g;m.mathEnabled=u;var z=m.getGlobalVariable;m.getGlobalVariable=function(c){return"page"==c?x.getName():"pagenumber"==c?v+1:"pagecount"==c?null!=b.pages?b.pages.length:1:z.apply(this,arguments)};document.body.appendChild(m.container);b.updatePageRoot(x);m.model.setRoot(x.root)}t=
+f(m,t,v!=p);m!=e&&m.container.parentNode.removeChild(m.container)}}else t=f(e);null==t?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(t.mathEnabled&&(p=t.wnd.document,c&&(t.wnd.IMMEDIATE_PRINT=!0),p.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),t.closeDocument(),!t.mathEnabled&&c&&PrintDialog.printPreview(t));null!=l&&(e.stylesheet=l,e.refresh())}}var e=b.editor.graph,l=document.createElement("div"),m=document.createElement("h3");
+m.style.width="100%";m.style.textAlign="center";m.style.marginTop="0px";mxUtils.write(m,c||mxResources.get("print"));l.appendChild(m);var g=1,k=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);m=document.createElement("span");
+mxUtils.write(m,mxResources.get("printAllPages"));p.appendChild(m);mxUtils.br(p);var t=q.cloneNode(!0);q.setAttribute("checked","checked");t.setAttribute("value","range");p.appendChild(t);m=document.createElement("span");mxUtils.write(m,mxResources.get("pages")+":");p.appendChild(m);var n=document.createElement("input");n.style.cssText="margin:0 8px 0 8px;";n.setAttribute("value","1");n.setAttribute("type","number");n.setAttribute("min","1");n.style.width="50px";p.appendChild(n);m=document.createElement("span");
+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"),D=C.cloneNode(!0),z=document.createElement("td"),
+E=z.cloneNode(!0),M=z.cloneNode(!0),F=z.cloneNode(!0),I=z.cloneNode(!0),G=z.cloneNode(!0);z.style.textAlign="right";F.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";E.appendChild(H);m=document.createElement("span");mxUtils.write(m,mxResources.get("fitToSheetsAcross"));M.appendChild(m);mxUtils.write(F,
+mxResources.get("fitToBy"));var Q=H.cloneNode(!0);I.appendChild(Q);mxEvent.addListener(H,"focus",function(){A.checked=!0});mxEvent.addListener(Q,"focus",function(){A.checked=!0});m=document.createElement("span");mxUtils.write(m,mxResources.get("fitToSheetsDown"));G.appendChild(m);C.appendChild(z);C.appendChild(E);C.appendChild(M);D.appendChild(F);D.appendChild(I);D.appendChild(G);x.appendChild(C);x.appendChild(D);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 L=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 K=document.createElement("input");K.style.cssText="margin:0 8px 0 8px;";
+K.setAttribute("value","100 %");K.style.width="60px";p.appendChild(K);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!=
+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 Q=document.createElement("canvas"),P=new Image;P.onload=function(){try{Q.getContext("2d").drawImage(P,0,0);var b=Q.toDataURL("image/png");Editor.prototype.useCanvasForExport=
+null!=b&&6<b.length}catch(X){}};P.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.6.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=
+(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.6.4";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":
@@ -10643,8 +10643,8 @@ urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);d.g
function(b){c===this.currentPage&&(200<=b.getStatus()&&300>=b.getStatus()?(this.updateDiagram(b.getText()),k()):this.handleError({message:mxResources.get("error")+" "+b.getStatus()}))}),mxUtils.bind(this,function(b){this.handleError(b)}))}),k=mxUtils.bind(this,function(){window.clearTimeout(m);m=window.setTimeout(g,l)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){k();g()}));k();g()}null!=c&&c()});null!=b.url&&0<b.url.length?this.editor.loadUrl(b.url,mxUtils.bind(this,function(b){e(b)}),
mxUtils.bind(this,function(b){null!=d&&d(b)})):e("")};EditorUi.prototype.updateDiagram=function(b){function c(b){var c=new mxCellOverlay(b.image||e.warningImage,b.tooltip,b.align,b.valign,b.offset);c.addListener(mxEvent.CLICK,function(c,f){d.alert(b.tooltip)});return c}var f=null,d=this;if(null!=b&&0<b.length&&(f=mxUtils.parseXml(b),b=null!=f?f.documentElement:null,null!=b&&"updates"==b.nodeName)){var e=this.editor.graph,g=e.getModel();g.beginUpdate();var k=null;try{for(b=b.firstChild;null!=b;){if("update"==
b.nodeName){var n=g.getCell(b.getAttribute("id"));if(null!=n){try{var x=b.getAttribute("value");if(null!=x){var A=mxUtils.parseXml(x).documentElement;if(null!=A)if("1"==A.getAttribute("replace-value"))g.setValue(n,A);else for(var z=A.attributes,B=0;B<z.length;B++)e.setAttributeForCell(n,z[B].nodeName,0<z[B].nodeValue.length?z[B].nodeValue:null)}}catch(I){null!=window.console&&console.log("Error in value for "+n.id+": "+I)}try{var y=b.getAttribute("style");null!=y&&e.model.setStyle(n,y)}catch(I){null!=
-window.console&&console.log("Error in style for "+n.id+": "+I)}try{var C=b.getAttribute("icon");if(null!=C){var E=0<C.length?JSON.parse(C):null;null!=E&&E.append||e.removeCellOverlays(n);null!=E&&e.addCellOverlay(n,c(E))}}catch(I){null!=window.console&&console.log("Error in icon for "+n.id+": "+I)}try{var G=b.getAttribute("geometry");if(null!=G){var G=JSON.parse(G),F=e.getCellGeometry(n);if(null!=F){F=F.clone();for(key in G){var D=parseFloat(G[key]);"dx"==key?F.x+=D:"dy"==key?F.y+=D:"dw"==key?F.width+=
-D:"dh"==key?F.height+=D:F[key]=parseFloat(G[key])}e.model.setGeometry(n,F)}}}catch(I){null!=window.console&&console.log("Error in icon for "+n.id+": "+I)}}}else if("model"==b.nodeName){for(var H=b.firstChild;null!=H&&H.nodeType!=mxConstants.NODETYPE_ELEMENT;)H=H.nextSibling;null!=H&&(new mxCodec(b.firstChild)).decode(H,g)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(e.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))e.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||
+window.console&&console.log("Error in style for "+n.id+": "+I)}try{var C=b.getAttribute("icon");if(null!=C){var F=0<C.length?JSON.parse(C):null;null!=F&&F.append||e.removeCellOverlays(n);null!=F&&e.addCellOverlay(n,c(F))}}catch(I){null!=window.console&&console.log("Error in icon for "+n.id+": "+I)}try{var G=b.getAttribute("geometry");if(null!=G){var G=JSON.parse(G),E=e.getCellGeometry(n);if(null!=E){E=E.clone();for(key in G){var D=parseFloat(G[key]);"dx"==key?E.x+=D:"dy"==key?E.y+=D:"dw"==key?E.width+=
+D:"dh"==key?E.height+=D:E[key]=parseFloat(G[key])}e.model.setGeometry(n,E)}}}catch(I){null!=window.console&&console.log("Error in icon for "+n.id+": "+I)}}}else if("model"==b.nodeName){for(var H=b.firstChild;null!=H&&H.nodeType!=mxConstants.NODETYPE_ELEMENT;)H=H.nextSibling;null!=H&&(new mxCodec(b.firstChild)).decode(H,g)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(e.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))e.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||
0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(k=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):1);b=b.nextSibling}}finally{g.endUpdate()}null!=k&&this.chromelessResize&&this.chromelessResize(!0,k)}return f};EditorUi.prototype.getCopyFilename=function(b,c){var f=null!=b&&null!=b.getTitle()?b.getTitle():this.defaultFilename,d="",e=f.lastIndexOf(".");0<=e&&(d=f.substring(e),f=f.substring(0,e));if(c)var l=new Date,e=l.getFullYear(),g=l.getMonth()+1,k=l.getDate(),
n=l.getHours(),A=l.getMinutes(),l=l.getSeconds(),f=f+(" "+(e+"-"+g+"-"+k+"-"+n+"-"+A+"-"+l));return f=mxResources.get("copyOf",[f])+d};EditorUi.prototype.fileLoaded=function(b,c){var f=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var d=!1;this.hideDialog();null!=f&&(EditorUi.debug("File.closed",[f]),f.removeListener(this.descriptorChangedListener),f.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var e=mxUtils.bind(this,function(){this.setGraphEnabled(!1);
this.setCurrentFile(null);null!=f&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);!c&&null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();c||this.showSplash()});if(null!=b)try{mxClient.IS_SF&&"min"==uiTheme&&(this.diagramContainer.style.visibility=
@@ -10662,18 +10662,18 @@ this.libraryLoaded(b,d,f.documentElement.getAttribute("title"),c)}else throw{mes
null,m=mxUtils.bind(this,function(c,f){0==c.length&&b.isEditable()?(null==l&&(l=document.createElement("div"),l.className="geDropTarget",mxUtils.write(l,mxResources.get("dragElementsHere"))),f.appendChild(l)):this.addLibraryEntries(c,f)});null!=this.sidebar&&null!=c&&this.sidebar.addEntries(c);d=null!=d&&0<d.length?d:b.getTitle();var g=this.sidebar.addPalette(b.getHash(),d,null!=e?e:!0,mxUtils.bind(this,function(b){m(c,b)}));this.repositionLibrary(f);var k=g.parentNode.previousSibling;e=k.getAttribute("title");
null!=e&&0<e.length&&".scratchpad"!=b.title&&k.setAttribute("title",this.getLibraryStorageHint(b)+"\n"+e);var p=document.createElement("div");p.style.position="absolute";p.style.right="0px";p.style.top="0px";p.style.padding="8px";p.style.backgroundColor="inherit";k.style.position="relative";var n=document.createElement("img");n.setAttribute("src",Editor.crossImage);n.setAttribute("title",mxResources.get("close"));n.setAttribute("valign","absmiddle");n.setAttribute("border","0");n.style.position="relative";
n.style.top="2px";n.style.width="14px";n.style.cursor="pointer";n.style.margin="0 3px";Editor.isDarkMode()&&(n.style.filter="invert(100%)");var B=null;if(".scratchpad"!=b.title||this.closableScratchpad)p.appendChild(n),mxEvent.addListener(n,"click",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c)){var f=mxUtils.bind(this,function(){this.closeLibrary(b)});null!=B?this.confirm(mxResources.get("allChangesLost"),null,f,mxResources.get("cancel"),mxResources.get("discardChanges")):f();mxEvent.consume(c)}}));
-if(b.isEditable()){var y=this.editor.graph,C=null,E=mxUtils.bind(this,function(f){this.showLibraryDialog(b.getTitle(),g,c,b,b.getMode());mxEvent.consume(f)}),G=mxUtils.bind(this,function(f){b.setModified(!0);b.isAutosave()?(null!=C&&null!=C.parentNode&&C.parentNode.removeChild(C),C=n.cloneNode(!1),C.setAttribute("src",Editor.spinImage),C.setAttribute("title",mxResources.get("saving")),C.style.cursor="default",C.style.marginRight="2px",C.style.marginTop="-2px",p.insertBefore(C,p.firstChild),k.style.paddingRight=
+if(b.isEditable()){var y=this.editor.graph,C=null,F=mxUtils.bind(this,function(f){this.showLibraryDialog(b.getTitle(),g,c,b,b.getMode());mxEvent.consume(f)}),G=mxUtils.bind(this,function(f){b.setModified(!0);b.isAutosave()?(null!=C&&null!=C.parentNode&&C.parentNode.removeChild(C),C=n.cloneNode(!1),C.setAttribute("src",Editor.spinImage),C.setAttribute("title",mxResources.get("saving")),C.style.cursor="default",C.style.marginRight="2px",C.style.marginTop="-2px",p.insertBefore(C,p.firstChild),k.style.paddingRight=
18*p.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=C&&null!=C.parentNode&&(C.parentNode.removeChild(C),k.style.paddingRight=18*p.childNodes.length+"px")})):null==B&&(B=n.cloneNode(!1),B.setAttribute("src",Editor.saveImage),B.setAttribute("title",mxResources.get("save")),p.insertBefore(B,p.firstChild),mxEvent.addListener(B,"click",mxUtils.bind(this,function(f){this.saveLibrary(b.getTitle(),c,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==
-B||b.isModified()||(k.style.paddingRight=18*p.childNodes.length+"px",B.parentNode.removeChild(B),B=null)});mxEvent.consume(f)})),k.style.paddingRight=18*p.childNodes.length+"px")}),F=mxUtils.bind(this,function(b,f,d,e){b=y.cloneCells(mxUtils.sortCells(y.model.getTopmostCells(b)));for(var m=0;m<b.length;m++){var k=y.getCellGeometry(b[m]);null!=k&&k.translate(-f.x,-f.y)}g.appendChild(this.sidebar.createVertexTemplateFromCells(b,f.width,f.height,e||"",!0,!1,!1));b={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),
+B||b.isModified()||(k.style.paddingRight=18*p.childNodes.length+"px",B.parentNode.removeChild(B),B=null)});mxEvent.consume(f)})),k.style.paddingRight=18*p.childNodes.length+"px")}),E=mxUtils.bind(this,function(b,f,d,e){b=y.cloneCells(mxUtils.sortCells(y.model.getTopmostCells(b)));for(var m=0;m<b.length;m++){var k=y.getCellGeometry(b[m]);null!=k&&k.translate(-f.x,-f.y)}g.appendChild(this.sidebar.createVertexTemplateFromCells(b,f.width,f.height,e||"",!0,!1,!1));b={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),
w:f.width,h:f.height};null!=e&&(b.title=e);c.push(b);G(d);null!=l&&null!=l.parentNode&&0<c.length&&(l.parentNode.removeChild(l),l=null)}),D=mxUtils.bind(this,function(b){if(y.isSelectionEmpty())y.getRubberband().isActive()?(y.getRubberband().execute(b),y.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var c=y.getSelectionCells(),f=y.view.getBounds(c),d=y.view.scale;f.x/=d;f.y/=d;f.width/=d;f.height/=d;f.x-=y.view.translate.x;
-f.y-=y.view.translate.y;F(c,f)}mxEvent.consume(b)});mxEvent.addGestureListeners(g,function(){},mxUtils.bind(this,function(b){y.isMouseDown&&null!=y.panningManager&&null!=y.graphHandler.first&&(y.graphHandler.suspend(),null!=y.graphHandler.hint&&(y.graphHandler.hint.style.visibility="hidden"),g.style.backgroundColor="#f1f3f4",g.style.cursor="copy",y.panningManager.stop(),y.autoScroll=!1,mxEvent.consume(b))}),mxUtils.bind(this,function(b){y.isMouseDown&&null!=y.panningManager&&null!=y.graphHandler&&
+f.y-=y.view.translate.y;E(c,f)}mxEvent.consume(b)});mxEvent.addGestureListeners(g,function(){},mxUtils.bind(this,function(b){y.isMouseDown&&null!=y.panningManager&&null!=y.graphHandler.first&&(y.graphHandler.suspend(),null!=y.graphHandler.hint&&(y.graphHandler.hint.style.visibility="hidden"),g.style.backgroundColor="#f1f3f4",g.style.cursor="copy",y.panningManager.stop(),y.autoScroll=!1,mxEvent.consume(b))}),mxUtils.bind(this,function(b){y.isMouseDown&&null!=y.panningManager&&null!=y.graphHandler&&
(g.style.backgroundColor="",g.style.cursor="default",this.sidebar.showTooltips=!0,y.panningManager.stop(),y.graphHandler.reset(),y.isMouseDown=!1,y.autoScroll=!0,D(b),mxEvent.consume(b))}));mxEvent.addListener(g,"mouseleave",mxUtils.bind(this,function(b){y.isMouseDown&&null!=y.graphHandler.first&&(y.graphHandler.resume(),null!=y.graphHandler.hint&&(y.graphHandler.hint.style.visibility="visible"),g.style.backgroundColor="",g.style.cursor="",y.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(g,
"dragover",mxUtils.bind(this,function(b){g.style.backgroundColor="#f1f3f4";b.dataTransfer.dropEffect="copy";g.style.cursor="copy";this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()})),mxEvent.addListener(g,"drop",mxUtils.bind(this,function(b){g.style.cursor="";g.style.backgroundColor="";0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(f,d,e,k,p,n,q,t,y){if(null!=f&&"image/"==d.substring(0,6))f="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+
-this.convertDataUri(f),f=[new mxCell("",new mxGeometry(0,0,p,n),f)],f[0].vertex=!0,F(f,new mxRectangle(0,0,p,n),b,mxEvent.isAltDown(b)?null:q.substring(0,q.lastIndexOf(".")).replace(/_/g," ")),null!=l&&null!=l.parentNode&&0<c.length&&(l.parentNode.removeChild(l),l=null);else{var u=!1,v=mxUtils.bind(this,function(f,d){if(null!=f&&"application/pdf"==d){var e=Editor.extractGraphModelFromPdf(f);null!=e&&0<e.length&&(f=e)}if(null!=f)if(e=mxUtils.parseXml(f),"mxlibrary"==e.documentElement.nodeName)try{var k=
-JSON.parse(mxUtils.getTextContent(e.documentElement));m(k,g);c=c.concat(k);G(b);this.spinner.stop();u=!0}catch(ca){}else if("mxfile"==e.documentElement.nodeName)try{for(var p=e.documentElement.getElementsByTagName("diagram"),k=0;k<p.length;k++){var n=this.stringToCells(Editor.getDiagramNodeXml(p[k])),q=this.editor.graph.getBoundingBoxFromGeometry(n);F(n,new mxRectangle(0,0,q.width,q.height),b)}u=!0}catch(ca){null!=window.console&&console.log("error in drop handler:",ca)}u||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
+this.convertDataUri(f),f=[new mxCell("",new mxGeometry(0,0,p,n),f)],f[0].vertex=!0,E(f,new mxRectangle(0,0,p,n),b,mxEvent.isAltDown(b)?null:q.substring(0,q.lastIndexOf(".")).replace(/_/g," ")),null!=l&&null!=l.parentNode&&0<c.length&&(l.parentNode.removeChild(l),l=null);else{var u=!1,v=mxUtils.bind(this,function(f,d){if(null!=f&&"application/pdf"==d){var e=Editor.extractGraphModelFromPdf(f);null!=e&&0<e.length&&(f=e)}if(null!=f)if(e=mxUtils.parseXml(f),"mxlibrary"==e.documentElement.nodeName)try{var k=
+JSON.parse(mxUtils.getTextContent(e.documentElement));m(k,g);c=c.concat(k);G(b);this.spinner.stop();u=!0}catch(ca){}else if("mxfile"==e.documentElement.nodeName)try{for(var p=e.documentElement.getElementsByTagName("diagram"),k=0;k<p.length;k++){var n=this.stringToCells(Editor.getDiagramNodeXml(p[k])),q=this.editor.graph.getBoundingBoxFromGeometry(n);E(n,new mxRectangle(0,0,q.width,q.height),b)}u=!0}catch(ca){null!=window.console&&console.log("error in drop handler:",ca)}u||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
null!=l&&null!=l.parentNode&&0<c.length&&(l.parentNode.removeChild(l),l=null)});null!=y&&null!=q&&(/(\.v(dx|sdx?))($|\?)/i.test(q)||/(\.vs(x|sx?))($|\?)/i.test(q))?this.importVisio(y,function(b){v(b,"text/xml")},null,q):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(f,q)&&null!=y?this.parseFile(y,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?v(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status?
-"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):v(f,d)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(g,"dragleave",function(b){g.style.cursor="";g.style.backgroundColor="";b.stopPropagation();b.preventDefault()}));n=n.cloneNode(!1);n.setAttribute("src",Editor.editImage);n.setAttribute("title",mxResources.get("edit"));p.insertBefore(n,p.firstChild);mxEvent.addListener(n,"click",E);mxEvent.addListener(g,"dblclick",function(b){mxEvent.getSource(b)==
-g&&E(b)});e=n.cloneNode(!1);e.setAttribute("src",Editor.plusImage);e.setAttribute("title",mxResources.get("add"));p.insertBefore(e,p.firstChild);mxEvent.addListener(e,"click",D);this.isOffline()||".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(e=document.createElement("span"),e.setAttribute("title",mxResources.get("help")),e.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;cursor:pointer;",mxUtils.write(e,"?"),mxEvent.addGestureListeners(e,mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);
+"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):v(f,d)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(g,"dragleave",function(b){g.style.cursor="";g.style.backgroundColor="";b.stopPropagation();b.preventDefault()}));n=n.cloneNode(!1);n.setAttribute("src",Editor.editImage);n.setAttribute("title",mxResources.get("edit"));p.insertBefore(n,p.firstChild);mxEvent.addListener(n,"click",F);mxEvent.addListener(g,"dblclick",function(b){mxEvent.getSource(b)==
+g&&F(b)});e=n.cloneNode(!1);e.setAttribute("src",Editor.plusImage);e.setAttribute("title",mxResources.get("add"));p.insertBefore(e,p.firstChild);mxEvent.addListener(e,"click",D);this.isOffline()||".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(e=document.createElement("span"),e.setAttribute("title",mxResources.get("help")),e.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;cursor:pointer;",mxUtils.write(e,"?"),mxEvent.addGestureListeners(e,mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);
mxEvent.consume(b)})),p.insertBefore(e,p.firstChild))}k.appendChild(p);k.style.paddingRight=18*p.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(b,c){for(var f=0;f<b.length;f++){var d=b[f],e=d.data;if(null!=e){var e=this.convertDataUri(e),l="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(l+="aspect=fixed;");c.appendChild(this.sidebar.createVertexTemplate(l+"image="+e,d.w,d.h,"",d.title||"",!1,!1,!0))}else null!=d.xml&&(e=this.stringToCells(Graph.decompress(d.xml)),
0<e.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(e,d.w,d.h,d.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=function(b){return null!=b?b[mxLanguage]||b.main:null};EditorUi.prototype.footerHeight=0;"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64);EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground="linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",
Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38):Editor.isDarkMode()&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor=Editor.darkColor,Format.inactiveTabBackgroundColor="black",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor=Editor.darkColor,Graph.prototype.defaultForegroundColor="#f0f0f0",Graph.prototype.defaultPageBorderColor=
@@ -10703,7 +10703,7 @@ f.textarea.style.height="380px";this.showDialog(f.container,620,460,!0,!0,null,n
k=65==(l?parseInt(l[2],10):!1)?!1:k}if(k||this.isOffline()){f.href=URL.createObjectURL(e?this.base64ToBlob(b,d):new Blob([b],{type:d}));k?f.download=c:f.setAttribute("target","_blank");document.body.appendChild(f);try{window.setTimeout(function(){URL.revokeObjectURL(f.href)},2E4),f.click(),f.parentNode.removeChild(f)}catch(x){}}else this.createEchoRequest(b,c,d,e,g).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(b,c,d,e,g,k){b="xml="+encodeURIComponent(b);return new mxXmlRequest(SAVE_URL,
b+(null!=d?"&mime="+d:"")+(null!=g?"&format="+g:"")+(null!=k?"&base64="+k:"")+(null!=c?"&filename="+encodeURIComponent(c):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(b,c){c=c||"";for(var f=atob(b),d=f.length,e=Math.ceil(d/1024),l=Array(e),g=0;g<e;++g){for(var k=1024*g,n=Math.min(k+1024,d),A=Array(n-k),z=0;k<n;++z,++k)A[z]=f[k].charCodeAt(0);l[g]=new Uint8Array(A)}return new Blob(l,{type:c})};EditorUi.prototype.saveLocalFile=function(b,c,d,e,g,k,n,v){k=null!=k?k:!1;n=null!=n?
n:"vsdx"!=g&&(!mxClient.IS_IOS||!navigator.standalone);g=this.getServiceCount(k);isLocalStorage&&g++;var f=4>=g?2:6<g?4:3;c=new CreateDialog(this,c,mxUtils.bind(this,function(c,f){try{if("_blank"==f)if(null!=d&&"image/"==d.substring(0,6))this.openInNewWindow(b,d,e);else if(null!=d&&"text/html"==d.substring(0,9)){var l=new EmbedDialog(this,b);this.showDialog(l.container,450,240,!0,!0);l.init()}else{var m=window.open("about:blank");null==m?mxUtils.popup(b,!0):(m.document.write("<pre>"+mxUtils.htmlEntities(b,
-!1)+"</pre>"),m.document.close())}else f==App.MODE_DEVICE||"download"==f?this.doSaveLocalFile(b,c,d,e,null,v):null!=c&&0<c.length&&this.pickFolder(f,mxUtils.bind(this,function(l){try{this.exportFile(b,c,d,e,f,l)}catch(E){this.handleError(E)}}))}catch(C){this.handleError(C)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,k,n,null,1<g,f,b,d,e);k=this.isServices(g)?g>f?390:270:160;this.showDialog(c.container,420,k,!0,!0);c.init()};EditorUi.prototype.openInNewWindow=
+!1)+"</pre>"),m.document.close())}else f==App.MODE_DEVICE||"download"==f?this.doSaveLocalFile(b,c,d,e,null,v):null!=c&&0<c.length&&this.pickFolder(f,mxUtils.bind(this,function(l){try{this.exportFile(b,c,d,e,f,l)}catch(F){this.handleError(F)}}))}catch(C){this.handleError(C)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,k,n,null,1<g,f,b,d,e);k=this.isServices(g)?g>f?390:270:160;this.showDialog(c.container,420,k,!0,!0);c.init()};EditorUi.prototype.openInNewWindow=
function(b,c,d){var f=window.open("about:blank");null==f||null==f.document?mxUtils.popup(b,!0):("image/svg+xml"!=c||mxClient.IS_SVG?"image/svg+xml"==c?f.document.write("<html>"+b+"</html>"):(b=d?b:btoa(unescape(encodeURIComponent(b))),f.document.write('<html><img style="max-width:100%;" src="data:'+c+";base64,"+b+'"/></html>')):f.document.write("<html><pre>"+mxUtils.htmlEntities(b,!1)+"</pre></html>"),f.document.close())};var c=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.isChromelessImageExportEnabled=
function(){return"draw.io"!=this.getServiceName()||/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname)};EditorUi.prototype.addChromelessToolbarItems=function(b){if(null!=urlParams.tags){this.tagsDialog=this.tagsComponent=null;var f=b(mxUtils.bind(this,function(b){null==this.tagsComponent&&(this.tagsComponent=this.editor.graph.createTagsDialog(mxUtils.bind(this,function(){return null!=this.tagsDialog}),!0),this.tagsComponent.div.getElementsByTagName("div")[0].style.position=
"",mxUtils.setPrefixedStyle(this.tagsComponent.div.style,"borderRadius","5px"),this.tagsComponent.div.className="geScrollable",this.tagsComponent.div.style.maxHeight="160px",this.tagsComponent.div.style.maxWidth="120px",this.tagsComponent.div.style.padding="4px",this.tagsComponent.div.style.overflow="auto",this.tagsComponent.div.style.height="auto",this.tagsComponent.div.style.position="fixed",this.tagsComponent.div.style.fontFamily=Editor.defaultHtmlFont,mxClient.IS_IE||mxClient.IS_IE11?(this.tagsComponent.div.style.backgroundColor=
@@ -10737,28 +10737,28 @@ c,d,e,g,k,x);b=this.getCurrentFile();c=!0;null!=n?d="#U"+encodeURIComponent(n):(
"nowrap";var l=document.createElement("h3");mxUtils.write(l,mxResources.get("html"));l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(l);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var m=document.createElement("input");m.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";m.setAttribute("value","url");m.setAttribute("type","radio");m.setAttribute("name","type-embedhtmldialog");
l=m.cloneNode(!0);l.setAttribute("value","copy");g.appendChild(l);var k=document.createElement("span");mxUtils.write(k,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(k);mxUtils.br(g);g.appendChild(m);k=document.createElement("span");mxUtils.write(k,mxResources.get("publicDiagramUrl"));g.appendChild(k);var p=this.getCurrentFile();null==d&&null!=p&&p.constructor==window.DriveFile&&(k=document.createElement("a"),k.style.paddingLeft="12px",k.style.color="gray",k.style.cursor="pointer",mxUtils.write(k,
mxResources.get("share")),g.appendChild(k),mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(p.getId())})));l.setAttribute("checked","checked");null==d&&m.setAttribute("disabled","disabled");f.appendChild(g);var n=this.addLinkSection(f),B=this.addCheckbox(f,mxResources.get("zoom"),!0,null,!0);mxUtils.write(f,":");var y=document.createElement("input");y.setAttribute("type","text");y.style.marginRight="16px";y.style.width="60px";y.style.marginLeft=
-"4px";y.style.marginRight="12px";y.value="100%";f.appendChild(y);var C=this.addCheckbox(f,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,E=E=this.addCheckbox(f,mxResources.get("allPages"),g,!g),G=this.addCheckbox(f,mxResources.get("layers"),!0),F=this.addCheckbox(f,mxResources.get("tags"),!0),D=this.addCheckbox(f,mxResources.get("lightbox"),!0),H=this.addEditButton(f,D),I=H.getEditInput();I.style.marginBottom="16px";mxEvent.addListener(D,"change",function(){D.checked?I.removeAttribute("disabled"):
-I.setAttribute("disabled","disabled");I.checked&&D.checked?H.getEditSelect().removeAttribute("disabled"):H.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){e(m.checked?d:null,B.checked,y.value,n.getTarget(),n.getColor(),C.checked,E.checked,G.checked,F.checked,D.checked,H.getLink())}),null,b,c);this.showDialog(b.container,340,430,!0,!0);l.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,d,e,g,k){var f=document.createElement("div");
-f.style.whiteSpace="nowrap";var l=document.createElement("h3");mxUtils.write(l,b||mxResources.get("link"));l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(l);var m=this.getCurrentFile(),l="https://www.diagrams.net/doc/faq/publish-diagram-as-link";b=0;if(null!=m&&m.constructor==window.DriveFile&&!c){b=80;var l="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",p=document.createElement("div");p.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
-var n=document.createElement("div");n.style.whiteSpace="normal";mxUtils.write(n,mxResources.get("linkAccountRequired"));p.appendChild(n);n=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(m.getId())}));n.style.marginTop="12px";n.className="geBtn";p.appendChild(n);f.appendChild(p);n=document.createElement("a");n.style.paddingLeft="12px";n.style.color="gray";n.style.fontSize="11px";n.style.cursor="pointer";mxUtils.write(n,mxResources.get("check"));p.appendChild(n);
-mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(b.container,300,80,!0,!1);b.init()}))}))}var q=null,t=null;if(null!=d||null!=e)b+=30,mxUtils.write(f,mxResources.get("width")+":"),q=document.createElement("input"),
-q.setAttribute("type","text"),q.style.marginRight="16px",q.style.width="50px",q.style.marginLeft="6px",q.style.marginRight="16px",q.style.marginBottom="10px",q.value="100%",f.appendChild(q),mxUtils.write(f,mxResources.get("height")+":"),t=document.createElement("input"),t.setAttribute("type","text"),t.style.width="50px",t.style.marginLeft="6px",t.style.marginBottom="10px",t.value=e+"px",f.appendChild(t),mxUtils.br(f);var C=this.addLinkSection(f,k);d=null!=this.pages&&1<this.pages.length;var E=null;
-if(null==m||m.constructor!=window.DriveFile||c)E=this.addCheckbox(f,mxResources.get("allPages"),d,!d);var G=this.addCheckbox(f,mxResources.get("lightbox"),!0,null,null,!k),F=this.addEditButton(f,G),D=F.getEditInput();k&&(D.style.marginLeft=G.style.marginLeft,G.style.display="none",b-=20);var H=this.addCheckbox(f,mxResources.get("layers"),!0);H.style.marginLeft=D.style.marginLeft;H.style.marginTop="8px";var I=this.addCheckbox(f,mxResources.get("tags"),!0);I.style.marginLeft=D.style.marginLeft;I.style.marginBottom=
-"16px";I.style.marginTop="16px";mxEvent.addListener(G,"change",function(){G.checked?(H.removeAttribute("disabled"),D.removeAttribute("disabled")):(H.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"));D.checked&&G.checked?F.getEditSelect().removeAttribute("disabled"):F.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,f,mxUtils.bind(this,function(){g(C.getTarget(),C.getColor(),null==E?!0:E.checked,G.checked,F.getLink(),H.checked,null!=q?q.value:null,
-null!=t?t.value:null,I.checked)}),null,mxResources.get("create"),l);this.showDialog(c.container,340,300+b,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)):C.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,d,e,g){var f=document.createElement("div");f.style.whiteSpace="nowrap";var l=document.createElement("h3");mxUtils.write(l,mxResources.get("image"));l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+
+"4px";y.style.marginRight="12px";y.value="100%";f.appendChild(y);var C=this.addCheckbox(f,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,F=F=this.addCheckbox(f,mxResources.get("allPages"),g,!g),G=this.addCheckbox(f,mxResources.get("layers"),!0),E=this.addCheckbox(f,mxResources.get("tags"),!0),D=this.addCheckbox(f,mxResources.get("lightbox"),!0),H=this.addEditButton(f,D),I=H.getEditInput();I.style.marginBottom="16px";mxEvent.addListener(D,"change",function(){D.checked?I.removeAttribute("disabled"):
+I.setAttribute("disabled","disabled");I.checked&&D.checked?H.getEditSelect().removeAttribute("disabled"):H.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){e(m.checked?d:null,B.checked,y.value,n.getTarget(),n.getColor(),C.checked,F.checked,G.checked,E.checked,D.checked,H.getLink())}),null,b,c);this.showDialog(b.container,340,430,!0,!0);l.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,d,e,g,k,n){var f=document.createElement("div");
+f.style.whiteSpace="nowrap";var l=document.createElement("h3");mxUtils.write(l,b||mxResources.get("link"));l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(l);var m=this.getCurrentFile();b=0;if(null==m||m.constructor!=window.DriveFile||c)n=null!=n?n:"https://www.diagrams.net/doc/faq/publish-diagram-as-link";else{b=80;n=null!=n?n:"https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram";l=document.createElement("div");l.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
+var p=document.createElement("div");p.style.whiteSpace="normal";mxUtils.write(p,mxResources.get("linkAccountRequired"));l.appendChild(p);p=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(m.getId())}));p.style.marginTop="12px";p.className="geBtn";l.appendChild(p);f.appendChild(l);p=document.createElement("a");p.style.paddingLeft="12px";p.style.color="gray";p.style.fontSize="11px";p.style.cursor="pointer";mxUtils.write(p,mxResources.get("check"));l.appendChild(p);
+mxEvent.addListener(p,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(b.container,300,80,!0,!1);b.init()}))}))}var q=null,t=null;if(null!=d||null!=e)b+=30,mxUtils.write(f,mxResources.get("width")+":"),q=document.createElement("input"),
+q.setAttribute("type","text"),q.style.marginRight="16px",q.style.width="50px",q.style.marginLeft="6px",q.style.marginRight="16px",q.style.marginBottom="10px",q.value="100%",f.appendChild(q),mxUtils.write(f,mxResources.get("height")+":"),t=document.createElement("input"),t.setAttribute("type","text"),t.style.width="50px",t.style.marginLeft="6px",t.style.marginBottom="10px",t.value=e+"px",f.appendChild(t),mxUtils.br(f);var u=this.addLinkSection(f,k);d=null!=this.pages&&1<this.pages.length;var F=null;
+if(null==m||m.constructor!=window.DriveFile||c)F=this.addCheckbox(f,mxResources.get("allPages"),d,!d);var G=this.addCheckbox(f,mxResources.get("lightbox"),!0,null,null,!k),E=this.addEditButton(f,G),D=E.getEditInput();k&&(D.style.marginLeft=G.style.marginLeft,G.style.display="none",b-=20);var H=this.addCheckbox(f,mxResources.get("layers"),!0);H.style.marginLeft=D.style.marginLeft;H.style.marginTop="8px";var I=this.addCheckbox(f,mxResources.get("tags"),!0);I.style.marginLeft=D.style.marginLeft;I.style.marginBottom=
+"16px";I.style.marginTop="16px";mxEvent.addListener(G,"change",function(){G.checked?(H.removeAttribute("disabled"),D.removeAttribute("disabled")):(H.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"));D.checked&&G.checked?E.getEditSelect().removeAttribute("disabled"):E.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,f,mxUtils.bind(this,function(){g(u.getTarget(),u.getColor(),null==F?!0:F.checked,G.checked,E.getLink(),H.checked,null!=q?q.value:null,
+null!=t?t.value:null,I.checked)}),null,mxResources.get("create"),n);this.showDialog(c.container,340,300+b,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)):u.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,d,e,g){var f=document.createElement("div");f.style.whiteSpace="nowrap";var l=document.createElement("h3");mxUtils.write(l,mxResources.get("image"));l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+
(g?"10":"4")+"px";f.appendChild(l);if(g){mxUtils.write(f,mxResources.get("zoom")+":");var m=document.createElement("input");m.setAttribute("type","text");m.style.marginRight="16px";m.style.width="60px";m.style.marginLeft="4px";m.style.marginRight="12px";m.value=this.lastExportZoom||"100%";f.appendChild(m);mxUtils.write(f,mxResources.get("borderWidth")+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.marginRight="16px";k.style.width="60px";k.style.marginLeft="4px";k.value=
this.lastExportBorder||"0";f.appendChild(k);mxUtils.br(f)}var p=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),n=e?null:this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),Editor.defaultIncludeDiagram),l=this.editor.graph,q=e?null:this.addCheckbox(f,mxResources.get("transparentBackground"),l.background==mxConstants.NONE||null==l.background);null!=q&&(q.style.marginBottom="16px");b=new CustomDialog(this,f,mxUtils.bind(this,function(){var b=parseInt(m.value)/
100||1,c=parseInt(k.value)||0;d(!p.checked,null!=n?n.checked:!1,null!=q?q.checked:!1,b,c)}),null,b,c);this.showDialog(b.container,300,(g?25:0)+(e?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(b,c,d,e,g,k,n,v,x){n=null!=n?n:Editor.defaultIncludeDiagram;var f=document.createElement("div");f.style.whiteSpace="nowrap";var l=this.editor.graph,m="jpeg"==v?220:300,p=document.createElement("h3");mxUtils.write(p,b);p.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";
f.appendChild(p);mxUtils.write(f,mxResources.get("zoom")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight="12px";q.value=this.lastExportZoom||"100%";f.appendChild(q);mxUtils.write(f,mxResources.get("borderWidth")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.value=this.lastExportBorder||
-"0";f.appendChild(t);mxUtils.br(f);var u=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,l.isSelectionEmpty()),F=document.createElement("input");F.style.marginTop="16px";F.style.marginRight="8px";F.style.marginLeft="24px";F.setAttribute("disabled","disabled");F.setAttribute("type","checkbox");var D=document.createElement("select");D.style.marginTop="16px";D.style.marginLeft="8px";b=["selectionOnly","diagram","page"];for(p=0;p<b.length;p++)if(!l.isSelectionEmpty()||"selectionOnly"!=b[p]){var H=
-document.createElement("option");mxUtils.write(H,mxResources.get(b[p]));H.setAttribute("value",b[p]);D.appendChild(H)}x?(mxUtils.write(f,mxResources.get("size")+":"),f.appendChild(D),mxUtils.br(f),m+=26,mxEvent.addListener(D,"change",function(){"selectionOnly"==D.value&&(u.checked=!0)})):k&&(f.appendChild(F),mxUtils.write(f,mxResources.get("crop")),mxUtils.br(f),m+=30,mxEvent.addListener(u,"change",function(){u.checked?F.removeAttribute("disabled"):F.setAttribute("disabled","disabled")}));l.isSelectionEmpty()?
-x&&(u.style.display="none",u.nextSibling.style.display="none",u.nextSibling.nextSibling.style.display="none",m-=30):(D.value="diagram",F.setAttribute("checked","checked"),F.defaultChecked=!0,mxEvent.addListener(u,"change",function(){D.value=u.checked?"selectionOnly":"diagram"}));var I=this.addCheckbox(f,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=v),L=null;Editor.isDarkMode()&&(L=this.addCheckbox(f,mxResources.get("dark"),!0),m+=26);var M=this.addCheckbox(f,mxResources.get("shadow"),
+"0";f.appendChild(t);mxUtils.br(f);var u=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,l.isSelectionEmpty()),E=document.createElement("input");E.style.marginTop="16px";E.style.marginRight="8px";E.style.marginLeft="24px";E.setAttribute("disabled","disabled");E.setAttribute("type","checkbox");var D=document.createElement("select");D.style.marginTop="16px";D.style.marginLeft="8px";b=["selectionOnly","diagram","page"];for(p=0;p<b.length;p++)if(!l.isSelectionEmpty()||"selectionOnly"!=b[p]){var H=
+document.createElement("option");mxUtils.write(H,mxResources.get(b[p]));H.setAttribute("value",b[p]);D.appendChild(H)}x?(mxUtils.write(f,mxResources.get("size")+":"),f.appendChild(D),mxUtils.br(f),m+=26,mxEvent.addListener(D,"change",function(){"selectionOnly"==D.value&&(u.checked=!0)})):k&&(f.appendChild(E),mxUtils.write(f,mxResources.get("crop")),mxUtils.br(f),m+=30,mxEvent.addListener(u,"change",function(){u.checked?E.removeAttribute("disabled"):E.setAttribute("disabled","disabled")}));l.isSelectionEmpty()?
+x&&(u.style.display="none",u.nextSibling.style.display="none",u.nextSibling.nextSibling.style.display="none",m-=30):(D.value="diagram",E.setAttribute("checked","checked"),E.defaultChecked=!0,mxEvent.addListener(u,"change",function(){D.value=u.checked?"selectionOnly":"diagram"}));var I=this.addCheckbox(f,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=v),L=null;Editor.isDarkMode()&&(L=this.addCheckbox(f,mxResources.get("dark"),!0),m+=26);var M=this.addCheckbox(f,mxResources.get("shadow"),
l.shadowVisible),Q=document.createElement("input");Q.style.marginTop="16px";Q.style.marginRight="8px";Q.setAttribute("type","checkbox");var P=document.createElement("input");P.style.marginTop="16px";P.style.marginRight="8px";P.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||Q.setAttribute("disabled","disabled");c&&(f.appendChild(Q),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f),f.appendChild(P),mxUtils.write(f,mxResources.get("embedFonts")),mxUtils.br(f),m+=
60);var K=null;if("png"==v||"jpeg"==v)K=this.addCheckbox(f,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),m+=30;var X=this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=v);X.style.marginBottom="16px";var J=document.createElement("select");J.style.maxWidth="260px";J.style.marginLeft="8px";J.style.marginRight="10px";J.className="geBtn";c=document.createElement("option");c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));
J.appendChild(c);c=document.createElement("option");c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("openInNewWindow"));J.appendChild(c);c=document.createElement("option");c.setAttribute("value","self");mxUtils.write(c,mxResources.get("openInThisWindow"));J.appendChild(c);"svg"==v&&(mxUtils.write(f,mxResources.get("links")+":"),f.appendChild(J),mxUtils.br(f),mxUtils.br(f),m+=50);d=new CustomDialog(this,f,mxUtils.bind(this,function(){this.lastExportBorder=t.value;this.lastExportZoom=
-q.value;g(q.value,I.checked,!u.checked,M.checked,X.checked,Q.checked,t.value,F.checked,!1,J.value,null!=K?K.checked:null,null!=L?L.checked:null,D.value,P.checked)}),null,d,e);this.showDialog(d.container,340,m,!0,!0,null,null,null,null,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,d,e,g){var f=document.createElement("div");f.style.whiteSpace="nowrap";var l=this.editor.graph;
-if(null!=c){var m=document.createElement("h3");mxUtils.write(m,c);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";f.appendChild(m)}var k=this.addCheckbox(f,mxResources.get("fit"),!0),p=this.addCheckbox(f,mxResources.get("shadow"),l.shadowVisible&&e,!e),n=this.addCheckbox(f,d),q=this.addCheckbox(f,mxResources.get("lightbox"),!0),y=this.addEditButton(f,q),C=y.getEditInput(),E=1<l.model.getChildCount(l.model.getRoot()),G=this.addCheckbox(f,mxResources.get("layers"),E,
-!E);G.style.marginLeft=C.style.marginLeft;G.style.marginBottom="12px";G.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(E&&G.removeAttribute("disabled"),C.removeAttribute("disabled")):(G.setAttribute("disabled","disabled"),C.setAttribute("disabled","disabled"));C.checked&&q.checked?y.getEditSelect().removeAttribute("disabled"):y.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,f,mxUtils.bind(this,function(){b(k.checked,p.checked,n.checked,q.checked,
+q.value;g(q.value,I.checked,!u.checked,M.checked,X.checked,Q.checked,t.value,E.checked,!1,J.value,null!=K?K.checked:null,null!=L?L.checked:null,D.value,P.checked)}),null,d,e);this.showDialog(d.container,340,m,!0,!0,null,null,null,null,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,d,e,g){var f=document.createElement("div");f.style.whiteSpace="nowrap";var l=this.editor.graph;
+if(null!=c){var m=document.createElement("h3");mxUtils.write(m,c);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";f.appendChild(m)}var k=this.addCheckbox(f,mxResources.get("fit"),!0),p=this.addCheckbox(f,mxResources.get("shadow"),l.shadowVisible&&e,!e),n=this.addCheckbox(f,d),q=this.addCheckbox(f,mxResources.get("lightbox"),!0),y=this.addEditButton(f,q),C=y.getEditInput(),F=1<l.model.getChildCount(l.model.getRoot()),G=this.addCheckbox(f,mxResources.get("layers"),F,
+!F);G.style.marginLeft=C.style.marginLeft;G.style.marginBottom="12px";G.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(F&&G.removeAttribute("disabled"),C.removeAttribute("disabled")):(G.setAttribute("disabled","disabled"),C.setAttribute("disabled","disabled"));C.checked&&q.checked?y.getEditSelect().removeAttribute("disabled"):y.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,f,mxUtils.bind(this,function(){b(k.checked,p.checked,n.checked,q.checked,
y.getLink(),G.checked)}),null,mxResources.get("embed"),g);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,d,e,g,k,n,v){function f(c){var f=" ",p="";e&&(f=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
EditorUi.lightboxHost+"/?client=1"+(null!=m?"&page="+m:"")+(g?"&edit=_blank":"")+(k?"&layers=1":"")+"');}})(this);\"",p+="cursor:pointer;");b&&(p+="max-width:100%;");var q="";d&&(q=' width="'+Math.round(l.width)+'" height="'+Math.round(l.height)+'"');n('<img src="'+c+'"'+q+(""!=p?' style="'+p+'"':"")+f+"/>")}var l=this.editor.graph.getGraphBounds(),m=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(b){var c=e?this.getFileData(!0):null;b=
this.createImageDataUri(b,c,"png");f(b)}),null,null,null,mxUtils.bind(this,function(b){v({message:mxResources.get("unknownError")})}),null,!0,d?2:1,null,c,null,null,Editor.defaultBorder);else if(c=this.getFileData(!0),l.width*l.height<=MAX_AREA&&c.length<=MAX_REQUEST_SIZE){var p="";d&&(p="&w="+Math.round(2*l.width)+"&h="+Math.round(2*l.height));var q=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+p+"&xml="+encodeURIComponent(c));q.send(mxUtils.bind(this,function(){200<=q.getStatus()&&
@@ -10774,15 +10774,15 @@ arguments)};document.body.appendChild(f.container);f.model.setRoot(p.root)}this.
c(b)}),null,null,e,null,f.shadowVisible,null,f,g,null,null,null,"diagram",null)}catch(z){null!=c&&c(z)}};EditorUi.prototype.getEmbeddedSvg=function(b,c,d,e,g,k,n,v,x,A,z,B,y){v=null!=v?v:!0;z=null!=z?z:0;n=null!=x?x:c.background;n==mxConstants.NONE&&(n=null);k=c.getSvg(n,A,z,null,null,k,null,null,null,c.shadowVisible||B,null,y,"diagram");(c.shadowVisible||B)&&c.addSvgShadow(k,null,null,0==z);null!=b&&k.setAttribute("content",b);null!=d&&k.setAttribute("resource",d);var f=mxUtils.bind(this,function(b){b=
(e?"":Graph.xmlDeclaration+"\n"+Graph.svgFileComment+"\n"+Graph.svgDoctype+"\n")+mxUtils.getXml(b);null!=g&&g(b);return b});c.mathEnabled&&this.editor.addMathCss(k);if(null!=g)this.embedFonts(k,mxUtils.bind(this,function(b){v?this.editor.convertImages(b,mxUtils.bind(this,function(b){f(b)})):f(b)}));else return f(k)};EditorUi.prototype.embedFonts=function(b,c){this.editor.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(b,this.editor.resolvedFontCss),
this.editor.embedExtFonts(mxUtils.bind(this,function(f){try{null!=f&&this.editor.addFontCss(b,f),c(b)}catch(p){c(b)}}))}catch(m){c(b)}}))};EditorUi.prototype.exportImage=function(b,c,d,e,g,k,n,v,x,A,z,B,y){x=null!=x?x:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var f=this.editor.graph.isSelectionEmpty();d=null!=d?d:f;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(b){this.spinner.stop();try{this.saveCanvas(b,
-g?this.getFileData(!0,null,null,null,d,v):null,x,null==this.pages||0==this.pages.length,z)}catch(G){this.handleError(G)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,d,b||1,c,e,null,null,k,n,A,B,y)}catch(E){this.spinner.stop(),this.handleError(E)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,d,e,g,k,n){c=null!=c?c:0;d=null!=d?d:0;var f=[];try{var l=
+g?this.getFileData(!0,null,null,null,d,v):null,x,null==this.pages||0==this.pages.length,z)}catch(G){this.handleError(G)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,d,b||1,c,e,null,null,k,n,A,B,y)}catch(F){this.spinner.stop(),this.handleError(F)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,d,e,g,k,n){c=null!=c?c:0;d=null!=d?d:0;var f=[];try{var l=
this.editor.graph;if(null!=b&&0<b.length){l.model.beginUpdate();try{var m=mxUtils.parseXml(b);b={};var p=this.editor.extractGraphModel(m.documentElement,null!=this.pages);if(null!=p&&"mxfile"==p.nodeName&&null!=this.pages){var q=p.getElementsByTagName("diagram");if(1==q.length&&!k){if(p=Editor.parseDiagramNode(q[0]),null!=this.currentPage&&(b[q[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",
-[1]))){var t=q[0].getAttribute("name");null!=t&&""!=t&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,t))}}else if(0<q.length){k=[];var u=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(b[q[0].getAttribute("id")]=this.pages[0].getId(),p=Editor.parseDiagramNode(q[0]),e=!1,u=1);for(;u<q.length;u++){var E=q[u].getAttribute("id");q[u].removeAttribute("id");var G=this.updatePageRoot(new DiagramPage(q[u]));b[E]=q[u].getAttribute("id");var F=this.pages.length;null==
-G.getName()&&G.setName(mxResources.get("pageWithNumber",[F+1]));l.model.execute(new ChangePage(this,G,G,F,!0));k.push(G)}this.updatePageLinks(b,k)}}if(null!=p&&"mxGraphModel"===p.nodeName&&(f=l.importGraphModel(p,c,d,e),null!=f))for(u=0;u<f.length;u++)this.updatePageLinksForCell(b,f[u]);n&&this.insertHandler(f,null,null,l.defaultVertexStyle,l.defaultEdgeStyle,!1,!0)}finally{l.model.endUpdate()}}}catch(D){if(g)throw D;this.handleError(D)}return f};EditorUi.prototype.updatePageLinks=function(b,c){for(var f=
+[1]))){var t=q[0].getAttribute("name");null!=t&&""!=t&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,t))}}else if(0<q.length){k=[];var u=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(b[q[0].getAttribute("id")]=this.pages[0].getId(),p=Editor.parseDiagramNode(q[0]),e=!1,u=1);for(;u<q.length;u++){var F=q[u].getAttribute("id");q[u].removeAttribute("id");var G=this.updatePageRoot(new DiagramPage(q[u]));b[F]=q[u].getAttribute("id");var E=this.pages.length;null==
+G.getName()&&G.setName(mxResources.get("pageWithNumber",[E+1]));l.model.execute(new ChangePage(this,G,G,E,!0));k.push(G)}this.updatePageLinks(b,k)}}if(null!=p&&"mxGraphModel"===p.nodeName&&(f=l.importGraphModel(p,c,d,e),null!=f))for(u=0;u<f.length;u++)this.updatePageLinksForCell(b,f[u]);n&&this.insertHandler(f,null,null,l.defaultVertexStyle,l.defaultEdgeStyle,!1,!0)}finally{l.model.endUpdate()}}}catch(D){if(g)throw D;this.handleError(D)}return f};EditorUi.prototype.updatePageLinks=function(b,c){for(var f=
0;f<c.length;f++)this.updatePageLinksForCell(b,c[f].root)};EditorUi.prototype.updatePageLinksForCell=function(b,c){var f=document.createElement("div"),d=this.editor.graph,e=d.getLinkForCell(c);null!=e&&d.setLinkForCell(c,this.updatePageLink(b,e));if(d.isHtmlLabel(c)){f.innerHTML=d.sanitizeHtml(d.getLabel(c));for(var l=f.getElementsByTagName("a"),g=!1,k=0;k<l.length;k++)e=l[k].getAttribute("href"),null!=e&&(l[k].setAttribute("href",this.updatePageLink(b,e)),g=!0);g&&d.labelChanged(c,f.innerHTML)}for(k=
0;k<d.model.getChildCount(c);k++)this.updatePageLinksForCell(b,d.model.getChildAt(c,k))};EditorUi.prototype.updatePageLink=function(b,c){if(Graph.isPageLink(c)){var f=b[c.substring(c.indexOf(",")+1)];c=null!=f?"data:page/id,"+f:null}else if("data:action/json,"==c.substring(0,17))try{var d=JSON.parse(c.substring(17));if(null!=d.actions){for(var e=0;e<d.actions.length;e++){var l=d.actions[e];if(null!=l.open&&Graph.isPageLink(l.open)){var g=l.open.substring(l.open.indexOf(",")+1),f=b[g];null!=f?l.open=
"data:page/id,"+f:null==this.getPageById(g)&&delete l.open}}c="data:action/json,"+JSON.stringify(d)}}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,d,e,g){e=null!=e?e:b.name;d=null!=d?d:mxUtils.bind(this,function(b){this.handleError(b)});var f=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var f=this.isRemoteVisioFormat(e);try{var l=
"UNKNOWN-VISIO",k=e.lastIndexOf(".");if(0<=k&&k<e.length)l=e.substring(k+1).toUpperCase();else{var m=e.lastIndexOf("/");0<=m&&m<e.length&&(e=e.substring(m+1))}EditorUi.logEvent({category:l+"-MS-IMPORT-FILE",action:"filename_"+e,label:f?"remote":"local"})}catch(B){}if(f)if(null==VSD_CONVERT_URL||this.isOffline())d({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{f=new FormData;f.append("file1",b,e);var p=new XMLHttpRequest;
-p.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(e)?"?stencil=1":""));p.responseType="blob";this.addRemoteServiceSecurityCheck(p);null!=g&&p.setRequestHeader("x-convert-custom",g);p.onreadystatechange=mxUtils.bind(this,function(){if(4==p.readyState)if(200<=p.status&&299>=p.status)try{var b=p.response;if("text/xml"==b.type){var f=new FileReader;f.onload=mxUtils.bind(this,function(b){try{c(b.target.result)}catch(E){d({message:mxResources.get("errorLoadingFile")})}});f.readAsText(b)}else this.doImportVisio(b,
+p.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(e)?"?stencil=1":""));p.responseType="blob";this.addRemoteServiceSecurityCheck(p);null!=g&&p.setRequestHeader("x-convert-custom",g);p.onreadystatechange=mxUtils.bind(this,function(){if(4==p.readyState)if(200<=p.status&&299>=p.status)try{var b=p.response;if("text/xml"==b.type){var f=new FileReader;f.onload=mxUtils.bind(this,function(b){try{c(b.target.result)}catch(F){d({message:mxResources.get("errorLoadingFile")})}});f.readAsText(b)}else this.doImportVisio(b,
c,d,e)}catch(C){d(C)}else try{""==p.responseType||"text"==p.responseType?d({message:p.responseText}):(f=new FileReader,f.onload=function(){d({message:JSON.parse(f.result).Message})},f.readAsText(p.response))}catch(C){d({})}});p.send(f)}else try{this.doImportVisio(b,c,d,e)}catch(B){d(B)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?f():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",
f))};EditorUi.prototype.importGraphML=function(b,c,d){d=null!=d?d:mxUtils.bind(this,function(b){this.handleError(b)});var f=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportGraphML)try{this.doImportGraphML(b,c,d)}catch(q){d(q)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportGraphML||this.loadingExtensions||this.isOffline(!0)?f():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",f))};EditorUi.prototype.exportVisio=
function(b){var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams(b)||this.handleError({message:mxResources.get("unknownError")})}catch(m){this.handleError(m)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline(!0)?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.convertLucidChart=
@@ -10809,8 +10809,8 @@ function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(
this.loadLibrary(new LocalLibrary(this,b,n)):c=this.importXml(b,d,e,A,null,null!=B?mxEvent.isControlDown(B):null);null!=v&&v(c)});"image"==c.substring(0,5)?(x=!1,"image/png"==c.substring(0,9)&&(c=z?null:this.extractGraphModelFromPng(b),null!=c&&0<c.length&&(l=this.importXml(c,d,e,A,null,null!=B?mxEvent.isControlDown(B):null),x=!0)),x||(c=this.editor.graph,z=b.indexOf(";"),0<z&&(b=b.substring(0,z)+b.substring(b.indexOf(",",z+1))),A&&c.isGridEnabled()&&(d=c.snap(d),e=c.snap(e)),l=[c.insertVertex(null,
null,"",d,e,g,k,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b+";")])):/(\.*<graphml )/.test(b)?(f=!0,this.importGraphML(b,m)):null!=x&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?(f=!0,this.importVisio(x,m)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,n)?(f=!0,this.parseFile(null!=x?x:new Blob([b],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==
b.readyState&&(200<=b.status&&299>=b.status?m(b.responseText):null!=v&&v(null))}),n)):0==b.indexOf("PK")&&null!=x?(f=!0,this.importZipFile(x,m,mxUtils.bind(this,function(){l=this.insertTextAt(this.validateFileData(b),d,e,!0,null,A);v(l)}))):/(\.v(sd|dx))($|\?)/i.test(n)||/(\.vs(s|x))($|\?)/i.test(n)||(l=this.insertTextAt(this.validateFileData(b),d,e,!0,null,A,null,null!=B?mxEvent.isControlDown(B):null));f||null==v||v(l);return l};EditorUi.prototype.importFiles=function(b,c,d,e,g,k,n,v,x,A,z,B,y){e=
-null!=e?e:this.maxImageSize;A=null!=A?A:this.maxImageBytes;var f=null!=c&&null!=d,l=!0;c=null!=c?c:0;d=null!=d?d:0;var m=!1;if(!mxClient.IS_CHROMEAPP&&null!=b)for(var p=z||this.resampleThreshold,q=0;q<b.length;q++)if("image/"==b[q].type.substring(0,6)&&b[q].size>p){m=!0;break}var t=mxUtils.bind(this,function(){var m=this.editor.graph,p=m.gridSize;g=null!=g?g:mxUtils.bind(this,function(b,c,d,e,g,l,k,m,n){try{return null!=b&&"<mxlibrary"==b.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,
-b,k)),null):this.importFile(b,c,d,e,g,l,k,m,n,f,B,y)}catch(pa){return this.handleError(pa),null}});k=null!=k?k:mxUtils.bind(this,function(b){m.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var q=b.length,t=q,u=[],D=mxUtils.bind(this,function(b,c){u[b]=c;if(0==--t){this.spinner.stop();if(null!=v)v(u);else{var d=[];m.getModel().beginUpdate();try{for(var f=0;f<u.length;f++){var e=u[f]();null!=e&&(d=d.concat(e))}}finally{m.getModel().endUpdate()}}k(d)}}),C=
+null!=e?e:this.maxImageSize;A=null!=A?A:this.maxImageBytes;var f=null!=c&&null!=d,l=!0;c=null!=c?c:0;d=null!=d?d:0;var m=!1;if(!mxClient.IS_CHROMEAPP&&null!=b)for(var p=z||this.resampleThreshold,q=0;q<b.length;q++)if("image/"==b[q].type.substring(0,6)&&b[q].size>p){m=!0;break}var t=mxUtils.bind(this,function(){var m=this.editor.graph,p=m.gridSize;g=null!=g?g:mxUtils.bind(this,function(b,c,d,e,g,l,k,m,p){try{return null!=b&&"<mxlibrary"==b.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,
+b,k)),null):this.importFile(b,c,d,e,g,l,k,m,p,f,B,y)}catch(pa){return this.handleError(pa),null}});k=null!=k?k:mxUtils.bind(this,function(b){m.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var q=b.length,t=q,u=[],D=mxUtils.bind(this,function(b,c){u[b]=c;if(0==--t){this.spinner.stop();if(null!=v)v(u);else{var d=[];m.getModel().beginUpdate();try{for(var f=0;f<u.length;f++){var e=u[f]();null!=e&&(d=d.concat(e))}}finally{m.getModel().endUpdate()}}k(d)}}),C=
0;C<q;C++)mxUtils.bind(this,function(f){var k=b[f];if(null!=k){var q=new FileReader;q.onload=mxUtils.bind(this,function(b){if(null==n||n(k))if("image/"==k.type.substring(0,6))if("image/svg"==k.type.substring(0,9)){var q=Graph.clipSvgDataUri(b.target.result),t=q.indexOf(","),y=decodeURIComponent(escape(atob(q.substring(t+1)))),u=mxUtils.parseXml(y),y=u.getElementsByTagName("svg");if(0<y.length){var y=y[0],v=B?null:y.getAttribute("content");null!=v&&"<"!=v.charAt(0)&&"%"!=v.charAt(0)&&(v=unescape(window.atob?
atob(v):Base64.decode(v,!0)));null!=v&&"%"==v.charAt(0)&&(v=decodeURIComponent(v));null==v||"<mxfile "!==v.substring(0,8)&&"<mxGraphModel "!==v.substring(0,14)?D(f,mxUtils.bind(this,function(){try{if(q.substring(0,t+1),null!=u){var b=u.getElementsByTagName("svg");if(0<b.length){var l=b[0],n=l.getAttribute("width"),y=l.getAttribute("height"),n=null!=n&&"%"!=n.charAt(n.length-1)?parseFloat(n):NaN,y=null!=y&&"%"!=y.charAt(y.length-1)?parseFloat(y):NaN,B=l.getAttribute("viewBox");if(null==B||0==B.length)l.setAttribute("viewBox",
"0 0 "+n+" "+y);else if(isNaN(n)||isNaN(y)){var v=B.split(" ");3<v.length&&(n=parseFloat(v[2]),y=parseFloat(v[3]))}q=Editor.createSvgDataUri(mxUtils.getXml(l));var D=Math.min(1,Math.min(e/Math.max(1,n)),e/Math.max(1,y)),A=g(q,k.type,c+f*p,d+f*p,Math.max(1,Math.round(n*D)),Math.max(1,Math.round(y*D)),k.name);if(isNaN(n)||isNaN(y)){var C=new Image;C.onload=mxUtils.bind(this,function(){n=Math.max(1,C.width);y=Math.max(1,C.height);A[0].geometry.width=n;A[0].geometry.height=y;l.setAttribute("viewBox",
@@ -10820,8 +10820,8 @@ b.target.result,mxUtils.bind(this,function(b,m,n){D(f,mxUtils.bind(this,function
function(b){D(f,function(){return b})},k)});/(\.v(dx|sdx?))($|\?)/i.test(k.name)||/(\.vs(x|sx?))($|\?)/i.test(k.name)?g(null,k.type,c+f*p,d+f*p,240,160,k.name,function(b){D(f,function(){return b})},k):"image"==k.type.substring(0,5)||"application/pdf"==k.type?q.readAsDataURL(k):q.readAsText(k)}})(C)});if(m){m=[];for(q=0;q<b.length;q++)m.push(b[q]);b=m;this.confirmImageResize(function(b){l=b;t()},x)}else t()};EditorUi.prototype.confirmImageResize=function(b,c){c=null!=c?c:!1;var d=null!=this.spinner&&
null!=this.spinner.pause?this.spinner.pause():function(){},f=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,e=function(f,e){if(f||c)mxSettings.setResizeImages(f?e:null),mxSettings.save();d();b(e)};null==f||c?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(b){e(b,!0)},function(b){e(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):e(!1,f)};EditorUi.prototype.parseFile=function(b,c,d){d=null!=d?d:b.name;var f=new FormData;f.append("format","xml");f.append("upfile",b,d);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){c(e)};e.send(f);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+b.size})}catch(t){}};EditorUi.prototype.isResampleImageSize=function(b,
-c){c=null!=c?c:this.resampleThreshold;return b>c};EditorUi.prototype.resizeImage=function(b,c,d,e,g,k,n){g=null!=g?g:this.maxImageSize;var f=Math.max(1,b.width),l=Math.max(1,b.height);if(e&&this.isResampleImageSize(null!=n?n:c.length,k))try{var m=Math.max(f/g,l/g);if(1<m){var p=Math.round(f/m),q=Math.round(l/m),t=document.createElement("canvas");t.width=p;t.height=q;t.getContext("2d").drawImage(b,0,0,p,q);var u=t.toDataURL();if(u.length<c.length){var E=document.createElement("canvas");E.width=p;E.height=
-q;var G=E.toDataURL();u!==G&&(c=u,f=p,l=q)}}}catch(F){}d(c,f,l)};EditorUi.prototype.extractGraphModelFromPng=function(b){return Editor.extractGraphModelFromPng(b)};EditorUi.prototype.loadImage=function(b,c,d){try{var f=new Image;f.onload=function(){f.width=0<f.width?f.width:120;f.height=0<f.height?f.height:120;c(f)};null!=d&&(f.onerror=d);f.src=b}catch(q){if(null!=d)d(q);else throw q;}};var k=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&
+c){c=null!=c?c:this.resampleThreshold;return b>c};EditorUi.prototype.resizeImage=function(b,c,d,e,g,k,n){g=null!=g?g:this.maxImageSize;var f=Math.max(1,b.width),l=Math.max(1,b.height);if(e&&this.isResampleImageSize(null!=n?n:c.length,k))try{var m=Math.max(f/g,l/g);if(1<m){var p=Math.round(f/m),q=Math.round(l/m),t=document.createElement("canvas");t.width=p;t.height=q;t.getContext("2d").drawImage(b,0,0,p,q);var u=t.toDataURL();if(u.length<c.length){var F=document.createElement("canvas");F.width=p;F.height=
+q;var G=F.toDataURL();u!==G&&(c=u,f=p,l=q)}}}catch(E){}d(c,f,l)};EditorUi.prototype.extractGraphModelFromPng=function(b){return Editor.extractGraphModelFromPng(b)};EditorUi.prototype.loadImage=function(b,c,d){try{var f=new Image;f.onload=function(){f.width=0<f.width?f.width:120;f.height=0<f.height?f.height:120;c(f)};null!=d&&(f.onerror=d);f.src=b}catch(q){if(null!=d)d(q);else throw q;}};var k=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,f,e){var g=JSON.parse(e);f=new TextareaDialog(b,mxResources.get("plantUml")+":",g.data,function(f){null!=
f&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generatePlantUmlImage(f,g.format,function(e,l,k){b.spinner.stop();c.getModel().beginUpdate();try{if("txt"==g.format)c.labelChanged(d,"<pre>"+e+"</pre>"),c.updateCellSize(d,!0);else{c.setCellStyles("image",b.convertDataUri(e),[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=l,m.height=k,c.cellsResized([d],[m],!1))}c.setAttributeForCell(d,"plantUmlData",JSON.stringify({data:f,format:g.format}))}finally{c.getModel().endUpdate()}},
function(c){b.handleError(c)})},null,null,400,220);b.showDialog(f.container,420,300,!0,!0);f.init()};c.cellEditor.editMermaidData=function(d,f,e){var g=JSON.parse(e);f=new TextareaDialog(b,mxResources.get("mermaid")+":",g.data,function(f){null!=f&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generateMermaidImage(f,g.config,function(e,l,k){b.spinner.stop();c.getModel().beginUpdate();try{c.setCellStyles("image",e,[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=Math.max(m.width,
@@ -10841,7 +10841,7 @@ g,l)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b
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 E=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==this.styleInput?!0:E.apply(this,arguments)}}C=document.getElementById("geInfo");null!=C&&C.parentNode.removeChild(C);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var G=null;mxEvent.addListener(c.container,
+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 F=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==this.styleInput?!0:F.apply(this,arguments)}}C=document.getElementById("geInfo");null!=C&&C.parentNode.removeChild(C);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var G=null;mxEvent.addListener(c.container,
"dragleave",function(b){c.isEnabled()&&(null!=G&&(G.parentNode.removeChild(G),G=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(b){null==G&&(!mxClient.IS_IE||10<document.documentMode)&&(G=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!=G&&(G.parentNode.removeChild(G),G=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=
@@ -10930,15 +10930,15 @@ urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";k.postMe
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,E="whiteSpace=wrap;html=1;",
-G=null,F=null,D="",H="auto",I="auto",L=null,M=null,Q=40,P=40,K=100,X=0,J=this.editor.graph;J.getGraphBounds();for(var N=function(){null!=c?c(la):(J.setSelectionCells(la),J.scrollCellToVisible(J.getSelectionCell()))},O=J.getFreeInsertPoint(),W=O.x,Y=O.y,O=Y,ka=null,aa="auto",F=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 R=mxUtils.trim(b.substring(1,ca)),T=mxUtils.trim(b.substring(ca+1));"label"==R?ka=J.sanitizeHtml(T):"labelname"==R&&0<T.length&&"-"!=T?y=T:"labels"==R&&0<T.length&&"-"!=T?C=JSON.parse(T):"style"==R?A=T:"parentstyle"==R?E=T:"stylename"==R&&0<T.length&&"-"!=T?B=T:"styles"==R&&0<T.length&&"-"!=T?z=JSON.parse(T):"vars"==R&&0<T.length&&"-"!=T?n=JSON.parse(T):"identity"==R&&0<T.length&&"-"!=T?G=T:"parent"==R&&0<T.length&&"-"!=T?F=T:"namespace"==R&&0<T.length&&"-"!=T?D=T:"width"==
-R?H=T:"height"==R?I=T:"left"==R&&0<T.length?L=T:"top"==R&&0<T.length?M=T:"ignore"==R?pa=T.split(","):"connect"==R?ba.push(JSON.parse(T)):"link"==R?na=T:"padding"==R?X=parseFloat(T):"edgespacing"==R?Q=parseFloat(T):"nodespacing"==R?P=parseFloat(T):"levelspacing"==R?K=parseFloat(T):"layout"==R&&(aa=T)}}}if(null==d[fa])throw Error(mxResources.get("invalidOrMissingFile"));for(var ia=this.editor.csvToArray(d[fa]),R=ca=null,T=[],U=0;U<ia.length;U++)G==ia[U]&&(ca=U),F==ia[U]&&(R=U),T.push(mxUtils.trim(ia[U]).replace(/[^a-z0-9]+/ig,
+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,F="whiteSpace=wrap;html=1;",
+G=null,E=null,D="",H="auto",I="auto",L=null,M=null,Q=40,P=40,K=100,X=0,J=this.editor.graph;J.getGraphBounds();for(var N=function(){null!=c?c(la):(J.setSelectionCells(la),J.scrollCellToVisible(J.getSelectionCell()))},O=J.getFreeInsertPoint(),W=O.x,Y=O.y,O=Y,ka=null,aa="auto",E=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 R=mxUtils.trim(b.substring(1,ca)),T=mxUtils.trim(b.substring(ca+1));"label"==R?ka=J.sanitizeHtml(T):"labelname"==R&&0<T.length&&"-"!=T?y=T:"labels"==R&&0<T.length&&"-"!=T?C=JSON.parse(T):"style"==R?A=T:"parentstyle"==R?F=T:"stylename"==R&&0<T.length&&"-"!=T?B=T:"styles"==R&&0<T.length&&"-"!=T?z=JSON.parse(T):"vars"==R&&0<T.length&&"-"!=T?n=JSON.parse(T):"identity"==R&&0<T.length&&"-"!=T?G=T:"parent"==R&&0<T.length&&"-"!=T?E=T:"namespace"==R&&0<T.length&&"-"!=T?D=T:"width"==
+R?H=T:"height"==R?I=T:"left"==R&&0<T.length?L=T:"top"==R&&0<T.length?M=T:"ignore"==R?pa=T.split(","):"connect"==R?ba.push(JSON.parse(T)):"link"==R?na=T:"padding"==R?X=parseFloat(T):"edgespacing"==R?Q=parseFloat(T):"nodespacing"==R?P=parseFloat(T):"levelspacing"==R?K=parseFloat(T):"layout"==R&&(aa=T)}}}if(null==d[fa])throw Error(mxResources.get("invalidOrMissingFile"));for(var ia=this.editor.csvToArray(d[fa]),R=ca=null,T=[],U=0;U<ia.length;U++)G==ia[U]&&(ca=U),E==ia[U]&&(R=U),T.push(mxUtils.trim(ia[U]).replace(/[^a-z0-9]+/ig,
"_").replace(/^\d+/,"").replace(/_+$/,""));null==ka&&(ka="%"+T[0]+"%");if(null!=ba)for(var Z=0;Z<ba.length;Z++)null==k[ba[Z].to]&&(k[ba[Z].to]={});G=[];for(U=fa+1;U<d.length;U++){var ha=this.editor.csvToArray(d[U]);if(null==ha){var ra=40<d[U].length?d[U].substring(0,40)+"...":d[U];throw Error(ra+" ("+U+"):\n"+mxResources.get("containsValidationErrors"));}0<ha.length&&G.push(ha)}J.model.beginUpdate();try{for(U=0;U<G.length;U++){var ha=G[U],V=null,ea=null!=ca?D+ha[ca]:null;null!=ea&&(V=J.model.getCell(ea));
var d=null!=V,ga=new mxCell(ka,new mxGeometry(W,O,0,0),A||"whiteSpace=wrap;html=1;");ga.vertex=!0;ga.id=ea;for(var ja=0;ja<ha.length;ja++)J.setAttributeForCell(ga,T[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(V,ga.value),J.model.setStyle(V,ga.style),0>mxUtils.indexOf(g,
-V)&&g.push(V),J.fireEvent(new mxEventObject("cellsInserted","cells",[V]))):J.fireEvent(new mxEventObject("cellsInserted","cells",[ga]));V=ga;if(!d)for(Z=0;Z<ba.length;Z++)k[ba[Z].to][V.getAttribute(ba[Z].to)]=V;null!=na&&"link"!=na&&(J.setLinkForCell(V,V.getAttribute(na)),J.setAttributeForCell(V,na,null));var S=this.editor.graph.getPreferredSizeForCell(V),F=null!=R?J.model.getCell(D+ha[R]):null;if(V.vertex){ra=null!=F?0:W;fa=null!=F?0:Y;null!=L&&null!=V.getAttribute(L)&&(V.geometry.x=ra+parseFloat(V.getAttribute(L)));
+V)&&g.push(V),J.fireEvent(new mxEventObject("cellsInserted","cells",[V]))):J.fireEvent(new mxEventObject("cellsInserted","cells",[ga]));V=ga;if(!d)for(Z=0;Z<ba.length;Z++)k[ba[Z].to][V.getAttribute(ba[Z].to)]=V;null!=na&&"link"!=na&&(J.setLinkForCell(V,V.getAttribute(na)),J.setAttributeForCell(V,na,null));var S=this.editor.graph.getPreferredSizeForCell(V),E=null!=R?J.model.getCell(D+ha[R]):null;if(V.vertex){ra=null!=E?0:W;fa=null!=E?0:Y;null!=L&&null!=V.getAttribute(L)&&(V.geometry.x=ra+parseFloat(V.getAttribute(L)));
null!=M&&null!=V.getAttribute(M)&&(V.geometry.y=fa+parseFloat(V.getAttribute(M)));var da="@"==H.charAt(0)?V.getAttribute(H.substring(1)):null;V.geometry.width=null!=da&&"auto"!=da?parseFloat(V.getAttribute(H.substring(1))):"auto"==H||"auto"==da?S.width+X:parseFloat(H);var ma="@"==I.charAt(0)?V.getAttribute(I.substring(1)):null;V.geometry.height=null!=ma&&"auto"!=ma?parseFloat(ma):"auto"==I||"auto"==ma?S.height+X:parseFloat(I);O+=V.geometry.height+P}d?(null==l[ea]&&(l[ea]=[]),l[ea].push(V)):(f.push(V),
-null!=F?(F.style=J.replacePlaceholders(F,E,n),J.addCell(V,F),e.push(F)):g.push(J.addCell(V)))}for(U=0;U<e.length;U++)da="@"==H.charAt(0)?e[U].getAttribute(H.substring(1)):null,ma="@"==I.charAt(0)?e[U].getAttribute(I.substring(1)):null,"auto"!=H&&"auto"!=da||"auto"!=I&&"auto"!=ma||J.updateGroupBounds([e[U]],X,!0);for(var sa=g.slice(),la=g.slice(),Z=0;Z<ba.length;Z++)for(var qa=ba[Z],U=0;U<f.length;U++){var V=f[U],ta=mxUtils.bind(this,function(b,c,d){var f=c.getAttribute(d.from);if(null!=f&&""!=f)for(var f=
+null!=E?(E.style=J.replacePlaceholders(E,F,n),J.addCell(V,E),e.push(E)):g.push(J.addCell(V)))}for(U=0;U<e.length;U++)da="@"==H.charAt(0)?e[U].getAttribute(H.substring(1)):null,ma="@"==I.charAt(0)?e[U].getAttribute(I.substring(1)):null,"auto"!=H&&"auto"!=da||"auto"!=I&&"auto"!=ma||J.updateGroupBounds([e[U]],X,!0);for(var sa=g.slice(),la=g.slice(),Z=0;Z<ba.length;Z++)for(var qa=ba[Z],U=0;U<f.length;U++){var V=f[U],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(V,V,qa);if(null!=l[V.id])for(ja=0;ja<l[V.id].length;ja++)ta(V,l[V.id][ja],qa)}if(null!=pa)for(U=0;U<f.length;U++)for(V=f[U],ja=0;ja<pa.length;ja++)J.setAttributeForCell(V,mxUtils.trim(pa[ja]),null);if(0<g.length){var va=new mxParallelEdgeLayout(J);va.spacing=Q;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)));
@@ -10980,7 +10980,7 @@ this.getCurrentFile();return null!=b?b.commentsRefreshNeeded():!0};EditorUi.prot
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,E,G){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,E,G)};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.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,d,e,g,k,n,v,x,A,z,B,y,C,F,G){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,F,G)};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")}})();
@@ -10988,22 +10988,22 @@ var CommentsWindow=function(b,e,d,c,k,g){function n(){for(var b=B.getElementsByT
"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",
[f],"{1} ago"));d.setAttribute("title",e.toLocaleDateString()+" "+e.toLocaleTimeString())}function m(b){var c=document.createElement("img");c.className="geCommentBusyImg";c.src=IMAGE_PATH+"/spin.gif";b.appendChild(c);b.busyImg=c}function p(b){b.style.border="1px solid red";b.removeChild(b.busyImg)}function q(b){b.style.border="";b.removeChild(b.busyImg)}function t(c,d,e,g,k){function D(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)});A.appendChild(f);e&&(f.style.display="none")}function C(){function b(c){d.push(e);if(null!=c.replies)for(var f=0;f<c.replies.length;f++)e=e.nextSibling,b(c.replies[f])}var d=[],e=E;b(c);return{pdiv:e,replies:d}}function M(d,e,k,l,n){function y(){m(D);c.addReply(v,function(b){v.id=b;c.replies.push(v);q(D);k&&k()},function(c){B();p(D);b.handleError(c,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},l,n)}function B(){f(v,D,function(b){y()},!0)}var u=C().pdiv,v=b.newComment(d,b.getCurrentUser());v.pCommentId=c.id;null==c.replies&&(c.replies=[]);var D=t(v,c.replies,u,g+1);e?B():y()}if(k||!c.isResolved){y.style.display="none";var E=document.createElement("div");E.className="geCommentContainer";E.setAttribute("data-commentId",c.id);E.style.marginLeft=20*g+5+"px";c.isResolved&&!Editor.isDarkMode()&&(E.style.backgroundColor="ghostWhite");
-var z=document.createElement("div");z.className="geCommentHeader";var F=document.createElement("img");F.className="geCommentUserImg";F.src=c.user.pictureUrl||Editor.userImage;z.appendChild(F);F=document.createElement("div");F.className="geCommentHeaderTxt";z.appendChild(F);var Q=document.createElement("div");Q.className="geCommentUsername";mxUtils.write(Q,c.user.displayName||"");F.appendChild(Q);Q=document.createElement("div");Q.className="geCommentDate";Q.setAttribute("data-commentId",c.id);l(c,
-Q);F.appendChild(Q);E.appendChild(z);z=document.createElement("div");z.className="geCommentTxt";mxUtils.write(z,c.content||"");E.appendChild(z);c.isLocked&&(E.style.opacity="0.5");z=document.createElement("div");z.className="geCommentActions";var A=document.createElement("ul");A.className="geCommentActionsList";z.appendChild(A);u||c.isLocked||0!=g&&!v||D(mxResources.get("reply"),function(){M("",!0)},c.isResolved);F=b.getCurrentUser();null==F||F.id!=c.user.id||u||c.isLocked||(D(mxResources.get("edit"),
-function(){function d(){f(c,E,function(){m(E);c.editComment(c.content,function(){q(E)},function(c){p(E);d();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}d()},c.isResolved),D(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){m(E);c.deleteComment(function(b){if(!0===b){b=E.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var e=E.querySelectorAll(".geCommentAction");for(b=
-0;b<e.length;b++)e[b].parentNode.removeChild(e[b]);q(E);E.style.opacity="0.5"}else{e=C(c).replies;for(b=0;b<e.length;b++)B.removeChild(e[b]);for(b=0;b<d.length;b++)if(d[b]==c){d.splice(b,1);break}y.style.display=0==B.getElementsByTagName("div").length?"block":"none"}},function(c){p(E);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));u||c.isLocked||0!=g||D(c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(b){function d(){var d=
+"geCommentActionLnk";mxUtils.write(g,b);f.appendChild(g);mxEvent.addListener(g,"click",function(b){d(b,c);b.preventDefault();mxEvent.consume(b)});A.appendChild(f);e&&(f.style.display="none")}function C(){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=F;b(c);return{pdiv:e,replies:d}}function M(d,e,k,l,n){function y(){m(D);c.addReply(v,function(b){v.id=b;c.replies.push(v);q(D);k&&k()},function(c){B();p(D);b.handleError(c,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},l,n)}function B(){f(v,D,function(b){y()},!0)}var u=C().pdiv,v=b.newComment(d,b.getCurrentUser());v.pCommentId=c.id;null==c.replies&&(c.replies=[]);var D=t(v,c.replies,u,g+1);e?B():y()}if(k||!c.isResolved){y.style.display="none";var F=document.createElement("div");F.className="geCommentContainer";F.setAttribute("data-commentId",c.id);F.style.marginLeft=20*g+5+"px";c.isResolved&&!Editor.isDarkMode()&&(F.style.backgroundColor="ghostWhite");
+var E=document.createElement("div");E.className="geCommentHeader";var z=document.createElement("img");z.className="geCommentUserImg";z.src=c.user.pictureUrl||Editor.userImage;E.appendChild(z);z=document.createElement("div");z.className="geCommentHeaderTxt";E.appendChild(z);var Q=document.createElement("div");Q.className="geCommentUsername";mxUtils.write(Q,c.user.displayName||"");z.appendChild(Q);Q=document.createElement("div");Q.className="geCommentDate";Q.setAttribute("data-commentId",c.id);l(c,
+Q);z.appendChild(Q);F.appendChild(E);E=document.createElement("div");E.className="geCommentTxt";mxUtils.write(E,c.content||"");F.appendChild(E);c.isLocked&&(F.style.opacity="0.5");E=document.createElement("div");E.className="geCommentActions";var A=document.createElement("ul");A.className="geCommentActionsList";E.appendChild(A);u||c.isLocked||0!=g&&!v||D(mxResources.get("reply"),function(){M("",!0)},c.isResolved);z=b.getCurrentUser();null==z||z.id!=c.user.id||u||c.isLocked||(D(mxResources.get("edit"),
+function(){function d(){f(c,F,function(){m(F);c.editComment(c.content,function(){q(F)},function(c){p(F);d();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}d()},c.isResolved),D(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){m(F);c.deleteComment(function(b){if(!0===b){b=F.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var e=F.querySelectorAll(".geCommentAction");for(b=
+0;b<e.length;b++)e[b].parentNode.removeChild(e[b]);q(F);F.style.opacity="0.5"}else{e=C(c).replies;for(b=0;b<e.length;b++)B.removeChild(e[b]);for(b=0;b<d.length;b++)if(d[b]==c){d.splice(b,1);break}y.style.display=0==B.getElementsByTagName("div").length?"block":"none"}},function(c){p(F);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));u||c.isLocked||0!=g||D(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=C(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);G||(f[k].style.display="none")}n()}c.isResolved?M(mxResources.get("reOpened")+": ",!0,
-d,!1,!0):M(mxResources.get("markedAsResolved"),!1,d,!0)});E.appendChild(z);null!=e?B.insertBefore(E,e.nextSibling):B.appendChild(E);for(e=0;null!=c.replies&&e<c.replies.length;e++)z=c.replies[e],z.isResolved=c.isResolved,t(z,c.replies,null,g+1,k);null!=x&&(x.comment.id==c.id?(k=c.content,c.content=x.comment.content,f(c,E,x.saveCallback,x.deleteOnCancel),c.content=k):null==x.comment.id&&x.comment.pCommentId==c.id&&(B.appendChild(x.div),f(x.comment,x.div,x.saveCallback,x.deleteOnCancel)));return E}}
+d,!1,!0):M(mxResources.get("markedAsResolved"),!1,d,!0)});F.appendChild(E);null!=e?B.insertBefore(F,e.nextSibling):B.appendChild(F);for(e=0;null!=c.replies&&e<c.replies.length;e++)E=c.replies[e],E.isResolved=c.isResolved,t(E,c.replies,null,g+1,k);null!=x&&(x.comment.id==c.id?(k=c.content,c.content=x.comment.content,f(c,F,x.saveCallback,x.deleteOnCancel),c.content=k):null==x.comment.id&&x.comment.pCommentId==c.id&&(B.appendChild(x.div),f(x.comment,x.div,x.saveCallback,x.deleteOnCancel)));return F}}
var u=!b.canComment(),v=b.canReplyToReplies(),x=null,A=document.createElement("div");A.className="geCommentsWin";A.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var z=EditorUi.compactUi?"26px":"30px",B=document.createElement("div");B.className="geCommentsList";B.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";B.style.bottom=parseInt(z)+7+"px";A.appendChild(B);var y=document.createElement("span");y.style.cssText="display:none;padding-top:10px;text-align:center;";
-mxUtils.write(y,mxResources.get("noCommentsFound"));var C=document.createElement("div");C.className="geToolbarContainer geCommentsToolbar";C.style.height=z;C.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";C.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";z=document.createElement("a");z.className="geButton";if(!u){var E=z.cloneNode();E.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';E.setAttribute("title",mxResources.get("create")+
-"...");mxEvent.addListener(E,"click",function(c){function d(){f(e,g,function(c){m(g);b.addComment(c,function(b){c.id=b;F.push(c);q(g)},function(c){p(g);d();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var e=b.newComment("",b.getCurrentUser()),g=t(e,F,null,0);d();c.preventDefault();mxEvent.consume(c)});C.appendChild(E)}E=z.cloneNode();E.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';E.setAttribute("title",mxResources.get("showResolved"));
-var G=!1;Editor.isDarkMode()&&(E.style.filter="invert(100%)");mxEvent.addListener(E,"click",function(b){this.className=(G=!G)?"geButton geCheckedBtn":"geButton";D();b.preventDefault();mxEvent.consume(b)});C.appendChild(E);b.commentsRefreshNeeded()&&(E=z.cloneNode(),E.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',E.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(E.style.filter="invert(100%)"),mxEvent.addListener(E,"click",function(b){D();
-b.preventDefault();mxEvent.consume(b)}),C.appendChild(E));b.commentsSaveNeeded()&&(z=z.cloneNode(),z.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',z.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(z.style.filter="invert(100%)"),mxEvent.addListener(z,"click",function(b){g();b.preventDefault();mxEvent.consume(b)}),C.appendChild(z));A.appendChild(C);var F=[],D=mxUtils.bind(this,function(){this.hasError=!1;if(null!=x)try{x.div=x.div.cloneNode(!0);
+mxUtils.write(y,mxResources.get("noCommentsFound"));var C=document.createElement("div");C.className="geToolbarContainer geCommentsToolbar";C.style.height=z;C.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";C.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";z=document.createElement("a");z.className="geButton";if(!u){var F=z.cloneNode();F.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';F.setAttribute("title",mxResources.get("create")+
+"...");mxEvent.addListener(F,"click",function(c){function d(){f(e,g,function(c){m(g);b.addComment(c,function(b){c.id=b;E.push(c);q(g)},function(c){p(g);d();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var e=b.newComment("",b.getCurrentUser()),g=t(e,E,null,0);d();c.preventDefault();mxEvent.consume(c)});C.appendChild(F)}F=z.cloneNode();F.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';F.setAttribute("title",mxResources.get("showResolved"));
+var G=!1;Editor.isDarkMode()&&(F.style.filter="invert(100%)");mxEvent.addListener(F,"click",function(b){this.className=(G=!G)?"geButton geCheckedBtn":"geButton";D();b.preventDefault();mxEvent.consume(b)});C.appendChild(F);b.commentsRefreshNeeded()&&(F=z.cloneNode(),F.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',F.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(F.style.filter="invert(100%)"),mxEvent.addListener(F,"click",function(b){D();
+b.preventDefault();mxEvent.consume(b)}),C.appendChild(F));b.commentsSaveNeeded()&&(z=z.cloneNode(),z.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',z.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(z.style.filter="invert(100%)"),mxEvent.addListener(z,"click",function(b){g();b.preventDefault();mxEvent.consume(b)}),C.appendChild(z));A.appendChild(C);var E=[],D=mxUtils.bind(this,function(){this.hasError=!1;if(null!=x)try{x.div=x.div.cloneNode(!0);
var c=x.div.querySelector(".geCommentEditTxtArea"),d=x.div.querySelector(".geCommentEditBtns");x.comment.content=c.value;c.parentNode.removeChild(c);d.parentNode.removeChild(d)}catch(M){b.handleError(M)}B.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)});B.innerHTML="";B.appendChild(y);y.style.display="block";F=b;for(b=0;b<F.length;b++)c(F[b].replies),t(F[b],F,null,0,G);null!=x&&null==x.comment.id&&null==x.comment.pCommentId&&(B.appendChild(x.div),f(x.comment,x.div,x.saveCallback,x.deleteOnCancel))},mxUtils.bind(this,function(b){B.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(b&&b.message?
-": "+b.message:""));this.hasError=!0})):B.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});D();this.refreshComments=D;C=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(l(c,e),e=0;null!=c.replies&&e<c.replies.length;e++)b(c.replies[e])}if(this.window.isVisible()){for(var c=B.querySelectorAll(".geCommentDate"),d={},e=0;e<c.length;e++){var f=c[e];d[f.getAttribute("data-commentId")]=f}for(e=0;e<F.length;e++)b(F[e])}});setInterval(C,6E4);this.refreshCommentsTime=C;this.window=
+new Date(c.modifiedDate)});for(var d=0;d<b.length;d++)c(b[d].replies)}}b.sort(function(b,c){return new Date(b.modifiedDate)-new Date(c.modifiedDate)});B.innerHTML="";B.appendChild(y);y.style.display="block";E=b;for(b=0;b<E.length;b++)c(E[b].replies),t(E[b],E,null,0,G);null!=x&&null==x.comment.id&&null==x.comment.pCommentId&&(B.appendChild(x.div),f(x.comment,x.div,x.saveCallback,x.deleteOnCancel))},mxUtils.bind(this,function(b){B.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(b&&b.message?
+": "+b.message:""));this.hasError=!0})):B.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});D();this.refreshComments=D;C=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(l(c,e),e=0;null!=c.replies&&e<c.replies.length;e++)b(c.replies[e])}if(this.window.isVisible()){for(var c=B.querySelectorAll(".geCommentDate"),d={},e=0;e<c.length;e++){var f=c[e];d[f.getAttribute("data-commentId")]=f}for(e=0;e<E.length;e++)b(E[e])}});setInterval(C,6E4);this.refreshCommentsTime=C;this.window=
new mxWindow(mxResources.get("comments"),A,e,d,c,k,!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 H=mxUtils.bind(this,function(){var b=this.window.getX(),c=this.window.getY();this.window.setLocation(b,c)});mxEvent.addListener(window,"resize",H);this.destroy=function(){mxEvent.removeListener(window,"resize",H);this.window.destroy()}},ConfirmDialog=function(b,e,d,
c,k,g,n,f,l,m,p){var q=document.createElement("div");q.style.textAlign="center";p=null!=p?p:44;var t=document.createElement("div");t.style.padding="6px";t.style.overflow="auto";t.style.maxHeight=p+"px";t.style.lineHeight="1.2em";mxUtils.write(t,e);q.appendChild(t);null!=m&&(t=document.createElement("div"),t.style.padding="6px 0 6px 0",e=document.createElement("img"),e.setAttribute("src",m),t.appendChild(e),q.appendChild(t));m=document.createElement("div");m.style.textAlign="center";m.style.whiteSpace=
@@ -11180,19 +11180,19 @@ f=!0:b=m}catch(z){f=!0}}}else/\.pdf$/i.test(d.title)?(l=Editor.extractGraphModel
b.responseText,d.title+this.extension,!0)):null!=e&&e({message:mxResources.get("errorLoadingFile")}))}catch(B){if(null!=e)e(B);else throw B;}}),d.title):c(f?new LocalFile(this.ui,b,d.title,!0):new DriveFile(this.ui,b,d))}}catch(z){if(null!=e)e(z);else throw z;}}),mxUtils.bind(this,function(b,c){if(m<this.maxRetries&&null!=c&&403==c.getStatus())m++,window.setTimeout(p,2*m*this.coolOff*(1+.1*(Math.random()-.5)));else if(null!=e)e(b);else throw b;}),null!=d.mimeType&&"image/"==d.mimeType.substring(0,
6)&&"image/svg"!=d.mimeType.substring(0,9)||/\.png$/i.test(d.title)||/\.jpe?g$/i.test(d.title)||/\.pdf$/i.test(d.title),null,null,null,f)});p()}}catch(q){if(null!=e)e(q);else throw q;}};DriveClient.prototype.saveFile=function(b,c,e,g,n,f,l,m,p){try{var d=0;b.saveLevel=1;var k=mxUtils.bind(this,function(c){if(null!=g)g(c);else throw c;try{if(!b.isConflict(c)){var d="sl_"+b.saveLevel+"-error_"+(b.getErrorMessage(c)||"unknown");null!=c&&null!=c.error&&null!=c.error.code&&(d+="-code_"+c.error.code);EditorUi.logEvent({category:"ERROR-SAVE-FILE-"+
b.getHash()+"-rev_"+b.desc.headRevisionId+"-mod_"+b.desc.modifiedDate+"-size_"+b.getSize()+"-mime_"+b.desc.mimeType+(this.ui.editor.autosave?"":"-nosave")+(b.isAutosave()?"":"-noauto")+(b.changeListenerEnabled?"":"-nolisten")+(b.inConflictState?"-conflict":"")+(b.invalidChecksum?"-invalid":""),action:d,label:(null!=this.user?"user_"+this.user.id:"nouser")+(null!=b.sync?"-client_"+b.sync.clientId:"-nosync")})}}catch(H){}}),u=mxUtils.bind(this,function(b){k(b);try{EditorUi.logError(b.message,null,null,
-b)}catch(D){}});if(b.isEditable()&&null!=b.desc){var v=(new Date).getTime(),x=b.desc.etag,A=b.desc.modifiedDate,z=b.desc.headRevisionId,B=this.ui.useCanvasForExport&&/(\.png)$/i.test(b.getTitle());f=null!=f?f:!1;var y=null,C=!1,E={mimeType:b.desc.mimeType,title:b.getTitle()};if(this.isGoogleRealtimeMimeType(E.mimeType))E.mimeType=this.xmlMimeType,y=b.desc,C=c=!0;else if("application/octet-stream"==E.mimeType||"1"==urlParams["override-mime"]&&E.mimeType!=this.xmlMimeType)E.mimeType=this.xmlMimeType;
-var G=mxUtils.bind(this,function(g,n,q){try{b.saveLevel=3;b.constructor==DriveFile&&(null==m&&(m=[]),null==b.getChannelId()&&m.push({key:"channel",value:Editor.guid(32)}),null==b.getChannelKey()&&m.push({key:"key",value:Editor.guid(32)}),m.push({key:"secret",value:null!=p?p:Editor.guid(32)}));q||(null!=g||f||(g=this.placeholderThumbnail,n=this.placeholderMimeType),null!=g&&null!=n&&(E.thumbnail={image:g,mimeType:n}));var t=b.getData(),D=mxUtils.bind(this,function(d){try{if(b.saveDelay=(new Date).getTime()-
+b)}catch(D){}});if(b.isEditable()&&null!=b.desc){var v=(new Date).getTime(),x=b.desc.etag,A=b.desc.modifiedDate,z=b.desc.headRevisionId,B=this.ui.useCanvasForExport&&/(\.png)$/i.test(b.getTitle());f=null!=f?f:!1;var y=null,C=!1,F={mimeType:b.desc.mimeType,title:b.getTitle()};if(this.isGoogleRealtimeMimeType(F.mimeType))F.mimeType=this.xmlMimeType,y=b.desc,C=c=!0;else if("application/octet-stream"==F.mimeType||"1"==urlParams["override-mime"]&&F.mimeType!=this.xmlMimeType)F.mimeType=this.xmlMimeType;
+var G=mxUtils.bind(this,function(g,n,q){try{b.saveLevel=3;b.constructor==DriveFile&&(null==m&&(m=[]),null==b.getChannelId()&&m.push({key:"channel",value:Editor.guid(32)}),null==b.getChannelKey()&&m.push({key:"key",value:Editor.guid(32)}),m.push({key:"secret",value:null!=p?p:Editor.guid(32)}));q||(null!=g||f||(g=this.placeholderThumbnail,n=this.placeholderMimeType),null!=g&&null!=n&&(F.thumbnail={image:g,mimeType:n}));var t=b.getData(),D=mxUtils.bind(this,function(d){try{if(b.saveDelay=(new Date).getTime()-
v,b.saveLevel=11,null==d)k({message:mxResources.get("errorSavingFile")+": Empty response"});else{var f=(new Date(d.modifiedDate)).getTime()-(new Date(A)).getTime();if(0>=f||x==d.etag||c&&z==d.headRevisionId){b.saveLevel=12;var g=[];0>=f&&g.push("invalid modified time");x==d.etag&&g.push("stale etag");c&&z==d.headRevisionId&&g.push("stale revision");var l=g.join(", ");k({message:mxResources.get("errorSavingFile")+": "+l},d);try{EditorUi.logError("Critical: Error saving to Google Drive "+b.desc.id,
null,"from-"+z+"."+A+"-"+this.ui.hashValue(x)+"-to-"+d.headRevisionId+"."+d.modifiedDate+"-"+this.ui.hashValue(d.etag)+(0<l.length?"-errors-"+l:""),"user-"+(null!=this.user?this.user.id:"nouser")+(null!=b.sync?"-client_"+b.sync.clientId:"-nosync"))}catch(N){}}else if(b.saveLevel=null,e(d,t),null!=y){this.executeRequest({url:"/files/"+y.id+"/revisions/"+y.headRevisionId+"?supportsAllDrives=true"},mxUtils.bind(this,mxUtils.bind(this,function(b){b.pinned=!0;this.executeRequest({url:"/files/"+y.id+"/revisions/"+
-y.headRevisionId,method:"PUT",params:b})})));try{EditorUi.logEvent({category:b.convertedFrom+"-CONVERT-FILE-"+b.getHash(),action:"from_"+y.id+"."+y.headRevisionId+"-to_"+b.desc.id+"."+b.desc.headRevisionId,label:null!=this.user?"user_"+this.user.id:"nouser"+(null!=b.sync?"-client_"+b.sync.clientId:"nosync")})}catch(N){}}}}catch(N){u(N)}}),M=mxUtils.bind(this,function(e,f){b.saveLevel=4;try{null!=m&&(E.properties=m);var n=l||b.constructor!=DriveFile||"manual"!=DrawioFile.SYNC&&"auto"!=DrawioFile.SYNC?
-null:b.getCurrentEtag(),p=mxUtils.bind(this,function(g){b.saveLevel=5;try{var l=b.desc.mimeType!=this.xmlMimeType&&b.desc.mimeType!=this.mimeType&&b.desc.mimeType!=this.libraryMimeType,m=!0,p=null;try{p=window.setTimeout(mxUtils.bind(this,function(){m=!1;k({code:App.ERROR_TIMEOUT})}),5*this.ui.timeout)}catch(ba){}this.executeRequest(this.createUploadRequest(b.getId(),E,e,c||g||l,f,g?null:n,C),mxUtils.bind(this,function(b){window.clearTimeout(p);m&&D(b)}),mxUtils.bind(this,function(c){window.clearTimeout(p);
+y.headRevisionId,method:"PUT",params:b})})));try{EditorUi.logEvent({category:b.convertedFrom+"-CONVERT-FILE-"+b.getHash(),action:"from_"+y.id+"."+y.headRevisionId+"-to_"+b.desc.id+"."+b.desc.headRevisionId,label:null!=this.user?"user_"+this.user.id:"nouser"+(null!=b.sync?"-client_"+b.sync.clientId:"nosync")})}catch(N){}}}}catch(N){u(N)}}),M=mxUtils.bind(this,function(e,f){b.saveLevel=4;try{null!=m&&(F.properties=m);var n=l||b.constructor!=DriveFile||"manual"!=DrawioFile.SYNC&&"auto"!=DrawioFile.SYNC?
+null:b.getCurrentEtag(),p=mxUtils.bind(this,function(g){b.saveLevel=5;try{var l=b.desc.mimeType!=this.xmlMimeType&&b.desc.mimeType!=this.mimeType&&b.desc.mimeType!=this.libraryMimeType,m=!0,p=null;try{p=window.setTimeout(mxUtils.bind(this,function(){m=!1;k({code:App.ERROR_TIMEOUT})}),5*this.ui.timeout)}catch(ba){}this.executeRequest(this.createUploadRequest(b.getId(),F,e,c||g||l,f,g?null:n,C),mxUtils.bind(this,function(b){window.clearTimeout(p);m&&D(b)}),mxUtils.bind(this,function(c){window.clearTimeout(p);
if(m){b.saveLevel=6;try{b.isConflict(c)?this.executeRequest({url:"/files/"+b.getId()+"?supportsAllDrives=true&fields="+this.catchupFields},mxUtils.bind(this,function(e){b.saveLevel=7;try{if(null!=e&&e.etag==n)if(d<this.staleEtagMaxRetries){d++;var f=2*d*this.coolOff*(1+.1*(Math.random()-.5));window.setTimeout(y,f);"1"==urlParams.test&&EditorUi.debug("DriveClient: Stale Etag Detected","retry",d,"delay",f)}else{y(!0);try{EditorUi.logEvent({category:"STALE-ETAG-SAVE-FILE-"+b.getHash(),action:"rev_"+
b.desc.headRevisionId+"-mod_"+b.desc.modifiedDate+"-size_"+b.getSize()+"-mime_"+b.desc.mimeType+(this.ui.editor.autosave?"":"-nosave")+(b.isAutosave()?"":"-noauto")+(b.changeListenerEnabled?"":"-nolisten")+(b.inConflictState?"-conflict":"")+(b.invalidChecksum?"-invalid":""),label:(null!=this.user?"user_"+this.user.id:"nouser")+(null!=b.sync?"-client_"+b.sync.clientId:"-nosync")})}catch(fa){}}else"1"==urlParams.test&&e.headRevisionId==z&&EditorUi.debug("DriveClient: Remote Etag Changed","local",n,
"remote",e.etag,"rev",b.desc.headRevisionId,"response",[e],"file",[b]),k(c,e)}catch(fa){u(fa)}}),mxUtils.bind(this,function(){k(c)})):k(c)}catch(na){u(na)}}}))}catch(ba){u(ba)}}),y=mxUtils.bind(this,function(c){b.saveLevel=9;if(c||null==n)p(c);else{var d=!0,e=null;try{e=window.setTimeout(mxUtils.bind(this,function(){d=!1;k({code:App.ERROR_TIMEOUT})}),3*this.ui.timeout)}catch(aa){}this.executeRequest({url:"/files/"+b.getId()+"?supportsAllDrives=true&fields="+this.catchupFields},mxUtils.bind(this,function(f){window.clearTimeout(e);
if(d){b.saveLevel=10;try{null!=f&&f.headRevisionId==z?("1"==urlParams.test&&n!=f.etag&&EditorUi.debug("DriveClient: Preflight Etag Update","from",n,"to",f.etag,"rev",b.desc.headRevisionId,"response",[f],"file",[b]),n=f.etag,p(c)):k({error:{code:412}},f)}catch(ba){u(ba)}}}),mxUtils.bind(this,function(c){window.clearTimeout(e);d&&(b.saveLevel=11,k(c))}))}});if(B&&null==g){b.saveLevel=8;var q=new Image;q.onload=mxUtils.bind(this,function(){try{var b=this.thumbnailWidth/q.width,c=document.createElement("canvas");
-c.width=this.thumbnailWidth;c.height=Math.floor(q.height*b);c.getContext("2d").drawImage(q,0,0,c.width,c.height);var d=c.toDataURL(),d=d.substring(d.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_");E.thumbnail={image:d,mimeType:"image/png"};y(!1)}catch(aa){try{y(!1)}catch(ba){u(ba)}}});q.src="data:image/png;base64,"+e}else y(!1)}catch(W){u(W)}});if(B){var G=this.ui.getPngFileProperties(this.ui.fileNode);this.ui.getEmbeddedPng(mxUtils.bind(this,function(b){M(b,!0)}),k,this.ui.getCurrentFile()!=
-b?t:null,G.scale,G.border)}else M(t,!1)}catch(P){u(P)}});try{b.saveLevel=2,(f||B||b.constructor==DriveLibrary||!this.enableThumbnails||"0"==urlParams.thumb||null!=E.mimeType&&"application/vnd.jgraph.mxfile"!=E.mimeType.substring(0,29)||!this.ui.getThumbnail(this.thumbnailWidth,mxUtils.bind(this,function(b){try{var c=null;try{null!=b&&(c=b.toDataURL("image/png")),null!=c&&(c=c.length>this.maxThumbnailSize?null:c.substring(c.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_"))}catch(H){c=null}G(c,
-"image/png")}catch(H){u(H)}})))&&G(null,null,b.constructor!=DriveLibrary)}catch(F){u(F)}}else this.ui.editor.graph.reset(),k({message:mxResources.get("readOnly")})}catch(F){u(F)}};DriveClient.prototype.insertFile=function(b,c,e,g,n,f,l){f=null!=f?f:this.xmlMimeType;b={mimeType:f,title:b};null!=e&&(b.parents=[{kind:"drive#fileLink",id:e}]);this.executeRequest(this.createUploadRequest(null,b,c,!1,l),mxUtils.bind(this,function(b){f==this.libraryMimeType?g(new DriveLibrary(this.ui,c,b)):0==b?null!=n&&
+c.width=this.thumbnailWidth;c.height=Math.floor(q.height*b);c.getContext("2d").drawImage(q,0,0,c.width,c.height);var d=c.toDataURL(),d=d.substring(d.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_");F.thumbnail={image:d,mimeType:"image/png"};y(!1)}catch(aa){try{y(!1)}catch(ba){u(ba)}}});q.src="data:image/png;base64,"+e}else y(!1)}catch(W){u(W)}});if(B){var G=this.ui.getPngFileProperties(this.ui.fileNode);this.ui.getEmbeddedPng(mxUtils.bind(this,function(b){M(b,!0)}),k,this.ui.getCurrentFile()!=
+b?t:null,G.scale,G.border)}else M(t,!1)}catch(P){u(P)}});try{b.saveLevel=2,(f||B||b.constructor==DriveLibrary||!this.enableThumbnails||"0"==urlParams.thumb||null!=F.mimeType&&"application/vnd.jgraph.mxfile"!=F.mimeType.substring(0,29)||!this.ui.getThumbnail(this.thumbnailWidth,mxUtils.bind(this,function(b){try{var c=null;try{null!=b&&(c=b.toDataURL("image/png")),null!=c&&(c=c.length>this.maxThumbnailSize?null:c.substring(c.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_"))}catch(H){c=null}G(c,
+"image/png")}catch(H){u(H)}})))&&G(null,null,b.constructor!=DriveLibrary)}catch(E){u(E)}}else this.ui.editor.graph.reset(),k({message:mxResources.get("readOnly")})}catch(E){u(E)}};DriveClient.prototype.insertFile=function(b,c,e,g,n,f,l){f=null!=f?f:this.xmlMimeType;b={mimeType:f,title:b};null!=e&&(b.parents=[{kind:"drive#fileLink",id:e}]);this.executeRequest(this.createUploadRequest(null,b,c,!1,l),mxUtils.bind(this,function(b){f==this.libraryMimeType?g(new DriveLibrary(this.ui,c,b)):0==b?null!=n&&
n({message:mxResources.get("errorSavingFile")}):g(new DriveFile(this.ui,c,b))}),n)};DriveClient.prototype.createUploadRequest=function(b,c,e,g,n,f,l){n=null!=n?n:!1;var d={"Content-Type":'multipart/mixed; boundary="-------314159265358979323846"'};null!=f&&(d["If-Match"]=f);b={fullUrl:"https://content.googleapis.com/upload/drive/v2/files"+(null!=b?"/"+b:"")+"?uploadType=multipart&supportsAllDrives=true&enforceSingleParent=true&fields="+this.allFields,method:null!=b?"PUT":"POST",headers:d,params:"\r\n---------314159265358979323846\r\nContent-Type: application/json\r\n\r\n"+
JSON.stringify(c)+"\r\n---------314159265358979323846\r\nContent-Type: application/octect-stream\r\nContent-Transfer-Encoding: base64\r\n\r\n"+(null!=e?n?e:!window.btoa||mxClient.IS_IE||mxClient.IS_IE11?Base64.encode(e):Graph.base64EncodeUnicode(e):"")+"\r\n---------314159265358979323846--"};g||(b.fullUrl+="&newRevision=false");l&&(b.fullUrl+="&pinned=true");return b};DriveClient.prototype.createLinkPicker=function(){var d=e.linkPicker;if(null==d||e.linkPickerToken!=b){e.linkPickerToken=b;var d=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0).setSelectFolderEnabled(!0),
c=(new google.picker.DocsView).setIncludeFolders(!0).setSelectFolderEnabled(!0),k=(new google.picker.DocsView).setIncludeFolders(!0).setEnableDrives(!0).setSelectFolderEnabled(!0),d=(new google.picker.PickerBuilder).setAppId(this.appId).setLocale(mxLanguage).setOAuthToken(e.linkPickerToken).enableFeature(google.picker.Feature.SUPPORT_DRIVES).addView(d).addView(c).addView(k).addView(google.picker.ViewId.RECENTLY_PICKED)}return d};DriveClient.prototype.pickFile=function(d,c,k){this.filePickerCallback=
@@ -11406,8 +11406,8 @@ x=mxUtils.bind(this,function(b){null==b&&(f.innerHTML="");this.ui.spinner.spin(f
b);this.executeRequest("/v1/databases/"+encodeURIComponent(c)+"/query",JSON.stringify(g),"POST",mxUtils.bind(this,function(g){this.ui.spinner.stop();null==b&&(q(),f.appendChild(p("../ [Up]",mxUtils.bind(this,function(){c=null;A()}),"4px")));var k=g.results;if(null==k||0==k.length)mxUtils.write(f,mxResources.get("noFiles"));else{for(var m=!0,n=0;n<k.length;n++)mxUtils.bind(this,function(b,c){var e=l.cloneNode();e.style.backgroundColor=m?Editor.isDarkMode()?"#000000":"#eeeeee":"";m=!m;var g=document.createElement("img");
g.src=IMAGE_PATH+"/file.png";g.setAttribute("align","absmiddle");g.style.marginRight="4px";g.style.marginTop="-4px";g.width=20;e.appendChild(g);e.appendChild(p(this.getTitle(b.properties).title,mxUtils.bind(this,function(){this.ui.hideDialog();d(b.id)})));f.appendChild(e)})(k[n],n);g.has_more&&(b=g.next_cursor,f.appendChild(u),v=function(){f.scrollTop>=f.scrollHeight-f.offsetHeight&&e()},mxEvent.addListener(f,"scroll",v))}}),t,!0)}),A=mxUtils.bind(this,function(g){null==g&&(f.innerHTML="");m.okButton.setAttribute("disabled",
"disabled");this.ui.spinner.spin(f,mxResources.get("loading"));null!=v&&mxEvent.removeListener(f,"scroll",v);null!=u&&null!=u.parentNode&&u.parentNode.removeChild(u);u=document.createElement("a");u.style.display="block";u.style.cursor="pointer";mxUtils.write(u,mxResources.get("more")+"...");var k=mxUtils.bind(this,function(){A(g)});mxEvent.addListener(u,"click",k);this.executeRequest("/v1/databases?page_size=100"+(null!=g?"&start_cursor="+g:""),null,"GET",mxUtils.bind(this,function(m){this.ui.spinner.stop();
-var n=m.results,y=0;if(null==n||0==n.length)mxUtils.write(f,mxResources.get("noDBs"));else for(var q=0;q<n.length;q++){var t=n[q].properties[this.xmlField]&&"rich_text"==n[q].properties[this.xmlField].type;if(!b||t)mxUtils.bind(this,function(g,k,m){var n=l.cloneNode();n.style.backgroundColor=0==k%2?Editor.isDarkMode()?"#000000":"#eeeeee":"";n.appendChild(p(this.getTitleVal(g),mxUtils.bind(this,function(){c=g.id;e=this.getTitleVal(g);b?x():(this.ui.hideDialog(),d({id:c,drawioReady:m,schema:g}))})));
-f.appendChild(n)})(n[q],q,t),y++}m.has_more?(g=m.next_cursor,0==y?k():(f.appendChild(u),v=function(){f.scrollTop>=f.scrollHeight-f.offsetHeight&&k()},mxEvent.addListener(f,"scroll",v))):0==y&&""==f.innerHTML&&mxUtils.write(f,mxResources.get("noDBs"))}),t)});A()};NotionClient.prototype.logout=function(){this.executeRequest("/removeToken",null,"GET",function(){},function(){});this.setUser(null);b=null}})();DrawioComment=function(b,e,d,c,k,g,n){this.file=b;this.id=e;this.content=d;this.modifiedDate=c;this.createdDate=k;this.isResolved=g;this.user=n;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,e,d,c,k){e()};DrawioComment.prototype.editComment=function(b,e,d){e()};DrawioComment.prototype.deleteComment=function(b,e){b()};DriveComment=function(b,e,d,c,k,g,n,f){DrawioComment.call(this,b,e,d,c,k,g,n);this.pCommentId=f};mxUtils.extend(DriveComment,DrawioComment);DriveComment.prototype.addReply=function(b,e,d,c,k){b={content:b.content};c?b.verb="resolve":k&&(b.verb="reopen");this.file.ui.drive.executeRequest({url:"/files/"+this.file.getId()+"/comments/"+this.id+"/replies",params:b,method:"POST"},mxUtils.bind(this,function(b){e(b.replyId)}),d)};
+var n=m.results,y=0;if(null==n||0==n.length)mxUtils.write(f,mxResources.get("noDBs"));else for(var q=0;q<n.length;q++){var B=n[q].properties[this.xmlField]&&"rich_text"==n[q].properties[this.xmlField].type;if(!b||B)mxUtils.bind(this,function(g,k,m){var n=l.cloneNode();n.style.backgroundColor=0==k%2?Editor.isDarkMode()?"#000000":"#eeeeee":"";n.appendChild(p(this.getTitleVal(g),mxUtils.bind(this,function(){c=g.id;e=this.getTitleVal(g);b?x():(this.ui.hideDialog(),d({id:c,drawioReady:m,schema:g}))})));
+f.appendChild(n)})(n[q],q,B),y++}m.has_more?(g=m.next_cursor,0==y?k():(f.appendChild(u),v=function(){f.scrollTop>=f.scrollHeight-f.offsetHeight&&k()},mxEvent.addListener(f,"scroll",v))):0==y&&""==f.innerHTML&&mxUtils.write(f,mxResources.get("noDBs"))}),t)});A()};NotionClient.prototype.logout=function(){this.executeRequest("/removeToken",null,"GET",function(){},function(){});this.setUser(null);b=null}})();DrawioComment=function(b,e,d,c,k,g,n){this.file=b;this.id=e;this.content=d;this.modifiedDate=c;this.createdDate=k;this.isResolved=g;this.user=n;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,e,d,c,k){e()};DrawioComment.prototype.editComment=function(b,e,d){e()};DrawioComment.prototype.deleteComment=function(b,e){b()};DriveComment=function(b,e,d,c,k,g,n,f){DrawioComment.call(this,b,e,d,c,k,g,n);this.pCommentId=f};mxUtils.extend(DriveComment,DrawioComment);DriveComment.prototype.addReply=function(b,e,d,c,k){b={content:b.content};c?b.verb="resolve":k&&(b.verb="reopen");this.file.ui.drive.executeRequest({url:"/files/"+this.file.getId()+"/comments/"+this.id+"/replies",params:b,method:"POST"},mxUtils.bind(this,function(b){e(b.replyId)}),d)};
DriveComment.prototype.editComment=function(b,e,d){this.content=b;b={content:b};this.file.ui.drive.executeRequest(this.pCommentId?{url:"/files/"+this.file.getId()+"/comments/"+this.pCommentId+"/replies/"+this.id,params:b,method:"PATCH"}:{url:"/files/"+this.file.getId()+"/comments/"+this.id,params:b,method:"PATCH"},e,d)};
DriveComment.prototype.deleteComment=function(b,e){this.file.ui.drive.executeRequest(this.pCommentId?{url:"/files/"+this.file.getId()+"/comments/"+this.pCommentId+"/replies/"+this.id,method:"DELETE"}:{url:"/files/"+this.file.getId()+"/comments/"+this.id,method:"DELETE"},b,e)};function mxODPicker(b,e,d,c,k,g,n,f,l,m,p,q,t){function u(b,c){c=c||document;return c.querySelector(b)}function v(b,d,e){if(null==b["@microsoft.graph.downloadUrl"])if(null==b.parentReference)e();else{c(b.id,b.parentReference.driveId,function(b){v(b,d,e)},e);return}var f=new XMLHttpRequest;f.open("GET",b["@microsoft.graph.downloadUrl"]);var g=b.file?"image/png"==b.file.mimeType:!1;f.onreadystatechange=function(){if(4==this.readyState){if(200<=this.status&&299>=this.status)try{var b=f.responseText;
g&&(b="data:image/png;base64,"+Editor.base64Encode(b),b=Editor.extractGraphModelFromPng(b));var c=mxUtils.parseXml(b),k=Editor.extractGraphModel(c.documentElement);if(null!=k){d(k.ownerDocument);return}}catch(T){}e()}};g&&f.overrideMimeType&&f.overrideMimeType("text/plain; charset=x-user-defined");f.send()}function x(){q&&null!=I?H.exportToCanvas(function(b){b=EditorUi.prototype.createImageDataUri(b,null,"png");n(L,b);g(L)},400,null,null,function(b){console.log(b)},600,null,null,null,null,null,I):
@@ -11417,23 +11417,23 @@ f.innerHTML=" &gt; ";b.appendChild(f)}null!=P[P.length-1]&&(c=document.createEle
x()}}function y(b,c,g,m,n){function p(c){D.stop();var d=document.createElement("table");d.className="odFileListGrid";for(var f=null,g=0,k=0;null!=c&&k<c.length;k++){var m=c[k];if(1!=q||!m.webUrl||0<m.webUrl.indexOf("sharepoint.com/sites/")||0>m.webUrl.indexOf("sharepoint.com/")){var n=m.displayName||m.name,p=mxUtils.htmlEntities(m.description||n);q&&(m.folder=!0);var y=null!=m.folder;if(!l||y){var t=document.createElement("tr");t.className=g++%2?"odOddRow":"odEvenRow";var u=document.createElement("td");
u.style.width="36px";var C=document.createElement("img");C.src="/images/"+(y?"folder.png":"file.png");C.className="odFileImg";u.appendChild(C);t.appendChild(u);u=document.createElement("td");y=document.createElement("div");y.className="odFileTitle";y.innerHTML=mxUtils.htmlEntities(n);y.setAttribute("title",p);u.appendChild(y);t.appendChild(u);d.appendChild(t);null==f&&(f=t,f.className+=" odRowSelected",L=m,M=b,e(L));(function(c,d){t.addEventListener("dblclick",B);t.addEventListener("click",function(){f!=
d&&(f.className=f.className.replace("odRowSelected",""),f=d,f.className+=" odRowSelected",L=c,M=b,e(L))})})(m,t)}}}0==g?(c=document.createElement("div"),c.className="odEmptyFolder",c.innerHTML=mxUtils.htmlEntities(mxResources.get("folderEmpty",null,"Folder is empty!")),v.appendChild(c)):v.appendChild(d);z();Q=!1}if(!Q){u(".odCatsList").style.display="block";u(".odFilesSec").style.display="block";null!=O&&(O.innerHTML="",O.style.top="50%");var y=Q=!0,q=0;K=arguments;var t=setTimeout(function(){Q=y=
-!1;D.stop();f(mxResources.get("timeout"))},2E4),v=u(".odFilesList");v.innerHTML="";D.spin(v);var C;switch(b){case "recent":P=[{name:mxResources.get("recent",null,"Recent"),driveId:b}];C=k()||{};var x=[],E;for(E in C)x.push(C[E]);clearTimeout(t);p(x);return;case "shared":C="/me/drive/sharedWithMe";P=[{name:mxResources.get("sharedWithMe",null,"Shared With Me"),driveId:b}];break;case "sharepoint":C="/sites?search=";P=[{name:mxResources.get("sharepointSites",null,"Sharepoint Sites"),driveId:b}];q=1;break;
+!1;D.stop();f(mxResources.get("timeout"))},2E4),v=u(".odFilesList");v.innerHTML="";D.spin(v);var C;switch(b){case "recent":P=[{name:mxResources.get("recent",null,"Recent"),driveId:b}];C=k()||{};var x=[],F;for(F in C)x.push(C[F]);clearTimeout(t);p(x);return;case "shared":C="/me/drive/sharedWithMe";P=[{name:mxResources.get("sharedWithMe",null,"Shared With Me"),driveId:b}];break;case "sharepoint":C="/sites?search=";P=[{name:mxResources.get("sharepointSites",null,"Sharepoint Sites"),driveId:b}];q=1;break;
case "site":P.push({name:m,driveId:b,folderId:c,siteId:g});C="/sites/"+g+"/drives";q=2;break;case "subsite":P.push({name:m,driveId:b,folderId:c,siteId:g});C="/drives/"+g+(c?"/items/"+c:"/root")+"/children";break;case "search":b=M;P=[{driveId:b,name:mxResources.get("back",null,"Back")}];n=encodeURIComponent(n.replace(/\'/g,"\\'"));C=b?"/drives/"+b+"/root/search(q='"+n+"')":"/me/drive/root/search(q='"+n+"')";break;default:null==c?P=[{driveId:b}]:P.push({name:m,driveId:b,folderId:c}),C=(b?"/drives/"+
b:"/me/drive")+(c?"/items/"+c:"/root")+"/children"}q||(C+=(0<C.indexOf("?")?"&":"?")+"select=id,name,description,parentReference,file,createdBy,lastModifiedBy,lastModifiedDateTime,size,folder,remoteItem,@microsoft.graph.downloadUrl");d(C,function(b){if(y){clearTimeout(t);b=b.value||[];for(var c=q?b:[],d=0;!q&&d<b.length;d++){var e=b[d],f=e.file?e.file.mimeType:null;(e.folder||"text/html"==f||"text/xml"==f||"application/xml"==f||"image/png"==f||/\.svg$/.test(e.name)||/\.html$/.test(e.name)||/\.xml$/.test(e.name)||
-/\.png$/.test(e.name)||/\.drawio$/.test(e.name))&&c.push(e)}p(c)}},function(b){if(y){clearTimeout(t);var c=null;try{c=JSON.parse(b.responseText).error.message}catch(ea){}f(mxResources.get("errorFetchingFolder",null,"Error fetching folder items")+(null!=c?" ("+c+")":""));Q=!1;D.stop()}})}}function C(b){W.className=W.className.replace("odCatSelected","");W=b;W.className+=" odCatSelected"}function E(b){Q||(Y=null,y("search",null,null,null,b))}var G="";null==e&&(e=A,G='<div style="text-align: center;" class="odPreview"></div>');
+/\.png$/.test(e.name)||/\.drawio$/.test(e.name))&&c.push(e)}p(c)}},function(b){if(y){clearTimeout(t);var c=null;try{c=JSON.parse(b.responseText).error.message}catch(ea){}f(mxResources.get("errorFetchingFolder",null,"Error fetching folder items")+(null!=c?" ("+c+")":""));Q=!1;D.stop()}})}}function C(b){W.className=W.className.replace("odCatSelected","");W=b;W.className+=" odCatSelected"}function F(b){Q||(Y=null,y("search",null,null,null,b))}var G="";null==e&&(e=A,G='<div style="text-align: center;" class="odPreview"></div>');
null==k&&(k=function(){var b=null;try{b=JSON.parse(localStorage.getItem("mxODPickerRecentList"))}catch(aa){}return b});null==g&&(g=function(b){if(null!=b){var c=k()||{};delete b["@microsoft.graph.downloadUrl"];c[b.id]=b;localStorage.setItem("mxODPickerRecentList",JSON.stringify(c))}});var G='<div class="odCatsList"><div class="odCatsListLbl">OneDrive</div><div id="odFiles" class="odCatListTitle odCatSelected">'+mxUtils.htmlEntities(mxResources.get("files"))+'</div><div id="odRecent" class="odCatListTitle">'+
mxUtils.htmlEntities(mxResources.get("recent"))+'</div><div id="odShared" class="odCatListTitle">'+mxUtils.htmlEntities(mxResources.get("shared"))+'</div><div id="odSharepoint" class="odCatListTitle">'+mxUtils.htmlEntities(mxResources.get("sharepoint"))+'</div></div><div class="odFilesSec"><div class="searchBar" style="display:none"><input type="search" id="odSearchBox" placeholder="'+mxUtils.htmlEntities(mxResources.get("search"))+'"></div><div class="odFilesBreadcrumb"></div><div id="refreshOD" class="odRefreshButton"><img src="/images/update32.png" width="16" height="16" title="'+
-mxUtils.htmlEntities(mxResources.get("refresh"))+'Refresh" border="0"/></div><div class="odFilesList"></div></div>'+G+(m?'<div id="odBackBtn" class="odLinkBtn">&lt; '+mxUtils.htmlEntities(mxResources.get("back"))+"</div>":"")+(p?'<button id="odSubmitBtn" class="odSubmitBtn">'+mxUtils.htmlEntities(mxResources.get(l?"save":"open"))+"</button>":""),F=null!=window.Editor&&null!=Editor.isDarkMode&&Editor.isDarkMode(),F=".odCatsList {\tbox-sizing: border-box;\tposition:absolute;\ttop:0px;\tbottom:50%;\twidth:30%;\tborder: 1px solid #CCCCCC;\tborder-bottom:none;\tdisplay: inline-block;\toverflow-x: hidden;\toverflow-y: auto;}.odCatsListLbl {\theight: 17px;\tcolor: #6D6D6D;\tfont-size: 14px;\tfont-weight: bold;\tline-height: 17px;\tmargin: 10px 0 3px 5px;}.odFilesSec {\tbox-sizing: border-box;\tposition:absolute;\tleft:30%;\ttop:0px;\tbottom:50%;\twidth: 70%;\tborder: 1px solid #CCCCCC;\tborder-left:none;\tborder-bottom:none;\tdisplay: inline-block;\toverflow: hidden;}.odFilesBreadcrumb {\tbox-sizing: border-box;\tposition:absolute;\tmin-height: 32px;\tleft:0px;\tright:20px;\ttext-overflow:ellipsis;\toverflow:hidden;\tfont-size: 13px;\tcolor: #6D6D6D;\tpadding: 5px;}.odRefreshButton {\tbox-sizing: border-box;\tposition:absolute;\tright:0px;\ttop:0px;\tpadding: 4px;\tmargin: 1px;\theight:24px;\tcursor:default;}.odRefreshButton>img {\topacity:0.5;}.odRefreshButton:hover {\tbackground-color:#ddd;\tborder-radius:50%;}.odRefreshButton:active {\topacity:0.7;}.odFilesList {\tbox-sizing: border-box;\tposition:absolute;\ttop:32px;\tbottom:0px;\twidth: 100%;\toverflow-x: hidden;\toverflow-y: auto;}.odFileImg {\twidth: 24px;\tpadding-left: 5px;\tpadding-right: 5px;}.odFileTitle {\tcursor: default;\tfont-weight: normal;\tcolor: #666666 !important;\twidth: calc(100% - 20px);\twhite-space: nowrap;\toverflow: hidden;\ttext-overflow: ellipsis;}.odFileListGrid {\twidth: 100%;\twhite-space: nowrap;\tfont-size: 13px; box-sizing: border-box; border-spacing: 0;}.odOddRow {"+
-(F?"":"\tbackground-color: #eeeeee;")+"}.odEvenRow {"+(F?"":"\tbackground-color: #FFFFFF;")+"}.odRowSelected {\tbackground-color: #cadfff;}.odCatListTitle {\tbox-sizing: border-box;\theight: 17px;\tcursor: default;\tcolor: #666666;\tfont-size: 14px;\tline-height: 17px;\tmargin: 5px 0 5px 0px; padding-left: 10px;}.odCatSelected {\tfont-weight: bold;\tbackground-color: #cadfff;}.odEmptyFolder {\theight: 17px;\tcolor: #6D6D6D;\tfont-size: 14px;\tfont-weight: bold;\tline-height: 17px;\tmargin: 10px 0 3px 5px;\twidth: 100%; text-align: center;}.odBCFolder {\tcursor: pointer;\tcolor: #0432ff;}.odPreviewStatus {\tposition:absolute;\ttext-align:center;\twidth:100%;\ttop:50%;\ttransform: translateY(-50%);\tfont-size:13px;\topacity:0.5;}.odPreview { position:absolute;\t overflow:hidden;\t border: 1px solid #CCCCCC; bottom:0px; top: 50%; left:0px; right:0px;}.odLinkBtn { position: absolute;\tfont-size: 12px;\tcursor: pointer;\tcolor: #6D6D6D;\tleft: 5px;\tbottom: 3px;}.odSubmitBtn { position: absolute;\tcolor: #333;\tright: 5px;\tbottom: 5px;}",
-D=new Spinner({left:"50%",lines:12,length:8,width:3,radius:5,rotate:0,color:"#000",speed:1,trail:60,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9}),H=new Editor,I=null,L=null,M=null,Q=!1,P=[],K=null,X=null;this.getSelectedItem=function(){null!=L&&g(L);return L};if(null==u("#mxODPickerCss")){var J=document.head||document.getElementsByTagName("head")[0],N=document.createElement("style");J.appendChild(N);N.type="text/css";N.id="mxODPickerCss";N.appendChild(document.createTextNode(F))}b.innerHTML=
-G;var O=u(".odPreview"),W=u("#odFiles");b=function(b,c){c=c||document;return c.querySelectorAll(b)}(".odCatListTitle");for(G=0;G<b.length;G++)b[G].addEventListener("click",function(){L=X=null;if(!Q)switch(C(this),this.id){case "odFiles":y();break;case "odRecent":y("recent");break;case "odShared":y("shared");break;case "odSharepoint":y("sharepoint")}});var Y=null;u("#odSearchBox").addEventListener("keyup",function(b){var c=this;null!=Y&&clearTimeout(Y);13==b.keyCode?E(c.value):Y=setTimeout(function(){E(c.value)},
+mxUtils.htmlEntities(mxResources.get("refresh"))+'Refresh" border="0"/></div><div class="odFilesList"></div></div>'+G+(m?'<div id="odBackBtn" class="odLinkBtn">&lt; '+mxUtils.htmlEntities(mxResources.get("back"))+"</div>":"")+(p?'<button id="odSubmitBtn" class="odSubmitBtn">'+mxUtils.htmlEntities(mxResources.get(l?"save":"open"))+"</button>":""),E=null!=window.Editor&&null!=Editor.isDarkMode&&Editor.isDarkMode(),E=".odCatsList {\tbox-sizing: border-box;\tposition:absolute;\ttop:0px;\tbottom:50%;\twidth:30%;\tborder: 1px solid #CCCCCC;\tborder-bottom:none;\tdisplay: inline-block;\toverflow-x: hidden;\toverflow-y: auto;}.odCatsListLbl {\theight: 17px;\tcolor: #6D6D6D;\tfont-size: 14px;\tfont-weight: bold;\tline-height: 17px;\tmargin: 10px 0 3px 5px;}.odFilesSec {\tbox-sizing: border-box;\tposition:absolute;\tleft:30%;\ttop:0px;\tbottom:50%;\twidth: 70%;\tborder: 1px solid #CCCCCC;\tborder-left:none;\tborder-bottom:none;\tdisplay: inline-block;\toverflow: hidden;}.odFilesBreadcrumb {\tbox-sizing: border-box;\tposition:absolute;\tmin-height: 32px;\tleft:0px;\tright:20px;\ttext-overflow:ellipsis;\toverflow:hidden;\tfont-size: 13px;\tcolor: #6D6D6D;\tpadding: 5px;}.odRefreshButton {\tbox-sizing: border-box;\tposition:absolute;\tright:0px;\ttop:0px;\tpadding: 4px;\tmargin: 1px;\theight:24px;\tcursor:default;}.odRefreshButton>img {\topacity:0.5;}.odRefreshButton:hover {\tbackground-color:#ddd;\tborder-radius:50%;}.odRefreshButton:active {\topacity:0.7;}.odFilesList {\tbox-sizing: border-box;\tposition:absolute;\ttop:32px;\tbottom:0px;\twidth: 100%;\toverflow-x: hidden;\toverflow-y: auto;}.odFileImg {\twidth: 24px;\tpadding-left: 5px;\tpadding-right: 5px;}.odFileTitle {\tcursor: default;\tfont-weight: normal;\tcolor: #666666 !important;\twidth: calc(100% - 20px);\twhite-space: nowrap;\toverflow: hidden;\ttext-overflow: ellipsis;}.odFileListGrid {\twidth: 100%;\twhite-space: nowrap;\tfont-size: 13px; box-sizing: border-box; border-spacing: 0;}.odOddRow {"+
+(E?"":"\tbackground-color: #eeeeee;")+"}.odEvenRow {"+(E?"":"\tbackground-color: #FFFFFF;")+"}.odRowSelected {\tbackground-color: #cadfff;}.odCatListTitle {\tbox-sizing: border-box;\theight: 17px;\tcursor: default;\tcolor: #666666;\tfont-size: 14px;\tline-height: 17px;\tmargin: 5px 0 5px 0px; padding-left: 10px;}.odCatSelected {\tfont-weight: bold;\tbackground-color: #cadfff;}.odEmptyFolder {\theight: 17px;\tcolor: #6D6D6D;\tfont-size: 14px;\tfont-weight: bold;\tline-height: 17px;\tmargin: 10px 0 3px 5px;\twidth: 100%; text-align: center;}.odBCFolder {\tcursor: pointer;\tcolor: #0432ff;}.odPreviewStatus {\tposition:absolute;\ttext-align:center;\twidth:100%;\ttop:50%;\ttransform: translateY(-50%);\tfont-size:13px;\topacity:0.5;}.odPreview { position:absolute;\t overflow:hidden;\t border: 1px solid #CCCCCC; bottom:0px; top: 50%; left:0px; right:0px;}.odLinkBtn { position: absolute;\tfont-size: 12px;\tcursor: pointer;\tcolor: #6D6D6D;\tleft: 5px;\tbottom: 3px;}.odSubmitBtn { position: absolute;\tcolor: #333;\tright: 5px;\tbottom: 5px;}",
+D=new Spinner({left:"50%",lines:12,length:8,width:3,radius:5,rotate:0,color:"#000",speed:1,trail:60,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9}),H=new Editor,I=null,L=null,M=null,Q=!1,P=[],K=null,X=null;this.getSelectedItem=function(){null!=L&&g(L);return L};if(null==u("#mxODPickerCss")){var J=document.head||document.getElementsByTagName("head")[0],N=document.createElement("style");J.appendChild(N);N.type="text/css";N.id="mxODPickerCss";N.appendChild(document.createTextNode(E))}b.innerHTML=
+G;var O=u(".odPreview"),W=u("#odFiles");b=function(b,c){c=c||document;return c.querySelectorAll(b)}(".odCatListTitle");for(G=0;G<b.length;G++)b[G].addEventListener("click",function(){L=X=null;if(!Q)switch(C(this),this.id){case "odFiles":y();break;case "odRecent":y("recent");break;case "odShared":y("shared");break;case "odSharepoint":y("sharepoint")}});var Y=null;u("#odSearchBox").addEventListener("keyup",function(b){var c=this;null!=Y&&clearTimeout(Y);13==b.keyCode?F(c.value):Y=setTimeout(function(){F(c.value)},
500)});u("#refreshOD").addEventListener("click",function(){null!=K&&(e(null),y.apply(this,K))});m&&u("#odBackBtn").addEventListener("click",m);p&&u("#odSubmitBtn").addEventListener("click",x);document.body.onselectstart=function(){return!1};null!=t?(m=t.pop(),"sharepoint"==t[0].driveId&&C(u("#odSharepoint")),P=t,y(m.driveId,m.folderId,m.siteId,m.name)):y()};App=function(b,e,d){EditorUi.call(this,b,e,null!=d?d:"1"==urlParams.lightbox||"min"==uiTheme&&"0"!=urlParams.chrome);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||(window.onunload=mxUtils.bind(this,function(){var b=this.getCurrentFile();if(null!=b&&b.isModified()){var d={category:"DISCARD-FILE-"+b.getHash(),action:(b.savingFile?"saving":"")+(b.savingFile&&null!=b.savingFileTime?"_"+Math.round((Date.now()-b.savingFileTime.getTime())/1E3):"")+(null!=b.saveLevel?"-sl_"+b.saveLevel:"")+"-age_"+(null!=
b.ageStart?Math.round((Date.now()-b.ageStart.getTime())/1E3):"x")+(this.editor.autosave?"":"-nosave")+(b.isAutosave()?"":"-noauto")+"-open_"+(null!=b.opened?Math.round((Date.now()-b.opened.getTime())/1E3):"x")+"-save_"+(null!=b.lastSaved?Math.round((Date.now()-b.lastSaved.getTime())/1E3):"x")+"-change_"+(null!=b.lastChanged?Math.round((Date.now()-b.lastChanged.getTime())/1E3):"x")+"-alive_"+Math.round((Date.now()-App.startTime.getTime())/1E3),label:null!=b.sync?"client_"+b.sync.clientId:"nosync"};
b.constructor==DriveFile&&null!=b.desc&&null!=this.drive&&(d.label+=(null!=this.drive.user?"-user_"+this.drive.user.id:"-nouser")+"-rev_"+b.desc.headRevisionId+"-mod_"+b.desc.modifiedDate+"-size_"+b.getSize()+"-mime_"+b.desc.mimeType);EditorUi.logEvent(d)}}));this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(){var b=this.getCurrentFile();null!=b&&EditorUi.logEvent({category:(this.editor.autosave?"ON":"OFF")+"-AUTOSAVE-FILE-"+b.getHash(),action:"changed",label:"autosave_"+(this.editor.autosave?
"on":"off")})}));mxClient.IS_SVG?mxGraph.prototype.warningImage.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAE7SURBVHjaYvz//z8DJQAggBjwGXDuHMP/tWuD/uPTCxBAOA0AaQRK/f/+XeJ/cbHlf1wGAAQQTgPu3QNLgfHSpZo4DQAIIKwGwGyH4e/fFbG6AiQJEEAs2Ew2NFzH8OOHBMO6dT/A/KCg7wxGRh+wuhQggDBcALMdFIAcHBxgDGJjcwVIIUAAYbhAUXEdVos4OO4DXcGBIQ4QQCguQPY7sgtgAYruCpAgQACx4LJdU1OCwctLEcyWlLwPJF+AXQE0EMUBAAEEdwF6yMOiD4RRY0QT7gqQAEAAseDzu6XldYYPH9DD4joQa8L5AAEENgWb7SBcXa0JDQMBrK4AcQACiAlfyOMCEFdAnAYQQEz4FLa0XGf4/v0H0IIPONUABBAjyBmMjIwMS5cK/L927QORbtBkaG29DtYLEGAAH6f7oq3Zc+kAAAAASUVORK5CYII=":
(new Image).src=mxGraph.prototype.warningImage.src;window.openWindow=mxUtils.bind(this,function(b,d,e){if("1"==urlParams.openInSameWin||navigator.standalone)e();else{var c=null;try{c=window.open(b)}catch(f){}null==c||void 0===c?this.showDialog((new PopupDialog(this,b,d,e)).container,320,140,!0,!0):null!=d&&d()}});this.updateDocumentTitle();this.updateUi();window.showOpenAlert=mxUtils.bind(this,function(b){null!=window.openFile&&window.openFile.cancel(!0);this.handleError(b)});this.editor.chromeless&&
!this.editor.editable||this.addFileDropHandler([document]);if(null!=App.DrawPlugins){for(b=0;b<App.DrawPlugins.length;b++)try{App.DrawPlugins[b](this)}catch(c){null!=window.console&&console.log("Plugin Error:",c,App.DrawPlugins[b])}finally{App.embedModePluginsCount--,this.initializeEmbedMode()}window.Draw.loadPlugin=mxUtils.bind(this,function(b){try{b(this)}finally{App.embedModePluginsCount--,this.initializeEmbedMode()}});setTimeout(mxUtils.bind(this,function(){0<App.embedModePluginsCount&&(App.embedModePluginsCount=
-0,this.initializeEmbedMode())}),5E3)}this.load()};App.ERROR_TIMEOUT="timeout";App.ERROR_BUSY="busy";App.ERROR_UNKNOWN="unknown";App.MODE_GOOGLE="google";App.MODE_DROPBOX="dropbox";App.MODE_ONEDRIVE="onedrive";App.MODE_GITHUB="github";App.MODE_GITLAB="gitlab";App.MODE_DEVICE="device";App.MODE_BROWSER="browser";App.MODE_TRELLO="trello";App.MODE_NOTION="notion";App.MODE_EMBED="embed";App.DROPBOX_APPKEY=window.DRAWIO_DROPBOX_ID;App.DROPBOX_URL=window.DRAWIO_BASE_URL+"/js/dropbox/Dropbox-sdk.min.js";
+0,this.initializeEmbedMode())}),5E3)}this.load()};App.ERROR_TIMEOUT="timeout";App.ERROR_BUSY="busy";App.ERROR_UNKNOWN="unknown";App.MODE_GOOGLE="google";App.MODE_DROPBOX="dropbox";App.MODE_ONEDRIVE="onedrive";App.MODE_GITHUB="github";App.MODE_GITLAB="gitlab";App.MODE_DEVICE="device";App.MODE_BROWSER="browser";App.MODE_TRELLO="trello";App.MODE_NOTION="notion";App.MODE_EMBED="embed";App.MODE_ATLAS="atlas";App.DROPBOX_APPKEY=window.DRAWIO_DROPBOX_ID;App.DROPBOX_URL=window.DRAWIO_BASE_URL+"/js/dropbox/Dropbox-sdk.min.js";
App.DROPINS_URL="https://www.dropbox.com/static/api/2/dropins.js";App.ONEDRIVE_URL=mxClient.IS_IE11?"https://js.live.net/v7.2/OneDrive.js":window.DRAWIO_BASE_URL+"/js/onedrive/OneDrive.js";App.TRELLO_URL="https://api.trello.com/1/client.js";App.TRELLO_JQUERY_URL=window.DRAWIO_BASE_URL+"/js/jquery/jquery-3.3.1.min.js";App.PUSHER_KEY="1e756b07a690c5bdb054";App.PUSHER_CLUSTER="eu";App.PUSHER_URL="https://js.pusher.com/4.3/pusher.min.js";App.SOCKET_IO_URL=window.DRAWIO_BASE_URL+"/js/socket.io/socket.io.min.js";
App.SIMPLE_PEER_URL=window.DRAWIO_BASE_URL+"/js/socket.io/simplepeer9.10.0.min.js";App.SOCKET_IO_SRV="http://localhost:3030";App.GOOGLE_APIS="drive-share";App.startTime=new Date;
App.pluginRegistry={"4xAKTrabTpTzahoLthkwPNUn":"plugins/explore.js",ex:"plugins/explore.js",p1:"plugins/p1.js",ac:"plugins/connect.js",acj:"plugins/connectJira.js",ac148:"plugins/cConf-1-4-8.js",ac148cmnt:"plugins/cConf-comments.js",voice:"plugins/voice.js",tips:"plugins/tooltips.js",svgdata:"plugins/svgdata.js",electron:"plugins/electron.js",number:"plugins/number.js",sql:"plugins/sql.js",props:"plugins/props.js",text:"plugins/text.js",anim:"plugins/animation.js",update:"plugins/update.js",trees:"plugins/trees/trees.js",
@@ -11513,7 +11513,7 @@ App.prototype.getThumbnail=function(b,e){var d=!1;try{var c=!0,k=window.setTimeo
n.setBackgroundImage=this.editor.graph.setBackgroundImage;var p=this.pages[0];this.currentPage==p?n.setBackgroundImage(f):null!=p.viewState&&null!=p.viewState&&(f=p.viewState.backgroundImage,n.setBackgroundImage(f));l&&(n.defaultThemeName="default");n.getGlobalVariable=function(b){return"page"==b?p.getName():"pagenumber"==b?1:m.apply(this,arguments)};n.getGlobalVariable=m;document.body.appendChild(n.container);n.model.setRoot(p.root)}if(mxClient.IS_CHROMEAPP||this.useCanvasForExport)this.editor.exportToCanvas(mxUtils.bind(this,
function(b){try{n!=this.editor.graph&&null!=n.container.parentNode&&n.container.parentNode.removeChild(n.container)}catch(H){b=null}g(b)}),b,this.thumbImageCache,"#ffffff",function(){g()},null,null,null,null,null,null,n,null,null,null,null,"diagram",null),d=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var q=document.createElement("canvas"),t=n.getGraphBounds(),u=n.view.translate,v=n.view.scale;null!=f&&(t=mxRectangle.fromRectangle(t),t.add(new mxRectangle((u.x+f.x)*v,(u.y+f.y)*v,
f.width*v,f.height*v)));var x=b/t.width,x=Math.min(1,Math.min(3*b/(4*t.height),x)),A=Math.floor(t.x),z=Math.floor(t.y);q.setAttribute("width",Math.ceil(x*(t.width+4)));q.setAttribute("height",Math.ceil(x*(t.height+4)));var B=q.getContext("2d");B.scale(x,x);B.translate(-A,-z);var y=n.background;if(null==y||""==y||y==mxConstants.NONE)y="#ffffff";B.save();B.fillStyle=y;B.fillRect(A,z,Math.ceil(t.width+4),Math.ceil(t.height+4));B.restore();if(null!=f){var C=new Image;C.src=f.src;B.drawImage(C,f.x*x,f.y*
-x,f.width*x,f.height*x)}var E=new mxJsCanvas(q),G=new mxAsyncCanvas(this.thumbImageCache);E.images=this.thumbImageCache.images;var F=new mxImageExport;F.drawShape=function(b,c){b.shape instanceof mxShape&&b.shape.checkBounds()&&(c.save(),c.translate(.5,.5),b.shape.paint(c),c.translate(-.5,-.5),c.restore())};F.drawText=function(b,c){};F.drawState(n.getView().getState(n.model.root),G);G.finish(mxUtils.bind(this,function(){try{F.drawState(n.getView().getState(n.model.root),E),n!=this.editor.graph&&null!=
+x,f.width*x,f.height*x)}var F=new mxJsCanvas(q),G=new mxAsyncCanvas(this.thumbImageCache);F.images=this.thumbImageCache.images;var E=new mxImageExport;E.drawShape=function(b,c){b.shape instanceof mxShape&&b.shape.checkBounds()&&(c.save(),c.translate(.5,.5),b.shape.paint(c),c.translate(-.5,-.5),c.restore())};E.drawText=function(b,c){};E.drawState(n.getView().getState(n.model.root),G);G.finish(mxUtils.bind(this,function(){try{E.drawState(n.getView().getState(n.model.root),F),n!=this.editor.graph&&null!=
n.container.parentNode&&n.container.parentNode.removeChild(n.container)}catch(D){q=null}g(q)}));d=!0}}catch(D){d=!1,null!=n&&n!=this.editor.graph&&null!=n.container.parentNode&&n.container.parentNode.removeChild(n.container)}d||window.clearTimeout(k);return d};App.prototype.createBackground=function(){var b=this.createDiv("background");b.style.position="absolute";b.style.background="white";b.style.left="0px";b.style.top="0px";b.style.bottom="0px";b.style.right="0px";mxUtils.setOpacity(b,100);return b};
(function(){var b=EditorUi.prototype.setMode;App.prototype.setMode=function(e,d){b.apply(this,arguments);null!=this.mode&&(Editor.useLocalStorage=this.mode==App.MODE_BROWSER);if(null!=this.appIcon){var c=this.getCurrentFile();e=null!=c?c.getMode():e;e==App.MODE_GOOGLE?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("googleDrive")])),this.appIcon.style.cursor="pointer"):e==App.MODE_DROPBOX?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("dropbox")])),
this.appIcon.style.cursor="pointer"):e==App.MODE_ONEDRIVE?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("oneDrive")])),this.appIcon.style.cursor="pointer"):(this.appIcon.removeAttribute("title"),this.appIcon.style.cursor=e==App.MODE_DEVICE?"pointer":"default")}if(d)try{if(isLocalStorage)localStorage.setItem(".mode",e);else if("undefined"!=typeof Storage){var k=new Date;k.setYear(k.getFullYear()+1);document.cookie="MODE="+e+"; expires="+k.toUTCString()}}catch(g){}}})();
@@ -11728,7 +11728,7 @@ b=new TextareaDialog(c,mxResources.get("configuration")+":",null!=b?JSON.stringi
d),(e==mxLanguage||""==e&&null==mxLanguage)&&b.addCheckmark(g,Editor.checkmarkImage));return g});e("");b.addSeparator(d);for(var f in mxLanguageMap)e(f)})));var u=Menus.prototype.createMenubar;Menus.prototype.createMenubar=function(b){var c=u.apply(this,arguments);if(null!=c&&"1"!=urlParams.noLangIcon){var d=this.get("language");if(null!=d){d=c.addMenu("",d.funct);d.setAttribute("title",mxResources.get("language"));d.style.width="16px";d.style.paddingTop="2px";d.style.paddingLeft="4px";d.style.zIndex=
"1";d.style.position="absolute";d.style.display="block";d.style.cursor="pointer";d.style.right="17px";"atlas"==uiTheme?(d.style.top="6px",d.style.right="15px"):d.style.top="min"==uiTheme?"2px":"0px";var e=document.createElement("div");e.style.backgroundImage="url("+Editor.globeImage+")";e.style.backgroundPosition="center center";e.style.backgroundRepeat="no-repeat";e.style.backgroundSize="19px 19px";e.style.position="absolute";e.style.height="19px";e.style.width="19px";e.style.marginTop="2px";e.style.zIndex=
"1";d.appendChild(e);mxUtils.setOpacity(d,40);if("atlas"==uiTheme||"dark"==uiTheme)d.style.opacity="0.85",d.style.filter="invert(100%)";document.body.appendChild(d)}}return c}}c.customLayoutConfig=[{layout:"mxHierarchicalLayout",config:{orientation:"west",intraCellSpacing:30,interRankCellSpacing:100,interHierarchySpacing:60,parallelEdgeSpacing:10}}];c.actions.addAction("runLayout",function(){var b=new TextareaDialog(c,"Run Layouts:",JSON.stringify(c.customLayoutConfig,null,2),function(b){if(0<b.length)try{var d=
-JSON.parse(b);c.executeLayoutList(d);c.customLayoutConfig=d}catch(E){c.handleError(E),null!=window.console&&console.error(E)}},null,null,null,null,null,!0,null,null,"https://www.diagrams.net/doc/faq/apply-layouts");b.textarea.style.width="600px";b.textarea.style.height="380px";c.showDialog(b.container,620,460,!0,!0);b.init()});var p=this.get("layout"),v=p.funct;p.funct=function(b,d){v.apply(this,arguments);b.addItem(mxResources.get("orgChart"),null,function(){function b(){"undefined"!==typeof mxOrgChartLayout||
+JSON.parse(b);c.executeLayoutList(d);c.customLayoutConfig=d}catch(F){c.handleError(F),null!=window.console&&console.error(F)}},null,null,null,null,null,!0,null,null,"https://www.diagrams.net/doc/faq/apply-layouts");b.textarea.style.width="600px";b.textarea.style.height="380px";c.showDialog(b.container,620,460,!0,!0);b.init()});var p=this.get("layout"),v=p.funct;p.funct=function(b,d){v.apply(this,arguments);b.addItem(mxResources.get("orgChart"),null,function(){function b(){"undefined"!==typeof mxOrgChartLayout||
c.loadingOrgChart||c.isOffline(!0)?k():c.spinner.spin(document.body,mxResources.get("loading"))&&(c.loadingOrgChart=!0,"1"==urlParams.dev?mxscript("js/orgchart/bridge.min.js",function(){mxscript("js/orgchart/bridge.collections.min.js",function(){mxscript("js/orgchart/OrgChart.Layout.min.js",function(){mxscript("js/orgchart/mxOrgChartLayout.js",k)})})}):mxscript("js/extensions.min.js",k))}var d=null,e=20,f=20,g=!0,k=function(){c.loadingOrgChart=!1;c.spinner.stop();if("undefined"!==typeof mxOrgChartLayout&&
null!=d&&g){var b=c.editor.graph,k=new mxOrgChartLayout(b,d,e,f),l=b.getDefaultParent();1<b.model.getChildCount(b.getSelectionCell())&&(l=b.getSelectionCell());k.execute(l);g=!1}},l=document.createElement("div"),m=document.createElement("div");m.style.marginTop="6px";m.style.display="inline-block";m.style.width="140px";mxUtils.write(m,mxResources.get("orgChartType")+": ");l.appendChild(m);var n=document.createElement("select");n.style.width="200px";n.style.boxSizing="border-box";for(var m=[mxResources.get("linear"),
mxResources.get("hanger2"),mxResources.get("hanger4"),mxResources.get("fishbone1"),mxResources.get("fishbone2"),mxResources.get("1ColumnLeft"),mxResources.get("1ColumnRight"),mxResources.get("smart")],p=0;p<m.length;p++){var y=document.createElement("option");mxUtils.write(y,m[p]);y.value=p;2==p&&y.setAttribute("selected","selected");n.appendChild(y)}mxEvent.addListener(n,"change",function(){d=n.value});l.appendChild(n);m=document.createElement("div");m.style.marginTop="6px";m.style.display="inline-block";
@@ -11744,7 +11744,7 @@ d.width+", "+d.height+", 'The Title', '"+Graph.compress(mxUtils.getXml(k.encodeC
[]),f[n].push(m.id))}else k[m.id]=m.id}0<Object.keys(k).length?(e=d+": "+Object.keys(k).length+" Duplicates: "+Object.keys(k).join(", "),mxLog.debug(e+" (see console)")):mxLog.debug(d+": Checked");var p={};null==g?mxLog.debug(d+": No root"):(c(g),Object.keys(p).length!=Object.keys(b).length&&(mxLog.debug(d+": Invalid tree: (see console)"),console.log(d+": Invalid tree",f)))};"<"!=b.charAt(0)&&(b=Graph.decompress(b),mxLog.debug("See console for uncompressed XML"),console.log("xml",b));var e=mxUtils.parseXml(b),
f=c.getPagesForNode(e.documentElement,"mxGraphModel");if(null!=f&&0<f.length)try{var g=c.getHashValueForPages(f);mxLog.debug("Checksum: ",g)}catch(H){mxLog.debug("Error: ",H.message)}else mxLog.debug("No pages found for checksum");var k=e.getElementsByTagName("root");for(b=0;b<k.length;b++)d(k[b]);mxLog.show()}catch(H){c.handleError(H),null!=window.console&&console.error(H)}});b.textarea.style.width="600px";b.textarea.style.height="380px";c.showDialog(b.container,620,460,!0,!0);b.init()}));var x=
null;c.actions.addAction("testDiff",mxUtils.bind(this,function(){if(null!=c.pages){var b=new TextareaDialog(c,"Diff/Sync:","",function(b){var d=c.getCurrentFile();if(0<b.length&&null!=d)try{var e=JSON.parse(b);d.patch([e],null,!0);c.hideDialog()}catch(G){c.handleError(G)}},null,"Close",null,null,null,!0,null,"Patch",null,[["Snapshot",function(d,e){x=c.getPagesForNode(mxUtils.parseXml(c.getFileData(!0)).documentElement);b.textarea.value="Snapshot updated "+(new Date).toLocaleString()}],["Diff",function(d,
-e){try{b.textarea.value=JSON.stringify(c.diffPages(x,c.pages),null,2)}catch(E){c.handleError(E)}}]]);b.textarea.style.width="600px";b.textarea.style.height="380px";null==x?(x=c.getPagesForNode(mxUtils.parseXml(c.getFileData(!0)).documentElement),b.textarea.value="Snapshot created "+(new Date).toLocaleString()):b.textarea.value=JSON.stringify(c.diffPages(x,c.pages),null,2);c.showDialog(b.container,620,460,!0,!0);b.init()}else c.alert("No pages")}));c.actions.addAction("testInspect",mxUtils.bind(this,
+e){try{b.textarea.value=JSON.stringify(c.diffPages(x,c.pages),null,2)}catch(F){c.handleError(F)}}]]);b.textarea.style.width="600px";b.textarea.style.height="380px";null==x?(x=c.getPagesForNode(mxUtils.parseXml(c.getFileData(!0)).documentElement),b.textarea.value="Snapshot created "+(new Date).toLocaleString()):b.textarea.value=JSON.stringify(c.diffPages(x,c.pages),null,2);c.showDialog(b.container,620,460,!0,!0);b.init()}else c.alert("No pages")}));c.actions.addAction("testInspect",mxUtils.bind(this,
function(){console.log(c,k.getModel())}));c.actions.addAction("testXmlImageExport",mxUtils.bind(this,function(){var b=new mxImageExport,c=k.getGraphBounds(),d=k.view.scale,e=mxUtils.createXmlDocument(),f=e.createElement("output");e.appendChild(f);e=new mxXmlCanvas2D(f);e.translate(Math.floor((1-c.x)/d),Math.floor((1-c.y)/d));e.scale(1/d);var g=0,l=e.save;e.save=function(){g++;l.apply(this,arguments)};var m=e.restore;e.restore=function(){g--;m.apply(this,arguments)};var n=b.drawShape;b.drawShape=function(b){mxLog.debug("entering shape",
b,g);n.apply(this,arguments);mxLog.debug("leaving shape",b,g)};b.drawState(k.getView().getState(k.model.root),e);mxLog.show();mxLog.debug(mxUtils.getXml(f));mxLog.debug("stateCounter",g)}));c.actions.addAction("testShowConsole",function(){mxLog.isVisible()?mxLog.window.fit():mxLog.show();mxLog.window.div.style.zIndex=mxPopupMenu.prototype.zIndex-2});this.put("testDevelop",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b,"createSidebarEntry showBoundingBox - testCheckFile testDiff - testInspect - testXmlImageExport - testShowConsole".split(" "),
c)})))}c.actions.addAction("shapes...",function(){mxClient.IS_CHROMEAPP||!c.isOffline()?c.showDialog((new MoreShapesDialog(c,!0)).container,640,isLocalStorage?mxClient.IS_IOS?480:460:440,!0,!0):c.showDialog((new MoreShapesDialog(c,!1)).container,360,isLocalStorage?mxClient.IS_IOS?300:280:260,!0,!0)});c.actions.put("createShape",new Action(mxResources.get("shape")+"...",function(b){k.isEnabled()&&(b=new mxCell("",new mxGeometry(0,0,120,120),c.defaultCustomShapeStyle),b.vertex=!0,b=new EditShapeDialog(c,
@@ -11755,67 +11755,67 @@ k.marginLeft="26px";k.marginTop="26px";mxUtils.write(k,mxResources.get("updating
450,240,!0,!0),d.init()):c.handleError({message:mxResources.get("invalidPublicUrl")})})}));c.actions.put("embedImage",new Action(mxResources.get("image")+"...",function(){c.showEmbedImageDialog(function(b,d,e,f,g,k){c.spinner.spin(document.body,mxResources.get("loading"))&&c.createEmbedImage(b,d,e,f,g,k,function(b){c.spinner.stop();b=new EmbedDialog(c,b);c.showDialog(b.container,450,240,!0,!0);b.init()},function(b){c.spinner.stop();c.handleError(b)})},mxResources.get("image"),mxResources.get("retina"),
c.isExportToCanvas())}));c.actions.put("embedSvg",new Action(mxResources.get("formatSvg")+"...",function(){c.showEmbedImageDialog(function(b,d,e,f,g,k){c.spinner.spin(document.body,mxResources.get("loading"))&&c.createEmbedSvg(b,d,e,f,g,k,function(b){c.spinner.stop();b=new EmbedDialog(c,b);c.showDialog(b.container,450,240,!0,!0);b.init()},function(b){c.spinner.stop();c.handleError(b)})},mxResources.get("formatSvg"),mxResources.get("image"),!0,"https://www.diagrams.net/doc/faq/embed-svg.html")}));
c.actions.put("embedIframe",new Action(mxResources.get("iframe")+"...",function(){var b=k.getGraphBounds();c.showPublishLinkDialog(mxResources.get("iframe"),null,"100%",Math.ceil(b.height/k.view.scale)+2,function(b,d,e,f,g,k,l,m,n){c.spinner.spin(document.body,mxResources.get("loading"))&&c.getPublicUrl(c.getCurrentFile(),function(p){c.spinner.stop();var y=[];n&&y.push("tags=%7B%7D");p=new EmbedDialog(c,'<iframe frameborder="0" style="width:'+l+";height:"+m+';" src="'+c.createLink(b,d,e,f,g,k,p,null,
-y)+'"></iframe>');c.showDialog(p.container,450,240,!0,!0);p.init()})},!0)}));c.actions.put("embedNotion",new Action(mxResources.get("notion")+"...",function(){c.openLink("https://chrome.google.com/webstore/detail/drawio-for-notion/plhaalebpkihaccllnkdaokdoeaokmle")}));c.actions.put("publishLink",new Action(mxResources.get("link")+"...",function(){c.showPublishLinkDialog(null,null,null,null,function(b,d,e,f,g,k,l,m,n){c.spinner.spin(document.body,mxResources.get("loading"))&&c.getPublicUrl(c.getCurrentFile(),
-function(l){c.spinner.stop();var m=[];n&&m.push("tags=%7B%7D");l=new EmbedDialog(c,c.createLink(b,d,e,f,g,k,l,null,m));c.showDialog(l.container,450,240,!0,!0);l.init()})})}));c.actions.addAction("microsoftOffice...",function(){c.openLink("https://office.draw.io")});c.actions.addAction("googleDocs...",function(){c.openLink("http://docsaddon.draw.io")});c.actions.addAction("googleSlides...",function(){c.openLink("https://slidesaddon.draw.io")});c.actions.addAction("googleSheets...",function(){c.openLink("https://sheetsaddon.draw.io")});
-c.actions.addAction("googleSites...",function(){c.spinner.spin(document.body,mxResources.get("loading"))&&c.getPublicUrl(c.getCurrentFile(),function(b){c.spinner.stop();b=new GoogleSitesDialog(c,b);c.showDialog(b.container,420,256,!0,!0);b.init()})});if(isLocalStorage||mxClient.IS_CHROMEAPP)p=c.actions.addAction("scratchpad",function(){c.toggleScratchpad()}),p.setToggleAction(!0),p.setSelectedCallback(function(){return null!=c.scratchpad}),"0"!=urlParams.plugins&&c.actions.addAction("plugins...",
-function(){c.showDialog((new PluginsDialog(c)).container,360,170,!0,!1)});p=c.actions.addAction("search",function(){var b=c.sidebar.isEntryVisible("search");c.sidebar.showPalette("search",!b);isLocalStorage&&(mxSettings.settings.search=!b,mxSettings.save())});p.label=mxResources.get("searchShapes");p.setToggleAction(!0);p.setSelectedCallback(function(){return c.sidebar.isEntryVisible("search")});"1"==urlParams.embed&&(c.actions.get("save").funct=function(b){k.isEditing()&&k.stopEditing();var d="0"!=
-urlParams.pages||null!=c.pages&&1<c.pages.length?c.getFileData(!0):mxUtils.getXml(c.editor.getGraphXml());if("json"==urlParams.proto){var e=c.createLoadMessage("save");e.xml=d;b&&(e.exit=!0);d=JSON.stringify(e)}(window.opener||window.parent).postMessage(d,"*");"0"!=urlParams.modified&&"1"!=urlParams.keepmodified&&(c.editor.modified=!1,c.editor.setStatus(""));b=c.getCurrentFile();null==b||b.constructor==EmbedFile||b.constructor==LocalFile&&null==b.mode||c.saveFile()},c.actions.addAction("saveAndExit",
-function(){c.actions.get("save").funct(!0)}).label="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit"),c.actions.addAction("exit",function(){if("1"==urlParams.embedInline)c.sendEmbeddedSvgExport();else{var b=function(){c.editor.modified=!1;var b="json"==urlParams.proto?JSON.stringify({event:"exit",modified:c.editor.modified}):"";(window.opener||window.parent).postMessage(b,"*")};c.editor.modified?c.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),
-mxResources.get("discardChanges")):b()}}));this.put("exportAs",new Menu(mxUtils.bind(this,function(b,d){c.isExportToCanvas()?(this.addMenuItems(b,["exportPng"],d),c.jpgSupported&&this.addMenuItems(b,["exportJpg"],d)):c.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["exportPng","exportJpg"],d);this.addMenuItems(b,["exportSvg","-"],d);c.isOffline()||c.printPdfExport?this.addMenuItems(b,["exportPdf"],d):c.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,
-["exportPdf"],d);mxClient.IS_IE||"undefined"===typeof VsdxExport&&c.isOffline()||this.addMenuItems(b,["exportVsdx"],d);this.addMenuItems(b,["-","exportHtml","exportXml","exportUrl"],d);c.isOffline()||(b.addSeparator(d),this.addMenuItem(b,"export",d).firstChild.nextSibling.innerHTML=mxResources.get("advanced")+"...")})));this.put("importFrom",new Menu(mxUtils.bind(this,function(b,d){function e(b){b.pickFile(function(d){c.spinner.spin(document.body,mxResources.get("loading"))&&b.getFile(d,function(b){var d=
-"data:image/"==b.getData().substring(0,11)?p(b.getTitle()):"text/xml";/\.svg$/i.test(b.getTitle())&&!c.editor.isDataSvg(b.getData())&&(b.setData(Editor.createSvgDataUri(b.getData())),d="image/svg+xml");g(b.getData(),d,b.getTitle())},function(b){c.handleError(b,null!=b?mxResources.get("errorLoadingFile"):null)},b==c.drive)},!0)}var g=mxUtils.bind(this,function(b,d,e){var f=k.view,g=k.getGraphBounds(),l=k.snap(Math.ceil(Math.max(0,g.x/f.scale-f.translate.x)+4*k.gridSize)),m=k.snap(Math.ceil(Math.max(0,
-(g.y+g.height)/f.scale-f.translate.y)+4*k.gridSize));"data:image/"==b.substring(0,11)?c.loadImage(b,mxUtils.bind(this,function(f){var g=!0,n=mxUtils.bind(this,function(){c.resizeImage(f,b,mxUtils.bind(this,function(f,n,p){f=g?Math.min(1,Math.min(c.maxImageSize/n,c.maxImageSize/p)):1;c.importFile(b,d,l,m,Math.round(n*f),Math.round(p*f),e,function(b){c.spinner.stop();k.setSelectionCells(b);k.scrollCellToVisible(k.getSelectionCell())})}),g)});b.length>c.resampleThreshold?c.confirmImageResize(function(b){g=
-b;n()}):n()}),mxUtils.bind(this,function(){c.handleError({message:mxResources.get("cannotOpenFile")})})):c.importFile(b,d,l,m,0,0,e,function(b){c.spinner.stop();k.setSelectionCells(b);k.scrollCellToVisible(k.getSelectionCell())})}),p=mxUtils.bind(this,function(b){var c="text/xml";/\.png$/i.test(b)?c="image/png":/\.jpe?g$/i.test(b)?c="image/jpg":/\.gif$/i.test(b)?c="image/gif":/\.pdf$/i.test(b)&&(c="application/pdf");return c});"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=
-c.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){e(c.drive)},d):n&&"function"===typeof window.DriveClient&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1));null!=c.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",null,function(){e(c.oneDrive)},d):l&&"function"===typeof window.OneDriveClient&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=c.dropbox?
-b.addItem(mxResources.get("dropbox")+"...",null,function(){e(c.dropbox)},d):f&&"function"===typeof window.DropboxClient&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);b.addSeparator(d);null!=c.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){e(c.gitHub)},d);null!=c.gitLab&&b.addItem(mxResources.get("gitlab")+"...",null,function(){e(c.gitLab)},d);null!=c.notion&&(b.addSeparator(d),b.addItem(mxResources.get("notion")+"...",
-null,function(){e(c.notion)},d));null!=c.trello?b.addItem(mxResources.get("trello")+"...",null,function(){e(c.trello)},d):m&&"function"===typeof window.TrelloClient&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);b.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+"...",null,function(){c.importLocalFile(!1)},d);"1"!=urlParams.noDevice&&b.addItem(mxResources.get("device")+"...",null,function(){c.importLocalFile(!0)},
-d);c.isOffline()||(b.addSeparator(d),b.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(c,"",mxResources.get("import"),function(b){if(null!=b&&0<b.length&&c.spinner.spin(document.body,mxResources.get("loading"))){var d=/(\.png)($|\?)/i.test(b)?"image/png":"text/xml";c.editor.loadUrl(PROXY_URL+"?url="+encodeURIComponent(b),function(c){g(c,d,b)},function(){c.spinner.stop();c.handleError(null,mxResources.get("errorLoadingFile"))},"image/png"==d)}},mxResources.get("url"));
-c.showDialog(b.container,300,80,!0,!0);b.init()},d))}))).isEnabled=g;this.put("theme",new Menu(mxUtils.bind(this,function(b,d){var e="1"==urlParams.sketch?"sketch":mxSettings.getUi(),f=b.addItem(mxResources.get("automatic"),null,function(){mxSettings.setUi("");c.alert(mxResources.get("restartForChangeRequired"))},d);"kennedy"!=e&&"atlas"!=e&&"dark"!=e&&"min"!=e&&"sketch"!=e&&b.addCheckmark(f,Editor.checkmarkImage);b.addSeparator(d);f=b.addItem(mxResources.get("default"),null,function(){mxSettings.setUi("kennedy");
-c.alert(mxResources.get("restartForChangeRequired"))},d);"kennedy"==e&&b.addCheckmark(f,Editor.checkmarkImage);f=b.addItem(mxResources.get("minimal"),null,function(){mxSettings.setUi("min");c.alert(mxResources.get("restartForChangeRequired"))},d);"min"==e&&b.addCheckmark(f,Editor.checkmarkImage);f=b.addItem(mxResources.get("atlas"),null,function(){mxSettings.setUi("atlas");c.alert(mxResources.get("restartForChangeRequired"))},d);"atlas"==e&&b.addCheckmark(f,Editor.checkmarkImage);if("dark"==e||!mxClient.IS_IE&&
-!mxClient.IS_IE11)f=b.addItem(mxResources.get("dark"),null,function(){mxSettings.setUi("dark");c.alert(mxResources.get("restartForChangeRequired"))},d),"dark"==e&&b.addCheckmark(f,Editor.checkmarkImage);b.addSeparator(d);f=b.addItem(mxResources.get("sketch"),null,function(){mxSettings.setUi("sketch");c.alert(mxResources.get("restartForChangeRequired"))},d);"sketch"==e&&b.addCheckmark(f,Editor.checkmarkImage)})));p=this.editorUi.actions.addAction("rename...",mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile();
-if(null!=b)if(b.constructor==LocalFile&&null!=b.fileHandle)c.showSaveFilePicker(mxUtils.bind(c,function(d,e){b.invalidFileHandle=null;b.fileHandle=d;b.title=e.name;b.desc=e;c.save(e.name)}),null,c.createFileSystemOptions(b.getTitle()));else{var d=null!=b.getTitle()?b.getTitle():this.editorUi.defaultFilename,d=new FilenameDialog(this.editorUi,d,mxResources.get("rename"),mxUtils.bind(this,function(c){null!=c&&0<c.length&&null!=b&&c!=b.getTitle()&&this.editorUi.spinner.spin(document.body,mxResources.get("renaming"))&&
-b.rename(c,mxUtils.bind(this,function(b){this.editorUi.spinner.stop()}),mxUtils.bind(this,function(b){this.editorUi.handleError(b,null!=b?mxResources.get("errorRenamingFile"):null)}))}),b.constructor==DriveFile||b.constructor==StorageFile?mxResources.get("diagramName"):null,function(b){if(null!=b&&0<b.length)return!0;c.showError(mxResources.get("error"),mxResources.get("invalidName"),mxResources.get("ok"));return!1},null,null,null,null,c.editor.fileExtensions);this.editorUi.showDialog(d.container,
-340,96,!0,!0);d.init()}}));p.isEnabled=function(){return this.enabled&&g.apply(this,arguments)};p.visible="1"!=urlParams.embed;c.actions.addAction("makeCopy...",mxUtils.bind(this,function(){var b=c.getCurrentFile();if(null!=b){var d=c.getCopyFilename(b);b.constructor==DriveFile?(d=new CreateDialog(c,d,mxUtils.bind(this,function(d,e){"_blank"==e?c.editor.editAsNew(c.getFileData(),d):("download"==e&&(e=App.MODE_GOOGLE),null!=d&&0<d.length&&(e==App.MODE_GOOGLE?c.spinner.spin(document.body,mxResources.get("saving"))&&
-b.saveAs(d,mxUtils.bind(this,function(d){b.desc=d;b.save(!1,mxUtils.bind(this,function(){c.spinner.stop();b.setModified(!1);b.addAllSavedStatus()}),mxUtils.bind(this,function(b){c.handleError(b)}))}),mxUtils.bind(this,function(b){c.handleError(b)})):c.createFile(d,c.getFileData(!0),null,e)))}),mxUtils.bind(this,function(){c.hideDialog()}),mxResources.get("makeCopy"),mxResources.get("create"),null,null,!0,null,!0,null,null,null,null,c.editor.fileExtensions),c.showDialog(d.container,420,380,!0,!0),
-d.init()):c.editor.editAsNew(this.editorUi.getFileData(!0),d)}}));c.actions.addAction("moveToFolder...",mxUtils.bind(this,function(){var b=c.getCurrentFile();if(b.getMode()==App.MODE_GOOGLE||b.getMode()==App.MODE_ONEDRIVE){var d=!1;if(b.getMode()==App.MODE_GOOGLE&&null!=b.desc.parents)for(var e=0;e<b.desc.parents.length;e++)if(b.desc.parents[e].isRoot){d=!0;break}c.pickFolder(b.getMode(),mxUtils.bind(this,function(d){c.spinner.spin(document.body,mxResources.get("moving"))&&b.move(d,mxUtils.bind(this,
-function(b){c.spinner.stop()}),mxUtils.bind(this,function(b){c.handleError(b)}))}),null,!0,d)}}));this.put("publish",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b,["publishLink"],c)})));c.actions.put("useOffline",new Action(mxResources.get("useOffline")+"...",function(){c.openLink("https://app.draw.io/")}));c.actions.put("downloadDesktop",new Action(mxResources.get("downloadDesktop")+"...",function(){c.openLink("https://get.draw.io/")}));this.editorUi.actions.addAction("share...",mxUtils.bind(this,
-function(){try{var b=c.getCurrentFile();null!=b&&b.share()}catch(y){c.handleError(y)}}));this.put("embed",new Menu(mxUtils.bind(this,function(b,d){var e=c.getCurrentFile();null==e||e.getMode()!=App.MODE_GOOGLE&&e.getMode()!=App.MODE_GITHUB||!/(\.png)$/i.test(e.getTitle())||this.addMenuItems(b,["liveImage","-"],d);this.addMenuItems(b,["embedImage","embedSvg","-","embedHtml"],d);navigator.standalone||c.isOffline()||this.addMenuItems(b,["embedIframe"],d);"1"==urlParams.embed||c.isOffline()||this.addMenuItems(b,
-"- googleDocs googleSlides googleSheets - microsoftOffice - embedNotion".split(" "),d)})));c.addInsertItem=function(b,d,e,f){("plantUml"!=f||EditorUi.enablePlantUml&&!c.isOffline())&&b.addItem(e,null,mxUtils.bind(this,function(){if("fromText"==f||"formatSql"==f||"plantUml"==f||"mermaid"==f){var b=new ParseDialog(c,e,f);c.showDialog(b.container,620,420,!0,!1);c.dialog.container.style.overflow="auto"}else b=new CreateGraphDialog(c,e,f),c.showDialog(b.container,620,420,!0,!1);b.init()}),d,null,g())};
-var A=function(b,d,e,f){var g=new mxCell(b,new mxGeometry(0,0,d,e),f);g.vertex=!0;b=k.getCenterInsertPoint(k.getBoundingBoxFromGeometry([g],!0));g.geometry.x=b.x;g.geometry.y=b.y;k.getModel().beginUpdate();try{g=k.addCell(g),k.fireEvent(new mxEventObject("cellsInserted","cells",[g]))}finally{k.getModel().endUpdate()}k.scrollCellToVisible(g);k.setSelectionCell(g);k.container.focus();k.editAfterInsert&&k.startEditing(g);window.setTimeout(function(){null!=c.hoverIcons&&c.hoverIcons.update(k.view.getState(g))},
-0);return g};c.actions.put("insertText",new Action(mxResources.get("text"),function(){k.isEnabled()&&!k.isCellLocked(k.getDefaultParent())&&k.startEditingAtCell(A("Text",40,20,"text;html=1;resizable=0;autosize=1;align=center;verticalAlign=middle;points=[];fillColor=none;strokeColor=none;rounded=0;"))}),null,null,Editor.ctrlKey+"+Shift+X").isEnabled=g;c.actions.put("insertRectangle",new Action(mxResources.get("rectangle"),function(){k.isEnabled()&&!k.isCellLocked(k.getDefaultParent())&&A("",120,60,
-"whiteSpace=wrap;html=1;")}),null,null,Editor.ctrlKey+"+K").isEnabled=g;c.actions.put("insertEllipse",new Action(mxResources.get("ellipse"),function(){k.isEnabled()&&!k.isCellLocked(k.getDefaultParent())&&A("",80,80,"ellipse;whiteSpace=wrap;html=1;")}),null,null,Editor.ctrlKey+"+Shift+K").isEnabled=g;c.actions.put("insertRhombus",new Action(mxResources.get("rhombus"),function(){k.isEnabled()&&!k.isCellLocked(k.getDefaultParent())&&A("",80,80,"rhombus;whiteSpace=wrap;html=1;")})).isEnabled=g;c.addInsertMenuItems=
-mxUtils.bind(this,function(b,d,e){for(var f=0;f<e.length;f++)"-"==e[f]?b.addSeparator(d):c.addInsertItem(b,d,mxResources.get(e[f])+"...",e[f])});this.put("insert",new Menu(mxUtils.bind(this,function(b,d){this.addMenuItems(b,"insertRectangle insertEllipse insertRhombus - insertText insertLink - createShape insertFreehand - insertImage".split(" "),d);c.insertTemplateEnabled&&!c.isOffline()&&this.addMenuItems(b,["insertTemplate"],d);b.addSeparator(d);this.addSubmenu("insertLayout",b,d,mxResources.get("layout"));
-this.addSubmenu("insertAdvanced",b,d,mxResources.get("advanced"))})));this.put("insertLayout",new Menu(mxUtils.bind(this,function(b,d){c.addInsertMenuItems(b,d,"horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(b,d){c.addInsertMenuItems(b,d,["fromText","plantUml","mermaid","-","formatSql"]);b.addItem(mxResources.get("csv")+"...",null,function(){c.showImportCsvDialog()},d,null,g())})));
-this.put("openRecent",new Menu(function(b,d){var e=c.getRecent();if(null!=e){for(var f=0;f<e.length;f++)(function(e){var f=e.mode;f==App.MODE_GOOGLE?f="googleDrive":f==App.MODE_ONEDRIVE&&(f="oneDrive");b.addItem(e.title+" ("+mxResources.get(f)+")",null,function(){c.loadFile(e.id)},d)})(e[f]);b.addSeparator(d)}b.addItem(mxResources.get("reset"),null,function(){c.resetRecent()},d)}));this.put("openFrom",new Menu(function(b,d){null!=c.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){c.pickFile(App.MODE_GOOGLE)},
-d):n&&"function"===typeof window.DriveClient&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=c.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",null,function(){c.pickFile(App.MODE_ONEDRIVE)},d):l&&"function"===typeof window.OneDriveClient&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=c.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){c.pickFile(App.MODE_DROPBOX)},
-d):f&&"function"===typeof window.DropboxClient&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);b.addSeparator(d);null!=c.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){c.pickFile(App.MODE_GITHUB)},d);null!=c.gitLab&&b.addItem(mxResources.get("gitlab")+"...",null,function(){c.pickFile(App.MODE_GITLAB)},d);null!=c.notion&&(b.addSeparator(d),b.addItem(mxResources.get("notion")+"...",null,function(){c.pickFile(App.MODE_NOTION)},
-d));null!=c.trello?b.addItem(mxResources.get("trello")+"...",null,function(){c.pickFile(App.MODE_TRELLO)},d):m&&"function"===typeof window.TrelloClient&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);b.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+"...",null,function(){c.pickFile(App.MODE_BROWSER)},d);"1"!=urlParams.noDevice&&b.addItem(mxResources.get("device")+"...",null,function(){c.pickFile(App.MODE_DEVICE)},
-d);c.isOffline()||(b.addSeparator(d),b.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(c,"",mxResources.get("open"),function(b){null!=b&&0<b.length&&(null==c.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):window.openWindow((mxClient.IS_CHROMEAPP?"https://www.draw.io/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))},mxResources.get("url"));c.showDialog(b.container,300,80,!0,!0);b.init()},d))}));Editor.enableCustomLibraries&&
-(this.put("newLibrary",new Menu(function(b,d){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=c.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){c.showLibraryDialog(null,null,null,null,App.MODE_GOOGLE)},d):n&&"function"===typeof window.DriveClient&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1));null!=c.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",null,function(){c.showLibraryDialog(null,
-null,null,null,App.MODE_ONEDRIVE)},d):l&&"function"===typeof window.OneDriveClient&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=c.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){c.showLibraryDialog(null,null,null,null,App.MODE_DROPBOX)},d):f&&"function"===typeof window.DropboxClient&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);b.addSeparator(d);null!=
-c.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){c.showLibraryDialog(null,null,null,null,App.MODE_GITHUB)},d);null!=c.gitLab&&b.addItem(mxResources.get("gitlab")+"...",null,function(){c.showLibraryDialog(null,null,null,null,App.MODE_GITLAB)},d);null!=c.notion&&(b.addSeparator(d),b.addItem(mxResources.get("notion")+"...",null,function(){c.showLibraryDialog(null,null,null,null,App.MODE_NOTION)},d));null!=c.trello?b.addItem(mxResources.get("trello")+"...",null,function(){c.showLibraryDialog(null,
-null,null,null,App.MODE_TRELLO)},d):m&&"function"===typeof window.TrelloClient&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);b.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+"...",null,function(){c.showLibraryDialog(null,null,null,null,App.MODE_BROWSER)},d);"1"!=urlParams.noDevice&&b.addItem(mxResources.get("device")+"...",null,function(){c.showLibraryDialog(null,null,null,null,App.MODE_DEVICE)},
-d)})),this.put("openLibraryFrom",new Menu(function(b,d){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=c.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){c.pickLibrary(App.MODE_GOOGLE)},d):n&&"function"===typeof window.DriveClient&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1));null!=c.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",null,function(){c.pickLibrary(App.MODE_ONEDRIVE)},d):l&&
-"function"===typeof window.OneDriveClient&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=c.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){c.pickLibrary(App.MODE_DROPBOX)},d):f&&"function"===typeof window.DropboxClient&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);b.addSeparator(d);null!=c.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){c.pickLibrary(App.MODE_GITHUB)},
-d);null!=c.gitLab&&b.addItem(mxResources.get("gitlab")+"...",null,function(){c.pickLibrary(App.MODE_GITLAB)},d);null!=c.notion&&(b.addSeparator(d),b.addItem(mxResources.get("notion")+"...",null,function(){c.pickLibrary(App.MODE_NOTION)},d));null!=c.trello?b.addItem(mxResources.get("trello")+"...",null,function(){c.pickLibrary(App.MODE_TRELLO)},d):m&&"function"===typeof window.TrelloClient&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);b.addSeparator(d);
-isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+"...",null,function(){c.pickLibrary(App.MODE_BROWSER)},d);"1"!=urlParams.noDevice&&b.addItem(mxResources.get("device")+"...",null,function(){c.pickLibrary(App.MODE_DEVICE)},d);c.isOffline()||(b.addSeparator(d),b.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(c,"",mxResources.get("open"),function(b){if(null!=b&&0<b.length&&c.spinner.spin(document.body,mxResources.get("loading"))){var d=b;c.editor.isCorsEnabledForUrl(b)||
-(d=PROXY_URL+"?url="+encodeURIComponent(b));mxUtils.get(d,function(d){if(200<=d.getStatus()&&299>=d.getStatus()){c.spinner.stop();try{c.loadLibrary(new UrlLibrary(this,d.getText(),b))}catch(D){c.handleError(D,mxResources.get("errorLoadingFile"))}}else c.spinner.stop(),c.handleError(null,mxResources.get("errorLoadingFile"))},function(){c.spinner.stop();c.handleError(null,mxResources.get("errorLoadingFile"))})}},mxResources.get("url"));c.showDialog(b.container,300,80,!0,!0);b.init()},d));"1"==urlParams.confLib&&
-(b.addSeparator(d),b.addItem(mxResources.get("confluenceCloud")+"...",null,function(){c.showRemotelyStoredLibrary(mxResources.get("libraries"))},d))})));this.put("edit",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b,"undo redo - cut copy copyAsImage paste delete - duplicate - findReplace - editData editTooltip - editStyle editGeometry - edit - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))})));p=c.actions.addAction("comments",mxUtils.bind(this,
-function(){if(null==this.commentsWindow)this.commentsWindow=new CommentsWindow(c,document.body.offsetWidth-380,120,300,350),this.commentsWindow.window.addListener("show",function(){c.fireEvent(new mxEventObject("comments"))}),this.commentsWindow.window.addListener("hide",function(){c.fireEvent(new mxEventObject("comments"))}),this.commentsWindow.window.setVisible(!0),c.fireEvent(new mxEventObject("comments"));else{var b=!this.commentsWindow.window.isVisible();this.commentsWindow.window.setVisible(b);
-this.commentsWindow.refreshCommentsTime();b&&this.commentsWindow.hasError&&this.commentsWindow.refreshComments()}}));p.setToggleAction(!0);p.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.commentsWindow&&this.commentsWindow.window.isVisible()}));c.editor.addListener("fileLoaded",mxUtils.bind(this,function(){null!=this.commentsWindow&&(this.commentsWindow.destroy(),this.commentsWindow=null)}));var p=this.get("viewPanels"),z=p.funct;p.funct=function(b,d){z.apply(this,arguments);
-c.menus.addMenuItems(b,["tags"],d);c.commentsSupported()&&c.menus.addMenuItems(b,["comments"],d)};this.put("view",new Menu(mxUtils.bind(this,function(b,d){this.addMenuItems(b,(null!=this.editorUi.format?["formatPanel"]:[]).concat(["outline","layers","tags"]).concat(c.commentsSupported()?["comments","-"]:["-"]));this.addMenuItems(b,["-","search"],d);if(isLocalStorage||mxClient.IS_CHROMEAPP){var e=this.addMenuItem(b,"scratchpad",d);(!c.isOffline()||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)&&this.addLinkToItem(e,
-"https://www.diagrams.net/doc/faq/scratchpad")}this.addMenuItems(b,["shapes","-","pageView","pageScale"]);this.addSubmenu("units",b,d);this.addMenuItems(b,"- scrollbars tooltips ruler - grid guides".split(" "),d);mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode)&&this.addMenuItem(b,"shadowVisible",d);this.addMenuItems(b,"- connectionArrows connectionPoints - resetView zoomIn zoomOut".split(" "),d);"1"!=urlParams.sketch&&this.addMenuItems(b,["-","fullscreen"],d)})));this.put("extras",
-new Menu(mxUtils.bind(this,function(b,d){"1"==urlParams.noLangIcon&&(this.addSubmenu("language",b,d),b.addSeparator(d));"1"!=urlParams.embed&&(this.addSubmenu("theme",b,d),b.addSeparator(d));if("undefined"!==typeof MathJax){var e=this.addMenuItem(b,"mathematicalTypesetting",d);(!c.isOffline()||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)&&this.addLinkToItem(e,"https://www.diagrams.net/doc/faq/math-typesetting")}this.addMenuItems(b,["copyConnect","collapseExpand","-"],d);"1"!=urlParams.embed&&(isLocalStorage||
-mxClient.IS_CHROMEAPP)&&this.addMenuItems(b,["showStartScreen"],d);"1"!=urlParams.embed&&this.addMenuItems(b,["autosave"],d);b.addSeparator(d);!c.isOfflineApp()&&isLocalStorage&&this.addMenuItem(b,"plugins",d);this.addMenuItems(b,["-","editDiagram"],d);Graph.translateDiagram&&this.addMenuItems(b,["diagramLanguage"]);this.addMenuItems(b,["-","configuration"],d);b.addSeparator(d);"1"==urlParams.newTempDlg&&(c.actions.addAction("templates",function(){function b(b){return{id:b.id,isExt:!0,url:b.downloadUrl,
-title:b.title,imgUrl:b.thumbnailLink,changedBy:b.lastModifyingUserName,lastModifiedOn:b.modifiedDate}}var d=new TemplatesDialog(c,function(b){console.log(arguments)},null,null,null,"user",function(d,e,f){var g=new Date;g.setDate(g.getDate()-7);c.drive.listFiles(null,g,f?!0:!1,function(c){for(var e=[],f=0;f<c.items.length;f++)e.push(b(c.items[f]));d(e)},e)},function(d,e,f,g){c.drive.listFiles(d,null,g?!0:!1,function(c){for(var d=[],f=0;f<c.items.length;f++)d.push(b(c.items[f]));e(d)},f)},function(b,
-d,e){c.drive.getFile(b.id,function(b){d(b.data)},e)},null,function(b){b({Test:[]},1)},!0,!1);c.showDialog(d.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0)}),this.addMenuItem(b,"templates",d))})));this.put("file",new Menu(mxUtils.bind(this,function(b,d){if("1"==urlParams.embed)this.addSubmenu("importFrom",b,d),this.addSubmenu("exportAs",b,d),this.addSubmenu("embed",b,d),"1"==urlParams.libraries&&(this.addMenuItems(b,["-"],d),this.addSubmenu("newLibrary",b,d),this.addSubmenu("openLibraryFrom",
-b,d)),c.isRevisionHistorySupported()&&this.addMenuItems(b,["-","revisionHistory"],d),this.addMenuItems(b,["-","pageSetup","print","-","rename"],d),"1"!=urlParams.embedInline&&("1"==urlParams.noSaveBtn?"0"!=urlParams.saveAndExit&&this.addMenuItems(b,["saveAndExit"],d):(this.addMenuItems(b,["save"],d),"1"==urlParams.saveAndExit&&this.addMenuItems(b,["saveAndExit"],d))),"1"!=urlParams.noExitBtn&&this.addMenuItems(b,["exit"],d);else{var e=this.editorUi.getCurrentFile();if(null!=e&&e.constructor==DriveFile){e.isRestricted()&&
-this.addMenuItems(b,["exportOptionsDisabled"],d);this.addMenuItems(b,["save","-","share"],d);var f=this.addMenuItem(b,"synchronize",d);(!c.isOffline()||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)&&this.addLinkToItem(f,"https://www.diagrams.net/doc/faq/synchronize");b.addSeparator(d)}else this.addMenuItems(b,["new"],d);this.addSubmenu("openFrom",b,d);isLocalStorage&&this.addSubmenu("openRecent",b,d);null!=e&&e.constructor==DriveFile?this.addMenuItems(b,["new","-","rename","makeCopy","moveToFolder"],
-d):(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile&&null==e.fileHandle||(b.addSeparator(d),f=this.addMenuItem(b,"synchronize",d),(!c.isOffline()||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)&&this.addLinkToItem(f,"https://www.diagrams.net/doc/faq/synchronize")),this.addMenuItems(b,["-","save","saveAs","-"],d),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||"draw.io"!=c.getServiceName()||c.isOfflineApp()||null==e||this.addMenuItems(b,["share","-"],d),this.addMenuItems(b,
-["rename"],d),c.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(b,["upload"],d):(this.addMenuItems(b,["makeCopy"],d),null!=e&&e.constructor==OneDriveFile&&this.addMenuItems(b,["moveToFolder"],d)));b.addSeparator(d);this.addSubmenu("importFrom",b,d);this.addSubmenu("exportAs",b,d);b.addSeparator(d);this.addSubmenu("embed",b,d);this.addSubmenu("publish",b,d);b.addSeparator(d);this.addSubmenu("newLibrary",b,d);this.addSubmenu("openLibraryFrom",b,d);
-c.isRevisionHistorySupported()&&this.addMenuItems(b,["-","revisionHistory"],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"]));this.addMenuItems(b,["-","pageSetup"],d);mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["print"],d);this.addMenuItems(b,["-","close"])}})));b.prototype.execute=function(){var b=this.ui.editor.graph;this.customFonts=this.prevCustomFonts;
-this.prevCustomFonts=this.ui.menus.customFonts;this.ui.fireEvent(new mxEventObject("customFontsChanged","customFonts",this.customFonts));this.extFonts=this.previousExtFonts;for(var c=b.extFonts,d=0;null!=c&&d<c.length;d++){var e=document.getElementById("extFont_"+c[d].name);null!=e&&e.parentNode.removeChild(e)}b.extFonts=[];for(d=0;null!=this.previousExtFonts&&d<this.previousExtFonts.length;d++)this.ui.editor.graph.addExtFont(this.previousExtFonts[d].name,this.previousExtFonts[d].url);this.previousExtFonts=
-c};this.put("fontFamily",new Menu(mxUtils.bind(this,function(d,e){for(var f=mxUtils.bind(this,function(f,g,k,l,m){var n=c.editor.graph;l=this.styleChange(d,l||f,"1"!=urlParams["ext-fonts"]?[mxConstants.STYLE_FONTFAMILY,"fontSource","FType"]:[mxConstants.STYLE_FONTFAMILY],"1"!=urlParams["ext-fonts"]?[f,null!=g?encodeURIComponent(g):null,null]:[f],null,e,function(){"1"!=urlParams["ext-fonts"]?n.setFont(f,g):(document.execCommand("fontname",!1,f),n.addExtFont(f,g));c.fireEvent(new mxEventObject("styleChanged",
+y)+'"></iframe>');c.showDialog(p.container,450,240,!0,!0);p.init()})},!0)}));c.actions.put("embedNotion",new Action(mxResources.get("notion")+"...",function(){c.showPublishLinkDialog(mxResources.get("notion"),null,null,null,function(b,d,e,f,g,k,l,m,n){c.spinner.spin(document.body,mxResources.get("loading"))&&c.getPublicUrl(c.getCurrentFile(),function(l){c.spinner.stop();var m=["border=0"];n&&m.push("tags=%7B%7D");l=new EmbedDialog(c,c.createLink(b,d,e,f,g,k,l,null,m,!0));c.showDialog(l.container,
+450,240,!0,!0);l.init()})},!0)}));c.actions.put("publishLink",new Action(mxResources.get("link")+"...",function(){c.showPublishLinkDialog(null,null,null,null,function(b,d,e,f,g,k,l,m,n){c.spinner.spin(document.body,mxResources.get("loading"))&&c.getPublicUrl(c.getCurrentFile(),function(l){c.spinner.stop();var m=[];n&&m.push("tags=%7B%7D");l=new EmbedDialog(c,c.createLink(b,d,e,f,g,k,l,null,m));c.showDialog(l.container,450,240,!0,!0);l.init()})})}));c.actions.addAction("microsoftOffice...",function(){c.openLink("https://office.draw.io")});
+c.actions.addAction("googleDocs...",function(){c.openLink("http://docsaddon.draw.io")});c.actions.addAction("googleSlides...",function(){c.openLink("https://slidesaddon.draw.io")});c.actions.addAction("googleSheets...",function(){c.openLink("https://sheetsaddon.draw.io")});c.actions.addAction("googleSites...",function(){c.spinner.spin(document.body,mxResources.get("loading"))&&c.getPublicUrl(c.getCurrentFile(),function(b){c.spinner.stop();b=new GoogleSitesDialog(c,b);c.showDialog(b.container,420,
+256,!0,!0);b.init()})});if(isLocalStorage||mxClient.IS_CHROMEAPP)p=c.actions.addAction("scratchpad",function(){c.toggleScratchpad()}),p.setToggleAction(!0),p.setSelectedCallback(function(){return null!=c.scratchpad}),"0"!=urlParams.plugins&&c.actions.addAction("plugins...",function(){c.showDialog((new PluginsDialog(c)).container,360,170,!0,!1)});p=c.actions.addAction("search",function(){var b=c.sidebar.isEntryVisible("search");c.sidebar.showPalette("search",!b);isLocalStorage&&(mxSettings.settings.search=
+!b,mxSettings.save())});p.label=mxResources.get("searchShapes");p.setToggleAction(!0);p.setSelectedCallback(function(){return c.sidebar.isEntryVisible("search")});"1"==urlParams.embed&&(c.actions.get("save").funct=function(b){k.isEditing()&&k.stopEditing();var d="0"!=urlParams.pages||null!=c.pages&&1<c.pages.length?c.getFileData(!0):mxUtils.getXml(c.editor.getGraphXml());if("json"==urlParams.proto){var e=c.createLoadMessage("save");e.xml=d;b&&(e.exit=!0);d=JSON.stringify(e)}(window.opener||window.parent).postMessage(d,
+"*");"0"!=urlParams.modified&&"1"!=urlParams.keepmodified&&(c.editor.modified=!1,c.editor.setStatus(""));b=c.getCurrentFile();null==b||b.constructor==EmbedFile||b.constructor==LocalFile&&null==b.mode||c.saveFile()},c.actions.addAction("saveAndExit",function(){c.actions.get("save").funct(!0)}).label="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit"),c.actions.addAction("exit",function(){if("1"==urlParams.embedInline)c.sendEmbeddedSvgExport();else{var b=function(){c.editor.modified=
+!1;var b="json"==urlParams.proto?JSON.stringify({event:"exit",modified:c.editor.modified}):"";(window.opener||window.parent).postMessage(b,"*")};c.editor.modified?c.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}}));this.put("exportAs",new Menu(mxUtils.bind(this,function(b,d){c.isExportToCanvas()?(this.addMenuItems(b,["exportPng"],d),c.jpgSupported&&this.addMenuItems(b,["exportJpg"],d)):c.isOffline()||mxClient.IS_IOS&&navigator.standalone||
+this.addMenuItems(b,["exportPng","exportJpg"],d);this.addMenuItems(b,["exportSvg","-"],d);c.isOffline()||c.printPdfExport?this.addMenuItems(b,["exportPdf"],d):c.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["exportPdf"],d);mxClient.IS_IE||"undefined"===typeof VsdxExport&&c.isOffline()||this.addMenuItems(b,["exportVsdx"],d);this.addMenuItems(b,["-","exportHtml","exportXml","exportUrl"],d);c.isOffline()||(b.addSeparator(d),this.addMenuItem(b,"export",d).firstChild.nextSibling.innerHTML=
+mxResources.get("advanced")+"...")})));this.put("importFrom",new Menu(mxUtils.bind(this,function(b,d){function e(b){b.pickFile(function(d){c.spinner.spin(document.body,mxResources.get("loading"))&&b.getFile(d,function(b){var d="data:image/"==b.getData().substring(0,11)?p(b.getTitle()):"text/xml";/\.svg$/i.test(b.getTitle())&&!c.editor.isDataSvg(b.getData())&&(b.setData(Editor.createSvgDataUri(b.getData())),d="image/svg+xml");g(b.getData(),d,b.getTitle())},function(b){c.handleError(b,null!=b?mxResources.get("errorLoadingFile"):
+null)},b==c.drive)},!0)}var g=mxUtils.bind(this,function(b,d,e){var f=k.view,g=k.getGraphBounds(),l=k.snap(Math.ceil(Math.max(0,g.x/f.scale-f.translate.x)+4*k.gridSize)),m=k.snap(Math.ceil(Math.max(0,(g.y+g.height)/f.scale-f.translate.y)+4*k.gridSize));"data:image/"==b.substring(0,11)?c.loadImage(b,mxUtils.bind(this,function(f){var g=!0,n=mxUtils.bind(this,function(){c.resizeImage(f,b,mxUtils.bind(this,function(f,n,p){f=g?Math.min(1,Math.min(c.maxImageSize/n,c.maxImageSize/p)):1;c.importFile(b,d,
+l,m,Math.round(n*f),Math.round(p*f),e,function(b){c.spinner.stop();k.setSelectionCells(b);k.scrollCellToVisible(k.getSelectionCell())})}),g)});b.length>c.resampleThreshold?c.confirmImageResize(function(b){g=b;n()}):n()}),mxUtils.bind(this,function(){c.handleError({message:mxResources.get("cannotOpenFile")})})):c.importFile(b,d,l,m,0,0,e,function(b){c.spinner.stop();k.setSelectionCells(b);k.scrollCellToVisible(k.getSelectionCell())})}),p=mxUtils.bind(this,function(b){var c="text/xml";/\.png$/i.test(b)?
+c="image/png":/\.jpe?g$/i.test(b)?c="image/jpg":/\.gif$/i.test(b)?c="image/gif":/\.pdf$/i.test(b)&&(c="application/pdf");return c});"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=c.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){e(c.drive)},d):n&&"function"===typeof window.DriveClient&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1));null!=c.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",
+null,function(){e(c.oneDrive)},d):l&&"function"===typeof window.OneDriveClient&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=c.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){e(c.dropbox)},d):f&&"function"===typeof window.DropboxClient&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);b.addSeparator(d);null!=c.gitHub&&b.addItem(mxResources.get("github")+"...",
+null,function(){e(c.gitHub)},d);null!=c.gitLab&&b.addItem(mxResources.get("gitlab")+"...",null,function(){e(c.gitLab)},d);null!=c.notion&&(b.addSeparator(d),b.addItem(mxResources.get("notion")+"...",null,function(){e(c.notion)},d));null!=c.trello?b.addItem(mxResources.get("trello")+"...",null,function(){e(c.trello)},d):m&&"function"===typeof window.TrelloClient&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);b.addSeparator(d);isLocalStorage&&
+"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+"...",null,function(){c.importLocalFile(!1)},d);"1"!=urlParams.noDevice&&b.addItem(mxResources.get("device")+"...",null,function(){c.importLocalFile(!0)},d);c.isOffline()||(b.addSeparator(d),b.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(c,"",mxResources.get("import"),function(b){if(null!=b&&0<b.length&&c.spinner.spin(document.body,mxResources.get("loading"))){var d=/(\.png)($|\?)/i.test(b)?"image/png":"text/xml";
+c.editor.loadUrl(PROXY_URL+"?url="+encodeURIComponent(b),function(c){g(c,d,b)},function(){c.spinner.stop();c.handleError(null,mxResources.get("errorLoadingFile"))},"image/png"==d)}},mxResources.get("url"));c.showDialog(b.container,300,80,!0,!0);b.init()},d))}))).isEnabled=g;this.put("theme",new Menu(mxUtils.bind(this,function(b,d){var e="1"==urlParams.sketch?"sketch":mxSettings.getUi(),f=b.addItem(mxResources.get("automatic"),null,function(){mxSettings.setUi("");c.alert(mxResources.get("restartForChangeRequired"))},
+d);"kennedy"!=e&&"atlas"!=e&&"dark"!=e&&"min"!=e&&"sketch"!=e&&b.addCheckmark(f,Editor.checkmarkImage);b.addSeparator(d);f=b.addItem(mxResources.get("default"),null,function(){mxSettings.setUi("kennedy");c.alert(mxResources.get("restartForChangeRequired"))},d);"kennedy"==e&&b.addCheckmark(f,Editor.checkmarkImage);f=b.addItem(mxResources.get("minimal"),null,function(){mxSettings.setUi("min");c.alert(mxResources.get("restartForChangeRequired"))},d);"min"==e&&b.addCheckmark(f,Editor.checkmarkImage);
+f=b.addItem(mxResources.get("atlas"),null,function(){mxSettings.setUi("atlas");c.alert(mxResources.get("restartForChangeRequired"))},d);"atlas"==e&&b.addCheckmark(f,Editor.checkmarkImage);if("dark"==e||!mxClient.IS_IE&&!mxClient.IS_IE11)f=b.addItem(mxResources.get("dark"),null,function(){mxSettings.setUi("dark");c.alert(mxResources.get("restartForChangeRequired"))},d),"dark"==e&&b.addCheckmark(f,Editor.checkmarkImage);b.addSeparator(d);f=b.addItem(mxResources.get("sketch"),null,function(){mxSettings.setUi("sketch");
+c.alert(mxResources.get("restartForChangeRequired"))},d);"sketch"==e&&b.addCheckmark(f,Editor.checkmarkImage)})));p=this.editorUi.actions.addAction("rename...",mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile();if(null!=b)if(b.constructor==LocalFile&&null!=b.fileHandle)c.showSaveFilePicker(mxUtils.bind(c,function(d,e){b.invalidFileHandle=null;b.fileHandle=d;b.title=e.name;b.desc=e;c.save(e.name)}),null,c.createFileSystemOptions(b.getTitle()));else{var d=null!=b.getTitle()?b.getTitle():
+this.editorUi.defaultFilename,d=new FilenameDialog(this.editorUi,d,mxResources.get("rename"),mxUtils.bind(this,function(c){null!=c&&0<c.length&&null!=b&&c!=b.getTitle()&&this.editorUi.spinner.spin(document.body,mxResources.get("renaming"))&&b.rename(c,mxUtils.bind(this,function(b){this.editorUi.spinner.stop()}),mxUtils.bind(this,function(b){this.editorUi.handleError(b,null!=b?mxResources.get("errorRenamingFile"):null)}))}),b.constructor==DriveFile||b.constructor==StorageFile?mxResources.get("diagramName"):
+null,function(b){if(null!=b&&0<b.length)return!0;c.showError(mxResources.get("error"),mxResources.get("invalidName"),mxResources.get("ok"));return!1},null,null,null,null,c.editor.fileExtensions);this.editorUi.showDialog(d.container,340,96,!0,!0);d.init()}}));p.isEnabled=function(){return this.enabled&&g.apply(this,arguments)};p.visible="1"!=urlParams.embed;c.actions.addAction("makeCopy...",mxUtils.bind(this,function(){var b=c.getCurrentFile();if(null!=b){var d=c.getCopyFilename(b);b.constructor==
+DriveFile?(d=new CreateDialog(c,d,mxUtils.bind(this,function(d,e){"_blank"==e?c.editor.editAsNew(c.getFileData(),d):("download"==e&&(e=App.MODE_GOOGLE),null!=d&&0<d.length&&(e==App.MODE_GOOGLE?c.spinner.spin(document.body,mxResources.get("saving"))&&b.saveAs(d,mxUtils.bind(this,function(d){b.desc=d;b.save(!1,mxUtils.bind(this,function(){c.spinner.stop();b.setModified(!1);b.addAllSavedStatus()}),mxUtils.bind(this,function(b){c.handleError(b)}))}),mxUtils.bind(this,function(b){c.handleError(b)})):c.createFile(d,
+c.getFileData(!0),null,e)))}),mxUtils.bind(this,function(){c.hideDialog()}),mxResources.get("makeCopy"),mxResources.get("create"),null,null,!0,null,!0,null,null,null,null,c.editor.fileExtensions),c.showDialog(d.container,420,380,!0,!0),d.init()):c.editor.editAsNew(this.editorUi.getFileData(!0),d)}}));c.actions.addAction("moveToFolder...",mxUtils.bind(this,function(){var b=c.getCurrentFile();if(b.getMode()==App.MODE_GOOGLE||b.getMode()==App.MODE_ONEDRIVE){var d=!1;if(b.getMode()==App.MODE_GOOGLE&&
+null!=b.desc.parents)for(var e=0;e<b.desc.parents.length;e++)if(b.desc.parents[e].isRoot){d=!0;break}c.pickFolder(b.getMode(),mxUtils.bind(this,function(d){c.spinner.spin(document.body,mxResources.get("moving"))&&b.move(d,mxUtils.bind(this,function(b){c.spinner.stop()}),mxUtils.bind(this,function(b){c.handleError(b)}))}),null,!0,d)}}));this.put("publish",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b,["publishLink"],c)})));c.actions.put("useOffline",new Action(mxResources.get("useOffline")+
+"...",function(){c.openLink("https://app.draw.io/")}));c.actions.put("downloadDesktop",new Action(mxResources.get("downloadDesktop")+"...",function(){c.openLink("https://get.draw.io/")}));this.editorUi.actions.addAction("share...",mxUtils.bind(this,function(){try{var b=c.getCurrentFile();null!=b&&b.share()}catch(y){c.handleError(y)}}));this.put("embed",new Menu(mxUtils.bind(this,function(b,d){var e=c.getCurrentFile();null==e||e.getMode()!=App.MODE_GOOGLE&&e.getMode()!=App.MODE_GITHUB||!/(\.png)$/i.test(e.getTitle())||
+this.addMenuItems(b,["liveImage","-"],d);this.addMenuItems(b,["embedImage","embedSvg","-","embedHtml"],d);navigator.standalone||c.isOffline()||this.addMenuItems(b,["embedIframe"],d);"1"==urlParams.embed||c.isOffline()||this.addMenuItems(b,"- googleDocs googleSlides googleSheets - microsoftOffice - embedNotion".split(" "),d)})));c.addInsertItem=function(b,d,e,f){("plantUml"!=f||EditorUi.enablePlantUml&&!c.isOffline())&&b.addItem(e,null,mxUtils.bind(this,function(){if("fromText"==f||"formatSql"==f||
+"plantUml"==f||"mermaid"==f){var b=new ParseDialog(c,e,f);c.showDialog(b.container,620,420,!0,!1);c.dialog.container.style.overflow="auto"}else b=new CreateGraphDialog(c,e,f),c.showDialog(b.container,620,420,!0,!1);b.init()}),d,null,g())};var A=function(b,d,e,f){var g=new mxCell(b,new mxGeometry(0,0,d,e),f);g.vertex=!0;b=k.getCenterInsertPoint(k.getBoundingBoxFromGeometry([g],!0));g.geometry.x=b.x;g.geometry.y=b.y;k.getModel().beginUpdate();try{g=k.addCell(g),k.fireEvent(new mxEventObject("cellsInserted",
+"cells",[g]))}finally{k.getModel().endUpdate()}k.scrollCellToVisible(g);k.setSelectionCell(g);k.container.focus();k.editAfterInsert&&k.startEditing(g);window.setTimeout(function(){null!=c.hoverIcons&&c.hoverIcons.update(k.view.getState(g))},0);return g};c.actions.put("insertText",new Action(mxResources.get("text"),function(){k.isEnabled()&&!k.isCellLocked(k.getDefaultParent())&&k.startEditingAtCell(A("Text",40,20,"text;html=1;resizable=0;autosize=1;align=center;verticalAlign=middle;points=[];fillColor=none;strokeColor=none;rounded=0;"))}),
+null,null,Editor.ctrlKey+"+Shift+X").isEnabled=g;c.actions.put("insertRectangle",new Action(mxResources.get("rectangle"),function(){k.isEnabled()&&!k.isCellLocked(k.getDefaultParent())&&A("",120,60,"whiteSpace=wrap;html=1;")}),null,null,Editor.ctrlKey+"+K").isEnabled=g;c.actions.put("insertEllipse",new Action(mxResources.get("ellipse"),function(){k.isEnabled()&&!k.isCellLocked(k.getDefaultParent())&&A("",80,80,"ellipse;whiteSpace=wrap;html=1;")}),null,null,Editor.ctrlKey+"+Shift+K").isEnabled=g;c.actions.put("insertRhombus",
+new Action(mxResources.get("rhombus"),function(){k.isEnabled()&&!k.isCellLocked(k.getDefaultParent())&&A("",80,80,"rhombus;whiteSpace=wrap;html=1;")})).isEnabled=g;c.addInsertMenuItems=mxUtils.bind(this,function(b,d,e){for(var f=0;f<e.length;f++)"-"==e[f]?b.addSeparator(d):c.addInsertItem(b,d,mxResources.get(e[f])+"...",e[f])});this.put("insert",new Menu(mxUtils.bind(this,function(b,d){this.addMenuItems(b,"insertRectangle insertEllipse insertRhombus - insertText insertLink - createShape insertFreehand - insertImage".split(" "),
+d);c.insertTemplateEnabled&&!c.isOffline()&&this.addMenuItems(b,["insertTemplate"],d);b.addSeparator(d);this.addSubmenu("insertLayout",b,d,mxResources.get("layout"));this.addSubmenu("insertAdvanced",b,d,mxResources.get("advanced"))})));this.put("insertLayout",new Menu(mxUtils.bind(this,function(b,d){c.addInsertMenuItems(b,d,"horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(b,d){c.addInsertMenuItems(b,
+d,["fromText","plantUml","mermaid","-","formatSql"]);b.addItem(mxResources.get("csv")+"...",null,function(){c.showImportCsvDialog()},d,null,g())})));this.put("openRecent",new Menu(function(b,d){var e=c.getRecent();if(null!=e){for(var f=0;f<e.length;f++)(function(e){var f=e.mode;f==App.MODE_GOOGLE?f="googleDrive":f==App.MODE_ONEDRIVE&&(f="oneDrive");b.addItem(e.title+" ("+mxResources.get(f)+")",null,function(){c.loadFile(e.id)},d)})(e[f]);b.addSeparator(d)}b.addItem(mxResources.get("reset"),null,function(){c.resetRecent()},
+d)}));this.put("openFrom",new Menu(function(b,d){null!=c.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){c.pickFile(App.MODE_GOOGLE)},d):n&&"function"===typeof window.DriveClient&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=c.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",null,function(){c.pickFile(App.MODE_ONEDRIVE)},d):l&&"function"===typeof window.OneDriveClient&&b.addItem(mxResources.get("oneDrive")+
+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=c.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){c.pickFile(App.MODE_DROPBOX)},d):f&&"function"===typeof window.DropboxClient&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);b.addSeparator(d);null!=c.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){c.pickFile(App.MODE_GITHUB)},d);null!=c.gitLab&&b.addItem(mxResources.get("gitlab")+
+"...",null,function(){c.pickFile(App.MODE_GITLAB)},d);null!=c.notion&&(b.addSeparator(d),b.addItem(mxResources.get("notion")+"...",null,function(){c.pickFile(App.MODE_NOTION)},d));null!=c.trello?b.addItem(mxResources.get("trello")+"...",null,function(){c.pickFile(App.MODE_TRELLO)},d):m&&"function"===typeof window.TrelloClient&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);b.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+
+"...",null,function(){c.pickFile(App.MODE_BROWSER)},d);"1"!=urlParams.noDevice&&b.addItem(mxResources.get("device")+"...",null,function(){c.pickFile(App.MODE_DEVICE)},d);c.isOffline()||(b.addSeparator(d),b.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(c,"",mxResources.get("open"),function(b){null!=b&&0<b.length&&(null==c.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):window.openWindow((mxClient.IS_CHROMEAPP?"https://www.draw.io/":"https://"+location.host+
+"/")+window.location.search+"#U"+encodeURIComponent(b)))},mxResources.get("url"));c.showDialog(b.container,300,80,!0,!0);b.init()},d))}));Editor.enableCustomLibraries&&(this.put("newLibrary",new Menu(function(b,d){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=c.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){c.showLibraryDialog(null,null,null,null,App.MODE_GOOGLE)},d):n&&"function"===typeof window.DriveClient&&b.addItem(mxResources.get("googleDrive")+" ("+
+mxResources.get("loading")+"...)",null,function(){},d,null,!1));null!=c.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",null,function(){c.showLibraryDialog(null,null,null,null,App.MODE_ONEDRIVE)},d):l&&"function"===typeof window.OneDriveClient&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=c.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){c.showLibraryDialog(null,null,null,null,App.MODE_DROPBOX)},d):f&&"function"===
+typeof window.DropboxClient&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);b.addSeparator(d);null!=c.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){c.showLibraryDialog(null,null,null,null,App.MODE_GITHUB)},d);null!=c.gitLab&&b.addItem(mxResources.get("gitlab")+"...",null,function(){c.showLibraryDialog(null,null,null,null,App.MODE_GITLAB)},d);null!=c.notion&&(b.addSeparator(d),b.addItem(mxResources.get("notion")+"...",null,
+function(){c.showLibraryDialog(null,null,null,null,App.MODE_NOTION)},d));null!=c.trello?b.addItem(mxResources.get("trello")+"...",null,function(){c.showLibraryDialog(null,null,null,null,App.MODE_TRELLO)},d):m&&"function"===typeof window.TrelloClient&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);b.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+"...",null,function(){c.showLibraryDialog(null,null,
+null,null,App.MODE_BROWSER)},d);"1"!=urlParams.noDevice&&b.addItem(mxResources.get("device")+"...",null,function(){c.showLibraryDialog(null,null,null,null,App.MODE_DEVICE)},d)})),this.put("openLibraryFrom",new Menu(function(b,d){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=c.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){c.pickLibrary(App.MODE_GOOGLE)},d):n&&"function"===typeof window.DriveClient&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+
+"...)",null,function(){},d,null,!1));null!=c.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",null,function(){c.pickLibrary(App.MODE_ONEDRIVE)},d):l&&"function"===typeof window.OneDriveClient&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=c.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){c.pickLibrary(App.MODE_DROPBOX)},d):f&&"function"===typeof window.DropboxClient&&b.addItem(mxResources.get("dropbox")+" ("+
+mxResources.get("loading")+"...)",null,function(){},d,null,!1);b.addSeparator(d);null!=c.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){c.pickLibrary(App.MODE_GITHUB)},d);null!=c.gitLab&&b.addItem(mxResources.get("gitlab")+"...",null,function(){c.pickLibrary(App.MODE_GITLAB)},d);null!=c.notion&&(b.addSeparator(d),b.addItem(mxResources.get("notion")+"...",null,function(){c.pickLibrary(App.MODE_NOTION)},d));null!=c.trello?b.addItem(mxResources.get("trello")+"...",null,function(){c.pickLibrary(App.MODE_TRELLO)},
+d):m&&"function"===typeof window.TrelloClient&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);b.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+"...",null,function(){c.pickLibrary(App.MODE_BROWSER)},d);"1"!=urlParams.noDevice&&b.addItem(mxResources.get("device")+"...",null,function(){c.pickLibrary(App.MODE_DEVICE)},d);c.isOffline()||(b.addSeparator(d),b.addItem(mxResources.get("url")+"...",null,function(){var b=
+new FilenameDialog(c,"",mxResources.get("open"),function(b){if(null!=b&&0<b.length&&c.spinner.spin(document.body,mxResources.get("loading"))){var d=b;c.editor.isCorsEnabledForUrl(b)||(d=PROXY_URL+"?url="+encodeURIComponent(b));mxUtils.get(d,function(d){if(200<=d.getStatus()&&299>=d.getStatus()){c.spinner.stop();try{c.loadLibrary(new UrlLibrary(this,d.getText(),b))}catch(D){c.handleError(D,mxResources.get("errorLoadingFile"))}}else c.spinner.stop(),c.handleError(null,mxResources.get("errorLoadingFile"))},
+function(){c.spinner.stop();c.handleError(null,mxResources.get("errorLoadingFile"))})}},mxResources.get("url"));c.showDialog(b.container,300,80,!0,!0);b.init()},d));"1"==urlParams.confLib&&(b.addSeparator(d),b.addItem(mxResources.get("confluenceCloud")+"...",null,function(){c.showRemotelyStoredLibrary(mxResources.get("libraries"))},d))})));this.put("edit",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b,"undo redo - cut copy copyAsImage paste delete - duplicate - findReplace - editData editTooltip - editStyle editGeometry - edit - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))})));
+p=c.actions.addAction("comments",mxUtils.bind(this,function(){if(null==this.commentsWindow)this.commentsWindow=new CommentsWindow(c,document.body.offsetWidth-380,120,300,350),this.commentsWindow.window.addListener("show",function(){c.fireEvent(new mxEventObject("comments"))}),this.commentsWindow.window.addListener("hide",function(){c.fireEvent(new mxEventObject("comments"))}),this.commentsWindow.window.setVisible(!0),c.fireEvent(new mxEventObject("comments"));else{var b=!this.commentsWindow.window.isVisible();
+this.commentsWindow.window.setVisible(b);this.commentsWindow.refreshCommentsTime();b&&this.commentsWindow.hasError&&this.commentsWindow.refreshComments()}}));p.setToggleAction(!0);p.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.commentsWindow&&this.commentsWindow.window.isVisible()}));c.editor.addListener("fileLoaded",mxUtils.bind(this,function(){null!=this.commentsWindow&&(this.commentsWindow.destroy(),this.commentsWindow=null)}));var p=this.get("viewPanels"),z=p.funct;p.funct=
+function(b,d){z.apply(this,arguments);c.menus.addMenuItems(b,["tags"],d);c.commentsSupported()&&c.menus.addMenuItems(b,["comments"],d)};this.put("view",new Menu(mxUtils.bind(this,function(b,d){this.addMenuItems(b,(null!=this.editorUi.format?["formatPanel"]:[]).concat(["outline","layers","tags"]).concat(c.commentsSupported()?["comments","-"]:["-"]));this.addMenuItems(b,["-","search"],d);if(isLocalStorage||mxClient.IS_CHROMEAPP){var e=this.addMenuItem(b,"scratchpad",d);(!c.isOffline()||mxClient.IS_CHROMEAPP||
+EditorUi.isElectronApp)&&this.addLinkToItem(e,"https://www.diagrams.net/doc/faq/scratchpad")}this.addMenuItems(b,["shapes","-","pageView","pageScale"]);this.addSubmenu("units",b,d);this.addMenuItems(b,"- scrollbars tooltips ruler - grid guides".split(" "),d);mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode)&&this.addMenuItem(b,"shadowVisible",d);this.addMenuItems(b,"- connectionArrows connectionPoints - resetView zoomIn zoomOut".split(" "),d);"1"!=urlParams.sketch&&this.addMenuItems(b,
+["-","fullscreen"],d)})));this.put("extras",new Menu(mxUtils.bind(this,function(b,d){"1"==urlParams.noLangIcon&&(this.addSubmenu("language",b,d),b.addSeparator(d));"1"!=urlParams.embed&&(this.addSubmenu("theme",b,d),b.addSeparator(d));if("undefined"!==typeof MathJax){var e=this.addMenuItem(b,"mathematicalTypesetting",d);(!c.isOffline()||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)&&this.addLinkToItem(e,"https://www.diagrams.net/doc/faq/math-typesetting")}this.addMenuItems(b,["copyConnect","collapseExpand",
+"-"],d);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&this.addMenuItems(b,["showStartScreen"],d);"1"!=urlParams.embed&&this.addMenuItems(b,["autosave"],d);b.addSeparator(d);!c.isOfflineApp()&&isLocalStorage&&this.addMenuItem(b,"plugins",d);this.addMenuItems(b,["-","editDiagram"],d);Graph.translateDiagram&&this.addMenuItems(b,["diagramLanguage"]);this.addMenuItems(b,["-","configuration"],d);b.addSeparator(d);"1"==urlParams.newTempDlg&&(c.actions.addAction("templates",function(){function b(b){return{id:b.id,
+isExt:!0,url:b.downloadUrl,title:b.title,imgUrl:b.thumbnailLink,changedBy:b.lastModifyingUserName,lastModifiedOn:b.modifiedDate}}var d=new TemplatesDialog(c,function(b){console.log(arguments)},null,null,null,"user",function(d,e,f){var g=new Date;g.setDate(g.getDate()-7);c.drive.listFiles(null,g,f?!0:!1,function(c){for(var e=[],f=0;f<c.items.length;f++)e.push(b(c.items[f]));d(e)},e)},function(d,e,f,g){c.drive.listFiles(d,null,g?!0:!1,function(c){for(var d=[],f=0;f<c.items.length;f++)d.push(b(c.items[f]));
+e(d)},f)},function(b,d,e){c.drive.getFile(b.id,function(b){d(b.data)},e)},null,function(b){b({Test:[]},1)},!0,!1);c.showDialog(d.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0)}),this.addMenuItem(b,"templates",d))})));this.put("file",new Menu(mxUtils.bind(this,function(b,d){if("1"==urlParams.embed)this.addSubmenu("importFrom",b,d),this.addSubmenu("exportAs",b,d),this.addSubmenu("embed",b,d),"1"==urlParams.libraries&&(this.addMenuItems(b,["-"],d),this.addSubmenu("newLibrary",b,d),
+this.addSubmenu("openLibraryFrom",b,d)),c.isRevisionHistorySupported()&&this.addMenuItems(b,["-","revisionHistory"],d),this.addMenuItems(b,["-","pageSetup","print","-","rename"],d),"1"!=urlParams.embedInline&&("1"==urlParams.noSaveBtn?"0"!=urlParams.saveAndExit&&this.addMenuItems(b,["saveAndExit"],d):(this.addMenuItems(b,["save"],d),"1"==urlParams.saveAndExit&&this.addMenuItems(b,["saveAndExit"],d))),"1"!=urlParams.noExitBtn&&this.addMenuItems(b,["exit"],d);else{var e=this.editorUi.getCurrentFile();
+if(null!=e&&e.constructor==DriveFile){e.isRestricted()&&this.addMenuItems(b,["exportOptionsDisabled"],d);this.addMenuItems(b,["save","-","share"],d);var f=this.addMenuItem(b,"synchronize",d);(!c.isOffline()||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)&&this.addLinkToItem(f,"https://www.diagrams.net/doc/faq/synchronize");b.addSeparator(d)}else this.addMenuItems(b,["new"],d);this.addSubmenu("openFrom",b,d);isLocalStorage&&this.addSubmenu("openRecent",b,d);null!=e&&e.constructor==DriveFile?this.addMenuItems(b,
+["new","-","rename","makeCopy","moveToFolder"],d):(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile&&null==e.fileHandle||(b.addSeparator(d),f=this.addMenuItem(b,"synchronize",d),(!c.isOffline()||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)&&this.addLinkToItem(f,"https://www.diagrams.net/doc/faq/synchronize")),this.addMenuItems(b,["-","save","saveAs","-"],d),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||"draw.io"!=c.getServiceName()||c.isOfflineApp()||null==e||this.addMenuItems(b,
+["share","-"],d),this.addMenuItems(b,["rename"],d),c.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(b,["upload"],d):(this.addMenuItems(b,["makeCopy"],d),null!=e&&e.constructor==OneDriveFile&&this.addMenuItems(b,["moveToFolder"],d)));b.addSeparator(d);this.addSubmenu("importFrom",b,d);this.addSubmenu("exportAs",b,d);b.addSeparator(d);this.addSubmenu("embed",b,d);this.addSubmenu("publish",b,d);b.addSeparator(d);this.addSubmenu("newLibrary",b,d);this.addSubmenu("openLibraryFrom",
+b,d);c.isRevisionHistorySupported()&&this.addMenuItems(b,["-","revisionHistory"],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"]));this.addMenuItems(b,["-","pageSetup"],d);mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["print"],d);this.addMenuItems(b,["-","close"])}})));b.prototype.execute=function(){var b=this.ui.editor.graph;this.customFonts=
+this.prevCustomFonts;this.prevCustomFonts=this.ui.menus.customFonts;this.ui.fireEvent(new mxEventObject("customFontsChanged","customFonts",this.customFonts));this.extFonts=this.previousExtFonts;for(var c=b.extFonts,d=0;null!=c&&d<c.length;d++){var e=document.getElementById("extFont_"+c[d].name);null!=e&&e.parentNode.removeChild(e)}b.extFonts=[];for(d=0;null!=this.previousExtFonts&&d<this.previousExtFonts.length;d++)this.ui.editor.graph.addExtFont(this.previousExtFonts[d].name,this.previousExtFonts[d].url);
+this.previousExtFonts=c};this.put("fontFamily",new Menu(mxUtils.bind(this,function(d,e){for(var f=mxUtils.bind(this,function(f,g,k,l,m){var n=c.editor.graph;l=this.styleChange(d,l||f,"1"!=urlParams["ext-fonts"]?[mxConstants.STYLE_FONTFAMILY,"fontSource","FType"]:[mxConstants.STYLE_FONTFAMILY],"1"!=urlParams["ext-fonts"]?[f,null!=g?encodeURIComponent(g):null,null]:[f],null,e,function(){"1"!=urlParams["ext-fonts"]?n.setFont(f,g):(document.execCommand("fontname",!1,f),n.addExtFont(f,g));c.fireEvent(new mxEventObject("styleChanged",
"keys","1"!=urlParams["ext-fonts"]?[mxConstants.STYLE_FONTFAMILY,"fontSource","FType"]:[mxConstants.STYLE_FONTFAMILY],"values","1"!=urlParams["ext-fonts"]?[f,null!=g?encodeURIComponent(g):null,null]:[f],"cells",[n.cellEditor.getEditingCell()]))},function(){n.updateLabelElements(n.getSelectionCells(),function(b){b.removeAttribute("face");b.style.fontFamily=null;"PRE"==b.nodeName&&n.replaceElement(b,"div")});"1"==urlParams["ext-fonts"]&&n.addExtFont(f,g)});k&&(k=document.createElement("span"),k.className=
"geSprite geSprite-delete",k.style.cursor="pointer",k.style.display="inline-block",l.firstChild.nextSibling.nextSibling.appendChild(k),mxEvent.addListener(k,mxClient.IS_POINTER?"pointerup":"mouseup",mxUtils.bind(this,function(d){if("1"!=urlParams["ext-fonts"]){delete Graph.recentCustomFonts[f.toLowerCase()];for(var e=0;e<this.customFonts.length;e++)if(this.customFonts[e].name==f&&this.customFonts[e].url==g){this.customFonts.splice(e,1);c.fireEvent(new mxEventObject("customFontsChanged"));break}}else{var k=
mxUtils.clone(this.editorUi.editor.graph.extFonts);if(null!=k&&0<k.length)for(e=0;e<k.length;e++)if(k[e].name==f){k.splice(e,1);break}for(var l=mxUtils.clone(this.customFonts),e=0;e<l.length;e++)if(l[e].name==f){l.splice(e,1);break}e=new b(this.editorUi,k,l);this.editorUi.editor.graph.model.execute(e)}this.editorUi.hideCurrentMenu();mxEvent.consume(d)})));Graph.addFont(f,g);l.firstChild.nextSibling.style.fontFamily=f;null!=m&&l.setAttribute("title",m)}),g={},k=0;k<this.defaultFonts.length;k++){var l=
@@ -11917,10 +11917,10 @@ f;return z.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 y=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 x=v.view.getState(n);null!=x&&(d=(x.getCenterX()-u.getCenterX())/v.view.scale,e=(x.getCenterY()-u.getCenterY())/v.view.scale)}}}}m=y.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 C=u.sidebar.dropAndConnect;u.sidebar.dropAndConnect=
-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 E={88:u.actions.get("selectChildren"),84:u.actions.get("selectSubtree"),80:u.actions.get("selectParent"),83:u.actions.get("selectSiblings")},G=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=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 F={88:u.actions.get("selectChildren"),84:u.actions.get("selectSubtree"),80:u.actions.get("selectParent"),83:u.actions.get("selectSiblings")},G=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=E[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)||G.apply(this,arguments)};var F=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 F.apply(this,arguments)};v.getSubtree=function(c){var e=
+v.startEditingAtCell(v.getSelectionCell()),mxEvent.consume(c);else if(mxEvent.isAltDown(c)&&mxEvent.isShiftDown(c)){var e=F[c.keyCode];null!=e&&(e.funct(c),mxEvent.consume(c))}else 37==c.keyCode?(t(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)||G.apply(this,arguments)};var E=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 E.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 D=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){D.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,
@@ -11955,11 +11955,11 @@ Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0"
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 k=document.createElement("link");k.setAttribute("rel","stylesheet");k.setAttribute("href",STYLE_PATH+"/dark.css");k.setAttribute("charset","UTF-8");k.setAttribute("type",
-"text/css");EditorUi.prototype.doSetDarkMode=function(b){if(Editor.darkMode!=b){var c=this.editor.graph;Editor.darkMode=b;this.spinner.opts.color=Editor.isDarkMode()?"#c0c0c0":"#000";this.setGridColor(Editor.isDarkMode()?c.view.defaultDarkGridColor:c.view.defaultGridColor);c.defaultPageBorderColor=Editor.isDarkMode()?"#505759":"#ffffff";c.defaultForegroundColor=Editor.isDarkMode()?"#f0f0f0":"#000000";c.defaultThemeName=Editor.isDarkMode()?"darkTheme":"default-style2";c.graphHandler.previewColor=Editor.isDarkMode()?
-"#cccccc":"black";c.defaultPageBackgroundColor=Editor.isDarkMode()?Editor.darkColor:"#ffffff";Graph.prototype.defaultPageBackgroundColor=c.defaultPageBackgroundColor;document.body.style.backgroundColor="1"==urlParams.embedInline?"transparent":Editor.isDarkMode()?Editor.darkColor:"#ffffff";c.loadStylesheet();null!=this.actions.layersWindow&&(b=this.actions.layersWindow.window.isVisible(),this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.destroy(),this.actions.layersWindow=null,
-b&&window.setTimeout(this.actions.get("layers").funct,0));null!=this.menus.commentsWindow&&(this.menus.commentsWindow.window.setVisible(!1),this.menus.commentsWindow.destroy(),this.menus.commentsWindow=null);null!=this.ruler&&this.ruler.updateStyle();Dialog.backdropColor=Editor.isDarkMode()?Editor.darkColor:"white";StyleFormatPanel.prototype.defaultStrokeColor=Editor.isDarkMode()?"#cccccc":"black";BaseFormatPanel.prototype.buttonBackgroundColor=Editor.isDarkMode()?Editor.darkColor:"white";Format.inactiveTabBackgroundColor=
-Editor.isDarkMode()?"black":"#f0f0f0";mxConstants.DROP_TARGET_COLOR=Editor.isDarkMode()?"#00ff00":"#0000FF";Editor.helpImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkHelpImage:Editor.lightHelpImage;Editor.checkmarkImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;g.innerHTML=Editor.createMinimalCss();Editor.darkMode?null==k.parentNode&&document.getElementsByTagName("head")[0].appendChild(k):null!=k.parentNode&&k.parentNode.removeChild(k)}};Editor.createMinimalCss=
-function(){return"* { -webkit-font-smoothing: antialiased; }html body td.mxWindowTitle > div > img { padding: 8px 4px; }"+(Editor.isDarkMode()?"html body td.mxWindowTitle > div > img { margin: -4px; }html body .geToolbarContainer .geMenuItem, html body .geToolbarContainer .geToolbarButton, html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem,html body .geMenubarContainer .geToolbarButton { filter: invert(1); }html body div.geToolbarContainer a.geInverted { filter: none; }html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem { color: #353535; }html > body > div > .geToolbarContainer { border: 1px solid #c0c0c0 !important; box-shadow: none !important; }html > body.geEditor > div > a.geItem { background-color: #2a2a2a; color: #cccccc; border-color: #505759; }html body .geTabContainer, html body .geTabContainer div, html body .geMenubarContainer { border-color: #505759 !important; }html body .mxCellEditor { color: #f0f0f0; }":
+"text/css");EditorUi.prototype.doSetDarkMode=function(b){if(Editor.darkMode!=b){var c=this.editor.graph;Editor.darkMode=b;this.spinner.opts.color=Editor.isDarkMode()?"#c0c0c0":"#000";this.setGridColor(Editor.isDarkMode()?c.view.defaultDarkGridColor:c.view.defaultGridColor);c.defaultPageBackgroundColor=Editor.isDarkMode()?Editor.darkColor:"#ffffff";c.defaultPageBorderColor=Editor.isDarkMode()?"#505759":"#ffffff";c.defaultForegroundColor=Editor.isDarkMode()?"#f0f0f0":"#000000";c.defaultThemeName=Editor.isDarkMode()?
+"darkTheme":"default-style2";c.graphHandler.previewColor=Editor.isDarkMode()?"#cccccc":"black";document.body.style.backgroundColor="1"==urlParams.embedInline?"transparent":Editor.isDarkMode()?Editor.darkColor:"#ffffff";c.loadStylesheet();null!=this.actions.layersWindow&&(b=this.actions.layersWindow.window.isVisible(),this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.destroy(),this.actions.layersWindow=null,b&&window.setTimeout(this.actions.get("layers").funct,0));null!=this.menus.commentsWindow&&
+(this.menus.commentsWindow.window.setVisible(!1),this.menus.commentsWindow.destroy(),this.menus.commentsWindow=null);null!=this.ruler&&this.ruler.updateStyle();Graph.prototype.defaultPageBackgroundColor=c.defaultPageBackgroundColor;Graph.prototype.defaultPageBorderColor=c.defaultPageBorderColor;Graph.prototype.defaultForegroundColor=c.defaultForegroundColor;StyleFormatPanel.prototype.defaultStrokeColor=Editor.isDarkMode()?"#cccccc":"black";BaseFormatPanel.prototype.buttonBackgroundColor=Editor.isDarkMode()?
+Editor.darkColor:"white";Format.inactiveTabBackgroundColor=Editor.isDarkMode()?"black":"#f0f0f0";Dialog.backdropColor=Editor.isDarkMode()?Editor.darkColor:"white";mxConstants.DROP_TARGET_COLOR=Editor.isDarkMode()?"#00ff00":"#0000FF";Editor.helpImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkHelpImage:Editor.lightHelpImage;Editor.checkmarkImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;g.innerHTML=Editor.createMinimalCss();Editor.darkMode?null==
+k.parentNode&&document.getElementsByTagName("head")[0].appendChild(k):null!=k.parentNode&&k.parentNode.removeChild(k)}};Editor.createMinimalCss=function(){return"* { -webkit-font-smoothing: antialiased; }html body td.mxWindowTitle > div > img { padding: 8px 4px; }"+(Editor.isDarkMode()?"html body td.mxWindowTitle > div > img { margin: -4px; }html body .geToolbarContainer .geMenuItem, html body .geToolbarContainer .geToolbarButton, html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem,html body .geMenubarContainer .geToolbarButton { filter: invert(1); }html body div.geToolbarContainer a.geInverted { filter: none; }html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem { color: #353535; }html > body > div > .geToolbarContainer { border: 1px solid #c0c0c0 !important; box-shadow: none !important; }html > body.geEditor > div > a.geItem { background-color: #2a2a2a; color: #cccccc; border-color: #505759; }html body .geTabContainer, html body .geTabContainer div, html body .geMenubarContainer { border-color: #505759 !important; }html body .mxCellEditor { color: #f0f0f0; }":
"html body div.geToolbarContainer a.geInverted { filter: invert(1); }html body.geEditor .geTabContainer div { border-color: #e5e5e5 !important; }")+'html > body > div > a.geItem { background-color: #ffffff; color: #707070; border-top: 1px solid lightgray; border-left: 1px solid lightgray; }html body .geMenubarContainer { border-bottom:1px solid lightgray;background-color:#ffffff; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0; }html body table.mxWindow td.mxWindowPane div.mxWindowPane *:not(svg *) { font-size:9pt; }table.mxWindow * :not(svg *) { font-size:13px; }html body .mxWindow { z-index: 3; }html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700; border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }html body a.geMenuItem { opacity: 0.75; cursor: pointer; user-select: none; }html body a.geMenuItem[disabled] { opacity: 0.2; }html body a.geMenuItem[disabled]:active { opacity: 0.2; }html body div.geActivePage { opacity: 0.7; }html body a.geMenuItem:active { opacity: 0.2; }html body .geToolbarButton { opacity: 0.3; }html body .geToolbarButton:active { opacity: 0.15; }html body .geStatus:active { opacity: 0.5; }html body .geStatus { padding-top:3px !important; }html body .geMenubarContainer .geStatus { margin-top: 0px !important; }html table.mxPopupMenu tr.mxPopupMenuItemHover:active { opacity: 0.7; }html body .geDialog input, html body .geToolbarContainer input, html body .mxWindow input {padding: 2px; display: inline-block; }html body .mxWindow input[type="checkbox"] {padding: 0px; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: '+
(Editor.isDarkMode()?Editor.darkColor:"#fff")+" !important; border: none !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: "+(Editor.isDarkMode()?"#cccccc":"#353535")+" !important; border-style: solid; border-width: 1px; border-color: rgb(216, 216, 216); }html body div.diagramContainer button:hover, html body .mxWindow button:hover, html body .geDialog button:hover { border-color: rgb(177, 177, 177); }html body div.diagramContainer button:active, html body .mxWindow button:active, html body .geDialog button:active { opacity: 0.6; }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:0px; padding: 0 2px 4px 2px; } html body div.geToolbarContainer a.geColorBtn { margin: 2px; } html body .mxWindow td.mxWindowPane input, html body .mxWindow td.mxWindowPane select, html body .mxWindow td.mxWindowPane textarea, html body .mxWindow td.mxWindowPane radio { padding: 0px; box-sizing: border-box; }.geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }.geTabContainer { border-bottom:1px solid lightgray; border-top:1px solid lightgray; background: "+
(Editor.isDarkMode()?Editor.darkColor:"#fff")+" !important; }.geToolbarContainer { background: "+(Editor.isDarkMode()?Editor.darkColor:"#fff")+"; }div.geSidebarContainer { background-color: "+(Editor.isDarkMode()?Editor.darkColor:"#fff")+"; }div.geSidebarContainer .geTitle { background-color: "+(Editor.isDarkMode()?Editor.darkColor:"#fdfdfd")+"; }div.mxWindow td.mxWindowPane button { background-image: none; float: none; }td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:"+
@@ -12017,33 +12017,33 @@ mxResources.get("untitledLibrary");var p=document.createElement("div");p.classNa
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";var z=m.menus.get("viewZoom"),A="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,N="1"==urlParams.sketch?document.createElement("div"):null,O="1"==urlParams.sketch?document.createElement("div"):null,W="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.graph.defaultPageBackgroundColor=n.defaultPageBackgroundColor,this.sidebar.graph.defaultForegroundColor=n.defaultForegroundColor,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 ka=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)W.style.left="10px",W.style.top=
-"10px",O.style.left="10px",O.style.top="60px",N.style.top="10px",N.style.right="12px",N.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()}W.style.left=m.diagramContainer.offsetLeft+"px";W.style.top=m.diagramContainer.offsetTop-W.offsetHeight-4+"px";O.style.display="";O.style.left=m.diagramContainer.offsetLeft-O.offsetWidth-4+"px";O.style.top=m.diagramContainer.offsetTop+"px";N.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-N.offsetWidth+"px";N.style.top=W.style.top;N.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";W.style.visibility="";N.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()}),Y=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",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";W.style.visibility="hidden";N.style.visibility="hidden";O.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){O.className="geToolbarContainer";N.className="geToolbarContainer";W.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=O;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"}));S=c("diagram",null,Editor.menuImage);S.style.boxShadow="none";S.style.padding="6px";S.style.margin="0px";W.appendChild(S);mxEvent.disableContextMenu(S);mxEvent.addGestureListeners(S,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 R=!1,T=mxUtils.bind(this,function(){O.innerHTML="";if(!R){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";O.appendChild(b);mxUtils.br(O);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+
-")",A);S=c("table",null,Editor.tableImage);S.style.boxShadow="none";S.style.opacity="0.7";S.style.padding="6px";S.style.margin="0px";S.style.width="37px";d(S,null,"pointer");b(m.actions.get("insertTemplate"),mxResources.get("template"),Editor.templateImage)}"1"!=urlParams.embedInline&&O.appendChild(ca)});mxEvent.addListener(ca,"click",mxUtils.bind(this,function(){R?(mxUtils.setPrefixedStyle(O.style,"transform","translate(0, -50%)"),O.style.padding="8px 6px 4px",O.style.top="50%",O.style.bottom="",
-O.style.height="",ca.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",ca.style.width="40px",ca.style.height="12px",ca.setAttribute("title","Minimize"),R=!1,T()):(O.innerHTML="",O.appendChild(ca),mxUtils.setPrefixedStyle(O.style,"transform","translate(0, 0)"),O.style.top="",O.style.bottom="12px",O.style.padding="0px",O.style.height="24px",ca.style.height="24px",ca.style.backgroundImage="url("+Editor.plusImage+")",ca.setAttribute("title",mxResources.get("insert")),ca.style.width="24px",
-R=!0)}));T();m.addListener("darkModeChanged",T);m.addListener("sketchModeChanged",T)}else m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus())}));if(null!=z){var Y=function(b){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},ia=m.actions.get("zoomIn"),U=m.actions.get("zoomOut"),Z=m.actions.get("resetView"),ha=m.actions.get("fullscreen");m.actions.get("toggleDarkMode");var ra=
-m.actions.get("undo"),V=m.actions.get("redo"),ea=f("",ra.funct,null,mxResources.get("undo")+" ("+ra.shortcut+")",ra,Editor.undoImage),ga=f("",V.funct,null,mxResources.get("redo")+" ("+V.shortcut+")",V,Editor.redoImage),ja=f("",ha.funct,null,mxResources.get("fullscreen"),ha,Editor.fullscreenImage);if(null!=N){z=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";W.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=V.enabled?"":"0.1"};W.appendChild(ea);W.appendChild(ga);ra.addListener("stateChanged",Z);V.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",N.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",N.appendChild(Z));Z=m.actions.get("outline");Z=f("",Z.funct,null,mxResources.get("outline"),Z,Editor.outlineImage);N.appendChild(Z);Z=f("",U.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",
-U,Editor.zoomOutImage);N.appendChild(Z);var S=document.createElement("div");S.innerHTML="100%";S.setAttribute("title",mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+" (Enter)");S.style.display="inline-block";S.style.cursor="pointer";S.style.textAlign="center";S.style.whiteSpace="nowrap";S.style.paddingRight="10px";S.style.textDecoration="none";S.style.verticalAlign="top";S.style.padding="6px 0";S.style.fontSize="14px";S.style.width="40px";S.style.opacity="0.4";N.appendChild(S);mxEvent.addListener(S,
-"click",Y);Y=f("",ia.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",ia,Editor.zoomInImage);N.appendChild(Y);"1"==urlParams.embedInline&&(N.appendChild(ja),Y=m.actions.get("exit"),N.appendChild(f("",Y.funct,null,mxResources.get("exit"),Y,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";N.appendChild(da);m.addListener("fileDescriptorChanged",z);m.addListener("pagesVisibleChanged",z);z();m.tabContainer.style.visibility="hidden";p.style.cssText="position:absolute;right:12px;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;";
+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 ka=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)W.style.left="10px",W.style.top="10px",O.style.left="10px",O.style.top="60px",N.style.top="10px",N.style.right="12px",N.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()}W.style.left=m.diagramContainer.offsetLeft+"px";W.style.top=m.diagramContainer.offsetTop-
+W.offsetHeight-4+"px";O.style.display="";O.style.left=m.diagramContainer.offsetLeft-O.offsetWidth-4+"px";O.style.top=m.diagramContainer.offsetTop+"px";N.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-N.offsetWidth+"px";N.style.top=W.style.top;N.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";W.style.visibility="";N.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()}),Y=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",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";W.style.visibility="hidden";N.style.visibility="hidden";O.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){O.className="geToolbarContainer";N.className="geToolbarContainer";W.className="geToolbarContainer";p.className="geToolbarContainer";
+m.picker=O;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"}));S=c("diagram",null,Editor.menuImage);S.style.boxShadow=
+"none";S.style.padding="6px";S.style.margin="0px";W.appendChild(S);mxEvent.disableContextMenu(S);mxEvent.addGestureListeners(S,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 R=!1,T=mxUtils.bind(this,function(){O.innerHTML="";if(!R){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";O.appendChild(b);mxUtils.br(O);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+")",A);S=c("table",null,Editor.tableImage);S.style.boxShadow="none";S.style.opacity="0.7";S.style.padding="6px";
+S.style.margin="0px";S.style.width="37px";d(S,null,"pointer");b(m.actions.get("insertTemplate"),mxResources.get("template"),Editor.templateImage)}"1"!=urlParams.embedInline&&O.appendChild(ca)});mxEvent.addListener(ca,"click",mxUtils.bind(this,function(){R?(mxUtils.setPrefixedStyle(O.style,"transform","translate(0, -50%)"),O.style.padding="8px 6px 4px",O.style.top="50%",O.style.bottom="",O.style.height="",ca.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",ca.style.width="40px",ca.style.height=
+"12px",ca.setAttribute("title","Minimize"),R=!1,T()):(O.innerHTML="",O.appendChild(ca),mxUtils.setPrefixedStyle(O.style,"transform","translate(0, 0)"),O.style.top="",O.style.bottom="12px",O.style.padding="0px",O.style.height="24px",ca.style.height="24px",ca.style.backgroundImage="url("+Editor.plusImage+")",ca.setAttribute("title",mxResources.get("insert")),ca.style.width="24px",R=!0)}));T();m.addListener("darkModeChanged",T);m.addListener("sketchModeChanged",T)}else m.editor.addListener("statusChanged",
+mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus())}));if(null!=z){var Y=function(b){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},ia=m.actions.get("zoomIn"),U=m.actions.get("zoomOut"),Z=m.actions.get("resetView"),ha=m.actions.get("fullscreen");m.actions.get("toggleDarkMode");var ra=m.actions.get("undo"),V=m.actions.get("redo"),ea=f("",ra.funct,null,mxResources.get("undo")+" ("+ra.shortcut+")",ra,Editor.undoImage),
+ga=f("",V.funct,null,mxResources.get("redo")+" ("+V.shortcut+")",V,Editor.redoImage),ja=f("",ha.funct,null,mxResources.get("fullscreen"),ha,Editor.fullscreenImage);if(null!=N){z=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";W.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=V.enabled?"":"0.1"};W.appendChild(ea);W.appendChild(ga);ra.addListener("stateChanged",Z);V.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",N.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",N.appendChild(Z));Z=m.actions.get("outline");Z=f("",Z.funct,null,mxResources.get("outline"),Z,Editor.outlineImage);N.appendChild(Z);Z=f("",U.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",U,Editor.zoomOutImage);N.appendChild(Z);var S=document.createElement("div");S.innerHTML="100%";S.setAttribute("title",mxResources.get("fitWindow")+
+"/"+mxResources.get("resetView")+" (Enter)");S.style.display="inline-block";S.style.cursor="pointer";S.style.textAlign="center";S.style.whiteSpace="nowrap";S.style.paddingRight="10px";S.style.textDecoration="none";S.style.verticalAlign="top";S.style.padding="6px 0";S.style.fontSize="14px";S.style.width="40px";S.style.opacity="0.4";N.appendChild(S);mxEvent.addListener(S,"click",Y);Y=f("",ia.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",ia,Editor.zoomInImage);N.appendChild(Y);
+"1"==urlParams.embedInline&&(N.appendChild(ja),Y=m.actions.get("exit"),N.appendChild(f("",Y.funct,null,mxResources.get("exit"),Y,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";N.appendChild(da);m.addListener("fileDescriptorChanged",z);m.addListener("pagesVisibleChanged",z);z();m.tabContainer.style.visibility="hidden";p.style.cssText="position:absolute;right:12px;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;";
W.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;";N.style.cssText="position:absolute;right:12px;bottom:12px;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(W);x.appendChild(N);O.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(O);window.setTimeout(function(){mxUtils.setPrefixedStyle(O.style,"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(x)}else{var ma=f("",Y,!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";S=t.addMenu("100%",z.funct);S.setAttribute("title",mxResources.get("zoom")+
" (Alt+Mousewheel)");S.style.whiteSpace="nowrap";S.style.paddingRight="10px";S.style.textDecoration="none";S.style.textDecoration="none";S.style.overflow="hidden";S.style.visibility="hidden";S.style.textAlign="center";S.style.cursor="pointer";S.style.height=parseInt(m.tabContainerHeight)-1+"px";S.style.lineHeight=parseInt(m.tabContainerHeight)+1+"px";S.style.position="absolute";S.style.display="block";S.style.fontSize="12px";S.style.width="59px";S.style.right="0px";S.style.bottom="0px";S.style.backgroundImage=
@@ -12054,14 +12054,14 @@ mxEvent.getClientY(b)),m.sendEmbeddedSvgExport())});l=document.createElement("di
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";W.style.visibility="hidden";N.style.visibility=
"hidden";O.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,E=B=0,G=0,F=0,D=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=E=(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],Q=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)<=(Q||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!=E?E:0,x.splice(0,0==z?1:z),z=-1;else break;0!=B||Q||(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];D=F=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];Q=t==u||t==M;M=M.x-u.x-u.width;L|=t==
-u;if(0==F&&0==G)F=M,G=1;else if(Math.abs(F-M)<=(Q||1==z&&L?v:0))G+=1;else if(1<G&&L){A=A.slice(0,z+1);break}else if(3<=A.length-z&&!L)G=0,D=F=0!=H?H:0,A.splice(0,0==z?1:z),z=-1;else break;0!=D||Q||(F=D=M)}3==A.length&&A[1]==t&&(D=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,
-mxConstants.GUIDE_STROKEWIDTH);b.dialect=mxConstants.DIALECT_SVG;b.pointerEvents=!1;b.init(q.graph.getView().getOverlayPane());return b};F=function(b,c){if(b&&null!=q.guidesArrHor)for(var d=0;d<q.guidesArrHor.length;d++)q.guidesArrHor[d].node.style.visibility="hidden";if(c&&null!=q.guidesArrVer)for(d=0;d<q.guidesArrVer.length;d++)q.guidesArrVer[d].node.style.visibility="hidden"};if(1<G&&G==A.length-1){G=[];H=q.guidesArrHor;k=[];g=0;z=A[0]==t?1:0;L=A[z].y+A[z].height;if(0<D)for(z=0;z<A.length-1;z++)u=
+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,F=B=0,G=0,E=0,D=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=F=(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],Q=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)<=(Q||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!=F?F:0,x.splice(0,0==z?1:z),z=-1;else break;0!=B||Q||(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];D=E=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];Q=t==u||t==M;M=M.x-u.x-u.width;L|=t==
+u;if(0==E&&0==G)E=M,G=1;else if(Math.abs(E-M)<=(Q||1==z&&L?v:0))G+=1;else if(1<G&&L){A=A.slice(0,z+1);break}else if(3<=A.length-z&&!L)G=0,D=E=0!=H?H:0,A.splice(0,0==z?1:z),z=-1;else break;0!=D||Q||(E=D=M)}3==A.length&&A[1]==t&&(D=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,
+mxConstants.GUIDE_STROKEWIDTH);b.dialect=mxConstants.DIALECT_SVG;b.pointerEvents=!1;b.init(q.graph.getView().getOverlayPane());return b};E=function(b,c){if(b&&null!=q.guidesArrHor)for(var d=0;d<q.guidesArrHor.length;d++)q.guidesArrHor[d].node.style.visibility="hidden";if(c&&null!=q.guidesArrVer)for(d=0;d<q.guidesArrVer.length;d++)q.guidesArrVer[d].node.style.visibility="hidden"};if(1<G&&G==A.length-1){G=[];H=q.guidesArrHor;k=[];g=0;z=A[0]==t?1:0;L=A[z].y+A[z].height;if(0<D)for(z=0;z<A.length-1;z++)u=
A[z],M=A[z+1],t==u?(g=M.x-u.width-D,k.push(new mxPoint(g+u.width+I,L)),k.push(new mxPoint(M.x-I,L))):t==M?(k.push(new mxPoint(u.x+u.width+I,L)),g=u.x+u.width+D,k.push(new mxPoint(g-I,L))):(k.push(new mxPoint(u.x+u.width+I,L)),k.push(new mxPoint(M.x-I,L)));else u=A[0],z=A[2],g=u.x+u.width+(z.x-u.x-u.width-t.width)/2,k.push(new mxPoint(u.x+u.width+I,L)),k.push(new mxPoint(g-I,L)),k.push(new mxPoint(g+t.width+I,L)),k.push(new mxPoint(z.x-I,L));for(z=0;z<k.length;z+=2)A=k[z],D=k[z+1],A=v(A,D,null!=H?
-H[z/2]:null),A.node.style.visibility="visible",A.redraw(),G.push(A);for(z=k.length/2;null!=H&&z<H.length;z++)H[z].destroy();q.guidesArrHor=G;g-=c.x;k=!0}else F(!0);if(1<y&&y==x.length-1){G=[];H=q.guidesArrVer;p=[];f=0;z=x[0]==t?1:0;y=x[z].x+x[z].width;if(0<B)for(z=0;z<x.length-1;z++)u=x[z],M=x[z+1],t==u?(f=M.y-u.height-B,p.push(new mxPoint(y,f+u.height+I)),p.push(new mxPoint(y,M.y-I))):t==M?(p.push(new mxPoint(y,u.y+u.height+I)),f=u.y+u.height+B,p.push(new mxPoint(y,f-I))):(p.push(new mxPoint(y,u.y+
-u.height+I)),p.push(new mxPoint(y,M.y-I)));else u=x[0],z=x[2],f=u.y+u.height+(z.y-u.y-u.height-t.height)/2,p.push(new mxPoint(y,u.y+u.height+I)),p.push(new mxPoint(y,f-I)),p.push(new mxPoint(y,f+t.height+I)),p.push(new mxPoint(y,z.y-I));for(z=0;z<p.length;z+=2)A=p[z],D=p[z+1],A=v(A,D,null!=H?H[z/2]:null,!0),A.node.style.visibility="visible",A.redraw(),G.push(A);for(z=p.length/2;null!=H&&z<H.length;z++)H[z].destroy();q.guidesArrVer=G;f-=c.y;p=!0}else F(!1,!0)}if(k||p)return t=new mxPoint(g,f),x=b.call(this,
-c,t,e,n),k&&!p?t.y=x.y:p&&!k&&(t.x=x.x),x.y!=t.y&&null!=this.guideY&&null!=this.guideY.node&&(this.guideY.node.style.visibility="hidden"),x.x!=t.x&&null!=this.guideX&&null!=this.guideX.node&&(this.guideX.node.style.visibility="hidden"),t;F(!0,!0);return b.apply(this,arguments)};var e=mxGuide.prototype.setVisible;mxGuide.prototype.setVisible=function(b){e.call(this,b);var c=this.guidesArrVer,d=this.guidesArrHor;if(null!=c)for(var n=0;n<c.length;n++)c[n].node.style.visibility=b?"visible":"hidden";if(null!=
+H[z/2]:null),A.node.style.visibility="visible",A.redraw(),G.push(A);for(z=k.length/2;null!=H&&z<H.length;z++)H[z].destroy();q.guidesArrHor=G;g-=c.x;k=!0}else E(!0);if(1<y&&y==x.length-1){G=[];H=q.guidesArrVer;p=[];f=0;z=x[0]==t?1:0;y=x[z].x+x[z].width;if(0<B)for(z=0;z<x.length-1;z++)u=x[z],M=x[z+1],t==u?(f=M.y-u.height-B,p.push(new mxPoint(y,f+u.height+I)),p.push(new mxPoint(y,M.y-I))):t==M?(p.push(new mxPoint(y,u.y+u.height+I)),f=u.y+u.height+B,p.push(new mxPoint(y,f-I))):(p.push(new mxPoint(y,u.y+
+u.height+I)),p.push(new mxPoint(y,M.y-I)));else u=x[0],z=x[2],f=u.y+u.height+(z.y-u.y-u.height-t.height)/2,p.push(new mxPoint(y,u.y+u.height+I)),p.push(new mxPoint(y,f-I)),p.push(new mxPoint(y,f+t.height+I)),p.push(new mxPoint(y,z.y-I));for(z=0;z<p.length;z+=2)A=p[z],D=p[z+1],A=v(A,D,null!=H?H[z/2]:null,!0),A.node.style.visibility="visible",A.redraw(),G.push(A);for(z=p.length/2;null!=H&&z<H.length;z++)H[z].destroy();q.guidesArrVer=G;f-=c.y;p=!0}else E(!1,!0)}if(k||p)return t=new mxPoint(g,f),x=b.call(this,
+c,t,e,n),k&&!p?t.y=x.y:p&&!k&&(t.x=x.x),x.y!=t.y&&null!=this.guideY&&null!=this.guideY.node&&(this.guideY.node.style.visibility="hidden"),x.x!=t.x&&null!=this.guideX&&null!=this.guideX.node&&(this.guideX.node.style.visibility="hidden"),t;E(!0,!0);return b.apply(this,arguments)};var e=mxGuide.prototype.setVisible;mxGuide.prototype.setVisible=function(b){e.call(this,b);var c=this.guidesArrVer,d=this.guidesArrHor;if(null!=c)for(var n=0;n<c.length;n++)c[n].node.style.visibility=b?"visible":"hidden";if(null!=
d)for(n=0;n<d.length;n++)d[n].node.style.visibility=b?"visible":"hidden"};var d=mxGuide.prototype.destroy;mxGuide.prototype.destroy=function(){d.call(this);var b=this.guidesArrVer,e=this.guidesArrHor;if(null!=b){for(var g=0;g<b.length;g++)b[g].destroy();this.guidesArrVer=null}if(null!=e){for(g=0;g<e.length;g++)e[g].destroy();this.guidesArrHor=null}}})();function mxRuler(b,e,d,c){function k(){var c=b.diagramContainer;q.style.top=c.offsetTop-l+"px";q.style.left=c.offsetLeft-l+"px";q.style.width=(d?0:c.offsetWidth)+l+"px";q.style.height=(d?c.offsetHeight:0)+l+"px"}function g(b,c,d){if(null!=n)return b;var e;return function(){var f=this,g=arguments,k=d&&!e;clearTimeout(e);e=setTimeout(function(){e=null;d||b.apply(f,g)},c);k&&b.apply(f,g)}}var n=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,
f=window.cancelAnimationFrame||window.mozCancelAnimationFrame,l=this.RULER_THICKNESS,m=this;this.unit=e;var p=Editor.isDarkMode()?{bkgClr:"#202020",outBkgClr:Editor.darkColor,cornerClr:Editor.darkColor,strokeClr:"#505759",fontClr:"#BBBBBB",guideClr:"#0088cf"}:{bkgClr:"#ffffff",outBkgClr:"#e8e9ed",cornerClr:"#fbfbfb",strokeClr:"#dadce0",fontClr:"#BBBBBB",guideClr:"#0000BB"},q=document.createElement("div");q.style.position="absolute";this.updateStyle=mxUtils.bind(this,function(){p=Editor.isDarkMode()?
{bkgClr:"#202020",outBkgClr:Editor.darkColor,cornerClr:Editor.darkColor,strokeClr:"#505759",fontClr:"#BBBBBB",guideClr:"#0088cf"}:{bkgClr:"#ffffff",outBkgClr:"#e8e9ed",cornerClr:"#fbfbfb",strokeClr:"#dadce0",fontClr:"#BBBBBB",guideClr:"#0000BB"};q.style.background=p.bkgClr;q.style[d?"borderRight":"borderBottom"]="0.5px solid "+p.strokeClr;q.style.borderLeft="0.5px solid "+p.strokeClr});this.updateStyle();document.body.appendChild(q);mxEvent.disableContextMenu(q);this.editorUiRefresh=b.refresh;b.refresh=
@@ -12087,6 +12087,6 @@ x=0,p=0;p<n.length;p++){var y=n[p];if(null==y){var y=!1,x=n[x],z=n[p-1];!l&&m&&(
Graph.compress(v)+")");v=b.view.scale;x=b.view.translate;d=new mxCell("",new mxGeometry(e/v-x.x,g/v-x.y,d/v,f/v),p);d.vertex=1;b.model.beginUpdate();try{d=b.addCell(d),b.fireEvent(new mxEventObject("cellsInserted","cells",[d])),b.fireEvent(new mxEventObject("freehandInserted","cell",d))}finally{b.model.endUpdate()}b.setSelectionCells([d])}}for(p=0;p<k.length;p++)k[p].parentNode.removeChild(k[p]);c=null;k=[];n=[]}A(!1)};b.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,c){var d=c.getProperty("eventName"),
e=c.getProperty("event");d==mxEvent.MOUSE_MOVE&&v&&(null!=e.sourceState&&e.sourceState.setCursor("crosshair"),e.consume())}));var B=new mxCell;B.edge=!0;b.addMouseListener({mouseDown:mxUtils.bind(this,function(d,k){if(b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){var l=k.getEvent();if(v&&!mxEvent.isPopupTrigger(l)&&!mxEvent.isMultiTouchEvent(l)){var m=b.getCurrentCellStyle(B),p=parseFloat(b.currentVertexStyle[mxConstants.STYLE_STROKEWIDTH]||1),p=Math.max(1,p*b.view.scale),m=mxUtils.getValue(b.currentVertexStyle,
mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(m,mxConstants.STYLE_STROKECOLOR,"#000"));"default"==m&&(m=b.defaultForegroundColor);c=document.createElementNS("http://www.w3.org/2000/svg","path");c.setAttribute("fill","none");c.setAttribute("stroke",m);c.setAttribute("stroke-width",p);"1"==b.currentVertexStyle[mxConstants.STYLE_DASHED]&&(m=b.currentVertexStyle[mxConstants.STYLE_DASH_PATTERN]||"3 3",m=m.split(" ").map(function(b){return parseFloat(b)*p}).join(" "),c.setAttribute("stroke-dasharray",
-m));u=[];l=y(l);C(l);g="M"+l.x+" "+l.y;n.push(l);f=[];c.setAttribute("d",g);e.appendChild(c);k.consume()}}}),mouseMove:mxUtils.bind(this,function(d,e){if(c&&b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){var k=e.getEvent(),k=y(k);C(k);var l=E(0);if(l){g+=" L"+l.x+" "+l.y;n.push(l);var m="";f=[];for(var p=2;p<u.length;p+=2)l=E(p),m+=" L"+l.x+" "+l.y,f.push(l);c.setAttribute("d",g+m)}q&&(l=b.view.translate,b.scrollRectToVisible((new mxRectangle(k.x-l.x,k.y-l.y)).grow(20)));e.consume()}}),mouseUp:mxUtils.bind(this,
-function(d,e){c&&b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&(z(e.getEvent()),e.consume())})});var y=function(c){return mxUtils.convertPoint(b.container,mxEvent.getClientX(c),mxEvent.getClientY(c))},C=function(b){for(u.push(b);u.length>d;)u.shift()},E=function(b){var c=u.length;if(1===c%2||c>=d){var e=0,f=0,g,k=0;for(g=b;g<c;g++)k++,b=u[g],e+=b.x,f+=b.y;return{x:e/k,y:f/k}}return null}}}mxFreehand.prototype.NO_SMOOTHING=1;mxFreehand.prototype.MILD_SMOOTHING=4;
+m));u=[];l=y(l);C(l);g="M"+l.x+" "+l.y;n.push(l);f=[];c.setAttribute("d",g);e.appendChild(c);k.consume()}}}),mouseMove:mxUtils.bind(this,function(d,e){if(c&&b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){var k=e.getEvent(),k=y(k);C(k);var l=F(0);if(l){g+=" L"+l.x+" "+l.y;n.push(l);var m="";f=[];for(var p=2;p<u.length;p+=2)l=F(p),m+=" L"+l.x+" "+l.y,f.push(l);c.setAttribute("d",g+m)}q&&(l=b.view.translate,b.scrollRectToVisible((new mxRectangle(k.x-l.x,k.y-l.y)).grow(20)));e.consume()}}),mouseUp:mxUtils.bind(this,
+function(d,e){c&&b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&(z(e.getEvent()),e.consume())})});var y=function(c){return mxUtils.convertPoint(b.container,mxEvent.getClientX(c),mxEvent.getClientY(c))},C=function(b){for(u.push(b);u.length>d;)u.shift()},F=function(b){var c=u.length;if(1===c%2||c>=d){var e=0,f=0,g,k=0;for(g=b;g<c;g++)k++,b=u[g],e+=b.x,f+=b.y;return{x:e/k,y:f/k}}return null}}}mxFreehand.prototype.NO_SMOOTHING=1;mxFreehand.prototype.MILD_SMOOTHING=4;
mxFreehand.prototype.NORMAL_SMOOTHING=8;mxFreehand.prototype.VERY_SMOOTH_SMOOTHING=12;mxFreehand.prototype.SUPER_SMOOTH_SMOOTHING=16;mxFreehand.prototype.HYPER_SMOOTH_SMOOTHING=20;
diff --git a/src/main/webapp/js/diagramly/App.js b/src/main/webapp/js/diagramly/App.js
index 7bdf644c..6e0aa249 100644
--- a/src/main/webapp/js/diagramly/App.js
+++ b/src/main/webapp/js/diagramly/App.js
@@ -246,6 +246,11 @@ App.MODE_NOTION = 'notion';
App.MODE_EMBED = 'embed';
/**
+ * Atlas App Mode
+ */
+App.MODE_ATLAS = 'atlas';
+
+/**
* Sets the delay for autosave in milliseconds. Default is 2000.
*/
App.DROPBOX_APPKEY = window.DRAWIO_DROPBOX_ID;
diff --git a/src/main/webapp/js/diagramly/Editor.js b/src/main/webapp/js/diagramly/Editor.js
index f5bec0bc..9392fc4b 100644
--- a/src/main/webapp/js/diagramly/Editor.js
+++ b/src/main/webapp/js/diagramly/Editor.js
@@ -5933,10 +5933,44 @@
var graphPostProcessCellStyle = Graph.prototype.postProcessCellStyle;
Graph.prototype.postProcessCellStyle = function(style)
{
+ this.replaceDefaultColors(style);
+
return Graph.processFontStyle(graphPostProcessCellStyle.apply(this, arguments));
};
/**
+ * Replaces default colors.
+ */
+ Graph.prototype.replaceDefaultColors = function(style)
+ {
+ if (style != null)
+ {
+ var fg = mxUtils.hex2rgba(this.defaultForegroundColor);
+ var bg = mxUtils.hex2rgba(this.defaultPageBackgroundColor);
+
+ this.replaceDefaultColor(style, mxConstants.STYLE_FONTCOLOR, fg);
+ this.replaceDefaultColor(style, mxConstants.STYLE_FILLCOLOR, bg);
+ this.replaceDefaultColor(style, mxConstants.STYLE_STROKECOLOR, fg);
+ this.replaceDefaultColor(style, mxConstants.STYLE_IMAGE_BORDER, fg);
+ this.replaceDefaultColor(style, mxConstants.STYLE_IMAGE_BACKGROUND, bg);
+ this.replaceDefaultColor(style, mxConstants.STYLE_LABEL_BORDERCOLOR, fg);
+ this.replaceDefaultColor(style, mxConstants.STYLE_SWIMLANE_FILLCOLOR, bg);
+ this.replaceDefaultColor(style, mxConstants.STYLE_LABEL_BACKGROUNDCOLOR, bg);
+ }
+ };
+
+ /**
+ * Replaces the colors for the given key.
+ */
+ Graph.prototype.replaceDefaultColor = function(style, key, value)
+ {
+ if (style != null && style[key] == 'default' && value != null)
+ {
+ style[key] = value;
+ }
+ };
+
+ /**
* Handles custom fonts in labels.
*/
var mxSvgCanvas2DUpdateTextNodes = mxSvgCanvas2D.prototype.updateTextNodes;
diff --git a/src/main/webapp/js/diagramly/EditorUi.js b/src/main/webapp/js/diagramly/EditorUi.js
index 75098315..22544f4b 100644
--- a/src/main/webapp/js/diagramly/EditorUi.js
+++ b/src/main/webapp/js/diagramly/EditorUi.js
@@ -5749,7 +5749,7 @@
/**
*
*/
- EditorUi.prototype.showPublishLinkDialog = function(title, hideShare, width, height, fn, showFrameOption)
+ EditorUi.prototype.showPublishLinkDialog = function(title, hideShare, width, height, fn, showFrameOption, helpLink)
{
var div = document.createElement('div');
div.style.whiteSpace = 'nowrap';
@@ -5761,13 +5761,12 @@
div.appendChild(hd);
var file = this.getCurrentFile();
- var helpLink = 'https://www.diagrams.net/doc/faq/publish-diagram-as-link';
var dy = 0;
if (file != null && file.constructor == window.DriveFile && !hideShare)
{
dy = 80;
- helpLink = 'https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram';
+ helpLink = (helpLink != null) ? helpLink : 'https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram';
var hintSection = document.createElement('div');
hintSection.style.cssText = 'border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;';
@@ -5809,6 +5808,10 @@
}
}));
}
+ else
+ {
+ helpLink = (helpLink != null) ? helpLink : 'https://www.diagrams.net/doc/faq/publish-diagram-as-link';
+ }
var widthInput = null;
var heightInput = null;
diff --git a/src/main/webapp/js/diagramly/Menus.js b/src/main/webapp/js/diagramly/Menus.js
index f44e08ae..4d6178e9 100644
--- a/src/main/webapp/js/diagramly/Menus.js
+++ b/src/main/webapp/js/diagramly/Menus.js
@@ -2119,7 +2119,28 @@
editorUi.actions.put('embedNotion', new Action(mxResources.get('notion') + '...', function()
{
- editorUi.openLink('https://chrome.google.com/webstore/detail/drawio-for-notion/plhaalebpkihaccllnkdaokdoeaokmle');
+ editorUi.showPublishLinkDialog(mxResources.get('notion'), null, null, null,
+ function(linkTarget, linkColor, allPages, lightbox, editLink, layers, width, height, tags)
+ {
+ if (editorUi.spinner.spin(document.body, mxResources.get('loading')))
+ {
+ editorUi.getPublicUrl(editorUi.getCurrentFile(), function(url)
+ {
+ editorUi.spinner.stop();
+ var params = ['border=0'];
+
+ if (tags)
+ {
+ params.push('tags=%7B%7D');
+ }
+
+ var dlg = new EmbedDialog(editorUi, editorUi.createLink(linkTarget, linkColor,
+ allPages, lightbox, editLink, layers, url, null, params, true));
+ editorUi.showDialog(dlg.container, 450, 240, true, true);
+ dlg.init();
+ });
+ }
+ }, true);
}));
editorUi.actions.put('publishLink', new Action(mxResources.get('link') + '...', function()
diff --git a/src/main/webapp/js/diagramly/Minimal.js b/src/main/webapp/js/diagramly/Minimal.js
index 3b201272..dc20ee29 100644
--- a/src/main/webapp/js/diagramly/Minimal.js
+++ b/src/main/webapp/js/diagramly/Minimal.js
@@ -332,12 +332,11 @@ EditorUi.initMinimalTheme = function()
// Sets instance vars and graph stylesheet
this.spinner.opts.color = Editor.isDarkMode() ? '#c0c0c0' : '#000';
this.setGridColor(Editor.isDarkMode() ? graph.view.defaultDarkGridColor : graph.view.defaultGridColor);
+ graph.defaultPageBackgroundColor = Editor.isDarkMode() ? Editor.darkColor : '#ffffff';
graph.defaultPageBorderColor = Editor.isDarkMode() ? '#505759' : '#ffffff';
graph.defaultForegroundColor = Editor.isDarkMode() ? '#f0f0f0' : '#000000';
graph.defaultThemeName = Editor.isDarkMode() ? 'darkTheme' : 'default-style2';
graph.graphHandler.previewColor = Editor.isDarkMode() ? '#cccccc' : 'black';
- graph.defaultPageBackgroundColor = Editor.isDarkMode() ? Editor.darkColor : '#ffffff';
- Graph.prototype.defaultPageBackgroundColor = graph.defaultPageBackgroundColor;
document.body.style.backgroundColor = (urlParams['embedInline'] == '1') ? 'transparent' :
(Editor.isDarkMode() ? Editor.darkColor : '#ffffff');
graph.loadStylesheet();
@@ -368,12 +367,14 @@ EditorUi.initMinimalTheme = function()
{
this.ruler.updateStyle();
}
-
// Sets global vars
- Dialog.backdropColor = Editor.isDarkMode() ? Editor.darkColor : 'white';
+ Graph.prototype.defaultPageBackgroundColor = graph.defaultPageBackgroundColor;
+ Graph.prototype.defaultPageBorderColor = graph.defaultPageBorderColor;
+ Graph.prototype.defaultForegroundColor = graph.defaultForegroundColor;
StyleFormatPanel.prototype.defaultStrokeColor = Editor.isDarkMode() ? '#cccccc' : 'black';
BaseFormatPanel.prototype.buttonBackgroundColor = Editor.isDarkMode() ? Editor.darkColor : 'white';
Format.inactiveTabBackgroundColor = Editor.isDarkMode() ? 'black' : '#f0f0f0';
+ Dialog.backdropColor = Editor.isDarkMode() ? Editor.darkColor : 'white';
mxConstants.DROP_TARGET_COLOR = Editor.isDarkMode() ? '#00ff00' : '#0000FF';
Editor.helpImage = (Editor.isDarkMode() && mxClient.IS_SVG) ?
Editor.darkHelpImage : Editor.lightHelpImage;
@@ -1066,7 +1067,7 @@ EditorUi.initMinimalTheme = function()
menu.addSeparator(parent);
}
- else if(ui.mode == App.MODE_ATLAS)
+ else if (ui.mode == App.MODE_ATLAS)
{
ui.menus.addMenuItems(menu, ['save', 'synchronize', '-'], parent);
}
@@ -1074,7 +1075,7 @@ EditorUi.initMinimalTheme = function()
{
ui.menus.addMenuItems(menu, ['new'], parent);
ui.menus.addSubmenu('openFrom', menu, parent);
-
+
if (isLocalStorage)
{
this.addSubmenu('openRecent', menu, parent);
@@ -1801,10 +1802,6 @@ EditorUi.initMinimalTheme = function()
{
this.sidebar.graph.stylesheet.styles =
mxUtils.clone(graph.stylesheet.styles);
- this.sidebar.graph.defaultPageBackgroundColor =
- graph.defaultPageBackgroundColor;
- this.sidebar.graph.defaultForegroundColor =
- graph.defaultForegroundColor;
this.sidebar.container.innerHTML = '';
this.sidebar.palettes = new Object();
this.sidebar.init();
diff --git a/src/main/webapp/js/grapheditor/Format.js b/src/main/webapp/js/grapheditor/Format.js
index 95a5d9e6..ae3d86a3 100644
--- a/src/main/webapp/js/grapheditor/Format.js
+++ b/src/main/webapp/js/grapheditor/Format.js
@@ -3590,7 +3590,8 @@ TextFormatPanel.prototype.addFont = function(container)
{
install: function(apply) { bgColorApply = apply; },
destroy: function() { bgColorApply = null; }
- }, null, true) : this.createCellColorOption(mxResources.get('backgroundColor'), mxConstants.STYLE_LABEL_BACKGROUNDCOLOR, 'default', null, function(color)
+ }, null, true) : this.createCellColorOption(mxResources.get('backgroundColor'),
+ mxConstants.STYLE_LABEL_BACKGROUNDCOLOR, 'default', null, function(color)
{
graph.updateLabelElements(ss.cells, function(elt)
{
@@ -3599,7 +3600,9 @@ TextFormatPanel.prototype.addFont = function(container)
}, graph.defaultPageBackgroundColor);
bgPanel.style.fontWeight = 'bold';
- var borderPanel = this.createCellColorOption(mxResources.get('borderColor'), mxConstants.STYLE_LABEL_BORDERCOLOR, '#000000');
+ var borderPanel = this.createCellColorOption(mxResources.get('borderColor'),
+ mxConstants.STYLE_LABEL_BORDERCOLOR, 'default', null, null,
+ graph.defaultForegroundColor);
borderPanel.style.fontWeight = 'bold';
var defs = (ss.vertices.length >= 1) ? graph.stylesheet.getDefaultVertexStyle() : graph.stylesheet.getDefaultEdgeStyle();
@@ -6188,11 +6191,7 @@ DiagramStylePanel.prototype.addView = function(div)
container.appendChild(div);
var graph2 = new Graph(div, null, null, graph.getStylesheet());
-
- graph2.defaultPageBackgroundColor =
- graph.defaultPageBackgroundColor;
- graph2.defaultForegroundColor =
- graph.defaultForegroundColor;
+
graph2.resetViewOnRootChange = false;
graph2.foldingEnabled = false;
graph2.gridEnabled = false;
@@ -6218,6 +6217,11 @@ DiagramStylePanel.prototype.addView = function(div)
applyStyle(commonStyle, result, cell, graphStyle, graph2);
applyStyle(appliedStyle, result, cell, graphStyle, graph2);
+ if (result != null)
+ {
+ result = this.postProcessCellStyle(result);
+ }
+
return result;
};
@@ -6363,6 +6367,11 @@ DiagramStylePanel.prototype.addView = function(div)
applyStyle(commonStyle, result, cell, graphStyle);
applyStyle(appliedStyle, result, cell, graphStyle);
+ if (result != null)
+ {
+ result = this.postProcessCellStyle(result);
+ }
+
return result;
};
diff --git a/src/main/webapp/js/grapheditor/Graph.js b/src/main/webapp/js/grapheditor/Graph.js
index 3aa23cf7..a2b76498 100644
--- a/src/main/webapp/js/grapheditor/Graph.js
+++ b/src/main/webapp/js/grapheditor/Graph.js
@@ -11011,39 +11011,6 @@ if (typeof mxVertexHandler != 'undefined')
};
/**
- * Handles special color values.
- */
- var mxCellRendererPostConfigureShape = mxCellRenderer.prototype.postConfigureShape;
- mxCellRenderer.prototype.postConfigureShape = function(state)
- {
- // Uses rgba to distinguish from user-defined values in output
- var bg = mxUtils.hex2rgba(state.view.graph.defaultPageBackgroundColor);
- var fg = mxUtils.hex2rgba(state.view.graph.defaultForegroundColor);
-
- this.resolveDefaultColor(state, 'fill', state.shape, bg);
- this.resolveDefaultColor(state, 'color', state.text, fg);
- this.resolveDefaultColor(state, 'border', state.text, fg);
- this.resolveDefaultColor(state, 'stroke', state.shape, fg);
- this.resolveDefaultColor(state, 'laneFill', state.shape, bg);
- this.resolveDefaultColor(state, 'background', state.text, bg);
- this.resolveDefaultColor(state, 'imageBorder', state.shape, fg);
- this.resolveDefaultColor(state, 'imageBackground', state.shape, bg);
-
- mxCellRendererPostConfigureShape.apply(this, arguments);
- };
-
- /**
- * Adds default background color handling for text and lanes.
- */
- mxCellRenderer.prototype.resolveDefaultColor = function(state, field, shape, defaultValue)
- {
- if (shape != null && shape[field] == 'default' && defaultValue != null)
- {
- shape[field] = defaultValue;
- }
- };
-
- /**
* Handling of special nl2Br style for not converting newlines to breaks in HTML labels.
* NOTE: Since it's easier to set this when the label is created we assume that it does
* not change during the lifetime of the mxText instance.
diff --git a/src/main/webapp/js/grapheditor/Sidebar.js b/src/main/webapp/js/grapheditor/Sidebar.js
index ec114644..7c9490cb 100644
--- a/src/main/webapp/js/grapheditor/Sidebar.js
+++ b/src/main/webapp/js/grapheditor/Sidebar.js
@@ -13,7 +13,6 @@ function Sidebar(editorUi, container)
this.lastCreated = 0;
this.showTooltips = true;
this.graph = editorUi.createTemporaryGraph(this.editorUi.editor.graph.getStylesheet());
- this.graph.defaultForegroundColor = editorUi.editor.graph.defaultForegroundColor;
this.graph.cellRenderer.minSvgStrokeWidth = this.minThumbStrokeWidth;
this.graph.cellRenderer.antiAlias = this.thumbAntiAlias;
this.graph.container.style.visibility = 'hidden';
@@ -354,7 +353,6 @@ Sidebar.prototype.createTooltip = function(elt, cells, w, h, title, showLabel, o
this.tooltipCloseImage.style.display = (closable) ? '' : 'none';
this.graph2.model.clear();
this.graph2.view.setTranslate(this.tooltipBorder, this.tooltipBorder);
- this.graph2.defaultForegroundColor = this.editorUi.editor.graph.defaultForegroundColor;
if (!maxSize && (w > this.maxTooltipWidth || h > this.maxTooltipHeight))
{
@@ -377,9 +375,8 @@ Sidebar.prototype.createTooltip = function(elt, cells, w, h, title, showLabel, o
(!applyAllStyles) ? this.editorUi.editor.graph.defaultEdgeStyle : null,
applyAllStyles, true);
this.graph2.addCells(temp);
-
+
mxClient.NO_FO = fo;
-
var bounds = this.graph2.getGraphBounds();
// Maximum size applied with transform for faster repaint
diff --git a/src/main/webapp/js/viewer-static.min.js b/src/main/webapp/js/viewer-static.min.js
index 640c6780..ca084fc9 100644
--- a/src/main/webapp/js/viewer-static.min.js
+++ b/src/main/webapp/js/viewer-static.min.js
@@ -201,7 +201,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.6.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/"),
+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.6.4",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")||0<=navigator.userAgent.indexOf("Opera/"),
@@ -1605,16 +1605,16 @@ mxGraphHandler.prototype.destroyShapes=function(){null!=this.shape&&(this.shape.
mxGraphHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);this.graph.removeListener(this.panHandler);null!=this.escapeHandler&&(this.graph.removeListener(this.escapeHandler),this.escapeHandler=null);null!=this.refreshHandler&&(this.graph.getModel().removeListener(this.refreshHandler),this.graph.removeListener(this.refreshHandler),this.refreshHandler=null);mxEvent.removeListener(document,"keydown",this.keyHandler);mxEvent.removeListener(document,"keyup",this.keyHandler);this.destroyShapes();
this.removeHint()};
function mxPanningHandler(a){null!=a&&(this.graph=a,this.graph.addMouseListener(this),this.forcePanningHandler=mxUtils.bind(this,function(a,c){var b=c.getProperty("eventName"),e=c.getProperty("event");b==mxEvent.MOUSE_DOWN&&this.isForcePanningEvent(e)&&(this.start(e),this.active=!0,this.fireEvent(new mxEventObject(mxEvent.PAN_START,"event",e)),e.consume())}),this.graph.addListener(mxEvent.FIRE_MOUSE_EVENT,this.forcePanningHandler),this.gestureHandler=mxUtils.bind(this,function(a,c){if(this.isPinchEnabled()){var b=
-c.getProperty("event");mxEvent.isConsumed(b)||"gesturestart"!=b.type?"gestureend"==b.type&&null!=this.initialScale&&(this.initialScale=null):(this.initialScale=this.graph.view.scale,this.active||null==this.mouseDownEvent||(this.start(this.mouseDownEvent),this.mouseDownEvent=null));null!=this.initialScale&&this.zoomGraph(b)}}),this.graph.addListener(mxEvent.GESTURE,this.gestureHandler),this.mouseUpListener=mxUtils.bind(this,function(){this.active&&this.reset()}),mxEvent.addListener(document,"mouseup",
-this.mouseUpListener),mxEvent.addListener(document,"mouseleave",this.mouseUpListener))}mxPanningHandler.prototype=new mxEventSource;mxPanningHandler.prototype.constructor=mxPanningHandler;mxPanningHandler.prototype.graph=null;mxPanningHandler.prototype.useLeftButtonForPanning=!1;mxPanningHandler.prototype.usePopupTrigger=!0;mxPanningHandler.prototype.ignoreCell=!1;mxPanningHandler.prototype.previewEnabled=!0;mxPanningHandler.prototype.useGrid=!1;mxPanningHandler.prototype.panningEnabled=!0;
-mxPanningHandler.prototype.pinchEnabled=!0;mxPanningHandler.prototype.maxScale=8;mxPanningHandler.prototype.minScale=.01;mxPanningHandler.prototype.dx=null;mxPanningHandler.prototype.dy=null;mxPanningHandler.prototype.startX=0;mxPanningHandler.prototype.startY=0;mxPanningHandler.prototype.isActive=function(){return this.active||null!=this.initialScale};mxPanningHandler.prototype.isPanningEnabled=function(){return this.panningEnabled};
+c.getProperty("event");mxEvent.isConsumed(b)||"gesturestart"!=b.type?"gestureend"==b.type&&null!=this.initialScale&&(this.initialScale=null):(this.initialScale=this.graph.view.scale,this.active||null==this.mouseDownEvent||(this.start(this.mouseDownEvent),this.mouseDownEvent=null));null!=this.initialScale&&this.zoomGraph(b)}}),this.graph.addListener(mxEvent.GESTURE,this.gestureHandler),this.mouseUpListener=mxUtils.bind(this,function(){this.active&&this.reset()}),mxEvent.addGestureListeners(document,
+null,null,this.mouseUpListener),mxEvent.addListener(document,"mouseleave",this.mouseUpListener))}mxPanningHandler.prototype=new mxEventSource;mxPanningHandler.prototype.constructor=mxPanningHandler;mxPanningHandler.prototype.graph=null;mxPanningHandler.prototype.useLeftButtonForPanning=!1;mxPanningHandler.prototype.usePopupTrigger=!0;mxPanningHandler.prototype.ignoreCell=!1;mxPanningHandler.prototype.previewEnabled=!0;mxPanningHandler.prototype.useGrid=!1;
+mxPanningHandler.prototype.panningEnabled=!0;mxPanningHandler.prototype.pinchEnabled=!0;mxPanningHandler.prototype.maxScale=8;mxPanningHandler.prototype.minScale=.01;mxPanningHandler.prototype.dx=null;mxPanningHandler.prototype.dy=null;mxPanningHandler.prototype.startX=0;mxPanningHandler.prototype.startY=0;mxPanningHandler.prototype.isActive=function(){return this.active||null!=this.initialScale};mxPanningHandler.prototype.isPanningEnabled=function(){return this.panningEnabled};
mxPanningHandler.prototype.setPanningEnabled=function(a){this.panningEnabled=a};mxPanningHandler.prototype.isPinchEnabled=function(){return this.pinchEnabled};mxPanningHandler.prototype.setPinchEnabled=function(a){this.pinchEnabled=a};mxPanningHandler.prototype.isPanningTrigger=function(a){var b=a.getEvent();return this.useLeftButtonForPanning&&null==a.getState()&&mxEvent.isLeftMouseButton(b)||mxEvent.isControlDown(b)&&mxEvent.isShiftDown(b)||this.usePopupTrigger&&mxEvent.isPopupTrigger(b)};
mxPanningHandler.prototype.isForcePanningEvent=function(a){return this.ignoreCell||mxEvent.isMultiTouchEvent(a.getEvent())};mxPanningHandler.prototype.mouseDown=function(a,b){this.mouseDownEvent=b;!b.isConsumed()&&this.isPanningEnabled()&&!this.active&&this.isPanningTrigger(b)&&(this.start(b),this.consumePanningTrigger(b))};
mxPanningHandler.prototype.start=function(a){this.dx0=-this.graph.container.scrollLeft;this.dy0=-this.graph.container.scrollTop;this.startX=a.getX();this.startY=a.getY();this.dy=this.dx=null;this.panningTrigger=!0};mxPanningHandler.prototype.consumePanningTrigger=function(a){a.consume()};
mxPanningHandler.prototype.mouseMove=function(a,b){this.dx=b.getX()-this.startX;this.dy=b.getY()-this.startY;if(this.active)this.previewEnabled&&(this.useGrid&&(this.dx=this.graph.snap(this.dx),this.dy=this.graph.snap(this.dy)),this.graph.panGraph(this.dx+this.dx0,this.dy+this.dy0)),this.fireEvent(new mxEventObject(mxEvent.PAN,"event",b));else if(this.panningTrigger){var c=this.active;this.active=Math.abs(this.dx)>this.graph.tolerance||Math.abs(this.dy)>this.graph.tolerance;!c&&this.active&&this.fireEvent(new mxEventObject(mxEvent.PAN_START,
"event",b))}(this.active||this.panningTrigger)&&b.consume()};mxPanningHandler.prototype.mouseUp=function(a,b){if(this.active){if(null!=this.dx&&null!=this.dy){if(!this.graph.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.graph.container)){var c=this.graph.getView().scale,d=this.graph.getView().translate;this.graph.panGraph(0,0);this.panGraph(d.x+this.dx/c,d.y+this.dy/c)}b.consume()}this.fireEvent(new mxEventObject(mxEvent.PAN_END,"event",b))}this.reset()};
mxPanningHandler.prototype.zoomGraph=function(a){var b=Math.round(this.initialScale*a.scale*100)/100;null!=this.minScale&&(b=Math.max(this.minScale,b));null!=this.maxScale&&(b=Math.min(this.maxScale,b));this.graph.view.scale!=b&&(this.graph.zoomTo(b),mxEvent.consume(a))};mxPanningHandler.prototype.reset=function(){this.panningTrigger=this.graph.isMouseDown=!1;this.mouseDownEvent=null;this.active=!1;this.dy=this.dx=null};
-mxPanningHandler.prototype.panGraph=function(a,b){this.graph.getView().setTranslate(a,b)};mxPanningHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);this.graph.removeListener(this.forcePanningHandler);this.graph.removeListener(this.gestureHandler);mxEvent.removeListener(document,"mouseup",this.mouseUpListener);mxEvent.removeListener(document,"mouseleave",this.mouseUpListener)};
+mxPanningHandler.prototype.panGraph=function(a,b){this.graph.getView().setTranslate(a,b)};mxPanningHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);this.graph.removeListener(this.forcePanningHandler);this.graph.removeListener(this.gestureHandler);mxEvent.removeGestureListeners(document,null,null,this.mouseUpListener);mxEvent.removeListener(document,"mouseleave",this.mouseUpListener)};
function mxPopupMenuHandler(a,b){null!=a&&(this.graph=a,this.factoryMethod=b,this.graph.addMouseListener(this),this.gestureHandler=mxUtils.bind(this,function(a,b){this.inTolerance=!1}),this.graph.addListener(mxEvent.GESTURE,this.gestureHandler),this.init())}mxPopupMenuHandler.prototype=new mxPopupMenu;mxPopupMenuHandler.prototype.constructor=mxPopupMenuHandler;mxPopupMenuHandler.prototype.graph=null;mxPopupMenuHandler.prototype.selectOnPopup=!0;
mxPopupMenuHandler.prototype.clearSelectionOnBackground=!0;mxPopupMenuHandler.prototype.triggerX=null;mxPopupMenuHandler.prototype.triggerY=null;mxPopupMenuHandler.prototype.screenX=null;mxPopupMenuHandler.prototype.screenY=null;mxPopupMenuHandler.prototype.init=function(){mxPopupMenu.prototype.init.apply(this);mxEvent.addGestureListeners(this.div,mxUtils.bind(this,function(a){this.graph.tooltipHandler.hide()}))};mxPopupMenuHandler.prototype.isSelectOnPopup=function(a){return this.selectOnPopup};
mxPopupMenuHandler.prototype.mouseDown=function(a,b){this.isEnabled()&&!mxEvent.isMultiTouchEvent(b.getEvent())&&(this.hideMenu(),this.triggerX=b.getGraphX(),this.triggerY=b.getGraphY(),this.screenX=mxEvent.getMainEvent(b.getEvent()).screenX,this.screenY=mxEvent.getMainEvent(b.getEvent()).screenY,this.popupTrigger=this.isPopupTrigger(b),this.inTolerance=!0)};
@@ -2062,19 +2062,19 @@ Editor.prototype.setFilename=function(b){this.filename=b};
Editor.prototype.createUndoManager=function(){var b=this.graph,c=new mxUndoManager;this.undoListener=function(b,e){c.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(b,c){this.undoListener.apply(this,arguments)});b.getModel().addListener(mxEvent.UNDO,e);b.getView().addListener(mxEvent.UNDO,e);e=function(c,e){var g=b.getSelectionCellsForChanges(e.getProperty("edit").changes,function(b){return!(b instanceof mxChildChange)});if(0<g.length){b.getModel();for(var k=[],d=0;d<
g.length;d++)null!=b.view.getState(g[d])&&k.push(g[d]);b.setSelectionCells(k)}};c.addListener(mxEvent.UNDO,e);c.addListener(mxEvent.REDO,e);return c};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(b){this.consumer=this.producer=null;this.done=b;this.args=null};OpenFile.prototype.setConsumer=function(b){this.consumer=b;this.execute()};
OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};OpenFile.prototype.error=function(b){this.cancel(!0);mxUtils.alert(b)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(b){null!=this.done&&this.done(null!=b?b:!0)};
-function Dialog(b,c,e,k,g,p,t,d,f,l,m){var q=f?57:0,n=e,u=k,v=f?0:64,y=Editor.inlineFullscreen||null==b.embedViewport?mxUtils.getDocumentSize():mxUtils.clone(b.embedViewport);null==b.embedViewport&&null!=window.innerHeight&&(y.height=window.innerHeight);var x=y.height,D=Math.max(1,Math.round((y.width-e-v)/2)),H=Math.max(1,Math.round((x-k-b.footerHeight)/3));c.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-v):e;k=Math.min(k,x-v);0<b.dialogs.length&&(this.zIndex+=
-2*b.dialogs.length);null==this.bg&&(this.bg=b.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=Dialog.backdropColor,this.bg.style.height=x+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));y=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=y.x+"px";this.bg.style.top=y.y+"px";D+=y.x;H+=y.y;Editor.inlineFullscreen||null==b.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px",
-H+=b.embedViewport.y,D+=b.embedViewport.x);g&&document.body.appendChild(this.bg);var C=b.createDiv(f?"geTransDialog":"geDialog");g=this.getPosition(D,H,e,k);D=g.x;H=g.y;C.style.width=e+"px";C.style.height=k+"px";C.style.left=D+"px";C.style.top=H+"px";C.style.zIndex=this.zIndex;C.appendChild(c);document.body.appendChild(C);!d&&c.clientHeight>C.clientHeight-v&&(c.style.overflowY="auto");c.style.overflowX="hidden";if(p&&(p=document.createElement("img"),p.setAttribute("src",Dialog.prototype.closeImage),
-p.setAttribute("title",mxResources.get("close")),p.className="geDialogClose",p.style.top=H+14+"px",p.style.left=D+e+38-q+"px",p.style.zIndex=this.zIndex,mxEvent.addListener(p,"click",mxUtils.bind(this,function(){b.hideDialog(!0)})),document.body.appendChild(p),this.dialogImg=p,!m)){var F=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(b){F=!0}),null,mxUtils.bind(this,function(d){F&&(b.hideDialog(!0),F=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var f=l();
-null!=f&&(n=e=f.w,u=k=f.h)}f=mxUtils.getDocumentSize();x=f.height;this.bg.style.height=x+"px";Editor.inlineFullscreen||null==b.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px");D=Math.max(1,Math.round((f.width-e-v)/2));H=Math.max(1,Math.round((x-k-b.footerHeight)/3));e=null!=document.body?Math.min(n,document.body.scrollWidth-v):n;k=Math.min(u,x-v);f=this.getPosition(D,H,e,k);D=f.x;H=f.y;C.style.left=D+"px";C.style.top=H+"px";C.style.width=e+"px";C.style.height=k+"px";!d&&
-c.clientHeight>C.clientHeight-v&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=H+14+"px",this.dialogImg.style.left=D+e+38-q+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=t;this.container=C;b.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
+function Dialog(b,c,e,k,g,p,t,d,f,l,m){var q=f?57:0,n=e,v=k,u=f?0:64,y=Editor.inlineFullscreen||null==b.embedViewport?mxUtils.getDocumentSize():mxUtils.clone(b.embedViewport);null==b.embedViewport&&null!=window.innerHeight&&(y.height=window.innerHeight);var x=y.height,D=Math.max(1,Math.round((y.width-e-u)/2)),I=Math.max(1,Math.round((x-k-b.footerHeight)/3));c.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-u):e;k=Math.min(k,x-u);0<b.dialogs.length&&(this.zIndex+=
+2*b.dialogs.length);null==this.bg&&(this.bg=b.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=Dialog.backdropColor,this.bg.style.height=x+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));y=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=y.x+"px";this.bg.style.top=y.y+"px";D+=y.x;I+=y.y;Editor.inlineFullscreen||null==b.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px",
+I+=b.embedViewport.y,D+=b.embedViewport.x);g&&document.body.appendChild(this.bg);var B=b.createDiv(f?"geTransDialog":"geDialog");g=this.getPosition(D,I,e,k);D=g.x;I=g.y;B.style.width=e+"px";B.style.height=k+"px";B.style.left=D+"px";B.style.top=I+"px";B.style.zIndex=this.zIndex;B.appendChild(c);document.body.appendChild(B);!d&&c.clientHeight>B.clientHeight-u&&(c.style.overflowY="auto");c.style.overflowX="hidden";if(p&&(p=document.createElement("img"),p.setAttribute("src",Dialog.prototype.closeImage),
+p.setAttribute("title",mxResources.get("close")),p.className="geDialogClose",p.style.top=I+14+"px",p.style.left=D+e+38-q+"px",p.style.zIndex=this.zIndex,mxEvent.addListener(p,"click",mxUtils.bind(this,function(){b.hideDialog(!0)})),document.body.appendChild(p),this.dialogImg=p,!m)){var G=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(b){G=!0}),null,mxUtils.bind(this,function(d){G&&(b.hideDialog(!0),G=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var f=l();
+null!=f&&(n=e=f.w,v=k=f.h)}f=mxUtils.getDocumentSize();x=f.height;this.bg.style.height=x+"px";Editor.inlineFullscreen||null==b.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px");D=Math.max(1,Math.round((f.width-e-u)/2));I=Math.max(1,Math.round((x-k-b.footerHeight)/3));e=null!=document.body?Math.min(n,document.body.scrollWidth-u):n;k=Math.min(v,x-u);f=this.getPosition(D,I,e,k);D=f.x;I=f.y;B.style.left=D+"px";B.style.top=I+"px";B.style.width=e+"px";B.style.height=k+"px";!d&&
+c.clientHeight>B.clientHeight-u&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=I+14+"px",this.dialogImg.style.left=D+e+38-q+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=t;this.container=B;b.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
Dialog.prototype.noColorImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzRDlBMUUwODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzRDlBMUUxODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTNEOUExREU4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTNEOUExREY4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5xh3fmAAAABlBMVEX////MzMw46qqDAAAAGElEQVR42mJggAJGKGAYIIGBth8KAAIMAEUQAIElnLuQAAAAAElFTkSuQmCC":IMAGE_PATH+
"/nocolor.png";Dialog.prototype.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEV7mr3///+wksspAAAAAnRSTlP/AOW3MEoAAAAdSURBVAgdY9jXwCDDwNDRwHCwgeExmASygSL7GgB12QiqNHZZIwAAAABJRU5ErkJggg==":IMAGE_PATH+"/close.png";
Dialog.prototype.clearImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQAKAIABAMDAwP///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUIzOEM1NzI4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUIzOEM1NzM4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QjM4QzU3MDg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QjM4QzU3MTg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAEALAAAAAANAAoAAAIXTGCJebD9jEOTqRlttXdrB32PJ2ncyRQAOw==":IMAGE_PATH+
"/clear.gif";Dialog.prototype.bgOpacity=80;Dialog.prototype.getPosition=function(b,c){return new mxPoint(b,c)};Dialog.prototype.close=function(b,c){if(null!=this.onDialogClose){if(0==this.onDialogClose(b,c))return!1;this.onDialogClose=null}null!=this.dialogImg&&(this.dialogImg.parentNode.removeChild(this.dialogImg),this.dialogImg=null);null!=this.bg&&null!=this.bg.parentNode&&this.bg.parentNode.removeChild(this.bg);mxEvent.removeListener(window,"resize",this.resizeListener);this.container.parentNode.removeChild(this.container)};
var ErrorDialog=function(b,c,e,k,g,p,t,d,f,l,m){f=null!=f?f:!0;var q=document.createElement("div");q.style.textAlign="center";if(null!=c){var n=document.createElement("div");n.style.padding="0px";n.style.margin="0px";n.style.fontSize="18px";n.style.paddingBottom="16px";n.style.marginBottom="10px";n.style.borderBottom="1px solid #c0c0c0";n.style.color="gray";n.style.whiteSpace="nowrap";n.style.textOverflow="ellipsis";n.style.overflow="hidden";mxUtils.write(n,c);n.setAttribute("title",c);q.appendChild(n)}c=
-document.createElement("div");c.style.lineHeight="1.2em";c.style.padding="6px";c.innerHTML=e;q.appendChild(c);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=p&&(c=mxUtils.button(mxResources.get("tryAgain"),function(){b.hideDialog();p()}),c.className="geBtn",e.appendChild(c),e.style.textAlign="center");null!=l&&(l=mxUtils.button(l,function(){null!=m&&m()}),l.className="geBtn",e.appendChild(l));var u=mxUtils.button(k,function(){f&&b.hideDialog();null!=g&&g()});
-u.className="geBtn";e.appendChild(u);null!=t&&(k=mxUtils.button(t,function(){f&&b.hideDialog();null!=d&&d()}),k.className="geBtn gePrimaryBtn",e.appendChild(k));this.init=function(){u.focus()};q.appendChild(e);this.container=q},PrintDialog=function(b,c){this.create(b,c)};
+document.createElement("div");c.style.lineHeight="1.2em";c.style.padding="6px";c.innerHTML=e;q.appendChild(c);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=p&&(c=mxUtils.button(mxResources.get("tryAgain"),function(){b.hideDialog();p()}),c.className="geBtn",e.appendChild(c),e.style.textAlign="center");null!=l&&(l=mxUtils.button(l,function(){null!=m&&m()}),l.className="geBtn",e.appendChild(l));var v=mxUtils.button(k,function(){f&&b.hideDialog();null!=g&&g()});
+v.className="geBtn";e.appendChild(v);null!=t&&(k=mxUtils.button(t,function(){f&&b.hideDialog();null!=d&&d()}),k.className="geBtn gePrimaryBtn",e.appendChild(k));this.init=function(){v.focus()};q.appendChild(e);this.container=q},PrintDialog=function(b,c){this.create(b,c)};
PrintDialog.prototype.create=function(b){function c(b){var f=d.checked||l.checked,c=parseInt(q.value)/100;isNaN(c)&&(c=1,q.value="100%");var c=.75*c,g=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,k=1/e.pageScale;if(f){var n=d.checked?1:parseInt(m.value);isNaN(n)||(k=mxUtils.getScaleForPageCount(n,e,g))}e.getGraphBounds();var p=n=0,g=mxRectangle.fromRectangle(g);g.width=Math.ceil(g.width*c);g.height=Math.ceil(g.height*c);k*=c;!f&&e.pageVisible?(c=e.getPageLayout(),n-=c.x*g.width,p-=c.y*g.height):
f=!0;f=PrintDialog.createPrintPreview(e,k,g,0,n,p,f);f.open();b&&PrintDialog.printPreview(f)}var e=b.editor.graph,k,g,p=document.createElement("table");p.style.width="100%";p.style.height="100%";var t=document.createElement("tbody");k=document.createElement("tr");var d=document.createElement("input");d.setAttribute("type","checkbox");g=document.createElement("td");g.setAttribute("colspan","2");g.style.fontSize="10pt";g.appendChild(d);var f=document.createElement("span");mxUtils.write(f," "+mxResources.get("fitPage"));
g.appendChild(f);mxEvent.addListener(f,"click",function(b){d.checked=!d.checked;l.checked=!d.checked;mxEvent.consume(b)});mxEvent.addListener(d,"change",function(){l.checked=!d.checked});k.appendChild(g);t.appendChild(k);k=k.cloneNode(!1);var l=document.createElement("input");l.setAttribute("type","checkbox");g=document.createElement("td");g.style.fontSize="10pt";g.appendChild(l);f=document.createElement("span");mxUtils.write(f," "+mxResources.get("posterPrint")+":");g.appendChild(f);mxEvent.addListener(f,
@@ -2084,32 +2084,32 @@ g.style.paddingTop="20px";g.setAttribute("align","right");f=mxUtils.button(mxRes
g.appendChild(f);k.appendChild(g);t.appendChild(k);p.appendChild(t);this.container=p};PrintDialog.printPreview=function(b){try{if(null!=b.wnd){var c=function(){b.wnd.focus();b.wnd.print();b.wnd.close()};mxClient.IS_GC?window.setTimeout(c,500):c()}}catch(e){}};
PrintDialog.createPrintPreview=function(b,c,e,k,g,p,t){c=new mxPrintPreview(b,c,e,k,g,p);c.title=mxResources.get("preview");c.printBackgroundImage=!0;c.autoOrigin=t;b=b.background;if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";c.backgroundColor=b;var d=c.writeHead;c.writeHead=function(b){d.apply(this,arguments);b.writeln('<style type="text/css">');b.writeln("@media screen {");b.writeln(" body > div { padding:30px;box-sizing:content-box; }");b.writeln("}");b.writeln("</style>")};return c};
PrintDialog.previewEnabled=!0;
-var PageSetupDialog=function(b){function c(){null==m||m==mxConstants.NONE?(l.style.backgroundColor="",l.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(l.style.backgroundColor=m,l.style.backgroundImage="")}function e(){var d=v;null!=d&&Graph.isPageLink(d.src)&&(d=b.createImageForPageLink(d.src,null));null!=d&&null!=d.src?(u.setAttribute("src",d.src),u.style.display=""):(u.removeAttribute("src"),u.style.display="none")}var k=b.editor.graph,g,p,t=document.createElement("table");t.style.width=
+var PageSetupDialog=function(b){function c(){null==m||m==mxConstants.NONE?(l.style.backgroundColor="",l.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(l.style.backgroundColor=m,l.style.backgroundImage="")}function e(){var d=u;null!=d&&Graph.isPageLink(d.src)&&(d=b.createImageForPageLink(d.src,null));null!=d&&null!=d.src?(v.setAttribute("src",d.src),v.style.display=""):(v.removeAttribute("src"),v.style.display="none")}var k=b.editor.graph,g,p,t=document.createElement("table");t.style.width=
"100%";t.style.height="100%";var d=document.createElement("tbody");g=document.createElement("tr");p=document.createElement("td");p.style.verticalAlign="top";p.style.fontSize="10pt";mxUtils.write(p,mxResources.get("paperSize")+":");g.appendChild(p);p=document.createElement("td");p.style.verticalAlign="top";p.style.fontSize="10pt";var f=PageSetupDialog.addPageFormatPanel(p,"pagesetupdialog",k.pageFormat);g.appendChild(p);d.appendChild(g);g=document.createElement("tr");p=document.createElement("td");
mxUtils.write(p,mxResources.get("background")+":");g.appendChild(p);p=document.createElement("td");p.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var l=document.createElement("button");l.style.width="22px";l.style.height="22px";l.style.cursor="pointer";l.style.marginRight="20px";l.style.backgroundPosition="center center";l.style.backgroundRepeat="no-repeat";mxClient.IS_FF&&(l.style.position="relative",l.style.top="-6px");var m=k.background;c();mxEvent.addListener(l,
"click",function(d){b.pickColor(m||"none",function(b){m=b;c()});mxEvent.consume(d)});p.appendChild(l);mxUtils.write(p,mxResources.get("gridSize")+":");var q=document.createElement("input");q.setAttribute("type","number");q.setAttribute("min","0");q.style.width="40px";q.style.marginLeft="6px";q.value=k.getGridSize();p.appendChild(q);mxEvent.addListener(q,"change",function(){var b=parseInt(q.value);q.value=Math.max(1,isNaN(b)?k.getGridSize():b)});g.appendChild(p);d.appendChild(g);g=document.createElement("tr");
-p=document.createElement("td");mxUtils.write(p,mxResources.get("image")+":");g.appendChild(p);p=document.createElement("td");var n=document.createElement("button");n.className="geBtn";n.style.margin="0px";mxUtils.write(n,mxResources.get("change")+"...");var u=document.createElement("img");u.setAttribute("valign","middle");u.style.verticalAlign="middle";u.style.border="1px solid lightGray";u.style.borderRadius="4px";u.style.marginRight="14px";u.style.maxWidth="100px";u.style.cursor="pointer";u.style.height=
-"60px";u.style.padding="4px";var v=k.backgroundImage,y=function(d){b.showBackgroundImageDialog(function(b,d){d||(v=b,e())},v);mxEvent.consume(d)};mxEvent.addListener(n,"click",y);mxEvent.addListener(u,"click",y);e();p.appendChild(u);p.appendChild(n);g.appendChild(p);d.appendChild(g);g=document.createElement("tr");p=document.createElement("td");p.colSpan=2;p.style.paddingTop="16px";p.setAttribute("align","right");n=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});n.className="geBtn";
-b.editor.cancelFirst&&p.appendChild(n);y=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();var d=parseInt(q.value);isNaN(d)||k.gridSize===d||k.setGridSize(d);d=new ChangePageSetup(b,m,v,f.get());d.ignoreColor=k.background==m;d.ignoreImage=(null!=k.backgroundImage?k.backgroundImage.src:null)===(null!=v?v.src:null);k.pageFormat.width==d.previousFormat.width&&k.pageFormat.height==d.previousFormat.height&&d.ignoreColor&&d.ignoreImage||k.model.execute(d)});y.className="geBtn gePrimaryBtn";
+p=document.createElement("td");mxUtils.write(p,mxResources.get("image")+":");g.appendChild(p);p=document.createElement("td");var n=document.createElement("button");n.className="geBtn";n.style.margin="0px";mxUtils.write(n,mxResources.get("change")+"...");var v=document.createElement("img");v.setAttribute("valign","middle");v.style.verticalAlign="middle";v.style.border="1px solid lightGray";v.style.borderRadius="4px";v.style.marginRight="14px";v.style.maxWidth="100px";v.style.cursor="pointer";v.style.height=
+"60px";v.style.padding="4px";var u=k.backgroundImage,y=function(d){b.showBackgroundImageDialog(function(b,d){d||(u=b,e())},u);mxEvent.consume(d)};mxEvent.addListener(n,"click",y);mxEvent.addListener(v,"click",y);e();p.appendChild(v);p.appendChild(n);g.appendChild(p);d.appendChild(g);g=document.createElement("tr");p=document.createElement("td");p.colSpan=2;p.style.paddingTop="16px";p.setAttribute("align","right");n=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});n.className="geBtn";
+b.editor.cancelFirst&&p.appendChild(n);y=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();var d=parseInt(q.value);isNaN(d)||k.gridSize===d||k.setGridSize(d);d=new ChangePageSetup(b,m,u,f.get());d.ignoreColor=k.background==m;d.ignoreImage=(null!=k.backgroundImage?k.backgroundImage.src:null)===(null!=u?u.src:null);k.pageFormat.width==d.previousFormat.width&&k.pageFormat.height==d.previousFormat.height&&d.ignoreColor&&d.ignoreImage||k.model.execute(d)});y.className="geBtn gePrimaryBtn";
p.appendChild(y);b.editor.cancelFirst||p.appendChild(n);g.appendChild(p);d.appendChild(g);t.appendChild(d);this.container=t};
-PageSetupDialog.addPageFormatPanel=function(b,c,e,k){function g(b,c,l){if(l||q!=document.activeElement&&n!=document.activeElement){b=!1;for(c=0;c<v.length;c++)l=v[c],H?"custom"==l.key&&(d.value=l.key,H=!1):null!=l.format&&("a4"==l.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==l.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==l.format.width&&
+PageSetupDialog.addPageFormatPanel=function(b,c,e,k){function g(b,c,l){if(l||q!=document.activeElement&&n!=document.activeElement){b=!1;for(c=0;c<u.length;c++)l=u[c],I?"custom"==l.key&&(d.value=l.key,I=!1):null!=l.format&&("a4"==l.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==l.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==l.format.width&&
e.height==l.format.height?(d.value=l.key,p.setAttribute("checked","checked"),p.defaultChecked=!0,p.checked=!0,t.removeAttribute("checked"),t.defaultChecked=!1,t.checked=!1,b=!0):e.width==l.format.height&&e.height==l.format.width&&(d.value=l.key,p.removeAttribute("checked"),p.defaultChecked=!1,p.checked=!1,t.setAttribute("checked","checked"),t.defaultChecked=!0,b=t.checked=!0));b?(f.style.display="",m.style.display="none"):(q.value=e.width/100,n.value=e.height/100,p.setAttribute("checked","checked"),
d.value="custom",f.style.display="none",m.style.display="")}}c="format-"+c;var p=document.createElement("input");p.setAttribute("name",c);p.setAttribute("type","radio");p.setAttribute("value","portrait");var t=document.createElement("input");t.setAttribute("name",c);t.setAttribute("type","radio");t.setAttribute("value","landscape");var d=document.createElement("select");d.style.marginBottom="8px";d.style.borderRadius="4px";d.style.border="1px solid rgb(160, 160, 160)";d.style.width="206px";var f=
document.createElement("div");f.style.marginLeft="4px";f.style.width="210px";f.style.height="24px";p.style.marginRight="6px";f.appendChild(p);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));f.appendChild(c);t.style.marginLeft="10px";t.style.marginRight="6px";f.appendChild(t);var l=document.createElement("span");l.style.width="100px";mxUtils.write(l,mxResources.get("landscape"));f.appendChild(l);var m=document.createElement("div");m.style.marginLeft=
-"4px";m.style.width="210px";m.style.height="24px";var q=document.createElement("input");q.setAttribute("size","7");q.style.textAlign="right";m.appendChild(q);mxUtils.write(m," in x ");var n=document.createElement("input");n.setAttribute("size","7");n.style.textAlign="right";m.appendChild(n);mxUtils.write(m," in");f.style.display="none";m.style.display="none";for(var u={},v=PageSetupDialog.getFormats(),y=0;y<v.length;y++){var x=v[y];u[x.key]=x;var D=document.createElement("option");D.setAttribute("value",
-x.key);mxUtils.write(D,x.title);d.appendChild(D)}var H=!1;g();b.appendChild(d);mxUtils.br(b);b.appendChild(f);b.appendChild(m);var C=e,F=function(b,c){var l=u[d.value];null!=l.format?(q.value=l.format.width/100,n.value=l.format.height/100,m.style.display="none",f.style.display=""):(f.style.display="none",m.style.display="");l=parseFloat(q.value);if(isNaN(l)||0>=l)q.value=e.width/100;l=parseFloat(n.value);if(isNaN(l)||0>=l)n.value=e.height/100;l=new mxRectangle(0,0,Math.floor(100*parseFloat(q.value)),
-Math.floor(100*parseFloat(n.value)));"custom"!=d.value&&t.checked&&(l=new mxRectangle(0,0,l.height,l.width));c&&H||l.width==C.width&&l.height==C.height||(C=l,null!=k&&k(C))};mxEvent.addListener(c,"click",function(b){p.checked=!0;F(b);mxEvent.consume(b)});mxEvent.addListener(l,"click",function(b){t.checked=!0;F(b);mxEvent.consume(b)});mxEvent.addListener(q,"blur",F);mxEvent.addListener(q,"click",F);mxEvent.addListener(n,"blur",F);mxEvent.addListener(n,"click",F);mxEvent.addListener(t,"change",F);mxEvent.addListener(p,
-"change",F);mxEvent.addListener(d,"change",function(b){H="custom"==d.value;F(b,!0)});F();return{set:function(b){e=b;g(null,null,!0)},get:function(){return C},widthInput:q,heightInput:n}};
+"4px";m.style.width="210px";m.style.height="24px";var q=document.createElement("input");q.setAttribute("size","7");q.style.textAlign="right";m.appendChild(q);mxUtils.write(m," in x ");var n=document.createElement("input");n.setAttribute("size","7");n.style.textAlign="right";m.appendChild(n);mxUtils.write(m," in");f.style.display="none";m.style.display="none";for(var v={},u=PageSetupDialog.getFormats(),y=0;y<u.length;y++){var x=u[y];v[x.key]=x;var D=document.createElement("option");D.setAttribute("value",
+x.key);mxUtils.write(D,x.title);d.appendChild(D)}var I=!1;g();b.appendChild(d);mxUtils.br(b);b.appendChild(f);b.appendChild(m);var B=e,G=function(b,c){var l=v[d.value];null!=l.format?(q.value=l.format.width/100,n.value=l.format.height/100,m.style.display="none",f.style.display=""):(f.style.display="none",m.style.display="");l=parseFloat(q.value);if(isNaN(l)||0>=l)q.value=e.width/100;l=parseFloat(n.value);if(isNaN(l)||0>=l)n.value=e.height/100;l=new mxRectangle(0,0,Math.floor(100*parseFloat(q.value)),
+Math.floor(100*parseFloat(n.value)));"custom"!=d.value&&t.checked&&(l=new mxRectangle(0,0,l.height,l.width));c&&I||l.width==B.width&&l.height==B.height||(B=l,null!=k&&k(B))};mxEvent.addListener(c,"click",function(b){p.checked=!0;G(b);mxEvent.consume(b)});mxEvent.addListener(l,"click",function(b){t.checked=!0;G(b);mxEvent.consume(b)});mxEvent.addListener(q,"blur",G);mxEvent.addListener(q,"click",G);mxEvent.addListener(n,"blur",G);mxEvent.addListener(n,"click",G);mxEvent.addListener(t,"change",G);mxEvent.addListener(p,
+"change",G);mxEvent.addListener(d,"change",function(b){I="custom"==d.value;G(b,!0)});G();return{set:function(b){e=b;g(null,null,!0)},get:function(){return B},widthInput:q,heightInput:n}};
PageSetupDialog.getFormats=function(){return[{key:"letter",title:'US-Letter (8,5" x 11")',format:mxConstants.PAGE_FORMAT_LETTER_PORTRAIT},{key:"legal",title:'US-Legal (8,5" x 14")',format:new mxRectangle(0,0,850,1400)},{key:"tabloid",title:'US-Tabloid (11" x 17")',format:new mxRectangle(0,0,1100,1700)},{key:"executive",title:'US-Executive (7" x 10")',format:new mxRectangle(0,0,700,1E3)},{key:"a0",title:"A0 (841 mm x 1189 mm)",format:new mxRectangle(0,0,3300,4681)},{key:"a1",title:"A1 (594 mm x 841 mm)",
format:new mxRectangle(0,0,2339,3300)},{key:"a2",title:"A2 (420 mm x 594 mm)",format:new mxRectangle(0,0,1654,2336)},{key:"a3",title:"A3 (297 mm x 420 mm)",format:new mxRectangle(0,0,1169,1654)},{key:"a4",title:"A4 (210 mm x 297 mm)",format:mxConstants.PAGE_FORMAT_A4_PORTRAIT},{key:"a5",title:"A5 (148 mm x 210 mm)",format:new mxRectangle(0,0,583,827)},{key:"a6",title:"A6 (105 mm x 148 mm)",format:new mxRectangle(0,0,413,583)},{key:"a7",title:"A7 (74 mm x 105 mm)",format:new mxRectangle(0,0,291,413)},
{key:"b4",title:"B4 (250 mm x 353 mm)",format:new mxRectangle(0,0,980,1390)},{key:"b5",title:"B5 (176 mm x 250 mm)",format:new mxRectangle(0,0,690,980)},{key:"16-9",title:"16:9 (1600 x 900)",format:new mxRectangle(0,0,900,1600)},{key:"16-10",title:"16:10 (1920 x 1200)",format:new mxRectangle(0,0,1200,1920)},{key:"4-3",title:"4:3 (1600 x 1200)",format:new mxRectangle(0,0,1200,1600)},{key:"custom",title:mxResources.get("custom"),format:null}]};
-var FilenameDialog=function(b,c,e,k,g,p,t,d,f,l,m,q){f=null!=f?f:!0;var n,u,v=document.createElement("table"),y=document.createElement("tbody");v.style.position="absolute";v.style.top="30px";v.style.left="20px";n=document.createElement("tr");u=document.createElement("td");u.style.textOverflow="ellipsis";u.style.textAlign="right";u.style.maxWidth="100px";u.style.fontSize="10pt";u.style.width="84px";mxUtils.write(u,(g||mxResources.get("filename"))+":");n.appendChild(u);var x=document.createElement("input");
-x.setAttribute("value",c||"");x.style.marginLeft="4px";x.style.width=null!=q?q+"px":"180px";var D=mxUtils.button(e,function(){if(null==p||p(x.value))f&&b.hideDialog(),k(x.value)});D.className="geBtn gePrimaryBtn";this.init=function(){if(null!=g||null==t)if(x.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?x.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var b=v.parentNode;if(null!=b){var d=null;mxEvent.addListener(b,"dragleave",function(b){null!=d&&(d.style.backgroundColor=
+var FilenameDialog=function(b,c,e,k,g,p,t,d,f,l,m,q){f=null!=f?f:!0;var n,v,u=document.createElement("table"),y=document.createElement("tbody");u.style.position="absolute";u.style.top="30px";u.style.left="20px";n=document.createElement("tr");v=document.createElement("td");v.style.textOverflow="ellipsis";v.style.textAlign="right";v.style.maxWidth="100px";v.style.fontSize="10pt";v.style.width="84px";mxUtils.write(v,(g||mxResources.get("filename"))+":");n.appendChild(v);var x=document.createElement("input");
+x.setAttribute("value",c||"");x.style.marginLeft="4px";x.style.width=null!=q?q+"px":"180px";var D=mxUtils.button(e,function(){if(null==p||p(x.value))f&&b.hideDialog(),k(x.value)});D.className="geBtn gePrimaryBtn";this.init=function(){if(null!=g||null==t)if(x.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?x.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var b=u.parentNode;if(null!=b){var d=null;mxEvent.addListener(b,"dragleave",function(b){null!=d&&(d.style.backgroundColor=
"",d=null);b.stopPropagation();b.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(b){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=x,d.style.backgroundColor="#ebf2f9");b.stopPropagation();b.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=d&&(d.style.backgroundColor="",d=null);0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")&&(x.value=decodeURIComponent(b.dataTransfer.getData("text/uri-list")),D.click());b.stopPropagation();
-b.preventDefault()}))}}};u=document.createElement("td");u.style.whiteSpace="nowrap";u.appendChild(x);n.appendChild(u);if(null!=g||null==t)y.appendChild(n),null!=m&&(u.appendChild(FilenameDialog.createTypeHint(b,x,m)),null!=b.editor.diagramFileTypes&&(n=document.createElement("tr"),u=document.createElement("td"),u.style.textOverflow="ellipsis",u.style.textAlign="right",u.style.maxWidth="100px",u.style.fontSize="10pt",u.style.width="84px",mxUtils.write(u,mxResources.get("type")+":"),n.appendChild(u),
-u=document.createElement("td"),u.style.whiteSpace="nowrap",n.appendChild(u),c=FilenameDialog.createFileTypes(b,x,b.editor.diagramFileTypes),c.style.marginLeft="4px",c.style.width="198px",u.appendChild(c),x.style.width=null!=q?q-40+"px":"190px",n.appendChild(u),y.appendChild(n)));null!=t&&(n=document.createElement("tr"),u=document.createElement("td"),u.colSpan=2,u.appendChild(t),n.appendChild(u),y.appendChild(n));n=document.createElement("tr");u=document.createElement("td");u.colSpan=2;u.style.paddingTop=
-null!=m?"12px":"20px";u.style.whiteSpace="nowrap";u.setAttribute("align","right");m=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog();null!=l&&l()});m.className="geBtn";b.editor.cancelFirst&&u.appendChild(m);null!=d&&(q=mxUtils.button(mxResources.get("help"),function(){b.editor.graph.openLink(d)}),q.className="geBtn",u.appendChild(q));mxEvent.addListener(x,"keypress",function(b){13==b.keyCode&&D.click()});u.appendChild(D);b.editor.cancelFirst||u.appendChild(m);n.appendChild(u);y.appendChild(n);
-v.appendChild(y);this.container=v};FilenameDialog.filenameHelpLink=null;
+b.preventDefault()}))}}};v=document.createElement("td");v.style.whiteSpace="nowrap";v.appendChild(x);n.appendChild(v);if(null!=g||null==t)y.appendChild(n),null!=m&&(v.appendChild(FilenameDialog.createTypeHint(b,x,m)),null!=b.editor.diagramFileTypes&&(n=document.createElement("tr"),v=document.createElement("td"),v.style.textOverflow="ellipsis",v.style.textAlign="right",v.style.maxWidth="100px",v.style.fontSize="10pt",v.style.width="84px",mxUtils.write(v,mxResources.get("type")+":"),n.appendChild(v),
+v=document.createElement("td"),v.style.whiteSpace="nowrap",n.appendChild(v),c=FilenameDialog.createFileTypes(b,x,b.editor.diagramFileTypes),c.style.marginLeft="4px",c.style.width="198px",v.appendChild(c),x.style.width=null!=q?q-40+"px":"190px",n.appendChild(v),y.appendChild(n)));null!=t&&(n=document.createElement("tr"),v=document.createElement("td"),v.colSpan=2,v.appendChild(t),n.appendChild(v),y.appendChild(n));n=document.createElement("tr");v=document.createElement("td");v.colSpan=2;v.style.paddingTop=
+null!=m?"12px":"20px";v.style.whiteSpace="nowrap";v.setAttribute("align","right");m=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog();null!=l&&l()});m.className="geBtn";b.editor.cancelFirst&&v.appendChild(m);null!=d&&(q=mxUtils.button(mxResources.get("help"),function(){b.editor.graph.openLink(d)}),q.className="geBtn",v.appendChild(q));mxEvent.addListener(x,"keypress",function(b){13==b.keyCode&&D.click()});v.appendChild(D);b.editor.cancelFirst||v.appendChild(m);n.appendChild(v);y.appendChild(n);
+u.appendChild(y);this.container=u};FilenameDialog.filenameHelpLink=null;
FilenameDialog.createTypeHint=function(b,c,e){var k=document.createElement("img");k.style.backgroundPosition="center bottom";k.style.backgroundRepeat="no-repeat";k.style.margin="2px 0 0 4px";k.style.verticalAlign="top";k.style.cursor="pointer";k.style.height="16px";k.style.width="16px";mxUtils.setOpacity(k,70);var g=function(){k.setAttribute("src",Editor.helpImage);k.setAttribute("title",mxResources.get("help"));for(var b=0;b<e.length;b++)if(0<e[b].ext.length&&c.value.toLowerCase().substring(c.value.length-
e[b].ext.length-1)=="."+e[b].ext){k.setAttribute("title",mxResources.get(e[b].title));break}};mxEvent.addListener(c,"keyup",g);mxEvent.addListener(c,"change",g);mxEvent.addListener(k,"click",function(c){var e=k.getAttribute("title");k.getAttribute("src")==Editor.helpImage?b.editor.graph.openLink(FilenameDialog.filenameHelpLink):""!=e&&b.showError(null,e,mxResources.get("help"),function(){b.editor.graph.openLink(FilenameDialog.filenameHelpLink)},null,mxResources.get("ok"),null,null,null,340,90);mxEvent.consume(c)});
g();return k};
@@ -2123,8 +2123,8 @@ mxGraphView.prototype.validateBackgroundStyles=function(){var b=this.graph,d=nul
b.defaultPageBorderColor,b.container.className="geDiagramContainer geDiagramBackdrop",f.style.backgroundImage="none",f.style.backgroundColor=""):(b.container.className="geDiagramContainer",f.style.backgroundPosition=e,f.style.backgroundColor=d,f.style.backgroundImage=c)};mxGraphView.prototype.createSvgGrid=function(b){for(var d=this.graph.gridSize*this.scale;d<this.minGridSize;)d*=2;for(var f=this.gridSteps*d,c=[],e=1;e<this.gridSteps;e++){var g=e*d;c.push("M 0 "+g+" L "+f+" "+g+" M "+g+" 0 L "+g+
" "+f)}return'<svg width="'+f+'" height="'+f+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+f+'" height="'+f+'" patternUnits="userSpaceOnUse"><path d="'+c.join(" ")+'" fill="none" stroke="'+b+'" opacity="0.2" stroke-width="1"/><path d="M '+f+" 0 L 0 0 0 "+f+'" 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 f=this.view.canvas;null!=f.ownerSVGElement&&(f=f.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";f.style.backgroundPosition=l}};mxGraph.prototype.updatePageBreaks=function(b,d,f){var c=this.view.scale,e=this.view.translate,g=this.pageFormat,k=c*this.pageScale,p=this.view.getBackgroundPageBounds();
-d=p.width;f=p.height;var v=new mxRectangle(c*e.x,c*e.y,g.width*k,g.height*k),t=(b=b&&Math.min(v.width,v.height)>this.minPageBreakDist)?Math.ceil(f/v.height)-1:0,x=b?Math.ceil(d/v.width)-1:0,D=p.x+d,H=p.y+f;null==this.horizontalPageBreaks&&0<t&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<x&&(this.verticalPageBreaks=[]);b=mxUtils.bind(this,function(b){if(null!=b){for(var d=b==this.horizontalPageBreaks?t:x,f=0;f<=d;f++){var c=b==this.horizontalPageBreaks?[new mxPoint(Math.round(p.x),
-Math.round(p.y+(f+1)*v.height)),new mxPoint(Math.round(D),Math.round(p.y+(f+1)*v.height))]:[new mxPoint(Math.round(p.x+(f+1)*v.width),Math.round(p.y)),new mxPoint(Math.round(p.x+(f+1)*v.width),Math.round(H))];null!=b[f]?(b[f].points=c,b[f].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[f]=c)}for(f=d;f<b.length;f++)b[f].destroy();b.splice(d,b.length-d)}});b(this.horizontalPageBreaks);
+d=p.width;f=p.height;var u=new mxRectangle(c*e.x,c*e.y,g.width*k,g.height*k),t=(b=b&&Math.min(u.width,u.height)>this.minPageBreakDist)?Math.ceil(f/u.height)-1:0,x=b?Math.ceil(d/u.width)-1:0,D=p.x+d,I=p.y+f;null==this.horizontalPageBreaks&&0<t&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<x&&(this.verticalPageBreaks=[]);b=mxUtils.bind(this,function(b){if(null!=b){for(var d=b==this.horizontalPageBreaks?t:x,f=0;f<=d;f++){var c=b==this.horizontalPageBreaks?[new mxPoint(Math.round(p.x),
+Math.round(p.y+(f+1)*u.height)),new mxPoint(Math.round(D),Math.round(p.y+(f+1)*u.height))]:[new mxPoint(Math.round(p.x+(f+1)*u.width),Math.round(p.y)),new mxPoint(Math.round(p.x+(f+1)*u.width),Math.round(I))];null!=b[f]?(b[f].points=c,b[f].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[f]=c)}for(f=d;f<b.length;f++)b[f].destroy();b.splice(d,b.length-d)}});b(this.horizontalPageBreaks);
b(this.verticalPageBreaks)};var c=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(b,d,f){for(var l=0;l<d.length;l++){if(this.graph.isTableCell(d[l])||this.graph.isTableRow(d[l]))return!1;if(this.graph.getModel().isVertex(d[l])){var e=this.graph.getCellGeometry(d[l]);if(null!=e&&e.relative)return!1}}return c.apply(this,arguments)};var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var b=
e.apply(this,arguments);b.intersects=mxUtils.bind(this,function(d,f){return this.isConnecting()?!0:mxCellMarker.prototype.intersects.apply(b,arguments)});return b};mxGraphView.prototype.createBackgroundPageShape=function(b){return new mxRectangleShape(b,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var b=this.getGraphBounds(),d=0<b.width?b.x/this.scale-this.translate.x:0,f=0<b.height?b.y/this.scale-this.translate.y:0,c=this.graph.pageFormat,
e=this.graph.pageScale,g=c.width*e,c=c.height*e,e=Math.floor(Math.min(0,d)/g),k=Math.floor(Math.min(0,f)/c);return new mxRectangle(this.scale*(this.translate.x+e*g),this.scale*(this.translate.y+k*c),this.scale*(Math.ceil(Math.max(1,d+b.width/this.scale)/g)-e)*g,this.scale*(Math.ceil(Math.max(1,f+b.height/this.scale)/c)-k)*c)};var k=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(b,d){k.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||
@@ -2134,21 +2134,21 @@ this.graph.isCellSelected(b)&&!this.graph.isToggleEvent(f.getEvent())||this.grap
b.x)*c,(f.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 p="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 f=b.clone();f.style="";var c=k.getCellStyle(f);b=[];var f=[],e;for(e in d.style)c[e]!=d.style[e]&&(b.push(d.style[e]),f.push(e));for(var l=k.getModel().getStyle(d.cell),g=null!=l?l.split(";"):[],l=0;l<g.length;l++){var m=g[l],q=m.indexOf("=");if(0<=q){e=m.substring(0,q);var n=m.substring(q+1);null!=
-c[e]&&"none"==n&&(b.push(n),f.push(e))}}k.getModel().isEdge(d.cell)?k.currentEdgeStyle={}:k.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",f,"values",b,"cells",[d.cell]))}}catch(la){this.handleError(la)}};this.clearDefaultStyle=function(){k.currentEdgeStyle=mxUtils.clone(k.defaultEdgeStyle);k.currentVertexStyle=mxUtils.clone(k.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var f=["fontFamily","fontSource","fontSize",
+c[e]&&"none"==n&&(b.push(n),f.push(e))}}k.getModel().isEdge(d.cell)?k.currentEdgeStyle={}:k.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",f,"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 f=["fontFamily","fontSource","fontSize",
"fontColor"];for(c=0;c<f.length;c++)0>mxUtils.indexOf(p,f[c])&&p.push(f[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"],["align","verticalAlign"],["opacity"],["html"]];for(c=0;c<m.length;c++)for(e=0;e<m[c].length;e++)p.push(m[c][e]);for(c=0;c<t.length;c++)0>
-mxUtils.indexOf(p,t[c])&&p.push(t[c]);var q=function(b,f,c,e,l,g,q){e=null!=e?e:k.currentVertexStyle;l=null!=l?l:k.currentEdgeStyle;g=null!=g?g:!0;c=null!=c?c:k.getModel();if(q){q=[];for(var G=0;G<b.length;G++)q=q.concat(c.getDescendants(b[G]));b=q}c.beginUpdate();try{for(G=0;G<b.length;G++){var n=b[G],A;if(f)A=["fontSize","fontFamily","fontColor"];else{var v=c.getStyle(n),u=null!=v?v.split(";"):[];A=p.slice();for(var J=0;J<u.length;J++){var x=u[J],N=x.indexOf("=");if(0<=N){var t=x.substring(0,N),
-y=mxUtils.indexOf(A,t);0<=y&&A.splice(y,1);for(q=0;q<m.length;q++){var Z=m[q];if(0<=mxUtils.indexOf(Z,t))for(var C=0;C<Z.length;C++){var B=mxUtils.indexOf(A,Z[C]);0<=B&&A.splice(B,1)}}}}}var F=c.isEdge(n);q=F?l:e;for(var Q=c.getStyle(n),J=0;J<A.length;J++){var t=A[J],D=q[t];null!=D&&"edgeStyle"!=t&&("shape"!=t||F)&&(!F||g||0>mxUtils.indexOf(d,t))&&(Q=mxUtils.setStyle(Q,t,D))}Editor.simpleLabels&&(Q=mxUtils.setStyle(mxUtils.setStyle(Q,"html",null),"whiteSpace",null));c.setStyle(n,Q)}}finally{c.endUpdate()}return b};
+mxUtils.indexOf(p,t[c])&&p.push(t[c]);var q=function(b,f,c,e,l,g,q){e=null!=e?e:k.currentVertexStyle;l=null!=l?l:k.currentEdgeStyle;g=null!=g?g:!0;c=null!=c?c:k.getModel();if(q){q=[];for(var H=0;H<b.length;H++)q=q.concat(c.getDescendants(b[H]));b=q}c.beginUpdate();try{for(H=0;H<b.length;H++){var n=b[H],A;if(f)A=["fontSize","fontFamily","fontColor"];else{var u=c.getStyle(n),v=null!=u?u.split(";"):[];A=p.slice();for(var J=0;J<v.length;J++){var x=v[J],N=x.indexOf("=");if(0<=N){var t=x.substring(0,N),
+y=mxUtils.indexOf(A,t);0<=y&&A.splice(y,1);for(q=0;q<m.length;q++){var aa=m[q];if(0<=mxUtils.indexOf(aa,t))for(var B=0;B<aa.length;B++){var C=mxUtils.indexOf(A,aa[B]);0<=C&&A.splice(C,1)}}}}}var G=c.isEdge(n);q=G?l:e;for(var Q=c.getStyle(n),J=0;J<A.length;J++){var t=A[J],D=q[t];null!=D&&"edgeStyle"!=t&&("shape"!=t||G)&&(!G||g||0>mxUtils.indexOf(d,t))&&(Q=mxUtils.setStyle(Q,t,D))}Editor.simpleLabels&&(Q=mxUtils.setStyle(mxUtils.setStyle(Q,"html",null),"whiteSpace",null));c.setStyle(n,Q)}}finally{c.endUpdate()}return b};
k.addListener("cellsInserted",function(b,d){q(d.getProperty("cells"),null,null,null,null,!0,!0)});k.addListener("textInserted",function(b,d){q(d.getProperty("cells"),!0)});this.insertHandler=q;this.createDivs();this.createUi();this.refresh();var n=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=n,this.menubarContainer.onmousedown=n,this.toolbarContainer.onselectstart=
n,this.toolbarContainer.onmousedown=n,this.diagramContainer.onselectstart=n,this.diagramContainer.onmousedown=n,this.sidebarContainer.onselectstart=n,this.sidebarContainer.onmousedown=n,this.formatContainer.onselectstart=n,this.formatContainer.onmousedown=n,this.footerContainer.onselectstart=n,this.footerContainer.onmousedown=n,null!=this.tabContainer&&(this.tabContainer.onselectstart=n));!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 n(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!=B.hoverIcons&&B.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 D=k.cellEditor.isStopEditingEvent;k.cellEditor.isStopEditingEvent=function(b){return D.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 C=!1,F=null,M=null,E=null,K=mxUtils.bind(this,function(){if(null!=this.toolbar&&C!=k.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var f=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),
-d.push(b));b=f}b=this.toolbar.fontMenu;f=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=F;this.toolbar.sizeMenu=M}C=k.cellEditor.isContentEditing();F=b;M=f;E=d}}),B=this,L=k.cellEditor.startEditing;k.cellEditor.startEditing=function(){L.apply(this,arguments);K();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!=B.toolbar&&(B.toolbar.setFontName(Graph.stripQuotes(d.fontFamily)),B.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 O=k.cellEditor.stopEditing;k.cellEditor.stopEditing=function(b,d){try{O.apply(this,arguments),K()}catch(W){B.handleError(W)}};
-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 ca=k.fireMouseEvent;k.fireMouseEvent=function(b,d,f){b==mxEvent.MOUSE_DOWN&&this.container.focus();ca.apply(this,arguments)};k.popupMenuHandler.autoExpand=!0;null!=this.menus&&(k.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(b,d,f){this.menus.createPopupMenu(b,d,f)}));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 f=[d.getProperty("cell")];d.getProperty("terminalInserted")&&(f.push(d.getProperty("terminal")),window.setTimeout(function(){null!=B.hoverIcons&&B.hoverIcons.update(k.view.getState(f[f.length-1]))},0));q(f)});this.addListener("styleChanged",mxUtils.bind(this,function(b,d){var c=d.getProperty("cells"),
+d;){if("geHint"==d.className)return!0;d=d.parentNode}}return n(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 v=
+k.graphHandler.start;k.graphHandler.start=function(){null!=C.hoverIcons&&C.hoverIcons.reset();v.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 u=
+!1,y=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(b,d){return u||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):(u=!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=
+"";u=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var x=k.panningHandler.isForcePanningEvent;k.panningHandler.isForcePanningEvent=function(b){return x.apply(this,arguments)||u||mxEvent.isMouseEvent(b.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(b.getEvent()))&&(!mxEvent.isControlDown(b.getEvent())&&mxEvent.isRightMouseButton(b.getEvent())||mxEvent.isMiddleMouseButton(b.getEvent()))};var D=k.cellEditor.isStopEditingEvent;k.cellEditor.isStopEditingEvent=function(b){return D.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 I=k.isZoomWheelEvent;k.isZoomWheelEvent=function(){return u||I.apply(this,arguments)};var B=!1,G=null,M=null,F=null,K=mxUtils.bind(this,function(){if(null!=this.toolbar&&B!=k.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var f=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),
+d.push(b));b=f}b=this.toolbar.fontMenu;f=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=G;this.toolbar.sizeMenu=M}B=k.cellEditor.isContentEditing();G=b;M=f;F=d}}),C=this,L=k.cellEditor.startEditing;k.cellEditor.startEditing=function(){L.apply(this,arguments);K();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 O=k.cellEditor.stopEditing;k.cellEditor.stopEditing=function(b,d){try{O.apply(this,arguments),K()}catch(Y){C.handleError(Y)}};
+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 da=k.fireMouseEvent;k.fireMouseEvent=function(b,d,f){b==mxEvent.MOUSE_DOWN&&this.container.focus();da.apply(this,arguments)};k.popupMenuHandler.autoExpand=!0;null!=this.menus&&(k.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(b,d,f){this.menus.createPopupMenu(b,d,f)}));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 f=[d.getProperty("cell")];d.getProperty("terminalInserted")&&(f.push(d.getProperty("terminal")),window.setTimeout(function(){null!=C.hoverIcons&&C.hoverIcons.update(k.view.getState(f[f.length-1]))},0));q(f)});this.addListener("styleChanged",mxUtils.bind(this,function(b,d){var c=d.getProperty("cells"),
e=!1,g=!1;if(0<c.length)for(var m=0;m<c.length&&(e=k.getModel().isVertex(c[m])||e,!(g=k.getModel().isEdge(c[m])||g)||!e);m++);else g=e=!0;for(var c=d.getProperty("keys"),q=d.getProperty("values"),m=0;m<c.length;m++){var n=0<=mxUtils.indexOf(f,c[m]);if("strokeColor"!=c[m]||null!=q[m]&&"none"!=q[m])if(0<=mxUtils.indexOf(t,c[m]))g||0<=mxUtils.indexOf(l,c[m])?null==q[m]?delete k.currentEdgeStyle[c[m]]:k.currentEdgeStyle[c[m]]=q[m]:e&&0<=mxUtils.indexOf(p,c[m])&&(null==q[m]?delete k.currentVertexStyle[c[m]]:
k.currentVertexStyle[c[m]]=q[m]);else if(0<=mxUtils.indexOf(p,c[m])){if(e||n)null==q[m]?delete k.currentVertexStyle[c[m]]:k.currentVertexStyle[c[m]]=q[m];if(g||n||0<=mxUtils.indexOf(l,c[m]))null==q[m]?delete k.currentEdgeStyle[c[m]]:k.currentEdgeStyle[c[m]]=q[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"==
@@ -2188,13 +2188,13 @@ e==mxConstants.ARROW_DIAMOND_THIN?"1"==k?"geSprite geSprite-"+b+"thindiamond":"g
e?"geSprite geSprite-"+b+"eronetoone":"ERmany"==e?"geSprite geSprite-"+b+"ermany":"ERoneToMany"==e?"geSprite geSprite-"+b+"eronetomany":"ERzeroToOne"==e?"geSprite geSprite-"+b+"eroneopt":"ERzeroToMany"==e?"geSprite geSprite-"+b+"ermanyopt":"geSprite geSprite-noarrow"};EditorUi.prototype.createMenus=function(){return null};
EditorUi.prototype.updatePasteActionStates=function(){var b=this.editor.graph,c=this.actions.get("paste"),e=this.actions.get("pasteHere");c.setEnabled(this.editor.graph.cellEditor.isContentEditing()||(!mxClient.IS_FF&&null!=navigator.clipboard||!mxClipboard.isEmpty())&&b.isEnabled()&&!b.isCellLocked(b.getDefaultParent()));e.setEnabled(c.isEnabled())};
EditorUi.prototype.initClipboard=function(){var b=this,c=mxClipboard.cut;mxClipboard.cut=function(e){e.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):c.apply(this,arguments);b.updatePasteActionStates()};mxClipboard.copy=function(c){var e=null;if(c.cellEditor.isContentEditing())document.execCommand("copy",!1,null);else{for(var e=e||c.getSelectionCells(),e=c.getExportableCells(c.model.getTopmostCells(e)),d={},f=c.createCellLookup(e),l=c.cloneCells(e,null,d),g=new mxGraphModel,k=g.getChildAt(g.getRoot(),
-0),n=0;n<l.length;n++){g.add(k,l[n]);var p=c.view.getState(e[n]);if(null!=p){var v=c.getCellGeometry(l[n]);null!=v&&v.relative&&!g.isEdge(e[n])&&null==f[mxObjectIdentity.get(g.getParent(e[n]))]&&(v.offset=null,v.relative=!1,v.x=p.x/p.view.scale-p.view.translate.x,v.y=p.y/p.view.scale-p.view.translate.y)}}c.updateCustomLinks(c.createCellMapping(d,f),l);mxClipboard.insertCount=1;mxClipboard.setCells(l)}b.updatePasteActionStates();return e};var e=mxClipboard.paste;mxClipboard.paste=function(c){var g=
+0),n=0;n<l.length;n++){g.add(k,l[n]);var p=c.view.getState(e[n]);if(null!=p){var u=c.getCellGeometry(l[n]);null!=u&&u.relative&&!g.isEdge(e[n])&&null==f[mxObjectIdentity.get(g.getParent(e[n]))]&&(u.offset=null,u.relative=!1,u.x=p.x/p.view.scale-p.view.translate.x,u.y=p.y/p.view.scale-p.view.translate.y)}}c.updateCustomLinks(c.createCellMapping(d,f),l);mxClipboard.insertCount=1;mxClipboard.setCells(l)}b.updatePasteActionStates();return e};var e=mxClipboard.paste;mxClipboard.paste=function(c){var g=
null;c.cellEditor.isContentEditing()?document.execCommand("paste",!1,null):g=e.apply(this,arguments);b.updatePasteActionStates();return g};var k=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){k.apply(this,arguments);b.updatePasteActionStates()};var g=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(c,e){g.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,f){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,f,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(),g=mxUtils.hasScrollbars(b.container),G=b.view.translate,m=b.view.scale,k=mxRectangle.fromRectangle(l);
-k.x=k.x/m-G.x;k.y=k.y/m-G.y;k.width/=m;k.height/=m;var G=b.container.scrollTop,q=b.container.scrollLeft,n=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)n+=3;var p=b.container.offsetWidth-n,n=b.container.offsetHeight-n;d=d?Math.max(.3,Math.min(f||1,p/k.width)):m;f=(p-d*k.width)/2/d;var v=0==this.lightboxVerticalDivider?0:(n-d*k.height)/this.lightboxVerticalDivider/d;g&&(f=Math.max(f,0),v=Math.max(v,0));if(g||l.width<p||l.height<n)b.view.scaleAndTranslate(d,Math.floor(f-
-k.x),Math.floor(v-k.y)),b.container.scrollTop=G*d/m,b.container.scrollLeft=q*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,f){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,f,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(),g=mxUtils.hasScrollbars(b.container),H=b.view.translate,m=b.view.scale,k=mxRectangle.fromRectangle(l);
+k.x=k.x/m-H.x;k.y=k.y/m-H.y;k.width/=m;k.height/=m;var H=b.container.scrollTop,q=b.container.scrollLeft,n=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)n+=3;var p=b.container.offsetWidth-n,n=b.container.offsetHeight-n;d=d?Math.max(.3,Math.min(f||1,p/k.width)):m;f=(p-d*k.width)/2/d;var u=0==this.lightboxVerticalDivider?0:(n-d*k.height)/this.lightboxVerticalDivider/d;g&&(f=Math.max(f,0),u=Math.max(u,0));if(g||l.width<p||l.height<n)b.view.scaleAndTranslate(d,Math.floor(f-
+k.x),Math.floor(u-k.y)),b.container.scrollTop=H*d/m,b.container.scrollLeft=q*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 g=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 p=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",p);p();var t=0,p=mxUtils.bind(this,function(b,d,f){t++;var c=document.createElement("span");c.style.paddingLeft="8px";c.style.paddingRight=
@@ -2202,27 +2202,27 @@ function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils
function(b){this.actions.get("previousPage").funct();mxEvent.consume(b)}),Editor.previousImage,mxResources.get("previousPage")),f=document.createElement("div");f.style.fontFamily=Editor.defaultHtmlFont;f.style.display="inline-block";f.style.verticalAlign="top";f.style.fontWeight="bold";f.style.marginTop="8px";f.style.fontSize="14px";f.style.color=mxClient.IS_IE||mxClient.IS_IE11?"#000000":"#ffffff";this.chromelessToolbar.appendChild(f);var l=p(mxUtils.bind(this,function(b){this.actions.get("nextPage").funct();
mxEvent.consume(b)}),Editor.nextImage,mxResources.get("nextPage")),m=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(f.innerHTML="",mxUtils.write(f,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});d.style.paddingLeft="0px";d.style.paddingRight="4px";l.style.paddingLeft="4px";l.style.paddingRight="0px";var q=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(l.style.display="",d.style.display=
"",f.style.display="inline-block"):(l.style.display="none",d.style.display="none",f.style.display="none");m()});this.editor.addListener("resetGraphView",q);this.editor.addListener("pageSelected",m)}p(mxUtils.bind(this,function(b){this.actions.get("zoomOut").funct();mxEvent.consume(b)}),Editor.zoomOutImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");p(mxUtils.bind(this,function(b){this.actions.get("zoomIn").funct();mxEvent.consume(b)}),Editor.zoomInImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");
-p(mxUtils.bind(this,function(d){b.isLightboxView()?(1==b.view.scale?this.lightboxFit():b.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(d)}),Editor.zoomFitImage,mxResources.get("fit"));var n=null,u=null,v=mxUtils.bind(this,function(b){null!=n&&(window.clearTimeout(n),n=null);null!=u&&(window.clearTimeout(u),u=null);n=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);n=null;u=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display=
-"none";u=null}),600)}),b||200)}),y=mxUtils.bind(this,function(b){null!=n&&(window.clearTimeout(n),n=null);null!=u&&(window.clearTimeout(u),u=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,b||30)});if("1"==urlParams.layers){this.layersDialog=null;var x=p(mxUtils.bind(this,function(d){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=b.createLayersDialog(null,!0);mxEvent.addListener(this.layersDialog,
+p(mxUtils.bind(this,function(d){b.isLightboxView()?(1==b.view.scale?this.lightboxFit():b.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(d)}),Editor.zoomFitImage,mxResources.get("fit"));var n=null,v=null,u=mxUtils.bind(this,function(b){null!=n&&(window.clearTimeout(n),n=null);null!=v&&(window.clearTimeout(v),v=null);n=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);n=null;v=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display=
+"none";v=null}),600)}),b||200)}),y=mxUtils.bind(this,function(b){null!=n&&(window.clearTimeout(n),n=null);null!=v&&(window.clearTimeout(v),v=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,b||30)});if("1"==urlParams.layers){this.layersDialog=null;var x=p(mxUtils.bind(this,function(d){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=b.createLayersDialog(null,!0);mxEvent.addListener(this.layersDialog,
"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var f=x.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily=Editor.defaultHtmlFont;this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.left=f.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+
this.chromelessToolbar.offsetHeight+4+"px";mxClient.IS_IE||mxClient.IS_IE11?(this.layersDialog.style.backgroundColor="#ffffff",this.layersDialog.style.border="2px solid black",this.layersDialog.style.color="#000000"):(this.layersDialog.style.backgroundColor="#000000",this.layersDialog.style.color="#ffffff",mxUtils.setOpacity(this.layersDialog,80));f=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=f.zIndex;document.body.appendChild(this.layersDialog);this.editor.fireEvent(new mxEventObject("layersDialogShown"))}mxEvent.consume(d)}),
Editor.layersImage,mxResources.get("layers")),D=b.getModel();D.addListener(mxEvent.CHANGE,function(){x.style.display=1<D.getChildCount(D.root)?"":"none"})}("1"!=urlParams.openInSameWin||navigator.standalone)&&this.addChromelessToolbarItems(p);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||p(mxUtils.bind(this,function(d){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):b.openLink(this.editor.editButtonLink,
-"editWindow");mxEvent.consume(d)}),Editor.editImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(q=0;q<this.lightboxToolbarActions.length;q++){var H=this.lightboxToolbarActions[q];H.elem=p(H.fn,H.icon,H.tooltip)}null!=g.refreshBtn&&p(mxUtils.bind(this,function(b){g.refreshBtn.url?window.location.href=g.refreshBtn.url:window.location.reload();mxEvent.consume(b)}),Editor.refreshImage,mxResources.get("refresh",null,"Refresh"));null!=g.fullscreenBtn&&window.self!==window.top&&p(mxUtils.bind(this,
+"editWindow");mxEvent.consume(d)}),Editor.editImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(q=0;q<this.lightboxToolbarActions.length;q++){var I=this.lightboxToolbarActions[q];I.elem=p(I.fn,I.icon,I.tooltip)}null!=g.refreshBtn&&p(mxUtils.bind(this,function(b){g.refreshBtn.url?window.location.href=g.refreshBtn.url:window.location.reload();mxEvent.consume(b)}),Editor.refreshImage,mxResources.get("refresh",null,"Refresh"));null!=g.fullscreenBtn&&window.self!==window.top&&p(mxUtils.bind(this,
function(d){g.fullscreenBtn.url?b.openLink(g.fullscreenBtn.url):b.openLink(window.location.href);mxEvent.consume(d)}),Editor.fullscreenImage,mxResources.get("openInNewWindow",null,"Open in New Window"));(g.closeBtn&&window.self===window.top||b.lightbox&&("1"==urlParams.close||this.container!=document.body))&&p(mxUtils.bind(this,function(b){"1"==urlParams.close||g.closeBtn?window.close():(this.destroy(),mxEvent.consume(b))}),Editor.closeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display=
-"none";b.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");b.container.appendChild(this.chromelessToolbar);mxEvent.addListener(b.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(mxEvent.isShiftDown(b)||y(30),v())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",
-mxUtils.bind(this,function(d){b.tooltipHandler.resetTimer();b.tooltipHandler.hideTooltip();mxEvent.isShiftDown(d)?v():y(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(b){mxEvent.isShiftDown(b)?v():y(100);mxEvent.consume(b)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||y(30)}));var C=b.getTolerance();b.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(d,f){this.startX=
-f.getGraphX();this.startY=f.getGraphY();this.scrollLeft=b.container.scrollLeft;this.scrollTop=b.container.scrollTop},mouseMove:function(b,d){},mouseUp:function(d,f){mxEvent.isTouchEvent(f.getEvent())&&Math.abs(this.scrollLeft-b.container.scrollLeft)<C&&Math.abs(this.scrollTop-b.container.scrollTop)<C&&Math.abs(this.startX-f.getGraphX())<C&&Math.abs(this.startY-f.getGraphY())<C&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?v():y(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var F=
-b.view.validate;b.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var b=this.graph.getPagePadding(),d=this.graph.getPageSize();this.translate.x=b.x-(this.x0||0)*d.width;this.translate.y=b.y-(this.y0||0)*d.height}F.apply(this,arguments)};if(!b.isViewer()){var M=b.sizeDidChange;b.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var d=this.getPageLayout(),f=this.getPagePadding(),c=this.getPageSize(),e=Math.ceil(2*
+"none";b.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");b.container.appendChild(this.chromelessToolbar);mxEvent.addListener(b.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(mxEvent.isShiftDown(b)||y(30),u())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",
+mxUtils.bind(this,function(d){b.tooltipHandler.resetTimer();b.tooltipHandler.hideTooltip();mxEvent.isShiftDown(d)?u():y(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(b){mxEvent.isShiftDown(b)?u():y(100);mxEvent.consume(b)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||y(30)}));var B=b.getTolerance();b.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(d,f){this.startX=
+f.getGraphX();this.startY=f.getGraphY();this.scrollLeft=b.container.scrollLeft;this.scrollTop=b.container.scrollTop},mouseMove:function(b,d){},mouseUp:function(d,f){mxEvent.isTouchEvent(f.getEvent())&&Math.abs(this.scrollLeft-b.container.scrollLeft)<B&&Math.abs(this.scrollTop-b.container.scrollTop)<B&&Math.abs(this.startX-f.getGraphX())<B&&Math.abs(this.startY-f.getGraphY())<B&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?u():y(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var G=
+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}G.apply(this,arguments)};if(!b.isViewer()){var M=b.sizeDidChange;b.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var d=this.getPageLayout(),f=this.getPagePadding(),c=this.getPageSize(),e=Math.ceil(2*
f.x+d.width*c.width),l=Math.ceil(2*f.y+d.height*c.height),g=b.minimumGraphSize;if(null==g||g.width!=e||g.height!=l)b.minimumGraphSize=new mxRectangle(0,0,e,l);e=f.x-d.x*c.width;f=f.y-d.y*c.height;this.autoTranslate||this.view.translate.x==e&&this.view.translate.y==f?M.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,f),b.container.scrollLeft+=Math.round((e-d)*b.view.scale),b.container.scrollTop+=Math.round((f-
-c)*b.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var E=b.view.getBackgroundPane(),K=b.view.getDrawPane();b.cumulativeZoomFactor=1;var B=null,L=null,O=null,ca=null,N=null,Q=function(d){null!=B&&window.clearTimeout(B);window.setTimeout(function(){if(!b.isMouseDown||ca)B=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)),K.style.transformOrigin="",E.style.transformOrigin="",mxClient.IS_SF?(K.style.transform="scale(1)",E.style.transform="scale(1)",window.setTimeout(function(){K.style.transform="";E.style.transform=""},0)):(K.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),
+c)*b.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var F=b.view.getBackgroundPane(),K=b.view.getDrawPane();b.cumulativeZoomFactor=1;var C=null,L=null,O=null,da=null,N=null,Q=function(d){null!=C&&window.clearTimeout(C);window.setTimeout(function(){if(!b.isMouseDown||da)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)),K.style.transformOrigin="",F.style.transformOrigin="",mxClient.IS_SF?(K.style.transform="scale(1)",F.style.transform="scale(1)",window.setTimeout(function(){K.style.transform="";F.style.transform=""},0)):(K.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),
f=mxUtils.getOffset(b.container),l=b.view.scale,g=0,m=0;null!=L&&(g=b.container.offsetWidth/2-L.x+f.x,m=b.container.offsetHeight/2-L.y+f.y);b.zoom(b.cumulativeZoomFactor);b.view.scale!=l&&(null!=O&&(g+=d.x-O.x,m+=d.y-O.y),null!=c&&e.chromelessResize(!1,null,g*(b.cumulativeZoomFactor-1),m*(b.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(b.container)||0==g&&0==m||(b.container.scrollLeft-=g*(b.cumulativeZoomFactor-1),b.container.scrollTop-=m*(b.cumulativeZoomFactor-1)));null!=N&&K.setAttribute("filter",
-N);b.cumulativeZoomFactor=1;N=ca=L=O=B=null}),null!=d?d:b.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)},W=Date.now();b.lazyZoom=function(d,f,c){(f=f||!b.scrollbars)&&(L=new mxPoint(b.container.offsetLeft+b.container.clientWidth/2,b.container.offsetTop+b.container.clientHeight/2));if(mxClient.IS_IOS||!(15>Date.now()-W)){W=Date.now();d?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,
+N);b.cumulativeZoomFactor=1;N=da=L=O=C=null}),null!=d?d:b.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)},Y=Date.now();b.lazyZoom=function(d,f,c){(f=f||!b.scrollbars)&&(L=new mxPoint(b.container.offsetLeft+b.container.clientWidth/2,b.container.offsetTop+b.container.clientHeight/2));if(mxClient.IS_IOS||!(15>Date.now()-Y)){Y=Date.now();d?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,
this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,160))/this.view.scale;if(b.isFastZoomEnabled()){null==
-N&&""!=K.getAttribute("filter")&&(N=K.getAttribute("filter"),K.removeAttribute("filter"));O=new mxPoint(b.container.scrollLeft,b.container.scrollTop);d=f?b.container.scrollLeft+b.container.clientWidth/2:L.x+b.container.scrollLeft-b.container.offsetLeft;var l=f?b.container.scrollTop+b.container.clientHeight/2:L.y+b.container.scrollTop-b.container.offsetTop;K.style.transformOrigin=d+"px "+l+"px";K.style.transform="scale("+this.cumulativeZoomFactor+")";E.style.transformOrigin=d+"px "+l+"px";E.style.transform=
+N&&""!=K.getAttribute("filter")&&(N=K.getAttribute("filter"),K.removeAttribute("filter"));O=new mxPoint(b.container.scrollLeft,b.container.scrollTop);d=f?b.container.scrollLeft+b.container.clientWidth/2:L.x+b.container.scrollLeft-b.container.offsetLeft;var l=f?b.container.scrollTop+b.container.clientHeight/2:L.y+b.container.scrollTop-b.container.offsetTop;K.style.transformOrigin=d+"px "+l+"px";K.style.transform="scale("+this.cumulativeZoomFactor+")";F.style.transformOrigin=d+"px "+l+"px";F.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",(f?b.container.clientWidth/2+b.container.scrollLeft-d.offsetLeft+"px":L.x+b.container.scrollLeft-d.offsetLeft-b.container.offsetLeft+"px")+" "+(f?b.container.clientHeight/2+b.container.scrollTop-d.offsetTop+"px":L.y+b.container.scrollTop-d.offsetTop-b.container.offsetTop+"px")),mxUtils.setPrefixedStyle(d.style,
-"transform","scale("+this.cumulativeZoomFactor+")"));b.view.getDecoratorPane().style.opacity="0";b.view.getOverlayPane().style.opacity="0";null!=e.hoverIcons&&e.hoverIcons.reset()}Q(c)}};mxEvent.addGestureListeners(b.container,function(b){null!=B&&window.clearTimeout(B)},null,function(d){1!=b.cumulativeZoomFactor&&Q(0)});mxEvent.addListener(b.container,"scroll",function(d){null==B||b.isMouseDown||1==b.cumulativeZoomFactor||Q(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(d,f,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+(f?-e:e),c.y):b.view.setTranslate(c.x,c.y+(f?e:-e));else if(c||b.isZoomWheelEvent(d))for(var g=mxEvent.getSource(d);null!=g;){if(g==b.container)return b.tooltipHandler.hideTooltip(),L=null!=e&&null!=l?new mxPoint(e,l):new mxPoint(mxEvent.getClientX(d),mxEvent.getClientY(d)),ca=c,b.lazyZoom(f),mxEvent.consume(d),!1;g=g.parentNode}}),
+"transform","scale("+this.cumulativeZoomFactor+")"));b.view.getDecoratorPane().style.opacity="0";b.view.getOverlayPane().style.opacity="0";null!=e.hoverIcons&&e.hoverIcons.reset()}Q(c)}};mxEvent.addGestureListeners(b.container,function(b){null!=C&&window.clearTimeout(C)},null,function(d){1!=b.cumulativeZoomFactor&&Q(0)});mxEvent.addListener(b.container,"scroll",function(d){null==C||b.isMouseDown||1==b.cumulativeZoomFactor||Q(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(d,f,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+(f?-e:e),c.y):b.view.setTranslate(c.x,c.y+(f?e:-e));else if(c||b.isZoomWheelEvent(d))for(var g=mxEvent.getSource(d);null!=g;){if(g==b.container)return b.tooltipHandler.hideTooltip(),L=null!=e&&null!=l?new mxPoint(e,l):new mxPoint(mxEvent.getClientX(d),mxEvent.getClientY(d)),da=c,b.lazyZoom(f),mxEvent.consume(d),!1;g=g.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))};
@@ -2317,31 +2317,31 @@ mxImageShape.prototype.getImageDataUri=function(){var b=this.image;if("data:imag
Graph=function(b,c,e,k,g,p){mxGraph.call(this,b,c,e,k);this.themes=g||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);this.standalone=null!=p?p:!1;b=this.baseUrl;c=b.indexOf("//");this.domainPathUrl=this.domainUrl="";0<c&&(c=b.indexOf("/",c+2),0<c&&(this.domainUrl=b.substring(0,c)),c=b.lastIndexOf("/"),0<c&&(this.domainPathUrl=b.substring(0,c+1)));this.isHtmlLabel=function(b){b=this.getCurrentCellStyle(b);
return null!=b?"1"==b.html||"wrap"==b[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var t=null,d=null,f=null,l=null,m=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,c){if("mouseDown"==c.getProperty("eventName")&&this.isEnabled()){var e=c.getProperty("event"),g=e.getState(),k=this.view.scale;if(!mxEvent.isAltDown(e.getEvent())&&null!=g)if(this.model.isEdge(g.cell))if(t=new mxPoint(e.getGraphX(),e.getGraphY()),m=this.isCellSelected(g.cell),f=g,d=e,null!=g.text&&null!=
g.text.boundingBox&&mxUtils.contains(g.text.boundingBox,e.getGraphX(),e.getGraphY()))l=mxEvent.LABEL_HANDLE;else{var q=this.selectionCellsHandler.getHandler(g.cell);null!=q&&null!=q.bends&&0<q.bends.length&&(l=q.getHandleForEvent(e))}else if(!this.panningHandler.isActive()&&!mxEvent.isControlDown(e.getEvent())&&(q=this.selectionCellsHandler.getHandler(g.cell),null==q||null==q.getHandleForEvent(e))){var n=new mxRectangle(e.getGraphX()-1,e.getGraphY()-1);n.grow(mxEvent.isTouchEvent(e.getEvent())?mxShape.prototype.svgStrokeTolerance-
-1:(mxShape.prototype.svgStrokeTolerance+1)/2);if(this.isTableCell(g.cell)&&!this.isCellSelected(g.cell)){var p=this.model.getParent(g.cell),q=this.model.getParent(p);if(!this.isCellSelected(q)){var v=this.getCellGeometry(g.cell),v=null!=v.alternateBounds?v.alternateBounds:v;if(mxUtils.intersects(n,new mxRectangle(g.x,g.y-2,v.width*k,3))&&this.model.getChildAt(q,0)!=p||mxUtils.intersects(n,new mxRectangle(g.x,g.y+v.height-2,v.width,3))||mxUtils.intersects(n,new mxRectangle(g.x-2,g.y,2,v.height*k))&&
-this.model.getChildAt(p,0)!=g.cell||mxUtils.intersects(n,new mxRectangle(g.x+v.width*k-2,g.y,2,v.height*k)))p=this.selectionCellsHandler.isHandled(q),this.selectCellForEvent(q,e.getEvent()),q=this.selectionCellsHandler.getHandler(q),null!=q&&(v=q.getHandleForEvent(e),null!=v&&(q.start(e.getGraphX(),e.getGraphY(),v),q.blockDelayedSelection=!p,e.consume()))}}for(;!e.isConsumed()&&null!=g&&(this.isTableCell(g.cell)||this.isTableRow(g.cell)||this.isTable(g.cell));)this.isSwimlane(g.cell)&&(q=this.getActualStartSize(g.cell),
-(0<q.x||0<q.width)&&mxUtils.intersects(n,new mxRectangle(g.x+(q.x-q.width-1)*k+(0==q.x?g.width:0),g.y,1,g.height))||(0<q.y||0<q.height)&&mxUtils.intersects(n,new mxRectangle(g.x,g.y+(q.y-q.height-1)*k+(0==q.y?g.height:0),g.width,1)))&&(this.selectCellForEvent(g.cell,e.getEvent()),q=this.selectionCellsHandler.getHandler(g.cell),null!=q&&(v=mxEvent.CUSTOM_HANDLE-q.customHandles.length+1,q.start(e.getGraphX(),e.getGraphY(),v),e.consume())),g=this.view.getState(this.model.getParent(g.cell))}}}));this.addMouseListener({mouseDown:function(b,
+1:(mxShape.prototype.svgStrokeTolerance+1)/2);if(this.isTableCell(g.cell)&&!this.isCellSelected(g.cell)){var p=this.model.getParent(g.cell),q=this.model.getParent(p);if(!this.isCellSelected(q)){var u=this.getCellGeometry(g.cell),u=null!=u.alternateBounds?u.alternateBounds:u;if(mxUtils.intersects(n,new mxRectangle(g.x,g.y-2,u.width*k,3))&&this.model.getChildAt(q,0)!=p||mxUtils.intersects(n,new mxRectangle(g.x,g.y+u.height-2,u.width,3))||mxUtils.intersects(n,new mxRectangle(g.x-2,g.y,2,u.height*k))&&
+this.model.getChildAt(p,0)!=g.cell||mxUtils.intersects(n,new mxRectangle(g.x+u.width*k-2,g.y,2,u.height*k)))p=this.selectionCellsHandler.isHandled(q),this.selectCellForEvent(q,e.getEvent()),q=this.selectionCellsHandler.getHandler(q),null!=q&&(u=q.getHandleForEvent(e),null!=u&&(q.start(e.getGraphX(),e.getGraphY(),u),q.blockDelayedSelection=!p,e.consume()))}}for(;!e.isConsumed()&&null!=g&&(this.isTableCell(g.cell)||this.isTableRow(g.cell)||this.isTable(g.cell));)this.isSwimlane(g.cell)&&(q=this.getActualStartSize(g.cell),
+(0<q.x||0<q.width)&&mxUtils.intersects(n,new mxRectangle(g.x+(q.x-q.width-1)*k+(0==q.x?g.width:0),g.y,1,g.height))||(0<q.y||0<q.height)&&mxUtils.intersects(n,new mxRectangle(g.x,g.y+(q.y-q.height-1)*k+(0==q.y?g.height:0),g.width,1)))&&(this.selectCellForEvent(g.cell,e.getEvent()),q=this.selectionCellsHandler.getHandler(g.cell),null!=q&&(u=mxEvent.CUSTOM_HANDLE-q.customHandles.length+1,q.start(e.getGraphX(),e.getGraphY(),u),e.consume())),g=this.view.getState(this.model.getParent(g.cell))}}}));this.addMouseListener({mouseDown:function(b,
d){},mouseMove:mxUtils.bind(this,function(b,c){var e=this.selectionCellsHandler.handlers.map,g;for(g in e)if(null!=e[g].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isAltDown(c.getEvent()))if(g=this.tolerance,null!=t&&null!=f&&null!=d){if(e=f,Math.abs(t.x-c.getGraphX())>g||Math.abs(t.y-c.getGraphY())>g){var k=this.selectionCellsHandler.getHandler(e.cell);null==k&&this.model.isEdge(e.cell)&&(k=this.createHandler(e));if(null!=k&&null!=k.bends&&0<k.bends.length){g=k.getHandleForEvent(d);
var q=this.view.getEdgeStyle(e),n=q==mxEdgeStyle.EntityRelation;m||l!=mxEvent.LABEL_HANDLE||(g=l);if(n&&0!=g&&g!=k.bends.length-1&&g!=mxEvent.LABEL_HANDLE)!n||null==e.visibleSourceState&&null==e.visibleTargetState||(this.graphHandler.reset(),c.consume());else if(g==mxEvent.LABEL_HANDLE||0==g||null!=e.visibleSourceState||g==k.bends.length-1||null!=e.visibleTargetState)n||g==mxEvent.LABEL_HANDLE||(n=e.absolutePoints,null!=n&&(null==q&&null==g||q==mxEdgeStyle.OrthConnector)&&(g=l,null==g&&(g=new mxRectangle(t.x,
t.y),g.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(g,n[0].x,n[0].y)?g=0:mxUtils.contains(g,n[n.length-1].x,n[n.length-1].y)?g=k.bends.length-1:null!=q&&(2==n.length||3==n.length&&(0==Math.round(n[0].x-n[1].x)&&0==Math.round(n[1].x-n[2].x)||0==Math.round(n[0].y-n[1].y)&&0==Math.round(n[1].y-n[2].y)))?g=2:(g=mxUtils.findNearestSegment(e,t.x,t.y),g=null==q?mxEvent.VIRTUAL_HANDLE-g:g+1))),null==g&&(g=mxEvent.VIRTUAL_HANDLE)),k.start(c.getGraphX(),c.getGraphX(),g),c.consume(),this.graphHandler.reset()}null!=
k&&(this.selectionCellsHandler.isHandlerActive(k)?this.isCellSelected(e.cell)||(this.selectionCellsHandler.handlers.put(e.cell,k),this.selectCellForEvent(e.cell,c.getEvent())):this.isCellSelected(e.cell)||k.destroy());m=!1;t=d=f=l=null}}else if(e=c.getState(),null!=e&&this.isCellEditable(e.cell)){k=null;if(this.model.isEdge(e.cell)){if(g=new mxRectangle(c.getGraphX(),c.getGraphY()),g.grow(mxEdgeHandler.prototype.handleImage.width/2),n=e.absolutePoints,null!=n)if(null!=e.text&&null!=e.text.boundingBox&&
mxUtils.contains(e.text.boundingBox,c.getGraphX(),c.getGraphY()))k="move";else if(mxUtils.contains(g,n[0].x,n[0].y)||mxUtils.contains(g,n[n.length-1].x,n[n.length-1].y))k="pointer";else if(null!=e.visibleSourceState||null!=e.visibleTargetState)g=this.view.getEdgeStyle(e),k="crosshair",g!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(e)&&(g=mxUtils.findNearestSegment(e,c.getGraphX(),c.getGraphY()),g<n.length-1&&0<=g&&(k=0==Math.round(n[g].x-n[g+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(c.getEvent())){g=
new mxRectangle(c.getGraphX()-1,c.getGraphY()-1);g.grow(mxShape.prototype.svgStrokeTolerance/2);if(this.isTableCell(e.cell)&&(n=this.model.getParent(e.cell),q=this.model.getParent(n),!this.isCellSelected(q)))if(mxUtils.intersects(g,new mxRectangle(e.x-2,e.y,2,e.height))&&this.model.getChildAt(n,0)!=e.cell||mxUtils.intersects(g,new mxRectangle(e.x+e.width-2,e.y,2,e.height)))k="col-resize";else if(mxUtils.intersects(g,new mxRectangle(e.x,e.y-2,e.width,3))&&this.model.getChildAt(q,0)!=n||mxUtils.intersects(g,
-new mxRectangle(e.x,e.y+e.height-2,e.width,3)))k="row-resize";for(n=e;null==k&&null!=n&&(this.isTableCell(n.cell)||this.isTableRow(n.cell)||this.isTable(n.cell));){if(this.isSwimlane(n.cell)){var q=this.getActualStartSize(n.cell),p=this.view.scale;(0<q.x||0<q.width)&&mxUtils.intersects(g,new mxRectangle(n.x+(q.x-q.width-1)*p+(0==q.x?n.width*p:0),n.y,1,n.height))?k="col-resize":(0<q.y||0<q.height)&&mxUtils.intersects(g,new mxRectangle(n.x,n.y+(q.y-q.height-1)*p+(0==q.y?n.height:0),n.width,1))&&(k=
+new mxRectangle(e.x,e.y+e.height-2,e.width,3)))k="row-resize";for(n=e;null==k&&null!=n&&(this.isTableCell(n.cell)||this.isTableRow(n.cell)||this.isTable(n.cell));){if(this.isSwimlane(n.cell)){var q=this.getActualStartSize(n.cell),u=this.view.scale;(0<q.x||0<q.width)&&mxUtils.intersects(g,new mxRectangle(n.x+(q.x-q.width-1)*u+(0==q.x?n.width*u:0),n.y,1,n.height))?k="col-resize":(0<q.y||0<q.height)&&mxUtils.intersects(g,new mxRectangle(n.x,n.y+(q.y-q.height-1)*u+(0==q.y?n.height:0),n.width,1))&&(k=
"row-resize")}n=this.view.getState(this.model.getParent(n.cell))}}null!=k&&e.setCursor(k)}}),mouseUp:mxUtils.bind(this,function(b,c){l=t=d=f=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 q=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=
function(){var b=q.apply(this,arguments);if(this.graph.pageVisible){for(var d=[],f=this.graph.pageFormat,c=this.graph.pageScale,e=f.width*c,f=f.height*c,c=this.graph.view.translate,l=this.graph.view.scale,g=this.graph.getPageLayout(),k=0;k<g.width;k++)d.push(new mxRectangle(((g.x+k)*e+c.x)*l,(g.y*f+c.y)*l,e*l,f*l));for(k=1;k<g.height;k++)d.push(new mxRectangle((g.x*e+c.x)*l,((g.y+k)*f+c.y)*l,e*l,f*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 n=this.graphHandler.getCells;this.graphHandler.getCells=function(b){for(var d=n.apply(this,arguments),f=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||f.get(l)||(f.put(l,!0),c.push(l))}return c};var u=this.graphHandler.start;this.graphHandler.start=function(b,d,f,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,D=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var b=this.currentState;D.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 C=this.isToggleEvent;this.isToggleEvent=function(b){return C.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b)};var F=v.isForceRubberbandEvent;v.isForceRubberbandEvent=function(b){return F.apply(this,
+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||f.get(l)||(f.put(l,!0),c.push(l))}return c};var v=this.graphHandler.start;this.graphHandler.start=function(b,d,f,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));
+v.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(b,d){d=this.graph.getCompositeParent(d);return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var u=new mxRubberband(this);this.getRubberband=function(){return u};var y=(new Date).getTime(),x=0,D=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var b=this.currentState;D.apply(this,arguments);b!=this.currentState?(y=(new Date).getTime(),x=0):x=(new Date).getTime()-y};var I=
+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"))&&I.apply(this,arguments)};var B=this.isToggleEvent;this.isToggleEvent=function(b){return B.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b)};var G=u.isForceRubberbandEvent;u.isForceRubberbandEvent=function(b){return G.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 M=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(M=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=M)}));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 f=d?b.sourceState.cell:b.getCell();null!=f&&(f=this.getClickableLinkForCell(f),null!=f&&(this.isCustomLink(f)?
+mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=M)}));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 f=d?b.sourceState.cell:b.getCell();null!=f&&(f=this.getClickableLinkForCell(f),null!=f&&(this.isCustomLink(f)?
this.customLinkClicked(f):this.openLink(f)));this.isEnabled()&&d&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};var K=this.tooltipHandler.show;this.tooltipHandler.show=function(){K.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 B=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 B.apply(this,arguments)};this.selectRegion=function(b,d){var f=mxEvent.isAltDown(d)?b:null,f=this.getCells(b.x,
+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 f=mxEvent.isAltDown(d)?b:null,f=this.getCells(b.x,
b.y,b.width,b.height,null,null,f,function(b){return"1"==mxUtils.getValue(b.style,"locked","0")},!0);if(this.isToggleEvent(d))for(var c=0;c<f.length;c++)this.selectCellForEvent(f[c],d);else this.selectCellsForEvent(f,d);return f};var L=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(b,d,f){return this.graph.isCellSelected(b)?!1:L.apply(this,arguments)};this.isCellLocked=function(b){for(;null!=b;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(b),
"locked","0"))return!0;b=this.model.getParent(b)}return!1};var O=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,d){if("mouseDown"==d.getProperty("eventName")){var f=d.getProperty("event").getState();O=null==f||this.isSelectionEmpty()||this.isCellSelected(f.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(b,d){if(!mxEvent.isMultiTouchEvent(d)){var f=d.getProperty("event"),c=d.getProperty("cell");null==c?(f=mxUtils.convertPoint(this.container,
-mxEvent.getClientX(f),mxEvent.getClientY(f)),v.start(f.x,f.y)):null!=O?this.addSelectionCells(O):1<this.getSelectionCount()&&this.isCellSelected(c)&&this.removeSelectionCell(c);O=null;d.consume()}}));this.connectionHandler.selectCells=function(b,d){this.graph.setSelectionCell(d||b)};this.connectionHandler.constraintHandler.isStateIgnored=function(b,d){var f=b.view.graph;return d&&(f.isCellSelected(b.cell)||f.isTableRow(b.cell)&&f.selectionCellsHandler.isHandled(f.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 ca=this.updateMouseEvent;this.updateMouseEvent=function(b){b=ca.apply(this,arguments);null!=b.state&&this.isCellLocked(b.getCell())&&(b.state=null);return b}}this.currentTranslate=new mxPoint(0,0)};
+mxEvent.getClientX(f),mxEvent.getClientY(f)),u.start(f.x,f.y)):null!=O?this.addSelectionCells(O):1<this.getSelectionCount()&&this.isCellSelected(c)&&this.removeSelectionCell(c);O=null;d.consume()}}));this.connectionHandler.selectCells=function(b,d){this.graph.setSelectionCell(d||b)};this.connectionHandler.constraintHandler.isStateIgnored=function(b,d){var f=b.view.graph;return d&&(f.isCellSelected(b.cell)||f.isTableRow(b.cell)&&f.selectionCellsHandler.isHandled(f.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 da=this.updateMouseEvent;this.updateMouseEvent=function(b){b=da.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(" ");
@@ -2403,8 +2403,8 @@ Graph.prototype.setGridSize=function(b){this.gridSize=b;this.fireEvent(new mxEve
Graph.prototype.getGlobalVariable=function(b){var c=null;"date"==b?c=(new Date).toLocaleDateString():"time"==b?c=(new Date).toLocaleTimeString():"timestamp"==b?c=(new Date).toLocaleString():"date{"==b.substring(0,5)&&(b=b.substring(5,b.length-1),c=this.formatDate(new Date,b));return c};
Graph.prototype.formatDate=function(b,c,e){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",
shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var k=this.dateFormatCache,g=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,p=/[^-+\dA-Z]/g,t=function(b,d){b=String(b);for(d=d||2;b.length<d;)b="0"+b;return b};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(b)||
-/\d/.test(b)||(c=b,b=void 0);b=b?new Date(b):new Date;if(isNaN(b))throw SyntaxError("invalid date");c=String(k.masks[c]||c||k.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),e=!0);var d=e?"getUTC":"get",f=b[d+"Date"](),l=b[d+"Day"](),m=b[d+"Month"](),q=b[d+"FullYear"](),n=b[d+"Hours"](),u=b[d+"Minutes"](),v=b[d+"Seconds"](),d=b[d+"Milliseconds"](),y=e?0:b.getTimezoneOffset(),x={d:f,dd:t(f),ddd:k.i18n.dayNames[l],dddd:k.i18n.dayNames[l+7],m:m+1,mm:t(m+1),mmm:k.i18n.monthNames[m],mmmm:k.i18n.monthNames[m+
-12],yy:String(q).slice(2),yyyy:q,h:n%12||12,hh:t(n%12||12),H:n,HH:t(n),M:u,MM:t(u),s:v,ss:t(v),l:t(d,3),L:t(99<d?Math.round(d/10):d),t:12>n?"a":"p",tt:12>n?"am":"pm",T:12>n?"A":"P",TT:12>n?"AM":"PM",Z:e?"UTC":(String(b).match(g)||[""]).pop().replace(p,""),o:(0<y?"-":"+")+t(100*Math.floor(Math.abs(y)/60)+Math.abs(y)%60,4),S:["th","st","nd","rd"][3<f%10?0:(10!=f%100-f%10)*f%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(b){return b in x?x[b]:b.slice(1,
+/\d/.test(b)||(c=b,b=void 0);b=b?new Date(b):new Date;if(isNaN(b))throw SyntaxError("invalid date");c=String(k.masks[c]||c||k.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),e=!0);var d=e?"getUTC":"get",f=b[d+"Date"](),l=b[d+"Day"](),m=b[d+"Month"](),q=b[d+"FullYear"](),n=b[d+"Hours"](),v=b[d+"Minutes"](),u=b[d+"Seconds"](),d=b[d+"Milliseconds"](),y=e?0:b.getTimezoneOffset(),x={d:f,dd:t(f),ddd:k.i18n.dayNames[l],dddd:k.i18n.dayNames[l+7],m:m+1,mm:t(m+1),mmm:k.i18n.monthNames[m],mmmm:k.i18n.monthNames[m+
+12],yy:String(q).slice(2),yyyy:q,h:n%12||12,hh:t(n%12||12),H:n,HH:t(n),M:v,MM:t(v),s:u,ss:t(u),l:t(d,3),L:t(99<d?Math.round(d/10):d),t:12>n?"a":"p",tt:12>n?"am":"pm",T:12>n?"A":"P",TT:12>n?"AM":"PM",Z:e?"UTC":(String(b).match(g)||[""]).pop().replace(p,""),o:(0<y?"-":"+")+t(100*Math.floor(Math.abs(y)/60)+Math.abs(y)%60,4),S:["th","st","nd","rd"][3<f%10?0:(10!=f%100-f%10)*f%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(b){return b in x?x[b]:b.slice(1,
b.length-1)})};Graph.prototype.getLayerForCells=function(b){var c=null;if(0<b.length){for(c=b[0];!this.model.isLayer(c);)c=this.model.getParent(c);for(var e=1;e<b.length;e++)if(!this.model.isAncestor(c,b[e])){c=null;break}}return c};
Graph.prototype.createLayersDialog=function(b,c){var e=document.createElement("div");e.style.position="absolute";for(var k=this.getModel(),g=k.getChildCount(k.root),p=0;p<g;p++)mxUtils.bind(this,function(g){function d(){k.isVisible(g)?(m.setAttribute("src",Editor.visibleImage),mxUtils.setOpacity(l,75)):(m.setAttribute("src",Editor.hiddenImage),mxUtils.setOpacity(l,25))}var f=this.convertValueToString(g)||mxResources.get("background")||"Background",l=document.createElement("div");l.style.overflow=
"hidden";l.style.textOverflow="ellipsis";l.style.padding="2px";l.style.whiteSpace="nowrap";l.style.cursor="pointer";l.setAttribute("title",mxResources.get(k.isVisible(g)?"hideIt":"show",[f]));var m=document.createElement("img");m.setAttribute("draggable","false");m.setAttribute("align","absmiddle");m.setAttribute("border","0");m.style.position="relative";m.style.width="16px";m.style.padding="0px 6px 0 4px";c&&(m.style.filter="invert(100%)",m.style.top="-2px");l.appendChild(m);mxUtils.write(l,f);e.appendChild(l);
@@ -2414,11 +2414,11 @@ null==t&&(t=f.hasAttribute(d)?null!=f.getAttribute(d)?f.getAttribute(d):"":null)
Graph.prototype.selectCellsForConnectVertex=function(b,c,e){2==b.length&&this.model.isVertex(b[1])?(this.setSelectionCell(b[1]),this.scrollCellToVisible(b[1]),null!=e&&(mxEvent.isTouchEvent(c)?e.update(e.getState(this.view.getState(b[1]))):e.reset())):this.setSelectionCells(b)};Graph.prototype.isCloneConnectSource=function(b){var c=null;null!=this.layoutManager&&(c=this.layoutManager.getLayout(this.model.getParent(b)));return this.isTableRow(b)||this.isTableCell(b)||null!=c&&c.constructor==mxStackLayout};
Graph.prototype.connectVertex=function(b,c,e,k,g,p,t,d){p=p?p:!1;if(b.geometry.relative&&this.model.isEdge(b.parent))return[];for(;b.geometry.relative&&this.model.isVertex(b.parent);)b=b.parent;var f=this.isCloneConnectSource(b),l=f?b:this.getCompositeParent(b),m=b.geometry.relative&&null!=b.parent.geometry?new mxPoint(b.parent.geometry.width*b.geometry.x,b.parent.geometry.height*b.geometry.y):new mxPoint(l.geometry.x,l.geometry.y);c==mxConstants.DIRECTION_NORTH?(m.x+=l.geometry.width/2,m.y-=e):c==
mxConstants.DIRECTION_SOUTH?(m.x+=l.geometry.width/2,m.y+=l.geometry.height+e):(m.x=c==mxConstants.DIRECTION_WEST?m.x-e:m.x+(l.geometry.width+e),m.y+=l.geometry.height/2);var q=this.view.getState(this.model.getParent(b));e=this.view.scale;var n=this.view.translate,l=n.x*e,n=n.y*e;null!=q&&this.model.isVertex(q.cell)&&(l=q.x,n=q.y);this.model.isVertex(b.parent)&&b.geometry.relative&&(m.x+=b.parent.geometry.x,m.y+=b.parent.geometry.y);p=p?null:(new mxRectangle(l+m.x*e,n+m.y*e)).grow(40*e);p=null!=p?
-this.getCells(0,0,0,0,null,null,p,null,!0):null;var q=this.view.getState(b),u=null,v=null;if(null!=p){p=p.reverse();for(var y=0;y<p.length;y++)if(!this.isCellLocked(p[y])&&!this.model.isEdge(p[y])&&p[y]!=b)if(!this.model.isAncestor(b,p[y])&&this.isContainer(p[y])&&(null==u||p[y]==this.model.getParent(b)))u=p[y];else if(null==v&&this.isCellConnectable(p[y])&&!this.model.isAncestor(p[y],b)&&!this.isSwimlane(p[y])){var x=this.view.getState(p[y]);null==q||null==x||mxUtils.intersects(q,x)||(v=p[y])}}var D=
-!mxEvent.isShiftDown(k)||mxEvent.isControlDown(k)||g;D&&("1"!=urlParams.sketch||g)&&(c==mxConstants.DIRECTION_NORTH?m.y-=b.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=b.geometry.height/2:m.x=c==mxConstants.DIRECTION_WEST?m.x-b.geometry.width/2:m.x+b.geometry.width/2);var H=[],C=v,v=u;g=mxUtils.bind(this,function(e){if(null==t||null!=e||null==v&&f){this.model.beginUpdate();try{if(null==C&&D){var g=this.getAbsoluteParent(null!=e?e:b),g=f?b:this.getCompositeParent(g);C=null!=e?e:this.duplicateCells([g],
-!1)[0];null!=e&&this.addCells([C],this.model.getParent(b),null,null,null,!0);var l=this.getCellGeometry(C);null!=l&&(null!=e&&"1"==urlParams.sketch&&(c==mxConstants.DIRECTION_NORTH?m.y-=l.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=l.height/2:m.x=c==mxConstants.DIRECTION_WEST?m.x-l.width/2:m.x+l.width/2),l.x=m.x-l.width/2,l.y=m.y-l.height/2);null!=u?(this.addCells([C],u,null,null,null,!0),v=null):D&&!f&&this.addCells([C],this.getDefaultParent(),null,null,null,!0)}var q=mxEvent.isControlDown(k)&&
-mxEvent.isShiftDown(k)&&D||null==v&&f?null:this.insertEdge(this.model.getParent(b),null,"",b,C,this.createCurrentEdgeStyle());if(null!=q&&this.connectionHandler.insertBeforeSource){var n=null;for(e=b;null!=e.parent&&null!=e.geometry&&e.geometry.relative&&e.parent!=q.parent;)e=this.model.getParent(e);null!=e&&null!=e.parent&&e.parent==q.parent&&(n=e.parent.getIndex(e),this.model.add(e.parent,q,n))}null==v&&null!=C&&null!=b.parent&&f&&c==mxConstants.DIRECTION_WEST&&(n=b.parent.getIndex(b),this.model.add(b.parent,
-C,n));null!=q&&H.push(q);null==v&&null!=C&&H.push(C);null==C&&null!=q&&q.geometry.setTerminalPoint(m,!1);null!=q&&this.fireEvent(new mxEventObject("cellsInserted","cells",[q]))}finally{this.model.endUpdate()}}if(null!=d)d(H);else return H});if(null==t||null!=C||!D||null==v&&f)return g(C);t(l+m.x*e,n+m.y*e,g)};
+this.getCells(0,0,0,0,null,null,p,null,!0):null;var q=this.view.getState(b),v=null,u=null;if(null!=p){p=p.reverse();for(var y=0;y<p.length;y++)if(!this.isCellLocked(p[y])&&!this.model.isEdge(p[y])&&p[y]!=b)if(!this.model.isAncestor(b,p[y])&&this.isContainer(p[y])&&(null==v||p[y]==this.model.getParent(b)))v=p[y];else if(null==u&&this.isCellConnectable(p[y])&&!this.model.isAncestor(p[y],b)&&!this.isSwimlane(p[y])){var x=this.view.getState(p[y]);null==q||null==x||mxUtils.intersects(q,x)||(u=p[y])}}var D=
+!mxEvent.isShiftDown(k)||mxEvent.isControlDown(k)||g;D&&("1"!=urlParams.sketch||g)&&(c==mxConstants.DIRECTION_NORTH?m.y-=b.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=b.geometry.height/2:m.x=c==mxConstants.DIRECTION_WEST?m.x-b.geometry.width/2:m.x+b.geometry.width/2);var I=[],B=u,u=v;g=mxUtils.bind(this,function(e){if(null==t||null!=e||null==u&&f){this.model.beginUpdate();try{if(null==B&&D){var g=this.getAbsoluteParent(null!=e?e:b),g=f?b:this.getCompositeParent(g);B=null!=e?e:this.duplicateCells([g],
+!1)[0];null!=e&&this.addCells([B],this.model.getParent(b),null,null,null,!0);var l=this.getCellGeometry(B);null!=l&&(null!=e&&"1"==urlParams.sketch&&(c==mxConstants.DIRECTION_NORTH?m.y-=l.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=l.height/2:m.x=c==mxConstants.DIRECTION_WEST?m.x-l.width/2:m.x+l.width/2),l.x=m.x-l.width/2,l.y=m.y-l.height/2);null!=v?(this.addCells([B],v,null,null,null,!0),u=null):D&&!f&&this.addCells([B],this.getDefaultParent(),null,null,null,!0)}var q=mxEvent.isControlDown(k)&&
+mxEvent.isShiftDown(k)&&D||null==u&&f?null:this.insertEdge(this.model.getParent(b),null,"",b,B,this.createCurrentEdgeStyle());if(null!=q&&this.connectionHandler.insertBeforeSource){var n=null;for(e=b;null!=e.parent&&null!=e.geometry&&e.geometry.relative&&e.parent!=q.parent;)e=this.model.getParent(e);null!=e&&null!=e.parent&&e.parent==q.parent&&(n=e.parent.getIndex(e),this.model.add(e.parent,q,n))}null==u&&null!=B&&null!=b.parent&&f&&c==mxConstants.DIRECTION_WEST&&(n=b.parent.getIndex(b),this.model.add(b.parent,
+B,n));null!=q&&I.push(q);null==u&&null!=B&&I.push(B);null==B&&null!=q&&q.geometry.setTerminalPoint(m,!1);null!=q&&this.fireEvent(new mxEventObject("cellsInserted","cells",[q]))}finally{this.model.endUpdate()}}if(null!=d)d(I);else return I});if(null==t||null!=B||!D||null==u&&f)return g(B);t(l+m.x*e,n+m.y*e,g)};
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};
@@ -2486,25 +2486,25 @@ q.x+=c,e||(q.width-=c,null!=q.alternateBounds&&(q.alternateBounds.width-=c)),k.s
TableLayout.prototype.isVertexIgnored=function(b){return!this.graph.getModel().isVertex(b)||!this.graph.isCellVisible(b)};TableLayout.prototype.getSize=function(b,c){for(var e=0,k=0;k<b.length;k++)if(!this.isVertexIgnored(b[k])){var g=this.graph.getCellGeometry(b[k]);null!=g&&(e+=c?g.width:g.height)}return e};
TableLayout.prototype.getRowLayout=function(b,c){for(var e=this.graph.model.getChildCells(b,!0),k=this.graph.getActualStartSize(b,!0),g=this.getSize(e,!0),p=c-k.x-k.width,t=[],k=k.x,d=0;d<e.length;d++){var f=this.graph.getCellGeometry(e[d]);null!=f&&(k+=(null!=f.alternateBounds?f.alternateBounds.width:f.width)*p/g,t.push(Math.round(k)))}return t};
TableLayout.prototype.layoutRow=function(b,c,e,k,g){var p=this.graph.getModel(),t=p.getChildCells(b,!0);b=this.graph.getActualStartSize(b,!0);var d=null,f=b.x,l=0;null!=c&&(c=c.slice(),c.splice(0,0,b.x));for(var m=0;m<t.length;m++){var q=this.graph.getCellGeometry(t[m]);null!=q&&(q=q.clone(),q.y=b.y,q.height=e-b.y-b.height,null!=c?(q.x=c[m],q.width=c[m+1]-q.x,m==t.length-1&&m<c.length-2&&(q.width=k-q.x-b.x-b.width)):(q.x=f,f+=q.width,m==t.length-1?q.width=k-b.x-b.width-l:l+=q.width),q.alternateBounds=
-new mxRectangle(0,0,q.width,q.height),p.setGeometry(t[m],q));var n=!0,u=g[m];null!=u&&null!=u.geo&&null!=u.rowspan&&1<u.rowspan&&(u.geo.height+=null!=q.alternateBounds?q.alternateBounds.height:q.height,n=!1,u.rowspan--);null!=d&&null!=d.geo&&null!=d.colspan&&1<d.colspan&&(d.geo.width+=null!=q.alternateBounds?q.alternateBounds.width:q.width,n=!1,d.colspan--);p.setVisible(t[m],n);n=this.graph.getCurrentCellStyle(t[m],!0);q={style:n,cell:t[m],geo:q};if(null!=n){if(null==d||1>d.colspan)q.colspan=parseInt(n.colspan||
-0),d=q;null==u||1>u.rowspan?(q.rowspan=parseInt(n.rowspan||0),g[m]=q):null!=u&&(q.colspan=parseInt(u.style.colspan||0))}}return l};
+new mxRectangle(0,0,q.width,q.height),p.setGeometry(t[m],q));var n=!0,v=g[m];null!=v&&null!=v.geo&&null!=v.rowspan&&1<v.rowspan&&(v.geo.height+=null!=q.alternateBounds?q.alternateBounds.height:q.height,n=!1,v.rowspan--);null!=d&&null!=d.geo&&null!=d.colspan&&1<d.colspan&&(d.geo.width+=null!=q.alternateBounds?q.alternateBounds.width:q.width,n=!1,d.colspan--);p.setVisible(t[m],n);n=this.graph.getCurrentCellStyle(t[m],!0);q={style:n,cell:t[m],geo:q};if(null!=n){if(null==d||1>d.colspan)q.colspan=parseInt(n.colspan||
+0),d=q;null==v||1>v.rowspan?(q.rowspan=parseInt(n.rowspan||0),g[m]=q):null!=v&&(q.colspan=parseInt(v.style.colspan||0))}}return l};
TableLayout.prototype.execute=function(b){if(null!=b){var c=this.graph.getActualStartSize(b,!0),e=this.graph.getCellGeometry(b),k=this.graph.getCellStyle(b),g="1"==mxUtils.getValue(k,"resizeLastRow","0"),p="1"==mxUtils.getValue(k,"resizeLast","0"),k="1"==mxUtils.getValue(k,"fixedRows","0"),t=this.graph.getModel(),d=0;t.beginUpdate();try{var f=e.height-c.y-c.height,l=e.width-c.x-c.width,m=t.getChildCells(b,!0),q=this.getSize(m,!1);if(0<f&&0<l&&0<m.length&&0<q){if(g){var n=this.graph.getCellGeometry(m[m.length-
-1]);null!=n&&(n=n.clone(),n.height=f-q+n.height,t.setGeometry(m[m.length-1],n))}for(var u=p?null:this.getRowLayout(m[0],l),v=[],y=c.y,x=0;x<m.length;x++)n=this.graph.getCellGeometry(m[x]),null!=n&&(n=n.clone(),n.x=c.x,n.width=l,n.y=Math.round(y),y=g||k?y+n.height:y+n.height/q*f,n.height=Math.round(y)-n.y,t.setGeometry(m[x],n)),d=Math.max(d,this.layoutRow(m[x],u,n.height,l,v));k&&f<q&&(e=e.clone(),e.height=y+c.height,t.setGeometry(b,e));p&&l<d+Graph.minTableColumnWidth&&(e=e.clone(),e.width=d+c.width+
+1]);null!=n&&(n=n.clone(),n.height=f-q+n.height,t.setGeometry(m[m.length-1],n))}for(var v=p?null:this.getRowLayout(m[0],l),u=[],y=c.y,x=0;x<m.length;x++)n=this.graph.getCellGeometry(m[x]),null!=n&&(n=n.clone(),n.x=c.x,n.width=l,n.y=Math.round(y),y=g||k?y+n.height:y+n.height/q*f,n.height=Math.round(y)-n.y,t.setGeometry(m[x],n)),d=Math.max(d,this.layoutRow(m[x],v,n.height,l,u));k&&f<q&&(e=e.clone(),e.height=y+c.height,t.setGeometry(b,e));p&&l<d+Graph.minTableColumnWidth&&(e=e.clone(),e.width=d+c.width+
c.x+Graph.minTableColumnWidth,t.setGeometry(b,e))}}finally{t.endUpdate()}}};
(function(){var b=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){b.apply(this,arguments);this.validEdges=[]};var c=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(b,d){d=null!=d?d:!0;var f=this.getState(b);null!=f&&d&&this.graph.model.isEdge(f.cell)&&null!=f.style&&1!=f.style[mxConstants.STYLE_CURVED]&&!f.invalid&&this.updateLineJumps(f)&&this.graph.cellRenderer.redraw(f,!1,this.isRendering());f=c.apply(this,
arguments);null!=f&&d&&this.graph.model.isEdge(f.cell)&&null!=f.style&&1!=f.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(f);return f};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 g=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=
function(b){g.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 f=null!=b.routedPoints,c=null;if(null!=d&&null!=this.validEdges&&"none"!==mxUtils.getValue(b.style,"jumpStyle","none")){for(var e=function(d,f,e){var g=new mxPoint(f,e);g.type=d;c.push(g);g=null!=b.routedPoints?b.routedPoints[c.length-1]:null;return null==g||g.type!=
-d||g.x!=f||g.y!=e},g=.5*this.scale,f=!1,c=[],l=0;l<d.length-1;l++){for(var k=d[l+1],m=d[l],p=[],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 f=e(0,m.x,m.y)||f,M=0;M<this.validEdges.length;M++){var E=this.validEdges[M],K=E.absolutePoints;if(null!=K&&mxUtils.intersects(b,E)&&"1"!=E.style.noJump)for(E=0;E<K.length-1;E++){for(var B=K[E+1],L=K[E],t=K[E+2];E<K.length-2&&mxUtils.ptSegDistSq(L.x,L.y,t.x,t.y,B.x,B.y)<1*this.scale*this.scale;)B=
-t,E++,t=K[E+2];t=mxUtils.intersection(m.x,m.y,k.x,k.y,L.x,L.y,B.x,B.y);if(null!=t&&(Math.abs(t.x-m.x)>g||Math.abs(t.y-m.y)>g)&&(Math.abs(t.x-k.x)>g||Math.abs(t.y-k.y)>g)&&(Math.abs(t.x-L.x)>g||Math.abs(t.y-L.y)>g)&&(Math.abs(t.x-B.x)>g||Math.abs(t.y-B.y)>g)){B=t.x-m.x;L=t.y-m.y;t={distSq:B*B+L*L,x:t.x,y:t.y};for(B=0;B<p.length;B++)if(p[B].distSq>t.distSq){p.splice(B,0,t);t=null;break}null==t||0!=p.length&&p[p.length-1].x===t.x&&p[p.length-1].y===t.y||p.push(t)}}}for(E=0;E<p.length;E++)f=e(1,p[E].x,
-p[E].y)||f}t=d[d.length-1];f=e(0,t.x,t.y)||f}b.routedPoints=c;return f}return!1};var p=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(b,d,f){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)p.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,g=mxUtils.getValue(this.style,"jumpStyle","none"),l=!0,k=null,m=null,q=[],n=null;b.begin();for(var t=0;t<this.state.routedPoints.length;t++){var E=this.state.routedPoints[t],K=new mxPoint(E.x/this.scale,E.y/this.scale);0==t?K=d[0]:t==this.state.routedPoints.length-1&&(K=d[d.length-1]);var B=!1;if(null!=k&&1==E.type){var L=this.state.routedPoints[t+1],E=L.x/this.scale-K.x,L=L.y/this.scale-K.y,E=E*E+L*L;null==n&&(n=new mxPoint(K.x-k.x,K.y-k.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);E>e*e&&0<m&&(E=k.x-K.x,L=k.y-K.y,E=E*E+L*L,E>e*e&&(B=new mxPoint(K.x-n.x,K.y-n.y),E=new mxPoint(K.x+n.x,K.y+n.y),q.push(B),this.addPoints(b,q,f,c,!1,null,l),q=0>Math.round(n.x)||0==Math.round(n.x)&&0>=Math.round(n.y)?1:-1,l=!1,"sharp"==g?(b.lineTo(B.x-n.y*q,B.y+n.x*q),b.lineTo(E.x-n.y*q,E.y+n.x*q),b.lineTo(E.x,E.y)):"line"==g?(b.moveTo(B.x+n.y*q,B.y-n.x*q),b.lineTo(B.x-n.y*q,B.y+n.x*q),b.moveTo(E.x-n.y*q,E.y+n.x*q),b.lineTo(E.x+n.y*
-q,E.y-n.x*q),b.moveTo(E.x,E.y)):"arc"==g?(q*=1.3,b.curveTo(B.x-n.y*q,B.y+n.x*q,E.x-n.y*q,E.y+n.x*q,E.x,E.y)):(b.moveTo(E.x,E.y),l=!0),q=[E],B=!0))}else n=null;B||(q.push(K),k=K)}this.addPoints(b,q,f,c,!1,null,l);b.stroke()}};var t=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(b,d,f,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||g.x!=f||g.y!=e},g=.5*this.scale,f=!1,c=[],l=0;l<d.length-1;l++){for(var k=d[l+1],m=d[l],p=[],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 f=e(0,m.x,m.y)||f,M=0;M<this.validEdges.length;M++){var F=this.validEdges[M],K=F.absolutePoints;if(null!=K&&mxUtils.intersects(b,F)&&"1"!=F.style.noJump)for(F=0;F<K.length-1;F++){for(var C=K[F+1],L=K[F],t=K[F+2];F<K.length-2&&mxUtils.ptSegDistSq(L.x,L.y,t.x,t.y,C.x,C.y)<1*this.scale*this.scale;)C=
+t,F++,t=K[F+2];t=mxUtils.intersection(m.x,m.y,k.x,k.y,L.x,L.y,C.x,C.y);if(null!=t&&(Math.abs(t.x-m.x)>g||Math.abs(t.y-m.y)>g)&&(Math.abs(t.x-k.x)>g||Math.abs(t.y-k.y)>g)&&(Math.abs(t.x-L.x)>g||Math.abs(t.y-L.y)>g)&&(Math.abs(t.x-C.x)>g||Math.abs(t.y-C.y)>g)){C=t.x-m.x;L=t.y-m.y;t={distSq:C*C+L*L,x:t.x,y:t.y};for(C=0;C<p.length;C++)if(p[C].distSq>t.distSq){p.splice(C,0,t);t=null;break}null==t||0!=p.length&&p[p.length-1].x===t.x&&p[p.length-1].y===t.y||p.push(t)}}}for(F=0;F<p.length;F++)f=e(1,p[F].x,
+p[F].y)||f}t=d[d.length-1];f=e(0,t.x,t.y)||f}b.routedPoints=c;return f}return!1};var p=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(b,d,f){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)p.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,g=mxUtils.getValue(this.style,"jumpStyle","none"),l=!0,k=null,m=null,q=[],n=null;b.begin();for(var t=0;t<this.state.routedPoints.length;t++){var F=this.state.routedPoints[t],K=new mxPoint(F.x/this.scale,F.y/this.scale);0==t?K=d[0]:t==this.state.routedPoints.length-1&&(K=d[d.length-1]);var C=!1;if(null!=k&&1==F.type){var L=this.state.routedPoints[t+1],F=L.x/this.scale-K.x,L=L.y/this.scale-K.y,F=F*F+L*L;null==n&&(n=new mxPoint(K.x-k.x,K.y-k.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);F>e*e&&0<m&&(F=k.x-K.x,L=k.y-K.y,F=F*F+L*L,F>e*e&&(C=new mxPoint(K.x-n.x,K.y-n.y),F=new mxPoint(K.x+n.x,K.y+n.y),q.push(C),this.addPoints(b,q,f,c,!1,null,l),q=0>Math.round(n.x)||0==Math.round(n.x)&&0>=Math.round(n.y)?1:-1,l=!1,"sharp"==g?(b.lineTo(C.x-n.y*q,C.y+n.x*q),b.lineTo(F.x-n.y*q,F.y+n.x*q),b.lineTo(F.x,F.y)):"line"==g?(b.moveTo(C.x+n.y*q,C.y-n.x*q),b.lineTo(C.x-n.y*q,C.y+n.x*q),b.moveTo(F.x-n.y*q,F.y+n.x*q),b.lineTo(F.x+n.y*
+q,F.y-n.x*q),b.moveTo(F.x,F.y)):"arc"==g?(q*=1.3,b.curveTo(C.x-n.y*q,C.y+n.x*q,F.x-n.y*q,F.y+n.x*q,F.x,F.y)):(b.moveTo(F.x,F.y),l=!0),q=[F],C=!0))}else n=null;C||(q.push(K),k=K)}this.addPoints(b,q,f,c,!1,null,l);b.stroke()}};var t=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(b,d,f,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,f,c,e){if(null==f||null==b||"1"!=f.style.snapToPoint&&"1"!=b.style.snapToPoint)d.apply(this,arguments);else{f=this.getTerminalPort(b,f,e);var g=this.getNextPoint(b,c,e),l=this.graph.isOrthogonal(b),k=mxUtils.toRadians(Number(f.style[mxConstants.STYLE_ROTATION]||"0")),m=new mxPoint(f.getCenterX(),f.getCenterY());if(0!=k)var q=Math.cos(-k),n=Math.sin(-k),g=mxUtils.getRotatedPoint(g,q,n,m);q=parseFloat(b.style[mxConstants.STYLE_PERIMETER_SPACING]||
0);q+=parseFloat(b.style[e?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);g=this.getPerimeterPoint(f,g,0==k&&l,q);0!=k&&(q=Math.cos(k),n=Math.sin(k),g=mxUtils.getRotatedPoint(g,q,n,m));b.setAbsoluteTerminalPoint(this.snapToAnchorPoint(b,f,c,e,g),e)}};mxGraphView.prototype.snapToAnchorPoint=function(b,d,f,c,e){if(null!=d&&null!=b){b=this.graph.getAllConnectionConstraints(d);c=f=null;if(null!=b)for(var g=0;g<b.length;g++){var l=this.graph.getConnectionPoint(d,
b[g]);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)f=l,c=k}}null!=f&&(e=f)}return e};var f=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(b,d,c){var e=f.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=
-mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,null);if(null!=d&&"string"===typeof d&&"stencil("==d.substring(0,8))try{var f=d.substring(8,d.length-1),c=mxUtils.parseXml(Graph.decompress(f));return new mxShape(new mxStencil(c.documentElement))}catch(v){null!=window.console&&console.log("Error in shape: "+v)}}return l.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];
+mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,null);if(null!=d&&"string"===typeof d&&"stencil("==d.substring(0,8))try{var f=d.substring(8,d.length-1),c=mxUtils.parseXml(Graph.decompress(f));return new mxShape(new mxStencil(c.documentElement))}catch(u){null!=window.console&&console.log("Error in shape: "+u)}}return l.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];
mxStencilRegistry.filesLoaded={};
mxStencilRegistry.getStencil=function(b){var c=mxStencilRegistry.stencils[b];if(null==c&&null==mxCellRenderer.defaultShapes[b]&&mxStencilRegistry.dynamicLoading){var e=mxStencilRegistry.getBasenameForStencil(b);if(null!=e){c=mxStencilRegistry.libraries[e];if(null!=c){if(null==mxStencilRegistry.packages[e]){for(var k=0;k<c.length;k++){var g=c[k];if(!mxStencilRegistry.filesLoaded[g])if(mxStencilRegistry.filesLoaded[g]=!0,".xml"==g.toLowerCase().substring(g.length-4,g.length))mxStencilRegistry.loadStencilSet(g,
null);else if(".js"==g.toLowerCase().substring(g.length-3,g.length))try{if(mxStencilRegistry.allowEval){var p=mxUtils.load(g);null!=p&&200<=p.getStatus()&&299>=p.getStatus()&&eval.call(window,p.getText())}}catch(t){null!=window.console&&console.log("error in getStencil:",b,e,c,g,t)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);c=mxStencilRegistry.stencils[b]}}return c};
@@ -2527,24 +2527,24 @@ d,f,c){d=null!=d?d:0;f=null!=f?f:0;var e=new mxCodec(b.ownerDocument),g=new mxGr
q&&(b=this.moveCells(q,d,f,!1,this.getDefaultParent()),l[g.getChildAt(g.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),f=this.snap(f));var n=this.getBoundingBoxFromGeometry(b,!0);null!=n&&this.moveCells(b,d-n.x,f-n.y)}}finally{this.model.endUpdate()}}return b};Graph.prototype.encodeCells=function(b){for(var d={},f=this.cloneCells(b,null,d),c=new mxDictionary,e=0;e<b.length;e++)c.put(b[e],
!0);for(var g=new mxCodec,l=new mxGraphModel,k=l.getChildAt(l.getRoot(),0),e=0;e<f.length;e++){l.add(k,f[e]);var m=this.view.getState(b[e]);if(null!=m){var q=this.getCellGeometry(f[e]);null!=q&&q.relative&&!this.model.isEdge(b[e])&&null==c.get(this.model.getParent(b[e]))&&(q.offset=null,q.relative=!1,q.x=m.x/m.view.scale-m.view.translate.x,q.y=m.y/m.view.scale-m.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(d,this.createCellLookup(b)),f);return g.encode(l)};Graph.prototype.isSwimlane=
function(b,d){if(null!=b&&this.model.getParent(b)!=this.model.getRoot()&&!this.model.isEdge(b)){var f=this.getCurrentCellStyle(b,d)[mxConstants.STYLE_SHAPE];return f==mxConstants.SHAPE_SWIMLANE||"table"==f}return!1};var d=Graph.prototype.isExtendParent;Graph.prototype.isExtendParent=function(b){var f=this.model.getParent(b);if(null!=f){var c=this.getCurrentCellStyle(f);if(null!=c.expand)return"0"!=c.expand}return d.apply(this,arguments)&&(null==f||!this.isTable(f))};var f=Graph.prototype.splitEdge;
-Graph.prototype.splitEdge=function(b,d,c,e,g,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=f.apply(this,[b,d,c,e,g,l,k,m]);this.model.setValue(c,"");var q=this.getChildCells(c,!0);for(d=0;d<q.length;d++){var n=this.getCellGeometry(q[d]);null!=n&&n.relative&&0<n.x&&this.model.remove(q[d])}var G=this.getChildCells(b,!0);for(d=0;d<G.length;d++)n=this.getCellGeometry(G[d]),null!=n&&n.relative&&
-0>=n.x&&this.model.remove(G[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 oa=this.model.getTerminal(c,!1);if(null!=oa){var v=this.getCurrentCellStyle(oa);null!=v&&"1"==v.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[b]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,
+Graph.prototype.splitEdge=function(b,d,c,e,g,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=f.apply(this,[b,d,c,e,g,l,k,m]);this.model.setValue(c,"");var q=this.getChildCells(c,!0);for(d=0;d<q.length;d++){var n=this.getCellGeometry(q[d]);null!=n&&n.relative&&0<n.x&&this.model.remove(q[d])}var H=this.getChildCells(b,!0);for(d=0;d<H.length;d++)n=this.getCellGeometry(H[d]),null!=n&&n.relative&&
+0>=n.x&&this.model.remove(H[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 ba=this.model.getTerminal(c,!1);if(null!=ba){var u=this.getCurrentCellStyle(ba);null!=u&&"1"==u.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[b]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,
null,[b]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[c]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[c]))}}finally{this.model.endUpdate()}return c};var l=Graph.prototype.selectCell;Graph.prototype.selectCell=function(b,d,f){if(d||f)l.apply(this,arguments);else{var c=this.getSelectionCell(),e=null,g=[],k=mxUtils.bind(this,function(d){if(null!=this.view.getState(d)&&(this.model.isVertex(d)||this.model.isEdge(d)))if(g.push(d),d==c)e=g.length-1;else if(b&&null==c&&0<g.length||null!=e&&
b&&g.length>e||!b&&0<e)return;for(var f=0;f<this.model.getChildCount(d);f++)k(this.model.getChildAt(d,f))});k(this.model.root);0<g.length&&(e=null!=e?mxUtils.mod(e+(b?1:-1),g.length):0,this.setSelectionCell(g[e]))}};Graph.prototype.swapUmlLifelines=function(b,d){var f=!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)){f=e.clone();e=c.clone();e.x=f.x;e.y=f.y;f.x=c.x;f.y=c.y;this.model.beginUpdate();try{this.model.setGeometry(d,f),this.model.setGeometry(b[0],e)}finally{this.model.endUpdate()}f=!0}}return f};var m=Graph.prototype.moveCells;Graph.prototype.moveCells=function(b,d,f,c,e,g,l){if(!c&&this.swapUmlLifelines(b,e))return b;l=null!=l?l:{};if(this.isTable(e)){for(var k=[],q=0;q<b.length;q++)this.isTable(b[q])?k=k.concat(this.model.getChildCells(b[q],!0).reverse()):k.push(b[q]);b=k}this.model.beginUpdate();
-try{k=[];for(q=0;q<b.length;q++)if(null!=e&&this.isTableRow(b[q])){var n=this.model.getParent(b[q]),G=this.getCellGeometry(b[q]);this.isTable(n)&&k.push(n);if(null!=n&&null!=G&&this.isTable(n)&&this.isTable(e)&&(c||n!=e)){if(!c){var v=this.getCellGeometry(n);null!=v&&(v=v.clone(),v.height-=G.height,this.model.setGeometry(n,v))}v=this.getCellGeometry(e);null!=v&&(v=v.clone(),v.height+=G.height,this.model.setGeometry(e,v));var oa=this.model.getChildCells(e,!0);if(0<oa.length){b[q]=c?this.cloneCell(b[q]):
-b[q];var u=this.model.getChildCells(b[q],!0),p=this.model.getChildCells(oa[0],!0),A=p.length-u.length;if(0<A)for(var x=0;x<A;x++){var J=this.cloneCell(u[u.length-1]);null!=J&&(J.value="",this.model.add(b[q],J))}else if(0>A)for(x=0;x>A;x--)this.model.remove(u[u.length+x-1]);u=this.model.getChildCells(b[q],!0);for(x=0;x<p.length;x++){var P=this.getCellGeometry(p[x]),ua=this.getCellGeometry(u[x]);null!=P&&null!=ua&&(ua=ua.clone(),ua.width=P.width,this.model.setGeometry(u[x],ua))}}}}for(var t=m.apply(this,
-arguments),q=0;q<k.length;q++)!c&&this.model.contains(k[q])&&0==this.model.getChildCount(k[q])&&this.model.remove(k[q]);c&&this.updateCustomLinks(this.createCellMapping(l,this.createCellLookup(b)),t)}finally{this.model.endUpdate()}return t};var q=Graph.prototype.removeCells;Graph.prototype.removeCells=function(b,d){var f=[];this.model.beginUpdate();try{for(var c=0;c<b.length;c++)if(this.isTableCell(b[c])){var e=this.model.getParent(b[c]),g=this.model.getParent(e);1==this.model.getChildCount(e)&&1==
+try{k=[];for(q=0;q<b.length;q++)if(null!=e&&this.isTableRow(b[q])){var n=this.model.getParent(b[q]),H=this.getCellGeometry(b[q]);this.isTable(n)&&k.push(n);if(null!=n&&null!=H&&this.isTable(n)&&this.isTable(e)&&(c||n!=e)){if(!c){var u=this.getCellGeometry(n);null!=u&&(u=u.clone(),u.height-=H.height,this.model.setGeometry(n,u))}u=this.getCellGeometry(e);null!=u&&(u=u.clone(),u.height+=H.height,this.model.setGeometry(e,u));var ba=this.model.getChildCells(e,!0);if(0<ba.length){b[q]=c?this.cloneCell(b[q]):
+b[q];var A=this.model.getChildCells(b[q],!0),v=this.model.getChildCells(ba[0],!0),p=v.length-A.length;if(0<p)for(var x=0;x<p;x++){var J=this.cloneCell(A[A.length-1]);null!=J&&(J.value="",this.model.add(b[q],J))}else if(0>p)for(x=0;x>p;x--)this.model.remove(A[A.length+x-1]);A=this.model.getChildCells(b[q],!0);for(x=0;x<v.length;x++){var t=this.getCellGeometry(v[x]),E=this.getCellGeometry(A[x]);null!=t&&null!=E&&(E=E.clone(),E.width=t.width,this.model.setGeometry(A[x],E))}}}}for(var y=m.apply(this,
+arguments),q=0;q<k.length;q++)!c&&this.model.contains(k[q])&&0==this.model.getChildCount(k[q])&&this.model.remove(k[q]);c&&this.updateCustomLinks(this.createCellMapping(l,this.createCellLookup(b)),y)}finally{this.model.endUpdate()}return y};var q=Graph.prototype.removeCells;Graph.prototype.removeCells=function(b,d){var f=[];this.model.beginUpdate();try{for(var c=0;c<b.length;c++)if(this.isTableCell(b[c])){var e=this.model.getParent(b[c]),g=this.model.getParent(e);1==this.model.getChildCount(e)&&1==
this.model.getChildCount(g)?0>mxUtils.indexOf(b,g)&&0>mxUtils.indexOf(f,g)&&f.push(g):this.labelChanged(b[c],"")}else{if(this.isTableRow(b[c])&&(g=this.model.getParent(b[c]),0>mxUtils.indexOf(b,g)&&0>mxUtils.indexOf(f,g))){for(var l=this.model.getChildCells(g,!0),k=0,m=0;m<l.length;m++)0<=mxUtils.indexOf(b,l[m])&&k++;k==l.length&&f.push(g)}f.push(b[c])}f=q.apply(this,[f,d])}finally{this.model.endUpdate()}return f};Graph.prototype.updateCustomLinks=function(b,d,f){f=null!=f?f:new Graph;for(var c=0;c<
d.length;c++)null!=d[c]&&f.updateCustomLinksForCell(b,d[c],f)};Graph.prototype.updateCustomLinksForCell=function(b,d){this.doUpdateCustomLinksForCell(b,d);for(var f=this.model.getChildCount(d),c=0;c<f;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 f=mxUtils.getValue(b.style,"points",null);if(null!=f){var c=[];try{for(var e=JSON.parse(f),f=0;f<e.length;f++){var g=
-e[f];c.push(new mxConnectionConstraint(new mxPoint(g[0],g[1]),2<g.length?"0"!=g[2]:!0,null,3<g.length?g[3]:0,4<g.length?g[4]:0))}}catch(ra){}return c}if(null!=b.shape&&null!=b.shape.bounds){g=b.shape.direction;e=b.shape.bounds;f=b.shape.scale;c=e.width/f;e=e.height/f;if(g==mxConstants.DIRECTION_NORTH||g==mxConstants.DIRECTION_SOUTH)g=c,c=e,e=g;f=b.shape.getConstraints(b.style,c,e);if(null!=f)return f;if(null!=b.shape.stencil&&null!=b.shape.stencil.constraints)return b.shape.stencil.constraints;if(null!=
+e[f];c.push(new mxConnectionConstraint(new mxPoint(g[0],g[1]),2<g.length?"0"!=g[2]:!0,null,3<g.length?g[3]:0,4<g.length?g[4]:0))}}catch(xa){}return c}if(null!=b.shape&&null!=b.shape.bounds){g=b.shape.direction;e=b.shape.bounds;f=b.shape.scale;c=e.width/f;e=e.height/f;if(g==mxConstants.DIRECTION_NORTH||g==mxConstants.DIRECTION_SOUTH)g=c,c=e,e=g;f=b.shape.getConstraints(b.style,c,e);if(null!=f)return f;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),f=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||f++)}return 0<f||this.isContainer(b)};Graph.prototype.isValidDropTarget=function(b,d,f){for(var c=this.getCurrentCellStyle(b),e=!0,g=!0,l=0;l<d.length&&g;l++)e=e&&this.isTable(d[l]),g=g&&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)||g||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 f=this.model.getParent(b);null!=f&&(f=this.layoutManager.getLayout(f),null!=f&&f.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 f=this.getModel(),c=[];f.beginUpdate();try{for(var e=0;e<b.length;e++){var g=b[e];if(f.isEdge(g)){var l=f.getTerminal(g,!0),k=f.getTerminal(g,!1);f.setTerminal(g,k,!0);f.setTerminal(g,l,!1);var m=f.getGeometry(g);if(null!=m){m=m.clone();null!=m.points&&m.points.reverse();var q=m.getTerminalPoint(!0),n=m.getTerminalPoint(!1);
-m.setTerminalPoint(q,!1);m.setTerminalPoint(n,!0);f.setGeometry(g,m);var G=this.view.getState(g),v=this.view.getState(l),u=this.view.getState(k);if(null!=G){var oa=null!=v?this.getConnectionConstraint(G,v,!0):null,p=null!=u?this.getConnectionConstraint(G,u,!1):null;this.setConnectionConstraint(g,l,!0,p);this.setConnectionConstraint(g,k,!1,oa);var A=mxUtils.getValue(G.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(G.style,
-mxConstants.STYLE_TARGET_PERIMETER_SPACING),[g]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,A,[g])}c.push(g)}}else if(f.isVertex(g)&&(m=this.getCellGeometry(g),null!=m)){if(!(this.isTable(g)||this.isTableRow(g)||this.isTableCell(g)||this.isSwimlane(g))){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;f.setGeometry(g,m)}var J=this.view.getState(g);if(null!=J){var t=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,
-mxConstants.DIRECTION_NORTH],I=mxUtils.getValue(J.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,t[mxUtils.mod(mxUtils.indexOf(t,I)+(d?-1:1),t.length)],[g])}c.push(g)}}}finally{f.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 n=Graph.prototype.processChange;
+m.setTerminalPoint(q,!1);m.setTerminalPoint(n,!0);f.setGeometry(g,m);var H=this.view.getState(g),u=this.view.getState(l),ba=this.view.getState(k);if(null!=H){var A=null!=u?this.getConnectionConstraint(H,u,!0):null,v=null!=ba?this.getConnectionConstraint(H,ba,!1):null;this.setConnectionConstraint(g,l,!0,v);this.setConnectionConstraint(g,k,!1,A);var p=mxUtils.getValue(H.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(H.style,
+mxConstants.STYLE_TARGET_PERIMETER_SPACING),[g]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,p,[g])}c.push(g)}}else if(f.isVertex(g)&&(m=this.getCellGeometry(g),null!=m)){if(!(this.isTable(g)||this.isTableRow(g)||this.isTableCell(g)||this.isSwimlane(g))){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;f.setGeometry(g,m)}var J=this.view.getState(g);if(null!=J){var E=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,
+mxConstants.DIRECTION_NORTH],t=mxUtils.getValue(J.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,E[mxUtils.mod(mxUtils.indexOf(E,t)+(d?-1:1),E.length)],[g])}c.push(g)}}}finally{f.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 n=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 f=this.view.getState(d);null!=f&&null!=f.shape&&(this.view.invalidate(d),f.shape.bounds=null)}n.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 f=this.view.getState(b[d]);null!=f&&null!=f.shape&&null!=f.shape.stencil&&this.stencilHasPlaceholders(f.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 f=b.ownerDocument.createElement(null!=
d?d:"span"),c=Array.prototype.slice.call(b.attributes);attr=c.pop();)f.setAttribute(attr.nodeName,attr.nodeValue);f.innerHTML=b.innerHTML;b.parentNode.replaceChild(f,b)};Graph.prototype.processElements=function(b,d){if(null!=b)for(var f=b.getElementsByTagName("*"),c=0;c<f.length;c++)d(f[c])};Graph.prototype.updateLabelElements=function(b,d,f){b=null!=b?b:this.getSelectionCells();for(var c=document.createElement("div"),e=0;e<b.length;e++)if(this.isHtmlLabel(b[e])){var g=this.convertValueToString(b[e]);
@@ -2552,8 +2552,8 @@ if(null!=g&&0<g.length){c.innerHTML=g;for(var l=c.getElementsByTagName(null!=f?f
e.hasAttribute(c)){this.setAttributeForCell(e,c,d);break}e=this.model.getParent(e)}var g=b.value.cloneNode(!0);Graph.translateDiagram&&null!=Graph.diagramLanguage&&g.hasAttribute("label_"+Graph.diagramLanguage)?g.setAttribute("label_"+Graph.diagramLanguage,d):g.setAttribute("label",d);d=g}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(b){if(null!=b){for(var d=new mxDictionary,f=0;f<b.length;f++)d.put(b[f],!0);for(var c=
[],f=0;f<b.length;f++){var e=this.model.getParent(b[f]);null==e||d.get(e)||(d.put(e,!0),c.push(e))}for(f=0;f<c.length;f++)if(e=this.view.getState(c[f]),null!=e&&(this.model.isEdge(e.cell)||this.model.isVertex(e.cell))&&this.isCellDeletable(e.cell)&&this.isTransparentState(e)){for(var g=!0,l=0;l<this.model.getChildCount(e.cell)&&g;l++)d.get(this.model.getChildAt(e.cell,l))||(g=!1);g&&b.push(e.cell)}}mxGraph.prototype.cellsRemoved.apply(this,arguments)};Graph.prototype.removeCellsAfterUngroup=function(b){for(var d=
[],f=0;f<b.length;f++)this.isCellDeletable(b[f])&&this.isTransparentState(this.view.getState(b[f]))&&d.push(b[f]);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 f="tooltip";Graph.translateDiagram&&null!=Graph.diagramLanguage&&mxUtils.isNode(b.value)&&b.value.hasAttribute("tooltip_"+Graph.diagramLanguage)&&(f="tooltip_"+Graph.diagramLanguage);
-this.setAttributeForCell(b,f,d)};Graph.prototype.getAttributeForCell=function(b,d,f){b=null!=b.value&&"object"===typeof b.value?b.value.getAttribute(d):null;return null!=b?b:f};Graph.prototype.setAttributeForCell=function(b,d,f){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!=f?c.setAttribute(d,f):c.removeAttribute(d);this.model.setValue(b,c)};var u=Graph.prototype.getDropTarget;
-Graph.prototype.getDropTarget=function(b,d,f,c){this.getModel();if(mxEvent.isAltDown(d))return null;for(var e=0;e<b.length;e++){var g=this.model.getParent(b[e]);if(this.model.isEdge(g)&&0>mxUtils.indexOf(b,g))return null}for(var g=u.apply(this,arguments),l=!0,e=0;e<b.length&&l;e++)l=l&&this.isTableRow(b[e]);l&&(this.isTableCell(g)&&(g=this.model.getParent(g)),this.isTableRow(g)&&(g=this.model.getParent(g)),this.isTable(g)||(g=null));return g};Graph.prototype.click=function(b){mxGraph.prototype.click.call(this,
+this.setAttributeForCell(b,f,d)};Graph.prototype.getAttributeForCell=function(b,d,f){b=null!=b.value&&"object"===typeof b.value?b.value.getAttribute(d):null;return null!=b?b:f};Graph.prototype.setAttributeForCell=function(b,d,f){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!=f?c.setAttribute(d,f):c.removeAttribute(d);this.model.setValue(b,c)};var v=Graph.prototype.getDropTarget;
+Graph.prototype.getDropTarget=function(b,d,f,c){this.getModel();if(mxEvent.isAltDown(d))return null;for(var e=0;e<b.length;e++){var g=this.model.getParent(b[e]);if(this.model.isEdge(g)&&0>mxUtils.indexOf(b,g))return null}for(var g=v.apply(this,arguments),l=!0,e=0;e<b.length&&l;e++)l=l&&this.isTableRow(b[e]);l&&(this.isTableCell(g)&&(g=this.model.getParent(g)),this.isTableRow(g)&&(g=this.model.getParent(g)),this.isTable(g)||(g=null));return g};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 f=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,f.x,f.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(f.x,f.y))),d=this.addText(f.x,f.y,c))}return d};Graph.prototype.getInsertPoint=function(){var b=this.getGridSize(),
d=this.container.scrollLeft/this.view.scale-this.view.translate.x,f=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),f=Math.max(f,c.y*e.height);return new mxPoint(this.snap(d+b),this.snap(f+b))};Graph.prototype.getFreeInsertPoint=function(){var b=this.view,d=this.getGraphBounds(),f=this.getInsertPoint(),c=this.snap(Math.round(Math.max(f.x,d.x/b.scale-b.translate.x+(0==d.width?2*this.gridSize:
@@ -2568,19 +2568,19 @@ null!=d.sourceState||!l.intersects(this.currentState,d.getGraphX(),d.getGraphY()
(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!=f&&!c.isConsumed()&&Math.abs(this.scrollLeft-l.container.scrollLeft)<g&&Math.abs(this.scrollTop-l.container.scrollTop)<g&&Math.abs(this.startX-c.getGraphX())<g&&Math.abs(this.startY-
c.getGraphY())<g&&f(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 f=0;f<b.length;f++)this.isTableCell(b[f])&&(b[f]=this.model.getParent(b[f]));b=this.model.getTopmostCells(b);var c=this.getModel(),e=this.gridSize,g=[];c.beginUpdate();try{for(var l={},k=this.createCellLookup(b),m=this.cloneCells(b,!1,l,!0),f=0;f<b.length;f++){var q=c.getParent(b[f]);
-if(null!=q){var n=this.moveCells([m[f]],e,e,!1)[0];g.push(n);if(d)c.add(q,m[f]);else{var G=q.getIndex(b[f]);c.add(q,m[f],G+1)}if(this.isTable(q)){var v=this.getCellGeometry(m[f]),u=this.getCellGeometry(q);null!=v&&null!=u&&(u=u.clone(),u.height+=v.height,c.setGeometry(q,u))}}else g.push(m[f])}this.updateCustomLinks(this.createCellMapping(l,k),m,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",m))}finally{c.endUpdate()}return g};Graph.prototype.insertImage=function(b,d,f){if(null!=
+if(null!=q){var n=this.moveCells([m[f]],e,e,!1)[0];g.push(n);if(d)c.add(q,m[f]);else{var H=q.getIndex(b[f]);c.add(q,m[f],H+1)}if(this.isTable(q)){var u=this.getCellGeometry(m[f]),A=this.getCellGeometry(q);null!=u&&null!=A&&(A=A.clone(),A.height+=u.height,c.setGeometry(q,A))}}else g.push(m[f])}this.updateCustomLinks(this.createCellMapping(l,k),m,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",m))}finally{c.endUpdate()}return g};Graph.prototype.insertImage=function(b,d,f){if(null!=
b&&null!=this.cellEditor.textarea){for(var c=this.cellEditor.textarea.getElementsByTagName("img"),e=[],g=0;g<c.length;g++)e.push(c[g]);document.execCommand("insertimage",!1,b);b=this.cellEditor.textarea.getElementsByTagName("img");if(b.length==e.length+1)for(g=b.length-1;0<=g;g--)if(0==g||b[g]!=e[g-1]){b[g].setAttribute("width",d);b[g].setAttribute("height",f);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"),f=[],c=0;c<d.length;c++)f.push(d[c]);document.execCommand("createlink",!1,mxUtils.trim(b));d=this.cellEditor.textarea.getElementsByTagName("a");if(d.length==f.length+1)for(c=d.length-1;0<=c;c--)if(d[c]!=f[c-1]){for(d=d[c].getElementsByTagName("a");0<d.length;){for(f=d[0].parentNode;null!=d[0].firstChild;)f.insertBefore(d[0].firstChild,d[0]);f.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),f=this.getCurrentCellStyle(b);return!this.isTableCell(b)&&!this.isTableRow(b)&&(d||"0"!=mxUtils.getValue(f,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==f[mxConstants.STYLE_WHITE_SPACE])};Graph.prototype.distributeCells=function(b,d){null==d&&(d=this.getSelectionCells());if(null!=d&&1<d.length){for(var f=[],c=null,e=null,g=0;g<d.length;g++)if(this.getModel().isVertex(d[g])){var l=this.view.getState(d[g]);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;f.push(l)}}if(2<f.length){f.sort(function(d,f){return b?d.x-f.x:d.y-f.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)/(f.length-1),c=e,g=1;g<f.length-1;g++){var q=this.view.getState(this.model.getParent(f[g].cell)),n=this.getCellGeometry(f[g].cell),c=c+m;null!=n&&null!=q&&(n=n.clone(),b?n.x=Math.round(c-n.width/2)-q.origin.x:n.y=Math.round(c-n.height/
2)-q.origin.y,this.getModel().setGeometry(f[g].cell,n))}}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,f,c,e,g,l,k,m,q,n,G,v,u){var p=null;if(null!=u)for(p=new mxDictionary,n=0;n<u.length;n++)p.put(u[n],!0);if(u=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;f=null!=f?f:0;e=null!=e?e:!0;g=null!=g?g:!0;l=null!=l?l:!0;q=null!=q?q:!1;var A="page"==v?this.view.getBackgroundPageBounds():g&&null==p||c||"diagram"==v?this.getGraphBounds():
-this.getBoundingBox(this.getSelectionCells()),x=this.view.scale;"diagram"==v&&null!=this.backgroundImage&&(A=mxRectangle.fromRectangle(A),A.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==A)throw Error(mxResources.get("drawingEmpty"));var J=mxUtils.createXmlDocument(),t=null!=J.createElementNS?J.createElementNS(mxConstants.NS_SVG,"svg"):J.createElement("svg");
-null!=b&&(null!=t.style?t.style.backgroundColor=b:t.setAttribute("style","background-color:"+b));null==J.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 I=Math.max(1,Math.ceil(A.width*b)+2*f)+(q&&0==f?5:0),y=Math.max(1,Math.ceil(A.height*b)+2*f)+(q&&0==f?5:0);t.setAttribute("version","1.1");t.setAttribute("width",I+"px");t.setAttribute("height",
-y+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+I+" "+y);J.appendChild(t);var C=null!=J.createElementNS?J.createElementNS(mxConstants.NS_SVG,"g"):J.createElement("g");t.appendChild(C);var B=this.createSvgCanvas(C);B.foOffset=e?-.5:0;B.textOffset=e?-.5:0;B.imageOffset=e?-.5:0;B.translate(Math.floor(f/d-A.x/x),Math.floor(f/d-A.y/x));var oa=document.createElement("div"),Z=B.getAlternateText;B.getAlternateText=function(b,d,f,c,e,g,l,k,m,q,n,z,ea){if(null!=g&&0<this.state.fontSize)try{mxUtils.isNode(g)?
-g=g.innerText:(oa.innerHTML=g,g=mxUtils.extractTextWithWhitespace(oa.childNodes));for(var Wa=Math.ceil(2*c/this.state.fontSize),sa=[],Ca=0,G=0;(0==Wa||Ca<Wa)&&G<g.length;){var Ua=g.charCodeAt(G);if(10==Ua||13==Ua){if(0<Ca)break}else sa.push(g.charAt(G)),255>Ua&&Ca++;G++}sa.length<g.length&&1<g.length-sa.length&&(g=mxUtils.trim(sa.join(""))+"...");return g}catch(gb){return Z.apply(this,arguments)}else return Z.apply(this,arguments)};var N=this.backgroundImage;if(null!=N){d=x/d;var aa=this.view.translate,
-P=new mxRectangle((N.x+aa.x)*d,(N.y+aa.y)*d,N.width*d,N.height*d);mxUtils.intersects(A,P)&&B.image(N.x+aa.x,N.y+aa.y,N.width,N.height,N.src,!0)}B.scale(b);B.textEnabled=l;k=null!=k?k:this.createSvgImageExport();var ua=k.drawCellState,X=k.getLinkForCellState;k.getLinkForCellState=function(b,d){var f=X.apply(this,arguments);return null==f||b.view.graph.isCustomLink(f)?null:f};k.getLinkTargetForCellState=function(b,d){return b.view.graph.getLinkTargetForCell(b.cell)};k.drawCellState=function(b,d){for(var f=
-b.view.graph,c=null!=p?p.get(b.cell):f.isCellSelected(b.cell),e=f.model.getParent(b.cell);!(g&&null==p||c)&&null!=e;)c=null!=p?p.get(e):f.isCellSelected(e),e=f.model.getParent(e);(g&&null==p||c)&&ua.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),B);this.updateSvgLinks(t,m,!0);this.addForeignObjectWarning(B,t);return t}finally{u&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(b,d){if("0"!=urlParams["svg-warning"]&&
+b.width,b.height));return d};Graph.prototype.getBackgroundImageObject=function(b){return b};Graph.prototype.getSvg=function(b,d,f,c,e,g,l,k,m,q,n,H,u,A){var v=null;if(null!=A)for(v=new mxDictionary,n=0;n<A.length;n++)v.put(A[n],!0);if(A=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;f=null!=f?f:0;e=null!=e?e:!0;g=null!=g?g:!0;l=null!=l?l:!0;q=null!=q?q:!1;var p="page"==u?this.view.getBackgroundPageBounds():g&&null==v||c||"diagram"==u?this.getGraphBounds():
+this.getBoundingBox(this.getSelectionCells()),x=this.view.scale;"diagram"==u&&null!=this.backgroundImage&&(p=mxRectangle.fromRectangle(p),p.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==p)throw Error(mxResources.get("drawingEmpty"));var J=mxUtils.createXmlDocument(),E=null!=J.createElementNS?J.createElementNS(mxConstants.NS_SVG,"svg"):J.createElement("svg");
+null!=b&&(null!=E.style?E.style.backgroundColor=b:E.setAttribute("style","background-color:"+b));null==J.createElementNS?(E.setAttribute("xmlns",mxConstants.NS_SVG),E.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):E.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);b=d/x;var t=Math.max(1,Math.ceil(p.width*b)+2*f)+(q&&0==f?5:0),y=Math.max(1,Math.ceil(p.height*b)+2*f)+(q&&0==f?5:0);E.setAttribute("version","1.1");E.setAttribute("width",t+"px");E.setAttribute("height",
+y+"px");E.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+t+" "+y);J.appendChild(E);var B=null!=J.createElementNS?J.createElementNS(mxConstants.NS_SVG,"g"):J.createElement("g");E.appendChild(B);var C=this.createSvgCanvas(B);C.foOffset=e?-.5:0;C.textOffset=e?-.5:0;C.imageOffset=e?-.5:0;C.translate(Math.floor(f/d-p.x/x),Math.floor(f/d-p.y/x));var ba=document.createElement("div"),aa=C.getAlternateText;C.getAlternateText=function(b,d,f,c,e,g,l,k,m,q,n,H,z){if(null!=g&&0<this.state.fontSize)try{mxUtils.isNode(g)?
+g=g.innerText:(ba.innerHTML=g,g=mxUtils.extractTextWithWhitespace(ba.childNodes));for(var qa=Math.ceil(2*c/this.state.fontSize),Ta=[],sa=0,ya=0;(0==qa||sa<qa)&&ya<g.length;){var Va=g.charCodeAt(ya);if(10==Va||13==Va){if(0<sa)break}else Ta.push(g.charAt(ya)),255>Va&&sa++;ya++}Ta.length<g.length&&1<g.length-Ta.length&&(g=mxUtils.trim(Ta.join(""))+"...");return g}catch(gb){return aa.apply(this,arguments)}else return aa.apply(this,arguments)};var T=this.backgroundImage;if(null!=T){d=x/d;var N=this.view.translate,
+W=new mxRectangle((T.x+N.x)*d,(T.y+N.y)*d,T.width*d,T.height*d);mxUtils.intersects(p,W)&&C.image(T.x+N.x,T.y+N.y,T.width,T.height,T.src,!0)}C.scale(b);C.textEnabled=l;k=null!=k?k:this.createSvgImageExport();var G=k.drawCellState,va=k.getLinkForCellState;k.getLinkForCellState=function(b,d){var f=va.apply(this,arguments);return null==f||b.view.graph.isCustomLink(f)?null:f};k.getLinkTargetForCellState=function(b,d){return b.view.graph.getLinkTargetForCell(b.cell)};k.drawCellState=function(b,d){for(var f=
+b.view.graph,c=null!=v?v.get(b.cell):f.isCellSelected(b.cell),e=f.model.getParent(b.cell);!(g&&null==v||c)&&null!=e;)c=null!=v?v.get(e):f.isCellSelected(e),e=f.model.getParent(e);(g&&null==v||c)&&G.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),C);this.updateSvgLinks(E,m,!0);this.addForeignObjectWarning(C,E);return E}finally{A&&(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 f=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 g=b.createElement("text");g.setAttribute("text-anchor","middle");g.setAttribute("font-size","10px");g.setAttribute("x","50%");g.setAttribute("y","100%");mxUtils.write(g,Graph.foreignObjectWarningText);f.appendChild(c);e.appendChild(g);f.appendChild(e);d.appendChild(f)}};Graph.prototype.updateSvgLinks=function(b,d,f){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):f&&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());
@@ -2588,7 +2588,7 @@ return b};Graph.prototype.getSelectedEditingElement=function(){for(var b=this.ge
function(b,d,f){for(;null!=b&&!(0<=mxUtils.indexOf(d,b.nodeName));){if(b==f)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 f=document.createRange();f.selectNode(b);d.removeAllRanges();d.addRange(f)}}else(d=document.selection)&&"Control"!=d.type&&(b=d.createRange(),b.collapse(!0),f=d.createRange(),f.setEndPoint("StartToStart",b),f.select())};Graph.prototype.deleteCells=function(b,
d){var f=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 g=this.getCellGeometry(b[c]),l=this.getCellGeometry(e);null!=g&&null!=l&&(l=l.clone(),l.height-=g.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(f=[],c=0;c<k.length;c++)this.model.contains(k[c])&&(this.model.isVertex(k[c])||this.model.isEdge(k[c]))&&
f.push(k[c])}return f};Graph.prototype.insertTableColumn=function(b,d){var f=this.getModel();f.beginUpdate();try{var c=b,e=0;if(this.isTableCell(b))var g=f.getParent(b),c=f.getParent(g),e=mxUtils.indexOf(f.getChildCells(g,!0),b);else this.isTableRow(b)?c=f.getParent(b):b=f.getChildCells(c,!0)[0],d||(e=f.getChildCells(b,!0).length-1);for(var l=f.getChildCells(c,!0),k=Graph.minTableColumnWidth,g=0;g<l.length;g++){var m=f.getChildCells(l[g],!0)[e],q=f.cloneCell(m,!1),n=this.getCellGeometry(q);q.value=
-null;if(null!=n){var k=n.width,G=this.getCellGeometry(l[g]);null!=G&&(n.height=G.height)}f.add(l[g],q,e+(d?0:1))}var v=this.getCellGeometry(c);null!=v&&(v=v.clone(),v.width+=k,f.setGeometry(c,v))}finally{f.endUpdate()}};Graph.prototype.deleteLane=function(b){var d=this.getModel();d.beginUpdate();try{var f=null,f="stackLayout"==this.getCurrentCellStyle(b).childLayout?b:d.getParent(b),c=d.getChildCells(f,!0);0==c.length?d.remove(f):(f==b&&(b=c[c.length-1]),d.remove(b))}finally{d.endUpdate()}};Graph.prototype.insertLane=
+null;if(null!=n){var k=n.width,H=this.getCellGeometry(l[g]);null!=H&&(n.height=H.height)}f.add(l[g],q,e+(d?0:1))}var u=this.getCellGeometry(c);null!=u&&(u=u.clone(),u.width+=k,f.setGeometry(c,u))}finally{f.endUpdate()}};Graph.prototype.deleteLane=function(b){var d=this.getModel();d.beginUpdate();try{var f=null,f="stackLayout"==this.getCurrentCellStyle(b).childLayout?b:d.getParent(b),c=d.getChildCells(f,!0);0==c.length?d.remove(f):(f==b&&(b=c[c.length-1]),d.remove(b))}finally{d.endUpdate()}};Graph.prototype.insertLane=
function(b,d){var f=this.getModel();f.beginUpdate();try{var c=null,e=b;if("stackLayout"==this.getCurrentCellStyle(e).childLayout)var c=e,g=f.getChildCells(c,!0),e=g[d?0:g.length-1];else c=f.getParent(e);var l=c.getIndex(e),e=f.cloneCell(e,!1);e.value=null;f.add(c,e,l+(d?0:1))}finally{f.endUpdate()}};Graph.prototype.insertTableRow=function(b,d){var f=this.getModel();f.beginUpdate();try{var c=b,e=b;if(this.isTableCell(b))e=f.getParent(b),c=f.getParent(e);else if(this.isTableRow(b))c=f.getParent(b);
else var g=f.getChildCells(c,!0),e=g[d?0:g.length-1];var l=f.getChildCells(e,!0),k=c.getIndex(e),e=f.cloneCell(e,!1);e.value=null;var m=this.getCellGeometry(e);if(null!=m){for(g=0;g<l.length;g++){b=f.cloneCell(l[g],!1);e.insert(b);b.value=null;var q=this.getCellGeometry(b);null!=q&&(q.height=m.height)}f.add(c,e,k+(d?0:1));var n=this.getCellGeometry(c);null!=n&&(n=n.clone(),n.height+=m.height,f.setGeometry(c,n))}}finally{f.endUpdate()}};Graph.prototype.deleteTableColumn=function(b){var d=this.getModel();
d.beginUpdate();try{var f=b,c=b;this.isTableCell(b)&&(c=d.getParent(b));this.isTableRow(c)&&(f=d.getParent(c));var e=d.getChildCells(f,!0);if(0==e.length)d.remove(f);else{this.isTableRow(c)||(c=e[0]);var g=d.getChildCells(c,!0);if(1>=g.length)d.remove(f);else{var l=g.length-1;this.isTableCell(b)&&(l=mxUtils.indexOf(g,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 q=this.getCellGeometry(f);null!=q&&(q=q.clone(),
@@ -2603,104 +2603,102 @@ function(b,d){this.popupMenuHandler.hideMenu()});var b=this.updateMouseEvent;thi
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(),
f=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));f.insertNode(b);f.setStartAfter(b);f.setEndAfter(b);d.removeAllRanges();d.addRange(f)};mxCellEditor.prototype.alignText=function(b,d){var f=null!=d&&mxEvent.isShiftDown(d);if(f||null!=window.getSelection&&null!=window.getSelection().containsNode){var c=!0;this.graph.processElements(this.textarea,function(b){f||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=[],f=0,c=b.rangeCount;f<c;++f)d.push(b.getRangeAt(f));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,f=b.length;d<f;++d)sel.addRange(b[d])}else document.selection&&b.select&&b.select()}catch(da){}};var v=mxCellRenderer.prototype.postConfigureShape;mxCellRenderer.prototype.postConfigureShape=function(b){var d=mxUtils.hex2rgba(b.view.graph.defaultPageBackgroundColor),f=mxUtils.hex2rgba(b.view.graph.defaultForegroundColor);this.resolveDefaultColor(b,"fill",b.shape,d);this.resolveDefaultColor(b,"color",
-b.text,f);this.resolveDefaultColor(b,"border",b.text,f);this.resolveDefaultColor(b,"stroke",b.shape,f);this.resolveDefaultColor(b,"laneFill",b.shape,d);this.resolveDefaultColor(b,"background",b.text,d);this.resolveDefaultColor(b,"imageBorder",b.shape,f);this.resolveDefaultColor(b,"imageBackground",b.shape,d);v.apply(this,arguments)};mxCellRenderer.prototype.resolveDefaultColor=function(b,d,f,c){null!=f&&"default"==f[d]&&null!=c&&(f[d]=c)};var y=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=
-function(b){null!=b.text&&(b.text.replaceLinefeeds="0"!=mxUtils.getValue(b.style,"nl2Br","1"));y.apply(this,arguments)};var x=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(b,d){this.isKeepFocusEvent(b)||!mxEvent.isAltDown(b.getEvent())?x.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(b){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var D=mxCellEditor.prototype.startEditing;
-mxCellEditor.prototype.startEditing=function(b,d){b=this.graph.getStartEditingCell(b,d);D.apply(this,arguments);var f=this.graph.view.getState(b);this.textarea.className=null!=f&&1==f.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(b);var f=this.graph.getModel().getParent(b),c=this.graph.getCellGeometry(b);if(this.graph.getModel().isEdge(f)&&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 H=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(b){function d(b,f){f.originalNode=b;b=b.firstChild;for(var c=f.firstChild;null!=b&&null!=c;)d(b,c),b=b.nextSibling,c=c.nextSibling;return f}function f(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):(f(b,d),d=d.nextSibling);b=e}}function c(b){for(var d=
-b.firstChild;null!=d;){var f=d.nextSibling;c(d);d=f}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)}H.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]>")?f(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"),f=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),g=(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=g?"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=f;this.resize()}};var C=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 f=b.view.scale;this.bounds=mxRectangle.fromRectangle(b);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*f;this.bounds.height=60*f;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)/f)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/f)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/f)+(this.textarea.offsetHeight-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*f);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/f)+(this.textarea.offsetWidth-this.textarea.clientWidth)+
-"px",this.bounds.width=parseInt(this.textarea.style.width)*f);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("+f+","+f+")")}else this.textarea.style.height="",this.textarea.style.overflow="",C.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 f=this.graph.getEditingValue(b.cell,d);"1"==mxUtils.getValue(b.style,"nl2Br","1")&&(f=f.replace(/\n/g,"<br/>"));return f=this.graph.sanitizeHtml(f,!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 F=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(b){this.codeViewMode&&this.toggleViewMode();F.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(oa){}};var M=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(b,d){this.graph.getModel().beginUpdate();
-try{M.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.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 f=this.graph.view.translate,e=this.graph.view.scale;d=this.roundLength((this.bounds.x+this.currentDx)/e-f.x);f=this.roundLength((this.bounds.y+this.currentDy)/e-f.y);e=this.graph.view.unit;this.hint.innerHTML=
-c(d,e)+", "+c(f,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 E=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell=function(b,d){E.apply(this,arguments);var f=this.graph.getCellStyle(b);if(null==
-f.childLayout){var c=this.graph.model.getParent(b),e=null!=c?this.graph.getCellGeometry(c):null;if(null!=e&&(f=this.graph.getCellStyle(c),"stackLayout"==f.childLayout)){var g=parseFloat(mxUtils.getValue(f,"stackBorder",mxStackLayout.prototype.border)),f="1"==mxUtils.getValue(f,"horizontalStack","1"),l=this.graph.getActualStartSize(c),e=e.clone();f?e.height=d.height+l.y+l.height+2*g:e.width=d.width+l.x+l.width+2*g;this.graph.model.setGeometry(c,e)}}};var K=mxSelectionCellsHandler.prototype.getHandledSelectionCells;
-mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function b(b){f.get(b)||(f.put(b,!0),e.push(b))}for(var d=K.apply(this,arguments),f=new mxDictionary,c=this.graph.model,e=[],g=0;g<d.length;g++){var l=d[g];this.graph.isTableCell(l)?b(c.getParent(c.getParent(l))):this.graph.isTableRow(l)&&b(c.getParent(l));b(l)}return e};var B=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(b){var d=B.apply(this,arguments);d.stroke=
-"#C0C0C0";d.strokewidth=1;return d};var L=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(b){var d=L.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 O=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return O.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 ca=mxVertexHandler.prototype.isParentHighlightVisible;
-mxVertexHandler.prototype.isParentHighlightVisible=function(){return ca.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var N=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(b){return b.tableHandle||N.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var b=0;this.graph.isTableRow(this.state.cell)?
-b=1:this.graph.isTableCell(this.state.cell)&&(b=2);return b};var Q=mxVertexHandler.prototype.getSelectionBorderBounds;mxVertexHandler.prototype.getSelectionBorderBounds=function(){return Q.apply(this,arguments).grow(-this.getSelectionBorderInset())};var W=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var b=W.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var d=this.graph,f=d.model,c=this.state,e=this.selectionBorder,g=this;null==
-b&&(b=[]);var l=d.view.getCellStates(f.getChildCells(this.state.cell,!0));if(0<l.length){for(var k=f.getChildCells(l[0].cell,!0),f=0;f<k.length;f++)mxUtils.bind(this,function(f){var l=d.view.getState(k[f]),m=d.getCellGeometry(k[f]),q=null!=m.alternateBounds?m.alternateBounds:m;null==l&&(l=new mxCellState(d.view,k[f],d.getCellStyle(k[f])),l.x=c.x+m.x*d.view.scale,l.y=c.y+m.y*d.view.scale,l.width=q.width*d.view.scale,l.height=q.height*d.view.scale,l.updateCachedBounds());var m=f<k.length-1?k[f+1]:null,
-m=null!=m?d.getCellGeometry(m):null,n=null!=m&&null!=m.alternateBounds?m.alternateBounds:m,m=new mxLine(new mxRectangle,mxConstants.NONE,1,!0);m.isDashed=e.isDashed;m.svgStrokeTolerance++;l=new mxHandle(l,"col-resize",null,m);l.tableHandle=!0;var G=0;l.shape.node.parentNode.insertBefore(l.shape.node,l.shape.node.parentNode.firstChild);l.redraw=function(){if(null!=this.shape){var b=d.getActualStartSize(c.cell);this.shape.stroke=0==G?mxConstants.NONE:e.stroke;this.shape.bounds.x=this.state.x+(q.width+
-G)*this.graph.view.scale;this.shape.bounds.width=1;this.shape.bounds.y=c.y+(f==k.length-1?0:b.y*this.graph.view.scale);this.shape.bounds.height=c.height-(f==k.length-1?0:(b.height+b.y)*this.graph.view.scale);this.shape.redraw()}};var v=!1;l.setPosition=function(b,d,f){G=Math.max(Graph.minTableColumnWidth-q.width,d.x-b.x-q.width);v=mxEvent.isShiftDown(f.getEvent());null==n||v||(G=Math.min(G,n.width-Graph.minTableColumnWidth))};l.execute=function(b){if(0!=G)d.setTableColumnWidth(this.state.cell,G,v);
-else if(!g.blockDelayedSelection){var f=d.getCellAt(b.getGraphX(),b.getGraphY())||c.cell;d.graphHandler.selectCellForEvent(f,b)}G=0};l.positionChanged=function(){};l.reset=function(){G=0};b.push(l)})(f);for(f=0;f<l.length;f++)mxUtils.bind(this,function(f){f=l[f];var k=new mxLine(new mxRectangle,mxConstants.NONE,1);k.isDashed=e.isDashed;k.svgStrokeTolerance++;f=new mxHandle(f,"row-resize",null,k);f.tableHandle=!0;var m=0;f.shape.node.parentNode.insertBefore(f.shape.node,f.shape.node.parentNode.firstChild);
-f.redraw=function(){null!=this.shape&&null!=this.state.shape&&(this.shape.stroke=0==m?mxConstants.NONE:e.stroke,this.shape.bounds.x=this.state.x,this.shape.bounds.width=this.state.width,this.shape.bounds.y=this.state.y+this.state.height+m*this.graph.view.scale,this.shape.bounds.height=1,this.shape.redraw())};f.setPosition=function(b,d,f){m=Math.max(Graph.minTableRowHeight-b.height,d.y-b.y-b.height)};f.execute=function(b){if(0!=m)d.setTableRowHeight(this.state.cell,m,!mxEvent.isShiftDown(b.getEvent()));
-else if(!g.blockDelayedSelection){var f=d.getCellAt(b.getGraphX(),b.getGraphY())||c.cell;d.graphHandler.selectCellForEvent(f,b)}m=0};f.reset=function(){m=0};b.push(f)})(f)}}return null!=b?b.reverse():null};var G=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){G.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 f=mxUtils.createImage(Editor.rowMoveImage);f.style.position="absolute";f.style.cursor="pointer";f.style.width="7px";f.style.height=
-"4px";f.style.padding="4px 2px 4px 2px";f.rowState=d;mxEvent.addGestureListeners(f,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(f);this.graph.container.appendChild(f)}})(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 J=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var b=new mxPoint(0,0),d=this.tolerance,f=this.state.style.shape;null==mxCellRenderer.defaultShapes[f]&&mxStencilRegistry.getStencil(f);f=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!f&&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,g=e.getCenterX(),l=e.getCenterY();if(Math.abs(this.state.x-g)<e.width/2||Math.abs(this.state.y-l)<e.height/2||Math.abs(this.state.x+this.state.width-g)<e.width/2||Math.abs(this.state.y+this.state.height-l)<e.height/2){f=!0;break}}f&&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=J.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 f=this.state.view.unit;this.hint.innerHTML=c(this.roundLength(this.bounds.width/d),f)+" x "+c(this.roundLength(this.bounds.height/d),f)}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 Z=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=function(b,d){Z.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(d,f){null==this.hint&&
-(this.hint=b(),this.state.view.graph.container.appendChild(this.hint));var e=this.graph.view.translate,g=this.graph.view.scale,l=this.roundLength(f.x/g-e.x),e=this.roundLength(f.y/g-e.y),g=this.graph.view.unit;this.hint.innerHTML=c(l,g)+", "+c(e,g);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(),f.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+
-HoverIcons.prototype.arrowFill+'" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="#01bd22" stroke-width="1"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>'):
-new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><circle cx="11" cy="11" r="3" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=mxClient.IS_SVG?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):new mxImage(IMAGE_PATH+"/handle-rotate.png",16,16);mxClient.IS_SVG&&(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.terminalHandleImage=HoverIcons.prototype.terminalHandle;
-mxEdgeHandler.prototype.fixedHandleImage=HoverIcons.prototype.fixedHandle;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);mxClient.IS_SVG||((new Image).src=HoverIcons.prototype.mainHandle.src,(new Image).src=HoverIcons.prototype.fixedHandle.src,(new Image).src=HoverIcons.prototype.terminalHandle.src,(new Image).src=HoverIcons.prototype.secondaryHandle.src,(new Image).src=HoverIcons.prototype.rotationHandle.src,(new Image).src=HoverIcons.prototype.triangleUp.src,(new Image).src=HoverIcons.prototype.triangleRight.src,(new Image).src=
-HoverIcons.prototype.triangleDown.src,(new Image).src=HoverIcons.prototype.triangleLeft.src,(new Image).src=HoverIcons.prototype.refreshTarget.src,(new Image).src=HoverIcons.prototype.roundDrop.src);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(b){return!mxEvent.isShiftDown(b.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent=function(b){return!mxEvent.isShiftDown(b.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(b){return mxEvent.isMouseEvent(b.getEvent())?4:this.graph.getTolerance()};mxPanningHandler.prototype.isPanningTrigger=function(b){var d=b.getEvent();return null==
-b.getState()&&!mxEvent.isMouseEvent(d)||mxEvent.isPopupTrigger(d)&&(null==b.getState()||mxEvent.isControlDown(d)||mxEvent.isShiftDown(d))};var I=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(b,d){I.apply(this,arguments);mxEvent.isTouchEvent(d.getEvent())&&this.graph.isCellSelected(d.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(b){var d=b.getEvent();return mxEvent.isLeftMouseButton(d)&&
-(this.useLeftButtonForPanning&&null==b.getState()||mxEvent.isControlDown(d)&&!mxEvent.isShiftDown(d))||this.usePopupTrigger&&mxEvent.isPopupTrigger(d)};mxRubberband.prototype.isSpaceEvent=function(b){return this.graph.isEnabled()&&!this.graph.isCellLocked(this.graph.getDefaultParent())&&mxEvent.isControlDown(b.getEvent())&&mxEvent.isShiftDown(b.getEvent())&&mxEvent.isAltDown(b.getEvent())};mxRubberband.prototype.cancelled=!1;mxRubberband.prototype.cancel=function(){this.isActive()&&(this.cancelled=
-!0,this.reset())};mxRubberband.prototype.mouseUp=function(b,d){if(this.cancelled)this.cancelled=!1,d.consume();else{var f=null!=this.div&&"none"!=this.div.style.display,c=null,e=null,g=null,l=null;null!=this.first&&null!=this.currentX&&null!=this.currentY&&(c=this.first.x,e=this.first.y,g=(this.currentX-c)/this.graph.view.scale,l=(this.currentY-e)/this.graph.view.scale,mxEvent.isAltDown(d.getEvent())||(g=this.graph.snap(g),l=this.graph.snap(l),this.graph.isGridEnabled()||(Math.abs(g)<this.graph.tolerance&&
-(g=0),Math.abs(l)<this.graph.tolerance&&(l=0))));this.reset();if(f){if(this.isSpaceEvent(d)){this.graph.model.beginUpdate();try{for(var k=this.graph.getCellsBeyond(c,e,this.graph.getDefaultParent(),!0,!0),f=0;f<k.length;f++)if(this.graph.isCellMovable(k[f])){var m=this.graph.view.getState(k[f]),q=this.graph.getCellGeometry(k[f]);null!=m&&null!=q&&(q=q.clone(),q.translate(g,l),this.graph.model.setGeometry(k[f],q))}}finally{this.graph.model.endUpdate()}}else g=new mxRectangle(this.x,this.y,this.width,
-this.height),this.graph.selectRegion(g,d.getEvent());d.consume()}}};mxRubberband.prototype.mouseMove=function(b,d){if(!d.isConsumed()&&null!=this.first){var f=mxUtils.getScrollOrigin(this.graph.container),c=mxUtils.getOffset(this.graph.container);f.x-=c.x;f.y-=c.y;var c=d.getX()+f.x,f=d.getY()+f.y,e=this.first.x-c,g=this.first.y-f,l=this.graph.tolerance;if(null!=this.div||Math.abs(e)>l||Math.abs(g)>l)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(c,f),this.isSpaceEvent(d)?
-(c=this.x+this.width,f=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=f-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 X=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);X.apply(this,
-arguments)};var aa=(new Date).getTime(),la=0,ga=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(b,d,f,c){ga.apply(this,arguments);f!=this.currentTerminalState?(aa=(new Date).getTime(),la=0):la=(new Date).getTime()-aa;this.currentTerminalState=f};var ka=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(b){return null!=this.currentTerminalState&&b.getState()==this.currentTerminalState&&2E3<la||(null==this.currentTerminalState||
-"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&ka.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(b,d){var f=null!=b&&0==b,c=this.state.getVisibleTerminalState(f),e=null!=b&&(0==b||b>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==b)?this.graph.getConnectionConstraint(this.state,c,f):null,f=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(f),e):null)?this.fixedHandleImage:null!=e&&
-null!=c?this.terminalHandleImage:this.handleImage;if(null!=f)return f=new mxImageShape(new mxRectangle(0,0,f.width,f.height),f.src),f.preserveImageAspect=!1,f;f=mxConstants.HANDLE_SIZE;this.preferHtml&&--f;return new mxRectangleShape(new mxRectangle(0,0,f,f),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var pa=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(b,d,f){this.handleImage=d==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:
-d==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return pa.apply(this,arguments)};var qa=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(b){if(null!=b&&1==b.length){var d=this.graph.getModel(),f=d.getParent(b[0]),c=this.graph.getCellGeometry(b[0]);if(d.isEdge(f)&&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 qa.apply(this,
-arguments)};var ma=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var b=ma.apply(this,arguments),d=[],f=0;f<b.length;f++)"1"!=mxUtils.getValue(b[f].style,"part","0")&&d.push(b[f]);return d};var Y=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(b){var d=this.graph.getModel(),f=d.getParent(b.cell),c=this.graph.getCellGeometry(b.cell);return d.isEdge(f)&&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))):Y.apply(this,arguments)};var ba=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(b,d){var f=this.graph.getModel(),c=f.getParent(this.state.cell),e=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(d)==mxEvent.ROTATION_HANDLE||!f.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 ta=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=
-function(b,d){ta.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 U=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){U.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=[];for(var d=0;4>d;d++){var f=new mxRectangleShape(new mxRectangle(0,0,6,6),"#ffffff",mxConstants.HANDLE_STROKECOLOR);f.dialect=mxConstants.DIALECT_SVG;f.init(this.graph.view.getOverlayPane());this.cornerHandles.push(f)}}var c=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(b,d){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));c()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(b,d){this.redrawHandles()});
-this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);d=this.graph.getLinkForCell(this.state.cell);f=this.graph.getLinksForState(this.state);this.updateLinkHint(d,f);if(null!=d||null!=f&&0<f.length)b=!0;b&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(d,f){try{if(null==d&&(null==f||0==f.length)||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=d||null!=f&&0<f.length){null==
-this.linkHint&&(this.linkHint=b(),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!=d&&(this.linkHint.appendChild(this.graph.createLinkForHint(d)),this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var c=document.createElement("img");
-c.setAttribute("src",Editor.editImage);c.setAttribute("title",mxResources.get("editLink"));c.setAttribute("width","11");c.setAttribute("height","11");c.style.marginLeft="10px";c.style.marginBottom="-1px";c.style.cursor="pointer";this.linkHint.appendChild(c);mxEvent.addListener(c,"click",mxUtils.bind(this,function(b){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(b)}));this.linkHint.appendChildGraph.createRemoveIcon(mxResources.get("removeIt",[mxResources.get("link")]),
-mxUtils.bind(this,function(b){this.graph.setLinkForCell(this.state.cell,null);mxEvent.consume(b)}))}if(null!=f)for(c=0;c<f.length;c++){var e=document.createElement("div");e.style.marginTop=null!=d||0<c?"6px":"0px";e.appendChild(this.graph.createLinkForHint(f[c].getAttribute("href"),mxUtils.getTextContent(f[c])));this.linkHint.appendChild(e)}}}catch(wa){}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var T=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=
-function(){T.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});var b=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(d,f){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),
-this.graph.getLinksForState(this.state));b();this.redrawHandles()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var d=this.graph.getLinkForCell(this.state.cell),f=this.graph.getLinksForState(this.state);if(null!=d||null!=f&&0<f.length)this.updateLinkHint(d,f),this.redrawHandles()};var na=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){na.apply(this,arguments);this.constraintHandler.isEnabled=
-mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var va=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){if(null!=this.moveHandles)for(var b=0;b<this.moveHandles.length;b++)this.moveHandles[b].style.left=this.moveHandles[b].rowState.x+this.moveHandles[b].rowState.width-5+"px",this.moveHandles[b].style.top=this.moveHandles[b].rowState.y+this.moveHandles[b].rowState.height/2-6+"px";if(null!=this.cornerHandles){var b=this.getSelectionBorderInset(),
+function(b){try{if(b)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var d=0,f=b.length;d<f;++d)sel.addRange(b[d])}else document.selection&&b.select&&b.select()}catch(P){}};var u=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(b){null!=b.text&&(b.text.replaceLinefeeds="0"!=mxUtils.getValue(b.style,"nl2Br","1"));u.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 f=this.graph.view.getState(b);this.textarea.className=null!=f&&1==f.style.html?"mxCellEditor geContentEditable":
+"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(b);var f=this.graph.getModel().getParent(b),c=this.graph.getCellGeometry(b);if(this.graph.getModel().isEdge(f)&&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 D=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(b){function d(b,
+f){f.originalNode=b;b=b.firstChild;for(var c=f.firstChild;null!=b&&null!=c;)d(b,c),b=b.nextSibling,c=c.nextSibling;return f}function f(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):(f(b,d),d=d.nextSibling);b=e}}function c(b){for(var d=b.firstChild;null!=d;){var f=d.nextSibling;c(d);d=f}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)}D.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]>")?f(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"),f=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),g=(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=g?"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=f;this.resize()}};var I=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 f=b.view.scale;this.bounds=mxRectangle.fromRectangle(b);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*f;this.bounds.height=60*f;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)/f)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/f)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/f)+(this.textarea.offsetHeight-
+this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*f);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/f)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*f);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("+f+","+
+f+")")}else this.textarea.style.height="",this.textarea.style.overflow="",I.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 f=this.graph.getEditingValue(b.cell,d);"1"==mxUtils.getValue(b.style,"nl2Br","1")&&(f=f.replace(/\n/g,"<br/>"));return f=this.graph.sanitizeHtml(f,!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 B=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(b){this.codeViewMode&&this.toggleViewMode();
+B.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(ba){}};var G=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(b,d){this.graph.getModel().beginUpdate();try{G.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.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 f=this.graph.view.translate,e=this.graph.view.scale;d=this.roundLength((this.bounds.x+this.currentDx)/e-f.x);f=this.roundLength((this.bounds.y+this.currentDy)/e-f.y);e=this.graph.view.unit;this.hint.innerHTML=c(d,e)+", "+c(f,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 M=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell=function(b,d){M.apply(this,arguments);var f=this.graph.getCellStyle(b);if(null==f.childLayout){var c=this.graph.model.getParent(b),e=null!=c?this.graph.getCellGeometry(c):null;if(null!=e&&(f=this.graph.getCellStyle(c),"stackLayout"==f.childLayout)){var g=parseFloat(mxUtils.getValue(f,"stackBorder",mxStackLayout.prototype.border)),f="1"==mxUtils.getValue(f,"horizontalStack",
+"1"),l=this.graph.getActualStartSize(c),e=e.clone();f?e.height=d.height+l.y+l.height+2*g:e.width=d.width+l.x+l.width+2*g;this.graph.model.setGeometry(c,e)}}};var F=mxSelectionCellsHandler.prototype.getHandledSelectionCells;mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function b(b){f.get(b)||(f.put(b,!0),e.push(b))}for(var d=F.apply(this,arguments),f=new mxDictionary,c=this.graph.model,e=[],g=0;g<d.length;g++){var l=d[g];this.graph.isTableCell(l)?b(c.getParent(c.getParent(l))):
+this.graph.isTableRow(l)&&b(c.getParent(l));b(l)}return e};var K=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(b){var d=K.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 L=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return L.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 O=mxVertexHandler.prototype.isParentHighlightVisible;mxVertexHandler.prototype.isParentHighlightVisible=function(){return O.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var da=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=
+function(b){return b.tableHandle||da.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 Q=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var b=Q.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var d=this.graph,f=d.model,c=this.state,e=this.selectionBorder,g=this;null==b&&(b=[]);var l=d.view.getCellStates(f.getChildCells(this.state.cell,!0));if(0<l.length){for(var k=f.getChildCells(l[0].cell,!0),f=0;f<k.length;f++)mxUtils.bind(this,function(f){var l=d.view.getState(k[f]),m=d.getCellGeometry(k[f]),q=null!=m.alternateBounds?
+m.alternateBounds:m;null==l&&(l=new mxCellState(d.view,k[f],d.getCellStyle(k[f])),l.x=c.x+m.x*d.view.scale,l.y=c.y+m.y*d.view.scale,l.width=q.width*d.view.scale,l.height=q.height*d.view.scale,l.updateCachedBounds());var m=f<k.length-1?k[f+1]:null,m=null!=m?d.getCellGeometry(m):null,n=null!=m&&null!=m.alternateBounds?m.alternateBounds:m,m=new mxLine(new mxRectangle,mxConstants.NONE,1,!0);m.isDashed=e.isDashed;m.svgStrokeTolerance++;l=new mxHandle(l,"col-resize",null,m);l.tableHandle=!0;var H=0;l.shape.node.parentNode.insertBefore(l.shape.node,
+l.shape.node.parentNode.firstChild);l.redraw=function(){if(null!=this.shape){var b=d.getActualStartSize(c.cell);this.shape.stroke=0==H?mxConstants.NONE:e.stroke;this.shape.bounds.x=this.state.x+(q.width+H)*this.graph.view.scale;this.shape.bounds.width=1;this.shape.bounds.y=c.y+(f==k.length-1?0:b.y*this.graph.view.scale);this.shape.bounds.height=c.height-(f==k.length-1?0:(b.height+b.y)*this.graph.view.scale);this.shape.redraw()}};var u=!1;l.setPosition=function(b,d,f){H=Math.max(Graph.minTableColumnWidth-
+q.width,d.x-b.x-q.width);u=mxEvent.isShiftDown(f.getEvent());null==n||u||(H=Math.min(H,n.width-Graph.minTableColumnWidth))};l.execute=function(b){if(0!=H)d.setTableColumnWidth(this.state.cell,H,u);else if(!g.blockDelayedSelection){var f=d.getCellAt(b.getGraphX(),b.getGraphY())||c.cell;d.graphHandler.selectCellForEvent(f,b)}H=0};l.positionChanged=function(){};l.reset=function(){H=0};b.push(l)})(f);for(f=0;f<l.length;f++)mxUtils.bind(this,function(f){f=l[f];var k=new mxLine(new mxRectangle,mxConstants.NONE,
+1);k.isDashed=e.isDashed;k.svgStrokeTolerance++;f=new mxHandle(f,"row-resize",null,k);f.tableHandle=!0;var m=0;f.shape.node.parentNode.insertBefore(f.shape.node,f.shape.node.parentNode.firstChild);f.redraw=function(){null!=this.shape&&null!=this.state.shape&&(this.shape.stroke=0==m?mxConstants.NONE:e.stroke,this.shape.bounds.x=this.state.x,this.shape.bounds.width=this.state.width,this.shape.bounds.y=this.state.y+this.state.height+m*this.graph.view.scale,this.shape.bounds.height=1,this.shape.redraw())};
+f.setPosition=function(b,d,f){m=Math.max(Graph.minTableRowHeight-b.height,d.y-b.y-b.height)};f.execute=function(b){if(0!=m)d.setTableRowHeight(this.state.cell,m,!mxEvent.isShiftDown(b.getEvent()));else if(!g.blockDelayedSelection){var f=d.getCellAt(b.getGraphX(),b.getGraphY())||c.cell;d.graphHandler.selectCellForEvent(f,b)}m=0};f.reset=function(){m=0};b.push(f)})(f)}}return null!=b?b.reverse():null};var Y=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){Y.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 f=mxUtils.createImage(Editor.rowMoveImage);f.style.position="absolute";f.style.cursor="pointer";f.style.width="7px";f.style.height="4px";f.style.padding="4px 2px 4px 2px";f.rowState=d;mxEvent.addGestureListeners(f,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(f);this.graph.container.appendChild(f)}})(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 H=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var b=new mxPoint(0,0),d=this.tolerance,f=this.state.style.shape;null==mxCellRenderer.defaultShapes[f]&&mxStencilRegistry.getStencil(f);
+f=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!f&&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,g=e.getCenterX(),l=e.getCenterY();if(Math.abs(this.state.x-g)<e.width/2||Math.abs(this.state.y-l)<e.height/2||Math.abs(this.state.x+this.state.width-g)<e.width/2||Math.abs(this.state.y+this.state.height-l)<e.height/
+2){f=!0;break}}f&&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=H.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 f=this.state.view.unit;this.hint.innerHTML=c(this.roundLength(this.bounds.width/d),f)+" x "+c(this.roundLength(this.bounds.height/d),f)}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 J=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(b,d){J.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 A=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=
+function(b,d){A.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(d,f){null==this.hint&&(this.hint=b(),this.state.view.graph.container.appendChild(this.hint));var e=this.graph.view.translate,g=this.graph.view.scale,l=this.roundLength(f.x/g-e.x),e=this.roundLength(f.y/g-e.y),g=this.graph.view.unit;this.hint.innerHTML=c(l,g)+", "+c(e,g);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(),f.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=
+mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=
+mxClient.IS_SVG?Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="#01bd22" stroke-width="1"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>'):new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><circle cx="11" cy="11" r="3" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+"/handle-terminal.png",
+17,17);HoverIcons.prototype.rotationHandle=mxClient.IS_SVG?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):new mxImage(IMAGE_PATH+"/handle-rotate.png",16,16);mxClient.IS_SVG&&(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.terminalHandleImage=HoverIcons.prototype.terminalHandle;mxEdgeHandler.prototype.fixedHandleImage=HoverIcons.prototype.fixedHandle;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);mxClient.IS_SVG||((new Image).src=HoverIcons.prototype.mainHandle.src,(new Image).src=HoverIcons.prototype.fixedHandle.src,(new Image).src=HoverIcons.prototype.terminalHandle.src,(new Image).src=HoverIcons.prototype.secondaryHandle.src,(new Image).src=
+HoverIcons.prototype.rotationHandle.src,(new Image).src=HoverIcons.prototype.triangleUp.src,(new Image).src=HoverIcons.prototype.triangleRight.src,(new Image).src=HoverIcons.prototype.triangleDown.src,(new Image).src=HoverIcons.prototype.triangleLeft.src,(new Image).src=HoverIcons.prototype.refreshTarget.src,(new Image).src=HoverIcons.prototype.roundDrop.src);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(b){return!mxEvent.isShiftDown(b.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent=function(b){return!mxEvent.isShiftDown(b.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(b){return mxEvent.isMouseEvent(b.getEvent())?4:this.graph.getTolerance()};mxPanningHandler.prototype.isPanningTrigger=function(b){var d=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(d)||mxEvent.isPopupTrigger(d)&&(null==b.getState()||mxEvent.isControlDown(d)||mxEvent.isShiftDown(d))};var aa=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(b,d){aa.apply(this,arguments);mxEvent.isTouchEvent(d.getEvent())&&this.graph.isCellSelected(d.getCell())&&
+1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(b){var d=b.getEvent();return mxEvent.isLeftMouseButton(d)&&(this.useLeftButtonForPanning&&null==b.getState()||mxEvent.isControlDown(d)&&!mxEvent.isShiftDown(d))||this.usePopupTrigger&&mxEvent.isPopupTrigger(d)};mxRubberband.prototype.isSpaceEvent=function(b){return this.graph.isEnabled()&&!this.graph.isCellLocked(this.graph.getDefaultParent())&&mxEvent.isControlDown(b.getEvent())&&
+mxEvent.isShiftDown(b.getEvent())&&mxEvent.isAltDown(b.getEvent())};mxRubberband.prototype.cancelled=!1;mxRubberband.prototype.cancel=function(){this.isActive()&&(this.cancelled=!0,this.reset())};mxRubberband.prototype.mouseUp=function(b,d){if(this.cancelled)this.cancelled=!1,d.consume();else{var f=null!=this.div&&"none"!=this.div.style.display,c=null,e=null,g=null,l=null;null!=this.first&&null!=this.currentX&&null!=this.currentY&&(c=this.first.x,e=this.first.y,g=(this.currentX-c)/this.graph.view.scale,
+l=(this.currentY-e)/this.graph.view.scale,mxEvent.isAltDown(d.getEvent())||(g=this.graph.snap(g),l=this.graph.snap(l),this.graph.isGridEnabled()||(Math.abs(g)<this.graph.tolerance&&(g=0),Math.abs(l)<this.graph.tolerance&&(l=0))));this.reset();if(f){if(this.isSpaceEvent(d)){this.graph.model.beginUpdate();try{for(var k=this.graph.getCellsBeyond(c,e,this.graph.getDefaultParent(),!0,!0),f=0;f<k.length;f++)if(this.graph.isCellMovable(k[f])){var m=this.graph.view.getState(k[f]),q=this.graph.getCellGeometry(k[f]);
+null!=m&&null!=q&&(q=q.clone(),q.translate(g,l),this.graph.model.setGeometry(k[f],q))}}finally{this.graph.model.endUpdate()}}else g=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(g,d.getEvent());d.consume()}}};mxRubberband.prototype.mouseMove=function(b,d){if(!d.isConsumed()&&null!=this.first){var f=mxUtils.getScrollOrigin(this.graph.container),c=mxUtils.getOffset(this.graph.container);f.x-=c.x;f.y-=c.y;var c=d.getX()+f.x,f=d.getY()+f.y,e=this.first.x-c,g=this.first.y-
+f,l=this.graph.tolerance;if(null!=this.div||Math.abs(e)>l||Math.abs(g)>l)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(c,f),this.isSpaceEvent(d)?(c=this.x+this.width,f=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=f-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 E=mxRubberband.prototype.reset;
+mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);E.apply(this,arguments)};var W=(new Date).getTime(),T=0,na=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(b,d,f,c){na.apply(this,arguments);f!=this.currentTerminalState?(W=(new Date).getTime(),T=0):T=(new Date).getTime()-W;this.currentTerminalState=f};var ga=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=
+function(b){return null!=this.currentTerminalState&&b.getState()==this.currentTerminalState&&2E3<T||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&ga.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(b,d){var f=null!=b&&0==b,c=this.state.getVisibleTerminalState(f),e=null!=b&&(0==b||b>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==b)?this.graph.getConnectionConstraint(this.state,
+c,f):null,f=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(f),e):null)?this.fixedHandleImage:null!=e&&null!=c?this.terminalHandleImage:this.handleImage;if(null!=f)return f=new mxImageShape(new mxRectangle(0,0,f.width,f.height),f.src),f.preserveImageAspect=!1,f;f=mxConstants.HANDLE_SIZE;this.preferHtml&&--f;return new mxRectangleShape(new mxRectangle(0,0,f,f),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var ja=mxVertexHandler.prototype.createSizerShape;
+mxVertexHandler.prototype.createSizerShape=function(b,d,f){this.handleImage=d==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:d==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return ja.apply(this,arguments)};var ma=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(b){if(null!=b&&1==b.length){var d=this.graph.getModel(),f=d.getParent(b[0]),c=this.graph.getCellGeometry(b[0]);if(d.isEdge(f)&&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 ma.apply(this,arguments)};var oa=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var b=oa.apply(this,arguments),d=[],f=0;f<b.length;f++)"1"!=mxUtils.getValue(b[f].style,"part","0")&&d.push(b[f]);return d};var ka=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(b){var d=this.graph.getModel(),
+f=d.getParent(b.cell),c=this.graph.getCellGeometry(b.cell);return d.isEdge(f)&&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))):ka.apply(this,arguments)};var Z=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(b,d){var f=this.graph.getModel(),c=f.getParent(this.state.cell),e=this.graph.getCellGeometry(this.state.cell);
+(this.getHandleForEvent(d)==mxEvent.ROTATION_HANDLE||!f.isEdge(c)||null==e||!e.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&Z.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 ca=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(b,d){ca.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 R=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(b,d){R.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 ra=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){ra.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=[];for(var d=0;4>d;d++){var f=new mxRectangleShape(new mxRectangle(0,0,6,6),"#ffffff",mxConstants.HANDLE_STROKECOLOR);f.dialect=mxConstants.DIALECT_SVG;f.init(this.graph.view.getOverlayPane());
+this.cornerHandles.push(f)}}var c=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(b,d){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));c()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,
+this.changeHandler);this.editingHandler=mxUtils.bind(this,function(b,d){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);d=this.graph.getLinkForCell(this.state.cell);f=this.graph.getLinksForState(this.state);this.updateLinkHint(d,f);if(null!=d||null!=f&&0<f.length)b=!0;b&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(d,f){try{if(null==d&&(null==f||0==f.length)||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),
+this.linkHint=null);else if(null!=d||null!=f&&0<f.length){null==this.linkHint&&(this.linkHint=b(),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!=d&&(this.linkHint.appendChild(this.graph.createLinkForHint(d)),this.graph.isEnabled()&&"function"===
+typeof this.graph.editLink)){var c=document.createElement("img");c.setAttribute("src",Editor.editImage);c.setAttribute("title",mxResources.get("editLink"));c.setAttribute("width","11");c.setAttribute("height","11");c.style.marginLeft="10px";c.style.marginBottom="-1px";c.style.cursor="pointer";this.linkHint.appendChild(c);mxEvent.addListener(c,"click",mxUtils.bind(this,function(b){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(b)}));this.linkHint.appendChildGraph.createRemoveIcon(mxResources.get("removeIt",
+[mxResources.get("link")]),mxUtils.bind(this,function(b){this.graph.setLinkForCell(this.state.cell,null);mxEvent.consume(b)}))}if(null!=f)for(c=0;c<f.length;c++){var e=document.createElement("div");e.style.marginTop=null!=d||0<c?"6px":"0px";e.appendChild(this.graph.createLinkForHint(f[c].getAttribute("href"),mxUtils.getTextContent(f[c])));this.linkHint.appendChild(e)}}}catch(ea){}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var V=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=
+function(){V.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});var b=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(d,f){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),
+this.graph.getLinksForState(this.state));b();this.redrawHandles()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var d=this.graph.getLinkForCell(this.state.cell),f=this.graph.getLinksForState(this.state);if(null!=d||null!=f&&0<f.length)this.updateLinkHint(d,f),this.redrawHandles()};var U=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){U.apply(this,arguments);this.constraintHandler.isEnabled=
+mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var la=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){if(null!=this.moveHandles)for(var b=0;b<this.moveHandles.length;b++)this.moveHandles[b].style.left=this.moveHandles[b].rowState.x+this.moveHandles[b].rowState.width-5+"px",this.moveHandles[b].style.top=this.moveHandles[b].rowState.y+this.moveHandles[b].rowState.height/2-6+"px";if(null!=this.cornerHandles){var b=this.getSelectionBorderInset(),
d=this.cornerHandles,f=d[0].bounds.height/2;d[0].bounds.x=this.state.x-d[0].bounds.width/2+b;d[0].bounds.y=this.state.y-f+b;d[0].redraw();d[1].bounds.x=d[0].bounds.x+this.state.width-2*b;d[1].bounds.y=d[0].bounds.y;d[1].redraw();d[2].bounds.x=d[0].bounds.x;d[2].bounds.y=this.state.y+this.state.height-2*b;d[2].redraw();d[3].bounds.x=d[1].bounds.x;d[3].bounds.y=d[2].bounds.y;d[3].redraw();for(b=0;b<this.cornerHandles.length;b++)this.cornerHandles[b].node.style.display=1==this.graph.getSelectionCount()?
-"":"none"}null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=null!=this.moveHandles||1!=this.graph.getSelectionCount()||null!=this.index&&this.index!=mxEvent.ROTATION_HANDLE?"none":"");va.apply(this);null!=this.state&&null!=this.linkHint&&(b=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),d=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),f=mxUtils.getBoundingBox(d,this.state.style[mxConstants.STYLE_ROTATION]||
-"0",b),b=null!=f?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state,d=null!=this.state.text?this.state.text.boundingBox:null,null==f&&(f=this.state),f=f.y+f.height,null!=d&&(f=Math.max(f,d.y+d.height)),this.linkHint.style.left=Math.max(0,Math.round(b.x+(b.width-this.linkHint.clientWidth)/2))+"px",this.linkHint.style.top=Math.round(f+this.verticalOffset/2+Editor.hintOffset)+"px")};var S=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=
-function(){S.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 fa=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=
-function(){if(null!=this.marker&&(fa.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 ia=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){ia.apply(this,arguments);
-null!=this.linkHint&&(this.linkHint.style.visibility="")};var ja=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){ja.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(){mxSwimlane.call(this)}function c(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function k(){mxActor.call(this)}function g(){mxCylinder.call(this)}function p(){mxCylinder.call(this)}function t(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function f(){mxShape.call(this)}function l(){mxShape.call(this)}function m(b,d,f,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=f;this.strokewidth=null!=c?c:1}function q(){mxActor.call(this)}function n(){mxCylinder.call(this)}
-function u(){mxCylinder.call(this)}function v(){mxActor.call(this)}function y(){mxActor.call(this)}function x(){mxActor.call(this)}function D(){mxActor.call(this)}function H(){mxActor.call(this)}function C(){mxActor.call(this)}function F(){mxActor.call(this)}function M(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,M.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
-this.canvas.moveTo=mxUtils.bind(this,M.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,M.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,M.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,M.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,M.prototype.arcTo)}function E(){mxRectangleShape.call(this)}function K(){mxRectangleShape.call(this)}
-function B(){mxActor.call(this)}function L(){mxActor.call(this)}function O(){mxActor.call(this)}function ca(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function Q(){mxCylinder.call(this)}function W(){mxShape.call(this)}function G(){mxShape.call(this)}function J(){mxEllipse.call(this)}function A(){mxShape.call(this)}function Z(){mxShape.call(this)}function I(){mxRectangleShape.call(this)}function X(){mxShape.call(this)}function aa(){mxShape.call(this)}function la(){mxShape.call(this)}
-function ga(){mxShape.call(this)}function ka(){mxShape.call(this)}function pa(){mxCylinder.call(this)}function qa(){mxCylinder.call(this)}function ma(){mxRectangleShape.call(this)}function Y(){mxDoubleEllipse.call(this)}function ba(){mxDoubleEllipse.call(this)}function R(){mxArrowConnector.call(this);this.spacing=0}function ta(){mxArrowConnector.call(this);this.spacing=0}function U(){mxActor.call(this)}function T(){mxRectangleShape.call(this)}function na(){mxActor.call(this)}function va(){mxActor.call(this)}
-function S(){mxActor.call(this)}function fa(){mxActor.call(this)}function ia(){mxActor.call(this)}function ja(){mxActor.call(this)}function oa(){mxActor.call(this)}function ua(){mxActor.call(this)}function P(){mxActor.call(this)}function da(){mxActor.call(this)}function wa(){mxEllipse.call(this)}function ya(){mxEllipse.call(this)}function ra(){mxEllipse.call(this)}function za(){mxRhombus.call(this)}function Aa(){mxEllipse.call(this)}function Da(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}
-function Ka(){mxEllipse.call(this)}function Ba(){mxActor.call(this)}function Ha(){mxActor.call(this)}function Fa(){mxActor.call(this)}function V(b,d,f,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=f;this.strokewidth=null!=c?c:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function xa(){mxConnector.call(this)}function Oa(b,d,f,c,e,g,l,k,m,q){l+=m;var z=c.clone();c.x-=e*(2*l+m);c.y-=g*(2*l+m);e*=l+m;g*=l+m;return function(){b.ellipse(z.x-
+"":"none"}null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=null!=this.moveHandles||1!=this.graph.getSelectionCount()||null!=this.index&&this.index!=mxEvent.ROTATION_HANDLE?"none":"");la.apply(this);null!=this.state&&null!=this.linkHint&&(b=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),d=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),f=mxUtils.getBoundingBox(d,this.state.style[mxConstants.STYLE_ROTATION]||
+"0",b),b=null!=f?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state,d=null!=this.state.text?this.state.text.boundingBox:null,null==f&&(f=this.state),f=f.y+f.height,null!=d&&(f=Math.max(f,d.y+d.height)),this.linkHint.style.left=Math.max(0,Math.round(b.x+(b.width-this.linkHint.clientWidth)/2))+"px",this.linkHint.style.top=Math.round(f+this.verticalOffset/2+Editor.hintOffset)+"px")};var ta=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=
+function(){ta.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 S=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=
+function(){if(null!=this.marker&&(S.apply(this),null!=this.state&&null!=this.linkHint)){var b=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(b=new mxRectangle(b.x,b.y,b.width,b.height),b.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(b.x+(b.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(b.y+b.height+Editor.hintOffset)+"px"}};var fa=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){fa.apply(this,arguments);
+null!=this.linkHint&&(this.linkHint.style.visibility="")};var ia=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){ia.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(){mxSwimlane.call(this)}function c(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function k(){mxActor.call(this)}function g(){mxCylinder.call(this)}function p(){mxCylinder.call(this)}function t(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function f(){mxShape.call(this)}function l(){mxShape.call(this)}function m(b,d,f,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=f;this.strokewidth=null!=c?c:1}function q(){mxActor.call(this)}function n(){mxCylinder.call(this)}
+function v(){mxCylinder.call(this)}function u(){mxActor.call(this)}function y(){mxActor.call(this)}function x(){mxActor.call(this)}function D(){mxActor.call(this)}function I(){mxActor.call(this)}function B(){mxActor.call(this)}function G(){mxActor.call(this)}function M(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,M.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
+this.canvas.moveTo=mxUtils.bind(this,M.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,M.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,M.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,M.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,M.prototype.arcTo)}function F(){mxRectangleShape.call(this)}function K(){mxRectangleShape.call(this)}
+function C(){mxActor.call(this)}function L(){mxActor.call(this)}function O(){mxActor.call(this)}function da(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function Q(){mxCylinder.call(this)}function Y(){mxShape.call(this)}function H(){mxShape.call(this)}function J(){mxEllipse.call(this)}function A(){mxShape.call(this)}function aa(){mxShape.call(this)}function E(){mxRectangleShape.call(this)}function W(){mxShape.call(this)}function T(){mxShape.call(this)}function na(){mxShape.call(this)}
+function ga(){mxShape.call(this)}function ja(){mxShape.call(this)}function ma(){mxCylinder.call(this)}function oa(){mxCylinder.call(this)}function ka(){mxRectangleShape.call(this)}function Z(){mxDoubleEllipse.call(this)}function ca(){mxDoubleEllipse.call(this)}function R(){mxArrowConnector.call(this);this.spacing=0}function ra(){mxArrowConnector.call(this);this.spacing=0}function V(){mxActor.call(this)}function U(){mxRectangleShape.call(this)}function la(){mxActor.call(this)}function ta(){mxActor.call(this)}
+function S(){mxActor.call(this)}function fa(){mxActor.call(this)}function ia(){mxActor.call(this)}function ba(){mxActor.call(this)}function za(){mxActor.call(this)}function va(){mxActor.call(this)}function P(){mxActor.call(this)}function ea(){mxActor.call(this)}function wa(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}function pa(){mxEllipse.call(this)}function Aa(){mxRhombus.call(this)}function Ba(){mxEllipse.call(this)}function Da(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}
+function Ka(){mxEllipse.call(this)}function Ca(){mxActor.call(this)}function Ha(){mxActor.call(this)}function Fa(){mxActor.call(this)}function X(b,d,f,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=f;this.strokewidth=null!=c?c:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function ua(){mxConnector.call(this)}function Oa(b,d,f,c,e,g,l,k,m,q){l+=m;var z=c.clone();c.x-=e*(2*l+m);c.y-=g*(2*l+m);e*=l+m;g*=l+m;return function(){b.ellipse(z.x-
e-l,z.y-g-l,2*l,2*l);q?b.fillAndStroke():b.stroke()}}mxUtils.extend(b,mxSwimlane);b.prototype.getLabelBounds=function(b){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};b.prototype.paintVertexShape=function(b,d,f,c,e){0==this.getTitleSize()?mxRectangleShape.prototype.paintBackground.apply(this,arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),b.translate(-d,-f));this.paintForeground(b,
d,f,c,e)};b.prototype.paintForeground=function(b,d,f,c,e){if(null!=this.state){var z=this.flipH,g=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)var l=z,z=g,g=l;b.rotate(-this.getShapeRotation(),z,g,d+c/2,f+e/2);s=this.scale;d=this.bounds.x/s;f=this.bounds.y/s;c=this.bounds.width/s;e=this.bounds.height/s;this.paintTableForeground(b,d,f,c,e)}};b.prototype.paintTableForeground=function(b,d,f,c,e){var z=this.state.view.graph,g=z.getActualStartSize(this.state.cell),
-l=z.model.getChildCells(this.state.cell,!0);if(0<l.length){var k="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),m="0"!=mxUtils.getValue(this.state.style,"columnLines","1"),ea=z.getCellGeometry(l[0]),sa=z.model.getChildCells(l[0],!0),sa=[{y:null!=ea?ea.y+ea.height:0,x:0,cells:sa,colspans:[]}];if(k)for(k=1;k<l.length;k++){var ea=z.getCellGeometry(l[k]),q={y:0,cells:z.model.getChildCells(l[k],!0),colspans:[]};sa.push(q);if(null!=ea){q.y=ea.y+ea.height;b.begin();b.moveTo(d+g.x,f+ea.y);for(var n=
-0,Ca=0;Ca<q.cells.length;Ca++)z.model.isVisible(q.cells[Ca])?n=q.x:(0<n&&b.lineTo(d+n-g.width,f+ea.y),b.moveTo(d+ea.x+ea.width+g.x,f+ea.y),n=0);b.lineTo(d+c-g.width,f+ea.y);b.end();b.stroke()}}if(m)for(c=sa[0].cells,k=1;k<c.length;k++)if(ea=z.getCellGeometry(c[k]),null!=ea){b.begin();b.moveTo(d+ea.x+g.x,f+g.y);for(var Ca=l=0;Ca<sa.length;Ca++)q=sa[Ca],m=1==k?parseInt(z.getCurrentCellStyle(q.cells[k-1]).colspan||1):sa[Ca].colspans[k-1],q.colspans[k]=m-1,1>q.colspans[k]?(q.colspans[k]=parseInt(z.getCurrentCellStyle(q.cells[k]).colspan||
-1),l=q.y):(0<l&&b.lineTo(d+ea.x+g.x,f+l-g.height),b.moveTo(d+ea.x+g.x,f+q.y),l=0);b.lineTo(d+ea.x+g.x,f+e-g.height);b.end();b.stroke()}}};mxCellRenderer.registerShape("table",b);mxUtils.extend(c,mxCylinder);c.prototype.size=20;c.prototype.darkOpacity=0;c.prototype.darkOpacity2=0;c.prototype.paintVertexShape=function(b,d,f,c,e){var z=Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",
+l=z.model.getChildCells(this.state.cell,!0);if(0<l.length){var k="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),qa="0"!=mxUtils.getValue(this.state.style,"columnLines","1"),m=z.getCellGeometry(l[0]),sa=z.model.getChildCells(l[0],!0),sa=[{y:null!=m?m.y+m.height:0,x:0,cells:sa,colspans:[]}];if(k)for(k=1;k<l.length;k++){var m=z.getCellGeometry(l[k]),q={y:0,cells:z.model.getChildCells(l[k],!0),colspans:[]};sa.push(q);if(null!=m){q.y=m.y+m.height;b.begin();b.moveTo(d+g.x,f+m.y);for(var n=0,ya=
+0;ya<q.cells.length;ya++)z.model.isVisible(q.cells[ya])?n=q.x:(0<n&&b.lineTo(d+n-g.width,f+m.y),b.moveTo(d+m.x+m.width+g.x,f+m.y),n=0);b.lineTo(d+c-g.width,f+m.y);b.end();b.stroke()}}if(qa)for(c=sa[0].cells,k=1;k<c.length;k++)if(m=z.getCellGeometry(c[k]),null!=m){b.begin();b.moveTo(d+m.x+g.x,f+g.y);for(var ya=l=0;ya<sa.length;ya++)q=sa[ya],qa=1==k?parseInt(z.getCurrentCellStyle(q.cells[k-1]).colspan||1):sa[ya].colspans[k-1],q.colspans[k]=qa-1,1>q.colspans[k]?(q.colspans[k]=parseInt(z.getCurrentCellStyle(q.cells[k]).colspan||
+1),l=q.y):(0<l&&b.lineTo(d+m.x+g.x,f+l-g.height),b.moveTo(d+m.x+g.x,f+q.y),l=0);b.lineTo(d+m.x+g.x,f+e-g.height);b.end();b.stroke()}}};mxCellRenderer.registerShape("table",b);mxUtils.extend(c,mxCylinder);c.prototype.size=20;c.prototype.darkOpacity=0;c.prototype.darkOpacity2=0;c.prototype.paintVertexShape=function(b,d,f,c,e){var z=Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",
this.darkOpacity)))),l=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity2",this.darkOpacity2))));b.translate(d,f);b.begin();b.moveTo(0,0);b.lineTo(c-z,0);b.lineTo(c,z);b.lineTo(c,e);b.lineTo(z,e);b.lineTo(0,e-z);b.lineTo(0,0);b.close();b.end();b.fillAndStroke();this.outline||(b.setShadow(!1),0!=g&&(b.setFillAlpha(Math.abs(g)),b.setFillColor(0>g?"#FFFFFF":"#000000"),b.begin(),b.moveTo(0,0),b.lineTo(c-z,0),b.lineTo(c,z),b.lineTo(z,z),b.close(),b.fill()),0!=l&&(b.setFillAlpha(Math.abs(l)),
b.setFillColor(0>l?"#FFFFFF":"#000000"),b.begin(),b.moveTo(0,0),b.lineTo(z,z),b.lineTo(z,e),b.lineTo(0,e-z),b.close(),b.fill()),b.begin(),b.moveTo(z,e),b.lineTo(z,z),b.lineTo(0,0),b.moveTo(z,z),b.lineTo(c,z),b.end(),b.stroke())};c.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)?(b=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(b,b,0,0)):null};mxCellRenderer.registerShape("cube",c);var La=Math.tan(mxUtils.toRadians(30)),
Ja=(.5-La)/2;mxCellRenderer.registerShape("isoRectangle",k);mxUtils.extend(e,mxCylinder);e.prototype.size=6;e.prototype.paintVertexShape=function(b,d,f,c,e){b.setFillColor(this.stroke);var z=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;b.ellipse(d+.5*(c-z),f+.5*(e-z),z,z);b.fill();b.setFillColor(mxConstants.NONE);b.rect(d,f,c,e);b.fill()};mxCellRenderer.registerShape("waypoint",e);mxUtils.extend(k,mxActor);k.prototype.size=20;k.prototype.redrawPath=function(b,
@@ -2717,238 +2715,238 @@ c,z,0,0,1,0,e-z),b.close(),b.fillAndStroke(),b.setShadow(!1),g&&(b.begin(),b.mov
"arcSize",this.arcSize));l||(k*=Math.min(c,e));k=Math.min(k,.5*c,.5*(e-f));d=Math.max(d,k);d=Math.min(c-k,d);g||(k=0);b.begin();"left"==z?(b.moveTo(Math.max(k,0),f),b.lineTo(Math.max(k,0),0),b.lineTo(d,0),b.lineTo(d,f)):(b.moveTo(c-d,f),b.lineTo(c-d,0),b.lineTo(c-Math.max(k,0),0),b.lineTo(c-Math.max(k,0),f));g?(b.moveTo(0,k+f),b.arcTo(k,k,0,0,1,k,f),b.lineTo(c-k,f),b.arcTo(k,k,0,0,1,c,k+f),b.lineTo(c,e-k),b.arcTo(k,k,0,0,1,c-k,e),b.lineTo(k,e),b.arcTo(k,k,0,0,1,0,e-k)):(b.moveTo(0,f),b.lineTo(c,f),
b.lineTo(c,e),b.lineTo(0,e));b.close();b.fillAndStroke();b.setShadow(!1);"triangle"==mxUtils.getValue(this.style,"folderSymbol",null)&&(b.begin(),b.moveTo(c-30,f+20),b.lineTo(c-20,f+10),b.lineTo(c-10,f+20),b.close(),b.stroke())};mxCellRenderer.registerShape("folder",n);n.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var f=mxUtils.getValue(this.style,
"tabWidth",15)*this.scale,d=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,c=mxUtils.getValue(this.style,"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1),z=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));e||(z*=Math.min(b.width,b.height));z=Math.min(z,.5*b.width,.5*(b.height-d));c||(z=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(z,0,Math.min(b.width,b.width-f),Math.min(b.height,b.height-d)):new mxRectangle(Math.min(b.width,
-b.width-f),0,z,Math.min(b.height,b.height-d))}return new mxRectangle(0,Math.min(b.height,d),0,0)}return null};mxUtils.extend(u,mxCylinder);u.prototype.arcSize=.1;u.prototype.paintVertexShape=function(b,d,f,c,e){b.translate(d,f);var z=mxUtils.getValue(this.style,"rounded",!1),g=mxUtils.getValue(this.style,"absoluteArcSize",!1);d=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f=mxUtils.getValue(this.style,"umlStateConnection",null);g||(d*=Math.min(c,e));d=Math.min(d,.5*c,.5*e);z||(d=
+b.width-f),0,z,Math.min(b.height,b.height-d))}return new mxRectangle(0,Math.min(b.height,d),0,0)}return null};mxUtils.extend(v,mxCylinder);v.prototype.arcSize=.1;v.prototype.paintVertexShape=function(b,d,f,c,e){b.translate(d,f);var z=mxUtils.getValue(this.style,"rounded",!1),g=mxUtils.getValue(this.style,"absoluteArcSize",!1);d=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f=mxUtils.getValue(this.style,"umlStateConnection",null);g||(d*=Math.min(c,e));d=Math.min(d,.5*c,.5*e);z||(d=
0);z=0;null!=f&&(z=10);b.begin();b.moveTo(z,d);b.arcTo(d,d,0,0,1,z+d,0);b.lineTo(c-d,0);b.arcTo(d,d,0,0,1,c,d);b.lineTo(c,e-d);b.arcTo(d,d,0,0,1,c-d,e);b.lineTo(z+d,e);b.arcTo(d,d,0,0,1,z,e-d);b.close();b.fillAndStroke();b.setShadow(!1);"collapseState"==mxUtils.getValue(this.style,"umlStateSymbol",null)&&(b.roundrect(c-40,e-20,10,10,3,3),b.stroke(),b.roundrect(c-20,e-20,10,10,3,3),b.stroke(),b.begin(),b.moveTo(c-30,e-15),b.lineTo(c-20,e-15),b.stroke());"connPointRefEntry"==f?(b.ellipse(0,.5*e-10,
-20,20),b.fillAndStroke()):"connPointRefExit"==f&&(b.ellipse(0,.5*e-10,20,20),b.fillAndStroke(),b.begin(),b.moveTo(5,.5*e-5),b.lineTo(15,.5*e+5),b.moveTo(15,.5*e-5),b.lineTo(5,.5*e+5),b.stroke())};u.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};mxCellRenderer.registerShape("umlState",u);mxUtils.extend(v,mxActor);v.prototype.size=30;v.prototype.isRoundable=
-function(){return!0};v.prototype.redrawPath=function(b,d,f,c,e){d=Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c,e),new mxPoint(0,e),new mxPoint(0,d)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("card",v);mxUtils.extend(y,mxActor);y.prototype.size=.4;y.prototype.redrawPath=function(b,d,f,
+20,20),b.fillAndStroke()):"connPointRefExit"==f&&(b.ellipse(0,.5*e-10,20,20),b.fillAndStroke(),b.begin(),b.moveTo(5,.5*e-5),b.lineTo(15,.5*e+5),b.moveTo(15,.5*e-5),b.lineTo(5,.5*e+5),b.stroke())};v.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};mxCellRenderer.registerShape("umlState",v);mxUtils.extend(u,mxActor);u.prototype.size=30;u.prototype.isRoundable=
+function(){return!0};u.prototype.redrawPath=function(b,d,f,c,e){d=Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c,e),new mxPoint(0,e),new mxPoint(0,d)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("card",u);mxUtils.extend(y,mxActor);y.prototype.size=.4;y.prototype.redrawPath=function(b,d,f,
c,e){d=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.moveTo(0,d/2);b.quadTo(c/4,1.4*d,c/2,d/2);b.quadTo(3*c/4,d*(1-1.4),c,d/2);b.lineTo(c,e-d/2);b.quadTo(3*c/4,e-1.4*d,c/2,e-d/2);b.quadTo(c/4,e-d*(1-1.4),0,e-d/2);b.lineTo(0,d/2);b.close();b.end()};y.prototype.getLabelBounds=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",this.size),f=b.width,c=b.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||
this.direction==mxConstants.DIRECTION_WEST)return d*=c,new mxRectangle(b.x,b.y+d,f,c-2*d);d*=f;return new mxRectangle(b.x+d,b.y,f-2*d,c)}return b};mxCellRenderer.registerShape("tape",y);mxUtils.extend(x,mxActor);x.prototype.size=.3;x.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*b.height):null};x.prototype.redrawPath=function(b,d,f,c,e){d=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
"size",this.size))));b.moveTo(0,0);b.lineTo(c,0);b.lineTo(c,e-d/2);b.quadTo(3*c/4,e-1.4*d,c/2,e-d/2);b.quadTo(c/4,e-d*(1-1.4),0,e-d/2);b.lineTo(0,d/2);b.close();b.end()};mxCellRenderer.registerShape("document",x);var $a=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(b,d,f,c){var e=mxUtils.getValue(this.style,"size");return null!=e?c*Math.max(0,Math.min(1,e)):$a.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,
"boundedLbl",!1)){var d=2*mxUtils.getValue(this.style,"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*this.scale,b.height*d),0,0)}return null};m.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(d/=2);return new mxRectangle(0,Math.min(b.height*this.scale,2*d*this.scale),0,Math.max(0,.3*d*this.scale))}return null};n.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,
"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var f=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,d=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,c=mxUtils.getValue(this.style,"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1),z=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));e||(z*=Math.min(b.width,b.height));z=Math.min(z,.5*b.width,.5*(b.height-d));c||(z=0);return"left"==
-mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(z,0,Math.min(b.width,b.width-f),Math.min(b.height,b.height-d)):new mxRectangle(Math.min(b.width,b.width-f),0,z,Math.min(b.height,b.height-d))}return new mxRectangle(0,Math.min(b.height,d),0,0)}return null};u.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};d.prototype.getLabelMargins=
+mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(z,0,Math.min(b.width,b.width-f),Math.min(b.height,b.height-d)):new mxRectangle(Math.min(b.width,b.width-f),0,z,Math.min(b.height,b.height-d))}return new mxRectangle(0,Math.min(b.height,d),0,0)}return null};v.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};d.prototype.getLabelMargins=
function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(b.height*this.scale,d*this.scale),0,Math.max(0,d*this.scale))}return null};mxUtils.extend(D,mxActor);D.prototype.size=.2;D.prototype.fixedSize=20;D.prototype.isRoundable=function(){return!0};D.prototype.redrawPath=function(b,d,f,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))));f=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,f,!0);b.end()};mxCellRenderer.registerShape("parallelogram",D);mxUtils.extend(H,mxActor);H.prototype.size=.2;H.prototype.fixedSize=20;H.prototype.isRoundable=function(){return!0};H.prototype.redrawPath=function(b,d,f,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))));f=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,f,!0)};mxCellRenderer.registerShape("trapezoid",H);mxUtils.extend(C,mxActor);C.prototype.size=
-.5;C.prototype.redrawPath=function(b,d,f,c,e){b.setFillColor(null);d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=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,f,!1);b.end()};mxCellRenderer.registerShape("curlyBracket",C);mxUtils.extend(F,mxActor);F.prototype.redrawPath=
-function(b,d,f,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",F);M.prototype.moveTo=function(b,d){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;this.firstX=b;this.firstY=d};M.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,
+c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=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,f,!0);b.end()};mxCellRenderer.registerShape("parallelogram",D);mxUtils.extend(I,mxActor);I.prototype.size=.2;I.prototype.fixedSize=20;I.prototype.isRoundable=function(){return!0};I.prototype.redrawPath=function(b,d,f,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))));f=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,f,!0)};mxCellRenderer.registerShape("trapezoid",I);mxUtils.extend(B,mxActor);B.prototype.size=
+.5;B.prototype.redrawPath=function(b,d,f,c,e){b.setFillColor(null);d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=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,f,!1);b.end()};mxCellRenderer.registerShape("curlyBracket",B);mxUtils.extend(G,mxActor);G.prototype.redrawPath=
+function(b,d,f,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",G);M.prototype.moveTo=function(b,d){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;this.firstX=b;this.firstY=d};M.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)};M.prototype.quadTo=function(b,d,f,c){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=c};M.prototype.curveTo=function(b,d,f,c,e,g){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};M.prototype.arcTo=function(b,d,f,c,e,g,l){this.originalArcTo.apply(this.canvas,arguments);this.lastX=g;this.lastY=l};M.prototype.lineTo=function(b,d){if(null!=this.lastX&&null!=this.lastY){var f=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),z=Math.sqrt(c*c+e*e);if(2>z){this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;return}var g=Math.round(z/10),l=this.defaultVariation;5>g&&(g=5,l/=3);for(var k=f(b-this.lastX)*c/g,f=f(d-this.lastY)*e/g,c=c/z,e=e/z,z=0;z<g;z++){var m=(Math.random()-.5)*l;this.originalLineTo.call(this.canvas,k*z+this.lastX-m*e,f*z+this.lastY-m*c)}this.originalLineTo.call(this.canvas,b,d)}else this.originalLineTo.apply(this.canvas,
arguments);this.lastX=b;this.lastY=d};M.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 ab=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(b){ab.apply(this,arguments);null==b.handJiggle&&(b.handJiggle=this.createHandJiggle(b))};
var bb=mxShape.prototype.afterPaint;mxShape.prototype.afterPaint=function(b){bb.apply(this,arguments);null!=b.handJiggle&&(b.handJiggle.destroy(),delete b.handJiggle)};mxShape.prototype.createComicCanvas=function(b){return new M(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 cb=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"))&&cb.apply(this,arguments)};var db=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(b,d,f,c,e){if(null==b.handJiggle||b.handJiggle.constructor!=M)db.apply(this,arguments);else{var z=!0;null!=this.style&&(z="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,
+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"))&&cb.apply(this,arguments)};var fb=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(b,d,f,c,e){if(null==b.handJiggle||b.handJiggle.constructor!=M)fb.apply(this,arguments);else{var z=!0;null!=this.style&&(z="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,
"1"));if(z||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)z||null!=this.fill&&this.fill!=mxConstants.NONE||(b.pointerEvents=!1),b.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?z=Math.min(c/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(z=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,z=Math.min(c*
-z,e*z)),b.moveTo(d+z,f),b.lineTo(d+c-z,f),b.quadTo(d+c,f,d+c,f+z),b.lineTo(d+c,f+e-z),b.quadTo(d+c,f+e,d+c-z,f+e),b.lineTo(d+z,f+e),b.quadTo(d,f+e,d,f+e-z),b.lineTo(d,f+z),b.quadTo(d,f,d+z,f)):(b.moveTo(d,f),b.lineTo(d+c,f),b.lineTo(d+c,f+e),b.lineTo(d,f+e),b.lineTo(d,f)),b.close(),b.end(),b.fillAndStroke()}};mxUtils.extend(E,mxRectangleShape);E.prototype.size=.1;E.prototype.fixedSize=!1;E.prototype.isHtmlAllowed=function(){return!1};E.prototype.getLabelBounds=function(b){if(mxUtils.getValue(this.state.style,
+z,e*z)),b.moveTo(d+z,f),b.lineTo(d+c-z,f),b.quadTo(d+c,f,d+c,f+z),b.lineTo(d+c,f+e-z),b.quadTo(d+c,f+e,d+c-z,f+e),b.lineTo(d+z,f+e),b.quadTo(d,f+e,d,f+e-z),b.lineTo(d,f+z),b.quadTo(d,f,d+z,f)):(b.moveTo(d,f),b.lineTo(d+c,f),b.lineTo(d+c,f+e),b.lineTo(d,f+e),b.lineTo(d,f)),b.close(),b.end(),b.fillAndStroke()}};mxUtils.extend(F,mxRectangleShape);F.prototype.size=.1;F.prototype.fixedSize=!1;F.prototype.isHtmlAllowed=function(){return!1};F.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,f=b.height;b=new mxRectangle(b.x,b.y,d,f);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,f*e));b.x+=Math.round(c);b.width-=Math.round(2*c)}return b};
-E.prototype.paintForeground=function(b,d,f,c,e){var z=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),g=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=z?Math.max(0,Math.min(c,g)):c*Math.max(0,Math.min(1,g));this.isRounded&&(z=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.max(g,Math.min(c*z,e*z)));g=Math.round(g);b.begin();b.moveTo(d+g,f);b.lineTo(d+g,f+e);b.moveTo(d+c-g,f);b.lineTo(d+c-g,f+e);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
-arguments)};mxCellRenderer.registerShape("process",E);mxCellRenderer.registerShape("process2",E);mxUtils.extend(K,mxRectangleShape);K.prototype.paintBackground=function(b,d,f,c,e){b.setFillColor(mxConstants.NONE);b.rect(d,f,c,e);b.fill()};K.prototype.paintForeground=function(b,d,f,c,e){};mxCellRenderer.registerShape("transparent",K);mxUtils.extend(B,mxHexagon);B.prototype.size=30;B.prototype.position=.5;B.prototype.position2=.5;B.prototype.base=20;B.prototype.getLabelMargins=function(){return new mxRectangle(0,
-0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};B.prototype.isRoundable=function(){return!0};B.prototype.redrawPath=function(b,d,f,c,e){d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var z=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),g=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-f),new mxPoint(Math.min(c,z+l),e-f),new mxPoint(g,e),new mxPoint(Math.max(0,z),e-f),new mxPoint(0,e-f)],this.isRounded,d,!0,[4])};mxCellRenderer.registerShape("callout",B);mxUtils.extend(L,mxActor);L.prototype.size=.2;L.prototype.fixedSize=20;L.prototype.isRoundable=function(){return!0};L.prototype.redrawPath=function(b,d,f,c,e){d=
+F.prototype.paintForeground=function(b,d,f,c,e){var z=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),g=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=z?Math.max(0,Math.min(c,g)):c*Math.max(0,Math.min(1,g));this.isRounded&&(z=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.max(g,Math.min(c*z,e*z)));g=Math.round(g);b.begin();b.moveTo(d+g,f);b.lineTo(d+g,f+e);b.moveTo(d+c-g,f);b.lineTo(d+c-g,f+e);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
+arguments)};mxCellRenderer.registerShape("process",F);mxCellRenderer.registerShape("process2",F);mxUtils.extend(K,mxRectangleShape);K.prototype.paintBackground=function(b,d,f,c,e){b.setFillColor(mxConstants.NONE);b.rect(d,f,c,e);b.fill()};K.prototype.paintForeground=function(b,d,f,c,e){};mxCellRenderer.registerShape("transparent",K);mxUtils.extend(C,mxHexagon);C.prototype.size=30;C.prototype.position=.5;C.prototype.position2=.5;C.prototype.base=20;C.prototype.getLabelMargins=function(){return new mxRectangle(0,
+0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};C.prototype.isRoundable=function(){return!0};C.prototype.redrawPath=function(b,d,f,c,e){d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var z=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),g=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-f),new mxPoint(Math.min(c,z+l),e-f),new mxPoint(g,e),new mxPoint(Math.max(0,z),e-f),new mxPoint(0,e-f)],this.isRounded,d,!0,[4])};mxCellRenderer.registerShape("callout",C);mxUtils.extend(L,mxActor);L.prototype.size=.2;L.prototype.fixedSize=20;L.prototype.isRoundable=function(){return!0};L.prototype.redrawPath=function(b,d,f,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))));f=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,f,!0);b.end()};mxCellRenderer.registerShape("step",L);
mxUtils.extend(O,mxHexagon);O.prototype.size=.25;O.prototype.fixedSize=20;O.prototype.isRoundable=function(){return!0};O.prototype.redrawPath=function(b,d,f,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))));f=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,f,!0)};mxCellRenderer.registerShape("hexagon",O);mxUtils.extend(ca,mxRectangleShape);ca.prototype.isHtmlAllowed=function(){return!1};ca.prototype.paintForeground=function(b,d,f,c,e){var g=Math.min(c/5,e/5)+1;b.begin();b.moveTo(d+c/2,f+g);b.lineTo(d+c/2,f+e-g);b.moveTo(d+g,f+e/2);b.lineTo(d+c-g,f+e/2);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};
-mxCellRenderer.registerShape("plus",ca);var Xa=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,f,c,e){Xa.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var g=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
-0);d+=g;f+=g;c-=2*g;e-=2*g;0<c&&0<e&&(b.setShadow(!1),Xa.apply(this,[b,d,f,c,e]))}};mxUtils.extend(N,mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.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};N.prototype.paintForeground=function(b,d,f,c,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var g=
-Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);d+=g;f+=g;c-=2*g;e-=2*g;0<c&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}b.setDashed(!1);var g=0,z;do{z=mxCellRenderer.defaultShapes[this.style["symbol"+g]];if(null!=z){var l=this.style["symbol"+g+"Align"],k=this.style["symbol"+g+"VerticalAlign"],m=this.style["symbol"+g+"Width"],q=this.style["symbol"+g+"Height"],n=this.style["symbol"+g+"Spacing"]||0,G=this.style["symbol"+g+"VSpacing"]||n,ea=
-this.style["symbol"+g+"ArcSpacing"];null!=ea&&(ea*=this.getArcSize(c+this.strokewidth,e+this.strokewidth),n+=ea,G+=ea);var ea=d,sa=f,ea=l==mxConstants.ALIGN_CENTER?ea+(c-m)/2:l==mxConstants.ALIGN_RIGHT?ea+(c-m-n):ea+n,sa=k==mxConstants.ALIGN_MIDDLE?sa+(e-q)/2:k==mxConstants.ALIGN_BOTTOM?sa+(e-q-G):sa+G;b.save();l=new z;l.style=this.style;z.prototype.paintVertexShape.call(l,b,ea,sa,m,q);b.restore()}g++}while(null!=z)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",
-N);mxUtils.extend(Q,mxCylinder);Q.prototype.redrawPath=function(b,d,f,c,e,g){g?(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",Q);mxUtils.extend(W,mxShape);W.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);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",W);mxUtils.extend(G,mxShape);G.prototype.getLabelMargins=function(b){return new mxRectangle(b.width/6,0,0,0)};G.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);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",
-G);mxUtils.extend(J,mxEllipse);J.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/8,f+e);b.lineTo(d+7*c/8,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",J);mxUtils.extend(A,mxShape);A.prototype.paintVertexShape=function(b,d,f,c,e){b.translate(d,f);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",A);mxUtils.extend(Z,mxShape);
-Z.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};Z.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);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()};Z.prototype.paintForeground=function(b,d,f,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",Z);mxUtils.extend(I,mxRectangleShape);I.prototype.size=
-40;I.prototype.isHtmlAllowed=function(){return!1};I.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)};I.prototype.paintBackground=function(b,d,f,c,e){var g=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,
-f,c,g):(l=this.state.view.graph.cellRenderer.getShape(l),null!=l&&l!=I&&(l=new l,l.apply(this.state),b.save(),l.paintVertexShape(b,d,f,c,g),b.restore()));g<e&&(b.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),b.begin(),b.moveTo(d+c/2,f+g),b.lineTo(d+c/2,f+e),b.end(),b.stroke())};I.prototype.paintForeground=function(b,d,f,c,e){var g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,b,d,f,c,Math.min(e,
-g))};mxCellRenderer.registerShape("umlLifeline",I);mxUtils.extend(X,mxShape);X.prototype.width=60;X.prototype.height=30;X.prototype.corner=10;X.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))};X.prototype.paintBackground=function(b,d,f,c,e){var g=this.corner,l=Math.min(c,Math.max(g,parseFloat(mxUtils.getValue(this.style,
+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,f,!0)};mxCellRenderer.registerShape("hexagon",O);mxUtils.extend(da,mxRectangleShape);da.prototype.isHtmlAllowed=function(){return!1};da.prototype.paintForeground=function(b,d,f,c,e){var g=Math.min(c/5,e/5)+1;b.begin();b.moveTo(d+c/2,f+g);b.lineTo(d+c/2,f+e-g);b.moveTo(d+g,f+e/2);b.lineTo(d+c-g,f+e/2);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};
+mxCellRenderer.registerShape("plus",da);var Ya=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,f,c,e){Ya.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var g=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
+0);d+=g;f+=g;c-=2*g;e-=2*g;0<c&&0<e&&(b.setShadow(!1),Ya.apply(this,[b,d,f,c,e]))}};mxUtils.extend(N,mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.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};N.prototype.paintForeground=function(b,d,f,c,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var g=
+Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);d+=g;f+=g;c-=2*g;e-=2*g;0<c&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}b.setDashed(!1);var g=0,z;do{z=mxCellRenderer.defaultShapes[this.style["symbol"+g]];if(null!=z){var l=this.style["symbol"+g+"Align"],k=this.style["symbol"+g+"VerticalAlign"],m=this.style["symbol"+g+"Width"],q=this.style["symbol"+g+"Height"],n=this.style["symbol"+g+"Spacing"]||0,H=this.style["symbol"+g+"VSpacing"]||n,qa=
+this.style["symbol"+g+"ArcSpacing"];null!=qa&&(qa*=this.getArcSize(c+this.strokewidth,e+this.strokewidth),n+=qa,H+=qa);var qa=d,sa=f,qa=l==mxConstants.ALIGN_CENTER?qa+(c-m)/2:l==mxConstants.ALIGN_RIGHT?qa+(c-m-n):qa+n,sa=k==mxConstants.ALIGN_MIDDLE?sa+(e-q)/2:k==mxConstants.ALIGN_BOTTOM?sa+(e-q-H):sa+H;b.save();l=new z;l.style=this.style;z.prototype.paintVertexShape.call(l,b,qa,sa,m,q);b.restore()}g++}while(null!=z)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",
+N);mxUtils.extend(Q,mxCylinder);Q.prototype.redrawPath=function(b,d,f,c,e,g){g?(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",Q);mxUtils.extend(Y,mxShape);Y.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);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",Y);mxUtils.extend(H,mxShape);H.prototype.getLabelMargins=function(b){return new mxRectangle(b.width/6,0,0,0)};H.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);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",
+H);mxUtils.extend(J,mxEllipse);J.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/8,f+e);b.lineTo(d+7*c/8,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",J);mxUtils.extend(A,mxShape);A.prototype.paintVertexShape=function(b,d,f,c,e){b.translate(d,f);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",A);mxUtils.extend(aa,mxShape);
+aa.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};aa.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);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()};aa.prototype.paintForeground=function(b,d,f,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",aa);mxUtils.extend(E,mxRectangleShape);E.prototype.size=
+40;E.prototype.isHtmlAllowed=function(){return!1};E.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)};E.prototype.paintBackground=function(b,d,f,c,e){var g=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,
+f,c,g):(l=this.state.view.graph.cellRenderer.getShape(l),null!=l&&l!=E&&(l=new l,l.apply(this.state),b.save(),l.paintVertexShape(b,d,f,c,g),b.restore()));g<e&&(b.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),b.begin(),b.moveTo(d+c/2,f+g),b.lineTo(d+c/2,f+e),b.end(),b.stroke())};E.prototype.paintForeground=function(b,d,f,c,e){var g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,b,d,f,c,Math.min(e,
+g))};mxCellRenderer.registerShape("umlLifeline",E);mxUtils.extend(W,mxShape);W.prototype.width=60;W.prototype.height=30;W.prototype.corner=10;W.prototype.getLabelMargins=function(b){return new mxRectangle(0,0,b.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),b.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*this.scale))};W.prototype.paintBackground=function(b,d,f,c,e){var g=this.corner,l=Math.min(c,Math.max(g,parseFloat(mxUtils.getValue(this.style,
"width",this.width)))),z=Math.min(e,Math.max(1.5*g,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,f,c,e),b.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(b,d,f,c,e),b.setGradient(this.fill,this.gradient,d,f,c,e,this.gradientDirection)):b.setFillColor(this.fill);b.begin();
-b.moveTo(d,f);b.lineTo(d+l,f);b.lineTo(d+l,f+Math.max(0,z-1.5*g));b.lineTo(d+Math.max(0,l-g),f+z);b.lineTo(d,f+z);b.close();b.fillAndStroke();b.begin();b.moveTo(d+l,f);b.lineTo(d+c,f);b.lineTo(d+c,f+e);b.lineTo(d,f+e);b.lineTo(d,f+z);b.stroke()};mxCellRenderer.registerShape("umlFrame",X);mxPerimeter.CenterPerimeter=function(b,d,f,c){return new mxPoint(b.getCenterX(),b.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(b,d,
-f,c){c=I.prototype.size;null!=d&&(c=mxUtils.getValue(d.style,"size",c)*d.view.scale);d=parseFloat(d.style[mxConstants.STYLE_STROKEWIDTH]||1)*d.view.scale/2-1;f.x<b.getCenterX()&&(d=-1*(d+1));return new mxPoint(b.getCenterX()+d,Math.min(b.y+b.height,Math.max(b.y+c,f.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(b,d,f,c){c=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",
+b.moveTo(d,f);b.lineTo(d+l,f);b.lineTo(d+l,f+Math.max(0,z-1.5*g));b.lineTo(d+Math.max(0,l-g),f+z);b.lineTo(d,f+z);b.close();b.fillAndStroke();b.begin();b.moveTo(d+l,f);b.lineTo(d+c,f);b.lineTo(d+c,f+e);b.lineTo(d,f+e);b.lineTo(d,f+z);b.stroke()};mxCellRenderer.registerShape("umlFrame",W);mxPerimeter.CenterPerimeter=function(b,d,f,c){return new mxPoint(b.getCenterX(),b.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(b,d,
+f,c){c=E.prototype.size;null!=d&&(c=mxUtils.getValue(d.style,"size",c)*d.view.scale);d=parseFloat(d.style[mxConstants.STYLE_STROKEWIDTH]||1)*d.view.scale/2-1;f.x<b.getCenterX()&&(d=-1*(d+1));return new mxPoint(b.getCenterX()+d,Math.min(b.y+b.height,Math.max(b.y+c,f.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(b,d,f,c){c=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",
mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(b,d,f,c){c=parseFloat(d.style[mxConstants.STYLE_STROKEWIDTH]||1)*d.view.scale/2-1;null!=d.style.backboneSize&&(c+=parseFloat(d.style.backboneSize)*d.view.scale/2-1);if("south"==d.style[mxConstants.STYLE_DIRECTION]||"north"==d.style[mxConstants.STYLE_DIRECTION])return f.x<b.getCenterX()&&(c=-1*(c+1)),new mxPoint(b.getCenterX()+c,Math.min(b.y+b.height,Math.max(b.y,f.y)));f.y<b.getCenterY()&&(c=-1*(c+1));return new mxPoint(Math.min(b.x+
-b.width,Math.max(b.x,f.x)),b.getCenterY()+c)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(b,d,f,c){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(b,new mxRectangle(0,0,0,Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(d.style,"size",B.prototype.size))*d.view.scale))),d.style),d,f,c)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(b,
+b.width,Math.max(b.x,f.x)),b.getCenterY()+c)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(b,d,f,c){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(b,new mxRectangle(0,0,0,Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(d.style,"size",C.prototype.size))*d.view.scale))),d.style),d,f,c)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(b,
d,f,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),g=e?D.prototype.fixedSize:D.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));e&&(g*=d.view.scale);var l=b.x,z=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_NORTH||d==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(l+k,z+e),new mxPoint(l+
k,z+m),new mxPoint(l,z+m-e),new mxPoint(l,z)]):(e=e?Math.max(0,Math.min(.5*k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l+e,z),new mxPoint(l+k,z),new mxPoint(l+k-e,z+m),new mxPoint(l,z+m),new mxPoint(l+e,z)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(f.x<l||f.x>l+k?b.y=f.y:b.x=f.x);return mxUtils.getPerimeterPoint(z,b,f)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(b,d,f,c){var e="0"!=mxUtils.getValue(d.style,
-"fixedSize","0"),g=e?H.prototype.fixedSize:H.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));e&&(g*=d.view.scale);var l=b.x,z=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,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l+e,z),new mxPoint(l+k-e,z),new mxPoint(l+k,z+m),new mxPoint(l,z+m),new mxPoint(l+e,z)]):d==mxConstants.DIRECTION_WEST?
+"fixedSize","0"),g=e?I.prototype.fixedSize:I.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));e&&(g*=d.view.scale);var l=b.x,z=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,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l+e,z),new mxPoint(l+k-e,z),new mxPoint(l+k,z+m),new mxPoint(l,z+m),new mxPoint(l+e,z)]):d==mxConstants.DIRECTION_WEST?
(e=e?Math.max(0,Math.min(k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(l+k,z),new mxPoint(l+k-e,z+m),new mxPoint(l+e,z+m),new mxPoint(l,z)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z+e),new mxPoint(l+k,z),new mxPoint(l+k,z+m),new mxPoint(l,z+m-e),new mxPoint(l,z+e)]):(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(l+k,z+e),new mxPoint(l+k,z+m-e),new mxPoint(l,z+m),new mxPoint(l,
z)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(f.x<l||f.x>l+k?b.y=f.y:b.x=f.x);return mxUtils.getPerimeterPoint(z,b,f)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(b,d,f,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),g=e?L.prototype.fixedSize:L.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));e&&(g*=d.view.scale);var l=b.x,z=b.y,k=b.width,m=b.height,q=b.getCenterX();b=b.getCenterY();d=null!=
d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(l+k-e,z),new mxPoint(l+k,b),new mxPoint(l+k-e,z+m),new mxPoint(l,z+m),new mxPoint(l+e,b),new mxPoint(l,z)]):d==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l+e,z),new mxPoint(l+k,z),new mxPoint(l+k-e,b),new mxPoint(l+
k,z+m),new mxPoint(l+e,z+m),new mxPoint(l,b),new mxPoint(l+e,z)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z+e),new mxPoint(q,z),new mxPoint(l+k,z+e),new mxPoint(l+k,z+m),new mxPoint(q,z+m-e),new mxPoint(l,z+m),new mxPoint(l,z+e)]):(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(q,z+e),new mxPoint(l+k,z),new mxPoint(l+k,z+m-e),new mxPoint(q,z+m),new mxPoint(l,z+m-e),new mxPoint(l,z)]);q=new mxPoint(q,
b);c&&(f.x<l||f.x>l+k?q.y=f.y:q.x=f.x);return mxUtils.getPerimeterPoint(z,q,f)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(b,d,f,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),g=e?O.prototype.fixedSize:O.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));e&&(g*=d.view.scale);var l=b.x,z=b.y,k=b.width,m=b.height,q=b.getCenterX();b=b.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):
mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(q,z),new mxPoint(l+k,z+e),new mxPoint(l+k,z+m-e),new mxPoint(q,z+m),new mxPoint(l,z+m-e),new mxPoint(l,z+e),new mxPoint(q,z)]):(e=e?Math.max(0,Math.min(k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l+e,z),new mxPoint(l+k-e,z),new mxPoint(l+k,b),new mxPoint(l+k-e,z+m),new mxPoint(l+e,z+m),new mxPoint(l,b),new mxPoint(l+e,z)]);q=new mxPoint(q,
-b);c&&(f.x<l||f.x>l+k?q.y=f.y:q.x=f.x);return mxUtils.getPerimeterPoint(z,q,f)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(aa,mxShape);aa.prototype.size=10;aa.prototype.paintBackground=function(b,d,f,c,e){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size));b.translate(d,f);b.ellipse((c-g)/2,0,g,g);b.fillAndStroke();b.begin();b.moveTo(c/2,g);b.lineTo(c/2,e);b.end();b.stroke()};mxCellRenderer.registerShape("lollipop",aa);mxUtils.extend(la,
-mxShape);la.prototype.size=10;la.prototype.inset=2;la.prototype.paintBackground=function(b,d,f,c,e){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size)),l=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(d,f);b.begin();b.moveTo(c/2,g+l);b.lineTo(c/2,e);b.end();b.stroke();b.begin();b.moveTo((c-g)/2-l,g/2);b.quadTo((c-g)/2-l,g+l,c/2,g+l);b.quadTo((c+g)/2+l,g+l,(c+g)/2+l,g/2);b.end();b.stroke()};mxCellRenderer.registerShape("requires",la);mxUtils.extend(ga,
-mxShape);ga.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);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",ga);mxUtils.extend(ka,mxShape);ka.prototype.inset=2;ka.prototype.paintBackground=function(b,d,f,c,e){var g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(d,f);b.ellipse(0,g,c-2*g,e-2*g);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",ka);mxUtils.extend(pa,mxCylinder);pa.prototype.jettyWidth=20;pa.prototype.jettyHeight=10;pa.prototype.redrawPath=function(b,d,f,c,e,g){var l=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));f=l/2;var l=f+l/2,z=Math.min(d,e-d),k=Math.min(z+2*d,e-d);g?(b.moveTo(f,z),b.lineTo(l,z),b.lineTo(l,z+d),b.lineTo(f,z+d),b.moveTo(f,
-k),b.lineTo(l,k),b.lineTo(l,k+d),b.lineTo(f,k+d)):(b.moveTo(f,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(f,e),b.lineTo(f,k+d),b.lineTo(0,k+d),b.lineTo(0,k),b.lineTo(f,k),b.lineTo(f,z+d),b.lineTo(0,z+d),b.lineTo(0,z),b.lineTo(f,z),b.close());b.end()};mxCellRenderer.registerShape("module",pa);mxUtils.extend(qa,mxCylinder);qa.prototype.jettyWidth=32;qa.prototype.jettyHeight=12;qa.prototype.redrawPath=function(b,d,f,c,e,g){var l=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,
-"jettyHeight",this.jettyHeight));f=l/2;var l=f+l/2,z=.3*e-d/2,k=.7*e-d/2;g?(b.moveTo(f,z),b.lineTo(l,z),b.lineTo(l,z+d),b.lineTo(f,z+d),b.moveTo(f,k),b.lineTo(l,k),b.lineTo(l,k+d),b.lineTo(f,k+d)):(b.moveTo(f,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(f,e),b.lineTo(f,k+d),b.lineTo(0,k+d),b.lineTo(0,k),b.lineTo(f,k),b.lineTo(f,z+d),b.lineTo(0,z+d),b.lineTo(0,z),b.lineTo(f,z),b.close());b.end()};mxCellRenderer.registerShape("component",qa);mxUtils.extend(ma,mxRectangleShape);ma.prototype.paintForeground=
-function(b,d,f,c,e){var g=c/2,l=e/2,z=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b.begin();this.addPoints(b,[new mxPoint(d+g,f),new mxPoint(d+c,f+l),new mxPoint(d+g,f+e),new mxPoint(d,f+l)],this.isRounded,z,!0);b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",ma);mxUtils.extend(Y,mxDoubleEllipse);Y.prototype.outerStroke=!0;Y.prototype.paintVertexShape=function(b,d,f,c,e){var g=Math.min(4,
-Math.min(c/5,e/5));0<c&&0<e&&(b.ellipse(d+g,f+g,c-2*g,e-2*g),b.fillAndStroke());b.setShadow(!1);this.outerStroke&&(b.ellipse(d,f,c,e),b.stroke())};mxCellRenderer.registerShape("endState",Y);mxUtils.extend(ba,Y);ba.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",ba);mxUtils.extend(R,mxArrowConnector);R.prototype.defaultWidth=4;R.prototype.isOpenEnded=function(){return!0};R.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,
-this.strokewidth-1)};R.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",R);mxUtils.extend(ta,mxArrowConnector);ta.prototype.defaultWidth=10;ta.prototype.defaultArrowWidth=20;ta.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};ta.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ta.prototype.getEdgeWidth=
-function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ta);mxUtils.extend(U,mxActor);U.prototype.size=30;U.prototype.isRoundable=function(){return!0};U.prototype.redrawPath=function(b,d,f,c,e){d=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));f=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,f,!0);b.end()};mxCellRenderer.registerShape("manualInput",U);mxUtils.extend(T,mxRectangleShape);T.prototype.dx=20;T.prototype.dy=20;T.prototype.isHtmlAllowed=function(){return!1};T.prototype.paintForeground=function(b,d,f,c,e){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var g=0;if(this.isRounded)var l=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.max(g,Math.min(c*l,e*l));l=Math.max(g,
-Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));g=Math.max(g,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));b.begin();b.moveTo(d,f+g);b.lineTo(d+c,f+g);b.end();b.stroke();b.begin();b.moveTo(d+l,f);b.lineTo(d+l,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("internalStorage",T);mxUtils.extend(na,mxActor);na.prototype.dx=20;na.prototype.dy=20;na.prototype.redrawPath=function(b,d,f,c,e){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",
-this.dx))));f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var 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,f),new mxPoint(d,f),new mxPoint(d,e),new mxPoint(0,e)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("corner",na);mxUtils.extend(va,mxActor);va.prototype.redrawPath=function(b,d,f,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",va);mxUtils.extend(S,mxActor);S.prototype.dx=20;S.prototype.dy=20;S.prototype.redrawPath=function(b,d,f,c,e){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var g=mxUtils.getValue(this.style,
+b);c&&(f.x<l||f.x>l+k?q.y=f.y:q.x=f.x);return mxUtils.getPerimeterPoint(z,q,f)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(T,mxShape);T.prototype.size=10;T.prototype.paintBackground=function(b,d,f,c,e){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size));b.translate(d,f);b.ellipse((c-g)/2,0,g,g);b.fillAndStroke();b.begin();b.moveTo(c/2,g);b.lineTo(c/2,e);b.end();b.stroke()};mxCellRenderer.registerShape("lollipop",T);mxUtils.extend(na,mxShape);
+na.prototype.size=10;na.prototype.inset=2;na.prototype.paintBackground=function(b,d,f,c,e){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size)),l=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(d,f);b.begin();b.moveTo(c/2,g+l);b.lineTo(c/2,e);b.end();b.stroke();b.begin();b.moveTo((c-g)/2-l,g/2);b.quadTo((c-g)/2-l,g+l,c/2,g+l);b.quadTo((c+g)/2+l,g+l,(c+g)/2+l,g/2);b.end();b.stroke()};mxCellRenderer.registerShape("requires",na);mxUtils.extend(ga,mxShape);
+ga.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);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",ga);mxUtils.extend(ja,mxShape);ja.prototype.inset=2;ja.prototype.paintBackground=function(b,d,f,c,e){var g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(d,f);b.ellipse(0,g,c-2*g,e-2*g);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",ja);mxUtils.extend(ma,mxCylinder);ma.prototype.jettyWidth=20;ma.prototype.jettyHeight=10;ma.prototype.redrawPath=function(b,d,f,c,e,g){var l=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));f=l/2;var l=f+l/2,z=Math.min(d,e-d),k=Math.min(z+2*d,e-d);g?(b.moveTo(f,z),b.lineTo(l,z),b.lineTo(l,z+d),b.lineTo(f,z+d),b.moveTo(f,
+k),b.lineTo(l,k),b.lineTo(l,k+d),b.lineTo(f,k+d)):(b.moveTo(f,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(f,e),b.lineTo(f,k+d),b.lineTo(0,k+d),b.lineTo(0,k),b.lineTo(f,k),b.lineTo(f,z+d),b.lineTo(0,z+d),b.lineTo(0,z),b.lineTo(f,z),b.close());b.end()};mxCellRenderer.registerShape("module",ma);mxUtils.extend(oa,mxCylinder);oa.prototype.jettyWidth=32;oa.prototype.jettyHeight=12;oa.prototype.redrawPath=function(b,d,f,c,e,g){var l=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,
+"jettyHeight",this.jettyHeight));f=l/2;var l=f+l/2,z=.3*e-d/2,k=.7*e-d/2;g?(b.moveTo(f,z),b.lineTo(l,z),b.lineTo(l,z+d),b.lineTo(f,z+d),b.moveTo(f,k),b.lineTo(l,k),b.lineTo(l,k+d),b.lineTo(f,k+d)):(b.moveTo(f,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(f,e),b.lineTo(f,k+d),b.lineTo(0,k+d),b.lineTo(0,k),b.lineTo(f,k),b.lineTo(f,z+d),b.lineTo(0,z+d),b.lineTo(0,z),b.lineTo(f,z),b.close());b.end()};mxCellRenderer.registerShape("component",oa);mxUtils.extend(ka,mxRectangleShape);ka.prototype.paintForeground=
+function(b,d,f,c,e){var g=c/2,l=e/2,z=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b.begin();this.addPoints(b,[new mxPoint(d+g,f),new mxPoint(d+c,f+l),new mxPoint(d+g,f+e),new mxPoint(d,f+l)],this.isRounded,z,!0);b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",ka);mxUtils.extend(Z,mxDoubleEllipse);Z.prototype.outerStroke=!0;Z.prototype.paintVertexShape=function(b,d,f,c,e){var g=Math.min(4,
+Math.min(c/5,e/5));0<c&&0<e&&(b.ellipse(d+g,f+g,c-2*g,e-2*g),b.fillAndStroke());b.setShadow(!1);this.outerStroke&&(b.ellipse(d,f,c,e),b.stroke())};mxCellRenderer.registerShape("endState",Z);mxUtils.extend(ca,Z);ca.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",ca);mxUtils.extend(R,mxArrowConnector);R.prototype.defaultWidth=4;R.prototype.isOpenEnded=function(){return!0};R.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,
+this.strokewidth-1)};R.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",R);mxUtils.extend(ra,mxArrowConnector);ra.prototype.defaultWidth=10;ra.prototype.defaultArrowWidth=20;ra.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};ra.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ra.prototype.getEdgeWidth=
+function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ra);mxUtils.extend(V,mxActor);V.prototype.size=30;V.prototype.isRoundable=function(){return!0};V.prototype.redrawPath=function(b,d,f,c,e){d=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));f=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,f,!0);b.end()};mxCellRenderer.registerShape("manualInput",V);mxUtils.extend(U,mxRectangleShape);U.prototype.dx=20;U.prototype.dy=20;U.prototype.isHtmlAllowed=function(){return!1};U.prototype.paintForeground=function(b,d,f,c,e){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var g=0;if(this.isRounded)var l=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.max(g,Math.min(c*l,e*l));l=Math.max(g,
+Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));g=Math.max(g,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));b.begin();b.moveTo(d,f+g);b.lineTo(d+c,f+g);b.end();b.stroke();b.begin();b.moveTo(d+l,f);b.lineTo(d+l,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("internalStorage",U);mxUtils.extend(la,mxActor);la.prototype.dx=20;la.prototype.dy=20;la.prototype.redrawPath=function(b,d,f,c,e){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",
+this.dx))));f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var 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,f),new mxPoint(d,f),new mxPoint(d,e),new mxPoint(0,e)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("corner",la);mxUtils.extend(ta,mxActor);ta.prototype.redrawPath=function(b,d,f,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",ta);mxUtils.extend(S,mxActor);S.prototype.dx=20;S.prototype.dy=20;S.prototype.redrawPath=function(b,d,f,c,e){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var 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,f),new mxPoint((c+d)/2,f),new mxPoint((c+d)/2,e),new mxPoint((c-d)/2,e),new mxPoint((c-d)/2,f),new mxPoint(0,f)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("tee",S);mxUtils.extend(fa,mxActor);fa.prototype.arrowWidth=.3;fa.prototype.arrowSize=.2;fa.prototype.redrawPath=function(b,d,f,c,e){var g=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))));f=(e-g)/2;var g=f+g,l=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,f),new mxPoint(c-d,f),new mxPoint(c-d,0),new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(c-d,g),new mxPoint(0,g)],this.isRounded,l,!0);b.end()};mxCellRenderer.registerShape("singleArrow",fa);mxUtils.extend(ia,mxActor);ia.prototype.redrawPath=function(b,
d,f,c,e){var g=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",fa.prototype.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",fa.prototype.arrowSize))));f=(e-g)/2;var g=f+g,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,f),new mxPoint(c-d,f),new mxPoint(c-d,0),new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(c-d,g),new mxPoint(d,
-g),new mxPoint(d,e)],this.isRounded,l,!0);b.end()};mxCellRenderer.registerShape("doubleArrow",ia);mxUtils.extend(ja,mxActor);ja.prototype.size=.1;ja.prototype.fixedSize=20;ja.prototype.redrawPath=function(b,d,f,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",ja);mxUtils.extend(oa,mxActor);oa.prototype.redrawPath=function(b,d,f,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",oa);mxUtils.extend(ua,mxActor);ua.prototype.redrawPath=function(b,d,f,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",ua);mxUtils.extend(P,mxActor);
-P.prototype.size=20;P.prototype.isRoundable=function(){return!0};P.prototype.redrawPath=function(b,d,f,c,e){d=Math.min(c/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=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,f,!0);b.end()};mxCellRenderer.registerShape("loopLimit",P);mxUtils.extend(da,mxActor);
-da.prototype.size=.375;da.prototype.isRoundable=function(){return!0};da.prototype.redrawPath=function(b,d,f,c,e){d=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));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,e-d),new mxPoint(c/2,e),new mxPoint(0,e-d)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("offPageConnector",da);mxUtils.extend(wa,mxEllipse);
-wa.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/2,f+e);b.lineTo(d+c,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("tapeData",wa);mxUtils.extend(ya,mxEllipse);ya.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d,f+e/2);b.lineTo(d+c,f+e/2);b.end();b.stroke();b.begin();b.moveTo(d+c/2,f);b.lineTo(d+c/2,f+e);b.end();b.stroke()};
-mxCellRenderer.registerShape("orEllipse",ya);mxUtils.extend(ra,mxEllipse);ra.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d+.145*c,f+.145*e);b.lineTo(d+.855*c,f+.855*e);b.end();b.stroke();b.begin();b.moveTo(d+.855*c,f+.145*e);b.lineTo(d+.145*c,f+.855*e);b.end();b.stroke()};mxCellRenderer.registerShape("sumEllipse",ra);mxUtils.extend(za,mxRhombus);za.prototype.paintVertexShape=function(b,d,f,c,e){mxRhombus.prototype.paintVertexShape.apply(this,
-arguments);b.setShadow(!1);b.begin();b.moveTo(d,f+e/2);b.lineTo(d+c,f+e/2);b.end();b.stroke()};mxCellRenderer.registerShape("sortShape",za);mxUtils.extend(Aa,mxEllipse);Aa.prototype.paintVertexShape=function(b,d,f,c,e){b.begin();b.moveTo(d,f);b.lineTo(d+c,f);b.lineTo(d+c/2,f+e/2);b.close();b.fillAndStroke();b.begin();b.moveTo(d,f+e);b.lineTo(d+c,f+e);b.lineTo(d+c/2,f+e/2);b.close();b.fillAndStroke()};mxCellRenderer.registerShape("collate",Aa);mxUtils.extend(Da,mxEllipse);Da.prototype.paintVertexShape=
+g),new mxPoint(d,e)],this.isRounded,l,!0);b.end()};mxCellRenderer.registerShape("doubleArrow",ia);mxUtils.extend(ba,mxActor);ba.prototype.size=.1;ba.prototype.fixedSize=20;ba.prototype.redrawPath=function(b,d,f,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",ba);mxUtils.extend(za,mxActor);za.prototype.redrawPath=function(b,d,f,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",za);mxUtils.extend(va,mxActor);va.prototype.redrawPath=function(b,d,f,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",va);mxUtils.extend(P,mxActor);
+P.prototype.size=20;P.prototype.isRoundable=function(){return!0};P.prototype.redrawPath=function(b,d,f,c,e){d=Math.min(c/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=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,f,!0);b.end()};mxCellRenderer.registerShape("loopLimit",P);mxUtils.extend(ea,mxActor);
+ea.prototype.size=.375;ea.prototype.isRoundable=function(){return!0};ea.prototype.redrawPath=function(b,d,f,c,e){d=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));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,e-d),new mxPoint(c/2,e),new mxPoint(0,e-d)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("offPageConnector",ea);mxUtils.extend(wa,mxEllipse);
+wa.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/2,f+e);b.lineTo(d+c,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("tapeData",wa);mxUtils.extend(xa,mxEllipse);xa.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d,f+e/2);b.lineTo(d+c,f+e/2);b.end();b.stroke();b.begin();b.moveTo(d+c/2,f);b.lineTo(d+c/2,f+e);b.end();b.stroke()};
+mxCellRenderer.registerShape("orEllipse",xa);mxUtils.extend(pa,mxEllipse);pa.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d+.145*c,f+.145*e);b.lineTo(d+.855*c,f+.855*e);b.end();b.stroke();b.begin();b.moveTo(d+.855*c,f+.145*e);b.lineTo(d+.145*c,f+.855*e);b.end();b.stroke()};mxCellRenderer.registerShape("sumEllipse",pa);mxUtils.extend(Aa,mxRhombus);Aa.prototype.paintVertexShape=function(b,d,f,c,e){mxRhombus.prototype.paintVertexShape.apply(this,
+arguments);b.setShadow(!1);b.begin();b.moveTo(d,f+e/2);b.lineTo(d+c,f+e/2);b.end();b.stroke()};mxCellRenderer.registerShape("sortShape",Aa);mxUtils.extend(Ba,mxEllipse);Ba.prototype.paintVertexShape=function(b,d,f,c,e){b.begin();b.moveTo(d,f);b.lineTo(d+c,f);b.lineTo(d+c/2,f+e/2);b.close();b.fillAndStroke();b.begin();b.moveTo(d,f+e);b.lineTo(d+c,f+e);b.lineTo(d+c/2,f+e/2);b.close();b.fillAndStroke()};mxCellRenderer.registerShape("collate",Ba);mxUtils.extend(Da,mxEllipse);Da.prototype.paintVertexShape=
function(b,d,f,c,e){var g=f+e-5;b.begin();b.moveTo(d,f);b.lineTo(d,f+e);b.moveTo(d,g);b.lineTo(d+10,g-5);b.moveTo(d,g);b.lineTo(d+10,g+5);b.moveTo(d,g);b.lineTo(d+c,g);b.moveTo(d+c,f);b.lineTo(d+c,f+e);b.moveTo(d+c,g);b.lineTo(d+c-10,g-5);b.moveTo(d+c,g);b.lineTo(d+c-10,g+5);b.end();b.stroke()};mxCellRenderer.registerShape("dimension",Da);mxUtils.extend(Ea,mxEllipse);Ea.prototype.paintVertexShape=function(b,d,f,c,e){this.outline||b.setStrokeColor(null);if(null!=this.style){var g=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,f,c,e);b.fill();b.pointerEvents=g;b.setStrokeColor(this.stroke);b.begin();b.moveTo(d,f);this.outline||"1"==mxUtils.getValue(this.style,"top","1")?b.lineTo(d+c,f):b.moveTo(d+c,f);this.outline||"1"==mxUtils.getValue(this.style,"right","1")?b.lineTo(d+c,f+e):b.moveTo(d+c,f+e);this.outline||"1"==mxUtils.getValue(this.style,"bottom","1")?b.lineTo(d,f+e):b.moveTo(d,
f+e);(this.outline||"1"==mxUtils.getValue(this.style,"left","1"))&&b.lineTo(d,f);b.end();b.stroke()}};mxCellRenderer.registerShape("partialRectangle",Ea);mxUtils.extend(Ka,mxEllipse);Ka.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();"vertical"==mxUtils.getValue(this.style,"line")?(b.moveTo(d+c/2,f),b.lineTo(d+c/2,f+e)):(b.moveTo(d,f+e/2),b.lineTo(d+c,f+e/2));b.end();b.stroke()};mxCellRenderer.registerShape("lineEllipse",
-Ka);mxUtils.extend(Ba,mxActor);Ba.prototype.redrawPath=function(b,d,f,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",Ba);mxUtils.extend(Ha,mxActor);Ha.prototype.size=.2;Ha.prototype.redrawPath=function(b,d,f,c,e){d=Math.min(e,c);var g=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=(e-g)/2;f=d+g;var l=(c-g)/2,g=l+g;b.moveTo(0,d);b.lineTo(l,d);b.lineTo(l,
+Ka);mxUtils.extend(Ca,mxActor);Ca.prototype.redrawPath=function(b,d,f,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",Ca);mxUtils.extend(Ha,mxActor);Ha.prototype.size=.2;Ha.prototype.redrawPath=function(b,d,f,c,e){d=Math.min(e,c);var g=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=(e-g)/2;f=d+g;var l=(c-g)/2,g=l+g;b.moveTo(0,d);b.lineTo(l,d);b.lineTo(l,
0);b.lineTo(g,0);b.lineTo(g,d);b.lineTo(c,d);b.lineTo(c,f);b.lineTo(g,f);b.lineTo(g,e);b.lineTo(l,e);b.lineTo(l,f);b.lineTo(0,f);b.close();b.end()};mxCellRenderer.registerShape("cross",Ha);mxUtils.extend(Fa,mxActor);Fa.prototype.size=.25;Fa.prototype.redrawPath=function(b,d,f,c,e){d=Math.min(c,e/2);f=Math.min(c-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);b.moveTo(0,e/2);b.lineTo(f,0);b.lineTo(c-d,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,c-d,e);b.lineTo(f,e);b.close();b.end()};
-mxCellRenderer.registerShape("display",Fa);mxUtils.extend(V,mxActor);V.prototype.cst={RECT2:"mxgraph.basic.rect"};V.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",
+mxCellRenderer.registerShape("display",Fa);mxUtils.extend(X,mxActor);X.prototype.cst={RECT2:"mxgraph.basic.rect"};X.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"}]}];V.prototype.paintVertexShape=
-function(b,d,f,c,e){b.translate(d,f);this.strictDrawShape(b,0,0,c,e)};V.prototype.strictDrawShape=function(b,d,f,c,e,g){var l=g&&g.rectStyle?g.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=g&&g.absoluteCornerSize?g.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),m=g&&g.size?g.size:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),q=g&&g.rectOutline?g.rectOutline:mxUtils.getValue(this.style,"rectOutline",
-this.rectOutline),n=g&&g.indent?g.indent:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),G=g&&g.dashed?g.dashed:mxUtils.getValue(this.style,"dashed",!1),z=g&&g.dashPattern?g.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),v=g&&g.relIndent?g.relIndent:Math.max(0,Math.min(50,n)),u=g&&g.top?g.top:mxUtils.getValue(this.style,"top",!0),p=g&&g.right?g.right:mxUtils.getValue(this.style,"right",!0),A=g&&g.bottom?g.bottom:mxUtils.getValue(this.style,"bottom",
-!0),x=g&&g.left?g.left:mxUtils.getValue(this.style,"left",!0),J=g&&g.topLeftStyle?g.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),t=g&&g.topRightStyle?g.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),I=g&&g.bottomRightStyle?g.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),y=g&&g.bottomLeftStyle?g.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),B=g&&g.fillColor?g.fillColor:mxUtils.getValue(this.style,"fillColor",
-"#ffffff");g&&g.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var C=g&&g.strokeWidth?g.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),Z=g&&g.fillColor2?g.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),N=g&&g.gradientColor2?g.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),aa=g&&g.gradientDirection2?g.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),sa=g&&g.opacity?g.opacity:mxUtils.getValue(this.style,"opacity",
-"100"),ea=Math.max(0,Math.min(50,m));g=V.prototype;b.setDashed(G);z&&""!=z&&b.setDashPattern(z);b.setStrokeWidth(C);m=Math.min(.5*e,.5*c,m);k||(m=ea*Math.min(c,e)/100);m=Math.min(m,.5*Math.min(c,e));k||(n=Math.min(v*Math.min(c,e)/100));n=Math.min(n,.5*Math.min(c,e)-m);(u||p||A||x)&&"frame"!=q&&(b.begin(),u?g.moveNW(b,d,f,c,e,l,J,m,x):b.moveTo(0,0),u&&g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),p&&g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),A&&g.paintSE(b,d,f,c,e,l,
-I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),x&&g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(Z),G=k=sa,"none"==Z&&(k=0),"none"==N&&(G=0),b.setGradient(Z,N,0,0,c,e,aa,k,G),b.begin(),u?g.moveNWInner(b,d,f,c,e,l,J,m,n,u,x):b.moveTo(n,0),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),x&&A&&g.paintSWInner(b,d,f,c,e,l,y,m,n,A),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),A&&p&&g.paintSEInner(b,d,f,c,e,l,I,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),p&&
-u&&g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),u&&x&&g.paintNWInner(b,d,f,c,e,l,J,m,n),b.fill(),"none"==B&&(b.begin(),g.paintFolds(b,d,f,c,e,l,J,t,I,y,m,u,p,A,x),b.stroke()));u||p||A||!x?u||p||!A||x?!u&&!p&&A&&x?"frame"!=q?(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),"double"==q&&(g.moveNWInner(b,d,f,c,e,l,J,m,n,u,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),g.paintSWInner(b,d,f,c,e,l,
-y,m,n,A),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.lineNWInner(b,d,f,c,e,l,J,m,n,u,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,A),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),b.close(),b.fillAndStroke()):u||!p||A||x?!u&&p&&!A&&x?"frame"!=q?(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),"double"==q&&(g.moveNWInner(b,
-d,f,c,e,l,J,m,n,u,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x)),b.stroke(),b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),"double"==q&&(g.moveSEInner(b,d,f,c,e,l,I,m,n,A),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.lineNWInner(b,d,f,c,e,l,J,m,n,u,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),b.close(),b.fillAndStroke(),b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),g.lineSEInner(b,
-d,f,c,e,l,I,m,n,A),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),b.close(),b.fillAndStroke()):!u&&p&&A&&!x?"frame"!=q?(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),g.paintSEInner(b,d,f,c,e,l,I,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,
-d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.lineSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),g.paintSEInner(b,d,f,c,e,l,I,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),b.close(),b.fillAndStroke()):!u&&p&&A&&x?"frame"!=q?(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),"double"==q&&(g.moveNWInner(b,d,f,c,e,l,J,m,n,u,x),g.paintLeftInner(b,
-d,f,c,e,l,y,m,n,A,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,A),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),g.paintSEInner(b,d,f,c,e,l,I,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.lineNWInner(b,d,f,c,e,l,J,m,n,u,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,A),g.paintBottomInner(b,
-d,f,c,e,l,I,m,n,p,A),g.paintSEInner(b,d,f,c,e,l,I,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),b.close(),b.fillAndStroke()):!u||p||A||x?u&&!p&&!A&&x?"frame"!=q?(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),"double"==q&&(g.moveNEInner(b,d,f,c,e,l,t,m,n,p),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,
-A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.lineNEInner(b,d,f,c,e,l,t,m,n,p),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),b.close(),b.fillAndStroke()):u&&!p&&A&&!x?"frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),"double"==q&&(g.moveNEInner(b,d,f,c,e,l,t,m,n,p),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u)),b.stroke(),b.begin(),g.moveSE(b,d,f,c,e,l,I,m,p),
-g.paintBottom(b,d,f,c,e,l,y,m,x),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.lineNEInner(b,d,f,c,e,l,t,m,n,p),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),b.close(),b.fillAndStroke(),b.begin(),g.moveSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.lineSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),b.close(),b.fillAndStroke()):u&&!p&&A&&x?"frame"!=
-q?(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),"double"==q&&(g.moveNEInner(b,d,f,c,e,l,t,m,n,p),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,A),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,
-d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.lineNEInner(b,d,f,c,e,l,t,m,n,p),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,A),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),b.close(),b.fillAndStroke()):u&&p&&!A&&!x?"frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.paintNE(b,d,f,c,
-e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),"double"==q&&(g.moveSEInner(b,d,f,c,e,l,I,m,n,A),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),g.lineSEInner(b,d,f,c,e,l,I,m,n,A),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),b.close(),
-b.fillAndStroke()):u&&p&&!A&&x?"frame"!=q?(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),"double"==q&&(g.moveSEInner(b,d,f,c,e,l,I,m,n,A),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x)),b.stroke()):(b.begin(),g.moveSW(b,
-d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),g.lineSEInner(b,d,f,c,e,l,I,m,n,A),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),b.close(),b.fillAndStroke()):u&&p&&A&&!x?"frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,
-e,l,t,m,p),g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),g.paintSEInner(b,d,f,c,e,l,I,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,
-f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.lineSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),g.paintSEInner(b,d,f,c,e,l,I,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),b.close(),b.fillAndStroke()):u&&p&&A&&x&&("frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,
-c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),b.close(),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,A),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),g.paintSEInner(b,d,f,c,e,l,I,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),b.close()),
-b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),b.close(),g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,A),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),g.paintSEInner(b,d,f,c,e,l,I,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),g.paintNEInner(b,
-d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),b.close(),b.fillAndStroke())):"frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),"double"==q&&(g.moveNEInner(b,d,f,c,e,l,t,m,n,p),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.lineNEInner(b,d,f,c,e,l,t,m,n,p),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),b.close(),b.fillAndStroke()):
-"frame"!=q?(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),"double"==q&&(g.moveSEInner(b,d,f,c,e,l,I,m,n,A),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),g.lineSEInner(b,d,f,c,e,l,I,m,n,A),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,
-d,f,c,e,l,I,m,n,p,A)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.lineSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),"double"==q&&(g.moveNWInner(b,d,f,c,e,l,J,m,n,u,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.lineNWInner(b,d,f,c,e,l,J,m,n,u,
-x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),b.close(),b.fillAndStroke());b.begin();g.paintFolds(b,d,f,c,e,l,J,t,I,y,m,u,p,A,x);b.stroke()};V.prototype.moveNW=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(0,0):b.moveTo(0,m)};V.prototype.moveNE=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(c,0):b.moveTo(c-m,0)};V.prototype.moveSE=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(c,e):b.moveTo(c,e-m)};V.prototype.moveSW=
-function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(0,e):b.moveTo(m,e)};V.prototype.paintNW=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,m,0)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(m,0);else b.lineTo(0,0)};V.prototype.paintTop=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==
-l&&"square"==g||!k?b.lineTo(c,0):b.lineTo(c-m,0)};V.prototype.paintNE=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,c,m)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c,m);else b.lineTo(c,0)};V.prototype.paintRight=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.lineTo(c,e):b.lineTo(c,e-m)};
-V.prototype.paintLeft=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.lineTo(0,0):b.lineTo(0,m)};V.prototype.paintSE=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,c-m,e)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-m,e);else b.lineTo(c,e)};V.prototype.paintBottom=function(b,d,f,c,e,g,l,
-m,k){"square"==l||"default"==l&&"square"==g||!k?b.lineTo(0,e):b.lineTo(m,e)};V.prototype.paintSW=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,0,e-m)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(0,e-m);else b.lineTo(0,e)};V.prototype.paintNWInner=function(b,d,f,c,e,g,l,m,k){if("rounded"==l||"default"==l&&"rounded"==
-g)b.arcTo(m-.5*k,m-.5*k,0,0,0,k,.5*k+m);else if("invRound"==l||"default"==l&&"invRound"==g)b.arcTo(m+k,m+k,0,0,1,k,k+m);else if("snip"==l||"default"==l&&"snip"==g)b.lineTo(k,.5*k+m);else if("fold"==l||"default"==l&&"fold"==g)b.lineTo(k+m,k+m),b.lineTo(k,k+m)};V.prototype.paintTopInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(0,k):n&&!q?b.lineTo(k,0):n?"square"==l||"default"==l&&"square"==g?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(m+
-.5*k,k):b.lineTo(m+k,k):b.lineTo(0,k):b.lineTo(0,0)};V.prototype.paintNEInner=function(b,d,f,c,e,g,l,m,k){if("rounded"==l||"default"==l&&"rounded"==g)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-m-.5*k,k);else if("invRound"==l||"default"==l&&"invRound"==g)b.arcTo(m+k,m+k,0,0,1,c-m-k,k);else if("snip"==l||"default"==l&&"snip"==g)b.lineTo(c-m-.5*k,k);else if("fold"==l||"default"==l&&"fold"==g)b.lineTo(c-m-k,m+k),b.lineTo(c-m-k,k)};V.prototype.paintRightInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(c-k,
-0):n&&!q?b.lineTo(c,k):n?"square"==l||"default"==l&&"square"==g?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-k,m+.5*k):b.lineTo(c-k,m+k):b.lineTo(c-k,0):b.lineTo(c,0)};V.prototype.paintLeftInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(k,e):n&&!q?b.lineTo(0,e-k):n?"square"==l||"default"==l&&"square"==g?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(k,e-m-.5*k):b.lineTo(k,e-
-m-k):b.lineTo(k,e):b.lineTo(0,e)};V.prototype.paintSEInner=function(b,d,f,c,e,g,l,m,k){if("rounded"==l||"default"==l&&"rounded"==g)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-k,e-m-.5*k);else if("invRound"==l||"default"==l&&"invRound"==g)b.arcTo(m+k,m+k,0,0,1,c-k,e-m-k);else if("snip"==l||"default"==l&&"snip"==g)b.lineTo(c-k,e-m-.5*k);else if("fold"==l||"default"==l&&"fold"==g)b.lineTo(c-m-k,e-m-k),b.lineTo(c-k,e-m-k)};V.prototype.paintBottomInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(c,e-k):n&&!q?
-b.lineTo(c-k,e):"square"==l||"default"==l&&"square"==g||!n?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-m-.5*k,e-k):b.lineTo(c-m-k,e-k):b.lineTo(c,e)};V.prototype.paintSWInner=function(b,d,f,c,e,g,l,m,k,n){if(!n)b.lineTo(k,e);else if("square"==l||"default"==l&&"square"==g)b.lineTo(k,e-k);else if("rounded"==l||"default"==l&&"rounded"==g)b.arcTo(m-.5*k,m-.5*k,0,0,0,m+.5*k,e-k);else if("invRound"==l||"default"==l&&"invRound"==g)b.arcTo(m+k,
-m+k,0,0,1,m+k,e-k);else if("snip"==l||"default"==l&&"snip"==g)b.lineTo(m+.5*k,e-k);else if("fold"==l||"default"==l&&"fold"==g)b.lineTo(k+m,e-m-k),b.lineTo(k+m,e-k)};V.prototype.moveSWInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g?b.moveTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(k,e-m-k):b.moveTo(0,e-k)};V.prototype.lineSWInner=
-function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(k,e-m-k):b.lineTo(0,e-k)};V.prototype.moveSEInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g?b.moveTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(c-
-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(c-k,e-m-k):b.moveTo(c-k,e)};V.prototype.lineSEInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-k,e-m-k):b.lineTo(c-k,e)};V.prototype.moveNEInner=function(b,d,f,
-c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g||n?b.moveTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(c-k,m+k):b.moveTo(c,k)};V.prototype.lineNEInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g||n?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-k,m+.5*k):("invRound"==
-l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-k,m+k):b.lineTo(c,k)};V.prototype.moveNWInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.moveTo(k,0):n&&!q?b.moveTo(0,k):"square"==l||"default"==l&&"square"==g?b.moveTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(k,m+k):b.moveTo(0,0)};V.prototype.lineNWInner=function(b,d,
-f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(k,0):n&&!q?b.lineTo(0,k):"square"==l||"default"==l&&"square"==g?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(k,m+k):b.lineTo(0,0)};V.prototype.paintFolds=function(b,d,f,c,e,g,l,m,k,n,q,G,u,A,p){if("fold"==g||"fold"==l||"fold"==m||"fold"==k||"fold"==n)("fold"==l||"default"==l&&"fold"==g)&&G&&p&&(b.moveTo(0,
-q),b.lineTo(q,q),b.lineTo(q,0)),("fold"==m||"default"==m&&"fold"==g)&&G&&u&&(b.moveTo(c-q,0),b.lineTo(c-q,q),b.lineTo(c,q)),("fold"==k||"default"==k&&"fold"==g)&&A&&u&&(b.moveTo(c-q,e),b.lineTo(c-q,e-q),b.lineTo(c,e-q)),("fold"==n||"default"==n&&"fold"==g)&&A&&p&&(b.moveTo(0,e-q),b.lineTo(q,e-q),b.lineTo(q,e))};mxCellRenderer.registerShape(V.prototype.cst.RECT2,V);V.prototype.constraints=null;mxUtils.extend(xa,mxConnector);xa.prototype.origPaintEdgeShape=xa.prototype.paintEdgeShape;xa.prototype.paintEdgeShape=
-function(b,d,f){for(var c=[],e=0;e<d.length;e++)c.push(mxUtils.clone(d[e]));var e=b.state.dashed,g=b.state.fixDash;xa.prototype.origPaintEdgeShape.apply(this,[b,c,f]);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,g),xa.prototype.origPaintEdgeShape.apply(this,[b,d,f])))};mxCellRenderer.registerShape("filledEdge",xa);"undefined"!==typeof StyleFormatPanel&&function(){var b=StyleFormatPanel.prototype.getCustomColors;
-StyleFormatPanel.prototype.getCustomColors=function(){var d=this.format.getSelectionState(),f=b.apply(this,arguments);"umlFrame"==d.style.shape&&f.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return f}}();mxMarker.addMarker("dash",function(b,d,f,c,e,g,l,m,k,n){var q=e*(l+k+1),G=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-q/2-G/2,c.y-G/2+q/2);b.lineTo(c.x+G/2-3*q/2,c.y-3*G/2-q/2);b.stroke()}});mxMarker.addMarker("box",function(b,d,f,c,e,g,l,m,k,n){var q=
-e*(l+k+1),G=g*(l+k+1),u=c.x+q/2,A=c.y+G/2;c.x-=q;c.y-=G;return function(){b.begin();b.moveTo(u-q/2-G/2,A-G/2+q/2);b.lineTo(u-q/2+G/2,A-G/2-q/2);b.lineTo(u+G/2-3*q/2,A-3*G/2-q/2);b.lineTo(u-G/2-3*q/2,A-3*G/2+q/2);b.close();n?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,f,c,e,g,l,m,k,n){var q=e*(l+k+1),G=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-q/2-G/2,c.y-G/2+q/2);b.lineTo(c.x+G/2-3*q/2,c.y-3*G/2-q/2);b.moveTo(c.x-q/2+G/2,c.y-G/2-q/2);b.lineTo(c.x-G/2-3*q/2,c.y-
-3*G/2+q/2);b.stroke()}});mxMarker.addMarker("circle",Oa);mxMarker.addMarker("circlePlus",function(b,d,f,c,e,g,l,m,k,n){var q=c.clone(),G=Oa.apply(this,arguments),u=e*(l+2*k),A=g*(l+2*k);return function(){G.apply(this,arguments);b.begin();b.moveTo(q.x-e*k,q.y-g*k);b.lineTo(q.x-2*u+e*k,q.y-2*A+g*k);b.moveTo(q.x-u-A+g*k,q.y-A+u-e*k);b.lineTo(q.x+A-u-g*k,q.y-A-u+e*k);b.stroke()}});mxMarker.addMarker("halfCircle",function(b,d,f,c,e,g,l,m,k,n){var q=e*(l+k+1),G=g*(l+k+1),u=c.clone();c.x-=q;c.y-=G;return function(){b.begin();
-b.moveTo(u.x-G,u.y+q);b.quadTo(c.x-G,c.y+q,c.x,c.y);b.quadTo(c.x+G,c.y-q,u.x+G,u.y-q);b.stroke()}});mxMarker.addMarker("async",function(b,d,f,c,e,g,l,m,k,q){d=e*k*1.118;f=g*k*1.118;e*=l+k;g*=l+k;var n=c.clone();n.x-=d;n.y-=f;c.x+=1*-e-d;c.y+=1*-g-f;return function(){b.begin();b.moveTo(n.x,n.y);m?b.lineTo(n.x-e-g/2,n.y-g+e/2):b.lineTo(n.x+g/2-e,n.y-g-e/2);b.lineTo(n.x-e,n.y-g);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",function(b){b=null!=b?b:2;return function(d,f,c,
-e,g,l,m,k,n,q){g*=m+n;l*=m+n;var G=e.clone();return function(){d.begin();d.moveTo(G.x,G.y);k?d.lineTo(G.x-g-l/b,G.y-l+g/b):d.lineTo(G.x+l/b-g,G.y-l-g/b);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ya=function(b,d,f){return Na(b,["width"],d,function(d,c,e,g,l){l=b.shape.getEdgeWidth()*b.view.scale+f;return new mxPoint(g.x+c*d/4+e*l/2,g.y+e*d/4-c*l/2)},function(d,c,e,g,l,m){d=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));b.style.width=Math.round(2*d)/b.view.scale-f})},Na=
-function(b,d,f,c,e){return ha(b,d,function(d){var e=b.absolutePoints,g=e.length-1;d=b.view.translate;var l=b.view.scale,m=f?e[0]:e[g],e=f?e[1]:e[g-1],g=e.x-m.x,k=e.y-m.y,n=Math.sqrt(g*g+k*k),m=c.call(this,n,g/n,k/n,m,e);return new mxPoint(m.x/l-d.x,m.y/l-d.y)},function(d,c,g){var l=b.absolutePoints,m=l.length-1;d=b.view.translate;var k=b.view.scale,n=f?l[0]:l[m],l=f?l[1]:l[m-1],m=l.x-n.x,q=l.y-n.y,G=Math.sqrt(m*m+q*q);c.x=(c.x+d.x)*k;c.y=(c.y+d.y)*k;e.call(this,G,m/G,q/G,n,l,c,g)})},Ia=function(b){return function(d){return[ha(d,
-["arrowWidth","arrowSize"],function(d){var f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",fa.prototype.arrowWidth))),c=Math.max(0,Math.min(b,mxUtils.getValue(this.state.style,"arrowSize",fa.prototype.arrowSize)));return new mxPoint(d.x+(1-c)*d.width,d.y+(1-f)*d.height/2)},function(d,f){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(d.y+d.height/2-f.y)/d.height*2));this.state.style.arrowSize=Math.max(0,Math.min(b,(d.x+d.width-f.x)/d.width))})]}},Za=function(b){return function(d){return[ha(d,
-["size"],function(d){var f=Math.max(0,Math.min(.5*d.height,parseFloat(mxUtils.getValue(this.state.style,"size",b))));return new mxPoint(d.x,d.y+f)},function(b,d){this.state.style.size=Math.max(0,d.y-b.y)},!0)]}},Ta=function(b,d,f){return function(c){var e=[ha(c,["size"],function(f){var c=Math.max(0,Math.min(f.width,Math.min(f.height,parseFloat(mxUtils.getValue(this.state.style,"size",d)))))*b;return new mxPoint(f.x+c,f.y+c)},function(d,f){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(d.width,
-f.x-d.x),Math.min(d.height,f.y-d.y)))/b)},!1)];f&&mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(Ga(c));return e}},Pa=function(b,d,f,c,e){f=null!=f?f:.5;return function(g){var l=[ha(g,["size"],function(d){var f=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,c=parseFloat(mxUtils.getValue(this.state.style,"size",f?e:b));return new mxPoint(d.x+Math.max(0,Math.min(.5*d.width,c*(f?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(f,(d.x-b.x)/b.width));this.state.style.size=b},!1,c)];d&&mxUtils.getValue(g.style,mxConstants.STYLE_ROUNDED,!1)&&l.push(Ga(g));return l}},Va=function(b,d,f){b=null!=b?b:.5;return function(c){var e=[ha(c,["size"],function(c){var e=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,g=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,"size",e?f:d)));return new mxPoint(c.x+Math.min(.75*c.width*b,g*(e?.75:.75*c.width)),c.y+c.height/4)},
-function(d,c){var e=null!=f&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?c.x-d.x:Math.max(0,Math.min(b,(c.x-d.x)/d.width*.75));this.state.style.size=e},!1,!0)];mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(Ga(c));return e}},Ma=function(){return function(b){var d=[];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d}},Ga=function(b,d){return ha(b,[mxConstants.STYLE_ARCSIZE],function(f){var c=null!=d?d:f.height/8;if("1"==mxUtils.getValue(b.style,
-mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(b.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(f.x+f.width-Math.min(f.width/2,e),f.y+c)}e=Math.max(0,parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(f.x+f.width-Math.min(Math.max(f.width/2,f.height/2),Math.min(f.width,f.height)*e),f.y+c)},function(d,f,c){"1"==mxUtils.getValue(b.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?
-this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(d.width,2*(d.x+d.width-f.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(d.width-f.x+d.x)/Math.min(d.width,d.height))))})},ha=function(b,d,f,c,e,g,l){var m=new mxHandle(b,null,mxVertexHandler.prototype.secondaryHandleImage);m.execute=function(b){for(var f=0;f<d.length;f++)this.copyStyle(d[f]);l&&l(b)};m.getPosition=f;m.setPosition=c;m.ignoreGrid=null!=e?e:!0;if(g){var k=m.positionChanged;
-m.positionChanged=function(){k.apply(this,arguments);b.view.invalidate(this.state.cell);b.view.validate()}}return m},Qa={link:function(b){return[Ya(b,!0,10),Ya(b,!1,10)]},flexArrow:function(b){var d=b.view.graph.gridSize/b.view.scale,f=[];mxUtils.getValue(b.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(f.push(Na(b,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(d,f,c,e,g){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;g=3*mxUtils.getNumber(b.style,
-mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+f*(g+b.shape.strokewidth*b.view.scale)+c*d/2,e.y+c*(g+b.shape.strokewidth*b.view.scale)-f*d/2)},function(f,c,e,g,l,m,k){f=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-c,m.x,m.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*f)/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_ENDSIZE]=
-b.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE])})),f.push(Na(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(d,f,c,e,g){d=(b.shape.getStartArrowWidth()-b.shape.strokewidth)*b.view.scale;g=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/
-5)*b.view.scale;return new mxPoint(e.x+f*(g+b.shape.strokewidth*b.view.scale)+c*d/2,e.y+c*(g+b.shape.strokewidth*b.view.scale)-f*d/2)},function(f,c,e,g,l,m,k){f=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-c,m.x,m.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.startWidth=Math.max(0,Math.round(2*f)-b.shape.getEdgeWidth())/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_ENDSIZE]=
-b.style[mxConstants.STYLE_STARTSIZE],b.style.endWidth=b.style.startWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(b.style.startWidth)-parseFloat(b.style.endWidth))<d&&(b.style.startWidth=b.style.endWidth))})));mxUtils.getValue(b.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(f.push(Na(b,
-["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,f,c,e,g){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;g=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+f*(g+b.shape.strokewidth*b.view.scale)-c*d/2,e.y+c*(g+b.shape.strokewidth*b.view.scale)+f*d/2)},function(f,c,e,g,l,m,k){f=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-c,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=
-Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*f)/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE])})),f.push(Na(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
-!1,function(d,f,c,e,g){d=(b.shape.getEndArrowWidth()-b.shape.strokewidth)*b.view.scale;g=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+f*(g+b.shape.strokewidth*b.view.scale)-c*d/2,e.y+c*(g+b.shape.strokewidth*b.view.scale)+f*d/2)},function(f,c,e,g,l,m,k){f=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-c,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(c-b.shape.strokewidth)/
-3)/100/b.view.scale;b.style.endWidth=Math.max(0,Math.round(2*f)-b.shape.getEdgeWidth())/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE],b.style.startWidth=b.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(b.style.endWidth)-
-parseFloat(b.style.startWidth))<d&&(b.style.endWidth=b.style.startWidth))})));return f},swimlane:function(b){var d=[];if(mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED)){var f=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));d.push(Ga(b,f/2))}d.push(ha(b,[mxConstants.STYLE_STARTSIZE],function(d){var f=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,
-1)?new mxPoint(d.getCenterX(),d.y+Math.max(0,Math.min(d.height,f))):new mxPoint(d.x+Math.max(0,Math.min(d.width,f)),d.getCenterY())},function(d,f){b.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(d.height,f.y-d.y))):Math.round(Math.max(0,Math.min(d.width,f.x-d.x)))},!1,null,function(d){if(mxEvent.isControlDown(d.getEvent())&&(d=b.view.graph,d.isTableRow(b.cell)||d.isTableCell(b.cell))){for(var f=d.getSwimlaneDirection(b.style),
-c=d.model.getParent(b.cell),c=d.model.getChildCells(c,!0),e=[],g=0;g<c.length;g++)c[g]!=b.cell&&d.isSwimlane(c[g])&&d.getSwimlaneDirection(d.getCurrentCellStyle(c[g]))==f&&e.push(c[g]);d.setCellStyles(mxConstants.STYLE_STARTSIZE,b.style[mxConstants.STYLE_STARTSIZE],e)}}));return d},label:Ma(),ext:Ma(),rectangle:Ma(),triangle:Ma(),rhombus:Ma(),umlLifeline:function(b){return[ha(b,["size"],function(b){var d=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",I.prototype.size))));
-return new mxPoint(b.getCenterX(),b.y+d)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},umlFrame:function(b){return[ha(b,["width","height"],function(b){var d=Math.max(X.prototype.corner,Math.min(b.width,mxUtils.getValue(this.state.style,"width",X.prototype.width))),f=Math.max(1.5*X.prototype.corner,Math.min(b.height,mxUtils.getValue(this.state.style,"height",X.prototype.height)));return new mxPoint(b.x+d,b.y+f)},function(b,d){this.state.style.width=
-Math.round(Math.max(X.prototype.corner,Math.min(b.width,d.x-b.x)));this.state.style.height=Math.round(Math.max(1.5*X.prototype.corner,Math.min(b.height,d.y-b.y)))},!1)]},process:function(b){var d=[ha(b,["size"],function(b){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),f=parseFloat(mxUtils.getValue(this.state.style,"size",E.prototype.size));return d?new mxPoint(b.x+f,b.y+b.height/4):new mxPoint(b.x+b.width*f,b.y+b.height/4)},function(b,d){var f="0"!=mxUtils.getValue(this.state.style,
-"fixedSize","0")?Math.max(0,Math.min(.5*b.width,d.x-b.x)):Math.max(0,Math.min(.5,(d.x-b.x)/b.width));this.state.style.size=f},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},cross:function(b){return[ha(b,["size"],function(b){var d=Math.min(b.width,b.height),d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",Ha.prototype.size)))*d/2;return new mxPoint(b.getCenterX()-d,b.getCenterY()-d)},function(b,d){var f=Math.min(b.width,b.height);this.state.style.size=
-Math.max(0,Math.min(1,Math.min(Math.max(0,b.getCenterY()-d.y)/f*2,Math.max(0,b.getCenterX()-d.x)/f*2)))})]},note:function(b){return[ha(b,["size"],function(b){var d=Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size)))));return new mxPoint(b.x+b.width-d,b.y+d)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,b.x+b.width-d.x),Math.min(b.height,d.y-b.y))))})]},note2:function(b){return[ha(b,["size"],function(b){var f=
-Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",d.prototype.size)))));return new mxPoint(b.x+b.width-f,b.y+f)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,b.x+b.width-d.x),Math.min(b.height,d.y-b.y))))})]},manualInput:function(b){var d=[ha(b,["size"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",U.prototype.size)));return new mxPoint(b.x+b.width/4,b.y+3*d/4)},function(b,
-d){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,4*(d.y-b.y)/3)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},dataStorage:function(b){return[ha(b,["size"],function(b){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),f=parseFloat(mxUtils.getValue(this.state.style,"size",d?ja.prototype.fixedSize:ja.prototype.size));return new mxPoint(b.x+b.width-f*(d?1:b.width),b.getCenterY())},function(b,d){var f="0"!=mxUtils.getValue(this.state.style,
-"fixedSize","0")?Math.max(0,Math.min(b.width,b.x+b.width-d.x)):Math.max(0,Math.min(1,(b.x+b.width-d.x)/b.width));this.state.style.size=f},!1)]},callout:function(b){var d=[ha(b,["size","position"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",B.prototype.size))),f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",B.prototype.position)));mxUtils.getValue(this.state.style,"base",B.prototype.base);return new mxPoint(b.x+f*b.width,b.y+b.height-
-d)},function(b,d){mxUtils.getValue(this.state.style,"base",B.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(b.height,b.y+b.height-d.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(d.x-b.x)/b.width)))/100},!1),ha(b,["position2"],function(b){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",B.prototype.position2)));return new mxPoint(b.x+d*b.width,b.y+b.height)},function(b,d){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,
-(d.x-b.x)/b.width)))/100},!1),ha(b,["base"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",B.prototype.size))),f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",B.prototype.position))),c=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"base",B.prototype.base)));return new mxPoint(b.x+Math.min(b.width,f*b.width+c),b.y+b.height-d)},function(b,d){var f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",B.prototype.position)));
-this.state.style.base=Math.round(Math.max(0,Math.min(b.width,d.x-b.x-f*b.width)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},internalStorage:function(b){var d=[ha(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",T.prototype.dx))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",T.prototype.dy)));return new mxPoint(b.x+d,b.y+f)},function(b,d){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,
-d.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},module:function(b){return[ha(b,["jettyWidth","jettyHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"jettyWidth",pa.prototype.jettyWidth))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"jettyHeight",pa.prototype.jettyHeight)));return new mxPoint(b.x+d/2,b.y+2*f)},function(b,
-d){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(b.height,d.y-b.y))/2)})]},corner:function(b){return[ha(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",na.prototype.dx))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",na.prototype.dy)));return new mxPoint(b.x+d,b.y+f)},function(b,d){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,
-d.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},tee:function(b){return[ha(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",S.prototype.dx))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",S.prototype.dy)));return new mxPoint(b.x+(b.width+d)/2,b.y+f)},function(b,d){this.state.style.dx=Math.round(Math.max(0,2*Math.min(b.width/2,d.x-b.x-b.width/2)));this.state.style.dy=Math.round(Math.max(0,
-Math.min(b.height,d.y-b.y)))},!1)]},singleArrow:Ia(1),doubleArrow:Ia(.5),folder:function(b){return[ha(b,["tabWidth","tabHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"tabWidth",n.prototype.tabWidth))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"tabHeight",n.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",n.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(d=b.width-d);return new mxPoint(b.x+d,b.y+f)},function(b,
-d){var f=Math.max(0,Math.min(b.width,d.x-b.x));mxUtils.getValue(this.state.style,"tabPosition",n.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(f=b.width-f);this.state.style.tabWidth=Math.round(f);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},document:function(b){return[ha(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.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[ha(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",y.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[ha(b,["isoAngle"],function(b){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,
-"isoAngle",f.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:Za(l.prototype.size),cylinder3:Za(m.prototype.size),offPageConnector:function(b){return[ha(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",da.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:Pa(L.prototype.size,!0,null,!0,L.prototype.fixedSize),hexagon:Pa(O.prototype.size,!0,.5,!0,O.prototype.fixedSize),curlyBracket:Pa(C.prototype.size,!1),display:Pa(Fa.prototype.size,!1),cube:Ta(1,c.prototype.size,!1),card:Ta(.5,v.prototype.size,!0),loopLimit:Ta(.5,P.prototype.size,!0),trapezoid:Va(.5,
-H.prototype.size,H.prototype.fixedSize),parallelogram:Va(1,D.prototype.size,D.prototype.fixedSize)};Graph.createHandle=ha;Graph.handleFactory=Qa;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=Qa[d];null==d&&null!=this.state.shape&&this.state.shape.isRoundable()&&(d=Qa[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=Qa[b];return null!=b?b(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory=
-{};var Ra=new mxPoint(1,0),Sa=new mxPoint(1,0),Ia=mxUtils.toRadians(-30),Ra=mxUtils.getRotatedPoint(Ra,Math.cos(Ia),Math.sin(Ia)),Ia=mxUtils.toRadians(-150),Sa=mxUtils.getRotatedPoint(Sa,Math.cos(Ia),Math.sin(Ia));mxEdgeStyle.IsometricConnector=function(b,d,f,c,e){var g=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=g.transformControlPoint(b,c));null==m&&null!=d&&(m=new mxPoint(d.getCenterX(),d.getCenterY()));null==l&&null!=f&&(l=new mxPoint(f.getCenterX(),
-f.getCenterY()));var k=Ra.x,n=Ra.y,q=Sa.x,G=Sa.y,u="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=l&&null!=m){b=function(b,d,f){b-=A.x;var c=d-A.y;d=(G*b-q*c)/(k*G-n*q);b=(n*b-k*c)/(n*q-k*G);u?(f&&(A=new mxPoint(A.x+k*d,A.y+n*d),e.push(A)),A=new mxPoint(A.x+q*b,A.y+G*b)):(f&&(A=new mxPoint(A.x+q*b,A.y+G*b),e.push(A)),A=new mxPoint(A.x+k*d,A.y+n*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 f=new mxElbowEdgeHandler(b);f.snapToTerminals=!1;return f}return fb.apply(this,arguments)};k.prototype.constraints=[];g.prototype.getConstraints=function(b,d,f){b=[];var c=Math.tan(mxUtils.toRadians(30)),e=(.5-c)/2,c=Math.min(d,f/(.5+c));d=(d-c)/2;f=(f-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,d+.5*c,f+c*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,f+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,f+.75*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,f+(1-e)*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f+.75*c));return b};f.prototype.getConstraints=function(b,d,f){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*f);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,f-c));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
-0,c));return b};B.prototype.getConstraints=function(b,d,f){b=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var c=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1));b.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(f-c)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,
-f-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(f-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))];Ea.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=
-mxRectangleShape.prototype.constraints;ca.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;t.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,Math.min(f,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*(f+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};v.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,Math.min(f,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*(f+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};c.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,Math.min(f,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*(f+c)));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),f));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,c,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,f-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(f-c)));return b};m.prototype.getConstraints=function(b,d,f){b=[];d=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,
-1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,d));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-d));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-d));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d+.5*(.5*f-d)));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,d+.5*(.5*f-d)));b.push(new mxConnectionConstraint(new mxPoint(1,
-0),!1,null,0,f-d-.5*(.5*f-d)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f-d-.5*(.5*f-d)));b.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*d));b.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*d));b.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-d));b.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-d));return b};n.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,
-"tabWidth",this.tabWidth)))),e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(b.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
-.5*(d+c),e))):(b.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*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-c,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,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.25*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,d,.5*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.75*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,f));b.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return b};T.prototype.constraints=mxRectangleShape.prototype.constraints;ja.prototype.constraints=mxRectangleShape.prototype.constraints;wa.prototype.constraints=mxEllipse.prototype.constraints;ya.prototype.constraints=mxEllipse.prototype.constraints;ra.prototype.constraints=mxEllipse.prototype.constraints;Ka.prototype.constraints=
-mxEllipse.prototype.constraints;U.prototype.constraints=mxRectangleShape.prototype.constraints;Ba.prototype.constraints=mxRectangleShape.prototype.constraints;Fa.prototype.getConstraints=function(b,d,f){b=[];var c=Math.min(d,f/2),e=Math.min(d-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
-.5*(e+d-c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+d-c),f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));return b};pa.prototype.getConstraints=function(b,d,f){d=parseFloat(mxUtils.getValue(b,"jettyWidth",pa.prototype.jettyWidth))/2;b=parseFloat(mxUtils.getValue(b,
-"jettyHeight",pa.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(f-.5*b,1.5*b)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(f-.5*b,3.5*b))];f>5*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,d));f>8*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,d));f>
-15*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,d));return c};P.prototype.constraints=mxRectangleShape.prototype.constraints;da.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)];W.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)];qa.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)];y.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)];L.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)];aa.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,
-.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];D.prototype.constraints=mxRectangleShape.prototype.constraints;H.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
+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"}]}];X.prototype.paintVertexShape=
+function(b,d,f,c,e){b.translate(d,f);this.strictDrawShape(b,0,0,c,e)};X.prototype.strictDrawShape=function(b,d,f,c,e,g){var l=g&&g.rectStyle?g.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=g&&g.absoluteCornerSize?g.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),m=g&&g.size?g.size:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),q=g&&g.rectOutline?g.rectOutline:mxUtils.getValue(this.style,"rectOutline",
+this.rectOutline),n=g&&g.indent?g.indent:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),H=g&&g.dashed?g.dashed:mxUtils.getValue(this.style,"dashed",!1),z=g&&g.dashPattern?g.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),u=g&&g.relIndent?g.relIndent:Math.max(0,Math.min(50,n)),A=g&&g.top?g.top:mxUtils.getValue(this.style,"top",!0),v=g&&g.right?g.right:mxUtils.getValue(this.style,"right",!0),p=g&&g.bottom?g.bottom:mxUtils.getValue(this.style,"bottom",
+!0),x=g&&g.left?g.left:mxUtils.getValue(this.style,"left",!0),J=g&&g.topLeftStyle?g.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),E=g&&g.topRightStyle?g.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),t=g&&g.bottomRightStyle?g.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),y=g&&g.bottomLeftStyle?g.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),C=g&&g.fillColor?g.fillColor:mxUtils.getValue(this.style,"fillColor",
+"#ffffff");g&&g.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var B=g&&g.strokeWidth?g.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),aa=g&&g.fillColor2?g.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),T=g&&g.gradientColor2?g.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),N=g&&g.gradientDirection2?g.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),sa=g&&g.opacity?g.opacity:mxUtils.getValue(this.style,"opacity",
+"100"),qa=Math.max(0,Math.min(50,m));g=X.prototype;b.setDashed(H);z&&""!=z&&b.setDashPattern(z);b.setStrokeWidth(B);m=Math.min(.5*e,.5*c,m);k||(m=qa*Math.min(c,e)/100);m=Math.min(m,.5*Math.min(c,e));k||(n=Math.min(u*Math.min(c,e)/100));n=Math.min(n,.5*Math.min(c,e)-m);(A||v||p||x)&&"frame"!=q&&(b.begin(),A?g.moveNW(b,d,f,c,e,l,J,m,x):b.moveTo(0,0),A&&g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),v&&g.paintNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),p&&g.paintSE(b,d,f,c,e,l,
+t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),x&&g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(aa),H=k=sa,"none"==aa&&(k=0),"none"==T&&(H=0),b.setGradient(aa,T,0,0,c,e,N,k,H),b.begin(),A?g.moveNWInner(b,d,f,c,e,l,J,m,n,A,x):b.moveTo(n,0),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),x&&p&&g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),p&&v&&g.paintSEInner(b,d,f,c,e,l,t,m,n),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),
+v&&A&&g.paintNEInner(b,d,f,c,e,l,E,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),A&&x&&g.paintNWInner(b,d,f,c,e,l,J,m,n),b.fill(),"none"==C&&(b.begin(),g.paintFolds(b,d,f,c,e,l,J,E,t,y,m,A,v,p,x),b.stroke()));A||v||p||!x?A||v||!p||x?!A&&!v&&p&&x?"frame"!=q?(b.begin(),g.moveSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),"double"==q&&(g.moveNWInner(b,d,f,c,e,l,J,m,n,A,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),g.paintSWInner(b,d,f,c,
+e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),g.lineNWInner(b,d,f,c,e,l,J,m,n,A,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),b.close(),b.fillAndStroke()):A||!v||p||x?!A&&v&&!p&&x?"frame"!=q?(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),"double"==q&&
+(g.moveNWInner(b,d,f,c,e,l,J,m,n,A,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x)),b.stroke(),b.begin(),g.moveNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),"double"==q&&(g.moveSEInner(b,d,f,c,e,l,t,m,n,p),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),g.lineNWInner(b,d,f,c,e,l,J,m,n,A,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),b.close(),b.fillAndStroke(),b.begin(),g.moveNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,
+t,m,p),g.lineSEInner(b,d,f,c,e,l,t,m,n,p),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),b.close(),b.fillAndStroke()):!A&&v&&p&&!x?"frame"!=q?(b.begin(),g.moveNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),g.paintSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),g.paintSEInner(b,d,f,c,e,l,t,m,n),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,
+d,f,c,e,l,t,m,p),g.paintSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.lineSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),g.paintSEInner(b,d,f,c,e,l,t,m,n),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),b.close(),b.fillAndStroke()):!A&&v&&p&&x?"frame"!=q?(b.begin(),g.moveNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),g.paintSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),"double"==q&&(g.moveNWInner(b,
+d,f,c,e,l,J,m,n,A,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),g.paintSEInner(b,d,f,c,e,l,t,m,n),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),g.paintSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),g.lineNWInner(b,d,f,c,e,l,J,m,n,A,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),g.paintSWInner(b,
+d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),g.paintSEInner(b,d,f,c,e,l,t,m,n),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),b.close(),b.fillAndStroke()):!A||v||p||x?A&&!v&&!p&&x?"frame"!=q?(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),"double"==q&&(g.moveNEInner(b,d,f,c,e,l,E,m,n,v),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x)),b.stroke()):
+(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),g.lineNEInner(b,d,f,c,e,l,E,m,n,v),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),b.close(),b.fillAndStroke()):A&&!v&&p&&!x?"frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),"double"==q&&(g.moveNEInner(b,d,f,c,e,l,E,m,n,v),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A)),b.stroke(),b.begin(),
+g.moveSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),g.lineNEInner(b,d,f,c,e,l,E,m,n,v),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),b.close(),b.fillAndStroke(),b.begin(),g.moveSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.lineSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),b.close(),b.fillAndStroke()):
+A&&!v&&p&&x?"frame"!=q?(b.begin(),g.moveSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),"double"==q&&(g.moveNEInner(b,d,f,c,e,l,E,m,n,v),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,t,
+m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),g.lineNEInner(b,d,f,c,e,l,E,m,n,v),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),b.close(),b.fillAndStroke()):A&&v&&!p&&!x?"frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,
+v),g.paintNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),"double"==q&&(g.moveSEInner(b,d,f,c,e,l,t,m,n,p),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),g.paintNEInner(b,d,f,c,e,l,E,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),g.paintNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),g.lineSEInner(b,d,f,c,e,l,t,m,n,p),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),g.paintNEInner(b,d,f,c,e,l,E,m,n),g.paintTopInner(b,d,f,
+c,e,l,J,m,n,x,A),b.close(),b.fillAndStroke()):A&&v&&!p&&x?"frame"!=q?(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),g.paintNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),"double"==q&&(g.moveSEInner(b,d,f,c,e,l,t,m,n,p),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),g.paintNEInner(b,d,f,c,e,l,E,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x)),b.stroke()):
+(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),g.paintNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),g.lineSEInner(b,d,f,c,e,l,t,m,n,p),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),g.paintNEInner(b,d,f,c,e,l,E,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),b.close(),b.fillAndStroke()):A&&v&&p&&!x?"frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,
+x),g.paintTop(b,d,f,c,e,l,E,m,v),g.paintNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),g.paintSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),g.paintSEInner(b,d,f,c,e,l,t,m,n),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),g.paintNEInner(b,d,f,c,e,l,E,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),g.paintNE(b,d,f,c,e,l,E,
+m,A),g.paintRight(b,d,f,c,e,l,t,m,p),g.paintSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.lineSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),g.paintSEInner(b,d,f,c,e,l,t,m,n),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),g.paintNEInner(b,d,f,c,e,l,E,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),b.close(),b.fillAndStroke()):A&&v&&p&&x&&("frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),g.paintNE(b,d,f,c,e,l,E,m,
+A),g.paintRight(b,d,f,c,e,l,t,m,p),g.paintSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),b.close(),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),g.paintSEInner(b,d,f,c,e,l,t,m,n),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),g.paintNEInner(b,d,f,c,e,l,E,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,
+e,l,y,m,n,p,x),b.close()),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),g.paintNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),g.paintSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),b.close(),g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),g.paintSEInner(b,d,f,c,e,l,t,m,n),g.paintRightInner(b,d,f,c,
+e,l,E,m,n,A,v),g.paintNEInner(b,d,f,c,e,l,E,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),b.close(),b.fillAndStroke())):"frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),"double"==q&&(g.moveNEInner(b,d,f,c,e,l,E,m,n,v),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),g.lineNEInner(b,d,f,c,e,l,E,m,n,v),g.paintTopInner(b,d,f,c,
+e,l,J,m,n,x,A),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),g.moveNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),"double"==q&&(g.moveSEInner(b,d,f,c,e,l,t,m,n,p),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),g.lineSEInner(b,d,f,c,e,l,t,m,n,p),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),g.moveSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),"double"==q&&
+(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.lineSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),"double"==q&&(g.moveNWInner(b,d,f,c,e,l,J,m,n,A,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,p),g.paintLeft(b,
+d,f,c,e,l,J,m,A),g.lineNWInner(b,d,f,c,e,l,J,m,n,A,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),b.close(),b.fillAndStroke());b.begin();g.paintFolds(b,d,f,c,e,l,J,E,t,y,m,A,v,p,x);b.stroke()};X.prototype.moveNW=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(0,0):b.moveTo(0,m)};X.prototype.moveNE=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(c,0):b.moveTo(c-m,0)};X.prototype.moveSE=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&
+"square"==g||!k?b.moveTo(c,e):b.moveTo(c,e-m)};X.prototype.moveSW=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(0,e):b.moveTo(m,e)};X.prototype.paintNW=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,m,0)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(m,0);else b.lineTo(0,0)};X.prototype.paintTop=
+function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.lineTo(c,0):b.lineTo(c-m,0)};X.prototype.paintNE=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,c,m)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c,m);else b.lineTo(c,0)};X.prototype.paintRight=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==
+l&&"square"==g||!k?b.lineTo(c,e):b.lineTo(c,e-m)};X.prototype.paintLeft=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.lineTo(0,0):b.lineTo(0,m)};X.prototype.paintSE=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,c-m,e)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-m,e);else b.lineTo(c,
+e)};X.prototype.paintBottom=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.lineTo(0,e):b.lineTo(m,e)};X.prototype.paintSW=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,0,e-m)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(0,e-m);else b.lineTo(0,e)};X.prototype.paintNWInner=function(b,d,f,
+c,e,g,l,m,k){if("rounded"==l||"default"==l&&"rounded"==g)b.arcTo(m-.5*k,m-.5*k,0,0,0,k,.5*k+m);else if("invRound"==l||"default"==l&&"invRound"==g)b.arcTo(m+k,m+k,0,0,1,k,k+m);else if("snip"==l||"default"==l&&"snip"==g)b.lineTo(k,.5*k+m);else if("fold"==l||"default"==l&&"fold"==g)b.lineTo(k+m,k+m),b.lineTo(k,k+m)};X.prototype.paintTopInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(0,k):n&&!q?b.lineTo(k,0):n?"square"==l||"default"==l&&"square"==g?b.lineTo(k,k):"rounded"==l||"default"==l&&
+"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(m+.5*k,k):b.lineTo(m+k,k):b.lineTo(0,k):b.lineTo(0,0)};X.prototype.paintNEInner=function(b,d,f,c,e,g,l,m,k){if("rounded"==l||"default"==l&&"rounded"==g)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-m-.5*k,k);else if("invRound"==l||"default"==l&&"invRound"==g)b.arcTo(m+k,m+k,0,0,1,c-m-k,k);else if("snip"==l||"default"==l&&"snip"==g)b.lineTo(c-m-.5*k,k);else if("fold"==l||"default"==l&&"fold"==g)b.lineTo(c-m-k,m+k),b.lineTo(c-m-k,k)};X.prototype.paintRightInner=
+function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(c-k,0):n&&!q?b.lineTo(c,k):n?"square"==l||"default"==l&&"square"==g?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-k,m+.5*k):b.lineTo(c-k,m+k):b.lineTo(c-k,0):b.lineTo(c,0)};X.prototype.paintLeftInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(k,e):n&&!q?b.lineTo(0,e-k):n?"square"==l||"default"==l&&"square"==g?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==
+l&&"snip"==g?b.lineTo(k,e-m-.5*k):b.lineTo(k,e-m-k):b.lineTo(k,e):b.lineTo(0,e)};X.prototype.paintSEInner=function(b,d,f,c,e,g,l,m,k){if("rounded"==l||"default"==l&&"rounded"==g)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-k,e-m-.5*k);else if("invRound"==l||"default"==l&&"invRound"==g)b.arcTo(m+k,m+k,0,0,1,c-k,e-m-k);else if("snip"==l||"default"==l&&"snip"==g)b.lineTo(c-k,e-m-.5*k);else if("fold"==l||"default"==l&&"fold"==g)b.lineTo(c-m-k,e-m-k),b.lineTo(c-k,e-m-k)};X.prototype.paintBottomInner=function(b,d,f,c,
+e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(c,e-k):n&&!q?b.lineTo(c-k,e):"square"==l||"default"==l&&"square"==g||!n?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-m-.5*k,e-k):b.lineTo(c-m-k,e-k):b.lineTo(c,e)};X.prototype.paintSWInner=function(b,d,f,c,e,g,l,m,k,n){if(!n)b.lineTo(k,e);else if("square"==l||"default"==l&&"square"==g)b.lineTo(k,e-k);else if("rounded"==l||"default"==l&&"rounded"==g)b.arcTo(m-.5*k,m-.5*k,0,0,0,m+.5*k,e-k);else if("invRound"==
+l||"default"==l&&"invRound"==g)b.arcTo(m+k,m+k,0,0,1,m+k,e-k);else if("snip"==l||"default"==l&&"snip"==g)b.lineTo(m+.5*k,e-k);else if("fold"==l||"default"==l&&"fold"==g)b.lineTo(k+m,e-m-k),b.lineTo(k+m,e-k)};X.prototype.moveSWInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g?b.moveTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(k,
+e-m-k):b.moveTo(0,e-k)};X.prototype.lineSWInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(k,e-m-k):b.lineTo(0,e-k)};X.prototype.moveSEInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g?b.moveTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==
+g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(c-k,e-m-k):b.moveTo(c-k,e)};X.prototype.lineSEInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-k,e-m-k):b.lineTo(c-
+k,e)};X.prototype.moveNEInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g||n?b.moveTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(c-k,m+k):b.moveTo(c,k)};X.prototype.lineNEInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g||n?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==
+l&&"snip"==g?b.lineTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-k,m+k):b.lineTo(c,k)};X.prototype.moveNWInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.moveTo(k,0):n&&!q?b.moveTo(0,k):"square"==l||"default"==l&&"square"==g?b.moveTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(k,m+k):b.moveTo(0,
+0)};X.prototype.lineNWInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(k,0):n&&!q?b.lineTo(0,k):"square"==l||"default"==l&&"square"==g?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(k,m+k):b.lineTo(0,0)};X.prototype.paintFolds=function(b,d,f,c,e,g,l,m,k,n,q,H,A,u,p){if("fold"==g||"fold"==l||"fold"==m||"fold"==k||"fold"==n)("fold"==l||"default"==
+l&&"fold"==g)&&H&&p&&(b.moveTo(0,q),b.lineTo(q,q),b.lineTo(q,0)),("fold"==m||"default"==m&&"fold"==g)&&H&&A&&(b.moveTo(c-q,0),b.lineTo(c-q,q),b.lineTo(c,q)),("fold"==k||"default"==k&&"fold"==g)&&u&&A&&(b.moveTo(c-q,e),b.lineTo(c-q,e-q),b.lineTo(c,e-q)),("fold"==n||"default"==n&&"fold"==g)&&u&&p&&(b.moveTo(0,e-q),b.lineTo(q,e-q),b.lineTo(q,e))};mxCellRenderer.registerShape(X.prototype.cst.RECT2,X);X.prototype.constraints=null;mxUtils.extend(ua,mxConnector);ua.prototype.origPaintEdgeShape=ua.prototype.paintEdgeShape;
+ua.prototype.paintEdgeShape=function(b,d,f){for(var c=[],e=0;e<d.length;e++)c.push(mxUtils.clone(d[e]));var e=b.state.dashed,g=b.state.fixDash;ua.prototype.origPaintEdgeShape.apply(this,[b,c,f]);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,g),ua.prototype.origPaintEdgeShape.apply(this,[b,d,f])))};mxCellRenderer.registerShape("filledEdge",ua);"undefined"!==typeof StyleFormatPanel&&function(){var b=
+StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var d=this.format.getSelectionState(),f=b.apply(this,arguments);"umlFrame"==d.style.shape&&f.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return f}}();mxMarker.addMarker("dash",function(b,d,f,c,e,g,l,m,k,n){var q=e*(l+k+1),H=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-q/2-H/2,c.y-H/2+q/2);b.lineTo(c.x+H/2-3*q/2,c.y-3*H/2-q/2);b.stroke()}});mxMarker.addMarker("box",
+function(b,d,f,c,e,g,l,m,k,n){var q=e*(l+k+1),H=g*(l+k+1),A=c.x+q/2,u=c.y+H/2;c.x-=q;c.y-=H;return function(){b.begin();b.moveTo(A-q/2-H/2,u-H/2+q/2);b.lineTo(A-q/2+H/2,u-H/2-q/2);b.lineTo(A+H/2-3*q/2,u-3*H/2-q/2);b.lineTo(A-H/2-3*q/2,u-3*H/2+q/2);b.close();n?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,f,c,e,g,l,m,k,n){var q=e*(l+k+1),H=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-q/2-H/2,c.y-H/2+q/2);b.lineTo(c.x+H/2-3*q/2,c.y-3*H/2-q/2);b.moveTo(c.x-q/2+H/2,c.y-
+H/2-q/2);b.lineTo(c.x-H/2-3*q/2,c.y-3*H/2+q/2);b.stroke()}});mxMarker.addMarker("circle",Oa);mxMarker.addMarker("circlePlus",function(b,d,f,c,e,g,l,m,k,n){var q=c.clone(),H=Oa.apply(this,arguments),A=e*(l+2*k),u=g*(l+2*k);return function(){H.apply(this,arguments);b.begin();b.moveTo(q.x-e*k,q.y-g*k);b.lineTo(q.x-2*A+e*k,q.y-2*u+g*k);b.moveTo(q.x-A-u+g*k,q.y-u+A-e*k);b.lineTo(q.x+u-A-g*k,q.y-u-A+e*k);b.stroke()}});mxMarker.addMarker("halfCircle",function(b,d,f,c,e,g,l,m,k,n){var q=e*(l+k+1),H=g*(l+
+k+1),A=c.clone();c.x-=q;c.y-=H;return function(){b.begin();b.moveTo(A.x-H,A.y+q);b.quadTo(c.x-H,c.y+q,c.x,c.y);b.quadTo(c.x+H,c.y-q,A.x+H,A.y-q);b.stroke()}});mxMarker.addMarker("async",function(b,d,f,c,e,g,l,m,k,q){d=e*k*1.118;f=g*k*1.118;e*=l+k;g*=l+k;var n=c.clone();n.x-=d;n.y-=f;c.x+=1*-e-d;c.y+=1*-g-f;return function(){b.begin();b.moveTo(n.x,n.y);m?b.lineTo(n.x-e-g/2,n.y-g+e/2):b.lineTo(n.x+g/2-e,n.y-g-e/2);b.lineTo(n.x-e,n.y-g);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",
+function(b){b=null!=b?b:2;return function(d,f,c,e,g,l,m,k,n,q){g*=m+n;l*=m+n;var H=e.clone();return function(){d.begin();d.moveTo(H.x,H.y);k?d.lineTo(H.x-g-l/b,H.y-l+g/b):d.lineTo(H.x+l/b-g,H.y-l-g/b);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Za=function(b,d,f){return Na(b,["width"],d,function(d,c,e,g,l){l=b.shape.getEdgeWidth()*b.view.scale+f;return new mxPoint(g.x+c*d/4+e*l/2,g.y+e*d/4-c*l/2)},function(d,c,e,g,l,m){d=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));b.style.width=
+Math.round(2*d)/b.view.scale-f})},Na=function(b,d,f,c,e){return ha(b,d,function(d){var e=b.absolutePoints,g=e.length-1;d=b.view.translate;var l=b.view.scale,m=f?e[0]:e[g],e=f?e[1]:e[g-1],g=e.x-m.x,k=e.y-m.y,n=Math.sqrt(g*g+k*k),m=c.call(this,n,g/n,k/n,m,e);return new mxPoint(m.x/l-d.x,m.y/l-d.y)},function(d,c,g){var l=b.absolutePoints,m=l.length-1;d=b.view.translate;var k=b.view.scale,n=f?l[0]:l[m],l=f?l[1]:l[m-1],m=l.x-n.x,q=l.y-n.y,H=Math.sqrt(m*m+q*q);c.x=(c.x+d.x)*k;c.y=(c.y+d.y)*k;e.call(this,
+H,m/H,q/H,n,l,c,g)})},Ia=function(b){return function(d){return[ha(d,["arrowWidth","arrowSize"],function(d){var f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",fa.prototype.arrowWidth))),c=Math.max(0,Math.min(b,mxUtils.getValue(this.state.style,"arrowSize",fa.prototype.arrowSize)));return new mxPoint(d.x+(1-c)*d.width,d.y+(1-f)*d.height/2)},function(d,f){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(d.y+d.height/2-f.y)/d.height*2));this.state.style.arrowSize=Math.max(0,
+Math.min(b,(d.x+d.width-f.x)/d.width))})]}},Wa=function(b){return function(d){return[ha(d,["size"],function(d){var f=Math.max(0,Math.min(.5*d.height,parseFloat(mxUtils.getValue(this.state.style,"size",b))));return new mxPoint(d.x,d.y+f)},function(b,d){this.state.style.size=Math.max(0,d.y-b.y)},!0)]}},Ua=function(b,d,f){return function(c){var e=[ha(c,["size"],function(f){var c=Math.max(0,Math.min(f.width,Math.min(f.height,parseFloat(mxUtils.getValue(this.state.style,"size",d)))))*b;return new mxPoint(f.x+
+c,f.y+c)},function(d,f){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(d.width,f.x-d.x),Math.min(d.height,f.y-d.y)))/b)},!1)];f&&mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(Ga(c));return e}},Pa=function(b,d,f,c,e){f=null!=f?f:.5;return function(g){var l=[ha(g,["size"],function(d){var f=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,c=parseFloat(mxUtils.getValue(this.state.style,"size",f?e:b));return new mxPoint(d.x+Math.max(0,Math.min(.5*d.width,
+c*(f?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(f,(d.x-b.x)/b.width));this.state.style.size=b},!1,c)];d&&mxUtils.getValue(g.style,mxConstants.STYLE_ROUNDED,!1)&&l.push(Ga(g));return l}},Xa=function(b,d,f){b=null!=b?b:.5;return function(c){var e=[ha(c,["size"],function(c){var e=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,g=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,
+"size",e?f:d)));return new mxPoint(c.x+Math.min(.75*c.width*b,g*(e?.75:.75*c.width)),c.y+c.height/4)},function(d,c){var e=null!=f&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?c.x-d.x:Math.max(0,Math.min(b,(c.x-d.x)/d.width*.75));this.state.style.size=e},!1,!0)];mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(Ga(c));return e}},Ma=function(){return function(b){var d=[];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d}},Ga=function(b,d){return ha(b,
+[mxConstants.STYLE_ARCSIZE],function(f){var c=null!=d?d:f.height/8;if("1"==mxUtils.getValue(b.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(b.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(f.x+f.width-Math.min(f.width/2,e),f.y+c)}e=Math.max(0,parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(f.x+f.width-Math.min(Math.max(f.width/2,f.height/2),Math.min(f.width,f.height)*
+e),f.y+c)},function(d,f,c){"1"==mxUtils.getValue(b.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(d.width,2*(d.x+d.width-f.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(d.width-f.x+d.x)/Math.min(d.width,d.height))))})},ha=function(b,d,f,c,e,g,l){var m=new mxHandle(b,null,mxVertexHandler.prototype.secondaryHandleImage);m.execute=function(b){for(var f=0;f<d.length;f++)this.copyStyle(d[f]);
+l&&l(b)};m.getPosition=f;m.setPosition=c;m.ignoreGrid=null!=e?e:!0;if(g){var k=m.positionChanged;m.positionChanged=function(){k.apply(this,arguments);b.view.invalidate(this.state.cell);b.view.validate()}}return m},Qa={link:function(b){return[Za(b,!0,10),Za(b,!1,10)]},flexArrow:function(b){var d=b.view.graph.gridSize/b.view.scale,f=[];mxUtils.getValue(b.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(f.push(Na(b,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
+!0,function(d,f,c,e,g){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;g=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+f*(g+b.shape.strokewidth*b.view.scale)+c*d/2,e.y+c*(g+b.shape.strokewidth*b.view.scale)-f*d/2)},function(f,c,e,g,l,m,k){f=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-c,m.x,m.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(c-b.shape.strokewidth)/
+3)/100/b.view.scale;b.style.width=Math.round(2*f)/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE])})),f.push(Na(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(d,
+f,c,e,g){d=(b.shape.getStartArrowWidth()-b.shape.strokewidth)*b.view.scale;g=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+f*(g+b.shape.strokewidth*b.view.scale)+c*d/2,e.y+c*(g+b.shape.strokewidth*b.view.scale)-f*d/2)},function(f,c,e,g,l,m,k){f=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-c,m.x,m.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/
+100/b.view.scale;b.style.startWidth=Math.max(0,Math.round(2*f)-b.shape.getEdgeWidth())/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE],b.style.endWidth=b.style.startWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(b.style.startWidth)-
+parseFloat(b.style.endWidth))<d&&(b.style.startWidth=b.style.endWidth))})));mxUtils.getValue(b.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(f.push(Na(b,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,f,c,e,g){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;g=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+f*(g+b.shape.strokewidth*b.view.scale)-c*d/2,e.y+c*(g+b.shape.strokewidth*
+b.view.scale)+f*d/2)},function(f,c,e,g,l,m,k){f=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-c,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*f)/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<
+d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE])})),f.push(Na(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,f,c,e,g){d=(b.shape.getEndArrowWidth()-b.shape.strokewidth)*b.view.scale;g=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+f*(g+b.shape.strokewidth*b.view.scale)-c*d/2,e.y+c*(g+b.shape.strokewidth*b.view.scale)+f*d/2)},function(f,c,e,g,l,m,k){f=
+Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-c,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.endWidth=Math.max(0,Math.round(2*f)-b.shape.getEdgeWidth())/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE],b.style.startWidth=b.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-
+parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(b.style.endWidth)-parseFloat(b.style.startWidth))<d&&(b.style.endWidth=b.style.startWidth))})));return f},swimlane:function(b){var d=[];if(mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED)){var f=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));d.push(Ga(b,f/2))}d.push(ha(b,[mxConstants.STYLE_STARTSIZE],
+function(d){var f=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(d.getCenterX(),d.y+Math.max(0,Math.min(d.height,f))):new mxPoint(d.x+Math.max(0,Math.min(d.width,f)),d.getCenterY())},function(d,f){b.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(d.height,f.y-d.y))):Math.round(Math.max(0,
+Math.min(d.width,f.x-d.x)))},!1,null,function(d){if(mxEvent.isControlDown(d.getEvent())&&(d=b.view.graph,d.isTableRow(b.cell)||d.isTableCell(b.cell))){for(var f=d.getSwimlaneDirection(b.style),c=d.model.getParent(b.cell),c=d.model.getChildCells(c,!0),e=[],g=0;g<c.length;g++)c[g]!=b.cell&&d.isSwimlane(c[g])&&d.getSwimlaneDirection(d.getCurrentCellStyle(c[g]))==f&&e.push(c[g]);d.setCellStyles(mxConstants.STYLE_STARTSIZE,b.style[mxConstants.STYLE_STARTSIZE],e)}}));return d},label:Ma(),ext:Ma(),rectangle:Ma(),
+triangle:Ma(),rhombus:Ma(),umlLifeline:function(b){return[ha(b,["size"],function(b){var d=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",E.prototype.size))));return new mxPoint(b.getCenterX(),b.y+d)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},umlFrame:function(b){return[ha(b,["width","height"],function(b){var d=Math.max(W.prototype.corner,Math.min(b.width,mxUtils.getValue(this.state.style,"width",W.prototype.width))),
+f=Math.max(1.5*W.prototype.corner,Math.min(b.height,mxUtils.getValue(this.state.style,"height",W.prototype.height)));return new mxPoint(b.x+d,b.y+f)},function(b,d){this.state.style.width=Math.round(Math.max(W.prototype.corner,Math.min(b.width,d.x-b.x)));this.state.style.height=Math.round(Math.max(1.5*W.prototype.corner,Math.min(b.height,d.y-b.y)))},!1)]},process:function(b){var d=[ha(b,["size"],function(b){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),f=parseFloat(mxUtils.getValue(this.state.style,
+"size",F.prototype.size));return d?new mxPoint(b.x+f,b.y+b.height/4):new mxPoint(b.x+b.width*f,b.y+b.height/4)},function(b,d){var f="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(.5*b.width,d.x-b.x)):Math.max(0,Math.min(.5,(d.x-b.x)/b.width));this.state.style.size=f},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},cross:function(b){return[ha(b,["size"],function(b){var d=Math.min(b.width,b.height),d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
+"size",Ha.prototype.size)))*d/2;return new mxPoint(b.getCenterX()-d,b.getCenterY()-d)},function(b,d){var f=Math.min(b.width,b.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,b.getCenterY()-d.y)/f*2,Math.max(0,b.getCenterX()-d.x)/f*2)))})]},note:function(b){return[ha(b,["size"],function(b){var d=Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size)))));return new mxPoint(b.x+b.width-d,b.y+d)},function(b,d){this.state.style.size=
+Math.round(Math.max(0,Math.min(Math.min(b.width,b.x+b.width-d.x),Math.min(b.height,d.y-b.y))))})]},note2:function(b){return[ha(b,["size"],function(b){var f=Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",d.prototype.size)))));return new mxPoint(b.x+b.width-f,b.y+f)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,b.x+b.width-d.x),Math.min(b.height,d.y-b.y))))})]},manualInput:function(b){var d=[ha(b,["size"],function(b){var d=
+Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",V.prototype.size)));return new mxPoint(b.x+b.width/4,b.y+3*d/4)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,4*(d.y-b.y)/3)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},dataStorage:function(b){return[ha(b,["size"],function(b){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),f=parseFloat(mxUtils.getValue(this.state.style,"size",d?ba.prototype.fixedSize:
+ba.prototype.size));return new mxPoint(b.x+b.width-f*(d?1:b.width),b.getCenterY())},function(b,d){var f="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(b.width,b.x+b.width-d.x)):Math.max(0,Math.min(1,(b.x+b.width-d.x)/b.width));this.state.style.size=f},!1)]},callout:function(b){var d=[ha(b,["size","position"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",C.prototype.size))),f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
+"position",C.prototype.position)));mxUtils.getValue(this.state.style,"base",C.prototype.base);return new mxPoint(b.x+f*b.width,b.y+b.height-d)},function(b,d){mxUtils.getValue(this.state.style,"base",C.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(b.height,b.y+b.height-d.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(d.x-b.x)/b.width)))/100},!1),ha(b,["position2"],function(b){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",C.prototype.position2)));
+return new mxPoint(b.x+d*b.width,b.y+b.height)},function(b,d){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(d.x-b.x)/b.width)))/100},!1),ha(b,["base"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",C.prototype.size))),f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",C.prototype.position))),c=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"base",C.prototype.base)));return new mxPoint(b.x+Math.min(b.width,
+f*b.width+c),b.y+b.height-d)},function(b,d){var f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",C.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(b.width,d.x-b.x-f*b.width)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},internalStorage:function(b){var d=[ha(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",U.prototype.dx))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,
+"dy",U.prototype.dy)));return new mxPoint(b.x+d,b.y+f)},function(b,d){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},module:function(b){return[ha(b,["jettyWidth","jettyHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"jettyWidth",ma.prototype.jettyWidth))),f=Math.max(0,Math.min(b.height,
+mxUtils.getValue(this.state.style,"jettyHeight",ma.prototype.jettyHeight)));return new mxPoint(b.x+d/2,b.y+2*f)},function(b,d){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(b.height,d.y-b.y))/2)})]},corner:function(b){return[ha(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",la.prototype.dx))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,
+"dy",la.prototype.dy)));return new mxPoint(b.x+d,b.y+f)},function(b,d){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},tee:function(b){return[ha(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",S.prototype.dx))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",S.prototype.dy)));return new mxPoint(b.x+(b.width+d)/2,b.y+f)},function(b,
+d){this.state.style.dx=Math.round(Math.max(0,2*Math.min(b.width/2,d.x-b.x-b.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},singleArrow:Ia(1),doubleArrow:Ia(.5),folder:function(b){return[ha(b,["tabWidth","tabHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"tabWidth",n.prototype.tabWidth))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"tabHeight",n.prototype.tabHeight)));mxUtils.getValue(this.state.style,
+"tabPosition",n.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(d=b.width-d);return new mxPoint(b.x+d,b.y+f)},function(b,d){var f=Math.max(0,Math.min(b.width,d.x-b.x));mxUtils.getValue(this.state.style,"tabPosition",n.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(f=b.width-f);this.state.style.tabWidth=Math.round(f);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},document:function(b){return[ha(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.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[ha(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",y.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[ha(b,
+["isoAngle"],function(b){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",f.isoAngle))))*Math.PI/200;return new mxPoint(b.x,b.y+Math.min(b.width*Math.tan(d),.5*b.height))},function(b,d){this.state.style.isoAngle=Math.max(0,50*(d.y-b.y)/b.height)},!0)]},cylinder2:Wa(l.prototype.size),cylinder3:Wa(m.prototype.size),offPageConnector:function(b){return[ha(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ea.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:Pa(L.prototype.size,!0,null,!0,L.prototype.fixedSize),hexagon:Pa(O.prototype.size,!0,.5,!0,O.prototype.fixedSize),curlyBracket:Pa(B.prototype.size,!1),display:Pa(Fa.prototype.size,!1),cube:Ua(1,
+c.prototype.size,!1),card:Ua(.5,u.prototype.size,!0),loopLimit:Ua(.5,P.prototype.size,!0),trapezoid:Xa(.5,I.prototype.size,I.prototype.fixedSize),parallelogram:Xa(1,D.prototype.size,D.prototype.fixedSize)};Graph.createHandle=ha;Graph.handleFactory=Qa;var db=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var b=db.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=Qa[d];null==d&&null!=this.state.shape&&this.state.shape.isRoundable()&&(d=Qa[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=Qa[b];return null!=b?b(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Ra=new mxPoint(1,0),Sa=new mxPoint(1,0),Ia=mxUtils.toRadians(-30),Ra=mxUtils.getRotatedPoint(Ra,Math.cos(Ia),Math.sin(Ia)),Ia=mxUtils.toRadians(-150),Sa=mxUtils.getRotatedPoint(Sa,Math.cos(Ia),Math.sin(Ia));mxEdgeStyle.IsometricConnector=function(b,d,f,c,e){var g=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=g.transformControlPoint(b,c));null==
+m&&null!=d&&(m=new mxPoint(d.getCenterX(),d.getCenterY()));null==l&&null!=f&&(l=new mxPoint(f.getCenterX(),f.getCenterY()));var k=Ra.x,n=Ra.y,q=Sa.x,H=Sa.y,A="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=l&&null!=m){b=function(b,d,f){b-=u.x;var c=d-u.y;d=(H*b-q*c)/(k*H-n*q);b=(n*b-k*c)/(n*q-k*H);A?(f&&(u=new mxPoint(u.x+k*d,u.y+n*d),e.push(u)),u=new mxPoint(u.x+q*b,u.y+H*b)):(f&&(u=new mxPoint(u.x+q*b,u.y+H*b),e.push(u)),u=new mxPoint(u.x+k*d,u.y+n*d));e.push(u)};var u=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 eb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(b,d){if(d==mxEdgeStyle.IsometricConnector){var f=new mxElbowEdgeHandler(b);f.snapToTerminals=!1;return f}return eb.apply(this,arguments)};k.prototype.constraints=[];g.prototype.getConstraints=function(b,d,f){b=[];var c=Math.tan(mxUtils.toRadians(30)),e=(.5-
+c)/2,c=Math.min(d,f/(.5+c));d=(d-c)/2;f=(f-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,f+c*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,f+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,f+.75*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,f+(1-e)*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f+.75*c));return b};f.prototype.getConstraints=
+function(b,d,f){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*f);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,f-c));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));return b};C.prototype.getConstraints=function(b,d,f){b=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var c=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(f-c)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
+d,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(f-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))];Ea.prototype.constraints=mxRectangleShape.prototype.constraints;
+mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;da.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;t.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,Math.min(f,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*(f+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};u.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,Math.min(f,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*(f+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};c.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,Math.min(f,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*(f+c)));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,.5*(d+c),f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,f-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(f-c)));return b};m.prototype.getConstraints=function(b,d,f){b=[];d=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
+.5),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,d));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-d));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-d));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d+.5*(.5*f-d)));b.push(new mxConnectionConstraint(new mxPoint(1,
+0),!1,null,0,d+.5*(.5*f-d)));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,f-d-.5*(.5*f-d)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f-d-.5*(.5*f-d)));b.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*d));b.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*d));b.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-d));b.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-d));return b};n.prototype.getConstraints=
+function(b,d,f){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth)))),e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(b.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,c,e)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),e))):(b.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*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-c,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,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,d,.25*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.75*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,.75*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f));b.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return b};U.prototype.constraints=mxRectangleShape.prototype.constraints;ba.prototype.constraints=mxRectangleShape.prototype.constraints;wa.prototype.constraints=mxEllipse.prototype.constraints;xa.prototype.constraints=mxEllipse.prototype.constraints;
+pa.prototype.constraints=mxEllipse.prototype.constraints;Ka.prototype.constraints=mxEllipse.prototype.constraints;V.prototype.constraints=mxRectangleShape.prototype.constraints;Ca.prototype.constraints=mxRectangleShape.prototype.constraints;Fa.prototype.getConstraints=function(b,d,f){b=[];var c=Math.min(d,f/2),e=Math.min(d-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+d-c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+d-c),f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));return b};ma.prototype.getConstraints=function(b,d,f){d=parseFloat(mxUtils.getValue(b,
+"jettyWidth",ma.prototype.jettyWidth))/2;b=parseFloat(mxUtils.getValue(b,"jettyHeight",ma.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(f-.5*b,1.5*b)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(f-.5*b,3.5*b))];f>5*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,d));f>8*b&&c.push(new mxConnectionConstraint(new mxPoint(0,
+.5),!1,null,d));f>15*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,d));return c};P.prototype.constraints=mxRectangleShape.prototype.constraints;ea.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)];Y.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)];oa.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)];y.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)];L.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)];T.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,
+.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];D.prototype.constraints=mxRectangleShape.prototype.constraints;I.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxArrow.prototype.constraints=null;S.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,
"dy",this.dy))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,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,.75*d+.25*c,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,.5*(d+c),.5*(f+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),f));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),.5*(f+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,.25*d-.25*c,e));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*e));return b};na.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*e));return b};la.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
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*(f+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,f));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
-1),!1));return b};va.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)];fa.prototype.getConstraints=
+1),!1));return b};ta.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)];fa.prototype.getConstraints=
function(b,d,f){b=[];var c=f*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=(f-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,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-e),f-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f-c));return b};ia.prototype.getConstraints=function(b,d,f){b=[];var c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",fa.prototype.arrowWidth)))),e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",fa.prototype.arrowSize)))),c=(f-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,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));return b};Ha.prototype.getConstraints=
function(b,d,f){b=[];var c=Math.min(f,d),e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),c=(f-e)/2,g=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,f-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,f));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));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,c));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+e),g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,c));return b};I.prototype.constraints=null;oa.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)];ua.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)];ga.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ka.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,c));return b};E.prototype.constraints=null;za.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)];va.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)];ga.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ja.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(b){this.editorUi=b;this.actions={};this.init()}
Actions.prototype.init=function(){function b(b){g.escape();b=g.deleteCells(g.getDeletableCells(g.getSelectionCells()),b);null!=b&&g.setSelectionCells(b)}function c(){if(!g.isSelectionEmpty()){g.getModel().beginUpdate();try{for(var b=g.getSelectionCells(),d=0;d<b.length;d++)g.cellLabelChanged(b[d],"")}finally{g.getModel().endUpdate()}}}var e=this.editorUi,k=e.editor,g=k.graph,p=function(){return Action.prototype.isEnabled.apply(this,arguments)&&g.isEnabled()};this.addAction("new...",function(){g.openLink(e.getUrl())});
this.addAction("open...",function(){window.openNew=!0;window.openKey="open";e.openFile()});this.addAction("smartFit",function(){g.popupMenuHandler.hideMenu();var b=g.view.scale,d=g.view.translate.x,c=g.view.translate.y;e.actions.get("resetView").funct();1E-5>Math.abs(b-g.view.scale)&&d==g.view.translate.x&&c==g.view.translate.y&&e.actions.get(g.pageVisible?"fitPage":"fitWindow").funct()});this.addAction("keyPressEnter",function(){g.isEnabled()&&(g.isSelectionEmpty()?e.actions.get("smartFit").funct():
@@ -2973,9 +2971,9 @@ d)});e.showDialog(d.container,320,200,!0,!0);d.init()}},null,null,"Alt+Shift+T")
null,null,"Alt+Shift+L");this.put("insertImage",new Action(mxResources.get("image")+"...",function(){g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())&&(g.clearSelection(),e.actions.get("image").funct())})).isEnabled=p;this.put("insertLink",new Action(mxResources.get("link")+"...",function(){g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())&&e.showLinkDialog("",mxResources.get("insert"),function(b,d,c){b=mxUtils.trim(b);if(0<b.length){var f=null,e=g.getLinkTitle(b);null!=d&&0<d.length&&(f=d[0].iconUrl,
e=d[0].name||d[0].type,e=e.charAt(0).toUpperCase()+e.substring(1),30<e.length&&(e=e.substring(0,30)+"..."));d=new mxCell(e,new mxGeometry(0,0,100,40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+(null!=f?"shape=label;imageWidth=16;imageHeight=16;spacingLeft=26;align=left;image="+f:"spacing=10;"));d.vertex=!0;f=g.getCenterInsertPoint(g.getBoundingBoxFromGeometry([d],!0));d.geometry.x=f.x;d.geometry.y=f.y;g.setAttributeForCell(d,"linkTarget",c);g.setLinkForCell(d,b);g.cellSizeUpdated(d,
!0);g.getModel().beginUpdate();try{d=g.addCell(d),g.fireEvent(new mxEventObject("cellsInserted","cells",[d]))}finally{g.getModel().endUpdate()}g.setSelectionCell(d);g.scrollCellToVisible(g.getSelectionCell())}},!0)})).isEnabled=p;this.addAction("link...",mxUtils.bind(this,function(){if(g.isEnabled())if(g.cellEditor.isContentEditing()){var b=g.getSelectedElement(),d=g.getParentByName(b,"A",g.cellEditor.textarea),c="";if(null==d&&null!=b&&null!=b.getElementsByTagName)for(var k=b.getElementsByTagName("a"),
-n=0;n<k.length&&null==d;n++)k[n].textContent==b.textContent&&(d=k[n]);null!=d&&"A"==d.nodeName&&(c=d.getAttribute("href")||"",g.selectNode(d));var u=g.cellEditor.saveSelection();e.showLinkDialog(c,mxResources.get("apply"),mxUtils.bind(this,function(b){g.cellEditor.restoreSelection(u);null!=b&&g.insertLink(b)}))}else g.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=p;this.addAction("autosize",function(){var b=g.getSelectionCells();if(null!=b){g.getModel().beginUpdate();
+n=0;n<k.length&&null==d;n++)k[n].textContent==b.textContent&&(d=k[n]);null!=d&&"A"==d.nodeName&&(c=d.getAttribute("href")||"",g.selectNode(d));var p=g.cellEditor.saveSelection();e.showLinkDialog(c,mxResources.get("apply"),mxUtils.bind(this,function(b){g.cellEditor.restoreSelection(p);null!=b&&g.insertLink(b)}))}else g.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=p;this.addAction("autosize",function(){var b=g.getSelectionCells();if(null!=b){g.getModel().beginUpdate();
try{for(var d=0;d<b.length;d++){var c=b[d];0<g.getModel().getChildCount(c)?g.updateGroupBounds([c],0,!0):g.updateCellSize(c)}}finally{g.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+Y");this.addAction("formattedText",function(){g.stopEditing();var b=g.getCommonStyle(g.getSelectionCells()),b="1"==mxUtils.getValue(b,"html","0")?null:"1";g.getModel().beginUpdate();try{for(var d=g.getEditableCells(g.getSelectionCells()),c=0;c<d.length;c++)if(state=g.getView().getState(d[c]),null!=state){var k=
-mxUtils.getValue(state.style,"html","0");if("1"==k&&null==b){var n=g.convertValueToString(state.cell);"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(n=n.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));var u=document.createElement("div");u.innerHTML=g.sanitizeHtml(n);n=mxUtils.extractTextWithWhitespace(u.childNodes);g.cellLabelChanged(state.cell,n);g.setCellStyles("html",b,[d[c]])}else"0"==k&&"1"==b&&(n=mxUtils.htmlEntities(g.convertValueToString(state.cell),!1),"0"!=mxUtils.getValue(state.style,"nl2Br",
+mxUtils.getValue(state.style,"html","0");if("1"==k&&null==b){var n=g.convertValueToString(state.cell);"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(n=n.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));var p=document.createElement("div");p.innerHTML=g.sanitizeHtml(n);n=mxUtils.extractTextWithWhitespace(p.childNodes);g.cellLabelChanged(state.cell,n);g.setCellStyles("html",b,[d[c]])}else"0"==k&&"1"==b&&(n=mxUtils.htmlEntities(g.convertValueToString(state.cell),!1),"0"!=mxUtils.getValue(state.style,"nl2Br",
"1")&&(n=n.replace(/\n/g,"<br/>")),g.cellLabelChanged(state.cell,g.sanitizeHtml(n)),g.setCellStyles("html",b,[d[c]]))}e.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!=b?b:"0"],"cells",d))}finally{g.getModel().endUpdate()}});this.addAction("wordWrap",function(){var b=g.getView().getState(g.getSelectionCell()),d="wrap";g.stopEditing();null!=b&&"wrap"==b.style[mxConstants.STYLE_WHITE_SPACE]&&(d=null);g.setCellStyles(mxConstants.STYLE_WHITE_SPACE,d)});this.addAction("rotation",
function(){var b="0",d=g.getView().getState(g.getSelectionCell());null!=d&&(b=d.style[mxConstants.STYLE_ROTATION]||b);b=new FilenameDialog(e,b,mxResources.get("apply"),function(b){null!=b&&0<b.length&&g.setCellStyles(mxConstants.STYLE_ROTATION,b)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");e.showDialog(b.container,375,80,!0,!0);b.init()});this.addAction("resetView",function(){g.zoomTo(1);e.resetScrollbars()},null,null,"Enter/Home");this.addAction("zoomIn",function(b){g.isFastZoomEnabled()?
g.lazyZoom(!0,!0,e.buttonZoomDelay):g.zoomIn()},null,null,Editor.ctrlKey+" + (Numpad) / Alt+Mousewheel");this.addAction("zoomOut",function(b){g.isFastZoomEnabled()?g.lazyZoom(!1,!0,e.buttonZoomDelay):g.zoomOut()},null,null,Editor.ctrlKey+" - (Numpad) / Alt+Mousewheel");this.addAction("fitWindow",function(){var b=g.isSelectionEmpty()?g.getGraphBounds():g.getBoundingBox(g.getSelectionCells()),d=g.view.translate,c=g.view.scale;b.x=b.x/c-d.x;b.y=b.y/c-d.y;b.width/=c;b.height/=c;null!=g.backgroundImage&&
@@ -3000,8 +2998,8 @@ this.addAction("rounded",function(){g.getModel().beginUpdate();try{g.setCellStyl
c="1"==mxUtils.getValue(d,mxConstants.STYLE_ROUNDED,"0")?"0":"1";g.setCellStyles(mxConstants.STYLE_ROUNDED,c);g.setCellStyles(mxConstants.STYLE_CURVED,null);e.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[c,"0"],"cells",g.getSelectionCells()))}finally{g.getModel().endUpdate()}}});this.addAction("curved",function(){g.getModel().beginUpdate();try{g.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),g.setCellStyles(mxConstants.STYLE_CURVED,
"1"),e.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",g.getSelectionCells()))}finally{g.getModel().endUpdate()}});this.addAction("collapsible",function(){var b=g.view.getState(g.getSelectionCell()),d="1";null!=b&&null!=g.getFoldingImage(b)&&(d="0");g.setCellStyles("collapsible",d);e.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[d],"cells",g.getSelectionCells()))});this.addAction("editStyle...",
mxUtils.bind(this,function(){var b=g.getEditableCells(g.getSelectionCells());if(null!=b&&0<b.length){var d=g.getModel(),d=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",d.getStyle(b[0])||"",function(d){null!=d&&g.setCellStyle(mxUtils.trim(d),b)},null,null,400,220);this.editorUi.showDialog(d.container,420,300,!0,!0);d.init()}}),null,null,Editor.ctrlKey+"+E");this.addAction("setAsDefaultStyle",function(){g.isEnabled()&&!g.isSelectionEmpty()&&e.setDefaultStyle(g.getSelectionCell())},
-null,null,Editor.ctrlKey+"+Shift+D");this.addAction("clearDefaultStyle",function(){g.isEnabled()&&e.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var b=g.getSelectionCell();if(null!=b&&g.getModel().isEdge(b)){var d=k.graph.selectionCellsHandler.getHandler(b);if(d instanceof mxEdgeHandler){for(var c=g.view.translate,e=g.view.scale,n=c.x,c=c.y,b=g.getModel().getParent(b),u=g.getCellGeometry(b);g.getModel().isVertex(b)&&null!=u;)n+=u.x,c+=u.y,b=g.getModel().getParent(b),
-u=g.getCellGeometry(b);n=Math.round(g.snap(g.popupMenuHandler.triggerX/e-n));e=Math.round(g.snap(g.popupMenuHandler.triggerY/e-c));d.addPointAt(d.state,n,e)}}});this.addAction("removeWaypoint",function(){var b=e.actions.get("removeWaypoint");null!=b.handler&&b.handler.removePoint(b.handler.state,b.index)});this.addAction("clearWaypoints",function(b,d){b=null!=d?d:b;var c=g.getSelectionCells();if(null!=c){c=g.getEditableCells(g.addAllEdges(c));g.getModel().beginUpdate();try{for(var f=0;f<c.length;f++){var e=
+null,null,Editor.ctrlKey+"+Shift+D");this.addAction("clearDefaultStyle",function(){g.isEnabled()&&e.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var b=g.getSelectionCell();if(null!=b&&g.getModel().isEdge(b)){var d=k.graph.selectionCellsHandler.getHandler(b);if(d instanceof mxEdgeHandler){for(var c=g.view.translate,e=g.view.scale,n=c.x,c=c.y,b=g.getModel().getParent(b),p=g.getCellGeometry(b);g.getModel().isVertex(b)&&null!=p;)n+=p.x,c+=p.y,b=g.getModel().getParent(b),
+p=g.getCellGeometry(b);n=Math.round(g.snap(g.popupMenuHandler.triggerX/e-n));e=Math.round(g.snap(g.popupMenuHandler.triggerY/e-c));d.addPointAt(d.state,n,e)}}});this.addAction("removeWaypoint",function(){var b=e.actions.get("removeWaypoint");null!=b.handler&&b.handler.removePoint(b.handler.state,b.index)});this.addAction("clearWaypoints",function(b,d){b=null!=d?d:b;var c=g.getSelectionCells();if(null!=c){c=g.getEditableCells(g.addAllEdges(c));g.getModel().beginUpdate();try{for(var f=0;f<c.length;f++){var e=
c[f];if(g.getModel().isEdge(e)){var l=g.getCellGeometry(e);mxEvent.isShiftDown(b)?(g.setCellStyles(mxConstants.STYLE_EXIT_X,null,[e]),g.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[e]),g.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[e]),g.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[e])):null!=l&&(l=l.clone(),l.points=null,l.x=0,l.y=0,l.offset=null,g.getModel().setGeometry(e,l))}}}finally{g.getModel().endUpdate()}}},null,null,"Alt+Shift+C");t=this.addAction("subscript",mxUtils.bind(this,function(){g.cellEditor.isContentEditing()&&
document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");t=this.addAction("superscript",mxUtils.bind(this,function(){g.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...",function(){if(g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())){var b=mxResources.get("image")+" ("+mxResources.get("url")+"):",d=g.getView().getState(g.getSelectionCell()),c="";null!=d&&(c=d.style[mxConstants.STYLE_IMAGE]||c);
var k=g.cellEditor.saveSelection();e.showImageDialog(b,c,function(b,d,c){if(g.cellEditor.isContentEditing())g.cellEditor.restoreSelection(k),g.insertImage(b,d,c);else{var f=g.getSelectionCells();if(null!=b&&(0<b.length||0<f.length)){var e=null;g.getModel().beginUpdate();try{if(0==f.length){var f=[g.insertVertex(g.getDefaultParent(),null,"",0,0,d,c,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")],l=g.getCenterInsertPoint(g.getBoundingBoxFromGeometry(f,!0));
@@ -3017,9 +3015,9 @@ DrawioFile.prototype.shadowModified=!1;DrawioFile.prototype.data=null;DrawioFile
DrawioFile.prototype.getSize=function(){return null!=this.data?this.data.length:0};DrawioFile.prototype.synchronizeFile=function(b,c){this.savingFile?null!=c&&c({message:mxResources.get("busy")}):null!=this.sync?this.sync.fileChanged(b,c):this.updateFile(b,c)};
DrawioFile.prototype.updateFile=function(b,c,e,k){null!=e&&e()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=c&&c():this.getLatestVersion(mxUtils.bind(this,function(g){try{null!=e&&e()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=c&&c():null!=g?this.mergeFile(g,b,c,k):this.reloadFile(b,c))}catch(p){null!=c&&c(p)}}),c))};
DrawioFile.prototype.mergeFile=function(b,c,e,k){var g=!0;try{this.stats.fileMerged++;var p=null!=this.shadowPages?this.shadowPages:this.ui.getPagesForNode(mxUtils.parseXml(this.shadowData).documentElement),t=this.ui.getPagesForNode(mxUtils.parseXml(b.data).documentElement);if(null!=t&&0<t.length){this.shadowPages=t;this.backupPatch=this.isModified()?this.ui.diffPages(p,this.ui.pages):null;var d=[this.ui.diffPages(null!=k?k:p,this.shadowPages)];if(!this.ignorePatches(d)){var f=this.ui.patchPages(p,
-d[0]);k={};var l=this.ui.getHashValueForPages(f,k),p={},m=this.ui.getHashValueForPages(this.shadowPages,p);"1"==urlParams.test&&EditorUi.debug("File.mergeFile",[this],"backup",this.backupPatch,"patches",d,"checksum",m==l,l);if(null!=l&&l!=m){var q=this.compressReportData(this.getAnonymizedXmlForPages(t)),n=this.compressReportData(this.getAnonymizedXmlForPages(f)),u=this.ui.hashValue(b.getCurrentEtag()),v=this.ui.hashValue(this.getCurrentEtag());this.checksumError(e,d,"Shadow Details: "+JSON.stringify(k)+
-"\nChecksum: "+l+"\nCurrent: "+m+"\nCurrent Details: "+JSON.stringify(p)+"\nFrom: "+u+"\nTo: "+v+"\n\nFile Data:\n"+q+"\nPatched Shadow:\n"+n,null,"mergeFile");return}this.patch(d,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw g=!1,Error(mxResources.get("notADiagramFile"));this.inConflictState=this.invalidChecksum=!1;this.setDescriptor(b.getDescriptor());this.descriptorChanged();this.backupPatch=null;null!=c&&c()}catch(D){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();
-null!=e&&e(D);try{if(g)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,D);else{var y=this.getCurrentUser(),x=null!=y?y.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),x,D)}}catch(H){}}};
+d[0]);k={};var l=this.ui.getHashValueForPages(f,k),p={},m=this.ui.getHashValueForPages(this.shadowPages,p);"1"==urlParams.test&&EditorUi.debug("File.mergeFile",[this],"backup",this.backupPatch,"patches",d,"checksum",m==l,l);if(null!=l&&l!=m){var q=this.compressReportData(this.getAnonymizedXmlForPages(t)),n=this.compressReportData(this.getAnonymizedXmlForPages(f)),v=this.ui.hashValue(b.getCurrentEtag()),u=this.ui.hashValue(this.getCurrentEtag());this.checksumError(e,d,"Shadow Details: "+JSON.stringify(k)+
+"\nChecksum: "+l+"\nCurrent: "+m+"\nCurrent Details: "+JSON.stringify(p)+"\nFrom: "+v+"\nTo: "+u+"\n\nFile Data:\n"+q+"\nPatched Shadow:\n"+n,null,"mergeFile");return}this.patch(d,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw g=!1,Error(mxResources.get("notADiagramFile"));this.inConflictState=this.invalidChecksum=!1;this.setDescriptor(b.getDescriptor());this.descriptorChanged();this.backupPatch=null;null!=c&&c()}catch(D){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();
+null!=e&&e(D);try{if(g)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,D);else{var y=this.getCurrentUser(),x=null!=y?y.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),x,D)}}catch(I){}}};
DrawioFile.prototype.getAnonymizedXmlForPages=function(b){var c=new mxCodec(mxUtils.createXmlDocument()),e=c.document.createElement("mxfile");if(null!=b)for(var k=0;k<b.length;k++){var g=c.encode(new mxGraphModel(b[k].root));"1"!=urlParams.dev&&(g=this.ui.anonymizeNode(g,!0));g.setAttribute("id",b[k].getId());b[k].viewState&&this.ui.editor.graph.saveViewState(b[k].viewState,g,!0);e.appendChild(g)}return mxUtils.getPrettyXml(e)};
DrawioFile.prototype.compressReportData=function(b,c,e){c=null!=c?c:1E4;null!=e&&null!=b&&b.length>e?b=b.substring(0,e)+"[...]":null!=b&&b.length>c&&(b=Graph.compress(b)+"\n");return b};
DrawioFile.prototype.checksumError=function(b,c,e,k,g){this.stats.checksumErrors++;this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=this.sync&&this.sync.updateOnlineState();null!=b&&b();try{if(this.errorReportsEnabled){if(null!=c)for(b=0;b<c.length;b++)this.ui.anonymizePatch(c[b]);var p=mxUtils.bind(this,function(b){var d=this.compressReportData(JSON.stringify(c,null,2));b=null!=b?this.compressReportData(this.getAnonymizedXmlForPages(this.ui.getPagesForNode(mxUtils.parseXml(b.data).documentElement)),
@@ -3144,7 +3142,7 @@ this.originalBegin.apply(this.canvas,arguments):this.path=[]};b.prototype.end=fu
arguments):(this.addOp(this.lineOp,b,d),this.lastX=b,this.lastY=d)};b.prototype.moveTo=function(b,d){this.passThrough?this.originalMoveTo.apply(this.canvas,arguments):(this.addOp(this.moveOp,b,d),this.lastX=b,this.lastY=d,this.firstX=b,this.firstY=d)};b.prototype.close=function(){this.passThrough?this.originalClose.apply(this.canvas,arguments):this.addOp(this.closeOp)};b.prototype.quadTo=function(b,d,c,f){this.passThrough?this.originalQuadTo.apply(this.canvas,arguments):(this.addOp(this.quadOp,b,
d,c,f),this.lastX=c,this.lastY=f)};b.prototype.curveTo=function(b,d,c,f,e,g){this.passThrough?this.originalCurveTo.apply(this.canvas,arguments):(this.addOp(this.curveOp,b,d,c,f,e,g),this.lastX=e,this.lastY=g)};b.prototype.arcTo=function(b,d,c,f,e,g,l){if(this.passThrough)this.originalArcTo.apply(this.canvas,arguments);else{var k=mxUtils.arcToCurves(this.lastX,this.lastY,b,d,c,f,e,g,l);if(null!=k)for(var m=0;m<k.length;m+=6)this.curveTo(k[m],k[m+1],k[m+2],k[m+3],k[m+4],k[m+5]);this.lastX=g;this.lastY=
l}};b.prototype.rect=function(b,d,c,f){this.passThrough?this.originalRect.apply(this.canvas,arguments):(this.path=[],this.nextShape=this.rc.generator.rectangle(b,d,c,f,this.getStyle(!0,!0)))};b.prototype.ellipse=function(b,d,c,f){this.passThrough?this.originalEllipse.apply(this.canvas,arguments):(this.path=[],this.nextShape=this.rc.generator.ellipse(b+c/2,d+f/2,c,f,this.getStyle(!0,!0)))};b.prototype.roundrect=function(b,d,c,f,e,g){this.passThrough?this.originalRoundrect.apply(this.canvas,arguments):
-(this.begin(),this.moveTo(b+e,d),this.lineTo(b+c-e,d),this.quadTo(b+c,d,b+c,d+g),this.lineTo(b+c,d+f-g),this.quadTo(b+c,d+f,b+c-e,d+f),this.lineTo(b+e,d+f),this.quadTo(b,d+f,b,d+f-g),this.lineTo(b,d+g),this.quadTo(b,d,b+e,d))};b.prototype.drawPath=function(b){if(0<this.path.length){this.passThrough=!0;try{this.rc.path(this.path.join(" "),b)}catch(aa){}this.passThrough=!1}else if(null!=this.nextShape){for(var d in b)this.nextShape.options[d]=b[d];null==b.stroke&&delete this.nextShape.options.stroke;
+(this.begin(),this.moveTo(b+e,d),this.lineTo(b+c-e,d),this.quadTo(b+c,d,b+c,d+g),this.lineTo(b+c,d+f-g),this.quadTo(b+c,d+f,b+c-e,d+f),this.lineTo(b+e,d+f),this.quadTo(b,d+f,b,d+f-g),this.lineTo(b,d+g),this.quadTo(b,d,b+e,d))};b.prototype.drawPath=function(b){if(0<this.path.length){this.passThrough=!0;try{this.rc.path(this.path.join(" "),b)}catch(T){}this.passThrough=!1}else if(null!=this.nextShape){for(var d in b)this.nextShape.options[d]=b[d];null==b.stroke&&delete this.nextShape.options.stroke;
b.filled||delete this.nextShape.options.fill;this.passThrough=!0;this.rc.draw(this.nextShape);this.passThrough=!1}};b.prototype.stroke=function(){this.passThrough?this.originalStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,!1))};b.prototype.fill=function(){this.passThrough?this.originalFill.apply(this.canvas,arguments):this.drawPath(this.getStyle(!1,!0))};b.prototype.fillAndStroke=function(){this.passThrough?this.originalFillAndStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,
!0))};b.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo;this.canvas.close=this.originalClose;this.canvas.fill=this.originalFill;this.canvas.stroke=this.originalStroke;this.canvas.fillAndStroke=this.originalFillAndStroke;this.canvas.begin=this.originalBegin;this.canvas.end=this.originalEnd;
this.canvas.rect=this.originalRect;this.canvas.ellipse=this.originalEllipse;this.canvas.roundrect=this.originalRoundrect};mxShape.prototype.createRoughCanvas=function(d){return new b(d,Editor.createRoughCanvas(d),this)};var d=mxShape.prototype.createHandJiggle;mxShape.prototype.createHandJiggle=function(b){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"sketch","0")?d.apply(this,arguments):"comic"==mxUtils.getValue(this.style,"sketchStyle","rough")?this.createComicCanvas(b):
@@ -3157,7 +3155,7 @@ d){var c=mxUtils.trim(mxUtils.getTextContent(b)),f=null;0<c.length?(c=Graph.deco
function(b){b=b.substring(b.indexOf(",")+1);b=window.atob&&!mxClient.IS_SF?atob(b):Base64.decode(b,!0);if("%PDF-1.7"==b.substring(0,8)){var d=b.indexOf("EmbeddedFile");if(-1<d){var c=b.indexOf("stream",d)+9;if(0<b.substring(d,c).indexOf("application#2Fvnd.jgraph.mxfile"))return d=b.indexOf("endstream",c-1),pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(c,d)),{to:"string"})}return null}for(var c=null,d="",f=0,e=0,g=[],l=null;e<b.length;){var k=b.charCodeAt(e),e=e+1;10!=k&&(d+=String.fromCharCode(k));
k=="/Subject (%3Cmxfile".charCodeAt(f)?f++:f=0;if(19==f){var m=b.indexOf("%3C%2Fmxfile%3E)",e)+15,e=e-9;if(m>e){c=b.substring(e,m);break}}10==k&&("endobj"==d?l=null:"obj"==d.substring(d.length-3,d.length)||"xref"==d||"trailer"==d?(l=[],g[d.split(" ")[0]]=l):null!=l&&l.push(d),d="")}null==c&&(c=Editor.extractGraphModelFromXref(g));null!=c&&(c=decodeURIComponent(c.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return c};Editor.extractGraphModelFromXref=function(b){var d=b.trailer,c=null;null!=d&&(d=/.* \/Info (\d+) (\d+) R/g.exec(d.join("\n")),
null!=d&&0<d.length&&(d=b[d[1]],null!=d&&(d=/.* \/Subject (\d+) (\d+) R/g.exec(d.join("\n")),null!=d&&0<d.length&&(b=b[d[1]],null!=b&&(b=b.join("\n"),c=b.substring(1,b.length-1))))));return c};Editor.extractGraphModelFromPng=function(b){var d=null;try{var c=b.substring(b.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(f,mxUtils.bind(this,function(b,c,e){b=f.substring(b+8,b+8+e);"zTXt"==c?(e=b.indexOf(String.fromCharCode(0)),"mxGraphModel"==b.substring(0,
-e)&&(b=pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(e+2)),{to:"string"}).replace(/\+/g," "),null!=b&&0<b.length&&(d=b))):"tEXt"==c&&(b=b.split(String.fromCharCode(0)),1<b.length&&("mxGraphModel"==b[0]||"mxfile"==b[0])&&(d=b[1]));if(null!=d||"IDAT"==c)return!0}))}catch(I){}null!=d&&"%"==d.charAt(0)&&(d=decodeURIComponent(d));null!=d&&"%"==d.charAt(0)&&(d=decodeURIComponent(d));return d};Editor.extractParserError=function(b,d){var c=null,f=null!=b?b.getElementsByTagName("parsererror"):null;
+e)&&(b=pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(e+2)),{to:"string"}).replace(/\+/g," "),null!=b&&0<b.length&&(d=b))):"tEXt"==c&&(b=b.split(String.fromCharCode(0)),1<b.length&&("mxGraphModel"==b[0]||"mxfile"==b[0])&&(d=b[1]));if(null!=d||"IDAT"==c)return!0}))}catch(E){}null!=d&&"%"==d.charAt(0)&&(d=decodeURIComponent(d));null!=d&&"%"==d.charAt(0)&&(d=decodeURIComponent(d));return d};Editor.extractParserError=function(b,d){var c=null,f=null!=b?b.getElementsByTagName("parsererror"):null;
null!=f&&0<f.length&&(c=d||mxResources.get("invalidChars"),f=f[0].getElementsByTagName("div"),0<f.length&&(c=mxUtils.getTextContent(f[0])));return null!=c?mxUtils.trim(c):c};Editor.addRetryToError=function(b,d){if(null!=b){var c=null!=b.error?b.error:b;null==c.retry&&(c.retry=d)}};Editor.configure=function(b,d){if(null!=b){Editor.config=b;Editor.configVersion=b.version;Menus.prototype.defaultFonts=b.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=b.presetColors||ColorDialog.prototype.presetColors;
ColorDialog.prototype.defaultColors=b.defaultColors||ColorDialog.prototype.defaultColors;ColorDialog.prototype.colorNames=b.colorNames||ColorDialog.prototype.colorNames;StyleFormatPanel.prototype.defaultColorSchemes=b.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=b.defaultEdgeLength||Graph.prototype.defaultEdgeLength;DrawioFile.prototype.autosaveDelay=b.autosaveDelay||DrawioFile.prototype.autosaveDelay;null!=b.templateFile&&(EditorUi.templateFile=
b.templateFile);null!=b.styles&&(Editor.styles=b.styles);null!=b.globalVars&&(Editor.globalVars=b.globalVars);null!=b.compressXml&&(Editor.compressXml=b.compressXml);null!=b.includeDiagram&&(Editor.defaultIncludeDiagram=b.includeDiagram);null!=b.simpleLabels&&(Editor.simpleLabels=b.simpleLabels);null!=b.oneDriveInlinePicker&&(Editor.oneDriveInlinePicker=b.oneDriveInlinePicker);null!=b.darkColor&&(Editor.darkColor=b.darkColor);null!=b.settingsName&&(Editor.configurationKey="."+b.settingsName+"-configuration",
@@ -3172,25 +3170,25 @@ e.setAttribute("rel","preload");e.setAttribute("href",f);e.setAttribute("as","fo
[],c=0;c<b;c++)d.push(Editor.GUID_ALPHABET.charAt(Math.floor(Math.random()*Editor.GUID_ALPHABET.length)));return d.join("")};Editor.prototype.timeout=25E3;Editor.prototype.useForeignObjectForMath=!0;Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;Editor.prototype.crossOriginImages=!mxClient.IS_IE;var b=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(d){d=null!=d&&"mxlibrary"!=d.nodeName?this.extractGraphModel(d):null;if(null!=d){var c=
d.getElementsByTagName("parsererror");if(null!=c&&0<c.length){var c=c[0],f=c.getElementsByTagName("div");null!=f&&0<f.length&&(c=f[0]);throw{message:mxUtils.getTextContent(c)};}if("mxGraphModel"==d.nodeName){c=d.getAttribute("style")||"default-style2";if("1"==urlParams.embed||null!=c&&""!=c)c!=this.graph.currentStyle&&(f=null!=this.graph.themes?this.graph.themes[c]:mxUtils.load(STYLE_PATH+"/"+c+".xml").getDocumentElement(),null!=f&&(e=new mxCodec(f.ownerDocument),e.decode(f,this.graph.getStylesheet())));
else if(f=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=f){var e=new mxCodec(f.ownerDocument);e.decode(f,this.graph.getStylesheet())}this.graph.currentStyle=c;this.graph.mathEnabled="1"==urlParams.math||"1"==d.getAttribute("math");c=d.getAttribute("backgroundImage");null!=c?this.graph.setBackgroundImage(this.graph.parseBackgroundImage(c)):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]}}),f=0;f<c.length;f++)this.graph.addExtFont(c[f].name,c[f].url)}catch(I){console.log("ExtFonts format error: "+I.message)}else null!=this.graph.extFonts&&0<
+!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]}}),f=0;f<c.length;f++)this.graph.addExtFont(c[f].name,c[f].url)}catch(E){console.log("ExtFonts format error: "+E.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 f=c.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&f.setAttribute("style",this.graph.currentStyle);var e=this.graph.getBackgroundImageObject(this.graph.backgroundImage,
d);null!=e&&f.setAttribute("backgroundImage",JSON.stringify(e));f.setAttribute("math",this.graph.mathEnabled?"1":"0");f.setAttribute("shadow",this.graph.shadowVisible?"1":"0");null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(e=this.graph.extFonts.map(function(b){return b.name+"^"+b.url}),f.setAttribute("extFonts",e.join("|")));return f};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(Z){}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=
+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(aa){}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",AuthorInit:function(){MathJax.Hub.Config(d);
MathJax.Hub.Register.StartupHook("Begin",function(){for(var b=0;b<Editor.mathJaxQueue.length;b++)Editor.doMathJaxRender(Editor.mathJaxQueue[b])})}};Editor.MathJaxRender=function(b){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(b):Editor.mathJaxQueue.push(b)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var f=Editor.prototype.init;Editor.prototype.init=function(){f.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,
-d){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)}))};c=document.getElementsByTagName("script");if(null!=c&&0<c.length){var e=document.createElement("script");e.setAttribute("type","text/javascript");e.setAttribute("src",b);c[0].parentNode.appendChild(e)}try{if(mxClient.IS_GC||mxClient.IS_SF){var g=document.createElement("style");g.type="text/css";g.innerHTML=Editor.mathJaxWebkitCss;document.getElementsByTagName("head")[0].appendChild(g)}}catch(aa){}}};
+d){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)}))};c=document.getElementsByTagName("script");if(null!=c&&0<c.length){var e=document.createElement("script");e.setAttribute("type","text/javascript");e.setAttribute("src",b);c[0].parentNode.appendChild(e)}try{if(mxClient.IS_GC||mxClient.IS_SF){var g=document.createElement("style");g.type="text/css";g.innerHTML=Editor.mathJaxWebkitCss;document.getElementsByTagName("head")[0].appendChild(g)}}catch(T){}}};
Editor.prototype.csvToArray=function(b){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(b))return null;var d=[];b.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,function(b,c,f,e){void 0!==c?d.push(c.replace(/\\'/g,"'")):void 0!==f?d.push(f.replace(/\\"/g,
'"')):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(f){if(null!=f){var e="http://"==f.substring(0,7)||"https://"==f.substring(0,8);e&&!navigator.onLine?f=Editor.svgBrokenImage.src:!e||f.substring(0,b.baseUrl.length)==b.baseUrl||c.crossOriginImages&&c.isCorsEnabledForUrl(f)?"chrome-extension://"==f.substring(0,19)||mxClient.IS_CHROMEAPP||(f=d.apply(this,arguments)):f=PROXY_URL+"?url="+encodeURIComponent(f)}return f};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,f=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(f);c&&d(Editor.createSvgDataUri(b.getText()))}),function(){window.clearTimeout(f);c&&d(Editor.svgBrokenImage.src)});else{var e=new Image;this.crossOriginImages&&(e.crossOrigin="anonymous");e.onload=function(){window.clearTimeout(f);
-if(c)try{var b=document.createElement("canvas"),g=b.getContext("2d");b.height=e.height;b.width=e.width;g.drawImage(e,0,0);d(b.toDataURL())}catch(la){d(Editor.svgBrokenImage.src)}};e.onerror=function(){window.clearTimeout(f);c&&d(Editor.svgBrokenImage.src)};e.src=b}}catch(X){d(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(b,d,c,f){null==f&&(f=this.createImageUrlConverter());var e=0,g=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=f.convert(c.getAttribute(l));if(null!=k&&"data:"!=k.substring(0,5)){var m=g[k];null==m?(e++,this.convertImageToDataUri(k,function(f){null!=f&&(g[k]=f,c.setAttribute(l,f));e--;0==e&&d(b)})):c.setAttribute(l,m)}else null!=k&&c.setAttribute(l,k)}}catch(Y){}})(k[m])});c("image","xlink:href");c("img","src");0==e&&d(b)};Editor.base64Encode=function(b){for(var d="",c=0,f=b.length,e,g,l;c<f;){e=b.charCodeAt(c++)&255;if(c==f){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
+if(c)try{var b=document.createElement("canvas"),g=b.getContext("2d");b.height=e.height;b.width=e.width;g.drawImage(e,0,0);d(b.toDataURL())}catch(na){d(Editor.svgBrokenImage.src)}};e.onerror=function(){window.clearTimeout(f);c&&d(Editor.svgBrokenImage.src)};e.src=b}}catch(W){d(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(b,d,c,f){null==f&&(f=this.createImageUrlConverter());var e=0,g=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=f.convert(c.getAttribute(l));if(null!=k&&"data:"!=k.substring(0,5)){var m=g[k];null==m?(e++,this.convertImageToDataUri(k,function(f){null!=f&&(g[k]=f,c.setAttribute(l,f));e--;0==e&&d(b)})):c.setAttribute(l,m)}else null!=k&&c.setAttribute(l,k)}}catch(Z){}})(k[m])});c("image","xlink:href");c("img","src");0==e&&d(b)};Editor.base64Encode=function(b){for(var d="",c=0,f=b.length,e,g,l;c<f;){e=b.charCodeAt(c++)&255;if(c==f){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);d+="==";break}g=b.charCodeAt(c++);if(c==f){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(g&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2);d+="=";break}l=b.charCodeAt(c++);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(g&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2|(l&192)>>6);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(l&63)}return d};Editor.prototype.loadUrl=function(b,d,c,f,e,g,l,k){try{var m=!l&&(f||/(\.png)($|\?)/i.test(b)||/(\.jpe?g)($|\?)/i.test(b)||/(\.gif)($|\?)/i.test(b)||/(\.pdf)($|\?)/i.test(b));e=null!=e?e:!0;var n=mxUtils.bind(this,
function(){mxUtils.get(b,mxUtils.bind(this,function(b){if(200<=b.getStatus()&&299>=b.getStatus()){if(null!=d){var f=b.getText();if(m){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){b=mxUtilsBinaryToArray(b.request.responseBody).toArray();for(var f=Array(b.length),e=0;e<b.length;e++)f[e]=String.fromCharCode(b[e]);f=f.join("")}g=null!=g?g:"data:image/png;base64,";f=g+Editor.base64Encode(f)}d(f)}}else null!=c&&(0==b.getStatus()?c({message:mxResources.get("accessDenied")},
-b):c({message:mxResources.get("error")+" "+b.getStatus()},b))}),function(b){null!=c&&c({message:mxResources.get("error")+" "+b.getStatus()})},m,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:n})},k)});n()}catch(pa){null!=c&&c(pa)}};Editor.prototype.absoluteCssFonts=function(b){var d=null;if(null!=b){var c=b.split("url(");if(0<c.length){d=[c[0]];b=window.location.pathname;var f=null!=b?b.lastIndexOf("/"):-1;0<=f&&(b=b.substring(0,f+1));var f=document.getElementsByTagName("base"),
+b):c({message:mxResources.get("error")+" "+b.getStatus()},b))}),function(b){null!=c&&c({message:mxResources.get("error")+" "+b.getStatus()})},m,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:n})},k)});n()}catch(ma){null!=c&&c(ma)}};Editor.prototype.absoluteCssFonts=function(b){var d=null;if(null!=b){var c=b.split("url(");if(0<c.length){d=[c[0]];b=window.location.pathname;var f=null!=b?b.lastIndexOf("/"):-1;0<=f&&(b=b.substring(0,f+1));var f=document.getElementsByTagName("base"),
e=null;null!=f&&0<f.length&&(e=f[0].getAttribute("href"));for(var g=1;g<c.length;g++)if(f=c[g].indexOf(")"),0<f){var l=Editor.trimCssUrl(c[g].substring(0,f));this.graph.isRelativeUrl(l)&&(l=null!=e?e+l:window.location.protocol+"//"+window.location.hostname+("/"==l.charAt(0)?"":b)+l);d.push('url("'+l+'"'+c[g].substring(f))}else d.push(c[g])}else d=[b]}return null!=d?d.join(""):null};Editor.prototype.embedCssFonts=function(b,d){var c=b.split("url("),f=0;null==this.cachedFonts&&(this.cachedFonts={});
var e=mxUtils.bind(this,function(){if(0==f){for(var b=[c[0]],e=1;e<c.length;e++){var g=c[e].indexOf(")");b.push('url("');b.push(this.cachedFonts[Editor.trimCssUrl(c[e].substring(0,g))]);b.push('"'+c[e].substring(g))}d(b.join(""))}});if(0<c.length){for(var g=1;g<c.length;g++){var l=c[g].indexOf(")"),k=null,m=c[g].indexOf("format(",l);0<m&&(k=Editor.trimCssUrl(c[g].substring(m+7,c[g].indexOf(")",m))));mxUtils.bind(this,function(b){if(null==this.cachedFonts[b]){this.cachedFonts[b]=b;f++;var d="application/x-font-ttf";
if("svg"==k||/(\.svg)($|\?)/i.test(b))d="image/svg+xml";else if("otf"==k||"embedded-opentype"==k||/(\.otf)($|\?)/i.test(b))d="application/x-font-opentype";else if("woff"==k||/(\.woff)($|\?)/i.test(b))d="application/font-woff";else if("woff2"==k||/(\.woff2)($|\?)/i.test(b))d="application/font-woff2";else if("eot"==k||/(\.eot)($|\?)/i.test(b))d="application/vnd.ms-fontobject";else if("sfnt"==k||/(\.sfnt)($|\?)/i.test(b))d="application/font-sfnt";var c=b;/^https?:\/\//.test(c)&&!this.isCorsEnabledForUrl(c)&&
@@ -3198,11 +3196,11 @@ if("svg"==k||/(\.svg)($|\?)/i.test(b))d="image/svg+xml";else if("otf"==k||"embed
this.graph.getCustomFonts();if(0<d.length){var c="",f=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var e=mxUtils.bind(this,function(){0==f&&this.embedCssFonts(c,b)}),g=0;g<d.length;g++)mxUtils.bind(this,function(b,d){Graph.isCssFontUrl(d)?null==this.cachedGoogleFonts[d]?(f++,this.loadUrl(d,mxUtils.bind(this,function(b){this.cachedGoogleFonts[d]=b;c+=b;f--;e()}),mxUtils.bind(this,function(b){f--;c+="@import url("+d+");";e()}))):c+=this.cachedGoogleFonts[d]:c+='@font-face {font-family: "'+
b+'";src: url("'+d+'")}'})(d[g].name,d[g].url);e()}else b()};Editor.prototype.addMathCss=function(b){b=b.getElementsByTagName("defs");if(null!=b&&0<b.length)for(var d=document.getElementsByTagName("style"),c=0;c<d.length;c++)0<mxUtils.getTextContent(d[c]).indexOf("MathJax")&&b[0].appendChild(d[c].cloneNode(!0))};Editor.prototype.addFontCss=function(b,d){d=null!=d?d:this.absoluteCssFonts(this.fontCss);if(null!=d){var c=b.getElementsByTagName("defs"),f=b.ownerDocument;0==c.length?(c=null!=f.createElementNS?
f.createElementNS(mxConstants.NS_SVG,"defs"):f.createElement("defs"),null!=b.firstChild?b.insertBefore(c,b.firstChild):b.appendChild(c)):c=c[0];f=null!=f.createElementNS?f.createElementNS(mxConstants.NS_SVG,"style"):f.createElement("style");f.setAttribute("type","text/css");mxUtils.setTextContent(f,d);c.appendChild(f)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(b,d,c){var f=mxClient.IS_FF?8192:16384;
-return Math.min(c,Math.min(f/b,f/d))};Editor.prototype.exportToCanvas=function(b,d,c,f,e,g,l,k,m,n,q,u,p,x,v,t,y,B){try{g=null!=g?g:!0;l=null!=l?l:!0;u=null!=u?u:this.graph;p=null!=p?p:0;var G=m?null:u.background;G==mxConstants.NONE&&(G=null);null==G&&(G=f);null==G&&0==m&&(G=t?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(u.getSvg(null,null,p,x,null,l,null,null,null,n,null,t,y,B),mxUtils.bind(this,function(c){try{var f=new Image;f.onload=mxUtils.bind(this,function(){try{var l=
-function(){mxClient.IS_SF?window.setTimeout(function(){x.drawImage(f,0,0);b(m,c)},0):(x.drawImage(f,0,0),b(m,c))},m=document.createElement("canvas"),n=parseInt(c.getAttribute("width")),q=parseInt(c.getAttribute("height"));k=null!=k?k:1;null!=d&&(k=g?Math.min(1,Math.min(3*d/(4*q),d/n)):d/n);k=this.getMaxCanvasScale(n,q,k);n=Math.ceil(k*n);q=Math.ceil(k*q);m.setAttribute("width",n);m.setAttribute("height",q);var x=m.getContext("2d");null!=G&&(x.beginPath(),x.rect(0,0,n,q),x.fillStyle=G,x.fill());1!=
-k&&x.scale(k,k);if(v){var t=u.view,A=t.scale;t.scale=1;var y=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=A;var y="data:image/svg+xml;base64,"+y,B=u.gridSize*t.gridSteps*k,C=u.getGraphBounds(),J=t.translate.x*A,N=t.translate.y*A,I=J+(C.x-J)/A-p,F=N+(C.y-N)/A-p,D=new Image;D.onload=function(){try{for(var b=-Math.round(B-mxUtils.mod((J-I)*k,B)),d=-Math.round(B-mxUtils.mod((N-F)*k,B));b<n;b+=B)for(var c=d;c<q;c+=B)x.drawImage(D,b/k,c/k);l()}catch(V){null!=e&&e(V)}};D.onerror=
-function(b){null!=e&&e(b)};D.src=y}else l()}catch(Ba){null!=e&&e(Ba)}});f.onerror=function(b){null!=e&&e(b)};n&&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),f.src=Editor.createSvgDataUri(mxUtils.getXml(c))}catch(fa){null!=e&&e(fa)}});this.embedExtFonts(mxUtils.bind(this,function(b){try{null!=b&&this.addFontCss(c,b),this.loadFonts(l)}catch(ia){null!=e&&e(ia)}}))}catch(fa){null!=
-e&&e(fa)}}),c,q)}catch(na){null!=e&&e(na)}};Editor.crcTable=[];for(var g=0;256>g;g++)for(var p=g,t=0;8>t;t++)p=1==(p&1)?3988292384^p>>>1:p>>>1,Editor.crcTable[g]=p;Editor.updateCRC=function(b,d,c,f){for(var e=0;e<f;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,f,e){function g(b,d){var c=m;m+=d;return b.substring(c,
+return Math.min(c,Math.min(f/b,f/d))};Editor.prototype.exportToCanvas=function(b,d,c,f,e,g,l,k,m,n,q,p,u,x,v,t,y,C){try{g=null!=g?g:!0;l=null!=l?l:!0;p=null!=p?p:this.graph;u=null!=u?u:0;var H=m?null:p.background;H==mxConstants.NONE&&(H=null);null==H&&(H=f);null==H&&0==m&&(H=t?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(p.getSvg(null,null,u,x,null,l,null,null,null,n,null,t,y,C),mxUtils.bind(this,function(c){try{var f=new Image;f.onload=mxUtils.bind(this,function(){try{var l=
+function(){mxClient.IS_SF?window.setTimeout(function(){x.drawImage(f,0,0);b(m,c)},0):(x.drawImage(f,0,0),b(m,c))},m=document.createElement("canvas"),n=parseInt(c.getAttribute("width")),q=parseInt(c.getAttribute("height"));k=null!=k?k:1;null!=d&&(k=g?Math.min(1,Math.min(3*d/(4*q),d/n)):d/n);k=this.getMaxCanvasScale(n,q,k);n=Math.ceil(k*n);q=Math.ceil(k*q);m.setAttribute("width",n);m.setAttribute("height",q);var x=m.getContext("2d");null!=H&&(x.beginPath(),x.rect(0,0,n,q),x.fillStyle=H,x.fill());1!=
+k&&x.scale(k,k);if(v){var t=p.view,y=t.scale;t.scale=1;var A=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=y;var A="data:image/svg+xml;base64,"+A,C=p.gridSize*t.gridSteps*k,B=p.getGraphBounds(),J=t.translate.x*y,E=t.translate.y*y,N=J+(B.x-J)/y-u,G=E+(B.y-E)/y-u,T=new Image;T.onload=function(){try{for(var b=-Math.round(C-mxUtils.mod((J-N)*k,C)),d=-Math.round(C-mxUtils.mod((E-G)*k,C));b<n;b+=C)for(var c=d;c<q;c+=C)x.drawImage(T,b/k,c/k);l()}catch(X){null!=e&&e(X)}};T.onerror=
+function(b){null!=e&&e(b)};T.src=A}else l()}catch(Ca){null!=e&&e(Ca)}});f.onerror=function(b){null!=e&&e(b)};n&&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),f.src=Editor.createSvgDataUri(mxUtils.getXml(c))}catch(fa){null!=e&&e(fa)}});this.embedExtFonts(mxUtils.bind(this,function(b){try{null!=b&&this.addFontCss(c,b),this.loadFonts(l)}catch(ia){null!=e&&e(ia)}}))}catch(fa){null!=
+e&&e(fa)}}),c,q)}catch(la){null!=e&&e(la)}};Editor.crcTable=[];for(var g=0;256>g;g++)for(var p=g,t=0;8>t;t++)p=1==(p&1)?3988292384^p>>>1:p>>>1,Editor.crcTable[g]=p;Editor.updateCRC=function(b,d,c,f){for(var e=0;e<f;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,f,e){function g(b,d){var c=m;m+=d;return b.substring(c,
m)}function l(b){b=g(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(g(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(g(b,4),"IHDR"!=g(b,4))null!=e&&e();else{g(b,17);e=b.substring(0,m);do{var n=l(b);if("IDAT"==g(b,4)){e=b.substring(0,m-8);"pHYs"==d&&
"dpi"==c?(c=Math.round(f/.0254),c=k(c)+k(c)+String.fromCharCode(1)):c=c+String.fromCharCode(0)+("zTXt"==d?String.fromCharCode(0):"")+f;f=4294967295;f=Editor.updateCRC(f,d,0,4);f=Editor.updateCRC(f,c,0,c.length);e+=k(c.length)+d+c+k(f^4294967295);e+=b.substring(m-8,b.length);break}e+=b.substring(m-8,m-4+n);g(b,n);g(b,4)}while(n);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";
var d=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(b,c){d.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var f=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){f.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(b,d){var c=null;null!=b.editor.graph.getModel().getParent(d)?c=d.getId():null!=b.currentPage&&
@@ -3234,25 +3232,25 @@ stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79
stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",
gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(b,d,c){if(null!=d){var f=function(b){if(null!=b)if(c)for(var f=
0;f<b.length;f++)d[b[f].name]=b[f];else for(var e in d){for(var g=!1,f=0;f<b.length;f++)if(b[f].name==e&&b[f].type==d[e].type){g=!0;break}g||delete d[e]}},e=this.editorUi.editor.graph.view.getState(b);null!=e&&null!=e.shape&&(e.shape.commonCustomPropAdded||(e.shape.commonCustomPropAdded=!0,e.shape.customProperties=e.shape.customProperties||[],e.cell.vertex?Array.prototype.push.apply(e.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(e.shape.customProperties,Editor.commonEdgeProperties)),
-f(e.shape.customProperties));b=b.getAttribute("customProperties");if(null!=b)try{f(JSON.parse(b))}catch(X){}}};var u=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var b=this.format.getSelectionState();"image"!=b.style.shape&&!b.containsLabel&&0<b.cells.length&&this.container.appendChild(this.addStyles(this.createPanel()));u.apply(this,arguments);if(Editor.enableCustomProperties){for(var d={},c=b.vertices,f=b.edges,e=0;e<c.length;e++)this.findCommonProperties(c[e],d,0==
-e);for(e=0;e<f.length;e++)this.findCommonProperties(f[e],d,0==c.length&&0==e);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(d).length&&this.container.appendChild(this.addProperties(this.createPanel(),d,b))}};var v=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(b){var d=this.format.getSelectionState(),c=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(b){this.editorUi.actions.get("copyStyle").funct()}));c.setAttribute("title",
+f(e.shape.customProperties));b=b.getAttribute("customProperties");if(null!=b)try{f(JSON.parse(b))}catch(W){}}};var v=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var b=this.format.getSelectionState();"image"!=b.style.shape&&!b.containsLabel&&0<b.cells.length&&this.container.appendChild(this.addStyles(this.createPanel()));v.apply(this,arguments);if(Editor.enableCustomProperties){for(var d={},c=b.vertices,f=b.edges,e=0;e<c.length;e++)this.findCommonProperties(c[e],d,0==
+e);for(e=0;e<f.length;e++)this.findCommonProperties(f[e],d,0==c.length&&0==e);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(d).length&&this.container.appendChild(this.addProperties(this.createPanel(),d,b))}};var u=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(b){var d=this.format.getSelectionState(),c=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(b){this.editorUi.actions.get("copyStyle").funct()}));c.setAttribute("title",
mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");c.style.marginBottom="2px";c.style.width="104px";c.style.marginRight="2px";b.appendChild(c);0<d.cells.length?(c=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(b){this.editorUi.actions.get("pasteStyle").funct()})),c.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")"),c.style.marginBottom="2px",c.style.width="104px",b.appendChild(c)):
-c.style.width="210px";mxUtils.br(b);return v.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(b,d,c){function f(b,d,c,f){u.getModel().beginUpdate();try{var e=[],g=[];if(null!=c.index){for(var l=[],k=c.parentRow.nextSibling;k&&k.getAttribute("data-pName")==b;)l.push(k.getAttribute("data-pValue")),k=k.nextSibling;c.index<l.length?null!=f?l.splice(f,1):l[c.index]=d:l.push(d);null!=c.size&&l.length>c.size&&(l=l.slice(0,c.size));d=l.join(",");
-null!=c.countProperty&&(u.setCellStyles(c.countProperty,l.length,u.getSelectionCells()),e.push(c.countProperty),g.push(l.length))}u.setCellStyles(b,d,u.getSelectionCells());e.push(b);g.push(d);if(null!=c.dependentProps)for(b=0;b<c.dependentProps.length;b++){var m=c.dependentPropsDefVal[b],n=c.dependentPropsVals[b];if(n.length>d)n=n.slice(0,d);else for(var p=n.length;p<d;p++)n.push(m);n=n.join(",");u.setCellStyles(c.dependentProps[b],n,u.getSelectionCells());e.push(c.dependentProps[b]);g.push(n)}if("function"==
-typeof c.onChange)c.onChange(u,d);q.editorUi.fireEvent(new mxEventObject("styleChanged","keys",e,"values",g,"cells",u.getSelectionCells()))}finally{u.getModel().endUpdate()}}function e(d,c,f){var e=mxUtils.getOffset(b,!0),g=mxUtils.getOffset(d,!0);c.style.position="absolute";c.style.left=g.x-e.x+"px";c.style.top=g.y-e.y+"px";c.style.width=d.offsetWidth+"px";c.style.height=d.offsetHeight-(f?4:0)+"px";c.style.zIndex=5}function g(b,d,c){var e=document.createElement("div");e.style.width="32px";e.style.height=
-"4px";e.style.margin="2px";e.style.border="1px solid black";e.style.background=d&&"none"!=d?d:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,function(g){this.editorUi.pickColor(d,function(d){e.style.background="none"==d?"url('"+Dialog.prototype.noColorImage+"')":d;f(b,d,c)});mxEvent.consume(g)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(e);return btn}function l(b,d,c,e,g,l,k){null!=d&&(d=d.split(","),p.push({name:b,
-values:d,type:c,defVal:e,countProperty:g,parentRow:l,isDeletable:!0,flipBkg:k}));btn=mxUtils.button("+",mxUtils.bind(q,function(d){for(var m=l,q=0;null!=m.nextSibling;)if(m.nextSibling.getAttribute("data-pName")==b)m=m.nextSibling,q++;else break;var u={type:c,parentRow:l,index:q,isDeletable:!0,defVal:e,countProperty:g},q=n(b,"",u,0==q%2,k);f(b,e,u);m.parentNode.insertBefore(q,m.nextSibling);mxEvent.consume(d)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}
-function k(b,d,c,f,e,g,l){if(0<e){var k=Array(e);d=null!=d?d.split(","):[];for(var m=0;m<e;m++)k[m]=null!=d[m]?d[m]:null!=f?f:"";p.push({name:b,values:k,type:c,defVal:f,parentRow:g,flipBkg:l,size:e})}return document.createElement("div")}function m(b,d,c){var e=document.createElement("input");e.type="checkbox";e.checked="1"==d;mxEvent.addListener(e,"change",function(){f(b,e.checked?"1":"0",c)});return e}function n(d,c,n,u,p){var v=n.dispName,x=n.type,t=document.createElement("tr");t.className="gePropRow"+
-(p?"Dark":"")+(u?"Alt":"")+" gePropNonHeaderRow";t.setAttribute("data-pName",d);t.setAttribute("data-pValue",c);u=!1;null!=n.index&&(t.setAttribute("data-index",n.index),v=(null!=v?v:"")+"["+n.index+"]",u=!0);var y=document.createElement("td");y.className="gePropRowCell";v=mxResources.get(v,null,v);mxUtils.write(y,v);y.setAttribute("title",v);u&&(y.style.textAlign="right");t.appendChild(y);y=document.createElement("td");y.className="gePropRowCell";if("color"==x)y.appendChild(g(d,c,n));else if("bool"==
-x||"boolean"==x)y.appendChild(m(d,c,n));else if("enum"==x){var B=n.enumList;for(p=0;p<B.length;p++)if(v=B[p],v.val==c){mxUtils.write(y,mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(y,"click",mxUtils.bind(q,function(){var g=document.createElement("select");e(y,g);for(var l=0;l<B.length;l++){var k=B[l],m=document.createElement("option");m.value=mxUtils.htmlEntities(k.val);mxUtils.write(m,mxResources.get(k.dispName,null,k.dispName));g.appendChild(m)}g.value=c;b.appendChild(g);
-mxEvent.addListener(g,"change",function(){var b=mxUtils.htmlEntities(g.value);f(d,b,n)});g.focus();mxEvent.addListener(g,"blur",function(){b.removeChild(g)})}))}else"dynamicArr"==x?y.appendChild(l(d,c,n.subType,n.subDefVal,n.countProperty,t,p)):"staticArr"==x?y.appendChild(k(d,c,n.subType,n.subDefVal,n.size,t,p)):"readOnly"==x?(p=document.createElement("input"),p.setAttribute("readonly",""),p.value=c,p.style.width="96px",p.style.borderWidth="0px",y.appendChild(p)):(y.innerHTML=c,mxEvent.addListener(y,
+c.style.width="210px";mxUtils.br(b);return u.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(b,d,c){function f(b,d,c,f){p.getModel().beginUpdate();try{var e=[],g=[];if(null!=c.index){for(var l=[],k=c.parentRow.nextSibling;k&&k.getAttribute("data-pName")==b;)l.push(k.getAttribute("data-pValue")),k=k.nextSibling;c.index<l.length?null!=f?l.splice(f,1):l[c.index]=d:l.push(d);null!=c.size&&l.length>c.size&&(l=l.slice(0,c.size));d=l.join(",");
+null!=c.countProperty&&(p.setCellStyles(c.countProperty,l.length,p.getSelectionCells()),e.push(c.countProperty),g.push(l.length))}p.setCellStyles(b,d,p.getSelectionCells());e.push(b);g.push(d);if(null!=c.dependentProps)for(b=0;b<c.dependentProps.length;b++){var m=c.dependentPropsDefVal[b],n=c.dependentPropsVals[b];if(n.length>d)n=n.slice(0,d);else for(var u=n.length;u<d;u++)n.push(m);n=n.join(",");p.setCellStyles(c.dependentProps[b],n,p.getSelectionCells());e.push(c.dependentProps[b]);g.push(n)}if("function"==
+typeof c.onChange)c.onChange(p,d);q.editorUi.fireEvent(new mxEventObject("styleChanged","keys",e,"values",g,"cells",p.getSelectionCells()))}finally{p.getModel().endUpdate()}}function e(d,c,f){var e=mxUtils.getOffset(b,!0),g=mxUtils.getOffset(d,!0);c.style.position="absolute";c.style.left=g.x-e.x+"px";c.style.top=g.y-e.y+"px";c.style.width=d.offsetWidth+"px";c.style.height=d.offsetHeight-(f?4:0)+"px";c.style.zIndex=5}function g(b,d,c){var e=document.createElement("div");e.style.width="32px";e.style.height=
+"4px";e.style.margin="2px";e.style.border="1px solid black";e.style.background=d&&"none"!=d?d:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,function(g){this.editorUi.pickColor(d,function(d){e.style.background="none"==d?"url('"+Dialog.prototype.noColorImage+"')":d;f(b,d,c)});mxEvent.consume(g)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(e);return btn}function l(b,d,c,e,g,l,k){null!=d&&(d=d.split(","),u.push({name:b,
+values:d,type:c,defVal:e,countProperty:g,parentRow:l,isDeletable:!0,flipBkg:k}));btn=mxUtils.button("+",mxUtils.bind(q,function(d){for(var m=l,q=0;null!=m.nextSibling;)if(m.nextSibling.getAttribute("data-pName")==b)m=m.nextSibling,q++;else break;var p={type:c,parentRow:l,index:q,isDeletable:!0,defVal:e,countProperty:g},q=n(b,"",p,0==q%2,k);f(b,e,p);m.parentNode.insertBefore(q,m.nextSibling);mxEvent.consume(d)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}
+function k(b,d,c,f,e,g,l){if(0<e){var k=Array(e);d=null!=d?d.split(","):[];for(var m=0;m<e;m++)k[m]=null!=d[m]?d[m]:null!=f?f:"";u.push({name:b,values:k,type:c,defVal:f,parentRow:g,flipBkg:l,size:e})}return document.createElement("div")}function m(b,d,c){var e=document.createElement("input");e.type="checkbox";e.checked="1"==d;mxEvent.addListener(e,"change",function(){f(b,e.checked?"1":"0",c)});return e}function n(d,c,n,p,u){var v=n.dispName,x=n.type,t=document.createElement("tr");t.className="gePropRow"+
+(u?"Dark":"")+(p?"Alt":"")+" gePropNonHeaderRow";t.setAttribute("data-pName",d);t.setAttribute("data-pValue",c);p=!1;null!=n.index&&(t.setAttribute("data-index",n.index),v=(null!=v?v:"")+"["+n.index+"]",p=!0);var y=document.createElement("td");y.className="gePropRowCell";v=mxResources.get(v,null,v);mxUtils.write(y,v);y.setAttribute("title",v);p&&(y.style.textAlign="right");t.appendChild(y);y=document.createElement("td");y.className="gePropRowCell";if("color"==x)y.appendChild(g(d,c,n));else if("bool"==
+x||"boolean"==x)y.appendChild(m(d,c,n));else if("enum"==x){var C=n.enumList;for(u=0;u<C.length;u++)if(v=C[u],v.val==c){mxUtils.write(y,mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(y,"click",mxUtils.bind(q,function(){var g=document.createElement("select");e(y,g);for(var l=0;l<C.length;l++){var k=C[l],m=document.createElement("option");m.value=mxUtils.htmlEntities(k.val);mxUtils.write(m,mxResources.get(k.dispName,null,k.dispName));g.appendChild(m)}g.value=c;b.appendChild(g);
+mxEvent.addListener(g,"change",function(){var b=mxUtils.htmlEntities(g.value);f(d,b,n)});g.focus();mxEvent.addListener(g,"blur",function(){b.removeChild(g)})}))}else"dynamicArr"==x?y.appendChild(l(d,c,n.subType,n.subDefVal,n.countProperty,t,u)):"staticArr"==x?y.appendChild(k(d,c,n.subType,n.subDefVal,n.size,t,u)):"readOnly"==x?(u=document.createElement("input"),u.setAttribute("readonly",""),u.value=c,u.style.width="96px",u.style.borderWidth="0px",y.appendChild(u)):(y.innerHTML=c,mxEvent.addListener(y,
"click",mxUtils.bind(q,function(){function g(){var b=l.value,b=0==b.length&&"string"!=x?0:b;n.allowAuto&&(null!=b.trim&&"auto"==b.trim().toLowerCase()?(b="auto",x="string"):(b=parseFloat(b),b=isNaN(b)?0:b));null!=n.min&&b<n.min?b=n.min:null!=n.max&&b>n.max&&(b=n.max);b=mxUtils.htmlEntities(("int"==x?parseInt(b):b)+"");f(d,b,n)}var l=document.createElement("input");e(y,l,!0);l.value=c;l.className="gePropEditor";"int"!=x&&"float"!=x||n.allowAuto||(l.type="number",l.step="int"==x?"1":"any",null!=n.min&&
-(l.min=parseFloat(n.min)),null!=n.max&&(l.max=parseFloat(n.max)));b.appendChild(l);mxEvent.addListener(l,"keypress",function(b){13==b.keyCode&&g()});l.focus();mxEvent.addListener(l,"blur",function(){g()})})));n.isDeletable&&(p=mxUtils.button("-",mxUtils.bind(q,function(b){f(d,"",n,n.index);mxEvent.consume(b)})),p.style.height="16px",p.style.width="25px",p.style["float"]="right",p.className="geColorBtn",y.appendChild(p));t.appendChild(y);return t}var q=this,u=this.editorUi.editor.graph,p=[];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 y=document.createElement("img");y.src=Sidebar.prototype.expandedImage;y.style.verticalAlign="middle";t.appendChild(y);mxUtils.write(t,mxResources.get("property"));v.style.cursor="pointer";var B=function(){var d=x.querySelectorAll(".gePropNonHeaderRow"),
-c;if(q.editorUi.propertiesCollapsed){y.src=Sidebar.prototype.collapsedImage;c="none";for(var f=b.childNodes.length-1;0<=f;f--)try{var e=b.childNodes[f],g=e.nodeName.toUpperCase();"INPUT"!=g&&"SELECT"!=g||b.removeChild(e)}catch(ra){}}else y.src=Sidebar.prototype.expandedImage,c="";for(f=0;f<d.length;f++)d[f].style.display=c};mxEvent.addListener(v,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;B()});v.appendChild(t);t=document.createElement("th");t.className="gePropHeaderCell";
-t.innerHTML=mxResources.get("value");v.appendChild(t);x.appendChild(v);var C=!1,A=!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(n("id",mxUtils.htmlEntities(v),{dispName:"ID",type:"readOnly"},!0,!1));for(var G in d)if(v=d[G],"function"!=typeof v.isVisible||v.isVisible(c,this)){var N=null!=c.style[G]?mxUtils.htmlEntities(c.style[G]+""):null!=v.getDefaultValue?v.getDefaultValue(c,this):v.defVal;if("separator"==
-v.type)A=!A;else{if("staticArr"==v.type)v.size=parseInt(c.style[v.sizeProperty]||d[v.sizeProperty].defVal)||0;else if(null!=v.dependentProps){for(var J=v.dependentProps,F=[],D=[],t=0;t<J.length;t++){var O=c.style[J[t]];D.push(d[J[t]].subDefVal);F.push(null!=O?O.split(","):[])}v.dependentPropsDefVal=D;v.dependentPropsVals=F}x.appendChild(n(G,N,v,C,A));C=!C}}for(t=0;t<p.length;t++)for(v=p[t],d=v.parentRow,c=0;c<v.values.length;c++)G=n(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(G,d.nextSibling),d=G;b.appendChild(x);B();return b};StyleFormatPanel.prototype.addStyles=function(b){function d(b){mxEvent.addListener(b,"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,"mouseleave",function(){b.style.opacity="0.5"})}var c=this.editorUi,f=c.editor.graph,e=document.createElement("div");e.style.whiteSpace="nowrap";e.style.paddingLeft="24px";e.style.paddingRight=
+(l.min=parseFloat(n.min)),null!=n.max&&(l.max=parseFloat(n.max)));b.appendChild(l);mxEvent.addListener(l,"keypress",function(b){13==b.keyCode&&g()});l.focus();mxEvent.addListener(l,"blur",function(){g()})})));n.isDeletable&&(u=mxUtils.button("-",mxUtils.bind(q,function(b){f(d,"",n,n.index);mxEvent.consume(b)})),u.style.height="16px",u.style.width="25px",u.style["float"]="right",u.className="geColorBtn",y.appendChild(u));t.appendChild(y);return t}var q=this,p=this.editorUi.editor.graph,u=[];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 y=document.createElement("img");y.src=Sidebar.prototype.expandedImage;y.style.verticalAlign="middle";t.appendChild(y);mxUtils.write(t,mxResources.get("property"));v.style.cursor="pointer";var C=function(){var d=x.querySelectorAll(".gePropNonHeaderRow"),
+c;if(q.editorUi.propertiesCollapsed){y.src=Sidebar.prototype.collapsedImage;c="none";for(var f=b.childNodes.length-1;0<=f;f--)try{var e=b.childNodes[f],g=e.nodeName.toUpperCase();"INPUT"!=g&&"SELECT"!=g||b.removeChild(e)}catch(pa){}}else y.src=Sidebar.prototype.expandedImage,c="";for(f=0;f<d.length;f++)d[f].style.display=c};mxEvent.addListener(v,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;C()});v.appendChild(t);t=document.createElement("th");t.className="gePropHeaderCell";
+t.innerHTML=mxResources.get("value");v.appendChild(t);x.appendChild(v);var H=!1,B=!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(n("id",mxUtils.htmlEntities(v),{dispName:"ID",type:"readOnly"},!0,!1));for(var A in d)if(v=d[A],"function"!=typeof v.isVisible||v.isVisible(c,this)){var N=null!=c.style[A]?mxUtils.htmlEntities(c.style[A]+""):null!=v.getDefaultValue?v.getDefaultValue(c,this):v.defVal;if("separator"==
+v.type)B=!B;else{if("staticArr"==v.type)v.size=parseInt(c.style[v.sizeProperty]||d[v.sizeProperty].defVal)||0;else if(null!=v.dependentProps){for(var J=v.dependentProps,G=[],D=[],t=0;t<J.length;t++){var O=c.style[J[t]];D.push(d[J[t]].subDefVal);G.push(null!=O?O.split(","):[])}v.dependentPropsDefVal=D;v.dependentPropsVals=G}x.appendChild(n(A,N,v,H,B));H=!H}}for(t=0;t<u.length;t++)for(v=u[t],d=v.parentRow,c=0;c<v.values.length;c++)A=n(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(A,d.nextSibling),d=A;b.appendChild(x);C();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,f=c.editor.graph,e=document.createElement("div");e.style.whiteSpace="nowrap";e.style.paddingLeft="24px";e.style.paddingRight=
"20px";b.style.paddingLeft="16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(e);var g="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 k=[],m=0;m<this.defaultColorSchemes.length;m++){var n=document.createElement("div");
n.style.display="inline-block";n.style.width="6px";n.style.height="6px";n.style.marginLeft="4px";n.style.marginRight="3px";n.style.borderRadius="3px";n.style.cursor="pointer";n.style.background="transparent";n.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(b){mxEvent.addListener(n,"click",mxUtils.bind(this,function(){q(b)}))})(m);k.push(n);l.appendChild(n)}var q=mxUtils.bind(this,function(b){null!=k[b]&&(null!=this.format.currentScheme&&null!=k[this.format.currentScheme]&&(k[this.format.currentScheme].style.background=
"transparent"),this.format.currentScheme=b,p(this.defaultColorSchemes[this.format.currentScheme]),k[this.format.currentScheme].style.background="#84d7ff")}),p=mxUtils.bind(this,function(b){var d=mxUtils.bind(this,function(b){var d=mxUtils.button("",mxUtils.bind(this,function(d){f.getModel().beginUpdate();try{for(var e=this.format.getSelectionState().cells,l=0;l<e.length;l++){for(var k=f.getModel().getStyle(e[l]),m=0;m<g.length;m++)k=mxUtils.removeStylename(k,g[m]);var n=f.getModel().isVertex(e[l])?
@@ -3275,84 +3273,86 @@ b[d].getAttribute("face"):b[d].style.fontFamily;null!=f&&Graph.addFont(f,c)}}};G
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 f=this.layoutManager.getLayout;this.layoutManager.getLayout=function(b){var d=this.graph.getCellStyle(b);if(null!=d){if("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}if("undefined"!==typeof mxTableLayout&&"tableLayout"==d.childLayout)return c=new mxTableLayout(this.graph),
c.rows=d.tableRows||2,c.columns=d.tableColumns||2,c.colPercentages=d.colPercentages,c.rowPercentages=d.rowPercentages,c.equalColumns="1"==mxUtils.getValue(d,"equalColumns",c.colPercentages?"0":"1"),c.equalRows="1"==mxUtils.getValue(d,"equalRows",c.rowPercentages?"0":"1"),c.resizeParent="1"==mxUtils.getValue(d,"resizeParent","1"),c.border=d.tableBorder||c.border,c.marginLeft=d.marginLeft||0,c.marginRight=d.marginRight||0,c.marginTop=d.marginTop||0,c.marginBottom=d.marginBottom||0,c.autoAddCol="1"==
-mxUtils.getValue(d,"autoAddCol","0"),c.autoAddRow="1"==mxUtils.getValue(d,"autoAddRow",c.autoAddCol?"0":"1"),c.colWidths=d.colWidths||"100",c.rowHeights=d.rowHeights||"50",c}return f.apply(this,arguments)};this.updateGlobalUrlVariables()};var x=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=function(b){return Graph.processFontStyle(x.apply(this,arguments))};var D=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,d,c,f,e,g,l,k,m,n,
-q){D.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 f(){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();f();l.refresh()}function g(b,c){n.innerHTML="";if(0<
-b.length){var g=document.createElement("table");g.setAttribute("cellpadding","2");g.style.boxSizing="border-box";g.style.tableLayout="fixed";g.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 g=0>mxUtils.indexOf(l.hiddenTags,b),n=document.createElement("tr"),q=document.createElement("td");q.style.align="center";q.style.width="16px";var p=document.createElement("img");p.setAttribute("src",g?Editor.visibleImage:Editor.hiddenImage);
-p.setAttribute("title",mxResources.get(g?"hideIt":"show",[b]));mxUtils.setOpacity(p,g?75:25);p.style.verticalAlign="middle";p.style.cursor="pointer";p.style.width="16px";if(d||Editor.isDarkMode())p.style.filter="invert(100%)";q.appendChild(p);mxEvent.addListener(p,"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),f(),l.refresh());mxEvent.consume(d)});n.appendChild(q);q=document.createElement("td");
-q.style.overflow="hidden";q.style.whiteSpace="nowrap";q.style.textOverflow="ellipsis";q.style.verticalAlign="middle";q.style.cursor="pointer";q.setAttribute("title",b);a=document.createElement("a");mxUtils.write(a,b);a.style.textOverflow="ellipsis";a.style.position="relative";mxUtils.setOpacity(a,g?100:40);q.appendChild(a);mxEvent.addListener(q,"click",function(d){if(mxEvent.isShiftDown(d)){e(!0);var c=l.getCellsForTags([b],null,null,!0);l.isEnabled()?l.setSelectionCells(c):l.highlightCells(c)}else if(g&&
-0<l.hiddenTags.length)e(!0);else{var c=k.slice(),m=mxUtils.indexOf(c,b);c.splice(m,1);l.hiddenTags=c;f();l.refresh()}mxEvent.consume(d)});n.appendChild(q);if(l.isEnabled()){q=document.createElement("td");q.style.verticalAlign="middle";q.style.textAlign="center";q.style.width="18px";if(null==c){q.style.align="center";q.style.width="16px";p=document.createElement("img");p.setAttribute("src",Editor.crossImage);p.setAttribute("title",mxResources.get("removeIt",[b]));mxUtils.setOpacity(p,g?75:25);p.style.verticalAlign=
-"middle";p.style.cursor="pointer";p.style.width="16px";if(d||Editor.isDarkMode())p.style.filter="invert(100%)";mxEvent.addListener(p,"click",function(d){var c=mxUtils.indexOf(k,b);0<=c&&k.splice(c,1);l.removeTagsForCells(l.model.getDescendants(l.model.getRoot()),[b]);l.refresh();mxEvent.consume(d)});q.appendChild(p)}else{var u=document.createElement("input");u.setAttribute("type","checkbox");u.style.margin="0px";u.defaultChecked=null!=c&&0<=mxUtils.indexOf(c,b);u.checked=u.defaultChecked;u.style.background=
-"transparent";u.setAttribute("title",mxResources.get(u.defaultChecked?"removeIt":"add",[b]));mxEvent.addListener(u,"change",function(d){u.checked?l.addTagsForCells(l.getSelectionCells(),[b]):l.removeTagsForCells(l.getSelectionCells(),[b]);mxEvent.consume(d)});q.appendChild(u)}n.appendChild(q)}m.appendChild(n)})(b[q]);g.appendChild(m);n.appendChild(g)}}var l=this,k=l.hiddenTags.slice(),m=document.createElement("div");m.style.userSelect="none";m.style.overflow="hidden";m.style.padding="10px";m.style.height=
-"100%";var n=document.createElement("div");n.style.boxSizing="border-box";n.style.borderRadius="4px";n.style.userSelect="none";n.style.overflow="auto";n.style.position="absolute";n.style.left="10px";n.style.right="10px";n.style.top="10px";n.style.border=l.isEnabled()?"1px solid #808080":"none";n.style.bottom=l.isEnabled()?"48px":"10px";m.appendChild(n);var q=mxUtils.button(mxResources.get("reset"),function(b){l.hiddenTags=[];mxEvent.isShiftDown(b)||(k=l.hiddenTags.slice());f();l.refresh()});q.setAttribute("title",
-mxResources.get("reset"));q.className="geBtn";q.style.margin="0 4px 0 0";var u=mxUtils.button(mxResources.get("add"),function(){null!=c&&c(k,function(b){k=b;p()})});u.setAttribute("title",mxResources.get("add"));u.className="geBtn";u.style.margin="0";l.addListener(mxEvent.ROOT,function(){k=l.hiddenTags.slice()});var p=mxUtils.bind(this,function(d,c){if(b()){for(var f=l.getAllTags(),e=0;e<f.length;e++)0>mxUtils.indexOf(k,f[e])&&k.push(f[e]);k.sort();l.isSelectionEmpty()?g(k):g(k,l.getCommonTagsForCells(l.getSelectionCells()))}});
-l.selectionModel.addListener(mxEvent.CHANGE,p);l.model.addListener(mxEvent.CHANGE,p);l.addListener(mxEvent.REFRESH,p);var v=document.createElement("div");v.style.boxSizing="border-box";v.style.whiteSpace="nowrap";v.style.position="absolute";v.style.overflow="hidden";v.style.bottom="0px";v.style.height="42px";v.style.right="10px";v.style.left="10px";l.isEnabled()&&(v.appendChild(q),v.appendChild(u),m.appendChild(v));return{div:m,refresh:p}};Graph.prototype.getCustomFonts=function(){var b=this.extFonts,
-b=null!=b?b.slice():[],d;for(d in Graph.customFontElements){var c=Graph.customFontElements[d];b.push({name:c.name,url:c.url})}return b};Graph.prototype.setFont=function(b,d){Graph.addFont(b,d);document.execCommand("fontname",!1,b);if(null!=d){var c=this.cellEditor.textarea.getElementsByTagName("font");d=Graph.getFontUrl(b,d);for(var f=0;f<c.length;f++)c[f].getAttribute("face")==b&&c[f].getAttribute("data-font-src")!=d&&c[f].setAttribute("data-font-src",d)}};var C=Graph.prototype.isFastZoomEnabled;
-Graph.prototype.isFastZoomEnabled=function(){return C.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};var b=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=b)for(var 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 F=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var d=F.apply(this,arguments);null==d&&null!=this.globalVars&&(d=this.globalVars[b]);return d};Graph.prototype.getDefaultStylesheet=function(){if(null==this.defaultStylesheet){var b=this.themes["default-style2"];this.defaultStylesheet=(new mxCodec(b.ownerDocument)).decode(b)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};
-var M=Graph.prototype.getSvg;Graph.prototype.getSvg=function(b,d,c,f,e,g,l,k,m,n,q,p,u,v){var x=null,t=null,y=null;p||null==this.themes||"darkTheme"!=this.defaultThemeName||(x=this.stylesheet,t=this.defaultForegroundColor,y=this.defaultPageBackgroundColor,this.defaultPageBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":Editor.darkColor,this.defaultForegroundColor="darkTheme"==this.defaultThemeName?"#000000":"#f0f0f0",this.stylesheet=this.getDefaultStylesheet(),this.refresh());var B=M.apply(this,
-arguments),C=this.getCustomFonts();if(q&&0<C.length){var A=B.ownerDocument,G=null!=A.createElementNS?A.createElementNS(mxConstants.NS_SVG,"style"):A.createElement("style");null!=A.setAttributeNS?G.setAttributeNS("type","text/css"):G.setAttribute("type","text/css");for(var N="",F="",J=0;J<C.length;J++){var D=C[J].name,I=C[J].url;Graph.isCssFontUrl(I)?N+="@import url("+I+");\n":F+='@font-face {\nfont-family: "'+D+'";\nsrc: url("'+I+'");\n}\n'}G.appendChild(A.createTextNode(N+F));B.getElementsByTagName("defs")[0].appendChild(G)}null!=
-x&&(this.defaultPageBackgroundColor=y,this.defaultForegroundColor=t,this.stylesheet=x,this.refresh());return B};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 f=b.text.getContentNode();if(null!=f){f=f.cloneNode(!0);if(f.getElementsByTagNameNS)for(var e=
-f.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<e.length;)e[0].parentNode.removeChild(e[0]);null!=f.innerHTML&&(e=b.text.value,b.text.value=f.innerHTML,d.apply(this,arguments),b.text.value=e)}}else d.apply(this,arguments)}}return b};var K=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){K.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var b=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||
-null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),
-this.webKitForceRepaintNode.style.cssText="position:absolute;",b.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,b.ownerSVGElement))}};var B=Graph.prototype.refresh;Graph.prototype.refresh=function(){B.apply(this,arguments);this.refreshBackgroundImage()};Graph.prototype.refreshBackgroundImage=function(){null!=this.backgroundImage&&null!=this.backgroundImage.originalSrc&&(this.setBackgroundImage(this.backgroundImage),this.view.validateBackgroundImage())};var L=Graph.prototype.loadStylesheet;
-Graph.prototype.loadStylesheet=function(){L.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(b){"data:action/json,"==b.substring(0,17)&&(b=JSON.parse(b.substring(17)),null!=b.actions&&this.executeCustomActions(b.actions))};Graph.prototype.executeCustomActions=function(b,d){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),
-this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var c=!1,f=0,e=0,g=mxUtils.bind(this,function(){c||(c=!0,this.model.beginUpdate())}),l=mxUtils.bind(this,function(){c&&(c=!1,this.model.endUpdate())}),k=mxUtils.bind(this,function(){0<f&&f--;0==f&&m()}),m=mxUtils.bind(this,function(){if(e<b.length){var c=this.stoppingCustomActions,n=b[e++],q=[];if(null!=n.open)if(l(),this.isCustomLink(n.open)){if(!this.customLinkClicked(n.open))return}else this.openLink(n.open);
-null==n.wait||c||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;k()}),f++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,""!=n.wait?parseInt(n.wait):1E3),l());null!=n.opacity&&null!=n.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(n.opacity,!0)),n.opacity.value);null!=n.fadeIn&&(f++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeIn,!0)),0,1,k,c?0:
-n.fadeIn.delay));null!=n.fadeOut&&(f++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeOut,!0)),1,0,k,c?0:n.fadeOut.delay));null!=n.wipeIn&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeIn,!0),!0)));null!=n.wipeOut&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeOut,!0),!1)));null!=n.toggle&&(g(),this.toggleCells(this.getCellsForAction(n.toggle,!0)));if(null!=n.show){g();var p=this.getCellsForAction(n.show,!0);Graph.setOpacityForNodes(this.getNodesForCells(p),
-1);this.setCellsVisible(p,!0)}null!=n.hide&&(g(),p=this.getCellsForAction(n.hide,!0),Graph.setOpacityForNodes(this.getNodesForCells(p),0),this.setCellsVisible(p,!1));null!=n.toggleStyle&&null!=n.toggleStyle.key&&(g(),this.toggleCellStyles(n.toggleStyle.key,null!=n.toggleStyle.defaultValue?n.toggleStyle.defaultValue:"0",this.getCellsForAction(n.toggleStyle,!0)));null!=n.style&&null!=n.style.key&&(g(),this.setCellStyles(n.style.key,n.style.value,this.getCellsForAction(n.style,!0)));p=[];null!=n.select&&
-this.isEnabled()&&(p=this.getCellsForAction(n.select),this.setSelectionCells(p));null!=n.highlight&&(p=this.getCellsForAction(n.highlight),this.highlightCells(p,n.highlight.color,n.highlight.duration,n.highlight.opacity));null!=n.scroll&&(p=this.getCellsForAction(n.scroll));null!=n.viewbox&&this.fitWindow(n.viewbox,n.viewbox.border);0<p.length&&this.scrollCellToVisible(p[0]);if(null!=n.tags){p=[];null!=n.tags.hidden&&(p=p.concat(n.tags.hidden));if(null!=n.tags.visible)for(var u=this.getAllTags(),
-v=0;v<u.length;v++)0>mxUtils.indexOf(n.tags.visible,u[v])&&0>mxUtils.indexOf(p,u[v])&&p.push(u[v]);this.hiddenTags=p;this.refresh()}0<q.length&&(f++,this.executeAnimations(q,k,c?1:n.steps,c?0:n.delay));0==f?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 f=
-document.createElement("div");f.innerHTML=this.sanitizeHtml(this.getLabel(d));for(var e=f.getElementsByTagName("a"),g=!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)),g=!0);g&&this.labelChanged(d,f.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(Z){}return d};Graph.prototype.updateCustomLinkActions=function(b,d){for(var c=0;c<d.length;c++){var f=d[c],e;for(e in f)this.updateCustomLinkAction(b,f[e],"cells"),this.updateCustomLinkAction(b,f[e],"excludeCells")}};Graph.prototype.updateCustomLinkAction=function(b,d,c){if(null!=d&&null!=d[c]){for(var f=[],e=0;e<d[c].length;e++)if("*"==d[c][e])f.push(d[c][e]);else{var g=b[d[c][e]];null!=g?""!=g&&f.push(g):f.push(d[c][e])}d[c]=f}};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 f=[],e=0;e<c.length;e++)0>b.excludeCells.indexOf(c[e].id)&&f.push(c[e]);c=f}return c};Graph.prototype.getCellsById=function(b){var d=[];if(null!=b)for(var c=0;c<b.length;c++)if("*"==b[c])var f=this.model.getRoot(),d=d.concat(this.model.filterDescendants(function(b){return b!=f},f));else{var e=this.model.getCell(b[c]);null!=e&&d.push(e)}return d};var O=Graph.prototype.isCellVisible;
-Graph.prototype.isCellVisible=function(b){return O.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,f){var e=[];if(null!=b){d=null!=d?d:this.model.getDescendants(this.model.getRoot());
-for(var g=0,l={},k=0;k<b.length;k++)0<b[k].length&&(l[b[k]]=!0,g++);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]),n=!1;if(0<m.length&&(m=m.split(" "),m.length>=b.length)){for(var q=n=0;q<m.length&&n<g;q++)null!=l[m[q]]&&n++;n=n==g}n&&(1!=f||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=[],f=0;f<b.length;f++){var e=this.getTagsForCell(b[f]),c=[];if(0<e.length){for(var e=e.split(" "),g={},l=0;l<e.length;l++)if(null==d||null!=d[e[l]])g[e[l]]=!0,c.push(e[l]);d=g}else return[]}return c};Graph.prototype.getTagsForCells=function(b){for(var d=[],c={},f=0;f<b.length;f++){var e=this.getTagsForCell(b[f]);if(0<e.length)for(var e=e.split(" "),g=0;g<e.length;g++)null==c[e[g]]&&(c[e[g]]=!0,d.push(e[g]))}return d};Graph.prototype.getTagsForCell=
-function(b){return this.getAttributeForCell(b,"tags","")};Graph.prototype.addTagsForCells=function(b,d){if(0<b.length&&0<d.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){for(var f=this.getTagsForCell(b[c]),e=f.split(" "),g=!1,l=0;l<d.length;l++){var k=mxUtils.trim(d[l]);""!=k&&0>mxUtils.indexOf(e,k)&&(f=0<f.length?f+" "+k:k,g=!0)}g&&this.setAttributeForCell(b[c],"tags",f)}}finally{this.model.endUpdate()}}};Graph.prototype.removeTagsForCells=function(b,d){if(0<b.length&&0<d.length){this.model.beginUpdate();
-try{for(var c=0;c<b.length;c++){var f=this.getTagsForCell(b[c]);if(0<f.length){for(var e=f.split(" "),g=!1,l=0;l<d.length;l++){var k=mxUtils.indexOf(e,d[l]);0<=k&&(e.splice(k,1),g=!0)}g&&this.setAttributeForCell(b[c],"tags",e.join(" "))}}}finally{this.model.endUpdate()}}};Graph.prototype.toggleCells=function(b){this.model.beginUpdate();try{for(var d=0;d<b.length;d++)this.model.setVisible(b[d],!this.model.isVisible(b[d]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(b,
-d){this.model.beginUpdate();try{for(var c=0;c<b.length;c++)this.model.setVisible(b[c],d)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(b,d,c,f){for(var e=0;e<b.length;e++)this.highlightCell(b[e],d,c,f)};Graph.prototype.highlightCell=function(b,d,c,f){d=null!=d?d:mxConstants.DEFAULT_VALID_COLOR;c=null!=c?c:1E3;b=this.view.getState(b);if(null!=b){var e=Math.max(5,mxUtils.getValue(b.style,mxConstants.STYLE_STROKEWIDTH,1)+4),g=new mxCellHighlight(this,d,e,!1);null!=f&&(g.opacity=
-f);g.highlight(b);window.setTimeout(function(){null!=g.shape&&(mxUtils.setPrefixedStyle(g.shape.node.style,"transition","all 1200ms ease-in-out"),g.shape.node.style.opacity=0);window.setTimeout(function(){g.destroy()},1200)},c)}};Graph.prototype.addSvgShadow=function(b,d,c,f){c=null!=c?c:!1;f=null!=f?f:!0;var e=b.ownerDocument,g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"filter"):e.createElement("filter");g.setAttribute("id",this.shadowId);var l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,
-"feGaussianBlur"):e.createElement("feGaussianBlur");l.setAttribute("in","SourceAlpha");l.setAttribute("stdDeviation",this.svgShadowBlur);l.setAttribute("result","blur");g.appendChild(l);l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feOffset"):e.createElement("feOffset");l.setAttribute("in","blur");l.setAttribute("dx",this.svgShadowSize);l.setAttribute("dy",this.svgShadowSize);l.setAttribute("result","offsetBlur");g.appendChild(l);l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,
-"feFlood"):e.createElement("feFlood");l.setAttribute("flood-color",this.svgShadowColor);l.setAttribute("flood-opacity",this.svgShadowOpacity);l.setAttribute("result","offsetColor");g.appendChild(l);l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feComposite"):e.createElement("feComposite");l.setAttribute("in","offsetColor");l.setAttribute("in2","offsetBlur");l.setAttribute("operator","in");l.setAttribute("result","offsetBlur");g.appendChild(l);l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,
-"feBlend"):e.createElement("feBlend");l.setAttribute("in","SourceGraphic");l.setAttribute("in2","offsetBlur");g.appendChild(l);l=b.getElementsByTagName("defs");0==l.length?(e=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"defs"):e.createElement("defs"),null!=b.firstChild?b.insertBefore(e,b.firstChild):b.appendChild(e)):e=l[0];e.appendChild(g);c||(d=null!=d?d:b.getElementsByTagName("g")[0],null!=d&&(d.setAttribute("filter","url(#"+this.shadowId+")"),!isNaN(parseInt(b.getAttribute("width")))&&
-f&&(b.setAttribute("width",parseInt(b.getAttribute("width"))+6),b.setAttribute("height",parseInt(b.getAttribute("height"))+6),d=b.getAttribute("viewBox"),null!=d&&0<d.length&&(d=d.split(" "),3<d.length&&(w=parseFloat(d[2])+6,h=parseFloat(d[3])+6,b.setAttribute("viewBox",d[0]+" "+d[1]+" "+w+" "+h))))));return g};Graph.prototype.setShadowVisible=function(b,d){mxClient.IS_SVG&&!mxClient.IS_SF&&(d=null!=d?d:!0,(this.shadowVisible=b)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+
-")"):this.view.getDrawPane().removeAttribute("filter"),d&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var b=this.model.getChildCount(this.model.root),d,c=0;do d=this.model.getChildAt(this.model.root,c);while(c++<b&&"1"==mxUtils.getValue(this.getCellStyle(d),"locked","0"));null!=d&&this.setDefaultParent(d)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries.arrows2=
-[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.atlassian=[STENCIL_PATH+"/atlassian.xml",SHAPES_PATH+"/mxAtlassian.js"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.bpmn2=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.c4=[SHAPES_PATH+"/mxC4.js"];mxStencilRegistry.libraries.cisco19=[SHAPES_PATH+"/mxCisco19.js",STENCIL_PATH+
-"/cisco19.xml"];mxStencilRegistry.libraries.cisco_safe=[SHAPES_PATH+"/mxCiscoSafe.js",STENCIL_PATH+"/cisco_safe/architecture.xml",STENCIL_PATH+"/cisco_safe/business_icons.xml",STENCIL_PATH+"/cisco_safe/capability.xml",STENCIL_PATH+"/cisco_safe/design.xml",STENCIL_PATH+"/cisco_safe/iot_things_icons.xml",STENCIL_PATH+"/cisco_safe/people_places_things_icons.xml",STENCIL_PATH+"/cisco_safe/security_icons.xml",STENCIL_PATH+"/cisco_safe/technology_icons.xml",STENCIL_PATH+"/cisco_safe/threat.xml"];mxStencilRegistry.libraries.dfd=
-[SHAPES_PATH+"/mxDFD.js"];mxStencilRegistry.libraries.er=[SHAPES_PATH+"/er/mxER.js"];mxStencilRegistry.libraries.kubernetes=[SHAPES_PATH+"/mxKubernetes.js",STENCIL_PATH+"/kubernetes.xml"];mxStencilRegistry.libraries.flowchart=[SHAPES_PATH+"/mxFlowchart.js",STENCIL_PATH+"/flowchart.xml"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral=[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5=[STENCIL_PATH+
-"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android=[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/abstract"]=
-[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/abstract.xml"];mxStencilRegistry.libraries["electrical/logic_gates"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/logic_gates.xml"];mxStencilRegistry.libraries["electrical/miscellaneous"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/miscellaneous.xml"];mxStencilRegistry.libraries["electrical/signal_sources"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/signal_sources.xml"];mxStencilRegistry.libraries["electrical/transmission"]=
-[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries.infographic=[SHAPES_PATH+"/mxInfographic.js"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]=[SHAPES_PATH+"/mockup/mxMockupGraphics.js",
-STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",
-STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",SHAPES_PATH+"/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 ca=mxMarker.createMarker;mxMarker.createMarker=
-function(b,d,c,f,e,g,l,k,m,n){if(null!=c&&null==mxMarker.markers[c]){var q=this.getPackageForType(c);null!=q&&mxStencilRegistry.getStencil(q)}return ca.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(u.value))));u.value=Math.max(1,Math.min(k,Math.min(parseInt(v.value),parseInt(u.value))))}function f(d){function c(d,c,g){var l=d.useCssTransforms,k=d.currentTranslate,m=d.currentScale,n=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 p=d.getGraphBounds(),u=0,v=0,x=M.get(),t=1/d.pageScale,C=B.checked;if(C)var t=parseInt(K.value),N=parseInt(J.value),t=Math.min(x.height*N/(p.height/d.view.scale),x.width*t/(p.width/d.view.scale));else t=parseInt(y.value)/(100*d.pageScale),isNaN(t)&&(f=1/d.pageScale,y.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*
-f);x.height=Math.ceil(x.height*f);t*=f;!C&&d.pageVisible?(p=d.getPageLayout(),u-=p.x*x.width,v-=p.y*x.height):C=!0;if(null==c){c=PrintDialog.createPrintPreview(d,t,x,0,u,v,C);c.pageSelector=!1;c.mathEnabled=!1;u=b.getCurrentFile();null!=u&&(c.title=u.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 f=d.getCustomFonts(),e=0;e<f.length;e++){var g=f[e].name,l=f[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(g)+'";\nsrc: url("'+mxUtils.htmlEntities(l)+'");\n}'),c.writeln("</style>"))}};if("undefined"!==typeof MathJax){var F=c.renderPage;c.renderPage=function(d,c,f,e,g,l){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var m=F.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:m.className="geDisableMathJax";return m}}u=null;v=e.enableFlowAnimation;e.enableFlowAnimation=
-!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(u=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.refresh());c.open(null,null,g,!0);e.enableFlowAnimation=v;null!=u&&(e.stylesheet=u,e.refresh())}else{x=d.background;if(null==x||""==x||x==mxConstants.NONE)x="#ffffff";c.backgroundColor=x;c.autoOrigin=C;c.appendGraph(d,t,u,v,g,!0);g=d.getCustomFonts();if(null!=c.wnd)for(u=0;u<g.length;u++)v=g[u].name,C=g[u].url,Graph.isCssFontUrl(C)?c.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(C)+
-'" charset="UTF-8" type="text/css">'):(c.wnd.document.writeln('<style type="text/css">'),c.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(v)+'";\nsrc: url("'+mxUtils.htmlEntities(C)+'");\n}'),c.wnd.document.writeln("</style>"))}l&&(d.useCssTransforms=l,d.currentTranslate=k,d.currentScale=m,d.view.translate=n,d.view.scale=q);return c}var f=parseInt(E.value)/100;isNaN(f)&&(f=1,E.value="100 %");var f=.75*f,g=null;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(g=e.stylesheet,
-e.stylesheet=e.getDefaultStylesheet(),e.refresh());var l=u.value,k=v.value,n=!q.checked,p=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,l,k,B.checked,K.value,J.value,parseInt(y.value)/100,parseInt(E.value)/100,M.get());else{n&&(n=l==m&&k==m);if(!n&&null!=b.pages&&b.pages.length){var x=0,n=b.pages.length-1;q.checked||(x=parseInt(l)-1,n=parseInt(k)-1);for(var t=x;t<=n;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 F=l.getGlobalVariable;l.getGlobalVariable=function(d){return"page"==d?C.getName():"pagenumber"==d?t+1:"pagecount"==d?null!=b.pages?b.pages.length:1:F.apply(this,
-arguments)};document.body.appendChild(l.container);b.updatePageRoot(C);l.model.setRoot(C.root)}p=c(l,p,t!=n);l!=e&&l.container.parentNode.removeChild(l.container)}}else p=c(e);null==p?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(p.mathEnabled&&(n=p.wnd.document,d&&(p.wnd.IMMEDIATE_PRINT=!0),n.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),p.closeDocument(),!p.mathEnabled&&d&&PrintDialog.printPreview(p));null!=g&&(e.stylesheet=
-g,e.refresh())}}var e=b.editor.graph,g=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"));g.appendChild(l);var k=1,m=1,n=document.createElement("div");n.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");n.appendChild(q);l=document.createElement("span");mxUtils.write(l,mxResources.get("printAllPages"));n.appendChild(l);mxUtils.br(n);var p=q.cloneNode(!0);q.setAttribute("checked","checked");p.setAttribute("value","range");n.appendChild(p);l=document.createElement("span");mxUtils.write(l,mxResources.get("pages")+":");n.appendChild(l);var u=document.createElement("input");u.style.cssText="margin:0 8px 0 8px;";u.setAttribute("value","1");u.setAttribute("type",
-"number");u.setAttribute("min","1");u.style.width="50px";n.appendChild(u);l=document.createElement("span");mxUtils.write(l,mxResources.get("to"));n.appendChild(l);var v=u.cloneNode(!0);n.appendChild(v);mxEvent.addListener(u,"focus",function(){p.checked=!0});mxEvent.addListener(v,"focus",function(){p.checked=!0});mxEvent.addListener(u,"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;u.value=m;v.value=m;break}u.setAttribute("max",k);v.setAttribute("max",k);b.isPagesEnabled()?1<k&&(g.appendChild(n),p.checked=!0):p.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 y=document.createElement("input");
-y.style.cssText="margin:0 8px 0 8px;";y.setAttribute("value","100 %");y.style.width="50px";x.appendChild(y);mxEvent.addListener(y,"focus",function(){t.checked=!0});g.appendChild(x);var n=n.cloneNode(!1),B=t.cloneNode(!0);B.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(B);n.appendChild(l);x=document.createElement("table");x.style.display="inline-block";
-var C=document.createElement("tbody"),N=document.createElement("tr"),F=N.cloneNode(!0),D=document.createElement("td"),O=D.cloneNode(!0),G=D.cloneNode(!0),H=D.cloneNode(!0),L=D.cloneNode(!0),Q=D.cloneNode(!0);D.style.textAlign="right";H.style.textAlign="right";mxUtils.write(D,mxResources.get("fitTo"));var K=document.createElement("input");K.style.cssText="margin:0 8px 0 8px;";K.setAttribute("value","1");K.setAttribute("min","1");K.setAttribute("type","number");K.style.width="40px";O.appendChild(K);
-l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));G.appendChild(l);mxUtils.write(H,mxResources.get("fitToBy"));var J=K.cloneNode(!0);L.appendChild(J);mxEvent.addListener(K,"focus",function(){B.checked=!0});mxEvent.addListener(J,"focus",function(){B.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));Q.appendChild(l);N.appendChild(D);N.appendChild(O);N.appendChild(G);F.appendChild(H);F.appendChild(L);F.appendChild(Q);
-C.appendChild(N);C.appendChild(F);x.appendChild(C);n.appendChild(x);g.appendChild(n);n=document.createElement("div");l=document.createElement("div");l.style.fontWeight="bold";l.style.marginBottom="12px";mxUtils.write(l,mxResources.get("paperSize"));n.appendChild(l);l=document.createElement("div");l.style.marginBottom="12px";var M=PageSetupDialog.addPageFormatPanel(l,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);n.appendChild(l);l=document.createElement("span");mxUtils.write(l,
-mxResources.get("pageScale"));n.appendChild(l);var E=document.createElement("input");E.style.cssText="margin:0 8px 0 8px;";E.setAttribute("value","100 %");E.style.width="60px";n.appendChild(E);g.appendChild(n);l=document.createElement("div");l.style.cssText="text-align:right;margin:48px 0 0 0;";n=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});n.className="geBtn";b.editor.cancelFirst&&l.appendChild(n);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();f(!1)}),x.className="geBtn",l.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();f(!0)});x.className="geBtn gePrimaryBtn";l.appendChild(x);b.editor.cancelFirst||l.appendChild(n);g.appendChild(l);this.container=g};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&&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 Q=document.createElement("canvas"),W=new Image;W.onload=function(){try{Q.getContext("2d").drawImage(W,
-0,0);var b=Q.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=b&&6<b.length}catch(J){}};W.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(G){}})();
+mxUtils.getValue(d,"autoAddCol","0"),c.autoAddRow="1"==mxUtils.getValue(d,"autoAddRow",c.autoAddCol?"0":"1"),c.colWidths=d.colWidths||"100",c.rowHeights=d.rowHeights||"50",c}return f.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.hex2rgba(this.defaultForegroundColor),
+c=mxUtils.hex2rgba(this.defaultPageBackgroundColor);this.replaceDefaultColor(b,mxConstants.STYLE_FONTCOLOR,d);this.replaceDefaultColor(b,mxConstants.STYLE_FILLCOLOR,c);this.replaceDefaultColor(b,mxConstants.STYLE_STROKECOLOR,d);this.replaceDefaultColor(b,mxConstants.STYLE_IMAGE_BORDER,d);this.replaceDefaultColor(b,mxConstants.STYLE_IMAGE_BACKGROUND,c);this.replaceDefaultColor(b,mxConstants.STYLE_LABEL_BORDERCOLOR,d);this.replaceDefaultColor(b,mxConstants.STYLE_SWIMLANE_FILLCOLOR,c);this.replaceDefaultColor(b,
+mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,c)}};Graph.prototype.replaceDefaultColor=function(b,d,c){null!=b&&"default"==b[d]&&null!=c&&(b[d]=c)};var D=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,d,c,f,e,g,l,k,m,n,q){D.apply(this,arguments);Graph.processFontAttributes(q)};var I=mxText.prototype.redraw;mxText.prototype.redraw=function(){I.apply(this,arguments);null!=this.node&&"DIV"==this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.createTagsDialog=
+function(b,d,c){function f(){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();f();l.refresh()}function g(b,c){n.innerHTML="";if(0<b.length){var g=document.createElement("table");g.setAttribute("cellpadding","2");g.style.boxSizing="border-box";g.style.tableLayout="fixed";g.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 g=
+0>mxUtils.indexOf(l.hiddenTags,b),n=document.createElement("tr"),q=document.createElement("td");q.style.align="center";q.style.width="16px";var p=document.createElement("img");p.setAttribute("src",g?Editor.visibleImage:Editor.hiddenImage);p.setAttribute("title",mxResources.get(g?"hideIt":"show",[b]));mxUtils.setOpacity(p,g?75:25);p.style.verticalAlign="middle";p.style.cursor="pointer";p.style.width="16px";if(d||Editor.isDarkMode())p.style.filter="invert(100%)";q.appendChild(p);mxEvent.addListener(p,
+"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),f(),l.refresh());mxEvent.consume(d)});n.appendChild(q);q=document.createElement("td");q.style.overflow="hidden";q.style.whiteSpace="nowrap";q.style.textOverflow="ellipsis";q.style.verticalAlign="middle";q.style.cursor="pointer";q.setAttribute("title",b);a=document.createElement("a");mxUtils.write(a,b);a.style.textOverflow="ellipsis";
+a.style.position="relative";mxUtils.setOpacity(a,g?100:40);q.appendChild(a);mxEvent.addListener(q,"click",function(d){if(mxEvent.isShiftDown(d)){e(!0);var c=l.getCellsForTags([b],null,null,!0);l.isEnabled()?l.setSelectionCells(c):l.highlightCells(c)}else if(g&&0<l.hiddenTags.length)e(!0);else{var c=k.slice(),m=mxUtils.indexOf(c,b);c.splice(m,1);l.hiddenTags=c;f();l.refresh()}mxEvent.consume(d)});n.appendChild(q);if(l.isEnabled()){q=document.createElement("td");q.style.verticalAlign="middle";q.style.textAlign=
+"center";q.style.width="18px";if(null==c){q.style.align="center";q.style.width="16px";p=document.createElement("img");p.setAttribute("src",Editor.crossImage);p.setAttribute("title",mxResources.get("removeIt",[b]));mxUtils.setOpacity(p,g?75:25);p.style.verticalAlign="middle";p.style.cursor="pointer";p.style.width="16px";if(d||Editor.isDarkMode())p.style.filter="invert(100%)";mxEvent.addListener(p,"click",function(d){var c=mxUtils.indexOf(k,b);0<=c&&k.splice(c,1);l.removeTagsForCells(l.model.getDescendants(l.model.getRoot()),
+[b]);l.refresh();mxEvent.consume(d)});q.appendChild(p)}else{var u=document.createElement("input");u.setAttribute("type","checkbox");u.style.margin="0px";u.defaultChecked=null!=c&&0<=mxUtils.indexOf(c,b);u.checked=u.defaultChecked;u.style.background="transparent";u.setAttribute("title",mxResources.get(u.defaultChecked?"removeIt":"add",[b]));mxEvent.addListener(u,"change",function(d){u.checked?l.addTagsForCells(l.getSelectionCells(),[b]):l.removeTagsForCells(l.getSelectionCells(),[b]);mxEvent.consume(d)});
+q.appendChild(u)}n.appendChild(q)}m.appendChild(n)})(b[q]);g.appendChild(m);n.appendChild(g)}}var l=this,k=l.hiddenTags.slice(),m=document.createElement("div");m.style.userSelect="none";m.style.overflow="hidden";m.style.padding="10px";m.style.height="100%";var n=document.createElement("div");n.style.boxSizing="border-box";n.style.borderRadius="4px";n.style.userSelect="none";n.style.overflow="auto";n.style.position="absolute";n.style.left="10px";n.style.right="10px";n.style.top="10px";n.style.border=
+l.isEnabled()?"1px solid #808080":"none";n.style.bottom=l.isEnabled()?"48px":"10px";m.appendChild(n);var q=mxUtils.button(mxResources.get("reset"),function(b){l.hiddenTags=[];mxEvent.isShiftDown(b)||(k=l.hiddenTags.slice());f();l.refresh()});q.setAttribute("title",mxResources.get("reset"));q.className="geBtn";q.style.margin="0 4px 0 0";var p=mxUtils.button(mxResources.get("add"),function(){null!=c&&c(k,function(b){k=b;u()})});p.setAttribute("title",mxResources.get("add"));p.className="geBtn";p.style.margin=
+"0";l.addListener(mxEvent.ROOT,function(){k=l.hiddenTags.slice()});var u=mxUtils.bind(this,function(d,c){if(b()){for(var f=l.getAllTags(),e=0;e<f.length;e++)0>mxUtils.indexOf(k,f[e])&&k.push(f[e]);k.sort();l.isSelectionEmpty()?g(k):g(k,l.getCommonTagsForCells(l.getSelectionCells()))}});l.selectionModel.addListener(mxEvent.CHANGE,u);l.model.addListener(mxEvent.CHANGE,u);l.addListener(mxEvent.REFRESH,u);var v=document.createElement("div");v.style.boxSizing="border-box";v.style.whiteSpace="nowrap";v.style.position=
+"absolute";v.style.overflow="hidden";v.style.bottom="0px";v.style.height="42px";v.style.right="10px";v.style.left="10px";l.isEnabled()&&(v.appendChild(q),v.appendChild(p),m.appendChild(v));return{div:m,refresh:u}};Graph.prototype.getCustomFonts=function(){var b=this.extFonts,b=null!=b?b.slice():[],d;for(d in Graph.customFontElements){var c=Graph.customFontElements[d];b.push({name:c.name,url:c.url})}return b};Graph.prototype.setFont=function(b,d){Graph.addFont(b,d);document.execCommand("fontname",
+!1,b);if(null!=d){var c=this.cellEditor.textarea.getElementsByTagName("font");d=Graph.getFontUrl(b,d);for(var f=0;f<c.length;f++)c[f].getAttribute("face")==b&&c[f].getAttribute("data-font-src")!=d&&c[f].setAttribute("data-font-src",d)}};var B=Graph.prototype.isFastZoomEnabled;Graph.prototype.isFastZoomEnabled=function(){return B.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=
+null!=this.globalVars?mxUtils.clone(this.globalVars):{};var b=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=b)for(var d in b)this.globalVars[d]=b[d]}catch(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 G=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var d=G.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 M=Graph.prototype.getSvg;Graph.prototype.getSvg=function(b,d,c,f,e,g,l,k,m,n,q,p,u,v){var x=null,t=null,y=null;p||null==this.themes||"darkTheme"!=this.defaultThemeName||(x=this.stylesheet,t=this.defaultForegroundColor,
+y=this.defaultPageBackgroundColor,this.defaultPageBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":Editor.darkColor,this.defaultForegroundColor="darkTheme"==this.defaultThemeName?"#000000":"#f0f0f0",this.stylesheet=this.getDefaultStylesheet(),this.refresh());var C=M.apply(this,arguments),B=this.getCustomFonts();if(q&&0<B.length){var A=C.ownerDocument,H=null!=A.createElementNS?A.createElementNS(mxConstants.NS_SVG,"style"):A.createElement("style");null!=A.setAttributeNS?H.setAttributeNS("type",
+"text/css"):H.setAttribute("type","text/css");for(var N="",E="",G=0;G<B.length;G++){var J=B[G].name,D=B[G].url;Graph.isCssFontUrl(D)?N+="@import url("+D+");\n":E+='@font-face {\nfont-family: "'+J+'";\nsrc: url("'+D+'");\n}\n'}H.appendChild(A.createTextNode(N+E));C.getElementsByTagName("defs")[0].appendChild(H)}null!=x&&(this.defaultPageBackgroundColor=y,this.defaultForegroundColor=t,this.stylesheet=x,this.refresh());return C};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 f=b.text.getContentNode();if(null!=f){f=f.cloneNode(!0);if(f.getElementsByTagNameNS)for(var e=f.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<e.length;)e[0].parentNode.removeChild(e[0]);null!=f.innerHTML&&(e=b.text.value,b.text.value=
+f.innerHTML,d.apply(this,arguments),b.text.value=e)}}else d.apply(this,arguments)}}return b};var K=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){K.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var b=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||
+this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),this.webKitForceRepaintNode.style.cssText="position:absolute;",b.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,b.ownerSVGElement))}};
+var 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 L=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){L.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(b){"data:action/json,"==
+b.substring(0,17)&&(b=JSON.parse(b.substring(17)),null!=b.actions&&this.executeCustomActions(b.actions))};Graph.prototype.executeCustomActions=function(b,d){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var c=!1,f=0,e=0,g=mxUtils.bind(this,function(){c||
+(c=!0,this.model.beginUpdate())}),l=mxUtils.bind(this,function(){c&&(c=!1,this.model.endUpdate())}),k=mxUtils.bind(this,function(){0<f&&f--;0==f&&m()}),m=mxUtils.bind(this,function(){if(e<b.length){var c=this.stoppingCustomActions,n=b[e++],q=[];if(null!=n.open)if(l(),this.isCustomLink(n.open)){if(!this.customLinkClicked(n.open))return}else this.openLink(n.open);null==n.wait||c||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;k()}),
+f++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,""!=n.wait?parseInt(n.wait):1E3),l());null!=n.opacity&&null!=n.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(n.opacity,!0)),n.opacity.value);null!=n.fadeIn&&(f++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeIn,!0)),0,1,k,c?0:n.fadeIn.delay));null!=n.fadeOut&&(f++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeOut,!0)),1,0,k,c?0:n.fadeOut.delay));
+null!=n.wipeIn&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeIn,!0),!0)));null!=n.wipeOut&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeOut,!0),!1)));null!=n.toggle&&(g(),this.toggleCells(this.getCellsForAction(n.toggle,!0)));if(null!=n.show){g();var p=this.getCellsForAction(n.show,!0);Graph.setOpacityForNodes(this.getNodesForCells(p),1);this.setCellsVisible(p,!0)}null!=n.hide&&(g(),p=this.getCellsForAction(n.hide,!0),Graph.setOpacityForNodes(this.getNodesForCells(p),
+0),this.setCellsVisible(p,!1));null!=n.toggleStyle&&null!=n.toggleStyle.key&&(g(),this.toggleCellStyles(n.toggleStyle.key,null!=n.toggleStyle.defaultValue?n.toggleStyle.defaultValue:"0",this.getCellsForAction(n.toggleStyle,!0)));null!=n.style&&null!=n.style.key&&(g(),this.setCellStyles(n.style.key,n.style.value,this.getCellsForAction(n.style,!0)));p=[];null!=n.select&&this.isEnabled()&&(p=this.getCellsForAction(n.select),this.setSelectionCells(p));null!=n.highlight&&(p=this.getCellsForAction(n.highlight),
+this.highlightCells(p,n.highlight.color,n.highlight.duration,n.highlight.opacity));null!=n.scroll&&(p=this.getCellsForAction(n.scroll));null!=n.viewbox&&this.fitWindow(n.viewbox,n.viewbox.border);0<p.length&&this.scrollCellToVisible(p[0]);if(null!=n.tags){p=[];null!=n.tags.hidden&&(p=p.concat(n.tags.hidden));if(null!=n.tags.visible)for(var u=this.getAllTags(),v=0;v<u.length;v++)0>mxUtils.indexOf(n.tags.visible,u[v])&&0>mxUtils.indexOf(p,u[v])&&p.push(u[v]);this.hiddenTags=p;this.refresh()}0<q.length&&
+(f++,this.executeAnimations(q,k,c?1:n.steps,c?0:n.delay));0==f?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 f=document.createElement("div");f.innerHTML=this.sanitizeHtml(this.getLabel(d));for(var e=f.getElementsByTagName("a"),g=!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)),g=!0);g&&this.labelChanged(d,f.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(aa){}return d};Graph.prototype.updateCustomLinkActions=function(b,d){for(var c=
+0;c<d.length;c++){var f=d[c],e;for(e in f)this.updateCustomLinkAction(b,f[e],"cells"),this.updateCustomLinkAction(b,f[e],"excludeCells")}};Graph.prototype.updateCustomLinkAction=function(b,d,c){if(null!=d&&null!=d[c]){for(var f=[],e=0;e<d[c].length;e++)if("*"==d[c][e])f.push(d[c][e]);else{var g=b[d[c][e]];null!=g?""!=g&&f.push(g):f.push(d[c][e])}d[c]=f}};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 f=
+[],e=0;e<c.length;e++)0>b.excludeCells.indexOf(c[e].id)&&f.push(c[e]);c=f}return c};Graph.prototype.getCellsById=function(b){var d=[];if(null!=b)for(var c=0;c<b.length;c++)if("*"==b[c])var f=this.model.getRoot(),d=d.concat(this.model.filterDescendants(function(b){return b!=f},f));else{var e=this.model.getCell(b[c]);null!=e&&d.push(e)}return d};var O=Graph.prototype.isCellVisible;Graph.prototype.isCellVisible=function(b){return O.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,f){var e=[];if(null!=b){d=null!=d?d:this.model.getDescendants(this.model.getRoot());for(var g=0,l={},k=0;k<b.length;k++)0<b[k].length&&(l[b[k]]=!0,g++);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]),n=!1;if(0<m.length&&(m=m.split(" "),m.length>=b.length)){for(var q=n=0;q<m.length&&n<g;q++)null!=l[m[q]]&&n++;n=n==g}n&&(1!=f||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=[],f=0;f<b.length;f++){var e=this.getTagsForCell(b[f]),
+c=[];if(0<e.length){for(var e=e.split(" "),g={},l=0;l<e.length;l++)if(null==d||null!=d[e[l]])g[e[l]]=!0,c.push(e[l]);d=g}else return[]}return c};Graph.prototype.getTagsForCells=function(b){for(var d=[],c={},f=0;f<b.length;f++){var e=this.getTagsForCell(b[f]);if(0<e.length)for(var e=e.split(" "),g=0;g<e.length;g++)null==c[e[g]]&&(c[e[g]]=!0,d.push(e[g]))}return d};Graph.prototype.getTagsForCell=function(b){return this.getAttributeForCell(b,"tags","")};Graph.prototype.addTagsForCells=function(b,d){if(0<
+b.length&&0<d.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){for(var f=this.getTagsForCell(b[c]),e=f.split(" "),g=!1,l=0;l<d.length;l++){var k=mxUtils.trim(d[l]);""!=k&&0>mxUtils.indexOf(e,k)&&(f=0<f.length?f+" "+k:k,g=!0)}g&&this.setAttributeForCell(b[c],"tags",f)}}finally{this.model.endUpdate()}}};Graph.prototype.removeTagsForCells=function(b,d){if(0<b.length&&0<d.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){var f=this.getTagsForCell(b[c]);if(0<f.length){for(var e=
+f.split(" "),g=!1,l=0;l<d.length;l++){var k=mxUtils.indexOf(e,d[l]);0<=k&&(e.splice(k,1),g=!0)}g&&this.setAttributeForCell(b[c],"tags",e.join(" "))}}}finally{this.model.endUpdate()}}};Graph.prototype.toggleCells=function(b){this.model.beginUpdate();try{for(var d=0;d<b.length;d++)this.model.setVisible(b[d],!this.model.isVisible(b[d]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(b,d){this.model.beginUpdate();try{for(var c=0;c<b.length;c++)this.model.setVisible(b[c],d)}finally{this.model.endUpdate()}};
+Graph.prototype.highlightCells=function(b,d,c,f){for(var e=0;e<b.length;e++)this.highlightCell(b[e],d,c,f)};Graph.prototype.highlightCell=function(b,d,c,f){d=null!=d?d:mxConstants.DEFAULT_VALID_COLOR;c=null!=c?c:1E3;b=this.view.getState(b);if(null!=b){var e=Math.max(5,mxUtils.getValue(b.style,mxConstants.STYLE_STROKEWIDTH,1)+4),g=new mxCellHighlight(this,d,e,!1);null!=f&&(g.opacity=f);g.highlight(b);window.setTimeout(function(){null!=g.shape&&(mxUtils.setPrefixedStyle(g.shape.node.style,"transition",
+"all 1200ms ease-in-out"),g.shape.node.style.opacity=0);window.setTimeout(function(){g.destroy()},1200)},c)}};Graph.prototype.addSvgShadow=function(b,d,c,f){c=null!=c?c:!1;f=null!=f?f:!0;var e=b.ownerDocument,g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"filter"):e.createElement("filter");g.setAttribute("id",this.shadowId);var l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):e.createElement("feGaussianBlur");l.setAttribute("in","SourceAlpha");l.setAttribute("stdDeviation",
+this.svgShadowBlur);l.setAttribute("result","blur");g.appendChild(l);l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feOffset"):e.createElement("feOffset");l.setAttribute("in","blur");l.setAttribute("dx",this.svgShadowSize);l.setAttribute("dy",this.svgShadowSize);l.setAttribute("result","offsetBlur");g.appendChild(l);l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feFlood"):e.createElement("feFlood");l.setAttribute("flood-color",this.svgShadowColor);l.setAttribute("flood-opacity",
+this.svgShadowOpacity);l.setAttribute("result","offsetColor");g.appendChild(l);l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feComposite"):e.createElement("feComposite");l.setAttribute("in","offsetColor");l.setAttribute("in2","offsetBlur");l.setAttribute("operator","in");l.setAttribute("result","offsetBlur");g.appendChild(l);l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feBlend"):e.createElement("feBlend");l.setAttribute("in","SourceGraphic");l.setAttribute("in2",
+"offsetBlur");g.appendChild(l);l=b.getElementsByTagName("defs");0==l.length?(e=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"defs"):e.createElement("defs"),null!=b.firstChild?b.insertBefore(e,b.firstChild):b.appendChild(e)):e=l[0];e.appendChild(g);c||(d=null!=d?d:b.getElementsByTagName("g")[0],null!=d&&(d.setAttribute("filter","url(#"+this.shadowId+")"),!isNaN(parseInt(b.getAttribute("width")))&&f&&(b.setAttribute("width",parseInt(b.getAttribute("width"))+6),b.setAttribute("height",
+parseInt(b.getAttribute("height"))+6),d=b.getAttribute("viewBox"),null!=d&&0<d.length&&(d=d.split(" "),3<d.length&&(w=parseFloat(d[2])+6,h=parseFloat(d[3])+6,b.setAttribute("viewBox",d[0]+" "+d[1]+" "+w+" "+h))))));return g};Graph.prototype.setShadowVisible=function(b,d){mxClient.IS_SVG&&!mxClient.IS_SF&&(d=null!=d?d:!0,(this.shadowVisible=b)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),d&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};
+Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var b=this.model.getChildCount(this.model.root),d,c=0;do d=this.model.getChildAt(this.model.root,c);while(c++<b&&"1"==mxUtils.getValue(this.getCellStyle(d),"locked","0"));null!=d&&this.setDefaultParent(d)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.atlassian=[STENCIL_PATH+"/atlassian.xml",SHAPES_PATH+
+"/mxAtlassian.js"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.bpmn2=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.c4=[SHAPES_PATH+"/mxC4.js"];mxStencilRegistry.libraries.cisco19=[SHAPES_PATH+"/mxCisco19.js",STENCIL_PATH+"/cisco19.xml"];mxStencilRegistry.libraries.cisco_safe=[SHAPES_PATH+"/mxCiscoSafe.js",STENCIL_PATH+"/cisco_safe/architecture.xml",
+STENCIL_PATH+"/cisco_safe/business_icons.xml",STENCIL_PATH+"/cisco_safe/capability.xml",STENCIL_PATH+"/cisco_safe/design.xml",STENCIL_PATH+"/cisco_safe/iot_things_icons.xml",STENCIL_PATH+"/cisco_safe/people_places_things_icons.xml",STENCIL_PATH+"/cisco_safe/security_icons.xml",STENCIL_PATH+"/cisco_safe/technology_icons.xml",STENCIL_PATH+"/cisco_safe/threat.xml"];mxStencilRegistry.libraries.dfd=[SHAPES_PATH+"/mxDFD.js"];mxStencilRegistry.libraries.er=[SHAPES_PATH+"/er/mxER.js"];mxStencilRegistry.libraries.kubernetes=
+[SHAPES_PATH+"/mxKubernetes.js",STENCIL_PATH+"/kubernetes.xml"];mxStencilRegistry.libraries.flowchart=[SHAPES_PATH+"/mxFlowchart.js",STENCIL_PATH+"/flowchart.xml"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral=[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5=[STENCIL_PATH+"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];
+mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android=[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/abstract"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/abstract.xml"];mxStencilRegistry.libraries["electrical/logic_gates"]=
+[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/logic_gates.xml"];mxStencilRegistry.libraries["electrical/miscellaneous"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/miscellaneous.xml"];mxStencilRegistry.libraries["electrical/signal_sources"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/signal_sources.xml"];mxStencilRegistry.libraries["electrical/transmission"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries.infographic=
+[SHAPES_PATH+"/mxInfographic.js"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]=[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];
+mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",SHAPES_PATH+
+"/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 da=mxMarker.createMarker;mxMarker.createMarker=function(b,d,c,f,e,g,l,k,m,n){if(null!=c&&null==mxMarker.markers[c]){var q=this.getPackageForType(c);null!=
+q&&mxStencilRegistry.getStencil(q)}return da.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(u.value))));u.value=Math.max(1,Math.min(k,Math.min(parseInt(v.value),parseInt(u.value))))}function f(d){function c(d,c,g){var l=d.useCssTransforms,k=d.currentTranslate,m=d.currentScale,n=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 p=d.getGraphBounds(),u=0,v=0,x=M.get(),t=1/d.pageScale,B=C.checked;if(B)var t=parseInt(K.value),N=parseInt(J.value),t=Math.min(x.height*N/(p.height/d.view.scale),x.width*t/(p.width/d.view.scale));else t=parseInt(y.value)/(100*d.pageScale),isNaN(t)&&(f=1/d.pageScale,y.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*f);x.height=Math.ceil(x.height*f);t*=f;!B&&d.pageVisible?(p=d.getPageLayout(),u-=p.x*x.width,v-=p.y*x.height):
+B=!0;if(null==c){c=PrintDialog.createPrintPreview(d,t,x,0,u,v,B);c.pageSelector=!1;c.mathEnabled=!1;u=b.getCurrentFile();null!=u&&(c.title=u.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 f=d.getCustomFonts(),e=0;e<f.length;e++){var g=f[e].name,l=f[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(g)+'";\nsrc: url("'+mxUtils.htmlEntities(l)+'");\n}'),c.writeln("</style>"))}};
+if("undefined"!==typeof MathJax){var G=c.renderPage;c.renderPage=function(d,c,f,e,g,l){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var m=G.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:m.className="geDisableMathJax";return m}}u=null;v=e.enableFlowAnimation;e.enableFlowAnimation=!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(u=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),
+e.refresh());c.open(null,null,g,!0);e.enableFlowAnimation=v;null!=u&&(e.stylesheet=u,e.refresh())}else{x=d.background;if(null==x||""==x||x==mxConstants.NONE)x="#ffffff";c.backgroundColor=x;c.autoOrigin=B;c.appendGraph(d,t,u,v,g,!0);g=d.getCustomFonts();if(null!=c.wnd)for(u=0;u<g.length;u++)v=g[u].name,B=g[u].url,Graph.isCssFontUrl(B)?c.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(B)+'" 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(B)+'");\n}'),c.wnd.document.writeln("</style>"))}l&&(d.useCssTransforms=l,d.currentTranslate=k,d.currentScale=m,d.view.translate=n,d.view.scale=q);return c}var f=parseInt(F.value)/100;isNaN(f)&&(f=1,F.value="100 %");var f=.75*f,g=null;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(g=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.refresh());var l=u.value,k=v.value,n=!q.checked,
+p=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,l,k,C.checked,K.value,J.value,parseInt(y.value)/100,parseInt(F.value)/100,M.get());else{n&&(n=l==m&&k==m);if(!n&&null!=b.pages&&b.pages.length){var x=0,n=b.pages.length-1;q.checked||(x=parseInt(l)-1,n=parseInt(k)-1);for(var t=x;t<=n;t++){var B=b.pages[t],l=B==b.currentPage?e:null;if(null==l){var l=b.createTemporaryGraph(e.stylesheet),k=!0,x=!1,N=null,A=null;null==B.viewState&&null==B.root&&b.updatePageRoot(B);null!=B.viewState&&
+(k=B.viewState.pageVisible,x=B.viewState.mathEnabled,N=B.viewState.background,A=B.viewState.backgroundImage,l.extFonts=B.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 G=l.getGlobalVariable;l.getGlobalVariable=function(d){return"page"==d?B.getName():"pagenumber"==d?t+1:"pagecount"==d?null!=b.pages?b.pages.length:1:G.apply(this,arguments)};document.body.appendChild(l.container);b.updatePageRoot(B);l.model.setRoot(B.root)}p=
+c(l,p,t!=n);l!=e&&l.container.parentNode.removeChild(l.container)}}else p=c(e);null==p?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(p.mathEnabled&&(n=p.wnd.document,d&&(p.wnd.IMMEDIATE_PRINT=!0),n.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),p.closeDocument(),!p.mathEnabled&&d&&PrintDialog.printPreview(p));null!=g&&(e.stylesheet=g,e.refresh())}}var e=b.editor.graph,g=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"));g.appendChild(l);var k=1,m=1,n=document.createElement("div");n.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");n.appendChild(q);l=document.createElement("span");
+mxUtils.write(l,mxResources.get("printAllPages"));n.appendChild(l);mxUtils.br(n);var p=q.cloneNode(!0);q.setAttribute("checked","checked");p.setAttribute("value","range");n.appendChild(p);l=document.createElement("span");mxUtils.write(l,mxResources.get("pages")+":");n.appendChild(l);var u=document.createElement("input");u.style.cssText="margin:0 8px 0 8px;";u.setAttribute("value","1");u.setAttribute("type","number");u.setAttribute("min","1");u.style.width="50px";n.appendChild(u);l=document.createElement("span");
+mxUtils.write(l,mxResources.get("to"));n.appendChild(l);var v=u.cloneNode(!0);n.appendChild(v);mxEvent.addListener(u,"focus",function(){p.checked=!0});mxEvent.addListener(v,"focus",function(){p.checked=!0});mxEvent.addListener(u,"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;u.value=m;v.value=m;break}u.setAttribute("max",k);v.setAttribute("max",k);b.isPagesEnabled()?1<k&&(g.appendChild(n),
+p.checked=!0):p.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 y=document.createElement("input");y.style.cssText="margin:0 8px 0 8px;";y.setAttribute("value","100 %");y.style.width="50px";x.appendChild(y);
+mxEvent.addListener(y,"focus",function(){t.checked=!0});g.appendChild(x);var n=n.cloneNode(!1),C=t.cloneNode(!0);C.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(C);n.appendChild(l);x=document.createElement("table");x.style.display="inline-block";var B=document.createElement("tbody"),N=document.createElement("tr"),G=N.cloneNode(!0),D=document.createElement("td"),
+O=D.cloneNode(!0),H=D.cloneNode(!0),I=D.cloneNode(!0),L=D.cloneNode(!0),Q=D.cloneNode(!0);D.style.textAlign="right";I.style.textAlign="right";mxUtils.write(D,mxResources.get("fitTo"));var K=document.createElement("input");K.style.cssText="margin:0 8px 0 8px;";K.setAttribute("value","1");K.setAttribute("min","1");K.setAttribute("type","number");K.style.width="40px";O.appendChild(K);l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));H.appendChild(l);mxUtils.write(I,
+mxResources.get("fitToBy"));var J=K.cloneNode(!0);L.appendChild(J);mxEvent.addListener(K,"focus",function(){C.checked=!0});mxEvent.addListener(J,"focus",function(){C.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));Q.appendChild(l);N.appendChild(D);N.appendChild(O);N.appendChild(H);G.appendChild(I);G.appendChild(L);G.appendChild(Q);B.appendChild(N);B.appendChild(G);x.appendChild(B);n.appendChild(x);g.appendChild(n);n=document.createElement("div");l=
+document.createElement("div");l.style.fontWeight="bold";l.style.marginBottom="12px";mxUtils.write(l,mxResources.get("paperSize"));n.appendChild(l);l=document.createElement("div");l.style.marginBottom="12px";var M=PageSetupDialog.addPageFormatPanel(l,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);n.appendChild(l);l=document.createElement("span");mxUtils.write(l,mxResources.get("pageScale"));n.appendChild(l);var F=document.createElement("input");F.style.cssText="margin:0 8px 0 8px;";
+F.setAttribute("value","100 %");F.style.width="60px";n.appendChild(F);g.appendChild(n);l=document.createElement("div");l.style.cssText="text-align:right;margin:48px 0 0 0;";n=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});n.className="geBtn";b.editor.cancelFirst&&l.appendChild(n);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();f(!1)}),x.className="geBtn",l.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();f(!0)});x.className="geBtn gePrimaryBtn";l.appendChild(x);b.editor.cancelFirst||l.appendChild(n);g.appendChild(l);this.container=g};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&&
+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 Q=document.createElement("canvas"),Y=new Image;Y.onload=function(){try{Q.getContext("2d").drawImage(Y,0,0);var b=Q.toDataURL("image/png");Editor.prototype.useCanvasForExport=
+null!=b&&6<b.length}catch(J){}};Y.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(H){}})();
(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.6.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=
+(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.6.4";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,g,k,n,p){n=null!=n?n:0<=b.indexOf("NetworkError")||0<=b.indexOf("SecurityError")||0<=b.indexOf("NS_ERROR_FAILURE")||0<=b.indexOf("out of memory")?"CONFIG":
@@ -3374,13 +3374,13 @@ function(b){return 8<b.length&&(208==b.charCodeAt(0)&&207==b.charCodeAt(1)&&17==
26==b.charCodeAt(6)&&10==b.charCodeAt(7)};var b=EditorUi.prototype.createKeyHandler;EditorUi.prototype.createKeyHandler=function(d){var c=b.apply(this,arguments);if(!this.editor.chromeless||this.editor.editable){var e=c.getFunction,g=this.editor.graph,k=this;c.getFunction=function(b){if(g.isSelectionEmpty()&&null!=k.pages&&0<k.pages.length){var d=k.getSelectedPageIndex();if(mxEvent.isShiftDown(b)){if(37==b.keyCode)return function(){0<d&&k.movePage(d,d-1)};if(38==b.keyCode)return function(){0<d&&k.movePage(d,
0)};if(39==b.keyCode)return function(){d<k.pages.length-1&&k.movePage(d,d+1)};if(40==b.keyCode)return function(){d<k.pages.length-1&&k.movePage(d,k.pages.length-1)}}else if(mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b)){if(37==b.keyCode)return function(){0<d&&k.selectNextPage(!1)};if(38==b.keyCode)return function(){0<d&&k.selectPage(k.pages[0])};if(39==b.keyCode)return function(){d<k.pages.length-1&&k.selectNextPage(!0)};if(40==b.keyCode)return function(){d<k.pages.length-1&&k.selectPage(k.pages[k.pages.length-
1])}}}return e.apply(this,arguments)}}return c};var c=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(b){var d=c.apply(this,arguments);if(null==d)try{var e=b.indexOf("&lt;mxfile ");if(0<=e){var g=b.lastIndexOf("&lt;/mxfile&gt;");g>e&&(d=b.substring(e,g+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var k=mxUtils.parseXml(b),n=this.editor.extractGraphModel(k.documentElement,null!=this.pages||"hidden"==
-this.diagramContainer.style.visibility),d=null!=n?mxUtils.getXml(n):""}catch(u){}return d};EditorUi.prototype.validateFileData=function(b){if(null!=b&&0<b.length){var d=b.indexOf('<meta charset="utf-8">');0<=d&&(b=b.slice(0,d)+'<meta charset="utf-8"/>'+b.slice(d+23-1,b.length));b=Graph.zapGremlins(b)}return b};EditorUi.prototype.replaceFileData=function(b){b=this.validateFileData(b);b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:null;var d=null!=b?this.editor.extractGraphModel(b,!0):null;
+this.diagramContainer.style.visibility),d=null!=n?mxUtils.getXml(n):""}catch(v){}return d};EditorUi.prototype.validateFileData=function(b){if(null!=b&&0<b.length){var d=b.indexOf('<meta charset="utf-8">');0<=d&&(b=b.slice(0,d)+'<meta charset="utf-8"/>'+b.slice(d+23-1,b.length));b=Graph.zapGremlins(b)}return b};EditorUi.prototype.replaceFileData=function(b){b=this.validateFileData(b);b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:null;var d=null!=b?this.editor.extractGraphModel(b,!0):null;
null!=d&&(b=d);if(null!=b){d=this.editor.graph;d.model.beginUpdate();try{var c=null!=this.pages?this.pages.slice():null,e=b.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<e.length||1==e.length&&e[0].hasAttribute("name")){this.fileNode=b;this.pages=null!=this.pages?this.pages:[];for(var g=e.length-1;0<=g;g--){var k=this.updatePageRoot(new DiagramPage(e[g]));null==k.getName()&&k.setName(mxResources.get("pageWithNumber",[g+1]));d.model.execute(new ChangePage(this,k,0==g?k:null,0))}}else"0"!=
urlParams.pages&&null==this.fileNode&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),d.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(b),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(g=0;g<c.length;g++)d.model.execute(new ChangePage(this,c[g],null))}finally{d.model.endUpdate()}}};
-EditorUi.prototype.createFileData=function(b,c,e,g,k,n,p,v,t,x,D){c=null!=c?c:this.editor.graph;k=null!=k?k:!1;t=null!=t?t:!0;var d,f=null;null==e||e.getMode()==App.MODE_DEVICE||e.getMode()==App.MODE_BROWSER?d="_blank":f=d=g;if(null==b)return"";var l=b;if("mxfile"!=l.nodeName.toLowerCase()){if(D){var m=b.ownerDocument.createElement("diagram");m.setAttribute("id",Editor.guid());m.appendChild(b)}else{m=Graph.zapGremlins(mxUtils.getXml(b));l=Graph.compress(m);if(Graph.decompress(l)!=m)return m;m=b.ownerDocument.createElement("diagram");
+EditorUi.prototype.createFileData=function(b,c,e,g,k,n,p,u,t,x,D){c=null!=c?c:this.editor.graph;k=null!=k?k:!1;t=null!=t?t:!0;var d,f=null;null==e||e.getMode()==App.MODE_DEVICE||e.getMode()==App.MODE_BROWSER?d="_blank":f=d=g;if(null==b)return"";var l=b;if("mxfile"!=l.nodeName.toLowerCase()){if(D){var m=b.ownerDocument.createElement("diagram");m.setAttribute("id",Editor.guid());m.appendChild(b)}else{m=Graph.zapGremlins(mxUtils.getXml(b));l=Graph.compress(m);if(Graph.decompress(l)!=m)return m;m=b.ownerDocument.createElement("diagram");
m.setAttribute("id",Editor.guid());mxUtils.setTextContent(m,l)}l=b.ownerDocument.createElement("mxfile");l.appendChild(m)}x?(l=l.cloneNode(!0),l.removeAttribute("modified"),l.removeAttribute("host"),l.removeAttribute("agent"),l.removeAttribute("etag"),l.removeAttribute("userAgent"),l.removeAttribute("version"),l.removeAttribute("editor"),l.removeAttribute("type")):(l.removeAttribute("userAgent"),l.removeAttribute("version"),l.removeAttribute("editor"),l.removeAttribute("pages"),l.removeAttribute("type"),
mxClient.IS_CHROMEAPP?l.setAttribute("host","Chrome"):EditorUi.isElectronApp?l.setAttribute("host","Electron"):l.setAttribute("host",window.location.hostname),l.setAttribute("modified",(new Date).toISOString()),l.setAttribute("agent",navigator.appVersion),l.setAttribute("version",EditorUi.VERSION),l.setAttribute("etag",Editor.guid()),b=null!=e?e.getMode():this.mode,null!=b&&l.setAttribute("type",b),1<l.getElementsByTagName("diagram").length&&null!=this.pages&&l.setAttribute("pages",this.pages.length));
-D=D?mxUtils.getPrettyXml(l):mxUtils.getXml(l);if(!n&&!k&&(p||null!=e&&/(\.html)$/i.test(e.getTitle())))D=this.getHtml2(mxUtils.getXml(l),c,null!=e?e.getTitle():null,d,f);else if(n||!k&&null!=e&&/(\.svg)$/i.test(e.getTitle()))null==e||e.getMode()!=App.MODE_DEVICE&&e.getMode()!=App.MODE_BROWSER||(g=null),D=this.getEmbeddedSvg(D,c,g,null,v,t,f);return D};EditorUi.prototype.getXmlFileData=function(b,c,e,g){b=null!=b?b:!0;c=null!=c?c:!1;e=null!=e?e:!Editor.compressXml;var d=this.editor.getGraphXml(b,g);
+D=D?mxUtils.getPrettyXml(l):mxUtils.getXml(l);if(!n&&!k&&(p||null!=e&&/(\.html)$/i.test(e.getTitle())))D=this.getHtml2(mxUtils.getXml(l),c,null!=e?e.getTitle():null,d,f);else if(n||!k&&null!=e&&/(\.svg)$/i.test(e.getTitle()))null==e||e.getMode()!=App.MODE_DEVICE&&e.getMode()!=App.MODE_BROWSER||(g=null),D=this.getEmbeddedSvg(D,c,g,null,u,t,f);return D};EditorUi.prototype.getXmlFileData=function(b,c,e,g){b=null!=b?b:!0;c=null!=c?c:!1;e=null!=e?e:!Editor.compressXml;var d=this.editor.getGraphXml(b,g);
if(b&&null!=this.fileNode&&null!=this.currentPage)if(b=function(b){var c=b.getElementsByTagName("mxGraphModel"),c=0<c.length?c[0]:null;null==c&&e?(c=mxUtils.trim(mxUtils.getTextContent(b)),b=b.cloneNode(!1),0<c.length&&(c=Graph.decompress(c),null!=c&&0<c.length&&b.appendChild(mxUtils.parseXml(c).documentElement))):null==c||e?b=b.cloneNode(!0):(b=b.cloneNode(!1),mxUtils.setTextContent(b,Graph.compressNode(c)));d.appendChild(b)},EditorUi.removeChildNodes(this.currentPage.node),mxUtils.setTextContent(this.currentPage.node,
Graph.compressNode(d)),d=this.fileNode.cloneNode(!1),c)b(this.currentPage.node);else for(c=0;c<this.pages.length;c++){var f=this.pages[c],l=f.node;if(f!=this.currentPage)if(f.needsUpdate){var k=new mxCodec(mxUtils.createXmlDocument()),k=k.encode(new mxGraphModel(f.root));this.editor.graph.saveViewState(f.viewState,k,null,g);EditorUi.removeChildNodes(l);mxUtils.setTextContent(l,Graph.compressNode(k));delete f.needsUpdate}else g&&(this.updatePageRoot(f),null!=f.viewState.backgroundImage&&(null!=f.viewState.backgroundImage.originalSrc?
f.viewState.backgroundImage=this.createImageForPageLink(f.viewState.backgroundImage.originalSrc,f):Graph.isPageLink(f.viewState.backgroundImage.src)&&(f.viewState.backgroundImage=this.createImageForPageLink(f.viewState.backgroundImage.src,f))),null!=f.viewState.backgroundImage&&null!=f.viewState.backgroundImage.originalSrc&&(k=new mxCodec(mxUtils.createXmlDocument()),k=k.encode(new mxGraphModel(f.root)),this.editor.graph.saveViewState(f.viewState,k,null,g),l=l.cloneNode(!1),mxUtils.setTextContent(l,
@@ -3390,9 +3390,9 @@ function(b){if(null!=b[EditorUi.DIFF_INSERT])for(var d=0;d<b[EditorUi.DIFF_INSER
delete b[EditorUi.DIFF_UPDATE][e]}0==Object.keys(b[EditorUi.DIFF_UPDATE]).length&&delete b[EditorUi.DIFF_UPDATE]}return b};EditorUi.prototype.anonymizeAttributes=function(b,c){if(null!=b.attributes)for(var d=0;d<b.attributes.length;d++)"as"!=b.attributes[d].name&&b.setAttribute(b.attributes[d].name,this.anonymizeString(b.attributes[d].value,c));if(null!=b.childNodes)for(d=0;d<b.childNodes.length;d++)this.anonymizeAttributes(b.childNodes[d],c)};EditorUi.prototype.anonymizeNode=function(b,c){for(var d=
b.getElementsByTagName("mxCell"),f=0;f<d.length;f++)null!=d[f].getAttribute("value")&&d[f].setAttribute("value","["+d[f].getAttribute("value").length+"]"),null!=d[f].getAttribute("xmlValue")&&d[f].setAttribute("xmlValue","["+d[f].getAttribute("xmlValue").length+"]"),null!=d[f].getAttribute("style")&&d[f].setAttribute("style","["+d[f].getAttribute("style").length+"]"),null!=d[f].parentNode&&"root"!=d[f].parentNode.nodeName&&null!=d[f].parentNode.parentNode&&(d[f].setAttribute("id",d[f].parentNode.getAttribute("id")),
d[f].parentNode.parentNode.replaceChild(d[f],d[f].parentNode));return b};EditorUi.prototype.synchronizeCurrentFile=function(b){var d=this.getCurrentFile();null!=d&&(d.savingFile?this.handleError({message:mxResources.get("busy")}):!b&&d.invalidChecksum?d.handleFileError(null,!0):this.spinner.spin(document.body,mxResources.get("updatingDocument"))&&(d.clearAutosave(),this.editor.setStatus(""),b?d.reloadFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,
-function(b){d.handleFileError(b,!0)})):d.synchronizeFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(b){d.handleFileError(b,!0)}))))};EditorUi.prototype.getFileData=function(b,c,e,g,k,n,p,v,t,x,D){k=null!=k?k:!0;n=null!=n?n:!1;var d=this.editor.graph;if(c||!b&&null!=t&&/(\.svg)$/i.test(t.getTitle())){var f=null!=d.themes&&"darkTheme"==d.defaultThemeName;x=!1;if(f||null!=this.pages&&this.currentPage!=this.pages[0]){var l=d.getGlobalVariable,
+function(b){d.handleFileError(b,!0)})):d.synchronizeFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(b){d.handleFileError(b,!0)}))))};EditorUi.prototype.getFileData=function(b,c,e,g,k,n,p,u,t,x,D){k=null!=k?k:!0;n=null!=n?n:!1;var d=this.editor.graph;if(c||!b&&null!=t&&/(\.svg)$/i.test(t.getTitle())){var f=null!=d.themes&&"darkTheme"==d.defaultThemeName;x=!1;if(f||null!=this.pages&&this.currentPage!=this.pages[0]){var l=d.getGlobalVariable,
d=this.createTemporaryGraph(f?d.getDefaultStylesheet():d.getStylesheet());d.setBackgroundImage=this.editor.graph.setBackgroundImage;var m=this.pages[0];this.currentPage==m?d.setBackgroundImage(this.editor.graph.backgroundImage):null!=m.viewState&&null!=m.viewState&&d.setBackgroundImage(m.viewState.backgroundImage);d.getGlobalVariable=function(b){return"page"==b?m.getName():"pagenumber"==b?1:l.apply(this,arguments)};document.body.appendChild(d.container);d.model.setRoot(m.root)}}p=null!=p?p:this.getXmlFileData(k,
-n,x,D);t=null!=t?t:this.getCurrentFile();b=this.createFileData(p,d,t,window.location.href,b,c,e,g,k,v,x);d!=this.editor.graph&&d.container.parentNode.removeChild(d.container);return b};EditorUi.prototype.getHtml=function(b,c,e,g,k,n){n=null!=n?n:!0;var d=null,f=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=c){var d=n?c.getGraphBounds():c.getBoundingBox(c.getSelectionCells()),l=c.view.scale;n=Math.floor(d.x/l-c.view.translate.x);l=Math.floor(d.y/l-c.view.translate.y);d=c.background;null==k&&
+n,x,D);t=null!=t?t:this.getCurrentFile();b=this.createFileData(p,d,t,window.location.href,b,c,e,g,k,u,x);d!=this.editor.graph&&d.container.parentNode.removeChild(d.container);return b};EditorUi.prototype.getHtml=function(b,c,e,g,k,n){n=null!=n?n:!0;var d=null,f=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=c){var d=n?c.getGraphBounds():c.getBoundingBox(c.getSelectionCells()),l=c.view.scale;n=Math.floor(d.x/l-c.view.translate.x);l=Math.floor(d.y/l-c.view.translate.y);d=c.background;null==k&&
(c=this.getBasenames().join(";"),0<c.length&&(f=EditorUi.drawHost+"/embed.js?s="+c));b.setAttribute("x0",n);b.setAttribute("y0",l)}null!=b&&(b.setAttribute("pan","1"),b.setAttribute("zoom","1"),b.setAttribute("resize","0"),b.setAttribute("fit","0"),b.setAttribute("border","20"),b.setAttribute("links","1"),null!=g&&b.setAttribute("edit",g));null!=k&&(k=k.replace(/&/g,"&amp;"));b=null!=b?Graph.zapGremlins(mxUtils.getXml(b)):"";g=Graph.compress(b);Graph.decompress(g)!=b&&(g=encodeURIComponent(b));return(null==
k?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=k?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==k?null!=e?"<title>"+mxUtils.htmlEntities(e)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=k?'<meta http-equiv="refresh" content="0;URL=\''+k+"'\"/>\n":"")+"</head>\n<body"+(null==k&&null!=d&&d!=mxConstants.NONE?' style="background-color:'+d+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+
g+"</div>\n</div>\n"+(null==k?'<script type="text/javascript" src="'+f+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+k+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(b,c,e,g,k){c=window.DRAWIO_VIEWER_URL||EditorUi.drawHost+"/js/viewer-static.min.js";null!=k&&(k=k.replace(/&/g,"&amp;"));b={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,
@@ -3400,27 +3400,27 @@ resize:!0,xml:Graph.zapGremlins(b),toolbar:"pages zoom layers lightbox"};null!=t
k+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(b))+'"></div>\n'+(null==k?'<script type="text/javascript" src="'+c+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+k+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=
function(b){b=this.validateFileData(b);this.pages=this.fileNode=this.currentPage=null;b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:null;var d=Editor.extractParserError(b,mxResources.get("invalidOrMissingFile"));if(d)throw Error(mxResources.get("notADiagramFile")+" ("+d+")");d=null!=b?this.editor.extractGraphModel(b,!0):null;null!=d&&(b=d);if(null!=b&&"mxfile"==b.nodeName&&(d=b.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name"))){var c=
null;this.fileNode=b;this.pages=[];for(var e=0;e<d.length;e++)null==d[e].getAttribute("id")&&d[e].setAttribute("id",e),b=new DiagramPage(d[e]),null==b.getName()&&b.setName(mxResources.get("pageWithNumber",[e+1])),this.pages.push(b),null!=urlParams["page-id"]&&b.getId()==urlParams["page-id"]&&(c=b);this.currentPage=null!=c?c:this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];b=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=b&&(this.fileNode=b.ownerDocument.createElement("mxfile"),
-this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var g=urlParams["layer-ids"].split(" ");b={};for(e=0;e<g.length;e++)b[g[e]]=!0;for(var k=this.editor.graph.getModel(),p=k.getChildren(k.root),e=0;e<p.length;e++){var v=p[e];k.setVisible(v,b[v.id]||
+this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var g=urlParams["layer-ids"].split(" ");b={};for(e=0;e<g.length;e++)b[g[e]]=!0;for(var k=this.editor.graph.getModel(),p=k.getChildren(k.root),e=0;e<p.length;e++){var u=p[e];k.setVisible(u,b[u.id]||
!1)}}catch(y){}};EditorUi.prototype.getBaseFilename=function(b){var d=this.getCurrentFile(),d=null!=d&&null!=d.getTitle()?d.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(d)||/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||/(\.png)$/i.test(d))d=d.substring(0,d.lastIndexOf("."));/(\.drawio)$/i.test(d)&&(d=d.substring(0,d.lastIndexOf(".")));!b&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(d=d+"-"+
-this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(b,c,e,g,k,n,p,v,t,x,D,H){try{g=null!=g?g:this.editor.graph.isSelectionEmpty();var d=this.getBaseFilename(!k),f=d+("xml"==b||"pdf"==b&&D?".drawio":"")+"."+b;if("xml"==b){var l=Graph.xmlDeclaration+"\n"+this.getFileData(!0,null,null,null,g,k,null,null,null,c);this.saveData(f,b,l,"text/xml")}else if("html"==b)l=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(f,b,l,"text/html");else if("svg"!=b&&"xmlsvg"!=
-b||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==b?f=d+".png":"jpeg"==b&&(f=d+".jpg"),this.saveRequest(f,b,mxUtils.bind(this,function(d,c){try{var f=this.editor.graph.pageVisible;null!=n&&(this.editor.graph.pageVisible=n);var e=this.createDownloadRequest(d,b,g,c,p,k,v,t,x,D,H);this.editor.graph.pageVisible=f;return e}catch(W){this.handleError(W)}}));else{var m=null,q=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(f,"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(p||u==mxConstants.NONE)u=null;var y=this.editor.graph.getSvg(u,null,null,null,null,g);e&&this.editor.graph.addSvgShadow(y);this.editor.convertImages(y,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();q(Graph.xmlDeclaration+"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(b))})))}else f=d+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();
-q(b)}),g)}}catch(O){this.handleError(O)}};EditorUi.prototype.createDownloadRequest=function(b,c,e,g,k,n,p,v,t,x,D){var d=this.editor.graph,f=d.getGraphBounds();e=this.getFileData(!0,null,null,null,e,0==n?!1:"xmlpng"!=c,null,null,null,!1,"pdf"==c);var l="",m="";if(f.width*f.height>MAX_AREA||e.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};x=x?"1":"0";"pdf"==c&&(null!=D?m="&from="+D.from+"&to="+D.to:0==n&&(m="&allPages=1"));if("xmlpng"==c&&(x="1",c="png",null!=this.pages&&
+this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(b,c,e,g,k,n,p,u,t,x,D,I){try{g=null!=g?g:this.editor.graph.isSelectionEmpty();var d=this.getBaseFilename(!k),f=d+("xml"==b||"pdf"==b&&D?".drawio":"")+"."+b;if("xml"==b){var l=Graph.xmlDeclaration+"\n"+this.getFileData(!0,null,null,null,g,k,null,null,null,c);this.saveData(f,b,l,"text/xml")}else if("html"==b)l=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(f,b,l,"text/html");else if("svg"!=b&&"xmlsvg"!=
+b||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==b?f=d+".png":"jpeg"==b&&(f=d+".jpg"),this.saveRequest(f,b,mxUtils.bind(this,function(d,c){try{var f=this.editor.graph.pageVisible;null!=n&&(this.editor.graph.pageVisible=n);var e=this.createDownloadRequest(d,b,g,c,p,k,u,t,x,D,I);this.editor.graph.pageVisible=f;return e}catch(Y){this.handleError(Y)}}));else{var m=null,q=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(f,"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 v=this.editor.graph.background;if(p||v==mxConstants.NONE)v=null;var y=this.editor.graph.getSvg(v,null,null,null,null,g);e&&this.editor.graph.addSvgShadow(y);this.editor.convertImages(y,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();q(Graph.xmlDeclaration+"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(b))})))}else f=d+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();
+q(b)}),g)}}catch(O){this.handleError(O)}};EditorUi.prototype.createDownloadRequest=function(b,c,e,g,k,n,p,u,t,x,D){var d=this.editor.graph,f=d.getGraphBounds();e=this.getFileData(!0,null,null,null,e,0==n?!1:"xmlpng"!=c,null,null,null,!1,"pdf"==c);var l="",m="";if(f.width*f.height>MAX_AREA||e.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};x=x?"1":"0";"pdf"==c&&(null!=D?m="&from="+D.from+"&to="+D.to:0==n&&(m="&allPages=1"));if("xmlpng"==c&&(x="1",c="png",null!=this.pages&&
null!=this.currentPage))for(n=0;n<this.pages.length;n++)if(this.pages[n]==this.currentPage){l="&from="+n;break}n=d.background;"png"!=c&&"pdf"!=c||!k?k||null!=n&&n!=mxConstants.NONE||(n="#ffffff"):n=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!=n?n:mxConstants.NONE)+"&base64="+g+"&embedXml="+
-x+"&xml="+encodeURIComponent(e)+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(k))+(null!=p?"&scale="+p:"")+(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,f=mxUtils.bind(this,function(f){var e=null!=b.data?b.data:"";null!=f&&0<f.length&&(0<e.length&&(e+="\n"),e+=f);f=new LocalFile(this,"csv"!=b.format&&0<e.length?e:this.emptyDiagramXml,null!=
+x+"&xml="+encodeURIComponent(e)+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(k))+(null!=p?"&scale="+p:"")+(null!=u?"&border="+u:""))};EditorUi.prototype.setMode=function(b,c){this.mode=b};EditorUi.prototype.loadDescriptor=function(b,c,e){var d=window.location.hash,f=mxUtils.bind(this,function(f){var e=null!=b.data?b.data:"";null!=f&&0<f.length&&(0<e.length&&(e+="\n"),e+=f);f=new LocalFile(this,"csv"!=b.format&&0<e.length?e:this.emptyDiagramXml,null!=
urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);f.getHash=function(){return d};this.fileLoaded(f);"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 g=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,g)});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){f(b)}),
mxUtils.bind(this,function(b){null!=e&&e(b)})):f("")};EditorUi.prototype.updateDiagram=function(b){function d(b){var d=new mxCellOverlay(b.image||g.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 g=this.editor.graph,k=g.getModel();k.beginUpdate();var p=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 D=x.attributes,H=0;H<D.length;H++)g.setAttributeForCell(v,D[H].nodeName,0<D[H].nodeValue.length?D[H].nodeValue:null)}}catch(O){null!=window.console&&console.log("Error in value for "+v.id+": "+O)}try{var C=b.getAttribute("style");null!=C&&g.model.setStyle(v,C)}catch(O){null!=
-window.console&&console.log("Error in style for "+v.id+": "+O)}try{var F=b.getAttribute("icon");if(null!=F){var M=0<F.length?JSON.parse(F):null;null!=M&&M.append||g.removeCellOverlays(v);null!=M&&g.addCellOverlay(v,d(M))}}catch(O){null!=window.console&&console.log("Error in icon for "+v.id+": "+O)}try{var E=b.getAttribute("geometry");if(null!=E){var E=JSON.parse(E),K=g.getCellGeometry(v);if(null!=K){K=K.clone();for(key in E){var B=parseFloat(E[key]);"dx"==key?K.x+=B:"dy"==key?K.y+=B:"dw"==key?K.width+=
-B:"dh"==key?K.height+=B:K[key]=parseFloat(E[key])}g.model.setGeometry(v,K)}}}catch(O){null!=window.console&&console.log("Error in icon for "+v.id+": "+O)}}}else if("model"==b.nodeName){for(var L=b.firstChild;null!=L&&L.nodeType!=mxConstants.NODETYPE_ELEMENT;)L=L.nextSibling;null!=L&&(new mxCodec(b.firstChild)).decode(L,k)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(g.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))g.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||
+b.nodeName){var u=k.getCell(b.getAttribute("id"));if(null!=u){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(u,x);else for(var D=x.attributes,I=0;I<D.length;I++)g.setAttributeForCell(u,D[I].nodeName,0<D[I].nodeValue.length?D[I].nodeValue:null)}}catch(O){null!=window.console&&console.log("Error in value for "+u.id+": "+O)}try{var B=b.getAttribute("style");null!=B&&g.model.setStyle(u,B)}catch(O){null!=
+window.console&&console.log("Error in style for "+u.id+": "+O)}try{var G=b.getAttribute("icon");if(null!=G){var M=0<G.length?JSON.parse(G):null;null!=M&&M.append||g.removeCellOverlays(u);null!=M&&g.addCellOverlay(u,d(M))}}catch(O){null!=window.console&&console.log("Error in icon for "+u.id+": "+O)}try{var F=b.getAttribute("geometry");if(null!=F){var F=JSON.parse(F),K=g.getCellGeometry(u);if(null!=K){K=K.clone();for(key in F){var C=parseFloat(F[key]);"dx"==key?K.x+=C:"dy"==key?K.y+=C:"dw"==key?K.width+=
+C:"dh"==key?K.height+=C:K[key]=parseFloat(F[key])}g.model.setGeometry(u,K)}}}catch(O){null!=window.console&&console.log("Error in icon for "+u.id+": "+O)}}}else if("model"==b.nodeName){for(var L=b.firstChild;null!=L&&L.nodeType!=mxConstants.NODETYPE_ELEMENT;)L=L.nextSibling;null!=L&&(new mxCodec(b.firstChild)).decode(L,k)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(g.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))g.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||
0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(p=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):1);b=b.nextSibling}}finally{k.endUpdate()}null!=p&&this.chromelessResize&&this.chromelessResize(!0,p)}return c};EditorUi.prototype.getCopyFilename=function(b,c){var d=null!=b&&null!=b.getTitle()?b.getTitle():this.defaultFilename,f="",e=d.lastIndexOf(".");0<=e&&(f=d.substring(e),d=d.substring(0,e));if(c)var g=new Date,e=g.getFullYear(),k=g.getMonth()+1,p=g.getDate(),
t=g.getHours(),x=g.getMinutes(),g=g.getSeconds(),d=d+(" "+(e+"-"+k+"-"+p+"-"+t+"-"+x+"-"+g));return d=mxResources.get("copyOf",[d])+f};EditorUi.prototype.fileLoaded=function(b,c){var d=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var f=!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=
"");this.openingFile=!0;this.setCurrentFile(b);b.addListener("descriptorChanged",this.descriptorChangedListener);b.addListener("contentChanged",this.descriptorChangedListener);b.open();delete this.openingFile;this.setGraphEnabled(!0);this.setMode(b.getMode());this.editor.graph.model.prefix=Editor.guid()+"-";this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();b.isEditable()?b.isModified()?(b.addUnsavedStatus(),null!=b.backupPatch&&b.patch([b.backupPatch])):this.editor.setStatus(""):
this.editor.setStatus('<span class="geStatusAlert">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>");!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));f=!0;this.isOffline()||null==b.getMode()||EditorUi.logEvent({category:b.getMode().toUpperCase()+
-"-OPEN-FILE-"+b.getHash(),action:"size_"+b.getSize(),label:"autosave_"+(this.editor.autosave?"on":"off")});EditorUi.debug("File.opened",[b]);if(this.editor.editable&&this.mode==b.getMode()&&b.getMode()!=App.MODE_DEVICE&&null!=b.getMode())try{this.addRecent({id:b.getHash(),title:b.getTitle(),mode:b.getMode()})}catch(u){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(u){}}catch(u){this.fileLoadedError=u;if(EditorUi.enableLogging&&!this.isOffline())try{EditorUi.logEvent({category:"ERROR-LOAD-FILE-"+
-(null!=b?b.getHash():"none"),action:"message_"+u.message,label:"stack_"+u.stack})}catch(v){}var g=mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=d?this.fileLoaded(d):e()});c?g():this.handleError(u,mxResources.get("errorLoadingFile"),g,!0,null,null,!0)}else e();return f};EditorUi.prototype.getHashValueForPages=function(b,c){var d=0,f=new mxGraphModel,e=new mxCodec;null!=c&&(c.byteCount=
+"-OPEN-FILE-"+b.getHash(),action:"size_"+b.getSize(),label:"autosave_"+(this.editor.autosave?"on":"off")});EditorUi.debug("File.opened",[b]);if(this.editor.editable&&this.mode==b.getMode()&&b.getMode()!=App.MODE_DEVICE&&null!=b.getMode())try{this.addRecent({id:b.getHash(),title:b.getTitle(),mode:b.getMode()})}catch(v){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(v){}}catch(v){this.fileLoadedError=v;if(EditorUi.enableLogging&&!this.isOffline())try{EditorUi.logEvent({category:"ERROR-LOAD-FILE-"+
+(null!=b?b.getHash():"none"),action:"message_"+v.message,label:"stack_"+v.stack})}catch(u){}var g=mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=d?this.fileLoaded(d):e()});c?g():this.handleError(v,mxResources.get("errorLoadingFile"),g,!0,null,null,!0)}else e();return f};EditorUi.prototype.getHashValueForPages=function(b,c){var d=0,f=new mxGraphModel,e=new mxCodec;null!=c&&(c.byteCount=
0,c.attrCount=0,c.eltCount=0,c.nodeCount=0);for(var g=0;g<b.length;g++){this.updatePageRoot(b[g]);var k=b[g].node.cloneNode(!1);k.removeAttribute("name");f.root=b[g].root;var p=e.encode(f);this.editor.graph.saveViewState(b[g].viewState,p,!0);p.removeAttribute("pageWidth");p.removeAttribute("pageHeight");k.appendChild(p);null!=c&&(c.eltCount+=k.getElementsByTagName("*").length,c.nodeCount+=k.getElementsByTagName("mxCell").length);d=(d<<5)-d+this.hashValue(k,function(b,d,c,f){return!f||"mxGeometry"!=
b.nodeName&&"mxPoint"!=b.nodeName||"x"!=d&&"y"!=d&&"width"!=d&&"height"!=d?f&&"mxCell"==b.nodeName&&"previous"==d?null:c:Math.round(c)},c)<<0}return d};EditorUi.prototype.hashValue=function(b,c,e){var d=0;if(null!=b&&"object"===typeof b&&"number"===typeof b.nodeType&&"string"===typeof b.nodeName&&"function"===typeof b.getAttribute){null!=b.nodeName&&(d^=this.hashValue(b.nodeName,c,e));if(null!=b.attributes){null!=e&&(e.attrCount+=b.attributes.length);for(var f=0;f<b.attributes.length;f++){var g=b.attributes[f].name,
l=null!=c?c(b,g,b.attributes[f].value,!0):b.attributes[f].value;null!=l&&(d^=this.hashValue(g,c,e)+this.hashValue(l,c,e))}}if(null!=b.childNodes)for(f=0;f<b.childNodes.length;f++)d=(d<<5)-d+this.hashValue(b.childNodes[f],c,e)<<0}else if(null!=b&&"function"!==typeof b){b=String(b);c=0;null!=e&&(e.byteCount+=b.length);for(f=0;f<b.length;f++)c=(c<<5)-c+b.charCodeAt(f)<<0;d^=c}return d};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=
@@ -3430,19 +3430,19 @@ EditorUi.prototype.repositionLibrary=function(b){var d=this.sidebar.container;if
this.libraryLoaded(b,e,d.documentElement.getAttribute("title"),c)}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(b){return""};EditorUi.prototype.libraryLoaded=function(b,c,e,g){if(null!=this.sidebar){b.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(b.getHash());".scratchpad"==b.title&&(this.scratchpad=b);var d=this.sidebar.palettes[b.getHash()],d=null!=d?d[d.length-1].nextSibling:null;this.removeLibrarySidebar(b.getHash());var f=
null,l=mxUtils.bind(this,function(d,c){0==d.length&&b.isEditable()?(null==f&&(f=document.createElement("div"),f.className="geDropTarget",mxUtils.write(f,mxResources.get("dragElementsHere"))),c.appendChild(f)):this.addLibraryEntries(d,c)});null!=this.sidebar&&null!=c&&this.sidebar.addEntries(c);e=null!=e&&0<e.length?e:b.getTitle();var k=this.sidebar.addPalette(b.getHash(),e,null!=g?g:!0,mxUtils.bind(this,function(b){l(c,b)}));this.repositionLibrary(d);var m=k.parentNode.previousSibling;g=m.getAttribute("title");
null!=g&&0<g.length&&".scratchpad"!=b.title&&m.setAttribute("title",this.getLibraryStorageHint(b)+"\n"+g);var p=document.createElement("div");p.style.position="absolute";p.style.right="0px";p.style.top="0px";p.style.padding="8px";p.style.backgroundColor="inherit";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)p.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 C=this.editor.graph,F=null,M=mxUtils.bind(this,function(d){this.showLibraryDialog(b.getTitle(),k,c,b,b.getMode());mxEvent.consume(d)}),E=mxUtils.bind(this,function(d){b.setModified(!0);b.isAutosave()?(null!=F&&null!=F.parentNode&&F.parentNode.removeChild(F),F=t.cloneNode(!1),F.setAttribute("src",Editor.spinImage),F.setAttribute("title",mxResources.get("saving")),F.style.cursor="default",F.style.marginRight="2px",F.style.marginTop="-2px",p.insertBefore(F,p.firstChild),m.style.paddingRight=
-18*p.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=F&&null!=F.parentNode&&(F.parentNode.removeChild(F),m.style.paddingRight=18*p.childNodes.length+"px")})):null==H&&(H=t.cloneNode(!1),H.setAttribute("src",Editor.saveImage),H.setAttribute("title",mxResources.get("save")),p.insertBefore(H,p.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*p.childNodes.length+"px",H.parentNode.removeChild(H),H=null)});mxEvent.consume(d)})),m.style.paddingRight=18*p.childNodes.length+"px")}),K=mxUtils.bind(this,function(b,d,e,g){b=C.cloneCells(mxUtils.sortCells(C.model.getTopmostCells(b)));for(var l=0;l<b.length;l++){var m=C.getCellGeometry(b[l]);null!=m&&m.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(b,d.width,d.height,g||"",!0,!1,!1));b={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),
-w:d.width,h:d.height};null!=g&&(b.title=g);c.push(b);E(e);null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null)}),B=mxUtils.bind(this,function(b){if(C.isSelectionEmpty())C.getRubberband().isActive()?(C.getRubberband().execute(b),C.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=C.getSelectionCells(),c=C.view.getBounds(d),e=C.view.scale;c.x/=e;c.y/=e;c.width/=e;c.height/=e;c.x-=C.view.translate.x;
-c.y-=C.view.translate.y;K(d,c)}mxEvent.consume(b)});mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(b){C.isMouseDown&&null!=C.panningManager&&null!=C.graphHandler.first&&(C.graphHandler.suspend(),null!=C.graphHandler.hint&&(C.graphHandler.hint.style.visibility="hidden"),k.style.backgroundColor="#f1f3f4",k.style.cursor="copy",C.panningManager.stop(),C.autoScroll=!1,mxEvent.consume(b))}),mxUtils.bind(this,function(b){C.isMouseDown&&null!=C.panningManager&&null!=C.graphHandler&&
-(k.style.backgroundColor="",k.style.cursor="default",this.sidebar.showTooltips=!0,C.panningManager.stop(),C.graphHandler.reset(),C.isMouseDown=!1,C.autoScroll=!0,B(b),mxEvent.consume(b))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(b){C.isMouseDown&&null!=C.graphHandler.first&&(C.graphHandler.resume(),null!=C.graphHandler.hint&&(C.graphHandler.hint.style.visibility="visible"),k.style.backgroundColor="",k.style.cursor="",C.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,g,m,n,q,p,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,n,q),d)],d[0].vertex=!0,K(d,new mxRectangle(0,0,n,q),b,mxEvent.isAltDown(b)?null:p.substring(0,p.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null);else{var x=!1,t=mxUtils.bind(this,function(d,e){if(null!=d&&"application/pdf"==e){var g=Editor.extractGraphModelFromPdf(d);null!=g&&0<g.length&&(d=g)}if(null!=d)if(g=mxUtils.parseXml(d),"mxlibrary"==g.documentElement.nodeName)try{var m=
-JSON.parse(mxUtils.getTextContent(g.documentElement));l(m,k);c=c.concat(m);E(b);this.spinner.stop();x=!0}catch(Y){}else if("mxfile"==g.documentElement.nodeName)try{for(var n=g.documentElement.getElementsByTagName("diagram"),m=0;m<n.length;m++){var q=this.stringToCells(Editor.getDiagramNodeXml(n[m])),p=this.editor.graph.getBoundingBoxFromGeometry(q);K(q,new mxRectangle(0,0,p.width,p.height),b)}x=!0}catch(Y){null!=window.console&&console.log("error in drop handler:",Y)}x||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
-null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null)});null!=v&&null!=p&&(/(\.v(dx|sdx?))($|\?)/i.test(p)||/(\.vs(x|sx?))($|\?)/i.test(p))?this.importVisio(v,function(b){t(b,"text/xml")},null,p):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,p)&&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?
+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 I=null;if(".scratchpad"!=b.title||this.closableScratchpad)p.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!=I?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(d)}}));
+if(b.isEditable()){var B=this.editor.graph,G=null,M=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!=G&&null!=G.parentNode&&G.parentNode.removeChild(G),G=t.cloneNode(!1),G.setAttribute("src",Editor.spinImage),G.setAttribute("title",mxResources.get("saving")),G.style.cursor="default",G.style.marginRight="2px",G.style.marginTop="-2px",p.insertBefore(G,p.firstChild),m.style.paddingRight=
+18*p.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=G&&null!=G.parentNode&&(G.parentNode.removeChild(G),m.style.paddingRight=18*p.childNodes.length+"px")})):null==I&&(I=t.cloneNode(!1),I.setAttribute("src",Editor.saveImage),I.setAttribute("title",mxResources.get("save")),p.insertBefore(I,p.firstChild),mxEvent.addListener(I,"click",mxUtils.bind(this,function(d){this.saveLibrary(b.getTitle(),c,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==
+I||b.isModified()||(m.style.paddingRight=18*p.childNodes.length+"px",I.parentNode.removeChild(I),I=null)});mxEvent.consume(d)})),m.style.paddingRight=18*p.childNodes.length+"px")}),K=mxUtils.bind(this,function(b,d,e,g){b=B.cloneCells(mxUtils.sortCells(B.model.getTopmostCells(b)));for(var l=0;l<b.length;l++){var m=B.getCellGeometry(b[l]);null!=m&&m.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(b,d.width,d.height,g||"",!0,!1,!1));b={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),
+w:d.width,h:d.height};null!=g&&(b.title=g);c.push(b);F(e);null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null)}),C=mxUtils.bind(this,function(b){if(B.isSelectionEmpty())B.getRubberband().isActive()?(B.getRubberband().execute(b),B.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=B.getSelectionCells(),c=B.view.getBounds(d),e=B.view.scale;c.x/=e;c.y/=e;c.width/=e;c.height/=e;c.x-=B.view.translate.x;
+c.y-=B.view.translate.y;K(d,c)}mxEvent.consume(b)});mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(b){B.isMouseDown&&null!=B.panningManager&&null!=B.graphHandler.first&&(B.graphHandler.suspend(),null!=B.graphHandler.hint&&(B.graphHandler.hint.style.visibility="hidden"),k.style.backgroundColor="#f1f3f4",k.style.cursor="copy",B.panningManager.stop(),B.autoScroll=!1,mxEvent.consume(b))}),mxUtils.bind(this,function(b){B.isMouseDown&&null!=B.panningManager&&null!=B.graphHandler&&
+(k.style.backgroundColor="",k.style.cursor="default",this.sidebar.showTooltips=!0,B.panningManager.stop(),B.graphHandler.reset(),B.isMouseDown=!1,B.autoScroll=!0,C(b),mxEvent.consume(b))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(b){B.isMouseDown&&null!=B.graphHandler.first&&(B.graphHandler.resume(),null!=B.graphHandler.hint&&(B.graphHandler.hint.style.visibility="visible"),k.style.backgroundColor="",k.style.cursor="",B.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,g,m,n,q,p,u,x){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,n,q),d)],d[0].vertex=!0,K(d,new mxRectangle(0,0,n,q),b,mxEvent.isAltDown(b)?null:p.substring(0,p.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null);else{var v=!1,t=mxUtils.bind(this,function(d,e){if(null!=d&&"application/pdf"==e){var g=Editor.extractGraphModelFromPdf(d);null!=g&&0<g.length&&(d=g)}if(null!=d)if(g=mxUtils.parseXml(d),"mxlibrary"==g.documentElement.nodeName)try{var m=
+JSON.parse(mxUtils.getTextContent(g.documentElement));l(m,k);c=c.concat(m);F(b);this.spinner.stop();v=!0}catch(Z){}else if("mxfile"==g.documentElement.nodeName)try{for(var n=g.documentElement.getElementsByTagName("diagram"),m=0;m<n.length;m++){var q=this.stringToCells(Editor.getDiagramNodeXml(n[m])),p=this.editor.graph.getBoundingBoxFromGeometry(q);K(q,new mxRectangle(0,0,p.width,p.height),b)}v=!0}catch(Z){null!=window.console&&console.log("error in drop handler:",Z)}v||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
+null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null)});null!=x&&null!=p&&(/(\.v(dx|sdx?))($|\?)/i.test(p)||/(\.vs(x|sx?))($|\?)/i.test(p))?this.importVisio(x,function(b){t(b,"text/xml")},null,p):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,p)&&null!=x?this.parseFile(x,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"));p.insertBefore(t,p.firstChild);mxEvent.addListener(t,"click",M);mxEvent.addListener(k,"dblclick",function(b){mxEvent.getSource(b)==
-k&&M(b)});g=t.cloneNode(!1);g.setAttribute("src",Editor.plusImage);g.setAttribute("title",mxResources.get("add"));p.insertBefore(g,p.firstChild);mxEvent.addListener(g,"click",B);this.isOffline()||".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(g=document.createElement("span"),g.setAttribute("title",mxResources.get("help")),g.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;cursor:pointer;",mxUtils.write(g,"?"),mxEvent.addGestureListeners(g,mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);
+k&&M(b)});g=t.cloneNode(!1);g.setAttribute("src",Editor.plusImage);g.setAttribute("title",mxResources.get("add"));p.insertBefore(g,p.firstChild);mxEvent.addListener(g,"click",C);this.isOffline()||".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(g=document.createElement("span"),g.setAttribute("title",mxResources.get("help")),g.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;cursor:pointer;",mxUtils.write(g,"?"),mxEvent.addGestureListeners(g,mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);
mxEvent.consume(b)})),p.insertBefore(g,p.firstChild))}m.appendChild(p);m.style.paddingRight=18*p.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(b,c){for(var d=0;d<b.length;d++){var e=b[d],f=e.data;if(null!=f){var f=this.convertDataUri(f),g="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==e.aspect&&(g+="aspect=fixed;");c.appendChild(this.sidebar.createVertexTemplate(g+"image="+f,e.w,e.h,"",e.title||"",!1,!1,!0))}else null!=e.xml&&(f=this.stringToCells(Graph.decompress(e.xml)),
0<f.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(f,e.w,e.h,e.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=function(b){return null!=b?b[mxLanguage]||b.main:null};EditorUi.prototype.footerHeight=0;"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64);EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground="linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",
Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38):Editor.isDarkMode()&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor=Editor.darkColor,Format.inactiveTabBackgroundColor="black",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor=Editor.darkColor,Graph.prototype.defaultForegroundColor="#f0f0f0",Graph.prototype.defaultPageBorderColor=
@@ -3452,13 +3452,13 @@ c,e,g,k){b=new ImageDialog(this,b,c,e,g,k);this.showDialog(b.container,Graph.fil
b,c,e,g,k);this.showDialog(b.container,640,440,!0,!1,mxUtils.bind(this,function(b){b&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));b.init()};var e=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(b){var d=e.apply(this,arguments);this.editor.graph.addListener("viewStateChanged",mxUtils.bind(this,function(b){this.editor.graph.isSelectionEmpty()&&d.refresh()}));return d};EditorUi.prototype.createSidebarFooterContainer=function(){var b=this.createDiv("geSidebarContainer geSidebarFooter");
b.style.position="absolute";b.style.overflow="hidden";var c=document.createElement("a");c.className="geTitle";c.style.color="#DF6C0C";c.style.fontWeight="bold";c.style.height="100%";c.style.paddingTop="9px";c.innerHTML="<span>+</span>";var e=c.getElementsByTagName("span")[0];e.style.fontSize="18px";e.style.marginRight="5px";mxUtils.write(c,mxResources.get("moreShapes")+"...");mxEvent.addListener(c,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(c,
"click",mxUtils.bind(this,function(b){this.actions.get("shapes").funct();mxEvent.consume(b)}));b.appendChild(c);return b};EditorUi.prototype.handleError=function(b,c,e,g,k,n,p){var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=null!=b&&null!=b.error?b.error:b;if(null!=b&&null!=b.stack&&null!=b.message)try{p?null!=window.console&&console.error("EditorUi.handleError:",b):EditorUi.logError("Caught: "+(""==b.message&&null!=b.name)?b.name:b.message,b.filename,b.lineNumber,
-b.columnNumber,b,"INFO")}catch(F){}if(null!=f||null!=c){p=mxUtils.htmlEntities(mxResources.get("unknownError"));var l=mxResources.get("ok"),m=null;c=null!=c?c:mxResources.get("error");if(null!=f){null!=f.retry&&(l=mxResources.get("cancel"),m=function(){d();f.retry()});if(404==f.code||404==f.status||403==f.code){p=403==f.code?null!=f.message?mxUtils.htmlEntities(f.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=k?k:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=
+b.columnNumber,b,"INFO")}catch(G){}if(null!=f||null!=c){p=mxUtils.htmlEntities(mxResources.get("unknownError"));var l=mxResources.get("ok"),m=null;c=null!=c?c:mxResources.get("error");if(null!=f){null!=f.retry&&(l=mxResources.get("cancel"),m=function(){d();f.retry()});if(404==f.code||404==f.status||403==f.code){p=403==f.code?null!=f.message?mxUtils.htmlEntities(f.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=k?k:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=
this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var q=null!=k?null:null!=n?n:window.location.hash;if(null!=q&&("#G"==q.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==q.substring(0,45))&&(null!=b&&null!=b.error&&(null!=b.error.errors&&0<b.error.errors.length&&"fileAccess"==b.error.errors[0].reason||null!=b.error.data&&0<b.error.data.length&&"fileAccess"==b.error.data[0].reason)||404==f.code||404==f.status)){q="#U"==q.substring(0,
2)?q.substring(45,q.lastIndexOf("%26ex")):q.substring(2);this.showError(c,p,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+q);this.handleError(b,c,e,g,k)}),m,mxResources.get("changeUser"),mxUtils.bind(this,function(){function b(){f.innerHTML="";for(var b=0;b<d.length;b++){var c=document.createElement("option");mxUtils.write(c,d[b].displayName);c.value=b;f.appendChild(c);c=document.createElement("option");c.innerHTML="&nbsp;&nbsp;&nbsp;";
mxUtils.write(c,"<"+d[b].email+">");c.setAttribute("disabled","disabled");f.appendChild(c)}c=document.createElement("option");mxUtils.write(c,mxResources.get("addAccount"));c.value=d.length;f.appendChild(c)}var d=this.drive.getUsersList(),c=document.createElement("div"),e=document.createElement("span");e.style.marginTop="6px";mxUtils.write(e,mxResources.get("changeUser")+": ");c.appendChild(e);var f=document.createElement("select");f.style.width="200px";b();mxEvent.addListener(f,"change",mxUtils.bind(this,
function(){var c=f.value,e=d.length!=c;e&&this.drive.setUser(d[c]);this.drive.authorize(e,mxUtils.bind(this,function(){e||(d=this.drive.getUsersList(),b())}),mxUtils.bind(this,function(b){this.handleError(b)}),!0)}));c.appendChild(f);c=new CustomDialog(this,c,mxUtils.bind(this,function(){this.loadFile(window.location.hash.substr(1),!0)}));this.showDialog(c.container,300,100,!0,!0)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.hideDialog();null!=e&&e()}),480,150);return}}null!=f.message?
-p=""==f.message&&null!=f.name?mxUtils.htmlEntities(f.name):mxUtils.htmlEntities(f.message):null!=f.response&&null!=f.response.error?p=mxUtils.htmlEntities(f.response.error):"undefined"!==typeof window.App&&(f.code==App.ERROR_TIMEOUT?p=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY?p=mxUtils.htmlEntities(mxResources.get("busy")):"string"===typeof f&&0<f.length&&(p=mxUtils.htmlEntities(f)))}var u=n=null;null!=f&&null!=f.helpLink?(n=mxResources.get("help"),u=mxUtils.bind(this,
-function(){return this.editor.graph.openLink(f.helpLink)})):null!=f&&null!=f.ownerEmail&&(n=mxResources.get("contactOwner"),p+=mxUtils.htmlEntities(" ("+n+": "+f.ownerEmail+")"),u=mxUtils.bind(this,function(){return this.openLink("mailto:"+mxUtils.htmlEntities(f.ownerEmail))}));this.showError(c,p,l,e,m,null,null,n,u,null,null,null,g?e:null)}else null!=e&&e()};EditorUi.prototype.alert=function(b,c,e){b=new ErrorDialog(this,null,b,mxResources.get("ok"),c);this.showDialog(b.container,e||340,100,!0,!1);
+p=""==f.message&&null!=f.name?mxUtils.htmlEntities(f.name):mxUtils.htmlEntities(f.message):null!=f.response&&null!=f.response.error?p=mxUtils.htmlEntities(f.response.error):"undefined"!==typeof window.App&&(f.code==App.ERROR_TIMEOUT?p=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY?p=mxUtils.htmlEntities(mxResources.get("busy")):"string"===typeof f&&0<f.length&&(p=mxUtils.htmlEntities(f)))}var v=n=null;null!=f&&null!=f.helpLink?(n=mxResources.get("help"),v=mxUtils.bind(this,
+function(){return this.editor.graph.openLink(f.helpLink)})):null!=f&&null!=f.ownerEmail&&(n=mxResources.get("contactOwner"),p+=mxUtils.htmlEntities(" ("+n+": "+f.ownerEmail+")"),v=mxUtils.bind(this,function(){return this.openLink("mailto:"+mxUtils.htmlEntities(f.ownerEmail))}));this.showError(c,p,l,e,m,null,null,n,v,null,null,null,g?e:null)}else null!=e&&e()};EditorUi.prototype.alert=function(b,c,e){b=new ErrorDialog(this,null,b,mxResources.get("ok"),c);this.showDialog(b.container,e||340,100,!0,!1);
b.init()};EditorUi.prototype.confirm=function(b,c,e,g,k,n){var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=Math.min(200,28*Math.ceil(b.length/50));b=new ConfirmDialog(this,b,function(){d();null!=c&&c()},function(){d();null!=e&&e()},g,k,null,null,null,null,f);this.showDialog(b.container,340,46+f,!0,n);b.init()};EditorUi.prototype.showBanner=function(b,c,e,g){var d=!1;if(!(this.bannerShowing||this["hideBanner"+b]||isLocalStorage&&null!=mxSettings.settings&&null!=
mxSettings.settings["close"+b])){var f=document.createElement("div");f.style.cssText="position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:"+mxPopupMenu.prototype.zIndex+";";mxUtils.setPrefixedStyle(f.style,"box-shadow","1px 1px 2px 0px #ddd");mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");mxUtils.setPrefixedStyle(f.style,"transition","all 1s ease");f.className="geBtn gePrimaryBtn";
d=document.createElement("img");d.setAttribute("src",IMAGE_PATH+"/logo.png");d.setAttribute("border","0");d.setAttribute("align","absmiddle");d.style.cssText="margin-top:-4px;margin-left:8px;margin-right:12px;width:26px;height:26px;";f.appendChild(d);d=document.createElement("img");d.setAttribute("src",Dialog.prototype.closeImage);d.setAttribute("title",mxResources.get(g?"doNotShowAgain":"close"));d.setAttribute("border","0");d.style.cssText="position:absolute;right:10px;top:12px;filter:invert(1);padding:6px;margin:-6px;cursor:default;";
@@ -3470,9 +3470,9 @@ c,e,k);this.saveData(g,d,b.substring(b.lastIndexOf(",")+1),"image/"+e,!0)};Edito
d.textarea.style.height="380px";this.showDialog(d.container,620,460,!0,!0,null,null,null,null,!0);d.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(b,c,e,g,k,n){"text/xml"!=e||/(\.drawio)$/i.test(c)||/(\.xml)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.html)$/i.test(c)||(c=c+"."+(null!=n?n:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)b=g?this.base64ToBlob(b,e):new Blob([b],{type:e}),navigator.msSaveOrOpenBlob(b,c);else if(mxClient.IS_IE)e=window.open("about:blank",
"_blank"),null==e?mxUtils.popup(b,!0):(e.document.write(b),e.document.close(),e.document.execCommand("SaveAs",!0,c),e.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==e||"image/"!=e.substring(0,6)?this.showTextDialog(c+":",b):this.openInNewWindow(b,e,g);else{var d=document.createElement("a");n=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof d.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var f=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
n=65==(f?parseInt(f[2],10):!1)?!1:n}if(n||this.isOffline()){d.href=URL.createObjectURL(g?this.base64ToBlob(b,e):new Blob([b],{type:e}));n?d.download=c:d.setAttribute("target","_blank");document.body.appendChild(d);try{window.setTimeout(function(){URL.revokeObjectURL(d.href)},2E4),d.click(),d.parentNode.removeChild(d)}catch(y){}}else this.createEchoRequest(b,c,e,g,k).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(b,c,e,g,k,n){b="xml="+encodeURIComponent(b);return new mxXmlRequest(SAVE_URL,
-b+(null!=e?"&mime="+e:"")+(null!=k?"&format="+k:"")+(null!=n?"&base64="+n:"")+(null!=c?"&filename="+encodeURIComponent(c):"")+(g?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(b,c){c=c||"";for(var d=atob(b),e=d.length,f=Math.ceil(e/1024),g=Array(f),k=0;k<f;++k){for(var p=1024*k,t=Math.min(p+1024,e),x=Array(t-p),D=0;p<t;++D,++p)x[D]=d[p].charCodeAt(0);g[k]=new Uint8Array(x)}return new Blob(g,{type:c})};EditorUi.prototype.saveLocalFile=function(b,c,e,g,k,n,p,v){n=null!=n?n:!1;p=null!=p?
+b+(null!=e?"&mime="+e:"")+(null!=k?"&format="+k:"")+(null!=n?"&base64="+n:"")+(null!=c?"&filename="+encodeURIComponent(c):"")+(g?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(b,c){c=c||"";for(var d=atob(b),e=d.length,f=Math.ceil(e/1024),g=Array(f),k=0;k<f;++k){for(var p=1024*k,t=Math.min(p+1024,e),x=Array(t-p),D=0;p<t;++D,++p)x[D]=d[p].charCodeAt(0);g[k]=new Uint8Array(x)}return new Blob(g,{type:c})};EditorUi.prototype.saveLocalFile=function(b,c,e,g,k,n,p,u){n=null!=n?n:!1;p=null!=p?
p:"vsdx"!=k&&(!mxClient.IS_IOS||!navigator.standalone);k=this.getServiceCount(n);isLocalStorage&&k++;var d=4>=k?2:6<k?4:3;c=new CreateDialog(this,c,mxUtils.bind(this,function(d,c){try{if("_blank"==c)if(null!=e&&"image/"==e.substring(0,6))this.openInNewWindow(b,e,g);else if(null!=e&&"text/html"==e.substring(0,9)){var f=new EmbedDialog(this,b);this.showDialog(f.container,450,240,!0,!0);f.init()}else{var l=window.open("about:blank");null==l?mxUtils.popup(b,!0):(l.document.write("<pre>"+mxUtils.htmlEntities(b,
-!1)+"</pre>"),l.document.close())}else c==App.MODE_DEVICE||"download"==c?this.doSaveLocalFile(b,d,e,g,null,v):null!=d&&0<d.length&&this.pickFolder(c,mxUtils.bind(this,function(f){try{this.exportFile(b,d,e,g,c,f)}catch(M){this.handleError(M)}}))}catch(F){this.handleError(F)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,n,p,null,1<k,d,b,e,g);n=this.isServices(k)?k>d?390:270:160;this.showDialog(c.container,420,n,!0,!0);c.init()};EditorUi.prototype.openInNewWindow=
+!1)+"</pre>"),l.document.close())}else c==App.MODE_DEVICE||"download"==c?this.doSaveLocalFile(b,d,e,g,null,u):null!=d&&0<d.length&&this.pickFolder(c,mxUtils.bind(this,function(f){try{this.exportFile(b,d,e,g,c,f)}catch(M){this.handleError(M)}}))}catch(G){this.handleError(G)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,n,p,null,1<k,d,b,e,g);n=this.isServices(k)?k>d?390:270:160;this.showDialog(c.container,420,n,!0,!0);c.init()};EditorUi.prototype.openInNewWindow=
function(b,c,e){var d=window.open("about:blank");null==d||null==d.document?mxUtils.popup(b,!0):("image/svg+xml"!=c||mxClient.IS_SVG?"image/svg+xml"==c?d.document.write("<html>"+b+"</html>"):(b=e?b:btoa(unescape(encodeURIComponent(b))),d.document.write('<html><img style="max-width:100%;" src="data:'+c+";base64,"+b+'"/></html>')):d.document.write("<html><pre>"+mxUtils.htmlEntities(b,!1)+"</pre></html>"),d.document.close())};var k=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.isChromelessImageExportEnabled=
function(){return"draw.io"!=this.getServiceName()||/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname)};EditorUi.prototype.addChromelessToolbarItems=function(b){if(null!=urlParams.tags){this.tagsDialog=this.tagsComponent=null;var d=b(mxUtils.bind(this,function(b){null==this.tagsComponent&&(this.tagsComponent=this.editor.graph.createTagsDialog(mxUtils.bind(this,function(){return null!=this.tagsDialog}),!0),this.tagsComponent.div.getElementsByTagName("div")[0].style.position=
"",mxUtils.setPrefixedStyle(this.tagsComponent.div.style,"borderRadius","5px"),this.tagsComponent.div.className="geScrollable",this.tagsComponent.div.style.maxHeight="160px",this.tagsComponent.div.style.maxWidth="120px",this.tagsComponent.div.style.padding="4px",this.tagsComponent.div.style.overflow="auto",this.tagsComponent.div.style.height="auto",this.tagsComponent.div.style.position="fixed",this.tagsComponent.div.style.fontFamily=Editor.defaultHtmlFont,mxClient.IS_IE||mxClient.IS_IE11?(this.tagsComponent.div.style.backgroundColor=
@@ -3486,49 +3486,49 @@ else{this.exportDialog=document.createElement("div");var e=c.getBoundingClientRe
function(b){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(b,null,"png");b=document.createElement("img");b.style.maxWidth="140px";b.style.maxHeight="140px";b.style.cursor="pointer";b.style.backgroundColor="white";b.setAttribute("title",mxResources.get("openInNewWindow"));b.setAttribute("border","0");b.setAttribute("src",c);this.exportDialog.appendChild(b);mxEvent.addListener(b,"click",mxUtils.bind(this,
function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);d.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,null,null,null,null,null,null,Editor.defaultBorder);mxEvent.addListener(this.editor.graph.container,"click",d);document.body.appendChild(this.exportDialog)}mxEvent.consume(b)}),Editor.cameraImage,mxResources.get("export"))}};EditorUi.prototype.saveData=function(b,c,e,g,k){this.isLocalFileSave()?
this.saveLocalFile(e,b,g,k,c):this.saveRequest(b,c,mxUtils.bind(this,function(b,d){return this.createEchoRequest(e,b,g,k,c,d)}),e,k,g)};EditorUi.prototype.saveRequest=function(b,c,e,g,k,n,p){p=null!=p?p:!mxClient.IS_IOS||!navigator.standalone;var d=this.getServiceCount(!1);isLocalStorage&&d++;var f=4>=d?2:6<d?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(b,d){if("_blank"==d||null!=b&&0<b.length){var f=e("_blank"==d?null:b,d==App.MODE_DEVICE||"download"==d||null==d||"_blank"==d?"0":"1");
-null!=f&&(d==App.MODE_DEVICE||"download"==d||"_blank"==d?f.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(e){n=null!=n?n:"pdf"==c?"application/pdf":"image/"+c;if(null!=g)try{this.exportFile(g,b,n,!0,d,e)}catch(F){this.handleError(F)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),b,n,!0,d,e)}catch(F){this.handleError(F)}else this.handleError({message:mxResources.get("errorSavingFile")})}),
+null!=f&&(d==App.MODE_DEVICE||"download"==d||"_blank"==d?f.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(e){n=null!=n?n:"pdf"==c?"application/pdf":"image/"+c;if(null!=g)try{this.exportFile(g,b,n,!0,d,e)}catch(G){this.handleError(G)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),b,n,!0,d,e)}catch(G){this.handleError(G)}else this.handleError({message:mxResources.get("errorSavingFile")})}),
function(b){this.spinner.stop();this.handleError(b)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,p,null,1<d,f,g,n,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,g,k,n){};EditorUi.prototype.pickFolder=function(b,
-c,e){c(null)};EditorUi.prototype.exportSvg=function(b,c,e,g,k,n,p,t,y,x,D,H,C,F){if(this.spinner.spin(document.body,mxResources.get("export")))try{var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;var f=c?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==c&&(f=D?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var l=this.editor.graph.getSvg(f,b,p,t,null,e,null,null,"blank"==x?"_blank":"self"==x?"_top":null,null,!0,D,H);g&&this.editor.graph.addSvgShadow(l);var m=
-this.getBaseFilename()+(k?".drawio":"")+".svg";F=null!=F?F:mxUtils.bind(this,function(b){this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(m,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});var q=mxUtils.bind(this,function(b){this.spinner.stop();k&&b.setAttribute("content",this.getFileData(!0,null,null,null,e,y,null,null,null,!1));F(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){n?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(b,q,this.thumbImageCache)):q(b)});C?this.embedFonts(l,u):(this.editor.addFontCss(l),u(l))}catch(ca){this.handleError(ca)}};EditorUi.prototype.addRadiobox=function(b,c,e,g,k,n,p){return this.addCheckbox(b,e,g,k,n,p,!0,c)};EditorUi.prototype.addCheckbox=function(b,c,e,g,k,n,
-p,t){n=null!=n?n:!0;var d=document.createElement("input");d.style.marginRight="8px";d.style.marginTop="16px";d.setAttribute("type",p?"radio":"checkbox");p="geCheckbox-"+Editor.guid();d.id=p;null!=t&&d.setAttribute("name",t);e&&(d.setAttribute("checked","checked"),d.defaultChecked=!0);g&&d.setAttribute("disabled","disabled");n&&(b.appendChild(d),e=document.createElement("label"),mxUtils.write(e,c),e.setAttribute("for",p),b.appendChild(e),k||mxUtils.br(b));return d};EditorUi.prototype.addEditButton=
+c,e){c(null)};EditorUi.prototype.exportSvg=function(b,c,e,g,k,n,p,u,t,x,D,I,B,G){if(this.spinner.spin(document.body,mxResources.get("export")))try{var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;var f=c?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==c&&(f=D?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var l=this.editor.graph.getSvg(f,b,p,u,null,e,null,null,"blank"==x?"_blank":"self"==x?"_top":null,null,!0,D,I);g&&this.editor.graph.addSvgShadow(l);var m=
+this.getBaseFilename()+(k?".drawio":"")+".svg";G=null!=G?G:mxUtils.bind(this,function(b){this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(m,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});var q=mxUtils.bind(this,function(b){this.spinner.stop();k&&b.setAttribute("content",this.getFileData(!0,null,null,null,e,t,null,null,null,!1));G(Graph.xmlDeclaration+"\n"+(k?Graph.svgFileComment+
+"\n":"")+Graph.svgDoctype+"\n"+mxUtils.getXml(b))});this.editor.graph.mathEnabled&&this.editor.addMathCss(l);var v=mxUtils.bind(this,function(b){n?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(b,q,this.thumbImageCache)):q(b)});B?this.embedFonts(l,v):(this.editor.addFontCss(l),v(l))}catch(da){this.handleError(da)}};EditorUi.prototype.addRadiobox=function(b,c,e,g,k,n,p){return this.addCheckbox(b,e,g,k,n,p,!0,c)};EditorUi.prototype.addCheckbox=function(b,c,e,g,k,n,
+p,u){n=null!=n?n:!0;var d=document.createElement("input");d.style.marginRight="8px";d.style.marginTop="16px";d.setAttribute("type",p?"radio":"checkbox");p="geCheckbox-"+Editor.guid();d.id=p;null!=u&&d.setAttribute("name",u);e&&(d.setAttribute("checked","checked"),d.defaultChecked=!0);g&&d.setAttribute("disabled","disabled");n&&(b.appendChild(d),e=document.createElement("label"),mxUtils.write(e,c),e.setAttribute("for",p),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(),f="";null!=e&&e.getMode()!=App.MODE_DEVICE&&e.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var g=document.createElement("select");g.style.width="120px";g.style.marginLeft="8px";g.style.marginRight="10px";g.className="geBtn";e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("makeCopy"));g.appendChild(e);e=document.createElement("option");
e.setAttribute("value","custom");mxUtils.write(e,mxResources.get("custom")+"...");g.appendChild(e);b.appendChild(g);mxEvent.addListener(g,"change",mxUtils.bind(this,function(){if("custom"==g.value){var b=new FilenameDialog(this,f,mxResources.get("ok"),function(b){null!=b?f=b:g.value="blank"},mxResources.get("url"),null,null,null,null,function(){g.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)?g.removeAttribute("disabled"):g.setAttribute("disabled","disabled")}));mxUtils.br(b);return{getLink:function(){return d.checked?"blank"===g.value?"_blank":f:null},getEditInput:function(){return d},getEditSelect:function(){return g}}};EditorUi.prototype.addLinkSection=function(b,c){function d(){k.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=g&&g!=mxConstants.NONE?"border:1px solid black;background-color:"+g:"background-position:center center;background-repeat:no-repeat;background-image:url('"+
Dialog.prototype.closeImage+"')")+';"></div>'}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 f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));e.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));e.appendChild(f);f=document.createElement("option");
f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));e.appendChild(f);c&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),e.appendChild(f));b.appendChild(e);mxUtils.write(b,mxResources.get("borderColor")+":");var g="#0000ff",k=null,k=mxUtils.button("",mxUtils.bind(this,function(b){this.pickColor(g||"none",function(b){g=b;d()});mxEvent.consume(b)}));d();k.style.padding=
mxClient.IS_FF?"4px 2px 4px 2px":"4px";k.style.marginLeft="4px";k.style.height="22px";k.style.width="22px";k.style.position="relative";k.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";k.className="geColorBtn";b.appendChild(k);mxUtils.br(b);return{getColor:function(){return g},getTarget:function(){return e.value},focus:function(){e.focus()}}};EditorUi.prototype.createUrlParameters=function(b,c,e,g,k,n,p){p=null!=p?p:[];g&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&
-"1"!=urlParams.dev||p.push("lightbox=1"),"auto"!=b&&p.push("target="+b),null!=c&&c!=mxConstants.NONE&&p.push("highlight="+("#"==c.charAt(0)?c.substring(1):c)),null!=k&&0<k.length&&p.push("edit="+encodeURIComponent(k)),n&&p.push("layers=1"),this.editor.graph.foldingEnabled&&p.push("nav=1"));e&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&p.push("page-id="+this.currentPage.getId());return p};EditorUi.prototype.createLink=function(b,c,e,g,k,n,p,t,y,x){y=this.createUrlParameters(b,
-c,e,g,k,n,y);b=this.getCurrentFile();c=!0;null!=p?e="#U"+encodeURIComponent(p):(b=this.getCurrentFile(),t||null==b||b.constructor!=window.DriveFile?e="#R"+encodeURIComponent(e?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(e="#"+b.getHash(),c=!1));c&&null!=b&&null!=b.getTitle()&&b.getTitle()!=this.defaultFilename&&y.push("title="+encodeURIComponent(b.getTitle()));x&&1<e.length&&(y.push("open="+e.substring(1)),e="");return(g&&
-"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<y.length?"?"+y.join("&"):"")+e};EditorUi.prototype.createHtml=function(b,c,e,g,k,n,p,t,y,x,D,H){this.getBasenames();var d={};""!=k&&k!=mxConstants.NONE&&(d.highlight=k);"auto"!==g&&(d.target=g);x||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;e=parseInt(e);isNaN(e)||100==e||(d.zoom=e/100);e=[];p&&
-(e.push("pages"),d.resize=!0,null!=this.pages&&null!=this.currentPage&&(d.page=mxUtils.indexOf(this.pages,this.currentPage)));c&&(e.push("zoom"),d.resize=!0);t&&e.push("layers");y&&e.push("tags");0<e.length&&(x&&e.push("lightbox"),d.toolbar=e.join(" "));null!=D&&0<D.length&&(d.edit=D);null!=b?d.url=b:d.xml=this.getFileData(!0,null,null,null,null,!p);c='<div class="mxgraph" style="'+(n?"max-width:100%;":"")+(""!=e?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(d))+
-'"></div>';b=null!=b?"&fetch="+encodeURIComponent(b):"";H(c,'<script type="text/javascript" src="'+(0<b.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+b:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.DRAWIO_VIEWER_URL?window.DRAWIO_VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(b,c,e,g){var d=document.createElement("div");d.style.whiteSpace=
+"1"!=urlParams.dev||p.push("lightbox=1"),"auto"!=b&&p.push("target="+b),null!=c&&c!=mxConstants.NONE&&p.push("highlight="+("#"==c.charAt(0)?c.substring(1):c)),null!=k&&0<k.length&&p.push("edit="+encodeURIComponent(k)),n&&p.push("layers=1"),this.editor.graph.foldingEnabled&&p.push("nav=1"));e&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&p.push("page-id="+this.currentPage.getId());return p};EditorUi.prototype.createLink=function(b,c,e,g,k,n,p,u,t,x){t=this.createUrlParameters(b,
+c,e,g,k,n,t);b=this.getCurrentFile();c=!0;null!=p?e="#U"+encodeURIComponent(p):(b=this.getCurrentFile(),u||null==b||b.constructor!=window.DriveFile?e="#R"+encodeURIComponent(e?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(e="#"+b.getHash(),c=!1));c&&null!=b&&null!=b.getTitle()&&b.getTitle()!=this.defaultFilename&&t.push("title="+encodeURIComponent(b.getTitle()));x&&1<e.length&&(t.push("open="+e.substring(1)),e="");return(g&&
+"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<t.length?"?"+t.join("&"):"")+e};EditorUi.prototype.createHtml=function(b,c,e,g,k,n,p,u,t,x,D,I){this.getBasenames();var d={};""!=k&&k!=mxConstants.NONE&&(d.highlight=k);"auto"!==g&&(d.target=g);x||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;e=parseInt(e);isNaN(e)||100==e||(d.zoom=e/100);e=[];p&&
+(e.push("pages"),d.resize=!0,null!=this.pages&&null!=this.currentPage&&(d.page=mxUtils.indexOf(this.pages,this.currentPage)));c&&(e.push("zoom"),d.resize=!0);u&&e.push("layers");t&&e.push("tags");0<e.length&&(x&&e.push("lightbox"),d.toolbar=e.join(" "));null!=D&&0<D.length&&(d.edit=D);null!=b?d.url=b:d.xml=this.getFileData(!0,null,null,null,null,!p);c='<div class="mxgraph" style="'+(n?"max-width:100%;":"")+(""!=e?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(d))+
+'"></div>';b=null!=b?"&fetch="+encodeURIComponent(b):"";I(c,'<script type="text/javascript" src="'+(0<b.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+b:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.DRAWIO_VIEWER_URL?window.DRAWIO_VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(b,c,e,g){var d=document.createElement("div");d.style.whiteSpace=
"nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);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");
f=k.cloneNode(!0);f.setAttribute("value","copy");l.appendChild(f);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 p=this.getCurrentFile();null==e&&null!=p&&p.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(p.getId())})));f.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 C=document.createElement("input");C.setAttribute("type","text");C.style.marginRight="16px";C.style.width="60px";C.style.marginLeft=
-"4px";C.style.marginRight="12px";C.value="100%";d.appendChild(C);var F=this.addCheckbox(d,mxResources.get("fit"),!0),l=null!=this.pages&&1<this.pages.length,M=M=this.addCheckbox(d,mxResources.get("allPages"),l,!l),E=this.addCheckbox(d,mxResources.get("layers"),!0),K=this.addCheckbox(d,mxResources.get("tags"),!0),B=this.addCheckbox(d,mxResources.get("lightbox"),!0),L=this.addEditButton(d,B),O=L.getEditInput();O.style.marginBottom="16px";mxEvent.addListener(B,"change",function(){B.checked?O.removeAttribute("disabled"):
-O.setAttribute("disabled","disabled");O.checked&&B.checked?L.getEditSelect().removeAttribute("disabled"):L.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){g(k.checked?e:null,H.checked,C.value,t.getTarget(),t.getColor(),F.checked,M.checked,E.checked,K.checked,B.checked,L.getLink())}),null,b,c);this.showDialog(b.container,340,430,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,e,g,k,n){var d=document.createElement("div");
-d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,b||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var l=this.getCurrentFile(),f="https://www.diagrams.net/doc/faq/publish-diagram-as-link";b=0;if(null!=l&&l.constructor==window.DriveFile&&!c){b=80;var f="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
-var q=document.createElement("div");q.style.whiteSpace="normal";mxUtils.write(q,mxResources.get("linkAccountRequired"));m.appendChild(q);q=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(l.getId())}));q.style.marginTop="12px";q.className="geBtn";m.appendChild(q);d.appendChild(m);q=document.createElement("a");q.style.paddingLeft="12px";q.style.color="gray";q.style.fontSize="11px";q.style.cursor="pointer";mxUtils.write(q,mxResources.get("check"));m.appendChild(q);
-mxEvent.addListener(q,"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,t=null;if(null!=e||null!=g)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")+":"),t=document.createElement("input"),t.setAttribute("type","text"),t.style.width="50px",t.style.marginLeft="6px",t.style.marginBottom="10px",t.value=g+"px",d.appendChild(t),mxUtils.br(d);var F=this.addLinkSection(d,n);e=null!=this.pages&&1<this.pages.length;var M=null;
-if(null==l||l.constructor!=window.DriveFile||c)M=this.addCheckbox(d,mxResources.get("allPages"),e,!e);var E=this.addCheckbox(d,mxResources.get("lightbox"),!0,null,null,!n),K=this.addEditButton(d,E),B=K.getEditInput();n&&(B.style.marginLeft=E.style.marginLeft,E.style.display="none",b-=20);var L=this.addCheckbox(d,mxResources.get("layers"),!0);L.style.marginLeft=B.style.marginLeft;L.style.marginTop="8px";var O=this.addCheckbox(d,mxResources.get("tags"),!0);O.style.marginLeft=B.style.marginLeft;O.style.marginBottom=
-"16px";O.style.marginTop="16px";mxEvent.addListener(E,"change",function(){E.checked?(L.removeAttribute("disabled"),B.removeAttribute("disabled")):(L.setAttribute("disabled","disabled"),B.setAttribute("disabled","disabled"));B.checked&&E.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){k(F.getTarget(),F.getColor(),null==M?!0:M.checked,E.checked,K.getLink(),L.checked,null!=p?p.value:null,
-null!=t?t.value:null,O.checked)}),null,mxResources.get("create"),f);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)):F.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,g,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+
+mxResources.get("share")),l.appendChild(m),mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(p.getId())})));f.setAttribute("checked","checked");null==e&&k.setAttribute("disabled","disabled");d.appendChild(l);var t=this.addLinkSection(d),I=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,":");var B=document.createElement("input");B.setAttribute("type","text");B.style.marginRight="16px";B.style.width="60px";B.style.marginLeft=
+"4px";B.style.marginRight="12px";B.value="100%";d.appendChild(B);var G=this.addCheckbox(d,mxResources.get("fit"),!0),l=null!=this.pages&&1<this.pages.length,M=M=this.addCheckbox(d,mxResources.get("allPages"),l,!l),F=this.addCheckbox(d,mxResources.get("layers"),!0),K=this.addCheckbox(d,mxResources.get("tags"),!0),C=this.addCheckbox(d,mxResources.get("lightbox"),!0),L=this.addEditButton(d,C),O=L.getEditInput();O.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?O.removeAttribute("disabled"):
+O.setAttribute("disabled","disabled");O.checked&&C.checked?L.getEditSelect().removeAttribute("disabled"):L.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){g(k.checked?e:null,I.checked,B.value,t.getTarget(),t.getColor(),G.checked,M.checked,F.checked,K.checked,C.checked,L.getLink())}),null,b,c);this.showDialog(b.container,340,430,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,e,g,k,n,p){var d=document.createElement("div");
+d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,b||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var l=this.getCurrentFile();b=0;if(null==l||l.constructor!=window.DriveFile||c)p=null!=p?p:"https://www.diagrams.net/doc/faq/publish-diagram-as-link";else{b=80;p=null!=p?p:"https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram";f=document.createElement("div");f.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"));f.appendChild(m);m=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(l.getId())}));m.style.marginTop="12px";m.className="geBtn";f.appendChild(m);d.appendChild(f);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"));f.appendChild(m);
+mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(b.container,300,80,!0,!1);b.init()}))}))}var q=null,t=null;if(null!=e||null!=g)b+=30,mxUtils.write(d,mxResources.get("width")+":"),q=document.createElement("input"),
+q.setAttribute("type","text"),q.style.marginRight="16px",q.style.width="50px",q.style.marginLeft="6px",q.style.marginRight="16px",q.style.marginBottom="10px",q.value="100%",d.appendChild(q),mxUtils.write(d,mxResources.get("height")+":"),t=document.createElement("input"),t.setAttribute("type","text"),t.style.width="50px",t.style.marginLeft="6px",t.style.marginBottom="10px",t.value=g+"px",d.appendChild(t),mxUtils.br(d);var v=this.addLinkSection(d,n);e=null!=this.pages&&1<this.pages.length;var M=null;
+if(null==l||l.constructor!=window.DriveFile||c)M=this.addCheckbox(d,mxResources.get("allPages"),e,!e);var F=this.addCheckbox(d,mxResources.get("lightbox"),!0,null,null,!n),K=this.addEditButton(d,F),C=K.getEditInput();n&&(C.style.marginLeft=F.style.marginLeft,F.style.display="none",b-=20);var L=this.addCheckbox(d,mxResources.get("layers"),!0);L.style.marginLeft=C.style.marginLeft;L.style.marginTop="8px";var O=this.addCheckbox(d,mxResources.get("tags"),!0);O.style.marginLeft=C.style.marginLeft;O.style.marginBottom=
+"16px";O.style.marginTop="16px";mxEvent.addListener(F,"change",function(){F.checked?(L.removeAttribute("disabled"),C.removeAttribute("disabled")):(L.setAttribute("disabled","disabled"),C.setAttribute("disabled","disabled"));C.checked&&F.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){k(v.getTarget(),v.getColor(),null==M?!0:M.checked,F.checked,K.getLink(),L.checked,null!=q?q.value:null,
+null!=t?t.value:null,O.checked)}),null,mxResources.get("create"),p);this.showDialog(c.container,340,300+b,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)):v.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,g,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+
(k?"10":"4")+"px";d.appendChild(f);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 q=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),p=g?null:this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),Editor.defaultIncludeDiagram),f=this.editor.graph,t=g?null:this.addCheckbox(d,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.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(!q.checked,null!=p?p.checked:!1,null!=t?t.checked:!1,b,d)}),null,b,c);this.showDialog(b.container,300,(k?25:0)+(g?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(b,c,e,g,k,n,p,t,y){p=null!=p?p:Editor.defaultIncludeDiagram;var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=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 q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight="12px";q.value=this.lastExportZoom||"100%";d.appendChild(q);mxUtils.write(d,mxResources.get("borderWidth")+":");var v=document.createElement("input");v.setAttribute("type","text");v.style.marginRight="16px";v.style.width="60px";v.style.marginLeft="4px";v.value=this.lastExportBorder||
-"0";d.appendChild(v);mxUtils.br(d);var u=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),K=document.createElement("input");K.style.marginTop="16px";K.style.marginRight="8px";K.style.marginLeft="24px";K.setAttribute("disabled","disabled");K.setAttribute("type","checkbox");var B=document.createElement("select");B.style.marginTop="16px";B.style.marginLeft="8px";b=["selectionOnly","diagram","page"];for(m=0;m<b.length;m++)if(!f.isSelectionEmpty()||"selectionOnly"!=b[m]){var L=
-document.createElement("option");mxUtils.write(L,mxResources.get(b[m]));L.setAttribute("value",b[m]);B.appendChild(L)}y?(mxUtils.write(d,mxResources.get("size")+":"),d.appendChild(B),mxUtils.br(d),l+=26,mxEvent.addListener(B,"change",function(){"selectionOnly"==B.value&&(u.checked=!0)})):n&&(d.appendChild(K),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),l+=30,mxEvent.addListener(u,"change",function(){u.checked?K.removeAttribute("disabled"):K.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?
-y&&(u.style.display="none",u.nextSibling.style.display="none",u.nextSibling.nextSibling.style.display="none",l-=30):(B.value="diagram",K.setAttribute("checked","checked"),K.defaultChecked=!0,mxEvent.addListener(u,"change",function(){B.value=u.checked?"selectionOnly":"diagram"}));var O=this.addCheckbox(d,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),ca=null;Editor.isDarkMode()&&(ca=this.addCheckbox(d,mxResources.get("dark"),!0),l+=26);var N=this.addCheckbox(d,mxResources.get("shadow"),
-f.shadowVisible),Q=document.createElement("input");Q.style.marginTop="16px";Q.style.marginRight="8px";Q.setAttribute("type","checkbox");var W=document.createElement("input");W.style.marginTop="16px";W.style.marginRight="8px";W.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||Q.setAttribute("disabled","disabled");c&&(d.appendChild(Q),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),d.appendChild(W),mxUtils.write(d,mxResources.get("embedFonts")),mxUtils.br(d),l+=
-60);var G=null;if("png"==t||"jpeg"==t)G=this.addCheckbox(d,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=30;var J=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),p,null,null,"jpeg"!=t);J.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=v.value;this.lastExportZoom=
-q.value;k(q.value,O.checked,!u.checked,N.checked,J.checked,Q.checked,v.value,K.checked,!1,A.value,null!=G?G.checked:null,null!=ca?ca.checked:null,B.value,W.checked)}),null,e,g);this.showDialog(e.container,340,l,!0,!0,null,null,null,null,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,e,g,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=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),q=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible&&g,!g),p=this.addCheckbox(d,e),t=this.addCheckbox(d,mxResources.get("lightbox"),!0),C=this.addEditButton(d,t),F=C.getEditInput(),M=1<f.model.getChildCount(f.model.getRoot()),E=this.addCheckbox(d,mxResources.get("layers"),M,
-!M);E.style.marginLeft=F.style.marginLeft;E.style.marginBottom="12px";E.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?(M&&E.removeAttribute("disabled"),F.removeAttribute("disabled")):(E.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"));F.checked&&t.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){b(m.checked,q.checked,p.checked,t.checked,
-C.getLink(),E.checked)}),null,mxResources.get("embed"),k);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,e,g,k,n,p,t){function d(d){var c=" ",m="";g&&(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('"+
+d.appendChild(m);mxUtils.write(d,mxResources.get("zoom")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight="12px";q.value=this.lastExportZoom||"100%";d.appendChild(q);mxUtils.write(d,mxResources.get("borderWidth")+":");var 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,f.isSelectionEmpty()),K=document.createElement("input");K.style.marginTop="16px";K.style.marginRight="8px";K.style.marginLeft="24px";K.setAttribute("disabled","disabled");K.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(!f.isSelectionEmpty()||"selectionOnly"!=b[m]){var L=
+document.createElement("option");mxUtils.write(L,mxResources.get(b[m]));L.setAttribute("value",b[m]);C.appendChild(L)}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)})):n&&(d.appendChild(K),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),l+=30,mxEvent.addListener(v,"change",function(){v.checked?K.removeAttribute("disabled"):K.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?
+y&&(v.style.display="none",v.nextSibling.style.display="none",v.nextSibling.nextSibling.style.display="none",l-=30):(C.value="diagram",K.setAttribute("checked","checked"),K.defaultChecked=!0,mxEvent.addListener(v,"change",function(){C.value=v.checked?"selectionOnly":"diagram"}));var O=this.addCheckbox(d,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),da=null;Editor.isDarkMode()&&(da=this.addCheckbox(d,mxResources.get("dark"),!0),l+=26);var N=this.addCheckbox(d,mxResources.get("shadow"),
+f.shadowVisible),Q=document.createElement("input");Q.style.marginTop="16px";Q.style.marginRight="8px";Q.setAttribute("type","checkbox");var Y=document.createElement("input");Y.style.marginTop="16px";Y.style.marginRight="8px";Y.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||Q.setAttribute("disabled","disabled");c&&(d.appendChild(Q),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),d.appendChild(Y),mxUtils.write(d,mxResources.get("embedFonts")),mxUtils.br(d),l+=
+60);var H=null;if("png"==t||"jpeg"==t)H=this.addCheckbox(d,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=30;var J=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),p,null,null,"jpeg"!=t);J.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=
+q.value;k(q.value,O.checked,!v.checked,N.checked,J.checked,Q.checked,u.value,K.checked,!1,A.value,null!=H?H.checked:null,null!=da?da.checked:null,C.value,Y.checked)}),null,e,g);this.showDialog(e.container,340,l,!0,!0,null,null,null,null,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,e,g,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=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),q=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible&&g,!g),p=this.addCheckbox(d,e),t=this.addCheckbox(d,mxResources.get("lightbox"),!0),B=this.addEditButton(d,t),G=B.getEditInput(),M=1<f.model.getChildCount(f.model.getRoot()),F=this.addCheckbox(d,mxResources.get("layers"),M,
+!M);F.style.marginLeft=G.style.marginLeft;F.style.marginBottom="12px";F.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?(M&&F.removeAttribute("disabled"),G.removeAttribute("disabled")):(F.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"));G.checked&&t.checked?B.getEditSelect().removeAttribute("disabled"):B.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){b(m.checked,q.checked,p.checked,t.checked,
+B.getLink(),F.checked)}),null,mxResources.get("embed"),k);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,e,g,k,n,p,t){function d(d){var c=" ",m="";g&&(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":"")+(n?"&layers=1":"")+"');}})(this);\"",m+="cursor:pointer;");b&&(m+="max-width:100%;");var q="";e&&(q=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');p('<img src="'+d+'"'+q+(""!=m?' style="'+m+'"':"")+c+"/>")}var f=this.editor.graph.getGraphBounds(),l=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(b){var c=g?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),f.width*f.height<=MAX_AREA&&c.length<=MAX_REQUEST_SIZE){var m="";e&&(m="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var q=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(g?"1":"0")+m+"&xml="+encodeURIComponent(c));q.send(mxUtils.bind(this,function(){200<=q.getStatus()&&
299>=q.getStatus()?d("data:image/png;base64,"+q.getText()):t({message:mxResources.get("unknownError")})}))}else t({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(b,c,e,g,k,n,p){var d=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!e),f=d.getElementsByTagName("a");if(null!=f)for(var l=0;l<f.length;l++){var m=f[l].getAttribute("href");null!=m&&"#"==m.charAt(0)&&"_blank"==f[l].getAttribute("target")&&f[l].removeAttribute("target")}g&&
@@ -3539,32 +3539,32 @@ Math.floor((new Date-b)/1E3);var d=Math.floor(b/31536E3);if(1<d)return d+" "+mxR
b;else if("mxfile"==b.nodeName){var e=b.getElementsByTagName("diagram");if(0<e.length){var d=e[0],f=c.getGlobalVariable;c.getGlobalVariable=function(b){return"page"==b?d.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==b?1:f.apply(this,arguments)}}}null!=d&&(b=Editor.parseDiagramNode(d))}e=this.editor.graph;try{this.editor.graph=c,this.editor.setGraphXml(b)}catch(n){}finally{this.editor.graph=e}return b};EditorUi.prototype.getPngFileProperties=function(b){var d=1,c=0;if(null!=
b){if(b.hasAttribute("scale")){var e=parseFloat(b.getAttribute("scale"));!isNaN(e)&&0<e&&(d=e)}b.hasAttribute("border")&&(e=parseInt(b.getAttribute("border")),!isNaN(e)&&0<e&&(c=e))}return{scale:d,border:c}};EditorUi.prototype.getEmbeddedPng=function(b,c,e,g,k){try{var d=this.editor.graph,f=null!=d.themes&&"darkTheme"==d.defaultThemeName,l=null;if(null!=e&&0<e.length)d=this.createTemporaryGraph(f?d.getDefaultStylesheet():d.getStylesheet()),document.body.appendChild(d.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(e).documentElement,
!0),d),l=e;else if(f||null!=this.pages&&this.currentPage!=this.pages[0]){var d=this.createTemporaryGraph(f?d.getDefaultStylesheet():d.getStylesheet()),m=d.getGlobalVariable;d.setBackgroundImage=this.editor.graph.setBackgroundImage;var q=this.pages[0];this.currentPage==q?d.setBackgroundImage(this.editor.graph.backgroundImage):null!=q.viewState&&null!=q.viewState&&d.setBackgroundImage(q.viewState.backgroundImage);d.getGlobalVariable=function(b){return"page"==b?q.getName():"pagenumber"==b?1:m.apply(this,
-arguments)};document.body.appendChild(d.container);d.model.setRoot(q.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(e){try{null==l&&(l=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var f=e.toDataURL("image/png"),f=Editor.writeGraphModelToPng(f,"tEXt","mxfile",encodeURIComponent(l));b(f.substring(f.lastIndexOf(",")+1));d!=this.editor.graph&&d.container.parentNode.removeChild(d.container)}catch(C){null!=c&&c(C)}}),null,null,null,mxUtils.bind(this,function(b){null!=c&&
-c(b)}),null,null,g,null,d.shadowVisible,null,d,k,null,null,null,"diagram",null)}catch(D){null!=c&&c(D)}};EditorUi.prototype.getEmbeddedSvg=function(b,c,e,g,k,n,p,t,y,x,D,H,C){t=null!=t?t:!0;D=null!=D?D:0;p=null!=y?y:c.background;p==mxConstants.NONE&&(p=null);n=c.getSvg(p,x,D,null,null,n,null,null,null,c.shadowVisible||H,null,C,"diagram");(c.shadowVisible||H)&&c.addSvgShadow(n,null,null,0==D);null!=b&&n.setAttribute("content",b);null!=e&&n.setAttribute("resource",e);var d=mxUtils.bind(this,function(b){b=
+arguments)};document.body.appendChild(d.container);d.model.setRoot(q.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(e){try{null==l&&(l=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var f=e.toDataURL("image/png"),f=Editor.writeGraphModelToPng(f,"tEXt","mxfile",encodeURIComponent(l));b(f.substring(f.lastIndexOf(",")+1));d!=this.editor.graph&&d.container.parentNode.removeChild(d.container)}catch(B){null!=c&&c(B)}}),null,null,null,mxUtils.bind(this,function(b){null!=c&&
+c(b)}),null,null,g,null,d.shadowVisible,null,d,k,null,null,null,"diagram",null)}catch(D){null!=c&&c(D)}};EditorUi.prototype.getEmbeddedSvg=function(b,c,e,g,k,n,p,t,y,x,D,I,B){t=null!=t?t:!0;D=null!=D?D:0;p=null!=y?y:c.background;p==mxConstants.NONE&&(p=null);n=c.getSvg(p,x,D,null,null,n,null,null,null,c.shadowVisible||I,null,B,"diagram");(c.shadowVisible||I)&&c.addSvgShadow(n,null,null,0==D);null!=b&&n.setAttribute("content",b);null!=e&&n.setAttribute("resource",e);var d=mxUtils.bind(this,function(b){b=
(g?"":Graph.xmlDeclaration+"\n"+Graph.svgFileComment+"\n"+Graph.svgDoctype+"\n")+mxUtils.getXml(b);null!=k&&k(b);return b});c.mathEnabled&&this.editor.addMathCss(n);if(null!=k)this.embedFonts(n,mxUtils.bind(this,function(b){t?this.editor.convertImages(b,mxUtils.bind(this,function(b){d(b)})):d(b)}));else return d(n)};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,g,k,n,p,t,y,x,D,H,C){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,D)}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,g,null,null,n,p,x,H,C)}catch(M){this.spinner.stop(),this.handleError(M)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,e,g,k,n,p){c=null!=c?c:0;e=null!=e?e:0;var d=[];try{var f=
+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,g,k,n,p,t,y,x,D,I,B){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,D)}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,g,null,null,n,p,x,I,B)}catch(M){this.spinner.stop(),this.handleError(M)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,e,g,k,n,p){c=null!=c?c:0;e=null!=e?e:0;var d=[];try{var f=
this.editor.graph;if(null!=b&&0<b.length){f.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 q=m.getElementsByTagName("diagram");if(1==q.length&&!n){if(m=Editor.parseDiagramNode(q[0]),null!=this.currentPage&&(b[q[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",
-[1]))){var t=q[0].getAttribute("name");null!=t&&""!=t&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,t))}}else if(0<q.length){n=[];var u=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(b[q[0].getAttribute("id")]=this.pages[0].getId(),m=Editor.parseDiagramNode(q[0]),g=!1,u=1);for(;u<q.length;u++){var M=q[u].getAttribute("id");q[u].removeAttribute("id");var E=this.updatePageRoot(new DiagramPage(q[u]));b[M]=q[u].getAttribute("id");var K=this.pages.length;null==
-E.getName()&&E.setName(mxResources.get("pageWithNumber",[K+1]));f.model.execute(new ChangePage(this,E,E,K,!0));n.push(E)}this.updatePageLinks(b,n)}}if(null!=m&&"mxGraphModel"===m.nodeName&&(d=f.importGraphModel(m,c,e,g),null!=d))for(u=0;u<d.length;u++)this.updatePageLinksForCell(b,d[u]);p&&this.insertHandler(d,null,null,f.defaultVertexStyle,f.defaultEdgeStyle,!1,!0)}finally{f.model.endUpdate()}}}catch(B){if(k)throw B;this.handleError(B)}return d};EditorUi.prototype.updatePageLinks=function(b,c){for(var d=
+[1]))){var t=q[0].getAttribute("name");null!=t&&""!=t&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,t))}}else if(0<q.length){n=[];var v=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(b[q[0].getAttribute("id")]=this.pages[0].getId(),m=Editor.parseDiagramNode(q[0]),g=!1,v=1);for(;v<q.length;v++){var M=q[v].getAttribute("id");q[v].removeAttribute("id");var F=this.updatePageRoot(new DiagramPage(q[v]));b[M]=q[v].getAttribute("id");var K=this.pages.length;null==
+F.getName()&&F.setName(mxResources.get("pageWithNumber",[K+1]));f.model.execute(new ChangePage(this,F,F,K,!0));n.push(F)}this.updatePageLinks(b,n)}}if(null!=m&&"mxGraphModel"===m.nodeName&&(d=f.importGraphModel(m,c,e,g),null!=d))for(v=0;v<d.length;v++)this.updatePageLinksForCell(b,d[v]);p&&this.insertHandler(d,null,null,f.defaultVertexStyle,f.defaultEdgeStyle,!1,!0)}finally{f.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,f=e.getLinkForCell(c);null!=f&&e.setLinkForCell(c,this.updatePageLink(b,f));if(e.isHtmlLabel(c)){d.innerHTML=e.sanitizeHtml(e.getLabel(c));for(var g=d.getElementsByTagName("a"),k=!1,p=0;p<g.length;p++)f=g[p].getAttribute("href"),null!=f&&(g[p].setAttribute("href",this.updatePageLink(b,f)),k=!0);k&&e.labelChanged(c,d.innerHTML)}for(p=
0;p<e.model.getChildCount(c);p++)this.updatePageLinksForCell(b,e.model.getChildAt(c,p))};EditorUi.prototype.updatePageLink=function(b,c){if(Graph.isPageLink(c)){var d=b[c.substring(c.indexOf(",")+1)];c=null!=d?"data:page/id,"+d:null}else if("data:action/json,"==c.substring(0,17))try{var e=JSON.parse(c.substring(17));if(null!=e.actions){for(var f=0;f<e.actions.length;f++){var g=e.actions[f];if(null!=g.open&&Graph.isPageLink(g.open)){var k=g.open.substring(g.open.indexOf(",")+1),d=b[k];null!=d?g.open=
-"data:page/id,"+d:null==this.getPageById(k)&&delete g.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,g,k){g=null!=g?g: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(g);try{var f=
-"UNKNOWN-VISIO",l=g.lastIndexOf(".");if(0<=l&&l<g.length)f=g.substring(l+1).toUpperCase();else{var m=g.lastIndexOf("/");0<=m&&m<g.length&&(g=g.substring(m+1))}EditorUi.logEvent({category:f+"-MS-IMPORT-FILE",action:"filename_"+g,label:d?"remote":"local"})}catch(H){}if(d)if(null==VSD_CONVERT_URL||this.isOffline())e({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{d=new FormData;d.append("file1",b,g);var n=new XMLHttpRequest;
+"data:page/id,"+d:null==this.getPageById(k)&&delete g.open}}c="data:action/json,"+JSON.stringify(e)}}catch(u){}return c};EditorUi.prototype.isRemoteVisioFormat=function(b){return/(\.v(sd|dx))($|\?)/i.test(b)||/(\.vs(s|x))($|\?)/i.test(b)};EditorUi.prototype.importVisio=function(b,c,e,g,k){g=null!=g?g: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(g);try{var f=
+"UNKNOWN-VISIO",l=g.lastIndexOf(".");if(0<=l&&l<g.length)f=g.substring(l+1).toUpperCase();else{var m=g.lastIndexOf("/");0<=m&&m<g.length&&(g=g.substring(m+1))}EditorUi.logEvent({category:f+"-MS-IMPORT-FILE",action:"filename_"+g,label:d?"remote":"local"})}catch(I){}if(d)if(null==VSD_CONVERT_URL||this.isOffline())e({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{d=new FormData;d.append("file1",b,g);var n=new XMLHttpRequest;
n.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(g)?"?stencil=1":""));n.responseType="blob";this.addRemoteServiceSecurityCheck(n);null!=k&&n.setRequestHeader("x-convert-custom",k);n.onreadystatechange=mxUtils.bind(this,function(){if(4==n.readyState)if(200<=n.status&&299>=n.status)try{var b=n.response;if("text/xml"==b.type){var d=new FileReader;d.onload=mxUtils.bind(this,function(b){try{c(b.target.result)}catch(M){e({message:mxResources.get("errorLoadingFile")})}});d.readAsText(b)}else this.doImportVisio(b,
-c,e,g)}catch(F){e(F)}else try{""==n.responseType||"text"==n.responseType?e({message:n.responseText}):(d=new FileReader,d.onload=function(){e({message:JSON.parse(d.result).Message})},d.readAsText(n.response))}catch(F){e({})}});n.send(d)}else try{this.doImportVisio(b,c,e,g)}catch(H){e(H)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",
+c,e,g)}catch(G){e(G)}else try{""==n.responseType||"text"==n.responseType?e({message:n.responseText}):(d=new FileReader,d.onload=function(){e({message:JSON.parse(d.result).Message})},d.readAsText(n.response))}catch(G){e({})}});n.send(d)}else try{this.doImportVisio(b,c,e,g)}catch(I){e(I)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",
d))};EditorUi.prototype.importGraphML=function(b,c,e){e=null!=e?e:mxUtils.bind(this,function(b){this.handleError(b)});var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportGraphML)try{this.doImportGraphML(b,c,e)}catch(q){e(q)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportGraphML||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.exportVisio=
function(b){var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams(b)||this.handleError({message:mxResources.get("unknownError")})}catch(l){this.handleError(l)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.convertLucidChart=
function(b,c,e){var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter){try{EditorUi.logEvent({category:"LUCIDCHART-IMPORT-FILE",action:"size_"+b.length}),EditorUi.debug("convertLucidChart",b)}catch(q){}try{c(LucidImporter.importState(JSON.parse(b)))}catch(q){null!=window.console&&console.error(q),e(q)}}else e({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline(!0)?
window.setTimeout(d,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js",function(){mxscript("js/orgchart/bridge.min.js",function(){mxscript("js/orgchart/bridge.collections.min.js",function(){mxscript("js/orgchart/OrgChart.Layout.min.js",function(){mxscript("js/orgchart/mxOrgChartLayout.js",d)})})})}):mxscript("js/extensions.min.js",d))};EditorUi.prototype.generateMermaidImage=function(b,c,e,g){var d=this,f=function(){try{this.loadingMermaid=!1,c=null!=c?c:EditorUi.defaultMermaidConfig,
c.securityLevel="strict",c.startOnLoad=!1,mermaid.mermaidAPI.initialize(c),mermaid.mermaidAPI.render("geMermaidOutput-"+(new Date).getTime(),b,function(b){try{if(mxClient.IS_IE||mxClient.IS_IE11)b=b.replace(/ xmlns:\S*="http:\/\/www.w3.org\/XML\/1998\/namespace"/g,"").replace(/ (NS xml|\S*):space="preserve"/g,' xml:space="preserve"');var c=mxUtils.parseXml(b).getElementsByTagName("svg");if(0<c.length){var f=parseFloat(c[0].getAttribute("width")),l=parseFloat(c[0].getAttribute("height"));if(isNaN(f)||
-isNaN(l))try{var k=c[0].getAttribute("viewBox").split(/\s+/),f=parseFloat(k[2]),l=parseFloat(k[3])}catch(H){f=f||100,l=l||100}e(d.convertDataUri(Editor.createSvgDataUri(b)),f,l)}else g({message:mxResources.get("invalidInput")})}catch(H){g(H)}})}catch(u){g(u)}};"undefined"!==typeof mermaid||this.loadingMermaid||this.isOffline(!0)?f():(this.loadingMermaid=!0,"1"==urlParams.dev?mxscript("js/mermaid/mermaid.min.js",f):mxscript("js/extensions.min.js",f))};EditorUi.prototype.generatePlantUmlImage=function(b,
+isNaN(l))try{var k=c[0].getAttribute("viewBox").split(/\s+/),f=parseFloat(k[2]),l=parseFloat(k[3])}catch(I){f=f||100,l=l||100}e(d.convertDataUri(Editor.createSvgDataUri(b)),f,l)}else g({message:mxResources.get("invalidInput")})}catch(I){g(I)}})}catch(v){g(v)}};"undefined"!==typeof mermaid||this.loadingMermaid||this.isOffline(!0)?f():(this.loadingMermaid=!0,"1"==urlParams.dev?mxscript("js/mermaid/mermaid.min.js",f):mxscript("js/extensions.min.js",f))};EditorUi.prototype.generatePlantUmlImage=function(b,
c,e,g){function d(b,d,c){c1=b>>2;c2=(b&3)<<4|d>>4;c3=(d&15)<<2|c>>6;c4=c&63;r="";r+=f(c1&63);r+=f(c2&63);r+=f(c3&63);return r+=f(c4&63)}function f(b){if(10>b)return String.fromCharCode(48+b);b-=10;if(26>b)return String.fromCharCode(65+b);b-=26;if(26>b)return String.fromCharCode(97+b);b-=26;return 0==b?"-":1==b?"_":"?"}var l=new XMLHttpRequest;l.open("GET",("txt"==c?PLANT_URL+"/txt/":"png"==c?PLANT_URL+"/png/":PLANT_URL+"/svg/")+function(b){r="";for(i=0;i<b.length;i+=3)r=i+2==b.length?r+d(b.charCodeAt(i),
b.charCodeAt(i+1),0):i+1==b.length?r+d(b.charCodeAt(i),0,0):r+d(b.charCodeAt(i),b.charCodeAt(i+1),b.charCodeAt(i+2));return r}(Graph.arrayBufferToString(pako.deflateRaw(b))),!0);"txt"!=c&&(l.responseType="blob");l.onload=function(b){if(200<=this.status&&300>this.status)if("txt"==c)e(this.response);else{var d=new FileReader;d.readAsDataURL(this.response);d.onloadend=function(b){var c=new Image;c.onload=function(){try{var b=c.width,f=c.height;if(0==b&&0==f){var l=d.result,k=l.indexOf(","),m=decodeURIComponent(escape(atob(l.substring(k+
-1)))),n=mxUtils.parseXml(m).getElementsByTagName("svg");0<n.length&&(b=parseFloat(n[0].getAttribute("width")),f=parseFloat(n[0].getAttribute("height")))}e(d.result,b,f)}catch(B){g(B)}};c.src=d.result};d.onerror=function(b){g(b)}}else g(b)};l.onerror=function(b){g(b)};l.send()};EditorUi.prototype.insertAsPreText=function(b,c,e){var d=this.editor.graph,f=null;d.getModel().beginUpdate();try{f=d.insertVertex(null,null,"<pre>"+b+"</pre>",c,e,1,1,"text;html=1;align=left;verticalAlign=top;"),d.updateCellSize(f,
+1)))),n=mxUtils.parseXml(m).getElementsByTagName("svg");0<n.length&&(b=parseFloat(n[0].getAttribute("width")),f=parseFloat(n[0].getAttribute("height")))}e(d.result,b,f)}catch(C){g(C)}};c.src=d.result};d.onerror=function(b){g(b)}}else g(b)};l.onerror=function(b){g(b)};l.send()};EditorUi.prototype.insertAsPreText=function(b,c,e){var d=this.editor.graph,f=null;d.getModel().beginUpdate();try{f=d.insertVertex(null,null,"<pre>"+b+"</pre>",c,e,1,1,"text;html=1;align=left;verticalAlign=top;"),d.updateCellSize(f,
!0)}finally{d.getModel().endUpdate()}return f};EditorUi.prototype.insertTextAt=function(b,c,e,g,k,n,p,t){n=null!=n?n:!0;p=null!=p?p:!0;if(null!=b)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b))this.parseFile(new Blob([b.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&this.editor.graph.setSelectionCells(this.insertTextAt(b.responseText,c,e,!0))}));else if("data:"==
b.substring(0,5)||!this.isOffline()&&(k||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b))){var d=this.editor.graph;if("data:application/pdf;base64,"==b.substring(0,28)){var f=Editor.extractGraphModelFromPdf(b);if(null!=f&&0<f.length)return this.importXml(f,c,e,n,!0,t)}if("data:image/png;base64,"==b.substring(0,22)&&(f=this.extractGraphModelFromPng(b),null!=f&&0<f.length))return this.importXml(f,c,e,n,!0,t);if("data:image/svg+xml;"==b.substring(0,19))try{f=null;"data:image/svg+xml;base64,"==b.substring(0,
-26)?(f=b.substring(b.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(f):Base64.decode(f,!0)):f=decodeURIComponent(b.substring(b.indexOf(",")+1));var l=this.importXml(f,c,e,n,!0,t);if(0<l.length)return l}catch(C){}this.loadImage(b,mxUtils.bind(this,function(f){if("data:"==b.substring(0,5))this.resizeImage(f,b,mxUtils.bind(this,function(b,f,g){d.setSelectionCell(d.insertVertex(null,null,"",d.snap(c),d.snap(e),f,g,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
+26)?(f=b.substring(b.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(f):Base64.decode(f,!0)):f=decodeURIComponent(b.substring(b.indexOf(",")+1));var l=this.importXml(f,c,e,n,!0,t);if(0<l.length)return l}catch(B){}this.loadImage(b,mxUtils.bind(this,function(f){if("data:"==b.substring(0,5))this.resizeImage(f,b,mxUtils.bind(this,function(b,f,g){d.setSelectionCell(d.insertVertex(null,null,"",d.snap(c),d.snap(e),f,g,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
this.convertDataUri(b)+";"))}),p,this.maxImageSize);else{var g=Math.min(1,Math.min(this.maxImageSize/f.width,this.maxImageSize/f.height)),l=Math.round(f.width*g);f=Math.round(f.height*g);d.setSelectionCell(d.insertVertex(null,null,"",d.snap(c),d.snap(e),l,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b+";"))}}),mxUtils.bind(this,function(){var f=null;d.getModel().beginUpdate();try{f=d.insertVertex(d.getDefaultParent(),
null,b,d.snap(c),d.snap(e),1,1,"text;"+(g?"html=1;":"")),d.updateCellSize(f),d.fireEvent(new mxEventObject("textInserted","cells",[f]))}finally{d.getModel().endUpdate()}d.setSelectionCell(f)}))}else{b=Graph.zapGremlins(mxUtils.trim(b));if(this.isCompatibleString(b))return this.importXml(b,c,e,n,null,t);if(0<b.length)if(this.isLucidChartData(b))this.convertLucidChart(b,mxUtils.bind(this,function(b){this.editor.graph.setSelectionCells(this.importXml(b,c,e,n,null,t))}),mxUtils.bind(this,function(b){this.handleError(b)}));
else{d=this.editor.graph;k=null;d.getModel().beginUpdate();try{k=d.insertVertex(d.getDefaultParent(),null,"",d.snap(c),d.snap(e),1,1,"text;whiteSpace=wrap;"+(g?"html=1;":""));d.fireEvent(new mxEventObject("textInserted","cells",[k]));"<"==b.charAt(0)&&b.indexOf(">")==b.length-1&&(b=mxUtils.htmlEntities(b));b.length>this.maxTextBytes&&(b=b.substring(0,this.maxTextBytes)+"...");k.value=b;d.updateCellSize(k);if(0<this.maxTextWidth&&k.geometry.width>this.maxTextWidth){var m=d.getPreferredSizeForCell(k,
@@ -3574,44 +3574,44 @@ b.substring(0,d)+b.substring(b.indexOf(",",d+1)))}return b};EditorUi.prototype.i
b,d,c)});window.deleteBrowserFile=mxUtils.bind(this,function(b,d,c){StorageFile.deleteFile(this,b,d,c)});if(!c){var e=Editor.useLocalStorage;Editor.useLocalStorage=!b}window.openFile=new OpenFile(mxUtils.bind(this,function(b){this.hideDialog(b)}));window.openFile.setConsumer(mxUtils.bind(this,function(b,d){if(null!=d&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(d)){var c=new Blob([b],{type:"application/octet-stream"});this.importVisio(c,mxUtils.bind(this,function(b){this.importXml(b,0,0,!0)}),
null,d)}else this.editor.graph.setSelectionCells(this.importXml(b,0,0,!0))}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null});if(!c){var f=this.dialog,g=f.close;this.dialog.close=mxUtils.bind(this,function(b){Editor.useLocalStorage=e;g.apply(f,arguments);b&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importZipFile=function(b,c,e){var d=this,f=mxUtils.bind(this,
function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(b).then(function(f){if(0==Object.keys(f.files).length)e();else{var g=0,l,k=!1;f.forEach(function(b,d){var f=d.name.toLowerCase();"diagram/diagram.xml"==f?(k=!0,d.async("string").then(function(b){0==b.indexOf("<mxfile ")?c(b):e()})):0==f.indexOf("versions/")&&(f=parseInt(f.substr(9)),f>g&&(g=f,l=d))});0<g?l.async("string").then(function(f){!d.isOffline()&&(new XMLHttpRequest).upload&&d.isRemoteFileFormat(f,b.name)?d.parseFile(new Blob([f],
-{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?c(b.responseText):e())}),b.name):e()}):k||e()}},function(b){e(b)}):e()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?f():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",f))};EditorUi.prototype.importFile=function(b,c,e,g,k,n,p,t,y,x,D,H){x=null!=x?x:!0;var d=!1,f=null,l=mxUtils.bind(this,function(b){var d=null;null!=b&&"<mxlibrary"==b.substring(0,10)?
-this.loadLibrary(new LocalLibrary(this,b,p)):d=this.importXml(b,e,g,x,null,null!=H?mxEvent.isControlDown(H):null);null!=t&&t(d)});"image"==c.substring(0,5)?(y=!1,"image/png"==c.substring(0,9)&&(c=D?null:this.extractGraphModelFromPng(b),null!=c&&0<c.length&&(f=this.importXml(c,e,g,x,null,null!=H?mxEvent.isControlDown(H):null),y=!0)),y||(c=this.editor.graph,D=b.indexOf(";"),0<D&&(b=b.substring(0,D)+b.substring(b.indexOf(",",D+1))),x&&c.isGridEnabled()&&(e=c.snap(e),g=c.snap(g)),f=[c.insertVertex(null,
+{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?c(b.responseText):e())}),b.name):e()}):k||e()}},function(b){e(b)}):e()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?f():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",f))};EditorUi.prototype.importFile=function(b,c,e,g,k,n,p,t,y,x,D,I){x=null!=x?x:!0;var d=!1,f=null,l=mxUtils.bind(this,function(b){var d=null;null!=b&&"<mxlibrary"==b.substring(0,10)?
+this.loadLibrary(new LocalLibrary(this,b,p)):d=this.importXml(b,e,g,x,null,null!=I?mxEvent.isControlDown(I):null);null!=t&&t(d)});"image"==c.substring(0,5)?(y=!1,"image/png"==c.substring(0,9)&&(c=D?null:this.extractGraphModelFromPng(b),null!=c&&0<c.length&&(f=this.importXml(c,e,g,x,null,null!=I?mxEvent.isControlDown(I):null),y=!0)),y||(c=this.editor.graph,D=b.indexOf(";"),0<D&&(b=b.substring(0,D)+b.substring(b.indexOf(",",D+1))),x&&c.isGridEnabled()&&(e=c.snap(e),g=c.snap(g)),f=[c.insertVertex(null,
null,"",e,g,k,n,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b+";")])):/(\.*<graphml )/.test(b)?(d=!0,this.importGraphML(b,l)):null!=y&&null!=p&&(/(\.v(dx|sdx?))($|\?)/i.test(p)||/(\.vs(x|sx?))($|\?)/i.test(p))?(d=!0,this.importVisio(y,l)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,p)?(d=!0,this.parseFile(null!=y?y:new Blob([b],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==
-b.readyState&&(200<=b.status&&299>=b.status?l(b.responseText):null!=t&&t(null))}),p)):0==b.indexOf("PK")&&null!=y?(d=!0,this.importZipFile(y,l,mxUtils.bind(this,function(){f=this.insertTextAt(this.validateFileData(b),e,g,!0,null,x);t(f)}))):/(\.v(sd|dx))($|\?)/i.test(p)||/(\.vs(s|x))($|\?)/i.test(p)||(f=this.insertTextAt(this.validateFileData(b),e,g,!0,null,x,null,null!=H?mxEvent.isControlDown(H):null));d||null==t||t(f);return f};EditorUi.prototype.importFiles=function(b,c,e,g,k,n,p,t,y,x,D,H,C){g=
+b.readyState&&(200<=b.status&&299>=b.status?l(b.responseText):null!=t&&t(null))}),p)):0==b.indexOf("PK")&&null!=y?(d=!0,this.importZipFile(y,l,mxUtils.bind(this,function(){f=this.insertTextAt(this.validateFileData(b),e,g,!0,null,x);t(f)}))):/(\.v(sd|dx))($|\?)/i.test(p)||/(\.vs(s|x))($|\?)/i.test(p)||(f=this.insertTextAt(this.validateFileData(b),e,g,!0,null,x,null,null!=I?mxEvent.isControlDown(I):null));d||null==t||t(f);return f};EditorUi.prototype.importFiles=function(b,c,e,g,k,n,p,t,y,x,D,I,B){g=
null!=g?g:this.maxImageSize;x=null!=x?x:this.maxImageBytes;var d=null!=c&&null!=e,f=!0;c=null!=c?c:0;e=null!=e?e:0;var l=!1;if(!mxClient.IS_CHROMEAPP&&null!=b)for(var m=D||this.resampleThreshold,q=0;q<b.length;q++)if("image/"==b[q].type.substring(0,6)&&b[q].size>m){l=!0;break}var u=mxUtils.bind(this,function(){var l=this.editor.graph,m=l.gridSize;k=null!=k?k:mxUtils.bind(this,function(b,c,e,f,g,l,k,m,n){try{return null!=b&&"<mxlibrary"==b.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,
-b,k)),null):this.importFile(b,c,e,f,g,l,k,m,n,d,H,C)}catch(qa){return this.handleError(qa),null}});n=null!=n?n:mxUtils.bind(this,function(b){l.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var q=b.length,u=q,v=[],B=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 f=v[e]();null!=f&&(c=c.concat(f))}}finally{l.getModel().endUpdate()}}n(c)}}),y=
-0;y<q;y++)mxUtils.bind(this,function(d){var n=b[d];if(null!=n){var q=new FileReader;q.onload=mxUtils.bind(this,function(b){if(null==p||p(n))if("image/"==n.type.substring(0,6))if("image/svg"==n.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],N=H?null:u.getAttribute("content");null!=N&&"<"!=N.charAt(0)&&"%"!=N.charAt(0)&&(N=unescape(window.atob?
-atob(N):Base64.decode(N,!0)));null!=N&&"%"==N.charAt(0)&&(N=decodeURIComponent(N));null==N||"<mxfile "!==N.substring(0,8)&&"<mxGraphModel "!==N.substring(0,14)?B(d,mxUtils.bind(this,function(){try{if(q.substring(0,t+1),null!=v){var b=v.getElementsByTagName("svg");if(0<b.length){var f=b[0],p=f.getAttribute("width"),x=f.getAttribute("height"),p=null!=p&&"%"!=p.charAt(p.length-1)?parseFloat(p):NaN,x=null!=x&&"%"!=x.charAt(x.length-1)?parseFloat(x):NaN,u=f.getAttribute("viewBox");if(null==u||0==u.length)f.setAttribute("viewBox",
-"0 0 "+p+" "+x);else if(isNaN(p)||isNaN(x)){var B=u.split(" ");3<B.length&&(p=parseFloat(B[2]),x=parseFloat(B[3]))}q=Editor.createSvgDataUri(mxUtils.getXml(f));var N=Math.min(1,Math.min(g/Math.max(1,p)),g/Math.max(1,x)),C=k(q,n.type,c+d*m,e+d*m,Math.max(1,Math.round(p*N)),Math.max(1,Math.round(x*N)),n.name);if(isNaN(p)||isNaN(x)){var y=new Image;y.onload=mxUtils.bind(this,function(){p=Math.max(1,y.width);x=Math.max(1,y.height);C[0].geometry.width=p;C[0].geometry.height=x;f.setAttribute("viewBox",
-"0 0 "+p+" "+x);q=Editor.createSvgDataUri(mxUtils.getXml(f));var b=q.indexOf(";");0<b&&(q=q.substring(0,b)+q.substring(q.indexOf(",",b+1)));l.setCellStyles("image",q,[C[0]])});y.src=Editor.createSvgDataUri(mxUtils.getXml(f))}return C}}}catch(fa){}return null})):B(d,mxUtils.bind(this,function(){return k(N,"text/xml",c+d*m,e+d*m,0,0,n.name)}))}else B(d,mxUtils.bind(this,function(){return null}))}else{u=!1;if("image/png"==n.type){var C=H?null:this.extractGraphModelFromPng(b.target.result);if(null!=C&&
-0<C.length){var y=new Image;y.src=b.target.result;B(d,mxUtils.bind(this,function(){return k(C,"text/xml",c+d*m,e+d*m,y.width,y.height,n.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,p){B(d,mxUtils.bind(this,function(){if(null!=b&&b.length<x){var q=f&&this.isResampleImageSize(n.size,D)?Math.min(1,Math.min(g/l,g/p)):1;return k(b,n.type,c+d*m,e+d*m,Math.round(l*q),Math.round(p*q),n.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),f,g,D,n.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else q=b.target.result,k(q,n.type,c+d*m,e+d*m,240,160,n.name,
-function(b){B(d,function(){return b})},n)});/(\.v(dx|sdx?))($|\?)/i.test(n.name)||/(\.vs(x|sx?))($|\?)/i.test(n.name)?k(null,n.type,c+d*m,e+d*m,240,160,n.name,function(b){B(d,function(){return b})},n):"image"==n.type.substring(0,5)||"application/pdf"==n.type?q.readAsDataURL(n):q.readAsText(n)}})(y)});if(l){l=[];for(q=0;q<b.length;q++)l.push(b[q]);b=l;this.confirmImageResize(function(b){f=b;u()},y)}else u()};EditorUi.prototype.confirmImageResize=function(b,c){c=null!=c?c:!1;var d=null!=this.spinner&&
+b,k)),null):this.importFile(b,c,e,f,g,l,k,m,n,d,I,B)}catch(oa){return this.handleError(oa),null}});n=null!=n?n:mxUtils.bind(this,function(b){l.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var q=b.length,u=q,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 f=v[e]();null!=f&&(c=c.concat(f))}}finally{l.getModel().endUpdate()}}n(c)}}),y=
+0;y<q;y++)mxUtils.bind(this,function(d){var n=b[d];if(null!=n){var q=new FileReader;q.onload=mxUtils.bind(this,function(b){if(null==p||p(n))if("image/"==n.type.substring(0,6))if("image/svg"==n.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],N=I?null:u.getAttribute("content");null!=N&&"<"!=N.charAt(0)&&"%"!=N.charAt(0)&&(N=unescape(window.atob?
+atob(N):Base64.decode(N,!0)));null!=N&&"%"==N.charAt(0)&&(N=decodeURIComponent(N));null==N||"<mxfile "!==N.substring(0,8)&&"<mxGraphModel "!==N.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 f=b[0],p=f.getAttribute("width"),x=f.getAttribute("height"),p=null!=p&&"%"!=p.charAt(p.length-1)?parseFloat(p):NaN,x=null!=x&&"%"!=x.charAt(x.length-1)?parseFloat(x):NaN,u=f.getAttribute("viewBox");if(null==u||0==u.length)f.setAttribute("viewBox",
+"0 0 "+p+" "+x);else if(isNaN(p)||isNaN(x)){var C=u.split(" ");3<C.length&&(p=parseFloat(C[2]),x=parseFloat(C[3]))}q=Editor.createSvgDataUri(mxUtils.getXml(f));var N=Math.min(1,Math.min(g/Math.max(1,p)),g/Math.max(1,x)),B=k(q,n.type,c+d*m,e+d*m,Math.max(1,Math.round(p*N)),Math.max(1,Math.round(x*N)),n.name);if(isNaN(p)||isNaN(x)){var y=new Image;y.onload=mxUtils.bind(this,function(){p=Math.max(1,y.width);x=Math.max(1,y.height);B[0].geometry.width=p;B[0].geometry.height=x;f.setAttribute("viewBox",
+"0 0 "+p+" "+x);q=Editor.createSvgDataUri(mxUtils.getXml(f));var b=q.indexOf(";");0<b&&(q=q.substring(0,b)+q.substring(q.indexOf(",",b+1)));l.setCellStyles("image",q,[B[0]])});y.src=Editor.createSvgDataUri(mxUtils.getXml(f))}return B}}}catch(fa){}return null})):C(d,mxUtils.bind(this,function(){return k(N,"text/xml",c+d*m,e+d*m,0,0,n.name)}))}else C(d,mxUtils.bind(this,function(){return null}))}else{u=!1;if("image/png"==n.type){var B=I?null:this.extractGraphModelFromPng(b.target.result);if(null!=B&&
+0<B.length){var y=new Image;y.src=b.target.result;C(d,mxUtils.bind(this,function(){return k(B,"text/xml",c+d*m,e+d*m,y.width,y.height,n.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,p){C(d,mxUtils.bind(this,function(){if(null!=b&&b.length<x){var q=f&&this.isResampleImageSize(n.size,D)?Math.min(1,Math.min(g/l,g/p)):1;return k(b,n.type,c+d*m,e+d*m,Math.round(l*q),Math.round(p*q),n.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),f,g,D,n.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else q=b.target.result,k(q,n.type,c+d*m,e+d*m,240,160,n.name,
+function(b){C(d,function(){return b})},n)});/(\.v(dx|sdx?))($|\?)/i.test(n.name)||/(\.vs(x|sx?))($|\?)/i.test(n.name)?k(null,n.type,c+d*m,e+d*m,240,160,n.name,function(b){C(d,function(){return b})},n):"image"==n.type.substring(0,5)||"application/pdf"==n.type?q.readAsDataURL(n):q.readAsText(n)}})(y)});if(l){l=[];for(q=0;q<b.length;q++)l.push(b[q]);b=l;this.confirmImageResize(function(b){f=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,f=function(e,f){if(e||c)mxSettings.setResizeImages(e?f:null),mxSettings.save();d();b(f)};null==e||c?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(b){f(b,!0)},function(b){f(b,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+'"/>','<img style="margin-top:8px;" src="'+
Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container,340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):f(!1,e)};EditorUi.prototype.parseFile=function(b,c,e){e=null!=e?e:b.name;var d=new FormData;d.append("format","xml");d.append("upfile",b,e);var f=new XMLHttpRequest;f.open("POST",OPEN_URL);f.onreadystatechange=function(){c(f)};f.send(d);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+b.size})}catch(n){}};EditorUi.prototype.isResampleImageSize=function(b,
-c){c=null!=c?c:this.resampleThreshold;return b>c};EditorUi.prototype.resizeImage=function(b,c,e,g,k,n,p){k=null!=k?k:this.maxImageSize;var d=Math.max(1,b.width),f=Math.max(1,b.height);if(g&&this.isResampleImageSize(null!=p?p:c.length,n))try{var l=Math.max(d/k,f/k);if(1<l){var m=Math.round(d/l),q=Math.round(f/l),t=document.createElement("canvas");t.width=m;t.height=q;t.getContext("2d").drawImage(b,0,0,m,q);var u=t.toDataURL();if(u.length<c.length){var M=document.createElement("canvas");M.width=m;M.height=
-q;var E=M.toDataURL();u!==E&&(c=u,d=m,f=q)}}}catch(K){}e(c,d,f)};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(q){if(null!=e)e(q);else throw q;}};var g=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&
+c){c=null!=c?c:this.resampleThreshold;return b>c};EditorUi.prototype.resizeImage=function(b,c,e,g,k,n,p){k=null!=k?k:this.maxImageSize;var d=Math.max(1,b.width),f=Math.max(1,b.height);if(g&&this.isResampleImageSize(null!=p?p:c.length,n))try{var l=Math.max(d/k,f/k);if(1<l){var m=Math.round(d/l),q=Math.round(f/l),t=document.createElement("canvas");t.width=m;t.height=q;t.getContext("2d").drawImage(b,0,0,m,q);var v=t.toDataURL();if(v.length<c.length){var M=document.createElement("canvas");M.width=m;M.height=
+q;var F=M.toDataURL();v!==F&&(c=v,d=m,f=q)}}}catch(K){}e(c,d,f)};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(q){if(null!=e)e(q);else throw q;}};var g=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,f){var g=JSON.parse(f);e=new TextareaDialog(b,mxResources.get("plantUml")+":",g.data,function(e){null!=
e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generatePlantUmlImage(e,g.format,function(f,l,k){b.spinner.stop();c.getModel().beginUpdate();try{if("txt"==g.format)c.labelChanged(d,"<pre>"+f+"</pre>"),c.updateCellSize(d,!0);else{c.setCellStyles("image",b.convertDataUri(f),[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:g.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,f){var g=JSON.parse(f);e=new TextareaDialog(b,mxResources.get("mermaid")+":",g.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generateMermaidImage(e,g.config,function(f,l,k){b.spinner.stop();c.getModel().beginUpdate();try{c.setCellStyles("image",f,[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:g.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,f){try{var g=this.graph.getAttributeForCell(d,"plantUmlData");if(null!=g)this.editPlantUmlData(d,f,g);else if(g=this.graph.getAttributeForCell(d,"mermaidData"),
-null!=g)this.editMermaidData(d,f,g);else{var l=c.getCellStyle(d);"1"==mxUtils.getValue(l,"metaEdit","0")?b.showDataDialog(d):e.apply(this,arguments)}}catch(ca){b.handleError(ca)}};c.getLinkTitle=function(d){return b.getLinkTitle(d)};c.customLinkClicked=function(d){var c=!1;try{b.handleCustomLink(d),c=!0}catch(L){b.handleError(L)}return c};var 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!=g)this.editMermaidData(d,f,g);else{var l=c.getCellStyle(d);"1"==mxUtils.getValue(l,"metaEdit","0")?b.showDataDialog(d):e.apply(this,arguments)}}catch(da){b.handleError(da)}};c.getLinkTitle=function(d){return b.getLinkTitle(d)};c.customLinkClicked=function(d){var c=!1;try{b.handleCustomLink(d),c=!0}catch(L){b.handleError(L)}return c};var 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 f=e.indexOf(",");if(0<f)for(var e=e.substring(f+1),f=d.getProperty("patches"),g=0;g<f.length;g++)if(null!=f[g][EditorUi.DIFF_UPDATE]&&null!=f[g][EditorUi.DIFF_UPDATE][e]){c.refreshBackgroundImage();break}}}));var n=c.getBackgroundImageObject;c.getBackgroundImageObject=function(d,c){var e=n.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 f=this.stylesheet;this.stylesheet=this.getDefaultStylesheet();
-e=b.createImageForPageLink(e.originalSrc);this.stylesheet=f}return e};var t=this.clearDefaultStyle;this.clearDefaultStyle=function(){t.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 y=c.addClickHandler;c.addClickHandler=function(b,d,e){var f=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!=f&&f(b,d)};y.call(this,b,d,e)};g.apply(this,arguments);
+e=b.createImageForPageLink(e.originalSrc);this.stylesheet=f}return e};var t=this.clearDefaultStyle;this.clearDefaultStyle=function(){t.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://www.diagrams.net/doc/faq/predefined-placeholders");if(/viewer\.diagrams\.net$/.test(window.location.hostname)||/embed\.diagrams\.net$/.test(window.location.hostname))this.editor.editBlankUrl="https://app.diagrams.net/";var u=b.editor.getEditBlankUrl;
+this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1");return u.apply(this,arguments)};var y=c.addClickHandler;c.addClickHandler=function(b,d,e){var f=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!=f&&f(b,d)};y.call(this,b,d,e)};g.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 D=c.getExportVariables;c.getExportVariables=function(){var d=D.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 C=c.labelLinkClicked;c.labelLinkClicked=function(b,d,e){var f=d.getAttribute("href");if(null==f||!c.isCustomLink(f)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))C.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))c.customLinkClicked(f),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 F=this.actions.get("print");F.setEnabled(!mxClient.IS_IOS||!navigator.standalone);F.visible=F.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,
+mxResources.get("untitledDiagram");var D=c.getExportVariables;c.getExportVariables=function(){var d=D.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 I=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:I.apply(this,arguments)};var B=c.labelLinkClicked;c.labelLinkClicked=function(b,d,e){var f=d.getAttribute("href");if(null==f||!c.isCustomLink(f)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))B.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))c.customLinkClicked(f),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 G=this.actions.get("print");G.setEnabled(!mxClient.IS_IOS||!navigator.standalone);G.visible=G.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,f,g,l){c.insertImage(b,
g,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 f=this.maxImageSize,f=Math.min(1,Math.min(f/Math.max(1,e)),f/Math.max(1,b));c.insertImage(decodeURIComponent(d),
-e*f,b*f)})):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()&&(F=this.editor.graph.view,F.setUnit(mxSettings.getUnit()),F.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,F.unit),this.refresh());if("1"==urlParams.styledev){F=document.getElementById("geFooter");null!=F&&(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)})),F.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 M=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==this.styleInput?!0:M.apply(this,arguments)}}F=document.getElementById("geInfo");null!=F&&F.parentNode.removeChild(F);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=
+e*f,b*f)})):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()&&(G=this.editor.graph.view,G.setUnit(mxSettings.getUnit()),G.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,G.unit),this.refresh());if("1"==urlParams.styledev){G=document.getElementById("geFooter");null!=G&&(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)})),G.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 M=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==this.styleInput?!0:M.apply(this,arguments)}}G=document.getElementById("geInfo");null!=G&&G.parentNode.removeChild(G);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,f=c.view.scale,g=d.x/f-e.x,l=d.y/f-e.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,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)||(n=
!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 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),
@@ -3621,7 +3621,7 @@ c.items;for(index in g){var k=g[index];if("file"===k.kind){if(b.isEditing())this
"&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 g=!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)||g||(e.style.left=c.container.scrollLeft+10+"px",e.style.top=c.container.scrollTop+10+"px",c.container.appendChild(e),g=!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(){!g||224!=d&&17!=
-d&&91!=d&&93!=d||(g=!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,
+d&&91!=d&&93!=d||(g=!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(v){this.handleError(v)}}));mxEvent.addListener(e,"cut",mxUtils.bind(this,function(d){if(c.isEnabled())try{mxClipboard.copy(c),this.copyCells(e,!0),b()}catch(v){this.handleError(v)}}));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;
@@ -3642,8 +3642,8 @@ function(b,c,e,g){var d=this.editor.graph,f=null;d.lastPasteXml==b?d.pasteCounte
b),Graph.isLink(b)&&d.setLinkForCell(k,b)}finally{d.model.endUpdate()}}d.setSelectionCell(k)}else f=d.getInsertPoint(),d.isMouseInsertPoint()&&(k=0,d.lastPasteXml==b&&0<d.pasteCounter&&d.pasteCounter--),f=this.insertTextAt(b,f.x+k,f.y+k,!0),d.setSelectionCells(f);d.isSelectionEmpty()||(d.scrollCellToVisible(d.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell())));return f};EditorUi.prototype.pasteCells=function(b,c,e,g){if(!mxEvent.isConsumed(b)){var d=
c,f=!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),f="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{f=
-f?d.innerHTML:mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText);l=!1;try{var p=f.lastIndexOf("%3E");0<=p&&p<f.length-3&&(f=f.substring(0,p+3))}catch(H){}try{k=d.getElementsByTagName("span"),m=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(f),this.isCompatibleString(m)&&(l=!0,f=m)}catch(H){}try{if(null!=f&&0<f.length){this.pasteXml(f,g,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=
+f?d.innerHTML:mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText);l=!1;try{var p=f.lastIndexOf("%3E");0<=p&&p<f.length-3&&(f=f.substring(0,p+3))}catch(I){}try{k=d.getElementsByTagName("span"),m=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(f),this.isCompatibleString(m)&&(l=!0,f=m)}catch(I){}try{if(null!=f&&0<f.length){this.pasteXml(f,g,l,b);try{mxEvent.consume(b)}catch(I){}}else if(!e){var t=this.editor.graph;t.lastPasteXml=null;t.pasteCounter=
+0}}catch(I){this.handleError(I)}}}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&&("data:image/png;base64,"==c.substring(0,22)?(c=this.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):
@@ -3652,9 +3652,9 @@ k.style.zIndex=mxPopupMenu.prototype.zIndex+2;k.style.border="3px dotted rgb(254
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,g,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,g);try{this.loadLibrary(new LocalLibrary(this,b,c))}catch(y){this.handleError(y,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(b,c,g)});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,g)}),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,g);try{this.loadLibrary(new LocalLibrary(this,b,e.name))}catch(v){this.handleError(v,mxResources.get("errorLoadingFile"))}}else if(0==
+c.length-5)+".drawio"),this.convertLucidChart(b,mxUtils.bind(this,function(b){this.spinner.stop();this.openLocalFile(b,c,g)}),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,g);try{this.loadLibrary(new LocalLibrary(this,b,e.name))}catch(u){this.handleError(u,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,g)}));else{if("image/png"==e.type.substring(0,9))b=this.extractGraphModelFromPng(b);else if("application/pdf"==e.type){var f=Editor.extractGraphModelFromPdf(b);null!=f&&(k=null,g=!0,b=f)}this.spinner.stop();this.openLocalFile(b,c,g,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,g,k){var d=this.getCurrentFile(),
+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(v){this.handleError(v)}});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,g,k){var d=this.getCurrentFile(),
f=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,g,k))});if(null!=b&&0<b.length)null==d||!d.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=g)?f():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=g)&&null!=d&&d.isModified()?this.confirm(mxResources.get("allChangesLost"),
null,f,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,f,mxResources.get("cancel"),mxResources.get("discardChanges")):f()})));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,f=e.getCellStyle(b);d(mxStencilRegistry.getBasenameForStencil(f[mxConstants.STYLE_SHAPE]));e.model.isEdge(b)&&
@@ -3667,54 +3667,54 @@ this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!
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,g=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(f){if(f.source==(window.opener||window.parent)){var k=f.data,l=null,m=mxUtils.bind(this,function(b){if(null!=b&&"function"===typeof b.charAt&&"<"!=b.charAt(0))try{"data:image/png;base64,"==b.substring(0,22)?b=this.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(pa){}return b});if("json"==urlParams.proto){var n=!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):
+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(ma){}return b});if("json"==urlParams.proto){var n=!1;try{k=JSON.parse(k)}catch(ja){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?p.postMessage(JSON.stringify({event:"prompt",value:b,message:k}),"*"):p.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();p.postMessage(JSON.stringify({event:"draft",result:"edit",message:k}),"*")}),mxUtils.bind(this,function(){this.hideDialog();p.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();p.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){p.postMessage(JSON.stringify({event:"draft",error:ka.toString(),message:k}),"*")}return}if("template"==k.action){this.spinner.stop();var v=1==k.enableRecent,u=1==k.enableSearch,B=1==k.enableCustomTemp;if("1"==urlParams.newTempDlg&&
-!k.templatesOnly&&null!=k.callback){var y=this.getCurrentUser(),O=new TemplatesDialog(this,function(b,d,c){b=b||this.emptyDiagramXml;p.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,v?mxUtils.bind(this,function(b,d,c){this.remoteInvoke("getRecentDiagrams",[c],null,b,d)}):null,
-u?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,B?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(O.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,g){d=
-d||this.emptyDiagramXml;null!=k.callback?p.postMessage(JSON.stringify({event:"template",xml:d,blank:d==this.emptyDiagramXml,name:c,tempUrl:e,libs:g,builtIn:!0,message:k}),"*"):(b(d,f,d!=this.emptyDiagramXml,k.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,v?mxUtils.bind(this,function(b){this.remoteInvoke("getRecentDiagrams",[null],null,b,function(){b(null,"Network Error!")})}):null,u?mxUtils.bind(this,function(b,d){this.remoteInvoke("searchDiagrams",
-[b,null],null,d,function(){d(null,"Network Error!")})}):null,mxUtils.bind(this,function(b,d,c){p.postMessage(JSON.stringify({event:"template",docUrl:b,info:d,name:c}),"*")}),null,null,B?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 ca=
-this.getDiagramTextContent();p.postMessage(JSON.stringify({event:"textContent",data:ca,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 Q=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var W=
-this.editor.graph,G=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=Q;p.postMessage(JSON.stringify(d),"*")}),J=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(Q)));W!=this.editor.graph&&W.container.parentNode.removeChild(W.container);G(b)}),A=k.pageId||(null!=this.pages?k.currentPage?
-this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var Z=mxUtils.bind(this,function(){if(null!=this.pages&&this.currentPage.getId()!=A){var b=W.getGlobalVariable;W=this.createTemporaryGraph(W.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);W.getGlobalVariable=function(c){return"page"==c?d.getName():"pagenumber"==c?1:b.apply(this,arguments)};document.body.appendChild(W.container);
-W.model.setRoot(d.root)}if(null!=k.layerIds){for(var e=W.model,f=e.getChildCells(e.getRoot()),g={},c=0;c<k.layerIds.length;c++)g[k.layerIds[c]]=!0;for(c=0;c<f.length;c++)e.setVisible(f[c],g[f[c].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){J(b.toDataURL("image/png"))}),k.width,null,k.background,mxUtils.bind(this,function(){J(null)}),null,null,k.scale,k.transparent,k.shadow,null,W,k.border,null,k.grid,k.keepTheme)});null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(Q),c=!1,this.editor.graph.mathEnabled?
-window.setTimeout(function(){window.MathJax.Hub.Queue(Z)},0):Z()):Z()}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(Q))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?G("data:image/png;base64,"+b.getText()):J(null)}),mxUtils.bind(this,
-function(){J(null)}))}}else Z=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,k.ignore?mxUtils.bind(this,function(){this.hideDialog();p.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(ja){p.postMessage(JSON.stringify({event:"draft",error:ja.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(),O=new TemplatesDialog(this,function(b,d,c){b=b||this.emptyDiagramXml;p.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(O.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,g){d=
+d||this.emptyDiagramXml;null!=k.callback?p.postMessage(JSON.stringify({event:"template",xml:d,blank:d==this.emptyDiagramXml,name:c,tempUrl:e,libs:g,builtIn:!0,message:k}),"*"):(b(d,f,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){p.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 da=
+this.getDiagramTextContent();p.postMessage(JSON.stringify({event:"textContent",data:da,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 Q=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var Y=
+this.editor.graph,H=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=Q;p.postMessage(JSON.stringify(d),"*")}),J=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(Q)));Y!=this.editor.graph&&Y.container.parentNode.removeChild(Y.container);H(b)}),A=k.pageId||(null!=this.pages?k.currentPage?
+this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var aa=mxUtils.bind(this,function(){if(null!=this.pages&&this.currentPage.getId()!=A){var b=Y.getGlobalVariable;Y=this.createTemporaryGraph(Y.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);Y.getGlobalVariable=function(c){return"page"==c?d.getName():"pagenumber"==c?1:b.apply(this,arguments)};document.body.appendChild(Y.container);
+Y.model.setRoot(d.root)}if(null!=k.layerIds){for(var e=Y.model,f=e.getChildCells(e.getRoot()),g={},c=0;c<k.layerIds.length;c++)g[k.layerIds[c]]=!0;for(c=0;c<f.length;c++)e.setVisible(f[c],g[f[c].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){J(b.toDataURL("image/png"))}),k.width,null,k.background,mxUtils.bind(this,function(){J(null)}),null,null,k.scale,k.transparent,k.shadow,null,Y,k.border,null,k.grid,k.keepTheme)});null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(Q),c=!1,this.editor.graph.mathEnabled?
+window.setTimeout(function(){window.MathJax.Hub.Queue(aa)},0):aa()):aa()}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(Q))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?H("data:image/png;base64,"+b.getText()):J(null)}),mxUtils.bind(this,
+function(){J(null)}))}}else aa=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);p.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}p.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(Z)},0):Z()):Z();return}if("load"==k.action){n=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 I=Editor.sketchMode;this.doSetSketchMode(k.rough);I!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=k.dark&&(I=Editor.darkMode,this.doSetDarkMode(k.dark),I!=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 X=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*X);b.maxFitScale=d;b.container.scrollTop-=2*X;b.container.scrollLeft-=2*X;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 aa=this.getCurrentFile();null!=aa&&(t=m(k.xml),null!=t&&""!=t&&aa.mergeFile(new LocalFile(this,t),function(){p.postMessage(JSON.stringify({event:"merge",message:k}),"*")},function(b){p.postMessage(JSON.stringify({event:"merge",message:k,error:b}),"*")}))}else"remoteInvokeReady"==k.action?this.handleRemoteInvokeReady(p):
-"remoteInvoke"==k.action?this.handleRemoteInvoke(k,f.origin):"remoteInvokeResponse"==k.action?this.handleRemoteInvokeResponse(k):p.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(k)}),"*");return}}catch(ka){this.handleError(ka)}}var la=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),ga=mxUtils.bind(this,function(f,k){c=!0;try{b(f,k,null,n)}catch(ma){this.handleError(ma)}c=
-!1;null!=urlParams.modified&&this.editor.setStatus("");g=la();e&&null==d&&(d=mxUtils.bind(this,function(b,d){var e=la();if(e!=g&&!c){var f=this.createLoadMessage("autosave");f.xml=e;(window.opener||window.parent).postMessage(JSON.stringify(f),"*")}g=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",
+null==k.embedImages?this.editor.convertImages(b,mxUtils.bind(this,function(b){c(mxUtils.getXml(b))})):c(mxUtils.getXml(b))}));return}p.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(aa)},0):aa()):aa();return}if("load"==k.action){n=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 E=Editor.sketchMode;this.doSetSketchMode(k.rough);E!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=k.dark&&(E=Editor.darkMode,this.doSetDarkMode(k.dark),E!=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 W=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*W);b.maxFitScale=d;b.container.scrollTop-=2*W;b.container.scrollLeft-=2*W;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(ja){}k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):null!=k.descriptor?k.descriptor:k.xml}else{if("merge"==k.action){var T=this.getCurrentFile();null!=T&&(t=m(k.xml),null!=t&&""!=t&&T.mergeFile(new LocalFile(this,t),function(){p.postMessage(JSON.stringify({event:"merge",message:k}),"*")},function(b){p.postMessage(JSON.stringify({event:"merge",message:k,error:b}),"*")}))}else"remoteInvokeReady"==k.action?this.handleRemoteInvokeReady(p):
+"remoteInvoke"==k.action?this.handleRemoteInvoke(k,f.origin):"remoteInvokeResponse"==k.action?this.handleRemoteInvokeResponse(k):p.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(k)}),"*");return}}catch(ja){this.handleError(ja)}}var na=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),ga=mxUtils.bind(this,function(f,k){c=!0;try{b(f,k,null,n)}catch(ka){this.handleError(ka)}c=
+!1;null!=urlParams.modified&&this.editor.setStatus("");g=na();e&&null==d&&(d=mxUtils.bind(this,function(b,d){var e=na();if(e!=g&&!c){var f=this.createLoadMessage("autosave");f.xml=e;(window.opener||window.parent).postMessage(JSON.stringify(f),"*")}g=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=f;p.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){ga(b,f)},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)&&ga(b.responseText,f)}),""):null!=k&&"function"===typeof k.substring&&this.isLucidChartData(k)?this.convertLucidChart(k,mxUtils.bind(this,function(b){ga(b)}),mxUtils.bind(this,function(b){this.handleError(b)})):null==k||"object"!==typeof k||null==k.format||null==k.data&&null==k.url?(k=m(k),ga(k,f)):this.loadDescriptor(k,mxUtils.bind(this,function(b){ga(la(),f)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var p=window.opener||window.parent,k="json"==
+13)&&ga(b.responseText,f)}),""):null!=k&&"function"===typeof k.substring&&this.isLucidChartData(k)?this.convertLucidChart(k,mxUtils.bind(this,function(b){ga(b)}),mxUtils.bind(this,function(b){this.handleError(b)})):null==k||"object"!==typeof k||null==k.format||null==k.data&&null==k.url?(k=m(k),ga(k,f)):this.loadDescriptor(k,mxUtils.bind(this,function(b){ga(na(),f)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var p=window.opener||window.parent,k="json"==
urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";p.postMessage(k,"*");if("json"==urlParams.proto){var t=this.editor.graph.openLink;this.editor.graph.openLink=function(b,d,c){t.apply(this,arguments);p.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 g="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(c,g);c.setAttribute("title",g);mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));b.appendChild(c)}}else mxUtils.write(c,
mxResources.get("save")),c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),
b.appendChild(c),e=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),e="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,e),c.setAttribute("title",e),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),e=c);e.style.marginRight="20px";this.toolbar.container.appendChild(b);this.toolbar.staticElements.push(b);b.style.right=
"atlas"==uiTheme||"1"==urlParams.atlas?"42px":"52px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(b){this.importCsv(b)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};
-EditorUi.prototype.executeLayoutList=function(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var g=new window[b[f].layout](d);if(null!=b[f].config)for(var k in b[f].config)g[k]=b[f].config[k];this.executeLayout(function(){g.execute(d.getDefaultParent(),0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],g=[],k={};if(0<d.length){var p={},t=null,x=null,D=null,H=null,C=null,F=null,M="whiteSpace=wrap;html=1;",
-E=null,K=null,B="",L="auto",O="auto",ca=null,N=null,Q=40,W=40,G=100,J=0,A=this.editor.graph;A.getGraphBounds();for(var Z=function(){null!=c?c(ra):(A.setSelectionCells(ra),A.scrollCellToVisible(A.getSelectionCell()))},I=A.getFreeInsertPoint(),X=I.x,aa=I.y,I=aa,la=null,ga="auto",K=null,ka=[],pa=null,qa=null,ma=0;ma<d.length&&"#"==d[ma].charAt(0);){b=d[ma];for(ma++;ma<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[ma].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[ma].substring(1)),ma++;if("#"!=
-b.charAt(1)){var Y=b.indexOf(":");if(0<Y){var ba=mxUtils.trim(b.substring(1,Y)),R=mxUtils.trim(b.substring(Y+1));"label"==ba?la=A.sanitizeHtml(R):"labelname"==ba&&0<R.length&&"-"!=R?C=R:"labels"==ba&&0<R.length&&"-"!=R?F=JSON.parse(R):"style"==ba?x=R:"parentstyle"==ba?M=R:"stylename"==ba&&0<R.length&&"-"!=R?H=R:"styles"==ba&&0<R.length&&"-"!=R?D=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?K=R:"namespace"==ba&&
-0<R.length&&"-"!=R?B=R:"width"==ba?L=R:"height"==ba?O=R:"left"==ba&&0<R.length?ca=R:"top"==ba&&0<R.length?N=R:"ignore"==ba?qa=R.split(","):"connect"==ba?ka.push(JSON.parse(R)):"link"==ba?pa=R:"padding"==ba?J=parseFloat(R):"edgespacing"==ba?Q=parseFloat(R):"nodespacing"==ba?W=parseFloat(R):"levelspacing"==ba?G=parseFloat(R):"layout"==ba&&(ga=R)}}}if(null==d[ma])throw Error(mxResources.get("invalidOrMissingFile"));for(var ta=this.editor.csvToArray(d[ma]),ba=Y=null,R=[],U=0;U<ta.length;U++)E==ta[U]&&
-(Y=U),K==ta[U]&&(ba=U),R.push(mxUtils.trim(ta[U]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==la&&(la="%"+R[0]+"%");if(null!=ka)for(var T=0;T<ka.length;T++)null==p[ka[T].to]&&(p[ka[T].to]={});E=[];for(U=ma+1;U<d.length;U++){var na=this.editor.csvToArray(d[U]);if(null==na){var va=40<d[U].length?d[U].substring(0,40)+"...":d[U];throw Error(va+" ("+U+"):\n"+mxResources.get("containsValidationErrors"));}0<na.length&&E.push(na)}A.model.beginUpdate();try{for(U=0;U<E.length;U++){var na=
-E[U],S=null,fa=null!=Y?B+na[Y]:null;null!=fa&&(S=A.model.getCell(fa));var d=null!=S,ia=new mxCell(la,new mxGeometry(X,I,0,0),x||"whiteSpace=wrap;html=1;");ia.vertex=!0;ia.id=fa;for(var ja=0;ja<na.length;ja++)A.setAttributeForCell(ia,R[ja],na[ja]);if(null!=C&&null!=F){var oa=F[ia.getAttribute(C)];null!=oa&&A.labelChanged(ia,oa)}if(null!=H&&null!=D){var ua=D[ia.getAttribute(H)];null!=ua&&(ia.style=ua)}A.setAttributeForCell(ia,"placeholders","1");ia.style=A.replacePlaceholders(ia,ia.style,t);d?(A.model.setValue(S,
-ia.value),A.model.setStyle(S,ia.style),0>mxUtils.indexOf(g,S)&&g.push(S),A.fireEvent(new mxEventObject("cellsInserted","cells",[S]))):A.fireEvent(new mxEventObject("cellsInserted","cells",[ia]));S=ia;if(!d)for(T=0;T<ka.length;T++)p[ka[T].to][S.getAttribute(ka[T].to)]=S;null!=pa&&"link"!=pa&&(A.setLinkForCell(S,S.getAttribute(pa)),A.setAttributeForCell(S,pa,null));var P=this.editor.graph.getPreferredSizeForCell(S),K=null!=ba?A.model.getCell(B+na[ba]):null;if(S.vertex){va=null!=K?0:X;ma=null!=K?0:aa;
-null!=ca&&null!=S.getAttribute(ca)&&(S.geometry.x=va+parseFloat(S.getAttribute(ca)));null!=N&&null!=S.getAttribute(N)&&(S.geometry.y=ma+parseFloat(S.getAttribute(N)));var da="@"==L.charAt(0)?S.getAttribute(L.substring(1)):null;S.geometry.width=null!=da&&"auto"!=da?parseFloat(S.getAttribute(L.substring(1))):"auto"==L||"auto"==da?P.width+J:parseFloat(L);var wa="@"==O.charAt(0)?S.getAttribute(O.substring(1)):null;S.geometry.height=null!=wa&&"auto"!=wa?parseFloat(wa):"auto"==O||"auto"==wa?P.height+J:
-parseFloat(O);I+=S.geometry.height+W}d?(null==k[fa]&&(k[fa]=[]),k[fa].push(S)):(e.push(S),null!=K?(K.style=A.replacePlaceholders(K,M,t),A.addCell(S,K),f.push(K)):g.push(A.addCell(S)))}for(U=0;U<f.length;U++)da="@"==L.charAt(0)?f[U].getAttribute(L.substring(1)):null,wa="@"==O.charAt(0)?f[U].getAttribute(O.substring(1)):null,"auto"!=L&&"auto"!=da||"auto"!=O&&"auto"!=wa||A.updateGroupBounds([f[U]],J,!0);for(var ya=g.slice(),ra=g.slice(),T=0;T<ka.length;T++)for(var za=ka[T],U=0;U<e.length;U++){var S=
-e[U],Aa=mxUtils.bind(this,function(b,d,c){var e=d.getAttribute(c.from);if(null!=e&&""!=e)for(var e=e.split(","),f=0;f<e.length;f++){var g=p[c.to][e[f]];if(null!=g){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||"")+(g.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(k=(k||"")+A.replacePlaceholders(g,c.targetlabel,t));var l="target"==c.placeholders==!c.invert?g:b,l=null!=
+EditorUi.prototype.executeLayoutList=function(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var g=new window[b[f].layout](d);if(null!=b[f].config)for(var k in b[f].config)g[k]=b[f].config[k];this.executeLayout(function(){g.execute(d.getDefaultParent(),0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],g=[],k={};if(0<d.length){var p={},t=null,x=null,D=null,I=null,B=null,G=null,M="whiteSpace=wrap;html=1;",
+F=null,K=null,C="",L="auto",O="auto",da=null,N=null,Q=40,Y=40,H=100,J=0,A=this.editor.graph;A.getGraphBounds();for(var aa=function(){null!=c?c(pa):(A.setSelectionCells(pa),A.scrollCellToVisible(A.getSelectionCell()))},E=A.getFreeInsertPoint(),W=E.x,T=E.y,E=T,na=null,ga="auto",K=null,ja=[],ma=null,oa=null,ka=0;ka<d.length&&"#"==d[ka].charAt(0);){b=d[ka];for(ka++;ka<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[ka].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[ka].substring(1)),ka++;if("#"!=
+b.charAt(1)){var Z=b.indexOf(":");if(0<Z){var ca=mxUtils.trim(b.substring(1,Z)),R=mxUtils.trim(b.substring(Z+1));"label"==ca?na=A.sanitizeHtml(R):"labelname"==ca&&0<R.length&&"-"!=R?B=R:"labels"==ca&&0<R.length&&"-"!=R?G=JSON.parse(R):"style"==ca?x=R:"parentstyle"==ca?M=R:"stylename"==ca&&0<R.length&&"-"!=R?I=R:"styles"==ca&&0<R.length&&"-"!=R?D=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?K=R:"namespace"==ca&&
+0<R.length&&"-"!=R?C=R:"width"==ca?L=R:"height"==ca?O=R:"left"==ca&&0<R.length?da=R:"top"==ca&&0<R.length?N=R:"ignore"==ca?oa=R.split(","):"connect"==ca?ja.push(JSON.parse(R)):"link"==ca?ma=R:"padding"==ca?J=parseFloat(R):"edgespacing"==ca?Q=parseFloat(R):"nodespacing"==ca?Y=parseFloat(R):"levelspacing"==ca?H=parseFloat(R):"layout"==ca&&(ga=R)}}}if(null==d[ka])throw Error(mxResources.get("invalidOrMissingFile"));for(var ra=this.editor.csvToArray(d[ka]),ca=Z=null,R=[],V=0;V<ra.length;V++)F==ra[V]&&
+(Z=V),K==ra[V]&&(ca=V),R.push(mxUtils.trim(ra[V]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==na&&(na="%"+R[0]+"%");if(null!=ja)for(var U=0;U<ja.length;U++)null==p[ja[U].to]&&(p[ja[U].to]={});F=[];for(V=ka+1;V<d.length;V++){var la=this.editor.csvToArray(d[V]);if(null==la){var ta=40<d[V].length?d[V].substring(0,40)+"...":d[V];throw Error(ta+" ("+V+"):\n"+mxResources.get("containsValidationErrors"));}0<la.length&&F.push(la)}A.model.beginUpdate();try{for(V=0;V<F.length;V++){var la=
+F[V],S=null,fa=null!=Z?C+la[Z]:null;null!=fa&&(S=A.model.getCell(fa));var d=null!=S,ia=new mxCell(na,new mxGeometry(W,E,0,0),x||"whiteSpace=wrap;html=1;");ia.vertex=!0;ia.id=fa;for(var ba=0;ba<la.length;ba++)A.setAttributeForCell(ia,R[ba],la[ba]);if(null!=B&&null!=G){var za=G[ia.getAttribute(B)];null!=za&&A.labelChanged(ia,za)}if(null!=I&&null!=D){var va=D[ia.getAttribute(I)];null!=va&&(ia.style=va)}A.setAttributeForCell(ia,"placeholders","1");ia.style=A.replacePlaceholders(ia,ia.style,t);d?(A.model.setValue(S,
+ia.value),A.model.setStyle(S,ia.style),0>mxUtils.indexOf(g,S)&&g.push(S),A.fireEvent(new mxEventObject("cellsInserted","cells",[S]))):A.fireEvent(new mxEventObject("cellsInserted","cells",[ia]));S=ia;if(!d)for(U=0;U<ja.length;U++)p[ja[U].to][S.getAttribute(ja[U].to)]=S;null!=ma&&"link"!=ma&&(A.setLinkForCell(S,S.getAttribute(ma)),A.setAttributeForCell(S,ma,null));var P=this.editor.graph.getPreferredSizeForCell(S),K=null!=ca?A.model.getCell(C+la[ca]):null;if(S.vertex){ta=null!=K?0:W;ka=null!=K?0:T;
+null!=da&&null!=S.getAttribute(da)&&(S.geometry.x=ta+parseFloat(S.getAttribute(da)));null!=N&&null!=S.getAttribute(N)&&(S.geometry.y=ka+parseFloat(S.getAttribute(N)));var ea="@"==L.charAt(0)?S.getAttribute(L.substring(1)):null;S.geometry.width=null!=ea&&"auto"!=ea?parseFloat(S.getAttribute(L.substring(1))):"auto"==L||"auto"==ea?P.width+J:parseFloat(L);var wa="@"==O.charAt(0)?S.getAttribute(O.substring(1)):null;S.geometry.height=null!=wa&&"auto"!=wa?parseFloat(wa):"auto"==O||"auto"==wa?P.height+J:
+parseFloat(O);E+=S.geometry.height+Y}d?(null==k[fa]&&(k[fa]=[]),k[fa].push(S)):(e.push(S),null!=K?(K.style=A.replacePlaceholders(K,M,t),A.addCell(S,K),f.push(K)):g.push(A.addCell(S)))}for(V=0;V<f.length;V++)ea="@"==L.charAt(0)?f[V].getAttribute(L.substring(1)):null,wa="@"==O.charAt(0)?f[V].getAttribute(O.substring(1)):null,"auto"!=L&&"auto"!=ea||"auto"!=O&&"auto"!=wa||A.updateGroupBounds([f[V]],J,!0);for(var xa=g.slice(),pa=g.slice(),U=0;U<ja.length;U++)for(var Aa=ja[U],V=0;V<e.length;V++){var S=
+e[V],Ba=mxUtils.bind(this,function(b,d,c){var e=d.getAttribute(c.from);if(null!=e&&""!=e)for(var e=e.split(","),f=0;f<e.length;f++){var g=p[c.to][e[f]];if(null!=g){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||"")+(g.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(k=(k||"")+A.replacePlaceholders(g,c.targetlabel,t));var l="target"==c.placeholders==!c.invert?g:b,l=null!=
c.style?A.replacePlaceholders(l,c.style,t):A.createCurrentEdgeStyle(),k=A.insertEdge(null,null,k||"",c.invert?g:b,c.invert?b:g,l);if(null!=c.labels)for(l=0;l<c.labels.length;l++){var m=c.labels[l],n=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;");n.vertex=!0;n.connectable=!1;n.geometry.relative=!0;null!=m.placeholders&&(n.value=A.replacePlaceholders("target"==m.placeholders==!c.invert?g:b,n.value,t));if(null!=m.dx||null!=m.dy)n.geometry.offset=new mxPoint(null!=
-m.dx?m.dx:0,null!=m.dy?m.dy:0);k.insert(n)}ra.push(k);mxUtils.remove(c.invert?b:g,ya)}}});Aa(S,S,za);if(null!=k[S.id])for(ja=0;ja<k[S.id].length;ja++)Aa(S,k[S.id][ja],za)}if(null!=qa)for(U=0;U<e.length;U++)for(S=e[U],ja=0;ja<qa.length;ja++)A.setAttributeForCell(S,mxUtils.trim(qa[ja]),null);if(0<g.length){var Da=new mxParallelEdgeLayout(A);Da.spacing=Q;Da.checkOverlap=!0;var Ea=function(){0<Da.spacing&&Da.execute(A.getDefaultParent());for(var b=0;b<g.length;b++){var d=A.getCellGeometry(g[b]);d.x=Math.round(A.snap(d.x));
-d.y=Math.round(A.snap(d.y));"auto"==L&&(d.width=Math.round(A.snap(d.width)));"auto"==O&&(d.height=Math.round(A.snap(d.height)))}};if("["==ga.charAt(0)){var Ka=Z;A.view.validate();this.executeLayoutList(JSON.parse(ga),function(){Ea();Ka()});Z=null}else if("circle"==ga){var Ba=new mxCircleLayout(A);Ba.disableEdgeStyle=!1;Ba.resetEdges=!1;var Ha=Ba.isVertexIgnored;Ba.isVertexIgnored=function(b){return Ha.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){Ba.execute(A.getDefaultParent());
-Ea()},!0,Z);Z=null}else if("horizontaltree"==ga||"verticaltree"==ga||"auto"==ga&&ra.length==2*g.length-1&&1==ya.length){A.view.validate();var Fa=new mxCompactTreeLayout(A,"horizontaltree"==ga);Fa.levelDistance=W;Fa.edgeRouting=!1;Fa.resetEdges=!1;this.executeLayout(function(){Fa.execute(A.getDefaultParent(),0<ya.length?ya[0]:null)},!0,Z);Z=null}else if("horizontalflow"==ga||"verticalflow"==ga||"auto"==ga&&1==ya.length){A.view.validate();var V=new mxHierarchicalLayout(A,"horizontalflow"==ga?mxConstants.DIRECTION_WEST:
-mxConstants.DIRECTION_NORTH);V.intraCellSpacing=W;V.parallelEdgeSpacing=Q;V.interRankCellSpacing=G;V.disableEdgeStyle=!1;this.executeLayout(function(){V.execute(A.getDefaultParent(),ra);A.moveCells(ra,X,aa)},!0,Z);Z=null}else if("organic"==ga||"auto"==ga&&ra.length>g.length){A.view.validate();var xa=new mxFastOrganicLayout(A);xa.forceConstant=3*W;xa.disableEdgeStyle=!1;xa.resetEdges=!1;var Oa=xa.isVertexIgnored;xa.isVertexIgnored=function(b){return Oa.apply(this,arguments)||0>mxUtils.indexOf(g,b)};
-this.executeLayout(function(){xa.execute(A.getDefaultParent());Ea()},!0,Z);Z=null}}this.hideDialog()}finally{A.model.endUpdate()}null!=Z&&Z()}}catch(La){this.handleError(La)}};EditorUi.prototype.getSearch=function(b){var d="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var c="?",e;for(e in urlParams)0>mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(d+=c+e+"="+urlParams[e],c="&")}else d=window.location.search;return d};EditorUi.prototype.getUrl=function(b){b=
+m.dx?m.dx:0,null!=m.dy?m.dy:0);k.insert(n)}pa.push(k);mxUtils.remove(c.invert?b:g,xa)}}});Ba(S,S,Aa);if(null!=k[S.id])for(ba=0;ba<k[S.id].length;ba++)Ba(S,k[S.id][ba],Aa)}if(null!=oa)for(V=0;V<e.length;V++)for(S=e[V],ba=0;ba<oa.length;ba++)A.setAttributeForCell(S,mxUtils.trim(oa[ba]),null);if(0<g.length){var Da=new mxParallelEdgeLayout(A);Da.spacing=Q;Da.checkOverlap=!0;var Ea=function(){0<Da.spacing&&Da.execute(A.getDefaultParent());for(var b=0;b<g.length;b++){var d=A.getCellGeometry(g[b]);d.x=Math.round(A.snap(d.x));
+d.y=Math.round(A.snap(d.y));"auto"==L&&(d.width=Math.round(A.snap(d.width)));"auto"==O&&(d.height=Math.round(A.snap(d.height)))}};if("["==ga.charAt(0)){var Ka=aa;A.view.validate();this.executeLayoutList(JSON.parse(ga),function(){Ea();Ka()});aa=null}else if("circle"==ga){var Ca=new mxCircleLayout(A);Ca.disableEdgeStyle=!1;Ca.resetEdges=!1;var Ha=Ca.isVertexIgnored;Ca.isVertexIgnored=function(b){return Ha.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){Ca.execute(A.getDefaultParent());
+Ea()},!0,aa);aa=null}else if("horizontaltree"==ga||"verticaltree"==ga||"auto"==ga&&pa.length==2*g.length-1&&1==xa.length){A.view.validate();var Fa=new mxCompactTreeLayout(A,"horizontaltree"==ga);Fa.levelDistance=Y;Fa.edgeRouting=!1;Fa.resetEdges=!1;this.executeLayout(function(){Fa.execute(A.getDefaultParent(),0<xa.length?xa[0]:null)},!0,aa);aa=null}else if("horizontalflow"==ga||"verticalflow"==ga||"auto"==ga&&1==xa.length){A.view.validate();var X=new mxHierarchicalLayout(A,"horizontalflow"==ga?mxConstants.DIRECTION_WEST:
+mxConstants.DIRECTION_NORTH);X.intraCellSpacing=Y;X.parallelEdgeSpacing=Q;X.interRankCellSpacing=H;X.disableEdgeStyle=!1;this.executeLayout(function(){X.execute(A.getDefaultParent(),pa);A.moveCells(pa,W,T)},!0,aa);aa=null}else if("organic"==ga||"auto"==ga&&pa.length>g.length){A.view.validate();var ua=new mxFastOrganicLayout(A);ua.forceConstant=3*Y;ua.disableEdgeStyle=!1;ua.resetEdges=!1;var Oa=ua.isVertexIgnored;ua.isVertexIgnored=function(b){return Oa.apply(this,arguments)||0>mxUtils.indexOf(g,b)};
+this.executeLayout(function(){ua.execute(A.getDefaultParent());Ea()},!0,aa);aa=null}}this.hideDialog()}finally{A.model.endUpdate()}null!=aa&&aa()}}catch(La){this.handleError(La)}};EditorUi.prototype.getSearch=function(b){var d="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var c="?",e;for(e in urlParams)0>mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(d+=c+e+"="+urlParams[e],c="&")}else d=window.location.search;return d};EditorUi.prototype.getUrl=function(b){b=
null!=b?b:window.location.pathname;var d=0<b.indexOf("?")?1:0;if("1"==urlParams.offline)b+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),e;for(e in urlParams)0>mxUtils.indexOf(c,e)&&(b=0==d?b+"?":b+"&",null!=urlParams[e]&&(b+=e+"="+urlParams[e],d++))}return b};EditorUi.prototype.showLinkDialog=function(b,c,e,g,k){b=new LinkDialog(this,b,c,e,!0,g,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),
@@ -3725,60 +3725,60 @@ g.length||b.isSelectionEmpty());this.actions.get("shadowVisible").setEnabled(e);
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,g,k,n,p,t){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(g,
-k,n)),"image/svg+xml");else{var f=b.getFileData(!0,null,null,null,null,!0),l=d.getGraphBounds(),m=Math.floor(l.width*k/d.view.scale),q=Math.floor(l.height*k/d.view.scale);if(f.length<=MAX_REQUEST_SIZE&&m*q<MAX_AREA)if(b.hideDialog(),"png"!=e&&"jpg"!=e&&"jpeg"!=e||!b.isExportToCanvas()){var v={globalVars:d.getExportVariables()};t&&(v.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(v))+(0<p?"&dpi="+p:"")+"&bg="+(null!=g?g:"none")+"&w="+m+"&h="+q+"&border="+n+"&xml="+encodeURIComponent(f))})}else"png"==e?b.exportImage(k,null==g||"none"==g,!0,!1,!1,n,!0,!1,null,t,p):b.exportImage(k,!1,!0,!1,!1,n,!0,!1,"jpeg",t);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=
+k,n)),"image/svg+xml");else{var f=b.getFileData(!0,null,null,null,null,!0),l=d.getGraphBounds(),m=Math.floor(l.width*k/d.view.scale),q=Math.floor(l.height*k/d.view.scale);if(f.length<=MAX_REQUEST_SIZE&&m*q<MAX_AREA)if(b.hideDialog(),"png"!=e&&"jpg"!=e&&"jpeg"!=e||!b.isExportToCanvas()){var u={globalVars:d.getExportVariables()};t&&(u.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(u))+(0<p?"&dpi="+p:"")+"&bg="+(null!=g?g:"none")+"&w="+m+"&h="+q+"&border="+n+"&xml="+encodeURIComponent(f))})}else"png"==e?b.exportImage(k,null==g||"none"==g,!0,!1,!1,n,!0,!1,null,t,p):b.exportImage(k,!1,!0,!1,!1,n,!0,!1,"jpeg",t);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 g=b;this.currentPage!=this.pages[e]&&(g=this.createTemporaryGraph(b.getStylesheet()),this.updatePageRoot(this.pages[e]),g.model.setRoot(this.pages[e].root));c+=this.pages[e].getName()+" "+g.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 g=document.createElement("div");g.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";g.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var k={};try{var p=mxSettings.getCustomLibraries();for(b=0;b<p.length;b++){var t=p[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){g.innerHTML="";if(0==b.length)g.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 f=this.addCheckbox(g,e.title,k[e.id]);(function(b,d){mxEvent.addListener(d,"change",function(){this.checked?c[b.id]=b:delete c[b.id]})})(e,f)}},mxUtils.bind(this,
function(b){g.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"));g.appendChild(c)}));d.appendChild(g);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(F){this.handleError(F,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){b--;0==b&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(c[d]));for(d in 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,
+null,mxUtils.bind(this,function(d){b--;0==b&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,d,c))}catch(G){this.handleError(G,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,g,k){var d=!0,f=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(f);d&&g.apply(this,arguments)}),m=mxUtils.bind(this,function(){window.clearTimeout(f);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,f=this.remoteInvokableFns[e];if(null!=f&&"function"===typeof this[e]){if(f.allowedDomains){for(var g=!1,k=0;k<f.allowedDomains.length;k++)if(c=="https://"+f.allowedDomains[k]){g=!0;break}if(!g){d(null,"Invalid Call: "+e+" is not allowed.");return}}var p=b.functionArgs;Array.isArray(p)||
(p=[]);if(f.isAsync)p.push(function(){d(Array.prototype.slice.apply(arguments))}),p.push(function(b){d(null,b||"Unkown Error")}),this[e].apply(this,p);else{var t=this[e].apply(this,p);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||
+function(b){try{var d=e.result;1>b.oldVersion&&d.createObjectStore("objects",{keyPath:"key"});2>b.oldVersion&&(d.createObjectStore("files",{keyPath:"title"}),d.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(v){null!=c&&c(v)}};e.onsuccess=mxUtils.bind(this,function(c){var d=e.result;this.database=d;EditorUi.migrateStorageFiles&&(StorageFile.migrate(d),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||
(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(b){if(!b||"1"==urlParams.forceMigration){var c=document.createElement("iframe");c.style.display="none";c.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+urlParams.forceMigration);document.body.appendChild(c);var d=!0,e=!1,f,g=0,k=mxUtils.bind(this,function(){e=!0;this.setDatabaseItem(".drawioMigrated3",!0);c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",
-funtionName:"setMigratedFlag"}),"*")}),l=mxUtils.bind(this,function(){g++;m()}),m=mxUtils.bind(this,function(){try{if(g>=f.length)k();else{var b=f[g];StorageFile.getFileContent(this,b,mxUtils.bind(this,function(d){null==d||".scratchpad"==b&&d==this.emptyLibraryXml?c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[b]}),"*"):l()}),l)}}catch(B){console.log(B)}}),p=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(B){console.log(B)}});b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var g={};try{g=JSON.parse(b.data)}catch(L){}"init"==g.event?(c.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=g.event||e||
+funtionName:"setMigratedFlag"}),"*")}),l=mxUtils.bind(this,function(){g++;m()}),m=mxUtils.bind(this,function(){try{if(g>=f.length)k();else{var b=f[g];StorageFile.getFileContent(this,b,mxUtils.bind(this,function(d){null==d||".scratchpad"==b&&d==this.emptyLibraryXml?c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[b]}),"*"):l()}),l)}}catch(C){console.log(C)}}),p=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 g={};try{g=JSON.parse(b.data)}catch(L){}"init"==g.event?(c.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=g.event||e||
(d?null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?(f=g.resp[0],d=!1,m()):k():null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?p(g.resp[0]):l())}}catch(L){console.log(L)}});window.addEventListener("message",b)}})));b(d);d.onversionchange=function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(q){null!=c&&c(q)}else null!=c&&c()}else b(this.database)};EditorUi.prototype.setDatabaseItem=function(b,c,e,g,k){this.openDatabase(mxUtils.bind(this,function(d){try{k=k||"objects";Array.isArray(k)||(k=
-[k],b=[b],c=[c]);var f=d.transaction(k,"readwrite");f.oncomplete=e;f.onerror=g;for(d=0;d<k.length;d++)f.objectStore(k[d]).put(null!=b&&null!=b[d]?{key:b[d],data:c[d]}:c[d])}catch(v){null!=g&&g(v)}}),g)};EditorUi.prototype.removeDatabaseItem=function(b,c,e,g){this.openDatabase(mxUtils.bind(this,function(d){g=g||"objects";Array.isArray(g)||(g=[g],b=[b]);d=d.transaction(g,"readwrite");d.oncomplete=c;d.onerror=e;for(var f=0;f<g.length;f++)d.objectStore(g[f])["delete"](b[f])}),e)};EditorUi.prototype.getDatabaseItem=
-function(b,c,e,g){this.openDatabase(mxUtils.bind(this,function(d){try{g=g||"objects";var f=d.transaction([g],"readonly").objectStore(g).get(b);f.onsuccess=function(){c(f.result)};f.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 f=d.transaction([e],"readonly").objectStore(e).openCursor(IDBKeyRange.lowerBound(0)),g=[];f.onsuccess=function(c){null==c.target.result?b(g):(g.push(c.target.result.value),
-c.target.result["continue"]())};f.onerror=c}catch(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 f=d.transaction([e],"readonly").objectStore(e).getAllKeys();f.onsuccess=function(){b(f.result)};f.onerror=c}catch(n){null!=c&&c(n)}}),c)};EditorUi.prototype.commentsSupported=function(){var b=this.getCurrentFile();return null!=b?b.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var b=
+[k],b=[b],c=[c]);var f=d.transaction(k,"readwrite");f.oncomplete=e;f.onerror=g;for(d=0;d<k.length;d++)f.objectStore(k[d]).put(null!=b&&null!=b[d]?{key:b[d],data:c[d]}:c[d])}catch(u){null!=g&&g(u)}}),g)};EditorUi.prototype.removeDatabaseItem=function(b,c,e,g){this.openDatabase(mxUtils.bind(this,function(d){g=g||"objects";Array.isArray(g)||(g=[g],b=[b]);d=d.transaction(g,"readwrite");d.oncomplete=c;d.onerror=e;for(var f=0;f<g.length;f++)d.objectStore(g[f])["delete"](b[f])}),e)};EditorUi.prototype.getDatabaseItem=
+function(b,c,e,g){this.openDatabase(mxUtils.bind(this,function(d){try{g=g||"objects";var f=d.transaction([g],"readonly").objectStore(g).get(b);f.onsuccess=function(){c(f.result)};f.onerror=e}catch(v){null!=e&&e(v)}}),e)};EditorUi.prototype.getDatabaseItems=function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=e||"objects";var f=d.transaction([e],"readonly").objectStore(e).openCursor(IDBKeyRange.lowerBound(0)),g=[];f.onsuccess=function(c){null==c.target.result?b(g):(g.push(c.target.result.value),
+c.target.result["continue"]())};f.onerror=c}catch(v){null!=c&&c(v)}}),c)};EditorUi.prototype.getDatabaseItemKeys=function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=e||"objects";var f=d.transaction([e],"readonly").objectStore(e).getAllKeys();f.onsuccess=function(){b(f.result)};f.onerror=c}catch(n){null!=c&&c(n)}}),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,g,k,p,t,v){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");
-return this.editor.loadUrl(b,c,e,g,k,p,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,g,k,p,t,v,y,x,D,H,C,F,M,E){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,g,k,p,t,v,y,x,D,H,C,F,M,E)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(b,c,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");
+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,g,k,p,t,u){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");
+return this.editor.loadUrl(b,c,e,g,k,p,t,u)};EditorUi.prototype.loadFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(b)};EditorUi.prototype.createSvgDataUri=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(b)};EditorUi.prototype.embedCssFonts=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");
+return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,e,g,k,p,t,u,y,x,D,I,B,G,M,F){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,g,k,p,t,u,y,x,D,I,B,G,M,F)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(b,c,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");
return this.editor.convertImages(b,c,e,g)};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,g){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(b,c,e,g)};EditorUi.prototype.crc32=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");
return Editor.crc32(b)};EditorUi.prototype.writeGraphModelToPng=function(b,c,e,g,k){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(b,c,e,g,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),g=localStorage.getItem(e);if(0<e.length&&(".scratchpad"==e||"."!=e.charAt(0))&&0<g.length){var k=
"<mxfile "===g.substring(0,8)||"<?xml"===g.substring(0,5)||"\x3c!--[if IE]>"===g.substring(0,12),g="<mxlibrary>"===g.substring(0,11);(k||g)&&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,g,p){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++;C.style.display=0==c?"block":"none"}function d(b,c,d,e){function f(){c.removeChild(l);c.removeChild(m);k.style.display="block";g.style.display="block"}y={div:c,comment:b,saveCallback:d,deleteOnCancel:e};var g=c.querySelector(".geCommentTxt"),k=c.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
+var CommentsWindow=function(b,c,e,k,g,p){function t(){for(var b=I.getElementsByTagName("div"),c=0,d=0;d<b.length;d++)"none"!=b[d].style.display&&b[d].parentNode==I&&c++;B.style.display=0==c?"block":"none"}function d(b,c,d,e){function f(){c.removeChild(l);c.removeChild(m);k.style.display="block";g.style.display="block"}y={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),t()):f();y=null});p.className="geCommentEditBtn";m.appendChild(p);var n=mxUtils.button(mxResources.get("save"),function(){g.innerHTML="";b.content=l.value;mxUtils.write(g,b.content);f();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?(n.click(),mxEvent.consume(b)):27==b.keyCode&&(p.click(),mxEvent.consume(b)))}));n.focus();n.className="geCommentEditBtn gePrimaryBtn";m.appendChild(n);c.insertBefore(m,g);k.style.display="none";g.style.display="none";l.focus()}function f(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 q(b){b.style.border="";b.removeChild(b.busyImg)}function n(c,e,g,k,p){function B(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)});W.appendChild(f);e&&(f.style.display="none")}function x(){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=Q;b(c);return{pdiv:e,replies:d}}function N(e,f,g,p,t){function v(){l(C);c.addReply(N,function(b){N.id=b;c.replies.push(N);q(C);g&&g()},function(c){u();m(C);b.handleError(c,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},p,t)}function u(){d(N,C,function(b){v()},!0)}var B=x().pdiv,N=b.newComment(e,b.getCurrentUser());N.pCommentId=c.id;null==c.replies&&(c.replies=[]);var C=n(N,c.replies,B,k+1);f?u():v()}if(p||!c.isResolved){C.style.display="none";var Q=document.createElement("div");Q.className="geCommentContainer";Q.setAttribute("data-commentId",c.id);Q.style.marginLeft=20*k+5+"px";c.isResolved&&!Editor.isDarkMode()&&(Q.style.backgroundColor="ghostWhite");
-var F=document.createElement("div");F.className="geCommentHeader";var L=document.createElement("img");L.className="geCommentUserImg";L.src=c.user.pictureUrl||Editor.userImage;F.appendChild(L);L=document.createElement("div");L.className="geCommentHeaderTxt";F.appendChild(L);var D=document.createElement("div");D.className="geCommentUsername";mxUtils.write(D,c.user.displayName||"");L.appendChild(D);D=document.createElement("div");D.className="geCommentDate";D.setAttribute("data-commentId",c.id);f(c,
-D);L.appendChild(D);Q.appendChild(F);F=document.createElement("div");F.className="geCommentTxt";mxUtils.write(F,c.content||"");Q.appendChild(F);c.isLocked&&(Q.style.opacity="0.5");F=document.createElement("div");F.className="geCommentActions";var W=document.createElement("ul");W.className="geCommentActionsList";F.appendChild(W);u||c.isLocked||0!=k&&!v||B(mxResources.get("reply"),function(){N("",!0)},c.isResolved);L=b.getCurrentUser();null==L||L.id!=c.user.id||u||c.isLocked||(B(mxResources.get("edit"),
-function(){function e(){d(c,Q,function(){l(Q);c.editComment(c.content,function(){q(Q)},function(c){m(Q);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}e()},c.isResolved),B(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){l(Q);c.deleteComment(function(b){if(!0===b){b=Q.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var d=Q.querySelectorAll(".geCommentAction");for(b=
-0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);q(Q);Q.style.opacity="0.5"}else{d=x(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}C.style.display=0==H.getElementsByTagName("div").length?"block":"none"}},function(c){m(Q);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));u||c.isLocked||0!=k||B(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=x(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?N(mxResources.get("reOpened")+": ",!0,
-d,!1,!0):N(mxResources.get("markedAsResolved"),!1,d,!0)});Q.appendChild(F);null!=g?H.insertBefore(Q,g.nextSibling):H.appendChild(Q);for(g=0;null!=c.replies&&g<c.replies.length;g++)F=c.replies[g],F.isResolved=c.isResolved,n(F,c.replies,null,k+1,p);null!=y&&(y.comment.id==c.id?(p=c.content,c.content=y.comment.content,d(c,Q,y.saveCallback,y.deleteOnCancel),c.content=p):null==y.comment.id&&y.comment.pCommentId==c.id&&(H.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel)));return Q}}
-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 D=EditorUi.compactUi?"26px":"30px",H=document.createElement("div");H.className="geCommentsList";H.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";H.style.bottom=parseInt(D)+7+"px";x.appendChild(H);var C=document.createElement("span");C.style.cssText="display:none;padding-top:10px;text-align:center;";
-mxUtils.write(C,mxResources.get("noCommentsFound"));var F=document.createElement("div");F.className="geToolbarContainer geCommentsToolbar";F.style.height=D;F.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";F.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";D=document.createElement("a");D.className="geButton";if(!u){var M=D.cloneNode();M.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';M.setAttribute("title",mxResources.get("create")+
-"...");mxEvent.addListener(M,"click",function(c){function e(){d(f,g,function(c){l(g);b.addComment(c,function(b){c.id=b;K.push(c);q(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=n(f,K,null,0);e();c.preventDefault();mxEvent.consume(c)});F.appendChild(M)}M=D.cloneNode();M.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';M.setAttribute("title",mxResources.get("showResolved"));
-var E=!1;Editor.isDarkMode()&&(M.style.filter="invert(100%)");mxEvent.addListener(M,"click",function(b){this.className=(E=!E)?"geButton geCheckedBtn":"geButton";B();b.preventDefault();mxEvent.consume(b)});F.appendChild(M);b.commentsRefreshNeeded()&&(M=D.cloneNode(),M.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',M.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(M.style.filter="invert(100%)"),mxEvent.addListener(M,"click",function(b){B();
-b.preventDefault();mxEvent.consume(b)}),F.appendChild(M));b.commentsSaveNeeded()&&(D=D.cloneNode(),D.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',D.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(D.style.filter="invert(100%)"),mxEvent.addListener(D,"click",function(b){p();b.preventDefault();mxEvent.consume(b)}),F.appendChild(D));x.appendChild(F);var K=[],B=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(C);C.style.display="block";K=b;for(b=0;b<K.length;b++)c(K[b].replies),n(K[b],K,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"))});B();this.refreshComments=B;F=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(f(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 g=c[e];d[g.getAttribute("data-commentId")]=g}for(e=0;e<K.length;e++)b(K[e])}});setInterval(F,6E4);this.refreshCommentsTime=F;this.window=
+[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 q(b){b.style.border="";b.removeChild(b.busyImg)}function n(c,e,g,k,p){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)});Y.appendChild(f);e&&(f.style.display="none")}function x(){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=Q;b(c);return{pdiv:e,replies:d}}function N(e,f,g,p,t){function u(){l(N);c.addReply(B,function(b){B.id=b;c.replies.push(B);q(N);g&&g()},function(c){v();m(N);b.handleError(c,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},p,t)}function v(){d(B,N,function(b){u()},!0)}var C=x().pdiv,B=b.newComment(e,b.getCurrentUser());B.pCommentId=c.id;null==c.replies&&(c.replies=[]);var N=n(B,c.replies,C,k+1);f?v():u()}if(p||!c.isResolved){B.style.display="none";var Q=document.createElement("div");Q.className="geCommentContainer";Q.setAttribute("data-commentId",c.id);Q.style.marginLeft=20*k+5+"px";c.isResolved&&!Editor.isDarkMode()&&(Q.style.backgroundColor="ghostWhite");
+var E=document.createElement("div");E.className="geCommentHeader";var G=document.createElement("img");G.className="geCommentUserImg";G.src=c.user.pictureUrl||Editor.userImage;E.appendChild(G);G=document.createElement("div");G.className="geCommentHeaderTxt";E.appendChild(G);var L=document.createElement("div");L.className="geCommentUsername";mxUtils.write(L,c.user.displayName||"");G.appendChild(L);L=document.createElement("div");L.className="geCommentDate";L.setAttribute("data-commentId",c.id);f(c,
+L);G.appendChild(L);Q.appendChild(E);E=document.createElement("div");E.className="geCommentTxt";mxUtils.write(E,c.content||"");Q.appendChild(E);c.isLocked&&(Q.style.opacity="0.5");E=document.createElement("div");E.className="geCommentActions";var Y=document.createElement("ul");Y.className="geCommentActionsList";E.appendChild(Y);v||c.isLocked||0!=k&&!u||C(mxResources.get("reply"),function(){N("",!0)},c.isResolved);G=b.getCurrentUser();null==G||G.id!=c.user.id||v||c.isLocked||(C(mxResources.get("edit"),
+function(){function e(){d(c,Q,function(){l(Q);c.editComment(c.content,function(){q(Q)},function(c){m(Q);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(Q);c.deleteComment(function(b){if(!0===b){b=Q.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var d=Q.querySelectorAll(".geCommentAction");for(b=
+0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);q(Q);Q.style.opacity="0.5"}else{d=x(c).replies;for(b=0;b<d.length;b++)I.removeChild(d[b]);for(b=0;b<e.length;b++)if(e[b]==c){e.splice(b,1);break}B.style.display=0==I.getElementsByTagName("div").length?"block":"none"}},function(c){m(Q);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));v||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=x(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?N(mxResources.get("reOpened")+": ",!0,
+d,!1,!0):N(mxResources.get("markedAsResolved"),!1,d,!0)});Q.appendChild(E);null!=g?I.insertBefore(Q,g.nextSibling):I.appendChild(Q);for(g=0;null!=c.replies&&g<c.replies.length;g++)E=c.replies[g],E.isResolved=c.isResolved,n(E,c.replies,null,k+1,p);null!=y&&(y.comment.id==c.id?(p=c.content,c.content=y.comment.content,d(c,Q,y.saveCallback,y.deleteOnCancel),c.content=p):null==y.comment.id&&y.comment.pCommentId==c.id&&(I.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel)));return Q}}
+var v=!b.canComment(),u=b.canReplyToReplies(),y=null,x=document.createElement("div");x.className="geCommentsWin";x.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var D=EditorUi.compactUi?"26px":"30px",I=document.createElement("div");I.className="geCommentsList";I.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";I.style.bottom=parseInt(D)+7+"px";x.appendChild(I);var B=document.createElement("span");B.style.cssText="display:none;padding-top:10px;text-align:center;";
+mxUtils.write(B,mxResources.get("noCommentsFound"));var G=document.createElement("div");G.className="geToolbarContainer geCommentsToolbar";G.style.height=D;G.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";G.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";D=document.createElement("a");D.className="geButton";if(!v){var M=D.cloneNode();M.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';M.setAttribute("title",mxResources.get("create")+
+"...");mxEvent.addListener(M,"click",function(c){function e(){d(f,g,function(c){l(g);b.addComment(c,function(b){c.id=b;K.push(c);q(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=n(f,K,null,0);e();c.preventDefault();mxEvent.consume(c)});G.appendChild(M)}M=D.cloneNode();M.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';M.setAttribute("title",mxResources.get("showResolved"));
+var F=!1;Editor.isDarkMode()&&(M.style.filter="invert(100%)");mxEvent.addListener(M,"click",function(b){this.className=(F=!F)?"geButton geCheckedBtn":"geButton";C();b.preventDefault();mxEvent.consume(b)});G.appendChild(M);b.commentsRefreshNeeded()&&(M=D.cloneNode(),M.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',M.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(M.style.filter="invert(100%)"),mxEvent.addListener(M,"click",function(b){C();
+b.preventDefault();mxEvent.consume(b)}),G.appendChild(M));b.commentsSaveNeeded()&&(D=D.cloneNode(),D.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',D.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(D.style.filter="invert(100%)"),mxEvent.addListener(D,"click",function(b){p();b.preventDefault();mxEvent.consume(b)}),G.appendChild(D));x.appendChild(G);var K=[],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)}I.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";u=b.canReplyToReplies();b.commentsSupported()?b.getComments(function(b){function c(b){if(null!=b){b.sort(function(b,c){return new Date(b.modifiedDate)-
+new Date(c.modifiedDate)});for(var d=0;d<b.length;d++)c(b[d].replies)}}b.sort(function(b,c){return new Date(b.modifiedDate)-new Date(c.modifiedDate)});I.innerHTML="";I.appendChild(B);B.style.display="block";K=b;for(b=0;b<K.length;b++)c(K[b].replies),n(K[b],K,null,0,F);null!=y&&null==y.comment.id&&null==y.comment.pCommentId&&(I.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel))},mxUtils.bind(this,function(b){I.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(b&&b.message?
+": "+b.message:""));this.hasError=!0})):I.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});C();this.refreshComments=C;G=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(f(c,e),e=0;null!=c.replies&&e<c.replies.length;e++)b(c.replies[e])}if(this.window.isVisible()){for(var c=I.querySelectorAll(".geCommentDate"),d={},e=0;e<c.length;e++){var g=c[e];d[g.getAttribute("data-commentId")]=g}for(e=0;e<K.length;e++)b(K[e])}});setInterval(G,6E4);this.refreshCommentsTime=G;this.window=
new mxWindow(mxResources.get("comments"),x,c,e,k,g,!0,!0);this.window.minimumSize=new mxRectangle(0,0,300,200);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.window.setLocation=function(b,c){var d=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||
document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));c=Math.max(0,Math.min(c,d-this.table.clientHeight-48));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};var L=mxUtils.bind(this,function(){var b=this.window.getX(),c=this.window.getY();this.window.setLocation(b,c)});mxEvent.addListener(window,"resize",L);this.destroy=function(){mxEvent.removeListener(window,"resize",L);this.window.destroy()}},ConfirmDialog=function(b,c,e,
k,g,p,t,d,f,l,m){var q=document.createElement("div");q.style.textAlign="center";m=null!=m?m:44;var n=document.createElement("div");n.style.padding="6px";n.style.overflow="auto";n.style.maxHeight=m+"px";n.style.lineHeight="1.2em";mxUtils.write(n,c);q.appendChild(n);null!=l&&(n=document.createElement("div"),n.style.padding="6px 0 6px 0",c=document.createElement("img"),c.setAttribute("src",l),n.appendChild(c),q.appendChild(n));l=document.createElement("div");l.style.textAlign="center";l.style.whiteSpace=
-"nowrap";var u=document.createElement("input");u.setAttribute("type","checkbox");p=mxUtils.button(p||mxResources.get("cancel"),function(){b.hideDialog();null!=k&&k(u.checked)});p.className="geBtn";null!=d&&(p.innerHTML=d+"<br>"+p.innerHTML,p.style.paddingBottom="8px",p.style.paddingTop="8px",p.style.height="auto",p.style.width="40%");b.editor.cancelFirst&&l.appendChild(p);var v=mxUtils.button(g||mxResources.get("ok"),function(){b.hideDialog();null!=e&&e(u.checked)});l.appendChild(v);null!=t?(v.innerHTML=
-t+"<br>"+v.innerHTML+"<br>",v.style.paddingBottom="8px",v.style.paddingTop="8px",v.style.height="auto",v.className="geBtn",v.style.width="40%"):v.className="geBtn gePrimaryBtn";b.editor.cancelFirst||l.appendChild(p);q.appendChild(l);f?(l.style.marginTop="10px",n=document.createElement("p"),n.style.marginTop="20px",n.style.marginBottom="0px",n.appendChild(u),g=document.createElement("span"),mxUtils.write(g," "+mxResources.get("rememberThisSetting")),n.appendChild(g),q.appendChild(n),mxEvent.addListener(g,
-"click",function(b){u.checked=!u.checked;mxEvent.consume(b)})):l.style.marginTop="12px";this.init=function(){v.focus()};this.container=q};function DiagramPage(b,c){this.node=b;null!=c?this.node.setAttribute("id",c):null==this.getId()&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
+"nowrap";var v=document.createElement("input");v.setAttribute("type","checkbox");p=mxUtils.button(p||mxResources.get("cancel"),function(){b.hideDialog();null!=k&&k(v.checked)});p.className="geBtn";null!=d&&(p.innerHTML=d+"<br>"+p.innerHTML,p.style.paddingBottom="8px",p.style.paddingTop="8px",p.style.height="auto",p.style.width="40%");b.editor.cancelFirst&&l.appendChild(p);var u=mxUtils.button(g||mxResources.get("ok"),function(){b.hideDialog();null!=e&&e(v.checked)});l.appendChild(u);null!=t?(u.innerHTML=
+t+"<br>"+u.innerHTML+"<br>",u.style.paddingBottom="8px",u.style.paddingTop="8px",u.style.height="auto",u.className="geBtn",u.style.width="40%"):u.className="geBtn gePrimaryBtn";b.editor.cancelFirst||l.appendChild(p);q.appendChild(l);f?(l.style.marginTop="10px",n=document.createElement("p"),n.style.marginTop="20px",n.style.marginBottom="0px",n.appendChild(v),g=document.createElement("span"),mxUtils.write(g," "+mxResources.get("rememberThisSetting")),n.appendChild(g),q.appendChild(n),mxEvent.addListener(g,
+"click",function(b){v.checked=!v.checked;mxEvent.consume(b)})):l.style.marginTop="12px";this.init=function(){u.focus()};this.container=q};function DiagramPage(b,c){this.node=b;null!=c?this.node.setAttribute("id",c):null==this.getId()&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
DiagramPage.prototype.setName=function(b){null==b?this.node.removeAttribute("name"):this.node.setAttribute("name",b)};function RenamePage(b,c,e){this.ui=b;this.page=c;this.previous=this.name=e}RenamePage.prototype.execute=function(){var b=this.page.getName();this.page.setName(this.previous);this.name=this.previous;this.previous=b;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))};
function MovePage(b,c,e){this.ui=b;this.oldIndex=c;this.newIndex=e}MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var b=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=b;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))};
function SelectPage(b,c,e){this.ui=b;this.previousPage=this.page=c;this.neverShown=!0;null!=c&&(this.neverShown=null==c.viewState,this.ui.updatePageRoot(c),null!=e&&(c.viewState=e,this.neverShown=!1))}
@@ -3849,41 +3849,41 @@ b)?e:void 0})),null!=k.relatedPage.root&&b.encodeCell(k.relatedPage.root,g));ret
c=c.cloneNode(!0);e=c.firstChild;if(null!=e)for(g.relatedPage.root=b.decodeCell(e,!1),g=e.nextSibling,e.parentNode.removeChild(e),e=g;null!=e;){g=e.nextSibling;if(e.nodeType==mxConstants.NODETYPE_ELEMENT){var k=e.getAttribute("id");null==b.lookup(k)&&b.decodeCell(e)}e.parentNode.removeChild(e);e=g}}return c};b.afterDecode=function(b,c,g){g.index=g.previousIndex;return g};mxCodecRegistry.register(b)})();(function(){EditorUi.prototype.altShiftActions[68]="selectDescendants";var b=Graph.prototype.foldCells;Graph.prototype.foldCells=function(c,e,p,t,d){e=null!=e?e:!1;null==p&&(p=this.getFoldableCells(this.getSelectionCells(),c));this.stopEditing();this.model.beginUpdate();try{for(var f=p.slice(),g=0;g<p.length;g++)"1"==mxUtils.getValue(this.getCurrentCellStyle(p[g]),"treeFolding","0")&&this.foldTreeCell(c,p[g]);p=f;p=b.apply(this,arguments)}finally{this.model.endUpdate()}return p};Graph.prototype.foldTreeCell=
function(b,c){this.model.beginUpdate();try{var e=[];this.traverse(c,!0,mxUtils.bind(this,function(b,f){var d=null!=f&&this.isTreeEdge(f);d&&e.push(f);b==c||null!=f&&!d||e.push(b);return(null==f||d)&&(b==c||!this.model.isCollapsed(b))}));this.model.setCollapsed(c,b);for(var g=0;g<e.length;g++)this.model.setVisible(e[g],!b)}finally{this.model.endUpdate()}};Graph.prototype.isTreeEdge=function(b){return!this.isEdgeIgnored(b)};Graph.prototype.getTreeEdges=function(b,c,e,t,d,f){return this.model.filterCells(this.getEdges(b,
c,e,t,d,f),mxUtils.bind(this,function(b){return this.isTreeEdge(b)}))};Graph.prototype.getIncomingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!0,!1,!1)};Graph.prototype.getOutgoingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!1,!0,!1)};var c=EditorUi.prototype.init;EditorUi.prototype.init=function(){c.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(b){return y.isVertex(b)&&e(b)}function c(b){var c=
-!1;null!=b&&(c="1"==v.getCurrentCellStyle(b).treeMoving);return c}function e(b){var c=!1;null!=b&&(b=y.getParent(b),c=v.view.getState(b),c="tree"==(null!=c?c.style:v.getCellStyle(b)).containerType);return c}function t(b){var c=!1;null!=b&&(b=y.getParent(b),c=v.view.getState(b),v.view.getState(b),c=null!=(null!=c?c.style:v.getCellStyle(b)).childLayout);return c}function d(b){b=v.view.getState(b);if(null!=b){var c=v.getIncomingTreeEdges(b.cell);if(0<c.length&&(c=v.view.getState(c[0]),null!=c&&(c=c.absolutePoints,
-null!=c&&0<c.length&&(c=c[c.length-1],null!=c)))){if(c.y==b.y&&Math.abs(c.x-b.getCenterX())<b.width/2)return mxConstants.DIRECTION_SOUTH;if(c.y==b.y+b.height&&Math.abs(c.x-b.getCenterX())<b.width/2)return mxConstants.DIRECTION_NORTH;if(c.x>b.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function f(b,c){c=null!=c?c:!0;v.model.beginUpdate();try{var e=v.model.getParent(b),f=v.getIncomingTreeEdges(b),g=v.cloneCells([f[0],b]);v.model.setTerminal(g[0],v.model.getTerminal(f[0],
-!0),!0);var k=d(b),l=e.geometry;k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH?g[1].geometry.x+=c?b.geometry.width+10:-g[1].geometry.width-10:g[1].geometry.y+=c?b.geometry.height+10:-g[1].geometry.height-10;v.view.currentRoot!=e&&(g[1].geometry.x-=l.x,g[1].geometry.y-=l.y);var m=v.view.getState(b),p=v.view.scale;if(null!=m){var n=mxRectangle.fromRectangle(m);k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH?n.x+=(c?b.geometry.width+10:-g[1].geometry.width-10)*p:n.y+=(c?
-b.geometry.height+10:-g[1].geometry.height-10)*p;var q=v.getOutgoingTreeEdges(v.model.getTerminal(f[0],!0));if(null!=q){for(var t=k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH,u=l=f=0;u<q.length;u++){var B=v.model.getTerminal(q[u],!1);if(k==d(B)){var x=v.view.getState(B);B!=b&&null!=x&&(t&&c!=x.getCenterX()<m.getCenterX()||!t&&c!=x.getCenterY()<m.getCenterY())&&mxUtils.intersects(n,x)&&(f=10+Math.max(f,(Math.min(n.x+n.width,x.x+x.width)-Math.max(n.x,x.x))/p),l=10+Math.max(l,(Math.min(n.y+
-n.height,x.y+x.height)-Math.max(n.y,x.y))/p))}}t?l=0:f=0;for(u=0;u<q.length;u++)if(B=v.model.getTerminal(q[u],!1),k==d(B)&&(x=v.view.getState(B),B!=b&&null!=x&&(t&&c!=x.getCenterX()<m.getCenterX()||!t&&c!=x.getCenterY()<m.getCenterY()))){var C=[];v.traverse(x.cell,!0,function(b,c){var d=null!=c&&v.isTreeEdge(c);d&&C.push(c);(null==c||d)&&C.push(b);return null==c||d});v.moveCells(C,(c?1:-1)*f,(c?1:-1)*l)}}}return v.addCells(g,e)}finally{v.model.endUpdate()}}function l(b){v.model.beginUpdate();try{var c=
-d(b),e=v.getIncomingTreeEdges(b),f=v.cloneCells([e[0],b]);v.model.setTerminal(e[0],f[1],!1);v.model.setTerminal(f[0],f[1],!0);v.model.setTerminal(f[0],b,!1);var g=v.model.getParent(b),k=g.geometry,l=[];v.view.currentRoot!=g&&(f[1].geometry.x-=k.x,f[1].geometry.y-=k.y);v.traverse(b,!0,function(b,c){var d=null!=c&&v.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});var m=b.geometry.width+40,p=b.geometry.height+40;c==mxConstants.DIRECTION_SOUTH?m=0:c==mxConstants.DIRECTION_NORTH?
-(m=0,p=-p):c==mxConstants.DIRECTION_WEST?(m=-m,p=0):c==mxConstants.DIRECTION_EAST&&(p=0);v.moveCells(l,m,p);return v.addCells(f,g)}finally{v.model.endUpdate()}}function m(b,c){v.model.beginUpdate();try{var e=v.model.getParent(b),f=v.getIncomingTreeEdges(b),g=d(b);0==f.length&&(f=[v.createEdge(e,null,"",null,null,v.createCurrentEdgeStyle())],g=c);var k=v.cloneCells([f[0],b]);v.model.setTerminal(k[0],b,!0);if(null==v.model.getTerminal(k[0],!1)){v.model.setTerminal(k[0],k[1],!1);var l=v.getCellStyle(k[1]).newEdgeStyle;
-if(null!=l)try{var m=JSON.parse(l),p;for(p in m)v.setCellStyles(p,m[p],[k[0]]),"edgeStyle"==p&&"elbowEdgeStyle"==m[p]&&v.setCellStyles("elbow",g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[k[0]])}catch(qa){}}var f=v.getOutgoingTreeEdges(b),n=e.geometry,l=[];v.view.currentRoot==e&&(n=new mxRectangle);for(m=0;m<f.length;m++){var q=v.model.getTerminal(f[m],!1);null!=q&&l.push(q)}var t=v.view.getBounds(l),u=v.view.translate,B=v.view.scale;g==mxConstants.DIRECTION_SOUTH?
-(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/B-u.x-n.x+10,k[1].geometry.y+=k[1].geometry.height-n.y+40):g==mxConstants.DIRECTION_NORTH?(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/B-u.x+-n.x+10,k[1].geometry.y-=k[1].geometry.height+n.y+40):(k[1].geometry.x=g==mxConstants.DIRECTION_WEST?k[1].geometry.x-(k[1].geometry.width+n.x+40):k[1].geometry.x+(k[1].geometry.width-n.x+40),k[1].geometry.y=null==t?b.geometry.y+
-(b.geometry.height-k[1].geometry.height)/2:(t.y+t.height)/B-u.y+-n.y+10);return v.addCells(k,e)}finally{v.model.endUpdate()}}function q(b,c,d){b=v.getOutgoingTreeEdges(b);d=v.view.getState(d);var e=[];if(null!=d&&null!=b){for(var f=0;f<b.length;f++){var g=v.view.getState(v.model.getTerminal(b[f],!1));null!=g&&(!c&&Math.min(g.x+g.width,d.x+d.width)>=Math.max(g.x,d.x)||c&&Math.min(g.y+g.height,d.y+d.height)>=Math.max(g.y,d.y))&&e.push(g)}e.sort(function(b,d){return c?b.x+b.width-d.x-d.width:b.y+b.height-
-d.y-d.height})}return e}function n(b,c){var e=d(b),f=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST;(e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST)==f&&e!=c?u.actions.get("selectParent").funct():e==c?(f=v.getOutgoingTreeEdges(b),null!=f&&0<f.length&&v.setSelectionCell(v.model.getTerminal(f[0],!1))):(e=v.getIncomingTreeEdges(b),null!=e&&0<e.length&&(f=q(v.model.getTerminal(e[0],!0),f,b),e=v.view.getState(b),null!=e&&(e=mxUtils.indexOf(f,e),0<=e&&(e+=c==mxConstants.DIRECTION_NORTH||
-c==mxConstants.DIRECTION_WEST?-1:1,0<=e&&e<=f.length-1&&v.setSelectionCell(f[e].cell)))))}var u=this,v=u.editor.graph,y=v.getModel(),x=u.menus.createPopupMenu;u.menus.createPopupMenu=function(c,d,e){x.apply(this,arguments);if(1==v.getSelectionCount()){d=v.getSelectionCell();var f=v.getOutgoingTreeEdges(d);c.addSeparator();0<f.length&&(b(v.getSelectionCell())&&this.addMenuItems(c,["selectChildren"],null,e),this.addMenuItems(c,["selectDescendants"],null,e));b(v.getSelectionCell())?(c.addSeparator(),
-0<v.getIncomingTreeEdges(d).length&&this.addMenuItems(c,["selectSiblings","selectParent"],null,e)):0<v.model.getEdgeCount(d)&&this.addMenuItems(c,["selectConnections"],null,e)}};u.actions.addAction("selectChildren",function(){if(v.isEnabled()&&1==v.getSelectionCount()){var b=v.getSelectionCell(),b=v.getOutgoingTreeEdges(b);if(null!=b){for(var c=[],d=0;d<b.length;d++)c.push(v.model.getTerminal(b[d],!1));v.setSelectionCells(c)}}},null,null,"Alt+Shift+X");u.actions.addAction("selectSiblings",function(){if(v.isEnabled()&&
-1==v.getSelectionCount()){var b=v.getSelectionCell(),b=v.getIncomingTreeEdges(b);if(null!=b&&0<b.length&&(b=v.getOutgoingTreeEdges(v.model.getTerminal(b[0],!0)),null!=b)){for(var c=[],d=0;d<b.length;d++)c.push(v.model.getTerminal(b[d],!1));v.setSelectionCells(c)}}},null,null,"Alt+Shift+S");u.actions.addAction("selectParent",function(){if(v.isEnabled()&&1==v.getSelectionCount()){var b=v.getSelectionCell(),b=v.getIncomingTreeEdges(b);null!=b&&0<b.length&&v.setSelectionCell(v.model.getTerminal(b[0],
-!0))}},null,null,"Alt+Shift+P");u.actions.addAction("selectDescendants",function(b,c){var d=v.getSelectionCell();if(v.isEnabled()&&v.model.isVertex(d)){if(null!=c&&mxEvent.isAltDown(c))v.setSelectionCells(v.model.getTreeEdges(d,null==c||!mxEvent.isShiftDown(c),null==c||!mxEvent.isControlDown(c)));else{var e=[];v.traverse(d,!0,function(b,d){var f=null!=d&&v.isTreeEdge(d);f&&e.push(d);null!=d&&!f||null!=c&&mxEvent.isShiftDown(c)||e.push(b);return null==d||f})}v.setSelectionCells(e)}},null,null,"Alt+Shift+D");
-var D=v.removeCells;v.removeCells=function(c,d){d=null!=d?d:!0;null==c&&(c=this.getDeletableCells(this.getSelectionCells()));d&&(c=this.getDeletableCells(this.addAllEdges(c)));for(var f=[],g=0;g<c.length;g++){var k=c[g];y.isEdge(k)&&e(k)&&(f.push(k),k=y.getTerminal(k,!1));if(b(k)){var l=[];v.traverse(k,!0,function(b,c){var d=null!=c&&v.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});0<l.length&&(f=f.concat(l),k=v.getIncomingTreeEdges(c[g]),c=c.concat(k))}else null!=k&&f.push(c[g])}c=
-f;return D.apply(this,arguments)};u.hoverIcons.getStateAt=function(c,d,e){return b(c.cell)?null:this.graph.view.getState(this.graph.getCellAt(d,e))};var H=v.duplicateCells;v.duplicateCells=function(c,d){c=null!=c?c:this.getSelectionCells();for(var e=c.slice(0),f=0;f<e.length;f++){var g=v.view.getState(e[f]);if(null!=g&&b(g.cell))for(var k=v.getIncomingTreeEdges(g.cell),g=0;g<k.length;g++)mxUtils.remove(k[g],c)}this.model.beginUpdate();try{var l=H.call(this,c,d);if(l.length==c.length)for(f=0;f<c.length;f++)if(b(c[f])){var m=
-v.getIncomingTreeEdges(l[f]),k=v.getIncomingTreeEdges(c[f]);if(0==m.length&&0<k.length){var p=this.cloneCell(k[0]);this.addEdge(p,v.getDefaultParent(),this.model.getTerminal(k[0],!0),l[f])}}}finally{this.model.endUpdate()}return l};var C=v.moveCells;v.moveCells=function(c,d,e,f,g,k,l){var m=null;this.model.beginUpdate();try{var p=g,n=this.getCurrentCellStyle(g);if(null!=c&&b(g)&&"1"==mxUtils.getValue(n,"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!=p&&g!=p&&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 B=v.view.getState(p);null!=B&&(d=(B.getCenterX()-u.getCenterX())/v.view.scale,e=(B.getCenterY()-u.getCenterY())/v.view.scale)}}}}m=C.apply(this,arguments);if(null!=m&&null!=c&&m.length==c.length)for(q=0;q<m.length;q++)if(this.model.isEdge(m[q]))b(p)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[q],
-!0))&&this.model.setTerminal(m[q],p,!0);else if(b(c[q])&&(t=v.getIncomingTreeEdges(c[q]),0<t.length))if(!f)b(p)&&0>mxUtils.indexOf(c,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],p,!0);else if(0==v.getIncomingTreeEdges(m[q]).length){n=p;if(null==n||n==v.model.getParent(c[q]))n=v.model.getTerminal(t[0],!0);f=this.cloneCell(t[0]);this.addEdge(f,v.getDefaultParent(),n,m[q])}}finally{this.model.endUpdate()}return m};if(null!=u.sidebar){var F=u.sidebar.dropAndConnect;u.sidebar.dropAndConnect=
-function(c,d,e,f){var g=v.model,k=null;g.beginUpdate();try{if(k=F.apply(this,arguments),b(c))for(var l=0;l<k.length;l++)if(g.isEdge(k[l])&&null==g.getTerminal(k[l],!0)){g.setTerminal(k[l],c,!0);var m=v.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var M={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=f(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=M[c.keyCode];null!=e&&(e.funct(c),mxEvent.consume(c))}else 37==c.keyCode?(n(v.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(c)):38==c.keyCode?(n(v.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(c)):39==c.keyCode?(n(v.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(c)):40==c.keyCode&&(n(v.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
-mxEvent.consume(c))}}catch(G){u.handleError(G)}mxEvent.isConsumed(c)||E.apply(this,arguments)};var K=v.connectVertex;v.connectVertex=function(c,e,g,k,p,n,q){var t=v.getIncomingTreeEdges(c);if(b(c)){var u=d(c),B=u==mxConstants.DIRECTION_EAST||u==mxConstants.DIRECTION_WEST,x=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return u==e||0==t.length?m(c,e):B==x?l(c):f(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return K.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 B=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){B.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",
+!1;null!=b&&(c="1"==u.getCurrentCellStyle(b).treeMoving);return c}function e(b){var c=!1;null!=b&&(b=y.getParent(b),c=u.view.getState(b),c="tree"==(null!=c?c.style:u.getCellStyle(b)).containerType);return c}function t(b){var c=!1;null!=b&&(b=y.getParent(b),c=u.view.getState(b),u.view.getState(b),c=null!=(null!=c?c.style:u.getCellStyle(b)).childLayout);return c}function d(b){b=u.view.getState(b);if(null!=b){var c=u.getIncomingTreeEdges(b.cell);if(0<c.length&&(c=u.view.getState(c[0]),null!=c&&(c=c.absolutePoints,
+null!=c&&0<c.length&&(c=c[c.length-1],null!=c)))){if(c.y==b.y&&Math.abs(c.x-b.getCenterX())<b.width/2)return mxConstants.DIRECTION_SOUTH;if(c.y==b.y+b.height&&Math.abs(c.x-b.getCenterX())<b.width/2)return mxConstants.DIRECTION_NORTH;if(c.x>b.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function f(b,c){c=null!=c?c:!0;u.model.beginUpdate();try{var e=u.model.getParent(b),f=u.getIncomingTreeEdges(b),g=u.cloneCells([f[0],b]);u.model.setTerminal(g[0],u.model.getTerminal(f[0],
+!0),!0);var k=d(b),l=e.geometry;k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH?g[1].geometry.x+=c?b.geometry.width+10:-g[1].geometry.width-10:g[1].geometry.y+=c?b.geometry.height+10:-g[1].geometry.height-10;u.view.currentRoot!=e&&(g[1].geometry.x-=l.x,g[1].geometry.y-=l.y);var m=u.view.getState(b),p=u.view.scale;if(null!=m){var n=mxRectangle.fromRectangle(m);k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH?n.x+=(c?b.geometry.width+10:-g[1].geometry.width-10)*p:n.y+=(c?
+b.geometry.height+10:-g[1].geometry.height-10)*p;var q=u.getOutgoingTreeEdges(u.model.getTerminal(f[0],!0));if(null!=q){for(var t=k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH,v=l=f=0;v<q.length;v++){var C=u.model.getTerminal(q[v],!1);if(k==d(C)){var x=u.view.getState(C);C!=b&&null!=x&&(t&&c!=x.getCenterX()<m.getCenterX()||!t&&c!=x.getCenterY()<m.getCenterY())&&mxUtils.intersects(n,x)&&(f=10+Math.max(f,(Math.min(n.x+n.width,x.x+x.width)-Math.max(n.x,x.x))/p),l=10+Math.max(l,(Math.min(n.y+
+n.height,x.y+x.height)-Math.max(n.y,x.y))/p))}}t?l=0:f=0;for(v=0;v<q.length;v++)if(C=u.model.getTerminal(q[v],!1),k==d(C)&&(x=u.view.getState(C),C!=b&&null!=x&&(t&&c!=x.getCenterX()<m.getCenterX()||!t&&c!=x.getCenterY()<m.getCenterY()))){var B=[];u.traverse(x.cell,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&B.push(c);(null==c||d)&&B.push(b);return null==c||d});u.moveCells(B,(c?1:-1)*f,(c?1:-1)*l)}}}return u.addCells(g,e)}finally{u.model.endUpdate()}}function l(b){u.model.beginUpdate();try{var c=
+d(b),e=u.getIncomingTreeEdges(b),f=u.cloneCells([e[0],b]);u.model.setTerminal(e[0],f[1],!1);u.model.setTerminal(f[0],f[1],!0);u.model.setTerminal(f[0],b,!1);var g=u.model.getParent(b),k=g.geometry,l=[];u.view.currentRoot!=g&&(f[1].geometry.x-=k.x,f[1].geometry.y-=k.y);u.traverse(b,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});var m=b.geometry.width+40,p=b.geometry.height+40;c==mxConstants.DIRECTION_SOUTH?m=0:c==mxConstants.DIRECTION_NORTH?
+(m=0,p=-p):c==mxConstants.DIRECTION_WEST?(m=-m,p=0):c==mxConstants.DIRECTION_EAST&&(p=0);u.moveCells(l,m,p);return u.addCells(f,g)}finally{u.model.endUpdate()}}function m(b,c){u.model.beginUpdate();try{var e=u.model.getParent(b),f=u.getIncomingTreeEdges(b),g=d(b);0==f.length&&(f=[u.createEdge(e,null,"",null,null,u.createCurrentEdgeStyle())],g=c);var k=u.cloneCells([f[0],b]);u.model.setTerminal(k[0],b,!0);if(null==u.model.getTerminal(k[0],!1)){u.model.setTerminal(k[0],k[1],!1);var l=u.getCellStyle(k[1]).newEdgeStyle;
+if(null!=l)try{var m=JSON.parse(l),p;for(p in m)u.setCellStyles(p,m[p],[k[0]]),"edgeStyle"==p&&"elbowEdgeStyle"==m[p]&&u.setCellStyles("elbow",g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[k[0]])}catch(oa){}}var f=u.getOutgoingTreeEdges(b),n=e.geometry,l=[];u.view.currentRoot==e&&(n=new mxRectangle);for(m=0;m<f.length;m++){var q=u.model.getTerminal(f[m],!1);null!=q&&l.push(q)}var t=u.view.getBounds(l),v=u.view.translate,C=u.view.scale;g==mxConstants.DIRECTION_SOUTH?
+(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/C-v.x-n.x+10,k[1].geometry.y+=k[1].geometry.height-n.y+40):g==mxConstants.DIRECTION_NORTH?(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/C-v.x+-n.x+10,k[1].geometry.y-=k[1].geometry.height+n.y+40):(k[1].geometry.x=g==mxConstants.DIRECTION_WEST?k[1].geometry.x-(k[1].geometry.width+n.x+40):k[1].geometry.x+(k[1].geometry.width-n.x+40),k[1].geometry.y=null==t?b.geometry.y+
+(b.geometry.height-k[1].geometry.height)/2:(t.y+t.height)/C-v.y+-n.y+10);return u.addCells(k,e)}finally{u.model.endUpdate()}}function q(b,c,d){b=u.getOutgoingTreeEdges(b);d=u.view.getState(d);var e=[];if(null!=d&&null!=b){for(var f=0;f<b.length;f++){var g=u.view.getState(u.model.getTerminal(b[f],!1));null!=g&&(!c&&Math.min(g.x+g.width,d.x+d.width)>=Math.max(g.x,d.x)||c&&Math.min(g.y+g.height,d.y+d.height)>=Math.max(g.y,d.y))&&e.push(g)}e.sort(function(b,d){return c?b.x+b.width-d.x-d.width:b.y+b.height-
+d.y-d.height})}return e}function n(b,c){var e=d(b),f=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST;(e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST)==f&&e!=c?v.actions.get("selectParent").funct():e==c?(f=u.getOutgoingTreeEdges(b),null!=f&&0<f.length&&u.setSelectionCell(u.model.getTerminal(f[0],!1))):(e=u.getIncomingTreeEdges(b),null!=e&&0<e.length&&(f=q(u.model.getTerminal(e[0],!0),f,b),e=u.view.getState(b),null!=e&&(e=mxUtils.indexOf(f,e),0<=e&&(e+=c==mxConstants.DIRECTION_NORTH||
+c==mxConstants.DIRECTION_WEST?-1:1,0<=e&&e<=f.length-1&&u.setSelectionCell(f[e].cell)))))}var v=this,u=v.editor.graph,y=u.getModel(),x=v.menus.createPopupMenu;v.menus.createPopupMenu=function(c,d,e){x.apply(this,arguments);if(1==u.getSelectionCount()){d=u.getSelectionCell();var f=u.getOutgoingTreeEdges(d);c.addSeparator();0<f.length&&(b(u.getSelectionCell())&&this.addMenuItems(c,["selectChildren"],null,e),this.addMenuItems(c,["selectDescendants"],null,e));b(u.getSelectionCell())?(c.addSeparator(),
+0<u.getIncomingTreeEdges(d).length&&this.addMenuItems(c,["selectSiblings","selectParent"],null,e)):0<u.model.getEdgeCount(d)&&this.addMenuItems(c,["selectConnections"],null,e)}};v.actions.addAction("selectChildren",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var b=u.getSelectionCell(),b=u.getOutgoingTreeEdges(b);if(null!=b){for(var c=[],d=0;d<b.length;d++)c.push(u.model.getTerminal(b[d],!1));u.setSelectionCells(c)}}},null,null,"Alt+Shift+X");v.actions.addAction("selectSiblings",function(){if(u.isEnabled()&&
+1==u.getSelectionCount()){var b=u.getSelectionCell(),b=u.getIncomingTreeEdges(b);if(null!=b&&0<b.length&&(b=u.getOutgoingTreeEdges(u.model.getTerminal(b[0],!0)),null!=b)){for(var c=[],d=0;d<b.length;d++)c.push(u.model.getTerminal(b[d],!1));u.setSelectionCells(c)}}},null,null,"Alt+Shift+S");v.actions.addAction("selectParent",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var b=u.getSelectionCell(),b=u.getIncomingTreeEdges(b);null!=b&&0<b.length&&u.setSelectionCell(u.model.getTerminal(b[0],
+!0))}},null,null,"Alt+Shift+P");v.actions.addAction("selectDescendants",function(b,c){var d=u.getSelectionCell();if(u.isEnabled()&&u.model.isVertex(d)){if(null!=c&&mxEvent.isAltDown(c))u.setSelectionCells(u.model.getTreeEdges(d,null==c||!mxEvent.isShiftDown(c),null==c||!mxEvent.isControlDown(c)));else{var e=[];u.traverse(d,!0,function(b,d){var f=null!=d&&u.isTreeEdge(d);f&&e.push(d);null!=d&&!f||null!=c&&mxEvent.isShiftDown(c)||e.push(b);return null==d||f})}u.setSelectionCells(e)}},null,null,"Alt+Shift+D");
+var D=u.removeCells;u.removeCells=function(c,d){d=null!=d?d:!0;null==c&&(c=this.getDeletableCells(this.getSelectionCells()));d&&(c=this.getDeletableCells(this.addAllEdges(c)));for(var f=[],g=0;g<c.length;g++){var k=c[g];y.isEdge(k)&&e(k)&&(f.push(k),k=y.getTerminal(k,!1));if(b(k)){var l=[];u.traverse(k,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});0<l.length&&(f=f.concat(l),k=u.getIncomingTreeEdges(c[g]),c=c.concat(k))}else null!=k&&f.push(c[g])}c=
+f;return D.apply(this,arguments)};v.hoverIcons.getStateAt=function(c,d,e){return b(c.cell)?null:this.graph.view.getState(this.graph.getCellAt(d,e))};var I=u.duplicateCells;u.duplicateCells=function(c,d){c=null!=c?c:this.getSelectionCells();for(var e=c.slice(0),f=0;f<e.length;f++){var g=u.view.getState(e[f]);if(null!=g&&b(g.cell))for(var k=u.getIncomingTreeEdges(g.cell),g=0;g<k.length;g++)mxUtils.remove(k[g],c)}this.model.beginUpdate();try{var l=I.call(this,c,d);if(l.length==c.length)for(f=0;f<c.length;f++)if(b(c[f])){var m=
+u.getIncomingTreeEdges(l[f]),k=u.getIncomingTreeEdges(c[f]);if(0==m.length&&0<k.length){var p=this.cloneCell(k[0]);this.addEdge(p,u.getDefaultParent(),this.model.getTerminal(k[0],!0),l[f])}}}finally{this.model.endUpdate()}return l};var B=u.moveCells;u.moveCells=function(c,d,e,f,g,k,l){var m=null;this.model.beginUpdate();try{var p=g,n=this.getCurrentCellStyle(g);if(null!=c&&b(g)&&"1"==mxUtils.getValue(n,"treeFolding","0")){for(var q=0;q<c.length;q++)if(b(c[q])||u.model.isEdge(c[q])&&null==u.model.getTerminal(c[q],
+!0)){g=u.model.getParent(c[q]);break}if(null!=p&&g!=p&&null!=this.view.getState(c[0])){var t=u.getIncomingTreeEdges(c[0]);if(0<t.length){var v=u.view.getState(u.model.getTerminal(t[0],!0));if(null!=v){var C=u.view.getState(p);null!=C&&(d=(C.getCenterX()-v.getCenterX())/u.view.scale,e=(C.getCenterY()-v.getCenterY())/u.view.scale)}}}}m=B.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(p)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[q],
+!0))&&this.model.setTerminal(m[q],p,!0);else if(b(c[q])&&(t=u.getIncomingTreeEdges(c[q]),0<t.length))if(!f)b(p)&&0>mxUtils.indexOf(c,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],p,!0);else if(0==u.getIncomingTreeEdges(m[q]).length){n=p;if(null==n||n==u.model.getParent(c[q]))n=u.model.getTerminal(t[0],!0);f=this.cloneCell(t[0]);this.addEdge(f,u.getDefaultParent(),n,m[q])}}finally{this.model.endUpdate()}return m};if(null!=v.sidebar){var G=v.sidebar.dropAndConnect;v.sidebar.dropAndConnect=
+function(c,d,e,f){var g=u.model,k=null;g.beginUpdate();try{if(k=G.apply(this,arguments),b(c))for(var l=0;l<k.length;l++)if(g.isEdge(k[l])&&null==g.getTerminal(k[l],!0)){g.setTerminal(k[l],c,!0);var m=u.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var M={88:v.actions.get("selectChildren"),84:v.actions.get("selectSubtree"),80:v.actions.get("selectParent"),83:v.actions.get("selectSiblings")},F=v.onKeyDown;v.onKeyDown=function(c){try{if(u.isEnabled()&&
+!u.isEditing()&&b(u.getSelectionCell())&&1==u.getSelectionCount()){var d=null;0<u.getIncomingTreeEdges(u.getSelectionCell()).length&&(9==c.which?d=mxEvent.isShiftDown(c)?l(u.getSelectionCell()):m(u.getSelectionCell()):13==c.which&&(d=f(u.getSelectionCell(),!mxEvent.isShiftDown(c))));if(null!=d&&0<d.length)1==d.length&&u.model.isEdge(d[0])?u.setSelectionCell(u.model.getTerminal(d[0],!1)):u.setSelectionCell(d[d.length-1]),null!=v.hoverIcons&&v.hoverIcons.update(u.view.getState(u.getSelectionCell())),
+u.startEditingAtCell(u.getSelectionCell()),mxEvent.consume(c);else if(mxEvent.isAltDown(c)&&mxEvent.isShiftDown(c)){var e=M[c.keyCode];null!=e&&(e.funct(c),mxEvent.consume(c))}else 37==c.keyCode?(n(u.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(c)):38==c.keyCode?(n(u.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(c)):39==c.keyCode?(n(u.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(c)):40==c.keyCode&&(n(u.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
+mxEvent.consume(c))}}catch(H){v.handleError(H)}mxEvent.isConsumed(c)||F.apply(this,arguments)};var K=u.connectVertex;u.connectVertex=function(c,e,g,k,p,n,q){var t=u.getIncomingTreeEdges(c);if(b(c)){var v=d(c),C=v==mxConstants.DIRECTION_EAST||v==mxConstants.DIRECTION_WEST,x=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return v==e||0==t.length?m(c,e):C==x?l(c):f(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return K.apply(this,arguments)};u.getSubtree=function(d){var e=
+[d];!c(d)&&!b(d)||t(d)||u.traverse(d,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&0>mxUtils.indexOf(e,c)&&e.push(c);(null==c||d)&&0>mxUtils.indexOf(e,b)&&e.push(b);return null==c||d});return e};var 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 L=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){L.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var O=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){O.apply(this,
-arguments);null!=this.moveHandle&&(this.moveHandle.style.display=b?"":"none")};var ca=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(b,c){ca.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;v.hoverIcons.reset();mxEvent.consume(b)})))};var L=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){L.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var O=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){O.apply(this,
+arguments);null!=this.moveHandle&&(this.moveHandle.style.display=b?"":"none")};var da=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(b,c){da.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};');
d.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");e.geometry.relative=!0;e.edge=!0;c.insertEdge(e,!0);d.insertEdge(e,!1);var g=new mxCell("Branch",new mxGeometry(320,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
g.vertex=!0;var k=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");k.geometry.relative=!0;k.edge=!0;c.insertEdge(k,!0);g.insertEdge(k,!1);var q=new mxCell("Topic",new mxGeometry(20,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};');
-q.vertex=!0;var n=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");n.geometry.relative=!0;n.edge=!0;c.insertEdge(n,!0);q.insertEdge(n,!1);var u=new mxCell("Branch",new mxGeometry(20,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
-u.vertex=!0;var v=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");v.geometry.relative=!0;v.edge=!0;c.insertEdge(v,!0);u.insertEdge(v,!1);b.insert(e);b.insert(k);b.insert(n);b.insert(v);b.insert(c);b.insert(d);b.insert(g);b.insert(q);b.insert(u);return sb.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree mindmap mindmaps central idea",function(){var b=new mxCell("Central Idea",
+q.vertex=!0;var n=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");n.geometry.relative=!0;n.edge=!0;c.insertEdge(n,!0);q.insertEdge(n,!1);var v=new mxCell("Branch",new mxGeometry(20,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
+v.vertex=!0;var u=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");u.geometry.relative=!0;u.edge=!0;c.insertEdge(u,!0);v.insertEdge(u,!1);b.insert(e);b.insert(k);b.insert(n);b.insert(u);b.insert(c);b.insert(d);b.insert(g);b.insert(q);b.insert(v);return sb.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree mindmap mindmaps central idea",function(){var b=new mxCell("Central Idea",
new mxGeometry(0,0,100,40),'ellipse;whiteSpace=wrap;html=1;align=center;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};treeFolding=1;treeMoving=1;');b.vertex=!0;return sb.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree mindmap mindmaps branch",function(){var b=new mxCell("Branch",new mxGeometry(0,0,80,20),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;recursiveResize=0;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
b.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");c.geometry.setTerminalPoint(new mxPoint(-40,40),!0);c.geometry.relative=!0;c.edge=!0;b.insertEdge(c,!1);return sb.createVertexTemplateFromCells([b,c],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree mindmap mindmaps sub topic",function(){var b=new mxCell("Sub Topic",new mxGeometry(0,0,72,26),'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};');
b.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");c.geometry.setTerminalPoint(new mxPoint(-40,40),!0);c.geometry.relative=!0;c.edge=!0;b.insertEdge(c,!1);return sb.createVertexTemplateFromCells([b,c],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree orgchart organization division",function(){var b=new mxCell("Orgchart",new mxGeometry(0,0,280,220),'swimlane;startSize=20;horizontal=1;containerType=tree;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
@@ -3900,18 +3900,18 @@ e.className="geTitle";e.innerHTML='<span style="font-size:18px;margin-right:5px;
e.className="geTitle";var g=document.createElement("span");g.style.cssText="position:relative;top:6px;";mxUtils.write(g,mxResources.get("newLibrary"));e.appendChild(g);c.appendChild(e);mxEvent.addListener(e,"click",b.actions.get("newLibrary").funct);e=document.createElement("div");e.style.cssText="position:absolute;left:50%;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;border-left: 1px solid lightgray;";e.className="geTitle";g=document.createElement("span");
g.style.cssText="position:relative;top:6px;";mxUtils.write(g,mxResources.get("openLibrary"));e.appendChild(g);c.appendChild(e);mxEvent.addListener(e,"click",b.actions.get("openLibrary").funct)}else 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.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());b.sidebarWindow.window.isVisible()&&b.sidebarWindow.window.fit()}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(C){}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=
+"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(B){}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));c=Math.max(0,Math.min(c,d-this.table.clientHeight-("1"==urlParams.sketch?
3:48)));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",
-"text/css");EditorUi.prototype.doSetDarkMode=function(b){if(Editor.darkMode!=b){var c=this.editor.graph;Editor.darkMode=b;this.spinner.opts.color=Editor.isDarkMode()?"#c0c0c0":"#000";this.setGridColor(Editor.isDarkMode()?c.view.defaultDarkGridColor:c.view.defaultGridColor);c.defaultPageBorderColor=Editor.isDarkMode()?"#505759":"#ffffff";c.defaultForegroundColor=Editor.isDarkMode()?"#f0f0f0":"#000000";c.defaultThemeName=Editor.isDarkMode()?"darkTheme":"default-style2";c.graphHandler.previewColor=Editor.isDarkMode()?
-"#cccccc":"black";c.defaultPageBackgroundColor=Editor.isDarkMode()?Editor.darkColor:"#ffffff";Graph.prototype.defaultPageBackgroundColor=c.defaultPageBackgroundColor;document.body.style.backgroundColor="1"==urlParams.embedInline?"transparent":Editor.isDarkMode()?Editor.darkColor:"#ffffff";c.loadStylesheet();null!=this.actions.layersWindow&&(b=this.actions.layersWindow.window.isVisible(),this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.destroy(),this.actions.layersWindow=null,
-b&&window.setTimeout(this.actions.get("layers").funct,0));null!=this.menus.commentsWindow&&(this.menus.commentsWindow.window.setVisible(!1),this.menus.commentsWindow.destroy(),this.menus.commentsWindow=null);null!=this.ruler&&this.ruler.updateStyle();Dialog.backdropColor=Editor.isDarkMode()?Editor.darkColor:"white";StyleFormatPanel.prototype.defaultStrokeColor=Editor.isDarkMode()?"#cccccc":"black";BaseFormatPanel.prototype.buttonBackgroundColor=Editor.isDarkMode()?Editor.darkColor:"white";Format.inactiveTabBackgroundColor=
-Editor.isDarkMode()?"black":"#f0f0f0";mxConstants.DROP_TARGET_COLOR=Editor.isDarkMode()?"#00ff00":"#0000FF";Editor.helpImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkHelpImage:Editor.lightHelpImage;Editor.checkmarkImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;p.innerHTML=Editor.createMinimalCss();Editor.darkMode?null==g.parentNode&&document.getElementsByTagName("head")[0].appendChild(g):null!=g.parentNode&&g.parentNode.removeChild(g)}};Editor.createMinimalCss=
-function(){return"* { -webkit-font-smoothing: antialiased; }html body td.mxWindowTitle > div > img { padding: 8px 4px; }"+(Editor.isDarkMode()?"html body td.mxWindowTitle > div > img { margin: -4px; }html body .geToolbarContainer .geMenuItem, html body .geToolbarContainer .geToolbarButton, html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem,html body .geMenubarContainer .geToolbarButton { filter: invert(1); }html body div.geToolbarContainer a.geInverted { filter: none; }html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem { color: #353535; }html > body > div > .geToolbarContainer { border: 1px solid #c0c0c0 !important; box-shadow: none !important; }html > body.geEditor > div > a.geItem { background-color: #2a2a2a; color: #cccccc; border-color: #505759; }html body .geTabContainer, html body .geTabContainer div, html body .geMenubarContainer { border-color: #505759 !important; }html body .mxCellEditor { color: #f0f0f0; }":
+"text/css");EditorUi.prototype.doSetDarkMode=function(b){if(Editor.darkMode!=b){var c=this.editor.graph;Editor.darkMode=b;this.spinner.opts.color=Editor.isDarkMode()?"#c0c0c0":"#000";this.setGridColor(Editor.isDarkMode()?c.view.defaultDarkGridColor:c.view.defaultGridColor);c.defaultPageBackgroundColor=Editor.isDarkMode()?Editor.darkColor:"#ffffff";c.defaultPageBorderColor=Editor.isDarkMode()?"#505759":"#ffffff";c.defaultForegroundColor=Editor.isDarkMode()?"#f0f0f0":"#000000";c.defaultThemeName=Editor.isDarkMode()?
+"darkTheme":"default-style2";c.graphHandler.previewColor=Editor.isDarkMode()?"#cccccc":"black";document.body.style.backgroundColor="1"==urlParams.embedInline?"transparent":Editor.isDarkMode()?Editor.darkColor:"#ffffff";c.loadStylesheet();null!=this.actions.layersWindow&&(b=this.actions.layersWindow.window.isVisible(),this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.destroy(),this.actions.layersWindow=null,b&&window.setTimeout(this.actions.get("layers").funct,0));null!=this.menus.commentsWindow&&
+(this.menus.commentsWindow.window.setVisible(!1),this.menus.commentsWindow.destroy(),this.menus.commentsWindow=null);null!=this.ruler&&this.ruler.updateStyle();Graph.prototype.defaultPageBackgroundColor=c.defaultPageBackgroundColor;Graph.prototype.defaultPageBorderColor=c.defaultPageBorderColor;Graph.prototype.defaultForegroundColor=c.defaultForegroundColor;StyleFormatPanel.prototype.defaultStrokeColor=Editor.isDarkMode()?"#cccccc":"black";BaseFormatPanel.prototype.buttonBackgroundColor=Editor.isDarkMode()?
+Editor.darkColor:"white";Format.inactiveTabBackgroundColor=Editor.isDarkMode()?"black":"#f0f0f0";Dialog.backdropColor=Editor.isDarkMode()?Editor.darkColor:"white";mxConstants.DROP_TARGET_COLOR=Editor.isDarkMode()?"#00ff00":"#0000FF";Editor.helpImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkHelpImage:Editor.lightHelpImage;Editor.checkmarkImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;p.innerHTML=Editor.createMinimalCss();Editor.darkMode?null==
+g.parentNode&&document.getElementsByTagName("head")[0].appendChild(g):null!=g.parentNode&&g.parentNode.removeChild(g)}};Editor.createMinimalCss=function(){return"* { -webkit-font-smoothing: antialiased; }html body td.mxWindowTitle > div > img { padding: 8px 4px; }"+(Editor.isDarkMode()?"html body td.mxWindowTitle > div > img { margin: -4px; }html body .geToolbarContainer .geMenuItem, html body .geToolbarContainer .geToolbarButton, html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem,html body .geMenubarContainer .geToolbarButton { filter: invert(1); }html body div.geToolbarContainer a.geInverted { filter: none; }html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem { color: #353535; }html > body > div > .geToolbarContainer { border: 1px solid #c0c0c0 !important; box-shadow: none !important; }html > body.geEditor > div > a.geItem { background-color: #2a2a2a; color: #cccccc; border-color: #505759; }html body .geTabContainer, html body .geTabContainer div, html body .geMenubarContainer { border-color: #505759 !important; }html body .mxCellEditor { color: #f0f0f0; }":
"html body div.geToolbarContainer a.geInverted { filter: invert(1); }html body.geEditor .geTabContainer div { border-color: #e5e5e5 !important; }")+'html > body > div > a.geItem { background-color: #ffffff; color: #707070; border-top: 1px solid lightgray; border-left: 1px solid lightgray; }html body .geMenubarContainer { border-bottom:1px solid lightgray;background-color:#ffffff; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0; }html body table.mxWindow td.mxWindowPane div.mxWindowPane *:not(svg *) { font-size:9pt; }table.mxWindow * :not(svg *) { font-size:13px; }html body .mxWindow { z-index: 3; }html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700; border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }html body a.geMenuItem { opacity: 0.75; cursor: pointer; user-select: none; }html body a.geMenuItem[disabled] { opacity: 0.2; }html body a.geMenuItem[disabled]:active { opacity: 0.2; }html body div.geActivePage { opacity: 0.7; }html body a.geMenuItem:active { opacity: 0.2; }html body .geToolbarButton { opacity: 0.3; }html body .geToolbarButton:active { opacity: 0.15; }html body .geStatus:active { opacity: 0.5; }html body .geStatus { padding-top:3px !important; }html body .geMenubarContainer .geStatus { margin-top: 0px !important; }html table.mxPopupMenu tr.mxPopupMenuItemHover:active { opacity: 0.7; }html body .geDialog input, html body .geToolbarContainer input, html body .mxWindow input {padding: 2px; display: inline-block; }html body .mxWindow input[type="checkbox"] {padding: 0px; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: '+
(Editor.isDarkMode()?Editor.darkColor:"#fff")+" !important; border: none !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: "+(Editor.isDarkMode()?"#cccccc":"#353535")+" !important; border-style: solid; border-width: 1px; border-color: rgb(216, 216, 216); }html body div.diagramContainer button:hover, html body .mxWindow button:hover, html body .geDialog button:hover { border-color: rgb(177, 177, 177); }html body div.diagramContainer button:active, html body .mxWindow button:active, html body .geDialog button:active { opacity: 0.6; }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:0px; padding: 0 2px 4px 2px; } html body div.geToolbarContainer a.geColorBtn { margin: 2px; } html body .mxWindow td.mxWindowPane input, html body .mxWindow td.mxWindowPane select, html body .mxWindow td.mxWindowPane textarea, html body .mxWindow td.mxWindowPane radio { padding: 0px; box-sizing: border-box; }.geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }.geTabContainer { border-bottom:1px solid lightgray; border-top:1px solid lightgray; background: "+
(Editor.isDarkMode()?Editor.darkColor:"#fff")+" !important; }.geToolbarContainer { background: "+(Editor.isDarkMode()?Editor.darkColor:"#fff")+"; }div.geSidebarContainer { background-color: "+(Editor.isDarkMode()?Editor.darkColor:"#fff")+"; }div.geSidebarContainer .geTitle { background-color: "+(Editor.isDarkMode()?Editor.darkColor:"#fdfdfd")+"; }div.mxWindow td.mxWindowPane button { background-image: none; float: none; }td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:"+
@@ -3929,10 +3929,10 @@ b.className="geToolbarButton";b.innerHTML="";b.style.backgroundImage="url("+Edit
b.appendChild(c));this.buttonContainer.appendChild(b);this.buttonContainer.style.top="6px";this.editor.fireEvent(new mxEventObject("statusChanged"))}};var q=Sidebar.prototype.getTooltipOffset;Sidebar.prototype.getTooltipOffset=function(b,c){if(null==this.editorUi.sidebarWindow||mxUtils.isAncestorNode(this.editorUi.picker,b)){var d=mxUtils.getOffset(this.editorUi.picker);d.x+=this.editorUi.picker.offsetWidth+4;d.y+=b.offsetTop-c.height/2+16;return d}var e=q.apply(this,arguments),d=mxUtils.getOffset(this.editorUi.sidebarWindow.window.div);
e.x+=d.x-16;e.y+=d.y;return e};var n=Menus.prototype.createPopupMenu;Menus.prototype.createPopupMenu=function(b,c,d){var e=this.editorUi.editor.graph;b.smartSeparators=!0;n.apply(this,arguments);"1"==urlParams.sketch?e.isEnabled()&&(b.addSeparator(),1==e.getSelectionCount()&&this.addMenuItems(b,["-","lockUnlock"],null,d)):1==e.getSelectionCount()?(e.isCellFoldable(e.getSelectionCell())&&this.addMenuItems(b,e.isCellCollapsed(c)?["expand"]:["collapse"],null,d),this.addMenuItems(b,["collapsible","-",
"lockUnlock","enterGroup"],null,d),b.addSeparator(),this.addSubmenu("layout",b)):e.isSelectionEmpty()&&e.isEnabled()?(b.addSeparator(),this.addMenuItems(b,["editData"],null,d),b.addSeparator(),this.addSubmenu("layout",b),this.addSubmenu("insert",b),this.addMenuItems(b,["-","exitGroup"],null,d)):e.isEnabled()&&this.addMenuItems(b,["-","lockUnlock"],null,d);e.isEnabled()&&e.isSelectionEmpty()&&(this.addMenuItems(b,["-","fullscreen"]),"1"==urlParams.embedInline||!Editor.isDarkMode()&&(mxClient.IS_IE||
-mxClient.IS_IE11)||this.addMenuItems(b,["toggleDarkMode"]))};var u=Menus.prototype.addPopupMenuEditItems;Menus.prototype.addPopupMenuEditItems=function(b,c,d){u.apply(this,arguments);this.editorUi.editor.graph.isSelectionEmpty()&&this.addMenuItems(b,["copyAsImage"],null,d)};EditorUi.prototype.toggleFormatPanel=function(c){null!=this.formatWindow?this.formatWindow.window.setVisible(null!=c?c:!this.formatWindow.window.isVisible()):b(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};
-var v=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),this.formatWindow.window.destroy(),this.formatWindow=null);null!=this.actions.outlineWindow&&(this.actions.outlineWindow.window.setVisible(!1),this.actions.outlineWindow.window.destroy(),this.actions.outlineWindow=null);null!=this.actions.layersWindow&&
+mxClient.IS_IE11)||this.addMenuItems(b,["toggleDarkMode"]))};var v=Menus.prototype.addPopupMenuEditItems;Menus.prototype.addPopupMenuEditItems=function(b,c,d){v.apply(this,arguments);this.editorUi.editor.graph.isSelectionEmpty()&&this.addMenuItems(b,["copyAsImage"],null,d)};EditorUi.prototype.toggleFormatPanel=function(c){null!=this.formatWindow?this.formatWindow.window.setVisible(null!=c?c:!this.formatWindow.window.isVisible()):b(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};
+var u=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),this.formatWindow.window.destroy(),this.formatWindow=null);null!=this.actions.outlineWindow&&(this.actions.outlineWindow.window.setVisible(!1),this.actions.outlineWindow.window.destroy(),this.actions.outlineWindow=null);null!=this.actions.layersWindow&&
(this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.destroy(),this.actions.layersWindow=null);null!=this.menus.tagsWindow&&(this.menus.tagsWindow.window.setVisible(!1),this.menus.tagsWindow.window.destroy(),this.menus.tagsWindow=null);null!=this.menus.findWindow&&(this.menus.findWindow.window.setVisible(!1),this.menus.findWindow.window.destroy(),this.menus.findWindow=null);null!=this.menus.findReplaceWindow&&(this.menus.findReplaceWindow.window.setVisible(!1),this.menus.findReplaceWindow.window.destroy(),
-this.menus.findReplaceWindow=null);v.apply(this,arguments)};var y=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(b){y.apply(this,arguments);if(b){var c=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;1E3<=c&&null!=this.sidebarWindow&&"1"!=urlParams.sketch&&this.sidebarWindow.window.setVisible(!0);null!=this.formatWindow&&(1E3<=c||"1"==urlParams.sketch)&&this.formatWindow.window.setVisible(!0)}else null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),
+this.menus.findReplaceWindow=null);u.apply(this,arguments)};var y=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(b){y.apply(this,arguments);if(b){var c=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;1E3<=c&&null!=this.sidebarWindow&&"1"!=urlParams.sketch&&this.sidebarWindow.window.setVisible(!0);null!=this.formatWindow&&(1E3<=c||"1"==urlParams.sketch)&&this.formatWindow.window.setVisible(!0)}else null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),
null!=this.formatWindow&&this.formatWindow.window.setVisible(!1)};EditorUi.prototype.chromelessWindowResize=function(){};var x=Menus.prototype.init;Menus.prototype.init=function(){x.apply(this,arguments);var d=this.editorUi,e=d.editor.graph;d.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";d.actions.get("createShape").label=mxResources.get("shape")+"...";d.actions.get("outline").label=mxResources.get("outline")+"...";d.actions.get("layers").label=mxResources.get("layers")+"...";
d.actions.get("tags").label=mxResources.get("tags")+"...";d.actions.get("forkme").visible="1"!=urlParams.sketch;d.actions.get("downloadDesktop").visible="1"!=urlParams.sketch;var f=d.actions.put("toggleDarkMode",new Action(mxResources.get("dark"),function(b){d.setDarkMode(!Editor.darkMode)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.isDarkMode()});f=d.actions.put("toggleSketchMode",new Action(mxResources.get("sketch"),function(b){d.setSketchMode(!Editor.sketchMode)}));
f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.sketchMode});f=d.actions.put("togglePagesVisible",new Action(mxResources.get("pages"),function(b){d.setPagesVisible(!Editor.pagesVisible)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.pagesVisible});d.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){e.popupMenuHandler.hideMenu();d.showImportCsvDialog()}));d.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var b=
@@ -3951,61 +3951,61 @@ b,c);null!=l&&d.menus.addSubmenu("language",b,c);d.menus.addSubmenu("units",b,c)
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 D=!1;EditorUi.prototype.initFormatWindow=function(){if(!D){D=!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),
+"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 I=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&&(X.style.left=58>I.offsetTop-I.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;
+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&&(W.style.left=58>E.offsetTop-E.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?A: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([fa,ia],60),520<=e&&g([wa,640<=e?f("",ta.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",ta,Editor.zoomInImage):null,640<=e?f("",U.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",U,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==ra&&(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),ra=c),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=ra&&(ra.parentNode.removeChild(ra),ra=null))}H.apply(this,arguments);"1"!=urlParams.embedInline&&this.doSetDarkMode(null!=urlParams.dark?1==urlParams.dark&&!mxClient.IS_IE&&!mxClient.IS_IE11:
+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([fa,ia],60),520<=e&&g([wa,640<=e?f("",ra.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",ra,Editor.zoomInImage):null,640<=e?f("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",V,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))}I.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";var y=m.menus.get("viewZoom"),A="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,D="1"==urlParams.sketch?document.createElement("div"):null,I="1"==urlParams.sketch?document.createElement("div"):null,X="1"==urlParams.sketch?document.createElement("div"):null,aa=mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),
-this.sidebar.graph.defaultPageBackgroundColor=n.defaultPageBackgroundColor,this.sidebar.graph.defaultForegroundColor=n.defaultForegroundColor,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",aa);m.addListener("sketchModeChanged",aa);var la=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)X.style.left="10px",X.style.top=
-"10px",I.style.left="10px",I.style.top="60px",D.style.top="10px",D.style.right="12px",D.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()}X.style.left=m.diagramContainer.offsetLeft+"px";X.style.top=m.diagramContainer.offsetTop-X.offsetHeight-4+"px";I.style.display="";I.style.left=m.diagramContainer.offsetLeft-I.offsetWidth-4+"px";I.style.top=m.diagramContainer.offsetTop+"px";D.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-D.offsetWidth+"px";D.style.top=X.style.top;D.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";X.style.visibility="";D.style.visibility=""}),ga=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";la()}),aa=mxUtils.bind(this,function(){ga();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+
-c.width+4,c.y)});m.addListener("inlineFullscreenChanged",ga);m.addListener("editInlineStart",aa);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",aa);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";X.style.visibility="hidden";D.style.visibility="hidden";I.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 pa=n.freehand.createStyle;n.freehand.createStyle=function(b){return pa.apply(this,arguments)+"sketch=0;"}}if("1"==
-urlParams.sketch){I.className="geToolbarContainer";D.className="geToolbarContainer";X.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=I;var qa=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){qa||(m.statusContainer.style.display="none")});var ma=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();ma(b);var c=m.getCurrentFile(),c=null!=c?c.savingStatusKey:DrawioFile.prototype.savingStatusKey;b==mxResources.get(c)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(c))+'..."src="'+Editor.tailSpin+'">',m.statusContainer.style.display="inline-block",qa=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display="none",qa=!1)}else m.statusContainer.style.display="inline-block",ma(null),qa=!0;p.style.visibility=12<p.clientWidth?"":
-"hidden"}))):m.editor.addListener("statusChanged",mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));P=d("diagram",null,Editor.menuImage);P.style.boxShadow="none";P.style.padding="6px";P.style.margin="0px";X.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 Y=document.createElement("a");Y.style.padding="0px";Y.style.boxShadow=
-"none";Y.className="geMenuItem";Y.style.display="inline-block";Y.style.width="40px";Y.style.height="12px";Y.style.marginBottom="-2px";Y.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";Y.style.backgroundPosition="top center";Y.style.backgroundRepeat="no-repeat";Y.setAttribute("title","Minimize");var ba=!1,R=mxUtils.bind(this,function(){I.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";I.appendChild(b);mxUtils.br(I);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+
-")",A);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&&I.appendChild(Y)});mxEvent.addListener(Y,"click",mxUtils.bind(this,function(){ba?(mxUtils.setPrefixedStyle(I.style,"transform","translate(0, -50%)"),I.style.padding="8px 6px 4px",I.style.top="50%",I.style.bottom="",
-I.style.height="",Y.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",Y.style.width="40px",Y.style.height="12px",Y.setAttribute("title","Minimize"),ba=!1,R()):(I.innerHTML="",I.appendChild(Y),mxUtils.setPrefixedStyle(I.style,"transform","translate(0, 0)"),I.style.top="",I.style.bottom="12px",I.style.padding="0px",I.style.height="24px",Y.style.height="24px",Y.style.backgroundImage="url("+Editor.plusImage+")",Y.setAttribute("title",mxResources.get("insert")),Y.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!=y){var aa=function(b){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},ta=m.actions.get("zoomIn"),U=m.actions.get("zoomOut"),T=m.actions.get("resetView"),na=m.actions.get("fullscreen");m.actions.get("toggleDarkMode");var va=
-m.actions.get("undo"),S=m.actions.get("redo"),fa=f("",va.funct,null,mxResources.get("undo")+" ("+va.shortcut+")",va,Editor.undoImage),ia=f("",S.funct,null,mxResources.get("redo")+" ("+S.shortcut+")",S,Editor.redoImage),ja=f("",na.funct,null,mxResources.get("fullscreen"),na,Editor.fullscreenImage);if(null!=D){y=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";X.appendChild(ua);oa.addListener("stateChanged",function(){ua.style.opacity=oa.enabled?"":"0.1"});T=function(){fa.style.display=0<m.editor.undoManager.history.length||n.isEditing()?"inline-block":"none";ia.style.display=fa.style.display;fa.style.opacity=va.enabled?"":"0.1";ia.style.opacity=S.enabled?"":"0.1"};X.appendChild(fa);X.appendChild(ia);va.addListener("stateChanged",T);S.addListener("stateChanged",
-T);T();null!=urlParams.layers&&(T=m.actions.get("layers"),T=f("",T.funct,null,mxResources.get("layers"),T,Editor.layersImage),T.style.opacity="0.4",D.appendChild(T));null!=urlParams.tags&&(T=m.actions.get("tags"),T=f("",T.funct,null,mxResources.get("tags"),T,Editor.tagsImage),T.style.opacity="0.4",D.appendChild(T));T=m.actions.get("outline");T=f("",T.funct,null,mxResources.get("outline"),T,Editor.outlineImage);D.appendChild(T);T=f("",U.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",
-U,Editor.zoomOutImage);D.appendChild(T);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";D.appendChild(P);mxEvent.addListener(P,
-"click",aa);aa=f("",ta.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",ta,Editor.zoomInImage);D.appendChild(aa);"1"==urlParams.embedInline&&(D.appendChild(ja),aa=m.actions.get("exit"),D.appendChild(f("",aa.funct,null,mxResources.get("exit"),aa,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";D.appendChild(da);m.addListener("fileDescriptorChanged",y);m.addListener("pagesVisibleChanged",y);y();m.tabContainer.style.visibility="hidden";p.style.cssText="position:absolute;right:12px;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;";
-X.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;";D.style.cssText="position:absolute;right:12px;bottom:12px;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(X);x.appendChild(D);I.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(I);window.setTimeout(function(){mxUtils.setPrefixedStyle(I.style,"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(x)}else{var wa=f("",aa,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",T,Editor.zoomFitImage);p.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;text-align:left;white-space:nowrap;";this.tabContainer.style.right="70px";P=t.addMenu("100%",y.funct);P.setAttribute("title",mxResources.get("zoom")+
+"position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var y=m.menus.get("viewZoom"),A="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,D="1"==urlParams.sketch?document.createElement("div"):null,E="1"==urlParams.sketch?document.createElement("div"):null,W="1"==urlParams.sketch?document.createElement("div"):null,T=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",T);m.addListener("sketchModeChanged",T);var na=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)W.style.left="10px",W.style.top="10px",E.style.left="10px",E.style.top="60px",D.style.top="10px",D.style.right="12px",D.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()}W.style.left=m.diagramContainer.offsetLeft+"px";W.style.top=m.diagramContainer.offsetTop-
+W.offsetHeight-4+"px";E.style.display="";E.style.left=m.diagramContainer.offsetLeft-E.offsetWidth-4+"px";E.style.top=m.diagramContainer.offsetTop+"px";D.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-D.offsetWidth+"px";D.style.top=W.style.top;D.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";W.style.visibility="";D.style.visibility=""}),ga=mxUtils.bind(this,function(){ba.style.backgroundImage=
+"url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";na()}),T=mxUtils.bind(this,function(){ga();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",ga);m.addListener("editInlineStart",T);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",
+T);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";W.style.visibility="hidden";D.style.visibility="hidden";E.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 ja=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||ja.apply(this,arguments)}}if(null!=n.freehand){var ma=n.freehand.createStyle;n.freehand.createStyle=function(b){return ma.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){E.className="geToolbarContainer";D.className="geToolbarContainer";W.className="geToolbarContainer";p.className="geToolbarContainer";
+m.picker=E;var oa=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){oa||(m.statusContainer.style.display="none")});var ka=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();ka(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",oa=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display="none",oa=!1)}else m.statusContainer.style.display="inline-block",ka(null),oa=!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";W.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 Z=document.createElement("a");Z.style.padding="0px";Z.style.boxShadow="none";Z.className="geMenuItem";Z.style.display="inline-block";Z.style.width="40px";Z.style.height="12px";Z.style.marginBottom="-2px";Z.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+
+")";Z.style.backgroundPosition="top center";Z.style.backgroundRepeat="no-repeat";Z.setAttribute("title","Minimize");var ca=!1,R=mxUtils.bind(this,function(){E.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";E.appendChild(b);mxUtils.br(E);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+")",A);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&&E.appendChild(Z)});mxEvent.addListener(Z,"click",mxUtils.bind(this,function(){ca?(mxUtils.setPrefixedStyle(E.style,"transform","translate(0, -50%)"),E.style.padding="8px 6px 4px",E.style.top="50%",E.style.bottom="",E.style.height="",Z.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",Z.style.width="40px",Z.style.height=
+"12px",Z.setAttribute("title","Minimize"),ca=!1,R()):(E.innerHTML="",E.appendChild(Z),mxUtils.setPrefixedStyle(E.style,"transform","translate(0, 0)"),E.style.top="",E.style.bottom="12px",E.style.padding="0px",E.style.height="24px",Z.style.height="24px",Z.style.backgroundImage="url("+Editor.plusImage+")",Z.setAttribute("title",mxResources.get("insert")),Z.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!=y){var T=function(b){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},ra=m.actions.get("zoomIn"),V=m.actions.get("zoomOut"),U=m.actions.get("resetView"),la=m.actions.get("fullscreen");m.actions.get("toggleDarkMode");var ta=m.actions.get("undo"),S=m.actions.get("redo"),fa=f("",ta.funct,null,mxResources.get("undo")+" ("+ta.shortcut+")",ta,Editor.undoImage),
+ia=f("",S.funct,null,mxResources.get("redo")+" ("+S.shortcut+")",S,Editor.redoImage),ba=f("",la.funct,null,mxResources.get("fullscreen"),la,Editor.fullscreenImage);if(null!=D){y=function(){ea.style.display=null!=m.pages&&("1"==urlParams.pages||1<m.pages.length||Editor.pagesVisible)?"inline-block":"none"};ba.parentNode.removeChild(ba);var za=m.actions.get("delete"),va=f("",za.funct,null,mxResources.get("delete"),za,Editor.trashImage);va.style.opacity="0.1";W.appendChild(va);za.addListener("stateChanged",
+function(){va.style.opacity=za.enabled?"":"0.1"});U=function(){fa.style.display=0<m.editor.undoManager.history.length||n.isEditing()?"inline-block":"none";ia.style.display=fa.style.display;fa.style.opacity=ta.enabled?"":"0.1";ia.style.opacity=S.enabled?"":"0.1"};W.appendChild(fa);W.appendChild(ia);ta.addListener("stateChanged",U);S.addListener("stateChanged",U);U();null!=urlParams.layers&&(U=m.actions.get("layers"),U=f("",U.funct,null,mxResources.get("layers"),U,Editor.layersImage),U.style.opacity=
+"0.4",D.appendChild(U));null!=urlParams.tags&&(U=m.actions.get("tags"),U=f("",U.funct,null,mxResources.get("tags"),U,Editor.tagsImage),U.style.opacity="0.4",D.appendChild(U));U=m.actions.get("outline");U=f("",U.funct,null,mxResources.get("outline"),U,Editor.outlineImage);D.appendChild(U);U=f("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",V,Editor.zoomOutImage);D.appendChild(U);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";D.appendChild(P);mxEvent.addListener(P,"click",T);T=f("",ra.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",ra,Editor.zoomInImage);D.appendChild(T);
+"1"==urlParams.embedInline&&(D.appendChild(ba),T=m.actions.get("exit"),D.appendChild(f("",T.funct,null,mxResources.get("exit"),T,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";D.appendChild(ea);m.addListener("fileDescriptorChanged",y);m.addListener("pagesVisibleChanged",y);y();m.tabContainer.style.visibility="hidden";p.style.cssText="position:absolute;right:12px;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;";
+W.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;";D.style.cssText="position:absolute;right:12px;bottom:12px;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(W);x.appendChild(D);E.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(E);window.setTimeout(function(){mxUtils.setPrefixedStyle(E.style,"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(x)}else{var wa=f("",T,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",U,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%",y.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==D?this.tabContainerHeight+"px":"0px")}}x.appendChild(p);x.appendChild(m.diagramContainer);l.appendChild(x);m.updateTabContainer();null==D&&x.appendChild(m.tabContainer);var ra=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";I.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 za=null,Aa=null,Da=null,Ea=null;mxEvent.addGestureListeners(l,function(b){Ea=parseInt(m.diagramContainer.style.height);Aa=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){Da=parseInt(m.diagramContainer.style.width);za=mxEvent.getClientX(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});mxEvent.addGestureListeners(document.body,null,function(b){var c=!1;null!=za&&(m.diagramContainer.style.width=Math.max(20,Da+mxEvent.getClientX(b)-za)+"px",c=!0);null!=Aa&&(m.diagramContainer.style.height=Math.max(20,
-Ea+mxEvent.getClientY(b)-Aa)+"px",c=!0);c&&((window.opener||window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:m.diagramContainer.getBoundingClientRect()}),"*"),la(),m.refresh())},function(b){null==za&&null==Aa||mxEvent.consume(b);Aa=za=null});this.diagramContainer.style.borderRadius="4px";document.body.style.backgroundColor="transparent";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";X.style.visibility="hidden";D.style.visibility=
-"hidden";I.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,g,p,t){this.file=b;this.id=c;this.content=e;this.modifiedDate=k;this.createdDate=g;this.isResolved=p;this.user=t;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,c,e,k,g){c()};DrawioComment.prototype.editComment=function(b,c,e){c()};DrawioComment.prototype.deleteComment=function(b,c){b()};DrawioUser=function(b,c,e,k,g){this.id=b;this.email=c;this.displayName=e;this.pictureUrl=k;this.locale=g};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. Click \'Yes\' to merge changes or \'No\' to overwrite.\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\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\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="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><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="#ffffff"/></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;
+"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 xa=m.setGraphEnabled;m.setGraphEnabled=function(){xa.apply(this,arguments);null!=this.tabContainer&&(P.style.visibility=
+this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==D?this.tabContainerHeight+"px":"0px")}}x.appendChild(p);x.appendChild(m.diagramContainer);l.appendChild(x);m.updateTabContainer();null==D&&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";E.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 Aa=null,Ba=null,Da=null,Ea=null;mxEvent.addGestureListeners(l,function(b){Ea=parseInt(m.diagramContainer.style.height);Ba=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){Da=parseInt(m.diagramContainer.style.width);Aa=mxEvent.getClientX(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});mxEvent.addGestureListeners(document.body,null,function(b){var c=!1;null!=Aa&&(m.diagramContainer.style.width=Math.max(20,Da+mxEvent.getClientX(b)-Aa)+"px",c=!0);null!=Ba&&(m.diagramContainer.style.height=Math.max(20,
+Ea+mxEvent.getClientY(b)-Ba)+"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==Aa&&null==Ba||mxEvent.consume(b);Ba=Aa=null});this.diagramContainer.style.borderRadius="4px";document.body.style.backgroundColor="transparent";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";W.style.visibility="hidden";D.style.visibility=
+"hidden";E.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,g,p,t){this.file=b;this.id=c;this.content=e;this.modifiedDate=k;this.createdDate=g;this.isResolved=p;this.user=t;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,c,e,k,g){c()};DrawioComment.prototype.editComment=function(b,c,e){c()};DrawioComment.prototype.deleteComment=function(b,c){b()};DrawioUser=function(b,c,e,k,g){this.id=b;this.email=c;this.displayName=e;this.pictureUrl=k;this.locale=g};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. Click \'Yes\' to merge changes or \'No\' to overwrite.\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\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.\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="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><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="#ffffff"/></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=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="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="#2a2a2a"/><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="#2a2a2a"/></add></mxStylesheet>').documentElement;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"]?
@@ -4017,10 +4017,10 @@ this.graph.dialect==mxConstants.DIALECT_SVG){var e=this.graph.view.getDrawPane()
(this.editor.defaultGraphOverflow="visible");this.xmlNode=this.editor.extractGraphModel(this.xmlNode,!0);this.xmlNode!=c&&(this.xml=mxUtils.getXml(this.xmlNode),this.xmlDocument=this.xmlNode.ownerDocument);var d=this;this.graph.getImageFromBundles=function(b){return d.getImageUrl(b)};mxClient.IS_SVG&&this.graph.addSvgShadow(this.graph.view.canvas.ownerSVGElement,null,!0);if("mxfile"==this.xmlNode.nodeName){var f=this.xmlNode.getElementsByTagName("diagram");if(0<f.length){if(null!=this.pageId)for(var g=
0;g<f.length;g++)if(this.pageId==f[g].getAttribute("id")){this.currentPage=g;break}var k=this.graph.getGlobalVariable,d=this;this.graph.getGlobalVariable=function(b){var c=f[d.currentPage];return"page"==b?c.getAttribute("name")||"Page-"+(d.currentPage+1):"pagenumber"==b?d.currentPage+1:"pagecount"==b?f.length:k.apply(this,arguments)}}}this.diagrams=[];var p=null;this.selectPage=function(b){this.handlingResize||(this.currentPage=mxUtils.mod(b,this.diagrams.length),this.updateGraphXml(Editor.parseDiagramNode(this.diagrams[this.currentPage])))};
this.selectPageById=function(b){b=this.getIndexById(b);var c=0<=b;c&&this.selectPage(b);return c};var g=mxUtils.bind(this,function(){if(null==this.xmlNode||"mxfile"!=this.xmlNode.nodeName)this.diagrams=[];this.xmlNode!=p&&(this.diagrams=this.xmlNode.getElementsByTagName("diagram"),p=this.xmlNode)}),n=this.graph.setBackgroundImage;this.graph.setBackgroundImage=function(b){if(null!=b&&Graph.isPageLink(b.src)){var c=b.src,e=c.indexOf(",");0<e&&(e=d.getIndexById(c.substring(e+1)),0<=e&&(b=d.getImageForGraphModel(Editor.parseDiagramNode(d.diagrams[e])),
-b.originalSrc=c))}n.apply(this,arguments)};var u=this.graph.getGraphBounds;this.graph.getGraphBounds=function(b){var c=u.apply(this,arguments);b=this.backgroundImage;if(null!=b){var d=this.view.translate,e=this.view.scale,c=mxRectangle.fromRectangle(c);c.add(new mxRectangle((d.x+b.x)*e,(d.y+b.y)*e,b.width*e,b.height*e))}return c};this.addListener("xmlNodeChanged",g);g();urlParams.page=d.currentPage;g=null;this.graph.getModel().beginUpdate();try{urlParams.nav=0!=this.graphConfig.nav?"1":"0",this.editor.setGraphXml(this.xmlNode),
+b.originalSrc=c))}n.apply(this,arguments)};var v=this.graph.getGraphBounds;this.graph.getGraphBounds=function(b){var c=v.apply(this,arguments);b=this.backgroundImage;if(null!=b){var d=this.view.translate,e=this.view.scale,c=mxRectangle.fromRectangle(c);c.add(new mxRectangle((d.x+b.x)*e,(d.y+b.y)*e,b.width*e,b.height*e))}return c};this.addListener("xmlNodeChanged",g);g();urlParams.page=d.currentPage;g=null;this.graph.getModel().beginUpdate();try{urlParams.nav=0!=this.graphConfig.nav?"1":"0",this.editor.setGraphXml(this.xmlNode),
this.graph.view.scale=this.graphConfig.zoom||1,g=this.setLayersVisible(),this.responsive||(this.graph.border=null!=this.graphConfig.border?this.graphConfig.border:8)}finally{this.graph.getModel().endUpdate()}this.responsive||(this.graph.panningHandler.isForcePanningEvent=function(b){return!mxEvent.isPopupTrigger(b.getEvent())&&"auto"==this.graph.container.style.overflow},this.graph.panningHandler.useLeftButtonForPanning=!0,this.graph.panningHandler.ignoreCell=!0,this.graph.panningHandler.usePopupTrigger=
!1,this.graph.panningHandler.pinchEnabled=!1);this.graph.setPanning(!1);null!=this.graphConfig.toolbar?this.addToolbar():null!=this.graphConfig.title&&this.showTitleAsTooltip&&b.setAttribute("title",this.graphConfig.title);this.responsive||this.addSizeHandler();!this.showLayers(this.graph)||this.forceCenter||this.layersEnabled&&!this.autoCrop||this.crop();this.addClickHandler(this.graph);this.graph.setTooltips(0!=this.graphConfig.tooltips);this.graph.initialViewState={translate:this.graph.view.translate.clone(),
-scale:this.graph.view.scale};null!=g&&this.setLayersVisible(g);this.graph.customLinkClicked=function(b){if(Graph.isPageLink(b)){var c=b.indexOf(",");d.selectPageById(b.substring(c+1))||alert(mxResources.get("pageNotFound")||"Page not found")}else this.handleCustomLink(b);return!0};var v=this.graph.foldTreeCell;this.graph.foldTreeCell=mxUtils.bind(this,function(){this.treeCellFolded=!0;return v.apply(this.graph,arguments)});this.fireEvent(new mxEventObject("render"))});e=window.MutationObserver||window.WebKitMutationObserver||
+scale:this.graph.view.scale};null!=g&&this.setLayersVisible(g);this.graph.customLinkClicked=function(b){if(Graph.isPageLink(b)){var c=b.indexOf(",");d.selectPageById(b.substring(c+1))||alert(mxResources.get("pageNotFound")||"Page not found")}else this.handleCustomLink(b);return!0};var u=this.graph.foldTreeCell;this.graph.foldTreeCell=mxUtils.bind(this,function(){this.treeCellFolded=!0;return u.apply(this.graph,arguments)});this.fireEvent(new mxEventObject("render"))});e=window.MutationObserver||window.WebKitMutationObserver||
window.MozMutationObserver;if(this.checkVisibleState&&0==b.offsetWidth&&"undefined"!==typeof e){var g=this.getObservableParent(b),p=new e(mxUtils.bind(this,function(c){0<b.offsetWidth&&(p.disconnect(),k())}));p.observe(g,{attributes:!0})}else k()}};GraphViewer.prototype.getObservableParent=function(b){for(b=b.parentNode;b!=document.body&&null!=b.parentNode&&"none"!==mxUtils.getCurrentStyle(b).display;)b=b.parentNode;return b};
GraphViewer.prototype.getImageUrl=function(b){null!=b&&"http://"!=b.substring(0,7)&&"https://"!=b.substring(0,8)&&"data:image"!=b.substring(0,10)&&("/"==b.charAt(0)&&(b=b.substring(1,b.length)),b=this.imageBaseUrl+b);return b};
GraphViewer.prototype.getImageForGraphModel=function(b){var c=Graph.createOffscreenGraph(this.graph.getStylesheet());c.getGlobalVariable=this.graph.getGlobalVariable;document.body.appendChild(c.container);b=(new mxCodec(b.ownerDocument)).decode(b).root;c.model.setRoot(b);b=c.getSvg();var e=c.getGraphBounds();document.body.removeChild(c.container);return new mxImage(Editor.createSvgDataUri(mxUtils.getXml(b)),e.width,e.height,e.x,e.y)};
@@ -4045,19 +4045,19 @@ function(){g.style.backgroundColor="#eee"}),mxUtils.setOpacity(b,60),g.style.cur
e.style.whiteSpace="nowrap";e.style.textAlign="left";e.style.zIndex=this.toolbarZIndex;e.style.backgroundColor="#eee";e.style.height=this.toolbarHeight+"px";this.toolbar=e;if("inline"==this.graphConfig["toolbar-position"]){mxUtils.setPrefixedStyle(e.style,"transition","opacity 100ms ease-in-out");mxUtils.setOpacity(e,30);var k=null,g=null,p=mxUtils.bind(this,function(b){null!=k&&(window.clearTimeout(k),fadeThead=null);null!=g&&(window.clearTimeout(g),fadeThead2=null);k=window.setTimeout(mxUtils.bind(this,
function(){mxUtils.setOpacity(e,0);k=null;g=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";g=null}),100)}),b||200)}),t=mxUtils.bind(this,function(b){null!=k&&(window.clearTimeout(k),fadeThead=null);null!=g&&(window.clearTimeout(g),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,b||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(t(30),p())}));mxEvent.addListener(e,mxClient.IS_POINTER?
"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(b){t(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(b){t(100);mxEvent.consume(b)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||t(30)}));var d=this.graph,f=d.getTolerance();d.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(b,c){this.startX=c.getGraphX();this.startY=c.getGraphY();
-this.scrollLeft=d.container.scrollLeft;this.scrollTop=d.container.scrollTop},mouseMove:function(b,c){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-d.container.scrollLeft)<f&&Math.abs(this.scrollTop-d.container.scrollTop)<f&&Math.abs(this.startX-c.getGraphX())<f&&Math.abs(this.startY-c.getGraphY())<f&&(0<parseFloat(e.style.opacity||0)?p():t(30))}})}for(var l=this.toolbarItems,m=0,q=null,n=null,u=null,v=null,y=0;y<l.length;y++){var x=l[y];if("pages"==x){v=c.ownerDocument.createElement("div");
-v.style.cssText="display:inline-block;position:relative;top:5px;padding:0 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;;cursor:default;";mxUtils.setOpacity(v,70);var D=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");D.style.borderRightStyle="none";D.style.paddingLeft="0px";D.style.paddingRight="0px";e.appendChild(v);var H=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage+
-1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");H.style.paddingLeft="0px";H.style.paddingRight="0px";x=mxUtils.bind(this,function(){v.innerHTML="";mxUtils.write(v,this.currentPage+1+" / "+this.diagrams.length);v.style.display=1<this.diagrams.length?"inline-block":"none";D.style.display=v.style.display;H.style.display=v.style.display});this.addListener("graphChanged",x);x()}else if("zoom"==x)this.zoomEnabled&&(b(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,
-mxResources.get("zoomOut")||"Zoom Out"),b(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),b(mxUtils.bind(this,function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==x){if(this.layersEnabled){var C=this.graph.getModel(),F=b(mxUtils.bind(this,function(b){if(null!=q)q.parentNode.removeChild(q),
+this.scrollLeft=d.container.scrollLeft;this.scrollTop=d.container.scrollTop},mouseMove:function(b,c){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-d.container.scrollLeft)<f&&Math.abs(this.scrollTop-d.container.scrollTop)<f&&Math.abs(this.startX-c.getGraphX())<f&&Math.abs(this.startY-c.getGraphY())<f&&(0<parseFloat(e.style.opacity||0)?p():t(30))}})}for(var l=this.toolbarItems,m=0,q=null,n=null,v=null,u=null,y=0;y<l.length;y++){var x=l[y];if("pages"==x){u=c.ownerDocument.createElement("div");
+u.style.cssText="display:inline-block;position:relative;top:5px;padding:0 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;;cursor:default;";mxUtils.setOpacity(u,70);var D=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");D.style.borderRightStyle="none";D.style.paddingLeft="0px";D.style.paddingRight="0px";e.appendChild(u);var I=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage+
+1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");I.style.paddingLeft="0px";I.style.paddingRight="0px";x=mxUtils.bind(this,function(){u.innerHTML="";mxUtils.write(u,this.currentPage+1+" / "+this.diagrams.length);u.style.display=1<this.diagrams.length?"inline-block":"none";D.style.display=u.style.display;I.style.display=u.style.display});this.addListener("graphChanged",x);x()}else if("zoom"==x)this.zoomEnabled&&(b(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,
+mxResources.get("zoomOut")||"Zoom Out"),b(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),b(mxUtils.bind(this,function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==x){if(this.layersEnabled){var B=this.graph.getModel(),G=b(mxUtils.bind(this,function(b){if(null!=q)q.parentNode.removeChild(q),
q=null;else{q=this.graph.createLayersDialog(mxUtils.bind(this,function(){if(this.autoCrop)this.crop();else if(this.autoOrigin){var b=this.graph.getGraphBounds(),c=this.graph.view;0>b.x||0>b.y?(this.crop(),this.graph.originalViewState=this.graph.initialViewState,this.graph.initialViewState={translate:c.translate.clone(),scale:c.scale}):null!=this.graph.originalViewState&&0<b.x/c.scale+this.graph.originalViewState.translate.x-c.translate.x&&0<b.y/c.scale+this.graph.originalViewState.translate.y-c.translate.y&&
-(c.setTranslate(this.graph.originalViewState.translate.x,this.graph.originalViewState.translate.y),this.graph.originalViewState=null,this.graph.initialViewState={translate:c.translate.clone(),scale:c.scale})}}));mxEvent.addListener(q,"mouseleave",function(){q.parentNode.removeChild(q);q=null});b=F.getBoundingClientRect();q.style.width="140px";q.style.padding="2px 0px 2px 0px";q.style.border="1px solid #d0d0d0";q.style.backgroundColor="#eee";q.style.fontFamily=Editor.defaultHtmlFont;q.style.fontSize=
-"11px";q.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(q,80);var c=mxUtils.getDocumentScrollOrigin(document);q.style.left=c.x+b.left-1+"px";q.style.top=c.y+b.bottom-2+"px";document.body.appendChild(q)}}),Editor.layersImage,mxResources.get("layers")||"Layers");C.addListener(mxEvent.CHANGE,function(){F.style.display=1<C.getChildCount(C.root)?"inline-block":"none"});F.style.display=1<C.getChildCount(C.root)?"inline-block":"none"}}else if("tags"==x){if(this.tagsEnabled){var M=b(mxUtils.bind(this,
+(c.setTranslate(this.graph.originalViewState.translate.x,this.graph.originalViewState.translate.y),this.graph.originalViewState=null,this.graph.initialViewState={translate:c.translate.clone(),scale:c.scale})}}));mxEvent.addListener(q,"mouseleave",function(){q.parentNode.removeChild(q);q=null});b=G.getBoundingClientRect();q.style.width="140px";q.style.padding="2px 0px 2px 0px";q.style.border="1px solid #d0d0d0";q.style.backgroundColor="#eee";q.style.fontFamily=Editor.defaultHtmlFont;q.style.fontSize=
+"11px";q.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(q,80);var c=mxUtils.getDocumentScrollOrigin(document);q.style.left=c.x+b.left-1+"px";q.style.top=c.y+b.bottom-2+"px";document.body.appendChild(q)}}),Editor.layersImage,mxResources.get("layers")||"Layers");B.addListener(mxEvent.CHANGE,function(){G.style.display=1<B.getChildCount(B.root)?"inline-block":"none"});G.style.display=1<B.getChildCount(B.root)?"inline-block":"none"}}else if("tags"==x){if(this.tagsEnabled){var M=b(mxUtils.bind(this,
function(b){null==n&&(n=this.graph.createTagsDialog(mxUtils.bind(this,function(){return!0})),n.div.getElementsByTagName("div")[0].style.position="",n.div.style.maxHeight="160px",n.div.style.maxWidth="120px",n.div.style.padding="2px",n.div.style.overflow="auto",n.div.style.height="auto",n.div.style.position="fixed",n.div.style.fontFamily=Editor.defaultHtmlFont,n.div.style.fontSize="11px",n.div.style.backgroundColor="#eee",n.div.style.color="#000",n.div.style.border="1px solid #d0d0d0",n.div.style.zIndex=
-this.toolbarZIndex+1,mxUtils.setOpacity(n.div,80));if(null!=u)u.parentNode.removeChild(u),u=null;else{u=n.div;mxEvent.addListener(u,"mouseleave",function(){u.parentNode.removeChild(u);u=null});b=M.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);n.refresh()}}),Editor.tagsImage,mxResources.get("tags")||"Tags");C.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){M.style.display=0<
+this.toolbarZIndex+1,mxUtils.setOpacity(n.div,80));if(null!=v)v.parentNode.removeChild(v),v=null;else{v=n.div;mxEvent.addListener(v,"mouseleave",function(){v.parentNode.removeChild(v);v=null});b=M.getBoundingClientRect();var c=mxUtils.getDocumentScrollOrigin(document);v.style.left=c.x+b.left-1+"px";v.style.top=c.y+b.bottom-2+"px";document.body.appendChild(v);n.refresh()}}),Editor.tagsImage,mxResources.get("tags")||"Tags");B.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){M.style.display=0<
this.graph.getAllTags().length?"inline-block":"none"}));M.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 E=c.style.border,K=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 F=c.style.border,K=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"==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!=q&&(q.parentNode.removeChild(q),q=null);c.style.border=E});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"==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!=q&&(q.parentNode.removeChild(q),q=null);c.style.border=F});mxEvent.addListener(document,"mousemove",function(b){for(b=mxEvent.getSource(b);null!=b;){if(b==
c||b==e||b==q)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",K):K();this.responsive&&"undefined"!==typeof ResizeObserver&&(new ResizeObserver(function(){null!=e.parentNode&&K()})).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 g=mxEvent.getSource(e);g!=b.container&&null!=g&&null==k;)"a"==g.nodeName.toLowerCase()&&(k=g.getAttribute("href")),g=g.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)&&
@@ -4080,8 +4080,8 @@ 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 g(){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 p(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 g,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"==p(c,"position")&&(c.style.position="relative");var e=c.resizeSensor.childNodes[0],f=e.childNodes[0],k=c.resizeSensor.childNodes[1],l=function(){f.style.width="100000px";f.style.height="100000px";e.scrollLeft=1E5;e.scrollTop=1E5;k.scrollLeft=1E5;k.scrollTop=1E5};l();var m=!1,n=function(){c.resizedAttached&&(m&&(c.resizedAttached.call(),m=!1),b(n))};b(n);var q,t,M,E,K=function(){if((M=c.offsetWidth)!=q||(E=c.offsetHeight)!=t)m=!0,q=M,t=E;l()},B=function(b,c,d){b.attachEvent?
-b.attachEvent("on"+c,d):b.addEventListener(c,d)};B(e,"scroll",K);B(k,"scroll",K)}var d=function(){GraphViewer.resizeSensorEnabled&&k()},f=Object.prototype.toString.call(e),l="[object Array]"===f||"[object NodeList]"===f||"[object HTMLCollection]"===f||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(l)for(var f=0,m=e.length;f<m;f++)t(e[f],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.appendChild(c.resizeSensor);"static"==p(c,"position")&&(c.style.position="relative");var e=c.resizeSensor.childNodes[0],f=e.childNodes[0],k=c.resizeSensor.childNodes[1],l=function(){f.style.width="100000px";f.style.height="100000px";e.scrollLeft=1E5;e.scrollTop=1E5;k.scrollLeft=1E5;k.scrollTop=1E5};l();var m=!1,n=function(){c.resizedAttached&&(m&&(c.resizedAttached.call(),m=!1),b(n))};b(n);var q,t,M,F,K=function(){if((M=c.offsetWidth)!=q||(F=c.offsetHeight)!=t)m=!0,q=M,t=F;l()},C=function(b,c,d){b.attachEvent?
+b.attachEvent("on"+c,d):b.addEventListener(c,d)};C(e,"scroll",K);C(k,"scroll",K)}var d=function(){GraphViewer.resizeSensorEnabled&&k()},f=Object.prototype.toString.call(e),l="[object Array]"===f||"[object NodeList]"===f||"[object HTMLCollection]"===f||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(l)for(var f=0,m=e.length;f<m;f++)t(e[f],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);
mxBpmnShape.prototype.customProperties=[{name:"symbol",dispName:"Event",type:"enum",defVal:"general",enumList:[{val:"general",dispName:"General"},{val:"message",dispName:"Message"},{val:"timer",dispName:"Timer"},{val:"escalation",dispName:"Escalation"},{val:"conditional",dispName:"Conditional"},{val:"link",dispName:"Link"},{val:"error",dispName:"Error"},{val:"cancel",dispName:"Cancel"},{val:"compensation",dispName:"Compensation"},{val:"signal",dispName:"Signal"},{val:"multiple",dispName:"Multiple"},
diff --git a/src/main/webapp/js/viewer.min.js b/src/main/webapp/js/viewer.min.js
index 598b7943..65ce301f 100644
--- a/src/main/webapp/js/viewer.min.js
+++ b/src/main/webapp/js/viewer.min.js
@@ -201,7 +201,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.6.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/"),
+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.6.4",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")||0<=navigator.userAgent.indexOf("Opera/"),
@@ -1605,16 +1605,16 @@ mxGraphHandler.prototype.destroyShapes=function(){null!=this.shape&&(this.shape.
mxGraphHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);this.graph.removeListener(this.panHandler);null!=this.escapeHandler&&(this.graph.removeListener(this.escapeHandler),this.escapeHandler=null);null!=this.refreshHandler&&(this.graph.getModel().removeListener(this.refreshHandler),this.graph.removeListener(this.refreshHandler),this.refreshHandler=null);mxEvent.removeListener(document,"keydown",this.keyHandler);mxEvent.removeListener(document,"keyup",this.keyHandler);this.destroyShapes();
this.removeHint()};
function mxPanningHandler(a){null!=a&&(this.graph=a,this.graph.addMouseListener(this),this.forcePanningHandler=mxUtils.bind(this,function(a,c){var b=c.getProperty("eventName"),e=c.getProperty("event");b==mxEvent.MOUSE_DOWN&&this.isForcePanningEvent(e)&&(this.start(e),this.active=!0,this.fireEvent(new mxEventObject(mxEvent.PAN_START,"event",e)),e.consume())}),this.graph.addListener(mxEvent.FIRE_MOUSE_EVENT,this.forcePanningHandler),this.gestureHandler=mxUtils.bind(this,function(a,c){if(this.isPinchEnabled()){var b=
-c.getProperty("event");mxEvent.isConsumed(b)||"gesturestart"!=b.type?"gestureend"==b.type&&null!=this.initialScale&&(this.initialScale=null):(this.initialScale=this.graph.view.scale,this.active||null==this.mouseDownEvent||(this.start(this.mouseDownEvent),this.mouseDownEvent=null));null!=this.initialScale&&this.zoomGraph(b)}}),this.graph.addListener(mxEvent.GESTURE,this.gestureHandler),this.mouseUpListener=mxUtils.bind(this,function(){this.active&&this.reset()}),mxEvent.addListener(document,"mouseup",
-this.mouseUpListener),mxEvent.addListener(document,"mouseleave",this.mouseUpListener))}mxPanningHandler.prototype=new mxEventSource;mxPanningHandler.prototype.constructor=mxPanningHandler;mxPanningHandler.prototype.graph=null;mxPanningHandler.prototype.useLeftButtonForPanning=!1;mxPanningHandler.prototype.usePopupTrigger=!0;mxPanningHandler.prototype.ignoreCell=!1;mxPanningHandler.prototype.previewEnabled=!0;mxPanningHandler.prototype.useGrid=!1;mxPanningHandler.prototype.panningEnabled=!0;
-mxPanningHandler.prototype.pinchEnabled=!0;mxPanningHandler.prototype.maxScale=8;mxPanningHandler.prototype.minScale=.01;mxPanningHandler.prototype.dx=null;mxPanningHandler.prototype.dy=null;mxPanningHandler.prototype.startX=0;mxPanningHandler.prototype.startY=0;mxPanningHandler.prototype.isActive=function(){return this.active||null!=this.initialScale};mxPanningHandler.prototype.isPanningEnabled=function(){return this.panningEnabled};
+c.getProperty("event");mxEvent.isConsumed(b)||"gesturestart"!=b.type?"gestureend"==b.type&&null!=this.initialScale&&(this.initialScale=null):(this.initialScale=this.graph.view.scale,this.active||null==this.mouseDownEvent||(this.start(this.mouseDownEvent),this.mouseDownEvent=null));null!=this.initialScale&&this.zoomGraph(b)}}),this.graph.addListener(mxEvent.GESTURE,this.gestureHandler),this.mouseUpListener=mxUtils.bind(this,function(){this.active&&this.reset()}),mxEvent.addGestureListeners(document,
+null,null,this.mouseUpListener),mxEvent.addListener(document,"mouseleave",this.mouseUpListener))}mxPanningHandler.prototype=new mxEventSource;mxPanningHandler.prototype.constructor=mxPanningHandler;mxPanningHandler.prototype.graph=null;mxPanningHandler.prototype.useLeftButtonForPanning=!1;mxPanningHandler.prototype.usePopupTrigger=!0;mxPanningHandler.prototype.ignoreCell=!1;mxPanningHandler.prototype.previewEnabled=!0;mxPanningHandler.prototype.useGrid=!1;
+mxPanningHandler.prototype.panningEnabled=!0;mxPanningHandler.prototype.pinchEnabled=!0;mxPanningHandler.prototype.maxScale=8;mxPanningHandler.prototype.minScale=.01;mxPanningHandler.prototype.dx=null;mxPanningHandler.prototype.dy=null;mxPanningHandler.prototype.startX=0;mxPanningHandler.prototype.startY=0;mxPanningHandler.prototype.isActive=function(){return this.active||null!=this.initialScale};mxPanningHandler.prototype.isPanningEnabled=function(){return this.panningEnabled};
mxPanningHandler.prototype.setPanningEnabled=function(a){this.panningEnabled=a};mxPanningHandler.prototype.isPinchEnabled=function(){return this.pinchEnabled};mxPanningHandler.prototype.setPinchEnabled=function(a){this.pinchEnabled=a};mxPanningHandler.prototype.isPanningTrigger=function(a){var b=a.getEvent();return this.useLeftButtonForPanning&&null==a.getState()&&mxEvent.isLeftMouseButton(b)||mxEvent.isControlDown(b)&&mxEvent.isShiftDown(b)||this.usePopupTrigger&&mxEvent.isPopupTrigger(b)};
mxPanningHandler.prototype.isForcePanningEvent=function(a){return this.ignoreCell||mxEvent.isMultiTouchEvent(a.getEvent())};mxPanningHandler.prototype.mouseDown=function(a,b){this.mouseDownEvent=b;!b.isConsumed()&&this.isPanningEnabled()&&!this.active&&this.isPanningTrigger(b)&&(this.start(b),this.consumePanningTrigger(b))};
mxPanningHandler.prototype.start=function(a){this.dx0=-this.graph.container.scrollLeft;this.dy0=-this.graph.container.scrollTop;this.startX=a.getX();this.startY=a.getY();this.dy=this.dx=null;this.panningTrigger=!0};mxPanningHandler.prototype.consumePanningTrigger=function(a){a.consume()};
mxPanningHandler.prototype.mouseMove=function(a,b){this.dx=b.getX()-this.startX;this.dy=b.getY()-this.startY;if(this.active)this.previewEnabled&&(this.useGrid&&(this.dx=this.graph.snap(this.dx),this.dy=this.graph.snap(this.dy)),this.graph.panGraph(this.dx+this.dx0,this.dy+this.dy0)),this.fireEvent(new mxEventObject(mxEvent.PAN,"event",b));else if(this.panningTrigger){var c=this.active;this.active=Math.abs(this.dx)>this.graph.tolerance||Math.abs(this.dy)>this.graph.tolerance;!c&&this.active&&this.fireEvent(new mxEventObject(mxEvent.PAN_START,
"event",b))}(this.active||this.panningTrigger)&&b.consume()};mxPanningHandler.prototype.mouseUp=function(a,b){if(this.active){if(null!=this.dx&&null!=this.dy){if(!this.graph.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.graph.container)){var c=this.graph.getView().scale,d=this.graph.getView().translate;this.graph.panGraph(0,0);this.panGraph(d.x+this.dx/c,d.y+this.dy/c)}b.consume()}this.fireEvent(new mxEventObject(mxEvent.PAN_END,"event",b))}this.reset()};
mxPanningHandler.prototype.zoomGraph=function(a){var b=Math.round(this.initialScale*a.scale*100)/100;null!=this.minScale&&(b=Math.max(this.minScale,b));null!=this.maxScale&&(b=Math.min(this.maxScale,b));this.graph.view.scale!=b&&(this.graph.zoomTo(b),mxEvent.consume(a))};mxPanningHandler.prototype.reset=function(){this.panningTrigger=this.graph.isMouseDown=!1;this.mouseDownEvent=null;this.active=!1;this.dy=this.dx=null};
-mxPanningHandler.prototype.panGraph=function(a,b){this.graph.getView().setTranslate(a,b)};mxPanningHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);this.graph.removeListener(this.forcePanningHandler);this.graph.removeListener(this.gestureHandler);mxEvent.removeListener(document,"mouseup",this.mouseUpListener);mxEvent.removeListener(document,"mouseleave",this.mouseUpListener)};
+mxPanningHandler.prototype.panGraph=function(a,b){this.graph.getView().setTranslate(a,b)};mxPanningHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);this.graph.removeListener(this.forcePanningHandler);this.graph.removeListener(this.gestureHandler);mxEvent.removeGestureListeners(document,null,null,this.mouseUpListener);mxEvent.removeListener(document,"mouseleave",this.mouseUpListener)};
function mxPopupMenuHandler(a,b){null!=a&&(this.graph=a,this.factoryMethod=b,this.graph.addMouseListener(this),this.gestureHandler=mxUtils.bind(this,function(a,b){this.inTolerance=!1}),this.graph.addListener(mxEvent.GESTURE,this.gestureHandler),this.init())}mxPopupMenuHandler.prototype=new mxPopupMenu;mxPopupMenuHandler.prototype.constructor=mxPopupMenuHandler;mxPopupMenuHandler.prototype.graph=null;mxPopupMenuHandler.prototype.selectOnPopup=!0;
mxPopupMenuHandler.prototype.clearSelectionOnBackground=!0;mxPopupMenuHandler.prototype.triggerX=null;mxPopupMenuHandler.prototype.triggerY=null;mxPopupMenuHandler.prototype.screenX=null;mxPopupMenuHandler.prototype.screenY=null;mxPopupMenuHandler.prototype.init=function(){mxPopupMenu.prototype.init.apply(this);mxEvent.addGestureListeners(this.div,mxUtils.bind(this,function(a){this.graph.tooltipHandler.hide()}))};mxPopupMenuHandler.prototype.isSelectOnPopup=function(a){return this.selectOnPopup};
mxPopupMenuHandler.prototype.mouseDown=function(a,b){this.isEnabled()&&!mxEvent.isMultiTouchEvent(b.getEvent())&&(this.hideMenu(),this.triggerX=b.getGraphX(),this.triggerY=b.getGraphY(),this.screenX=mxEvent.getMainEvent(b.getEvent()).screenX,this.screenY=mxEvent.getMainEvent(b.getEvent()).screenY,this.popupTrigger=this.isPopupTrigger(b),this.inTolerance=!0)};
@@ -2062,19 +2062,19 @@ Editor.prototype.setFilename=function(b){this.filename=b};
Editor.prototype.createUndoManager=function(){var b=this.graph,c=new mxUndoManager;this.undoListener=function(b,e){c.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(b,c){this.undoListener.apply(this,arguments)});b.getModel().addListener(mxEvent.UNDO,e);b.getView().addListener(mxEvent.UNDO,e);e=function(c,e){var g=b.getSelectionCellsForChanges(e.getProperty("edit").changes,function(b){return!(b instanceof mxChildChange)});if(0<g.length){b.getModel();for(var k=[],d=0;d<
g.length;d++)null!=b.view.getState(g[d])&&k.push(g[d]);b.setSelectionCells(k)}};c.addListener(mxEvent.UNDO,e);c.addListener(mxEvent.REDO,e);return c};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(b){this.consumer=this.producer=null;this.done=b;this.args=null};OpenFile.prototype.setConsumer=function(b){this.consumer=b;this.execute()};
OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};OpenFile.prototype.error=function(b){this.cancel(!0);mxUtils.alert(b)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(b){null!=this.done&&this.done(null!=b?b:!0)};
-function Dialog(b,c,e,k,g,p,t,d,f,l,m){var q=f?57:0,n=e,u=k,v=f?0:64,y=Editor.inlineFullscreen||null==b.embedViewport?mxUtils.getDocumentSize():mxUtils.clone(b.embedViewport);null==b.embedViewport&&null!=window.innerHeight&&(y.height=window.innerHeight);var x=y.height,D=Math.max(1,Math.round((y.width-e-v)/2)),H=Math.max(1,Math.round((x-k-b.footerHeight)/3));c.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-v):e;k=Math.min(k,x-v);0<b.dialogs.length&&(this.zIndex+=
-2*b.dialogs.length);null==this.bg&&(this.bg=b.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=Dialog.backdropColor,this.bg.style.height=x+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));y=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=y.x+"px";this.bg.style.top=y.y+"px";D+=y.x;H+=y.y;Editor.inlineFullscreen||null==b.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px",
-H+=b.embedViewport.y,D+=b.embedViewport.x);g&&document.body.appendChild(this.bg);var C=b.createDiv(f?"geTransDialog":"geDialog");g=this.getPosition(D,H,e,k);D=g.x;H=g.y;C.style.width=e+"px";C.style.height=k+"px";C.style.left=D+"px";C.style.top=H+"px";C.style.zIndex=this.zIndex;C.appendChild(c);document.body.appendChild(C);!d&&c.clientHeight>C.clientHeight-v&&(c.style.overflowY="auto");c.style.overflowX="hidden";if(p&&(p=document.createElement("img"),p.setAttribute("src",Dialog.prototype.closeImage),
-p.setAttribute("title",mxResources.get("close")),p.className="geDialogClose",p.style.top=H+14+"px",p.style.left=D+e+38-q+"px",p.style.zIndex=this.zIndex,mxEvent.addListener(p,"click",mxUtils.bind(this,function(){b.hideDialog(!0)})),document.body.appendChild(p),this.dialogImg=p,!m)){var F=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(b){F=!0}),null,mxUtils.bind(this,function(d){F&&(b.hideDialog(!0),F=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var f=l();
-null!=f&&(n=e=f.w,u=k=f.h)}f=mxUtils.getDocumentSize();x=f.height;this.bg.style.height=x+"px";Editor.inlineFullscreen||null==b.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px");D=Math.max(1,Math.round((f.width-e-v)/2));H=Math.max(1,Math.round((x-k-b.footerHeight)/3));e=null!=document.body?Math.min(n,document.body.scrollWidth-v):n;k=Math.min(u,x-v);f=this.getPosition(D,H,e,k);D=f.x;H=f.y;C.style.left=D+"px";C.style.top=H+"px";C.style.width=e+"px";C.style.height=k+"px";!d&&
-c.clientHeight>C.clientHeight-v&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=H+14+"px",this.dialogImg.style.left=D+e+38-q+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=t;this.container=C;b.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
+function Dialog(b,c,e,k,g,p,t,d,f,l,m){var q=f?57:0,n=e,v=k,u=f?0:64,y=Editor.inlineFullscreen||null==b.embedViewport?mxUtils.getDocumentSize():mxUtils.clone(b.embedViewport);null==b.embedViewport&&null!=window.innerHeight&&(y.height=window.innerHeight);var x=y.height,D=Math.max(1,Math.round((y.width-e-u)/2)),I=Math.max(1,Math.round((x-k-b.footerHeight)/3));c.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-u):e;k=Math.min(k,x-u);0<b.dialogs.length&&(this.zIndex+=
+2*b.dialogs.length);null==this.bg&&(this.bg=b.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=Dialog.backdropColor,this.bg.style.height=x+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));y=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=y.x+"px";this.bg.style.top=y.y+"px";D+=y.x;I+=y.y;Editor.inlineFullscreen||null==b.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px",
+I+=b.embedViewport.y,D+=b.embedViewport.x);g&&document.body.appendChild(this.bg);var B=b.createDiv(f?"geTransDialog":"geDialog");g=this.getPosition(D,I,e,k);D=g.x;I=g.y;B.style.width=e+"px";B.style.height=k+"px";B.style.left=D+"px";B.style.top=I+"px";B.style.zIndex=this.zIndex;B.appendChild(c);document.body.appendChild(B);!d&&c.clientHeight>B.clientHeight-u&&(c.style.overflowY="auto");c.style.overflowX="hidden";if(p&&(p=document.createElement("img"),p.setAttribute("src",Dialog.prototype.closeImage),
+p.setAttribute("title",mxResources.get("close")),p.className="geDialogClose",p.style.top=I+14+"px",p.style.left=D+e+38-q+"px",p.style.zIndex=this.zIndex,mxEvent.addListener(p,"click",mxUtils.bind(this,function(){b.hideDialog(!0)})),document.body.appendChild(p),this.dialogImg=p,!m)){var G=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(b){G=!0}),null,mxUtils.bind(this,function(d){G&&(b.hideDialog(!0),G=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var f=l();
+null!=f&&(n=e=f.w,v=k=f.h)}f=mxUtils.getDocumentSize();x=f.height;this.bg.style.height=x+"px";Editor.inlineFullscreen||null==b.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px");D=Math.max(1,Math.round((f.width-e-u)/2));I=Math.max(1,Math.round((x-k-b.footerHeight)/3));e=null!=document.body?Math.min(n,document.body.scrollWidth-u):n;k=Math.min(v,x-u);f=this.getPosition(D,I,e,k);D=f.x;I=f.y;B.style.left=D+"px";B.style.top=I+"px";B.style.width=e+"px";B.style.height=k+"px";!d&&
+c.clientHeight>B.clientHeight-u&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=I+14+"px",this.dialogImg.style.left=D+e+38-q+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=t;this.container=B;b.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
Dialog.prototype.noColorImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzRDlBMUUwODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzRDlBMUUxODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTNEOUExREU4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTNEOUExREY4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5xh3fmAAAABlBMVEX////MzMw46qqDAAAAGElEQVR42mJggAJGKGAYIIGBth8KAAIMAEUQAIElnLuQAAAAAElFTkSuQmCC":IMAGE_PATH+
"/nocolor.png";Dialog.prototype.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEV7mr3///+wksspAAAAAnRSTlP/AOW3MEoAAAAdSURBVAgdY9jXwCDDwNDRwHCwgeExmASygSL7GgB12QiqNHZZIwAAAABJRU5ErkJggg==":IMAGE_PATH+"/close.png";
Dialog.prototype.clearImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQAKAIABAMDAwP///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUIzOEM1NzI4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUIzOEM1NzM4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QjM4QzU3MDg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QjM4QzU3MTg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAEALAAAAAANAAoAAAIXTGCJebD9jEOTqRlttXdrB32PJ2ncyRQAOw==":IMAGE_PATH+
"/clear.gif";Dialog.prototype.bgOpacity=80;Dialog.prototype.getPosition=function(b,c){return new mxPoint(b,c)};Dialog.prototype.close=function(b,c){if(null!=this.onDialogClose){if(0==this.onDialogClose(b,c))return!1;this.onDialogClose=null}null!=this.dialogImg&&(this.dialogImg.parentNode.removeChild(this.dialogImg),this.dialogImg=null);null!=this.bg&&null!=this.bg.parentNode&&this.bg.parentNode.removeChild(this.bg);mxEvent.removeListener(window,"resize",this.resizeListener);this.container.parentNode.removeChild(this.container)};
var ErrorDialog=function(b,c,e,k,g,p,t,d,f,l,m){f=null!=f?f:!0;var q=document.createElement("div");q.style.textAlign="center";if(null!=c){var n=document.createElement("div");n.style.padding="0px";n.style.margin="0px";n.style.fontSize="18px";n.style.paddingBottom="16px";n.style.marginBottom="10px";n.style.borderBottom="1px solid #c0c0c0";n.style.color="gray";n.style.whiteSpace="nowrap";n.style.textOverflow="ellipsis";n.style.overflow="hidden";mxUtils.write(n,c);n.setAttribute("title",c);q.appendChild(n)}c=
-document.createElement("div");c.style.lineHeight="1.2em";c.style.padding="6px";c.innerHTML=e;q.appendChild(c);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=p&&(c=mxUtils.button(mxResources.get("tryAgain"),function(){b.hideDialog();p()}),c.className="geBtn",e.appendChild(c),e.style.textAlign="center");null!=l&&(l=mxUtils.button(l,function(){null!=m&&m()}),l.className="geBtn",e.appendChild(l));var u=mxUtils.button(k,function(){f&&b.hideDialog();null!=g&&g()});
-u.className="geBtn";e.appendChild(u);null!=t&&(k=mxUtils.button(t,function(){f&&b.hideDialog();null!=d&&d()}),k.className="geBtn gePrimaryBtn",e.appendChild(k));this.init=function(){u.focus()};q.appendChild(e);this.container=q},PrintDialog=function(b,c){this.create(b,c)};
+document.createElement("div");c.style.lineHeight="1.2em";c.style.padding="6px";c.innerHTML=e;q.appendChild(c);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=p&&(c=mxUtils.button(mxResources.get("tryAgain"),function(){b.hideDialog();p()}),c.className="geBtn",e.appendChild(c),e.style.textAlign="center");null!=l&&(l=mxUtils.button(l,function(){null!=m&&m()}),l.className="geBtn",e.appendChild(l));var v=mxUtils.button(k,function(){f&&b.hideDialog();null!=g&&g()});
+v.className="geBtn";e.appendChild(v);null!=t&&(k=mxUtils.button(t,function(){f&&b.hideDialog();null!=d&&d()}),k.className="geBtn gePrimaryBtn",e.appendChild(k));this.init=function(){v.focus()};q.appendChild(e);this.container=q},PrintDialog=function(b,c){this.create(b,c)};
PrintDialog.prototype.create=function(b){function c(b){var f=d.checked||l.checked,c=parseInt(q.value)/100;isNaN(c)&&(c=1,q.value="100%");var c=.75*c,g=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,k=1/e.pageScale;if(f){var n=d.checked?1:parseInt(m.value);isNaN(n)||(k=mxUtils.getScaleForPageCount(n,e,g))}e.getGraphBounds();var p=n=0,g=mxRectangle.fromRectangle(g);g.width=Math.ceil(g.width*c);g.height=Math.ceil(g.height*c);k*=c;!f&&e.pageVisible?(c=e.getPageLayout(),n-=c.x*g.width,p-=c.y*g.height):
f=!0;f=PrintDialog.createPrintPreview(e,k,g,0,n,p,f);f.open();b&&PrintDialog.printPreview(f)}var e=b.editor.graph,k,g,p=document.createElement("table");p.style.width="100%";p.style.height="100%";var t=document.createElement("tbody");k=document.createElement("tr");var d=document.createElement("input");d.setAttribute("type","checkbox");g=document.createElement("td");g.setAttribute("colspan","2");g.style.fontSize="10pt";g.appendChild(d);var f=document.createElement("span");mxUtils.write(f," "+mxResources.get("fitPage"));
g.appendChild(f);mxEvent.addListener(f,"click",function(b){d.checked=!d.checked;l.checked=!d.checked;mxEvent.consume(b)});mxEvent.addListener(d,"change",function(){l.checked=!d.checked});k.appendChild(g);t.appendChild(k);k=k.cloneNode(!1);var l=document.createElement("input");l.setAttribute("type","checkbox");g=document.createElement("td");g.style.fontSize="10pt";g.appendChild(l);f=document.createElement("span");mxUtils.write(f," "+mxResources.get("posterPrint")+":");g.appendChild(f);mxEvent.addListener(f,
@@ -2084,32 +2084,32 @@ g.style.paddingTop="20px";g.setAttribute("align","right");f=mxUtils.button(mxRes
g.appendChild(f);k.appendChild(g);t.appendChild(k);p.appendChild(t);this.container=p};PrintDialog.printPreview=function(b){try{if(null!=b.wnd){var c=function(){b.wnd.focus();b.wnd.print();b.wnd.close()};mxClient.IS_GC?window.setTimeout(c,500):c()}}catch(e){}};
PrintDialog.createPrintPreview=function(b,c,e,k,g,p,t){c=new mxPrintPreview(b,c,e,k,g,p);c.title=mxResources.get("preview");c.printBackgroundImage=!0;c.autoOrigin=t;b=b.background;if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";c.backgroundColor=b;var d=c.writeHead;c.writeHead=function(b){d.apply(this,arguments);b.writeln('<style type="text/css">');b.writeln("@media screen {");b.writeln(" body > div { padding:30px;box-sizing:content-box; }");b.writeln("}");b.writeln("</style>")};return c};
PrintDialog.previewEnabled=!0;
-var PageSetupDialog=function(b){function c(){null==m||m==mxConstants.NONE?(l.style.backgroundColor="",l.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(l.style.backgroundColor=m,l.style.backgroundImage="")}function e(){var d=v;null!=d&&Graph.isPageLink(d.src)&&(d=b.createImageForPageLink(d.src,null));null!=d&&null!=d.src?(u.setAttribute("src",d.src),u.style.display=""):(u.removeAttribute("src"),u.style.display="none")}var k=b.editor.graph,g,p,t=document.createElement("table");t.style.width=
+var PageSetupDialog=function(b){function c(){null==m||m==mxConstants.NONE?(l.style.backgroundColor="",l.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(l.style.backgroundColor=m,l.style.backgroundImage="")}function e(){var d=u;null!=d&&Graph.isPageLink(d.src)&&(d=b.createImageForPageLink(d.src,null));null!=d&&null!=d.src?(v.setAttribute("src",d.src),v.style.display=""):(v.removeAttribute("src"),v.style.display="none")}var k=b.editor.graph,g,p,t=document.createElement("table");t.style.width=
"100%";t.style.height="100%";var d=document.createElement("tbody");g=document.createElement("tr");p=document.createElement("td");p.style.verticalAlign="top";p.style.fontSize="10pt";mxUtils.write(p,mxResources.get("paperSize")+":");g.appendChild(p);p=document.createElement("td");p.style.verticalAlign="top";p.style.fontSize="10pt";var f=PageSetupDialog.addPageFormatPanel(p,"pagesetupdialog",k.pageFormat);g.appendChild(p);d.appendChild(g);g=document.createElement("tr");p=document.createElement("td");
mxUtils.write(p,mxResources.get("background")+":");g.appendChild(p);p=document.createElement("td");p.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var l=document.createElement("button");l.style.width="22px";l.style.height="22px";l.style.cursor="pointer";l.style.marginRight="20px";l.style.backgroundPosition="center center";l.style.backgroundRepeat="no-repeat";mxClient.IS_FF&&(l.style.position="relative",l.style.top="-6px");var m=k.background;c();mxEvent.addListener(l,
"click",function(d){b.pickColor(m||"none",function(b){m=b;c()});mxEvent.consume(d)});p.appendChild(l);mxUtils.write(p,mxResources.get("gridSize")+":");var q=document.createElement("input");q.setAttribute("type","number");q.setAttribute("min","0");q.style.width="40px";q.style.marginLeft="6px";q.value=k.getGridSize();p.appendChild(q);mxEvent.addListener(q,"change",function(){var b=parseInt(q.value);q.value=Math.max(1,isNaN(b)?k.getGridSize():b)});g.appendChild(p);d.appendChild(g);g=document.createElement("tr");
-p=document.createElement("td");mxUtils.write(p,mxResources.get("image")+":");g.appendChild(p);p=document.createElement("td");var n=document.createElement("button");n.className="geBtn";n.style.margin="0px";mxUtils.write(n,mxResources.get("change")+"...");var u=document.createElement("img");u.setAttribute("valign","middle");u.style.verticalAlign="middle";u.style.border="1px solid lightGray";u.style.borderRadius="4px";u.style.marginRight="14px";u.style.maxWidth="100px";u.style.cursor="pointer";u.style.height=
-"60px";u.style.padding="4px";var v=k.backgroundImage,y=function(d){b.showBackgroundImageDialog(function(b,d){d||(v=b,e())},v);mxEvent.consume(d)};mxEvent.addListener(n,"click",y);mxEvent.addListener(u,"click",y);e();p.appendChild(u);p.appendChild(n);g.appendChild(p);d.appendChild(g);g=document.createElement("tr");p=document.createElement("td");p.colSpan=2;p.style.paddingTop="16px";p.setAttribute("align","right");n=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});n.className="geBtn";
-b.editor.cancelFirst&&p.appendChild(n);y=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();var d=parseInt(q.value);isNaN(d)||k.gridSize===d||k.setGridSize(d);d=new ChangePageSetup(b,m,v,f.get());d.ignoreColor=k.background==m;d.ignoreImage=(null!=k.backgroundImage?k.backgroundImage.src:null)===(null!=v?v.src:null);k.pageFormat.width==d.previousFormat.width&&k.pageFormat.height==d.previousFormat.height&&d.ignoreColor&&d.ignoreImage||k.model.execute(d)});y.className="geBtn gePrimaryBtn";
+p=document.createElement("td");mxUtils.write(p,mxResources.get("image")+":");g.appendChild(p);p=document.createElement("td");var n=document.createElement("button");n.className="geBtn";n.style.margin="0px";mxUtils.write(n,mxResources.get("change")+"...");var v=document.createElement("img");v.setAttribute("valign","middle");v.style.verticalAlign="middle";v.style.border="1px solid lightGray";v.style.borderRadius="4px";v.style.marginRight="14px";v.style.maxWidth="100px";v.style.cursor="pointer";v.style.height=
+"60px";v.style.padding="4px";var u=k.backgroundImage,y=function(d){b.showBackgroundImageDialog(function(b,d){d||(u=b,e())},u);mxEvent.consume(d)};mxEvent.addListener(n,"click",y);mxEvent.addListener(v,"click",y);e();p.appendChild(v);p.appendChild(n);g.appendChild(p);d.appendChild(g);g=document.createElement("tr");p=document.createElement("td");p.colSpan=2;p.style.paddingTop="16px";p.setAttribute("align","right");n=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});n.className="geBtn";
+b.editor.cancelFirst&&p.appendChild(n);y=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();var d=parseInt(q.value);isNaN(d)||k.gridSize===d||k.setGridSize(d);d=new ChangePageSetup(b,m,u,f.get());d.ignoreColor=k.background==m;d.ignoreImage=(null!=k.backgroundImage?k.backgroundImage.src:null)===(null!=u?u.src:null);k.pageFormat.width==d.previousFormat.width&&k.pageFormat.height==d.previousFormat.height&&d.ignoreColor&&d.ignoreImage||k.model.execute(d)});y.className="geBtn gePrimaryBtn";
p.appendChild(y);b.editor.cancelFirst||p.appendChild(n);g.appendChild(p);d.appendChild(g);t.appendChild(d);this.container=t};
-PageSetupDialog.addPageFormatPanel=function(b,c,e,k){function g(b,c,l){if(l||q!=document.activeElement&&n!=document.activeElement){b=!1;for(c=0;c<v.length;c++)l=v[c],H?"custom"==l.key&&(d.value=l.key,H=!1):null!=l.format&&("a4"==l.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==l.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==l.format.width&&
+PageSetupDialog.addPageFormatPanel=function(b,c,e,k){function g(b,c,l){if(l||q!=document.activeElement&&n!=document.activeElement){b=!1;for(c=0;c<u.length;c++)l=u[c],I?"custom"==l.key&&(d.value=l.key,I=!1):null!=l.format&&("a4"==l.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==l.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==l.format.width&&
e.height==l.format.height?(d.value=l.key,p.setAttribute("checked","checked"),p.defaultChecked=!0,p.checked=!0,t.removeAttribute("checked"),t.defaultChecked=!1,t.checked=!1,b=!0):e.width==l.format.height&&e.height==l.format.width&&(d.value=l.key,p.removeAttribute("checked"),p.defaultChecked=!1,p.checked=!1,t.setAttribute("checked","checked"),t.defaultChecked=!0,b=t.checked=!0));b?(f.style.display="",m.style.display="none"):(q.value=e.width/100,n.value=e.height/100,p.setAttribute("checked","checked"),
d.value="custom",f.style.display="none",m.style.display="")}}c="format-"+c;var p=document.createElement("input");p.setAttribute("name",c);p.setAttribute("type","radio");p.setAttribute("value","portrait");var t=document.createElement("input");t.setAttribute("name",c);t.setAttribute("type","radio");t.setAttribute("value","landscape");var d=document.createElement("select");d.style.marginBottom="8px";d.style.borderRadius="4px";d.style.border="1px solid rgb(160, 160, 160)";d.style.width="206px";var f=
document.createElement("div");f.style.marginLeft="4px";f.style.width="210px";f.style.height="24px";p.style.marginRight="6px";f.appendChild(p);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));f.appendChild(c);t.style.marginLeft="10px";t.style.marginRight="6px";f.appendChild(t);var l=document.createElement("span");l.style.width="100px";mxUtils.write(l,mxResources.get("landscape"));f.appendChild(l);var m=document.createElement("div");m.style.marginLeft=
-"4px";m.style.width="210px";m.style.height="24px";var q=document.createElement("input");q.setAttribute("size","7");q.style.textAlign="right";m.appendChild(q);mxUtils.write(m," in x ");var n=document.createElement("input");n.setAttribute("size","7");n.style.textAlign="right";m.appendChild(n);mxUtils.write(m," in");f.style.display="none";m.style.display="none";for(var u={},v=PageSetupDialog.getFormats(),y=0;y<v.length;y++){var x=v[y];u[x.key]=x;var D=document.createElement("option");D.setAttribute("value",
-x.key);mxUtils.write(D,x.title);d.appendChild(D)}var H=!1;g();b.appendChild(d);mxUtils.br(b);b.appendChild(f);b.appendChild(m);var C=e,F=function(b,c){var l=u[d.value];null!=l.format?(q.value=l.format.width/100,n.value=l.format.height/100,m.style.display="none",f.style.display=""):(f.style.display="none",m.style.display="");l=parseFloat(q.value);if(isNaN(l)||0>=l)q.value=e.width/100;l=parseFloat(n.value);if(isNaN(l)||0>=l)n.value=e.height/100;l=new mxRectangle(0,0,Math.floor(100*parseFloat(q.value)),
-Math.floor(100*parseFloat(n.value)));"custom"!=d.value&&t.checked&&(l=new mxRectangle(0,0,l.height,l.width));c&&H||l.width==C.width&&l.height==C.height||(C=l,null!=k&&k(C))};mxEvent.addListener(c,"click",function(b){p.checked=!0;F(b);mxEvent.consume(b)});mxEvent.addListener(l,"click",function(b){t.checked=!0;F(b);mxEvent.consume(b)});mxEvent.addListener(q,"blur",F);mxEvent.addListener(q,"click",F);mxEvent.addListener(n,"blur",F);mxEvent.addListener(n,"click",F);mxEvent.addListener(t,"change",F);mxEvent.addListener(p,
-"change",F);mxEvent.addListener(d,"change",function(b){H="custom"==d.value;F(b,!0)});F();return{set:function(b){e=b;g(null,null,!0)},get:function(){return C},widthInput:q,heightInput:n}};
+"4px";m.style.width="210px";m.style.height="24px";var q=document.createElement("input");q.setAttribute("size","7");q.style.textAlign="right";m.appendChild(q);mxUtils.write(m," in x ");var n=document.createElement("input");n.setAttribute("size","7");n.style.textAlign="right";m.appendChild(n);mxUtils.write(m," in");f.style.display="none";m.style.display="none";for(var v={},u=PageSetupDialog.getFormats(),y=0;y<u.length;y++){var x=u[y];v[x.key]=x;var D=document.createElement("option");D.setAttribute("value",
+x.key);mxUtils.write(D,x.title);d.appendChild(D)}var I=!1;g();b.appendChild(d);mxUtils.br(b);b.appendChild(f);b.appendChild(m);var B=e,G=function(b,c){var l=v[d.value];null!=l.format?(q.value=l.format.width/100,n.value=l.format.height/100,m.style.display="none",f.style.display=""):(f.style.display="none",m.style.display="");l=parseFloat(q.value);if(isNaN(l)||0>=l)q.value=e.width/100;l=parseFloat(n.value);if(isNaN(l)||0>=l)n.value=e.height/100;l=new mxRectangle(0,0,Math.floor(100*parseFloat(q.value)),
+Math.floor(100*parseFloat(n.value)));"custom"!=d.value&&t.checked&&(l=new mxRectangle(0,0,l.height,l.width));c&&I||l.width==B.width&&l.height==B.height||(B=l,null!=k&&k(B))};mxEvent.addListener(c,"click",function(b){p.checked=!0;G(b);mxEvent.consume(b)});mxEvent.addListener(l,"click",function(b){t.checked=!0;G(b);mxEvent.consume(b)});mxEvent.addListener(q,"blur",G);mxEvent.addListener(q,"click",G);mxEvent.addListener(n,"blur",G);mxEvent.addListener(n,"click",G);mxEvent.addListener(t,"change",G);mxEvent.addListener(p,
+"change",G);mxEvent.addListener(d,"change",function(b){I="custom"==d.value;G(b,!0)});G();return{set:function(b){e=b;g(null,null,!0)},get:function(){return B},widthInput:q,heightInput:n}};
PageSetupDialog.getFormats=function(){return[{key:"letter",title:'US-Letter (8,5" x 11")',format:mxConstants.PAGE_FORMAT_LETTER_PORTRAIT},{key:"legal",title:'US-Legal (8,5" x 14")',format:new mxRectangle(0,0,850,1400)},{key:"tabloid",title:'US-Tabloid (11" x 17")',format:new mxRectangle(0,0,1100,1700)},{key:"executive",title:'US-Executive (7" x 10")',format:new mxRectangle(0,0,700,1E3)},{key:"a0",title:"A0 (841 mm x 1189 mm)",format:new mxRectangle(0,0,3300,4681)},{key:"a1",title:"A1 (594 mm x 841 mm)",
format:new mxRectangle(0,0,2339,3300)},{key:"a2",title:"A2 (420 mm x 594 mm)",format:new mxRectangle(0,0,1654,2336)},{key:"a3",title:"A3 (297 mm x 420 mm)",format:new mxRectangle(0,0,1169,1654)},{key:"a4",title:"A4 (210 mm x 297 mm)",format:mxConstants.PAGE_FORMAT_A4_PORTRAIT},{key:"a5",title:"A5 (148 mm x 210 mm)",format:new mxRectangle(0,0,583,827)},{key:"a6",title:"A6 (105 mm x 148 mm)",format:new mxRectangle(0,0,413,583)},{key:"a7",title:"A7 (74 mm x 105 mm)",format:new mxRectangle(0,0,291,413)},
{key:"b4",title:"B4 (250 mm x 353 mm)",format:new mxRectangle(0,0,980,1390)},{key:"b5",title:"B5 (176 mm x 250 mm)",format:new mxRectangle(0,0,690,980)},{key:"16-9",title:"16:9 (1600 x 900)",format:new mxRectangle(0,0,900,1600)},{key:"16-10",title:"16:10 (1920 x 1200)",format:new mxRectangle(0,0,1200,1920)},{key:"4-3",title:"4:3 (1600 x 1200)",format:new mxRectangle(0,0,1200,1600)},{key:"custom",title:mxResources.get("custom"),format:null}]};
-var FilenameDialog=function(b,c,e,k,g,p,t,d,f,l,m,q){f=null!=f?f:!0;var n,u,v=document.createElement("table"),y=document.createElement("tbody");v.style.position="absolute";v.style.top="30px";v.style.left="20px";n=document.createElement("tr");u=document.createElement("td");u.style.textOverflow="ellipsis";u.style.textAlign="right";u.style.maxWidth="100px";u.style.fontSize="10pt";u.style.width="84px";mxUtils.write(u,(g||mxResources.get("filename"))+":");n.appendChild(u);var x=document.createElement("input");
-x.setAttribute("value",c||"");x.style.marginLeft="4px";x.style.width=null!=q?q+"px":"180px";var D=mxUtils.button(e,function(){if(null==p||p(x.value))f&&b.hideDialog(),k(x.value)});D.className="geBtn gePrimaryBtn";this.init=function(){if(null!=g||null==t)if(x.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?x.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var b=v.parentNode;if(null!=b){var d=null;mxEvent.addListener(b,"dragleave",function(b){null!=d&&(d.style.backgroundColor=
+var FilenameDialog=function(b,c,e,k,g,p,t,d,f,l,m,q){f=null!=f?f:!0;var n,v,u=document.createElement("table"),y=document.createElement("tbody");u.style.position="absolute";u.style.top="30px";u.style.left="20px";n=document.createElement("tr");v=document.createElement("td");v.style.textOverflow="ellipsis";v.style.textAlign="right";v.style.maxWidth="100px";v.style.fontSize="10pt";v.style.width="84px";mxUtils.write(v,(g||mxResources.get("filename"))+":");n.appendChild(v);var x=document.createElement("input");
+x.setAttribute("value",c||"");x.style.marginLeft="4px";x.style.width=null!=q?q+"px":"180px";var D=mxUtils.button(e,function(){if(null==p||p(x.value))f&&b.hideDialog(),k(x.value)});D.className="geBtn gePrimaryBtn";this.init=function(){if(null!=g||null==t)if(x.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?x.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var b=u.parentNode;if(null!=b){var d=null;mxEvent.addListener(b,"dragleave",function(b){null!=d&&(d.style.backgroundColor=
"",d=null);b.stopPropagation();b.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(b){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=x,d.style.backgroundColor="#ebf2f9");b.stopPropagation();b.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=d&&(d.style.backgroundColor="",d=null);0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")&&(x.value=decodeURIComponent(b.dataTransfer.getData("text/uri-list")),D.click());b.stopPropagation();
-b.preventDefault()}))}}};u=document.createElement("td");u.style.whiteSpace="nowrap";u.appendChild(x);n.appendChild(u);if(null!=g||null==t)y.appendChild(n),null!=m&&(u.appendChild(FilenameDialog.createTypeHint(b,x,m)),null!=b.editor.diagramFileTypes&&(n=document.createElement("tr"),u=document.createElement("td"),u.style.textOverflow="ellipsis",u.style.textAlign="right",u.style.maxWidth="100px",u.style.fontSize="10pt",u.style.width="84px",mxUtils.write(u,mxResources.get("type")+":"),n.appendChild(u),
-u=document.createElement("td"),u.style.whiteSpace="nowrap",n.appendChild(u),c=FilenameDialog.createFileTypes(b,x,b.editor.diagramFileTypes),c.style.marginLeft="4px",c.style.width="198px",u.appendChild(c),x.style.width=null!=q?q-40+"px":"190px",n.appendChild(u),y.appendChild(n)));null!=t&&(n=document.createElement("tr"),u=document.createElement("td"),u.colSpan=2,u.appendChild(t),n.appendChild(u),y.appendChild(n));n=document.createElement("tr");u=document.createElement("td");u.colSpan=2;u.style.paddingTop=
-null!=m?"12px":"20px";u.style.whiteSpace="nowrap";u.setAttribute("align","right");m=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog();null!=l&&l()});m.className="geBtn";b.editor.cancelFirst&&u.appendChild(m);null!=d&&(q=mxUtils.button(mxResources.get("help"),function(){b.editor.graph.openLink(d)}),q.className="geBtn",u.appendChild(q));mxEvent.addListener(x,"keypress",function(b){13==b.keyCode&&D.click()});u.appendChild(D);b.editor.cancelFirst||u.appendChild(m);n.appendChild(u);y.appendChild(n);
-v.appendChild(y);this.container=v};FilenameDialog.filenameHelpLink=null;
+b.preventDefault()}))}}};v=document.createElement("td");v.style.whiteSpace="nowrap";v.appendChild(x);n.appendChild(v);if(null!=g||null==t)y.appendChild(n),null!=m&&(v.appendChild(FilenameDialog.createTypeHint(b,x,m)),null!=b.editor.diagramFileTypes&&(n=document.createElement("tr"),v=document.createElement("td"),v.style.textOverflow="ellipsis",v.style.textAlign="right",v.style.maxWidth="100px",v.style.fontSize="10pt",v.style.width="84px",mxUtils.write(v,mxResources.get("type")+":"),n.appendChild(v),
+v=document.createElement("td"),v.style.whiteSpace="nowrap",n.appendChild(v),c=FilenameDialog.createFileTypes(b,x,b.editor.diagramFileTypes),c.style.marginLeft="4px",c.style.width="198px",v.appendChild(c),x.style.width=null!=q?q-40+"px":"190px",n.appendChild(v),y.appendChild(n)));null!=t&&(n=document.createElement("tr"),v=document.createElement("td"),v.colSpan=2,v.appendChild(t),n.appendChild(v),y.appendChild(n));n=document.createElement("tr");v=document.createElement("td");v.colSpan=2;v.style.paddingTop=
+null!=m?"12px":"20px";v.style.whiteSpace="nowrap";v.setAttribute("align","right");m=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog();null!=l&&l()});m.className="geBtn";b.editor.cancelFirst&&v.appendChild(m);null!=d&&(q=mxUtils.button(mxResources.get("help"),function(){b.editor.graph.openLink(d)}),q.className="geBtn",v.appendChild(q));mxEvent.addListener(x,"keypress",function(b){13==b.keyCode&&D.click()});v.appendChild(D);b.editor.cancelFirst||v.appendChild(m);n.appendChild(v);y.appendChild(n);
+u.appendChild(y);this.container=u};FilenameDialog.filenameHelpLink=null;
FilenameDialog.createTypeHint=function(b,c,e){var k=document.createElement("img");k.style.backgroundPosition="center bottom";k.style.backgroundRepeat="no-repeat";k.style.margin="2px 0 0 4px";k.style.verticalAlign="top";k.style.cursor="pointer";k.style.height="16px";k.style.width="16px";mxUtils.setOpacity(k,70);var g=function(){k.setAttribute("src",Editor.helpImage);k.setAttribute("title",mxResources.get("help"));for(var b=0;b<e.length;b++)if(0<e[b].ext.length&&c.value.toLowerCase().substring(c.value.length-
e[b].ext.length-1)=="."+e[b].ext){k.setAttribute("title",mxResources.get(e[b].title));break}};mxEvent.addListener(c,"keyup",g);mxEvent.addListener(c,"change",g);mxEvent.addListener(k,"click",function(c){var e=k.getAttribute("title");k.getAttribute("src")==Editor.helpImage?b.editor.graph.openLink(FilenameDialog.filenameHelpLink):""!=e&&b.showError(null,e,mxResources.get("help"),function(){b.editor.graph.openLink(FilenameDialog.filenameHelpLink)},null,mxResources.get("ok"),null,null,null,340,90);mxEvent.consume(c)});
g();return k};
@@ -2123,8 +2123,8 @@ mxGraphView.prototype.validateBackgroundStyles=function(){var b=this.graph,d=nul
b.defaultPageBorderColor,b.container.className="geDiagramContainer geDiagramBackdrop",f.style.backgroundImage="none",f.style.backgroundColor=""):(b.container.className="geDiagramContainer",f.style.backgroundPosition=e,f.style.backgroundColor=d,f.style.backgroundImage=c)};mxGraphView.prototype.createSvgGrid=function(b){for(var d=this.graph.gridSize*this.scale;d<this.minGridSize;)d*=2;for(var f=this.gridSteps*d,c=[],e=1;e<this.gridSteps;e++){var g=e*d;c.push("M 0 "+g+" L "+f+" "+g+" M "+g+" 0 L "+g+
" "+f)}return'<svg width="'+f+'" height="'+f+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+f+'" height="'+f+'" patternUnits="userSpaceOnUse"><path d="'+c.join(" ")+'" fill="none" stroke="'+b+'" opacity="0.2" stroke-width="1"/><path d="M '+f+" 0 L 0 0 0 "+f+'" 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 f=this.view.canvas;null!=f.ownerSVGElement&&(f=f.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";f.style.backgroundPosition=l}};mxGraph.prototype.updatePageBreaks=function(b,d,f){var c=this.view.scale,e=this.view.translate,g=this.pageFormat,k=c*this.pageScale,p=this.view.getBackgroundPageBounds();
-d=p.width;f=p.height;var v=new mxRectangle(c*e.x,c*e.y,g.width*k,g.height*k),t=(b=b&&Math.min(v.width,v.height)>this.minPageBreakDist)?Math.ceil(f/v.height)-1:0,x=b?Math.ceil(d/v.width)-1:0,D=p.x+d,H=p.y+f;null==this.horizontalPageBreaks&&0<t&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<x&&(this.verticalPageBreaks=[]);b=mxUtils.bind(this,function(b){if(null!=b){for(var d=b==this.horizontalPageBreaks?t:x,f=0;f<=d;f++){var c=b==this.horizontalPageBreaks?[new mxPoint(Math.round(p.x),
-Math.round(p.y+(f+1)*v.height)),new mxPoint(Math.round(D),Math.round(p.y+(f+1)*v.height))]:[new mxPoint(Math.round(p.x+(f+1)*v.width),Math.round(p.y)),new mxPoint(Math.round(p.x+(f+1)*v.width),Math.round(H))];null!=b[f]?(b[f].points=c,b[f].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[f]=c)}for(f=d;f<b.length;f++)b[f].destroy();b.splice(d,b.length-d)}});b(this.horizontalPageBreaks);
+d=p.width;f=p.height;var u=new mxRectangle(c*e.x,c*e.y,g.width*k,g.height*k),t=(b=b&&Math.min(u.width,u.height)>this.minPageBreakDist)?Math.ceil(f/u.height)-1:0,x=b?Math.ceil(d/u.width)-1:0,D=p.x+d,I=p.y+f;null==this.horizontalPageBreaks&&0<t&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<x&&(this.verticalPageBreaks=[]);b=mxUtils.bind(this,function(b){if(null!=b){for(var d=b==this.horizontalPageBreaks?t:x,f=0;f<=d;f++){var c=b==this.horizontalPageBreaks?[new mxPoint(Math.round(p.x),
+Math.round(p.y+(f+1)*u.height)),new mxPoint(Math.round(D),Math.round(p.y+(f+1)*u.height))]:[new mxPoint(Math.round(p.x+(f+1)*u.width),Math.round(p.y)),new mxPoint(Math.round(p.x+(f+1)*u.width),Math.round(I))];null!=b[f]?(b[f].points=c,b[f].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[f]=c)}for(f=d;f<b.length;f++)b[f].destroy();b.splice(d,b.length-d)}});b(this.horizontalPageBreaks);
b(this.verticalPageBreaks)};var c=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(b,d,f){for(var l=0;l<d.length;l++){if(this.graph.isTableCell(d[l])||this.graph.isTableRow(d[l]))return!1;if(this.graph.getModel().isVertex(d[l])){var e=this.graph.getCellGeometry(d[l]);if(null!=e&&e.relative)return!1}}return c.apply(this,arguments)};var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var b=
e.apply(this,arguments);b.intersects=mxUtils.bind(this,function(d,f){return this.isConnecting()?!0:mxCellMarker.prototype.intersects.apply(b,arguments)});return b};mxGraphView.prototype.createBackgroundPageShape=function(b){return new mxRectangleShape(b,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var b=this.getGraphBounds(),d=0<b.width?b.x/this.scale-this.translate.x:0,f=0<b.height?b.y/this.scale-this.translate.y:0,c=this.graph.pageFormat,
e=this.graph.pageScale,g=c.width*e,c=c.height*e,e=Math.floor(Math.min(0,d)/g),k=Math.floor(Math.min(0,f)/c);return new mxRectangle(this.scale*(this.translate.x+e*g),this.scale*(this.translate.y+k*c),this.scale*(Math.ceil(Math.max(1,d+b.width/this.scale)/g)-e)*g,this.scale*(Math.ceil(Math.max(1,f+b.height/this.scale)/c)-k)*c)};var k=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(b,d){k.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||
@@ -2134,21 +2134,21 @@ this.graph.isCellSelected(b)&&!this.graph.isToggleEvent(f.getEvent())||this.grap
b.x)*c,(f.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 p="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 f=b.clone();f.style="";var c=k.getCellStyle(f);b=[];var f=[],e;for(e in d.style)c[e]!=d.style[e]&&(b.push(d.style[e]),f.push(e));for(var l=k.getModel().getStyle(d.cell),g=null!=l?l.split(";"):[],l=0;l<g.length;l++){var m=g[l],q=m.indexOf("=");if(0<=q){e=m.substring(0,q);var n=m.substring(q+1);null!=
-c[e]&&"none"==n&&(b.push(n),f.push(e))}}k.getModel().isEdge(d.cell)?k.currentEdgeStyle={}:k.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",f,"values",b,"cells",[d.cell]))}}catch(la){this.handleError(la)}};this.clearDefaultStyle=function(){k.currentEdgeStyle=mxUtils.clone(k.defaultEdgeStyle);k.currentVertexStyle=mxUtils.clone(k.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var f=["fontFamily","fontSource","fontSize",
+c[e]&&"none"==n&&(b.push(n),f.push(e))}}k.getModel().isEdge(d.cell)?k.currentEdgeStyle={}:k.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",f,"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 f=["fontFamily","fontSource","fontSize",
"fontColor"];for(c=0;c<f.length;c++)0>mxUtils.indexOf(p,f[c])&&p.push(f[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"],["align","verticalAlign"],["opacity"],["html"]];for(c=0;c<m.length;c++)for(e=0;e<m[c].length;e++)p.push(m[c][e]);for(c=0;c<t.length;c++)0>
-mxUtils.indexOf(p,t[c])&&p.push(t[c]);var q=function(b,f,c,e,l,g,q){e=null!=e?e:k.currentVertexStyle;l=null!=l?l:k.currentEdgeStyle;g=null!=g?g:!0;c=null!=c?c:k.getModel();if(q){q=[];for(var G=0;G<b.length;G++)q=q.concat(c.getDescendants(b[G]));b=q}c.beginUpdate();try{for(G=0;G<b.length;G++){var n=b[G],A;if(f)A=["fontSize","fontFamily","fontColor"];else{var v=c.getStyle(n),u=null!=v?v.split(";"):[];A=p.slice();for(var J=0;J<u.length;J++){var x=u[J],N=x.indexOf("=");if(0<=N){var t=x.substring(0,N),
-y=mxUtils.indexOf(A,t);0<=y&&A.splice(y,1);for(q=0;q<m.length;q++){var Z=m[q];if(0<=mxUtils.indexOf(Z,t))for(var C=0;C<Z.length;C++){var B=mxUtils.indexOf(A,Z[C]);0<=B&&A.splice(B,1)}}}}}var F=c.isEdge(n);q=F?l:e;for(var Q=c.getStyle(n),J=0;J<A.length;J++){var t=A[J],D=q[t];null!=D&&"edgeStyle"!=t&&("shape"!=t||F)&&(!F||g||0>mxUtils.indexOf(d,t))&&(Q=mxUtils.setStyle(Q,t,D))}Editor.simpleLabels&&(Q=mxUtils.setStyle(mxUtils.setStyle(Q,"html",null),"whiteSpace",null));c.setStyle(n,Q)}}finally{c.endUpdate()}return b};
+mxUtils.indexOf(p,t[c])&&p.push(t[c]);var q=function(b,f,c,e,l,g,q){e=null!=e?e:k.currentVertexStyle;l=null!=l?l:k.currentEdgeStyle;g=null!=g?g:!0;c=null!=c?c:k.getModel();if(q){q=[];for(var H=0;H<b.length;H++)q=q.concat(c.getDescendants(b[H]));b=q}c.beginUpdate();try{for(H=0;H<b.length;H++){var n=b[H],A;if(f)A=["fontSize","fontFamily","fontColor"];else{var u=c.getStyle(n),v=null!=u?u.split(";"):[];A=p.slice();for(var J=0;J<v.length;J++){var x=v[J],N=x.indexOf("=");if(0<=N){var t=x.substring(0,N),
+y=mxUtils.indexOf(A,t);0<=y&&A.splice(y,1);for(q=0;q<m.length;q++){var aa=m[q];if(0<=mxUtils.indexOf(aa,t))for(var B=0;B<aa.length;B++){var C=mxUtils.indexOf(A,aa[B]);0<=C&&A.splice(C,1)}}}}}var G=c.isEdge(n);q=G?l:e;for(var Q=c.getStyle(n),J=0;J<A.length;J++){var t=A[J],D=q[t];null!=D&&"edgeStyle"!=t&&("shape"!=t||G)&&(!G||g||0>mxUtils.indexOf(d,t))&&(Q=mxUtils.setStyle(Q,t,D))}Editor.simpleLabels&&(Q=mxUtils.setStyle(mxUtils.setStyle(Q,"html",null),"whiteSpace",null));c.setStyle(n,Q)}}finally{c.endUpdate()}return b};
k.addListener("cellsInserted",function(b,d){q(d.getProperty("cells"),null,null,null,null,!0,!0)});k.addListener("textInserted",function(b,d){q(d.getProperty("cells"),!0)});this.insertHandler=q;this.createDivs();this.createUi();this.refresh();var n=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=n,this.menubarContainer.onmousedown=n,this.toolbarContainer.onselectstart=
n,this.toolbarContainer.onmousedown=n,this.diagramContainer.onselectstart=n,this.diagramContainer.onmousedown=n,this.sidebarContainer.onselectstart=n,this.sidebarContainer.onmousedown=n,this.formatContainer.onselectstart=n,this.formatContainer.onmousedown=n,this.footerContainer.onselectstart=n,this.footerContainer.onmousedown=n,null!=this.tabContainer&&(this.tabContainer.onselectstart=n));!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 n(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!=B.hoverIcons&&B.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 D=k.cellEditor.isStopEditingEvent;k.cellEditor.isStopEditingEvent=function(b){return D.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 C=!1,F=null,M=null,E=null,K=mxUtils.bind(this,function(){if(null!=this.toolbar&&C!=k.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var f=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),
-d.push(b));b=f}b=this.toolbar.fontMenu;f=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=F;this.toolbar.sizeMenu=M}C=k.cellEditor.isContentEditing();F=b;M=f;E=d}}),B=this,L=k.cellEditor.startEditing;k.cellEditor.startEditing=function(){L.apply(this,arguments);K();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!=B.toolbar&&(B.toolbar.setFontName(Graph.stripQuotes(d.fontFamily)),B.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 O=k.cellEditor.stopEditing;k.cellEditor.stopEditing=function(b,d){try{O.apply(this,arguments),K()}catch(W){B.handleError(W)}};
-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 ca=k.fireMouseEvent;k.fireMouseEvent=function(b,d,f){b==mxEvent.MOUSE_DOWN&&this.container.focus();ca.apply(this,arguments)};k.popupMenuHandler.autoExpand=!0;null!=this.menus&&(k.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(b,d,f){this.menus.createPopupMenu(b,d,f)}));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 f=[d.getProperty("cell")];d.getProperty("terminalInserted")&&(f.push(d.getProperty("terminal")),window.setTimeout(function(){null!=B.hoverIcons&&B.hoverIcons.update(k.view.getState(f[f.length-1]))},0));q(f)});this.addListener("styleChanged",mxUtils.bind(this,function(b,d){var c=d.getProperty("cells"),
+d;){if("geHint"==d.className)return!0;d=d.parentNode}}return n(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 v=
+k.graphHandler.start;k.graphHandler.start=function(){null!=C.hoverIcons&&C.hoverIcons.reset();v.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 u=
+!1,y=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(b,d){return u||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):(u=!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=
+"";u=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var x=k.panningHandler.isForcePanningEvent;k.panningHandler.isForcePanningEvent=function(b){return x.apply(this,arguments)||u||mxEvent.isMouseEvent(b.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(b.getEvent()))&&(!mxEvent.isControlDown(b.getEvent())&&mxEvent.isRightMouseButton(b.getEvent())||mxEvent.isMiddleMouseButton(b.getEvent()))};var D=k.cellEditor.isStopEditingEvent;k.cellEditor.isStopEditingEvent=function(b){return D.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 I=k.isZoomWheelEvent;k.isZoomWheelEvent=function(){return u||I.apply(this,arguments)};var B=!1,G=null,M=null,F=null,K=mxUtils.bind(this,function(){if(null!=this.toolbar&&B!=k.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var f=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),
+d.push(b));b=f}b=this.toolbar.fontMenu;f=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=G;this.toolbar.sizeMenu=M}B=k.cellEditor.isContentEditing();G=b;M=f;F=d}}),C=this,L=k.cellEditor.startEditing;k.cellEditor.startEditing=function(){L.apply(this,arguments);K();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 O=k.cellEditor.stopEditing;k.cellEditor.stopEditing=function(b,d){try{O.apply(this,arguments),K()}catch(Y){C.handleError(Y)}};
+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 da=k.fireMouseEvent;k.fireMouseEvent=function(b,d,f){b==mxEvent.MOUSE_DOWN&&this.container.focus();da.apply(this,arguments)};k.popupMenuHandler.autoExpand=!0;null!=this.menus&&(k.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(b,d,f){this.menus.createPopupMenu(b,d,f)}));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 f=[d.getProperty("cell")];d.getProperty("terminalInserted")&&(f.push(d.getProperty("terminal")),window.setTimeout(function(){null!=C.hoverIcons&&C.hoverIcons.update(k.view.getState(f[f.length-1]))},0));q(f)});this.addListener("styleChanged",mxUtils.bind(this,function(b,d){var c=d.getProperty("cells"),
e=!1,g=!1;if(0<c.length)for(var m=0;m<c.length&&(e=k.getModel().isVertex(c[m])||e,!(g=k.getModel().isEdge(c[m])||g)||!e);m++);else g=e=!0;for(var c=d.getProperty("keys"),q=d.getProperty("values"),m=0;m<c.length;m++){var n=0<=mxUtils.indexOf(f,c[m]);if("strokeColor"!=c[m]||null!=q[m]&&"none"!=q[m])if(0<=mxUtils.indexOf(t,c[m]))g||0<=mxUtils.indexOf(l,c[m])?null==q[m]?delete k.currentEdgeStyle[c[m]]:k.currentEdgeStyle[c[m]]=q[m]:e&&0<=mxUtils.indexOf(p,c[m])&&(null==q[m]?delete k.currentVertexStyle[c[m]]:
k.currentVertexStyle[c[m]]=q[m]);else if(0<=mxUtils.indexOf(p,c[m])){if(e||n)null==q[m]?delete k.currentVertexStyle[c[m]]:k.currentVertexStyle[c[m]]=q[m];if(g||n||0<=mxUtils.indexOf(l,c[m]))null==q[m]?delete k.currentEdgeStyle[c[m]]:k.currentEdgeStyle[c[m]]=q[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"==
@@ -2188,13 +2188,13 @@ e==mxConstants.ARROW_DIAMOND_THIN?"1"==k?"geSprite geSprite-"+b+"thindiamond":"g
e?"geSprite geSprite-"+b+"eronetoone":"ERmany"==e?"geSprite geSprite-"+b+"ermany":"ERoneToMany"==e?"geSprite geSprite-"+b+"eronetomany":"ERzeroToOne"==e?"geSprite geSprite-"+b+"eroneopt":"ERzeroToMany"==e?"geSprite geSprite-"+b+"ermanyopt":"geSprite geSprite-noarrow"};EditorUi.prototype.createMenus=function(){return null};
EditorUi.prototype.updatePasteActionStates=function(){var b=this.editor.graph,c=this.actions.get("paste"),e=this.actions.get("pasteHere");c.setEnabled(this.editor.graph.cellEditor.isContentEditing()||(!mxClient.IS_FF&&null!=navigator.clipboard||!mxClipboard.isEmpty())&&b.isEnabled()&&!b.isCellLocked(b.getDefaultParent()));e.setEnabled(c.isEnabled())};
EditorUi.prototype.initClipboard=function(){var b=this,c=mxClipboard.cut;mxClipboard.cut=function(e){e.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):c.apply(this,arguments);b.updatePasteActionStates()};mxClipboard.copy=function(c){var e=null;if(c.cellEditor.isContentEditing())document.execCommand("copy",!1,null);else{for(var e=e||c.getSelectionCells(),e=c.getExportableCells(c.model.getTopmostCells(e)),d={},f=c.createCellLookup(e),l=c.cloneCells(e,null,d),g=new mxGraphModel,k=g.getChildAt(g.getRoot(),
-0),n=0;n<l.length;n++){g.add(k,l[n]);var p=c.view.getState(e[n]);if(null!=p){var v=c.getCellGeometry(l[n]);null!=v&&v.relative&&!g.isEdge(e[n])&&null==f[mxObjectIdentity.get(g.getParent(e[n]))]&&(v.offset=null,v.relative=!1,v.x=p.x/p.view.scale-p.view.translate.x,v.y=p.y/p.view.scale-p.view.translate.y)}}c.updateCustomLinks(c.createCellMapping(d,f),l);mxClipboard.insertCount=1;mxClipboard.setCells(l)}b.updatePasteActionStates();return e};var e=mxClipboard.paste;mxClipboard.paste=function(c){var g=
+0),n=0;n<l.length;n++){g.add(k,l[n]);var p=c.view.getState(e[n]);if(null!=p){var u=c.getCellGeometry(l[n]);null!=u&&u.relative&&!g.isEdge(e[n])&&null==f[mxObjectIdentity.get(g.getParent(e[n]))]&&(u.offset=null,u.relative=!1,u.x=p.x/p.view.scale-p.view.translate.x,u.y=p.y/p.view.scale-p.view.translate.y)}}c.updateCustomLinks(c.createCellMapping(d,f),l);mxClipboard.insertCount=1;mxClipboard.setCells(l)}b.updatePasteActionStates();return e};var e=mxClipboard.paste;mxClipboard.paste=function(c){var g=
null;c.cellEditor.isContentEditing()?document.execCommand("paste",!1,null):g=e.apply(this,arguments);b.updatePasteActionStates();return g};var k=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){k.apply(this,arguments);b.updatePasteActionStates()};var g=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(c,e){g.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,f){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,f,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(),g=mxUtils.hasScrollbars(b.container),G=b.view.translate,m=b.view.scale,k=mxRectangle.fromRectangle(l);
-k.x=k.x/m-G.x;k.y=k.y/m-G.y;k.width/=m;k.height/=m;var G=b.container.scrollTop,q=b.container.scrollLeft,n=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)n+=3;var p=b.container.offsetWidth-n,n=b.container.offsetHeight-n;d=d?Math.max(.3,Math.min(f||1,p/k.width)):m;f=(p-d*k.width)/2/d;var v=0==this.lightboxVerticalDivider?0:(n-d*k.height)/this.lightboxVerticalDivider/d;g&&(f=Math.max(f,0),v=Math.max(v,0));if(g||l.width<p||l.height<n)b.view.scaleAndTranslate(d,Math.floor(f-
-k.x),Math.floor(v-k.y)),b.container.scrollTop=G*d/m,b.container.scrollLeft=q*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,f){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,f,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(),g=mxUtils.hasScrollbars(b.container),H=b.view.translate,m=b.view.scale,k=mxRectangle.fromRectangle(l);
+k.x=k.x/m-H.x;k.y=k.y/m-H.y;k.width/=m;k.height/=m;var H=b.container.scrollTop,q=b.container.scrollLeft,n=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)n+=3;var p=b.container.offsetWidth-n,n=b.container.offsetHeight-n;d=d?Math.max(.3,Math.min(f||1,p/k.width)):m;f=(p-d*k.width)/2/d;var u=0==this.lightboxVerticalDivider?0:(n-d*k.height)/this.lightboxVerticalDivider/d;g&&(f=Math.max(f,0),u=Math.max(u,0));if(g||l.width<p||l.height<n)b.view.scaleAndTranslate(d,Math.floor(f-
+k.x),Math.floor(u-k.y)),b.container.scrollTop=H*d/m,b.container.scrollLeft=q*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 g=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 p=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",p);p();var t=0,p=mxUtils.bind(this,function(b,d,f){t++;var c=document.createElement("span");c.style.paddingLeft="8px";c.style.paddingRight=
@@ -2202,27 +2202,27 @@ function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils
function(b){this.actions.get("previousPage").funct();mxEvent.consume(b)}),Editor.previousImage,mxResources.get("previousPage")),f=document.createElement("div");f.style.fontFamily=Editor.defaultHtmlFont;f.style.display="inline-block";f.style.verticalAlign="top";f.style.fontWeight="bold";f.style.marginTop="8px";f.style.fontSize="14px";f.style.color=mxClient.IS_IE||mxClient.IS_IE11?"#000000":"#ffffff";this.chromelessToolbar.appendChild(f);var l=p(mxUtils.bind(this,function(b){this.actions.get("nextPage").funct();
mxEvent.consume(b)}),Editor.nextImage,mxResources.get("nextPage")),m=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(f.innerHTML="",mxUtils.write(f,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});d.style.paddingLeft="0px";d.style.paddingRight="4px";l.style.paddingLeft="4px";l.style.paddingRight="0px";var q=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(l.style.display="",d.style.display=
"",f.style.display="inline-block"):(l.style.display="none",d.style.display="none",f.style.display="none");m()});this.editor.addListener("resetGraphView",q);this.editor.addListener("pageSelected",m)}p(mxUtils.bind(this,function(b){this.actions.get("zoomOut").funct();mxEvent.consume(b)}),Editor.zoomOutImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");p(mxUtils.bind(this,function(b){this.actions.get("zoomIn").funct();mxEvent.consume(b)}),Editor.zoomInImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");
-p(mxUtils.bind(this,function(d){b.isLightboxView()?(1==b.view.scale?this.lightboxFit():b.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(d)}),Editor.zoomFitImage,mxResources.get("fit"));var n=null,u=null,v=mxUtils.bind(this,function(b){null!=n&&(window.clearTimeout(n),n=null);null!=u&&(window.clearTimeout(u),u=null);n=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);n=null;u=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display=
-"none";u=null}),600)}),b||200)}),y=mxUtils.bind(this,function(b){null!=n&&(window.clearTimeout(n),n=null);null!=u&&(window.clearTimeout(u),u=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,b||30)});if("1"==urlParams.layers){this.layersDialog=null;var x=p(mxUtils.bind(this,function(d){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=b.createLayersDialog(null,!0);mxEvent.addListener(this.layersDialog,
+p(mxUtils.bind(this,function(d){b.isLightboxView()?(1==b.view.scale?this.lightboxFit():b.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(d)}),Editor.zoomFitImage,mxResources.get("fit"));var n=null,v=null,u=mxUtils.bind(this,function(b){null!=n&&(window.clearTimeout(n),n=null);null!=v&&(window.clearTimeout(v),v=null);n=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);n=null;v=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display=
+"none";v=null}),600)}),b||200)}),y=mxUtils.bind(this,function(b){null!=n&&(window.clearTimeout(n),n=null);null!=v&&(window.clearTimeout(v),v=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,b||30)});if("1"==urlParams.layers){this.layersDialog=null;var x=p(mxUtils.bind(this,function(d){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=b.createLayersDialog(null,!0);mxEvent.addListener(this.layersDialog,
"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var f=x.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily=Editor.defaultHtmlFont;this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.left=f.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+
this.chromelessToolbar.offsetHeight+4+"px";mxClient.IS_IE||mxClient.IS_IE11?(this.layersDialog.style.backgroundColor="#ffffff",this.layersDialog.style.border="2px solid black",this.layersDialog.style.color="#000000"):(this.layersDialog.style.backgroundColor="#000000",this.layersDialog.style.color="#ffffff",mxUtils.setOpacity(this.layersDialog,80));f=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=f.zIndex;document.body.appendChild(this.layersDialog);this.editor.fireEvent(new mxEventObject("layersDialogShown"))}mxEvent.consume(d)}),
Editor.layersImage,mxResources.get("layers")),D=b.getModel();D.addListener(mxEvent.CHANGE,function(){x.style.display=1<D.getChildCount(D.root)?"":"none"})}("1"!=urlParams.openInSameWin||navigator.standalone)&&this.addChromelessToolbarItems(p);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||p(mxUtils.bind(this,function(d){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):b.openLink(this.editor.editButtonLink,
-"editWindow");mxEvent.consume(d)}),Editor.editImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(q=0;q<this.lightboxToolbarActions.length;q++){var H=this.lightboxToolbarActions[q];H.elem=p(H.fn,H.icon,H.tooltip)}null!=g.refreshBtn&&p(mxUtils.bind(this,function(b){g.refreshBtn.url?window.location.href=g.refreshBtn.url:window.location.reload();mxEvent.consume(b)}),Editor.refreshImage,mxResources.get("refresh",null,"Refresh"));null!=g.fullscreenBtn&&window.self!==window.top&&p(mxUtils.bind(this,
+"editWindow");mxEvent.consume(d)}),Editor.editImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(q=0;q<this.lightboxToolbarActions.length;q++){var I=this.lightboxToolbarActions[q];I.elem=p(I.fn,I.icon,I.tooltip)}null!=g.refreshBtn&&p(mxUtils.bind(this,function(b){g.refreshBtn.url?window.location.href=g.refreshBtn.url:window.location.reload();mxEvent.consume(b)}),Editor.refreshImage,mxResources.get("refresh",null,"Refresh"));null!=g.fullscreenBtn&&window.self!==window.top&&p(mxUtils.bind(this,
function(d){g.fullscreenBtn.url?b.openLink(g.fullscreenBtn.url):b.openLink(window.location.href);mxEvent.consume(d)}),Editor.fullscreenImage,mxResources.get("openInNewWindow",null,"Open in New Window"));(g.closeBtn&&window.self===window.top||b.lightbox&&("1"==urlParams.close||this.container!=document.body))&&p(mxUtils.bind(this,function(b){"1"==urlParams.close||g.closeBtn?window.close():(this.destroy(),mxEvent.consume(b))}),Editor.closeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display=
-"none";b.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");b.container.appendChild(this.chromelessToolbar);mxEvent.addListener(b.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(mxEvent.isShiftDown(b)||y(30),v())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",
-mxUtils.bind(this,function(d){b.tooltipHandler.resetTimer();b.tooltipHandler.hideTooltip();mxEvent.isShiftDown(d)?v():y(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(b){mxEvent.isShiftDown(b)?v():y(100);mxEvent.consume(b)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||y(30)}));var C=b.getTolerance();b.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(d,f){this.startX=
-f.getGraphX();this.startY=f.getGraphY();this.scrollLeft=b.container.scrollLeft;this.scrollTop=b.container.scrollTop},mouseMove:function(b,d){},mouseUp:function(d,f){mxEvent.isTouchEvent(f.getEvent())&&Math.abs(this.scrollLeft-b.container.scrollLeft)<C&&Math.abs(this.scrollTop-b.container.scrollTop)<C&&Math.abs(this.startX-f.getGraphX())<C&&Math.abs(this.startY-f.getGraphY())<C&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?v():y(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var F=
-b.view.validate;b.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var b=this.graph.getPagePadding(),d=this.graph.getPageSize();this.translate.x=b.x-(this.x0||0)*d.width;this.translate.y=b.y-(this.y0||0)*d.height}F.apply(this,arguments)};if(!b.isViewer()){var M=b.sizeDidChange;b.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var d=this.getPageLayout(),f=this.getPagePadding(),c=this.getPageSize(),e=Math.ceil(2*
+"none";b.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");b.container.appendChild(this.chromelessToolbar);mxEvent.addListener(b.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(mxEvent.isShiftDown(b)||y(30),u())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",
+mxUtils.bind(this,function(d){b.tooltipHandler.resetTimer();b.tooltipHandler.hideTooltip();mxEvent.isShiftDown(d)?u():y(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(b){mxEvent.isShiftDown(b)?u():y(100);mxEvent.consume(b)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||y(30)}));var B=b.getTolerance();b.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(d,f){this.startX=
+f.getGraphX();this.startY=f.getGraphY();this.scrollLeft=b.container.scrollLeft;this.scrollTop=b.container.scrollTop},mouseMove:function(b,d){},mouseUp:function(d,f){mxEvent.isTouchEvent(f.getEvent())&&Math.abs(this.scrollLeft-b.container.scrollLeft)<B&&Math.abs(this.scrollTop-b.container.scrollTop)<B&&Math.abs(this.startX-f.getGraphX())<B&&Math.abs(this.startY-f.getGraphY())<B&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?u():y(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var G=
+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}G.apply(this,arguments)};if(!b.isViewer()){var M=b.sizeDidChange;b.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var d=this.getPageLayout(),f=this.getPagePadding(),c=this.getPageSize(),e=Math.ceil(2*
f.x+d.width*c.width),l=Math.ceil(2*f.y+d.height*c.height),g=b.minimumGraphSize;if(null==g||g.width!=e||g.height!=l)b.minimumGraphSize=new mxRectangle(0,0,e,l);e=f.x-d.x*c.width;f=f.y-d.y*c.height;this.autoTranslate||this.view.translate.x==e&&this.view.translate.y==f?M.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,f),b.container.scrollLeft+=Math.round((e-d)*b.view.scale),b.container.scrollTop+=Math.round((f-
-c)*b.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var E=b.view.getBackgroundPane(),K=b.view.getDrawPane();b.cumulativeZoomFactor=1;var B=null,L=null,O=null,ca=null,N=null,Q=function(d){null!=B&&window.clearTimeout(B);window.setTimeout(function(){if(!b.isMouseDown||ca)B=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)),K.style.transformOrigin="",E.style.transformOrigin="",mxClient.IS_SF?(K.style.transform="scale(1)",E.style.transform="scale(1)",window.setTimeout(function(){K.style.transform="";E.style.transform=""},0)):(K.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),
+c)*b.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var F=b.view.getBackgroundPane(),K=b.view.getDrawPane();b.cumulativeZoomFactor=1;var C=null,L=null,O=null,da=null,N=null,Q=function(d){null!=C&&window.clearTimeout(C);window.setTimeout(function(){if(!b.isMouseDown||da)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)),K.style.transformOrigin="",F.style.transformOrigin="",mxClient.IS_SF?(K.style.transform="scale(1)",F.style.transform="scale(1)",window.setTimeout(function(){K.style.transform="";F.style.transform=""},0)):(K.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),
f=mxUtils.getOffset(b.container),l=b.view.scale,g=0,m=0;null!=L&&(g=b.container.offsetWidth/2-L.x+f.x,m=b.container.offsetHeight/2-L.y+f.y);b.zoom(b.cumulativeZoomFactor);b.view.scale!=l&&(null!=O&&(g+=d.x-O.x,m+=d.y-O.y),null!=c&&e.chromelessResize(!1,null,g*(b.cumulativeZoomFactor-1),m*(b.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(b.container)||0==g&&0==m||(b.container.scrollLeft-=g*(b.cumulativeZoomFactor-1),b.container.scrollTop-=m*(b.cumulativeZoomFactor-1)));null!=N&&K.setAttribute("filter",
-N);b.cumulativeZoomFactor=1;N=ca=L=O=B=null}),null!=d?d:b.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)},W=Date.now();b.lazyZoom=function(d,f,c){(f=f||!b.scrollbars)&&(L=new mxPoint(b.container.offsetLeft+b.container.clientWidth/2,b.container.offsetTop+b.container.clientHeight/2));if(mxClient.IS_IOS||!(15>Date.now()-W)){W=Date.now();d?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,
+N);b.cumulativeZoomFactor=1;N=da=L=O=C=null}),null!=d?d:b.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)},Y=Date.now();b.lazyZoom=function(d,f,c){(f=f||!b.scrollbars)&&(L=new mxPoint(b.container.offsetLeft+b.container.clientWidth/2,b.container.offsetTop+b.container.clientHeight/2));if(mxClient.IS_IOS||!(15>Date.now()-Y)){Y=Date.now();d?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,
this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,160))/this.view.scale;if(b.isFastZoomEnabled()){null==
-N&&""!=K.getAttribute("filter")&&(N=K.getAttribute("filter"),K.removeAttribute("filter"));O=new mxPoint(b.container.scrollLeft,b.container.scrollTop);d=f?b.container.scrollLeft+b.container.clientWidth/2:L.x+b.container.scrollLeft-b.container.offsetLeft;var l=f?b.container.scrollTop+b.container.clientHeight/2:L.y+b.container.scrollTop-b.container.offsetTop;K.style.transformOrigin=d+"px "+l+"px";K.style.transform="scale("+this.cumulativeZoomFactor+")";E.style.transformOrigin=d+"px "+l+"px";E.style.transform=
+N&&""!=K.getAttribute("filter")&&(N=K.getAttribute("filter"),K.removeAttribute("filter"));O=new mxPoint(b.container.scrollLeft,b.container.scrollTop);d=f?b.container.scrollLeft+b.container.clientWidth/2:L.x+b.container.scrollLeft-b.container.offsetLeft;var l=f?b.container.scrollTop+b.container.clientHeight/2:L.y+b.container.scrollTop-b.container.offsetTop;K.style.transformOrigin=d+"px "+l+"px";K.style.transform="scale("+this.cumulativeZoomFactor+")";F.style.transformOrigin=d+"px "+l+"px";F.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",(f?b.container.clientWidth/2+b.container.scrollLeft-d.offsetLeft+"px":L.x+b.container.scrollLeft-d.offsetLeft-b.container.offsetLeft+"px")+" "+(f?b.container.clientHeight/2+b.container.scrollTop-d.offsetTop+"px":L.y+b.container.scrollTop-d.offsetTop-b.container.offsetTop+"px")),mxUtils.setPrefixedStyle(d.style,
-"transform","scale("+this.cumulativeZoomFactor+")"));b.view.getDecoratorPane().style.opacity="0";b.view.getOverlayPane().style.opacity="0";null!=e.hoverIcons&&e.hoverIcons.reset()}Q(c)}};mxEvent.addGestureListeners(b.container,function(b){null!=B&&window.clearTimeout(B)},null,function(d){1!=b.cumulativeZoomFactor&&Q(0)});mxEvent.addListener(b.container,"scroll",function(d){null==B||b.isMouseDown||1==b.cumulativeZoomFactor||Q(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(d,f,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+(f?-e:e),c.y):b.view.setTranslate(c.x,c.y+(f?e:-e));else if(c||b.isZoomWheelEvent(d))for(var g=mxEvent.getSource(d);null!=g;){if(g==b.container)return b.tooltipHandler.hideTooltip(),L=null!=e&&null!=l?new mxPoint(e,l):new mxPoint(mxEvent.getClientX(d),mxEvent.getClientY(d)),ca=c,b.lazyZoom(f),mxEvent.consume(d),!1;g=g.parentNode}}),
+"transform","scale("+this.cumulativeZoomFactor+")"));b.view.getDecoratorPane().style.opacity="0";b.view.getOverlayPane().style.opacity="0";null!=e.hoverIcons&&e.hoverIcons.reset()}Q(c)}};mxEvent.addGestureListeners(b.container,function(b){null!=C&&window.clearTimeout(C)},null,function(d){1!=b.cumulativeZoomFactor&&Q(0)});mxEvent.addListener(b.container,"scroll",function(d){null==C||b.isMouseDown||1==b.cumulativeZoomFactor||Q(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(d,f,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+(f?-e:e),c.y):b.view.setTranslate(c.x,c.y+(f?e:-e));else if(c||b.isZoomWheelEvent(d))for(var g=mxEvent.getSource(d);null!=g;){if(g==b.container)return b.tooltipHandler.hideTooltip(),L=null!=e&&null!=l?new mxPoint(e,l):new mxPoint(mxEvent.getClientX(d),mxEvent.getClientY(d)),da=c,b.lazyZoom(f),mxEvent.consume(d),!1;g=g.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))};
@@ -2317,31 +2317,31 @@ mxImageShape.prototype.getImageDataUri=function(){var b=this.image;if("data:imag
Graph=function(b,c,e,k,g,p){mxGraph.call(this,b,c,e,k);this.themes=g||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);this.standalone=null!=p?p:!1;b=this.baseUrl;c=b.indexOf("//");this.domainPathUrl=this.domainUrl="";0<c&&(c=b.indexOf("/",c+2),0<c&&(this.domainUrl=b.substring(0,c)),c=b.lastIndexOf("/"),0<c&&(this.domainPathUrl=b.substring(0,c+1)));this.isHtmlLabel=function(b){b=this.getCurrentCellStyle(b);
return null!=b?"1"==b.html||"wrap"==b[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var t=null,d=null,f=null,l=null,m=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,c){if("mouseDown"==c.getProperty("eventName")&&this.isEnabled()){var e=c.getProperty("event"),g=e.getState(),k=this.view.scale;if(!mxEvent.isAltDown(e.getEvent())&&null!=g)if(this.model.isEdge(g.cell))if(t=new mxPoint(e.getGraphX(),e.getGraphY()),m=this.isCellSelected(g.cell),f=g,d=e,null!=g.text&&null!=
g.text.boundingBox&&mxUtils.contains(g.text.boundingBox,e.getGraphX(),e.getGraphY()))l=mxEvent.LABEL_HANDLE;else{var q=this.selectionCellsHandler.getHandler(g.cell);null!=q&&null!=q.bends&&0<q.bends.length&&(l=q.getHandleForEvent(e))}else if(!this.panningHandler.isActive()&&!mxEvent.isControlDown(e.getEvent())&&(q=this.selectionCellsHandler.getHandler(g.cell),null==q||null==q.getHandleForEvent(e))){var n=new mxRectangle(e.getGraphX()-1,e.getGraphY()-1);n.grow(mxEvent.isTouchEvent(e.getEvent())?mxShape.prototype.svgStrokeTolerance-
-1:(mxShape.prototype.svgStrokeTolerance+1)/2);if(this.isTableCell(g.cell)&&!this.isCellSelected(g.cell)){var p=this.model.getParent(g.cell),q=this.model.getParent(p);if(!this.isCellSelected(q)){var v=this.getCellGeometry(g.cell),v=null!=v.alternateBounds?v.alternateBounds:v;if(mxUtils.intersects(n,new mxRectangle(g.x,g.y-2,v.width*k,3))&&this.model.getChildAt(q,0)!=p||mxUtils.intersects(n,new mxRectangle(g.x,g.y+v.height-2,v.width,3))||mxUtils.intersects(n,new mxRectangle(g.x-2,g.y,2,v.height*k))&&
-this.model.getChildAt(p,0)!=g.cell||mxUtils.intersects(n,new mxRectangle(g.x+v.width*k-2,g.y,2,v.height*k)))p=this.selectionCellsHandler.isHandled(q),this.selectCellForEvent(q,e.getEvent()),q=this.selectionCellsHandler.getHandler(q),null!=q&&(v=q.getHandleForEvent(e),null!=v&&(q.start(e.getGraphX(),e.getGraphY(),v),q.blockDelayedSelection=!p,e.consume()))}}for(;!e.isConsumed()&&null!=g&&(this.isTableCell(g.cell)||this.isTableRow(g.cell)||this.isTable(g.cell));)this.isSwimlane(g.cell)&&(q=this.getActualStartSize(g.cell),
-(0<q.x||0<q.width)&&mxUtils.intersects(n,new mxRectangle(g.x+(q.x-q.width-1)*k+(0==q.x?g.width:0),g.y,1,g.height))||(0<q.y||0<q.height)&&mxUtils.intersects(n,new mxRectangle(g.x,g.y+(q.y-q.height-1)*k+(0==q.y?g.height:0),g.width,1)))&&(this.selectCellForEvent(g.cell,e.getEvent()),q=this.selectionCellsHandler.getHandler(g.cell),null!=q&&(v=mxEvent.CUSTOM_HANDLE-q.customHandles.length+1,q.start(e.getGraphX(),e.getGraphY(),v),e.consume())),g=this.view.getState(this.model.getParent(g.cell))}}}));this.addMouseListener({mouseDown:function(b,
+1:(mxShape.prototype.svgStrokeTolerance+1)/2);if(this.isTableCell(g.cell)&&!this.isCellSelected(g.cell)){var p=this.model.getParent(g.cell),q=this.model.getParent(p);if(!this.isCellSelected(q)){var u=this.getCellGeometry(g.cell),u=null!=u.alternateBounds?u.alternateBounds:u;if(mxUtils.intersects(n,new mxRectangle(g.x,g.y-2,u.width*k,3))&&this.model.getChildAt(q,0)!=p||mxUtils.intersects(n,new mxRectangle(g.x,g.y+u.height-2,u.width,3))||mxUtils.intersects(n,new mxRectangle(g.x-2,g.y,2,u.height*k))&&
+this.model.getChildAt(p,0)!=g.cell||mxUtils.intersects(n,new mxRectangle(g.x+u.width*k-2,g.y,2,u.height*k)))p=this.selectionCellsHandler.isHandled(q),this.selectCellForEvent(q,e.getEvent()),q=this.selectionCellsHandler.getHandler(q),null!=q&&(u=q.getHandleForEvent(e),null!=u&&(q.start(e.getGraphX(),e.getGraphY(),u),q.blockDelayedSelection=!p,e.consume()))}}for(;!e.isConsumed()&&null!=g&&(this.isTableCell(g.cell)||this.isTableRow(g.cell)||this.isTable(g.cell));)this.isSwimlane(g.cell)&&(q=this.getActualStartSize(g.cell),
+(0<q.x||0<q.width)&&mxUtils.intersects(n,new mxRectangle(g.x+(q.x-q.width-1)*k+(0==q.x?g.width:0),g.y,1,g.height))||(0<q.y||0<q.height)&&mxUtils.intersects(n,new mxRectangle(g.x,g.y+(q.y-q.height-1)*k+(0==q.y?g.height:0),g.width,1)))&&(this.selectCellForEvent(g.cell,e.getEvent()),q=this.selectionCellsHandler.getHandler(g.cell),null!=q&&(u=mxEvent.CUSTOM_HANDLE-q.customHandles.length+1,q.start(e.getGraphX(),e.getGraphY(),u),e.consume())),g=this.view.getState(this.model.getParent(g.cell))}}}));this.addMouseListener({mouseDown:function(b,
d){},mouseMove:mxUtils.bind(this,function(b,c){var e=this.selectionCellsHandler.handlers.map,g;for(g in e)if(null!=e[g].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isAltDown(c.getEvent()))if(g=this.tolerance,null!=t&&null!=f&&null!=d){if(e=f,Math.abs(t.x-c.getGraphX())>g||Math.abs(t.y-c.getGraphY())>g){var k=this.selectionCellsHandler.getHandler(e.cell);null==k&&this.model.isEdge(e.cell)&&(k=this.createHandler(e));if(null!=k&&null!=k.bends&&0<k.bends.length){g=k.getHandleForEvent(d);
var q=this.view.getEdgeStyle(e),n=q==mxEdgeStyle.EntityRelation;m||l!=mxEvent.LABEL_HANDLE||(g=l);if(n&&0!=g&&g!=k.bends.length-1&&g!=mxEvent.LABEL_HANDLE)!n||null==e.visibleSourceState&&null==e.visibleTargetState||(this.graphHandler.reset(),c.consume());else if(g==mxEvent.LABEL_HANDLE||0==g||null!=e.visibleSourceState||g==k.bends.length-1||null!=e.visibleTargetState)n||g==mxEvent.LABEL_HANDLE||(n=e.absolutePoints,null!=n&&(null==q&&null==g||q==mxEdgeStyle.OrthConnector)&&(g=l,null==g&&(g=new mxRectangle(t.x,
t.y),g.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(g,n[0].x,n[0].y)?g=0:mxUtils.contains(g,n[n.length-1].x,n[n.length-1].y)?g=k.bends.length-1:null!=q&&(2==n.length||3==n.length&&(0==Math.round(n[0].x-n[1].x)&&0==Math.round(n[1].x-n[2].x)||0==Math.round(n[0].y-n[1].y)&&0==Math.round(n[1].y-n[2].y)))?g=2:(g=mxUtils.findNearestSegment(e,t.x,t.y),g=null==q?mxEvent.VIRTUAL_HANDLE-g:g+1))),null==g&&(g=mxEvent.VIRTUAL_HANDLE)),k.start(c.getGraphX(),c.getGraphX(),g),c.consume(),this.graphHandler.reset()}null!=
k&&(this.selectionCellsHandler.isHandlerActive(k)?this.isCellSelected(e.cell)||(this.selectionCellsHandler.handlers.put(e.cell,k),this.selectCellForEvent(e.cell,c.getEvent())):this.isCellSelected(e.cell)||k.destroy());m=!1;t=d=f=l=null}}else if(e=c.getState(),null!=e&&this.isCellEditable(e.cell)){k=null;if(this.model.isEdge(e.cell)){if(g=new mxRectangle(c.getGraphX(),c.getGraphY()),g.grow(mxEdgeHandler.prototype.handleImage.width/2),n=e.absolutePoints,null!=n)if(null!=e.text&&null!=e.text.boundingBox&&
mxUtils.contains(e.text.boundingBox,c.getGraphX(),c.getGraphY()))k="move";else if(mxUtils.contains(g,n[0].x,n[0].y)||mxUtils.contains(g,n[n.length-1].x,n[n.length-1].y))k="pointer";else if(null!=e.visibleSourceState||null!=e.visibleTargetState)g=this.view.getEdgeStyle(e),k="crosshair",g!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(e)&&(g=mxUtils.findNearestSegment(e,c.getGraphX(),c.getGraphY()),g<n.length-1&&0<=g&&(k=0==Math.round(n[g].x-n[g+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(c.getEvent())){g=
new mxRectangle(c.getGraphX()-1,c.getGraphY()-1);g.grow(mxShape.prototype.svgStrokeTolerance/2);if(this.isTableCell(e.cell)&&(n=this.model.getParent(e.cell),q=this.model.getParent(n),!this.isCellSelected(q)))if(mxUtils.intersects(g,new mxRectangle(e.x-2,e.y,2,e.height))&&this.model.getChildAt(n,0)!=e.cell||mxUtils.intersects(g,new mxRectangle(e.x+e.width-2,e.y,2,e.height)))k="col-resize";else if(mxUtils.intersects(g,new mxRectangle(e.x,e.y-2,e.width,3))&&this.model.getChildAt(q,0)!=n||mxUtils.intersects(g,
-new mxRectangle(e.x,e.y+e.height-2,e.width,3)))k="row-resize";for(n=e;null==k&&null!=n&&(this.isTableCell(n.cell)||this.isTableRow(n.cell)||this.isTable(n.cell));){if(this.isSwimlane(n.cell)){var q=this.getActualStartSize(n.cell),p=this.view.scale;(0<q.x||0<q.width)&&mxUtils.intersects(g,new mxRectangle(n.x+(q.x-q.width-1)*p+(0==q.x?n.width*p:0),n.y,1,n.height))?k="col-resize":(0<q.y||0<q.height)&&mxUtils.intersects(g,new mxRectangle(n.x,n.y+(q.y-q.height-1)*p+(0==q.y?n.height:0),n.width,1))&&(k=
+new mxRectangle(e.x,e.y+e.height-2,e.width,3)))k="row-resize";for(n=e;null==k&&null!=n&&(this.isTableCell(n.cell)||this.isTableRow(n.cell)||this.isTable(n.cell));){if(this.isSwimlane(n.cell)){var q=this.getActualStartSize(n.cell),u=this.view.scale;(0<q.x||0<q.width)&&mxUtils.intersects(g,new mxRectangle(n.x+(q.x-q.width-1)*u+(0==q.x?n.width*u:0),n.y,1,n.height))?k="col-resize":(0<q.y||0<q.height)&&mxUtils.intersects(g,new mxRectangle(n.x,n.y+(q.y-q.height-1)*u+(0==q.y?n.height:0),n.width,1))&&(k=
"row-resize")}n=this.view.getState(this.model.getParent(n.cell))}}null!=k&&e.setCursor(k)}}),mouseUp:mxUtils.bind(this,function(b,c){l=t=d=f=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 q=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=
function(){var b=q.apply(this,arguments);if(this.graph.pageVisible){for(var d=[],f=this.graph.pageFormat,c=this.graph.pageScale,e=f.width*c,f=f.height*c,c=this.graph.view.translate,l=this.graph.view.scale,g=this.graph.getPageLayout(),k=0;k<g.width;k++)d.push(new mxRectangle(((g.x+k)*e+c.x)*l,(g.y*f+c.y)*l,e*l,f*l));for(k=1;k<g.height;k++)d.push(new mxRectangle((g.x*e+c.x)*l,((g.y+k)*f+c.y)*l,e*l,f*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 n=this.graphHandler.getCells;this.graphHandler.getCells=function(b){for(var d=n.apply(this,arguments),f=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||f.get(l)||(f.put(l,!0),c.push(l))}return c};var u=this.graphHandler.start;this.graphHandler.start=function(b,d,f,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,D=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var b=this.currentState;D.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 C=this.isToggleEvent;this.isToggleEvent=function(b){return C.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b)};var F=v.isForceRubberbandEvent;v.isForceRubberbandEvent=function(b){return F.apply(this,
+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||f.get(l)||(f.put(l,!0),c.push(l))}return c};var v=this.graphHandler.start;this.graphHandler.start=function(b,d,f,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));
+v.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(b,d){d=this.graph.getCompositeParent(d);return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var u=new mxRubberband(this);this.getRubberband=function(){return u};var y=(new Date).getTime(),x=0,D=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var b=this.currentState;D.apply(this,arguments);b!=this.currentState?(y=(new Date).getTime(),x=0):x=(new Date).getTime()-y};var I=
+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"))&&I.apply(this,arguments)};var B=this.isToggleEvent;this.isToggleEvent=function(b){return B.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b)};var G=u.isForceRubberbandEvent;u.isForceRubberbandEvent=function(b){return G.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 M=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(M=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=M)}));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 f=d?b.sourceState.cell:b.getCell();null!=f&&(f=this.getClickableLinkForCell(f),null!=f&&(this.isCustomLink(f)?
+mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=M)}));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 f=d?b.sourceState.cell:b.getCell();null!=f&&(f=this.getClickableLinkForCell(f),null!=f&&(this.isCustomLink(f)?
this.customLinkClicked(f):this.openLink(f)));this.isEnabled()&&d&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};var K=this.tooltipHandler.show;this.tooltipHandler.show=function(){K.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 B=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 B.apply(this,arguments)};this.selectRegion=function(b,d){var f=mxEvent.isAltDown(d)?b:null,f=this.getCells(b.x,
+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 f=mxEvent.isAltDown(d)?b:null,f=this.getCells(b.x,
b.y,b.width,b.height,null,null,f,function(b){return"1"==mxUtils.getValue(b.style,"locked","0")},!0);if(this.isToggleEvent(d))for(var c=0;c<f.length;c++)this.selectCellForEvent(f[c],d);else this.selectCellsForEvent(f,d);return f};var L=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(b,d,f){return this.graph.isCellSelected(b)?!1:L.apply(this,arguments)};this.isCellLocked=function(b){for(;null!=b;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(b),
"locked","0"))return!0;b=this.model.getParent(b)}return!1};var O=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,d){if("mouseDown"==d.getProperty("eventName")){var f=d.getProperty("event").getState();O=null==f||this.isSelectionEmpty()||this.isCellSelected(f.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(b,d){if(!mxEvent.isMultiTouchEvent(d)){var f=d.getProperty("event"),c=d.getProperty("cell");null==c?(f=mxUtils.convertPoint(this.container,
-mxEvent.getClientX(f),mxEvent.getClientY(f)),v.start(f.x,f.y)):null!=O?this.addSelectionCells(O):1<this.getSelectionCount()&&this.isCellSelected(c)&&this.removeSelectionCell(c);O=null;d.consume()}}));this.connectionHandler.selectCells=function(b,d){this.graph.setSelectionCell(d||b)};this.connectionHandler.constraintHandler.isStateIgnored=function(b,d){var f=b.view.graph;return d&&(f.isCellSelected(b.cell)||f.isTableRow(b.cell)&&f.selectionCellsHandler.isHandled(f.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 ca=this.updateMouseEvent;this.updateMouseEvent=function(b){b=ca.apply(this,arguments);null!=b.state&&this.isCellLocked(b.getCell())&&(b.state=null);return b}}this.currentTranslate=new mxPoint(0,0)};
+mxEvent.getClientX(f),mxEvent.getClientY(f)),u.start(f.x,f.y)):null!=O?this.addSelectionCells(O):1<this.getSelectionCount()&&this.isCellSelected(c)&&this.removeSelectionCell(c);O=null;d.consume()}}));this.connectionHandler.selectCells=function(b,d){this.graph.setSelectionCell(d||b)};this.connectionHandler.constraintHandler.isStateIgnored=function(b,d){var f=b.view.graph;return d&&(f.isCellSelected(b.cell)||f.isTableRow(b.cell)&&f.selectionCellsHandler.isHandled(f.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 da=this.updateMouseEvent;this.updateMouseEvent=function(b){b=da.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(" ");
@@ -2403,8 +2403,8 @@ Graph.prototype.setGridSize=function(b){this.gridSize=b;this.fireEvent(new mxEve
Graph.prototype.getGlobalVariable=function(b){var c=null;"date"==b?c=(new Date).toLocaleDateString():"time"==b?c=(new Date).toLocaleTimeString():"timestamp"==b?c=(new Date).toLocaleString():"date{"==b.substring(0,5)&&(b=b.substring(5,b.length-1),c=this.formatDate(new Date,b));return c};
Graph.prototype.formatDate=function(b,c,e){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",
shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var k=this.dateFormatCache,g=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,p=/[^-+\dA-Z]/g,t=function(b,d){b=String(b);for(d=d||2;b.length<d;)b="0"+b;return b};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(b)||
-/\d/.test(b)||(c=b,b=void 0);b=b?new Date(b):new Date;if(isNaN(b))throw SyntaxError("invalid date");c=String(k.masks[c]||c||k.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),e=!0);var d=e?"getUTC":"get",f=b[d+"Date"](),l=b[d+"Day"](),m=b[d+"Month"](),q=b[d+"FullYear"](),n=b[d+"Hours"](),u=b[d+"Minutes"](),v=b[d+"Seconds"](),d=b[d+"Milliseconds"](),y=e?0:b.getTimezoneOffset(),x={d:f,dd:t(f),ddd:k.i18n.dayNames[l],dddd:k.i18n.dayNames[l+7],m:m+1,mm:t(m+1),mmm:k.i18n.monthNames[m],mmmm:k.i18n.monthNames[m+
-12],yy:String(q).slice(2),yyyy:q,h:n%12||12,hh:t(n%12||12),H:n,HH:t(n),M:u,MM:t(u),s:v,ss:t(v),l:t(d,3),L:t(99<d?Math.round(d/10):d),t:12>n?"a":"p",tt:12>n?"am":"pm",T:12>n?"A":"P",TT:12>n?"AM":"PM",Z:e?"UTC":(String(b).match(g)||[""]).pop().replace(p,""),o:(0<y?"-":"+")+t(100*Math.floor(Math.abs(y)/60)+Math.abs(y)%60,4),S:["th","st","nd","rd"][3<f%10?0:(10!=f%100-f%10)*f%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(b){return b in x?x[b]:b.slice(1,
+/\d/.test(b)||(c=b,b=void 0);b=b?new Date(b):new Date;if(isNaN(b))throw SyntaxError("invalid date");c=String(k.masks[c]||c||k.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),e=!0);var d=e?"getUTC":"get",f=b[d+"Date"](),l=b[d+"Day"](),m=b[d+"Month"](),q=b[d+"FullYear"](),n=b[d+"Hours"](),v=b[d+"Minutes"](),u=b[d+"Seconds"](),d=b[d+"Milliseconds"](),y=e?0:b.getTimezoneOffset(),x={d:f,dd:t(f),ddd:k.i18n.dayNames[l],dddd:k.i18n.dayNames[l+7],m:m+1,mm:t(m+1),mmm:k.i18n.monthNames[m],mmmm:k.i18n.monthNames[m+
+12],yy:String(q).slice(2),yyyy:q,h:n%12||12,hh:t(n%12||12),H:n,HH:t(n),M:v,MM:t(v),s:u,ss:t(u),l:t(d,3),L:t(99<d?Math.round(d/10):d),t:12>n?"a":"p",tt:12>n?"am":"pm",T:12>n?"A":"P",TT:12>n?"AM":"PM",Z:e?"UTC":(String(b).match(g)||[""]).pop().replace(p,""),o:(0<y?"-":"+")+t(100*Math.floor(Math.abs(y)/60)+Math.abs(y)%60,4),S:["th","st","nd","rd"][3<f%10?0:(10!=f%100-f%10)*f%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(b){return b in x?x[b]:b.slice(1,
b.length-1)})};Graph.prototype.getLayerForCells=function(b){var c=null;if(0<b.length){for(c=b[0];!this.model.isLayer(c);)c=this.model.getParent(c);for(var e=1;e<b.length;e++)if(!this.model.isAncestor(c,b[e])){c=null;break}}return c};
Graph.prototype.createLayersDialog=function(b,c){var e=document.createElement("div");e.style.position="absolute";for(var k=this.getModel(),g=k.getChildCount(k.root),p=0;p<g;p++)mxUtils.bind(this,function(g){function d(){k.isVisible(g)?(m.setAttribute("src",Editor.visibleImage),mxUtils.setOpacity(l,75)):(m.setAttribute("src",Editor.hiddenImage),mxUtils.setOpacity(l,25))}var f=this.convertValueToString(g)||mxResources.get("background")||"Background",l=document.createElement("div");l.style.overflow=
"hidden";l.style.textOverflow="ellipsis";l.style.padding="2px";l.style.whiteSpace="nowrap";l.style.cursor="pointer";l.setAttribute("title",mxResources.get(k.isVisible(g)?"hideIt":"show",[f]));var m=document.createElement("img");m.setAttribute("draggable","false");m.setAttribute("align","absmiddle");m.setAttribute("border","0");m.style.position="relative";m.style.width="16px";m.style.padding="0px 6px 0 4px";c&&(m.style.filter="invert(100%)",m.style.top="-2px");l.appendChild(m);mxUtils.write(l,f);e.appendChild(l);
@@ -2414,11 +2414,11 @@ null==t&&(t=f.hasAttribute(d)?null!=f.getAttribute(d)?f.getAttribute(d):"":null)
Graph.prototype.selectCellsForConnectVertex=function(b,c,e){2==b.length&&this.model.isVertex(b[1])?(this.setSelectionCell(b[1]),this.scrollCellToVisible(b[1]),null!=e&&(mxEvent.isTouchEvent(c)?e.update(e.getState(this.view.getState(b[1]))):e.reset())):this.setSelectionCells(b)};Graph.prototype.isCloneConnectSource=function(b){var c=null;null!=this.layoutManager&&(c=this.layoutManager.getLayout(this.model.getParent(b)));return this.isTableRow(b)||this.isTableCell(b)||null!=c&&c.constructor==mxStackLayout};
Graph.prototype.connectVertex=function(b,c,e,k,g,p,t,d){p=p?p:!1;if(b.geometry.relative&&this.model.isEdge(b.parent))return[];for(;b.geometry.relative&&this.model.isVertex(b.parent);)b=b.parent;var f=this.isCloneConnectSource(b),l=f?b:this.getCompositeParent(b),m=b.geometry.relative&&null!=b.parent.geometry?new mxPoint(b.parent.geometry.width*b.geometry.x,b.parent.geometry.height*b.geometry.y):new mxPoint(l.geometry.x,l.geometry.y);c==mxConstants.DIRECTION_NORTH?(m.x+=l.geometry.width/2,m.y-=e):c==
mxConstants.DIRECTION_SOUTH?(m.x+=l.geometry.width/2,m.y+=l.geometry.height+e):(m.x=c==mxConstants.DIRECTION_WEST?m.x-e:m.x+(l.geometry.width+e),m.y+=l.geometry.height/2);var q=this.view.getState(this.model.getParent(b));e=this.view.scale;var n=this.view.translate,l=n.x*e,n=n.y*e;null!=q&&this.model.isVertex(q.cell)&&(l=q.x,n=q.y);this.model.isVertex(b.parent)&&b.geometry.relative&&(m.x+=b.parent.geometry.x,m.y+=b.parent.geometry.y);p=p?null:(new mxRectangle(l+m.x*e,n+m.y*e)).grow(40*e);p=null!=p?
-this.getCells(0,0,0,0,null,null,p,null,!0):null;var q=this.view.getState(b),u=null,v=null;if(null!=p){p=p.reverse();for(var y=0;y<p.length;y++)if(!this.isCellLocked(p[y])&&!this.model.isEdge(p[y])&&p[y]!=b)if(!this.model.isAncestor(b,p[y])&&this.isContainer(p[y])&&(null==u||p[y]==this.model.getParent(b)))u=p[y];else if(null==v&&this.isCellConnectable(p[y])&&!this.model.isAncestor(p[y],b)&&!this.isSwimlane(p[y])){var x=this.view.getState(p[y]);null==q||null==x||mxUtils.intersects(q,x)||(v=p[y])}}var D=
-!mxEvent.isShiftDown(k)||mxEvent.isControlDown(k)||g;D&&("1"!=urlParams.sketch||g)&&(c==mxConstants.DIRECTION_NORTH?m.y-=b.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=b.geometry.height/2:m.x=c==mxConstants.DIRECTION_WEST?m.x-b.geometry.width/2:m.x+b.geometry.width/2);var H=[],C=v,v=u;g=mxUtils.bind(this,function(e){if(null==t||null!=e||null==v&&f){this.model.beginUpdate();try{if(null==C&&D){var g=this.getAbsoluteParent(null!=e?e:b),g=f?b:this.getCompositeParent(g);C=null!=e?e:this.duplicateCells([g],
-!1)[0];null!=e&&this.addCells([C],this.model.getParent(b),null,null,null,!0);var l=this.getCellGeometry(C);null!=l&&(null!=e&&"1"==urlParams.sketch&&(c==mxConstants.DIRECTION_NORTH?m.y-=l.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=l.height/2:m.x=c==mxConstants.DIRECTION_WEST?m.x-l.width/2:m.x+l.width/2),l.x=m.x-l.width/2,l.y=m.y-l.height/2);null!=u?(this.addCells([C],u,null,null,null,!0),v=null):D&&!f&&this.addCells([C],this.getDefaultParent(),null,null,null,!0)}var q=mxEvent.isControlDown(k)&&
-mxEvent.isShiftDown(k)&&D||null==v&&f?null:this.insertEdge(this.model.getParent(b),null,"",b,C,this.createCurrentEdgeStyle());if(null!=q&&this.connectionHandler.insertBeforeSource){var n=null;for(e=b;null!=e.parent&&null!=e.geometry&&e.geometry.relative&&e.parent!=q.parent;)e=this.model.getParent(e);null!=e&&null!=e.parent&&e.parent==q.parent&&(n=e.parent.getIndex(e),this.model.add(e.parent,q,n))}null==v&&null!=C&&null!=b.parent&&f&&c==mxConstants.DIRECTION_WEST&&(n=b.parent.getIndex(b),this.model.add(b.parent,
-C,n));null!=q&&H.push(q);null==v&&null!=C&&H.push(C);null==C&&null!=q&&q.geometry.setTerminalPoint(m,!1);null!=q&&this.fireEvent(new mxEventObject("cellsInserted","cells",[q]))}finally{this.model.endUpdate()}}if(null!=d)d(H);else return H});if(null==t||null!=C||!D||null==v&&f)return g(C);t(l+m.x*e,n+m.y*e,g)};
+this.getCells(0,0,0,0,null,null,p,null,!0):null;var q=this.view.getState(b),v=null,u=null;if(null!=p){p=p.reverse();for(var y=0;y<p.length;y++)if(!this.isCellLocked(p[y])&&!this.model.isEdge(p[y])&&p[y]!=b)if(!this.model.isAncestor(b,p[y])&&this.isContainer(p[y])&&(null==v||p[y]==this.model.getParent(b)))v=p[y];else if(null==u&&this.isCellConnectable(p[y])&&!this.model.isAncestor(p[y],b)&&!this.isSwimlane(p[y])){var x=this.view.getState(p[y]);null==q||null==x||mxUtils.intersects(q,x)||(u=p[y])}}var D=
+!mxEvent.isShiftDown(k)||mxEvent.isControlDown(k)||g;D&&("1"!=urlParams.sketch||g)&&(c==mxConstants.DIRECTION_NORTH?m.y-=b.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=b.geometry.height/2:m.x=c==mxConstants.DIRECTION_WEST?m.x-b.geometry.width/2:m.x+b.geometry.width/2);var I=[],B=u,u=v;g=mxUtils.bind(this,function(e){if(null==t||null!=e||null==u&&f){this.model.beginUpdate();try{if(null==B&&D){var g=this.getAbsoluteParent(null!=e?e:b),g=f?b:this.getCompositeParent(g);B=null!=e?e:this.duplicateCells([g],
+!1)[0];null!=e&&this.addCells([B],this.model.getParent(b),null,null,null,!0);var l=this.getCellGeometry(B);null!=l&&(null!=e&&"1"==urlParams.sketch&&(c==mxConstants.DIRECTION_NORTH?m.y-=l.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=l.height/2:m.x=c==mxConstants.DIRECTION_WEST?m.x-l.width/2:m.x+l.width/2),l.x=m.x-l.width/2,l.y=m.y-l.height/2);null!=v?(this.addCells([B],v,null,null,null,!0),u=null):D&&!f&&this.addCells([B],this.getDefaultParent(),null,null,null,!0)}var q=mxEvent.isControlDown(k)&&
+mxEvent.isShiftDown(k)&&D||null==u&&f?null:this.insertEdge(this.model.getParent(b),null,"",b,B,this.createCurrentEdgeStyle());if(null!=q&&this.connectionHandler.insertBeforeSource){var n=null;for(e=b;null!=e.parent&&null!=e.geometry&&e.geometry.relative&&e.parent!=q.parent;)e=this.model.getParent(e);null!=e&&null!=e.parent&&e.parent==q.parent&&(n=e.parent.getIndex(e),this.model.add(e.parent,q,n))}null==u&&null!=B&&null!=b.parent&&f&&c==mxConstants.DIRECTION_WEST&&(n=b.parent.getIndex(b),this.model.add(b.parent,
+B,n));null!=q&&I.push(q);null==u&&null!=B&&I.push(B);null==B&&null!=q&&q.geometry.setTerminalPoint(m,!1);null!=q&&this.fireEvent(new mxEventObject("cellsInserted","cells",[q]))}finally{this.model.endUpdate()}}if(null!=d)d(I);else return I});if(null==t||null!=B||!D||null==u&&f)return g(B);t(l+m.x*e,n+m.y*e,g)};
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};
@@ -2486,25 +2486,25 @@ q.x+=c,e||(q.width-=c,null!=q.alternateBounds&&(q.alternateBounds.width-=c)),k.s
TableLayout.prototype.isVertexIgnored=function(b){return!this.graph.getModel().isVertex(b)||!this.graph.isCellVisible(b)};TableLayout.prototype.getSize=function(b,c){for(var e=0,k=0;k<b.length;k++)if(!this.isVertexIgnored(b[k])){var g=this.graph.getCellGeometry(b[k]);null!=g&&(e+=c?g.width:g.height)}return e};
TableLayout.prototype.getRowLayout=function(b,c){for(var e=this.graph.model.getChildCells(b,!0),k=this.graph.getActualStartSize(b,!0),g=this.getSize(e,!0),p=c-k.x-k.width,t=[],k=k.x,d=0;d<e.length;d++){var f=this.graph.getCellGeometry(e[d]);null!=f&&(k+=(null!=f.alternateBounds?f.alternateBounds.width:f.width)*p/g,t.push(Math.round(k)))}return t};
TableLayout.prototype.layoutRow=function(b,c,e,k,g){var p=this.graph.getModel(),t=p.getChildCells(b,!0);b=this.graph.getActualStartSize(b,!0);var d=null,f=b.x,l=0;null!=c&&(c=c.slice(),c.splice(0,0,b.x));for(var m=0;m<t.length;m++){var q=this.graph.getCellGeometry(t[m]);null!=q&&(q=q.clone(),q.y=b.y,q.height=e-b.y-b.height,null!=c?(q.x=c[m],q.width=c[m+1]-q.x,m==t.length-1&&m<c.length-2&&(q.width=k-q.x-b.x-b.width)):(q.x=f,f+=q.width,m==t.length-1?q.width=k-b.x-b.width-l:l+=q.width),q.alternateBounds=
-new mxRectangle(0,0,q.width,q.height),p.setGeometry(t[m],q));var n=!0,u=g[m];null!=u&&null!=u.geo&&null!=u.rowspan&&1<u.rowspan&&(u.geo.height+=null!=q.alternateBounds?q.alternateBounds.height:q.height,n=!1,u.rowspan--);null!=d&&null!=d.geo&&null!=d.colspan&&1<d.colspan&&(d.geo.width+=null!=q.alternateBounds?q.alternateBounds.width:q.width,n=!1,d.colspan--);p.setVisible(t[m],n);n=this.graph.getCurrentCellStyle(t[m],!0);q={style:n,cell:t[m],geo:q};if(null!=n){if(null==d||1>d.colspan)q.colspan=parseInt(n.colspan||
-0),d=q;null==u||1>u.rowspan?(q.rowspan=parseInt(n.rowspan||0),g[m]=q):null!=u&&(q.colspan=parseInt(u.style.colspan||0))}}return l};
+new mxRectangle(0,0,q.width,q.height),p.setGeometry(t[m],q));var n=!0,v=g[m];null!=v&&null!=v.geo&&null!=v.rowspan&&1<v.rowspan&&(v.geo.height+=null!=q.alternateBounds?q.alternateBounds.height:q.height,n=!1,v.rowspan--);null!=d&&null!=d.geo&&null!=d.colspan&&1<d.colspan&&(d.geo.width+=null!=q.alternateBounds?q.alternateBounds.width:q.width,n=!1,d.colspan--);p.setVisible(t[m],n);n=this.graph.getCurrentCellStyle(t[m],!0);q={style:n,cell:t[m],geo:q};if(null!=n){if(null==d||1>d.colspan)q.colspan=parseInt(n.colspan||
+0),d=q;null==v||1>v.rowspan?(q.rowspan=parseInt(n.rowspan||0),g[m]=q):null!=v&&(q.colspan=parseInt(v.style.colspan||0))}}return l};
TableLayout.prototype.execute=function(b){if(null!=b){var c=this.graph.getActualStartSize(b,!0),e=this.graph.getCellGeometry(b),k=this.graph.getCellStyle(b),g="1"==mxUtils.getValue(k,"resizeLastRow","0"),p="1"==mxUtils.getValue(k,"resizeLast","0"),k="1"==mxUtils.getValue(k,"fixedRows","0"),t=this.graph.getModel(),d=0;t.beginUpdate();try{var f=e.height-c.y-c.height,l=e.width-c.x-c.width,m=t.getChildCells(b,!0),q=this.getSize(m,!1);if(0<f&&0<l&&0<m.length&&0<q){if(g){var n=this.graph.getCellGeometry(m[m.length-
-1]);null!=n&&(n=n.clone(),n.height=f-q+n.height,t.setGeometry(m[m.length-1],n))}for(var u=p?null:this.getRowLayout(m[0],l),v=[],y=c.y,x=0;x<m.length;x++)n=this.graph.getCellGeometry(m[x]),null!=n&&(n=n.clone(),n.x=c.x,n.width=l,n.y=Math.round(y),y=g||k?y+n.height:y+n.height/q*f,n.height=Math.round(y)-n.y,t.setGeometry(m[x],n)),d=Math.max(d,this.layoutRow(m[x],u,n.height,l,v));k&&f<q&&(e=e.clone(),e.height=y+c.height,t.setGeometry(b,e));p&&l<d+Graph.minTableColumnWidth&&(e=e.clone(),e.width=d+c.width+
+1]);null!=n&&(n=n.clone(),n.height=f-q+n.height,t.setGeometry(m[m.length-1],n))}for(var v=p?null:this.getRowLayout(m[0],l),u=[],y=c.y,x=0;x<m.length;x++)n=this.graph.getCellGeometry(m[x]),null!=n&&(n=n.clone(),n.x=c.x,n.width=l,n.y=Math.round(y),y=g||k?y+n.height:y+n.height/q*f,n.height=Math.round(y)-n.y,t.setGeometry(m[x],n)),d=Math.max(d,this.layoutRow(m[x],v,n.height,l,u));k&&f<q&&(e=e.clone(),e.height=y+c.height,t.setGeometry(b,e));p&&l<d+Graph.minTableColumnWidth&&(e=e.clone(),e.width=d+c.width+
c.x+Graph.minTableColumnWidth,t.setGeometry(b,e))}}finally{t.endUpdate()}}};
(function(){var b=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){b.apply(this,arguments);this.validEdges=[]};var c=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(b,d){d=null!=d?d:!0;var f=this.getState(b);null!=f&&d&&this.graph.model.isEdge(f.cell)&&null!=f.style&&1!=f.style[mxConstants.STYLE_CURVED]&&!f.invalid&&this.updateLineJumps(f)&&this.graph.cellRenderer.redraw(f,!1,this.isRendering());f=c.apply(this,
arguments);null!=f&&d&&this.graph.model.isEdge(f.cell)&&null!=f.style&&1!=f.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(f);return f};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 g=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=
function(b){g.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 f=null!=b.routedPoints,c=null;if(null!=d&&null!=this.validEdges&&"none"!==mxUtils.getValue(b.style,"jumpStyle","none")){for(var e=function(d,f,e){var g=new mxPoint(f,e);g.type=d;c.push(g);g=null!=b.routedPoints?b.routedPoints[c.length-1]:null;return null==g||g.type!=
-d||g.x!=f||g.y!=e},g=.5*this.scale,f=!1,c=[],l=0;l<d.length-1;l++){for(var k=d[l+1],m=d[l],p=[],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 f=e(0,m.x,m.y)||f,M=0;M<this.validEdges.length;M++){var E=this.validEdges[M],K=E.absolutePoints;if(null!=K&&mxUtils.intersects(b,E)&&"1"!=E.style.noJump)for(E=0;E<K.length-1;E++){for(var B=K[E+1],L=K[E],t=K[E+2];E<K.length-2&&mxUtils.ptSegDistSq(L.x,L.y,t.x,t.y,B.x,B.y)<1*this.scale*this.scale;)B=
-t,E++,t=K[E+2];t=mxUtils.intersection(m.x,m.y,k.x,k.y,L.x,L.y,B.x,B.y);if(null!=t&&(Math.abs(t.x-m.x)>g||Math.abs(t.y-m.y)>g)&&(Math.abs(t.x-k.x)>g||Math.abs(t.y-k.y)>g)&&(Math.abs(t.x-L.x)>g||Math.abs(t.y-L.y)>g)&&(Math.abs(t.x-B.x)>g||Math.abs(t.y-B.y)>g)){B=t.x-m.x;L=t.y-m.y;t={distSq:B*B+L*L,x:t.x,y:t.y};for(B=0;B<p.length;B++)if(p[B].distSq>t.distSq){p.splice(B,0,t);t=null;break}null==t||0!=p.length&&p[p.length-1].x===t.x&&p[p.length-1].y===t.y||p.push(t)}}}for(E=0;E<p.length;E++)f=e(1,p[E].x,
-p[E].y)||f}t=d[d.length-1];f=e(0,t.x,t.y)||f}b.routedPoints=c;return f}return!1};var p=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(b,d,f){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)p.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,g=mxUtils.getValue(this.style,"jumpStyle","none"),l=!0,k=null,m=null,q=[],n=null;b.begin();for(var t=0;t<this.state.routedPoints.length;t++){var E=this.state.routedPoints[t],K=new mxPoint(E.x/this.scale,E.y/this.scale);0==t?K=d[0]:t==this.state.routedPoints.length-1&&(K=d[d.length-1]);var B=!1;if(null!=k&&1==E.type){var L=this.state.routedPoints[t+1],E=L.x/this.scale-K.x,L=L.y/this.scale-K.y,E=E*E+L*L;null==n&&(n=new mxPoint(K.x-k.x,K.y-k.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);E>e*e&&0<m&&(E=k.x-K.x,L=k.y-K.y,E=E*E+L*L,E>e*e&&(B=new mxPoint(K.x-n.x,K.y-n.y),E=new mxPoint(K.x+n.x,K.y+n.y),q.push(B),this.addPoints(b,q,f,c,!1,null,l),q=0>Math.round(n.x)||0==Math.round(n.x)&&0>=Math.round(n.y)?1:-1,l=!1,"sharp"==g?(b.lineTo(B.x-n.y*q,B.y+n.x*q),b.lineTo(E.x-n.y*q,E.y+n.x*q),b.lineTo(E.x,E.y)):"line"==g?(b.moveTo(B.x+n.y*q,B.y-n.x*q),b.lineTo(B.x-n.y*q,B.y+n.x*q),b.moveTo(E.x-n.y*q,E.y+n.x*q),b.lineTo(E.x+n.y*
-q,E.y-n.x*q),b.moveTo(E.x,E.y)):"arc"==g?(q*=1.3,b.curveTo(B.x-n.y*q,B.y+n.x*q,E.x-n.y*q,E.y+n.x*q,E.x,E.y)):(b.moveTo(E.x,E.y),l=!0),q=[E],B=!0))}else n=null;B||(q.push(K),k=K)}this.addPoints(b,q,f,c,!1,null,l);b.stroke()}};var t=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(b,d,f,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||g.x!=f||g.y!=e},g=.5*this.scale,f=!1,c=[],l=0;l<d.length-1;l++){for(var k=d[l+1],m=d[l],p=[],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 f=e(0,m.x,m.y)||f,M=0;M<this.validEdges.length;M++){var F=this.validEdges[M],K=F.absolutePoints;if(null!=K&&mxUtils.intersects(b,F)&&"1"!=F.style.noJump)for(F=0;F<K.length-1;F++){for(var C=K[F+1],L=K[F],t=K[F+2];F<K.length-2&&mxUtils.ptSegDistSq(L.x,L.y,t.x,t.y,C.x,C.y)<1*this.scale*this.scale;)C=
+t,F++,t=K[F+2];t=mxUtils.intersection(m.x,m.y,k.x,k.y,L.x,L.y,C.x,C.y);if(null!=t&&(Math.abs(t.x-m.x)>g||Math.abs(t.y-m.y)>g)&&(Math.abs(t.x-k.x)>g||Math.abs(t.y-k.y)>g)&&(Math.abs(t.x-L.x)>g||Math.abs(t.y-L.y)>g)&&(Math.abs(t.x-C.x)>g||Math.abs(t.y-C.y)>g)){C=t.x-m.x;L=t.y-m.y;t={distSq:C*C+L*L,x:t.x,y:t.y};for(C=0;C<p.length;C++)if(p[C].distSq>t.distSq){p.splice(C,0,t);t=null;break}null==t||0!=p.length&&p[p.length-1].x===t.x&&p[p.length-1].y===t.y||p.push(t)}}}for(F=0;F<p.length;F++)f=e(1,p[F].x,
+p[F].y)||f}t=d[d.length-1];f=e(0,t.x,t.y)||f}b.routedPoints=c;return f}return!1};var p=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(b,d,f){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)p.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,g=mxUtils.getValue(this.style,"jumpStyle","none"),l=!0,k=null,m=null,q=[],n=null;b.begin();for(var t=0;t<this.state.routedPoints.length;t++){var F=this.state.routedPoints[t],K=new mxPoint(F.x/this.scale,F.y/this.scale);0==t?K=d[0]:t==this.state.routedPoints.length-1&&(K=d[d.length-1]);var C=!1;if(null!=k&&1==F.type){var L=this.state.routedPoints[t+1],F=L.x/this.scale-K.x,L=L.y/this.scale-K.y,F=F*F+L*L;null==n&&(n=new mxPoint(K.x-k.x,K.y-k.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);F>e*e&&0<m&&(F=k.x-K.x,L=k.y-K.y,F=F*F+L*L,F>e*e&&(C=new mxPoint(K.x-n.x,K.y-n.y),F=new mxPoint(K.x+n.x,K.y+n.y),q.push(C),this.addPoints(b,q,f,c,!1,null,l),q=0>Math.round(n.x)||0==Math.round(n.x)&&0>=Math.round(n.y)?1:-1,l=!1,"sharp"==g?(b.lineTo(C.x-n.y*q,C.y+n.x*q),b.lineTo(F.x-n.y*q,F.y+n.x*q),b.lineTo(F.x,F.y)):"line"==g?(b.moveTo(C.x+n.y*q,C.y-n.x*q),b.lineTo(C.x-n.y*q,C.y+n.x*q),b.moveTo(F.x-n.y*q,F.y+n.x*q),b.lineTo(F.x+n.y*
+q,F.y-n.x*q),b.moveTo(F.x,F.y)):"arc"==g?(q*=1.3,b.curveTo(C.x-n.y*q,C.y+n.x*q,F.x-n.y*q,F.y+n.x*q,F.x,F.y)):(b.moveTo(F.x,F.y),l=!0),q=[F],C=!0))}else n=null;C||(q.push(K),k=K)}this.addPoints(b,q,f,c,!1,null,l);b.stroke()}};var t=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(b,d,f,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,f,c,e){if(null==f||null==b||"1"!=f.style.snapToPoint&&"1"!=b.style.snapToPoint)d.apply(this,arguments);else{f=this.getTerminalPort(b,f,e);var g=this.getNextPoint(b,c,e),l=this.graph.isOrthogonal(b),k=mxUtils.toRadians(Number(f.style[mxConstants.STYLE_ROTATION]||"0")),m=new mxPoint(f.getCenterX(),f.getCenterY());if(0!=k)var q=Math.cos(-k),n=Math.sin(-k),g=mxUtils.getRotatedPoint(g,q,n,m);q=parseFloat(b.style[mxConstants.STYLE_PERIMETER_SPACING]||
0);q+=parseFloat(b.style[e?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);g=this.getPerimeterPoint(f,g,0==k&&l,q);0!=k&&(q=Math.cos(k),n=Math.sin(k),g=mxUtils.getRotatedPoint(g,q,n,m));b.setAbsoluteTerminalPoint(this.snapToAnchorPoint(b,f,c,e,g),e)}};mxGraphView.prototype.snapToAnchorPoint=function(b,d,f,c,e){if(null!=d&&null!=b){b=this.graph.getAllConnectionConstraints(d);c=f=null;if(null!=b)for(var g=0;g<b.length;g++){var l=this.graph.getConnectionPoint(d,
b[g]);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)f=l,c=k}}null!=f&&(e=f)}return e};var f=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(b,d,c){var e=f.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=
-mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,null);if(null!=d&&"string"===typeof d&&"stencil("==d.substring(0,8))try{var f=d.substring(8,d.length-1),c=mxUtils.parseXml(Graph.decompress(f));return new mxShape(new mxStencil(c.documentElement))}catch(v){null!=window.console&&console.log("Error in shape: "+v)}}return l.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];
+mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,null);if(null!=d&&"string"===typeof d&&"stencil("==d.substring(0,8))try{var f=d.substring(8,d.length-1),c=mxUtils.parseXml(Graph.decompress(f));return new mxShape(new mxStencil(c.documentElement))}catch(u){null!=window.console&&console.log("Error in shape: "+u)}}return l.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];
mxStencilRegistry.filesLoaded={};
mxStencilRegistry.getStencil=function(b){var c=mxStencilRegistry.stencils[b];if(null==c&&null==mxCellRenderer.defaultShapes[b]&&mxStencilRegistry.dynamicLoading){var e=mxStencilRegistry.getBasenameForStencil(b);if(null!=e){c=mxStencilRegistry.libraries[e];if(null!=c){if(null==mxStencilRegistry.packages[e]){for(var k=0;k<c.length;k++){var g=c[k];if(!mxStencilRegistry.filesLoaded[g])if(mxStencilRegistry.filesLoaded[g]=!0,".xml"==g.toLowerCase().substring(g.length-4,g.length))mxStencilRegistry.loadStencilSet(g,
null);else if(".js"==g.toLowerCase().substring(g.length-3,g.length))try{if(mxStencilRegistry.allowEval){var p=mxUtils.load(g);null!=p&&200<=p.getStatus()&&299>=p.getStatus()&&eval.call(window,p.getText())}}catch(t){null!=window.console&&console.log("error in getStencil:",b,e,c,g,t)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);c=mxStencilRegistry.stencils[b]}}return c};
@@ -2527,24 +2527,24 @@ d,f,c){d=null!=d?d:0;f=null!=f?f:0;var e=new mxCodec(b.ownerDocument),g=new mxGr
q&&(b=this.moveCells(q,d,f,!1,this.getDefaultParent()),l[g.getChildAt(g.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),f=this.snap(f));var n=this.getBoundingBoxFromGeometry(b,!0);null!=n&&this.moveCells(b,d-n.x,f-n.y)}}finally{this.model.endUpdate()}}return b};Graph.prototype.encodeCells=function(b){for(var d={},f=this.cloneCells(b,null,d),c=new mxDictionary,e=0;e<b.length;e++)c.put(b[e],
!0);for(var g=new mxCodec,l=new mxGraphModel,k=l.getChildAt(l.getRoot(),0),e=0;e<f.length;e++){l.add(k,f[e]);var m=this.view.getState(b[e]);if(null!=m){var q=this.getCellGeometry(f[e]);null!=q&&q.relative&&!this.model.isEdge(b[e])&&null==c.get(this.model.getParent(b[e]))&&(q.offset=null,q.relative=!1,q.x=m.x/m.view.scale-m.view.translate.x,q.y=m.y/m.view.scale-m.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(d,this.createCellLookup(b)),f);return g.encode(l)};Graph.prototype.isSwimlane=
function(b,d){if(null!=b&&this.model.getParent(b)!=this.model.getRoot()&&!this.model.isEdge(b)){var f=this.getCurrentCellStyle(b,d)[mxConstants.STYLE_SHAPE];return f==mxConstants.SHAPE_SWIMLANE||"table"==f}return!1};var d=Graph.prototype.isExtendParent;Graph.prototype.isExtendParent=function(b){var f=this.model.getParent(b);if(null!=f){var c=this.getCurrentCellStyle(f);if(null!=c.expand)return"0"!=c.expand}return d.apply(this,arguments)&&(null==f||!this.isTable(f))};var f=Graph.prototype.splitEdge;
-Graph.prototype.splitEdge=function(b,d,c,e,g,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=f.apply(this,[b,d,c,e,g,l,k,m]);this.model.setValue(c,"");var q=this.getChildCells(c,!0);for(d=0;d<q.length;d++){var n=this.getCellGeometry(q[d]);null!=n&&n.relative&&0<n.x&&this.model.remove(q[d])}var G=this.getChildCells(b,!0);for(d=0;d<G.length;d++)n=this.getCellGeometry(G[d]),null!=n&&n.relative&&
-0>=n.x&&this.model.remove(G[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 oa=this.model.getTerminal(c,!1);if(null!=oa){var v=this.getCurrentCellStyle(oa);null!=v&&"1"==v.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[b]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,
+Graph.prototype.splitEdge=function(b,d,c,e,g,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=f.apply(this,[b,d,c,e,g,l,k,m]);this.model.setValue(c,"");var q=this.getChildCells(c,!0);for(d=0;d<q.length;d++){var n=this.getCellGeometry(q[d]);null!=n&&n.relative&&0<n.x&&this.model.remove(q[d])}var H=this.getChildCells(b,!0);for(d=0;d<H.length;d++)n=this.getCellGeometry(H[d]),null!=n&&n.relative&&
+0>=n.x&&this.model.remove(H[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 ba=this.model.getTerminal(c,!1);if(null!=ba){var u=this.getCurrentCellStyle(ba);null!=u&&"1"==u.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[b]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,
null,[b]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[c]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[c]))}}finally{this.model.endUpdate()}return c};var l=Graph.prototype.selectCell;Graph.prototype.selectCell=function(b,d,f){if(d||f)l.apply(this,arguments);else{var c=this.getSelectionCell(),e=null,g=[],k=mxUtils.bind(this,function(d){if(null!=this.view.getState(d)&&(this.model.isVertex(d)||this.model.isEdge(d)))if(g.push(d),d==c)e=g.length-1;else if(b&&null==c&&0<g.length||null!=e&&
b&&g.length>e||!b&&0<e)return;for(var f=0;f<this.model.getChildCount(d);f++)k(this.model.getChildAt(d,f))});k(this.model.root);0<g.length&&(e=null!=e?mxUtils.mod(e+(b?1:-1),g.length):0,this.setSelectionCell(g[e]))}};Graph.prototype.swapUmlLifelines=function(b,d){var f=!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)){f=e.clone();e=c.clone();e.x=f.x;e.y=f.y;f.x=c.x;f.y=c.y;this.model.beginUpdate();try{this.model.setGeometry(d,f),this.model.setGeometry(b[0],e)}finally{this.model.endUpdate()}f=!0}}return f};var m=Graph.prototype.moveCells;Graph.prototype.moveCells=function(b,d,f,c,e,g,l){if(!c&&this.swapUmlLifelines(b,e))return b;l=null!=l?l:{};if(this.isTable(e)){for(var k=[],q=0;q<b.length;q++)this.isTable(b[q])?k=k.concat(this.model.getChildCells(b[q],!0).reverse()):k.push(b[q]);b=k}this.model.beginUpdate();
-try{k=[];for(q=0;q<b.length;q++)if(null!=e&&this.isTableRow(b[q])){var n=this.model.getParent(b[q]),G=this.getCellGeometry(b[q]);this.isTable(n)&&k.push(n);if(null!=n&&null!=G&&this.isTable(n)&&this.isTable(e)&&(c||n!=e)){if(!c){var v=this.getCellGeometry(n);null!=v&&(v=v.clone(),v.height-=G.height,this.model.setGeometry(n,v))}v=this.getCellGeometry(e);null!=v&&(v=v.clone(),v.height+=G.height,this.model.setGeometry(e,v));var oa=this.model.getChildCells(e,!0);if(0<oa.length){b[q]=c?this.cloneCell(b[q]):
-b[q];var u=this.model.getChildCells(b[q],!0),p=this.model.getChildCells(oa[0],!0),A=p.length-u.length;if(0<A)for(var x=0;x<A;x++){var J=this.cloneCell(u[u.length-1]);null!=J&&(J.value="",this.model.add(b[q],J))}else if(0>A)for(x=0;x>A;x--)this.model.remove(u[u.length+x-1]);u=this.model.getChildCells(b[q],!0);for(x=0;x<p.length;x++){var P=this.getCellGeometry(p[x]),ua=this.getCellGeometry(u[x]);null!=P&&null!=ua&&(ua=ua.clone(),ua.width=P.width,this.model.setGeometry(u[x],ua))}}}}for(var t=m.apply(this,
-arguments),q=0;q<k.length;q++)!c&&this.model.contains(k[q])&&0==this.model.getChildCount(k[q])&&this.model.remove(k[q]);c&&this.updateCustomLinks(this.createCellMapping(l,this.createCellLookup(b)),t)}finally{this.model.endUpdate()}return t};var q=Graph.prototype.removeCells;Graph.prototype.removeCells=function(b,d){var f=[];this.model.beginUpdate();try{for(var c=0;c<b.length;c++)if(this.isTableCell(b[c])){var e=this.model.getParent(b[c]),g=this.model.getParent(e);1==this.model.getChildCount(e)&&1==
+try{k=[];for(q=0;q<b.length;q++)if(null!=e&&this.isTableRow(b[q])){var n=this.model.getParent(b[q]),H=this.getCellGeometry(b[q]);this.isTable(n)&&k.push(n);if(null!=n&&null!=H&&this.isTable(n)&&this.isTable(e)&&(c||n!=e)){if(!c){var u=this.getCellGeometry(n);null!=u&&(u=u.clone(),u.height-=H.height,this.model.setGeometry(n,u))}u=this.getCellGeometry(e);null!=u&&(u=u.clone(),u.height+=H.height,this.model.setGeometry(e,u));var ba=this.model.getChildCells(e,!0);if(0<ba.length){b[q]=c?this.cloneCell(b[q]):
+b[q];var A=this.model.getChildCells(b[q],!0),v=this.model.getChildCells(ba[0],!0),p=v.length-A.length;if(0<p)for(var x=0;x<p;x++){var J=this.cloneCell(A[A.length-1]);null!=J&&(J.value="",this.model.add(b[q],J))}else if(0>p)for(x=0;x>p;x--)this.model.remove(A[A.length+x-1]);A=this.model.getChildCells(b[q],!0);for(x=0;x<v.length;x++){var t=this.getCellGeometry(v[x]),E=this.getCellGeometry(A[x]);null!=t&&null!=E&&(E=E.clone(),E.width=t.width,this.model.setGeometry(A[x],E))}}}}for(var y=m.apply(this,
+arguments),q=0;q<k.length;q++)!c&&this.model.contains(k[q])&&0==this.model.getChildCount(k[q])&&this.model.remove(k[q]);c&&this.updateCustomLinks(this.createCellMapping(l,this.createCellLookup(b)),y)}finally{this.model.endUpdate()}return y};var q=Graph.prototype.removeCells;Graph.prototype.removeCells=function(b,d){var f=[];this.model.beginUpdate();try{for(var c=0;c<b.length;c++)if(this.isTableCell(b[c])){var e=this.model.getParent(b[c]),g=this.model.getParent(e);1==this.model.getChildCount(e)&&1==
this.model.getChildCount(g)?0>mxUtils.indexOf(b,g)&&0>mxUtils.indexOf(f,g)&&f.push(g):this.labelChanged(b[c],"")}else{if(this.isTableRow(b[c])&&(g=this.model.getParent(b[c]),0>mxUtils.indexOf(b,g)&&0>mxUtils.indexOf(f,g))){for(var l=this.model.getChildCells(g,!0),k=0,m=0;m<l.length;m++)0<=mxUtils.indexOf(b,l[m])&&k++;k==l.length&&f.push(g)}f.push(b[c])}f=q.apply(this,[f,d])}finally{this.model.endUpdate()}return f};Graph.prototype.updateCustomLinks=function(b,d,f){f=null!=f?f:new Graph;for(var c=0;c<
d.length;c++)null!=d[c]&&f.updateCustomLinksForCell(b,d[c],f)};Graph.prototype.updateCustomLinksForCell=function(b,d){this.doUpdateCustomLinksForCell(b,d);for(var f=this.model.getChildCount(d),c=0;c<f;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 f=mxUtils.getValue(b.style,"points",null);if(null!=f){var c=[];try{for(var e=JSON.parse(f),f=0;f<e.length;f++){var g=
-e[f];c.push(new mxConnectionConstraint(new mxPoint(g[0],g[1]),2<g.length?"0"!=g[2]:!0,null,3<g.length?g[3]:0,4<g.length?g[4]:0))}}catch(ra){}return c}if(null!=b.shape&&null!=b.shape.bounds){g=b.shape.direction;e=b.shape.bounds;f=b.shape.scale;c=e.width/f;e=e.height/f;if(g==mxConstants.DIRECTION_NORTH||g==mxConstants.DIRECTION_SOUTH)g=c,c=e,e=g;f=b.shape.getConstraints(b.style,c,e);if(null!=f)return f;if(null!=b.shape.stencil&&null!=b.shape.stencil.constraints)return b.shape.stencil.constraints;if(null!=
+e[f];c.push(new mxConnectionConstraint(new mxPoint(g[0],g[1]),2<g.length?"0"!=g[2]:!0,null,3<g.length?g[3]:0,4<g.length?g[4]:0))}}catch(xa){}return c}if(null!=b.shape&&null!=b.shape.bounds){g=b.shape.direction;e=b.shape.bounds;f=b.shape.scale;c=e.width/f;e=e.height/f;if(g==mxConstants.DIRECTION_NORTH||g==mxConstants.DIRECTION_SOUTH)g=c,c=e,e=g;f=b.shape.getConstraints(b.style,c,e);if(null!=f)return f;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),f=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||f++)}return 0<f||this.isContainer(b)};Graph.prototype.isValidDropTarget=function(b,d,f){for(var c=this.getCurrentCellStyle(b),e=!0,g=!0,l=0;l<d.length&&g;l++)e=e&&this.isTable(d[l]),g=g&&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)||g||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 f=this.model.getParent(b);null!=f&&(f=this.layoutManager.getLayout(f),null!=f&&f.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 f=this.getModel(),c=[];f.beginUpdate();try{for(var e=0;e<b.length;e++){var g=b[e];if(f.isEdge(g)){var l=f.getTerminal(g,!0),k=f.getTerminal(g,!1);f.setTerminal(g,k,!0);f.setTerminal(g,l,!1);var m=f.getGeometry(g);if(null!=m){m=m.clone();null!=m.points&&m.points.reverse();var q=m.getTerminalPoint(!0),n=m.getTerminalPoint(!1);
-m.setTerminalPoint(q,!1);m.setTerminalPoint(n,!0);f.setGeometry(g,m);var G=this.view.getState(g),v=this.view.getState(l),u=this.view.getState(k);if(null!=G){var oa=null!=v?this.getConnectionConstraint(G,v,!0):null,p=null!=u?this.getConnectionConstraint(G,u,!1):null;this.setConnectionConstraint(g,l,!0,p);this.setConnectionConstraint(g,k,!1,oa);var A=mxUtils.getValue(G.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(G.style,
-mxConstants.STYLE_TARGET_PERIMETER_SPACING),[g]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,A,[g])}c.push(g)}}else if(f.isVertex(g)&&(m=this.getCellGeometry(g),null!=m)){if(!(this.isTable(g)||this.isTableRow(g)||this.isTableCell(g)||this.isSwimlane(g))){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;f.setGeometry(g,m)}var J=this.view.getState(g);if(null!=J){var t=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,
-mxConstants.DIRECTION_NORTH],I=mxUtils.getValue(J.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,t[mxUtils.mod(mxUtils.indexOf(t,I)+(d?-1:1),t.length)],[g])}c.push(g)}}}finally{f.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 n=Graph.prototype.processChange;
+m.setTerminalPoint(q,!1);m.setTerminalPoint(n,!0);f.setGeometry(g,m);var H=this.view.getState(g),u=this.view.getState(l),ba=this.view.getState(k);if(null!=H){var A=null!=u?this.getConnectionConstraint(H,u,!0):null,v=null!=ba?this.getConnectionConstraint(H,ba,!1):null;this.setConnectionConstraint(g,l,!0,v);this.setConnectionConstraint(g,k,!1,A);var p=mxUtils.getValue(H.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(H.style,
+mxConstants.STYLE_TARGET_PERIMETER_SPACING),[g]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,p,[g])}c.push(g)}}else if(f.isVertex(g)&&(m=this.getCellGeometry(g),null!=m)){if(!(this.isTable(g)||this.isTableRow(g)||this.isTableCell(g)||this.isSwimlane(g))){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;f.setGeometry(g,m)}var J=this.view.getState(g);if(null!=J){var E=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,
+mxConstants.DIRECTION_NORTH],t=mxUtils.getValue(J.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,E[mxUtils.mod(mxUtils.indexOf(E,t)+(d?-1:1),E.length)],[g])}c.push(g)}}}finally{f.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 n=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 f=this.view.getState(d);null!=f&&null!=f.shape&&(this.view.invalidate(d),f.shape.bounds=null)}n.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 f=this.view.getState(b[d]);null!=f&&null!=f.shape&&null!=f.shape.stencil&&this.stencilHasPlaceholders(f.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 f=b.ownerDocument.createElement(null!=
d?d:"span"),c=Array.prototype.slice.call(b.attributes);attr=c.pop();)f.setAttribute(attr.nodeName,attr.nodeValue);f.innerHTML=b.innerHTML;b.parentNode.replaceChild(f,b)};Graph.prototype.processElements=function(b,d){if(null!=b)for(var f=b.getElementsByTagName("*"),c=0;c<f.length;c++)d(f[c])};Graph.prototype.updateLabelElements=function(b,d,f){b=null!=b?b:this.getSelectionCells();for(var c=document.createElement("div"),e=0;e<b.length;e++)if(this.isHtmlLabel(b[e])){var g=this.convertValueToString(b[e]);
@@ -2552,8 +2552,8 @@ if(null!=g&&0<g.length){c.innerHTML=g;for(var l=c.getElementsByTagName(null!=f?f
e.hasAttribute(c)){this.setAttributeForCell(e,c,d);break}e=this.model.getParent(e)}var g=b.value.cloneNode(!0);Graph.translateDiagram&&null!=Graph.diagramLanguage&&g.hasAttribute("label_"+Graph.diagramLanguage)?g.setAttribute("label_"+Graph.diagramLanguage,d):g.setAttribute("label",d);d=g}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(b){if(null!=b){for(var d=new mxDictionary,f=0;f<b.length;f++)d.put(b[f],!0);for(var c=
[],f=0;f<b.length;f++){var e=this.model.getParent(b[f]);null==e||d.get(e)||(d.put(e,!0),c.push(e))}for(f=0;f<c.length;f++)if(e=this.view.getState(c[f]),null!=e&&(this.model.isEdge(e.cell)||this.model.isVertex(e.cell))&&this.isCellDeletable(e.cell)&&this.isTransparentState(e)){for(var g=!0,l=0;l<this.model.getChildCount(e.cell)&&g;l++)d.get(this.model.getChildAt(e.cell,l))||(g=!1);g&&b.push(e.cell)}}mxGraph.prototype.cellsRemoved.apply(this,arguments)};Graph.prototype.removeCellsAfterUngroup=function(b){for(var d=
[],f=0;f<b.length;f++)this.isCellDeletable(b[f])&&this.isTransparentState(this.view.getState(b[f]))&&d.push(b[f]);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 f="tooltip";Graph.translateDiagram&&null!=Graph.diagramLanguage&&mxUtils.isNode(b.value)&&b.value.hasAttribute("tooltip_"+Graph.diagramLanguage)&&(f="tooltip_"+Graph.diagramLanguage);
-this.setAttributeForCell(b,f,d)};Graph.prototype.getAttributeForCell=function(b,d,f){b=null!=b.value&&"object"===typeof b.value?b.value.getAttribute(d):null;return null!=b?b:f};Graph.prototype.setAttributeForCell=function(b,d,f){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!=f?c.setAttribute(d,f):c.removeAttribute(d);this.model.setValue(b,c)};var u=Graph.prototype.getDropTarget;
-Graph.prototype.getDropTarget=function(b,d,f,c){this.getModel();if(mxEvent.isAltDown(d))return null;for(var e=0;e<b.length;e++){var g=this.model.getParent(b[e]);if(this.model.isEdge(g)&&0>mxUtils.indexOf(b,g))return null}for(var g=u.apply(this,arguments),l=!0,e=0;e<b.length&&l;e++)l=l&&this.isTableRow(b[e]);l&&(this.isTableCell(g)&&(g=this.model.getParent(g)),this.isTableRow(g)&&(g=this.model.getParent(g)),this.isTable(g)||(g=null));return g};Graph.prototype.click=function(b){mxGraph.prototype.click.call(this,
+this.setAttributeForCell(b,f,d)};Graph.prototype.getAttributeForCell=function(b,d,f){b=null!=b.value&&"object"===typeof b.value?b.value.getAttribute(d):null;return null!=b?b:f};Graph.prototype.setAttributeForCell=function(b,d,f){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!=f?c.setAttribute(d,f):c.removeAttribute(d);this.model.setValue(b,c)};var v=Graph.prototype.getDropTarget;
+Graph.prototype.getDropTarget=function(b,d,f,c){this.getModel();if(mxEvent.isAltDown(d))return null;for(var e=0;e<b.length;e++){var g=this.model.getParent(b[e]);if(this.model.isEdge(g)&&0>mxUtils.indexOf(b,g))return null}for(var g=v.apply(this,arguments),l=!0,e=0;e<b.length&&l;e++)l=l&&this.isTableRow(b[e]);l&&(this.isTableCell(g)&&(g=this.model.getParent(g)),this.isTableRow(g)&&(g=this.model.getParent(g)),this.isTable(g)||(g=null));return g};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 f=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,f.x,f.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(f.x,f.y))),d=this.addText(f.x,f.y,c))}return d};Graph.prototype.getInsertPoint=function(){var b=this.getGridSize(),
d=this.container.scrollLeft/this.view.scale-this.view.translate.x,f=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),f=Math.max(f,c.y*e.height);return new mxPoint(this.snap(d+b),this.snap(f+b))};Graph.prototype.getFreeInsertPoint=function(){var b=this.view,d=this.getGraphBounds(),f=this.getInsertPoint(),c=this.snap(Math.round(Math.max(f.x,d.x/b.scale-b.translate.x+(0==d.width?2*this.gridSize:
@@ -2568,19 +2568,19 @@ null!=d.sourceState||!l.intersects(this.currentState,d.getGraphX(),d.getGraphY()
(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!=f&&!c.isConsumed()&&Math.abs(this.scrollLeft-l.container.scrollLeft)<g&&Math.abs(this.scrollTop-l.container.scrollTop)<g&&Math.abs(this.startX-c.getGraphX())<g&&Math.abs(this.startY-
c.getGraphY())<g&&f(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 f=0;f<b.length;f++)this.isTableCell(b[f])&&(b[f]=this.model.getParent(b[f]));b=this.model.getTopmostCells(b);var c=this.getModel(),e=this.gridSize,g=[];c.beginUpdate();try{for(var l={},k=this.createCellLookup(b),m=this.cloneCells(b,!1,l,!0),f=0;f<b.length;f++){var q=c.getParent(b[f]);
-if(null!=q){var n=this.moveCells([m[f]],e,e,!1)[0];g.push(n);if(d)c.add(q,m[f]);else{var G=q.getIndex(b[f]);c.add(q,m[f],G+1)}if(this.isTable(q)){var v=this.getCellGeometry(m[f]),u=this.getCellGeometry(q);null!=v&&null!=u&&(u=u.clone(),u.height+=v.height,c.setGeometry(q,u))}}else g.push(m[f])}this.updateCustomLinks(this.createCellMapping(l,k),m,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",m))}finally{c.endUpdate()}return g};Graph.prototype.insertImage=function(b,d,f){if(null!=
+if(null!=q){var n=this.moveCells([m[f]],e,e,!1)[0];g.push(n);if(d)c.add(q,m[f]);else{var H=q.getIndex(b[f]);c.add(q,m[f],H+1)}if(this.isTable(q)){var u=this.getCellGeometry(m[f]),A=this.getCellGeometry(q);null!=u&&null!=A&&(A=A.clone(),A.height+=u.height,c.setGeometry(q,A))}}else g.push(m[f])}this.updateCustomLinks(this.createCellMapping(l,k),m,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",m))}finally{c.endUpdate()}return g};Graph.prototype.insertImage=function(b,d,f){if(null!=
b&&null!=this.cellEditor.textarea){for(var c=this.cellEditor.textarea.getElementsByTagName("img"),e=[],g=0;g<c.length;g++)e.push(c[g]);document.execCommand("insertimage",!1,b);b=this.cellEditor.textarea.getElementsByTagName("img");if(b.length==e.length+1)for(g=b.length-1;0<=g;g--)if(0==g||b[g]!=e[g-1]){b[g].setAttribute("width",d);b[g].setAttribute("height",f);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"),f=[],c=0;c<d.length;c++)f.push(d[c]);document.execCommand("createlink",!1,mxUtils.trim(b));d=this.cellEditor.textarea.getElementsByTagName("a");if(d.length==f.length+1)for(c=d.length-1;0<=c;c--)if(d[c]!=f[c-1]){for(d=d[c].getElementsByTagName("a");0<d.length;){for(f=d[0].parentNode;null!=d[0].firstChild;)f.insertBefore(d[0].firstChild,d[0]);f.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),f=this.getCurrentCellStyle(b);return!this.isTableCell(b)&&!this.isTableRow(b)&&(d||"0"!=mxUtils.getValue(f,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==f[mxConstants.STYLE_WHITE_SPACE])};Graph.prototype.distributeCells=function(b,d){null==d&&(d=this.getSelectionCells());if(null!=d&&1<d.length){for(var f=[],c=null,e=null,g=0;g<d.length;g++)if(this.getModel().isVertex(d[g])){var l=this.view.getState(d[g]);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;f.push(l)}}if(2<f.length){f.sort(function(d,f){return b?d.x-f.x:d.y-f.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)/(f.length-1),c=e,g=1;g<f.length-1;g++){var q=this.view.getState(this.model.getParent(f[g].cell)),n=this.getCellGeometry(f[g].cell),c=c+m;null!=n&&null!=q&&(n=n.clone(),b?n.x=Math.round(c-n.width/2)-q.origin.x:n.y=Math.round(c-n.height/
2)-q.origin.y,this.getModel().setGeometry(f[g].cell,n))}}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,f,c,e,g,l,k,m,q,n,G,v,u){var p=null;if(null!=u)for(p=new mxDictionary,n=0;n<u.length;n++)p.put(u[n],!0);if(u=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;f=null!=f?f:0;e=null!=e?e:!0;g=null!=g?g:!0;l=null!=l?l:!0;q=null!=q?q:!1;var A="page"==v?this.view.getBackgroundPageBounds():g&&null==p||c||"diagram"==v?this.getGraphBounds():
-this.getBoundingBox(this.getSelectionCells()),x=this.view.scale;"diagram"==v&&null!=this.backgroundImage&&(A=mxRectangle.fromRectangle(A),A.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==A)throw Error(mxResources.get("drawingEmpty"));var J=mxUtils.createXmlDocument(),t=null!=J.createElementNS?J.createElementNS(mxConstants.NS_SVG,"svg"):J.createElement("svg");
-null!=b&&(null!=t.style?t.style.backgroundColor=b:t.setAttribute("style","background-color:"+b));null==J.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 I=Math.max(1,Math.ceil(A.width*b)+2*f)+(q&&0==f?5:0),y=Math.max(1,Math.ceil(A.height*b)+2*f)+(q&&0==f?5:0);t.setAttribute("version","1.1");t.setAttribute("width",I+"px");t.setAttribute("height",
-y+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+I+" "+y);J.appendChild(t);var C=null!=J.createElementNS?J.createElementNS(mxConstants.NS_SVG,"g"):J.createElement("g");t.appendChild(C);var B=this.createSvgCanvas(C);B.foOffset=e?-.5:0;B.textOffset=e?-.5:0;B.imageOffset=e?-.5:0;B.translate(Math.floor(f/d-A.x/x),Math.floor(f/d-A.y/x));var oa=document.createElement("div"),Z=B.getAlternateText;B.getAlternateText=function(b,d,f,c,e,g,l,k,m,q,n,z,ea){if(null!=g&&0<this.state.fontSize)try{mxUtils.isNode(g)?
-g=g.innerText:(oa.innerHTML=g,g=mxUtils.extractTextWithWhitespace(oa.childNodes));for(var Wa=Math.ceil(2*c/this.state.fontSize),sa=[],Ca=0,G=0;(0==Wa||Ca<Wa)&&G<g.length;){var Ua=g.charCodeAt(G);if(10==Ua||13==Ua){if(0<Ca)break}else sa.push(g.charAt(G)),255>Ua&&Ca++;G++}sa.length<g.length&&1<g.length-sa.length&&(g=mxUtils.trim(sa.join(""))+"...");return g}catch(gb){return Z.apply(this,arguments)}else return Z.apply(this,arguments)};var N=this.backgroundImage;if(null!=N){d=x/d;var aa=this.view.translate,
-P=new mxRectangle((N.x+aa.x)*d,(N.y+aa.y)*d,N.width*d,N.height*d);mxUtils.intersects(A,P)&&B.image(N.x+aa.x,N.y+aa.y,N.width,N.height,N.src,!0)}B.scale(b);B.textEnabled=l;k=null!=k?k:this.createSvgImageExport();var ua=k.drawCellState,X=k.getLinkForCellState;k.getLinkForCellState=function(b,d){var f=X.apply(this,arguments);return null==f||b.view.graph.isCustomLink(f)?null:f};k.getLinkTargetForCellState=function(b,d){return b.view.graph.getLinkTargetForCell(b.cell)};k.drawCellState=function(b,d){for(var f=
-b.view.graph,c=null!=p?p.get(b.cell):f.isCellSelected(b.cell),e=f.model.getParent(b.cell);!(g&&null==p||c)&&null!=e;)c=null!=p?p.get(e):f.isCellSelected(e),e=f.model.getParent(e);(g&&null==p||c)&&ua.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),B);this.updateSvgLinks(t,m,!0);this.addForeignObjectWarning(B,t);return t}finally{u&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(b,d){if("0"!=urlParams["svg-warning"]&&
+b.width,b.height));return d};Graph.prototype.getBackgroundImageObject=function(b){return b};Graph.prototype.getSvg=function(b,d,f,c,e,g,l,k,m,q,n,H,u,A){var v=null;if(null!=A)for(v=new mxDictionary,n=0;n<A.length;n++)v.put(A[n],!0);if(A=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;f=null!=f?f:0;e=null!=e?e:!0;g=null!=g?g:!0;l=null!=l?l:!0;q=null!=q?q:!1;var p="page"==u?this.view.getBackgroundPageBounds():g&&null==v||c||"diagram"==u?this.getGraphBounds():
+this.getBoundingBox(this.getSelectionCells()),x=this.view.scale;"diagram"==u&&null!=this.backgroundImage&&(p=mxRectangle.fromRectangle(p),p.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==p)throw Error(mxResources.get("drawingEmpty"));var J=mxUtils.createXmlDocument(),E=null!=J.createElementNS?J.createElementNS(mxConstants.NS_SVG,"svg"):J.createElement("svg");
+null!=b&&(null!=E.style?E.style.backgroundColor=b:E.setAttribute("style","background-color:"+b));null==J.createElementNS?(E.setAttribute("xmlns",mxConstants.NS_SVG),E.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):E.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);b=d/x;var t=Math.max(1,Math.ceil(p.width*b)+2*f)+(q&&0==f?5:0),y=Math.max(1,Math.ceil(p.height*b)+2*f)+(q&&0==f?5:0);E.setAttribute("version","1.1");E.setAttribute("width",t+"px");E.setAttribute("height",
+y+"px");E.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+t+" "+y);J.appendChild(E);var B=null!=J.createElementNS?J.createElementNS(mxConstants.NS_SVG,"g"):J.createElement("g");E.appendChild(B);var C=this.createSvgCanvas(B);C.foOffset=e?-.5:0;C.textOffset=e?-.5:0;C.imageOffset=e?-.5:0;C.translate(Math.floor(f/d-p.x/x),Math.floor(f/d-p.y/x));var ba=document.createElement("div"),aa=C.getAlternateText;C.getAlternateText=function(b,d,f,c,e,g,l,k,m,q,n,H,z){if(null!=g&&0<this.state.fontSize)try{mxUtils.isNode(g)?
+g=g.innerText:(ba.innerHTML=g,g=mxUtils.extractTextWithWhitespace(ba.childNodes));for(var qa=Math.ceil(2*c/this.state.fontSize),Ta=[],sa=0,ya=0;(0==qa||sa<qa)&&ya<g.length;){var Va=g.charCodeAt(ya);if(10==Va||13==Va){if(0<sa)break}else Ta.push(g.charAt(ya)),255>Va&&sa++;ya++}Ta.length<g.length&&1<g.length-Ta.length&&(g=mxUtils.trim(Ta.join(""))+"...");return g}catch(gb){return aa.apply(this,arguments)}else return aa.apply(this,arguments)};var T=this.backgroundImage;if(null!=T){d=x/d;var N=this.view.translate,
+W=new mxRectangle((T.x+N.x)*d,(T.y+N.y)*d,T.width*d,T.height*d);mxUtils.intersects(p,W)&&C.image(T.x+N.x,T.y+N.y,T.width,T.height,T.src,!0)}C.scale(b);C.textEnabled=l;k=null!=k?k:this.createSvgImageExport();var G=k.drawCellState,va=k.getLinkForCellState;k.getLinkForCellState=function(b,d){var f=va.apply(this,arguments);return null==f||b.view.graph.isCustomLink(f)?null:f};k.getLinkTargetForCellState=function(b,d){return b.view.graph.getLinkTargetForCell(b.cell)};k.drawCellState=function(b,d){for(var f=
+b.view.graph,c=null!=v?v.get(b.cell):f.isCellSelected(b.cell),e=f.model.getParent(b.cell);!(g&&null==v||c)&&null!=e;)c=null!=v?v.get(e):f.isCellSelected(e),e=f.model.getParent(e);(g&&null==v||c)&&G.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),C);this.updateSvgLinks(E,m,!0);this.addForeignObjectWarning(C,E);return E}finally{A&&(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 f=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 g=b.createElement("text");g.setAttribute("text-anchor","middle");g.setAttribute("font-size","10px");g.setAttribute("x","50%");g.setAttribute("y","100%");mxUtils.write(g,Graph.foreignObjectWarningText);f.appendChild(c);e.appendChild(g);f.appendChild(e);d.appendChild(f)}};Graph.prototype.updateSvgLinks=function(b,d,f){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):f&&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());
@@ -2588,7 +2588,7 @@ return b};Graph.prototype.getSelectedEditingElement=function(){for(var b=this.ge
function(b,d,f){for(;null!=b&&!(0<=mxUtils.indexOf(d,b.nodeName));){if(b==f)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 f=document.createRange();f.selectNode(b);d.removeAllRanges();d.addRange(f)}}else(d=document.selection)&&"Control"!=d.type&&(b=d.createRange(),b.collapse(!0),f=d.createRange(),f.setEndPoint("StartToStart",b),f.select())};Graph.prototype.deleteCells=function(b,
d){var f=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 g=this.getCellGeometry(b[c]),l=this.getCellGeometry(e);null!=g&&null!=l&&(l=l.clone(),l.height-=g.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(f=[],c=0;c<k.length;c++)this.model.contains(k[c])&&(this.model.isVertex(k[c])||this.model.isEdge(k[c]))&&
f.push(k[c])}return f};Graph.prototype.insertTableColumn=function(b,d){var f=this.getModel();f.beginUpdate();try{var c=b,e=0;if(this.isTableCell(b))var g=f.getParent(b),c=f.getParent(g),e=mxUtils.indexOf(f.getChildCells(g,!0),b);else this.isTableRow(b)?c=f.getParent(b):b=f.getChildCells(c,!0)[0],d||(e=f.getChildCells(b,!0).length-1);for(var l=f.getChildCells(c,!0),k=Graph.minTableColumnWidth,g=0;g<l.length;g++){var m=f.getChildCells(l[g],!0)[e],q=f.cloneCell(m,!1),n=this.getCellGeometry(q);q.value=
-null;if(null!=n){var k=n.width,G=this.getCellGeometry(l[g]);null!=G&&(n.height=G.height)}f.add(l[g],q,e+(d?0:1))}var v=this.getCellGeometry(c);null!=v&&(v=v.clone(),v.width+=k,f.setGeometry(c,v))}finally{f.endUpdate()}};Graph.prototype.deleteLane=function(b){var d=this.getModel();d.beginUpdate();try{var f=null,f="stackLayout"==this.getCurrentCellStyle(b).childLayout?b:d.getParent(b),c=d.getChildCells(f,!0);0==c.length?d.remove(f):(f==b&&(b=c[c.length-1]),d.remove(b))}finally{d.endUpdate()}};Graph.prototype.insertLane=
+null;if(null!=n){var k=n.width,H=this.getCellGeometry(l[g]);null!=H&&(n.height=H.height)}f.add(l[g],q,e+(d?0:1))}var u=this.getCellGeometry(c);null!=u&&(u=u.clone(),u.width+=k,f.setGeometry(c,u))}finally{f.endUpdate()}};Graph.prototype.deleteLane=function(b){var d=this.getModel();d.beginUpdate();try{var f=null,f="stackLayout"==this.getCurrentCellStyle(b).childLayout?b:d.getParent(b),c=d.getChildCells(f,!0);0==c.length?d.remove(f):(f==b&&(b=c[c.length-1]),d.remove(b))}finally{d.endUpdate()}};Graph.prototype.insertLane=
function(b,d){var f=this.getModel();f.beginUpdate();try{var c=null,e=b;if("stackLayout"==this.getCurrentCellStyle(e).childLayout)var c=e,g=f.getChildCells(c,!0),e=g[d?0:g.length-1];else c=f.getParent(e);var l=c.getIndex(e),e=f.cloneCell(e,!1);e.value=null;f.add(c,e,l+(d?0:1))}finally{f.endUpdate()}};Graph.prototype.insertTableRow=function(b,d){var f=this.getModel();f.beginUpdate();try{var c=b,e=b;if(this.isTableCell(b))e=f.getParent(b),c=f.getParent(e);else if(this.isTableRow(b))c=f.getParent(b);
else var g=f.getChildCells(c,!0),e=g[d?0:g.length-1];var l=f.getChildCells(e,!0),k=c.getIndex(e),e=f.cloneCell(e,!1);e.value=null;var m=this.getCellGeometry(e);if(null!=m){for(g=0;g<l.length;g++){b=f.cloneCell(l[g],!1);e.insert(b);b.value=null;var q=this.getCellGeometry(b);null!=q&&(q.height=m.height)}f.add(c,e,k+(d?0:1));var n=this.getCellGeometry(c);null!=n&&(n=n.clone(),n.height+=m.height,f.setGeometry(c,n))}}finally{f.endUpdate()}};Graph.prototype.deleteTableColumn=function(b){var d=this.getModel();
d.beginUpdate();try{var f=b,c=b;this.isTableCell(b)&&(c=d.getParent(b));this.isTableRow(c)&&(f=d.getParent(c));var e=d.getChildCells(f,!0);if(0==e.length)d.remove(f);else{this.isTableRow(c)||(c=e[0]);var g=d.getChildCells(c,!0);if(1>=g.length)d.remove(f);else{var l=g.length-1;this.isTableCell(b)&&(l=mxUtils.indexOf(g,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 q=this.getCellGeometry(f);null!=q&&(q=q.clone(),
@@ -2603,104 +2603,102 @@ function(b,d){this.popupMenuHandler.hideMenu()});var b=this.updateMouseEvent;thi
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(),
f=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));f.insertNode(b);f.setStartAfter(b);f.setEndAfter(b);d.removeAllRanges();d.addRange(f)};mxCellEditor.prototype.alignText=function(b,d){var f=null!=d&&mxEvent.isShiftDown(d);if(f||null!=window.getSelection&&null!=window.getSelection().containsNode){var c=!0;this.graph.processElements(this.textarea,function(b){f||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=[],f=0,c=b.rangeCount;f<c;++f)d.push(b.getRangeAt(f));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,f=b.length;d<f;++d)sel.addRange(b[d])}else document.selection&&b.select&&b.select()}catch(da){}};var v=mxCellRenderer.prototype.postConfigureShape;mxCellRenderer.prototype.postConfigureShape=function(b){var d=mxUtils.hex2rgba(b.view.graph.defaultPageBackgroundColor),f=mxUtils.hex2rgba(b.view.graph.defaultForegroundColor);this.resolveDefaultColor(b,"fill",b.shape,d);this.resolveDefaultColor(b,"color",
-b.text,f);this.resolveDefaultColor(b,"border",b.text,f);this.resolveDefaultColor(b,"stroke",b.shape,f);this.resolveDefaultColor(b,"laneFill",b.shape,d);this.resolveDefaultColor(b,"background",b.text,d);this.resolveDefaultColor(b,"imageBorder",b.shape,f);this.resolveDefaultColor(b,"imageBackground",b.shape,d);v.apply(this,arguments)};mxCellRenderer.prototype.resolveDefaultColor=function(b,d,f,c){null!=f&&"default"==f[d]&&null!=c&&(f[d]=c)};var y=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=
-function(b){null!=b.text&&(b.text.replaceLinefeeds="0"!=mxUtils.getValue(b.style,"nl2Br","1"));y.apply(this,arguments)};var x=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(b,d){this.isKeepFocusEvent(b)||!mxEvent.isAltDown(b.getEvent())?x.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(b){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var D=mxCellEditor.prototype.startEditing;
-mxCellEditor.prototype.startEditing=function(b,d){b=this.graph.getStartEditingCell(b,d);D.apply(this,arguments);var f=this.graph.view.getState(b);this.textarea.className=null!=f&&1==f.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(b);var f=this.graph.getModel().getParent(b),c=this.graph.getCellGeometry(b);if(this.graph.getModel().isEdge(f)&&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 H=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(b){function d(b,f){f.originalNode=b;b=b.firstChild;for(var c=f.firstChild;null!=b&&null!=c;)d(b,c),b=b.nextSibling,c=c.nextSibling;return f}function f(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):(f(b,d),d=d.nextSibling);b=e}}function c(b){for(var d=
-b.firstChild;null!=d;){var f=d.nextSibling;c(d);d=f}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)}H.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]>")?f(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"),f=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),g=(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=g?"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=f;this.resize()}};var C=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 f=b.view.scale;this.bounds=mxRectangle.fromRectangle(b);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*f;this.bounds.height=60*f;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)/f)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/f)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/f)+(this.textarea.offsetHeight-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*f);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/f)+(this.textarea.offsetWidth-this.textarea.clientWidth)+
-"px",this.bounds.width=parseInt(this.textarea.style.width)*f);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("+f+","+f+")")}else this.textarea.style.height="",this.textarea.style.overflow="",C.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 f=this.graph.getEditingValue(b.cell,d);"1"==mxUtils.getValue(b.style,"nl2Br","1")&&(f=f.replace(/\n/g,"<br/>"));return f=this.graph.sanitizeHtml(f,!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 F=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(b){this.codeViewMode&&this.toggleViewMode();F.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(oa){}};var M=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(b,d){this.graph.getModel().beginUpdate();
-try{M.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.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 f=this.graph.view.translate,e=this.graph.view.scale;d=this.roundLength((this.bounds.x+this.currentDx)/e-f.x);f=this.roundLength((this.bounds.y+this.currentDy)/e-f.y);e=this.graph.view.unit;this.hint.innerHTML=
-c(d,e)+", "+c(f,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 E=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell=function(b,d){E.apply(this,arguments);var f=this.graph.getCellStyle(b);if(null==
-f.childLayout){var c=this.graph.model.getParent(b),e=null!=c?this.graph.getCellGeometry(c):null;if(null!=e&&(f=this.graph.getCellStyle(c),"stackLayout"==f.childLayout)){var g=parseFloat(mxUtils.getValue(f,"stackBorder",mxStackLayout.prototype.border)),f="1"==mxUtils.getValue(f,"horizontalStack","1"),l=this.graph.getActualStartSize(c),e=e.clone();f?e.height=d.height+l.y+l.height+2*g:e.width=d.width+l.x+l.width+2*g;this.graph.model.setGeometry(c,e)}}};var K=mxSelectionCellsHandler.prototype.getHandledSelectionCells;
-mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function b(b){f.get(b)||(f.put(b,!0),e.push(b))}for(var d=K.apply(this,arguments),f=new mxDictionary,c=this.graph.model,e=[],g=0;g<d.length;g++){var l=d[g];this.graph.isTableCell(l)?b(c.getParent(c.getParent(l))):this.graph.isTableRow(l)&&b(c.getParent(l));b(l)}return e};var B=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(b){var d=B.apply(this,arguments);d.stroke=
-"#C0C0C0";d.strokewidth=1;return d};var L=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(b){var d=L.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 O=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return O.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 ca=mxVertexHandler.prototype.isParentHighlightVisible;
-mxVertexHandler.prototype.isParentHighlightVisible=function(){return ca.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var N=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(b){return b.tableHandle||N.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var b=0;this.graph.isTableRow(this.state.cell)?
-b=1:this.graph.isTableCell(this.state.cell)&&(b=2);return b};var Q=mxVertexHandler.prototype.getSelectionBorderBounds;mxVertexHandler.prototype.getSelectionBorderBounds=function(){return Q.apply(this,arguments).grow(-this.getSelectionBorderInset())};var W=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var b=W.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var d=this.graph,f=d.model,c=this.state,e=this.selectionBorder,g=this;null==
-b&&(b=[]);var l=d.view.getCellStates(f.getChildCells(this.state.cell,!0));if(0<l.length){for(var k=f.getChildCells(l[0].cell,!0),f=0;f<k.length;f++)mxUtils.bind(this,function(f){var l=d.view.getState(k[f]),m=d.getCellGeometry(k[f]),q=null!=m.alternateBounds?m.alternateBounds:m;null==l&&(l=new mxCellState(d.view,k[f],d.getCellStyle(k[f])),l.x=c.x+m.x*d.view.scale,l.y=c.y+m.y*d.view.scale,l.width=q.width*d.view.scale,l.height=q.height*d.view.scale,l.updateCachedBounds());var m=f<k.length-1?k[f+1]:null,
-m=null!=m?d.getCellGeometry(m):null,n=null!=m&&null!=m.alternateBounds?m.alternateBounds:m,m=new mxLine(new mxRectangle,mxConstants.NONE,1,!0);m.isDashed=e.isDashed;m.svgStrokeTolerance++;l=new mxHandle(l,"col-resize",null,m);l.tableHandle=!0;var G=0;l.shape.node.parentNode.insertBefore(l.shape.node,l.shape.node.parentNode.firstChild);l.redraw=function(){if(null!=this.shape){var b=d.getActualStartSize(c.cell);this.shape.stroke=0==G?mxConstants.NONE:e.stroke;this.shape.bounds.x=this.state.x+(q.width+
-G)*this.graph.view.scale;this.shape.bounds.width=1;this.shape.bounds.y=c.y+(f==k.length-1?0:b.y*this.graph.view.scale);this.shape.bounds.height=c.height-(f==k.length-1?0:(b.height+b.y)*this.graph.view.scale);this.shape.redraw()}};var v=!1;l.setPosition=function(b,d,f){G=Math.max(Graph.minTableColumnWidth-q.width,d.x-b.x-q.width);v=mxEvent.isShiftDown(f.getEvent());null==n||v||(G=Math.min(G,n.width-Graph.minTableColumnWidth))};l.execute=function(b){if(0!=G)d.setTableColumnWidth(this.state.cell,G,v);
-else if(!g.blockDelayedSelection){var f=d.getCellAt(b.getGraphX(),b.getGraphY())||c.cell;d.graphHandler.selectCellForEvent(f,b)}G=0};l.positionChanged=function(){};l.reset=function(){G=0};b.push(l)})(f);for(f=0;f<l.length;f++)mxUtils.bind(this,function(f){f=l[f];var k=new mxLine(new mxRectangle,mxConstants.NONE,1);k.isDashed=e.isDashed;k.svgStrokeTolerance++;f=new mxHandle(f,"row-resize",null,k);f.tableHandle=!0;var m=0;f.shape.node.parentNode.insertBefore(f.shape.node,f.shape.node.parentNode.firstChild);
-f.redraw=function(){null!=this.shape&&null!=this.state.shape&&(this.shape.stroke=0==m?mxConstants.NONE:e.stroke,this.shape.bounds.x=this.state.x,this.shape.bounds.width=this.state.width,this.shape.bounds.y=this.state.y+this.state.height+m*this.graph.view.scale,this.shape.bounds.height=1,this.shape.redraw())};f.setPosition=function(b,d,f){m=Math.max(Graph.minTableRowHeight-b.height,d.y-b.y-b.height)};f.execute=function(b){if(0!=m)d.setTableRowHeight(this.state.cell,m,!mxEvent.isShiftDown(b.getEvent()));
-else if(!g.blockDelayedSelection){var f=d.getCellAt(b.getGraphX(),b.getGraphY())||c.cell;d.graphHandler.selectCellForEvent(f,b)}m=0};f.reset=function(){m=0};b.push(f)})(f)}}return null!=b?b.reverse():null};var G=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){G.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 f=mxUtils.createImage(Editor.rowMoveImage);f.style.position="absolute";f.style.cursor="pointer";f.style.width="7px";f.style.height=
-"4px";f.style.padding="4px 2px 4px 2px";f.rowState=d;mxEvent.addGestureListeners(f,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(f);this.graph.container.appendChild(f)}})(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 J=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var b=new mxPoint(0,0),d=this.tolerance,f=this.state.style.shape;null==mxCellRenderer.defaultShapes[f]&&mxStencilRegistry.getStencil(f);f=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!f&&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,g=e.getCenterX(),l=e.getCenterY();if(Math.abs(this.state.x-g)<e.width/2||Math.abs(this.state.y-l)<e.height/2||Math.abs(this.state.x+this.state.width-g)<e.width/2||Math.abs(this.state.y+this.state.height-l)<e.height/2){f=!0;break}}f&&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=J.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 f=this.state.view.unit;this.hint.innerHTML=c(this.roundLength(this.bounds.width/d),f)+" x "+c(this.roundLength(this.bounds.height/d),f)}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 Z=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=function(b,d){Z.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(d,f){null==this.hint&&
-(this.hint=b(),this.state.view.graph.container.appendChild(this.hint));var e=this.graph.view.translate,g=this.graph.view.scale,l=this.roundLength(f.x/g-e.x),e=this.roundLength(f.y/g-e.y),g=this.graph.view.unit;this.hint.innerHTML=c(l,g)+", "+c(e,g);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(),f.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+
-HoverIcons.prototype.arrowFill+'" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="#01bd22" stroke-width="1"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>'):
-new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><circle cx="11" cy="11" r="3" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=mxClient.IS_SVG?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):new mxImage(IMAGE_PATH+"/handle-rotate.png",16,16);mxClient.IS_SVG&&(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.terminalHandleImage=HoverIcons.prototype.terminalHandle;
-mxEdgeHandler.prototype.fixedHandleImage=HoverIcons.prototype.fixedHandle;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);mxClient.IS_SVG||((new Image).src=HoverIcons.prototype.mainHandle.src,(new Image).src=HoverIcons.prototype.fixedHandle.src,(new Image).src=HoverIcons.prototype.terminalHandle.src,(new Image).src=HoverIcons.prototype.secondaryHandle.src,(new Image).src=HoverIcons.prototype.rotationHandle.src,(new Image).src=HoverIcons.prototype.triangleUp.src,(new Image).src=HoverIcons.prototype.triangleRight.src,(new Image).src=
-HoverIcons.prototype.triangleDown.src,(new Image).src=HoverIcons.prototype.triangleLeft.src,(new Image).src=HoverIcons.prototype.refreshTarget.src,(new Image).src=HoverIcons.prototype.roundDrop.src);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(b){return!mxEvent.isShiftDown(b.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent=function(b){return!mxEvent.isShiftDown(b.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(b){return mxEvent.isMouseEvent(b.getEvent())?4:this.graph.getTolerance()};mxPanningHandler.prototype.isPanningTrigger=function(b){var d=b.getEvent();return null==
-b.getState()&&!mxEvent.isMouseEvent(d)||mxEvent.isPopupTrigger(d)&&(null==b.getState()||mxEvent.isControlDown(d)||mxEvent.isShiftDown(d))};var I=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(b,d){I.apply(this,arguments);mxEvent.isTouchEvent(d.getEvent())&&this.graph.isCellSelected(d.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(b){var d=b.getEvent();return mxEvent.isLeftMouseButton(d)&&
-(this.useLeftButtonForPanning&&null==b.getState()||mxEvent.isControlDown(d)&&!mxEvent.isShiftDown(d))||this.usePopupTrigger&&mxEvent.isPopupTrigger(d)};mxRubberband.prototype.isSpaceEvent=function(b){return this.graph.isEnabled()&&!this.graph.isCellLocked(this.graph.getDefaultParent())&&mxEvent.isControlDown(b.getEvent())&&mxEvent.isShiftDown(b.getEvent())&&mxEvent.isAltDown(b.getEvent())};mxRubberband.prototype.cancelled=!1;mxRubberband.prototype.cancel=function(){this.isActive()&&(this.cancelled=
-!0,this.reset())};mxRubberband.prototype.mouseUp=function(b,d){if(this.cancelled)this.cancelled=!1,d.consume();else{var f=null!=this.div&&"none"!=this.div.style.display,c=null,e=null,g=null,l=null;null!=this.first&&null!=this.currentX&&null!=this.currentY&&(c=this.first.x,e=this.first.y,g=(this.currentX-c)/this.graph.view.scale,l=(this.currentY-e)/this.graph.view.scale,mxEvent.isAltDown(d.getEvent())||(g=this.graph.snap(g),l=this.graph.snap(l),this.graph.isGridEnabled()||(Math.abs(g)<this.graph.tolerance&&
-(g=0),Math.abs(l)<this.graph.tolerance&&(l=0))));this.reset();if(f){if(this.isSpaceEvent(d)){this.graph.model.beginUpdate();try{for(var k=this.graph.getCellsBeyond(c,e,this.graph.getDefaultParent(),!0,!0),f=0;f<k.length;f++)if(this.graph.isCellMovable(k[f])){var m=this.graph.view.getState(k[f]),q=this.graph.getCellGeometry(k[f]);null!=m&&null!=q&&(q=q.clone(),q.translate(g,l),this.graph.model.setGeometry(k[f],q))}}finally{this.graph.model.endUpdate()}}else g=new mxRectangle(this.x,this.y,this.width,
-this.height),this.graph.selectRegion(g,d.getEvent());d.consume()}}};mxRubberband.prototype.mouseMove=function(b,d){if(!d.isConsumed()&&null!=this.first){var f=mxUtils.getScrollOrigin(this.graph.container),c=mxUtils.getOffset(this.graph.container);f.x-=c.x;f.y-=c.y;var c=d.getX()+f.x,f=d.getY()+f.y,e=this.first.x-c,g=this.first.y-f,l=this.graph.tolerance;if(null!=this.div||Math.abs(e)>l||Math.abs(g)>l)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(c,f),this.isSpaceEvent(d)?
-(c=this.x+this.width,f=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=f-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 X=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);X.apply(this,
-arguments)};var aa=(new Date).getTime(),la=0,ga=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(b,d,f,c){ga.apply(this,arguments);f!=this.currentTerminalState?(aa=(new Date).getTime(),la=0):la=(new Date).getTime()-aa;this.currentTerminalState=f};var ka=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(b){return null!=this.currentTerminalState&&b.getState()==this.currentTerminalState&&2E3<la||(null==this.currentTerminalState||
-"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&ka.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(b,d){var f=null!=b&&0==b,c=this.state.getVisibleTerminalState(f),e=null!=b&&(0==b||b>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==b)?this.graph.getConnectionConstraint(this.state,c,f):null,f=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(f),e):null)?this.fixedHandleImage:null!=e&&
-null!=c?this.terminalHandleImage:this.handleImage;if(null!=f)return f=new mxImageShape(new mxRectangle(0,0,f.width,f.height),f.src),f.preserveImageAspect=!1,f;f=mxConstants.HANDLE_SIZE;this.preferHtml&&--f;return new mxRectangleShape(new mxRectangle(0,0,f,f),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var pa=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(b,d,f){this.handleImage=d==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:
-d==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return pa.apply(this,arguments)};var qa=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(b){if(null!=b&&1==b.length){var d=this.graph.getModel(),f=d.getParent(b[0]),c=this.graph.getCellGeometry(b[0]);if(d.isEdge(f)&&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 qa.apply(this,
-arguments)};var ma=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var b=ma.apply(this,arguments),d=[],f=0;f<b.length;f++)"1"!=mxUtils.getValue(b[f].style,"part","0")&&d.push(b[f]);return d};var Y=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(b){var d=this.graph.getModel(),f=d.getParent(b.cell),c=this.graph.getCellGeometry(b.cell);return d.isEdge(f)&&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))):Y.apply(this,arguments)};var ba=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(b,d){var f=this.graph.getModel(),c=f.getParent(this.state.cell),e=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(d)==mxEvent.ROTATION_HANDLE||!f.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 ta=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=
-function(b,d){ta.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 U=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){U.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=[];for(var d=0;4>d;d++){var f=new mxRectangleShape(new mxRectangle(0,0,6,6),"#ffffff",mxConstants.HANDLE_STROKECOLOR);f.dialect=mxConstants.DIALECT_SVG;f.init(this.graph.view.getOverlayPane());this.cornerHandles.push(f)}}var c=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(b,d){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));c()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(b,d){this.redrawHandles()});
-this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);d=this.graph.getLinkForCell(this.state.cell);f=this.graph.getLinksForState(this.state);this.updateLinkHint(d,f);if(null!=d||null!=f&&0<f.length)b=!0;b&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(d,f){try{if(null==d&&(null==f||0==f.length)||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=d||null!=f&&0<f.length){null==
-this.linkHint&&(this.linkHint=b(),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!=d&&(this.linkHint.appendChild(this.graph.createLinkForHint(d)),this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var c=document.createElement("img");
-c.setAttribute("src",Editor.editImage);c.setAttribute("title",mxResources.get("editLink"));c.setAttribute("width","11");c.setAttribute("height","11");c.style.marginLeft="10px";c.style.marginBottom="-1px";c.style.cursor="pointer";this.linkHint.appendChild(c);mxEvent.addListener(c,"click",mxUtils.bind(this,function(b){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(b)}));this.linkHint.appendChildGraph.createRemoveIcon(mxResources.get("removeIt",[mxResources.get("link")]),
-mxUtils.bind(this,function(b){this.graph.setLinkForCell(this.state.cell,null);mxEvent.consume(b)}))}if(null!=f)for(c=0;c<f.length;c++){var e=document.createElement("div");e.style.marginTop=null!=d||0<c?"6px":"0px";e.appendChild(this.graph.createLinkForHint(f[c].getAttribute("href"),mxUtils.getTextContent(f[c])));this.linkHint.appendChild(e)}}}catch(wa){}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var T=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=
-function(){T.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});var b=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(d,f){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),
-this.graph.getLinksForState(this.state));b();this.redrawHandles()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var d=this.graph.getLinkForCell(this.state.cell),f=this.graph.getLinksForState(this.state);if(null!=d||null!=f&&0<f.length)this.updateLinkHint(d,f),this.redrawHandles()};var na=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){na.apply(this,arguments);this.constraintHandler.isEnabled=
-mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var va=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){if(null!=this.moveHandles)for(var b=0;b<this.moveHandles.length;b++)this.moveHandles[b].style.left=this.moveHandles[b].rowState.x+this.moveHandles[b].rowState.width-5+"px",this.moveHandles[b].style.top=this.moveHandles[b].rowState.y+this.moveHandles[b].rowState.height/2-6+"px";if(null!=this.cornerHandles){var b=this.getSelectionBorderInset(),
+function(b){try{if(b)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var d=0,f=b.length;d<f;++d)sel.addRange(b[d])}else document.selection&&b.select&&b.select()}catch(P){}};var u=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(b){null!=b.text&&(b.text.replaceLinefeeds="0"!=mxUtils.getValue(b.style,"nl2Br","1"));u.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 f=this.graph.view.getState(b);this.textarea.className=null!=f&&1==f.style.html?"mxCellEditor geContentEditable":
+"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(b);var f=this.graph.getModel().getParent(b),c=this.graph.getCellGeometry(b);if(this.graph.getModel().isEdge(f)&&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 D=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(b){function d(b,
+f){f.originalNode=b;b=b.firstChild;for(var c=f.firstChild;null!=b&&null!=c;)d(b,c),b=b.nextSibling,c=c.nextSibling;return f}function f(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):(f(b,d),d=d.nextSibling);b=e}}function c(b){for(var d=b.firstChild;null!=d;){var f=d.nextSibling;c(d);d=f}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)}D.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]>")?f(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"),f=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),g=(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=g?"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=f;this.resize()}};var I=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 f=b.view.scale;this.bounds=mxRectangle.fromRectangle(b);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*f;this.bounds.height=60*f;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)/f)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/f)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/f)+(this.textarea.offsetHeight-
+this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*f);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/f)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*f);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("+f+","+
+f+")")}else this.textarea.style.height="",this.textarea.style.overflow="",I.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 f=this.graph.getEditingValue(b.cell,d);"1"==mxUtils.getValue(b.style,"nl2Br","1")&&(f=f.replace(/\n/g,"<br/>"));return f=this.graph.sanitizeHtml(f,!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 B=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(b){this.codeViewMode&&this.toggleViewMode();
+B.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(ba){}};var G=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(b,d){this.graph.getModel().beginUpdate();try{G.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.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 f=this.graph.view.translate,e=this.graph.view.scale;d=this.roundLength((this.bounds.x+this.currentDx)/e-f.x);f=this.roundLength((this.bounds.y+this.currentDy)/e-f.y);e=this.graph.view.unit;this.hint.innerHTML=c(d,e)+", "+c(f,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 M=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell=function(b,d){M.apply(this,arguments);var f=this.graph.getCellStyle(b);if(null==f.childLayout){var c=this.graph.model.getParent(b),e=null!=c?this.graph.getCellGeometry(c):null;if(null!=e&&(f=this.graph.getCellStyle(c),"stackLayout"==f.childLayout)){var g=parseFloat(mxUtils.getValue(f,"stackBorder",mxStackLayout.prototype.border)),f="1"==mxUtils.getValue(f,"horizontalStack",
+"1"),l=this.graph.getActualStartSize(c),e=e.clone();f?e.height=d.height+l.y+l.height+2*g:e.width=d.width+l.x+l.width+2*g;this.graph.model.setGeometry(c,e)}}};var F=mxSelectionCellsHandler.prototype.getHandledSelectionCells;mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function b(b){f.get(b)||(f.put(b,!0),e.push(b))}for(var d=F.apply(this,arguments),f=new mxDictionary,c=this.graph.model,e=[],g=0;g<d.length;g++){var l=d[g];this.graph.isTableCell(l)?b(c.getParent(c.getParent(l))):
+this.graph.isTableRow(l)&&b(c.getParent(l));b(l)}return e};var K=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(b){var d=K.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 L=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return L.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 O=mxVertexHandler.prototype.isParentHighlightVisible;mxVertexHandler.prototype.isParentHighlightVisible=function(){return O.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var da=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=
+function(b){return b.tableHandle||da.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 Q=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var b=Q.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var d=this.graph,f=d.model,c=this.state,e=this.selectionBorder,g=this;null==b&&(b=[]);var l=d.view.getCellStates(f.getChildCells(this.state.cell,!0));if(0<l.length){for(var k=f.getChildCells(l[0].cell,!0),f=0;f<k.length;f++)mxUtils.bind(this,function(f){var l=d.view.getState(k[f]),m=d.getCellGeometry(k[f]),q=null!=m.alternateBounds?
+m.alternateBounds:m;null==l&&(l=new mxCellState(d.view,k[f],d.getCellStyle(k[f])),l.x=c.x+m.x*d.view.scale,l.y=c.y+m.y*d.view.scale,l.width=q.width*d.view.scale,l.height=q.height*d.view.scale,l.updateCachedBounds());var m=f<k.length-1?k[f+1]:null,m=null!=m?d.getCellGeometry(m):null,n=null!=m&&null!=m.alternateBounds?m.alternateBounds:m,m=new mxLine(new mxRectangle,mxConstants.NONE,1,!0);m.isDashed=e.isDashed;m.svgStrokeTolerance++;l=new mxHandle(l,"col-resize",null,m);l.tableHandle=!0;var H=0;l.shape.node.parentNode.insertBefore(l.shape.node,
+l.shape.node.parentNode.firstChild);l.redraw=function(){if(null!=this.shape){var b=d.getActualStartSize(c.cell);this.shape.stroke=0==H?mxConstants.NONE:e.stroke;this.shape.bounds.x=this.state.x+(q.width+H)*this.graph.view.scale;this.shape.bounds.width=1;this.shape.bounds.y=c.y+(f==k.length-1?0:b.y*this.graph.view.scale);this.shape.bounds.height=c.height-(f==k.length-1?0:(b.height+b.y)*this.graph.view.scale);this.shape.redraw()}};var u=!1;l.setPosition=function(b,d,f){H=Math.max(Graph.minTableColumnWidth-
+q.width,d.x-b.x-q.width);u=mxEvent.isShiftDown(f.getEvent());null==n||u||(H=Math.min(H,n.width-Graph.minTableColumnWidth))};l.execute=function(b){if(0!=H)d.setTableColumnWidth(this.state.cell,H,u);else if(!g.blockDelayedSelection){var f=d.getCellAt(b.getGraphX(),b.getGraphY())||c.cell;d.graphHandler.selectCellForEvent(f,b)}H=0};l.positionChanged=function(){};l.reset=function(){H=0};b.push(l)})(f);for(f=0;f<l.length;f++)mxUtils.bind(this,function(f){f=l[f];var k=new mxLine(new mxRectangle,mxConstants.NONE,
+1);k.isDashed=e.isDashed;k.svgStrokeTolerance++;f=new mxHandle(f,"row-resize",null,k);f.tableHandle=!0;var m=0;f.shape.node.parentNode.insertBefore(f.shape.node,f.shape.node.parentNode.firstChild);f.redraw=function(){null!=this.shape&&null!=this.state.shape&&(this.shape.stroke=0==m?mxConstants.NONE:e.stroke,this.shape.bounds.x=this.state.x,this.shape.bounds.width=this.state.width,this.shape.bounds.y=this.state.y+this.state.height+m*this.graph.view.scale,this.shape.bounds.height=1,this.shape.redraw())};
+f.setPosition=function(b,d,f){m=Math.max(Graph.minTableRowHeight-b.height,d.y-b.y-b.height)};f.execute=function(b){if(0!=m)d.setTableRowHeight(this.state.cell,m,!mxEvent.isShiftDown(b.getEvent()));else if(!g.blockDelayedSelection){var f=d.getCellAt(b.getGraphX(),b.getGraphY())||c.cell;d.graphHandler.selectCellForEvent(f,b)}m=0};f.reset=function(){m=0};b.push(f)})(f)}}return null!=b?b.reverse():null};var Y=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){Y.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 f=mxUtils.createImage(Editor.rowMoveImage);f.style.position="absolute";f.style.cursor="pointer";f.style.width="7px";f.style.height="4px";f.style.padding="4px 2px 4px 2px";f.rowState=d;mxEvent.addGestureListeners(f,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(f);this.graph.container.appendChild(f)}})(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 H=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var b=new mxPoint(0,0),d=this.tolerance,f=this.state.style.shape;null==mxCellRenderer.defaultShapes[f]&&mxStencilRegistry.getStencil(f);
+f=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!f&&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,g=e.getCenterX(),l=e.getCenterY();if(Math.abs(this.state.x-g)<e.width/2||Math.abs(this.state.y-l)<e.height/2||Math.abs(this.state.x+this.state.width-g)<e.width/2||Math.abs(this.state.y+this.state.height-l)<e.height/
+2){f=!0;break}}f&&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=H.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 f=this.state.view.unit;this.hint.innerHTML=c(this.roundLength(this.bounds.width/d),f)+" x "+c(this.roundLength(this.bounds.height/d),f)}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 J=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(b,d){J.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 A=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=
+function(b,d){A.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(d,f){null==this.hint&&(this.hint=b(),this.state.view.graph.container.appendChild(this.hint));var e=this.graph.view.translate,g=this.graph.view.scale,l=this.roundLength(f.x/g-e.x),e=this.roundLength(f.y/g-e.y),g=this.graph.view.unit;this.hint.innerHTML=c(l,g)+", "+c(e,g);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(),f.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=
+mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=
+mxClient.IS_SVG?Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="#01bd22" stroke-width="1"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>'):new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><circle cx="11" cy="11" r="3" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+"/handle-terminal.png",
+17,17);HoverIcons.prototype.rotationHandle=mxClient.IS_SVG?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):new mxImage(IMAGE_PATH+"/handle-rotate.png",16,16);mxClient.IS_SVG&&(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.terminalHandleImage=HoverIcons.prototype.terminalHandle;mxEdgeHandler.prototype.fixedHandleImage=HoverIcons.prototype.fixedHandle;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);mxClient.IS_SVG||((new Image).src=HoverIcons.prototype.mainHandle.src,(new Image).src=HoverIcons.prototype.fixedHandle.src,(new Image).src=HoverIcons.prototype.terminalHandle.src,(new Image).src=HoverIcons.prototype.secondaryHandle.src,(new Image).src=
+HoverIcons.prototype.rotationHandle.src,(new Image).src=HoverIcons.prototype.triangleUp.src,(new Image).src=HoverIcons.prototype.triangleRight.src,(new Image).src=HoverIcons.prototype.triangleDown.src,(new Image).src=HoverIcons.prototype.triangleLeft.src,(new Image).src=HoverIcons.prototype.refreshTarget.src,(new Image).src=HoverIcons.prototype.roundDrop.src);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(b){return!mxEvent.isShiftDown(b.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent=function(b){return!mxEvent.isShiftDown(b.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(b){return mxEvent.isMouseEvent(b.getEvent())?4:this.graph.getTolerance()};mxPanningHandler.prototype.isPanningTrigger=function(b){var d=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(d)||mxEvent.isPopupTrigger(d)&&(null==b.getState()||mxEvent.isControlDown(d)||mxEvent.isShiftDown(d))};var aa=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(b,d){aa.apply(this,arguments);mxEvent.isTouchEvent(d.getEvent())&&this.graph.isCellSelected(d.getCell())&&
+1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(b){var d=b.getEvent();return mxEvent.isLeftMouseButton(d)&&(this.useLeftButtonForPanning&&null==b.getState()||mxEvent.isControlDown(d)&&!mxEvent.isShiftDown(d))||this.usePopupTrigger&&mxEvent.isPopupTrigger(d)};mxRubberband.prototype.isSpaceEvent=function(b){return this.graph.isEnabled()&&!this.graph.isCellLocked(this.graph.getDefaultParent())&&mxEvent.isControlDown(b.getEvent())&&
+mxEvent.isShiftDown(b.getEvent())&&mxEvent.isAltDown(b.getEvent())};mxRubberband.prototype.cancelled=!1;mxRubberband.prototype.cancel=function(){this.isActive()&&(this.cancelled=!0,this.reset())};mxRubberband.prototype.mouseUp=function(b,d){if(this.cancelled)this.cancelled=!1,d.consume();else{var f=null!=this.div&&"none"!=this.div.style.display,c=null,e=null,g=null,l=null;null!=this.first&&null!=this.currentX&&null!=this.currentY&&(c=this.first.x,e=this.first.y,g=(this.currentX-c)/this.graph.view.scale,
+l=(this.currentY-e)/this.graph.view.scale,mxEvent.isAltDown(d.getEvent())||(g=this.graph.snap(g),l=this.graph.snap(l),this.graph.isGridEnabled()||(Math.abs(g)<this.graph.tolerance&&(g=0),Math.abs(l)<this.graph.tolerance&&(l=0))));this.reset();if(f){if(this.isSpaceEvent(d)){this.graph.model.beginUpdate();try{for(var k=this.graph.getCellsBeyond(c,e,this.graph.getDefaultParent(),!0,!0),f=0;f<k.length;f++)if(this.graph.isCellMovable(k[f])){var m=this.graph.view.getState(k[f]),q=this.graph.getCellGeometry(k[f]);
+null!=m&&null!=q&&(q=q.clone(),q.translate(g,l),this.graph.model.setGeometry(k[f],q))}}finally{this.graph.model.endUpdate()}}else g=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(g,d.getEvent());d.consume()}}};mxRubberband.prototype.mouseMove=function(b,d){if(!d.isConsumed()&&null!=this.first){var f=mxUtils.getScrollOrigin(this.graph.container),c=mxUtils.getOffset(this.graph.container);f.x-=c.x;f.y-=c.y;var c=d.getX()+f.x,f=d.getY()+f.y,e=this.first.x-c,g=this.first.y-
+f,l=this.graph.tolerance;if(null!=this.div||Math.abs(e)>l||Math.abs(g)>l)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(c,f),this.isSpaceEvent(d)?(c=this.x+this.width,f=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=f-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 E=mxRubberband.prototype.reset;
+mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);E.apply(this,arguments)};var W=(new Date).getTime(),T=0,na=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(b,d,f,c){na.apply(this,arguments);f!=this.currentTerminalState?(W=(new Date).getTime(),T=0):T=(new Date).getTime()-W;this.currentTerminalState=f};var ga=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=
+function(b){return null!=this.currentTerminalState&&b.getState()==this.currentTerminalState&&2E3<T||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&ga.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(b,d){var f=null!=b&&0==b,c=this.state.getVisibleTerminalState(f),e=null!=b&&(0==b||b>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==b)?this.graph.getConnectionConstraint(this.state,
+c,f):null,f=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(f),e):null)?this.fixedHandleImage:null!=e&&null!=c?this.terminalHandleImage:this.handleImage;if(null!=f)return f=new mxImageShape(new mxRectangle(0,0,f.width,f.height),f.src),f.preserveImageAspect=!1,f;f=mxConstants.HANDLE_SIZE;this.preferHtml&&--f;return new mxRectangleShape(new mxRectangle(0,0,f,f),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var ja=mxVertexHandler.prototype.createSizerShape;
+mxVertexHandler.prototype.createSizerShape=function(b,d,f){this.handleImage=d==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:d==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return ja.apply(this,arguments)};var ma=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(b){if(null!=b&&1==b.length){var d=this.graph.getModel(),f=d.getParent(b[0]),c=this.graph.getCellGeometry(b[0]);if(d.isEdge(f)&&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 ma.apply(this,arguments)};var oa=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var b=oa.apply(this,arguments),d=[],f=0;f<b.length;f++)"1"!=mxUtils.getValue(b[f].style,"part","0")&&d.push(b[f]);return d};var ka=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(b){var d=this.graph.getModel(),
+f=d.getParent(b.cell),c=this.graph.getCellGeometry(b.cell);return d.isEdge(f)&&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))):ka.apply(this,arguments)};var Z=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(b,d){var f=this.graph.getModel(),c=f.getParent(this.state.cell),e=this.graph.getCellGeometry(this.state.cell);
+(this.getHandleForEvent(d)==mxEvent.ROTATION_HANDLE||!f.isEdge(c)||null==e||!e.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&Z.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 ca=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(b,d){ca.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 R=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(b,d){R.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 ra=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){ra.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=[];for(var d=0;4>d;d++){var f=new mxRectangleShape(new mxRectangle(0,0,6,6),"#ffffff",mxConstants.HANDLE_STROKECOLOR);f.dialect=mxConstants.DIALECT_SVG;f.init(this.graph.view.getOverlayPane());
+this.cornerHandles.push(f)}}var c=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(b,d){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));c()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,
+this.changeHandler);this.editingHandler=mxUtils.bind(this,function(b,d){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);d=this.graph.getLinkForCell(this.state.cell);f=this.graph.getLinksForState(this.state);this.updateLinkHint(d,f);if(null!=d||null!=f&&0<f.length)b=!0;b&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(d,f){try{if(null==d&&(null==f||0==f.length)||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),
+this.linkHint=null);else if(null!=d||null!=f&&0<f.length){null==this.linkHint&&(this.linkHint=b(),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!=d&&(this.linkHint.appendChild(this.graph.createLinkForHint(d)),this.graph.isEnabled()&&"function"===
+typeof this.graph.editLink)){var c=document.createElement("img");c.setAttribute("src",Editor.editImage);c.setAttribute("title",mxResources.get("editLink"));c.setAttribute("width","11");c.setAttribute("height","11");c.style.marginLeft="10px";c.style.marginBottom="-1px";c.style.cursor="pointer";this.linkHint.appendChild(c);mxEvent.addListener(c,"click",mxUtils.bind(this,function(b){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(b)}));this.linkHint.appendChildGraph.createRemoveIcon(mxResources.get("removeIt",
+[mxResources.get("link")]),mxUtils.bind(this,function(b){this.graph.setLinkForCell(this.state.cell,null);mxEvent.consume(b)}))}if(null!=f)for(c=0;c<f.length;c++){var e=document.createElement("div");e.style.marginTop=null!=d||0<c?"6px":"0px";e.appendChild(this.graph.createLinkForHint(f[c].getAttribute("href"),mxUtils.getTextContent(f[c])));this.linkHint.appendChild(e)}}}catch(ea){}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var V=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=
+function(){V.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});var b=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(d,f){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),
+this.graph.getLinksForState(this.state));b();this.redrawHandles()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var d=this.graph.getLinkForCell(this.state.cell),f=this.graph.getLinksForState(this.state);if(null!=d||null!=f&&0<f.length)this.updateLinkHint(d,f),this.redrawHandles()};var U=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){U.apply(this,arguments);this.constraintHandler.isEnabled=
+mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var la=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){if(null!=this.moveHandles)for(var b=0;b<this.moveHandles.length;b++)this.moveHandles[b].style.left=this.moveHandles[b].rowState.x+this.moveHandles[b].rowState.width-5+"px",this.moveHandles[b].style.top=this.moveHandles[b].rowState.y+this.moveHandles[b].rowState.height/2-6+"px";if(null!=this.cornerHandles){var b=this.getSelectionBorderInset(),
d=this.cornerHandles,f=d[0].bounds.height/2;d[0].bounds.x=this.state.x-d[0].bounds.width/2+b;d[0].bounds.y=this.state.y-f+b;d[0].redraw();d[1].bounds.x=d[0].bounds.x+this.state.width-2*b;d[1].bounds.y=d[0].bounds.y;d[1].redraw();d[2].bounds.x=d[0].bounds.x;d[2].bounds.y=this.state.y+this.state.height-2*b;d[2].redraw();d[3].bounds.x=d[1].bounds.x;d[3].bounds.y=d[2].bounds.y;d[3].redraw();for(b=0;b<this.cornerHandles.length;b++)this.cornerHandles[b].node.style.display=1==this.graph.getSelectionCount()?
-"":"none"}null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=null!=this.moveHandles||1!=this.graph.getSelectionCount()||null!=this.index&&this.index!=mxEvent.ROTATION_HANDLE?"none":"");va.apply(this);null!=this.state&&null!=this.linkHint&&(b=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),d=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),f=mxUtils.getBoundingBox(d,this.state.style[mxConstants.STYLE_ROTATION]||
-"0",b),b=null!=f?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state,d=null!=this.state.text?this.state.text.boundingBox:null,null==f&&(f=this.state),f=f.y+f.height,null!=d&&(f=Math.max(f,d.y+d.height)),this.linkHint.style.left=Math.max(0,Math.round(b.x+(b.width-this.linkHint.clientWidth)/2))+"px",this.linkHint.style.top=Math.round(f+this.verticalOffset/2+Editor.hintOffset)+"px")};var S=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=
-function(){S.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 fa=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=
-function(){if(null!=this.marker&&(fa.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 ia=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){ia.apply(this,arguments);
-null!=this.linkHint&&(this.linkHint.style.visibility="")};var ja=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){ja.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(){mxSwimlane.call(this)}function c(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function k(){mxActor.call(this)}function g(){mxCylinder.call(this)}function p(){mxCylinder.call(this)}function t(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function f(){mxShape.call(this)}function l(){mxShape.call(this)}function m(b,d,f,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=f;this.strokewidth=null!=c?c:1}function q(){mxActor.call(this)}function n(){mxCylinder.call(this)}
-function u(){mxCylinder.call(this)}function v(){mxActor.call(this)}function y(){mxActor.call(this)}function x(){mxActor.call(this)}function D(){mxActor.call(this)}function H(){mxActor.call(this)}function C(){mxActor.call(this)}function F(){mxActor.call(this)}function M(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,M.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
-this.canvas.moveTo=mxUtils.bind(this,M.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,M.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,M.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,M.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,M.prototype.arcTo)}function E(){mxRectangleShape.call(this)}function K(){mxRectangleShape.call(this)}
-function B(){mxActor.call(this)}function L(){mxActor.call(this)}function O(){mxActor.call(this)}function ca(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function Q(){mxCylinder.call(this)}function W(){mxShape.call(this)}function G(){mxShape.call(this)}function J(){mxEllipse.call(this)}function A(){mxShape.call(this)}function Z(){mxShape.call(this)}function I(){mxRectangleShape.call(this)}function X(){mxShape.call(this)}function aa(){mxShape.call(this)}function la(){mxShape.call(this)}
-function ga(){mxShape.call(this)}function ka(){mxShape.call(this)}function pa(){mxCylinder.call(this)}function qa(){mxCylinder.call(this)}function ma(){mxRectangleShape.call(this)}function Y(){mxDoubleEllipse.call(this)}function ba(){mxDoubleEllipse.call(this)}function R(){mxArrowConnector.call(this);this.spacing=0}function ta(){mxArrowConnector.call(this);this.spacing=0}function U(){mxActor.call(this)}function T(){mxRectangleShape.call(this)}function na(){mxActor.call(this)}function va(){mxActor.call(this)}
-function S(){mxActor.call(this)}function fa(){mxActor.call(this)}function ia(){mxActor.call(this)}function ja(){mxActor.call(this)}function oa(){mxActor.call(this)}function ua(){mxActor.call(this)}function P(){mxActor.call(this)}function da(){mxActor.call(this)}function wa(){mxEllipse.call(this)}function ya(){mxEllipse.call(this)}function ra(){mxEllipse.call(this)}function za(){mxRhombus.call(this)}function Aa(){mxEllipse.call(this)}function Da(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}
-function Ka(){mxEllipse.call(this)}function Ba(){mxActor.call(this)}function Ha(){mxActor.call(this)}function Fa(){mxActor.call(this)}function V(b,d,f,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=f;this.strokewidth=null!=c?c:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function xa(){mxConnector.call(this)}function Oa(b,d,f,c,e,g,l,k,m,q){l+=m;var z=c.clone();c.x-=e*(2*l+m);c.y-=g*(2*l+m);e*=l+m;g*=l+m;return function(){b.ellipse(z.x-
+"":"none"}null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=null!=this.moveHandles||1!=this.graph.getSelectionCount()||null!=this.index&&this.index!=mxEvent.ROTATION_HANDLE?"none":"");la.apply(this);null!=this.state&&null!=this.linkHint&&(b=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),d=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),f=mxUtils.getBoundingBox(d,this.state.style[mxConstants.STYLE_ROTATION]||
+"0",b),b=null!=f?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state,d=null!=this.state.text?this.state.text.boundingBox:null,null==f&&(f=this.state),f=f.y+f.height,null!=d&&(f=Math.max(f,d.y+d.height)),this.linkHint.style.left=Math.max(0,Math.round(b.x+(b.width-this.linkHint.clientWidth)/2))+"px",this.linkHint.style.top=Math.round(f+this.verticalOffset/2+Editor.hintOffset)+"px")};var ta=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=
+function(){ta.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 S=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=
+function(){if(null!=this.marker&&(S.apply(this),null!=this.state&&null!=this.linkHint)){var b=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(b=new mxRectangle(b.x,b.y,b.width,b.height),b.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(b.x+(b.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(b.y+b.height+Editor.hintOffset)+"px"}};var fa=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){fa.apply(this,arguments);
+null!=this.linkHint&&(this.linkHint.style.visibility="")};var ia=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){ia.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(){mxSwimlane.call(this)}function c(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function k(){mxActor.call(this)}function g(){mxCylinder.call(this)}function p(){mxCylinder.call(this)}function t(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function f(){mxShape.call(this)}function l(){mxShape.call(this)}function m(b,d,f,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=f;this.strokewidth=null!=c?c:1}function q(){mxActor.call(this)}function n(){mxCylinder.call(this)}
+function v(){mxCylinder.call(this)}function u(){mxActor.call(this)}function y(){mxActor.call(this)}function x(){mxActor.call(this)}function D(){mxActor.call(this)}function I(){mxActor.call(this)}function B(){mxActor.call(this)}function G(){mxActor.call(this)}function M(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,M.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
+this.canvas.moveTo=mxUtils.bind(this,M.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,M.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,M.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,M.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,M.prototype.arcTo)}function F(){mxRectangleShape.call(this)}function K(){mxRectangleShape.call(this)}
+function C(){mxActor.call(this)}function L(){mxActor.call(this)}function O(){mxActor.call(this)}function da(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function Q(){mxCylinder.call(this)}function Y(){mxShape.call(this)}function H(){mxShape.call(this)}function J(){mxEllipse.call(this)}function A(){mxShape.call(this)}function aa(){mxShape.call(this)}function E(){mxRectangleShape.call(this)}function W(){mxShape.call(this)}function T(){mxShape.call(this)}function na(){mxShape.call(this)}
+function ga(){mxShape.call(this)}function ja(){mxShape.call(this)}function ma(){mxCylinder.call(this)}function oa(){mxCylinder.call(this)}function ka(){mxRectangleShape.call(this)}function Z(){mxDoubleEllipse.call(this)}function ca(){mxDoubleEllipse.call(this)}function R(){mxArrowConnector.call(this);this.spacing=0}function ra(){mxArrowConnector.call(this);this.spacing=0}function V(){mxActor.call(this)}function U(){mxRectangleShape.call(this)}function la(){mxActor.call(this)}function ta(){mxActor.call(this)}
+function S(){mxActor.call(this)}function fa(){mxActor.call(this)}function ia(){mxActor.call(this)}function ba(){mxActor.call(this)}function za(){mxActor.call(this)}function va(){mxActor.call(this)}function P(){mxActor.call(this)}function ea(){mxActor.call(this)}function wa(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}function pa(){mxEllipse.call(this)}function Aa(){mxRhombus.call(this)}function Ba(){mxEllipse.call(this)}function Da(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}
+function Ka(){mxEllipse.call(this)}function Ca(){mxActor.call(this)}function Ha(){mxActor.call(this)}function Fa(){mxActor.call(this)}function X(b,d,f,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=f;this.strokewidth=null!=c?c:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function ua(){mxConnector.call(this)}function Oa(b,d,f,c,e,g,l,k,m,q){l+=m;var z=c.clone();c.x-=e*(2*l+m);c.y-=g*(2*l+m);e*=l+m;g*=l+m;return function(){b.ellipse(z.x-
e-l,z.y-g-l,2*l,2*l);q?b.fillAndStroke():b.stroke()}}mxUtils.extend(b,mxSwimlane);b.prototype.getLabelBounds=function(b){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};b.prototype.paintVertexShape=function(b,d,f,c,e){0==this.getTitleSize()?mxRectangleShape.prototype.paintBackground.apply(this,arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),b.translate(-d,-f));this.paintForeground(b,
d,f,c,e)};b.prototype.paintForeground=function(b,d,f,c,e){if(null!=this.state){var z=this.flipH,g=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)var l=z,z=g,g=l;b.rotate(-this.getShapeRotation(),z,g,d+c/2,f+e/2);s=this.scale;d=this.bounds.x/s;f=this.bounds.y/s;c=this.bounds.width/s;e=this.bounds.height/s;this.paintTableForeground(b,d,f,c,e)}};b.prototype.paintTableForeground=function(b,d,f,c,e){var z=this.state.view.graph,g=z.getActualStartSize(this.state.cell),
-l=z.model.getChildCells(this.state.cell,!0);if(0<l.length){var k="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),m="0"!=mxUtils.getValue(this.state.style,"columnLines","1"),ea=z.getCellGeometry(l[0]),sa=z.model.getChildCells(l[0],!0),sa=[{y:null!=ea?ea.y+ea.height:0,x:0,cells:sa,colspans:[]}];if(k)for(k=1;k<l.length;k++){var ea=z.getCellGeometry(l[k]),q={y:0,cells:z.model.getChildCells(l[k],!0),colspans:[]};sa.push(q);if(null!=ea){q.y=ea.y+ea.height;b.begin();b.moveTo(d+g.x,f+ea.y);for(var n=
-0,Ca=0;Ca<q.cells.length;Ca++)z.model.isVisible(q.cells[Ca])?n=q.x:(0<n&&b.lineTo(d+n-g.width,f+ea.y),b.moveTo(d+ea.x+ea.width+g.x,f+ea.y),n=0);b.lineTo(d+c-g.width,f+ea.y);b.end();b.stroke()}}if(m)for(c=sa[0].cells,k=1;k<c.length;k++)if(ea=z.getCellGeometry(c[k]),null!=ea){b.begin();b.moveTo(d+ea.x+g.x,f+g.y);for(var Ca=l=0;Ca<sa.length;Ca++)q=sa[Ca],m=1==k?parseInt(z.getCurrentCellStyle(q.cells[k-1]).colspan||1):sa[Ca].colspans[k-1],q.colspans[k]=m-1,1>q.colspans[k]?(q.colspans[k]=parseInt(z.getCurrentCellStyle(q.cells[k]).colspan||
-1),l=q.y):(0<l&&b.lineTo(d+ea.x+g.x,f+l-g.height),b.moveTo(d+ea.x+g.x,f+q.y),l=0);b.lineTo(d+ea.x+g.x,f+e-g.height);b.end();b.stroke()}}};mxCellRenderer.registerShape("table",b);mxUtils.extend(c,mxCylinder);c.prototype.size=20;c.prototype.darkOpacity=0;c.prototype.darkOpacity2=0;c.prototype.paintVertexShape=function(b,d,f,c,e){var z=Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",
+l=z.model.getChildCells(this.state.cell,!0);if(0<l.length){var k="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),qa="0"!=mxUtils.getValue(this.state.style,"columnLines","1"),m=z.getCellGeometry(l[0]),sa=z.model.getChildCells(l[0],!0),sa=[{y:null!=m?m.y+m.height:0,x:0,cells:sa,colspans:[]}];if(k)for(k=1;k<l.length;k++){var m=z.getCellGeometry(l[k]),q={y:0,cells:z.model.getChildCells(l[k],!0),colspans:[]};sa.push(q);if(null!=m){q.y=m.y+m.height;b.begin();b.moveTo(d+g.x,f+m.y);for(var n=0,ya=
+0;ya<q.cells.length;ya++)z.model.isVisible(q.cells[ya])?n=q.x:(0<n&&b.lineTo(d+n-g.width,f+m.y),b.moveTo(d+m.x+m.width+g.x,f+m.y),n=0);b.lineTo(d+c-g.width,f+m.y);b.end();b.stroke()}}if(qa)for(c=sa[0].cells,k=1;k<c.length;k++)if(m=z.getCellGeometry(c[k]),null!=m){b.begin();b.moveTo(d+m.x+g.x,f+g.y);for(var ya=l=0;ya<sa.length;ya++)q=sa[ya],qa=1==k?parseInt(z.getCurrentCellStyle(q.cells[k-1]).colspan||1):sa[ya].colspans[k-1],q.colspans[k]=qa-1,1>q.colspans[k]?(q.colspans[k]=parseInt(z.getCurrentCellStyle(q.cells[k]).colspan||
+1),l=q.y):(0<l&&b.lineTo(d+m.x+g.x,f+l-g.height),b.moveTo(d+m.x+g.x,f+q.y),l=0);b.lineTo(d+m.x+g.x,f+e-g.height);b.end();b.stroke()}}};mxCellRenderer.registerShape("table",b);mxUtils.extend(c,mxCylinder);c.prototype.size=20;c.prototype.darkOpacity=0;c.prototype.darkOpacity2=0;c.prototype.paintVertexShape=function(b,d,f,c,e){var z=Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",
this.darkOpacity)))),l=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity2",this.darkOpacity2))));b.translate(d,f);b.begin();b.moveTo(0,0);b.lineTo(c-z,0);b.lineTo(c,z);b.lineTo(c,e);b.lineTo(z,e);b.lineTo(0,e-z);b.lineTo(0,0);b.close();b.end();b.fillAndStroke();this.outline||(b.setShadow(!1),0!=g&&(b.setFillAlpha(Math.abs(g)),b.setFillColor(0>g?"#FFFFFF":"#000000"),b.begin(),b.moveTo(0,0),b.lineTo(c-z,0),b.lineTo(c,z),b.lineTo(z,z),b.close(),b.fill()),0!=l&&(b.setFillAlpha(Math.abs(l)),
b.setFillColor(0>l?"#FFFFFF":"#000000"),b.begin(),b.moveTo(0,0),b.lineTo(z,z),b.lineTo(z,e),b.lineTo(0,e-z),b.close(),b.fill()),b.begin(),b.moveTo(z,e),b.lineTo(z,z),b.lineTo(0,0),b.moveTo(z,z),b.lineTo(c,z),b.end(),b.stroke())};c.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)?(b=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(b,b,0,0)):null};mxCellRenderer.registerShape("cube",c);var La=Math.tan(mxUtils.toRadians(30)),
Ja=(.5-La)/2;mxCellRenderer.registerShape("isoRectangle",k);mxUtils.extend(e,mxCylinder);e.prototype.size=6;e.prototype.paintVertexShape=function(b,d,f,c,e){b.setFillColor(this.stroke);var z=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;b.ellipse(d+.5*(c-z),f+.5*(e-z),z,z);b.fill();b.setFillColor(mxConstants.NONE);b.rect(d,f,c,e);b.fill()};mxCellRenderer.registerShape("waypoint",e);mxUtils.extend(k,mxActor);k.prototype.size=20;k.prototype.redrawPath=function(b,
@@ -2717,238 +2715,238 @@ c,z,0,0,1,0,e-z),b.close(),b.fillAndStroke(),b.setShadow(!1),g&&(b.begin(),b.mov
"arcSize",this.arcSize));l||(k*=Math.min(c,e));k=Math.min(k,.5*c,.5*(e-f));d=Math.max(d,k);d=Math.min(c-k,d);g||(k=0);b.begin();"left"==z?(b.moveTo(Math.max(k,0),f),b.lineTo(Math.max(k,0),0),b.lineTo(d,0),b.lineTo(d,f)):(b.moveTo(c-d,f),b.lineTo(c-d,0),b.lineTo(c-Math.max(k,0),0),b.lineTo(c-Math.max(k,0),f));g?(b.moveTo(0,k+f),b.arcTo(k,k,0,0,1,k,f),b.lineTo(c-k,f),b.arcTo(k,k,0,0,1,c,k+f),b.lineTo(c,e-k),b.arcTo(k,k,0,0,1,c-k,e),b.lineTo(k,e),b.arcTo(k,k,0,0,1,0,e-k)):(b.moveTo(0,f),b.lineTo(c,f),
b.lineTo(c,e),b.lineTo(0,e));b.close();b.fillAndStroke();b.setShadow(!1);"triangle"==mxUtils.getValue(this.style,"folderSymbol",null)&&(b.begin(),b.moveTo(c-30,f+20),b.lineTo(c-20,f+10),b.lineTo(c-10,f+20),b.close(),b.stroke())};mxCellRenderer.registerShape("folder",n);n.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var f=mxUtils.getValue(this.style,
"tabWidth",15)*this.scale,d=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,c=mxUtils.getValue(this.style,"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1),z=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));e||(z*=Math.min(b.width,b.height));z=Math.min(z,.5*b.width,.5*(b.height-d));c||(z=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(z,0,Math.min(b.width,b.width-f),Math.min(b.height,b.height-d)):new mxRectangle(Math.min(b.width,
-b.width-f),0,z,Math.min(b.height,b.height-d))}return new mxRectangle(0,Math.min(b.height,d),0,0)}return null};mxUtils.extend(u,mxCylinder);u.prototype.arcSize=.1;u.prototype.paintVertexShape=function(b,d,f,c,e){b.translate(d,f);var z=mxUtils.getValue(this.style,"rounded",!1),g=mxUtils.getValue(this.style,"absoluteArcSize",!1);d=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f=mxUtils.getValue(this.style,"umlStateConnection",null);g||(d*=Math.min(c,e));d=Math.min(d,.5*c,.5*e);z||(d=
+b.width-f),0,z,Math.min(b.height,b.height-d))}return new mxRectangle(0,Math.min(b.height,d),0,0)}return null};mxUtils.extend(v,mxCylinder);v.prototype.arcSize=.1;v.prototype.paintVertexShape=function(b,d,f,c,e){b.translate(d,f);var z=mxUtils.getValue(this.style,"rounded",!1),g=mxUtils.getValue(this.style,"absoluteArcSize",!1);d=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f=mxUtils.getValue(this.style,"umlStateConnection",null);g||(d*=Math.min(c,e));d=Math.min(d,.5*c,.5*e);z||(d=
0);z=0;null!=f&&(z=10);b.begin();b.moveTo(z,d);b.arcTo(d,d,0,0,1,z+d,0);b.lineTo(c-d,0);b.arcTo(d,d,0,0,1,c,d);b.lineTo(c,e-d);b.arcTo(d,d,0,0,1,c-d,e);b.lineTo(z+d,e);b.arcTo(d,d,0,0,1,z,e-d);b.close();b.fillAndStroke();b.setShadow(!1);"collapseState"==mxUtils.getValue(this.style,"umlStateSymbol",null)&&(b.roundrect(c-40,e-20,10,10,3,3),b.stroke(),b.roundrect(c-20,e-20,10,10,3,3),b.stroke(),b.begin(),b.moveTo(c-30,e-15),b.lineTo(c-20,e-15),b.stroke());"connPointRefEntry"==f?(b.ellipse(0,.5*e-10,
-20,20),b.fillAndStroke()):"connPointRefExit"==f&&(b.ellipse(0,.5*e-10,20,20),b.fillAndStroke(),b.begin(),b.moveTo(5,.5*e-5),b.lineTo(15,.5*e+5),b.moveTo(15,.5*e-5),b.lineTo(5,.5*e+5),b.stroke())};u.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};mxCellRenderer.registerShape("umlState",u);mxUtils.extend(v,mxActor);v.prototype.size=30;v.prototype.isRoundable=
-function(){return!0};v.prototype.redrawPath=function(b,d,f,c,e){d=Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c,e),new mxPoint(0,e),new mxPoint(0,d)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("card",v);mxUtils.extend(y,mxActor);y.prototype.size=.4;y.prototype.redrawPath=function(b,d,f,
+20,20),b.fillAndStroke()):"connPointRefExit"==f&&(b.ellipse(0,.5*e-10,20,20),b.fillAndStroke(),b.begin(),b.moveTo(5,.5*e-5),b.lineTo(15,.5*e+5),b.moveTo(15,.5*e-5),b.lineTo(5,.5*e+5),b.stroke())};v.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};mxCellRenderer.registerShape("umlState",v);mxUtils.extend(u,mxActor);u.prototype.size=30;u.prototype.isRoundable=
+function(){return!0};u.prototype.redrawPath=function(b,d,f,c,e){d=Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c,e),new mxPoint(0,e),new mxPoint(0,d)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("card",u);mxUtils.extend(y,mxActor);y.prototype.size=.4;y.prototype.redrawPath=function(b,d,f,
c,e){d=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.moveTo(0,d/2);b.quadTo(c/4,1.4*d,c/2,d/2);b.quadTo(3*c/4,d*(1-1.4),c,d/2);b.lineTo(c,e-d/2);b.quadTo(3*c/4,e-1.4*d,c/2,e-d/2);b.quadTo(c/4,e-d*(1-1.4),0,e-d/2);b.lineTo(0,d/2);b.close();b.end()};y.prototype.getLabelBounds=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",this.size),f=b.width,c=b.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||
this.direction==mxConstants.DIRECTION_WEST)return d*=c,new mxRectangle(b.x,b.y+d,f,c-2*d);d*=f;return new mxRectangle(b.x+d,b.y,f-2*d,c)}return b};mxCellRenderer.registerShape("tape",y);mxUtils.extend(x,mxActor);x.prototype.size=.3;x.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*b.height):null};x.prototype.redrawPath=function(b,d,f,c,e){d=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
"size",this.size))));b.moveTo(0,0);b.lineTo(c,0);b.lineTo(c,e-d/2);b.quadTo(3*c/4,e-1.4*d,c/2,e-d/2);b.quadTo(c/4,e-d*(1-1.4),0,e-d/2);b.lineTo(0,d/2);b.close();b.end()};mxCellRenderer.registerShape("document",x);var $a=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(b,d,f,c){var e=mxUtils.getValue(this.style,"size");return null!=e?c*Math.max(0,Math.min(1,e)):$a.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,
"boundedLbl",!1)){var d=2*mxUtils.getValue(this.style,"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*this.scale,b.height*d),0,0)}return null};m.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(d/=2);return new mxRectangle(0,Math.min(b.height*this.scale,2*d*this.scale),0,Math.max(0,.3*d*this.scale))}return null};n.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,
"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var f=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,d=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,c=mxUtils.getValue(this.style,"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1),z=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));e||(z*=Math.min(b.width,b.height));z=Math.min(z,.5*b.width,.5*(b.height-d));c||(z=0);return"left"==
-mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(z,0,Math.min(b.width,b.width-f),Math.min(b.height,b.height-d)):new mxRectangle(Math.min(b.width,b.width-f),0,z,Math.min(b.height,b.height-d))}return new mxRectangle(0,Math.min(b.height,d),0,0)}return null};u.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};d.prototype.getLabelMargins=
+mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(z,0,Math.min(b.width,b.width-f),Math.min(b.height,b.height-d)):new mxRectangle(Math.min(b.width,b.width-f),0,z,Math.min(b.height,b.height-d))}return new mxRectangle(0,Math.min(b.height,d),0,0)}return null};v.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};d.prototype.getLabelMargins=
function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(b.height*this.scale,d*this.scale),0,Math.max(0,d*this.scale))}return null};mxUtils.extend(D,mxActor);D.prototype.size=.2;D.prototype.fixedSize=20;D.prototype.isRoundable=function(){return!0};D.prototype.redrawPath=function(b,d,f,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))));f=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,f,!0);b.end()};mxCellRenderer.registerShape("parallelogram",D);mxUtils.extend(H,mxActor);H.prototype.size=.2;H.prototype.fixedSize=20;H.prototype.isRoundable=function(){return!0};H.prototype.redrawPath=function(b,d,f,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))));f=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,f,!0)};mxCellRenderer.registerShape("trapezoid",H);mxUtils.extend(C,mxActor);C.prototype.size=
-.5;C.prototype.redrawPath=function(b,d,f,c,e){b.setFillColor(null);d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=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,f,!1);b.end()};mxCellRenderer.registerShape("curlyBracket",C);mxUtils.extend(F,mxActor);F.prototype.redrawPath=
-function(b,d,f,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",F);M.prototype.moveTo=function(b,d){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;this.firstX=b;this.firstY=d};M.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,
+c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=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,f,!0);b.end()};mxCellRenderer.registerShape("parallelogram",D);mxUtils.extend(I,mxActor);I.prototype.size=.2;I.prototype.fixedSize=20;I.prototype.isRoundable=function(){return!0};I.prototype.redrawPath=function(b,d,f,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))));f=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,f,!0)};mxCellRenderer.registerShape("trapezoid",I);mxUtils.extend(B,mxActor);B.prototype.size=
+.5;B.prototype.redrawPath=function(b,d,f,c,e){b.setFillColor(null);d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=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,f,!1);b.end()};mxCellRenderer.registerShape("curlyBracket",B);mxUtils.extend(G,mxActor);G.prototype.redrawPath=
+function(b,d,f,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",G);M.prototype.moveTo=function(b,d){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;this.firstX=b;this.firstY=d};M.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)};M.prototype.quadTo=function(b,d,f,c){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=c};M.prototype.curveTo=function(b,d,f,c,e,g){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};M.prototype.arcTo=function(b,d,f,c,e,g,l){this.originalArcTo.apply(this.canvas,arguments);this.lastX=g;this.lastY=l};M.prototype.lineTo=function(b,d){if(null!=this.lastX&&null!=this.lastY){var f=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),z=Math.sqrt(c*c+e*e);if(2>z){this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;return}var g=Math.round(z/10),l=this.defaultVariation;5>g&&(g=5,l/=3);for(var k=f(b-this.lastX)*c/g,f=f(d-this.lastY)*e/g,c=c/z,e=e/z,z=0;z<g;z++){var m=(Math.random()-.5)*l;this.originalLineTo.call(this.canvas,k*z+this.lastX-m*e,f*z+this.lastY-m*c)}this.originalLineTo.call(this.canvas,b,d)}else this.originalLineTo.apply(this.canvas,
arguments);this.lastX=b;this.lastY=d};M.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 ab=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(b){ab.apply(this,arguments);null==b.handJiggle&&(b.handJiggle=this.createHandJiggle(b))};
var bb=mxShape.prototype.afterPaint;mxShape.prototype.afterPaint=function(b){bb.apply(this,arguments);null!=b.handJiggle&&(b.handJiggle.destroy(),delete b.handJiggle)};mxShape.prototype.createComicCanvas=function(b){return new M(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 cb=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"))&&cb.apply(this,arguments)};var db=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(b,d,f,c,e){if(null==b.handJiggle||b.handJiggle.constructor!=M)db.apply(this,arguments);else{var z=!0;null!=this.style&&(z="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,
+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"))&&cb.apply(this,arguments)};var fb=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(b,d,f,c,e){if(null==b.handJiggle||b.handJiggle.constructor!=M)fb.apply(this,arguments);else{var z=!0;null!=this.style&&(z="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,
"1"));if(z||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)z||null!=this.fill&&this.fill!=mxConstants.NONE||(b.pointerEvents=!1),b.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?z=Math.min(c/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(z=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,z=Math.min(c*
-z,e*z)),b.moveTo(d+z,f),b.lineTo(d+c-z,f),b.quadTo(d+c,f,d+c,f+z),b.lineTo(d+c,f+e-z),b.quadTo(d+c,f+e,d+c-z,f+e),b.lineTo(d+z,f+e),b.quadTo(d,f+e,d,f+e-z),b.lineTo(d,f+z),b.quadTo(d,f,d+z,f)):(b.moveTo(d,f),b.lineTo(d+c,f),b.lineTo(d+c,f+e),b.lineTo(d,f+e),b.lineTo(d,f)),b.close(),b.end(),b.fillAndStroke()}};mxUtils.extend(E,mxRectangleShape);E.prototype.size=.1;E.prototype.fixedSize=!1;E.prototype.isHtmlAllowed=function(){return!1};E.prototype.getLabelBounds=function(b){if(mxUtils.getValue(this.state.style,
+z,e*z)),b.moveTo(d+z,f),b.lineTo(d+c-z,f),b.quadTo(d+c,f,d+c,f+z),b.lineTo(d+c,f+e-z),b.quadTo(d+c,f+e,d+c-z,f+e),b.lineTo(d+z,f+e),b.quadTo(d,f+e,d,f+e-z),b.lineTo(d,f+z),b.quadTo(d,f,d+z,f)):(b.moveTo(d,f),b.lineTo(d+c,f),b.lineTo(d+c,f+e),b.lineTo(d,f+e),b.lineTo(d,f)),b.close(),b.end(),b.fillAndStroke()}};mxUtils.extend(F,mxRectangleShape);F.prototype.size=.1;F.prototype.fixedSize=!1;F.prototype.isHtmlAllowed=function(){return!1};F.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,f=b.height;b=new mxRectangle(b.x,b.y,d,f);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,f*e));b.x+=Math.round(c);b.width-=Math.round(2*c)}return b};
-E.prototype.paintForeground=function(b,d,f,c,e){var z=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),g=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=z?Math.max(0,Math.min(c,g)):c*Math.max(0,Math.min(1,g));this.isRounded&&(z=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.max(g,Math.min(c*z,e*z)));g=Math.round(g);b.begin();b.moveTo(d+g,f);b.lineTo(d+g,f+e);b.moveTo(d+c-g,f);b.lineTo(d+c-g,f+e);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
-arguments)};mxCellRenderer.registerShape("process",E);mxCellRenderer.registerShape("process2",E);mxUtils.extend(K,mxRectangleShape);K.prototype.paintBackground=function(b,d,f,c,e){b.setFillColor(mxConstants.NONE);b.rect(d,f,c,e);b.fill()};K.prototype.paintForeground=function(b,d,f,c,e){};mxCellRenderer.registerShape("transparent",K);mxUtils.extend(B,mxHexagon);B.prototype.size=30;B.prototype.position=.5;B.prototype.position2=.5;B.prototype.base=20;B.prototype.getLabelMargins=function(){return new mxRectangle(0,
-0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};B.prototype.isRoundable=function(){return!0};B.prototype.redrawPath=function(b,d,f,c,e){d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var z=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),g=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-f),new mxPoint(Math.min(c,z+l),e-f),new mxPoint(g,e),new mxPoint(Math.max(0,z),e-f),new mxPoint(0,e-f)],this.isRounded,d,!0,[4])};mxCellRenderer.registerShape("callout",B);mxUtils.extend(L,mxActor);L.prototype.size=.2;L.prototype.fixedSize=20;L.prototype.isRoundable=function(){return!0};L.prototype.redrawPath=function(b,d,f,c,e){d=
+F.prototype.paintForeground=function(b,d,f,c,e){var z=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),g=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=z?Math.max(0,Math.min(c,g)):c*Math.max(0,Math.min(1,g));this.isRounded&&(z=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.max(g,Math.min(c*z,e*z)));g=Math.round(g);b.begin();b.moveTo(d+g,f);b.lineTo(d+g,f+e);b.moveTo(d+c-g,f);b.lineTo(d+c-g,f+e);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
+arguments)};mxCellRenderer.registerShape("process",F);mxCellRenderer.registerShape("process2",F);mxUtils.extend(K,mxRectangleShape);K.prototype.paintBackground=function(b,d,f,c,e){b.setFillColor(mxConstants.NONE);b.rect(d,f,c,e);b.fill()};K.prototype.paintForeground=function(b,d,f,c,e){};mxCellRenderer.registerShape("transparent",K);mxUtils.extend(C,mxHexagon);C.prototype.size=30;C.prototype.position=.5;C.prototype.position2=.5;C.prototype.base=20;C.prototype.getLabelMargins=function(){return new mxRectangle(0,
+0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};C.prototype.isRoundable=function(){return!0};C.prototype.redrawPath=function(b,d,f,c,e){d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var z=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),g=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-f),new mxPoint(Math.min(c,z+l),e-f),new mxPoint(g,e),new mxPoint(Math.max(0,z),e-f),new mxPoint(0,e-f)],this.isRounded,d,!0,[4])};mxCellRenderer.registerShape("callout",C);mxUtils.extend(L,mxActor);L.prototype.size=.2;L.prototype.fixedSize=20;L.prototype.isRoundable=function(){return!0};L.prototype.redrawPath=function(b,d,f,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))));f=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,f,!0);b.end()};mxCellRenderer.registerShape("step",L);
mxUtils.extend(O,mxHexagon);O.prototype.size=.25;O.prototype.fixedSize=20;O.prototype.isRoundable=function(){return!0};O.prototype.redrawPath=function(b,d,f,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))));f=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,f,!0)};mxCellRenderer.registerShape("hexagon",O);mxUtils.extend(ca,mxRectangleShape);ca.prototype.isHtmlAllowed=function(){return!1};ca.prototype.paintForeground=function(b,d,f,c,e){var g=Math.min(c/5,e/5)+1;b.begin();b.moveTo(d+c/2,f+g);b.lineTo(d+c/2,f+e-g);b.moveTo(d+g,f+e/2);b.lineTo(d+c-g,f+e/2);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};
-mxCellRenderer.registerShape("plus",ca);var Xa=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,f,c,e){Xa.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var g=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
-0);d+=g;f+=g;c-=2*g;e-=2*g;0<c&&0<e&&(b.setShadow(!1),Xa.apply(this,[b,d,f,c,e]))}};mxUtils.extend(N,mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.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};N.prototype.paintForeground=function(b,d,f,c,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var g=
-Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);d+=g;f+=g;c-=2*g;e-=2*g;0<c&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}b.setDashed(!1);var g=0,z;do{z=mxCellRenderer.defaultShapes[this.style["symbol"+g]];if(null!=z){var l=this.style["symbol"+g+"Align"],k=this.style["symbol"+g+"VerticalAlign"],m=this.style["symbol"+g+"Width"],q=this.style["symbol"+g+"Height"],n=this.style["symbol"+g+"Spacing"]||0,G=this.style["symbol"+g+"VSpacing"]||n,ea=
-this.style["symbol"+g+"ArcSpacing"];null!=ea&&(ea*=this.getArcSize(c+this.strokewidth,e+this.strokewidth),n+=ea,G+=ea);var ea=d,sa=f,ea=l==mxConstants.ALIGN_CENTER?ea+(c-m)/2:l==mxConstants.ALIGN_RIGHT?ea+(c-m-n):ea+n,sa=k==mxConstants.ALIGN_MIDDLE?sa+(e-q)/2:k==mxConstants.ALIGN_BOTTOM?sa+(e-q-G):sa+G;b.save();l=new z;l.style=this.style;z.prototype.paintVertexShape.call(l,b,ea,sa,m,q);b.restore()}g++}while(null!=z)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",
-N);mxUtils.extend(Q,mxCylinder);Q.prototype.redrawPath=function(b,d,f,c,e,g){g?(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",Q);mxUtils.extend(W,mxShape);W.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);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",W);mxUtils.extend(G,mxShape);G.prototype.getLabelMargins=function(b){return new mxRectangle(b.width/6,0,0,0)};G.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);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",
-G);mxUtils.extend(J,mxEllipse);J.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/8,f+e);b.lineTo(d+7*c/8,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",J);mxUtils.extend(A,mxShape);A.prototype.paintVertexShape=function(b,d,f,c,e){b.translate(d,f);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",A);mxUtils.extend(Z,mxShape);
-Z.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};Z.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);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()};Z.prototype.paintForeground=function(b,d,f,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",Z);mxUtils.extend(I,mxRectangleShape);I.prototype.size=
-40;I.prototype.isHtmlAllowed=function(){return!1};I.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)};I.prototype.paintBackground=function(b,d,f,c,e){var g=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,
-f,c,g):(l=this.state.view.graph.cellRenderer.getShape(l),null!=l&&l!=I&&(l=new l,l.apply(this.state),b.save(),l.paintVertexShape(b,d,f,c,g),b.restore()));g<e&&(b.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),b.begin(),b.moveTo(d+c/2,f+g),b.lineTo(d+c/2,f+e),b.end(),b.stroke())};I.prototype.paintForeground=function(b,d,f,c,e){var g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,b,d,f,c,Math.min(e,
-g))};mxCellRenderer.registerShape("umlLifeline",I);mxUtils.extend(X,mxShape);X.prototype.width=60;X.prototype.height=30;X.prototype.corner=10;X.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))};X.prototype.paintBackground=function(b,d,f,c,e){var g=this.corner,l=Math.min(c,Math.max(g,parseFloat(mxUtils.getValue(this.style,
+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,f,!0)};mxCellRenderer.registerShape("hexagon",O);mxUtils.extend(da,mxRectangleShape);da.prototype.isHtmlAllowed=function(){return!1};da.prototype.paintForeground=function(b,d,f,c,e){var g=Math.min(c/5,e/5)+1;b.begin();b.moveTo(d+c/2,f+g);b.lineTo(d+c/2,f+e-g);b.moveTo(d+g,f+e/2);b.lineTo(d+c-g,f+e/2);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};
+mxCellRenderer.registerShape("plus",da);var Ya=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,f,c,e){Ya.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var g=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
+0);d+=g;f+=g;c-=2*g;e-=2*g;0<c&&0<e&&(b.setShadow(!1),Ya.apply(this,[b,d,f,c,e]))}};mxUtils.extend(N,mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.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};N.prototype.paintForeground=function(b,d,f,c,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var g=
+Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);d+=g;f+=g;c-=2*g;e-=2*g;0<c&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}b.setDashed(!1);var g=0,z;do{z=mxCellRenderer.defaultShapes[this.style["symbol"+g]];if(null!=z){var l=this.style["symbol"+g+"Align"],k=this.style["symbol"+g+"VerticalAlign"],m=this.style["symbol"+g+"Width"],q=this.style["symbol"+g+"Height"],n=this.style["symbol"+g+"Spacing"]||0,H=this.style["symbol"+g+"VSpacing"]||n,qa=
+this.style["symbol"+g+"ArcSpacing"];null!=qa&&(qa*=this.getArcSize(c+this.strokewidth,e+this.strokewidth),n+=qa,H+=qa);var qa=d,sa=f,qa=l==mxConstants.ALIGN_CENTER?qa+(c-m)/2:l==mxConstants.ALIGN_RIGHT?qa+(c-m-n):qa+n,sa=k==mxConstants.ALIGN_MIDDLE?sa+(e-q)/2:k==mxConstants.ALIGN_BOTTOM?sa+(e-q-H):sa+H;b.save();l=new z;l.style=this.style;z.prototype.paintVertexShape.call(l,b,qa,sa,m,q);b.restore()}g++}while(null!=z)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",
+N);mxUtils.extend(Q,mxCylinder);Q.prototype.redrawPath=function(b,d,f,c,e,g){g?(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",Q);mxUtils.extend(Y,mxShape);Y.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);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",Y);mxUtils.extend(H,mxShape);H.prototype.getLabelMargins=function(b){return new mxRectangle(b.width/6,0,0,0)};H.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);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",
+H);mxUtils.extend(J,mxEllipse);J.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/8,f+e);b.lineTo(d+7*c/8,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",J);mxUtils.extend(A,mxShape);A.prototype.paintVertexShape=function(b,d,f,c,e){b.translate(d,f);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",A);mxUtils.extend(aa,mxShape);
+aa.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};aa.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);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()};aa.prototype.paintForeground=function(b,d,f,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",aa);mxUtils.extend(E,mxRectangleShape);E.prototype.size=
+40;E.prototype.isHtmlAllowed=function(){return!1};E.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)};E.prototype.paintBackground=function(b,d,f,c,e){var g=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,
+f,c,g):(l=this.state.view.graph.cellRenderer.getShape(l),null!=l&&l!=E&&(l=new l,l.apply(this.state),b.save(),l.paintVertexShape(b,d,f,c,g),b.restore()));g<e&&(b.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),b.begin(),b.moveTo(d+c/2,f+g),b.lineTo(d+c/2,f+e),b.end(),b.stroke())};E.prototype.paintForeground=function(b,d,f,c,e){var g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,b,d,f,c,Math.min(e,
+g))};mxCellRenderer.registerShape("umlLifeline",E);mxUtils.extend(W,mxShape);W.prototype.width=60;W.prototype.height=30;W.prototype.corner=10;W.prototype.getLabelMargins=function(b){return new mxRectangle(0,0,b.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),b.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*this.scale))};W.prototype.paintBackground=function(b,d,f,c,e){var g=this.corner,l=Math.min(c,Math.max(g,parseFloat(mxUtils.getValue(this.style,
"width",this.width)))),z=Math.min(e,Math.max(1.5*g,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,f,c,e),b.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(b,d,f,c,e),b.setGradient(this.fill,this.gradient,d,f,c,e,this.gradientDirection)):b.setFillColor(this.fill);b.begin();
-b.moveTo(d,f);b.lineTo(d+l,f);b.lineTo(d+l,f+Math.max(0,z-1.5*g));b.lineTo(d+Math.max(0,l-g),f+z);b.lineTo(d,f+z);b.close();b.fillAndStroke();b.begin();b.moveTo(d+l,f);b.lineTo(d+c,f);b.lineTo(d+c,f+e);b.lineTo(d,f+e);b.lineTo(d,f+z);b.stroke()};mxCellRenderer.registerShape("umlFrame",X);mxPerimeter.CenterPerimeter=function(b,d,f,c){return new mxPoint(b.getCenterX(),b.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(b,d,
-f,c){c=I.prototype.size;null!=d&&(c=mxUtils.getValue(d.style,"size",c)*d.view.scale);d=parseFloat(d.style[mxConstants.STYLE_STROKEWIDTH]||1)*d.view.scale/2-1;f.x<b.getCenterX()&&(d=-1*(d+1));return new mxPoint(b.getCenterX()+d,Math.min(b.y+b.height,Math.max(b.y+c,f.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(b,d,f,c){c=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",
+b.moveTo(d,f);b.lineTo(d+l,f);b.lineTo(d+l,f+Math.max(0,z-1.5*g));b.lineTo(d+Math.max(0,l-g),f+z);b.lineTo(d,f+z);b.close();b.fillAndStroke();b.begin();b.moveTo(d+l,f);b.lineTo(d+c,f);b.lineTo(d+c,f+e);b.lineTo(d,f+e);b.lineTo(d,f+z);b.stroke()};mxCellRenderer.registerShape("umlFrame",W);mxPerimeter.CenterPerimeter=function(b,d,f,c){return new mxPoint(b.getCenterX(),b.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(b,d,
+f,c){c=E.prototype.size;null!=d&&(c=mxUtils.getValue(d.style,"size",c)*d.view.scale);d=parseFloat(d.style[mxConstants.STYLE_STROKEWIDTH]||1)*d.view.scale/2-1;f.x<b.getCenterX()&&(d=-1*(d+1));return new mxPoint(b.getCenterX()+d,Math.min(b.y+b.height,Math.max(b.y+c,f.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(b,d,f,c){c=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",
mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(b,d,f,c){c=parseFloat(d.style[mxConstants.STYLE_STROKEWIDTH]||1)*d.view.scale/2-1;null!=d.style.backboneSize&&(c+=parseFloat(d.style.backboneSize)*d.view.scale/2-1);if("south"==d.style[mxConstants.STYLE_DIRECTION]||"north"==d.style[mxConstants.STYLE_DIRECTION])return f.x<b.getCenterX()&&(c=-1*(c+1)),new mxPoint(b.getCenterX()+c,Math.min(b.y+b.height,Math.max(b.y,f.y)));f.y<b.getCenterY()&&(c=-1*(c+1));return new mxPoint(Math.min(b.x+
-b.width,Math.max(b.x,f.x)),b.getCenterY()+c)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(b,d,f,c){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(b,new mxRectangle(0,0,0,Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(d.style,"size",B.prototype.size))*d.view.scale))),d.style),d,f,c)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(b,
+b.width,Math.max(b.x,f.x)),b.getCenterY()+c)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(b,d,f,c){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(b,new mxRectangle(0,0,0,Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(d.style,"size",C.prototype.size))*d.view.scale))),d.style),d,f,c)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(b,
d,f,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),g=e?D.prototype.fixedSize:D.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));e&&(g*=d.view.scale);var l=b.x,z=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_NORTH||d==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(l+k,z+e),new mxPoint(l+
k,z+m),new mxPoint(l,z+m-e),new mxPoint(l,z)]):(e=e?Math.max(0,Math.min(.5*k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l+e,z),new mxPoint(l+k,z),new mxPoint(l+k-e,z+m),new mxPoint(l,z+m),new mxPoint(l+e,z)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(f.x<l||f.x>l+k?b.y=f.y:b.x=f.x);return mxUtils.getPerimeterPoint(z,b,f)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(b,d,f,c){var e="0"!=mxUtils.getValue(d.style,
-"fixedSize","0"),g=e?H.prototype.fixedSize:H.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));e&&(g*=d.view.scale);var l=b.x,z=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,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l+e,z),new mxPoint(l+k-e,z),new mxPoint(l+k,z+m),new mxPoint(l,z+m),new mxPoint(l+e,z)]):d==mxConstants.DIRECTION_WEST?
+"fixedSize","0"),g=e?I.prototype.fixedSize:I.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));e&&(g*=d.view.scale);var l=b.x,z=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,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l+e,z),new mxPoint(l+k-e,z),new mxPoint(l+k,z+m),new mxPoint(l,z+m),new mxPoint(l+e,z)]):d==mxConstants.DIRECTION_WEST?
(e=e?Math.max(0,Math.min(k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(l+k,z),new mxPoint(l+k-e,z+m),new mxPoint(l+e,z+m),new mxPoint(l,z)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z+e),new mxPoint(l+k,z),new mxPoint(l+k,z+m),new mxPoint(l,z+m-e),new mxPoint(l,z+e)]):(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(l+k,z+e),new mxPoint(l+k,z+m-e),new mxPoint(l,z+m),new mxPoint(l,
z)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(f.x<l||f.x>l+k?b.y=f.y:b.x=f.x);return mxUtils.getPerimeterPoint(z,b,f)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(b,d,f,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),g=e?L.prototype.fixedSize:L.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));e&&(g*=d.view.scale);var l=b.x,z=b.y,k=b.width,m=b.height,q=b.getCenterX();b=b.getCenterY();d=null!=
d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(l+k-e,z),new mxPoint(l+k,b),new mxPoint(l+k-e,z+m),new mxPoint(l,z+m),new mxPoint(l+e,b),new mxPoint(l,z)]):d==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l+e,z),new mxPoint(l+k,z),new mxPoint(l+k-e,b),new mxPoint(l+
k,z+m),new mxPoint(l+e,z+m),new mxPoint(l,b),new mxPoint(l+e,z)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z+e),new mxPoint(q,z),new mxPoint(l+k,z+e),new mxPoint(l+k,z+m),new mxPoint(q,z+m-e),new mxPoint(l,z+m),new mxPoint(l,z+e)]):(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(q,z+e),new mxPoint(l+k,z),new mxPoint(l+k,z+m-e),new mxPoint(q,z+m),new mxPoint(l,z+m-e),new mxPoint(l,z)]);q=new mxPoint(q,
b);c&&(f.x<l||f.x>l+k?q.y=f.y:q.x=f.x);return mxUtils.getPerimeterPoint(z,q,f)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(b,d,f,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),g=e?O.prototype.fixedSize:O.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));e&&(g*=d.view.scale);var l=b.x,z=b.y,k=b.width,m=b.height,q=b.getCenterX();b=b.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):
mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(q,z),new mxPoint(l+k,z+e),new mxPoint(l+k,z+m-e),new mxPoint(q,z+m),new mxPoint(l,z+m-e),new mxPoint(l,z+e),new mxPoint(q,z)]):(e=e?Math.max(0,Math.min(k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l+e,z),new mxPoint(l+k-e,z),new mxPoint(l+k,b),new mxPoint(l+k-e,z+m),new mxPoint(l+e,z+m),new mxPoint(l,b),new mxPoint(l+e,z)]);q=new mxPoint(q,
-b);c&&(f.x<l||f.x>l+k?q.y=f.y:q.x=f.x);return mxUtils.getPerimeterPoint(z,q,f)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(aa,mxShape);aa.prototype.size=10;aa.prototype.paintBackground=function(b,d,f,c,e){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size));b.translate(d,f);b.ellipse((c-g)/2,0,g,g);b.fillAndStroke();b.begin();b.moveTo(c/2,g);b.lineTo(c/2,e);b.end();b.stroke()};mxCellRenderer.registerShape("lollipop",aa);mxUtils.extend(la,
-mxShape);la.prototype.size=10;la.prototype.inset=2;la.prototype.paintBackground=function(b,d,f,c,e){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size)),l=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(d,f);b.begin();b.moveTo(c/2,g+l);b.lineTo(c/2,e);b.end();b.stroke();b.begin();b.moveTo((c-g)/2-l,g/2);b.quadTo((c-g)/2-l,g+l,c/2,g+l);b.quadTo((c+g)/2+l,g+l,(c+g)/2+l,g/2);b.end();b.stroke()};mxCellRenderer.registerShape("requires",la);mxUtils.extend(ga,
-mxShape);ga.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);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",ga);mxUtils.extend(ka,mxShape);ka.prototype.inset=2;ka.prototype.paintBackground=function(b,d,f,c,e){var g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(d,f);b.ellipse(0,g,c-2*g,e-2*g);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",ka);mxUtils.extend(pa,mxCylinder);pa.prototype.jettyWidth=20;pa.prototype.jettyHeight=10;pa.prototype.redrawPath=function(b,d,f,c,e,g){var l=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));f=l/2;var l=f+l/2,z=Math.min(d,e-d),k=Math.min(z+2*d,e-d);g?(b.moveTo(f,z),b.lineTo(l,z),b.lineTo(l,z+d),b.lineTo(f,z+d),b.moveTo(f,
-k),b.lineTo(l,k),b.lineTo(l,k+d),b.lineTo(f,k+d)):(b.moveTo(f,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(f,e),b.lineTo(f,k+d),b.lineTo(0,k+d),b.lineTo(0,k),b.lineTo(f,k),b.lineTo(f,z+d),b.lineTo(0,z+d),b.lineTo(0,z),b.lineTo(f,z),b.close());b.end()};mxCellRenderer.registerShape("module",pa);mxUtils.extend(qa,mxCylinder);qa.prototype.jettyWidth=32;qa.prototype.jettyHeight=12;qa.prototype.redrawPath=function(b,d,f,c,e,g){var l=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,
-"jettyHeight",this.jettyHeight));f=l/2;var l=f+l/2,z=.3*e-d/2,k=.7*e-d/2;g?(b.moveTo(f,z),b.lineTo(l,z),b.lineTo(l,z+d),b.lineTo(f,z+d),b.moveTo(f,k),b.lineTo(l,k),b.lineTo(l,k+d),b.lineTo(f,k+d)):(b.moveTo(f,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(f,e),b.lineTo(f,k+d),b.lineTo(0,k+d),b.lineTo(0,k),b.lineTo(f,k),b.lineTo(f,z+d),b.lineTo(0,z+d),b.lineTo(0,z),b.lineTo(f,z),b.close());b.end()};mxCellRenderer.registerShape("component",qa);mxUtils.extend(ma,mxRectangleShape);ma.prototype.paintForeground=
-function(b,d,f,c,e){var g=c/2,l=e/2,z=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b.begin();this.addPoints(b,[new mxPoint(d+g,f),new mxPoint(d+c,f+l),new mxPoint(d+g,f+e),new mxPoint(d,f+l)],this.isRounded,z,!0);b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",ma);mxUtils.extend(Y,mxDoubleEllipse);Y.prototype.outerStroke=!0;Y.prototype.paintVertexShape=function(b,d,f,c,e){var g=Math.min(4,
-Math.min(c/5,e/5));0<c&&0<e&&(b.ellipse(d+g,f+g,c-2*g,e-2*g),b.fillAndStroke());b.setShadow(!1);this.outerStroke&&(b.ellipse(d,f,c,e),b.stroke())};mxCellRenderer.registerShape("endState",Y);mxUtils.extend(ba,Y);ba.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",ba);mxUtils.extend(R,mxArrowConnector);R.prototype.defaultWidth=4;R.prototype.isOpenEnded=function(){return!0};R.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,
-this.strokewidth-1)};R.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",R);mxUtils.extend(ta,mxArrowConnector);ta.prototype.defaultWidth=10;ta.prototype.defaultArrowWidth=20;ta.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};ta.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ta.prototype.getEdgeWidth=
-function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ta);mxUtils.extend(U,mxActor);U.prototype.size=30;U.prototype.isRoundable=function(){return!0};U.prototype.redrawPath=function(b,d,f,c,e){d=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));f=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,f,!0);b.end()};mxCellRenderer.registerShape("manualInput",U);mxUtils.extend(T,mxRectangleShape);T.prototype.dx=20;T.prototype.dy=20;T.prototype.isHtmlAllowed=function(){return!1};T.prototype.paintForeground=function(b,d,f,c,e){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var g=0;if(this.isRounded)var l=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.max(g,Math.min(c*l,e*l));l=Math.max(g,
-Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));g=Math.max(g,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));b.begin();b.moveTo(d,f+g);b.lineTo(d+c,f+g);b.end();b.stroke();b.begin();b.moveTo(d+l,f);b.lineTo(d+l,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("internalStorage",T);mxUtils.extend(na,mxActor);na.prototype.dx=20;na.prototype.dy=20;na.prototype.redrawPath=function(b,d,f,c,e){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",
-this.dx))));f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var 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,f),new mxPoint(d,f),new mxPoint(d,e),new mxPoint(0,e)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("corner",na);mxUtils.extend(va,mxActor);va.prototype.redrawPath=function(b,d,f,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",va);mxUtils.extend(S,mxActor);S.prototype.dx=20;S.prototype.dy=20;S.prototype.redrawPath=function(b,d,f,c,e){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var g=mxUtils.getValue(this.style,
+b);c&&(f.x<l||f.x>l+k?q.y=f.y:q.x=f.x);return mxUtils.getPerimeterPoint(z,q,f)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(T,mxShape);T.prototype.size=10;T.prototype.paintBackground=function(b,d,f,c,e){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size));b.translate(d,f);b.ellipse((c-g)/2,0,g,g);b.fillAndStroke();b.begin();b.moveTo(c/2,g);b.lineTo(c/2,e);b.end();b.stroke()};mxCellRenderer.registerShape("lollipop",T);mxUtils.extend(na,mxShape);
+na.prototype.size=10;na.prototype.inset=2;na.prototype.paintBackground=function(b,d,f,c,e){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size)),l=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(d,f);b.begin();b.moveTo(c/2,g+l);b.lineTo(c/2,e);b.end();b.stroke();b.begin();b.moveTo((c-g)/2-l,g/2);b.quadTo((c-g)/2-l,g+l,c/2,g+l);b.quadTo((c+g)/2+l,g+l,(c+g)/2+l,g/2);b.end();b.stroke()};mxCellRenderer.registerShape("requires",na);mxUtils.extend(ga,mxShape);
+ga.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);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",ga);mxUtils.extend(ja,mxShape);ja.prototype.inset=2;ja.prototype.paintBackground=function(b,d,f,c,e){var g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(d,f);b.ellipse(0,g,c-2*g,e-2*g);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",ja);mxUtils.extend(ma,mxCylinder);ma.prototype.jettyWidth=20;ma.prototype.jettyHeight=10;ma.prototype.redrawPath=function(b,d,f,c,e,g){var l=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));f=l/2;var l=f+l/2,z=Math.min(d,e-d),k=Math.min(z+2*d,e-d);g?(b.moveTo(f,z),b.lineTo(l,z),b.lineTo(l,z+d),b.lineTo(f,z+d),b.moveTo(f,
+k),b.lineTo(l,k),b.lineTo(l,k+d),b.lineTo(f,k+d)):(b.moveTo(f,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(f,e),b.lineTo(f,k+d),b.lineTo(0,k+d),b.lineTo(0,k),b.lineTo(f,k),b.lineTo(f,z+d),b.lineTo(0,z+d),b.lineTo(0,z),b.lineTo(f,z),b.close());b.end()};mxCellRenderer.registerShape("module",ma);mxUtils.extend(oa,mxCylinder);oa.prototype.jettyWidth=32;oa.prototype.jettyHeight=12;oa.prototype.redrawPath=function(b,d,f,c,e,g){var l=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,
+"jettyHeight",this.jettyHeight));f=l/2;var l=f+l/2,z=.3*e-d/2,k=.7*e-d/2;g?(b.moveTo(f,z),b.lineTo(l,z),b.lineTo(l,z+d),b.lineTo(f,z+d),b.moveTo(f,k),b.lineTo(l,k),b.lineTo(l,k+d),b.lineTo(f,k+d)):(b.moveTo(f,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(f,e),b.lineTo(f,k+d),b.lineTo(0,k+d),b.lineTo(0,k),b.lineTo(f,k),b.lineTo(f,z+d),b.lineTo(0,z+d),b.lineTo(0,z),b.lineTo(f,z),b.close());b.end()};mxCellRenderer.registerShape("component",oa);mxUtils.extend(ka,mxRectangleShape);ka.prototype.paintForeground=
+function(b,d,f,c,e){var g=c/2,l=e/2,z=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b.begin();this.addPoints(b,[new mxPoint(d+g,f),new mxPoint(d+c,f+l),new mxPoint(d+g,f+e),new mxPoint(d,f+l)],this.isRounded,z,!0);b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",ka);mxUtils.extend(Z,mxDoubleEllipse);Z.prototype.outerStroke=!0;Z.prototype.paintVertexShape=function(b,d,f,c,e){var g=Math.min(4,
+Math.min(c/5,e/5));0<c&&0<e&&(b.ellipse(d+g,f+g,c-2*g,e-2*g),b.fillAndStroke());b.setShadow(!1);this.outerStroke&&(b.ellipse(d,f,c,e),b.stroke())};mxCellRenderer.registerShape("endState",Z);mxUtils.extend(ca,Z);ca.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",ca);mxUtils.extend(R,mxArrowConnector);R.prototype.defaultWidth=4;R.prototype.isOpenEnded=function(){return!0};R.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,
+this.strokewidth-1)};R.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",R);mxUtils.extend(ra,mxArrowConnector);ra.prototype.defaultWidth=10;ra.prototype.defaultArrowWidth=20;ra.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};ra.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ra.prototype.getEdgeWidth=
+function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ra);mxUtils.extend(V,mxActor);V.prototype.size=30;V.prototype.isRoundable=function(){return!0};V.prototype.redrawPath=function(b,d,f,c,e){d=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));f=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,f,!0);b.end()};mxCellRenderer.registerShape("manualInput",V);mxUtils.extend(U,mxRectangleShape);U.prototype.dx=20;U.prototype.dy=20;U.prototype.isHtmlAllowed=function(){return!1};U.prototype.paintForeground=function(b,d,f,c,e){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var g=0;if(this.isRounded)var l=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.max(g,Math.min(c*l,e*l));l=Math.max(g,
+Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));g=Math.max(g,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));b.begin();b.moveTo(d,f+g);b.lineTo(d+c,f+g);b.end();b.stroke();b.begin();b.moveTo(d+l,f);b.lineTo(d+l,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("internalStorage",U);mxUtils.extend(la,mxActor);la.prototype.dx=20;la.prototype.dy=20;la.prototype.redrawPath=function(b,d,f,c,e){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",
+this.dx))));f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var 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,f),new mxPoint(d,f),new mxPoint(d,e),new mxPoint(0,e)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("corner",la);mxUtils.extend(ta,mxActor);ta.prototype.redrawPath=function(b,d,f,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",ta);mxUtils.extend(S,mxActor);S.prototype.dx=20;S.prototype.dy=20;S.prototype.redrawPath=function(b,d,f,c,e){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var 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,f),new mxPoint((c+d)/2,f),new mxPoint((c+d)/2,e),new mxPoint((c-d)/2,e),new mxPoint((c-d)/2,f),new mxPoint(0,f)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("tee",S);mxUtils.extend(fa,mxActor);fa.prototype.arrowWidth=.3;fa.prototype.arrowSize=.2;fa.prototype.redrawPath=function(b,d,f,c,e){var g=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))));f=(e-g)/2;var g=f+g,l=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,f),new mxPoint(c-d,f),new mxPoint(c-d,0),new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(c-d,g),new mxPoint(0,g)],this.isRounded,l,!0);b.end()};mxCellRenderer.registerShape("singleArrow",fa);mxUtils.extend(ia,mxActor);ia.prototype.redrawPath=function(b,
d,f,c,e){var g=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",fa.prototype.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",fa.prototype.arrowSize))));f=(e-g)/2;var g=f+g,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,f),new mxPoint(c-d,f),new mxPoint(c-d,0),new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(c-d,g),new mxPoint(d,
-g),new mxPoint(d,e)],this.isRounded,l,!0);b.end()};mxCellRenderer.registerShape("doubleArrow",ia);mxUtils.extend(ja,mxActor);ja.prototype.size=.1;ja.prototype.fixedSize=20;ja.prototype.redrawPath=function(b,d,f,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",ja);mxUtils.extend(oa,mxActor);oa.prototype.redrawPath=function(b,d,f,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",oa);mxUtils.extend(ua,mxActor);ua.prototype.redrawPath=function(b,d,f,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",ua);mxUtils.extend(P,mxActor);
-P.prototype.size=20;P.prototype.isRoundable=function(){return!0};P.prototype.redrawPath=function(b,d,f,c,e){d=Math.min(c/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=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,f,!0);b.end()};mxCellRenderer.registerShape("loopLimit",P);mxUtils.extend(da,mxActor);
-da.prototype.size=.375;da.prototype.isRoundable=function(){return!0};da.prototype.redrawPath=function(b,d,f,c,e){d=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));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,e-d),new mxPoint(c/2,e),new mxPoint(0,e-d)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("offPageConnector",da);mxUtils.extend(wa,mxEllipse);
-wa.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/2,f+e);b.lineTo(d+c,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("tapeData",wa);mxUtils.extend(ya,mxEllipse);ya.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d,f+e/2);b.lineTo(d+c,f+e/2);b.end();b.stroke();b.begin();b.moveTo(d+c/2,f);b.lineTo(d+c/2,f+e);b.end();b.stroke()};
-mxCellRenderer.registerShape("orEllipse",ya);mxUtils.extend(ra,mxEllipse);ra.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d+.145*c,f+.145*e);b.lineTo(d+.855*c,f+.855*e);b.end();b.stroke();b.begin();b.moveTo(d+.855*c,f+.145*e);b.lineTo(d+.145*c,f+.855*e);b.end();b.stroke()};mxCellRenderer.registerShape("sumEllipse",ra);mxUtils.extend(za,mxRhombus);za.prototype.paintVertexShape=function(b,d,f,c,e){mxRhombus.prototype.paintVertexShape.apply(this,
-arguments);b.setShadow(!1);b.begin();b.moveTo(d,f+e/2);b.lineTo(d+c,f+e/2);b.end();b.stroke()};mxCellRenderer.registerShape("sortShape",za);mxUtils.extend(Aa,mxEllipse);Aa.prototype.paintVertexShape=function(b,d,f,c,e){b.begin();b.moveTo(d,f);b.lineTo(d+c,f);b.lineTo(d+c/2,f+e/2);b.close();b.fillAndStroke();b.begin();b.moveTo(d,f+e);b.lineTo(d+c,f+e);b.lineTo(d+c/2,f+e/2);b.close();b.fillAndStroke()};mxCellRenderer.registerShape("collate",Aa);mxUtils.extend(Da,mxEllipse);Da.prototype.paintVertexShape=
+g),new mxPoint(d,e)],this.isRounded,l,!0);b.end()};mxCellRenderer.registerShape("doubleArrow",ia);mxUtils.extend(ba,mxActor);ba.prototype.size=.1;ba.prototype.fixedSize=20;ba.prototype.redrawPath=function(b,d,f,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",ba);mxUtils.extend(za,mxActor);za.prototype.redrawPath=function(b,d,f,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",za);mxUtils.extend(va,mxActor);va.prototype.redrawPath=function(b,d,f,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",va);mxUtils.extend(P,mxActor);
+P.prototype.size=20;P.prototype.isRoundable=function(){return!0};P.prototype.redrawPath=function(b,d,f,c,e){d=Math.min(c/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=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,f,!0);b.end()};mxCellRenderer.registerShape("loopLimit",P);mxUtils.extend(ea,mxActor);
+ea.prototype.size=.375;ea.prototype.isRoundable=function(){return!0};ea.prototype.redrawPath=function(b,d,f,c,e){d=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));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,e-d),new mxPoint(c/2,e),new mxPoint(0,e-d)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("offPageConnector",ea);mxUtils.extend(wa,mxEllipse);
+wa.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/2,f+e);b.lineTo(d+c,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("tapeData",wa);mxUtils.extend(xa,mxEllipse);xa.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d,f+e/2);b.lineTo(d+c,f+e/2);b.end();b.stroke();b.begin();b.moveTo(d+c/2,f);b.lineTo(d+c/2,f+e);b.end();b.stroke()};
+mxCellRenderer.registerShape("orEllipse",xa);mxUtils.extend(pa,mxEllipse);pa.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d+.145*c,f+.145*e);b.lineTo(d+.855*c,f+.855*e);b.end();b.stroke();b.begin();b.moveTo(d+.855*c,f+.145*e);b.lineTo(d+.145*c,f+.855*e);b.end();b.stroke()};mxCellRenderer.registerShape("sumEllipse",pa);mxUtils.extend(Aa,mxRhombus);Aa.prototype.paintVertexShape=function(b,d,f,c,e){mxRhombus.prototype.paintVertexShape.apply(this,
+arguments);b.setShadow(!1);b.begin();b.moveTo(d,f+e/2);b.lineTo(d+c,f+e/2);b.end();b.stroke()};mxCellRenderer.registerShape("sortShape",Aa);mxUtils.extend(Ba,mxEllipse);Ba.prototype.paintVertexShape=function(b,d,f,c,e){b.begin();b.moveTo(d,f);b.lineTo(d+c,f);b.lineTo(d+c/2,f+e/2);b.close();b.fillAndStroke();b.begin();b.moveTo(d,f+e);b.lineTo(d+c,f+e);b.lineTo(d+c/2,f+e/2);b.close();b.fillAndStroke()};mxCellRenderer.registerShape("collate",Ba);mxUtils.extend(Da,mxEllipse);Da.prototype.paintVertexShape=
function(b,d,f,c,e){var g=f+e-5;b.begin();b.moveTo(d,f);b.lineTo(d,f+e);b.moveTo(d,g);b.lineTo(d+10,g-5);b.moveTo(d,g);b.lineTo(d+10,g+5);b.moveTo(d,g);b.lineTo(d+c,g);b.moveTo(d+c,f);b.lineTo(d+c,f+e);b.moveTo(d+c,g);b.lineTo(d+c-10,g-5);b.moveTo(d+c,g);b.lineTo(d+c-10,g+5);b.end();b.stroke()};mxCellRenderer.registerShape("dimension",Da);mxUtils.extend(Ea,mxEllipse);Ea.prototype.paintVertexShape=function(b,d,f,c,e){this.outline||b.setStrokeColor(null);if(null!=this.style){var g=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,f,c,e);b.fill();b.pointerEvents=g;b.setStrokeColor(this.stroke);b.begin();b.moveTo(d,f);this.outline||"1"==mxUtils.getValue(this.style,"top","1")?b.lineTo(d+c,f):b.moveTo(d+c,f);this.outline||"1"==mxUtils.getValue(this.style,"right","1")?b.lineTo(d+c,f+e):b.moveTo(d+c,f+e);this.outline||"1"==mxUtils.getValue(this.style,"bottom","1")?b.lineTo(d,f+e):b.moveTo(d,
f+e);(this.outline||"1"==mxUtils.getValue(this.style,"left","1"))&&b.lineTo(d,f);b.end();b.stroke()}};mxCellRenderer.registerShape("partialRectangle",Ea);mxUtils.extend(Ka,mxEllipse);Ka.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();"vertical"==mxUtils.getValue(this.style,"line")?(b.moveTo(d+c/2,f),b.lineTo(d+c/2,f+e)):(b.moveTo(d,f+e/2),b.lineTo(d+c,f+e/2));b.end();b.stroke()};mxCellRenderer.registerShape("lineEllipse",
-Ka);mxUtils.extend(Ba,mxActor);Ba.prototype.redrawPath=function(b,d,f,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",Ba);mxUtils.extend(Ha,mxActor);Ha.prototype.size=.2;Ha.prototype.redrawPath=function(b,d,f,c,e){d=Math.min(e,c);var g=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=(e-g)/2;f=d+g;var l=(c-g)/2,g=l+g;b.moveTo(0,d);b.lineTo(l,d);b.lineTo(l,
+Ka);mxUtils.extend(Ca,mxActor);Ca.prototype.redrawPath=function(b,d,f,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",Ca);mxUtils.extend(Ha,mxActor);Ha.prototype.size=.2;Ha.prototype.redrawPath=function(b,d,f,c,e){d=Math.min(e,c);var g=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=(e-g)/2;f=d+g;var l=(c-g)/2,g=l+g;b.moveTo(0,d);b.lineTo(l,d);b.lineTo(l,
0);b.lineTo(g,0);b.lineTo(g,d);b.lineTo(c,d);b.lineTo(c,f);b.lineTo(g,f);b.lineTo(g,e);b.lineTo(l,e);b.lineTo(l,f);b.lineTo(0,f);b.close();b.end()};mxCellRenderer.registerShape("cross",Ha);mxUtils.extend(Fa,mxActor);Fa.prototype.size=.25;Fa.prototype.redrawPath=function(b,d,f,c,e){d=Math.min(c,e/2);f=Math.min(c-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);b.moveTo(0,e/2);b.lineTo(f,0);b.lineTo(c-d,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,c-d,e);b.lineTo(f,e);b.close();b.end()};
-mxCellRenderer.registerShape("display",Fa);mxUtils.extend(V,mxActor);V.prototype.cst={RECT2:"mxgraph.basic.rect"};V.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",
+mxCellRenderer.registerShape("display",Fa);mxUtils.extend(X,mxActor);X.prototype.cst={RECT2:"mxgraph.basic.rect"};X.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"}]}];V.prototype.paintVertexShape=
-function(b,d,f,c,e){b.translate(d,f);this.strictDrawShape(b,0,0,c,e)};V.prototype.strictDrawShape=function(b,d,f,c,e,g){var l=g&&g.rectStyle?g.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=g&&g.absoluteCornerSize?g.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),m=g&&g.size?g.size:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),q=g&&g.rectOutline?g.rectOutline:mxUtils.getValue(this.style,"rectOutline",
-this.rectOutline),n=g&&g.indent?g.indent:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),G=g&&g.dashed?g.dashed:mxUtils.getValue(this.style,"dashed",!1),z=g&&g.dashPattern?g.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),v=g&&g.relIndent?g.relIndent:Math.max(0,Math.min(50,n)),u=g&&g.top?g.top:mxUtils.getValue(this.style,"top",!0),p=g&&g.right?g.right:mxUtils.getValue(this.style,"right",!0),A=g&&g.bottom?g.bottom:mxUtils.getValue(this.style,"bottom",
-!0),x=g&&g.left?g.left:mxUtils.getValue(this.style,"left",!0),J=g&&g.topLeftStyle?g.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),t=g&&g.topRightStyle?g.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),I=g&&g.bottomRightStyle?g.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),y=g&&g.bottomLeftStyle?g.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),B=g&&g.fillColor?g.fillColor:mxUtils.getValue(this.style,"fillColor",
-"#ffffff");g&&g.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var C=g&&g.strokeWidth?g.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),Z=g&&g.fillColor2?g.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),N=g&&g.gradientColor2?g.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),aa=g&&g.gradientDirection2?g.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),sa=g&&g.opacity?g.opacity:mxUtils.getValue(this.style,"opacity",
-"100"),ea=Math.max(0,Math.min(50,m));g=V.prototype;b.setDashed(G);z&&""!=z&&b.setDashPattern(z);b.setStrokeWidth(C);m=Math.min(.5*e,.5*c,m);k||(m=ea*Math.min(c,e)/100);m=Math.min(m,.5*Math.min(c,e));k||(n=Math.min(v*Math.min(c,e)/100));n=Math.min(n,.5*Math.min(c,e)-m);(u||p||A||x)&&"frame"!=q&&(b.begin(),u?g.moveNW(b,d,f,c,e,l,J,m,x):b.moveTo(0,0),u&&g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),p&&g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),A&&g.paintSE(b,d,f,c,e,l,
-I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),x&&g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(Z),G=k=sa,"none"==Z&&(k=0),"none"==N&&(G=0),b.setGradient(Z,N,0,0,c,e,aa,k,G),b.begin(),u?g.moveNWInner(b,d,f,c,e,l,J,m,n,u,x):b.moveTo(n,0),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),x&&A&&g.paintSWInner(b,d,f,c,e,l,y,m,n,A),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),A&&p&&g.paintSEInner(b,d,f,c,e,l,I,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),p&&
-u&&g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),u&&x&&g.paintNWInner(b,d,f,c,e,l,J,m,n),b.fill(),"none"==B&&(b.begin(),g.paintFolds(b,d,f,c,e,l,J,t,I,y,m,u,p,A,x),b.stroke()));u||p||A||!x?u||p||!A||x?!u&&!p&&A&&x?"frame"!=q?(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),"double"==q&&(g.moveNWInner(b,d,f,c,e,l,J,m,n,u,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),g.paintSWInner(b,d,f,c,e,l,
-y,m,n,A),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.lineNWInner(b,d,f,c,e,l,J,m,n,u,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,A),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),b.close(),b.fillAndStroke()):u||!p||A||x?!u&&p&&!A&&x?"frame"!=q?(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),"double"==q&&(g.moveNWInner(b,
-d,f,c,e,l,J,m,n,u,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x)),b.stroke(),b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),"double"==q&&(g.moveSEInner(b,d,f,c,e,l,I,m,n,A),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.lineNWInner(b,d,f,c,e,l,J,m,n,u,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),b.close(),b.fillAndStroke(),b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),g.lineSEInner(b,
-d,f,c,e,l,I,m,n,A),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),b.close(),b.fillAndStroke()):!u&&p&&A&&!x?"frame"!=q?(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),g.paintSEInner(b,d,f,c,e,l,I,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,
-d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.lineSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),g.paintSEInner(b,d,f,c,e,l,I,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),b.close(),b.fillAndStroke()):!u&&p&&A&&x?"frame"!=q?(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),"double"==q&&(g.moveNWInner(b,d,f,c,e,l,J,m,n,u,x),g.paintLeftInner(b,
-d,f,c,e,l,y,m,n,A,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,A),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),g.paintSEInner(b,d,f,c,e,l,I,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.lineNWInner(b,d,f,c,e,l,J,m,n,u,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,A),g.paintBottomInner(b,
-d,f,c,e,l,I,m,n,p,A),g.paintSEInner(b,d,f,c,e,l,I,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),b.close(),b.fillAndStroke()):!u||p||A||x?u&&!p&&!A&&x?"frame"!=q?(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),"double"==q&&(g.moveNEInner(b,d,f,c,e,l,t,m,n,p),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,
-A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.lineNEInner(b,d,f,c,e,l,t,m,n,p),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),b.close(),b.fillAndStroke()):u&&!p&&A&&!x?"frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),"double"==q&&(g.moveNEInner(b,d,f,c,e,l,t,m,n,p),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u)),b.stroke(),b.begin(),g.moveSE(b,d,f,c,e,l,I,m,p),
-g.paintBottom(b,d,f,c,e,l,y,m,x),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.lineNEInner(b,d,f,c,e,l,t,m,n,p),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),b.close(),b.fillAndStroke(),b.begin(),g.moveSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.lineSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),b.close(),b.fillAndStroke()):u&&!p&&A&&x?"frame"!=
-q?(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),"double"==q&&(g.moveNEInner(b,d,f,c,e,l,t,m,n,p),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,A),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,
-d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.lineNEInner(b,d,f,c,e,l,t,m,n,p),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,A),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),b.close(),b.fillAndStroke()):u&&p&&!A&&!x?"frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.paintNE(b,d,f,c,
-e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),"double"==q&&(g.moveSEInner(b,d,f,c,e,l,I,m,n,A),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),g.lineSEInner(b,d,f,c,e,l,I,m,n,A),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),b.close(),
-b.fillAndStroke()):u&&p&&!A&&x?"frame"!=q?(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),"double"==q&&(g.moveSEInner(b,d,f,c,e,l,I,m,n,A),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x)),b.stroke()):(b.begin(),g.moveSW(b,
-d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),g.lineSEInner(b,d,f,c,e,l,I,m,n,A),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),b.close(),b.fillAndStroke()):u&&p&&A&&!x?"frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,
-e,l,t,m,p),g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),g.paintSEInner(b,d,f,c,e,l,I,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,
-f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.lineSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),g.paintSEInner(b,d,f,c,e,l,I,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),b.close(),b.fillAndStroke()):u&&p&&A&&x&&("frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,
-c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),b.close(),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,A),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),g.paintSEInner(b,d,f,c,e,l,I,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),b.close()),
-b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),g.paintSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),b.close(),g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,A),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),g.paintSEInner(b,d,f,c,e,l,I,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),g.paintNEInner(b,
-d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),b.close(),b.fillAndStroke())):"frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),"double"==q&&(g.moveNEInner(b,d,f,c,e,l,t,m,n,p),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,p),g.lineNEInner(b,d,f,c,e,l,t,m,n,p),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),b.close(),b.fillAndStroke()):
-"frame"!=q?(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),"double"==q&&(g.moveSEInner(b,d,f,c,e,l,I,m,n,A),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,I,m,A),g.lineSEInner(b,d,f,c,e,l,I,m,n,A),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,p),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,
-d,f,c,e,l,I,m,n,p,A)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,I,m,p),g.paintBottom(b,d,f,c,e,l,y,m,x),g.lineSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,I,m,n,p,A),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),"double"==q&&(g.moveNWInner(b,d,f,c,e,l,J,m,n,u,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,A),g.paintLeft(b,d,f,c,e,l,J,m,u),g.lineNWInner(b,d,f,c,e,l,J,m,n,u,
-x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,A,x),b.close(),b.fillAndStroke());b.begin();g.paintFolds(b,d,f,c,e,l,J,t,I,y,m,u,p,A,x);b.stroke()};V.prototype.moveNW=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(0,0):b.moveTo(0,m)};V.prototype.moveNE=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(c,0):b.moveTo(c-m,0)};V.prototype.moveSE=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(c,e):b.moveTo(c,e-m)};V.prototype.moveSW=
-function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(0,e):b.moveTo(m,e)};V.prototype.paintNW=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,m,0)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(m,0);else b.lineTo(0,0)};V.prototype.paintTop=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==
-l&&"square"==g||!k?b.lineTo(c,0):b.lineTo(c-m,0)};V.prototype.paintNE=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,c,m)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c,m);else b.lineTo(c,0)};V.prototype.paintRight=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.lineTo(c,e):b.lineTo(c,e-m)};
-V.prototype.paintLeft=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.lineTo(0,0):b.lineTo(0,m)};V.prototype.paintSE=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,c-m,e)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-m,e);else b.lineTo(c,e)};V.prototype.paintBottom=function(b,d,f,c,e,g,l,
-m,k){"square"==l||"default"==l&&"square"==g||!k?b.lineTo(0,e):b.lineTo(m,e)};V.prototype.paintSW=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,0,e-m)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(0,e-m);else b.lineTo(0,e)};V.prototype.paintNWInner=function(b,d,f,c,e,g,l,m,k){if("rounded"==l||"default"==l&&"rounded"==
-g)b.arcTo(m-.5*k,m-.5*k,0,0,0,k,.5*k+m);else if("invRound"==l||"default"==l&&"invRound"==g)b.arcTo(m+k,m+k,0,0,1,k,k+m);else if("snip"==l||"default"==l&&"snip"==g)b.lineTo(k,.5*k+m);else if("fold"==l||"default"==l&&"fold"==g)b.lineTo(k+m,k+m),b.lineTo(k,k+m)};V.prototype.paintTopInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(0,k):n&&!q?b.lineTo(k,0):n?"square"==l||"default"==l&&"square"==g?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(m+
-.5*k,k):b.lineTo(m+k,k):b.lineTo(0,k):b.lineTo(0,0)};V.prototype.paintNEInner=function(b,d,f,c,e,g,l,m,k){if("rounded"==l||"default"==l&&"rounded"==g)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-m-.5*k,k);else if("invRound"==l||"default"==l&&"invRound"==g)b.arcTo(m+k,m+k,0,0,1,c-m-k,k);else if("snip"==l||"default"==l&&"snip"==g)b.lineTo(c-m-.5*k,k);else if("fold"==l||"default"==l&&"fold"==g)b.lineTo(c-m-k,m+k),b.lineTo(c-m-k,k)};V.prototype.paintRightInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(c-k,
-0):n&&!q?b.lineTo(c,k):n?"square"==l||"default"==l&&"square"==g?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-k,m+.5*k):b.lineTo(c-k,m+k):b.lineTo(c-k,0):b.lineTo(c,0)};V.prototype.paintLeftInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(k,e):n&&!q?b.lineTo(0,e-k):n?"square"==l||"default"==l&&"square"==g?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(k,e-m-.5*k):b.lineTo(k,e-
-m-k):b.lineTo(k,e):b.lineTo(0,e)};V.prototype.paintSEInner=function(b,d,f,c,e,g,l,m,k){if("rounded"==l||"default"==l&&"rounded"==g)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-k,e-m-.5*k);else if("invRound"==l||"default"==l&&"invRound"==g)b.arcTo(m+k,m+k,0,0,1,c-k,e-m-k);else if("snip"==l||"default"==l&&"snip"==g)b.lineTo(c-k,e-m-.5*k);else if("fold"==l||"default"==l&&"fold"==g)b.lineTo(c-m-k,e-m-k),b.lineTo(c-k,e-m-k)};V.prototype.paintBottomInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(c,e-k):n&&!q?
-b.lineTo(c-k,e):"square"==l||"default"==l&&"square"==g||!n?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-m-.5*k,e-k):b.lineTo(c-m-k,e-k):b.lineTo(c,e)};V.prototype.paintSWInner=function(b,d,f,c,e,g,l,m,k,n){if(!n)b.lineTo(k,e);else if("square"==l||"default"==l&&"square"==g)b.lineTo(k,e-k);else if("rounded"==l||"default"==l&&"rounded"==g)b.arcTo(m-.5*k,m-.5*k,0,0,0,m+.5*k,e-k);else if("invRound"==l||"default"==l&&"invRound"==g)b.arcTo(m+k,
-m+k,0,0,1,m+k,e-k);else if("snip"==l||"default"==l&&"snip"==g)b.lineTo(m+.5*k,e-k);else if("fold"==l||"default"==l&&"fold"==g)b.lineTo(k+m,e-m-k),b.lineTo(k+m,e-k)};V.prototype.moveSWInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g?b.moveTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(k,e-m-k):b.moveTo(0,e-k)};V.prototype.lineSWInner=
-function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(k,e-m-k):b.lineTo(0,e-k)};V.prototype.moveSEInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g?b.moveTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(c-
-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(c-k,e-m-k):b.moveTo(c-k,e)};V.prototype.lineSEInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-k,e-m-k):b.lineTo(c-k,e)};V.prototype.moveNEInner=function(b,d,f,
-c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g||n?b.moveTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(c-k,m+k):b.moveTo(c,k)};V.prototype.lineNEInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g||n?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-k,m+.5*k):("invRound"==
-l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-k,m+k):b.lineTo(c,k)};V.prototype.moveNWInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.moveTo(k,0):n&&!q?b.moveTo(0,k):"square"==l||"default"==l&&"square"==g?b.moveTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(k,m+k):b.moveTo(0,0)};V.prototype.lineNWInner=function(b,d,
-f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(k,0):n&&!q?b.lineTo(0,k):"square"==l||"default"==l&&"square"==g?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(k,m+k):b.lineTo(0,0)};V.prototype.paintFolds=function(b,d,f,c,e,g,l,m,k,n,q,G,u,A,p){if("fold"==g||"fold"==l||"fold"==m||"fold"==k||"fold"==n)("fold"==l||"default"==l&&"fold"==g)&&G&&p&&(b.moveTo(0,
-q),b.lineTo(q,q),b.lineTo(q,0)),("fold"==m||"default"==m&&"fold"==g)&&G&&u&&(b.moveTo(c-q,0),b.lineTo(c-q,q),b.lineTo(c,q)),("fold"==k||"default"==k&&"fold"==g)&&A&&u&&(b.moveTo(c-q,e),b.lineTo(c-q,e-q),b.lineTo(c,e-q)),("fold"==n||"default"==n&&"fold"==g)&&A&&p&&(b.moveTo(0,e-q),b.lineTo(q,e-q),b.lineTo(q,e))};mxCellRenderer.registerShape(V.prototype.cst.RECT2,V);V.prototype.constraints=null;mxUtils.extend(xa,mxConnector);xa.prototype.origPaintEdgeShape=xa.prototype.paintEdgeShape;xa.prototype.paintEdgeShape=
-function(b,d,f){for(var c=[],e=0;e<d.length;e++)c.push(mxUtils.clone(d[e]));var e=b.state.dashed,g=b.state.fixDash;xa.prototype.origPaintEdgeShape.apply(this,[b,c,f]);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,g),xa.prototype.origPaintEdgeShape.apply(this,[b,d,f])))};mxCellRenderer.registerShape("filledEdge",xa);"undefined"!==typeof StyleFormatPanel&&function(){var b=StyleFormatPanel.prototype.getCustomColors;
-StyleFormatPanel.prototype.getCustomColors=function(){var d=this.format.getSelectionState(),f=b.apply(this,arguments);"umlFrame"==d.style.shape&&f.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return f}}();mxMarker.addMarker("dash",function(b,d,f,c,e,g,l,m,k,n){var q=e*(l+k+1),G=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-q/2-G/2,c.y-G/2+q/2);b.lineTo(c.x+G/2-3*q/2,c.y-3*G/2-q/2);b.stroke()}});mxMarker.addMarker("box",function(b,d,f,c,e,g,l,m,k,n){var q=
-e*(l+k+1),G=g*(l+k+1),u=c.x+q/2,A=c.y+G/2;c.x-=q;c.y-=G;return function(){b.begin();b.moveTo(u-q/2-G/2,A-G/2+q/2);b.lineTo(u-q/2+G/2,A-G/2-q/2);b.lineTo(u+G/2-3*q/2,A-3*G/2-q/2);b.lineTo(u-G/2-3*q/2,A-3*G/2+q/2);b.close();n?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,f,c,e,g,l,m,k,n){var q=e*(l+k+1),G=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-q/2-G/2,c.y-G/2+q/2);b.lineTo(c.x+G/2-3*q/2,c.y-3*G/2-q/2);b.moveTo(c.x-q/2+G/2,c.y-G/2-q/2);b.lineTo(c.x-G/2-3*q/2,c.y-
-3*G/2+q/2);b.stroke()}});mxMarker.addMarker("circle",Oa);mxMarker.addMarker("circlePlus",function(b,d,f,c,e,g,l,m,k,n){var q=c.clone(),G=Oa.apply(this,arguments),u=e*(l+2*k),A=g*(l+2*k);return function(){G.apply(this,arguments);b.begin();b.moveTo(q.x-e*k,q.y-g*k);b.lineTo(q.x-2*u+e*k,q.y-2*A+g*k);b.moveTo(q.x-u-A+g*k,q.y-A+u-e*k);b.lineTo(q.x+A-u-g*k,q.y-A-u+e*k);b.stroke()}});mxMarker.addMarker("halfCircle",function(b,d,f,c,e,g,l,m,k,n){var q=e*(l+k+1),G=g*(l+k+1),u=c.clone();c.x-=q;c.y-=G;return function(){b.begin();
-b.moveTo(u.x-G,u.y+q);b.quadTo(c.x-G,c.y+q,c.x,c.y);b.quadTo(c.x+G,c.y-q,u.x+G,u.y-q);b.stroke()}});mxMarker.addMarker("async",function(b,d,f,c,e,g,l,m,k,q){d=e*k*1.118;f=g*k*1.118;e*=l+k;g*=l+k;var n=c.clone();n.x-=d;n.y-=f;c.x+=1*-e-d;c.y+=1*-g-f;return function(){b.begin();b.moveTo(n.x,n.y);m?b.lineTo(n.x-e-g/2,n.y-g+e/2):b.lineTo(n.x+g/2-e,n.y-g-e/2);b.lineTo(n.x-e,n.y-g);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",function(b){b=null!=b?b:2;return function(d,f,c,
-e,g,l,m,k,n,q){g*=m+n;l*=m+n;var G=e.clone();return function(){d.begin();d.moveTo(G.x,G.y);k?d.lineTo(G.x-g-l/b,G.y-l+g/b):d.lineTo(G.x+l/b-g,G.y-l-g/b);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ya=function(b,d,f){return Na(b,["width"],d,function(d,c,e,g,l){l=b.shape.getEdgeWidth()*b.view.scale+f;return new mxPoint(g.x+c*d/4+e*l/2,g.y+e*d/4-c*l/2)},function(d,c,e,g,l,m){d=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));b.style.width=Math.round(2*d)/b.view.scale-f})},Na=
-function(b,d,f,c,e){return ha(b,d,function(d){var e=b.absolutePoints,g=e.length-1;d=b.view.translate;var l=b.view.scale,m=f?e[0]:e[g],e=f?e[1]:e[g-1],g=e.x-m.x,k=e.y-m.y,n=Math.sqrt(g*g+k*k),m=c.call(this,n,g/n,k/n,m,e);return new mxPoint(m.x/l-d.x,m.y/l-d.y)},function(d,c,g){var l=b.absolutePoints,m=l.length-1;d=b.view.translate;var k=b.view.scale,n=f?l[0]:l[m],l=f?l[1]:l[m-1],m=l.x-n.x,q=l.y-n.y,G=Math.sqrt(m*m+q*q);c.x=(c.x+d.x)*k;c.y=(c.y+d.y)*k;e.call(this,G,m/G,q/G,n,l,c,g)})},Ia=function(b){return function(d){return[ha(d,
-["arrowWidth","arrowSize"],function(d){var f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",fa.prototype.arrowWidth))),c=Math.max(0,Math.min(b,mxUtils.getValue(this.state.style,"arrowSize",fa.prototype.arrowSize)));return new mxPoint(d.x+(1-c)*d.width,d.y+(1-f)*d.height/2)},function(d,f){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(d.y+d.height/2-f.y)/d.height*2));this.state.style.arrowSize=Math.max(0,Math.min(b,(d.x+d.width-f.x)/d.width))})]}},Za=function(b){return function(d){return[ha(d,
-["size"],function(d){var f=Math.max(0,Math.min(.5*d.height,parseFloat(mxUtils.getValue(this.state.style,"size",b))));return new mxPoint(d.x,d.y+f)},function(b,d){this.state.style.size=Math.max(0,d.y-b.y)},!0)]}},Ta=function(b,d,f){return function(c){var e=[ha(c,["size"],function(f){var c=Math.max(0,Math.min(f.width,Math.min(f.height,parseFloat(mxUtils.getValue(this.state.style,"size",d)))))*b;return new mxPoint(f.x+c,f.y+c)},function(d,f){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(d.width,
-f.x-d.x),Math.min(d.height,f.y-d.y)))/b)},!1)];f&&mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(Ga(c));return e}},Pa=function(b,d,f,c,e){f=null!=f?f:.5;return function(g){var l=[ha(g,["size"],function(d){var f=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,c=parseFloat(mxUtils.getValue(this.state.style,"size",f?e:b));return new mxPoint(d.x+Math.max(0,Math.min(.5*d.width,c*(f?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(f,(d.x-b.x)/b.width));this.state.style.size=b},!1,c)];d&&mxUtils.getValue(g.style,mxConstants.STYLE_ROUNDED,!1)&&l.push(Ga(g));return l}},Va=function(b,d,f){b=null!=b?b:.5;return function(c){var e=[ha(c,["size"],function(c){var e=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,g=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,"size",e?f:d)));return new mxPoint(c.x+Math.min(.75*c.width*b,g*(e?.75:.75*c.width)),c.y+c.height/4)},
-function(d,c){var e=null!=f&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?c.x-d.x:Math.max(0,Math.min(b,(c.x-d.x)/d.width*.75));this.state.style.size=e},!1,!0)];mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(Ga(c));return e}},Ma=function(){return function(b){var d=[];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d}},Ga=function(b,d){return ha(b,[mxConstants.STYLE_ARCSIZE],function(f){var c=null!=d?d:f.height/8;if("1"==mxUtils.getValue(b.style,
-mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(b.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(f.x+f.width-Math.min(f.width/2,e),f.y+c)}e=Math.max(0,parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(f.x+f.width-Math.min(Math.max(f.width/2,f.height/2),Math.min(f.width,f.height)*e),f.y+c)},function(d,f,c){"1"==mxUtils.getValue(b.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?
-this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(d.width,2*(d.x+d.width-f.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(d.width-f.x+d.x)/Math.min(d.width,d.height))))})},ha=function(b,d,f,c,e,g,l){var m=new mxHandle(b,null,mxVertexHandler.prototype.secondaryHandleImage);m.execute=function(b){for(var f=0;f<d.length;f++)this.copyStyle(d[f]);l&&l(b)};m.getPosition=f;m.setPosition=c;m.ignoreGrid=null!=e?e:!0;if(g){var k=m.positionChanged;
-m.positionChanged=function(){k.apply(this,arguments);b.view.invalidate(this.state.cell);b.view.validate()}}return m},Qa={link:function(b){return[Ya(b,!0,10),Ya(b,!1,10)]},flexArrow:function(b){var d=b.view.graph.gridSize/b.view.scale,f=[];mxUtils.getValue(b.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(f.push(Na(b,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(d,f,c,e,g){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;g=3*mxUtils.getNumber(b.style,
-mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+f*(g+b.shape.strokewidth*b.view.scale)+c*d/2,e.y+c*(g+b.shape.strokewidth*b.view.scale)-f*d/2)},function(f,c,e,g,l,m,k){f=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-c,m.x,m.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*f)/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_ENDSIZE]=
-b.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE])})),f.push(Na(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(d,f,c,e,g){d=(b.shape.getStartArrowWidth()-b.shape.strokewidth)*b.view.scale;g=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/
-5)*b.view.scale;return new mxPoint(e.x+f*(g+b.shape.strokewidth*b.view.scale)+c*d/2,e.y+c*(g+b.shape.strokewidth*b.view.scale)-f*d/2)},function(f,c,e,g,l,m,k){f=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-c,m.x,m.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.startWidth=Math.max(0,Math.round(2*f)-b.shape.getEdgeWidth())/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_ENDSIZE]=
-b.style[mxConstants.STYLE_STARTSIZE],b.style.endWidth=b.style.startWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(b.style.startWidth)-parseFloat(b.style.endWidth))<d&&(b.style.startWidth=b.style.endWidth))})));mxUtils.getValue(b.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(f.push(Na(b,
-["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,f,c,e,g){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;g=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+f*(g+b.shape.strokewidth*b.view.scale)-c*d/2,e.y+c*(g+b.shape.strokewidth*b.view.scale)+f*d/2)},function(f,c,e,g,l,m,k){f=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-c,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=
-Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*f)/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE])})),f.push(Na(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
-!1,function(d,f,c,e,g){d=(b.shape.getEndArrowWidth()-b.shape.strokewidth)*b.view.scale;g=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+f*(g+b.shape.strokewidth*b.view.scale)-c*d/2,e.y+c*(g+b.shape.strokewidth*b.view.scale)+f*d/2)},function(f,c,e,g,l,m,k){f=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-c,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(c-b.shape.strokewidth)/
-3)/100/b.view.scale;b.style.endWidth=Math.max(0,Math.round(2*f)-b.shape.getEdgeWidth())/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE],b.style.startWidth=b.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(b.style.endWidth)-
-parseFloat(b.style.startWidth))<d&&(b.style.endWidth=b.style.startWidth))})));return f},swimlane:function(b){var d=[];if(mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED)){var f=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));d.push(Ga(b,f/2))}d.push(ha(b,[mxConstants.STYLE_STARTSIZE],function(d){var f=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,
-1)?new mxPoint(d.getCenterX(),d.y+Math.max(0,Math.min(d.height,f))):new mxPoint(d.x+Math.max(0,Math.min(d.width,f)),d.getCenterY())},function(d,f){b.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(d.height,f.y-d.y))):Math.round(Math.max(0,Math.min(d.width,f.x-d.x)))},!1,null,function(d){if(mxEvent.isControlDown(d.getEvent())&&(d=b.view.graph,d.isTableRow(b.cell)||d.isTableCell(b.cell))){for(var f=d.getSwimlaneDirection(b.style),
-c=d.model.getParent(b.cell),c=d.model.getChildCells(c,!0),e=[],g=0;g<c.length;g++)c[g]!=b.cell&&d.isSwimlane(c[g])&&d.getSwimlaneDirection(d.getCurrentCellStyle(c[g]))==f&&e.push(c[g]);d.setCellStyles(mxConstants.STYLE_STARTSIZE,b.style[mxConstants.STYLE_STARTSIZE],e)}}));return d},label:Ma(),ext:Ma(),rectangle:Ma(),triangle:Ma(),rhombus:Ma(),umlLifeline:function(b){return[ha(b,["size"],function(b){var d=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",I.prototype.size))));
-return new mxPoint(b.getCenterX(),b.y+d)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},umlFrame:function(b){return[ha(b,["width","height"],function(b){var d=Math.max(X.prototype.corner,Math.min(b.width,mxUtils.getValue(this.state.style,"width",X.prototype.width))),f=Math.max(1.5*X.prototype.corner,Math.min(b.height,mxUtils.getValue(this.state.style,"height",X.prototype.height)));return new mxPoint(b.x+d,b.y+f)},function(b,d){this.state.style.width=
-Math.round(Math.max(X.prototype.corner,Math.min(b.width,d.x-b.x)));this.state.style.height=Math.round(Math.max(1.5*X.prototype.corner,Math.min(b.height,d.y-b.y)))},!1)]},process:function(b){var d=[ha(b,["size"],function(b){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),f=parseFloat(mxUtils.getValue(this.state.style,"size",E.prototype.size));return d?new mxPoint(b.x+f,b.y+b.height/4):new mxPoint(b.x+b.width*f,b.y+b.height/4)},function(b,d){var f="0"!=mxUtils.getValue(this.state.style,
-"fixedSize","0")?Math.max(0,Math.min(.5*b.width,d.x-b.x)):Math.max(0,Math.min(.5,(d.x-b.x)/b.width));this.state.style.size=f},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},cross:function(b){return[ha(b,["size"],function(b){var d=Math.min(b.width,b.height),d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",Ha.prototype.size)))*d/2;return new mxPoint(b.getCenterX()-d,b.getCenterY()-d)},function(b,d){var f=Math.min(b.width,b.height);this.state.style.size=
-Math.max(0,Math.min(1,Math.min(Math.max(0,b.getCenterY()-d.y)/f*2,Math.max(0,b.getCenterX()-d.x)/f*2)))})]},note:function(b){return[ha(b,["size"],function(b){var d=Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size)))));return new mxPoint(b.x+b.width-d,b.y+d)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,b.x+b.width-d.x),Math.min(b.height,d.y-b.y))))})]},note2:function(b){return[ha(b,["size"],function(b){var f=
-Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",d.prototype.size)))));return new mxPoint(b.x+b.width-f,b.y+f)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,b.x+b.width-d.x),Math.min(b.height,d.y-b.y))))})]},manualInput:function(b){var d=[ha(b,["size"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",U.prototype.size)));return new mxPoint(b.x+b.width/4,b.y+3*d/4)},function(b,
-d){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,4*(d.y-b.y)/3)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},dataStorage:function(b){return[ha(b,["size"],function(b){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),f=parseFloat(mxUtils.getValue(this.state.style,"size",d?ja.prototype.fixedSize:ja.prototype.size));return new mxPoint(b.x+b.width-f*(d?1:b.width),b.getCenterY())},function(b,d){var f="0"!=mxUtils.getValue(this.state.style,
-"fixedSize","0")?Math.max(0,Math.min(b.width,b.x+b.width-d.x)):Math.max(0,Math.min(1,(b.x+b.width-d.x)/b.width));this.state.style.size=f},!1)]},callout:function(b){var d=[ha(b,["size","position"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",B.prototype.size))),f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",B.prototype.position)));mxUtils.getValue(this.state.style,"base",B.prototype.base);return new mxPoint(b.x+f*b.width,b.y+b.height-
-d)},function(b,d){mxUtils.getValue(this.state.style,"base",B.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(b.height,b.y+b.height-d.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(d.x-b.x)/b.width)))/100},!1),ha(b,["position2"],function(b){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",B.prototype.position2)));return new mxPoint(b.x+d*b.width,b.y+b.height)},function(b,d){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,
-(d.x-b.x)/b.width)))/100},!1),ha(b,["base"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",B.prototype.size))),f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",B.prototype.position))),c=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"base",B.prototype.base)));return new mxPoint(b.x+Math.min(b.width,f*b.width+c),b.y+b.height-d)},function(b,d){var f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",B.prototype.position)));
-this.state.style.base=Math.round(Math.max(0,Math.min(b.width,d.x-b.x-f*b.width)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},internalStorage:function(b){var d=[ha(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",T.prototype.dx))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",T.prototype.dy)));return new mxPoint(b.x+d,b.y+f)},function(b,d){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,
-d.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},module:function(b){return[ha(b,["jettyWidth","jettyHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"jettyWidth",pa.prototype.jettyWidth))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"jettyHeight",pa.prototype.jettyHeight)));return new mxPoint(b.x+d/2,b.y+2*f)},function(b,
-d){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(b.height,d.y-b.y))/2)})]},corner:function(b){return[ha(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",na.prototype.dx))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",na.prototype.dy)));return new mxPoint(b.x+d,b.y+f)},function(b,d){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,
-d.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},tee:function(b){return[ha(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",S.prototype.dx))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",S.prototype.dy)));return new mxPoint(b.x+(b.width+d)/2,b.y+f)},function(b,d){this.state.style.dx=Math.round(Math.max(0,2*Math.min(b.width/2,d.x-b.x-b.width/2)));this.state.style.dy=Math.round(Math.max(0,
-Math.min(b.height,d.y-b.y)))},!1)]},singleArrow:Ia(1),doubleArrow:Ia(.5),folder:function(b){return[ha(b,["tabWidth","tabHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"tabWidth",n.prototype.tabWidth))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"tabHeight",n.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",n.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(d=b.width-d);return new mxPoint(b.x+d,b.y+f)},function(b,
-d){var f=Math.max(0,Math.min(b.width,d.x-b.x));mxUtils.getValue(this.state.style,"tabPosition",n.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(f=b.width-f);this.state.style.tabWidth=Math.round(f);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},document:function(b){return[ha(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.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[ha(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",y.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[ha(b,["isoAngle"],function(b){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,
-"isoAngle",f.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:Za(l.prototype.size),cylinder3:Za(m.prototype.size),offPageConnector:function(b){return[ha(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",da.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:Pa(L.prototype.size,!0,null,!0,L.prototype.fixedSize),hexagon:Pa(O.prototype.size,!0,.5,!0,O.prototype.fixedSize),curlyBracket:Pa(C.prototype.size,!1),display:Pa(Fa.prototype.size,!1),cube:Ta(1,c.prototype.size,!1),card:Ta(.5,v.prototype.size,!0),loopLimit:Ta(.5,P.prototype.size,!0),trapezoid:Va(.5,
-H.prototype.size,H.prototype.fixedSize),parallelogram:Va(1,D.prototype.size,D.prototype.fixedSize)};Graph.createHandle=ha;Graph.handleFactory=Qa;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=Qa[d];null==d&&null!=this.state.shape&&this.state.shape.isRoundable()&&(d=Qa[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=Qa[b];return null!=b?b(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory=
-{};var Ra=new mxPoint(1,0),Sa=new mxPoint(1,0),Ia=mxUtils.toRadians(-30),Ra=mxUtils.getRotatedPoint(Ra,Math.cos(Ia),Math.sin(Ia)),Ia=mxUtils.toRadians(-150),Sa=mxUtils.getRotatedPoint(Sa,Math.cos(Ia),Math.sin(Ia));mxEdgeStyle.IsometricConnector=function(b,d,f,c,e){var g=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=g.transformControlPoint(b,c));null==m&&null!=d&&(m=new mxPoint(d.getCenterX(),d.getCenterY()));null==l&&null!=f&&(l=new mxPoint(f.getCenterX(),
-f.getCenterY()));var k=Ra.x,n=Ra.y,q=Sa.x,G=Sa.y,u="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=l&&null!=m){b=function(b,d,f){b-=A.x;var c=d-A.y;d=(G*b-q*c)/(k*G-n*q);b=(n*b-k*c)/(n*q-k*G);u?(f&&(A=new mxPoint(A.x+k*d,A.y+n*d),e.push(A)),A=new mxPoint(A.x+q*b,A.y+G*b)):(f&&(A=new mxPoint(A.x+q*b,A.y+G*b),e.push(A)),A=new mxPoint(A.x+k*d,A.y+n*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 f=new mxElbowEdgeHandler(b);f.snapToTerminals=!1;return f}return fb.apply(this,arguments)};k.prototype.constraints=[];g.prototype.getConstraints=function(b,d,f){b=[];var c=Math.tan(mxUtils.toRadians(30)),e=(.5-c)/2,c=Math.min(d,f/(.5+c));d=(d-c)/2;f=(f-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,d+.5*c,f+c*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,f+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,f+.75*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,f+(1-e)*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f+.75*c));return b};f.prototype.getConstraints=function(b,d,f){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*f);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,f-c));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
-0,c));return b};B.prototype.getConstraints=function(b,d,f){b=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var c=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1));b.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(f-c)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,
-f-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(f-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))];Ea.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=
-mxRectangleShape.prototype.constraints;ca.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;t.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,Math.min(f,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*(f+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};v.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,Math.min(f,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*(f+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};c.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,Math.min(f,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*(f+c)));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),f));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,c,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,f-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(f-c)));return b};m.prototype.getConstraints=function(b,d,f){b=[];d=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,
-1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,d));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-d));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-d));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d+.5*(.5*f-d)));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,d+.5*(.5*f-d)));b.push(new mxConnectionConstraint(new mxPoint(1,
-0),!1,null,0,f-d-.5*(.5*f-d)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f-d-.5*(.5*f-d)));b.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*d));b.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*d));b.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-d));b.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-d));return b};n.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,
-"tabWidth",this.tabWidth)))),e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(b.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
-.5*(d+c),e))):(b.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*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-c,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,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.25*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,d,.5*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.75*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,f));b.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return b};T.prototype.constraints=mxRectangleShape.prototype.constraints;ja.prototype.constraints=mxRectangleShape.prototype.constraints;wa.prototype.constraints=mxEllipse.prototype.constraints;ya.prototype.constraints=mxEllipse.prototype.constraints;ra.prototype.constraints=mxEllipse.prototype.constraints;Ka.prototype.constraints=
-mxEllipse.prototype.constraints;U.prototype.constraints=mxRectangleShape.prototype.constraints;Ba.prototype.constraints=mxRectangleShape.prototype.constraints;Fa.prototype.getConstraints=function(b,d,f){b=[];var c=Math.min(d,f/2),e=Math.min(d-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
-.5*(e+d-c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+d-c),f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));return b};pa.prototype.getConstraints=function(b,d,f){d=parseFloat(mxUtils.getValue(b,"jettyWidth",pa.prototype.jettyWidth))/2;b=parseFloat(mxUtils.getValue(b,
-"jettyHeight",pa.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(f-.5*b,1.5*b)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(f-.5*b,3.5*b))];f>5*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,d));f>8*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,d));f>
-15*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,d));return c};P.prototype.constraints=mxRectangleShape.prototype.constraints;da.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)];W.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)];qa.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)];y.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)];L.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)];aa.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,
-.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];D.prototype.constraints=mxRectangleShape.prototype.constraints;H.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
+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"}]}];X.prototype.paintVertexShape=
+function(b,d,f,c,e){b.translate(d,f);this.strictDrawShape(b,0,0,c,e)};X.prototype.strictDrawShape=function(b,d,f,c,e,g){var l=g&&g.rectStyle?g.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=g&&g.absoluteCornerSize?g.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),m=g&&g.size?g.size:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),q=g&&g.rectOutline?g.rectOutline:mxUtils.getValue(this.style,"rectOutline",
+this.rectOutline),n=g&&g.indent?g.indent:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),H=g&&g.dashed?g.dashed:mxUtils.getValue(this.style,"dashed",!1),z=g&&g.dashPattern?g.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),u=g&&g.relIndent?g.relIndent:Math.max(0,Math.min(50,n)),A=g&&g.top?g.top:mxUtils.getValue(this.style,"top",!0),v=g&&g.right?g.right:mxUtils.getValue(this.style,"right",!0),p=g&&g.bottom?g.bottom:mxUtils.getValue(this.style,"bottom",
+!0),x=g&&g.left?g.left:mxUtils.getValue(this.style,"left",!0),J=g&&g.topLeftStyle?g.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),E=g&&g.topRightStyle?g.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),t=g&&g.bottomRightStyle?g.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),y=g&&g.bottomLeftStyle?g.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),C=g&&g.fillColor?g.fillColor:mxUtils.getValue(this.style,"fillColor",
+"#ffffff");g&&g.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var B=g&&g.strokeWidth?g.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),aa=g&&g.fillColor2?g.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),T=g&&g.gradientColor2?g.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),N=g&&g.gradientDirection2?g.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),sa=g&&g.opacity?g.opacity:mxUtils.getValue(this.style,"opacity",
+"100"),qa=Math.max(0,Math.min(50,m));g=X.prototype;b.setDashed(H);z&&""!=z&&b.setDashPattern(z);b.setStrokeWidth(B);m=Math.min(.5*e,.5*c,m);k||(m=qa*Math.min(c,e)/100);m=Math.min(m,.5*Math.min(c,e));k||(n=Math.min(u*Math.min(c,e)/100));n=Math.min(n,.5*Math.min(c,e)-m);(A||v||p||x)&&"frame"!=q&&(b.begin(),A?g.moveNW(b,d,f,c,e,l,J,m,x):b.moveTo(0,0),A&&g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),v&&g.paintNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),p&&g.paintSE(b,d,f,c,e,l,
+t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),x&&g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(aa),H=k=sa,"none"==aa&&(k=0),"none"==T&&(H=0),b.setGradient(aa,T,0,0,c,e,N,k,H),b.begin(),A?g.moveNWInner(b,d,f,c,e,l,J,m,n,A,x):b.moveTo(n,0),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),x&&p&&g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),p&&v&&g.paintSEInner(b,d,f,c,e,l,t,m,n),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),
+v&&A&&g.paintNEInner(b,d,f,c,e,l,E,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),A&&x&&g.paintNWInner(b,d,f,c,e,l,J,m,n),b.fill(),"none"==C&&(b.begin(),g.paintFolds(b,d,f,c,e,l,J,E,t,y,m,A,v,p,x),b.stroke()));A||v||p||!x?A||v||!p||x?!A&&!v&&p&&x?"frame"!=q?(b.begin(),g.moveSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),"double"==q&&(g.moveNWInner(b,d,f,c,e,l,J,m,n,A,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),g.paintSWInner(b,d,f,c,
+e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),g.lineNWInner(b,d,f,c,e,l,J,m,n,A,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),b.close(),b.fillAndStroke()):A||!v||p||x?!A&&v&&!p&&x?"frame"!=q?(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),"double"==q&&
+(g.moveNWInner(b,d,f,c,e,l,J,m,n,A,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x)),b.stroke(),b.begin(),g.moveNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),"double"==q&&(g.moveSEInner(b,d,f,c,e,l,t,m,n,p),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),g.lineNWInner(b,d,f,c,e,l,J,m,n,A,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),b.close(),b.fillAndStroke(),b.begin(),g.moveNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,
+t,m,p),g.lineSEInner(b,d,f,c,e,l,t,m,n,p),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),b.close(),b.fillAndStroke()):!A&&v&&p&&!x?"frame"!=q?(b.begin(),g.moveNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),g.paintSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),g.paintSEInner(b,d,f,c,e,l,t,m,n),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,
+d,f,c,e,l,t,m,p),g.paintSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.lineSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),g.paintSEInner(b,d,f,c,e,l,t,m,n),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),b.close(),b.fillAndStroke()):!A&&v&&p&&x?"frame"!=q?(b.begin(),g.moveNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),g.paintSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),"double"==q&&(g.moveNWInner(b,
+d,f,c,e,l,J,m,n,A,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),g.paintSEInner(b,d,f,c,e,l,t,m,n),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),g.paintSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),g.lineNWInner(b,d,f,c,e,l,J,m,n,A,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),g.paintSWInner(b,
+d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),g.paintSEInner(b,d,f,c,e,l,t,m,n),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),b.close(),b.fillAndStroke()):!A||v||p||x?A&&!v&&!p&&x?"frame"!=q?(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),"double"==q&&(g.moveNEInner(b,d,f,c,e,l,E,m,n,v),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x)),b.stroke()):
+(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),g.lineNEInner(b,d,f,c,e,l,E,m,n,v),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),b.close(),b.fillAndStroke()):A&&!v&&p&&!x?"frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),"double"==q&&(g.moveNEInner(b,d,f,c,e,l,E,m,n,v),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A)),b.stroke(),b.begin(),
+g.moveSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),g.lineNEInner(b,d,f,c,e,l,E,m,n,v),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),b.close(),b.fillAndStroke(),b.begin(),g.moveSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.lineSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),b.close(),b.fillAndStroke()):
+A&&!v&&p&&x?"frame"!=q?(b.begin(),g.moveSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),"double"==q&&(g.moveNEInner(b,d,f,c,e,l,E,m,n,v),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,t,
+m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),g.lineNEInner(b,d,f,c,e,l,E,m,n,v),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),b.close(),b.fillAndStroke()):A&&v&&!p&&!x?"frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,
+v),g.paintNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),"double"==q&&(g.moveSEInner(b,d,f,c,e,l,t,m,n,p),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),g.paintNEInner(b,d,f,c,e,l,E,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),g.paintNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),g.lineSEInner(b,d,f,c,e,l,t,m,n,p),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),g.paintNEInner(b,d,f,c,e,l,E,m,n),g.paintTopInner(b,d,f,
+c,e,l,J,m,n,x,A),b.close(),b.fillAndStroke()):A&&v&&!p&&x?"frame"!=q?(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),g.paintNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),"double"==q&&(g.moveSEInner(b,d,f,c,e,l,t,m,n,p),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),g.paintNEInner(b,d,f,c,e,l,E,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x)),b.stroke()):
+(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),g.paintNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),g.lineSEInner(b,d,f,c,e,l,t,m,n,p),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),g.paintNEInner(b,d,f,c,e,l,E,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),b.close(),b.fillAndStroke()):A&&v&&p&&!x?"frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,
+x),g.paintTop(b,d,f,c,e,l,E,m,v),g.paintNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),g.paintSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),g.paintSEInner(b,d,f,c,e,l,t,m,n),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),g.paintNEInner(b,d,f,c,e,l,E,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),g.paintNE(b,d,f,c,e,l,E,
+m,A),g.paintRight(b,d,f,c,e,l,t,m,p),g.paintSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.lineSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),g.paintSEInner(b,d,f,c,e,l,t,m,n),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),g.paintNEInner(b,d,f,c,e,l,E,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),b.close(),b.fillAndStroke()):A&&v&&p&&x&&("frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),g.paintNE(b,d,f,c,e,l,E,m,
+A),g.paintRight(b,d,f,c,e,l,t,m,p),g.paintSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),b.close(),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),g.paintSEInner(b,d,f,c,e,l,t,m,n),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),g.paintNEInner(b,d,f,c,e,l,E,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,
+e,l,y,m,n,p,x),b.close()),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),g.paintNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),g.paintSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),b.close(),g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),g.paintSEInner(b,d,f,c,e,l,t,m,n),g.paintRightInner(b,d,f,c,
+e,l,E,m,n,A,v),g.paintNEInner(b,d,f,c,e,l,E,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),b.close(),b.fillAndStroke())):"frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),"double"==q&&(g.moveNEInner(b,d,f,c,e,l,E,m,n,v),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,A)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,E,m,v),g.lineNEInner(b,d,f,c,e,l,E,m,n,v),g.paintTopInner(b,d,f,c,
+e,l,J,m,n,x,A),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),g.moveNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),"double"==q&&(g.moveSEInner(b,d,f,c,e,l,t,m,n,p),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,E,m,A),g.paintRight(b,d,f,c,e,l,t,m,p),g.lineSEInner(b,d,f,c,e,l,t,m,n,p),g.paintRightInner(b,d,f,c,e,l,E,m,n,A,v),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),g.moveSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),"double"==q&&
+(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,t,m,v),g.paintBottom(b,d,f,c,e,l,y,m,x),g.lineSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,t,m,n,v,p),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,p),g.paintLeft(b,d,f,c,e,l,J,m,A),"double"==q&&(g.moveNWInner(b,d,f,c,e,l,J,m,n,A,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,p),g.paintLeft(b,
+d,f,c,e,l,J,m,A),g.lineNWInner(b,d,f,c,e,l,J,m,n,A,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),b.close(),b.fillAndStroke());b.begin();g.paintFolds(b,d,f,c,e,l,J,E,t,y,m,A,v,p,x);b.stroke()};X.prototype.moveNW=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(0,0):b.moveTo(0,m)};X.prototype.moveNE=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(c,0):b.moveTo(c-m,0)};X.prototype.moveSE=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&
+"square"==g||!k?b.moveTo(c,e):b.moveTo(c,e-m)};X.prototype.moveSW=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(0,e):b.moveTo(m,e)};X.prototype.paintNW=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,m,0)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(m,0);else b.lineTo(0,0)};X.prototype.paintTop=
+function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.lineTo(c,0):b.lineTo(c-m,0)};X.prototype.paintNE=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,c,m)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c,m);else b.lineTo(c,0)};X.prototype.paintRight=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==
+l&&"square"==g||!k?b.lineTo(c,e):b.lineTo(c,e-m)};X.prototype.paintLeft=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.lineTo(0,0):b.lineTo(0,m)};X.prototype.paintSE=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,c-m,e)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-m,e);else b.lineTo(c,
+e)};X.prototype.paintBottom=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.lineTo(0,e):b.lineTo(m,e)};X.prototype.paintSW=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,0,e-m)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(0,e-m);else b.lineTo(0,e)};X.prototype.paintNWInner=function(b,d,f,
+c,e,g,l,m,k){if("rounded"==l||"default"==l&&"rounded"==g)b.arcTo(m-.5*k,m-.5*k,0,0,0,k,.5*k+m);else if("invRound"==l||"default"==l&&"invRound"==g)b.arcTo(m+k,m+k,0,0,1,k,k+m);else if("snip"==l||"default"==l&&"snip"==g)b.lineTo(k,.5*k+m);else if("fold"==l||"default"==l&&"fold"==g)b.lineTo(k+m,k+m),b.lineTo(k,k+m)};X.prototype.paintTopInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(0,k):n&&!q?b.lineTo(k,0):n?"square"==l||"default"==l&&"square"==g?b.lineTo(k,k):"rounded"==l||"default"==l&&
+"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(m+.5*k,k):b.lineTo(m+k,k):b.lineTo(0,k):b.lineTo(0,0)};X.prototype.paintNEInner=function(b,d,f,c,e,g,l,m,k){if("rounded"==l||"default"==l&&"rounded"==g)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-m-.5*k,k);else if("invRound"==l||"default"==l&&"invRound"==g)b.arcTo(m+k,m+k,0,0,1,c-m-k,k);else if("snip"==l||"default"==l&&"snip"==g)b.lineTo(c-m-.5*k,k);else if("fold"==l||"default"==l&&"fold"==g)b.lineTo(c-m-k,m+k),b.lineTo(c-m-k,k)};X.prototype.paintRightInner=
+function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(c-k,0):n&&!q?b.lineTo(c,k):n?"square"==l||"default"==l&&"square"==g?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-k,m+.5*k):b.lineTo(c-k,m+k):b.lineTo(c-k,0):b.lineTo(c,0)};X.prototype.paintLeftInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(k,e):n&&!q?b.lineTo(0,e-k):n?"square"==l||"default"==l&&"square"==g?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==
+l&&"snip"==g?b.lineTo(k,e-m-.5*k):b.lineTo(k,e-m-k):b.lineTo(k,e):b.lineTo(0,e)};X.prototype.paintSEInner=function(b,d,f,c,e,g,l,m,k){if("rounded"==l||"default"==l&&"rounded"==g)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-k,e-m-.5*k);else if("invRound"==l||"default"==l&&"invRound"==g)b.arcTo(m+k,m+k,0,0,1,c-k,e-m-k);else if("snip"==l||"default"==l&&"snip"==g)b.lineTo(c-k,e-m-.5*k);else if("fold"==l||"default"==l&&"fold"==g)b.lineTo(c-m-k,e-m-k),b.lineTo(c-k,e-m-k)};X.prototype.paintBottomInner=function(b,d,f,c,
+e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(c,e-k):n&&!q?b.lineTo(c-k,e):"square"==l||"default"==l&&"square"==g||!n?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-m-.5*k,e-k):b.lineTo(c-m-k,e-k):b.lineTo(c,e)};X.prototype.paintSWInner=function(b,d,f,c,e,g,l,m,k,n){if(!n)b.lineTo(k,e);else if("square"==l||"default"==l&&"square"==g)b.lineTo(k,e-k);else if("rounded"==l||"default"==l&&"rounded"==g)b.arcTo(m-.5*k,m-.5*k,0,0,0,m+.5*k,e-k);else if("invRound"==
+l||"default"==l&&"invRound"==g)b.arcTo(m+k,m+k,0,0,1,m+k,e-k);else if("snip"==l||"default"==l&&"snip"==g)b.lineTo(m+.5*k,e-k);else if("fold"==l||"default"==l&&"fold"==g)b.lineTo(k+m,e-m-k),b.lineTo(k+m,e-k)};X.prototype.moveSWInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g?b.moveTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(k,
+e-m-k):b.moveTo(0,e-k)};X.prototype.lineSWInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(k,e-m-k):b.lineTo(0,e-k)};X.prototype.moveSEInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g?b.moveTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==
+g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(c-k,e-m-k):b.moveTo(c-k,e)};X.prototype.lineSEInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-k,e-m-k):b.lineTo(c-
+k,e)};X.prototype.moveNEInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g||n?b.moveTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(c-k,m+k):b.moveTo(c,k)};X.prototype.lineNEInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g||n?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==
+l&&"snip"==g?b.lineTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-k,m+k):b.lineTo(c,k)};X.prototype.moveNWInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.moveTo(k,0):n&&!q?b.moveTo(0,k):"square"==l||"default"==l&&"square"==g?b.moveTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(k,m+k):b.moveTo(0,
+0)};X.prototype.lineNWInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(k,0):n&&!q?b.lineTo(0,k):"square"==l||"default"==l&&"square"==g?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(k,m+k):b.lineTo(0,0)};X.prototype.paintFolds=function(b,d,f,c,e,g,l,m,k,n,q,H,A,u,p){if("fold"==g||"fold"==l||"fold"==m||"fold"==k||"fold"==n)("fold"==l||"default"==
+l&&"fold"==g)&&H&&p&&(b.moveTo(0,q),b.lineTo(q,q),b.lineTo(q,0)),("fold"==m||"default"==m&&"fold"==g)&&H&&A&&(b.moveTo(c-q,0),b.lineTo(c-q,q),b.lineTo(c,q)),("fold"==k||"default"==k&&"fold"==g)&&u&&A&&(b.moveTo(c-q,e),b.lineTo(c-q,e-q),b.lineTo(c,e-q)),("fold"==n||"default"==n&&"fold"==g)&&u&&p&&(b.moveTo(0,e-q),b.lineTo(q,e-q),b.lineTo(q,e))};mxCellRenderer.registerShape(X.prototype.cst.RECT2,X);X.prototype.constraints=null;mxUtils.extend(ua,mxConnector);ua.prototype.origPaintEdgeShape=ua.prototype.paintEdgeShape;
+ua.prototype.paintEdgeShape=function(b,d,f){for(var c=[],e=0;e<d.length;e++)c.push(mxUtils.clone(d[e]));var e=b.state.dashed,g=b.state.fixDash;ua.prototype.origPaintEdgeShape.apply(this,[b,c,f]);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,g),ua.prototype.origPaintEdgeShape.apply(this,[b,d,f])))};mxCellRenderer.registerShape("filledEdge",ua);"undefined"!==typeof StyleFormatPanel&&function(){var b=
+StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var d=this.format.getSelectionState(),f=b.apply(this,arguments);"umlFrame"==d.style.shape&&f.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return f}}();mxMarker.addMarker("dash",function(b,d,f,c,e,g,l,m,k,n){var q=e*(l+k+1),H=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-q/2-H/2,c.y-H/2+q/2);b.lineTo(c.x+H/2-3*q/2,c.y-3*H/2-q/2);b.stroke()}});mxMarker.addMarker("box",
+function(b,d,f,c,e,g,l,m,k,n){var q=e*(l+k+1),H=g*(l+k+1),A=c.x+q/2,u=c.y+H/2;c.x-=q;c.y-=H;return function(){b.begin();b.moveTo(A-q/2-H/2,u-H/2+q/2);b.lineTo(A-q/2+H/2,u-H/2-q/2);b.lineTo(A+H/2-3*q/2,u-3*H/2-q/2);b.lineTo(A-H/2-3*q/2,u-3*H/2+q/2);b.close();n?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,f,c,e,g,l,m,k,n){var q=e*(l+k+1),H=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-q/2-H/2,c.y-H/2+q/2);b.lineTo(c.x+H/2-3*q/2,c.y-3*H/2-q/2);b.moveTo(c.x-q/2+H/2,c.y-
+H/2-q/2);b.lineTo(c.x-H/2-3*q/2,c.y-3*H/2+q/2);b.stroke()}});mxMarker.addMarker("circle",Oa);mxMarker.addMarker("circlePlus",function(b,d,f,c,e,g,l,m,k,n){var q=c.clone(),H=Oa.apply(this,arguments),A=e*(l+2*k),u=g*(l+2*k);return function(){H.apply(this,arguments);b.begin();b.moveTo(q.x-e*k,q.y-g*k);b.lineTo(q.x-2*A+e*k,q.y-2*u+g*k);b.moveTo(q.x-A-u+g*k,q.y-u+A-e*k);b.lineTo(q.x+u-A-g*k,q.y-u-A+e*k);b.stroke()}});mxMarker.addMarker("halfCircle",function(b,d,f,c,e,g,l,m,k,n){var q=e*(l+k+1),H=g*(l+
+k+1),A=c.clone();c.x-=q;c.y-=H;return function(){b.begin();b.moveTo(A.x-H,A.y+q);b.quadTo(c.x-H,c.y+q,c.x,c.y);b.quadTo(c.x+H,c.y-q,A.x+H,A.y-q);b.stroke()}});mxMarker.addMarker("async",function(b,d,f,c,e,g,l,m,k,q){d=e*k*1.118;f=g*k*1.118;e*=l+k;g*=l+k;var n=c.clone();n.x-=d;n.y-=f;c.x+=1*-e-d;c.y+=1*-g-f;return function(){b.begin();b.moveTo(n.x,n.y);m?b.lineTo(n.x-e-g/2,n.y-g+e/2):b.lineTo(n.x+g/2-e,n.y-g-e/2);b.lineTo(n.x-e,n.y-g);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",
+function(b){b=null!=b?b:2;return function(d,f,c,e,g,l,m,k,n,q){g*=m+n;l*=m+n;var H=e.clone();return function(){d.begin();d.moveTo(H.x,H.y);k?d.lineTo(H.x-g-l/b,H.y-l+g/b):d.lineTo(H.x+l/b-g,H.y-l-g/b);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Za=function(b,d,f){return Na(b,["width"],d,function(d,c,e,g,l){l=b.shape.getEdgeWidth()*b.view.scale+f;return new mxPoint(g.x+c*d/4+e*l/2,g.y+e*d/4-c*l/2)},function(d,c,e,g,l,m){d=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));b.style.width=
+Math.round(2*d)/b.view.scale-f})},Na=function(b,d,f,c,e){return ha(b,d,function(d){var e=b.absolutePoints,g=e.length-1;d=b.view.translate;var l=b.view.scale,m=f?e[0]:e[g],e=f?e[1]:e[g-1],g=e.x-m.x,k=e.y-m.y,n=Math.sqrt(g*g+k*k),m=c.call(this,n,g/n,k/n,m,e);return new mxPoint(m.x/l-d.x,m.y/l-d.y)},function(d,c,g){var l=b.absolutePoints,m=l.length-1;d=b.view.translate;var k=b.view.scale,n=f?l[0]:l[m],l=f?l[1]:l[m-1],m=l.x-n.x,q=l.y-n.y,H=Math.sqrt(m*m+q*q);c.x=(c.x+d.x)*k;c.y=(c.y+d.y)*k;e.call(this,
+H,m/H,q/H,n,l,c,g)})},Ia=function(b){return function(d){return[ha(d,["arrowWidth","arrowSize"],function(d){var f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",fa.prototype.arrowWidth))),c=Math.max(0,Math.min(b,mxUtils.getValue(this.state.style,"arrowSize",fa.prototype.arrowSize)));return new mxPoint(d.x+(1-c)*d.width,d.y+(1-f)*d.height/2)},function(d,f){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(d.y+d.height/2-f.y)/d.height*2));this.state.style.arrowSize=Math.max(0,
+Math.min(b,(d.x+d.width-f.x)/d.width))})]}},Wa=function(b){return function(d){return[ha(d,["size"],function(d){var f=Math.max(0,Math.min(.5*d.height,parseFloat(mxUtils.getValue(this.state.style,"size",b))));return new mxPoint(d.x,d.y+f)},function(b,d){this.state.style.size=Math.max(0,d.y-b.y)},!0)]}},Ua=function(b,d,f){return function(c){var e=[ha(c,["size"],function(f){var c=Math.max(0,Math.min(f.width,Math.min(f.height,parseFloat(mxUtils.getValue(this.state.style,"size",d)))))*b;return new mxPoint(f.x+
+c,f.y+c)},function(d,f){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(d.width,f.x-d.x),Math.min(d.height,f.y-d.y)))/b)},!1)];f&&mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(Ga(c));return e}},Pa=function(b,d,f,c,e){f=null!=f?f:.5;return function(g){var l=[ha(g,["size"],function(d){var f=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,c=parseFloat(mxUtils.getValue(this.state.style,"size",f?e:b));return new mxPoint(d.x+Math.max(0,Math.min(.5*d.width,
+c*(f?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(f,(d.x-b.x)/b.width));this.state.style.size=b},!1,c)];d&&mxUtils.getValue(g.style,mxConstants.STYLE_ROUNDED,!1)&&l.push(Ga(g));return l}},Xa=function(b,d,f){b=null!=b?b:.5;return function(c){var e=[ha(c,["size"],function(c){var e=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,g=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,
+"size",e?f:d)));return new mxPoint(c.x+Math.min(.75*c.width*b,g*(e?.75:.75*c.width)),c.y+c.height/4)},function(d,c){var e=null!=f&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?c.x-d.x:Math.max(0,Math.min(b,(c.x-d.x)/d.width*.75));this.state.style.size=e},!1,!0)];mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(Ga(c));return e}},Ma=function(){return function(b){var d=[];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d}},Ga=function(b,d){return ha(b,
+[mxConstants.STYLE_ARCSIZE],function(f){var c=null!=d?d:f.height/8;if("1"==mxUtils.getValue(b.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(b.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(f.x+f.width-Math.min(f.width/2,e),f.y+c)}e=Math.max(0,parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(f.x+f.width-Math.min(Math.max(f.width/2,f.height/2),Math.min(f.width,f.height)*
+e),f.y+c)},function(d,f,c){"1"==mxUtils.getValue(b.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(d.width,2*(d.x+d.width-f.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(d.width-f.x+d.x)/Math.min(d.width,d.height))))})},ha=function(b,d,f,c,e,g,l){var m=new mxHandle(b,null,mxVertexHandler.prototype.secondaryHandleImage);m.execute=function(b){for(var f=0;f<d.length;f++)this.copyStyle(d[f]);
+l&&l(b)};m.getPosition=f;m.setPosition=c;m.ignoreGrid=null!=e?e:!0;if(g){var k=m.positionChanged;m.positionChanged=function(){k.apply(this,arguments);b.view.invalidate(this.state.cell);b.view.validate()}}return m},Qa={link:function(b){return[Za(b,!0,10),Za(b,!1,10)]},flexArrow:function(b){var d=b.view.graph.gridSize/b.view.scale,f=[];mxUtils.getValue(b.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(f.push(Na(b,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
+!0,function(d,f,c,e,g){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;g=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+f*(g+b.shape.strokewidth*b.view.scale)+c*d/2,e.y+c*(g+b.shape.strokewidth*b.view.scale)-f*d/2)},function(f,c,e,g,l,m,k){f=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-c,m.x,m.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(c-b.shape.strokewidth)/
+3)/100/b.view.scale;b.style.width=Math.round(2*f)/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE])})),f.push(Na(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(d,
+f,c,e,g){d=(b.shape.getStartArrowWidth()-b.shape.strokewidth)*b.view.scale;g=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+f*(g+b.shape.strokewidth*b.view.scale)+c*d/2,e.y+c*(g+b.shape.strokewidth*b.view.scale)-f*d/2)},function(f,c,e,g,l,m,k){f=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-c,m.x,m.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/
+100/b.view.scale;b.style.startWidth=Math.max(0,Math.round(2*f)-b.shape.getEdgeWidth())/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE],b.style.endWidth=b.style.startWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(b.style.startWidth)-
+parseFloat(b.style.endWidth))<d&&(b.style.startWidth=b.style.endWidth))})));mxUtils.getValue(b.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(f.push(Na(b,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,f,c,e,g){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;g=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+f*(g+b.shape.strokewidth*b.view.scale)-c*d/2,e.y+c*(g+b.shape.strokewidth*
+b.view.scale)+f*d/2)},function(f,c,e,g,l,m,k){f=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-c,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*f)/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<
+d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE])})),f.push(Na(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,f,c,e,g){d=(b.shape.getEndArrowWidth()-b.shape.strokewidth)*b.view.scale;g=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+f*(g+b.shape.strokewidth*b.view.scale)-c*d/2,e.y+c*(g+b.shape.strokewidth*b.view.scale)+f*d/2)},function(f,c,e,g,l,m,k){f=
+Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-c,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.endWidth=Math.max(0,Math.round(2*f)-b.shape.getEdgeWidth())/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE],b.style.startWidth=b.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-
+parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(b.style.endWidth)-parseFloat(b.style.startWidth))<d&&(b.style.endWidth=b.style.startWidth))})));return f},swimlane:function(b){var d=[];if(mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED)){var f=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));d.push(Ga(b,f/2))}d.push(ha(b,[mxConstants.STYLE_STARTSIZE],
+function(d){var f=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(d.getCenterX(),d.y+Math.max(0,Math.min(d.height,f))):new mxPoint(d.x+Math.max(0,Math.min(d.width,f)),d.getCenterY())},function(d,f){b.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(d.height,f.y-d.y))):Math.round(Math.max(0,
+Math.min(d.width,f.x-d.x)))},!1,null,function(d){if(mxEvent.isControlDown(d.getEvent())&&(d=b.view.graph,d.isTableRow(b.cell)||d.isTableCell(b.cell))){for(var f=d.getSwimlaneDirection(b.style),c=d.model.getParent(b.cell),c=d.model.getChildCells(c,!0),e=[],g=0;g<c.length;g++)c[g]!=b.cell&&d.isSwimlane(c[g])&&d.getSwimlaneDirection(d.getCurrentCellStyle(c[g]))==f&&e.push(c[g]);d.setCellStyles(mxConstants.STYLE_STARTSIZE,b.style[mxConstants.STYLE_STARTSIZE],e)}}));return d},label:Ma(),ext:Ma(),rectangle:Ma(),
+triangle:Ma(),rhombus:Ma(),umlLifeline:function(b){return[ha(b,["size"],function(b){var d=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",E.prototype.size))));return new mxPoint(b.getCenterX(),b.y+d)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},umlFrame:function(b){return[ha(b,["width","height"],function(b){var d=Math.max(W.prototype.corner,Math.min(b.width,mxUtils.getValue(this.state.style,"width",W.prototype.width))),
+f=Math.max(1.5*W.prototype.corner,Math.min(b.height,mxUtils.getValue(this.state.style,"height",W.prototype.height)));return new mxPoint(b.x+d,b.y+f)},function(b,d){this.state.style.width=Math.round(Math.max(W.prototype.corner,Math.min(b.width,d.x-b.x)));this.state.style.height=Math.round(Math.max(1.5*W.prototype.corner,Math.min(b.height,d.y-b.y)))},!1)]},process:function(b){var d=[ha(b,["size"],function(b){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),f=parseFloat(mxUtils.getValue(this.state.style,
+"size",F.prototype.size));return d?new mxPoint(b.x+f,b.y+b.height/4):new mxPoint(b.x+b.width*f,b.y+b.height/4)},function(b,d){var f="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(.5*b.width,d.x-b.x)):Math.max(0,Math.min(.5,(d.x-b.x)/b.width));this.state.style.size=f},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},cross:function(b){return[ha(b,["size"],function(b){var d=Math.min(b.width,b.height),d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
+"size",Ha.prototype.size)))*d/2;return new mxPoint(b.getCenterX()-d,b.getCenterY()-d)},function(b,d){var f=Math.min(b.width,b.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,b.getCenterY()-d.y)/f*2,Math.max(0,b.getCenterX()-d.x)/f*2)))})]},note:function(b){return[ha(b,["size"],function(b){var d=Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size)))));return new mxPoint(b.x+b.width-d,b.y+d)},function(b,d){this.state.style.size=
+Math.round(Math.max(0,Math.min(Math.min(b.width,b.x+b.width-d.x),Math.min(b.height,d.y-b.y))))})]},note2:function(b){return[ha(b,["size"],function(b){var f=Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",d.prototype.size)))));return new mxPoint(b.x+b.width-f,b.y+f)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,b.x+b.width-d.x),Math.min(b.height,d.y-b.y))))})]},manualInput:function(b){var d=[ha(b,["size"],function(b){var d=
+Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",V.prototype.size)));return new mxPoint(b.x+b.width/4,b.y+3*d/4)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,4*(d.y-b.y)/3)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},dataStorage:function(b){return[ha(b,["size"],function(b){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),f=parseFloat(mxUtils.getValue(this.state.style,"size",d?ba.prototype.fixedSize:
+ba.prototype.size));return new mxPoint(b.x+b.width-f*(d?1:b.width),b.getCenterY())},function(b,d){var f="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(b.width,b.x+b.width-d.x)):Math.max(0,Math.min(1,(b.x+b.width-d.x)/b.width));this.state.style.size=f},!1)]},callout:function(b){var d=[ha(b,["size","position"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",C.prototype.size))),f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
+"position",C.prototype.position)));mxUtils.getValue(this.state.style,"base",C.prototype.base);return new mxPoint(b.x+f*b.width,b.y+b.height-d)},function(b,d){mxUtils.getValue(this.state.style,"base",C.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(b.height,b.y+b.height-d.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(d.x-b.x)/b.width)))/100},!1),ha(b,["position2"],function(b){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",C.prototype.position2)));
+return new mxPoint(b.x+d*b.width,b.y+b.height)},function(b,d){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(d.x-b.x)/b.width)))/100},!1),ha(b,["base"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",C.prototype.size))),f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",C.prototype.position))),c=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"base",C.prototype.base)));return new mxPoint(b.x+Math.min(b.width,
+f*b.width+c),b.y+b.height-d)},function(b,d){var f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",C.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(b.width,d.x-b.x-f*b.width)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},internalStorage:function(b){var d=[ha(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",U.prototype.dx))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,
+"dy",U.prototype.dy)));return new mxPoint(b.x+d,b.y+f)},function(b,d){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},module:function(b){return[ha(b,["jettyWidth","jettyHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"jettyWidth",ma.prototype.jettyWidth))),f=Math.max(0,Math.min(b.height,
+mxUtils.getValue(this.state.style,"jettyHeight",ma.prototype.jettyHeight)));return new mxPoint(b.x+d/2,b.y+2*f)},function(b,d){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(b.height,d.y-b.y))/2)})]},corner:function(b){return[ha(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",la.prototype.dx))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,
+"dy",la.prototype.dy)));return new mxPoint(b.x+d,b.y+f)},function(b,d){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},tee:function(b){return[ha(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",S.prototype.dx))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",S.prototype.dy)));return new mxPoint(b.x+(b.width+d)/2,b.y+f)},function(b,
+d){this.state.style.dx=Math.round(Math.max(0,2*Math.min(b.width/2,d.x-b.x-b.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},singleArrow:Ia(1),doubleArrow:Ia(.5),folder:function(b){return[ha(b,["tabWidth","tabHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"tabWidth",n.prototype.tabWidth))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"tabHeight",n.prototype.tabHeight)));mxUtils.getValue(this.state.style,
+"tabPosition",n.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(d=b.width-d);return new mxPoint(b.x+d,b.y+f)},function(b,d){var f=Math.max(0,Math.min(b.width,d.x-b.x));mxUtils.getValue(this.state.style,"tabPosition",n.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(f=b.width-f);this.state.style.tabWidth=Math.round(f);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},document:function(b){return[ha(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.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[ha(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",y.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[ha(b,
+["isoAngle"],function(b){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",f.isoAngle))))*Math.PI/200;return new mxPoint(b.x,b.y+Math.min(b.width*Math.tan(d),.5*b.height))},function(b,d){this.state.style.isoAngle=Math.max(0,50*(d.y-b.y)/b.height)},!0)]},cylinder2:Wa(l.prototype.size),cylinder3:Wa(m.prototype.size),offPageConnector:function(b){return[ha(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ea.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:Pa(L.prototype.size,!0,null,!0,L.prototype.fixedSize),hexagon:Pa(O.prototype.size,!0,.5,!0,O.prototype.fixedSize),curlyBracket:Pa(B.prototype.size,!1),display:Pa(Fa.prototype.size,!1),cube:Ua(1,
+c.prototype.size,!1),card:Ua(.5,u.prototype.size,!0),loopLimit:Ua(.5,P.prototype.size,!0),trapezoid:Xa(.5,I.prototype.size,I.prototype.fixedSize),parallelogram:Xa(1,D.prototype.size,D.prototype.fixedSize)};Graph.createHandle=ha;Graph.handleFactory=Qa;var db=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var b=db.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=Qa[d];null==d&&null!=this.state.shape&&this.state.shape.isRoundable()&&(d=Qa[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=Qa[b];return null!=b?b(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Ra=new mxPoint(1,0),Sa=new mxPoint(1,0),Ia=mxUtils.toRadians(-30),Ra=mxUtils.getRotatedPoint(Ra,Math.cos(Ia),Math.sin(Ia)),Ia=mxUtils.toRadians(-150),Sa=mxUtils.getRotatedPoint(Sa,Math.cos(Ia),Math.sin(Ia));mxEdgeStyle.IsometricConnector=function(b,d,f,c,e){var g=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=g.transformControlPoint(b,c));null==
+m&&null!=d&&(m=new mxPoint(d.getCenterX(),d.getCenterY()));null==l&&null!=f&&(l=new mxPoint(f.getCenterX(),f.getCenterY()));var k=Ra.x,n=Ra.y,q=Sa.x,H=Sa.y,A="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=l&&null!=m){b=function(b,d,f){b-=u.x;var c=d-u.y;d=(H*b-q*c)/(k*H-n*q);b=(n*b-k*c)/(n*q-k*H);A?(f&&(u=new mxPoint(u.x+k*d,u.y+n*d),e.push(u)),u=new mxPoint(u.x+q*b,u.y+H*b)):(f&&(u=new mxPoint(u.x+q*b,u.y+H*b),e.push(u)),u=new mxPoint(u.x+k*d,u.y+n*d));e.push(u)};var u=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 eb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(b,d){if(d==mxEdgeStyle.IsometricConnector){var f=new mxElbowEdgeHandler(b);f.snapToTerminals=!1;return f}return eb.apply(this,arguments)};k.prototype.constraints=[];g.prototype.getConstraints=function(b,d,f){b=[];var c=Math.tan(mxUtils.toRadians(30)),e=(.5-
+c)/2,c=Math.min(d,f/(.5+c));d=(d-c)/2;f=(f-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,f+c*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,f+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,f+.75*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,f+(1-e)*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f+.75*c));return b};f.prototype.getConstraints=
+function(b,d,f){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*f);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,f-c));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));return b};C.prototype.getConstraints=function(b,d,f){b=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var c=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(f-c)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
+d,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(f-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))];Ea.prototype.constraints=mxRectangleShape.prototype.constraints;
+mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;da.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;t.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,Math.min(f,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*(f+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};u.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,Math.min(f,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*(f+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};c.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,Math.min(f,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*(f+c)));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,.5*(d+c),f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,f-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(f-c)));return b};m.prototype.getConstraints=function(b,d,f){b=[];d=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
+.5),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,d));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-d));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-d));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d+.5*(.5*f-d)));b.push(new mxConnectionConstraint(new mxPoint(1,
+0),!1,null,0,d+.5*(.5*f-d)));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,f-d-.5*(.5*f-d)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f-d-.5*(.5*f-d)));b.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*d));b.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*d));b.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-d));b.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-d));return b};n.prototype.getConstraints=
+function(b,d,f){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth)))),e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(b.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,c,e)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),e))):(b.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*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-c,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,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,d,.25*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.75*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,.75*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f));b.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return b};U.prototype.constraints=mxRectangleShape.prototype.constraints;ba.prototype.constraints=mxRectangleShape.prototype.constraints;wa.prototype.constraints=mxEllipse.prototype.constraints;xa.prototype.constraints=mxEllipse.prototype.constraints;
+pa.prototype.constraints=mxEllipse.prototype.constraints;Ka.prototype.constraints=mxEllipse.prototype.constraints;V.prototype.constraints=mxRectangleShape.prototype.constraints;Ca.prototype.constraints=mxRectangleShape.prototype.constraints;Fa.prototype.getConstraints=function(b,d,f){b=[];var c=Math.min(d,f/2),e=Math.min(d-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+d-c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+d-c),f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));return b};ma.prototype.getConstraints=function(b,d,f){d=parseFloat(mxUtils.getValue(b,
+"jettyWidth",ma.prototype.jettyWidth))/2;b=parseFloat(mxUtils.getValue(b,"jettyHeight",ma.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(f-.5*b,1.5*b)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(f-.5*b,3.5*b))];f>5*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,d));f>8*b&&c.push(new mxConnectionConstraint(new mxPoint(0,
+.5),!1,null,d));f>15*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,d));return c};P.prototype.constraints=mxRectangleShape.prototype.constraints;ea.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)];Y.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)];oa.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)];y.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)];L.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)];T.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,
+.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];D.prototype.constraints=mxRectangleShape.prototype.constraints;I.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxArrow.prototype.constraints=null;S.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,
"dy",this.dy))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,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,.75*d+.25*c,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,.5*(d+c),.5*(f+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),f));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),.5*(f+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,.25*d-.25*c,e));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*e));return b};na.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*e));return b};la.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
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*(f+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,f));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
-1),!1));return b};va.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)];fa.prototype.getConstraints=
+1),!1));return b};ta.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)];fa.prototype.getConstraints=
function(b,d,f){b=[];var c=f*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=(f-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,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-e),f-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f-c));return b};ia.prototype.getConstraints=function(b,d,f){b=[];var c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",fa.prototype.arrowWidth)))),e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",fa.prototype.arrowSize)))),c=(f-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,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));return b};Ha.prototype.getConstraints=
function(b,d,f){b=[];var c=Math.min(f,d),e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),c=(f-e)/2,g=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,f-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,f));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));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,c));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+e),g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,c));return b};I.prototype.constraints=null;oa.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)];ua.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)];ga.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ka.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,c));return b};E.prototype.constraints=null;za.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)];va.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)];ga.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ja.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(b){this.editorUi=b;this.actions={};this.init()}
Actions.prototype.init=function(){function b(b){g.escape();b=g.deleteCells(g.getDeletableCells(g.getSelectionCells()),b);null!=b&&g.setSelectionCells(b)}function c(){if(!g.isSelectionEmpty()){g.getModel().beginUpdate();try{for(var b=g.getSelectionCells(),d=0;d<b.length;d++)g.cellLabelChanged(b[d],"")}finally{g.getModel().endUpdate()}}}var e=this.editorUi,k=e.editor,g=k.graph,p=function(){return Action.prototype.isEnabled.apply(this,arguments)&&g.isEnabled()};this.addAction("new...",function(){g.openLink(e.getUrl())});
this.addAction("open...",function(){window.openNew=!0;window.openKey="open";e.openFile()});this.addAction("smartFit",function(){g.popupMenuHandler.hideMenu();var b=g.view.scale,d=g.view.translate.x,c=g.view.translate.y;e.actions.get("resetView").funct();1E-5>Math.abs(b-g.view.scale)&&d==g.view.translate.x&&c==g.view.translate.y&&e.actions.get(g.pageVisible?"fitPage":"fitWindow").funct()});this.addAction("keyPressEnter",function(){g.isEnabled()&&(g.isSelectionEmpty()?e.actions.get("smartFit").funct():
@@ -2973,9 +2971,9 @@ d)});e.showDialog(d.container,320,200,!0,!0);d.init()}},null,null,"Alt+Shift+T")
null,null,"Alt+Shift+L");this.put("insertImage",new Action(mxResources.get("image")+"...",function(){g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())&&(g.clearSelection(),e.actions.get("image").funct())})).isEnabled=p;this.put("insertLink",new Action(mxResources.get("link")+"...",function(){g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())&&e.showLinkDialog("",mxResources.get("insert"),function(b,d,c){b=mxUtils.trim(b);if(0<b.length){var f=null,e=g.getLinkTitle(b);null!=d&&0<d.length&&(f=d[0].iconUrl,
e=d[0].name||d[0].type,e=e.charAt(0).toUpperCase()+e.substring(1),30<e.length&&(e=e.substring(0,30)+"..."));d=new mxCell(e,new mxGeometry(0,0,100,40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+(null!=f?"shape=label;imageWidth=16;imageHeight=16;spacingLeft=26;align=left;image="+f:"spacing=10;"));d.vertex=!0;f=g.getCenterInsertPoint(g.getBoundingBoxFromGeometry([d],!0));d.geometry.x=f.x;d.geometry.y=f.y;g.setAttributeForCell(d,"linkTarget",c);g.setLinkForCell(d,b);g.cellSizeUpdated(d,
!0);g.getModel().beginUpdate();try{d=g.addCell(d),g.fireEvent(new mxEventObject("cellsInserted","cells",[d]))}finally{g.getModel().endUpdate()}g.setSelectionCell(d);g.scrollCellToVisible(g.getSelectionCell())}},!0)})).isEnabled=p;this.addAction("link...",mxUtils.bind(this,function(){if(g.isEnabled())if(g.cellEditor.isContentEditing()){var b=g.getSelectedElement(),d=g.getParentByName(b,"A",g.cellEditor.textarea),c="";if(null==d&&null!=b&&null!=b.getElementsByTagName)for(var k=b.getElementsByTagName("a"),
-n=0;n<k.length&&null==d;n++)k[n].textContent==b.textContent&&(d=k[n]);null!=d&&"A"==d.nodeName&&(c=d.getAttribute("href")||"",g.selectNode(d));var u=g.cellEditor.saveSelection();e.showLinkDialog(c,mxResources.get("apply"),mxUtils.bind(this,function(b){g.cellEditor.restoreSelection(u);null!=b&&g.insertLink(b)}))}else g.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=p;this.addAction("autosize",function(){var b=g.getSelectionCells();if(null!=b){g.getModel().beginUpdate();
+n=0;n<k.length&&null==d;n++)k[n].textContent==b.textContent&&(d=k[n]);null!=d&&"A"==d.nodeName&&(c=d.getAttribute("href")||"",g.selectNode(d));var p=g.cellEditor.saveSelection();e.showLinkDialog(c,mxResources.get("apply"),mxUtils.bind(this,function(b){g.cellEditor.restoreSelection(p);null!=b&&g.insertLink(b)}))}else g.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=p;this.addAction("autosize",function(){var b=g.getSelectionCells();if(null!=b){g.getModel().beginUpdate();
try{for(var d=0;d<b.length;d++){var c=b[d];0<g.getModel().getChildCount(c)?g.updateGroupBounds([c],0,!0):g.updateCellSize(c)}}finally{g.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+Y");this.addAction("formattedText",function(){g.stopEditing();var b=g.getCommonStyle(g.getSelectionCells()),b="1"==mxUtils.getValue(b,"html","0")?null:"1";g.getModel().beginUpdate();try{for(var d=g.getEditableCells(g.getSelectionCells()),c=0;c<d.length;c++)if(state=g.getView().getState(d[c]),null!=state){var k=
-mxUtils.getValue(state.style,"html","0");if("1"==k&&null==b){var n=g.convertValueToString(state.cell);"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(n=n.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));var u=document.createElement("div");u.innerHTML=g.sanitizeHtml(n);n=mxUtils.extractTextWithWhitespace(u.childNodes);g.cellLabelChanged(state.cell,n);g.setCellStyles("html",b,[d[c]])}else"0"==k&&"1"==b&&(n=mxUtils.htmlEntities(g.convertValueToString(state.cell),!1),"0"!=mxUtils.getValue(state.style,"nl2Br",
+mxUtils.getValue(state.style,"html","0");if("1"==k&&null==b){var n=g.convertValueToString(state.cell);"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(n=n.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));var p=document.createElement("div");p.innerHTML=g.sanitizeHtml(n);n=mxUtils.extractTextWithWhitespace(p.childNodes);g.cellLabelChanged(state.cell,n);g.setCellStyles("html",b,[d[c]])}else"0"==k&&"1"==b&&(n=mxUtils.htmlEntities(g.convertValueToString(state.cell),!1),"0"!=mxUtils.getValue(state.style,"nl2Br",
"1")&&(n=n.replace(/\n/g,"<br/>")),g.cellLabelChanged(state.cell,g.sanitizeHtml(n)),g.setCellStyles("html",b,[d[c]]))}e.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!=b?b:"0"],"cells",d))}finally{g.getModel().endUpdate()}});this.addAction("wordWrap",function(){var b=g.getView().getState(g.getSelectionCell()),d="wrap";g.stopEditing();null!=b&&"wrap"==b.style[mxConstants.STYLE_WHITE_SPACE]&&(d=null);g.setCellStyles(mxConstants.STYLE_WHITE_SPACE,d)});this.addAction("rotation",
function(){var b="0",d=g.getView().getState(g.getSelectionCell());null!=d&&(b=d.style[mxConstants.STYLE_ROTATION]||b);b=new FilenameDialog(e,b,mxResources.get("apply"),function(b){null!=b&&0<b.length&&g.setCellStyles(mxConstants.STYLE_ROTATION,b)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");e.showDialog(b.container,375,80,!0,!0);b.init()});this.addAction("resetView",function(){g.zoomTo(1);e.resetScrollbars()},null,null,"Enter/Home");this.addAction("zoomIn",function(b){g.isFastZoomEnabled()?
g.lazyZoom(!0,!0,e.buttonZoomDelay):g.zoomIn()},null,null,Editor.ctrlKey+" + (Numpad) / Alt+Mousewheel");this.addAction("zoomOut",function(b){g.isFastZoomEnabled()?g.lazyZoom(!1,!0,e.buttonZoomDelay):g.zoomOut()},null,null,Editor.ctrlKey+" - (Numpad) / Alt+Mousewheel");this.addAction("fitWindow",function(){var b=g.isSelectionEmpty()?g.getGraphBounds():g.getBoundingBox(g.getSelectionCells()),d=g.view.translate,c=g.view.scale;b.x=b.x/c-d.x;b.y=b.y/c-d.y;b.width/=c;b.height/=c;null!=g.backgroundImage&&
@@ -3000,8 +2998,8 @@ this.addAction("rounded",function(){g.getModel().beginUpdate();try{g.setCellStyl
c="1"==mxUtils.getValue(d,mxConstants.STYLE_ROUNDED,"0")?"0":"1";g.setCellStyles(mxConstants.STYLE_ROUNDED,c);g.setCellStyles(mxConstants.STYLE_CURVED,null);e.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[c,"0"],"cells",g.getSelectionCells()))}finally{g.getModel().endUpdate()}}});this.addAction("curved",function(){g.getModel().beginUpdate();try{g.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),g.setCellStyles(mxConstants.STYLE_CURVED,
"1"),e.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",g.getSelectionCells()))}finally{g.getModel().endUpdate()}});this.addAction("collapsible",function(){var b=g.view.getState(g.getSelectionCell()),d="1";null!=b&&null!=g.getFoldingImage(b)&&(d="0");g.setCellStyles("collapsible",d);e.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[d],"cells",g.getSelectionCells()))});this.addAction("editStyle...",
mxUtils.bind(this,function(){var b=g.getEditableCells(g.getSelectionCells());if(null!=b&&0<b.length){var d=g.getModel(),d=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",d.getStyle(b[0])||"",function(d){null!=d&&g.setCellStyle(mxUtils.trim(d),b)},null,null,400,220);this.editorUi.showDialog(d.container,420,300,!0,!0);d.init()}}),null,null,Editor.ctrlKey+"+E");this.addAction("setAsDefaultStyle",function(){g.isEnabled()&&!g.isSelectionEmpty()&&e.setDefaultStyle(g.getSelectionCell())},
-null,null,Editor.ctrlKey+"+Shift+D");this.addAction("clearDefaultStyle",function(){g.isEnabled()&&e.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var b=g.getSelectionCell();if(null!=b&&g.getModel().isEdge(b)){var d=k.graph.selectionCellsHandler.getHandler(b);if(d instanceof mxEdgeHandler){for(var c=g.view.translate,e=g.view.scale,n=c.x,c=c.y,b=g.getModel().getParent(b),u=g.getCellGeometry(b);g.getModel().isVertex(b)&&null!=u;)n+=u.x,c+=u.y,b=g.getModel().getParent(b),
-u=g.getCellGeometry(b);n=Math.round(g.snap(g.popupMenuHandler.triggerX/e-n));e=Math.round(g.snap(g.popupMenuHandler.triggerY/e-c));d.addPointAt(d.state,n,e)}}});this.addAction("removeWaypoint",function(){var b=e.actions.get("removeWaypoint");null!=b.handler&&b.handler.removePoint(b.handler.state,b.index)});this.addAction("clearWaypoints",function(b,d){b=null!=d?d:b;var c=g.getSelectionCells();if(null!=c){c=g.getEditableCells(g.addAllEdges(c));g.getModel().beginUpdate();try{for(var f=0;f<c.length;f++){var e=
+null,null,Editor.ctrlKey+"+Shift+D");this.addAction("clearDefaultStyle",function(){g.isEnabled()&&e.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var b=g.getSelectionCell();if(null!=b&&g.getModel().isEdge(b)){var d=k.graph.selectionCellsHandler.getHandler(b);if(d instanceof mxEdgeHandler){for(var c=g.view.translate,e=g.view.scale,n=c.x,c=c.y,b=g.getModel().getParent(b),p=g.getCellGeometry(b);g.getModel().isVertex(b)&&null!=p;)n+=p.x,c+=p.y,b=g.getModel().getParent(b),
+p=g.getCellGeometry(b);n=Math.round(g.snap(g.popupMenuHandler.triggerX/e-n));e=Math.round(g.snap(g.popupMenuHandler.triggerY/e-c));d.addPointAt(d.state,n,e)}}});this.addAction("removeWaypoint",function(){var b=e.actions.get("removeWaypoint");null!=b.handler&&b.handler.removePoint(b.handler.state,b.index)});this.addAction("clearWaypoints",function(b,d){b=null!=d?d:b;var c=g.getSelectionCells();if(null!=c){c=g.getEditableCells(g.addAllEdges(c));g.getModel().beginUpdate();try{for(var f=0;f<c.length;f++){var e=
c[f];if(g.getModel().isEdge(e)){var l=g.getCellGeometry(e);mxEvent.isShiftDown(b)?(g.setCellStyles(mxConstants.STYLE_EXIT_X,null,[e]),g.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[e]),g.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[e]),g.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[e])):null!=l&&(l=l.clone(),l.points=null,l.x=0,l.y=0,l.offset=null,g.getModel().setGeometry(e,l))}}}finally{g.getModel().endUpdate()}}},null,null,"Alt+Shift+C");t=this.addAction("subscript",mxUtils.bind(this,function(){g.cellEditor.isContentEditing()&&
document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");t=this.addAction("superscript",mxUtils.bind(this,function(){g.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...",function(){if(g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())){var b=mxResources.get("image")+" ("+mxResources.get("url")+"):",d=g.getView().getState(g.getSelectionCell()),c="";null!=d&&(c=d.style[mxConstants.STYLE_IMAGE]||c);
var k=g.cellEditor.saveSelection();e.showImageDialog(b,c,function(b,d,c){if(g.cellEditor.isContentEditing())g.cellEditor.restoreSelection(k),g.insertImage(b,d,c);else{var f=g.getSelectionCells();if(null!=b&&(0<b.length||0<f.length)){var e=null;g.getModel().beginUpdate();try{if(0==f.length){var f=[g.insertVertex(g.getDefaultParent(),null,"",0,0,d,c,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")],l=g.getCenterInsertPoint(g.getBoundingBoxFromGeometry(f,!0));
@@ -3017,9 +3015,9 @@ DrawioFile.prototype.shadowModified=!1;DrawioFile.prototype.data=null;DrawioFile
DrawioFile.prototype.getSize=function(){return null!=this.data?this.data.length:0};DrawioFile.prototype.synchronizeFile=function(b,c){this.savingFile?null!=c&&c({message:mxResources.get("busy")}):null!=this.sync?this.sync.fileChanged(b,c):this.updateFile(b,c)};
DrawioFile.prototype.updateFile=function(b,c,e,k){null!=e&&e()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=c&&c():this.getLatestVersion(mxUtils.bind(this,function(g){try{null!=e&&e()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=c&&c():null!=g?this.mergeFile(g,b,c,k):this.reloadFile(b,c))}catch(p){null!=c&&c(p)}}),c))};
DrawioFile.prototype.mergeFile=function(b,c,e,k){var g=!0;try{this.stats.fileMerged++;var p=null!=this.shadowPages?this.shadowPages:this.ui.getPagesForNode(mxUtils.parseXml(this.shadowData).documentElement),t=this.ui.getPagesForNode(mxUtils.parseXml(b.data).documentElement);if(null!=t&&0<t.length){this.shadowPages=t;this.backupPatch=this.isModified()?this.ui.diffPages(p,this.ui.pages):null;var d=[this.ui.diffPages(null!=k?k:p,this.shadowPages)];if(!this.ignorePatches(d)){var f=this.ui.patchPages(p,
-d[0]);k={};var l=this.ui.getHashValueForPages(f,k),p={},m=this.ui.getHashValueForPages(this.shadowPages,p);"1"==urlParams.test&&EditorUi.debug("File.mergeFile",[this],"backup",this.backupPatch,"patches",d,"checksum",m==l,l);if(null!=l&&l!=m){var q=this.compressReportData(this.getAnonymizedXmlForPages(t)),n=this.compressReportData(this.getAnonymizedXmlForPages(f)),u=this.ui.hashValue(b.getCurrentEtag()),v=this.ui.hashValue(this.getCurrentEtag());this.checksumError(e,d,"Shadow Details: "+JSON.stringify(k)+
-"\nChecksum: "+l+"\nCurrent: "+m+"\nCurrent Details: "+JSON.stringify(p)+"\nFrom: "+u+"\nTo: "+v+"\n\nFile Data:\n"+q+"\nPatched Shadow:\n"+n,null,"mergeFile");return}this.patch(d,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw g=!1,Error(mxResources.get("notADiagramFile"));this.inConflictState=this.invalidChecksum=!1;this.setDescriptor(b.getDescriptor());this.descriptorChanged();this.backupPatch=null;null!=c&&c()}catch(D){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();
-null!=e&&e(D);try{if(g)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,D);else{var y=this.getCurrentUser(),x=null!=y?y.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),x,D)}}catch(H){}}};
+d[0]);k={};var l=this.ui.getHashValueForPages(f,k),p={},m=this.ui.getHashValueForPages(this.shadowPages,p);"1"==urlParams.test&&EditorUi.debug("File.mergeFile",[this],"backup",this.backupPatch,"patches",d,"checksum",m==l,l);if(null!=l&&l!=m){var q=this.compressReportData(this.getAnonymizedXmlForPages(t)),n=this.compressReportData(this.getAnonymizedXmlForPages(f)),v=this.ui.hashValue(b.getCurrentEtag()),u=this.ui.hashValue(this.getCurrentEtag());this.checksumError(e,d,"Shadow Details: "+JSON.stringify(k)+
+"\nChecksum: "+l+"\nCurrent: "+m+"\nCurrent Details: "+JSON.stringify(p)+"\nFrom: "+v+"\nTo: "+u+"\n\nFile Data:\n"+q+"\nPatched Shadow:\n"+n,null,"mergeFile");return}this.patch(d,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw g=!1,Error(mxResources.get("notADiagramFile"));this.inConflictState=this.invalidChecksum=!1;this.setDescriptor(b.getDescriptor());this.descriptorChanged();this.backupPatch=null;null!=c&&c()}catch(D){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();
+null!=e&&e(D);try{if(g)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,D);else{var y=this.getCurrentUser(),x=null!=y?y.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),x,D)}}catch(I){}}};
DrawioFile.prototype.getAnonymizedXmlForPages=function(b){var c=new mxCodec(mxUtils.createXmlDocument()),e=c.document.createElement("mxfile");if(null!=b)for(var k=0;k<b.length;k++){var g=c.encode(new mxGraphModel(b[k].root));"1"!=urlParams.dev&&(g=this.ui.anonymizeNode(g,!0));g.setAttribute("id",b[k].getId());b[k].viewState&&this.ui.editor.graph.saveViewState(b[k].viewState,g,!0);e.appendChild(g)}return mxUtils.getPrettyXml(e)};
DrawioFile.prototype.compressReportData=function(b,c,e){c=null!=c?c:1E4;null!=e&&null!=b&&b.length>e?b=b.substring(0,e)+"[...]":null!=b&&b.length>c&&(b=Graph.compress(b)+"\n");return b};
DrawioFile.prototype.checksumError=function(b,c,e,k,g){this.stats.checksumErrors++;this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=this.sync&&this.sync.updateOnlineState();null!=b&&b();try{if(this.errorReportsEnabled){if(null!=c)for(b=0;b<c.length;b++)this.ui.anonymizePatch(c[b]);var p=mxUtils.bind(this,function(b){var d=this.compressReportData(JSON.stringify(c,null,2));b=null!=b?this.compressReportData(this.getAnonymizedXmlForPages(this.ui.getPagesForNode(mxUtils.parseXml(b.data).documentElement)),
@@ -3144,7 +3142,7 @@ this.originalBegin.apply(this.canvas,arguments):this.path=[]};b.prototype.end=fu
arguments):(this.addOp(this.lineOp,b,d),this.lastX=b,this.lastY=d)};b.prototype.moveTo=function(b,d){this.passThrough?this.originalMoveTo.apply(this.canvas,arguments):(this.addOp(this.moveOp,b,d),this.lastX=b,this.lastY=d,this.firstX=b,this.firstY=d)};b.prototype.close=function(){this.passThrough?this.originalClose.apply(this.canvas,arguments):this.addOp(this.closeOp)};b.prototype.quadTo=function(b,d,c,f){this.passThrough?this.originalQuadTo.apply(this.canvas,arguments):(this.addOp(this.quadOp,b,
d,c,f),this.lastX=c,this.lastY=f)};b.prototype.curveTo=function(b,d,c,f,e,g){this.passThrough?this.originalCurveTo.apply(this.canvas,arguments):(this.addOp(this.curveOp,b,d,c,f,e,g),this.lastX=e,this.lastY=g)};b.prototype.arcTo=function(b,d,c,f,e,g,l){if(this.passThrough)this.originalArcTo.apply(this.canvas,arguments);else{var k=mxUtils.arcToCurves(this.lastX,this.lastY,b,d,c,f,e,g,l);if(null!=k)for(var m=0;m<k.length;m+=6)this.curveTo(k[m],k[m+1],k[m+2],k[m+3],k[m+4],k[m+5]);this.lastX=g;this.lastY=
l}};b.prototype.rect=function(b,d,c,f){this.passThrough?this.originalRect.apply(this.canvas,arguments):(this.path=[],this.nextShape=this.rc.generator.rectangle(b,d,c,f,this.getStyle(!0,!0)))};b.prototype.ellipse=function(b,d,c,f){this.passThrough?this.originalEllipse.apply(this.canvas,arguments):(this.path=[],this.nextShape=this.rc.generator.ellipse(b+c/2,d+f/2,c,f,this.getStyle(!0,!0)))};b.prototype.roundrect=function(b,d,c,f,e,g){this.passThrough?this.originalRoundrect.apply(this.canvas,arguments):
-(this.begin(),this.moveTo(b+e,d),this.lineTo(b+c-e,d),this.quadTo(b+c,d,b+c,d+g),this.lineTo(b+c,d+f-g),this.quadTo(b+c,d+f,b+c-e,d+f),this.lineTo(b+e,d+f),this.quadTo(b,d+f,b,d+f-g),this.lineTo(b,d+g),this.quadTo(b,d,b+e,d))};b.prototype.drawPath=function(b){if(0<this.path.length){this.passThrough=!0;try{this.rc.path(this.path.join(" "),b)}catch(aa){}this.passThrough=!1}else if(null!=this.nextShape){for(var d in b)this.nextShape.options[d]=b[d];null==b.stroke&&delete this.nextShape.options.stroke;
+(this.begin(),this.moveTo(b+e,d),this.lineTo(b+c-e,d),this.quadTo(b+c,d,b+c,d+g),this.lineTo(b+c,d+f-g),this.quadTo(b+c,d+f,b+c-e,d+f),this.lineTo(b+e,d+f),this.quadTo(b,d+f,b,d+f-g),this.lineTo(b,d+g),this.quadTo(b,d,b+e,d))};b.prototype.drawPath=function(b){if(0<this.path.length){this.passThrough=!0;try{this.rc.path(this.path.join(" "),b)}catch(T){}this.passThrough=!1}else if(null!=this.nextShape){for(var d in b)this.nextShape.options[d]=b[d];null==b.stroke&&delete this.nextShape.options.stroke;
b.filled||delete this.nextShape.options.fill;this.passThrough=!0;this.rc.draw(this.nextShape);this.passThrough=!1}};b.prototype.stroke=function(){this.passThrough?this.originalStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,!1))};b.prototype.fill=function(){this.passThrough?this.originalFill.apply(this.canvas,arguments):this.drawPath(this.getStyle(!1,!0))};b.prototype.fillAndStroke=function(){this.passThrough?this.originalFillAndStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,
!0))};b.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo;this.canvas.close=this.originalClose;this.canvas.fill=this.originalFill;this.canvas.stroke=this.originalStroke;this.canvas.fillAndStroke=this.originalFillAndStroke;this.canvas.begin=this.originalBegin;this.canvas.end=this.originalEnd;
this.canvas.rect=this.originalRect;this.canvas.ellipse=this.originalEllipse;this.canvas.roundrect=this.originalRoundrect};mxShape.prototype.createRoughCanvas=function(d){return new b(d,Editor.createRoughCanvas(d),this)};var d=mxShape.prototype.createHandJiggle;mxShape.prototype.createHandJiggle=function(b){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"sketch","0")?d.apply(this,arguments):"comic"==mxUtils.getValue(this.style,"sketchStyle","rough")?this.createComicCanvas(b):
@@ -3157,7 +3155,7 @@ d){var c=mxUtils.trim(mxUtils.getTextContent(b)),f=null;0<c.length?(c=Graph.deco
function(b){b=b.substring(b.indexOf(",")+1);b=window.atob&&!mxClient.IS_SF?atob(b):Base64.decode(b,!0);if("%PDF-1.7"==b.substring(0,8)){var d=b.indexOf("EmbeddedFile");if(-1<d){var c=b.indexOf("stream",d)+9;if(0<b.substring(d,c).indexOf("application#2Fvnd.jgraph.mxfile"))return d=b.indexOf("endstream",c-1),pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(c,d)),{to:"string"})}return null}for(var c=null,d="",f=0,e=0,g=[],l=null;e<b.length;){var k=b.charCodeAt(e),e=e+1;10!=k&&(d+=String.fromCharCode(k));
k=="/Subject (%3Cmxfile".charCodeAt(f)?f++:f=0;if(19==f){var m=b.indexOf("%3C%2Fmxfile%3E)",e)+15,e=e-9;if(m>e){c=b.substring(e,m);break}}10==k&&("endobj"==d?l=null:"obj"==d.substring(d.length-3,d.length)||"xref"==d||"trailer"==d?(l=[],g[d.split(" ")[0]]=l):null!=l&&l.push(d),d="")}null==c&&(c=Editor.extractGraphModelFromXref(g));null!=c&&(c=decodeURIComponent(c.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return c};Editor.extractGraphModelFromXref=function(b){var d=b.trailer,c=null;null!=d&&(d=/.* \/Info (\d+) (\d+) R/g.exec(d.join("\n")),
null!=d&&0<d.length&&(d=b[d[1]],null!=d&&(d=/.* \/Subject (\d+) (\d+) R/g.exec(d.join("\n")),null!=d&&0<d.length&&(b=b[d[1]],null!=b&&(b=b.join("\n"),c=b.substring(1,b.length-1))))));return c};Editor.extractGraphModelFromPng=function(b){var d=null;try{var c=b.substring(b.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(f,mxUtils.bind(this,function(b,c,e){b=f.substring(b+8,b+8+e);"zTXt"==c?(e=b.indexOf(String.fromCharCode(0)),"mxGraphModel"==b.substring(0,
-e)&&(b=pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(e+2)),{to:"string"}).replace(/\+/g," "),null!=b&&0<b.length&&(d=b))):"tEXt"==c&&(b=b.split(String.fromCharCode(0)),1<b.length&&("mxGraphModel"==b[0]||"mxfile"==b[0])&&(d=b[1]));if(null!=d||"IDAT"==c)return!0}))}catch(I){}null!=d&&"%"==d.charAt(0)&&(d=decodeURIComponent(d));null!=d&&"%"==d.charAt(0)&&(d=decodeURIComponent(d));return d};Editor.extractParserError=function(b,d){var c=null,f=null!=b?b.getElementsByTagName("parsererror"):null;
+e)&&(b=pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(e+2)),{to:"string"}).replace(/\+/g," "),null!=b&&0<b.length&&(d=b))):"tEXt"==c&&(b=b.split(String.fromCharCode(0)),1<b.length&&("mxGraphModel"==b[0]||"mxfile"==b[0])&&(d=b[1]));if(null!=d||"IDAT"==c)return!0}))}catch(E){}null!=d&&"%"==d.charAt(0)&&(d=decodeURIComponent(d));null!=d&&"%"==d.charAt(0)&&(d=decodeURIComponent(d));return d};Editor.extractParserError=function(b,d){var c=null,f=null!=b?b.getElementsByTagName("parsererror"):null;
null!=f&&0<f.length&&(c=d||mxResources.get("invalidChars"),f=f[0].getElementsByTagName("div"),0<f.length&&(c=mxUtils.getTextContent(f[0])));return null!=c?mxUtils.trim(c):c};Editor.addRetryToError=function(b,d){if(null!=b){var c=null!=b.error?b.error:b;null==c.retry&&(c.retry=d)}};Editor.configure=function(b,d){if(null!=b){Editor.config=b;Editor.configVersion=b.version;Menus.prototype.defaultFonts=b.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=b.presetColors||ColorDialog.prototype.presetColors;
ColorDialog.prototype.defaultColors=b.defaultColors||ColorDialog.prototype.defaultColors;ColorDialog.prototype.colorNames=b.colorNames||ColorDialog.prototype.colorNames;StyleFormatPanel.prototype.defaultColorSchemes=b.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=b.defaultEdgeLength||Graph.prototype.defaultEdgeLength;DrawioFile.prototype.autosaveDelay=b.autosaveDelay||DrawioFile.prototype.autosaveDelay;null!=b.templateFile&&(EditorUi.templateFile=
b.templateFile);null!=b.styles&&(Editor.styles=b.styles);null!=b.globalVars&&(Editor.globalVars=b.globalVars);null!=b.compressXml&&(Editor.compressXml=b.compressXml);null!=b.includeDiagram&&(Editor.defaultIncludeDiagram=b.includeDiagram);null!=b.simpleLabels&&(Editor.simpleLabels=b.simpleLabels);null!=b.oneDriveInlinePicker&&(Editor.oneDriveInlinePicker=b.oneDriveInlinePicker);null!=b.darkColor&&(Editor.darkColor=b.darkColor);null!=b.settingsName&&(Editor.configurationKey="."+b.settingsName+"-configuration",
@@ -3172,25 +3170,25 @@ e.setAttribute("rel","preload");e.setAttribute("href",f);e.setAttribute("as","fo
[],c=0;c<b;c++)d.push(Editor.GUID_ALPHABET.charAt(Math.floor(Math.random()*Editor.GUID_ALPHABET.length)));return d.join("")};Editor.prototype.timeout=25E3;Editor.prototype.useForeignObjectForMath=!0;Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;Editor.prototype.crossOriginImages=!mxClient.IS_IE;var b=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(d){d=null!=d&&"mxlibrary"!=d.nodeName?this.extractGraphModel(d):null;if(null!=d){var c=
d.getElementsByTagName("parsererror");if(null!=c&&0<c.length){var c=c[0],f=c.getElementsByTagName("div");null!=f&&0<f.length&&(c=f[0]);throw{message:mxUtils.getTextContent(c)};}if("mxGraphModel"==d.nodeName){c=d.getAttribute("style")||"default-style2";if("1"==urlParams.embed||null!=c&&""!=c)c!=this.graph.currentStyle&&(f=null!=this.graph.themes?this.graph.themes[c]:mxUtils.load(STYLE_PATH+"/"+c+".xml").getDocumentElement(),null!=f&&(e=new mxCodec(f.ownerDocument),e.decode(f,this.graph.getStylesheet())));
else if(f=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=f){var e=new mxCodec(f.ownerDocument);e.decode(f,this.graph.getStylesheet())}this.graph.currentStyle=c;this.graph.mathEnabled="1"==urlParams.math||"1"==d.getAttribute("math");c=d.getAttribute("backgroundImage");null!=c?this.graph.setBackgroundImage(this.graph.parseBackgroundImage(c)):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]}}),f=0;f<c.length;f++)this.graph.addExtFont(c[f].name,c[f].url)}catch(I){console.log("ExtFonts format error: "+I.message)}else null!=this.graph.extFonts&&0<
+!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]}}),f=0;f<c.length;f++)this.graph.addExtFont(c[f].name,c[f].url)}catch(E){console.log("ExtFonts format error: "+E.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 f=c.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&f.setAttribute("style",this.graph.currentStyle);var e=this.graph.getBackgroundImageObject(this.graph.backgroundImage,
d);null!=e&&f.setAttribute("backgroundImage",JSON.stringify(e));f.setAttribute("math",this.graph.mathEnabled?"1":"0");f.setAttribute("shadow",this.graph.shadowVisible?"1":"0");null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(e=this.graph.extFonts.map(function(b){return b.name+"^"+b.url}),f.setAttribute("extFonts",e.join("|")));return f};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(Z){}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=
+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(aa){}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",AuthorInit:function(){MathJax.Hub.Config(d);
MathJax.Hub.Register.StartupHook("Begin",function(){for(var b=0;b<Editor.mathJaxQueue.length;b++)Editor.doMathJaxRender(Editor.mathJaxQueue[b])})}};Editor.MathJaxRender=function(b){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(b):Editor.mathJaxQueue.push(b)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var f=Editor.prototype.init;Editor.prototype.init=function(){f.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,
-d){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)}))};c=document.getElementsByTagName("script");if(null!=c&&0<c.length){var e=document.createElement("script");e.setAttribute("type","text/javascript");e.setAttribute("src",b);c[0].parentNode.appendChild(e)}try{if(mxClient.IS_GC||mxClient.IS_SF){var g=document.createElement("style");g.type="text/css";g.innerHTML=Editor.mathJaxWebkitCss;document.getElementsByTagName("head")[0].appendChild(g)}}catch(aa){}}};
+d){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)}))};c=document.getElementsByTagName("script");if(null!=c&&0<c.length){var e=document.createElement("script");e.setAttribute("type","text/javascript");e.setAttribute("src",b);c[0].parentNode.appendChild(e)}try{if(mxClient.IS_GC||mxClient.IS_SF){var g=document.createElement("style");g.type="text/css";g.innerHTML=Editor.mathJaxWebkitCss;document.getElementsByTagName("head")[0].appendChild(g)}}catch(T){}}};
Editor.prototype.csvToArray=function(b){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(b))return null;var d=[];b.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,function(b,c,f,e){void 0!==c?d.push(c.replace(/\\'/g,"'")):void 0!==f?d.push(f.replace(/\\"/g,
'"')):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(f){if(null!=f){var e="http://"==f.substring(0,7)||"https://"==f.substring(0,8);e&&!navigator.onLine?f=Editor.svgBrokenImage.src:!e||f.substring(0,b.baseUrl.length)==b.baseUrl||c.crossOriginImages&&c.isCorsEnabledForUrl(f)?"chrome-extension://"==f.substring(0,19)||mxClient.IS_CHROMEAPP||(f=d.apply(this,arguments)):f=PROXY_URL+"?url="+encodeURIComponent(f)}return f};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,f=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(f);c&&d(Editor.createSvgDataUri(b.getText()))}),function(){window.clearTimeout(f);c&&d(Editor.svgBrokenImage.src)});else{var e=new Image;this.crossOriginImages&&(e.crossOrigin="anonymous");e.onload=function(){window.clearTimeout(f);
-if(c)try{var b=document.createElement("canvas"),g=b.getContext("2d");b.height=e.height;b.width=e.width;g.drawImage(e,0,0);d(b.toDataURL())}catch(la){d(Editor.svgBrokenImage.src)}};e.onerror=function(){window.clearTimeout(f);c&&d(Editor.svgBrokenImage.src)};e.src=b}}catch(X){d(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(b,d,c,f){null==f&&(f=this.createImageUrlConverter());var e=0,g=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=f.convert(c.getAttribute(l));if(null!=k&&"data:"!=k.substring(0,5)){var m=g[k];null==m?(e++,this.convertImageToDataUri(k,function(f){null!=f&&(g[k]=f,c.setAttribute(l,f));e--;0==e&&d(b)})):c.setAttribute(l,m)}else null!=k&&c.setAttribute(l,k)}}catch(Y){}})(k[m])});c("image","xlink:href");c("img","src");0==e&&d(b)};Editor.base64Encode=function(b){for(var d="",c=0,f=b.length,e,g,l;c<f;){e=b.charCodeAt(c++)&255;if(c==f){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
+if(c)try{var b=document.createElement("canvas"),g=b.getContext("2d");b.height=e.height;b.width=e.width;g.drawImage(e,0,0);d(b.toDataURL())}catch(na){d(Editor.svgBrokenImage.src)}};e.onerror=function(){window.clearTimeout(f);c&&d(Editor.svgBrokenImage.src)};e.src=b}}catch(W){d(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(b,d,c,f){null==f&&(f=this.createImageUrlConverter());var e=0,g=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=f.convert(c.getAttribute(l));if(null!=k&&"data:"!=k.substring(0,5)){var m=g[k];null==m?(e++,this.convertImageToDataUri(k,function(f){null!=f&&(g[k]=f,c.setAttribute(l,f));e--;0==e&&d(b)})):c.setAttribute(l,m)}else null!=k&&c.setAttribute(l,k)}}catch(Z){}})(k[m])});c("image","xlink:href");c("img","src");0==e&&d(b)};Editor.base64Encode=function(b){for(var d="",c=0,f=b.length,e,g,l;c<f;){e=b.charCodeAt(c++)&255;if(c==f){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);d+="==";break}g=b.charCodeAt(c++);if(c==f){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(g&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2);d+="=";break}l=b.charCodeAt(c++);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(g&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2|(l&192)>>6);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(l&63)}return d};Editor.prototype.loadUrl=function(b,d,c,f,e,g,l,k){try{var m=!l&&(f||/(\.png)($|\?)/i.test(b)||/(\.jpe?g)($|\?)/i.test(b)||/(\.gif)($|\?)/i.test(b)||/(\.pdf)($|\?)/i.test(b));e=null!=e?e:!0;var n=mxUtils.bind(this,
function(){mxUtils.get(b,mxUtils.bind(this,function(b){if(200<=b.getStatus()&&299>=b.getStatus()){if(null!=d){var f=b.getText();if(m){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){b=mxUtilsBinaryToArray(b.request.responseBody).toArray();for(var f=Array(b.length),e=0;e<b.length;e++)f[e]=String.fromCharCode(b[e]);f=f.join("")}g=null!=g?g:"data:image/png;base64,";f=g+Editor.base64Encode(f)}d(f)}}else null!=c&&(0==b.getStatus()?c({message:mxResources.get("accessDenied")},
-b):c({message:mxResources.get("error")+" "+b.getStatus()},b))}),function(b){null!=c&&c({message:mxResources.get("error")+" "+b.getStatus()})},m,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:n})},k)});n()}catch(pa){null!=c&&c(pa)}};Editor.prototype.absoluteCssFonts=function(b){var d=null;if(null!=b){var c=b.split("url(");if(0<c.length){d=[c[0]];b=window.location.pathname;var f=null!=b?b.lastIndexOf("/"):-1;0<=f&&(b=b.substring(0,f+1));var f=document.getElementsByTagName("base"),
+b):c({message:mxResources.get("error")+" "+b.getStatus()},b))}),function(b){null!=c&&c({message:mxResources.get("error")+" "+b.getStatus()})},m,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:n})},k)});n()}catch(ma){null!=c&&c(ma)}};Editor.prototype.absoluteCssFonts=function(b){var d=null;if(null!=b){var c=b.split("url(");if(0<c.length){d=[c[0]];b=window.location.pathname;var f=null!=b?b.lastIndexOf("/"):-1;0<=f&&(b=b.substring(0,f+1));var f=document.getElementsByTagName("base"),
e=null;null!=f&&0<f.length&&(e=f[0].getAttribute("href"));for(var g=1;g<c.length;g++)if(f=c[g].indexOf(")"),0<f){var l=Editor.trimCssUrl(c[g].substring(0,f));this.graph.isRelativeUrl(l)&&(l=null!=e?e+l:window.location.protocol+"//"+window.location.hostname+("/"==l.charAt(0)?"":b)+l);d.push('url("'+l+'"'+c[g].substring(f))}else d.push(c[g])}else d=[b]}return null!=d?d.join(""):null};Editor.prototype.embedCssFonts=function(b,d){var c=b.split("url("),f=0;null==this.cachedFonts&&(this.cachedFonts={});
var e=mxUtils.bind(this,function(){if(0==f){for(var b=[c[0]],e=1;e<c.length;e++){var g=c[e].indexOf(")");b.push('url("');b.push(this.cachedFonts[Editor.trimCssUrl(c[e].substring(0,g))]);b.push('"'+c[e].substring(g))}d(b.join(""))}});if(0<c.length){for(var g=1;g<c.length;g++){var l=c[g].indexOf(")"),k=null,m=c[g].indexOf("format(",l);0<m&&(k=Editor.trimCssUrl(c[g].substring(m+7,c[g].indexOf(")",m))));mxUtils.bind(this,function(b){if(null==this.cachedFonts[b]){this.cachedFonts[b]=b;f++;var d="application/x-font-ttf";
if("svg"==k||/(\.svg)($|\?)/i.test(b))d="image/svg+xml";else if("otf"==k||"embedded-opentype"==k||/(\.otf)($|\?)/i.test(b))d="application/x-font-opentype";else if("woff"==k||/(\.woff)($|\?)/i.test(b))d="application/font-woff";else if("woff2"==k||/(\.woff2)($|\?)/i.test(b))d="application/font-woff2";else if("eot"==k||/(\.eot)($|\?)/i.test(b))d="application/vnd.ms-fontobject";else if("sfnt"==k||/(\.sfnt)($|\?)/i.test(b))d="application/font-sfnt";var c=b;/^https?:\/\//.test(c)&&!this.isCorsEnabledForUrl(c)&&
@@ -3198,11 +3196,11 @@ if("svg"==k||/(\.svg)($|\?)/i.test(b))d="image/svg+xml";else if("otf"==k||"embed
this.graph.getCustomFonts();if(0<d.length){var c="",f=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var e=mxUtils.bind(this,function(){0==f&&this.embedCssFonts(c,b)}),g=0;g<d.length;g++)mxUtils.bind(this,function(b,d){Graph.isCssFontUrl(d)?null==this.cachedGoogleFonts[d]?(f++,this.loadUrl(d,mxUtils.bind(this,function(b){this.cachedGoogleFonts[d]=b;c+=b;f--;e()}),mxUtils.bind(this,function(b){f--;c+="@import url("+d+");";e()}))):c+=this.cachedGoogleFonts[d]:c+='@font-face {font-family: "'+
b+'";src: url("'+d+'")}'})(d[g].name,d[g].url);e()}else b()};Editor.prototype.addMathCss=function(b){b=b.getElementsByTagName("defs");if(null!=b&&0<b.length)for(var d=document.getElementsByTagName("style"),c=0;c<d.length;c++)0<mxUtils.getTextContent(d[c]).indexOf("MathJax")&&b[0].appendChild(d[c].cloneNode(!0))};Editor.prototype.addFontCss=function(b,d){d=null!=d?d:this.absoluteCssFonts(this.fontCss);if(null!=d){var c=b.getElementsByTagName("defs"),f=b.ownerDocument;0==c.length?(c=null!=f.createElementNS?
f.createElementNS(mxConstants.NS_SVG,"defs"):f.createElement("defs"),null!=b.firstChild?b.insertBefore(c,b.firstChild):b.appendChild(c)):c=c[0];f=null!=f.createElementNS?f.createElementNS(mxConstants.NS_SVG,"style"):f.createElement("style");f.setAttribute("type","text/css");mxUtils.setTextContent(f,d);c.appendChild(f)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(b,d,c){var f=mxClient.IS_FF?8192:16384;
-return Math.min(c,Math.min(f/b,f/d))};Editor.prototype.exportToCanvas=function(b,d,c,f,e,g,l,k,m,n,q,u,p,x,v,t,y,B){try{g=null!=g?g:!0;l=null!=l?l:!0;u=null!=u?u:this.graph;p=null!=p?p:0;var G=m?null:u.background;G==mxConstants.NONE&&(G=null);null==G&&(G=f);null==G&&0==m&&(G=t?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(u.getSvg(null,null,p,x,null,l,null,null,null,n,null,t,y,B),mxUtils.bind(this,function(c){try{var f=new Image;f.onload=mxUtils.bind(this,function(){try{var l=
-function(){mxClient.IS_SF?window.setTimeout(function(){x.drawImage(f,0,0);b(m,c)},0):(x.drawImage(f,0,0),b(m,c))},m=document.createElement("canvas"),n=parseInt(c.getAttribute("width")),q=parseInt(c.getAttribute("height"));k=null!=k?k:1;null!=d&&(k=g?Math.min(1,Math.min(3*d/(4*q),d/n)):d/n);k=this.getMaxCanvasScale(n,q,k);n=Math.ceil(k*n);q=Math.ceil(k*q);m.setAttribute("width",n);m.setAttribute("height",q);var x=m.getContext("2d");null!=G&&(x.beginPath(),x.rect(0,0,n,q),x.fillStyle=G,x.fill());1!=
-k&&x.scale(k,k);if(v){var t=u.view,A=t.scale;t.scale=1;var y=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=A;var y="data:image/svg+xml;base64,"+y,B=u.gridSize*t.gridSteps*k,C=u.getGraphBounds(),J=t.translate.x*A,N=t.translate.y*A,I=J+(C.x-J)/A-p,F=N+(C.y-N)/A-p,D=new Image;D.onload=function(){try{for(var b=-Math.round(B-mxUtils.mod((J-I)*k,B)),d=-Math.round(B-mxUtils.mod((N-F)*k,B));b<n;b+=B)for(var c=d;c<q;c+=B)x.drawImage(D,b/k,c/k);l()}catch(V){null!=e&&e(V)}};D.onerror=
-function(b){null!=e&&e(b)};D.src=y}else l()}catch(Ba){null!=e&&e(Ba)}});f.onerror=function(b){null!=e&&e(b)};n&&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),f.src=Editor.createSvgDataUri(mxUtils.getXml(c))}catch(fa){null!=e&&e(fa)}});this.embedExtFonts(mxUtils.bind(this,function(b){try{null!=b&&this.addFontCss(c,b),this.loadFonts(l)}catch(ia){null!=e&&e(ia)}}))}catch(fa){null!=
-e&&e(fa)}}),c,q)}catch(na){null!=e&&e(na)}};Editor.crcTable=[];for(var g=0;256>g;g++)for(var p=g,t=0;8>t;t++)p=1==(p&1)?3988292384^p>>>1:p>>>1,Editor.crcTable[g]=p;Editor.updateCRC=function(b,d,c,f){for(var e=0;e<f;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,f,e){function g(b,d){var c=m;m+=d;return b.substring(c,
+return Math.min(c,Math.min(f/b,f/d))};Editor.prototype.exportToCanvas=function(b,d,c,f,e,g,l,k,m,n,q,p,u,x,v,t,y,C){try{g=null!=g?g:!0;l=null!=l?l:!0;p=null!=p?p:this.graph;u=null!=u?u:0;var H=m?null:p.background;H==mxConstants.NONE&&(H=null);null==H&&(H=f);null==H&&0==m&&(H=t?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(p.getSvg(null,null,u,x,null,l,null,null,null,n,null,t,y,C),mxUtils.bind(this,function(c){try{var f=new Image;f.onload=mxUtils.bind(this,function(){try{var l=
+function(){mxClient.IS_SF?window.setTimeout(function(){x.drawImage(f,0,0);b(m,c)},0):(x.drawImage(f,0,0),b(m,c))},m=document.createElement("canvas"),n=parseInt(c.getAttribute("width")),q=parseInt(c.getAttribute("height"));k=null!=k?k:1;null!=d&&(k=g?Math.min(1,Math.min(3*d/(4*q),d/n)):d/n);k=this.getMaxCanvasScale(n,q,k);n=Math.ceil(k*n);q=Math.ceil(k*q);m.setAttribute("width",n);m.setAttribute("height",q);var x=m.getContext("2d");null!=H&&(x.beginPath(),x.rect(0,0,n,q),x.fillStyle=H,x.fill());1!=
+k&&x.scale(k,k);if(v){var t=p.view,y=t.scale;t.scale=1;var A=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=y;var A="data:image/svg+xml;base64,"+A,C=p.gridSize*t.gridSteps*k,B=p.getGraphBounds(),J=t.translate.x*y,E=t.translate.y*y,N=J+(B.x-J)/y-u,G=E+(B.y-E)/y-u,T=new Image;T.onload=function(){try{for(var b=-Math.round(C-mxUtils.mod((J-N)*k,C)),d=-Math.round(C-mxUtils.mod((E-G)*k,C));b<n;b+=C)for(var c=d;c<q;c+=C)x.drawImage(T,b/k,c/k);l()}catch(X){null!=e&&e(X)}};T.onerror=
+function(b){null!=e&&e(b)};T.src=A}else l()}catch(Ca){null!=e&&e(Ca)}});f.onerror=function(b){null!=e&&e(b)};n&&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),f.src=Editor.createSvgDataUri(mxUtils.getXml(c))}catch(fa){null!=e&&e(fa)}});this.embedExtFonts(mxUtils.bind(this,function(b){try{null!=b&&this.addFontCss(c,b),this.loadFonts(l)}catch(ia){null!=e&&e(ia)}}))}catch(fa){null!=
+e&&e(fa)}}),c,q)}catch(la){null!=e&&e(la)}};Editor.crcTable=[];for(var g=0;256>g;g++)for(var p=g,t=0;8>t;t++)p=1==(p&1)?3988292384^p>>>1:p>>>1,Editor.crcTable[g]=p;Editor.updateCRC=function(b,d,c,f){for(var e=0;e<f;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,f,e){function g(b,d){var c=m;m+=d;return b.substring(c,
m)}function l(b){b=g(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(g(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(g(b,4),"IHDR"!=g(b,4))null!=e&&e();else{g(b,17);e=b.substring(0,m);do{var n=l(b);if("IDAT"==g(b,4)){e=b.substring(0,m-8);"pHYs"==d&&
"dpi"==c?(c=Math.round(f/.0254),c=k(c)+k(c)+String.fromCharCode(1)):c=c+String.fromCharCode(0)+("zTXt"==d?String.fromCharCode(0):"")+f;f=4294967295;f=Editor.updateCRC(f,d,0,4);f=Editor.updateCRC(f,c,0,c.length);e+=k(c.length)+d+c+k(f^4294967295);e+=b.substring(m-8,b.length);break}e+=b.substring(m-8,m-4+n);g(b,n);g(b,4)}while(n);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";
var d=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(b,c){d.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var f=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){f.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(b,d){var c=null;null!=b.editor.graph.getModel().getParent(d)?c=d.getId():null!=b.currentPage&&
@@ -3234,25 +3232,25 @@ stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79
stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",
gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(b,d,c){if(null!=d){var f=function(b){if(null!=b)if(c)for(var f=
0;f<b.length;f++)d[b[f].name]=b[f];else for(var e in d){for(var g=!1,f=0;f<b.length;f++)if(b[f].name==e&&b[f].type==d[e].type){g=!0;break}g||delete d[e]}},e=this.editorUi.editor.graph.view.getState(b);null!=e&&null!=e.shape&&(e.shape.commonCustomPropAdded||(e.shape.commonCustomPropAdded=!0,e.shape.customProperties=e.shape.customProperties||[],e.cell.vertex?Array.prototype.push.apply(e.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(e.shape.customProperties,Editor.commonEdgeProperties)),
-f(e.shape.customProperties));b=b.getAttribute("customProperties");if(null!=b)try{f(JSON.parse(b))}catch(X){}}};var u=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var b=this.format.getSelectionState();"image"!=b.style.shape&&!b.containsLabel&&0<b.cells.length&&this.container.appendChild(this.addStyles(this.createPanel()));u.apply(this,arguments);if(Editor.enableCustomProperties){for(var d={},c=b.vertices,f=b.edges,e=0;e<c.length;e++)this.findCommonProperties(c[e],d,0==
-e);for(e=0;e<f.length;e++)this.findCommonProperties(f[e],d,0==c.length&&0==e);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(d).length&&this.container.appendChild(this.addProperties(this.createPanel(),d,b))}};var v=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(b){var d=this.format.getSelectionState(),c=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(b){this.editorUi.actions.get("copyStyle").funct()}));c.setAttribute("title",
+f(e.shape.customProperties));b=b.getAttribute("customProperties");if(null!=b)try{f(JSON.parse(b))}catch(W){}}};var v=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var b=this.format.getSelectionState();"image"!=b.style.shape&&!b.containsLabel&&0<b.cells.length&&this.container.appendChild(this.addStyles(this.createPanel()));v.apply(this,arguments);if(Editor.enableCustomProperties){for(var d={},c=b.vertices,f=b.edges,e=0;e<c.length;e++)this.findCommonProperties(c[e],d,0==
+e);for(e=0;e<f.length;e++)this.findCommonProperties(f[e],d,0==c.length&&0==e);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(d).length&&this.container.appendChild(this.addProperties(this.createPanel(),d,b))}};var u=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(b){var d=this.format.getSelectionState(),c=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(b){this.editorUi.actions.get("copyStyle").funct()}));c.setAttribute("title",
mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");c.style.marginBottom="2px";c.style.width="104px";c.style.marginRight="2px";b.appendChild(c);0<d.cells.length?(c=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(b){this.editorUi.actions.get("pasteStyle").funct()})),c.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")"),c.style.marginBottom="2px",c.style.width="104px",b.appendChild(c)):
-c.style.width="210px";mxUtils.br(b);return v.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(b,d,c){function f(b,d,c,f){u.getModel().beginUpdate();try{var e=[],g=[];if(null!=c.index){for(var l=[],k=c.parentRow.nextSibling;k&&k.getAttribute("data-pName")==b;)l.push(k.getAttribute("data-pValue")),k=k.nextSibling;c.index<l.length?null!=f?l.splice(f,1):l[c.index]=d:l.push(d);null!=c.size&&l.length>c.size&&(l=l.slice(0,c.size));d=l.join(",");
-null!=c.countProperty&&(u.setCellStyles(c.countProperty,l.length,u.getSelectionCells()),e.push(c.countProperty),g.push(l.length))}u.setCellStyles(b,d,u.getSelectionCells());e.push(b);g.push(d);if(null!=c.dependentProps)for(b=0;b<c.dependentProps.length;b++){var m=c.dependentPropsDefVal[b],n=c.dependentPropsVals[b];if(n.length>d)n=n.slice(0,d);else for(var p=n.length;p<d;p++)n.push(m);n=n.join(",");u.setCellStyles(c.dependentProps[b],n,u.getSelectionCells());e.push(c.dependentProps[b]);g.push(n)}if("function"==
-typeof c.onChange)c.onChange(u,d);q.editorUi.fireEvent(new mxEventObject("styleChanged","keys",e,"values",g,"cells",u.getSelectionCells()))}finally{u.getModel().endUpdate()}}function e(d,c,f){var e=mxUtils.getOffset(b,!0),g=mxUtils.getOffset(d,!0);c.style.position="absolute";c.style.left=g.x-e.x+"px";c.style.top=g.y-e.y+"px";c.style.width=d.offsetWidth+"px";c.style.height=d.offsetHeight-(f?4:0)+"px";c.style.zIndex=5}function g(b,d,c){var e=document.createElement("div");e.style.width="32px";e.style.height=
-"4px";e.style.margin="2px";e.style.border="1px solid black";e.style.background=d&&"none"!=d?d:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,function(g){this.editorUi.pickColor(d,function(d){e.style.background="none"==d?"url('"+Dialog.prototype.noColorImage+"')":d;f(b,d,c)});mxEvent.consume(g)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(e);return btn}function l(b,d,c,e,g,l,k){null!=d&&(d=d.split(","),p.push({name:b,
-values:d,type:c,defVal:e,countProperty:g,parentRow:l,isDeletable:!0,flipBkg:k}));btn=mxUtils.button("+",mxUtils.bind(q,function(d){for(var m=l,q=0;null!=m.nextSibling;)if(m.nextSibling.getAttribute("data-pName")==b)m=m.nextSibling,q++;else break;var u={type:c,parentRow:l,index:q,isDeletable:!0,defVal:e,countProperty:g},q=n(b,"",u,0==q%2,k);f(b,e,u);m.parentNode.insertBefore(q,m.nextSibling);mxEvent.consume(d)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}
-function k(b,d,c,f,e,g,l){if(0<e){var k=Array(e);d=null!=d?d.split(","):[];for(var m=0;m<e;m++)k[m]=null!=d[m]?d[m]:null!=f?f:"";p.push({name:b,values:k,type:c,defVal:f,parentRow:g,flipBkg:l,size:e})}return document.createElement("div")}function m(b,d,c){var e=document.createElement("input");e.type="checkbox";e.checked="1"==d;mxEvent.addListener(e,"change",function(){f(b,e.checked?"1":"0",c)});return e}function n(d,c,n,u,p){var v=n.dispName,x=n.type,t=document.createElement("tr");t.className="gePropRow"+
-(p?"Dark":"")+(u?"Alt":"")+" gePropNonHeaderRow";t.setAttribute("data-pName",d);t.setAttribute("data-pValue",c);u=!1;null!=n.index&&(t.setAttribute("data-index",n.index),v=(null!=v?v:"")+"["+n.index+"]",u=!0);var y=document.createElement("td");y.className="gePropRowCell";v=mxResources.get(v,null,v);mxUtils.write(y,v);y.setAttribute("title",v);u&&(y.style.textAlign="right");t.appendChild(y);y=document.createElement("td");y.className="gePropRowCell";if("color"==x)y.appendChild(g(d,c,n));else if("bool"==
-x||"boolean"==x)y.appendChild(m(d,c,n));else if("enum"==x){var B=n.enumList;for(p=0;p<B.length;p++)if(v=B[p],v.val==c){mxUtils.write(y,mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(y,"click",mxUtils.bind(q,function(){var g=document.createElement("select");e(y,g);for(var l=0;l<B.length;l++){var k=B[l],m=document.createElement("option");m.value=mxUtils.htmlEntities(k.val);mxUtils.write(m,mxResources.get(k.dispName,null,k.dispName));g.appendChild(m)}g.value=c;b.appendChild(g);
-mxEvent.addListener(g,"change",function(){var b=mxUtils.htmlEntities(g.value);f(d,b,n)});g.focus();mxEvent.addListener(g,"blur",function(){b.removeChild(g)})}))}else"dynamicArr"==x?y.appendChild(l(d,c,n.subType,n.subDefVal,n.countProperty,t,p)):"staticArr"==x?y.appendChild(k(d,c,n.subType,n.subDefVal,n.size,t,p)):"readOnly"==x?(p=document.createElement("input"),p.setAttribute("readonly",""),p.value=c,p.style.width="96px",p.style.borderWidth="0px",y.appendChild(p)):(y.innerHTML=c,mxEvent.addListener(y,
+c.style.width="210px";mxUtils.br(b);return u.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(b,d,c){function f(b,d,c,f){p.getModel().beginUpdate();try{var e=[],g=[];if(null!=c.index){for(var l=[],k=c.parentRow.nextSibling;k&&k.getAttribute("data-pName")==b;)l.push(k.getAttribute("data-pValue")),k=k.nextSibling;c.index<l.length?null!=f?l.splice(f,1):l[c.index]=d:l.push(d);null!=c.size&&l.length>c.size&&(l=l.slice(0,c.size));d=l.join(",");
+null!=c.countProperty&&(p.setCellStyles(c.countProperty,l.length,p.getSelectionCells()),e.push(c.countProperty),g.push(l.length))}p.setCellStyles(b,d,p.getSelectionCells());e.push(b);g.push(d);if(null!=c.dependentProps)for(b=0;b<c.dependentProps.length;b++){var m=c.dependentPropsDefVal[b],n=c.dependentPropsVals[b];if(n.length>d)n=n.slice(0,d);else for(var u=n.length;u<d;u++)n.push(m);n=n.join(",");p.setCellStyles(c.dependentProps[b],n,p.getSelectionCells());e.push(c.dependentProps[b]);g.push(n)}if("function"==
+typeof c.onChange)c.onChange(p,d);q.editorUi.fireEvent(new mxEventObject("styleChanged","keys",e,"values",g,"cells",p.getSelectionCells()))}finally{p.getModel().endUpdate()}}function e(d,c,f){var e=mxUtils.getOffset(b,!0),g=mxUtils.getOffset(d,!0);c.style.position="absolute";c.style.left=g.x-e.x+"px";c.style.top=g.y-e.y+"px";c.style.width=d.offsetWidth+"px";c.style.height=d.offsetHeight-(f?4:0)+"px";c.style.zIndex=5}function g(b,d,c){var e=document.createElement("div");e.style.width="32px";e.style.height=
+"4px";e.style.margin="2px";e.style.border="1px solid black";e.style.background=d&&"none"!=d?d:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,function(g){this.editorUi.pickColor(d,function(d){e.style.background="none"==d?"url('"+Dialog.prototype.noColorImage+"')":d;f(b,d,c)});mxEvent.consume(g)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(e);return btn}function l(b,d,c,e,g,l,k){null!=d&&(d=d.split(","),u.push({name:b,
+values:d,type:c,defVal:e,countProperty:g,parentRow:l,isDeletable:!0,flipBkg:k}));btn=mxUtils.button("+",mxUtils.bind(q,function(d){for(var m=l,q=0;null!=m.nextSibling;)if(m.nextSibling.getAttribute("data-pName")==b)m=m.nextSibling,q++;else break;var p={type:c,parentRow:l,index:q,isDeletable:!0,defVal:e,countProperty:g},q=n(b,"",p,0==q%2,k);f(b,e,p);m.parentNode.insertBefore(q,m.nextSibling);mxEvent.consume(d)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}
+function k(b,d,c,f,e,g,l){if(0<e){var k=Array(e);d=null!=d?d.split(","):[];for(var m=0;m<e;m++)k[m]=null!=d[m]?d[m]:null!=f?f:"";u.push({name:b,values:k,type:c,defVal:f,parentRow:g,flipBkg:l,size:e})}return document.createElement("div")}function m(b,d,c){var e=document.createElement("input");e.type="checkbox";e.checked="1"==d;mxEvent.addListener(e,"change",function(){f(b,e.checked?"1":"0",c)});return e}function n(d,c,n,p,u){var v=n.dispName,x=n.type,t=document.createElement("tr");t.className="gePropRow"+
+(u?"Dark":"")+(p?"Alt":"")+" gePropNonHeaderRow";t.setAttribute("data-pName",d);t.setAttribute("data-pValue",c);p=!1;null!=n.index&&(t.setAttribute("data-index",n.index),v=(null!=v?v:"")+"["+n.index+"]",p=!0);var y=document.createElement("td");y.className="gePropRowCell";v=mxResources.get(v,null,v);mxUtils.write(y,v);y.setAttribute("title",v);p&&(y.style.textAlign="right");t.appendChild(y);y=document.createElement("td");y.className="gePropRowCell";if("color"==x)y.appendChild(g(d,c,n));else if("bool"==
+x||"boolean"==x)y.appendChild(m(d,c,n));else if("enum"==x){var C=n.enumList;for(u=0;u<C.length;u++)if(v=C[u],v.val==c){mxUtils.write(y,mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(y,"click",mxUtils.bind(q,function(){var g=document.createElement("select");e(y,g);for(var l=0;l<C.length;l++){var k=C[l],m=document.createElement("option");m.value=mxUtils.htmlEntities(k.val);mxUtils.write(m,mxResources.get(k.dispName,null,k.dispName));g.appendChild(m)}g.value=c;b.appendChild(g);
+mxEvent.addListener(g,"change",function(){var b=mxUtils.htmlEntities(g.value);f(d,b,n)});g.focus();mxEvent.addListener(g,"blur",function(){b.removeChild(g)})}))}else"dynamicArr"==x?y.appendChild(l(d,c,n.subType,n.subDefVal,n.countProperty,t,u)):"staticArr"==x?y.appendChild(k(d,c,n.subType,n.subDefVal,n.size,t,u)):"readOnly"==x?(u=document.createElement("input"),u.setAttribute("readonly",""),u.value=c,u.style.width="96px",u.style.borderWidth="0px",y.appendChild(u)):(y.innerHTML=c,mxEvent.addListener(y,
"click",mxUtils.bind(q,function(){function g(){var b=l.value,b=0==b.length&&"string"!=x?0:b;n.allowAuto&&(null!=b.trim&&"auto"==b.trim().toLowerCase()?(b="auto",x="string"):(b=parseFloat(b),b=isNaN(b)?0:b));null!=n.min&&b<n.min?b=n.min:null!=n.max&&b>n.max&&(b=n.max);b=mxUtils.htmlEntities(("int"==x?parseInt(b):b)+"");f(d,b,n)}var l=document.createElement("input");e(y,l,!0);l.value=c;l.className="gePropEditor";"int"!=x&&"float"!=x||n.allowAuto||(l.type="number",l.step="int"==x?"1":"any",null!=n.min&&
-(l.min=parseFloat(n.min)),null!=n.max&&(l.max=parseFloat(n.max)));b.appendChild(l);mxEvent.addListener(l,"keypress",function(b){13==b.keyCode&&g()});l.focus();mxEvent.addListener(l,"blur",function(){g()})})));n.isDeletable&&(p=mxUtils.button("-",mxUtils.bind(q,function(b){f(d,"",n,n.index);mxEvent.consume(b)})),p.style.height="16px",p.style.width="25px",p.style["float"]="right",p.className="geColorBtn",y.appendChild(p));t.appendChild(y);return t}var q=this,u=this.editorUi.editor.graph,p=[];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 y=document.createElement("img");y.src=Sidebar.prototype.expandedImage;y.style.verticalAlign="middle";t.appendChild(y);mxUtils.write(t,mxResources.get("property"));v.style.cursor="pointer";var B=function(){var d=x.querySelectorAll(".gePropNonHeaderRow"),
-c;if(q.editorUi.propertiesCollapsed){y.src=Sidebar.prototype.collapsedImage;c="none";for(var f=b.childNodes.length-1;0<=f;f--)try{var e=b.childNodes[f],g=e.nodeName.toUpperCase();"INPUT"!=g&&"SELECT"!=g||b.removeChild(e)}catch(ra){}}else y.src=Sidebar.prototype.expandedImage,c="";for(f=0;f<d.length;f++)d[f].style.display=c};mxEvent.addListener(v,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;B()});v.appendChild(t);t=document.createElement("th");t.className="gePropHeaderCell";
-t.innerHTML=mxResources.get("value");v.appendChild(t);x.appendChild(v);var C=!1,A=!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(n("id",mxUtils.htmlEntities(v),{dispName:"ID",type:"readOnly"},!0,!1));for(var G in d)if(v=d[G],"function"!=typeof v.isVisible||v.isVisible(c,this)){var N=null!=c.style[G]?mxUtils.htmlEntities(c.style[G]+""):null!=v.getDefaultValue?v.getDefaultValue(c,this):v.defVal;if("separator"==
-v.type)A=!A;else{if("staticArr"==v.type)v.size=parseInt(c.style[v.sizeProperty]||d[v.sizeProperty].defVal)||0;else if(null!=v.dependentProps){for(var J=v.dependentProps,F=[],D=[],t=0;t<J.length;t++){var O=c.style[J[t]];D.push(d[J[t]].subDefVal);F.push(null!=O?O.split(","):[])}v.dependentPropsDefVal=D;v.dependentPropsVals=F}x.appendChild(n(G,N,v,C,A));C=!C}}for(t=0;t<p.length;t++)for(v=p[t],d=v.parentRow,c=0;c<v.values.length;c++)G=n(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(G,d.nextSibling),d=G;b.appendChild(x);B();return b};StyleFormatPanel.prototype.addStyles=function(b){function d(b){mxEvent.addListener(b,"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,"mouseleave",function(){b.style.opacity="0.5"})}var c=this.editorUi,f=c.editor.graph,e=document.createElement("div");e.style.whiteSpace="nowrap";e.style.paddingLeft="24px";e.style.paddingRight=
+(l.min=parseFloat(n.min)),null!=n.max&&(l.max=parseFloat(n.max)));b.appendChild(l);mxEvent.addListener(l,"keypress",function(b){13==b.keyCode&&g()});l.focus();mxEvent.addListener(l,"blur",function(){g()})})));n.isDeletable&&(u=mxUtils.button("-",mxUtils.bind(q,function(b){f(d,"",n,n.index);mxEvent.consume(b)})),u.style.height="16px",u.style.width="25px",u.style["float"]="right",u.className="geColorBtn",y.appendChild(u));t.appendChild(y);return t}var q=this,p=this.editorUi.editor.graph,u=[];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 y=document.createElement("img");y.src=Sidebar.prototype.expandedImage;y.style.verticalAlign="middle";t.appendChild(y);mxUtils.write(t,mxResources.get("property"));v.style.cursor="pointer";var C=function(){var d=x.querySelectorAll(".gePropNonHeaderRow"),
+c;if(q.editorUi.propertiesCollapsed){y.src=Sidebar.prototype.collapsedImage;c="none";for(var f=b.childNodes.length-1;0<=f;f--)try{var e=b.childNodes[f],g=e.nodeName.toUpperCase();"INPUT"!=g&&"SELECT"!=g||b.removeChild(e)}catch(pa){}}else y.src=Sidebar.prototype.expandedImage,c="";for(f=0;f<d.length;f++)d[f].style.display=c};mxEvent.addListener(v,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;C()});v.appendChild(t);t=document.createElement("th");t.className="gePropHeaderCell";
+t.innerHTML=mxResources.get("value");v.appendChild(t);x.appendChild(v);var H=!1,B=!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(n("id",mxUtils.htmlEntities(v),{dispName:"ID",type:"readOnly"},!0,!1));for(var A in d)if(v=d[A],"function"!=typeof v.isVisible||v.isVisible(c,this)){var N=null!=c.style[A]?mxUtils.htmlEntities(c.style[A]+""):null!=v.getDefaultValue?v.getDefaultValue(c,this):v.defVal;if("separator"==
+v.type)B=!B;else{if("staticArr"==v.type)v.size=parseInt(c.style[v.sizeProperty]||d[v.sizeProperty].defVal)||0;else if(null!=v.dependentProps){for(var J=v.dependentProps,G=[],D=[],t=0;t<J.length;t++){var O=c.style[J[t]];D.push(d[J[t]].subDefVal);G.push(null!=O?O.split(","):[])}v.dependentPropsDefVal=D;v.dependentPropsVals=G}x.appendChild(n(A,N,v,H,B));H=!H}}for(t=0;t<u.length;t++)for(v=u[t],d=v.parentRow,c=0;c<v.values.length;c++)A=n(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(A,d.nextSibling),d=A;b.appendChild(x);C();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,f=c.editor.graph,e=document.createElement("div");e.style.whiteSpace="nowrap";e.style.paddingLeft="24px";e.style.paddingRight=
"20px";b.style.paddingLeft="16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(e);var g="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 k=[],m=0;m<this.defaultColorSchemes.length;m++){var n=document.createElement("div");
n.style.display="inline-block";n.style.width="6px";n.style.height="6px";n.style.marginLeft="4px";n.style.marginRight="3px";n.style.borderRadius="3px";n.style.cursor="pointer";n.style.background="transparent";n.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(b){mxEvent.addListener(n,"click",mxUtils.bind(this,function(){q(b)}))})(m);k.push(n);l.appendChild(n)}var q=mxUtils.bind(this,function(b){null!=k[b]&&(null!=this.format.currentScheme&&null!=k[this.format.currentScheme]&&(k[this.format.currentScheme].style.background=
"transparent"),this.format.currentScheme=b,p(this.defaultColorSchemes[this.format.currentScheme]),k[this.format.currentScheme].style.background="#84d7ff")}),p=mxUtils.bind(this,function(b){var d=mxUtils.bind(this,function(b){var d=mxUtils.button("",mxUtils.bind(this,function(d){f.getModel().beginUpdate();try{for(var e=this.format.getSelectionState().cells,l=0;l<e.length;l++){for(var k=f.getModel().getStyle(e[l]),m=0;m<g.length;m++)k=mxUtils.removeStylename(k,g[m]);var n=f.getModel().isVertex(e[l])?
@@ -3275,84 +3273,86 @@ b[d].getAttribute("face"):b[d].style.fontFamily;null!=f&&Graph.addFont(f,c)}}};G
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 f=this.layoutManager.getLayout;this.layoutManager.getLayout=function(b){var d=this.graph.getCellStyle(b);if(null!=d){if("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}if("undefined"!==typeof mxTableLayout&&"tableLayout"==d.childLayout)return c=new mxTableLayout(this.graph),
c.rows=d.tableRows||2,c.columns=d.tableColumns||2,c.colPercentages=d.colPercentages,c.rowPercentages=d.rowPercentages,c.equalColumns="1"==mxUtils.getValue(d,"equalColumns",c.colPercentages?"0":"1"),c.equalRows="1"==mxUtils.getValue(d,"equalRows",c.rowPercentages?"0":"1"),c.resizeParent="1"==mxUtils.getValue(d,"resizeParent","1"),c.border=d.tableBorder||c.border,c.marginLeft=d.marginLeft||0,c.marginRight=d.marginRight||0,c.marginTop=d.marginTop||0,c.marginBottom=d.marginBottom||0,c.autoAddCol="1"==
-mxUtils.getValue(d,"autoAddCol","0"),c.autoAddRow="1"==mxUtils.getValue(d,"autoAddRow",c.autoAddCol?"0":"1"),c.colWidths=d.colWidths||"100",c.rowHeights=d.rowHeights||"50",c}return f.apply(this,arguments)};this.updateGlobalUrlVariables()};var x=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=function(b){return Graph.processFontStyle(x.apply(this,arguments))};var D=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,d,c,f,e,g,l,k,m,n,
-q){D.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 f(){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();f();l.refresh()}function g(b,c){n.innerHTML="";if(0<
-b.length){var g=document.createElement("table");g.setAttribute("cellpadding","2");g.style.boxSizing="border-box";g.style.tableLayout="fixed";g.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 g=0>mxUtils.indexOf(l.hiddenTags,b),n=document.createElement("tr"),q=document.createElement("td");q.style.align="center";q.style.width="16px";var p=document.createElement("img");p.setAttribute("src",g?Editor.visibleImage:Editor.hiddenImage);
-p.setAttribute("title",mxResources.get(g?"hideIt":"show",[b]));mxUtils.setOpacity(p,g?75:25);p.style.verticalAlign="middle";p.style.cursor="pointer";p.style.width="16px";if(d||Editor.isDarkMode())p.style.filter="invert(100%)";q.appendChild(p);mxEvent.addListener(p,"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),f(),l.refresh());mxEvent.consume(d)});n.appendChild(q);q=document.createElement("td");
-q.style.overflow="hidden";q.style.whiteSpace="nowrap";q.style.textOverflow="ellipsis";q.style.verticalAlign="middle";q.style.cursor="pointer";q.setAttribute("title",b);a=document.createElement("a");mxUtils.write(a,b);a.style.textOverflow="ellipsis";a.style.position="relative";mxUtils.setOpacity(a,g?100:40);q.appendChild(a);mxEvent.addListener(q,"click",function(d){if(mxEvent.isShiftDown(d)){e(!0);var c=l.getCellsForTags([b],null,null,!0);l.isEnabled()?l.setSelectionCells(c):l.highlightCells(c)}else if(g&&
-0<l.hiddenTags.length)e(!0);else{var c=k.slice(),m=mxUtils.indexOf(c,b);c.splice(m,1);l.hiddenTags=c;f();l.refresh()}mxEvent.consume(d)});n.appendChild(q);if(l.isEnabled()){q=document.createElement("td");q.style.verticalAlign="middle";q.style.textAlign="center";q.style.width="18px";if(null==c){q.style.align="center";q.style.width="16px";p=document.createElement("img");p.setAttribute("src",Editor.crossImage);p.setAttribute("title",mxResources.get("removeIt",[b]));mxUtils.setOpacity(p,g?75:25);p.style.verticalAlign=
-"middle";p.style.cursor="pointer";p.style.width="16px";if(d||Editor.isDarkMode())p.style.filter="invert(100%)";mxEvent.addListener(p,"click",function(d){var c=mxUtils.indexOf(k,b);0<=c&&k.splice(c,1);l.removeTagsForCells(l.model.getDescendants(l.model.getRoot()),[b]);l.refresh();mxEvent.consume(d)});q.appendChild(p)}else{var u=document.createElement("input");u.setAttribute("type","checkbox");u.style.margin="0px";u.defaultChecked=null!=c&&0<=mxUtils.indexOf(c,b);u.checked=u.defaultChecked;u.style.background=
-"transparent";u.setAttribute("title",mxResources.get(u.defaultChecked?"removeIt":"add",[b]));mxEvent.addListener(u,"change",function(d){u.checked?l.addTagsForCells(l.getSelectionCells(),[b]):l.removeTagsForCells(l.getSelectionCells(),[b]);mxEvent.consume(d)});q.appendChild(u)}n.appendChild(q)}m.appendChild(n)})(b[q]);g.appendChild(m);n.appendChild(g)}}var l=this,k=l.hiddenTags.slice(),m=document.createElement("div");m.style.userSelect="none";m.style.overflow="hidden";m.style.padding="10px";m.style.height=
-"100%";var n=document.createElement("div");n.style.boxSizing="border-box";n.style.borderRadius="4px";n.style.userSelect="none";n.style.overflow="auto";n.style.position="absolute";n.style.left="10px";n.style.right="10px";n.style.top="10px";n.style.border=l.isEnabled()?"1px solid #808080":"none";n.style.bottom=l.isEnabled()?"48px":"10px";m.appendChild(n);var q=mxUtils.button(mxResources.get("reset"),function(b){l.hiddenTags=[];mxEvent.isShiftDown(b)||(k=l.hiddenTags.slice());f();l.refresh()});q.setAttribute("title",
-mxResources.get("reset"));q.className="geBtn";q.style.margin="0 4px 0 0";var u=mxUtils.button(mxResources.get("add"),function(){null!=c&&c(k,function(b){k=b;p()})});u.setAttribute("title",mxResources.get("add"));u.className="geBtn";u.style.margin="0";l.addListener(mxEvent.ROOT,function(){k=l.hiddenTags.slice()});var p=mxUtils.bind(this,function(d,c){if(b()){for(var f=l.getAllTags(),e=0;e<f.length;e++)0>mxUtils.indexOf(k,f[e])&&k.push(f[e]);k.sort();l.isSelectionEmpty()?g(k):g(k,l.getCommonTagsForCells(l.getSelectionCells()))}});
-l.selectionModel.addListener(mxEvent.CHANGE,p);l.model.addListener(mxEvent.CHANGE,p);l.addListener(mxEvent.REFRESH,p);var v=document.createElement("div");v.style.boxSizing="border-box";v.style.whiteSpace="nowrap";v.style.position="absolute";v.style.overflow="hidden";v.style.bottom="0px";v.style.height="42px";v.style.right="10px";v.style.left="10px";l.isEnabled()&&(v.appendChild(q),v.appendChild(u),m.appendChild(v));return{div:m,refresh:p}};Graph.prototype.getCustomFonts=function(){var b=this.extFonts,
-b=null!=b?b.slice():[],d;for(d in Graph.customFontElements){var c=Graph.customFontElements[d];b.push({name:c.name,url:c.url})}return b};Graph.prototype.setFont=function(b,d){Graph.addFont(b,d);document.execCommand("fontname",!1,b);if(null!=d){var c=this.cellEditor.textarea.getElementsByTagName("font");d=Graph.getFontUrl(b,d);for(var f=0;f<c.length;f++)c[f].getAttribute("face")==b&&c[f].getAttribute("data-font-src")!=d&&c[f].setAttribute("data-font-src",d)}};var C=Graph.prototype.isFastZoomEnabled;
-Graph.prototype.isFastZoomEnabled=function(){return C.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};var b=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=b)for(var 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 F=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var d=F.apply(this,arguments);null==d&&null!=this.globalVars&&(d=this.globalVars[b]);return d};Graph.prototype.getDefaultStylesheet=function(){if(null==this.defaultStylesheet){var b=this.themes["default-style2"];this.defaultStylesheet=(new mxCodec(b.ownerDocument)).decode(b)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};
-var M=Graph.prototype.getSvg;Graph.prototype.getSvg=function(b,d,c,f,e,g,l,k,m,n,q,p,u,v){var x=null,t=null,y=null;p||null==this.themes||"darkTheme"!=this.defaultThemeName||(x=this.stylesheet,t=this.defaultForegroundColor,y=this.defaultPageBackgroundColor,this.defaultPageBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":Editor.darkColor,this.defaultForegroundColor="darkTheme"==this.defaultThemeName?"#000000":"#f0f0f0",this.stylesheet=this.getDefaultStylesheet(),this.refresh());var B=M.apply(this,
-arguments),C=this.getCustomFonts();if(q&&0<C.length){var A=B.ownerDocument,G=null!=A.createElementNS?A.createElementNS(mxConstants.NS_SVG,"style"):A.createElement("style");null!=A.setAttributeNS?G.setAttributeNS("type","text/css"):G.setAttribute("type","text/css");for(var N="",F="",J=0;J<C.length;J++){var D=C[J].name,I=C[J].url;Graph.isCssFontUrl(I)?N+="@import url("+I+");\n":F+='@font-face {\nfont-family: "'+D+'";\nsrc: url("'+I+'");\n}\n'}G.appendChild(A.createTextNode(N+F));B.getElementsByTagName("defs")[0].appendChild(G)}null!=
-x&&(this.defaultPageBackgroundColor=y,this.defaultForegroundColor=t,this.stylesheet=x,this.refresh());return B};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 f=b.text.getContentNode();if(null!=f){f=f.cloneNode(!0);if(f.getElementsByTagNameNS)for(var e=
-f.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<e.length;)e[0].parentNode.removeChild(e[0]);null!=f.innerHTML&&(e=b.text.value,b.text.value=f.innerHTML,d.apply(this,arguments),b.text.value=e)}}else d.apply(this,arguments)}}return b};var K=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){K.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var b=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||
-null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),
-this.webKitForceRepaintNode.style.cssText="position:absolute;",b.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,b.ownerSVGElement))}};var B=Graph.prototype.refresh;Graph.prototype.refresh=function(){B.apply(this,arguments);this.refreshBackgroundImage()};Graph.prototype.refreshBackgroundImage=function(){null!=this.backgroundImage&&null!=this.backgroundImage.originalSrc&&(this.setBackgroundImage(this.backgroundImage),this.view.validateBackgroundImage())};var L=Graph.prototype.loadStylesheet;
-Graph.prototype.loadStylesheet=function(){L.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(b){"data:action/json,"==b.substring(0,17)&&(b=JSON.parse(b.substring(17)),null!=b.actions&&this.executeCustomActions(b.actions))};Graph.prototype.executeCustomActions=function(b,d){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),
-this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var c=!1,f=0,e=0,g=mxUtils.bind(this,function(){c||(c=!0,this.model.beginUpdate())}),l=mxUtils.bind(this,function(){c&&(c=!1,this.model.endUpdate())}),k=mxUtils.bind(this,function(){0<f&&f--;0==f&&m()}),m=mxUtils.bind(this,function(){if(e<b.length){var c=this.stoppingCustomActions,n=b[e++],q=[];if(null!=n.open)if(l(),this.isCustomLink(n.open)){if(!this.customLinkClicked(n.open))return}else this.openLink(n.open);
-null==n.wait||c||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;k()}),f++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,""!=n.wait?parseInt(n.wait):1E3),l());null!=n.opacity&&null!=n.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(n.opacity,!0)),n.opacity.value);null!=n.fadeIn&&(f++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeIn,!0)),0,1,k,c?0:
-n.fadeIn.delay));null!=n.fadeOut&&(f++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeOut,!0)),1,0,k,c?0:n.fadeOut.delay));null!=n.wipeIn&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeIn,!0),!0)));null!=n.wipeOut&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeOut,!0),!1)));null!=n.toggle&&(g(),this.toggleCells(this.getCellsForAction(n.toggle,!0)));if(null!=n.show){g();var p=this.getCellsForAction(n.show,!0);Graph.setOpacityForNodes(this.getNodesForCells(p),
-1);this.setCellsVisible(p,!0)}null!=n.hide&&(g(),p=this.getCellsForAction(n.hide,!0),Graph.setOpacityForNodes(this.getNodesForCells(p),0),this.setCellsVisible(p,!1));null!=n.toggleStyle&&null!=n.toggleStyle.key&&(g(),this.toggleCellStyles(n.toggleStyle.key,null!=n.toggleStyle.defaultValue?n.toggleStyle.defaultValue:"0",this.getCellsForAction(n.toggleStyle,!0)));null!=n.style&&null!=n.style.key&&(g(),this.setCellStyles(n.style.key,n.style.value,this.getCellsForAction(n.style,!0)));p=[];null!=n.select&&
-this.isEnabled()&&(p=this.getCellsForAction(n.select),this.setSelectionCells(p));null!=n.highlight&&(p=this.getCellsForAction(n.highlight),this.highlightCells(p,n.highlight.color,n.highlight.duration,n.highlight.opacity));null!=n.scroll&&(p=this.getCellsForAction(n.scroll));null!=n.viewbox&&this.fitWindow(n.viewbox,n.viewbox.border);0<p.length&&this.scrollCellToVisible(p[0]);if(null!=n.tags){p=[];null!=n.tags.hidden&&(p=p.concat(n.tags.hidden));if(null!=n.tags.visible)for(var u=this.getAllTags(),
-v=0;v<u.length;v++)0>mxUtils.indexOf(n.tags.visible,u[v])&&0>mxUtils.indexOf(p,u[v])&&p.push(u[v]);this.hiddenTags=p;this.refresh()}0<q.length&&(f++,this.executeAnimations(q,k,c?1:n.steps,c?0:n.delay));0==f?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 f=
-document.createElement("div");f.innerHTML=this.sanitizeHtml(this.getLabel(d));for(var e=f.getElementsByTagName("a"),g=!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)),g=!0);g&&this.labelChanged(d,f.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(Z){}return d};Graph.prototype.updateCustomLinkActions=function(b,d){for(var c=0;c<d.length;c++){var f=d[c],e;for(e in f)this.updateCustomLinkAction(b,f[e],"cells"),this.updateCustomLinkAction(b,f[e],"excludeCells")}};Graph.prototype.updateCustomLinkAction=function(b,d,c){if(null!=d&&null!=d[c]){for(var f=[],e=0;e<d[c].length;e++)if("*"==d[c][e])f.push(d[c][e]);else{var g=b[d[c][e]];null!=g?""!=g&&f.push(g):f.push(d[c][e])}d[c]=f}};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 f=[],e=0;e<c.length;e++)0>b.excludeCells.indexOf(c[e].id)&&f.push(c[e]);c=f}return c};Graph.prototype.getCellsById=function(b){var d=[];if(null!=b)for(var c=0;c<b.length;c++)if("*"==b[c])var f=this.model.getRoot(),d=d.concat(this.model.filterDescendants(function(b){return b!=f},f));else{var e=this.model.getCell(b[c]);null!=e&&d.push(e)}return d};var O=Graph.prototype.isCellVisible;
-Graph.prototype.isCellVisible=function(b){return O.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,f){var e=[];if(null!=b){d=null!=d?d:this.model.getDescendants(this.model.getRoot());
-for(var g=0,l={},k=0;k<b.length;k++)0<b[k].length&&(l[b[k]]=!0,g++);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]),n=!1;if(0<m.length&&(m=m.split(" "),m.length>=b.length)){for(var q=n=0;q<m.length&&n<g;q++)null!=l[m[q]]&&n++;n=n==g}n&&(1!=f||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=[],f=0;f<b.length;f++){var e=this.getTagsForCell(b[f]),c=[];if(0<e.length){for(var e=e.split(" "),g={},l=0;l<e.length;l++)if(null==d||null!=d[e[l]])g[e[l]]=!0,c.push(e[l]);d=g}else return[]}return c};Graph.prototype.getTagsForCells=function(b){for(var d=[],c={},f=0;f<b.length;f++){var e=this.getTagsForCell(b[f]);if(0<e.length)for(var e=e.split(" "),g=0;g<e.length;g++)null==c[e[g]]&&(c[e[g]]=!0,d.push(e[g]))}return d};Graph.prototype.getTagsForCell=
-function(b){return this.getAttributeForCell(b,"tags","")};Graph.prototype.addTagsForCells=function(b,d){if(0<b.length&&0<d.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){for(var f=this.getTagsForCell(b[c]),e=f.split(" "),g=!1,l=0;l<d.length;l++){var k=mxUtils.trim(d[l]);""!=k&&0>mxUtils.indexOf(e,k)&&(f=0<f.length?f+" "+k:k,g=!0)}g&&this.setAttributeForCell(b[c],"tags",f)}}finally{this.model.endUpdate()}}};Graph.prototype.removeTagsForCells=function(b,d){if(0<b.length&&0<d.length){this.model.beginUpdate();
-try{for(var c=0;c<b.length;c++){var f=this.getTagsForCell(b[c]);if(0<f.length){for(var e=f.split(" "),g=!1,l=0;l<d.length;l++){var k=mxUtils.indexOf(e,d[l]);0<=k&&(e.splice(k,1),g=!0)}g&&this.setAttributeForCell(b[c],"tags",e.join(" "))}}}finally{this.model.endUpdate()}}};Graph.prototype.toggleCells=function(b){this.model.beginUpdate();try{for(var d=0;d<b.length;d++)this.model.setVisible(b[d],!this.model.isVisible(b[d]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(b,
-d){this.model.beginUpdate();try{for(var c=0;c<b.length;c++)this.model.setVisible(b[c],d)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(b,d,c,f){for(var e=0;e<b.length;e++)this.highlightCell(b[e],d,c,f)};Graph.prototype.highlightCell=function(b,d,c,f){d=null!=d?d:mxConstants.DEFAULT_VALID_COLOR;c=null!=c?c:1E3;b=this.view.getState(b);if(null!=b){var e=Math.max(5,mxUtils.getValue(b.style,mxConstants.STYLE_STROKEWIDTH,1)+4),g=new mxCellHighlight(this,d,e,!1);null!=f&&(g.opacity=
-f);g.highlight(b);window.setTimeout(function(){null!=g.shape&&(mxUtils.setPrefixedStyle(g.shape.node.style,"transition","all 1200ms ease-in-out"),g.shape.node.style.opacity=0);window.setTimeout(function(){g.destroy()},1200)},c)}};Graph.prototype.addSvgShadow=function(b,d,c,f){c=null!=c?c:!1;f=null!=f?f:!0;var e=b.ownerDocument,g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"filter"):e.createElement("filter");g.setAttribute("id",this.shadowId);var l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,
-"feGaussianBlur"):e.createElement("feGaussianBlur");l.setAttribute("in","SourceAlpha");l.setAttribute("stdDeviation",this.svgShadowBlur);l.setAttribute("result","blur");g.appendChild(l);l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feOffset"):e.createElement("feOffset");l.setAttribute("in","blur");l.setAttribute("dx",this.svgShadowSize);l.setAttribute("dy",this.svgShadowSize);l.setAttribute("result","offsetBlur");g.appendChild(l);l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,
-"feFlood"):e.createElement("feFlood");l.setAttribute("flood-color",this.svgShadowColor);l.setAttribute("flood-opacity",this.svgShadowOpacity);l.setAttribute("result","offsetColor");g.appendChild(l);l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feComposite"):e.createElement("feComposite");l.setAttribute("in","offsetColor");l.setAttribute("in2","offsetBlur");l.setAttribute("operator","in");l.setAttribute("result","offsetBlur");g.appendChild(l);l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,
-"feBlend"):e.createElement("feBlend");l.setAttribute("in","SourceGraphic");l.setAttribute("in2","offsetBlur");g.appendChild(l);l=b.getElementsByTagName("defs");0==l.length?(e=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"defs"):e.createElement("defs"),null!=b.firstChild?b.insertBefore(e,b.firstChild):b.appendChild(e)):e=l[0];e.appendChild(g);c||(d=null!=d?d:b.getElementsByTagName("g")[0],null!=d&&(d.setAttribute("filter","url(#"+this.shadowId+")"),!isNaN(parseInt(b.getAttribute("width")))&&
-f&&(b.setAttribute("width",parseInt(b.getAttribute("width"))+6),b.setAttribute("height",parseInt(b.getAttribute("height"))+6),d=b.getAttribute("viewBox"),null!=d&&0<d.length&&(d=d.split(" "),3<d.length&&(w=parseFloat(d[2])+6,h=parseFloat(d[3])+6,b.setAttribute("viewBox",d[0]+" "+d[1]+" "+w+" "+h))))));return g};Graph.prototype.setShadowVisible=function(b,d){mxClient.IS_SVG&&!mxClient.IS_SF&&(d=null!=d?d:!0,(this.shadowVisible=b)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+
-")"):this.view.getDrawPane().removeAttribute("filter"),d&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var b=this.model.getChildCount(this.model.root),d,c=0;do d=this.model.getChildAt(this.model.root,c);while(c++<b&&"1"==mxUtils.getValue(this.getCellStyle(d),"locked","0"));null!=d&&this.setDefaultParent(d)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries.arrows2=
-[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.atlassian=[STENCIL_PATH+"/atlassian.xml",SHAPES_PATH+"/mxAtlassian.js"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.bpmn2=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.c4=[SHAPES_PATH+"/mxC4.js"];mxStencilRegistry.libraries.cisco19=[SHAPES_PATH+"/mxCisco19.js",STENCIL_PATH+
-"/cisco19.xml"];mxStencilRegistry.libraries.cisco_safe=[SHAPES_PATH+"/mxCiscoSafe.js",STENCIL_PATH+"/cisco_safe/architecture.xml",STENCIL_PATH+"/cisco_safe/business_icons.xml",STENCIL_PATH+"/cisco_safe/capability.xml",STENCIL_PATH+"/cisco_safe/design.xml",STENCIL_PATH+"/cisco_safe/iot_things_icons.xml",STENCIL_PATH+"/cisco_safe/people_places_things_icons.xml",STENCIL_PATH+"/cisco_safe/security_icons.xml",STENCIL_PATH+"/cisco_safe/technology_icons.xml",STENCIL_PATH+"/cisco_safe/threat.xml"];mxStencilRegistry.libraries.dfd=
-[SHAPES_PATH+"/mxDFD.js"];mxStencilRegistry.libraries.er=[SHAPES_PATH+"/er/mxER.js"];mxStencilRegistry.libraries.kubernetes=[SHAPES_PATH+"/mxKubernetes.js",STENCIL_PATH+"/kubernetes.xml"];mxStencilRegistry.libraries.flowchart=[SHAPES_PATH+"/mxFlowchart.js",STENCIL_PATH+"/flowchart.xml"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral=[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5=[STENCIL_PATH+
-"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android=[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/abstract"]=
-[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/abstract.xml"];mxStencilRegistry.libraries["electrical/logic_gates"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/logic_gates.xml"];mxStencilRegistry.libraries["electrical/miscellaneous"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/miscellaneous.xml"];mxStencilRegistry.libraries["electrical/signal_sources"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/signal_sources.xml"];mxStencilRegistry.libraries["electrical/transmission"]=
-[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries.infographic=[SHAPES_PATH+"/mxInfographic.js"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]=[SHAPES_PATH+"/mockup/mxMockupGraphics.js",
-STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",
-STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",SHAPES_PATH+"/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 ca=mxMarker.createMarker;mxMarker.createMarker=
-function(b,d,c,f,e,g,l,k,m,n){if(null!=c&&null==mxMarker.markers[c]){var q=this.getPackageForType(c);null!=q&&mxStencilRegistry.getStencil(q)}return ca.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(u.value))));u.value=Math.max(1,Math.min(k,Math.min(parseInt(v.value),parseInt(u.value))))}function f(d){function c(d,c,g){var l=d.useCssTransforms,k=d.currentTranslate,m=d.currentScale,n=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 p=d.getGraphBounds(),u=0,v=0,x=M.get(),t=1/d.pageScale,C=B.checked;if(C)var t=parseInt(K.value),N=parseInt(J.value),t=Math.min(x.height*N/(p.height/d.view.scale),x.width*t/(p.width/d.view.scale));else t=parseInt(y.value)/(100*d.pageScale),isNaN(t)&&(f=1/d.pageScale,y.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*
-f);x.height=Math.ceil(x.height*f);t*=f;!C&&d.pageVisible?(p=d.getPageLayout(),u-=p.x*x.width,v-=p.y*x.height):C=!0;if(null==c){c=PrintDialog.createPrintPreview(d,t,x,0,u,v,C);c.pageSelector=!1;c.mathEnabled=!1;u=b.getCurrentFile();null!=u&&(c.title=u.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 f=d.getCustomFonts(),e=0;e<f.length;e++){var g=f[e].name,l=f[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(g)+'";\nsrc: url("'+mxUtils.htmlEntities(l)+'");\n}'),c.writeln("</style>"))}};if("undefined"!==typeof MathJax){var F=c.renderPage;c.renderPage=function(d,c,f,e,g,l){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var m=F.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:m.className="geDisableMathJax";return m}}u=null;v=e.enableFlowAnimation;e.enableFlowAnimation=
-!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(u=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.refresh());c.open(null,null,g,!0);e.enableFlowAnimation=v;null!=u&&(e.stylesheet=u,e.refresh())}else{x=d.background;if(null==x||""==x||x==mxConstants.NONE)x="#ffffff";c.backgroundColor=x;c.autoOrigin=C;c.appendGraph(d,t,u,v,g,!0);g=d.getCustomFonts();if(null!=c.wnd)for(u=0;u<g.length;u++)v=g[u].name,C=g[u].url,Graph.isCssFontUrl(C)?c.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(C)+
-'" charset="UTF-8" type="text/css">'):(c.wnd.document.writeln('<style type="text/css">'),c.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(v)+'";\nsrc: url("'+mxUtils.htmlEntities(C)+'");\n}'),c.wnd.document.writeln("</style>"))}l&&(d.useCssTransforms=l,d.currentTranslate=k,d.currentScale=m,d.view.translate=n,d.view.scale=q);return c}var f=parseInt(E.value)/100;isNaN(f)&&(f=1,E.value="100 %");var f=.75*f,g=null;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(g=e.stylesheet,
-e.stylesheet=e.getDefaultStylesheet(),e.refresh());var l=u.value,k=v.value,n=!q.checked,p=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,l,k,B.checked,K.value,J.value,parseInt(y.value)/100,parseInt(E.value)/100,M.get());else{n&&(n=l==m&&k==m);if(!n&&null!=b.pages&&b.pages.length){var x=0,n=b.pages.length-1;q.checked||(x=parseInt(l)-1,n=parseInt(k)-1);for(var t=x;t<=n;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 F=l.getGlobalVariable;l.getGlobalVariable=function(d){return"page"==d?C.getName():"pagenumber"==d?t+1:"pagecount"==d?null!=b.pages?b.pages.length:1:F.apply(this,
-arguments)};document.body.appendChild(l.container);b.updatePageRoot(C);l.model.setRoot(C.root)}p=c(l,p,t!=n);l!=e&&l.container.parentNode.removeChild(l.container)}}else p=c(e);null==p?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(p.mathEnabled&&(n=p.wnd.document,d&&(p.wnd.IMMEDIATE_PRINT=!0),n.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),p.closeDocument(),!p.mathEnabled&&d&&PrintDialog.printPreview(p));null!=g&&(e.stylesheet=
-g,e.refresh())}}var e=b.editor.graph,g=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"));g.appendChild(l);var k=1,m=1,n=document.createElement("div");n.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");n.appendChild(q);l=document.createElement("span");mxUtils.write(l,mxResources.get("printAllPages"));n.appendChild(l);mxUtils.br(n);var p=q.cloneNode(!0);q.setAttribute("checked","checked");p.setAttribute("value","range");n.appendChild(p);l=document.createElement("span");mxUtils.write(l,mxResources.get("pages")+":");n.appendChild(l);var u=document.createElement("input");u.style.cssText="margin:0 8px 0 8px;";u.setAttribute("value","1");u.setAttribute("type",
-"number");u.setAttribute("min","1");u.style.width="50px";n.appendChild(u);l=document.createElement("span");mxUtils.write(l,mxResources.get("to"));n.appendChild(l);var v=u.cloneNode(!0);n.appendChild(v);mxEvent.addListener(u,"focus",function(){p.checked=!0});mxEvent.addListener(v,"focus",function(){p.checked=!0});mxEvent.addListener(u,"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;u.value=m;v.value=m;break}u.setAttribute("max",k);v.setAttribute("max",k);b.isPagesEnabled()?1<k&&(g.appendChild(n),p.checked=!0):p.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 y=document.createElement("input");
-y.style.cssText="margin:0 8px 0 8px;";y.setAttribute("value","100 %");y.style.width="50px";x.appendChild(y);mxEvent.addListener(y,"focus",function(){t.checked=!0});g.appendChild(x);var n=n.cloneNode(!1),B=t.cloneNode(!0);B.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(B);n.appendChild(l);x=document.createElement("table");x.style.display="inline-block";
-var C=document.createElement("tbody"),N=document.createElement("tr"),F=N.cloneNode(!0),D=document.createElement("td"),O=D.cloneNode(!0),G=D.cloneNode(!0),H=D.cloneNode(!0),L=D.cloneNode(!0),Q=D.cloneNode(!0);D.style.textAlign="right";H.style.textAlign="right";mxUtils.write(D,mxResources.get("fitTo"));var K=document.createElement("input");K.style.cssText="margin:0 8px 0 8px;";K.setAttribute("value","1");K.setAttribute("min","1");K.setAttribute("type","number");K.style.width="40px";O.appendChild(K);
-l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));G.appendChild(l);mxUtils.write(H,mxResources.get("fitToBy"));var J=K.cloneNode(!0);L.appendChild(J);mxEvent.addListener(K,"focus",function(){B.checked=!0});mxEvent.addListener(J,"focus",function(){B.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));Q.appendChild(l);N.appendChild(D);N.appendChild(O);N.appendChild(G);F.appendChild(H);F.appendChild(L);F.appendChild(Q);
-C.appendChild(N);C.appendChild(F);x.appendChild(C);n.appendChild(x);g.appendChild(n);n=document.createElement("div");l=document.createElement("div");l.style.fontWeight="bold";l.style.marginBottom="12px";mxUtils.write(l,mxResources.get("paperSize"));n.appendChild(l);l=document.createElement("div");l.style.marginBottom="12px";var M=PageSetupDialog.addPageFormatPanel(l,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);n.appendChild(l);l=document.createElement("span");mxUtils.write(l,
-mxResources.get("pageScale"));n.appendChild(l);var E=document.createElement("input");E.style.cssText="margin:0 8px 0 8px;";E.setAttribute("value","100 %");E.style.width="60px";n.appendChild(E);g.appendChild(n);l=document.createElement("div");l.style.cssText="text-align:right;margin:48px 0 0 0;";n=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});n.className="geBtn";b.editor.cancelFirst&&l.appendChild(n);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();f(!1)}),x.className="geBtn",l.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();f(!0)});x.className="geBtn gePrimaryBtn";l.appendChild(x);b.editor.cancelFirst||l.appendChild(n);g.appendChild(l);this.container=g};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&&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 Q=document.createElement("canvas"),W=new Image;W.onload=function(){try{Q.getContext("2d").drawImage(W,
-0,0);var b=Q.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=b&&6<b.length}catch(J){}};W.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(G){}})();
+mxUtils.getValue(d,"autoAddCol","0"),c.autoAddRow="1"==mxUtils.getValue(d,"autoAddRow",c.autoAddCol?"0":"1"),c.colWidths=d.colWidths||"100",c.rowHeights=d.rowHeights||"50",c}return f.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.hex2rgba(this.defaultForegroundColor),
+c=mxUtils.hex2rgba(this.defaultPageBackgroundColor);this.replaceDefaultColor(b,mxConstants.STYLE_FONTCOLOR,d);this.replaceDefaultColor(b,mxConstants.STYLE_FILLCOLOR,c);this.replaceDefaultColor(b,mxConstants.STYLE_STROKECOLOR,d);this.replaceDefaultColor(b,mxConstants.STYLE_IMAGE_BORDER,d);this.replaceDefaultColor(b,mxConstants.STYLE_IMAGE_BACKGROUND,c);this.replaceDefaultColor(b,mxConstants.STYLE_LABEL_BORDERCOLOR,d);this.replaceDefaultColor(b,mxConstants.STYLE_SWIMLANE_FILLCOLOR,c);this.replaceDefaultColor(b,
+mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,c)}};Graph.prototype.replaceDefaultColor=function(b,d,c){null!=b&&"default"==b[d]&&null!=c&&(b[d]=c)};var D=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,d,c,f,e,g,l,k,m,n,q){D.apply(this,arguments);Graph.processFontAttributes(q)};var I=mxText.prototype.redraw;mxText.prototype.redraw=function(){I.apply(this,arguments);null!=this.node&&"DIV"==this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.createTagsDialog=
+function(b,d,c){function f(){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();f();l.refresh()}function g(b,c){n.innerHTML="";if(0<b.length){var g=document.createElement("table");g.setAttribute("cellpadding","2");g.style.boxSizing="border-box";g.style.tableLayout="fixed";g.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 g=
+0>mxUtils.indexOf(l.hiddenTags,b),n=document.createElement("tr"),q=document.createElement("td");q.style.align="center";q.style.width="16px";var p=document.createElement("img");p.setAttribute("src",g?Editor.visibleImage:Editor.hiddenImage);p.setAttribute("title",mxResources.get(g?"hideIt":"show",[b]));mxUtils.setOpacity(p,g?75:25);p.style.verticalAlign="middle";p.style.cursor="pointer";p.style.width="16px";if(d||Editor.isDarkMode())p.style.filter="invert(100%)";q.appendChild(p);mxEvent.addListener(p,
+"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),f(),l.refresh());mxEvent.consume(d)});n.appendChild(q);q=document.createElement("td");q.style.overflow="hidden";q.style.whiteSpace="nowrap";q.style.textOverflow="ellipsis";q.style.verticalAlign="middle";q.style.cursor="pointer";q.setAttribute("title",b);a=document.createElement("a");mxUtils.write(a,b);a.style.textOverflow="ellipsis";
+a.style.position="relative";mxUtils.setOpacity(a,g?100:40);q.appendChild(a);mxEvent.addListener(q,"click",function(d){if(mxEvent.isShiftDown(d)){e(!0);var c=l.getCellsForTags([b],null,null,!0);l.isEnabled()?l.setSelectionCells(c):l.highlightCells(c)}else if(g&&0<l.hiddenTags.length)e(!0);else{var c=k.slice(),m=mxUtils.indexOf(c,b);c.splice(m,1);l.hiddenTags=c;f();l.refresh()}mxEvent.consume(d)});n.appendChild(q);if(l.isEnabled()){q=document.createElement("td");q.style.verticalAlign="middle";q.style.textAlign=
+"center";q.style.width="18px";if(null==c){q.style.align="center";q.style.width="16px";p=document.createElement("img");p.setAttribute("src",Editor.crossImage);p.setAttribute("title",mxResources.get("removeIt",[b]));mxUtils.setOpacity(p,g?75:25);p.style.verticalAlign="middle";p.style.cursor="pointer";p.style.width="16px";if(d||Editor.isDarkMode())p.style.filter="invert(100%)";mxEvent.addListener(p,"click",function(d){var c=mxUtils.indexOf(k,b);0<=c&&k.splice(c,1);l.removeTagsForCells(l.model.getDescendants(l.model.getRoot()),
+[b]);l.refresh();mxEvent.consume(d)});q.appendChild(p)}else{var u=document.createElement("input");u.setAttribute("type","checkbox");u.style.margin="0px";u.defaultChecked=null!=c&&0<=mxUtils.indexOf(c,b);u.checked=u.defaultChecked;u.style.background="transparent";u.setAttribute("title",mxResources.get(u.defaultChecked?"removeIt":"add",[b]));mxEvent.addListener(u,"change",function(d){u.checked?l.addTagsForCells(l.getSelectionCells(),[b]):l.removeTagsForCells(l.getSelectionCells(),[b]);mxEvent.consume(d)});
+q.appendChild(u)}n.appendChild(q)}m.appendChild(n)})(b[q]);g.appendChild(m);n.appendChild(g)}}var l=this,k=l.hiddenTags.slice(),m=document.createElement("div");m.style.userSelect="none";m.style.overflow="hidden";m.style.padding="10px";m.style.height="100%";var n=document.createElement("div");n.style.boxSizing="border-box";n.style.borderRadius="4px";n.style.userSelect="none";n.style.overflow="auto";n.style.position="absolute";n.style.left="10px";n.style.right="10px";n.style.top="10px";n.style.border=
+l.isEnabled()?"1px solid #808080":"none";n.style.bottom=l.isEnabled()?"48px":"10px";m.appendChild(n);var q=mxUtils.button(mxResources.get("reset"),function(b){l.hiddenTags=[];mxEvent.isShiftDown(b)||(k=l.hiddenTags.slice());f();l.refresh()});q.setAttribute("title",mxResources.get("reset"));q.className="geBtn";q.style.margin="0 4px 0 0";var p=mxUtils.button(mxResources.get("add"),function(){null!=c&&c(k,function(b){k=b;u()})});p.setAttribute("title",mxResources.get("add"));p.className="geBtn";p.style.margin=
+"0";l.addListener(mxEvent.ROOT,function(){k=l.hiddenTags.slice()});var u=mxUtils.bind(this,function(d,c){if(b()){for(var f=l.getAllTags(),e=0;e<f.length;e++)0>mxUtils.indexOf(k,f[e])&&k.push(f[e]);k.sort();l.isSelectionEmpty()?g(k):g(k,l.getCommonTagsForCells(l.getSelectionCells()))}});l.selectionModel.addListener(mxEvent.CHANGE,u);l.model.addListener(mxEvent.CHANGE,u);l.addListener(mxEvent.REFRESH,u);var v=document.createElement("div");v.style.boxSizing="border-box";v.style.whiteSpace="nowrap";v.style.position=
+"absolute";v.style.overflow="hidden";v.style.bottom="0px";v.style.height="42px";v.style.right="10px";v.style.left="10px";l.isEnabled()&&(v.appendChild(q),v.appendChild(p),m.appendChild(v));return{div:m,refresh:u}};Graph.prototype.getCustomFonts=function(){var b=this.extFonts,b=null!=b?b.slice():[],d;for(d in Graph.customFontElements){var c=Graph.customFontElements[d];b.push({name:c.name,url:c.url})}return b};Graph.prototype.setFont=function(b,d){Graph.addFont(b,d);document.execCommand("fontname",
+!1,b);if(null!=d){var c=this.cellEditor.textarea.getElementsByTagName("font");d=Graph.getFontUrl(b,d);for(var f=0;f<c.length;f++)c[f].getAttribute("face")==b&&c[f].getAttribute("data-font-src")!=d&&c[f].setAttribute("data-font-src",d)}};var B=Graph.prototype.isFastZoomEnabled;Graph.prototype.isFastZoomEnabled=function(){return B.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=
+null!=this.globalVars?mxUtils.clone(this.globalVars):{};var b=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=b)for(var d in b)this.globalVars[d]=b[d]}catch(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 G=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var d=G.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 M=Graph.prototype.getSvg;Graph.prototype.getSvg=function(b,d,c,f,e,g,l,k,m,n,q,p,u,v){var x=null,t=null,y=null;p||null==this.themes||"darkTheme"!=this.defaultThemeName||(x=this.stylesheet,t=this.defaultForegroundColor,
+y=this.defaultPageBackgroundColor,this.defaultPageBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":Editor.darkColor,this.defaultForegroundColor="darkTheme"==this.defaultThemeName?"#000000":"#f0f0f0",this.stylesheet=this.getDefaultStylesheet(),this.refresh());var C=M.apply(this,arguments),B=this.getCustomFonts();if(q&&0<B.length){var A=C.ownerDocument,H=null!=A.createElementNS?A.createElementNS(mxConstants.NS_SVG,"style"):A.createElement("style");null!=A.setAttributeNS?H.setAttributeNS("type",
+"text/css"):H.setAttribute("type","text/css");for(var N="",E="",G=0;G<B.length;G++){var J=B[G].name,D=B[G].url;Graph.isCssFontUrl(D)?N+="@import url("+D+");\n":E+='@font-face {\nfont-family: "'+J+'";\nsrc: url("'+D+'");\n}\n'}H.appendChild(A.createTextNode(N+E));C.getElementsByTagName("defs")[0].appendChild(H)}null!=x&&(this.defaultPageBackgroundColor=y,this.defaultForegroundColor=t,this.stylesheet=x,this.refresh());return C};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 f=b.text.getContentNode();if(null!=f){f=f.cloneNode(!0);if(f.getElementsByTagNameNS)for(var e=f.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<e.length;)e[0].parentNode.removeChild(e[0]);null!=f.innerHTML&&(e=b.text.value,b.text.value=
+f.innerHTML,d.apply(this,arguments),b.text.value=e)}}else d.apply(this,arguments)}}return b};var K=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){K.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var b=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||
+this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),this.webKitForceRepaintNode.style.cssText="position:absolute;",b.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,b.ownerSVGElement))}};
+var 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 L=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){L.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(b){"data:action/json,"==
+b.substring(0,17)&&(b=JSON.parse(b.substring(17)),null!=b.actions&&this.executeCustomActions(b.actions))};Graph.prototype.executeCustomActions=function(b,d){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var c=!1,f=0,e=0,g=mxUtils.bind(this,function(){c||
+(c=!0,this.model.beginUpdate())}),l=mxUtils.bind(this,function(){c&&(c=!1,this.model.endUpdate())}),k=mxUtils.bind(this,function(){0<f&&f--;0==f&&m()}),m=mxUtils.bind(this,function(){if(e<b.length){var c=this.stoppingCustomActions,n=b[e++],q=[];if(null!=n.open)if(l(),this.isCustomLink(n.open)){if(!this.customLinkClicked(n.open))return}else this.openLink(n.open);null==n.wait||c||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;k()}),
+f++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,""!=n.wait?parseInt(n.wait):1E3),l());null!=n.opacity&&null!=n.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(n.opacity,!0)),n.opacity.value);null!=n.fadeIn&&(f++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeIn,!0)),0,1,k,c?0:n.fadeIn.delay));null!=n.fadeOut&&(f++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeOut,!0)),1,0,k,c?0:n.fadeOut.delay));
+null!=n.wipeIn&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeIn,!0),!0)));null!=n.wipeOut&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeOut,!0),!1)));null!=n.toggle&&(g(),this.toggleCells(this.getCellsForAction(n.toggle,!0)));if(null!=n.show){g();var p=this.getCellsForAction(n.show,!0);Graph.setOpacityForNodes(this.getNodesForCells(p),1);this.setCellsVisible(p,!0)}null!=n.hide&&(g(),p=this.getCellsForAction(n.hide,!0),Graph.setOpacityForNodes(this.getNodesForCells(p),
+0),this.setCellsVisible(p,!1));null!=n.toggleStyle&&null!=n.toggleStyle.key&&(g(),this.toggleCellStyles(n.toggleStyle.key,null!=n.toggleStyle.defaultValue?n.toggleStyle.defaultValue:"0",this.getCellsForAction(n.toggleStyle,!0)));null!=n.style&&null!=n.style.key&&(g(),this.setCellStyles(n.style.key,n.style.value,this.getCellsForAction(n.style,!0)));p=[];null!=n.select&&this.isEnabled()&&(p=this.getCellsForAction(n.select),this.setSelectionCells(p));null!=n.highlight&&(p=this.getCellsForAction(n.highlight),
+this.highlightCells(p,n.highlight.color,n.highlight.duration,n.highlight.opacity));null!=n.scroll&&(p=this.getCellsForAction(n.scroll));null!=n.viewbox&&this.fitWindow(n.viewbox,n.viewbox.border);0<p.length&&this.scrollCellToVisible(p[0]);if(null!=n.tags){p=[];null!=n.tags.hidden&&(p=p.concat(n.tags.hidden));if(null!=n.tags.visible)for(var u=this.getAllTags(),v=0;v<u.length;v++)0>mxUtils.indexOf(n.tags.visible,u[v])&&0>mxUtils.indexOf(p,u[v])&&p.push(u[v]);this.hiddenTags=p;this.refresh()}0<q.length&&
+(f++,this.executeAnimations(q,k,c?1:n.steps,c?0:n.delay));0==f?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 f=document.createElement("div");f.innerHTML=this.sanitizeHtml(this.getLabel(d));for(var e=f.getElementsByTagName("a"),g=!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)),g=!0);g&&this.labelChanged(d,f.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(aa){}return d};Graph.prototype.updateCustomLinkActions=function(b,d){for(var c=
+0;c<d.length;c++){var f=d[c],e;for(e in f)this.updateCustomLinkAction(b,f[e],"cells"),this.updateCustomLinkAction(b,f[e],"excludeCells")}};Graph.prototype.updateCustomLinkAction=function(b,d,c){if(null!=d&&null!=d[c]){for(var f=[],e=0;e<d[c].length;e++)if("*"==d[c][e])f.push(d[c][e]);else{var g=b[d[c][e]];null!=g?""!=g&&f.push(g):f.push(d[c][e])}d[c]=f}};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 f=
+[],e=0;e<c.length;e++)0>b.excludeCells.indexOf(c[e].id)&&f.push(c[e]);c=f}return c};Graph.prototype.getCellsById=function(b){var d=[];if(null!=b)for(var c=0;c<b.length;c++)if("*"==b[c])var f=this.model.getRoot(),d=d.concat(this.model.filterDescendants(function(b){return b!=f},f));else{var e=this.model.getCell(b[c]);null!=e&&d.push(e)}return d};var O=Graph.prototype.isCellVisible;Graph.prototype.isCellVisible=function(b){return O.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,f){var e=[];if(null!=b){d=null!=d?d:this.model.getDescendants(this.model.getRoot());for(var g=0,l={},k=0;k<b.length;k++)0<b[k].length&&(l[b[k]]=!0,g++);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]),n=!1;if(0<m.length&&(m=m.split(" "),m.length>=b.length)){for(var q=n=0;q<m.length&&n<g;q++)null!=l[m[q]]&&n++;n=n==g}n&&(1!=f||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=[],f=0;f<b.length;f++){var e=this.getTagsForCell(b[f]),
+c=[];if(0<e.length){for(var e=e.split(" "),g={},l=0;l<e.length;l++)if(null==d||null!=d[e[l]])g[e[l]]=!0,c.push(e[l]);d=g}else return[]}return c};Graph.prototype.getTagsForCells=function(b){for(var d=[],c={},f=0;f<b.length;f++){var e=this.getTagsForCell(b[f]);if(0<e.length)for(var e=e.split(" "),g=0;g<e.length;g++)null==c[e[g]]&&(c[e[g]]=!0,d.push(e[g]))}return d};Graph.prototype.getTagsForCell=function(b){return this.getAttributeForCell(b,"tags","")};Graph.prototype.addTagsForCells=function(b,d){if(0<
+b.length&&0<d.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){for(var f=this.getTagsForCell(b[c]),e=f.split(" "),g=!1,l=0;l<d.length;l++){var k=mxUtils.trim(d[l]);""!=k&&0>mxUtils.indexOf(e,k)&&(f=0<f.length?f+" "+k:k,g=!0)}g&&this.setAttributeForCell(b[c],"tags",f)}}finally{this.model.endUpdate()}}};Graph.prototype.removeTagsForCells=function(b,d){if(0<b.length&&0<d.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){var f=this.getTagsForCell(b[c]);if(0<f.length){for(var e=
+f.split(" "),g=!1,l=0;l<d.length;l++){var k=mxUtils.indexOf(e,d[l]);0<=k&&(e.splice(k,1),g=!0)}g&&this.setAttributeForCell(b[c],"tags",e.join(" "))}}}finally{this.model.endUpdate()}}};Graph.prototype.toggleCells=function(b){this.model.beginUpdate();try{for(var d=0;d<b.length;d++)this.model.setVisible(b[d],!this.model.isVisible(b[d]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(b,d){this.model.beginUpdate();try{for(var c=0;c<b.length;c++)this.model.setVisible(b[c],d)}finally{this.model.endUpdate()}};
+Graph.prototype.highlightCells=function(b,d,c,f){for(var e=0;e<b.length;e++)this.highlightCell(b[e],d,c,f)};Graph.prototype.highlightCell=function(b,d,c,f){d=null!=d?d:mxConstants.DEFAULT_VALID_COLOR;c=null!=c?c:1E3;b=this.view.getState(b);if(null!=b){var e=Math.max(5,mxUtils.getValue(b.style,mxConstants.STYLE_STROKEWIDTH,1)+4),g=new mxCellHighlight(this,d,e,!1);null!=f&&(g.opacity=f);g.highlight(b);window.setTimeout(function(){null!=g.shape&&(mxUtils.setPrefixedStyle(g.shape.node.style,"transition",
+"all 1200ms ease-in-out"),g.shape.node.style.opacity=0);window.setTimeout(function(){g.destroy()},1200)},c)}};Graph.prototype.addSvgShadow=function(b,d,c,f){c=null!=c?c:!1;f=null!=f?f:!0;var e=b.ownerDocument,g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"filter"):e.createElement("filter");g.setAttribute("id",this.shadowId);var l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):e.createElement("feGaussianBlur");l.setAttribute("in","SourceAlpha");l.setAttribute("stdDeviation",
+this.svgShadowBlur);l.setAttribute("result","blur");g.appendChild(l);l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feOffset"):e.createElement("feOffset");l.setAttribute("in","blur");l.setAttribute("dx",this.svgShadowSize);l.setAttribute("dy",this.svgShadowSize);l.setAttribute("result","offsetBlur");g.appendChild(l);l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feFlood"):e.createElement("feFlood");l.setAttribute("flood-color",this.svgShadowColor);l.setAttribute("flood-opacity",
+this.svgShadowOpacity);l.setAttribute("result","offsetColor");g.appendChild(l);l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feComposite"):e.createElement("feComposite");l.setAttribute("in","offsetColor");l.setAttribute("in2","offsetBlur");l.setAttribute("operator","in");l.setAttribute("result","offsetBlur");g.appendChild(l);l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feBlend"):e.createElement("feBlend");l.setAttribute("in","SourceGraphic");l.setAttribute("in2",
+"offsetBlur");g.appendChild(l);l=b.getElementsByTagName("defs");0==l.length?(e=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"defs"):e.createElement("defs"),null!=b.firstChild?b.insertBefore(e,b.firstChild):b.appendChild(e)):e=l[0];e.appendChild(g);c||(d=null!=d?d:b.getElementsByTagName("g")[0],null!=d&&(d.setAttribute("filter","url(#"+this.shadowId+")"),!isNaN(parseInt(b.getAttribute("width")))&&f&&(b.setAttribute("width",parseInt(b.getAttribute("width"))+6),b.setAttribute("height",
+parseInt(b.getAttribute("height"))+6),d=b.getAttribute("viewBox"),null!=d&&0<d.length&&(d=d.split(" "),3<d.length&&(w=parseFloat(d[2])+6,h=parseFloat(d[3])+6,b.setAttribute("viewBox",d[0]+" "+d[1]+" "+w+" "+h))))));return g};Graph.prototype.setShadowVisible=function(b,d){mxClient.IS_SVG&&!mxClient.IS_SF&&(d=null!=d?d:!0,(this.shadowVisible=b)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),d&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};
+Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var b=this.model.getChildCount(this.model.root),d,c=0;do d=this.model.getChildAt(this.model.root,c);while(c++<b&&"1"==mxUtils.getValue(this.getCellStyle(d),"locked","0"));null!=d&&this.setDefaultParent(d)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.atlassian=[STENCIL_PATH+"/atlassian.xml",SHAPES_PATH+
+"/mxAtlassian.js"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.bpmn2=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.c4=[SHAPES_PATH+"/mxC4.js"];mxStencilRegistry.libraries.cisco19=[SHAPES_PATH+"/mxCisco19.js",STENCIL_PATH+"/cisco19.xml"];mxStencilRegistry.libraries.cisco_safe=[SHAPES_PATH+"/mxCiscoSafe.js",STENCIL_PATH+"/cisco_safe/architecture.xml",
+STENCIL_PATH+"/cisco_safe/business_icons.xml",STENCIL_PATH+"/cisco_safe/capability.xml",STENCIL_PATH+"/cisco_safe/design.xml",STENCIL_PATH+"/cisco_safe/iot_things_icons.xml",STENCIL_PATH+"/cisco_safe/people_places_things_icons.xml",STENCIL_PATH+"/cisco_safe/security_icons.xml",STENCIL_PATH+"/cisco_safe/technology_icons.xml",STENCIL_PATH+"/cisco_safe/threat.xml"];mxStencilRegistry.libraries.dfd=[SHAPES_PATH+"/mxDFD.js"];mxStencilRegistry.libraries.er=[SHAPES_PATH+"/er/mxER.js"];mxStencilRegistry.libraries.kubernetes=
+[SHAPES_PATH+"/mxKubernetes.js",STENCIL_PATH+"/kubernetes.xml"];mxStencilRegistry.libraries.flowchart=[SHAPES_PATH+"/mxFlowchart.js",STENCIL_PATH+"/flowchart.xml"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral=[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5=[STENCIL_PATH+"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];
+mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android=[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/abstract"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/abstract.xml"];mxStencilRegistry.libraries["electrical/logic_gates"]=
+[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/logic_gates.xml"];mxStencilRegistry.libraries["electrical/miscellaneous"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/miscellaneous.xml"];mxStencilRegistry.libraries["electrical/signal_sources"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/signal_sources.xml"];mxStencilRegistry.libraries["electrical/transmission"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries.infographic=
+[SHAPES_PATH+"/mxInfographic.js"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]=[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];
+mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",SHAPES_PATH+
+"/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 da=mxMarker.createMarker;mxMarker.createMarker=function(b,d,c,f,e,g,l,k,m,n){if(null!=c&&null==mxMarker.markers[c]){var q=this.getPackageForType(c);null!=
+q&&mxStencilRegistry.getStencil(q)}return da.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(u.value))));u.value=Math.max(1,Math.min(k,Math.min(parseInt(v.value),parseInt(u.value))))}function f(d){function c(d,c,g){var l=d.useCssTransforms,k=d.currentTranslate,m=d.currentScale,n=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 p=d.getGraphBounds(),u=0,v=0,x=M.get(),t=1/d.pageScale,B=C.checked;if(B)var t=parseInt(K.value),N=parseInt(J.value),t=Math.min(x.height*N/(p.height/d.view.scale),x.width*t/(p.width/d.view.scale));else t=parseInt(y.value)/(100*d.pageScale),isNaN(t)&&(f=1/d.pageScale,y.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*f);x.height=Math.ceil(x.height*f);t*=f;!B&&d.pageVisible?(p=d.getPageLayout(),u-=p.x*x.width,v-=p.y*x.height):
+B=!0;if(null==c){c=PrintDialog.createPrintPreview(d,t,x,0,u,v,B);c.pageSelector=!1;c.mathEnabled=!1;u=b.getCurrentFile();null!=u&&(c.title=u.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 f=d.getCustomFonts(),e=0;e<f.length;e++){var g=f[e].name,l=f[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(g)+'";\nsrc: url("'+mxUtils.htmlEntities(l)+'");\n}'),c.writeln("</style>"))}};
+if("undefined"!==typeof MathJax){var G=c.renderPage;c.renderPage=function(d,c,f,e,g,l){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var m=G.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:m.className="geDisableMathJax";return m}}u=null;v=e.enableFlowAnimation;e.enableFlowAnimation=!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(u=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),
+e.refresh());c.open(null,null,g,!0);e.enableFlowAnimation=v;null!=u&&(e.stylesheet=u,e.refresh())}else{x=d.background;if(null==x||""==x||x==mxConstants.NONE)x="#ffffff";c.backgroundColor=x;c.autoOrigin=B;c.appendGraph(d,t,u,v,g,!0);g=d.getCustomFonts();if(null!=c.wnd)for(u=0;u<g.length;u++)v=g[u].name,B=g[u].url,Graph.isCssFontUrl(B)?c.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(B)+'" 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(B)+'");\n}'),c.wnd.document.writeln("</style>"))}l&&(d.useCssTransforms=l,d.currentTranslate=k,d.currentScale=m,d.view.translate=n,d.view.scale=q);return c}var f=parseInt(F.value)/100;isNaN(f)&&(f=1,F.value="100 %");var f=.75*f,g=null;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(g=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.refresh());var l=u.value,k=v.value,n=!q.checked,
+p=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,l,k,C.checked,K.value,J.value,parseInt(y.value)/100,parseInt(F.value)/100,M.get());else{n&&(n=l==m&&k==m);if(!n&&null!=b.pages&&b.pages.length){var x=0,n=b.pages.length-1;q.checked||(x=parseInt(l)-1,n=parseInt(k)-1);for(var t=x;t<=n;t++){var B=b.pages[t],l=B==b.currentPage?e:null;if(null==l){var l=b.createTemporaryGraph(e.stylesheet),k=!0,x=!1,N=null,A=null;null==B.viewState&&null==B.root&&b.updatePageRoot(B);null!=B.viewState&&
+(k=B.viewState.pageVisible,x=B.viewState.mathEnabled,N=B.viewState.background,A=B.viewState.backgroundImage,l.extFonts=B.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 G=l.getGlobalVariable;l.getGlobalVariable=function(d){return"page"==d?B.getName():"pagenumber"==d?t+1:"pagecount"==d?null!=b.pages?b.pages.length:1:G.apply(this,arguments)};document.body.appendChild(l.container);b.updatePageRoot(B);l.model.setRoot(B.root)}p=
+c(l,p,t!=n);l!=e&&l.container.parentNode.removeChild(l.container)}}else p=c(e);null==p?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(p.mathEnabled&&(n=p.wnd.document,d&&(p.wnd.IMMEDIATE_PRINT=!0),n.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),p.closeDocument(),!p.mathEnabled&&d&&PrintDialog.printPreview(p));null!=g&&(e.stylesheet=g,e.refresh())}}var e=b.editor.graph,g=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"));g.appendChild(l);var k=1,m=1,n=document.createElement("div");n.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");n.appendChild(q);l=document.createElement("span");
+mxUtils.write(l,mxResources.get("printAllPages"));n.appendChild(l);mxUtils.br(n);var p=q.cloneNode(!0);q.setAttribute("checked","checked");p.setAttribute("value","range");n.appendChild(p);l=document.createElement("span");mxUtils.write(l,mxResources.get("pages")+":");n.appendChild(l);var u=document.createElement("input");u.style.cssText="margin:0 8px 0 8px;";u.setAttribute("value","1");u.setAttribute("type","number");u.setAttribute("min","1");u.style.width="50px";n.appendChild(u);l=document.createElement("span");
+mxUtils.write(l,mxResources.get("to"));n.appendChild(l);var v=u.cloneNode(!0);n.appendChild(v);mxEvent.addListener(u,"focus",function(){p.checked=!0});mxEvent.addListener(v,"focus",function(){p.checked=!0});mxEvent.addListener(u,"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;u.value=m;v.value=m;break}u.setAttribute("max",k);v.setAttribute("max",k);b.isPagesEnabled()?1<k&&(g.appendChild(n),
+p.checked=!0):p.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 y=document.createElement("input");y.style.cssText="margin:0 8px 0 8px;";y.setAttribute("value","100 %");y.style.width="50px";x.appendChild(y);
+mxEvent.addListener(y,"focus",function(){t.checked=!0});g.appendChild(x);var n=n.cloneNode(!1),C=t.cloneNode(!0);C.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(C);n.appendChild(l);x=document.createElement("table");x.style.display="inline-block";var B=document.createElement("tbody"),N=document.createElement("tr"),G=N.cloneNode(!0),D=document.createElement("td"),
+O=D.cloneNode(!0),H=D.cloneNode(!0),I=D.cloneNode(!0),L=D.cloneNode(!0),Q=D.cloneNode(!0);D.style.textAlign="right";I.style.textAlign="right";mxUtils.write(D,mxResources.get("fitTo"));var K=document.createElement("input");K.style.cssText="margin:0 8px 0 8px;";K.setAttribute("value","1");K.setAttribute("min","1");K.setAttribute("type","number");K.style.width="40px";O.appendChild(K);l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));H.appendChild(l);mxUtils.write(I,
+mxResources.get("fitToBy"));var J=K.cloneNode(!0);L.appendChild(J);mxEvent.addListener(K,"focus",function(){C.checked=!0});mxEvent.addListener(J,"focus",function(){C.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));Q.appendChild(l);N.appendChild(D);N.appendChild(O);N.appendChild(H);G.appendChild(I);G.appendChild(L);G.appendChild(Q);B.appendChild(N);B.appendChild(G);x.appendChild(B);n.appendChild(x);g.appendChild(n);n=document.createElement("div");l=
+document.createElement("div");l.style.fontWeight="bold";l.style.marginBottom="12px";mxUtils.write(l,mxResources.get("paperSize"));n.appendChild(l);l=document.createElement("div");l.style.marginBottom="12px";var M=PageSetupDialog.addPageFormatPanel(l,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);n.appendChild(l);l=document.createElement("span");mxUtils.write(l,mxResources.get("pageScale"));n.appendChild(l);var F=document.createElement("input");F.style.cssText="margin:0 8px 0 8px;";
+F.setAttribute("value","100 %");F.style.width="60px";n.appendChild(F);g.appendChild(n);l=document.createElement("div");l.style.cssText="text-align:right;margin:48px 0 0 0;";n=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});n.className="geBtn";b.editor.cancelFirst&&l.appendChild(n);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();f(!1)}),x.className="geBtn",l.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();f(!0)});x.className="geBtn gePrimaryBtn";l.appendChild(x);b.editor.cancelFirst||l.appendChild(n);g.appendChild(l);this.container=g};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&&
+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 Q=document.createElement("canvas"),Y=new Image;Y.onload=function(){try{Q.getContext("2d").drawImage(Y,0,0);var b=Q.toDataURL("image/png");Editor.prototype.useCanvasForExport=
+null!=b&&6<b.length}catch(J){}};Y.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(H){}})();
(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.6.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=
+(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.6.4";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,g,k,n,p){n=null!=n?n:0<=b.indexOf("NetworkError")||0<=b.indexOf("SecurityError")||0<=b.indexOf("NS_ERROR_FAILURE")||0<=b.indexOf("out of memory")?"CONFIG":
@@ -3374,13 +3374,13 @@ function(b){return 8<b.length&&(208==b.charCodeAt(0)&&207==b.charCodeAt(1)&&17==
26==b.charCodeAt(6)&&10==b.charCodeAt(7)};var b=EditorUi.prototype.createKeyHandler;EditorUi.prototype.createKeyHandler=function(d){var c=b.apply(this,arguments);if(!this.editor.chromeless||this.editor.editable){var e=c.getFunction,g=this.editor.graph,k=this;c.getFunction=function(b){if(g.isSelectionEmpty()&&null!=k.pages&&0<k.pages.length){var d=k.getSelectedPageIndex();if(mxEvent.isShiftDown(b)){if(37==b.keyCode)return function(){0<d&&k.movePage(d,d-1)};if(38==b.keyCode)return function(){0<d&&k.movePage(d,
0)};if(39==b.keyCode)return function(){d<k.pages.length-1&&k.movePage(d,d+1)};if(40==b.keyCode)return function(){d<k.pages.length-1&&k.movePage(d,k.pages.length-1)}}else if(mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b)){if(37==b.keyCode)return function(){0<d&&k.selectNextPage(!1)};if(38==b.keyCode)return function(){0<d&&k.selectPage(k.pages[0])};if(39==b.keyCode)return function(){d<k.pages.length-1&&k.selectNextPage(!0)};if(40==b.keyCode)return function(){d<k.pages.length-1&&k.selectPage(k.pages[k.pages.length-
1])}}}return e.apply(this,arguments)}}return c};var c=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(b){var d=c.apply(this,arguments);if(null==d)try{var e=b.indexOf("&lt;mxfile ");if(0<=e){var g=b.lastIndexOf("&lt;/mxfile&gt;");g>e&&(d=b.substring(e,g+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var k=mxUtils.parseXml(b),n=this.editor.extractGraphModel(k.documentElement,null!=this.pages||"hidden"==
-this.diagramContainer.style.visibility),d=null!=n?mxUtils.getXml(n):""}catch(u){}return d};EditorUi.prototype.validateFileData=function(b){if(null!=b&&0<b.length){var d=b.indexOf('<meta charset="utf-8">');0<=d&&(b=b.slice(0,d)+'<meta charset="utf-8"/>'+b.slice(d+23-1,b.length));b=Graph.zapGremlins(b)}return b};EditorUi.prototype.replaceFileData=function(b){b=this.validateFileData(b);b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:null;var d=null!=b?this.editor.extractGraphModel(b,!0):null;
+this.diagramContainer.style.visibility),d=null!=n?mxUtils.getXml(n):""}catch(v){}return d};EditorUi.prototype.validateFileData=function(b){if(null!=b&&0<b.length){var d=b.indexOf('<meta charset="utf-8">');0<=d&&(b=b.slice(0,d)+'<meta charset="utf-8"/>'+b.slice(d+23-1,b.length));b=Graph.zapGremlins(b)}return b};EditorUi.prototype.replaceFileData=function(b){b=this.validateFileData(b);b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:null;var d=null!=b?this.editor.extractGraphModel(b,!0):null;
null!=d&&(b=d);if(null!=b){d=this.editor.graph;d.model.beginUpdate();try{var c=null!=this.pages?this.pages.slice():null,e=b.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<e.length||1==e.length&&e[0].hasAttribute("name")){this.fileNode=b;this.pages=null!=this.pages?this.pages:[];for(var g=e.length-1;0<=g;g--){var k=this.updatePageRoot(new DiagramPage(e[g]));null==k.getName()&&k.setName(mxResources.get("pageWithNumber",[g+1]));d.model.execute(new ChangePage(this,k,0==g?k:null,0))}}else"0"!=
urlParams.pages&&null==this.fileNode&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),d.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(b),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(g=0;g<c.length;g++)d.model.execute(new ChangePage(this,c[g],null))}finally{d.model.endUpdate()}}};
-EditorUi.prototype.createFileData=function(b,c,e,g,k,n,p,v,t,x,D){c=null!=c?c:this.editor.graph;k=null!=k?k:!1;t=null!=t?t:!0;var d,f=null;null==e||e.getMode()==App.MODE_DEVICE||e.getMode()==App.MODE_BROWSER?d="_blank":f=d=g;if(null==b)return"";var l=b;if("mxfile"!=l.nodeName.toLowerCase()){if(D){var m=b.ownerDocument.createElement("diagram");m.setAttribute("id",Editor.guid());m.appendChild(b)}else{m=Graph.zapGremlins(mxUtils.getXml(b));l=Graph.compress(m);if(Graph.decompress(l)!=m)return m;m=b.ownerDocument.createElement("diagram");
+EditorUi.prototype.createFileData=function(b,c,e,g,k,n,p,u,t,x,D){c=null!=c?c:this.editor.graph;k=null!=k?k:!1;t=null!=t?t:!0;var d,f=null;null==e||e.getMode()==App.MODE_DEVICE||e.getMode()==App.MODE_BROWSER?d="_blank":f=d=g;if(null==b)return"";var l=b;if("mxfile"!=l.nodeName.toLowerCase()){if(D){var m=b.ownerDocument.createElement("diagram");m.setAttribute("id",Editor.guid());m.appendChild(b)}else{m=Graph.zapGremlins(mxUtils.getXml(b));l=Graph.compress(m);if(Graph.decompress(l)!=m)return m;m=b.ownerDocument.createElement("diagram");
m.setAttribute("id",Editor.guid());mxUtils.setTextContent(m,l)}l=b.ownerDocument.createElement("mxfile");l.appendChild(m)}x?(l=l.cloneNode(!0),l.removeAttribute("modified"),l.removeAttribute("host"),l.removeAttribute("agent"),l.removeAttribute("etag"),l.removeAttribute("userAgent"),l.removeAttribute("version"),l.removeAttribute("editor"),l.removeAttribute("type")):(l.removeAttribute("userAgent"),l.removeAttribute("version"),l.removeAttribute("editor"),l.removeAttribute("pages"),l.removeAttribute("type"),
mxClient.IS_CHROMEAPP?l.setAttribute("host","Chrome"):EditorUi.isElectronApp?l.setAttribute("host","Electron"):l.setAttribute("host",window.location.hostname),l.setAttribute("modified",(new Date).toISOString()),l.setAttribute("agent",navigator.appVersion),l.setAttribute("version",EditorUi.VERSION),l.setAttribute("etag",Editor.guid()),b=null!=e?e.getMode():this.mode,null!=b&&l.setAttribute("type",b),1<l.getElementsByTagName("diagram").length&&null!=this.pages&&l.setAttribute("pages",this.pages.length));
-D=D?mxUtils.getPrettyXml(l):mxUtils.getXml(l);if(!n&&!k&&(p||null!=e&&/(\.html)$/i.test(e.getTitle())))D=this.getHtml2(mxUtils.getXml(l),c,null!=e?e.getTitle():null,d,f);else if(n||!k&&null!=e&&/(\.svg)$/i.test(e.getTitle()))null==e||e.getMode()!=App.MODE_DEVICE&&e.getMode()!=App.MODE_BROWSER||(g=null),D=this.getEmbeddedSvg(D,c,g,null,v,t,f);return D};EditorUi.prototype.getXmlFileData=function(b,c,e,g){b=null!=b?b:!0;c=null!=c?c:!1;e=null!=e?e:!Editor.compressXml;var d=this.editor.getGraphXml(b,g);
+D=D?mxUtils.getPrettyXml(l):mxUtils.getXml(l);if(!n&&!k&&(p||null!=e&&/(\.html)$/i.test(e.getTitle())))D=this.getHtml2(mxUtils.getXml(l),c,null!=e?e.getTitle():null,d,f);else if(n||!k&&null!=e&&/(\.svg)$/i.test(e.getTitle()))null==e||e.getMode()!=App.MODE_DEVICE&&e.getMode()!=App.MODE_BROWSER||(g=null),D=this.getEmbeddedSvg(D,c,g,null,u,t,f);return D};EditorUi.prototype.getXmlFileData=function(b,c,e,g){b=null!=b?b:!0;c=null!=c?c:!1;e=null!=e?e:!Editor.compressXml;var d=this.editor.getGraphXml(b,g);
if(b&&null!=this.fileNode&&null!=this.currentPage)if(b=function(b){var c=b.getElementsByTagName("mxGraphModel"),c=0<c.length?c[0]:null;null==c&&e?(c=mxUtils.trim(mxUtils.getTextContent(b)),b=b.cloneNode(!1),0<c.length&&(c=Graph.decompress(c),null!=c&&0<c.length&&b.appendChild(mxUtils.parseXml(c).documentElement))):null==c||e?b=b.cloneNode(!0):(b=b.cloneNode(!1),mxUtils.setTextContent(b,Graph.compressNode(c)));d.appendChild(b)},EditorUi.removeChildNodes(this.currentPage.node),mxUtils.setTextContent(this.currentPage.node,
Graph.compressNode(d)),d=this.fileNode.cloneNode(!1),c)b(this.currentPage.node);else for(c=0;c<this.pages.length;c++){var f=this.pages[c],l=f.node;if(f!=this.currentPage)if(f.needsUpdate){var k=new mxCodec(mxUtils.createXmlDocument()),k=k.encode(new mxGraphModel(f.root));this.editor.graph.saveViewState(f.viewState,k,null,g);EditorUi.removeChildNodes(l);mxUtils.setTextContent(l,Graph.compressNode(k));delete f.needsUpdate}else g&&(this.updatePageRoot(f),null!=f.viewState.backgroundImage&&(null!=f.viewState.backgroundImage.originalSrc?
f.viewState.backgroundImage=this.createImageForPageLink(f.viewState.backgroundImage.originalSrc,f):Graph.isPageLink(f.viewState.backgroundImage.src)&&(f.viewState.backgroundImage=this.createImageForPageLink(f.viewState.backgroundImage.src,f))),null!=f.viewState.backgroundImage&&null!=f.viewState.backgroundImage.originalSrc&&(k=new mxCodec(mxUtils.createXmlDocument()),k=k.encode(new mxGraphModel(f.root)),this.editor.graph.saveViewState(f.viewState,k,null,g),l=l.cloneNode(!1),mxUtils.setTextContent(l,
@@ -3390,9 +3390,9 @@ function(b){if(null!=b[EditorUi.DIFF_INSERT])for(var d=0;d<b[EditorUi.DIFF_INSER
delete b[EditorUi.DIFF_UPDATE][e]}0==Object.keys(b[EditorUi.DIFF_UPDATE]).length&&delete b[EditorUi.DIFF_UPDATE]}return b};EditorUi.prototype.anonymizeAttributes=function(b,c){if(null!=b.attributes)for(var d=0;d<b.attributes.length;d++)"as"!=b.attributes[d].name&&b.setAttribute(b.attributes[d].name,this.anonymizeString(b.attributes[d].value,c));if(null!=b.childNodes)for(d=0;d<b.childNodes.length;d++)this.anonymizeAttributes(b.childNodes[d],c)};EditorUi.prototype.anonymizeNode=function(b,c){for(var d=
b.getElementsByTagName("mxCell"),f=0;f<d.length;f++)null!=d[f].getAttribute("value")&&d[f].setAttribute("value","["+d[f].getAttribute("value").length+"]"),null!=d[f].getAttribute("xmlValue")&&d[f].setAttribute("xmlValue","["+d[f].getAttribute("xmlValue").length+"]"),null!=d[f].getAttribute("style")&&d[f].setAttribute("style","["+d[f].getAttribute("style").length+"]"),null!=d[f].parentNode&&"root"!=d[f].parentNode.nodeName&&null!=d[f].parentNode.parentNode&&(d[f].setAttribute("id",d[f].parentNode.getAttribute("id")),
d[f].parentNode.parentNode.replaceChild(d[f],d[f].parentNode));return b};EditorUi.prototype.synchronizeCurrentFile=function(b){var d=this.getCurrentFile();null!=d&&(d.savingFile?this.handleError({message:mxResources.get("busy")}):!b&&d.invalidChecksum?d.handleFileError(null,!0):this.spinner.spin(document.body,mxResources.get("updatingDocument"))&&(d.clearAutosave(),this.editor.setStatus(""),b?d.reloadFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,
-function(b){d.handleFileError(b,!0)})):d.synchronizeFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(b){d.handleFileError(b,!0)}))))};EditorUi.prototype.getFileData=function(b,c,e,g,k,n,p,v,t,x,D){k=null!=k?k:!0;n=null!=n?n:!1;var d=this.editor.graph;if(c||!b&&null!=t&&/(\.svg)$/i.test(t.getTitle())){var f=null!=d.themes&&"darkTheme"==d.defaultThemeName;x=!1;if(f||null!=this.pages&&this.currentPage!=this.pages[0]){var l=d.getGlobalVariable,
+function(b){d.handleFileError(b,!0)})):d.synchronizeFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(b){d.handleFileError(b,!0)}))))};EditorUi.prototype.getFileData=function(b,c,e,g,k,n,p,u,t,x,D){k=null!=k?k:!0;n=null!=n?n:!1;var d=this.editor.graph;if(c||!b&&null!=t&&/(\.svg)$/i.test(t.getTitle())){var f=null!=d.themes&&"darkTheme"==d.defaultThemeName;x=!1;if(f||null!=this.pages&&this.currentPage!=this.pages[0]){var l=d.getGlobalVariable,
d=this.createTemporaryGraph(f?d.getDefaultStylesheet():d.getStylesheet());d.setBackgroundImage=this.editor.graph.setBackgroundImage;var m=this.pages[0];this.currentPage==m?d.setBackgroundImage(this.editor.graph.backgroundImage):null!=m.viewState&&null!=m.viewState&&d.setBackgroundImage(m.viewState.backgroundImage);d.getGlobalVariable=function(b){return"page"==b?m.getName():"pagenumber"==b?1:l.apply(this,arguments)};document.body.appendChild(d.container);d.model.setRoot(m.root)}}p=null!=p?p:this.getXmlFileData(k,
-n,x,D);t=null!=t?t:this.getCurrentFile();b=this.createFileData(p,d,t,window.location.href,b,c,e,g,k,v,x);d!=this.editor.graph&&d.container.parentNode.removeChild(d.container);return b};EditorUi.prototype.getHtml=function(b,c,e,g,k,n){n=null!=n?n:!0;var d=null,f=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=c){var d=n?c.getGraphBounds():c.getBoundingBox(c.getSelectionCells()),l=c.view.scale;n=Math.floor(d.x/l-c.view.translate.x);l=Math.floor(d.y/l-c.view.translate.y);d=c.background;null==k&&
+n,x,D);t=null!=t?t:this.getCurrentFile();b=this.createFileData(p,d,t,window.location.href,b,c,e,g,k,u,x);d!=this.editor.graph&&d.container.parentNode.removeChild(d.container);return b};EditorUi.prototype.getHtml=function(b,c,e,g,k,n){n=null!=n?n:!0;var d=null,f=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=c){var d=n?c.getGraphBounds():c.getBoundingBox(c.getSelectionCells()),l=c.view.scale;n=Math.floor(d.x/l-c.view.translate.x);l=Math.floor(d.y/l-c.view.translate.y);d=c.background;null==k&&
(c=this.getBasenames().join(";"),0<c.length&&(f=EditorUi.drawHost+"/embed.js?s="+c));b.setAttribute("x0",n);b.setAttribute("y0",l)}null!=b&&(b.setAttribute("pan","1"),b.setAttribute("zoom","1"),b.setAttribute("resize","0"),b.setAttribute("fit","0"),b.setAttribute("border","20"),b.setAttribute("links","1"),null!=g&&b.setAttribute("edit",g));null!=k&&(k=k.replace(/&/g,"&amp;"));b=null!=b?Graph.zapGremlins(mxUtils.getXml(b)):"";g=Graph.compress(b);Graph.decompress(g)!=b&&(g=encodeURIComponent(b));return(null==
k?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=k?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==k?null!=e?"<title>"+mxUtils.htmlEntities(e)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=k?'<meta http-equiv="refresh" content="0;URL=\''+k+"'\"/>\n":"")+"</head>\n<body"+(null==k&&null!=d&&d!=mxConstants.NONE?' style="background-color:'+d+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+
g+"</div>\n</div>\n"+(null==k?'<script type="text/javascript" src="'+f+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+k+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(b,c,e,g,k){c=window.DRAWIO_VIEWER_URL||EditorUi.drawHost+"/js/viewer-static.min.js";null!=k&&(k=k.replace(/&/g,"&amp;"));b={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,
@@ -3400,27 +3400,27 @@ resize:!0,xml:Graph.zapGremlins(b),toolbar:"pages zoom layers lightbox"};null!=t
k+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(b))+'"></div>\n'+(null==k?'<script type="text/javascript" src="'+c+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+k+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=
function(b){b=this.validateFileData(b);this.pages=this.fileNode=this.currentPage=null;b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:null;var d=Editor.extractParserError(b,mxResources.get("invalidOrMissingFile"));if(d)throw Error(mxResources.get("notADiagramFile")+" ("+d+")");d=null!=b?this.editor.extractGraphModel(b,!0):null;null!=d&&(b=d);if(null!=b&&"mxfile"==b.nodeName&&(d=b.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name"))){var c=
null;this.fileNode=b;this.pages=[];for(var e=0;e<d.length;e++)null==d[e].getAttribute("id")&&d[e].setAttribute("id",e),b=new DiagramPage(d[e]),null==b.getName()&&b.setName(mxResources.get("pageWithNumber",[e+1])),this.pages.push(b),null!=urlParams["page-id"]&&b.getId()==urlParams["page-id"]&&(c=b);this.currentPage=null!=c?c:this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];b=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=b&&(this.fileNode=b.ownerDocument.createElement("mxfile"),
-this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var g=urlParams["layer-ids"].split(" ");b={};for(e=0;e<g.length;e++)b[g[e]]=!0;for(var k=this.editor.graph.getModel(),p=k.getChildren(k.root),e=0;e<p.length;e++){var v=p[e];k.setVisible(v,b[v.id]||
+this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var g=urlParams["layer-ids"].split(" ");b={};for(e=0;e<g.length;e++)b[g[e]]=!0;for(var k=this.editor.graph.getModel(),p=k.getChildren(k.root),e=0;e<p.length;e++){var u=p[e];k.setVisible(u,b[u.id]||
!1)}}catch(y){}};EditorUi.prototype.getBaseFilename=function(b){var d=this.getCurrentFile(),d=null!=d&&null!=d.getTitle()?d.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(d)||/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||/(\.png)$/i.test(d))d=d.substring(0,d.lastIndexOf("."));/(\.drawio)$/i.test(d)&&(d=d.substring(0,d.lastIndexOf(".")));!b&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(d=d+"-"+
-this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(b,c,e,g,k,n,p,v,t,x,D,H){try{g=null!=g?g:this.editor.graph.isSelectionEmpty();var d=this.getBaseFilename(!k),f=d+("xml"==b||"pdf"==b&&D?".drawio":"")+"."+b;if("xml"==b){var l=Graph.xmlDeclaration+"\n"+this.getFileData(!0,null,null,null,g,k,null,null,null,c);this.saveData(f,b,l,"text/xml")}else if("html"==b)l=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(f,b,l,"text/html");else if("svg"!=b&&"xmlsvg"!=
-b||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==b?f=d+".png":"jpeg"==b&&(f=d+".jpg"),this.saveRequest(f,b,mxUtils.bind(this,function(d,c){try{var f=this.editor.graph.pageVisible;null!=n&&(this.editor.graph.pageVisible=n);var e=this.createDownloadRequest(d,b,g,c,p,k,v,t,x,D,H);this.editor.graph.pageVisible=f;return e}catch(W){this.handleError(W)}}));else{var m=null,q=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(f,"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(p||u==mxConstants.NONE)u=null;var y=this.editor.graph.getSvg(u,null,null,null,null,g);e&&this.editor.graph.addSvgShadow(y);this.editor.convertImages(y,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();q(Graph.xmlDeclaration+"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(b))})))}else f=d+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();
-q(b)}),g)}}catch(O){this.handleError(O)}};EditorUi.prototype.createDownloadRequest=function(b,c,e,g,k,n,p,v,t,x,D){var d=this.editor.graph,f=d.getGraphBounds();e=this.getFileData(!0,null,null,null,e,0==n?!1:"xmlpng"!=c,null,null,null,!1,"pdf"==c);var l="",m="";if(f.width*f.height>MAX_AREA||e.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};x=x?"1":"0";"pdf"==c&&(null!=D?m="&from="+D.from+"&to="+D.to:0==n&&(m="&allPages=1"));if("xmlpng"==c&&(x="1",c="png",null!=this.pages&&
+this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(b,c,e,g,k,n,p,u,t,x,D,I){try{g=null!=g?g:this.editor.graph.isSelectionEmpty();var d=this.getBaseFilename(!k),f=d+("xml"==b||"pdf"==b&&D?".drawio":"")+"."+b;if("xml"==b){var l=Graph.xmlDeclaration+"\n"+this.getFileData(!0,null,null,null,g,k,null,null,null,c);this.saveData(f,b,l,"text/xml")}else if("html"==b)l=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(f,b,l,"text/html");else if("svg"!=b&&"xmlsvg"!=
+b||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==b?f=d+".png":"jpeg"==b&&(f=d+".jpg"),this.saveRequest(f,b,mxUtils.bind(this,function(d,c){try{var f=this.editor.graph.pageVisible;null!=n&&(this.editor.graph.pageVisible=n);var e=this.createDownloadRequest(d,b,g,c,p,k,u,t,x,D,I);this.editor.graph.pageVisible=f;return e}catch(Y){this.handleError(Y)}}));else{var m=null,q=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(f,"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 v=this.editor.graph.background;if(p||v==mxConstants.NONE)v=null;var y=this.editor.graph.getSvg(v,null,null,null,null,g);e&&this.editor.graph.addSvgShadow(y);this.editor.convertImages(y,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();q(Graph.xmlDeclaration+"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(b))})))}else f=d+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();
+q(b)}),g)}}catch(O){this.handleError(O)}};EditorUi.prototype.createDownloadRequest=function(b,c,e,g,k,n,p,u,t,x,D){var d=this.editor.graph,f=d.getGraphBounds();e=this.getFileData(!0,null,null,null,e,0==n?!1:"xmlpng"!=c,null,null,null,!1,"pdf"==c);var l="",m="";if(f.width*f.height>MAX_AREA||e.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};x=x?"1":"0";"pdf"==c&&(null!=D?m="&from="+D.from+"&to="+D.to:0==n&&(m="&allPages=1"));if("xmlpng"==c&&(x="1",c="png",null!=this.pages&&
null!=this.currentPage))for(n=0;n<this.pages.length;n++)if(this.pages[n]==this.currentPage){l="&from="+n;break}n=d.background;"png"!=c&&"pdf"!=c||!k?k||null!=n&&n!=mxConstants.NONE||(n="#ffffff"):n=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!=n?n:mxConstants.NONE)+"&base64="+g+"&embedXml="+
-x+"&xml="+encodeURIComponent(e)+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(k))+(null!=p?"&scale="+p:"")+(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,f=mxUtils.bind(this,function(f){var e=null!=b.data?b.data:"";null!=f&&0<f.length&&(0<e.length&&(e+="\n"),e+=f);f=new LocalFile(this,"csv"!=b.format&&0<e.length?e:this.emptyDiagramXml,null!=
+x+"&xml="+encodeURIComponent(e)+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(k))+(null!=p?"&scale="+p:"")+(null!=u?"&border="+u:""))};EditorUi.prototype.setMode=function(b,c){this.mode=b};EditorUi.prototype.loadDescriptor=function(b,c,e){var d=window.location.hash,f=mxUtils.bind(this,function(f){var e=null!=b.data?b.data:"";null!=f&&0<f.length&&(0<e.length&&(e+="\n"),e+=f);f=new LocalFile(this,"csv"!=b.format&&0<e.length?e:this.emptyDiagramXml,null!=
urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);f.getHash=function(){return d};this.fileLoaded(f);"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 g=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,g)});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){f(b)}),
mxUtils.bind(this,function(b){null!=e&&e(b)})):f("")};EditorUi.prototype.updateDiagram=function(b){function d(b){var d=new mxCellOverlay(b.image||g.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 g=this.editor.graph,k=g.getModel();k.beginUpdate();var p=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 D=x.attributes,H=0;H<D.length;H++)g.setAttributeForCell(v,D[H].nodeName,0<D[H].nodeValue.length?D[H].nodeValue:null)}}catch(O){null!=window.console&&console.log("Error in value for "+v.id+": "+O)}try{var C=b.getAttribute("style");null!=C&&g.model.setStyle(v,C)}catch(O){null!=
-window.console&&console.log("Error in style for "+v.id+": "+O)}try{var F=b.getAttribute("icon");if(null!=F){var M=0<F.length?JSON.parse(F):null;null!=M&&M.append||g.removeCellOverlays(v);null!=M&&g.addCellOverlay(v,d(M))}}catch(O){null!=window.console&&console.log("Error in icon for "+v.id+": "+O)}try{var E=b.getAttribute("geometry");if(null!=E){var E=JSON.parse(E),K=g.getCellGeometry(v);if(null!=K){K=K.clone();for(key in E){var B=parseFloat(E[key]);"dx"==key?K.x+=B:"dy"==key?K.y+=B:"dw"==key?K.width+=
-B:"dh"==key?K.height+=B:K[key]=parseFloat(E[key])}g.model.setGeometry(v,K)}}}catch(O){null!=window.console&&console.log("Error in icon for "+v.id+": "+O)}}}else if("model"==b.nodeName){for(var L=b.firstChild;null!=L&&L.nodeType!=mxConstants.NODETYPE_ELEMENT;)L=L.nextSibling;null!=L&&(new mxCodec(b.firstChild)).decode(L,k)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(g.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))g.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||
+b.nodeName){var u=k.getCell(b.getAttribute("id"));if(null!=u){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(u,x);else for(var D=x.attributes,I=0;I<D.length;I++)g.setAttributeForCell(u,D[I].nodeName,0<D[I].nodeValue.length?D[I].nodeValue:null)}}catch(O){null!=window.console&&console.log("Error in value for "+u.id+": "+O)}try{var B=b.getAttribute("style");null!=B&&g.model.setStyle(u,B)}catch(O){null!=
+window.console&&console.log("Error in style for "+u.id+": "+O)}try{var G=b.getAttribute("icon");if(null!=G){var M=0<G.length?JSON.parse(G):null;null!=M&&M.append||g.removeCellOverlays(u);null!=M&&g.addCellOverlay(u,d(M))}}catch(O){null!=window.console&&console.log("Error in icon for "+u.id+": "+O)}try{var F=b.getAttribute("geometry");if(null!=F){var F=JSON.parse(F),K=g.getCellGeometry(u);if(null!=K){K=K.clone();for(key in F){var C=parseFloat(F[key]);"dx"==key?K.x+=C:"dy"==key?K.y+=C:"dw"==key?K.width+=
+C:"dh"==key?K.height+=C:K[key]=parseFloat(F[key])}g.model.setGeometry(u,K)}}}catch(O){null!=window.console&&console.log("Error in icon for "+u.id+": "+O)}}}else if("model"==b.nodeName){for(var L=b.firstChild;null!=L&&L.nodeType!=mxConstants.NODETYPE_ELEMENT;)L=L.nextSibling;null!=L&&(new mxCodec(b.firstChild)).decode(L,k)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(g.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))g.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||
0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(p=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):1);b=b.nextSibling}}finally{k.endUpdate()}null!=p&&this.chromelessResize&&this.chromelessResize(!0,p)}return c};EditorUi.prototype.getCopyFilename=function(b,c){var d=null!=b&&null!=b.getTitle()?b.getTitle():this.defaultFilename,f="",e=d.lastIndexOf(".");0<=e&&(f=d.substring(e),d=d.substring(0,e));if(c)var g=new Date,e=g.getFullYear(),k=g.getMonth()+1,p=g.getDate(),
t=g.getHours(),x=g.getMinutes(),g=g.getSeconds(),d=d+(" "+(e+"-"+k+"-"+p+"-"+t+"-"+x+"-"+g));return d=mxResources.get("copyOf",[d])+f};EditorUi.prototype.fileLoaded=function(b,c){var d=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var f=!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=
"");this.openingFile=!0;this.setCurrentFile(b);b.addListener("descriptorChanged",this.descriptorChangedListener);b.addListener("contentChanged",this.descriptorChangedListener);b.open();delete this.openingFile;this.setGraphEnabled(!0);this.setMode(b.getMode());this.editor.graph.model.prefix=Editor.guid()+"-";this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();b.isEditable()?b.isModified()?(b.addUnsavedStatus(),null!=b.backupPatch&&b.patch([b.backupPatch])):this.editor.setStatus(""):
this.editor.setStatus('<span class="geStatusAlert">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>");!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));f=!0;this.isOffline()||null==b.getMode()||EditorUi.logEvent({category:b.getMode().toUpperCase()+
-"-OPEN-FILE-"+b.getHash(),action:"size_"+b.getSize(),label:"autosave_"+(this.editor.autosave?"on":"off")});EditorUi.debug("File.opened",[b]);if(this.editor.editable&&this.mode==b.getMode()&&b.getMode()!=App.MODE_DEVICE&&null!=b.getMode())try{this.addRecent({id:b.getHash(),title:b.getTitle(),mode:b.getMode()})}catch(u){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(u){}}catch(u){this.fileLoadedError=u;if(EditorUi.enableLogging&&!this.isOffline())try{EditorUi.logEvent({category:"ERROR-LOAD-FILE-"+
-(null!=b?b.getHash():"none"),action:"message_"+u.message,label:"stack_"+u.stack})}catch(v){}var g=mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=d?this.fileLoaded(d):e()});c?g():this.handleError(u,mxResources.get("errorLoadingFile"),g,!0,null,null,!0)}else e();return f};EditorUi.prototype.getHashValueForPages=function(b,c){var d=0,f=new mxGraphModel,e=new mxCodec;null!=c&&(c.byteCount=
+"-OPEN-FILE-"+b.getHash(),action:"size_"+b.getSize(),label:"autosave_"+(this.editor.autosave?"on":"off")});EditorUi.debug("File.opened",[b]);if(this.editor.editable&&this.mode==b.getMode()&&b.getMode()!=App.MODE_DEVICE&&null!=b.getMode())try{this.addRecent({id:b.getHash(),title:b.getTitle(),mode:b.getMode()})}catch(v){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(v){}}catch(v){this.fileLoadedError=v;if(EditorUi.enableLogging&&!this.isOffline())try{EditorUi.logEvent({category:"ERROR-LOAD-FILE-"+
+(null!=b?b.getHash():"none"),action:"message_"+v.message,label:"stack_"+v.stack})}catch(u){}var g=mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=d?this.fileLoaded(d):e()});c?g():this.handleError(v,mxResources.get("errorLoadingFile"),g,!0,null,null,!0)}else e();return f};EditorUi.prototype.getHashValueForPages=function(b,c){var d=0,f=new mxGraphModel,e=new mxCodec;null!=c&&(c.byteCount=
0,c.attrCount=0,c.eltCount=0,c.nodeCount=0);for(var g=0;g<b.length;g++){this.updatePageRoot(b[g]);var k=b[g].node.cloneNode(!1);k.removeAttribute("name");f.root=b[g].root;var p=e.encode(f);this.editor.graph.saveViewState(b[g].viewState,p,!0);p.removeAttribute("pageWidth");p.removeAttribute("pageHeight");k.appendChild(p);null!=c&&(c.eltCount+=k.getElementsByTagName("*").length,c.nodeCount+=k.getElementsByTagName("mxCell").length);d=(d<<5)-d+this.hashValue(k,function(b,d,c,f){return!f||"mxGeometry"!=
b.nodeName&&"mxPoint"!=b.nodeName||"x"!=d&&"y"!=d&&"width"!=d&&"height"!=d?f&&"mxCell"==b.nodeName&&"previous"==d?null:c:Math.round(c)},c)<<0}return d};EditorUi.prototype.hashValue=function(b,c,e){var d=0;if(null!=b&&"object"===typeof b&&"number"===typeof b.nodeType&&"string"===typeof b.nodeName&&"function"===typeof b.getAttribute){null!=b.nodeName&&(d^=this.hashValue(b.nodeName,c,e));if(null!=b.attributes){null!=e&&(e.attrCount+=b.attributes.length);for(var f=0;f<b.attributes.length;f++){var g=b.attributes[f].name,
l=null!=c?c(b,g,b.attributes[f].value,!0):b.attributes[f].value;null!=l&&(d^=this.hashValue(g,c,e)+this.hashValue(l,c,e))}}if(null!=b.childNodes)for(f=0;f<b.childNodes.length;f++)d=(d<<5)-d+this.hashValue(b.childNodes[f],c,e)<<0}else if(null!=b&&"function"!==typeof b){b=String(b);c=0;null!=e&&(e.byteCount+=b.length);for(f=0;f<b.length;f++)c=(c<<5)-c+b.charCodeAt(f)<<0;d^=c}return d};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=
@@ -3430,19 +3430,19 @@ EditorUi.prototype.repositionLibrary=function(b){var d=this.sidebar.container;if
this.libraryLoaded(b,e,d.documentElement.getAttribute("title"),c)}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(b){return""};EditorUi.prototype.libraryLoaded=function(b,c,e,g){if(null!=this.sidebar){b.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(b.getHash());".scratchpad"==b.title&&(this.scratchpad=b);var d=this.sidebar.palettes[b.getHash()],d=null!=d?d[d.length-1].nextSibling:null;this.removeLibrarySidebar(b.getHash());var f=
null,l=mxUtils.bind(this,function(d,c){0==d.length&&b.isEditable()?(null==f&&(f=document.createElement("div"),f.className="geDropTarget",mxUtils.write(f,mxResources.get("dragElementsHere"))),c.appendChild(f)):this.addLibraryEntries(d,c)});null!=this.sidebar&&null!=c&&this.sidebar.addEntries(c);e=null!=e&&0<e.length?e:b.getTitle();var k=this.sidebar.addPalette(b.getHash(),e,null!=g?g:!0,mxUtils.bind(this,function(b){l(c,b)}));this.repositionLibrary(d);var m=k.parentNode.previousSibling;g=m.getAttribute("title");
null!=g&&0<g.length&&".scratchpad"!=b.title&&m.setAttribute("title",this.getLibraryStorageHint(b)+"\n"+g);var p=document.createElement("div");p.style.position="absolute";p.style.right="0px";p.style.top="0px";p.style.padding="8px";p.style.backgroundColor="inherit";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)p.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 C=this.editor.graph,F=null,M=mxUtils.bind(this,function(d){this.showLibraryDialog(b.getTitle(),k,c,b,b.getMode());mxEvent.consume(d)}),E=mxUtils.bind(this,function(d){b.setModified(!0);b.isAutosave()?(null!=F&&null!=F.parentNode&&F.parentNode.removeChild(F),F=t.cloneNode(!1),F.setAttribute("src",Editor.spinImage),F.setAttribute("title",mxResources.get("saving")),F.style.cursor="default",F.style.marginRight="2px",F.style.marginTop="-2px",p.insertBefore(F,p.firstChild),m.style.paddingRight=
-18*p.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=F&&null!=F.parentNode&&(F.parentNode.removeChild(F),m.style.paddingRight=18*p.childNodes.length+"px")})):null==H&&(H=t.cloneNode(!1),H.setAttribute("src",Editor.saveImage),H.setAttribute("title",mxResources.get("save")),p.insertBefore(H,p.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*p.childNodes.length+"px",H.parentNode.removeChild(H),H=null)});mxEvent.consume(d)})),m.style.paddingRight=18*p.childNodes.length+"px")}),K=mxUtils.bind(this,function(b,d,e,g){b=C.cloneCells(mxUtils.sortCells(C.model.getTopmostCells(b)));for(var l=0;l<b.length;l++){var m=C.getCellGeometry(b[l]);null!=m&&m.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(b,d.width,d.height,g||"",!0,!1,!1));b={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),
-w:d.width,h:d.height};null!=g&&(b.title=g);c.push(b);E(e);null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null)}),B=mxUtils.bind(this,function(b){if(C.isSelectionEmpty())C.getRubberband().isActive()?(C.getRubberband().execute(b),C.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=C.getSelectionCells(),c=C.view.getBounds(d),e=C.view.scale;c.x/=e;c.y/=e;c.width/=e;c.height/=e;c.x-=C.view.translate.x;
-c.y-=C.view.translate.y;K(d,c)}mxEvent.consume(b)});mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(b){C.isMouseDown&&null!=C.panningManager&&null!=C.graphHandler.first&&(C.graphHandler.suspend(),null!=C.graphHandler.hint&&(C.graphHandler.hint.style.visibility="hidden"),k.style.backgroundColor="#f1f3f4",k.style.cursor="copy",C.panningManager.stop(),C.autoScroll=!1,mxEvent.consume(b))}),mxUtils.bind(this,function(b){C.isMouseDown&&null!=C.panningManager&&null!=C.graphHandler&&
-(k.style.backgroundColor="",k.style.cursor="default",this.sidebar.showTooltips=!0,C.panningManager.stop(),C.graphHandler.reset(),C.isMouseDown=!1,C.autoScroll=!0,B(b),mxEvent.consume(b))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(b){C.isMouseDown&&null!=C.graphHandler.first&&(C.graphHandler.resume(),null!=C.graphHandler.hint&&(C.graphHandler.hint.style.visibility="visible"),k.style.backgroundColor="",k.style.cursor="",C.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,g,m,n,q,p,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,n,q),d)],d[0].vertex=!0,K(d,new mxRectangle(0,0,n,q),b,mxEvent.isAltDown(b)?null:p.substring(0,p.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null);else{var x=!1,t=mxUtils.bind(this,function(d,e){if(null!=d&&"application/pdf"==e){var g=Editor.extractGraphModelFromPdf(d);null!=g&&0<g.length&&(d=g)}if(null!=d)if(g=mxUtils.parseXml(d),"mxlibrary"==g.documentElement.nodeName)try{var m=
-JSON.parse(mxUtils.getTextContent(g.documentElement));l(m,k);c=c.concat(m);E(b);this.spinner.stop();x=!0}catch(Y){}else if("mxfile"==g.documentElement.nodeName)try{for(var n=g.documentElement.getElementsByTagName("diagram"),m=0;m<n.length;m++){var q=this.stringToCells(Editor.getDiagramNodeXml(n[m])),p=this.editor.graph.getBoundingBoxFromGeometry(q);K(q,new mxRectangle(0,0,p.width,p.height),b)}x=!0}catch(Y){null!=window.console&&console.log("error in drop handler:",Y)}x||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
-null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null)});null!=v&&null!=p&&(/(\.v(dx|sdx?))($|\?)/i.test(p)||/(\.vs(x|sx?))($|\?)/i.test(p))?this.importVisio(v,function(b){t(b,"text/xml")},null,p):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,p)&&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?
+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 I=null;if(".scratchpad"!=b.title||this.closableScratchpad)p.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!=I?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(d)}}));
+if(b.isEditable()){var B=this.editor.graph,G=null,M=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!=G&&null!=G.parentNode&&G.parentNode.removeChild(G),G=t.cloneNode(!1),G.setAttribute("src",Editor.spinImage),G.setAttribute("title",mxResources.get("saving")),G.style.cursor="default",G.style.marginRight="2px",G.style.marginTop="-2px",p.insertBefore(G,p.firstChild),m.style.paddingRight=
+18*p.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=G&&null!=G.parentNode&&(G.parentNode.removeChild(G),m.style.paddingRight=18*p.childNodes.length+"px")})):null==I&&(I=t.cloneNode(!1),I.setAttribute("src",Editor.saveImage),I.setAttribute("title",mxResources.get("save")),p.insertBefore(I,p.firstChild),mxEvent.addListener(I,"click",mxUtils.bind(this,function(d){this.saveLibrary(b.getTitle(),c,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==
+I||b.isModified()||(m.style.paddingRight=18*p.childNodes.length+"px",I.parentNode.removeChild(I),I=null)});mxEvent.consume(d)})),m.style.paddingRight=18*p.childNodes.length+"px")}),K=mxUtils.bind(this,function(b,d,e,g){b=B.cloneCells(mxUtils.sortCells(B.model.getTopmostCells(b)));for(var l=0;l<b.length;l++){var m=B.getCellGeometry(b[l]);null!=m&&m.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(b,d.width,d.height,g||"",!0,!1,!1));b={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),
+w:d.width,h:d.height};null!=g&&(b.title=g);c.push(b);F(e);null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null)}),C=mxUtils.bind(this,function(b){if(B.isSelectionEmpty())B.getRubberband().isActive()?(B.getRubberband().execute(b),B.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=B.getSelectionCells(),c=B.view.getBounds(d),e=B.view.scale;c.x/=e;c.y/=e;c.width/=e;c.height/=e;c.x-=B.view.translate.x;
+c.y-=B.view.translate.y;K(d,c)}mxEvent.consume(b)});mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(b){B.isMouseDown&&null!=B.panningManager&&null!=B.graphHandler.first&&(B.graphHandler.suspend(),null!=B.graphHandler.hint&&(B.graphHandler.hint.style.visibility="hidden"),k.style.backgroundColor="#f1f3f4",k.style.cursor="copy",B.panningManager.stop(),B.autoScroll=!1,mxEvent.consume(b))}),mxUtils.bind(this,function(b){B.isMouseDown&&null!=B.panningManager&&null!=B.graphHandler&&
+(k.style.backgroundColor="",k.style.cursor="default",this.sidebar.showTooltips=!0,B.panningManager.stop(),B.graphHandler.reset(),B.isMouseDown=!1,B.autoScroll=!0,C(b),mxEvent.consume(b))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(b){B.isMouseDown&&null!=B.graphHandler.first&&(B.graphHandler.resume(),null!=B.graphHandler.hint&&(B.graphHandler.hint.style.visibility="visible"),k.style.backgroundColor="",k.style.cursor="",B.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,g,m,n,q,p,u,x){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,n,q),d)],d[0].vertex=!0,K(d,new mxRectangle(0,0,n,q),b,mxEvent.isAltDown(b)?null:p.substring(0,p.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null);else{var v=!1,t=mxUtils.bind(this,function(d,e){if(null!=d&&"application/pdf"==e){var g=Editor.extractGraphModelFromPdf(d);null!=g&&0<g.length&&(d=g)}if(null!=d)if(g=mxUtils.parseXml(d),"mxlibrary"==g.documentElement.nodeName)try{var m=
+JSON.parse(mxUtils.getTextContent(g.documentElement));l(m,k);c=c.concat(m);F(b);this.spinner.stop();v=!0}catch(Z){}else if("mxfile"==g.documentElement.nodeName)try{for(var n=g.documentElement.getElementsByTagName("diagram"),m=0;m<n.length;m++){var q=this.stringToCells(Editor.getDiagramNodeXml(n[m])),p=this.editor.graph.getBoundingBoxFromGeometry(q);K(q,new mxRectangle(0,0,p.width,p.height),b)}v=!0}catch(Z){null!=window.console&&console.log("error in drop handler:",Z)}v||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
+null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null)});null!=x&&null!=p&&(/(\.v(dx|sdx?))($|\?)/i.test(p)||/(\.vs(x|sx?))($|\?)/i.test(p))?this.importVisio(x,function(b){t(b,"text/xml")},null,p):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,p)&&null!=x?this.parseFile(x,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"));p.insertBefore(t,p.firstChild);mxEvent.addListener(t,"click",M);mxEvent.addListener(k,"dblclick",function(b){mxEvent.getSource(b)==
-k&&M(b)});g=t.cloneNode(!1);g.setAttribute("src",Editor.plusImage);g.setAttribute("title",mxResources.get("add"));p.insertBefore(g,p.firstChild);mxEvent.addListener(g,"click",B);this.isOffline()||".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(g=document.createElement("span"),g.setAttribute("title",mxResources.get("help")),g.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;cursor:pointer;",mxUtils.write(g,"?"),mxEvent.addGestureListeners(g,mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);
+k&&M(b)});g=t.cloneNode(!1);g.setAttribute("src",Editor.plusImage);g.setAttribute("title",mxResources.get("add"));p.insertBefore(g,p.firstChild);mxEvent.addListener(g,"click",C);this.isOffline()||".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(g=document.createElement("span"),g.setAttribute("title",mxResources.get("help")),g.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;cursor:pointer;",mxUtils.write(g,"?"),mxEvent.addGestureListeners(g,mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);
mxEvent.consume(b)})),p.insertBefore(g,p.firstChild))}m.appendChild(p);m.style.paddingRight=18*p.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(b,c){for(var d=0;d<b.length;d++){var e=b[d],f=e.data;if(null!=f){var f=this.convertDataUri(f),g="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==e.aspect&&(g+="aspect=fixed;");c.appendChild(this.sidebar.createVertexTemplate(g+"image="+f,e.w,e.h,"",e.title||"",!1,!1,!0))}else null!=e.xml&&(f=this.stringToCells(Graph.decompress(e.xml)),
0<f.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(f,e.w,e.h,e.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=function(b){return null!=b?b[mxLanguage]||b.main:null};EditorUi.prototype.footerHeight=0;"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64);EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground="linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",
Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38):Editor.isDarkMode()&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor=Editor.darkColor,Format.inactiveTabBackgroundColor="black",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor=Editor.darkColor,Graph.prototype.defaultForegroundColor="#f0f0f0",Graph.prototype.defaultPageBorderColor=
@@ -3452,13 +3452,13 @@ c,e,g,k){b=new ImageDialog(this,b,c,e,g,k);this.showDialog(b.container,Graph.fil
b,c,e,g,k);this.showDialog(b.container,640,440,!0,!1,mxUtils.bind(this,function(b){b&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));b.init()};var e=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(b){var d=e.apply(this,arguments);this.editor.graph.addListener("viewStateChanged",mxUtils.bind(this,function(b){this.editor.graph.isSelectionEmpty()&&d.refresh()}));return d};EditorUi.prototype.createSidebarFooterContainer=function(){var b=this.createDiv("geSidebarContainer geSidebarFooter");
b.style.position="absolute";b.style.overflow="hidden";var c=document.createElement("a");c.className="geTitle";c.style.color="#DF6C0C";c.style.fontWeight="bold";c.style.height="100%";c.style.paddingTop="9px";c.innerHTML="<span>+</span>";var e=c.getElementsByTagName("span")[0];e.style.fontSize="18px";e.style.marginRight="5px";mxUtils.write(c,mxResources.get("moreShapes")+"...");mxEvent.addListener(c,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(c,
"click",mxUtils.bind(this,function(b){this.actions.get("shapes").funct();mxEvent.consume(b)}));b.appendChild(c);return b};EditorUi.prototype.handleError=function(b,c,e,g,k,n,p){var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=null!=b&&null!=b.error?b.error:b;if(null!=b&&null!=b.stack&&null!=b.message)try{p?null!=window.console&&console.error("EditorUi.handleError:",b):EditorUi.logError("Caught: "+(""==b.message&&null!=b.name)?b.name:b.message,b.filename,b.lineNumber,
-b.columnNumber,b,"INFO")}catch(F){}if(null!=f||null!=c){p=mxUtils.htmlEntities(mxResources.get("unknownError"));var l=mxResources.get("ok"),m=null;c=null!=c?c:mxResources.get("error");if(null!=f){null!=f.retry&&(l=mxResources.get("cancel"),m=function(){d();f.retry()});if(404==f.code||404==f.status||403==f.code){p=403==f.code?null!=f.message?mxUtils.htmlEntities(f.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=k?k:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=
+b.columnNumber,b,"INFO")}catch(G){}if(null!=f||null!=c){p=mxUtils.htmlEntities(mxResources.get("unknownError"));var l=mxResources.get("ok"),m=null;c=null!=c?c:mxResources.get("error");if(null!=f){null!=f.retry&&(l=mxResources.get("cancel"),m=function(){d();f.retry()});if(404==f.code||404==f.status||403==f.code){p=403==f.code?null!=f.message?mxUtils.htmlEntities(f.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=k?k:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=
this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var q=null!=k?null:null!=n?n:window.location.hash;if(null!=q&&("#G"==q.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==q.substring(0,45))&&(null!=b&&null!=b.error&&(null!=b.error.errors&&0<b.error.errors.length&&"fileAccess"==b.error.errors[0].reason||null!=b.error.data&&0<b.error.data.length&&"fileAccess"==b.error.data[0].reason)||404==f.code||404==f.status)){q="#U"==q.substring(0,
2)?q.substring(45,q.lastIndexOf("%26ex")):q.substring(2);this.showError(c,p,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+q);this.handleError(b,c,e,g,k)}),m,mxResources.get("changeUser"),mxUtils.bind(this,function(){function b(){f.innerHTML="";for(var b=0;b<d.length;b++){var c=document.createElement("option");mxUtils.write(c,d[b].displayName);c.value=b;f.appendChild(c);c=document.createElement("option");c.innerHTML="&nbsp;&nbsp;&nbsp;";
mxUtils.write(c,"<"+d[b].email+">");c.setAttribute("disabled","disabled");f.appendChild(c)}c=document.createElement("option");mxUtils.write(c,mxResources.get("addAccount"));c.value=d.length;f.appendChild(c)}var d=this.drive.getUsersList(),c=document.createElement("div"),e=document.createElement("span");e.style.marginTop="6px";mxUtils.write(e,mxResources.get("changeUser")+": ");c.appendChild(e);var f=document.createElement("select");f.style.width="200px";b();mxEvent.addListener(f,"change",mxUtils.bind(this,
function(){var c=f.value,e=d.length!=c;e&&this.drive.setUser(d[c]);this.drive.authorize(e,mxUtils.bind(this,function(){e||(d=this.drive.getUsersList(),b())}),mxUtils.bind(this,function(b){this.handleError(b)}),!0)}));c.appendChild(f);c=new CustomDialog(this,c,mxUtils.bind(this,function(){this.loadFile(window.location.hash.substr(1),!0)}));this.showDialog(c.container,300,100,!0,!0)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.hideDialog();null!=e&&e()}),480,150);return}}null!=f.message?
-p=""==f.message&&null!=f.name?mxUtils.htmlEntities(f.name):mxUtils.htmlEntities(f.message):null!=f.response&&null!=f.response.error?p=mxUtils.htmlEntities(f.response.error):"undefined"!==typeof window.App&&(f.code==App.ERROR_TIMEOUT?p=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY?p=mxUtils.htmlEntities(mxResources.get("busy")):"string"===typeof f&&0<f.length&&(p=mxUtils.htmlEntities(f)))}var u=n=null;null!=f&&null!=f.helpLink?(n=mxResources.get("help"),u=mxUtils.bind(this,
-function(){return this.editor.graph.openLink(f.helpLink)})):null!=f&&null!=f.ownerEmail&&(n=mxResources.get("contactOwner"),p+=mxUtils.htmlEntities(" ("+n+": "+f.ownerEmail+")"),u=mxUtils.bind(this,function(){return this.openLink("mailto:"+mxUtils.htmlEntities(f.ownerEmail))}));this.showError(c,p,l,e,m,null,null,n,u,null,null,null,g?e:null)}else null!=e&&e()};EditorUi.prototype.alert=function(b,c,e){b=new ErrorDialog(this,null,b,mxResources.get("ok"),c);this.showDialog(b.container,e||340,100,!0,!1);
+p=""==f.message&&null!=f.name?mxUtils.htmlEntities(f.name):mxUtils.htmlEntities(f.message):null!=f.response&&null!=f.response.error?p=mxUtils.htmlEntities(f.response.error):"undefined"!==typeof window.App&&(f.code==App.ERROR_TIMEOUT?p=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY?p=mxUtils.htmlEntities(mxResources.get("busy")):"string"===typeof f&&0<f.length&&(p=mxUtils.htmlEntities(f)))}var v=n=null;null!=f&&null!=f.helpLink?(n=mxResources.get("help"),v=mxUtils.bind(this,
+function(){return this.editor.graph.openLink(f.helpLink)})):null!=f&&null!=f.ownerEmail&&(n=mxResources.get("contactOwner"),p+=mxUtils.htmlEntities(" ("+n+": "+f.ownerEmail+")"),v=mxUtils.bind(this,function(){return this.openLink("mailto:"+mxUtils.htmlEntities(f.ownerEmail))}));this.showError(c,p,l,e,m,null,null,n,v,null,null,null,g?e:null)}else null!=e&&e()};EditorUi.prototype.alert=function(b,c,e){b=new ErrorDialog(this,null,b,mxResources.get("ok"),c);this.showDialog(b.container,e||340,100,!0,!1);
b.init()};EditorUi.prototype.confirm=function(b,c,e,g,k,n){var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=Math.min(200,28*Math.ceil(b.length/50));b=new ConfirmDialog(this,b,function(){d();null!=c&&c()},function(){d();null!=e&&e()},g,k,null,null,null,null,f);this.showDialog(b.container,340,46+f,!0,n);b.init()};EditorUi.prototype.showBanner=function(b,c,e,g){var d=!1;if(!(this.bannerShowing||this["hideBanner"+b]||isLocalStorage&&null!=mxSettings.settings&&null!=
mxSettings.settings["close"+b])){var f=document.createElement("div");f.style.cssText="position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:"+mxPopupMenu.prototype.zIndex+";";mxUtils.setPrefixedStyle(f.style,"box-shadow","1px 1px 2px 0px #ddd");mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");mxUtils.setPrefixedStyle(f.style,"transition","all 1s ease");f.className="geBtn gePrimaryBtn";
d=document.createElement("img");d.setAttribute("src",IMAGE_PATH+"/logo.png");d.setAttribute("border","0");d.setAttribute("align","absmiddle");d.style.cssText="margin-top:-4px;margin-left:8px;margin-right:12px;width:26px;height:26px;";f.appendChild(d);d=document.createElement("img");d.setAttribute("src",Dialog.prototype.closeImage);d.setAttribute("title",mxResources.get(g?"doNotShowAgain":"close"));d.setAttribute("border","0");d.style.cssText="position:absolute;right:10px;top:12px;filter:invert(1);padding:6px;margin:-6px;cursor:default;";
@@ -3470,9 +3470,9 @@ c,e,k);this.saveData(g,d,b.substring(b.lastIndexOf(",")+1),"image/"+e,!0)};Edito
d.textarea.style.height="380px";this.showDialog(d.container,620,460,!0,!0,null,null,null,null,!0);d.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(b,c,e,g,k,n){"text/xml"!=e||/(\.drawio)$/i.test(c)||/(\.xml)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.html)$/i.test(c)||(c=c+"."+(null!=n?n:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)b=g?this.base64ToBlob(b,e):new Blob([b],{type:e}),navigator.msSaveOrOpenBlob(b,c);else if(mxClient.IS_IE)e=window.open("about:blank",
"_blank"),null==e?mxUtils.popup(b,!0):(e.document.write(b),e.document.close(),e.document.execCommand("SaveAs",!0,c),e.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==e||"image/"!=e.substring(0,6)?this.showTextDialog(c+":",b):this.openInNewWindow(b,e,g);else{var d=document.createElement("a");n=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof d.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var f=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
n=65==(f?parseInt(f[2],10):!1)?!1:n}if(n||this.isOffline()){d.href=URL.createObjectURL(g?this.base64ToBlob(b,e):new Blob([b],{type:e}));n?d.download=c:d.setAttribute("target","_blank");document.body.appendChild(d);try{window.setTimeout(function(){URL.revokeObjectURL(d.href)},2E4),d.click(),d.parentNode.removeChild(d)}catch(y){}}else this.createEchoRequest(b,c,e,g,k).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(b,c,e,g,k,n){b="xml="+encodeURIComponent(b);return new mxXmlRequest(SAVE_URL,
-b+(null!=e?"&mime="+e:"")+(null!=k?"&format="+k:"")+(null!=n?"&base64="+n:"")+(null!=c?"&filename="+encodeURIComponent(c):"")+(g?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(b,c){c=c||"";for(var d=atob(b),e=d.length,f=Math.ceil(e/1024),g=Array(f),k=0;k<f;++k){for(var p=1024*k,t=Math.min(p+1024,e),x=Array(t-p),D=0;p<t;++D,++p)x[D]=d[p].charCodeAt(0);g[k]=new Uint8Array(x)}return new Blob(g,{type:c})};EditorUi.prototype.saveLocalFile=function(b,c,e,g,k,n,p,v){n=null!=n?n:!1;p=null!=p?
+b+(null!=e?"&mime="+e:"")+(null!=k?"&format="+k:"")+(null!=n?"&base64="+n:"")+(null!=c?"&filename="+encodeURIComponent(c):"")+(g?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(b,c){c=c||"";for(var d=atob(b),e=d.length,f=Math.ceil(e/1024),g=Array(f),k=0;k<f;++k){for(var p=1024*k,t=Math.min(p+1024,e),x=Array(t-p),D=0;p<t;++D,++p)x[D]=d[p].charCodeAt(0);g[k]=new Uint8Array(x)}return new Blob(g,{type:c})};EditorUi.prototype.saveLocalFile=function(b,c,e,g,k,n,p,u){n=null!=n?n:!1;p=null!=p?
p:"vsdx"!=k&&(!mxClient.IS_IOS||!navigator.standalone);k=this.getServiceCount(n);isLocalStorage&&k++;var d=4>=k?2:6<k?4:3;c=new CreateDialog(this,c,mxUtils.bind(this,function(d,c){try{if("_blank"==c)if(null!=e&&"image/"==e.substring(0,6))this.openInNewWindow(b,e,g);else if(null!=e&&"text/html"==e.substring(0,9)){var f=new EmbedDialog(this,b);this.showDialog(f.container,450,240,!0,!0);f.init()}else{var l=window.open("about:blank");null==l?mxUtils.popup(b,!0):(l.document.write("<pre>"+mxUtils.htmlEntities(b,
-!1)+"</pre>"),l.document.close())}else c==App.MODE_DEVICE||"download"==c?this.doSaveLocalFile(b,d,e,g,null,v):null!=d&&0<d.length&&this.pickFolder(c,mxUtils.bind(this,function(f){try{this.exportFile(b,d,e,g,c,f)}catch(M){this.handleError(M)}}))}catch(F){this.handleError(F)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,n,p,null,1<k,d,b,e,g);n=this.isServices(k)?k>d?390:270:160;this.showDialog(c.container,420,n,!0,!0);c.init()};EditorUi.prototype.openInNewWindow=
+!1)+"</pre>"),l.document.close())}else c==App.MODE_DEVICE||"download"==c?this.doSaveLocalFile(b,d,e,g,null,u):null!=d&&0<d.length&&this.pickFolder(c,mxUtils.bind(this,function(f){try{this.exportFile(b,d,e,g,c,f)}catch(M){this.handleError(M)}}))}catch(G){this.handleError(G)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,n,p,null,1<k,d,b,e,g);n=this.isServices(k)?k>d?390:270:160;this.showDialog(c.container,420,n,!0,!0);c.init()};EditorUi.prototype.openInNewWindow=
function(b,c,e){var d=window.open("about:blank");null==d||null==d.document?mxUtils.popup(b,!0):("image/svg+xml"!=c||mxClient.IS_SVG?"image/svg+xml"==c?d.document.write("<html>"+b+"</html>"):(b=e?b:btoa(unescape(encodeURIComponent(b))),d.document.write('<html><img style="max-width:100%;" src="data:'+c+";base64,"+b+'"/></html>')):d.document.write("<html><pre>"+mxUtils.htmlEntities(b,!1)+"</pre></html>"),d.document.close())};var k=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.isChromelessImageExportEnabled=
function(){return"draw.io"!=this.getServiceName()||/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname)};EditorUi.prototype.addChromelessToolbarItems=function(b){if(null!=urlParams.tags){this.tagsDialog=this.tagsComponent=null;var d=b(mxUtils.bind(this,function(b){null==this.tagsComponent&&(this.tagsComponent=this.editor.graph.createTagsDialog(mxUtils.bind(this,function(){return null!=this.tagsDialog}),!0),this.tagsComponent.div.getElementsByTagName("div")[0].style.position=
"",mxUtils.setPrefixedStyle(this.tagsComponent.div.style,"borderRadius","5px"),this.tagsComponent.div.className="geScrollable",this.tagsComponent.div.style.maxHeight="160px",this.tagsComponent.div.style.maxWidth="120px",this.tagsComponent.div.style.padding="4px",this.tagsComponent.div.style.overflow="auto",this.tagsComponent.div.style.height="auto",this.tagsComponent.div.style.position="fixed",this.tagsComponent.div.style.fontFamily=Editor.defaultHtmlFont,mxClient.IS_IE||mxClient.IS_IE11?(this.tagsComponent.div.style.backgroundColor=
@@ -3486,49 +3486,49 @@ else{this.exportDialog=document.createElement("div");var e=c.getBoundingClientRe
function(b){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(b,null,"png");b=document.createElement("img");b.style.maxWidth="140px";b.style.maxHeight="140px";b.style.cursor="pointer";b.style.backgroundColor="white";b.setAttribute("title",mxResources.get("openInNewWindow"));b.setAttribute("border","0");b.setAttribute("src",c);this.exportDialog.appendChild(b);mxEvent.addListener(b,"click",mxUtils.bind(this,
function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);d.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,null,null,null,null,null,null,Editor.defaultBorder);mxEvent.addListener(this.editor.graph.container,"click",d);document.body.appendChild(this.exportDialog)}mxEvent.consume(b)}),Editor.cameraImage,mxResources.get("export"))}};EditorUi.prototype.saveData=function(b,c,e,g,k){this.isLocalFileSave()?
this.saveLocalFile(e,b,g,k,c):this.saveRequest(b,c,mxUtils.bind(this,function(b,d){return this.createEchoRequest(e,b,g,k,c,d)}),e,k,g)};EditorUi.prototype.saveRequest=function(b,c,e,g,k,n,p){p=null!=p?p:!mxClient.IS_IOS||!navigator.standalone;var d=this.getServiceCount(!1);isLocalStorage&&d++;var f=4>=d?2:6<d?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(b,d){if("_blank"==d||null!=b&&0<b.length){var f=e("_blank"==d?null:b,d==App.MODE_DEVICE||"download"==d||null==d||"_blank"==d?"0":"1");
-null!=f&&(d==App.MODE_DEVICE||"download"==d||"_blank"==d?f.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(e){n=null!=n?n:"pdf"==c?"application/pdf":"image/"+c;if(null!=g)try{this.exportFile(g,b,n,!0,d,e)}catch(F){this.handleError(F)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),b,n,!0,d,e)}catch(F){this.handleError(F)}else this.handleError({message:mxResources.get("errorSavingFile")})}),
+null!=f&&(d==App.MODE_DEVICE||"download"==d||"_blank"==d?f.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(e){n=null!=n?n:"pdf"==c?"application/pdf":"image/"+c;if(null!=g)try{this.exportFile(g,b,n,!0,d,e)}catch(G){this.handleError(G)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),b,n,!0,d,e)}catch(G){this.handleError(G)}else this.handleError({message:mxResources.get("errorSavingFile")})}),
function(b){this.spinner.stop();this.handleError(b)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,p,null,1<d,f,g,n,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,g,k,n){};EditorUi.prototype.pickFolder=function(b,
-c,e){c(null)};EditorUi.prototype.exportSvg=function(b,c,e,g,k,n,p,t,y,x,D,H,C,F){if(this.spinner.spin(document.body,mxResources.get("export")))try{var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;var f=c?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==c&&(f=D?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var l=this.editor.graph.getSvg(f,b,p,t,null,e,null,null,"blank"==x?"_blank":"self"==x?"_top":null,null,!0,D,H);g&&this.editor.graph.addSvgShadow(l);var m=
-this.getBaseFilename()+(k?".drawio":"")+".svg";F=null!=F?F:mxUtils.bind(this,function(b){this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(m,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});var q=mxUtils.bind(this,function(b){this.spinner.stop();k&&b.setAttribute("content",this.getFileData(!0,null,null,null,e,y,null,null,null,!1));F(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){n?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(b,q,this.thumbImageCache)):q(b)});C?this.embedFonts(l,u):(this.editor.addFontCss(l),u(l))}catch(ca){this.handleError(ca)}};EditorUi.prototype.addRadiobox=function(b,c,e,g,k,n,p){return this.addCheckbox(b,e,g,k,n,p,!0,c)};EditorUi.prototype.addCheckbox=function(b,c,e,g,k,n,
-p,t){n=null!=n?n:!0;var d=document.createElement("input");d.style.marginRight="8px";d.style.marginTop="16px";d.setAttribute("type",p?"radio":"checkbox");p="geCheckbox-"+Editor.guid();d.id=p;null!=t&&d.setAttribute("name",t);e&&(d.setAttribute("checked","checked"),d.defaultChecked=!0);g&&d.setAttribute("disabled","disabled");n&&(b.appendChild(d),e=document.createElement("label"),mxUtils.write(e,c),e.setAttribute("for",p),b.appendChild(e),k||mxUtils.br(b));return d};EditorUi.prototype.addEditButton=
+c,e){c(null)};EditorUi.prototype.exportSvg=function(b,c,e,g,k,n,p,u,t,x,D,I,B,G){if(this.spinner.spin(document.body,mxResources.get("export")))try{var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;var f=c?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==c&&(f=D?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var l=this.editor.graph.getSvg(f,b,p,u,null,e,null,null,"blank"==x?"_blank":"self"==x?"_top":null,null,!0,D,I);g&&this.editor.graph.addSvgShadow(l);var m=
+this.getBaseFilename()+(k?".drawio":"")+".svg";G=null!=G?G:mxUtils.bind(this,function(b){this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(m,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});var q=mxUtils.bind(this,function(b){this.spinner.stop();k&&b.setAttribute("content",this.getFileData(!0,null,null,null,e,t,null,null,null,!1));G(Graph.xmlDeclaration+"\n"+(k?Graph.svgFileComment+
+"\n":"")+Graph.svgDoctype+"\n"+mxUtils.getXml(b))});this.editor.graph.mathEnabled&&this.editor.addMathCss(l);var v=mxUtils.bind(this,function(b){n?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(b,q,this.thumbImageCache)):q(b)});B?this.embedFonts(l,v):(this.editor.addFontCss(l),v(l))}catch(da){this.handleError(da)}};EditorUi.prototype.addRadiobox=function(b,c,e,g,k,n,p){return this.addCheckbox(b,e,g,k,n,p,!0,c)};EditorUi.prototype.addCheckbox=function(b,c,e,g,k,n,
+p,u){n=null!=n?n:!0;var d=document.createElement("input");d.style.marginRight="8px";d.style.marginTop="16px";d.setAttribute("type",p?"radio":"checkbox");p="geCheckbox-"+Editor.guid();d.id=p;null!=u&&d.setAttribute("name",u);e&&(d.setAttribute("checked","checked"),d.defaultChecked=!0);g&&d.setAttribute("disabled","disabled");n&&(b.appendChild(d),e=document.createElement("label"),mxUtils.write(e,c),e.setAttribute("for",p),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(),f="";null!=e&&e.getMode()!=App.MODE_DEVICE&&e.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var g=document.createElement("select");g.style.width="120px";g.style.marginLeft="8px";g.style.marginRight="10px";g.className="geBtn";e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("makeCopy"));g.appendChild(e);e=document.createElement("option");
e.setAttribute("value","custom");mxUtils.write(e,mxResources.get("custom")+"...");g.appendChild(e);b.appendChild(g);mxEvent.addListener(g,"change",mxUtils.bind(this,function(){if("custom"==g.value){var b=new FilenameDialog(this,f,mxResources.get("ok"),function(b){null!=b?f=b:g.value="blank"},mxResources.get("url"),null,null,null,null,function(){g.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)?g.removeAttribute("disabled"):g.setAttribute("disabled","disabled")}));mxUtils.br(b);return{getLink:function(){return d.checked?"blank"===g.value?"_blank":f:null},getEditInput:function(){return d},getEditSelect:function(){return g}}};EditorUi.prototype.addLinkSection=function(b,c){function d(){k.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=g&&g!=mxConstants.NONE?"border:1px solid black;background-color:"+g:"background-position:center center;background-repeat:no-repeat;background-image:url('"+
Dialog.prototype.closeImage+"')")+';"></div>'}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 f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));e.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));e.appendChild(f);f=document.createElement("option");
f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));e.appendChild(f);c&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),e.appendChild(f));b.appendChild(e);mxUtils.write(b,mxResources.get("borderColor")+":");var g="#0000ff",k=null,k=mxUtils.button("",mxUtils.bind(this,function(b){this.pickColor(g||"none",function(b){g=b;d()});mxEvent.consume(b)}));d();k.style.padding=
mxClient.IS_FF?"4px 2px 4px 2px":"4px";k.style.marginLeft="4px";k.style.height="22px";k.style.width="22px";k.style.position="relative";k.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";k.className="geColorBtn";b.appendChild(k);mxUtils.br(b);return{getColor:function(){return g},getTarget:function(){return e.value},focus:function(){e.focus()}}};EditorUi.prototype.createUrlParameters=function(b,c,e,g,k,n,p){p=null!=p?p:[];g&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&
-"1"!=urlParams.dev||p.push("lightbox=1"),"auto"!=b&&p.push("target="+b),null!=c&&c!=mxConstants.NONE&&p.push("highlight="+("#"==c.charAt(0)?c.substring(1):c)),null!=k&&0<k.length&&p.push("edit="+encodeURIComponent(k)),n&&p.push("layers=1"),this.editor.graph.foldingEnabled&&p.push("nav=1"));e&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&p.push("page-id="+this.currentPage.getId());return p};EditorUi.prototype.createLink=function(b,c,e,g,k,n,p,t,y,x){y=this.createUrlParameters(b,
-c,e,g,k,n,y);b=this.getCurrentFile();c=!0;null!=p?e="#U"+encodeURIComponent(p):(b=this.getCurrentFile(),t||null==b||b.constructor!=window.DriveFile?e="#R"+encodeURIComponent(e?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(e="#"+b.getHash(),c=!1));c&&null!=b&&null!=b.getTitle()&&b.getTitle()!=this.defaultFilename&&y.push("title="+encodeURIComponent(b.getTitle()));x&&1<e.length&&(y.push("open="+e.substring(1)),e="");return(g&&
-"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<y.length?"?"+y.join("&"):"")+e};EditorUi.prototype.createHtml=function(b,c,e,g,k,n,p,t,y,x,D,H){this.getBasenames();var d={};""!=k&&k!=mxConstants.NONE&&(d.highlight=k);"auto"!==g&&(d.target=g);x||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;e=parseInt(e);isNaN(e)||100==e||(d.zoom=e/100);e=[];p&&
-(e.push("pages"),d.resize=!0,null!=this.pages&&null!=this.currentPage&&(d.page=mxUtils.indexOf(this.pages,this.currentPage)));c&&(e.push("zoom"),d.resize=!0);t&&e.push("layers");y&&e.push("tags");0<e.length&&(x&&e.push("lightbox"),d.toolbar=e.join(" "));null!=D&&0<D.length&&(d.edit=D);null!=b?d.url=b:d.xml=this.getFileData(!0,null,null,null,null,!p);c='<div class="mxgraph" style="'+(n?"max-width:100%;":"")+(""!=e?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(d))+
-'"></div>';b=null!=b?"&fetch="+encodeURIComponent(b):"";H(c,'<script type="text/javascript" src="'+(0<b.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+b:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.DRAWIO_VIEWER_URL?window.DRAWIO_VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(b,c,e,g){var d=document.createElement("div");d.style.whiteSpace=
+"1"!=urlParams.dev||p.push("lightbox=1"),"auto"!=b&&p.push("target="+b),null!=c&&c!=mxConstants.NONE&&p.push("highlight="+("#"==c.charAt(0)?c.substring(1):c)),null!=k&&0<k.length&&p.push("edit="+encodeURIComponent(k)),n&&p.push("layers=1"),this.editor.graph.foldingEnabled&&p.push("nav=1"));e&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&p.push("page-id="+this.currentPage.getId());return p};EditorUi.prototype.createLink=function(b,c,e,g,k,n,p,u,t,x){t=this.createUrlParameters(b,
+c,e,g,k,n,t);b=this.getCurrentFile();c=!0;null!=p?e="#U"+encodeURIComponent(p):(b=this.getCurrentFile(),u||null==b||b.constructor!=window.DriveFile?e="#R"+encodeURIComponent(e?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(e="#"+b.getHash(),c=!1));c&&null!=b&&null!=b.getTitle()&&b.getTitle()!=this.defaultFilename&&t.push("title="+encodeURIComponent(b.getTitle()));x&&1<e.length&&(t.push("open="+e.substring(1)),e="");return(g&&
+"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<t.length?"?"+t.join("&"):"")+e};EditorUi.prototype.createHtml=function(b,c,e,g,k,n,p,u,t,x,D,I){this.getBasenames();var d={};""!=k&&k!=mxConstants.NONE&&(d.highlight=k);"auto"!==g&&(d.target=g);x||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;e=parseInt(e);isNaN(e)||100==e||(d.zoom=e/100);e=[];p&&
+(e.push("pages"),d.resize=!0,null!=this.pages&&null!=this.currentPage&&(d.page=mxUtils.indexOf(this.pages,this.currentPage)));c&&(e.push("zoom"),d.resize=!0);u&&e.push("layers");t&&e.push("tags");0<e.length&&(x&&e.push("lightbox"),d.toolbar=e.join(" "));null!=D&&0<D.length&&(d.edit=D);null!=b?d.url=b:d.xml=this.getFileData(!0,null,null,null,null,!p);c='<div class="mxgraph" style="'+(n?"max-width:100%;":"")+(""!=e?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(d))+
+'"></div>';b=null!=b?"&fetch="+encodeURIComponent(b):"";I(c,'<script type="text/javascript" src="'+(0<b.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+b:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.DRAWIO_VIEWER_URL?window.DRAWIO_VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(b,c,e,g){var d=document.createElement("div");d.style.whiteSpace=
"nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);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");
f=k.cloneNode(!0);f.setAttribute("value","copy");l.appendChild(f);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 p=this.getCurrentFile();null==e&&null!=p&&p.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(p.getId())})));f.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 C=document.createElement("input");C.setAttribute("type","text");C.style.marginRight="16px";C.style.width="60px";C.style.marginLeft=
-"4px";C.style.marginRight="12px";C.value="100%";d.appendChild(C);var F=this.addCheckbox(d,mxResources.get("fit"),!0),l=null!=this.pages&&1<this.pages.length,M=M=this.addCheckbox(d,mxResources.get("allPages"),l,!l),E=this.addCheckbox(d,mxResources.get("layers"),!0),K=this.addCheckbox(d,mxResources.get("tags"),!0),B=this.addCheckbox(d,mxResources.get("lightbox"),!0),L=this.addEditButton(d,B),O=L.getEditInput();O.style.marginBottom="16px";mxEvent.addListener(B,"change",function(){B.checked?O.removeAttribute("disabled"):
-O.setAttribute("disabled","disabled");O.checked&&B.checked?L.getEditSelect().removeAttribute("disabled"):L.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){g(k.checked?e:null,H.checked,C.value,t.getTarget(),t.getColor(),F.checked,M.checked,E.checked,K.checked,B.checked,L.getLink())}),null,b,c);this.showDialog(b.container,340,430,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,e,g,k,n){var d=document.createElement("div");
-d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,b||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var l=this.getCurrentFile(),f="https://www.diagrams.net/doc/faq/publish-diagram-as-link";b=0;if(null!=l&&l.constructor==window.DriveFile&&!c){b=80;var f="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
-var q=document.createElement("div");q.style.whiteSpace="normal";mxUtils.write(q,mxResources.get("linkAccountRequired"));m.appendChild(q);q=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(l.getId())}));q.style.marginTop="12px";q.className="geBtn";m.appendChild(q);d.appendChild(m);q=document.createElement("a");q.style.paddingLeft="12px";q.style.color="gray";q.style.fontSize="11px";q.style.cursor="pointer";mxUtils.write(q,mxResources.get("check"));m.appendChild(q);
-mxEvent.addListener(q,"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,t=null;if(null!=e||null!=g)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")+":"),t=document.createElement("input"),t.setAttribute("type","text"),t.style.width="50px",t.style.marginLeft="6px",t.style.marginBottom="10px",t.value=g+"px",d.appendChild(t),mxUtils.br(d);var F=this.addLinkSection(d,n);e=null!=this.pages&&1<this.pages.length;var M=null;
-if(null==l||l.constructor!=window.DriveFile||c)M=this.addCheckbox(d,mxResources.get("allPages"),e,!e);var E=this.addCheckbox(d,mxResources.get("lightbox"),!0,null,null,!n),K=this.addEditButton(d,E),B=K.getEditInput();n&&(B.style.marginLeft=E.style.marginLeft,E.style.display="none",b-=20);var L=this.addCheckbox(d,mxResources.get("layers"),!0);L.style.marginLeft=B.style.marginLeft;L.style.marginTop="8px";var O=this.addCheckbox(d,mxResources.get("tags"),!0);O.style.marginLeft=B.style.marginLeft;O.style.marginBottom=
-"16px";O.style.marginTop="16px";mxEvent.addListener(E,"change",function(){E.checked?(L.removeAttribute("disabled"),B.removeAttribute("disabled")):(L.setAttribute("disabled","disabled"),B.setAttribute("disabled","disabled"));B.checked&&E.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){k(F.getTarget(),F.getColor(),null==M?!0:M.checked,E.checked,K.getLink(),L.checked,null!=p?p.value:null,
-null!=t?t.value:null,O.checked)}),null,mxResources.get("create"),f);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)):F.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,g,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+
+mxResources.get("share")),l.appendChild(m),mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(p.getId())})));f.setAttribute("checked","checked");null==e&&k.setAttribute("disabled","disabled");d.appendChild(l);var t=this.addLinkSection(d),I=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,":");var B=document.createElement("input");B.setAttribute("type","text");B.style.marginRight="16px";B.style.width="60px";B.style.marginLeft=
+"4px";B.style.marginRight="12px";B.value="100%";d.appendChild(B);var G=this.addCheckbox(d,mxResources.get("fit"),!0),l=null!=this.pages&&1<this.pages.length,M=M=this.addCheckbox(d,mxResources.get("allPages"),l,!l),F=this.addCheckbox(d,mxResources.get("layers"),!0),K=this.addCheckbox(d,mxResources.get("tags"),!0),C=this.addCheckbox(d,mxResources.get("lightbox"),!0),L=this.addEditButton(d,C),O=L.getEditInput();O.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?O.removeAttribute("disabled"):
+O.setAttribute("disabled","disabled");O.checked&&C.checked?L.getEditSelect().removeAttribute("disabled"):L.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){g(k.checked?e:null,I.checked,B.value,t.getTarget(),t.getColor(),G.checked,M.checked,F.checked,K.checked,C.checked,L.getLink())}),null,b,c);this.showDialog(b.container,340,430,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,e,g,k,n,p){var d=document.createElement("div");
+d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,b||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var l=this.getCurrentFile();b=0;if(null==l||l.constructor!=window.DriveFile||c)p=null!=p?p:"https://www.diagrams.net/doc/faq/publish-diagram-as-link";else{b=80;p=null!=p?p:"https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram";f=document.createElement("div");f.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"));f.appendChild(m);m=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(l.getId())}));m.style.marginTop="12px";m.className="geBtn";f.appendChild(m);d.appendChild(f);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"));f.appendChild(m);
+mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(b.container,300,80,!0,!1);b.init()}))}))}var q=null,t=null;if(null!=e||null!=g)b+=30,mxUtils.write(d,mxResources.get("width")+":"),q=document.createElement("input"),
+q.setAttribute("type","text"),q.style.marginRight="16px",q.style.width="50px",q.style.marginLeft="6px",q.style.marginRight="16px",q.style.marginBottom="10px",q.value="100%",d.appendChild(q),mxUtils.write(d,mxResources.get("height")+":"),t=document.createElement("input"),t.setAttribute("type","text"),t.style.width="50px",t.style.marginLeft="6px",t.style.marginBottom="10px",t.value=g+"px",d.appendChild(t),mxUtils.br(d);var v=this.addLinkSection(d,n);e=null!=this.pages&&1<this.pages.length;var M=null;
+if(null==l||l.constructor!=window.DriveFile||c)M=this.addCheckbox(d,mxResources.get("allPages"),e,!e);var F=this.addCheckbox(d,mxResources.get("lightbox"),!0,null,null,!n),K=this.addEditButton(d,F),C=K.getEditInput();n&&(C.style.marginLeft=F.style.marginLeft,F.style.display="none",b-=20);var L=this.addCheckbox(d,mxResources.get("layers"),!0);L.style.marginLeft=C.style.marginLeft;L.style.marginTop="8px";var O=this.addCheckbox(d,mxResources.get("tags"),!0);O.style.marginLeft=C.style.marginLeft;O.style.marginBottom=
+"16px";O.style.marginTop="16px";mxEvent.addListener(F,"change",function(){F.checked?(L.removeAttribute("disabled"),C.removeAttribute("disabled")):(L.setAttribute("disabled","disabled"),C.setAttribute("disabled","disabled"));C.checked&&F.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){k(v.getTarget(),v.getColor(),null==M?!0:M.checked,F.checked,K.getLink(),L.checked,null!=q?q.value:null,
+null!=t?t.value:null,O.checked)}),null,mxResources.get("create"),p);this.showDialog(c.container,340,300+b,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)):v.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,g,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+
(k?"10":"4")+"px";d.appendChild(f);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 q=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),p=g?null:this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),Editor.defaultIncludeDiagram),f=this.editor.graph,t=g?null:this.addCheckbox(d,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.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(!q.checked,null!=p?p.checked:!1,null!=t?t.checked:!1,b,d)}),null,b,c);this.showDialog(b.container,300,(k?25:0)+(g?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(b,c,e,g,k,n,p,t,y){p=null!=p?p:Editor.defaultIncludeDiagram;var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=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 q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight="12px";q.value=this.lastExportZoom||"100%";d.appendChild(q);mxUtils.write(d,mxResources.get("borderWidth")+":");var v=document.createElement("input");v.setAttribute("type","text");v.style.marginRight="16px";v.style.width="60px";v.style.marginLeft="4px";v.value=this.lastExportBorder||
-"0";d.appendChild(v);mxUtils.br(d);var u=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),K=document.createElement("input");K.style.marginTop="16px";K.style.marginRight="8px";K.style.marginLeft="24px";K.setAttribute("disabled","disabled");K.setAttribute("type","checkbox");var B=document.createElement("select");B.style.marginTop="16px";B.style.marginLeft="8px";b=["selectionOnly","diagram","page"];for(m=0;m<b.length;m++)if(!f.isSelectionEmpty()||"selectionOnly"!=b[m]){var L=
-document.createElement("option");mxUtils.write(L,mxResources.get(b[m]));L.setAttribute("value",b[m]);B.appendChild(L)}y?(mxUtils.write(d,mxResources.get("size")+":"),d.appendChild(B),mxUtils.br(d),l+=26,mxEvent.addListener(B,"change",function(){"selectionOnly"==B.value&&(u.checked=!0)})):n&&(d.appendChild(K),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),l+=30,mxEvent.addListener(u,"change",function(){u.checked?K.removeAttribute("disabled"):K.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?
-y&&(u.style.display="none",u.nextSibling.style.display="none",u.nextSibling.nextSibling.style.display="none",l-=30):(B.value="diagram",K.setAttribute("checked","checked"),K.defaultChecked=!0,mxEvent.addListener(u,"change",function(){B.value=u.checked?"selectionOnly":"diagram"}));var O=this.addCheckbox(d,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),ca=null;Editor.isDarkMode()&&(ca=this.addCheckbox(d,mxResources.get("dark"),!0),l+=26);var N=this.addCheckbox(d,mxResources.get("shadow"),
-f.shadowVisible),Q=document.createElement("input");Q.style.marginTop="16px";Q.style.marginRight="8px";Q.setAttribute("type","checkbox");var W=document.createElement("input");W.style.marginTop="16px";W.style.marginRight="8px";W.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||Q.setAttribute("disabled","disabled");c&&(d.appendChild(Q),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),d.appendChild(W),mxUtils.write(d,mxResources.get("embedFonts")),mxUtils.br(d),l+=
-60);var G=null;if("png"==t||"jpeg"==t)G=this.addCheckbox(d,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=30;var J=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),p,null,null,"jpeg"!=t);J.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=v.value;this.lastExportZoom=
-q.value;k(q.value,O.checked,!u.checked,N.checked,J.checked,Q.checked,v.value,K.checked,!1,A.value,null!=G?G.checked:null,null!=ca?ca.checked:null,B.value,W.checked)}),null,e,g);this.showDialog(e.container,340,l,!0,!0,null,null,null,null,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,e,g,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=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),q=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible&&g,!g),p=this.addCheckbox(d,e),t=this.addCheckbox(d,mxResources.get("lightbox"),!0),C=this.addEditButton(d,t),F=C.getEditInput(),M=1<f.model.getChildCount(f.model.getRoot()),E=this.addCheckbox(d,mxResources.get("layers"),M,
-!M);E.style.marginLeft=F.style.marginLeft;E.style.marginBottom="12px";E.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?(M&&E.removeAttribute("disabled"),F.removeAttribute("disabled")):(E.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"));F.checked&&t.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){b(m.checked,q.checked,p.checked,t.checked,
-C.getLink(),E.checked)}),null,mxResources.get("embed"),k);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,e,g,k,n,p,t){function d(d){var c=" ",m="";g&&(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('"+
+d.appendChild(m);mxUtils.write(d,mxResources.get("zoom")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight="12px";q.value=this.lastExportZoom||"100%";d.appendChild(q);mxUtils.write(d,mxResources.get("borderWidth")+":");var 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,f.isSelectionEmpty()),K=document.createElement("input");K.style.marginTop="16px";K.style.marginRight="8px";K.style.marginLeft="24px";K.setAttribute("disabled","disabled");K.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(!f.isSelectionEmpty()||"selectionOnly"!=b[m]){var L=
+document.createElement("option");mxUtils.write(L,mxResources.get(b[m]));L.setAttribute("value",b[m]);C.appendChild(L)}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)})):n&&(d.appendChild(K),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),l+=30,mxEvent.addListener(v,"change",function(){v.checked?K.removeAttribute("disabled"):K.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?
+y&&(v.style.display="none",v.nextSibling.style.display="none",v.nextSibling.nextSibling.style.display="none",l-=30):(C.value="diagram",K.setAttribute("checked","checked"),K.defaultChecked=!0,mxEvent.addListener(v,"change",function(){C.value=v.checked?"selectionOnly":"diagram"}));var O=this.addCheckbox(d,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),da=null;Editor.isDarkMode()&&(da=this.addCheckbox(d,mxResources.get("dark"),!0),l+=26);var N=this.addCheckbox(d,mxResources.get("shadow"),
+f.shadowVisible),Q=document.createElement("input");Q.style.marginTop="16px";Q.style.marginRight="8px";Q.setAttribute("type","checkbox");var Y=document.createElement("input");Y.style.marginTop="16px";Y.style.marginRight="8px";Y.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||Q.setAttribute("disabled","disabled");c&&(d.appendChild(Q),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),d.appendChild(Y),mxUtils.write(d,mxResources.get("embedFonts")),mxUtils.br(d),l+=
+60);var H=null;if("png"==t||"jpeg"==t)H=this.addCheckbox(d,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=30;var J=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),p,null,null,"jpeg"!=t);J.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=
+q.value;k(q.value,O.checked,!v.checked,N.checked,J.checked,Q.checked,u.value,K.checked,!1,A.value,null!=H?H.checked:null,null!=da?da.checked:null,C.value,Y.checked)}),null,e,g);this.showDialog(e.container,340,l,!0,!0,null,null,null,null,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,e,g,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=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),q=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible&&g,!g),p=this.addCheckbox(d,e),t=this.addCheckbox(d,mxResources.get("lightbox"),!0),B=this.addEditButton(d,t),G=B.getEditInput(),M=1<f.model.getChildCount(f.model.getRoot()),F=this.addCheckbox(d,mxResources.get("layers"),M,
+!M);F.style.marginLeft=G.style.marginLeft;F.style.marginBottom="12px";F.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?(M&&F.removeAttribute("disabled"),G.removeAttribute("disabled")):(F.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"));G.checked&&t.checked?B.getEditSelect().removeAttribute("disabled"):B.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){b(m.checked,q.checked,p.checked,t.checked,
+B.getLink(),F.checked)}),null,mxResources.get("embed"),k);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,e,g,k,n,p,t){function d(d){var c=" ",m="";g&&(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":"")+(n?"&layers=1":"")+"');}})(this);\"",m+="cursor:pointer;");b&&(m+="max-width:100%;");var q="";e&&(q=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');p('<img src="'+d+'"'+q+(""!=m?' style="'+m+'"':"")+c+"/>")}var f=this.editor.graph.getGraphBounds(),l=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(b){var c=g?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),f.width*f.height<=MAX_AREA&&c.length<=MAX_REQUEST_SIZE){var m="";e&&(m="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var q=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(g?"1":"0")+m+"&xml="+encodeURIComponent(c));q.send(mxUtils.bind(this,function(){200<=q.getStatus()&&
299>=q.getStatus()?d("data:image/png;base64,"+q.getText()):t({message:mxResources.get("unknownError")})}))}else t({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(b,c,e,g,k,n,p){var d=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!e),f=d.getElementsByTagName("a");if(null!=f)for(var l=0;l<f.length;l++){var m=f[l].getAttribute("href");null!=m&&"#"==m.charAt(0)&&"_blank"==f[l].getAttribute("target")&&f[l].removeAttribute("target")}g&&
@@ -3539,32 +3539,32 @@ Math.floor((new Date-b)/1E3);var d=Math.floor(b/31536E3);if(1<d)return d+" "+mxR
b;else if("mxfile"==b.nodeName){var e=b.getElementsByTagName("diagram");if(0<e.length){var d=e[0],f=c.getGlobalVariable;c.getGlobalVariable=function(b){return"page"==b?d.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==b?1:f.apply(this,arguments)}}}null!=d&&(b=Editor.parseDiagramNode(d))}e=this.editor.graph;try{this.editor.graph=c,this.editor.setGraphXml(b)}catch(n){}finally{this.editor.graph=e}return b};EditorUi.prototype.getPngFileProperties=function(b){var d=1,c=0;if(null!=
b){if(b.hasAttribute("scale")){var e=parseFloat(b.getAttribute("scale"));!isNaN(e)&&0<e&&(d=e)}b.hasAttribute("border")&&(e=parseInt(b.getAttribute("border")),!isNaN(e)&&0<e&&(c=e))}return{scale:d,border:c}};EditorUi.prototype.getEmbeddedPng=function(b,c,e,g,k){try{var d=this.editor.graph,f=null!=d.themes&&"darkTheme"==d.defaultThemeName,l=null;if(null!=e&&0<e.length)d=this.createTemporaryGraph(f?d.getDefaultStylesheet():d.getStylesheet()),document.body.appendChild(d.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(e).documentElement,
!0),d),l=e;else if(f||null!=this.pages&&this.currentPage!=this.pages[0]){var d=this.createTemporaryGraph(f?d.getDefaultStylesheet():d.getStylesheet()),m=d.getGlobalVariable;d.setBackgroundImage=this.editor.graph.setBackgroundImage;var q=this.pages[0];this.currentPage==q?d.setBackgroundImage(this.editor.graph.backgroundImage):null!=q.viewState&&null!=q.viewState&&d.setBackgroundImage(q.viewState.backgroundImage);d.getGlobalVariable=function(b){return"page"==b?q.getName():"pagenumber"==b?1:m.apply(this,
-arguments)};document.body.appendChild(d.container);d.model.setRoot(q.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(e){try{null==l&&(l=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var f=e.toDataURL("image/png"),f=Editor.writeGraphModelToPng(f,"tEXt","mxfile",encodeURIComponent(l));b(f.substring(f.lastIndexOf(",")+1));d!=this.editor.graph&&d.container.parentNode.removeChild(d.container)}catch(C){null!=c&&c(C)}}),null,null,null,mxUtils.bind(this,function(b){null!=c&&
-c(b)}),null,null,g,null,d.shadowVisible,null,d,k,null,null,null,"diagram",null)}catch(D){null!=c&&c(D)}};EditorUi.prototype.getEmbeddedSvg=function(b,c,e,g,k,n,p,t,y,x,D,H,C){t=null!=t?t:!0;D=null!=D?D:0;p=null!=y?y:c.background;p==mxConstants.NONE&&(p=null);n=c.getSvg(p,x,D,null,null,n,null,null,null,c.shadowVisible||H,null,C,"diagram");(c.shadowVisible||H)&&c.addSvgShadow(n,null,null,0==D);null!=b&&n.setAttribute("content",b);null!=e&&n.setAttribute("resource",e);var d=mxUtils.bind(this,function(b){b=
+arguments)};document.body.appendChild(d.container);d.model.setRoot(q.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(e){try{null==l&&(l=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var f=e.toDataURL("image/png"),f=Editor.writeGraphModelToPng(f,"tEXt","mxfile",encodeURIComponent(l));b(f.substring(f.lastIndexOf(",")+1));d!=this.editor.graph&&d.container.parentNode.removeChild(d.container)}catch(B){null!=c&&c(B)}}),null,null,null,mxUtils.bind(this,function(b){null!=c&&
+c(b)}),null,null,g,null,d.shadowVisible,null,d,k,null,null,null,"diagram",null)}catch(D){null!=c&&c(D)}};EditorUi.prototype.getEmbeddedSvg=function(b,c,e,g,k,n,p,t,y,x,D,I,B){t=null!=t?t:!0;D=null!=D?D:0;p=null!=y?y:c.background;p==mxConstants.NONE&&(p=null);n=c.getSvg(p,x,D,null,null,n,null,null,null,c.shadowVisible||I,null,B,"diagram");(c.shadowVisible||I)&&c.addSvgShadow(n,null,null,0==D);null!=b&&n.setAttribute("content",b);null!=e&&n.setAttribute("resource",e);var d=mxUtils.bind(this,function(b){b=
(g?"":Graph.xmlDeclaration+"\n"+Graph.svgFileComment+"\n"+Graph.svgDoctype+"\n")+mxUtils.getXml(b);null!=k&&k(b);return b});c.mathEnabled&&this.editor.addMathCss(n);if(null!=k)this.embedFonts(n,mxUtils.bind(this,function(b){t?this.editor.convertImages(b,mxUtils.bind(this,function(b){d(b)})):d(b)}));else return d(n)};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,g,k,n,p,t,y,x,D,H,C){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,D)}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,g,null,null,n,p,x,H,C)}catch(M){this.spinner.stop(),this.handleError(M)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,e,g,k,n,p){c=null!=c?c:0;e=null!=e?e:0;var d=[];try{var f=
+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,g,k,n,p,t,y,x,D,I,B){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,D)}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,g,null,null,n,p,x,I,B)}catch(M){this.spinner.stop(),this.handleError(M)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,e,g,k,n,p){c=null!=c?c:0;e=null!=e?e:0;var d=[];try{var f=
this.editor.graph;if(null!=b&&0<b.length){f.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 q=m.getElementsByTagName("diagram");if(1==q.length&&!n){if(m=Editor.parseDiagramNode(q[0]),null!=this.currentPage&&(b[q[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",
-[1]))){var t=q[0].getAttribute("name");null!=t&&""!=t&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,t))}}else if(0<q.length){n=[];var u=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(b[q[0].getAttribute("id")]=this.pages[0].getId(),m=Editor.parseDiagramNode(q[0]),g=!1,u=1);for(;u<q.length;u++){var M=q[u].getAttribute("id");q[u].removeAttribute("id");var E=this.updatePageRoot(new DiagramPage(q[u]));b[M]=q[u].getAttribute("id");var K=this.pages.length;null==
-E.getName()&&E.setName(mxResources.get("pageWithNumber",[K+1]));f.model.execute(new ChangePage(this,E,E,K,!0));n.push(E)}this.updatePageLinks(b,n)}}if(null!=m&&"mxGraphModel"===m.nodeName&&(d=f.importGraphModel(m,c,e,g),null!=d))for(u=0;u<d.length;u++)this.updatePageLinksForCell(b,d[u]);p&&this.insertHandler(d,null,null,f.defaultVertexStyle,f.defaultEdgeStyle,!1,!0)}finally{f.model.endUpdate()}}}catch(B){if(k)throw B;this.handleError(B)}return d};EditorUi.prototype.updatePageLinks=function(b,c){for(var d=
+[1]))){var t=q[0].getAttribute("name");null!=t&&""!=t&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,t))}}else if(0<q.length){n=[];var v=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(b[q[0].getAttribute("id")]=this.pages[0].getId(),m=Editor.parseDiagramNode(q[0]),g=!1,v=1);for(;v<q.length;v++){var M=q[v].getAttribute("id");q[v].removeAttribute("id");var F=this.updatePageRoot(new DiagramPage(q[v]));b[M]=q[v].getAttribute("id");var K=this.pages.length;null==
+F.getName()&&F.setName(mxResources.get("pageWithNumber",[K+1]));f.model.execute(new ChangePage(this,F,F,K,!0));n.push(F)}this.updatePageLinks(b,n)}}if(null!=m&&"mxGraphModel"===m.nodeName&&(d=f.importGraphModel(m,c,e,g),null!=d))for(v=0;v<d.length;v++)this.updatePageLinksForCell(b,d[v]);p&&this.insertHandler(d,null,null,f.defaultVertexStyle,f.defaultEdgeStyle,!1,!0)}finally{f.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,f=e.getLinkForCell(c);null!=f&&e.setLinkForCell(c,this.updatePageLink(b,f));if(e.isHtmlLabel(c)){d.innerHTML=e.sanitizeHtml(e.getLabel(c));for(var g=d.getElementsByTagName("a"),k=!1,p=0;p<g.length;p++)f=g[p].getAttribute("href"),null!=f&&(g[p].setAttribute("href",this.updatePageLink(b,f)),k=!0);k&&e.labelChanged(c,d.innerHTML)}for(p=
0;p<e.model.getChildCount(c);p++)this.updatePageLinksForCell(b,e.model.getChildAt(c,p))};EditorUi.prototype.updatePageLink=function(b,c){if(Graph.isPageLink(c)){var d=b[c.substring(c.indexOf(",")+1)];c=null!=d?"data:page/id,"+d:null}else if("data:action/json,"==c.substring(0,17))try{var e=JSON.parse(c.substring(17));if(null!=e.actions){for(var f=0;f<e.actions.length;f++){var g=e.actions[f];if(null!=g.open&&Graph.isPageLink(g.open)){var k=g.open.substring(g.open.indexOf(",")+1),d=b[k];null!=d?g.open=
-"data:page/id,"+d:null==this.getPageById(k)&&delete g.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,g,k){g=null!=g?g: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(g);try{var f=
-"UNKNOWN-VISIO",l=g.lastIndexOf(".");if(0<=l&&l<g.length)f=g.substring(l+1).toUpperCase();else{var m=g.lastIndexOf("/");0<=m&&m<g.length&&(g=g.substring(m+1))}EditorUi.logEvent({category:f+"-MS-IMPORT-FILE",action:"filename_"+g,label:d?"remote":"local"})}catch(H){}if(d)if(null==VSD_CONVERT_URL||this.isOffline())e({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{d=new FormData;d.append("file1",b,g);var n=new XMLHttpRequest;
+"data:page/id,"+d:null==this.getPageById(k)&&delete g.open}}c="data:action/json,"+JSON.stringify(e)}}catch(u){}return c};EditorUi.prototype.isRemoteVisioFormat=function(b){return/(\.v(sd|dx))($|\?)/i.test(b)||/(\.vs(s|x))($|\?)/i.test(b)};EditorUi.prototype.importVisio=function(b,c,e,g,k){g=null!=g?g: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(g);try{var f=
+"UNKNOWN-VISIO",l=g.lastIndexOf(".");if(0<=l&&l<g.length)f=g.substring(l+1).toUpperCase();else{var m=g.lastIndexOf("/");0<=m&&m<g.length&&(g=g.substring(m+1))}EditorUi.logEvent({category:f+"-MS-IMPORT-FILE",action:"filename_"+g,label:d?"remote":"local"})}catch(I){}if(d)if(null==VSD_CONVERT_URL||this.isOffline())e({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{d=new FormData;d.append("file1",b,g);var n=new XMLHttpRequest;
n.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(g)?"?stencil=1":""));n.responseType="blob";this.addRemoteServiceSecurityCheck(n);null!=k&&n.setRequestHeader("x-convert-custom",k);n.onreadystatechange=mxUtils.bind(this,function(){if(4==n.readyState)if(200<=n.status&&299>=n.status)try{var b=n.response;if("text/xml"==b.type){var d=new FileReader;d.onload=mxUtils.bind(this,function(b){try{c(b.target.result)}catch(M){e({message:mxResources.get("errorLoadingFile")})}});d.readAsText(b)}else this.doImportVisio(b,
-c,e,g)}catch(F){e(F)}else try{""==n.responseType||"text"==n.responseType?e({message:n.responseText}):(d=new FileReader,d.onload=function(){e({message:JSON.parse(d.result).Message})},d.readAsText(n.response))}catch(F){e({})}});n.send(d)}else try{this.doImportVisio(b,c,e,g)}catch(H){e(H)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",
+c,e,g)}catch(G){e(G)}else try{""==n.responseType||"text"==n.responseType?e({message:n.responseText}):(d=new FileReader,d.onload=function(){e({message:JSON.parse(d.result).Message})},d.readAsText(n.response))}catch(G){e({})}});n.send(d)}else try{this.doImportVisio(b,c,e,g)}catch(I){e(I)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",
d))};EditorUi.prototype.importGraphML=function(b,c,e){e=null!=e?e:mxUtils.bind(this,function(b){this.handleError(b)});var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportGraphML)try{this.doImportGraphML(b,c,e)}catch(q){e(q)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportGraphML||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.exportVisio=
function(b){var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams(b)||this.handleError({message:mxResources.get("unknownError")})}catch(l){this.handleError(l)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.convertLucidChart=
function(b,c,e){var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter){try{EditorUi.logEvent({category:"LUCIDCHART-IMPORT-FILE",action:"size_"+b.length}),EditorUi.debug("convertLucidChart",b)}catch(q){}try{c(LucidImporter.importState(JSON.parse(b)))}catch(q){null!=window.console&&console.error(q),e(q)}}else e({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline(!0)?
window.setTimeout(d,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js",function(){mxscript("js/orgchart/bridge.min.js",function(){mxscript("js/orgchart/bridge.collections.min.js",function(){mxscript("js/orgchart/OrgChart.Layout.min.js",function(){mxscript("js/orgchart/mxOrgChartLayout.js",d)})})})}):mxscript("js/extensions.min.js",d))};EditorUi.prototype.generateMermaidImage=function(b,c,e,g){var d=this,f=function(){try{this.loadingMermaid=!1,c=null!=c?c:EditorUi.defaultMermaidConfig,
c.securityLevel="strict",c.startOnLoad=!1,mermaid.mermaidAPI.initialize(c),mermaid.mermaidAPI.render("geMermaidOutput-"+(new Date).getTime(),b,function(b){try{if(mxClient.IS_IE||mxClient.IS_IE11)b=b.replace(/ xmlns:\S*="http:\/\/www.w3.org\/XML\/1998\/namespace"/g,"").replace(/ (NS xml|\S*):space="preserve"/g,' xml:space="preserve"');var c=mxUtils.parseXml(b).getElementsByTagName("svg");if(0<c.length){var f=parseFloat(c[0].getAttribute("width")),l=parseFloat(c[0].getAttribute("height"));if(isNaN(f)||
-isNaN(l))try{var k=c[0].getAttribute("viewBox").split(/\s+/),f=parseFloat(k[2]),l=parseFloat(k[3])}catch(H){f=f||100,l=l||100}e(d.convertDataUri(Editor.createSvgDataUri(b)),f,l)}else g({message:mxResources.get("invalidInput")})}catch(H){g(H)}})}catch(u){g(u)}};"undefined"!==typeof mermaid||this.loadingMermaid||this.isOffline(!0)?f():(this.loadingMermaid=!0,"1"==urlParams.dev?mxscript("js/mermaid/mermaid.min.js",f):mxscript("js/extensions.min.js",f))};EditorUi.prototype.generatePlantUmlImage=function(b,
+isNaN(l))try{var k=c[0].getAttribute("viewBox").split(/\s+/),f=parseFloat(k[2]),l=parseFloat(k[3])}catch(I){f=f||100,l=l||100}e(d.convertDataUri(Editor.createSvgDataUri(b)),f,l)}else g({message:mxResources.get("invalidInput")})}catch(I){g(I)}})}catch(v){g(v)}};"undefined"!==typeof mermaid||this.loadingMermaid||this.isOffline(!0)?f():(this.loadingMermaid=!0,"1"==urlParams.dev?mxscript("js/mermaid/mermaid.min.js",f):mxscript("js/extensions.min.js",f))};EditorUi.prototype.generatePlantUmlImage=function(b,
c,e,g){function d(b,d,c){c1=b>>2;c2=(b&3)<<4|d>>4;c3=(d&15)<<2|c>>6;c4=c&63;r="";r+=f(c1&63);r+=f(c2&63);r+=f(c3&63);return r+=f(c4&63)}function f(b){if(10>b)return String.fromCharCode(48+b);b-=10;if(26>b)return String.fromCharCode(65+b);b-=26;if(26>b)return String.fromCharCode(97+b);b-=26;return 0==b?"-":1==b?"_":"?"}var l=new XMLHttpRequest;l.open("GET",("txt"==c?PLANT_URL+"/txt/":"png"==c?PLANT_URL+"/png/":PLANT_URL+"/svg/")+function(b){r="";for(i=0;i<b.length;i+=3)r=i+2==b.length?r+d(b.charCodeAt(i),
b.charCodeAt(i+1),0):i+1==b.length?r+d(b.charCodeAt(i),0,0):r+d(b.charCodeAt(i),b.charCodeAt(i+1),b.charCodeAt(i+2));return r}(Graph.arrayBufferToString(pako.deflateRaw(b))),!0);"txt"!=c&&(l.responseType="blob");l.onload=function(b){if(200<=this.status&&300>this.status)if("txt"==c)e(this.response);else{var d=new FileReader;d.readAsDataURL(this.response);d.onloadend=function(b){var c=new Image;c.onload=function(){try{var b=c.width,f=c.height;if(0==b&&0==f){var l=d.result,k=l.indexOf(","),m=decodeURIComponent(escape(atob(l.substring(k+
-1)))),n=mxUtils.parseXml(m).getElementsByTagName("svg");0<n.length&&(b=parseFloat(n[0].getAttribute("width")),f=parseFloat(n[0].getAttribute("height")))}e(d.result,b,f)}catch(B){g(B)}};c.src=d.result};d.onerror=function(b){g(b)}}else g(b)};l.onerror=function(b){g(b)};l.send()};EditorUi.prototype.insertAsPreText=function(b,c,e){var d=this.editor.graph,f=null;d.getModel().beginUpdate();try{f=d.insertVertex(null,null,"<pre>"+b+"</pre>",c,e,1,1,"text;html=1;align=left;verticalAlign=top;"),d.updateCellSize(f,
+1)))),n=mxUtils.parseXml(m).getElementsByTagName("svg");0<n.length&&(b=parseFloat(n[0].getAttribute("width")),f=parseFloat(n[0].getAttribute("height")))}e(d.result,b,f)}catch(C){g(C)}};c.src=d.result};d.onerror=function(b){g(b)}}else g(b)};l.onerror=function(b){g(b)};l.send()};EditorUi.prototype.insertAsPreText=function(b,c,e){var d=this.editor.graph,f=null;d.getModel().beginUpdate();try{f=d.insertVertex(null,null,"<pre>"+b+"</pre>",c,e,1,1,"text;html=1;align=left;verticalAlign=top;"),d.updateCellSize(f,
!0)}finally{d.getModel().endUpdate()}return f};EditorUi.prototype.insertTextAt=function(b,c,e,g,k,n,p,t){n=null!=n?n:!0;p=null!=p?p:!0;if(null!=b)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b))this.parseFile(new Blob([b.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&this.editor.graph.setSelectionCells(this.insertTextAt(b.responseText,c,e,!0))}));else if("data:"==
b.substring(0,5)||!this.isOffline()&&(k||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b))){var d=this.editor.graph;if("data:application/pdf;base64,"==b.substring(0,28)){var f=Editor.extractGraphModelFromPdf(b);if(null!=f&&0<f.length)return this.importXml(f,c,e,n,!0,t)}if("data:image/png;base64,"==b.substring(0,22)&&(f=this.extractGraphModelFromPng(b),null!=f&&0<f.length))return this.importXml(f,c,e,n,!0,t);if("data:image/svg+xml;"==b.substring(0,19))try{f=null;"data:image/svg+xml;base64,"==b.substring(0,
-26)?(f=b.substring(b.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(f):Base64.decode(f,!0)):f=decodeURIComponent(b.substring(b.indexOf(",")+1));var l=this.importXml(f,c,e,n,!0,t);if(0<l.length)return l}catch(C){}this.loadImage(b,mxUtils.bind(this,function(f){if("data:"==b.substring(0,5))this.resizeImage(f,b,mxUtils.bind(this,function(b,f,g){d.setSelectionCell(d.insertVertex(null,null,"",d.snap(c),d.snap(e),f,g,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
+26)?(f=b.substring(b.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(f):Base64.decode(f,!0)):f=decodeURIComponent(b.substring(b.indexOf(",")+1));var l=this.importXml(f,c,e,n,!0,t);if(0<l.length)return l}catch(B){}this.loadImage(b,mxUtils.bind(this,function(f){if("data:"==b.substring(0,5))this.resizeImage(f,b,mxUtils.bind(this,function(b,f,g){d.setSelectionCell(d.insertVertex(null,null,"",d.snap(c),d.snap(e),f,g,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
this.convertDataUri(b)+";"))}),p,this.maxImageSize);else{var g=Math.min(1,Math.min(this.maxImageSize/f.width,this.maxImageSize/f.height)),l=Math.round(f.width*g);f=Math.round(f.height*g);d.setSelectionCell(d.insertVertex(null,null,"",d.snap(c),d.snap(e),l,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b+";"))}}),mxUtils.bind(this,function(){var f=null;d.getModel().beginUpdate();try{f=d.insertVertex(d.getDefaultParent(),
null,b,d.snap(c),d.snap(e),1,1,"text;"+(g?"html=1;":"")),d.updateCellSize(f),d.fireEvent(new mxEventObject("textInserted","cells",[f]))}finally{d.getModel().endUpdate()}d.setSelectionCell(f)}))}else{b=Graph.zapGremlins(mxUtils.trim(b));if(this.isCompatibleString(b))return this.importXml(b,c,e,n,null,t);if(0<b.length)if(this.isLucidChartData(b))this.convertLucidChart(b,mxUtils.bind(this,function(b){this.editor.graph.setSelectionCells(this.importXml(b,c,e,n,null,t))}),mxUtils.bind(this,function(b){this.handleError(b)}));
else{d=this.editor.graph;k=null;d.getModel().beginUpdate();try{k=d.insertVertex(d.getDefaultParent(),null,"",d.snap(c),d.snap(e),1,1,"text;whiteSpace=wrap;"+(g?"html=1;":""));d.fireEvent(new mxEventObject("textInserted","cells",[k]));"<"==b.charAt(0)&&b.indexOf(">")==b.length-1&&(b=mxUtils.htmlEntities(b));b.length>this.maxTextBytes&&(b=b.substring(0,this.maxTextBytes)+"...");k.value=b;d.updateCellSize(k);if(0<this.maxTextWidth&&k.geometry.width>this.maxTextWidth){var m=d.getPreferredSizeForCell(k,
@@ -3574,44 +3574,44 @@ b.substring(0,d)+b.substring(b.indexOf(",",d+1)))}return b};EditorUi.prototype.i
b,d,c)});window.deleteBrowserFile=mxUtils.bind(this,function(b,d,c){StorageFile.deleteFile(this,b,d,c)});if(!c){var e=Editor.useLocalStorage;Editor.useLocalStorage=!b}window.openFile=new OpenFile(mxUtils.bind(this,function(b){this.hideDialog(b)}));window.openFile.setConsumer(mxUtils.bind(this,function(b,d){if(null!=d&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(d)){var c=new Blob([b],{type:"application/octet-stream"});this.importVisio(c,mxUtils.bind(this,function(b){this.importXml(b,0,0,!0)}),
null,d)}else this.editor.graph.setSelectionCells(this.importXml(b,0,0,!0))}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null});if(!c){var f=this.dialog,g=f.close;this.dialog.close=mxUtils.bind(this,function(b){Editor.useLocalStorage=e;g.apply(f,arguments);b&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importZipFile=function(b,c,e){var d=this,f=mxUtils.bind(this,
function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(b).then(function(f){if(0==Object.keys(f.files).length)e();else{var g=0,l,k=!1;f.forEach(function(b,d){var f=d.name.toLowerCase();"diagram/diagram.xml"==f?(k=!0,d.async("string").then(function(b){0==b.indexOf("<mxfile ")?c(b):e()})):0==f.indexOf("versions/")&&(f=parseInt(f.substr(9)),f>g&&(g=f,l=d))});0<g?l.async("string").then(function(f){!d.isOffline()&&(new XMLHttpRequest).upload&&d.isRemoteFileFormat(f,b.name)?d.parseFile(new Blob([f],
-{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?c(b.responseText):e())}),b.name):e()}):k||e()}},function(b){e(b)}):e()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?f():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",f))};EditorUi.prototype.importFile=function(b,c,e,g,k,n,p,t,y,x,D,H){x=null!=x?x:!0;var d=!1,f=null,l=mxUtils.bind(this,function(b){var d=null;null!=b&&"<mxlibrary"==b.substring(0,10)?
-this.loadLibrary(new LocalLibrary(this,b,p)):d=this.importXml(b,e,g,x,null,null!=H?mxEvent.isControlDown(H):null);null!=t&&t(d)});"image"==c.substring(0,5)?(y=!1,"image/png"==c.substring(0,9)&&(c=D?null:this.extractGraphModelFromPng(b),null!=c&&0<c.length&&(f=this.importXml(c,e,g,x,null,null!=H?mxEvent.isControlDown(H):null),y=!0)),y||(c=this.editor.graph,D=b.indexOf(";"),0<D&&(b=b.substring(0,D)+b.substring(b.indexOf(",",D+1))),x&&c.isGridEnabled()&&(e=c.snap(e),g=c.snap(g)),f=[c.insertVertex(null,
+{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?c(b.responseText):e())}),b.name):e()}):k||e()}},function(b){e(b)}):e()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?f():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",f))};EditorUi.prototype.importFile=function(b,c,e,g,k,n,p,t,y,x,D,I){x=null!=x?x:!0;var d=!1,f=null,l=mxUtils.bind(this,function(b){var d=null;null!=b&&"<mxlibrary"==b.substring(0,10)?
+this.loadLibrary(new LocalLibrary(this,b,p)):d=this.importXml(b,e,g,x,null,null!=I?mxEvent.isControlDown(I):null);null!=t&&t(d)});"image"==c.substring(0,5)?(y=!1,"image/png"==c.substring(0,9)&&(c=D?null:this.extractGraphModelFromPng(b),null!=c&&0<c.length&&(f=this.importXml(c,e,g,x,null,null!=I?mxEvent.isControlDown(I):null),y=!0)),y||(c=this.editor.graph,D=b.indexOf(";"),0<D&&(b=b.substring(0,D)+b.substring(b.indexOf(",",D+1))),x&&c.isGridEnabled()&&(e=c.snap(e),g=c.snap(g)),f=[c.insertVertex(null,
null,"",e,g,k,n,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b+";")])):/(\.*<graphml )/.test(b)?(d=!0,this.importGraphML(b,l)):null!=y&&null!=p&&(/(\.v(dx|sdx?))($|\?)/i.test(p)||/(\.vs(x|sx?))($|\?)/i.test(p))?(d=!0,this.importVisio(y,l)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,p)?(d=!0,this.parseFile(null!=y?y:new Blob([b],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==
-b.readyState&&(200<=b.status&&299>=b.status?l(b.responseText):null!=t&&t(null))}),p)):0==b.indexOf("PK")&&null!=y?(d=!0,this.importZipFile(y,l,mxUtils.bind(this,function(){f=this.insertTextAt(this.validateFileData(b),e,g,!0,null,x);t(f)}))):/(\.v(sd|dx))($|\?)/i.test(p)||/(\.vs(s|x))($|\?)/i.test(p)||(f=this.insertTextAt(this.validateFileData(b),e,g,!0,null,x,null,null!=H?mxEvent.isControlDown(H):null));d||null==t||t(f);return f};EditorUi.prototype.importFiles=function(b,c,e,g,k,n,p,t,y,x,D,H,C){g=
+b.readyState&&(200<=b.status&&299>=b.status?l(b.responseText):null!=t&&t(null))}),p)):0==b.indexOf("PK")&&null!=y?(d=!0,this.importZipFile(y,l,mxUtils.bind(this,function(){f=this.insertTextAt(this.validateFileData(b),e,g,!0,null,x);t(f)}))):/(\.v(sd|dx))($|\?)/i.test(p)||/(\.vs(s|x))($|\?)/i.test(p)||(f=this.insertTextAt(this.validateFileData(b),e,g,!0,null,x,null,null!=I?mxEvent.isControlDown(I):null));d||null==t||t(f);return f};EditorUi.prototype.importFiles=function(b,c,e,g,k,n,p,t,y,x,D,I,B){g=
null!=g?g:this.maxImageSize;x=null!=x?x:this.maxImageBytes;var d=null!=c&&null!=e,f=!0;c=null!=c?c:0;e=null!=e?e:0;var l=!1;if(!mxClient.IS_CHROMEAPP&&null!=b)for(var m=D||this.resampleThreshold,q=0;q<b.length;q++)if("image/"==b[q].type.substring(0,6)&&b[q].size>m){l=!0;break}var u=mxUtils.bind(this,function(){var l=this.editor.graph,m=l.gridSize;k=null!=k?k:mxUtils.bind(this,function(b,c,e,f,g,l,k,m,n){try{return null!=b&&"<mxlibrary"==b.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,
-b,k)),null):this.importFile(b,c,e,f,g,l,k,m,n,d,H,C)}catch(qa){return this.handleError(qa),null}});n=null!=n?n:mxUtils.bind(this,function(b){l.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var q=b.length,u=q,v=[],B=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 f=v[e]();null!=f&&(c=c.concat(f))}}finally{l.getModel().endUpdate()}}n(c)}}),y=
-0;y<q;y++)mxUtils.bind(this,function(d){var n=b[d];if(null!=n){var q=new FileReader;q.onload=mxUtils.bind(this,function(b){if(null==p||p(n))if("image/"==n.type.substring(0,6))if("image/svg"==n.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],N=H?null:u.getAttribute("content");null!=N&&"<"!=N.charAt(0)&&"%"!=N.charAt(0)&&(N=unescape(window.atob?
-atob(N):Base64.decode(N,!0)));null!=N&&"%"==N.charAt(0)&&(N=decodeURIComponent(N));null==N||"<mxfile "!==N.substring(0,8)&&"<mxGraphModel "!==N.substring(0,14)?B(d,mxUtils.bind(this,function(){try{if(q.substring(0,t+1),null!=v){var b=v.getElementsByTagName("svg");if(0<b.length){var f=b[0],p=f.getAttribute("width"),x=f.getAttribute("height"),p=null!=p&&"%"!=p.charAt(p.length-1)?parseFloat(p):NaN,x=null!=x&&"%"!=x.charAt(x.length-1)?parseFloat(x):NaN,u=f.getAttribute("viewBox");if(null==u||0==u.length)f.setAttribute("viewBox",
-"0 0 "+p+" "+x);else if(isNaN(p)||isNaN(x)){var B=u.split(" ");3<B.length&&(p=parseFloat(B[2]),x=parseFloat(B[3]))}q=Editor.createSvgDataUri(mxUtils.getXml(f));var N=Math.min(1,Math.min(g/Math.max(1,p)),g/Math.max(1,x)),C=k(q,n.type,c+d*m,e+d*m,Math.max(1,Math.round(p*N)),Math.max(1,Math.round(x*N)),n.name);if(isNaN(p)||isNaN(x)){var y=new Image;y.onload=mxUtils.bind(this,function(){p=Math.max(1,y.width);x=Math.max(1,y.height);C[0].geometry.width=p;C[0].geometry.height=x;f.setAttribute("viewBox",
-"0 0 "+p+" "+x);q=Editor.createSvgDataUri(mxUtils.getXml(f));var b=q.indexOf(";");0<b&&(q=q.substring(0,b)+q.substring(q.indexOf(",",b+1)));l.setCellStyles("image",q,[C[0]])});y.src=Editor.createSvgDataUri(mxUtils.getXml(f))}return C}}}catch(fa){}return null})):B(d,mxUtils.bind(this,function(){return k(N,"text/xml",c+d*m,e+d*m,0,0,n.name)}))}else B(d,mxUtils.bind(this,function(){return null}))}else{u=!1;if("image/png"==n.type){var C=H?null:this.extractGraphModelFromPng(b.target.result);if(null!=C&&
-0<C.length){var y=new Image;y.src=b.target.result;B(d,mxUtils.bind(this,function(){return k(C,"text/xml",c+d*m,e+d*m,y.width,y.height,n.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,p){B(d,mxUtils.bind(this,function(){if(null!=b&&b.length<x){var q=f&&this.isResampleImageSize(n.size,D)?Math.min(1,Math.min(g/l,g/p)):1;return k(b,n.type,c+d*m,e+d*m,Math.round(l*q),Math.round(p*q),n.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),f,g,D,n.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else q=b.target.result,k(q,n.type,c+d*m,e+d*m,240,160,n.name,
-function(b){B(d,function(){return b})},n)});/(\.v(dx|sdx?))($|\?)/i.test(n.name)||/(\.vs(x|sx?))($|\?)/i.test(n.name)?k(null,n.type,c+d*m,e+d*m,240,160,n.name,function(b){B(d,function(){return b})},n):"image"==n.type.substring(0,5)||"application/pdf"==n.type?q.readAsDataURL(n):q.readAsText(n)}})(y)});if(l){l=[];for(q=0;q<b.length;q++)l.push(b[q]);b=l;this.confirmImageResize(function(b){f=b;u()},y)}else u()};EditorUi.prototype.confirmImageResize=function(b,c){c=null!=c?c:!1;var d=null!=this.spinner&&
+b,k)),null):this.importFile(b,c,e,f,g,l,k,m,n,d,I,B)}catch(oa){return this.handleError(oa),null}});n=null!=n?n:mxUtils.bind(this,function(b){l.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var q=b.length,u=q,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 f=v[e]();null!=f&&(c=c.concat(f))}}finally{l.getModel().endUpdate()}}n(c)}}),y=
+0;y<q;y++)mxUtils.bind(this,function(d){var n=b[d];if(null!=n){var q=new FileReader;q.onload=mxUtils.bind(this,function(b){if(null==p||p(n))if("image/"==n.type.substring(0,6))if("image/svg"==n.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],N=I?null:u.getAttribute("content");null!=N&&"<"!=N.charAt(0)&&"%"!=N.charAt(0)&&(N=unescape(window.atob?
+atob(N):Base64.decode(N,!0)));null!=N&&"%"==N.charAt(0)&&(N=decodeURIComponent(N));null==N||"<mxfile "!==N.substring(0,8)&&"<mxGraphModel "!==N.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 f=b[0],p=f.getAttribute("width"),x=f.getAttribute("height"),p=null!=p&&"%"!=p.charAt(p.length-1)?parseFloat(p):NaN,x=null!=x&&"%"!=x.charAt(x.length-1)?parseFloat(x):NaN,u=f.getAttribute("viewBox");if(null==u||0==u.length)f.setAttribute("viewBox",
+"0 0 "+p+" "+x);else if(isNaN(p)||isNaN(x)){var C=u.split(" ");3<C.length&&(p=parseFloat(C[2]),x=parseFloat(C[3]))}q=Editor.createSvgDataUri(mxUtils.getXml(f));var N=Math.min(1,Math.min(g/Math.max(1,p)),g/Math.max(1,x)),B=k(q,n.type,c+d*m,e+d*m,Math.max(1,Math.round(p*N)),Math.max(1,Math.round(x*N)),n.name);if(isNaN(p)||isNaN(x)){var y=new Image;y.onload=mxUtils.bind(this,function(){p=Math.max(1,y.width);x=Math.max(1,y.height);B[0].geometry.width=p;B[0].geometry.height=x;f.setAttribute("viewBox",
+"0 0 "+p+" "+x);q=Editor.createSvgDataUri(mxUtils.getXml(f));var b=q.indexOf(";");0<b&&(q=q.substring(0,b)+q.substring(q.indexOf(",",b+1)));l.setCellStyles("image",q,[B[0]])});y.src=Editor.createSvgDataUri(mxUtils.getXml(f))}return B}}}catch(fa){}return null})):C(d,mxUtils.bind(this,function(){return k(N,"text/xml",c+d*m,e+d*m,0,0,n.name)}))}else C(d,mxUtils.bind(this,function(){return null}))}else{u=!1;if("image/png"==n.type){var B=I?null:this.extractGraphModelFromPng(b.target.result);if(null!=B&&
+0<B.length){var y=new Image;y.src=b.target.result;C(d,mxUtils.bind(this,function(){return k(B,"text/xml",c+d*m,e+d*m,y.width,y.height,n.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,p){C(d,mxUtils.bind(this,function(){if(null!=b&&b.length<x){var q=f&&this.isResampleImageSize(n.size,D)?Math.min(1,Math.min(g/l,g/p)):1;return k(b,n.type,c+d*m,e+d*m,Math.round(l*q),Math.round(p*q),n.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),f,g,D,n.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else q=b.target.result,k(q,n.type,c+d*m,e+d*m,240,160,n.name,
+function(b){C(d,function(){return b})},n)});/(\.v(dx|sdx?))($|\?)/i.test(n.name)||/(\.vs(x|sx?))($|\?)/i.test(n.name)?k(null,n.type,c+d*m,e+d*m,240,160,n.name,function(b){C(d,function(){return b})},n):"image"==n.type.substring(0,5)||"application/pdf"==n.type?q.readAsDataURL(n):q.readAsText(n)}})(y)});if(l){l=[];for(q=0;q<b.length;q++)l.push(b[q]);b=l;this.confirmImageResize(function(b){f=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,f=function(e,f){if(e||c)mxSettings.setResizeImages(e?f:null),mxSettings.save();d();b(f)};null==e||c?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(b){f(b,!0)},function(b){f(b,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+'"/>','<img style="margin-top:8px;" src="'+
Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container,340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):f(!1,e)};EditorUi.prototype.parseFile=function(b,c,e){e=null!=e?e:b.name;var d=new FormData;d.append("format","xml");d.append("upfile",b,e);var f=new XMLHttpRequest;f.open("POST",OPEN_URL);f.onreadystatechange=function(){c(f)};f.send(d);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+b.size})}catch(n){}};EditorUi.prototype.isResampleImageSize=function(b,
-c){c=null!=c?c:this.resampleThreshold;return b>c};EditorUi.prototype.resizeImage=function(b,c,e,g,k,n,p){k=null!=k?k:this.maxImageSize;var d=Math.max(1,b.width),f=Math.max(1,b.height);if(g&&this.isResampleImageSize(null!=p?p:c.length,n))try{var l=Math.max(d/k,f/k);if(1<l){var m=Math.round(d/l),q=Math.round(f/l),t=document.createElement("canvas");t.width=m;t.height=q;t.getContext("2d").drawImage(b,0,0,m,q);var u=t.toDataURL();if(u.length<c.length){var M=document.createElement("canvas");M.width=m;M.height=
-q;var E=M.toDataURL();u!==E&&(c=u,d=m,f=q)}}}catch(K){}e(c,d,f)};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(q){if(null!=e)e(q);else throw q;}};var g=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&
+c){c=null!=c?c:this.resampleThreshold;return b>c};EditorUi.prototype.resizeImage=function(b,c,e,g,k,n,p){k=null!=k?k:this.maxImageSize;var d=Math.max(1,b.width),f=Math.max(1,b.height);if(g&&this.isResampleImageSize(null!=p?p:c.length,n))try{var l=Math.max(d/k,f/k);if(1<l){var m=Math.round(d/l),q=Math.round(f/l),t=document.createElement("canvas");t.width=m;t.height=q;t.getContext("2d").drawImage(b,0,0,m,q);var v=t.toDataURL();if(v.length<c.length){var M=document.createElement("canvas");M.width=m;M.height=
+q;var F=M.toDataURL();v!==F&&(c=v,d=m,f=q)}}}catch(K){}e(c,d,f)};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(q){if(null!=e)e(q);else throw q;}};var g=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,f){var g=JSON.parse(f);e=new TextareaDialog(b,mxResources.get("plantUml")+":",g.data,function(e){null!=
e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generatePlantUmlImage(e,g.format,function(f,l,k){b.spinner.stop();c.getModel().beginUpdate();try{if("txt"==g.format)c.labelChanged(d,"<pre>"+f+"</pre>"),c.updateCellSize(d,!0);else{c.setCellStyles("image",b.convertDataUri(f),[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:g.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,f){var g=JSON.parse(f);e=new TextareaDialog(b,mxResources.get("mermaid")+":",g.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generateMermaidImage(e,g.config,function(f,l,k){b.spinner.stop();c.getModel().beginUpdate();try{c.setCellStyles("image",f,[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:g.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,f){try{var g=this.graph.getAttributeForCell(d,"plantUmlData");if(null!=g)this.editPlantUmlData(d,f,g);else if(g=this.graph.getAttributeForCell(d,"mermaidData"),
-null!=g)this.editMermaidData(d,f,g);else{var l=c.getCellStyle(d);"1"==mxUtils.getValue(l,"metaEdit","0")?b.showDataDialog(d):e.apply(this,arguments)}}catch(ca){b.handleError(ca)}};c.getLinkTitle=function(d){return b.getLinkTitle(d)};c.customLinkClicked=function(d){var c=!1;try{b.handleCustomLink(d),c=!0}catch(L){b.handleError(L)}return c};var 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!=g)this.editMermaidData(d,f,g);else{var l=c.getCellStyle(d);"1"==mxUtils.getValue(l,"metaEdit","0")?b.showDataDialog(d):e.apply(this,arguments)}}catch(da){b.handleError(da)}};c.getLinkTitle=function(d){return b.getLinkTitle(d)};c.customLinkClicked=function(d){var c=!1;try{b.handleCustomLink(d),c=!0}catch(L){b.handleError(L)}return c};var 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 f=e.indexOf(",");if(0<f)for(var e=e.substring(f+1),f=d.getProperty("patches"),g=0;g<f.length;g++)if(null!=f[g][EditorUi.DIFF_UPDATE]&&null!=f[g][EditorUi.DIFF_UPDATE][e]){c.refreshBackgroundImage();break}}}));var n=c.getBackgroundImageObject;c.getBackgroundImageObject=function(d,c){var e=n.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 f=this.stylesheet;this.stylesheet=this.getDefaultStylesheet();
-e=b.createImageForPageLink(e.originalSrc);this.stylesheet=f}return e};var t=this.clearDefaultStyle;this.clearDefaultStyle=function(){t.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 y=c.addClickHandler;c.addClickHandler=function(b,d,e){var f=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!=f&&f(b,d)};y.call(this,b,d,e)};g.apply(this,arguments);
+e=b.createImageForPageLink(e.originalSrc);this.stylesheet=f}return e};var t=this.clearDefaultStyle;this.clearDefaultStyle=function(){t.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://www.diagrams.net/doc/faq/predefined-placeholders");if(/viewer\.diagrams\.net$/.test(window.location.hostname)||/embed\.diagrams\.net$/.test(window.location.hostname))this.editor.editBlankUrl="https://app.diagrams.net/";var u=b.editor.getEditBlankUrl;
+this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1");return u.apply(this,arguments)};var y=c.addClickHandler;c.addClickHandler=function(b,d,e){var f=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!=f&&f(b,d)};y.call(this,b,d,e)};g.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 D=c.getExportVariables;c.getExportVariables=function(){var d=D.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 C=c.labelLinkClicked;c.labelLinkClicked=function(b,d,e){var f=d.getAttribute("href");if(null==f||!c.isCustomLink(f)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))C.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))c.customLinkClicked(f),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 F=this.actions.get("print");F.setEnabled(!mxClient.IS_IOS||!navigator.standalone);F.visible=F.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,
+mxResources.get("untitledDiagram");var D=c.getExportVariables;c.getExportVariables=function(){var d=D.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 I=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:I.apply(this,arguments)};var B=c.labelLinkClicked;c.labelLinkClicked=function(b,d,e){var f=d.getAttribute("href");if(null==f||!c.isCustomLink(f)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))B.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))c.customLinkClicked(f),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 G=this.actions.get("print");G.setEnabled(!mxClient.IS_IOS||!navigator.standalone);G.visible=G.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,f,g,l){c.insertImage(b,
g,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 f=this.maxImageSize,f=Math.min(1,Math.min(f/Math.max(1,e)),f/Math.max(1,b));c.insertImage(decodeURIComponent(d),
-e*f,b*f)})):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()&&(F=this.editor.graph.view,F.setUnit(mxSettings.getUnit()),F.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,F.unit),this.refresh());if("1"==urlParams.styledev){F=document.getElementById("geFooter");null!=F&&(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)})),F.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 M=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==this.styleInput?!0:M.apply(this,arguments)}}F=document.getElementById("geInfo");null!=F&&F.parentNode.removeChild(F);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=
+e*f,b*f)})):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()&&(G=this.editor.graph.view,G.setUnit(mxSettings.getUnit()),G.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,G.unit),this.refresh());if("1"==urlParams.styledev){G=document.getElementById("geFooter");null!=G&&(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)})),G.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 M=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==this.styleInput?!0:M.apply(this,arguments)}}G=document.getElementById("geInfo");null!=G&&G.parentNode.removeChild(G);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,f=c.view.scale,g=d.x/f-e.x,l=d.y/f-e.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,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)||(n=
!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 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),
@@ -3621,7 +3621,7 @@ c.items;for(index in g){var k=g[index];if("file"===k.kind){if(b.isEditing())this
"&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 g=!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)||g||(e.style.left=c.container.scrollLeft+10+"px",e.style.top=c.container.scrollTop+10+"px",c.container.appendChild(e),g=!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(){!g||224!=d&&17!=
-d&&91!=d&&93!=d||(g=!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,
+d&&91!=d&&93!=d||(g=!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(v){this.handleError(v)}}));mxEvent.addListener(e,"cut",mxUtils.bind(this,function(d){if(c.isEnabled())try{mxClipboard.copy(c),this.copyCells(e,!0),b()}catch(v){this.handleError(v)}}));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;
@@ -3642,8 +3642,8 @@ function(b,c,e,g){var d=this.editor.graph,f=null;d.lastPasteXml==b?d.pasteCounte
b),Graph.isLink(b)&&d.setLinkForCell(k,b)}finally{d.model.endUpdate()}}d.setSelectionCell(k)}else f=d.getInsertPoint(),d.isMouseInsertPoint()&&(k=0,d.lastPasteXml==b&&0<d.pasteCounter&&d.pasteCounter--),f=this.insertTextAt(b,f.x+k,f.y+k,!0),d.setSelectionCells(f);d.isSelectionEmpty()||(d.scrollCellToVisible(d.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell())));return f};EditorUi.prototype.pasteCells=function(b,c,e,g){if(!mxEvent.isConsumed(b)){var d=
c,f=!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),f="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{f=
-f?d.innerHTML:mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText);l=!1;try{var p=f.lastIndexOf("%3E");0<=p&&p<f.length-3&&(f=f.substring(0,p+3))}catch(H){}try{k=d.getElementsByTagName("span"),m=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(f),this.isCompatibleString(m)&&(l=!0,f=m)}catch(H){}try{if(null!=f&&0<f.length){this.pasteXml(f,g,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=
+f?d.innerHTML:mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText);l=!1;try{var p=f.lastIndexOf("%3E");0<=p&&p<f.length-3&&(f=f.substring(0,p+3))}catch(I){}try{k=d.getElementsByTagName("span"),m=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(f),this.isCompatibleString(m)&&(l=!0,f=m)}catch(I){}try{if(null!=f&&0<f.length){this.pasteXml(f,g,l,b);try{mxEvent.consume(b)}catch(I){}}else if(!e){var t=this.editor.graph;t.lastPasteXml=null;t.pasteCounter=
+0}}catch(I){this.handleError(I)}}}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&&("data:image/png;base64,"==c.substring(0,22)?(c=this.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):
@@ -3652,9 +3652,9 @@ k.style.zIndex=mxPopupMenu.prototype.zIndex+2;k.style.border="3px dotted rgb(254
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,g,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,g);try{this.loadLibrary(new LocalLibrary(this,b,c))}catch(y){this.handleError(y,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(b,c,g)});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,g)}),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,g);try{this.loadLibrary(new LocalLibrary(this,b,e.name))}catch(v){this.handleError(v,mxResources.get("errorLoadingFile"))}}else if(0==
+c.length-5)+".drawio"),this.convertLucidChart(b,mxUtils.bind(this,function(b){this.spinner.stop();this.openLocalFile(b,c,g)}),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,g);try{this.loadLibrary(new LocalLibrary(this,b,e.name))}catch(u){this.handleError(u,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,g)}));else{if("image/png"==e.type.substring(0,9))b=this.extractGraphModelFromPng(b);else if("application/pdf"==e.type){var f=Editor.extractGraphModelFromPdf(b);null!=f&&(k=null,g=!0,b=f)}this.spinner.stop();this.openLocalFile(b,c,g,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,g,k){var d=this.getCurrentFile(),
+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(v){this.handleError(v)}});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,g,k){var d=this.getCurrentFile(),
f=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,g,k))});if(null!=b&&0<b.length)null==d||!d.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=g)?f():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=g)&&null!=d&&d.isModified()?this.confirm(mxResources.get("allChangesLost"),
null,f,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,f,mxResources.get("cancel"),mxResources.get("discardChanges")):f()})));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,f=e.getCellStyle(b);d(mxStencilRegistry.getBasenameForStencil(f[mxConstants.STYLE_SHAPE]));e.model.isEdge(b)&&
@@ -3667,54 +3667,54 @@ this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!
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,g=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(f){if(f.source==(window.opener||window.parent)){var k=f.data,l=null,m=mxUtils.bind(this,function(b){if(null!=b&&"function"===typeof b.charAt&&"<"!=b.charAt(0))try{"data:image/png;base64,"==b.substring(0,22)?b=this.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(pa){}return b});if("json"==urlParams.proto){var n=!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):
+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(ma){}return b});if("json"==urlParams.proto){var n=!1;try{k=JSON.parse(k)}catch(ja){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?p.postMessage(JSON.stringify({event:"prompt",value:b,message:k}),"*"):p.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();p.postMessage(JSON.stringify({event:"draft",result:"edit",message:k}),"*")}),mxUtils.bind(this,function(){this.hideDialog();p.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();p.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){p.postMessage(JSON.stringify({event:"draft",error:ka.toString(),message:k}),"*")}return}if("template"==k.action){this.spinner.stop();var v=1==k.enableRecent,u=1==k.enableSearch,B=1==k.enableCustomTemp;if("1"==urlParams.newTempDlg&&
-!k.templatesOnly&&null!=k.callback){var y=this.getCurrentUser(),O=new TemplatesDialog(this,function(b,d,c){b=b||this.emptyDiagramXml;p.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,v?mxUtils.bind(this,function(b,d,c){this.remoteInvoke("getRecentDiagrams",[c],null,b,d)}):null,
-u?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,B?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(O.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,g){d=
-d||this.emptyDiagramXml;null!=k.callback?p.postMessage(JSON.stringify({event:"template",xml:d,blank:d==this.emptyDiagramXml,name:c,tempUrl:e,libs:g,builtIn:!0,message:k}),"*"):(b(d,f,d!=this.emptyDiagramXml,k.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,v?mxUtils.bind(this,function(b){this.remoteInvoke("getRecentDiagrams",[null],null,b,function(){b(null,"Network Error!")})}):null,u?mxUtils.bind(this,function(b,d){this.remoteInvoke("searchDiagrams",
-[b,null],null,d,function(){d(null,"Network Error!")})}):null,mxUtils.bind(this,function(b,d,c){p.postMessage(JSON.stringify({event:"template",docUrl:b,info:d,name:c}),"*")}),null,null,B?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 ca=
-this.getDiagramTextContent();p.postMessage(JSON.stringify({event:"textContent",data:ca,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 Q=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var W=
-this.editor.graph,G=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=Q;p.postMessage(JSON.stringify(d),"*")}),J=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(Q)));W!=this.editor.graph&&W.container.parentNode.removeChild(W.container);G(b)}),A=k.pageId||(null!=this.pages?k.currentPage?
-this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var Z=mxUtils.bind(this,function(){if(null!=this.pages&&this.currentPage.getId()!=A){var b=W.getGlobalVariable;W=this.createTemporaryGraph(W.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);W.getGlobalVariable=function(c){return"page"==c?d.getName():"pagenumber"==c?1:b.apply(this,arguments)};document.body.appendChild(W.container);
-W.model.setRoot(d.root)}if(null!=k.layerIds){for(var e=W.model,f=e.getChildCells(e.getRoot()),g={},c=0;c<k.layerIds.length;c++)g[k.layerIds[c]]=!0;for(c=0;c<f.length;c++)e.setVisible(f[c],g[f[c].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){J(b.toDataURL("image/png"))}),k.width,null,k.background,mxUtils.bind(this,function(){J(null)}),null,null,k.scale,k.transparent,k.shadow,null,W,k.border,null,k.grid,k.keepTheme)});null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(Q),c=!1,this.editor.graph.mathEnabled?
-window.setTimeout(function(){window.MathJax.Hub.Queue(Z)},0):Z()):Z()}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(Q))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?G("data:image/png;base64,"+b.getText()):J(null)}),mxUtils.bind(this,
-function(){J(null)}))}}else Z=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,k.ignore?mxUtils.bind(this,function(){this.hideDialog();p.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(ja){p.postMessage(JSON.stringify({event:"draft",error:ja.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(),O=new TemplatesDialog(this,function(b,d,c){b=b||this.emptyDiagramXml;p.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(O.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,g){d=
+d||this.emptyDiagramXml;null!=k.callback?p.postMessage(JSON.stringify({event:"template",xml:d,blank:d==this.emptyDiagramXml,name:c,tempUrl:e,libs:g,builtIn:!0,message:k}),"*"):(b(d,f,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){p.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 da=
+this.getDiagramTextContent();p.postMessage(JSON.stringify({event:"textContent",data:da,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 Q=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var Y=
+this.editor.graph,H=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=Q;p.postMessage(JSON.stringify(d),"*")}),J=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(Q)));Y!=this.editor.graph&&Y.container.parentNode.removeChild(Y.container);H(b)}),A=k.pageId||(null!=this.pages?k.currentPage?
+this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var aa=mxUtils.bind(this,function(){if(null!=this.pages&&this.currentPage.getId()!=A){var b=Y.getGlobalVariable;Y=this.createTemporaryGraph(Y.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);Y.getGlobalVariable=function(c){return"page"==c?d.getName():"pagenumber"==c?1:b.apply(this,arguments)};document.body.appendChild(Y.container);
+Y.model.setRoot(d.root)}if(null!=k.layerIds){for(var e=Y.model,f=e.getChildCells(e.getRoot()),g={},c=0;c<k.layerIds.length;c++)g[k.layerIds[c]]=!0;for(c=0;c<f.length;c++)e.setVisible(f[c],g[f[c].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){J(b.toDataURL("image/png"))}),k.width,null,k.background,mxUtils.bind(this,function(){J(null)}),null,null,k.scale,k.transparent,k.shadow,null,Y,k.border,null,k.grid,k.keepTheme)});null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(Q),c=!1,this.editor.graph.mathEnabled?
+window.setTimeout(function(){window.MathJax.Hub.Queue(aa)},0):aa()):aa()}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(Q))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?H("data:image/png;base64,"+b.getText()):J(null)}),mxUtils.bind(this,
+function(){J(null)}))}}else aa=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);p.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}p.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(Z)},0):Z()):Z();return}if("load"==k.action){n=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 I=Editor.sketchMode;this.doSetSketchMode(k.rough);I!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=k.dark&&(I=Editor.darkMode,this.doSetDarkMode(k.dark),I!=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 X=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*X);b.maxFitScale=d;b.container.scrollTop-=2*X;b.container.scrollLeft-=2*X;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 aa=this.getCurrentFile();null!=aa&&(t=m(k.xml),null!=t&&""!=t&&aa.mergeFile(new LocalFile(this,t),function(){p.postMessage(JSON.stringify({event:"merge",message:k}),"*")},function(b){p.postMessage(JSON.stringify({event:"merge",message:k,error:b}),"*")}))}else"remoteInvokeReady"==k.action?this.handleRemoteInvokeReady(p):
-"remoteInvoke"==k.action?this.handleRemoteInvoke(k,f.origin):"remoteInvokeResponse"==k.action?this.handleRemoteInvokeResponse(k):p.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(k)}),"*");return}}catch(ka){this.handleError(ka)}}var la=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),ga=mxUtils.bind(this,function(f,k){c=!0;try{b(f,k,null,n)}catch(ma){this.handleError(ma)}c=
-!1;null!=urlParams.modified&&this.editor.setStatus("");g=la();e&&null==d&&(d=mxUtils.bind(this,function(b,d){var e=la();if(e!=g&&!c){var f=this.createLoadMessage("autosave");f.xml=e;(window.opener||window.parent).postMessage(JSON.stringify(f),"*")}g=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",
+null==k.embedImages?this.editor.convertImages(b,mxUtils.bind(this,function(b){c(mxUtils.getXml(b))})):c(mxUtils.getXml(b))}));return}p.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(aa)},0):aa()):aa();return}if("load"==k.action){n=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 E=Editor.sketchMode;this.doSetSketchMode(k.rough);E!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=k.dark&&(E=Editor.darkMode,this.doSetDarkMode(k.dark),E!=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 W=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*W);b.maxFitScale=d;b.container.scrollTop-=2*W;b.container.scrollLeft-=2*W;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(ja){}k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):null!=k.descriptor?k.descriptor:k.xml}else{if("merge"==k.action){var T=this.getCurrentFile();null!=T&&(t=m(k.xml),null!=t&&""!=t&&T.mergeFile(new LocalFile(this,t),function(){p.postMessage(JSON.stringify({event:"merge",message:k}),"*")},function(b){p.postMessage(JSON.stringify({event:"merge",message:k,error:b}),"*")}))}else"remoteInvokeReady"==k.action?this.handleRemoteInvokeReady(p):
+"remoteInvoke"==k.action?this.handleRemoteInvoke(k,f.origin):"remoteInvokeResponse"==k.action?this.handleRemoteInvokeResponse(k):p.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(k)}),"*");return}}catch(ja){this.handleError(ja)}}var na=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),ga=mxUtils.bind(this,function(f,k){c=!0;try{b(f,k,null,n)}catch(ka){this.handleError(ka)}c=
+!1;null!=urlParams.modified&&this.editor.setStatus("");g=na();e&&null==d&&(d=mxUtils.bind(this,function(b,d){var e=na();if(e!=g&&!c){var f=this.createLoadMessage("autosave");f.xml=e;(window.opener||window.parent).postMessage(JSON.stringify(f),"*")}g=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=f;p.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){ga(b,f)},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)&&ga(b.responseText,f)}),""):null!=k&&"function"===typeof k.substring&&this.isLucidChartData(k)?this.convertLucidChart(k,mxUtils.bind(this,function(b){ga(b)}),mxUtils.bind(this,function(b){this.handleError(b)})):null==k||"object"!==typeof k||null==k.format||null==k.data&&null==k.url?(k=m(k),ga(k,f)):this.loadDescriptor(k,mxUtils.bind(this,function(b){ga(la(),f)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var p=window.opener||window.parent,k="json"==
+13)&&ga(b.responseText,f)}),""):null!=k&&"function"===typeof k.substring&&this.isLucidChartData(k)?this.convertLucidChart(k,mxUtils.bind(this,function(b){ga(b)}),mxUtils.bind(this,function(b){this.handleError(b)})):null==k||"object"!==typeof k||null==k.format||null==k.data&&null==k.url?(k=m(k),ga(k,f)):this.loadDescriptor(k,mxUtils.bind(this,function(b){ga(na(),f)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var p=window.opener||window.parent,k="json"==
urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";p.postMessage(k,"*");if("json"==urlParams.proto){var t=this.editor.graph.openLink;this.editor.graph.openLink=function(b,d,c){t.apply(this,arguments);p.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 g="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(c,g);c.setAttribute("title",g);mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));b.appendChild(c)}}else mxUtils.write(c,
mxResources.get("save")),c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),
b.appendChild(c),e=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),e="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,e),c.setAttribute("title",e),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),e=c);e.style.marginRight="20px";this.toolbar.container.appendChild(b);this.toolbar.staticElements.push(b);b.style.right=
"atlas"==uiTheme||"1"==urlParams.atlas?"42px":"52px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(b){this.importCsv(b)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};
-EditorUi.prototype.executeLayoutList=function(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var g=new window[b[f].layout](d);if(null!=b[f].config)for(var k in b[f].config)g[k]=b[f].config[k];this.executeLayout(function(){g.execute(d.getDefaultParent(),0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],g=[],k={};if(0<d.length){var p={},t=null,x=null,D=null,H=null,C=null,F=null,M="whiteSpace=wrap;html=1;",
-E=null,K=null,B="",L="auto",O="auto",ca=null,N=null,Q=40,W=40,G=100,J=0,A=this.editor.graph;A.getGraphBounds();for(var Z=function(){null!=c?c(ra):(A.setSelectionCells(ra),A.scrollCellToVisible(A.getSelectionCell()))},I=A.getFreeInsertPoint(),X=I.x,aa=I.y,I=aa,la=null,ga="auto",K=null,ka=[],pa=null,qa=null,ma=0;ma<d.length&&"#"==d[ma].charAt(0);){b=d[ma];for(ma++;ma<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[ma].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[ma].substring(1)),ma++;if("#"!=
-b.charAt(1)){var Y=b.indexOf(":");if(0<Y){var ba=mxUtils.trim(b.substring(1,Y)),R=mxUtils.trim(b.substring(Y+1));"label"==ba?la=A.sanitizeHtml(R):"labelname"==ba&&0<R.length&&"-"!=R?C=R:"labels"==ba&&0<R.length&&"-"!=R?F=JSON.parse(R):"style"==ba?x=R:"parentstyle"==ba?M=R:"stylename"==ba&&0<R.length&&"-"!=R?H=R:"styles"==ba&&0<R.length&&"-"!=R?D=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?K=R:"namespace"==ba&&
-0<R.length&&"-"!=R?B=R:"width"==ba?L=R:"height"==ba?O=R:"left"==ba&&0<R.length?ca=R:"top"==ba&&0<R.length?N=R:"ignore"==ba?qa=R.split(","):"connect"==ba?ka.push(JSON.parse(R)):"link"==ba?pa=R:"padding"==ba?J=parseFloat(R):"edgespacing"==ba?Q=parseFloat(R):"nodespacing"==ba?W=parseFloat(R):"levelspacing"==ba?G=parseFloat(R):"layout"==ba&&(ga=R)}}}if(null==d[ma])throw Error(mxResources.get("invalidOrMissingFile"));for(var ta=this.editor.csvToArray(d[ma]),ba=Y=null,R=[],U=0;U<ta.length;U++)E==ta[U]&&
-(Y=U),K==ta[U]&&(ba=U),R.push(mxUtils.trim(ta[U]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==la&&(la="%"+R[0]+"%");if(null!=ka)for(var T=0;T<ka.length;T++)null==p[ka[T].to]&&(p[ka[T].to]={});E=[];for(U=ma+1;U<d.length;U++){var na=this.editor.csvToArray(d[U]);if(null==na){var va=40<d[U].length?d[U].substring(0,40)+"...":d[U];throw Error(va+" ("+U+"):\n"+mxResources.get("containsValidationErrors"));}0<na.length&&E.push(na)}A.model.beginUpdate();try{for(U=0;U<E.length;U++){var na=
-E[U],S=null,fa=null!=Y?B+na[Y]:null;null!=fa&&(S=A.model.getCell(fa));var d=null!=S,ia=new mxCell(la,new mxGeometry(X,I,0,0),x||"whiteSpace=wrap;html=1;");ia.vertex=!0;ia.id=fa;for(var ja=0;ja<na.length;ja++)A.setAttributeForCell(ia,R[ja],na[ja]);if(null!=C&&null!=F){var oa=F[ia.getAttribute(C)];null!=oa&&A.labelChanged(ia,oa)}if(null!=H&&null!=D){var ua=D[ia.getAttribute(H)];null!=ua&&(ia.style=ua)}A.setAttributeForCell(ia,"placeholders","1");ia.style=A.replacePlaceholders(ia,ia.style,t);d?(A.model.setValue(S,
-ia.value),A.model.setStyle(S,ia.style),0>mxUtils.indexOf(g,S)&&g.push(S),A.fireEvent(new mxEventObject("cellsInserted","cells",[S]))):A.fireEvent(new mxEventObject("cellsInserted","cells",[ia]));S=ia;if(!d)for(T=0;T<ka.length;T++)p[ka[T].to][S.getAttribute(ka[T].to)]=S;null!=pa&&"link"!=pa&&(A.setLinkForCell(S,S.getAttribute(pa)),A.setAttributeForCell(S,pa,null));var P=this.editor.graph.getPreferredSizeForCell(S),K=null!=ba?A.model.getCell(B+na[ba]):null;if(S.vertex){va=null!=K?0:X;ma=null!=K?0:aa;
-null!=ca&&null!=S.getAttribute(ca)&&(S.geometry.x=va+parseFloat(S.getAttribute(ca)));null!=N&&null!=S.getAttribute(N)&&(S.geometry.y=ma+parseFloat(S.getAttribute(N)));var da="@"==L.charAt(0)?S.getAttribute(L.substring(1)):null;S.geometry.width=null!=da&&"auto"!=da?parseFloat(S.getAttribute(L.substring(1))):"auto"==L||"auto"==da?P.width+J:parseFloat(L);var wa="@"==O.charAt(0)?S.getAttribute(O.substring(1)):null;S.geometry.height=null!=wa&&"auto"!=wa?parseFloat(wa):"auto"==O||"auto"==wa?P.height+J:
-parseFloat(O);I+=S.geometry.height+W}d?(null==k[fa]&&(k[fa]=[]),k[fa].push(S)):(e.push(S),null!=K?(K.style=A.replacePlaceholders(K,M,t),A.addCell(S,K),f.push(K)):g.push(A.addCell(S)))}for(U=0;U<f.length;U++)da="@"==L.charAt(0)?f[U].getAttribute(L.substring(1)):null,wa="@"==O.charAt(0)?f[U].getAttribute(O.substring(1)):null,"auto"!=L&&"auto"!=da||"auto"!=O&&"auto"!=wa||A.updateGroupBounds([f[U]],J,!0);for(var ya=g.slice(),ra=g.slice(),T=0;T<ka.length;T++)for(var za=ka[T],U=0;U<e.length;U++){var S=
-e[U],Aa=mxUtils.bind(this,function(b,d,c){var e=d.getAttribute(c.from);if(null!=e&&""!=e)for(var e=e.split(","),f=0;f<e.length;f++){var g=p[c.to][e[f]];if(null!=g){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||"")+(g.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(k=(k||"")+A.replacePlaceholders(g,c.targetlabel,t));var l="target"==c.placeholders==!c.invert?g:b,l=null!=
+EditorUi.prototype.executeLayoutList=function(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var g=new window[b[f].layout](d);if(null!=b[f].config)for(var k in b[f].config)g[k]=b[f].config[k];this.executeLayout(function(){g.execute(d.getDefaultParent(),0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],g=[],k={};if(0<d.length){var p={},t=null,x=null,D=null,I=null,B=null,G=null,M="whiteSpace=wrap;html=1;",
+F=null,K=null,C="",L="auto",O="auto",da=null,N=null,Q=40,Y=40,H=100,J=0,A=this.editor.graph;A.getGraphBounds();for(var aa=function(){null!=c?c(pa):(A.setSelectionCells(pa),A.scrollCellToVisible(A.getSelectionCell()))},E=A.getFreeInsertPoint(),W=E.x,T=E.y,E=T,na=null,ga="auto",K=null,ja=[],ma=null,oa=null,ka=0;ka<d.length&&"#"==d[ka].charAt(0);){b=d[ka];for(ka++;ka<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[ka].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[ka].substring(1)),ka++;if("#"!=
+b.charAt(1)){var Z=b.indexOf(":");if(0<Z){var ca=mxUtils.trim(b.substring(1,Z)),R=mxUtils.trim(b.substring(Z+1));"label"==ca?na=A.sanitizeHtml(R):"labelname"==ca&&0<R.length&&"-"!=R?B=R:"labels"==ca&&0<R.length&&"-"!=R?G=JSON.parse(R):"style"==ca?x=R:"parentstyle"==ca?M=R:"stylename"==ca&&0<R.length&&"-"!=R?I=R:"styles"==ca&&0<R.length&&"-"!=R?D=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?K=R:"namespace"==ca&&
+0<R.length&&"-"!=R?C=R:"width"==ca?L=R:"height"==ca?O=R:"left"==ca&&0<R.length?da=R:"top"==ca&&0<R.length?N=R:"ignore"==ca?oa=R.split(","):"connect"==ca?ja.push(JSON.parse(R)):"link"==ca?ma=R:"padding"==ca?J=parseFloat(R):"edgespacing"==ca?Q=parseFloat(R):"nodespacing"==ca?Y=parseFloat(R):"levelspacing"==ca?H=parseFloat(R):"layout"==ca&&(ga=R)}}}if(null==d[ka])throw Error(mxResources.get("invalidOrMissingFile"));for(var ra=this.editor.csvToArray(d[ka]),ca=Z=null,R=[],V=0;V<ra.length;V++)F==ra[V]&&
+(Z=V),K==ra[V]&&(ca=V),R.push(mxUtils.trim(ra[V]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==na&&(na="%"+R[0]+"%");if(null!=ja)for(var U=0;U<ja.length;U++)null==p[ja[U].to]&&(p[ja[U].to]={});F=[];for(V=ka+1;V<d.length;V++){var la=this.editor.csvToArray(d[V]);if(null==la){var ta=40<d[V].length?d[V].substring(0,40)+"...":d[V];throw Error(ta+" ("+V+"):\n"+mxResources.get("containsValidationErrors"));}0<la.length&&F.push(la)}A.model.beginUpdate();try{for(V=0;V<F.length;V++){var la=
+F[V],S=null,fa=null!=Z?C+la[Z]:null;null!=fa&&(S=A.model.getCell(fa));var d=null!=S,ia=new mxCell(na,new mxGeometry(W,E,0,0),x||"whiteSpace=wrap;html=1;");ia.vertex=!0;ia.id=fa;for(var ba=0;ba<la.length;ba++)A.setAttributeForCell(ia,R[ba],la[ba]);if(null!=B&&null!=G){var za=G[ia.getAttribute(B)];null!=za&&A.labelChanged(ia,za)}if(null!=I&&null!=D){var va=D[ia.getAttribute(I)];null!=va&&(ia.style=va)}A.setAttributeForCell(ia,"placeholders","1");ia.style=A.replacePlaceholders(ia,ia.style,t);d?(A.model.setValue(S,
+ia.value),A.model.setStyle(S,ia.style),0>mxUtils.indexOf(g,S)&&g.push(S),A.fireEvent(new mxEventObject("cellsInserted","cells",[S]))):A.fireEvent(new mxEventObject("cellsInserted","cells",[ia]));S=ia;if(!d)for(U=0;U<ja.length;U++)p[ja[U].to][S.getAttribute(ja[U].to)]=S;null!=ma&&"link"!=ma&&(A.setLinkForCell(S,S.getAttribute(ma)),A.setAttributeForCell(S,ma,null));var P=this.editor.graph.getPreferredSizeForCell(S),K=null!=ca?A.model.getCell(C+la[ca]):null;if(S.vertex){ta=null!=K?0:W;ka=null!=K?0:T;
+null!=da&&null!=S.getAttribute(da)&&(S.geometry.x=ta+parseFloat(S.getAttribute(da)));null!=N&&null!=S.getAttribute(N)&&(S.geometry.y=ka+parseFloat(S.getAttribute(N)));var ea="@"==L.charAt(0)?S.getAttribute(L.substring(1)):null;S.geometry.width=null!=ea&&"auto"!=ea?parseFloat(S.getAttribute(L.substring(1))):"auto"==L||"auto"==ea?P.width+J:parseFloat(L);var wa="@"==O.charAt(0)?S.getAttribute(O.substring(1)):null;S.geometry.height=null!=wa&&"auto"!=wa?parseFloat(wa):"auto"==O||"auto"==wa?P.height+J:
+parseFloat(O);E+=S.geometry.height+Y}d?(null==k[fa]&&(k[fa]=[]),k[fa].push(S)):(e.push(S),null!=K?(K.style=A.replacePlaceholders(K,M,t),A.addCell(S,K),f.push(K)):g.push(A.addCell(S)))}for(V=0;V<f.length;V++)ea="@"==L.charAt(0)?f[V].getAttribute(L.substring(1)):null,wa="@"==O.charAt(0)?f[V].getAttribute(O.substring(1)):null,"auto"!=L&&"auto"!=ea||"auto"!=O&&"auto"!=wa||A.updateGroupBounds([f[V]],J,!0);for(var xa=g.slice(),pa=g.slice(),U=0;U<ja.length;U++)for(var Aa=ja[U],V=0;V<e.length;V++){var S=
+e[V],Ba=mxUtils.bind(this,function(b,d,c){var e=d.getAttribute(c.from);if(null!=e&&""!=e)for(var e=e.split(","),f=0;f<e.length;f++){var g=p[c.to][e[f]];if(null!=g){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||"")+(g.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(k=(k||"")+A.replacePlaceholders(g,c.targetlabel,t));var l="target"==c.placeholders==!c.invert?g:b,l=null!=
c.style?A.replacePlaceholders(l,c.style,t):A.createCurrentEdgeStyle(),k=A.insertEdge(null,null,k||"",c.invert?g:b,c.invert?b:g,l);if(null!=c.labels)for(l=0;l<c.labels.length;l++){var m=c.labels[l],n=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;");n.vertex=!0;n.connectable=!1;n.geometry.relative=!0;null!=m.placeholders&&(n.value=A.replacePlaceholders("target"==m.placeholders==!c.invert?g:b,n.value,t));if(null!=m.dx||null!=m.dy)n.geometry.offset=new mxPoint(null!=
-m.dx?m.dx:0,null!=m.dy?m.dy:0);k.insert(n)}ra.push(k);mxUtils.remove(c.invert?b:g,ya)}}});Aa(S,S,za);if(null!=k[S.id])for(ja=0;ja<k[S.id].length;ja++)Aa(S,k[S.id][ja],za)}if(null!=qa)for(U=0;U<e.length;U++)for(S=e[U],ja=0;ja<qa.length;ja++)A.setAttributeForCell(S,mxUtils.trim(qa[ja]),null);if(0<g.length){var Da=new mxParallelEdgeLayout(A);Da.spacing=Q;Da.checkOverlap=!0;var Ea=function(){0<Da.spacing&&Da.execute(A.getDefaultParent());for(var b=0;b<g.length;b++){var d=A.getCellGeometry(g[b]);d.x=Math.round(A.snap(d.x));
-d.y=Math.round(A.snap(d.y));"auto"==L&&(d.width=Math.round(A.snap(d.width)));"auto"==O&&(d.height=Math.round(A.snap(d.height)))}};if("["==ga.charAt(0)){var Ka=Z;A.view.validate();this.executeLayoutList(JSON.parse(ga),function(){Ea();Ka()});Z=null}else if("circle"==ga){var Ba=new mxCircleLayout(A);Ba.disableEdgeStyle=!1;Ba.resetEdges=!1;var Ha=Ba.isVertexIgnored;Ba.isVertexIgnored=function(b){return Ha.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){Ba.execute(A.getDefaultParent());
-Ea()},!0,Z);Z=null}else if("horizontaltree"==ga||"verticaltree"==ga||"auto"==ga&&ra.length==2*g.length-1&&1==ya.length){A.view.validate();var Fa=new mxCompactTreeLayout(A,"horizontaltree"==ga);Fa.levelDistance=W;Fa.edgeRouting=!1;Fa.resetEdges=!1;this.executeLayout(function(){Fa.execute(A.getDefaultParent(),0<ya.length?ya[0]:null)},!0,Z);Z=null}else if("horizontalflow"==ga||"verticalflow"==ga||"auto"==ga&&1==ya.length){A.view.validate();var V=new mxHierarchicalLayout(A,"horizontalflow"==ga?mxConstants.DIRECTION_WEST:
-mxConstants.DIRECTION_NORTH);V.intraCellSpacing=W;V.parallelEdgeSpacing=Q;V.interRankCellSpacing=G;V.disableEdgeStyle=!1;this.executeLayout(function(){V.execute(A.getDefaultParent(),ra);A.moveCells(ra,X,aa)},!0,Z);Z=null}else if("organic"==ga||"auto"==ga&&ra.length>g.length){A.view.validate();var xa=new mxFastOrganicLayout(A);xa.forceConstant=3*W;xa.disableEdgeStyle=!1;xa.resetEdges=!1;var Oa=xa.isVertexIgnored;xa.isVertexIgnored=function(b){return Oa.apply(this,arguments)||0>mxUtils.indexOf(g,b)};
-this.executeLayout(function(){xa.execute(A.getDefaultParent());Ea()},!0,Z);Z=null}}this.hideDialog()}finally{A.model.endUpdate()}null!=Z&&Z()}}catch(La){this.handleError(La)}};EditorUi.prototype.getSearch=function(b){var d="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var c="?",e;for(e in urlParams)0>mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(d+=c+e+"="+urlParams[e],c="&")}else d=window.location.search;return d};EditorUi.prototype.getUrl=function(b){b=
+m.dx?m.dx:0,null!=m.dy?m.dy:0);k.insert(n)}pa.push(k);mxUtils.remove(c.invert?b:g,xa)}}});Ba(S,S,Aa);if(null!=k[S.id])for(ba=0;ba<k[S.id].length;ba++)Ba(S,k[S.id][ba],Aa)}if(null!=oa)for(V=0;V<e.length;V++)for(S=e[V],ba=0;ba<oa.length;ba++)A.setAttributeForCell(S,mxUtils.trim(oa[ba]),null);if(0<g.length){var Da=new mxParallelEdgeLayout(A);Da.spacing=Q;Da.checkOverlap=!0;var Ea=function(){0<Da.spacing&&Da.execute(A.getDefaultParent());for(var b=0;b<g.length;b++){var d=A.getCellGeometry(g[b]);d.x=Math.round(A.snap(d.x));
+d.y=Math.round(A.snap(d.y));"auto"==L&&(d.width=Math.round(A.snap(d.width)));"auto"==O&&(d.height=Math.round(A.snap(d.height)))}};if("["==ga.charAt(0)){var Ka=aa;A.view.validate();this.executeLayoutList(JSON.parse(ga),function(){Ea();Ka()});aa=null}else if("circle"==ga){var Ca=new mxCircleLayout(A);Ca.disableEdgeStyle=!1;Ca.resetEdges=!1;var Ha=Ca.isVertexIgnored;Ca.isVertexIgnored=function(b){return Ha.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){Ca.execute(A.getDefaultParent());
+Ea()},!0,aa);aa=null}else if("horizontaltree"==ga||"verticaltree"==ga||"auto"==ga&&pa.length==2*g.length-1&&1==xa.length){A.view.validate();var Fa=new mxCompactTreeLayout(A,"horizontaltree"==ga);Fa.levelDistance=Y;Fa.edgeRouting=!1;Fa.resetEdges=!1;this.executeLayout(function(){Fa.execute(A.getDefaultParent(),0<xa.length?xa[0]:null)},!0,aa);aa=null}else if("horizontalflow"==ga||"verticalflow"==ga||"auto"==ga&&1==xa.length){A.view.validate();var X=new mxHierarchicalLayout(A,"horizontalflow"==ga?mxConstants.DIRECTION_WEST:
+mxConstants.DIRECTION_NORTH);X.intraCellSpacing=Y;X.parallelEdgeSpacing=Q;X.interRankCellSpacing=H;X.disableEdgeStyle=!1;this.executeLayout(function(){X.execute(A.getDefaultParent(),pa);A.moveCells(pa,W,T)},!0,aa);aa=null}else if("organic"==ga||"auto"==ga&&pa.length>g.length){A.view.validate();var ua=new mxFastOrganicLayout(A);ua.forceConstant=3*Y;ua.disableEdgeStyle=!1;ua.resetEdges=!1;var Oa=ua.isVertexIgnored;ua.isVertexIgnored=function(b){return Oa.apply(this,arguments)||0>mxUtils.indexOf(g,b)};
+this.executeLayout(function(){ua.execute(A.getDefaultParent());Ea()},!0,aa);aa=null}}this.hideDialog()}finally{A.model.endUpdate()}null!=aa&&aa()}}catch(La){this.handleError(La)}};EditorUi.prototype.getSearch=function(b){var d="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var c="?",e;for(e in urlParams)0>mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(d+=c+e+"="+urlParams[e],c="&")}else d=window.location.search;return d};EditorUi.prototype.getUrl=function(b){b=
null!=b?b:window.location.pathname;var d=0<b.indexOf("?")?1:0;if("1"==urlParams.offline)b+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),e;for(e in urlParams)0>mxUtils.indexOf(c,e)&&(b=0==d?b+"?":b+"&",null!=urlParams[e]&&(b+=e+"="+urlParams[e],d++))}return b};EditorUi.prototype.showLinkDialog=function(b,c,e,g,k){b=new LinkDialog(this,b,c,e,!0,g,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),
@@ -3725,60 +3725,60 @@ g.length||b.isSelectionEmpty());this.actions.get("shadowVisible").setEnabled(e);
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,g,k,n,p,t){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(g,
-k,n)),"image/svg+xml");else{var f=b.getFileData(!0,null,null,null,null,!0),l=d.getGraphBounds(),m=Math.floor(l.width*k/d.view.scale),q=Math.floor(l.height*k/d.view.scale);if(f.length<=MAX_REQUEST_SIZE&&m*q<MAX_AREA)if(b.hideDialog(),"png"!=e&&"jpg"!=e&&"jpeg"!=e||!b.isExportToCanvas()){var v={globalVars:d.getExportVariables()};t&&(v.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(v))+(0<p?"&dpi="+p:"")+"&bg="+(null!=g?g:"none")+"&w="+m+"&h="+q+"&border="+n+"&xml="+encodeURIComponent(f))})}else"png"==e?b.exportImage(k,null==g||"none"==g,!0,!1,!1,n,!0,!1,null,t,p):b.exportImage(k,!1,!0,!1,!1,n,!0,!1,"jpeg",t);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=
+k,n)),"image/svg+xml");else{var f=b.getFileData(!0,null,null,null,null,!0),l=d.getGraphBounds(),m=Math.floor(l.width*k/d.view.scale),q=Math.floor(l.height*k/d.view.scale);if(f.length<=MAX_REQUEST_SIZE&&m*q<MAX_AREA)if(b.hideDialog(),"png"!=e&&"jpg"!=e&&"jpeg"!=e||!b.isExportToCanvas()){var u={globalVars:d.getExportVariables()};t&&(u.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(u))+(0<p?"&dpi="+p:"")+"&bg="+(null!=g?g:"none")+"&w="+m+"&h="+q+"&border="+n+"&xml="+encodeURIComponent(f))})}else"png"==e?b.exportImage(k,null==g||"none"==g,!0,!1,!1,n,!0,!1,null,t,p):b.exportImage(k,!1,!0,!1,!1,n,!0,!1,"jpeg",t);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 g=b;this.currentPage!=this.pages[e]&&(g=this.createTemporaryGraph(b.getStylesheet()),this.updatePageRoot(this.pages[e]),g.model.setRoot(this.pages[e].root));c+=this.pages[e].getName()+" "+g.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 g=document.createElement("div");g.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";g.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var k={};try{var p=mxSettings.getCustomLibraries();for(b=0;b<p.length;b++){var t=p[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){g.innerHTML="";if(0==b.length)g.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 f=this.addCheckbox(g,e.title,k[e.id]);(function(b,d){mxEvent.addListener(d,"change",function(){this.checked?c[b.id]=b:delete c[b.id]})})(e,f)}},mxUtils.bind(this,
function(b){g.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"));g.appendChild(c)}));d.appendChild(g);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(F){this.handleError(F,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){b--;0==b&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(c[d]));for(d in 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,
+null,mxUtils.bind(this,function(d){b--;0==b&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,d,c))}catch(G){this.handleError(G,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,g,k){var d=!0,f=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(f);d&&g.apply(this,arguments)}),m=mxUtils.bind(this,function(){window.clearTimeout(f);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,f=this.remoteInvokableFns[e];if(null!=f&&"function"===typeof this[e]){if(f.allowedDomains){for(var g=!1,k=0;k<f.allowedDomains.length;k++)if(c=="https://"+f.allowedDomains[k]){g=!0;break}if(!g){d(null,"Invalid Call: "+e+" is not allowed.");return}}var p=b.functionArgs;Array.isArray(p)||
(p=[]);if(f.isAsync)p.push(function(){d(Array.prototype.slice.apply(arguments))}),p.push(function(b){d(null,b||"Unkown Error")}),this[e].apply(this,p);else{var t=this[e].apply(this,p);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||
+function(b){try{var d=e.result;1>b.oldVersion&&d.createObjectStore("objects",{keyPath:"key"});2>b.oldVersion&&(d.createObjectStore("files",{keyPath:"title"}),d.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(v){null!=c&&c(v)}};e.onsuccess=mxUtils.bind(this,function(c){var d=e.result;this.database=d;EditorUi.migrateStorageFiles&&(StorageFile.migrate(d),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||
(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(b){if(!b||"1"==urlParams.forceMigration){var c=document.createElement("iframe");c.style.display="none";c.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+urlParams.forceMigration);document.body.appendChild(c);var d=!0,e=!1,f,g=0,k=mxUtils.bind(this,function(){e=!0;this.setDatabaseItem(".drawioMigrated3",!0);c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",
-funtionName:"setMigratedFlag"}),"*")}),l=mxUtils.bind(this,function(){g++;m()}),m=mxUtils.bind(this,function(){try{if(g>=f.length)k();else{var b=f[g];StorageFile.getFileContent(this,b,mxUtils.bind(this,function(d){null==d||".scratchpad"==b&&d==this.emptyLibraryXml?c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[b]}),"*"):l()}),l)}}catch(B){console.log(B)}}),p=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(B){console.log(B)}});b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var g={};try{g=JSON.parse(b.data)}catch(L){}"init"==g.event?(c.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=g.event||e||
+funtionName:"setMigratedFlag"}),"*")}),l=mxUtils.bind(this,function(){g++;m()}),m=mxUtils.bind(this,function(){try{if(g>=f.length)k();else{var b=f[g];StorageFile.getFileContent(this,b,mxUtils.bind(this,function(d){null==d||".scratchpad"==b&&d==this.emptyLibraryXml?c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[b]}),"*"):l()}),l)}}catch(C){console.log(C)}}),p=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 g={};try{g=JSON.parse(b.data)}catch(L){}"init"==g.event?(c.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=g.event||e||
(d?null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?(f=g.resp[0],d=!1,m()):k():null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?p(g.resp[0]):l())}}catch(L){console.log(L)}});window.addEventListener("message",b)}})));b(d);d.onversionchange=function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(q){null!=c&&c(q)}else null!=c&&c()}else b(this.database)};EditorUi.prototype.setDatabaseItem=function(b,c,e,g,k){this.openDatabase(mxUtils.bind(this,function(d){try{k=k||"objects";Array.isArray(k)||(k=
-[k],b=[b],c=[c]);var f=d.transaction(k,"readwrite");f.oncomplete=e;f.onerror=g;for(d=0;d<k.length;d++)f.objectStore(k[d]).put(null!=b&&null!=b[d]?{key:b[d],data:c[d]}:c[d])}catch(v){null!=g&&g(v)}}),g)};EditorUi.prototype.removeDatabaseItem=function(b,c,e,g){this.openDatabase(mxUtils.bind(this,function(d){g=g||"objects";Array.isArray(g)||(g=[g],b=[b]);d=d.transaction(g,"readwrite");d.oncomplete=c;d.onerror=e;for(var f=0;f<g.length;f++)d.objectStore(g[f])["delete"](b[f])}),e)};EditorUi.prototype.getDatabaseItem=
-function(b,c,e,g){this.openDatabase(mxUtils.bind(this,function(d){try{g=g||"objects";var f=d.transaction([g],"readonly").objectStore(g).get(b);f.onsuccess=function(){c(f.result)};f.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 f=d.transaction([e],"readonly").objectStore(e).openCursor(IDBKeyRange.lowerBound(0)),g=[];f.onsuccess=function(c){null==c.target.result?b(g):(g.push(c.target.result.value),
-c.target.result["continue"]())};f.onerror=c}catch(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 f=d.transaction([e],"readonly").objectStore(e).getAllKeys();f.onsuccess=function(){b(f.result)};f.onerror=c}catch(n){null!=c&&c(n)}}),c)};EditorUi.prototype.commentsSupported=function(){var b=this.getCurrentFile();return null!=b?b.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var b=
+[k],b=[b],c=[c]);var f=d.transaction(k,"readwrite");f.oncomplete=e;f.onerror=g;for(d=0;d<k.length;d++)f.objectStore(k[d]).put(null!=b&&null!=b[d]?{key:b[d],data:c[d]}:c[d])}catch(u){null!=g&&g(u)}}),g)};EditorUi.prototype.removeDatabaseItem=function(b,c,e,g){this.openDatabase(mxUtils.bind(this,function(d){g=g||"objects";Array.isArray(g)||(g=[g],b=[b]);d=d.transaction(g,"readwrite");d.oncomplete=c;d.onerror=e;for(var f=0;f<g.length;f++)d.objectStore(g[f])["delete"](b[f])}),e)};EditorUi.prototype.getDatabaseItem=
+function(b,c,e,g){this.openDatabase(mxUtils.bind(this,function(d){try{g=g||"objects";var f=d.transaction([g],"readonly").objectStore(g).get(b);f.onsuccess=function(){c(f.result)};f.onerror=e}catch(v){null!=e&&e(v)}}),e)};EditorUi.prototype.getDatabaseItems=function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=e||"objects";var f=d.transaction([e],"readonly").objectStore(e).openCursor(IDBKeyRange.lowerBound(0)),g=[];f.onsuccess=function(c){null==c.target.result?b(g):(g.push(c.target.result.value),
+c.target.result["continue"]())};f.onerror=c}catch(v){null!=c&&c(v)}}),c)};EditorUi.prototype.getDatabaseItemKeys=function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=e||"objects";var f=d.transaction([e],"readonly").objectStore(e).getAllKeys();f.onsuccess=function(){b(f.result)};f.onerror=c}catch(n){null!=c&&c(n)}}),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,g,k,p,t,v){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");
-return this.editor.loadUrl(b,c,e,g,k,p,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,g,k,p,t,v,y,x,D,H,C,F,M,E){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,g,k,p,t,v,y,x,D,H,C,F,M,E)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(b,c,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");
+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,g,k,p,t,u){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");
+return this.editor.loadUrl(b,c,e,g,k,p,t,u)};EditorUi.prototype.loadFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(b)};EditorUi.prototype.createSvgDataUri=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(b)};EditorUi.prototype.embedCssFonts=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");
+return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,e,g,k,p,t,u,y,x,D,I,B,G,M,F){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,g,k,p,t,u,y,x,D,I,B,G,M,F)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(b,c,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");
return this.editor.convertImages(b,c,e,g)};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,g){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(b,c,e,g)};EditorUi.prototype.crc32=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");
return Editor.crc32(b)};EditorUi.prototype.writeGraphModelToPng=function(b,c,e,g,k){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(b,c,e,g,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),g=localStorage.getItem(e);if(0<e.length&&(".scratchpad"==e||"."!=e.charAt(0))&&0<g.length){var k=
"<mxfile "===g.substring(0,8)||"<?xml"===g.substring(0,5)||"\x3c!--[if IE]>"===g.substring(0,12),g="<mxlibrary>"===g.substring(0,11);(k||g)&&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,g,p){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++;C.style.display=0==c?"block":"none"}function d(b,c,d,e){function f(){c.removeChild(l);c.removeChild(m);k.style.display="block";g.style.display="block"}y={div:c,comment:b,saveCallback:d,deleteOnCancel:e};var g=c.querySelector(".geCommentTxt"),k=c.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
+var CommentsWindow=function(b,c,e,k,g,p){function t(){for(var b=I.getElementsByTagName("div"),c=0,d=0;d<b.length;d++)"none"!=b[d].style.display&&b[d].parentNode==I&&c++;B.style.display=0==c?"block":"none"}function d(b,c,d,e){function f(){c.removeChild(l);c.removeChild(m);k.style.display="block";g.style.display="block"}y={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),t()):f();y=null});p.className="geCommentEditBtn";m.appendChild(p);var n=mxUtils.button(mxResources.get("save"),function(){g.innerHTML="";b.content=l.value;mxUtils.write(g,b.content);f();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?(n.click(),mxEvent.consume(b)):27==b.keyCode&&(p.click(),mxEvent.consume(b)))}));n.focus();n.className="geCommentEditBtn gePrimaryBtn";m.appendChild(n);c.insertBefore(m,g);k.style.display="none";g.style.display="none";l.focus()}function f(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 q(b){b.style.border="";b.removeChild(b.busyImg)}function n(c,e,g,k,p){function B(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)});W.appendChild(f);e&&(f.style.display="none")}function x(){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=Q;b(c);return{pdiv:e,replies:d}}function N(e,f,g,p,t){function v(){l(C);c.addReply(N,function(b){N.id=b;c.replies.push(N);q(C);g&&g()},function(c){u();m(C);b.handleError(c,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},p,t)}function u(){d(N,C,function(b){v()},!0)}var B=x().pdiv,N=b.newComment(e,b.getCurrentUser());N.pCommentId=c.id;null==c.replies&&(c.replies=[]);var C=n(N,c.replies,B,k+1);f?u():v()}if(p||!c.isResolved){C.style.display="none";var Q=document.createElement("div");Q.className="geCommentContainer";Q.setAttribute("data-commentId",c.id);Q.style.marginLeft=20*k+5+"px";c.isResolved&&!Editor.isDarkMode()&&(Q.style.backgroundColor="ghostWhite");
-var F=document.createElement("div");F.className="geCommentHeader";var L=document.createElement("img");L.className="geCommentUserImg";L.src=c.user.pictureUrl||Editor.userImage;F.appendChild(L);L=document.createElement("div");L.className="geCommentHeaderTxt";F.appendChild(L);var D=document.createElement("div");D.className="geCommentUsername";mxUtils.write(D,c.user.displayName||"");L.appendChild(D);D=document.createElement("div");D.className="geCommentDate";D.setAttribute("data-commentId",c.id);f(c,
-D);L.appendChild(D);Q.appendChild(F);F=document.createElement("div");F.className="geCommentTxt";mxUtils.write(F,c.content||"");Q.appendChild(F);c.isLocked&&(Q.style.opacity="0.5");F=document.createElement("div");F.className="geCommentActions";var W=document.createElement("ul");W.className="geCommentActionsList";F.appendChild(W);u||c.isLocked||0!=k&&!v||B(mxResources.get("reply"),function(){N("",!0)},c.isResolved);L=b.getCurrentUser();null==L||L.id!=c.user.id||u||c.isLocked||(B(mxResources.get("edit"),
-function(){function e(){d(c,Q,function(){l(Q);c.editComment(c.content,function(){q(Q)},function(c){m(Q);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}e()},c.isResolved),B(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){l(Q);c.deleteComment(function(b){if(!0===b){b=Q.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var d=Q.querySelectorAll(".geCommentAction");for(b=
-0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);q(Q);Q.style.opacity="0.5"}else{d=x(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}C.style.display=0==H.getElementsByTagName("div").length?"block":"none"}},function(c){m(Q);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));u||c.isLocked||0!=k||B(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=x(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?N(mxResources.get("reOpened")+": ",!0,
-d,!1,!0):N(mxResources.get("markedAsResolved"),!1,d,!0)});Q.appendChild(F);null!=g?H.insertBefore(Q,g.nextSibling):H.appendChild(Q);for(g=0;null!=c.replies&&g<c.replies.length;g++)F=c.replies[g],F.isResolved=c.isResolved,n(F,c.replies,null,k+1,p);null!=y&&(y.comment.id==c.id?(p=c.content,c.content=y.comment.content,d(c,Q,y.saveCallback,y.deleteOnCancel),c.content=p):null==y.comment.id&&y.comment.pCommentId==c.id&&(H.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel)));return Q}}
-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 D=EditorUi.compactUi?"26px":"30px",H=document.createElement("div");H.className="geCommentsList";H.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";H.style.bottom=parseInt(D)+7+"px";x.appendChild(H);var C=document.createElement("span");C.style.cssText="display:none;padding-top:10px;text-align:center;";
-mxUtils.write(C,mxResources.get("noCommentsFound"));var F=document.createElement("div");F.className="geToolbarContainer geCommentsToolbar";F.style.height=D;F.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";F.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";D=document.createElement("a");D.className="geButton";if(!u){var M=D.cloneNode();M.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';M.setAttribute("title",mxResources.get("create")+
-"...");mxEvent.addListener(M,"click",function(c){function e(){d(f,g,function(c){l(g);b.addComment(c,function(b){c.id=b;K.push(c);q(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=n(f,K,null,0);e();c.preventDefault();mxEvent.consume(c)});F.appendChild(M)}M=D.cloneNode();M.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';M.setAttribute("title",mxResources.get("showResolved"));
-var E=!1;Editor.isDarkMode()&&(M.style.filter="invert(100%)");mxEvent.addListener(M,"click",function(b){this.className=(E=!E)?"geButton geCheckedBtn":"geButton";B();b.preventDefault();mxEvent.consume(b)});F.appendChild(M);b.commentsRefreshNeeded()&&(M=D.cloneNode(),M.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',M.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(M.style.filter="invert(100%)"),mxEvent.addListener(M,"click",function(b){B();
-b.preventDefault();mxEvent.consume(b)}),F.appendChild(M));b.commentsSaveNeeded()&&(D=D.cloneNode(),D.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',D.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(D.style.filter="invert(100%)"),mxEvent.addListener(D,"click",function(b){p();b.preventDefault();mxEvent.consume(b)}),F.appendChild(D));x.appendChild(F);var K=[],B=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(C);C.style.display="block";K=b;for(b=0;b<K.length;b++)c(K[b].replies),n(K[b],K,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"))});B();this.refreshComments=B;F=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(f(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 g=c[e];d[g.getAttribute("data-commentId")]=g}for(e=0;e<K.length;e++)b(K[e])}});setInterval(F,6E4);this.refreshCommentsTime=F;this.window=
+[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 q(b){b.style.border="";b.removeChild(b.busyImg)}function n(c,e,g,k,p){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)});Y.appendChild(f);e&&(f.style.display="none")}function x(){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=Q;b(c);return{pdiv:e,replies:d}}function N(e,f,g,p,t){function u(){l(N);c.addReply(B,function(b){B.id=b;c.replies.push(B);q(N);g&&g()},function(c){v();m(N);b.handleError(c,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},p,t)}function v(){d(B,N,function(b){u()},!0)}var C=x().pdiv,B=b.newComment(e,b.getCurrentUser());B.pCommentId=c.id;null==c.replies&&(c.replies=[]);var N=n(B,c.replies,C,k+1);f?v():u()}if(p||!c.isResolved){B.style.display="none";var Q=document.createElement("div");Q.className="geCommentContainer";Q.setAttribute("data-commentId",c.id);Q.style.marginLeft=20*k+5+"px";c.isResolved&&!Editor.isDarkMode()&&(Q.style.backgroundColor="ghostWhite");
+var E=document.createElement("div");E.className="geCommentHeader";var G=document.createElement("img");G.className="geCommentUserImg";G.src=c.user.pictureUrl||Editor.userImage;E.appendChild(G);G=document.createElement("div");G.className="geCommentHeaderTxt";E.appendChild(G);var L=document.createElement("div");L.className="geCommentUsername";mxUtils.write(L,c.user.displayName||"");G.appendChild(L);L=document.createElement("div");L.className="geCommentDate";L.setAttribute("data-commentId",c.id);f(c,
+L);G.appendChild(L);Q.appendChild(E);E=document.createElement("div");E.className="geCommentTxt";mxUtils.write(E,c.content||"");Q.appendChild(E);c.isLocked&&(Q.style.opacity="0.5");E=document.createElement("div");E.className="geCommentActions";var Y=document.createElement("ul");Y.className="geCommentActionsList";E.appendChild(Y);v||c.isLocked||0!=k&&!u||C(mxResources.get("reply"),function(){N("",!0)},c.isResolved);G=b.getCurrentUser();null==G||G.id!=c.user.id||v||c.isLocked||(C(mxResources.get("edit"),
+function(){function e(){d(c,Q,function(){l(Q);c.editComment(c.content,function(){q(Q)},function(c){m(Q);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(Q);c.deleteComment(function(b){if(!0===b){b=Q.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var d=Q.querySelectorAll(".geCommentAction");for(b=
+0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);q(Q);Q.style.opacity="0.5"}else{d=x(c).replies;for(b=0;b<d.length;b++)I.removeChild(d[b]);for(b=0;b<e.length;b++)if(e[b]==c){e.splice(b,1);break}B.style.display=0==I.getElementsByTagName("div").length?"block":"none"}},function(c){m(Q);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));v||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=x(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?N(mxResources.get("reOpened")+": ",!0,
+d,!1,!0):N(mxResources.get("markedAsResolved"),!1,d,!0)});Q.appendChild(E);null!=g?I.insertBefore(Q,g.nextSibling):I.appendChild(Q);for(g=0;null!=c.replies&&g<c.replies.length;g++)E=c.replies[g],E.isResolved=c.isResolved,n(E,c.replies,null,k+1,p);null!=y&&(y.comment.id==c.id?(p=c.content,c.content=y.comment.content,d(c,Q,y.saveCallback,y.deleteOnCancel),c.content=p):null==y.comment.id&&y.comment.pCommentId==c.id&&(I.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel)));return Q}}
+var v=!b.canComment(),u=b.canReplyToReplies(),y=null,x=document.createElement("div");x.className="geCommentsWin";x.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var D=EditorUi.compactUi?"26px":"30px",I=document.createElement("div");I.className="geCommentsList";I.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";I.style.bottom=parseInt(D)+7+"px";x.appendChild(I);var B=document.createElement("span");B.style.cssText="display:none;padding-top:10px;text-align:center;";
+mxUtils.write(B,mxResources.get("noCommentsFound"));var G=document.createElement("div");G.className="geToolbarContainer geCommentsToolbar";G.style.height=D;G.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";G.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";D=document.createElement("a");D.className="geButton";if(!v){var M=D.cloneNode();M.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';M.setAttribute("title",mxResources.get("create")+
+"...");mxEvent.addListener(M,"click",function(c){function e(){d(f,g,function(c){l(g);b.addComment(c,function(b){c.id=b;K.push(c);q(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=n(f,K,null,0);e();c.preventDefault();mxEvent.consume(c)});G.appendChild(M)}M=D.cloneNode();M.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';M.setAttribute("title",mxResources.get("showResolved"));
+var F=!1;Editor.isDarkMode()&&(M.style.filter="invert(100%)");mxEvent.addListener(M,"click",function(b){this.className=(F=!F)?"geButton geCheckedBtn":"geButton";C();b.preventDefault();mxEvent.consume(b)});G.appendChild(M);b.commentsRefreshNeeded()&&(M=D.cloneNode(),M.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',M.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(M.style.filter="invert(100%)"),mxEvent.addListener(M,"click",function(b){C();
+b.preventDefault();mxEvent.consume(b)}),G.appendChild(M));b.commentsSaveNeeded()&&(D=D.cloneNode(),D.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',D.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(D.style.filter="invert(100%)"),mxEvent.addListener(D,"click",function(b){p();b.preventDefault();mxEvent.consume(b)}),G.appendChild(D));x.appendChild(G);var K=[],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)}I.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";u=b.canReplyToReplies();b.commentsSupported()?b.getComments(function(b){function c(b){if(null!=b){b.sort(function(b,c){return new Date(b.modifiedDate)-
+new Date(c.modifiedDate)});for(var d=0;d<b.length;d++)c(b[d].replies)}}b.sort(function(b,c){return new Date(b.modifiedDate)-new Date(c.modifiedDate)});I.innerHTML="";I.appendChild(B);B.style.display="block";K=b;for(b=0;b<K.length;b++)c(K[b].replies),n(K[b],K,null,0,F);null!=y&&null==y.comment.id&&null==y.comment.pCommentId&&(I.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel))},mxUtils.bind(this,function(b){I.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(b&&b.message?
+": "+b.message:""));this.hasError=!0})):I.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});C();this.refreshComments=C;G=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(f(c,e),e=0;null!=c.replies&&e<c.replies.length;e++)b(c.replies[e])}if(this.window.isVisible()){for(var c=I.querySelectorAll(".geCommentDate"),d={},e=0;e<c.length;e++){var g=c[e];d[g.getAttribute("data-commentId")]=g}for(e=0;e<K.length;e++)b(K[e])}});setInterval(G,6E4);this.refreshCommentsTime=G;this.window=
new mxWindow(mxResources.get("comments"),x,c,e,k,g,!0,!0);this.window.minimumSize=new mxRectangle(0,0,300,200);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.window.setLocation=function(b,c){var d=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||
document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));c=Math.max(0,Math.min(c,d-this.table.clientHeight-48));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};var L=mxUtils.bind(this,function(){var b=this.window.getX(),c=this.window.getY();this.window.setLocation(b,c)});mxEvent.addListener(window,"resize",L);this.destroy=function(){mxEvent.removeListener(window,"resize",L);this.window.destroy()}},ConfirmDialog=function(b,c,e,
k,g,p,t,d,f,l,m){var q=document.createElement("div");q.style.textAlign="center";m=null!=m?m:44;var n=document.createElement("div");n.style.padding="6px";n.style.overflow="auto";n.style.maxHeight=m+"px";n.style.lineHeight="1.2em";mxUtils.write(n,c);q.appendChild(n);null!=l&&(n=document.createElement("div"),n.style.padding="6px 0 6px 0",c=document.createElement("img"),c.setAttribute("src",l),n.appendChild(c),q.appendChild(n));l=document.createElement("div");l.style.textAlign="center";l.style.whiteSpace=
-"nowrap";var u=document.createElement("input");u.setAttribute("type","checkbox");p=mxUtils.button(p||mxResources.get("cancel"),function(){b.hideDialog();null!=k&&k(u.checked)});p.className="geBtn";null!=d&&(p.innerHTML=d+"<br>"+p.innerHTML,p.style.paddingBottom="8px",p.style.paddingTop="8px",p.style.height="auto",p.style.width="40%");b.editor.cancelFirst&&l.appendChild(p);var v=mxUtils.button(g||mxResources.get("ok"),function(){b.hideDialog();null!=e&&e(u.checked)});l.appendChild(v);null!=t?(v.innerHTML=
-t+"<br>"+v.innerHTML+"<br>",v.style.paddingBottom="8px",v.style.paddingTop="8px",v.style.height="auto",v.className="geBtn",v.style.width="40%"):v.className="geBtn gePrimaryBtn";b.editor.cancelFirst||l.appendChild(p);q.appendChild(l);f?(l.style.marginTop="10px",n=document.createElement("p"),n.style.marginTop="20px",n.style.marginBottom="0px",n.appendChild(u),g=document.createElement("span"),mxUtils.write(g," "+mxResources.get("rememberThisSetting")),n.appendChild(g),q.appendChild(n),mxEvent.addListener(g,
-"click",function(b){u.checked=!u.checked;mxEvent.consume(b)})):l.style.marginTop="12px";this.init=function(){v.focus()};this.container=q};function DiagramPage(b,c){this.node=b;null!=c?this.node.setAttribute("id",c):null==this.getId()&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
+"nowrap";var v=document.createElement("input");v.setAttribute("type","checkbox");p=mxUtils.button(p||mxResources.get("cancel"),function(){b.hideDialog();null!=k&&k(v.checked)});p.className="geBtn";null!=d&&(p.innerHTML=d+"<br>"+p.innerHTML,p.style.paddingBottom="8px",p.style.paddingTop="8px",p.style.height="auto",p.style.width="40%");b.editor.cancelFirst&&l.appendChild(p);var u=mxUtils.button(g||mxResources.get("ok"),function(){b.hideDialog();null!=e&&e(v.checked)});l.appendChild(u);null!=t?(u.innerHTML=
+t+"<br>"+u.innerHTML+"<br>",u.style.paddingBottom="8px",u.style.paddingTop="8px",u.style.height="auto",u.className="geBtn",u.style.width="40%"):u.className="geBtn gePrimaryBtn";b.editor.cancelFirst||l.appendChild(p);q.appendChild(l);f?(l.style.marginTop="10px",n=document.createElement("p"),n.style.marginTop="20px",n.style.marginBottom="0px",n.appendChild(v),g=document.createElement("span"),mxUtils.write(g," "+mxResources.get("rememberThisSetting")),n.appendChild(g),q.appendChild(n),mxEvent.addListener(g,
+"click",function(b){v.checked=!v.checked;mxEvent.consume(b)})):l.style.marginTop="12px";this.init=function(){u.focus()};this.container=q};function DiagramPage(b,c){this.node=b;null!=c?this.node.setAttribute("id",c):null==this.getId()&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
DiagramPage.prototype.setName=function(b){null==b?this.node.removeAttribute("name"):this.node.setAttribute("name",b)};function RenamePage(b,c,e){this.ui=b;this.page=c;this.previous=this.name=e}RenamePage.prototype.execute=function(){var b=this.page.getName();this.page.setName(this.previous);this.name=this.previous;this.previous=b;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))};
function MovePage(b,c,e){this.ui=b;this.oldIndex=c;this.newIndex=e}MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var b=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=b;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))};
function SelectPage(b,c,e){this.ui=b;this.previousPage=this.page=c;this.neverShown=!0;null!=c&&(this.neverShown=null==c.viewState,this.ui.updatePageRoot(c),null!=e&&(c.viewState=e,this.neverShown=!1))}
@@ -3849,41 +3849,41 @@ b)?e:void 0})),null!=k.relatedPage.root&&b.encodeCell(k.relatedPage.root,g));ret
c=c.cloneNode(!0);e=c.firstChild;if(null!=e)for(g.relatedPage.root=b.decodeCell(e,!1),g=e.nextSibling,e.parentNode.removeChild(e),e=g;null!=e;){g=e.nextSibling;if(e.nodeType==mxConstants.NODETYPE_ELEMENT){var k=e.getAttribute("id");null==b.lookup(k)&&b.decodeCell(e)}e.parentNode.removeChild(e);e=g}}return c};b.afterDecode=function(b,c,g){g.index=g.previousIndex;return g};mxCodecRegistry.register(b)})();(function(){EditorUi.prototype.altShiftActions[68]="selectDescendants";var b=Graph.prototype.foldCells;Graph.prototype.foldCells=function(c,e,p,t,d){e=null!=e?e:!1;null==p&&(p=this.getFoldableCells(this.getSelectionCells(),c));this.stopEditing();this.model.beginUpdate();try{for(var f=p.slice(),g=0;g<p.length;g++)"1"==mxUtils.getValue(this.getCurrentCellStyle(p[g]),"treeFolding","0")&&this.foldTreeCell(c,p[g]);p=f;p=b.apply(this,arguments)}finally{this.model.endUpdate()}return p};Graph.prototype.foldTreeCell=
function(b,c){this.model.beginUpdate();try{var e=[];this.traverse(c,!0,mxUtils.bind(this,function(b,f){var d=null!=f&&this.isTreeEdge(f);d&&e.push(f);b==c||null!=f&&!d||e.push(b);return(null==f||d)&&(b==c||!this.model.isCollapsed(b))}));this.model.setCollapsed(c,b);for(var g=0;g<e.length;g++)this.model.setVisible(e[g],!b)}finally{this.model.endUpdate()}};Graph.prototype.isTreeEdge=function(b){return!this.isEdgeIgnored(b)};Graph.prototype.getTreeEdges=function(b,c,e,t,d,f){return this.model.filterCells(this.getEdges(b,
c,e,t,d,f),mxUtils.bind(this,function(b){return this.isTreeEdge(b)}))};Graph.prototype.getIncomingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!0,!1,!1)};Graph.prototype.getOutgoingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!1,!0,!1)};var c=EditorUi.prototype.init;EditorUi.prototype.init=function(){c.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(b){return y.isVertex(b)&&e(b)}function c(b){var c=
-!1;null!=b&&(c="1"==v.getCurrentCellStyle(b).treeMoving);return c}function e(b){var c=!1;null!=b&&(b=y.getParent(b),c=v.view.getState(b),c="tree"==(null!=c?c.style:v.getCellStyle(b)).containerType);return c}function t(b){var c=!1;null!=b&&(b=y.getParent(b),c=v.view.getState(b),v.view.getState(b),c=null!=(null!=c?c.style:v.getCellStyle(b)).childLayout);return c}function d(b){b=v.view.getState(b);if(null!=b){var c=v.getIncomingTreeEdges(b.cell);if(0<c.length&&(c=v.view.getState(c[0]),null!=c&&(c=c.absolutePoints,
-null!=c&&0<c.length&&(c=c[c.length-1],null!=c)))){if(c.y==b.y&&Math.abs(c.x-b.getCenterX())<b.width/2)return mxConstants.DIRECTION_SOUTH;if(c.y==b.y+b.height&&Math.abs(c.x-b.getCenterX())<b.width/2)return mxConstants.DIRECTION_NORTH;if(c.x>b.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function f(b,c){c=null!=c?c:!0;v.model.beginUpdate();try{var e=v.model.getParent(b),f=v.getIncomingTreeEdges(b),g=v.cloneCells([f[0],b]);v.model.setTerminal(g[0],v.model.getTerminal(f[0],
-!0),!0);var k=d(b),l=e.geometry;k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH?g[1].geometry.x+=c?b.geometry.width+10:-g[1].geometry.width-10:g[1].geometry.y+=c?b.geometry.height+10:-g[1].geometry.height-10;v.view.currentRoot!=e&&(g[1].geometry.x-=l.x,g[1].geometry.y-=l.y);var m=v.view.getState(b),p=v.view.scale;if(null!=m){var n=mxRectangle.fromRectangle(m);k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH?n.x+=(c?b.geometry.width+10:-g[1].geometry.width-10)*p:n.y+=(c?
-b.geometry.height+10:-g[1].geometry.height-10)*p;var q=v.getOutgoingTreeEdges(v.model.getTerminal(f[0],!0));if(null!=q){for(var t=k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH,u=l=f=0;u<q.length;u++){var B=v.model.getTerminal(q[u],!1);if(k==d(B)){var x=v.view.getState(B);B!=b&&null!=x&&(t&&c!=x.getCenterX()<m.getCenterX()||!t&&c!=x.getCenterY()<m.getCenterY())&&mxUtils.intersects(n,x)&&(f=10+Math.max(f,(Math.min(n.x+n.width,x.x+x.width)-Math.max(n.x,x.x))/p),l=10+Math.max(l,(Math.min(n.y+
-n.height,x.y+x.height)-Math.max(n.y,x.y))/p))}}t?l=0:f=0;for(u=0;u<q.length;u++)if(B=v.model.getTerminal(q[u],!1),k==d(B)&&(x=v.view.getState(B),B!=b&&null!=x&&(t&&c!=x.getCenterX()<m.getCenterX()||!t&&c!=x.getCenterY()<m.getCenterY()))){var C=[];v.traverse(x.cell,!0,function(b,c){var d=null!=c&&v.isTreeEdge(c);d&&C.push(c);(null==c||d)&&C.push(b);return null==c||d});v.moveCells(C,(c?1:-1)*f,(c?1:-1)*l)}}}return v.addCells(g,e)}finally{v.model.endUpdate()}}function l(b){v.model.beginUpdate();try{var c=
-d(b),e=v.getIncomingTreeEdges(b),f=v.cloneCells([e[0],b]);v.model.setTerminal(e[0],f[1],!1);v.model.setTerminal(f[0],f[1],!0);v.model.setTerminal(f[0],b,!1);var g=v.model.getParent(b),k=g.geometry,l=[];v.view.currentRoot!=g&&(f[1].geometry.x-=k.x,f[1].geometry.y-=k.y);v.traverse(b,!0,function(b,c){var d=null!=c&&v.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});var m=b.geometry.width+40,p=b.geometry.height+40;c==mxConstants.DIRECTION_SOUTH?m=0:c==mxConstants.DIRECTION_NORTH?
-(m=0,p=-p):c==mxConstants.DIRECTION_WEST?(m=-m,p=0):c==mxConstants.DIRECTION_EAST&&(p=0);v.moveCells(l,m,p);return v.addCells(f,g)}finally{v.model.endUpdate()}}function m(b,c){v.model.beginUpdate();try{var e=v.model.getParent(b),f=v.getIncomingTreeEdges(b),g=d(b);0==f.length&&(f=[v.createEdge(e,null,"",null,null,v.createCurrentEdgeStyle())],g=c);var k=v.cloneCells([f[0],b]);v.model.setTerminal(k[0],b,!0);if(null==v.model.getTerminal(k[0],!1)){v.model.setTerminal(k[0],k[1],!1);var l=v.getCellStyle(k[1]).newEdgeStyle;
-if(null!=l)try{var m=JSON.parse(l),p;for(p in m)v.setCellStyles(p,m[p],[k[0]]),"edgeStyle"==p&&"elbowEdgeStyle"==m[p]&&v.setCellStyles("elbow",g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[k[0]])}catch(qa){}}var f=v.getOutgoingTreeEdges(b),n=e.geometry,l=[];v.view.currentRoot==e&&(n=new mxRectangle);for(m=0;m<f.length;m++){var q=v.model.getTerminal(f[m],!1);null!=q&&l.push(q)}var t=v.view.getBounds(l),u=v.view.translate,B=v.view.scale;g==mxConstants.DIRECTION_SOUTH?
-(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/B-u.x-n.x+10,k[1].geometry.y+=k[1].geometry.height-n.y+40):g==mxConstants.DIRECTION_NORTH?(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/B-u.x+-n.x+10,k[1].geometry.y-=k[1].geometry.height+n.y+40):(k[1].geometry.x=g==mxConstants.DIRECTION_WEST?k[1].geometry.x-(k[1].geometry.width+n.x+40):k[1].geometry.x+(k[1].geometry.width-n.x+40),k[1].geometry.y=null==t?b.geometry.y+
-(b.geometry.height-k[1].geometry.height)/2:(t.y+t.height)/B-u.y+-n.y+10);return v.addCells(k,e)}finally{v.model.endUpdate()}}function q(b,c,d){b=v.getOutgoingTreeEdges(b);d=v.view.getState(d);var e=[];if(null!=d&&null!=b){for(var f=0;f<b.length;f++){var g=v.view.getState(v.model.getTerminal(b[f],!1));null!=g&&(!c&&Math.min(g.x+g.width,d.x+d.width)>=Math.max(g.x,d.x)||c&&Math.min(g.y+g.height,d.y+d.height)>=Math.max(g.y,d.y))&&e.push(g)}e.sort(function(b,d){return c?b.x+b.width-d.x-d.width:b.y+b.height-
-d.y-d.height})}return e}function n(b,c){var e=d(b),f=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST;(e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST)==f&&e!=c?u.actions.get("selectParent").funct():e==c?(f=v.getOutgoingTreeEdges(b),null!=f&&0<f.length&&v.setSelectionCell(v.model.getTerminal(f[0],!1))):(e=v.getIncomingTreeEdges(b),null!=e&&0<e.length&&(f=q(v.model.getTerminal(e[0],!0),f,b),e=v.view.getState(b),null!=e&&(e=mxUtils.indexOf(f,e),0<=e&&(e+=c==mxConstants.DIRECTION_NORTH||
-c==mxConstants.DIRECTION_WEST?-1:1,0<=e&&e<=f.length-1&&v.setSelectionCell(f[e].cell)))))}var u=this,v=u.editor.graph,y=v.getModel(),x=u.menus.createPopupMenu;u.menus.createPopupMenu=function(c,d,e){x.apply(this,arguments);if(1==v.getSelectionCount()){d=v.getSelectionCell();var f=v.getOutgoingTreeEdges(d);c.addSeparator();0<f.length&&(b(v.getSelectionCell())&&this.addMenuItems(c,["selectChildren"],null,e),this.addMenuItems(c,["selectDescendants"],null,e));b(v.getSelectionCell())?(c.addSeparator(),
-0<v.getIncomingTreeEdges(d).length&&this.addMenuItems(c,["selectSiblings","selectParent"],null,e)):0<v.model.getEdgeCount(d)&&this.addMenuItems(c,["selectConnections"],null,e)}};u.actions.addAction("selectChildren",function(){if(v.isEnabled()&&1==v.getSelectionCount()){var b=v.getSelectionCell(),b=v.getOutgoingTreeEdges(b);if(null!=b){for(var c=[],d=0;d<b.length;d++)c.push(v.model.getTerminal(b[d],!1));v.setSelectionCells(c)}}},null,null,"Alt+Shift+X");u.actions.addAction("selectSiblings",function(){if(v.isEnabled()&&
-1==v.getSelectionCount()){var b=v.getSelectionCell(),b=v.getIncomingTreeEdges(b);if(null!=b&&0<b.length&&(b=v.getOutgoingTreeEdges(v.model.getTerminal(b[0],!0)),null!=b)){for(var c=[],d=0;d<b.length;d++)c.push(v.model.getTerminal(b[d],!1));v.setSelectionCells(c)}}},null,null,"Alt+Shift+S");u.actions.addAction("selectParent",function(){if(v.isEnabled()&&1==v.getSelectionCount()){var b=v.getSelectionCell(),b=v.getIncomingTreeEdges(b);null!=b&&0<b.length&&v.setSelectionCell(v.model.getTerminal(b[0],
-!0))}},null,null,"Alt+Shift+P");u.actions.addAction("selectDescendants",function(b,c){var d=v.getSelectionCell();if(v.isEnabled()&&v.model.isVertex(d)){if(null!=c&&mxEvent.isAltDown(c))v.setSelectionCells(v.model.getTreeEdges(d,null==c||!mxEvent.isShiftDown(c),null==c||!mxEvent.isControlDown(c)));else{var e=[];v.traverse(d,!0,function(b,d){var f=null!=d&&v.isTreeEdge(d);f&&e.push(d);null!=d&&!f||null!=c&&mxEvent.isShiftDown(c)||e.push(b);return null==d||f})}v.setSelectionCells(e)}},null,null,"Alt+Shift+D");
-var D=v.removeCells;v.removeCells=function(c,d){d=null!=d?d:!0;null==c&&(c=this.getDeletableCells(this.getSelectionCells()));d&&(c=this.getDeletableCells(this.addAllEdges(c)));for(var f=[],g=0;g<c.length;g++){var k=c[g];y.isEdge(k)&&e(k)&&(f.push(k),k=y.getTerminal(k,!1));if(b(k)){var l=[];v.traverse(k,!0,function(b,c){var d=null!=c&&v.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});0<l.length&&(f=f.concat(l),k=v.getIncomingTreeEdges(c[g]),c=c.concat(k))}else null!=k&&f.push(c[g])}c=
-f;return D.apply(this,arguments)};u.hoverIcons.getStateAt=function(c,d,e){return b(c.cell)?null:this.graph.view.getState(this.graph.getCellAt(d,e))};var H=v.duplicateCells;v.duplicateCells=function(c,d){c=null!=c?c:this.getSelectionCells();for(var e=c.slice(0),f=0;f<e.length;f++){var g=v.view.getState(e[f]);if(null!=g&&b(g.cell))for(var k=v.getIncomingTreeEdges(g.cell),g=0;g<k.length;g++)mxUtils.remove(k[g],c)}this.model.beginUpdate();try{var l=H.call(this,c,d);if(l.length==c.length)for(f=0;f<c.length;f++)if(b(c[f])){var m=
-v.getIncomingTreeEdges(l[f]),k=v.getIncomingTreeEdges(c[f]);if(0==m.length&&0<k.length){var p=this.cloneCell(k[0]);this.addEdge(p,v.getDefaultParent(),this.model.getTerminal(k[0],!0),l[f])}}}finally{this.model.endUpdate()}return l};var C=v.moveCells;v.moveCells=function(c,d,e,f,g,k,l){var m=null;this.model.beginUpdate();try{var p=g,n=this.getCurrentCellStyle(g);if(null!=c&&b(g)&&"1"==mxUtils.getValue(n,"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!=p&&g!=p&&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 B=v.view.getState(p);null!=B&&(d=(B.getCenterX()-u.getCenterX())/v.view.scale,e=(B.getCenterY()-u.getCenterY())/v.view.scale)}}}}m=C.apply(this,arguments);if(null!=m&&null!=c&&m.length==c.length)for(q=0;q<m.length;q++)if(this.model.isEdge(m[q]))b(p)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[q],
-!0))&&this.model.setTerminal(m[q],p,!0);else if(b(c[q])&&(t=v.getIncomingTreeEdges(c[q]),0<t.length))if(!f)b(p)&&0>mxUtils.indexOf(c,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],p,!0);else if(0==v.getIncomingTreeEdges(m[q]).length){n=p;if(null==n||n==v.model.getParent(c[q]))n=v.model.getTerminal(t[0],!0);f=this.cloneCell(t[0]);this.addEdge(f,v.getDefaultParent(),n,m[q])}}finally{this.model.endUpdate()}return m};if(null!=u.sidebar){var F=u.sidebar.dropAndConnect;u.sidebar.dropAndConnect=
-function(c,d,e,f){var g=v.model,k=null;g.beginUpdate();try{if(k=F.apply(this,arguments),b(c))for(var l=0;l<k.length;l++)if(g.isEdge(k[l])&&null==g.getTerminal(k[l],!0)){g.setTerminal(k[l],c,!0);var m=v.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var M={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=f(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=M[c.keyCode];null!=e&&(e.funct(c),mxEvent.consume(c))}else 37==c.keyCode?(n(v.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(c)):38==c.keyCode?(n(v.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(c)):39==c.keyCode?(n(v.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(c)):40==c.keyCode&&(n(v.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
-mxEvent.consume(c))}}catch(G){u.handleError(G)}mxEvent.isConsumed(c)||E.apply(this,arguments)};var K=v.connectVertex;v.connectVertex=function(c,e,g,k,p,n,q){var t=v.getIncomingTreeEdges(c);if(b(c)){var u=d(c),B=u==mxConstants.DIRECTION_EAST||u==mxConstants.DIRECTION_WEST,x=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return u==e||0==t.length?m(c,e):B==x?l(c):f(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return K.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 B=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){B.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",
+!1;null!=b&&(c="1"==u.getCurrentCellStyle(b).treeMoving);return c}function e(b){var c=!1;null!=b&&(b=y.getParent(b),c=u.view.getState(b),c="tree"==(null!=c?c.style:u.getCellStyle(b)).containerType);return c}function t(b){var c=!1;null!=b&&(b=y.getParent(b),c=u.view.getState(b),u.view.getState(b),c=null!=(null!=c?c.style:u.getCellStyle(b)).childLayout);return c}function d(b){b=u.view.getState(b);if(null!=b){var c=u.getIncomingTreeEdges(b.cell);if(0<c.length&&(c=u.view.getState(c[0]),null!=c&&(c=c.absolutePoints,
+null!=c&&0<c.length&&(c=c[c.length-1],null!=c)))){if(c.y==b.y&&Math.abs(c.x-b.getCenterX())<b.width/2)return mxConstants.DIRECTION_SOUTH;if(c.y==b.y+b.height&&Math.abs(c.x-b.getCenterX())<b.width/2)return mxConstants.DIRECTION_NORTH;if(c.x>b.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function f(b,c){c=null!=c?c:!0;u.model.beginUpdate();try{var e=u.model.getParent(b),f=u.getIncomingTreeEdges(b),g=u.cloneCells([f[0],b]);u.model.setTerminal(g[0],u.model.getTerminal(f[0],
+!0),!0);var k=d(b),l=e.geometry;k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH?g[1].geometry.x+=c?b.geometry.width+10:-g[1].geometry.width-10:g[1].geometry.y+=c?b.geometry.height+10:-g[1].geometry.height-10;u.view.currentRoot!=e&&(g[1].geometry.x-=l.x,g[1].geometry.y-=l.y);var m=u.view.getState(b),p=u.view.scale;if(null!=m){var n=mxRectangle.fromRectangle(m);k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH?n.x+=(c?b.geometry.width+10:-g[1].geometry.width-10)*p:n.y+=(c?
+b.geometry.height+10:-g[1].geometry.height-10)*p;var q=u.getOutgoingTreeEdges(u.model.getTerminal(f[0],!0));if(null!=q){for(var t=k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH,v=l=f=0;v<q.length;v++){var C=u.model.getTerminal(q[v],!1);if(k==d(C)){var x=u.view.getState(C);C!=b&&null!=x&&(t&&c!=x.getCenterX()<m.getCenterX()||!t&&c!=x.getCenterY()<m.getCenterY())&&mxUtils.intersects(n,x)&&(f=10+Math.max(f,(Math.min(n.x+n.width,x.x+x.width)-Math.max(n.x,x.x))/p),l=10+Math.max(l,(Math.min(n.y+
+n.height,x.y+x.height)-Math.max(n.y,x.y))/p))}}t?l=0:f=0;for(v=0;v<q.length;v++)if(C=u.model.getTerminal(q[v],!1),k==d(C)&&(x=u.view.getState(C),C!=b&&null!=x&&(t&&c!=x.getCenterX()<m.getCenterX()||!t&&c!=x.getCenterY()<m.getCenterY()))){var B=[];u.traverse(x.cell,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&B.push(c);(null==c||d)&&B.push(b);return null==c||d});u.moveCells(B,(c?1:-1)*f,(c?1:-1)*l)}}}return u.addCells(g,e)}finally{u.model.endUpdate()}}function l(b){u.model.beginUpdate();try{var c=
+d(b),e=u.getIncomingTreeEdges(b),f=u.cloneCells([e[0],b]);u.model.setTerminal(e[0],f[1],!1);u.model.setTerminal(f[0],f[1],!0);u.model.setTerminal(f[0],b,!1);var g=u.model.getParent(b),k=g.geometry,l=[];u.view.currentRoot!=g&&(f[1].geometry.x-=k.x,f[1].geometry.y-=k.y);u.traverse(b,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});var m=b.geometry.width+40,p=b.geometry.height+40;c==mxConstants.DIRECTION_SOUTH?m=0:c==mxConstants.DIRECTION_NORTH?
+(m=0,p=-p):c==mxConstants.DIRECTION_WEST?(m=-m,p=0):c==mxConstants.DIRECTION_EAST&&(p=0);u.moveCells(l,m,p);return u.addCells(f,g)}finally{u.model.endUpdate()}}function m(b,c){u.model.beginUpdate();try{var e=u.model.getParent(b),f=u.getIncomingTreeEdges(b),g=d(b);0==f.length&&(f=[u.createEdge(e,null,"",null,null,u.createCurrentEdgeStyle())],g=c);var k=u.cloneCells([f[0],b]);u.model.setTerminal(k[0],b,!0);if(null==u.model.getTerminal(k[0],!1)){u.model.setTerminal(k[0],k[1],!1);var l=u.getCellStyle(k[1]).newEdgeStyle;
+if(null!=l)try{var m=JSON.parse(l),p;for(p in m)u.setCellStyles(p,m[p],[k[0]]),"edgeStyle"==p&&"elbowEdgeStyle"==m[p]&&u.setCellStyles("elbow",g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[k[0]])}catch(oa){}}var f=u.getOutgoingTreeEdges(b),n=e.geometry,l=[];u.view.currentRoot==e&&(n=new mxRectangle);for(m=0;m<f.length;m++){var q=u.model.getTerminal(f[m],!1);null!=q&&l.push(q)}var t=u.view.getBounds(l),v=u.view.translate,C=u.view.scale;g==mxConstants.DIRECTION_SOUTH?
+(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/C-v.x-n.x+10,k[1].geometry.y+=k[1].geometry.height-n.y+40):g==mxConstants.DIRECTION_NORTH?(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/C-v.x+-n.x+10,k[1].geometry.y-=k[1].geometry.height+n.y+40):(k[1].geometry.x=g==mxConstants.DIRECTION_WEST?k[1].geometry.x-(k[1].geometry.width+n.x+40):k[1].geometry.x+(k[1].geometry.width-n.x+40),k[1].geometry.y=null==t?b.geometry.y+
+(b.geometry.height-k[1].geometry.height)/2:(t.y+t.height)/C-v.y+-n.y+10);return u.addCells(k,e)}finally{u.model.endUpdate()}}function q(b,c,d){b=u.getOutgoingTreeEdges(b);d=u.view.getState(d);var e=[];if(null!=d&&null!=b){for(var f=0;f<b.length;f++){var g=u.view.getState(u.model.getTerminal(b[f],!1));null!=g&&(!c&&Math.min(g.x+g.width,d.x+d.width)>=Math.max(g.x,d.x)||c&&Math.min(g.y+g.height,d.y+d.height)>=Math.max(g.y,d.y))&&e.push(g)}e.sort(function(b,d){return c?b.x+b.width-d.x-d.width:b.y+b.height-
+d.y-d.height})}return e}function n(b,c){var e=d(b),f=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST;(e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST)==f&&e!=c?v.actions.get("selectParent").funct():e==c?(f=u.getOutgoingTreeEdges(b),null!=f&&0<f.length&&u.setSelectionCell(u.model.getTerminal(f[0],!1))):(e=u.getIncomingTreeEdges(b),null!=e&&0<e.length&&(f=q(u.model.getTerminal(e[0],!0),f,b),e=u.view.getState(b),null!=e&&(e=mxUtils.indexOf(f,e),0<=e&&(e+=c==mxConstants.DIRECTION_NORTH||
+c==mxConstants.DIRECTION_WEST?-1:1,0<=e&&e<=f.length-1&&u.setSelectionCell(f[e].cell)))))}var v=this,u=v.editor.graph,y=u.getModel(),x=v.menus.createPopupMenu;v.menus.createPopupMenu=function(c,d,e){x.apply(this,arguments);if(1==u.getSelectionCount()){d=u.getSelectionCell();var f=u.getOutgoingTreeEdges(d);c.addSeparator();0<f.length&&(b(u.getSelectionCell())&&this.addMenuItems(c,["selectChildren"],null,e),this.addMenuItems(c,["selectDescendants"],null,e));b(u.getSelectionCell())?(c.addSeparator(),
+0<u.getIncomingTreeEdges(d).length&&this.addMenuItems(c,["selectSiblings","selectParent"],null,e)):0<u.model.getEdgeCount(d)&&this.addMenuItems(c,["selectConnections"],null,e)}};v.actions.addAction("selectChildren",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var b=u.getSelectionCell(),b=u.getOutgoingTreeEdges(b);if(null!=b){for(var c=[],d=0;d<b.length;d++)c.push(u.model.getTerminal(b[d],!1));u.setSelectionCells(c)}}},null,null,"Alt+Shift+X");v.actions.addAction("selectSiblings",function(){if(u.isEnabled()&&
+1==u.getSelectionCount()){var b=u.getSelectionCell(),b=u.getIncomingTreeEdges(b);if(null!=b&&0<b.length&&(b=u.getOutgoingTreeEdges(u.model.getTerminal(b[0],!0)),null!=b)){for(var c=[],d=0;d<b.length;d++)c.push(u.model.getTerminal(b[d],!1));u.setSelectionCells(c)}}},null,null,"Alt+Shift+S");v.actions.addAction("selectParent",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var b=u.getSelectionCell(),b=u.getIncomingTreeEdges(b);null!=b&&0<b.length&&u.setSelectionCell(u.model.getTerminal(b[0],
+!0))}},null,null,"Alt+Shift+P");v.actions.addAction("selectDescendants",function(b,c){var d=u.getSelectionCell();if(u.isEnabled()&&u.model.isVertex(d)){if(null!=c&&mxEvent.isAltDown(c))u.setSelectionCells(u.model.getTreeEdges(d,null==c||!mxEvent.isShiftDown(c),null==c||!mxEvent.isControlDown(c)));else{var e=[];u.traverse(d,!0,function(b,d){var f=null!=d&&u.isTreeEdge(d);f&&e.push(d);null!=d&&!f||null!=c&&mxEvent.isShiftDown(c)||e.push(b);return null==d||f})}u.setSelectionCells(e)}},null,null,"Alt+Shift+D");
+var D=u.removeCells;u.removeCells=function(c,d){d=null!=d?d:!0;null==c&&(c=this.getDeletableCells(this.getSelectionCells()));d&&(c=this.getDeletableCells(this.addAllEdges(c)));for(var f=[],g=0;g<c.length;g++){var k=c[g];y.isEdge(k)&&e(k)&&(f.push(k),k=y.getTerminal(k,!1));if(b(k)){var l=[];u.traverse(k,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});0<l.length&&(f=f.concat(l),k=u.getIncomingTreeEdges(c[g]),c=c.concat(k))}else null!=k&&f.push(c[g])}c=
+f;return D.apply(this,arguments)};v.hoverIcons.getStateAt=function(c,d,e){return b(c.cell)?null:this.graph.view.getState(this.graph.getCellAt(d,e))};var I=u.duplicateCells;u.duplicateCells=function(c,d){c=null!=c?c:this.getSelectionCells();for(var e=c.slice(0),f=0;f<e.length;f++){var g=u.view.getState(e[f]);if(null!=g&&b(g.cell))for(var k=u.getIncomingTreeEdges(g.cell),g=0;g<k.length;g++)mxUtils.remove(k[g],c)}this.model.beginUpdate();try{var l=I.call(this,c,d);if(l.length==c.length)for(f=0;f<c.length;f++)if(b(c[f])){var m=
+u.getIncomingTreeEdges(l[f]),k=u.getIncomingTreeEdges(c[f]);if(0==m.length&&0<k.length){var p=this.cloneCell(k[0]);this.addEdge(p,u.getDefaultParent(),this.model.getTerminal(k[0],!0),l[f])}}}finally{this.model.endUpdate()}return l};var B=u.moveCells;u.moveCells=function(c,d,e,f,g,k,l){var m=null;this.model.beginUpdate();try{var p=g,n=this.getCurrentCellStyle(g);if(null!=c&&b(g)&&"1"==mxUtils.getValue(n,"treeFolding","0")){for(var q=0;q<c.length;q++)if(b(c[q])||u.model.isEdge(c[q])&&null==u.model.getTerminal(c[q],
+!0)){g=u.model.getParent(c[q]);break}if(null!=p&&g!=p&&null!=this.view.getState(c[0])){var t=u.getIncomingTreeEdges(c[0]);if(0<t.length){var v=u.view.getState(u.model.getTerminal(t[0],!0));if(null!=v){var C=u.view.getState(p);null!=C&&(d=(C.getCenterX()-v.getCenterX())/u.view.scale,e=(C.getCenterY()-v.getCenterY())/u.view.scale)}}}}m=B.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(p)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[q],
+!0))&&this.model.setTerminal(m[q],p,!0);else if(b(c[q])&&(t=u.getIncomingTreeEdges(c[q]),0<t.length))if(!f)b(p)&&0>mxUtils.indexOf(c,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],p,!0);else if(0==u.getIncomingTreeEdges(m[q]).length){n=p;if(null==n||n==u.model.getParent(c[q]))n=u.model.getTerminal(t[0],!0);f=this.cloneCell(t[0]);this.addEdge(f,u.getDefaultParent(),n,m[q])}}finally{this.model.endUpdate()}return m};if(null!=v.sidebar){var G=v.sidebar.dropAndConnect;v.sidebar.dropAndConnect=
+function(c,d,e,f){var g=u.model,k=null;g.beginUpdate();try{if(k=G.apply(this,arguments),b(c))for(var l=0;l<k.length;l++)if(g.isEdge(k[l])&&null==g.getTerminal(k[l],!0)){g.setTerminal(k[l],c,!0);var m=u.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var M={88:v.actions.get("selectChildren"),84:v.actions.get("selectSubtree"),80:v.actions.get("selectParent"),83:v.actions.get("selectSiblings")},F=v.onKeyDown;v.onKeyDown=function(c){try{if(u.isEnabled()&&
+!u.isEditing()&&b(u.getSelectionCell())&&1==u.getSelectionCount()){var d=null;0<u.getIncomingTreeEdges(u.getSelectionCell()).length&&(9==c.which?d=mxEvent.isShiftDown(c)?l(u.getSelectionCell()):m(u.getSelectionCell()):13==c.which&&(d=f(u.getSelectionCell(),!mxEvent.isShiftDown(c))));if(null!=d&&0<d.length)1==d.length&&u.model.isEdge(d[0])?u.setSelectionCell(u.model.getTerminal(d[0],!1)):u.setSelectionCell(d[d.length-1]),null!=v.hoverIcons&&v.hoverIcons.update(u.view.getState(u.getSelectionCell())),
+u.startEditingAtCell(u.getSelectionCell()),mxEvent.consume(c);else if(mxEvent.isAltDown(c)&&mxEvent.isShiftDown(c)){var e=M[c.keyCode];null!=e&&(e.funct(c),mxEvent.consume(c))}else 37==c.keyCode?(n(u.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(c)):38==c.keyCode?(n(u.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(c)):39==c.keyCode?(n(u.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(c)):40==c.keyCode&&(n(u.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
+mxEvent.consume(c))}}catch(H){v.handleError(H)}mxEvent.isConsumed(c)||F.apply(this,arguments)};var K=u.connectVertex;u.connectVertex=function(c,e,g,k,p,n,q){var t=u.getIncomingTreeEdges(c);if(b(c)){var v=d(c),C=v==mxConstants.DIRECTION_EAST||v==mxConstants.DIRECTION_WEST,x=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return v==e||0==t.length?m(c,e):C==x?l(c):f(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return K.apply(this,arguments)};u.getSubtree=function(d){var e=
+[d];!c(d)&&!b(d)||t(d)||u.traverse(d,!0,function(b,c){var d=null!=c&&u.isTreeEdge(c);d&&0>mxUtils.indexOf(e,c)&&e.push(c);(null==c||d)&&0>mxUtils.indexOf(e,b)&&e.push(b);return null==c||d});return e};var 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 L=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){L.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var O=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){O.apply(this,
-arguments);null!=this.moveHandle&&(this.moveHandle.style.display=b?"":"none")};var ca=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(b,c){ca.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;v.hoverIcons.reset();mxEvent.consume(b)})))};var L=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){L.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var O=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){O.apply(this,
+arguments);null!=this.moveHandle&&(this.moveHandle.style.display=b?"":"none")};var da=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(b,c){da.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};');
d.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");e.geometry.relative=!0;e.edge=!0;c.insertEdge(e,!0);d.insertEdge(e,!1);var g=new mxCell("Branch",new mxGeometry(320,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
g.vertex=!0;var k=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");k.geometry.relative=!0;k.edge=!0;c.insertEdge(k,!0);g.insertEdge(k,!1);var q=new mxCell("Topic",new mxGeometry(20,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};');
-q.vertex=!0;var n=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");n.geometry.relative=!0;n.edge=!0;c.insertEdge(n,!0);q.insertEdge(n,!1);var u=new mxCell("Branch",new mxGeometry(20,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
-u.vertex=!0;var v=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");v.geometry.relative=!0;v.edge=!0;c.insertEdge(v,!0);u.insertEdge(v,!1);b.insert(e);b.insert(k);b.insert(n);b.insert(v);b.insert(c);b.insert(d);b.insert(g);b.insert(q);b.insert(u);return sb.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree mindmap mindmaps central idea",function(){var b=new mxCell("Central Idea",
+q.vertex=!0;var n=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");n.geometry.relative=!0;n.edge=!0;c.insertEdge(n,!0);q.insertEdge(n,!1);var v=new mxCell("Branch",new mxGeometry(20,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
+v.vertex=!0;var u=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");u.geometry.relative=!0;u.edge=!0;c.insertEdge(u,!0);v.insertEdge(u,!1);b.insert(e);b.insert(k);b.insert(n);b.insert(u);b.insert(c);b.insert(d);b.insert(g);b.insert(q);b.insert(v);return sb.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree mindmap mindmaps central idea",function(){var b=new mxCell("Central Idea",
new mxGeometry(0,0,100,40),'ellipse;whiteSpace=wrap;html=1;align=center;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};treeFolding=1;treeMoving=1;');b.vertex=!0;return sb.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree mindmap mindmaps branch",function(){var b=new mxCell("Branch",new mxGeometry(0,0,80,20),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;recursiveResize=0;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
b.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");c.geometry.setTerminalPoint(new mxPoint(-40,40),!0);c.geometry.relative=!0;c.edge=!0;b.insertEdge(c,!1);return sb.createVertexTemplateFromCells([b,c],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree mindmap mindmaps sub topic",function(){var b=new mxCell("Sub Topic",new mxGeometry(0,0,72,26),'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};');
b.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");c.geometry.setTerminalPoint(new mxPoint(-40,40),!0);c.geometry.relative=!0;c.edge=!0;b.insertEdge(c,!1);return sb.createVertexTemplateFromCells([b,c],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree orgchart organization division",function(){var b=new mxCell("Orgchart",new mxGeometry(0,0,280,220),'swimlane;startSize=20;horizontal=1;containerType=tree;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
@@ -3900,18 +3900,18 @@ e.className="geTitle";e.innerHTML='<span style="font-size:18px;margin-right:5px;
e.className="geTitle";var g=document.createElement("span");g.style.cssText="position:relative;top:6px;";mxUtils.write(g,mxResources.get("newLibrary"));e.appendChild(g);c.appendChild(e);mxEvent.addListener(e,"click",b.actions.get("newLibrary").funct);e=document.createElement("div");e.style.cssText="position:absolute;left:50%;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;border-left: 1px solid lightgray;";e.className="geTitle";g=document.createElement("span");
g.style.cssText="position:relative;top:6px;";mxUtils.write(g,mxResources.get("openLibrary"));e.appendChild(g);c.appendChild(e);mxEvent.addListener(e,"click",b.actions.get("openLibrary").funct)}else 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.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());b.sidebarWindow.window.isVisible()&&b.sidebarWindow.window.fit()}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(C){}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=
+"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(B){}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));c=Math.max(0,Math.min(c,d-this.table.clientHeight-("1"==urlParams.sketch?
3:48)));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",
-"text/css");EditorUi.prototype.doSetDarkMode=function(b){if(Editor.darkMode!=b){var c=this.editor.graph;Editor.darkMode=b;this.spinner.opts.color=Editor.isDarkMode()?"#c0c0c0":"#000";this.setGridColor(Editor.isDarkMode()?c.view.defaultDarkGridColor:c.view.defaultGridColor);c.defaultPageBorderColor=Editor.isDarkMode()?"#505759":"#ffffff";c.defaultForegroundColor=Editor.isDarkMode()?"#f0f0f0":"#000000";c.defaultThemeName=Editor.isDarkMode()?"darkTheme":"default-style2";c.graphHandler.previewColor=Editor.isDarkMode()?
-"#cccccc":"black";c.defaultPageBackgroundColor=Editor.isDarkMode()?Editor.darkColor:"#ffffff";Graph.prototype.defaultPageBackgroundColor=c.defaultPageBackgroundColor;document.body.style.backgroundColor="1"==urlParams.embedInline?"transparent":Editor.isDarkMode()?Editor.darkColor:"#ffffff";c.loadStylesheet();null!=this.actions.layersWindow&&(b=this.actions.layersWindow.window.isVisible(),this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.destroy(),this.actions.layersWindow=null,
-b&&window.setTimeout(this.actions.get("layers").funct,0));null!=this.menus.commentsWindow&&(this.menus.commentsWindow.window.setVisible(!1),this.menus.commentsWindow.destroy(),this.menus.commentsWindow=null);null!=this.ruler&&this.ruler.updateStyle();Dialog.backdropColor=Editor.isDarkMode()?Editor.darkColor:"white";StyleFormatPanel.prototype.defaultStrokeColor=Editor.isDarkMode()?"#cccccc":"black";BaseFormatPanel.prototype.buttonBackgroundColor=Editor.isDarkMode()?Editor.darkColor:"white";Format.inactiveTabBackgroundColor=
-Editor.isDarkMode()?"black":"#f0f0f0";mxConstants.DROP_TARGET_COLOR=Editor.isDarkMode()?"#00ff00":"#0000FF";Editor.helpImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkHelpImage:Editor.lightHelpImage;Editor.checkmarkImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;p.innerHTML=Editor.createMinimalCss();Editor.darkMode?null==g.parentNode&&document.getElementsByTagName("head")[0].appendChild(g):null!=g.parentNode&&g.parentNode.removeChild(g)}};Editor.createMinimalCss=
-function(){return"* { -webkit-font-smoothing: antialiased; }html body td.mxWindowTitle > div > img { padding: 8px 4px; }"+(Editor.isDarkMode()?"html body td.mxWindowTitle > div > img { margin: -4px; }html body .geToolbarContainer .geMenuItem, html body .geToolbarContainer .geToolbarButton, html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem,html body .geMenubarContainer .geToolbarButton { filter: invert(1); }html body div.geToolbarContainer a.geInverted { filter: none; }html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem { color: #353535; }html > body > div > .geToolbarContainer { border: 1px solid #c0c0c0 !important; box-shadow: none !important; }html > body.geEditor > div > a.geItem { background-color: #2a2a2a; color: #cccccc; border-color: #505759; }html body .geTabContainer, html body .geTabContainer div, html body .geMenubarContainer { border-color: #505759 !important; }html body .mxCellEditor { color: #f0f0f0; }":
+"text/css");EditorUi.prototype.doSetDarkMode=function(b){if(Editor.darkMode!=b){var c=this.editor.graph;Editor.darkMode=b;this.spinner.opts.color=Editor.isDarkMode()?"#c0c0c0":"#000";this.setGridColor(Editor.isDarkMode()?c.view.defaultDarkGridColor:c.view.defaultGridColor);c.defaultPageBackgroundColor=Editor.isDarkMode()?Editor.darkColor:"#ffffff";c.defaultPageBorderColor=Editor.isDarkMode()?"#505759":"#ffffff";c.defaultForegroundColor=Editor.isDarkMode()?"#f0f0f0":"#000000";c.defaultThemeName=Editor.isDarkMode()?
+"darkTheme":"default-style2";c.graphHandler.previewColor=Editor.isDarkMode()?"#cccccc":"black";document.body.style.backgroundColor="1"==urlParams.embedInline?"transparent":Editor.isDarkMode()?Editor.darkColor:"#ffffff";c.loadStylesheet();null!=this.actions.layersWindow&&(b=this.actions.layersWindow.window.isVisible(),this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.destroy(),this.actions.layersWindow=null,b&&window.setTimeout(this.actions.get("layers").funct,0));null!=this.menus.commentsWindow&&
+(this.menus.commentsWindow.window.setVisible(!1),this.menus.commentsWindow.destroy(),this.menus.commentsWindow=null);null!=this.ruler&&this.ruler.updateStyle();Graph.prototype.defaultPageBackgroundColor=c.defaultPageBackgroundColor;Graph.prototype.defaultPageBorderColor=c.defaultPageBorderColor;Graph.prototype.defaultForegroundColor=c.defaultForegroundColor;StyleFormatPanel.prototype.defaultStrokeColor=Editor.isDarkMode()?"#cccccc":"black";BaseFormatPanel.prototype.buttonBackgroundColor=Editor.isDarkMode()?
+Editor.darkColor:"white";Format.inactiveTabBackgroundColor=Editor.isDarkMode()?"black":"#f0f0f0";Dialog.backdropColor=Editor.isDarkMode()?Editor.darkColor:"white";mxConstants.DROP_TARGET_COLOR=Editor.isDarkMode()?"#00ff00":"#0000FF";Editor.helpImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkHelpImage:Editor.lightHelpImage;Editor.checkmarkImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;p.innerHTML=Editor.createMinimalCss();Editor.darkMode?null==
+g.parentNode&&document.getElementsByTagName("head")[0].appendChild(g):null!=g.parentNode&&g.parentNode.removeChild(g)}};Editor.createMinimalCss=function(){return"* { -webkit-font-smoothing: antialiased; }html body td.mxWindowTitle > div > img { padding: 8px 4px; }"+(Editor.isDarkMode()?"html body td.mxWindowTitle > div > img { margin: -4px; }html body .geToolbarContainer .geMenuItem, html body .geToolbarContainer .geToolbarButton, html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem,html body .geMenubarContainer .geToolbarButton { filter: invert(1); }html body div.geToolbarContainer a.geInverted { filter: none; }html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem { color: #353535; }html > body > div > .geToolbarContainer { border: 1px solid #c0c0c0 !important; box-shadow: none !important; }html > body.geEditor > div > a.geItem { background-color: #2a2a2a; color: #cccccc; border-color: #505759; }html body .geTabContainer, html body .geTabContainer div, html body .geMenubarContainer { border-color: #505759 !important; }html body .mxCellEditor { color: #f0f0f0; }":
"html body div.geToolbarContainer a.geInverted { filter: invert(1); }html body.geEditor .geTabContainer div { border-color: #e5e5e5 !important; }")+'html > body > div > a.geItem { background-color: #ffffff; color: #707070; border-top: 1px solid lightgray; border-left: 1px solid lightgray; }html body .geMenubarContainer { border-bottom:1px solid lightgray;background-color:#ffffff; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0; }html body table.mxWindow td.mxWindowPane div.mxWindowPane *:not(svg *) { font-size:9pt; }table.mxWindow * :not(svg *) { font-size:13px; }html body .mxWindow { z-index: 3; }html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700; border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }html body a.geMenuItem { opacity: 0.75; cursor: pointer; user-select: none; }html body a.geMenuItem[disabled] { opacity: 0.2; }html body a.geMenuItem[disabled]:active { opacity: 0.2; }html body div.geActivePage { opacity: 0.7; }html body a.geMenuItem:active { opacity: 0.2; }html body .geToolbarButton { opacity: 0.3; }html body .geToolbarButton:active { opacity: 0.15; }html body .geStatus:active { opacity: 0.5; }html body .geStatus { padding-top:3px !important; }html body .geMenubarContainer .geStatus { margin-top: 0px !important; }html table.mxPopupMenu tr.mxPopupMenuItemHover:active { opacity: 0.7; }html body .geDialog input, html body .geToolbarContainer input, html body .mxWindow input {padding: 2px; display: inline-block; }html body .mxWindow input[type="checkbox"] {padding: 0px; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: '+
(Editor.isDarkMode()?Editor.darkColor:"#fff")+" !important; border: none !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: "+(Editor.isDarkMode()?"#cccccc":"#353535")+" !important; border-style: solid; border-width: 1px; border-color: rgb(216, 216, 216); }html body div.diagramContainer button:hover, html body .mxWindow button:hover, html body .geDialog button:hover { border-color: rgb(177, 177, 177); }html body div.diagramContainer button:active, html body .mxWindow button:active, html body .geDialog button:active { opacity: 0.6; }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:0px; padding: 0 2px 4px 2px; } html body div.geToolbarContainer a.geColorBtn { margin: 2px; } html body .mxWindow td.mxWindowPane input, html body .mxWindow td.mxWindowPane select, html body .mxWindow td.mxWindowPane textarea, html body .mxWindow td.mxWindowPane radio { padding: 0px; box-sizing: border-box; }.geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }.geTabContainer { border-bottom:1px solid lightgray; border-top:1px solid lightgray; background: "+
(Editor.isDarkMode()?Editor.darkColor:"#fff")+" !important; }.geToolbarContainer { background: "+(Editor.isDarkMode()?Editor.darkColor:"#fff")+"; }div.geSidebarContainer { background-color: "+(Editor.isDarkMode()?Editor.darkColor:"#fff")+"; }div.geSidebarContainer .geTitle { background-color: "+(Editor.isDarkMode()?Editor.darkColor:"#fdfdfd")+"; }div.mxWindow td.mxWindowPane button { background-image: none; float: none; }td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:"+
@@ -3929,10 +3929,10 @@ b.className="geToolbarButton";b.innerHTML="";b.style.backgroundImage="url("+Edit
b.appendChild(c));this.buttonContainer.appendChild(b);this.buttonContainer.style.top="6px";this.editor.fireEvent(new mxEventObject("statusChanged"))}};var q=Sidebar.prototype.getTooltipOffset;Sidebar.prototype.getTooltipOffset=function(b,c){if(null==this.editorUi.sidebarWindow||mxUtils.isAncestorNode(this.editorUi.picker,b)){var d=mxUtils.getOffset(this.editorUi.picker);d.x+=this.editorUi.picker.offsetWidth+4;d.y+=b.offsetTop-c.height/2+16;return d}var e=q.apply(this,arguments),d=mxUtils.getOffset(this.editorUi.sidebarWindow.window.div);
e.x+=d.x-16;e.y+=d.y;return e};var n=Menus.prototype.createPopupMenu;Menus.prototype.createPopupMenu=function(b,c,d){var e=this.editorUi.editor.graph;b.smartSeparators=!0;n.apply(this,arguments);"1"==urlParams.sketch?e.isEnabled()&&(b.addSeparator(),1==e.getSelectionCount()&&this.addMenuItems(b,["-","lockUnlock"],null,d)):1==e.getSelectionCount()?(e.isCellFoldable(e.getSelectionCell())&&this.addMenuItems(b,e.isCellCollapsed(c)?["expand"]:["collapse"],null,d),this.addMenuItems(b,["collapsible","-",
"lockUnlock","enterGroup"],null,d),b.addSeparator(),this.addSubmenu("layout",b)):e.isSelectionEmpty()&&e.isEnabled()?(b.addSeparator(),this.addMenuItems(b,["editData"],null,d),b.addSeparator(),this.addSubmenu("layout",b),this.addSubmenu("insert",b),this.addMenuItems(b,["-","exitGroup"],null,d)):e.isEnabled()&&this.addMenuItems(b,["-","lockUnlock"],null,d);e.isEnabled()&&e.isSelectionEmpty()&&(this.addMenuItems(b,["-","fullscreen"]),"1"==urlParams.embedInline||!Editor.isDarkMode()&&(mxClient.IS_IE||
-mxClient.IS_IE11)||this.addMenuItems(b,["toggleDarkMode"]))};var u=Menus.prototype.addPopupMenuEditItems;Menus.prototype.addPopupMenuEditItems=function(b,c,d){u.apply(this,arguments);this.editorUi.editor.graph.isSelectionEmpty()&&this.addMenuItems(b,["copyAsImage"],null,d)};EditorUi.prototype.toggleFormatPanel=function(c){null!=this.formatWindow?this.formatWindow.window.setVisible(null!=c?c:!this.formatWindow.window.isVisible()):b(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};
-var v=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),this.formatWindow.window.destroy(),this.formatWindow=null);null!=this.actions.outlineWindow&&(this.actions.outlineWindow.window.setVisible(!1),this.actions.outlineWindow.window.destroy(),this.actions.outlineWindow=null);null!=this.actions.layersWindow&&
+mxClient.IS_IE11)||this.addMenuItems(b,["toggleDarkMode"]))};var v=Menus.prototype.addPopupMenuEditItems;Menus.prototype.addPopupMenuEditItems=function(b,c,d){v.apply(this,arguments);this.editorUi.editor.graph.isSelectionEmpty()&&this.addMenuItems(b,["copyAsImage"],null,d)};EditorUi.prototype.toggleFormatPanel=function(c){null!=this.formatWindow?this.formatWindow.window.setVisible(null!=c?c:!this.formatWindow.window.isVisible()):b(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};
+var u=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),this.formatWindow.window.destroy(),this.formatWindow=null);null!=this.actions.outlineWindow&&(this.actions.outlineWindow.window.setVisible(!1),this.actions.outlineWindow.window.destroy(),this.actions.outlineWindow=null);null!=this.actions.layersWindow&&
(this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.destroy(),this.actions.layersWindow=null);null!=this.menus.tagsWindow&&(this.menus.tagsWindow.window.setVisible(!1),this.menus.tagsWindow.window.destroy(),this.menus.tagsWindow=null);null!=this.menus.findWindow&&(this.menus.findWindow.window.setVisible(!1),this.menus.findWindow.window.destroy(),this.menus.findWindow=null);null!=this.menus.findReplaceWindow&&(this.menus.findReplaceWindow.window.setVisible(!1),this.menus.findReplaceWindow.window.destroy(),
-this.menus.findReplaceWindow=null);v.apply(this,arguments)};var y=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(b){y.apply(this,arguments);if(b){var c=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;1E3<=c&&null!=this.sidebarWindow&&"1"!=urlParams.sketch&&this.sidebarWindow.window.setVisible(!0);null!=this.formatWindow&&(1E3<=c||"1"==urlParams.sketch)&&this.formatWindow.window.setVisible(!0)}else null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),
+this.menus.findReplaceWindow=null);u.apply(this,arguments)};var y=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(b){y.apply(this,arguments);if(b){var c=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;1E3<=c&&null!=this.sidebarWindow&&"1"!=urlParams.sketch&&this.sidebarWindow.window.setVisible(!0);null!=this.formatWindow&&(1E3<=c||"1"==urlParams.sketch)&&this.formatWindow.window.setVisible(!0)}else null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),
null!=this.formatWindow&&this.formatWindow.window.setVisible(!1)};EditorUi.prototype.chromelessWindowResize=function(){};var x=Menus.prototype.init;Menus.prototype.init=function(){x.apply(this,arguments);var d=this.editorUi,e=d.editor.graph;d.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";d.actions.get("createShape").label=mxResources.get("shape")+"...";d.actions.get("outline").label=mxResources.get("outline")+"...";d.actions.get("layers").label=mxResources.get("layers")+"...";
d.actions.get("tags").label=mxResources.get("tags")+"...";d.actions.get("forkme").visible="1"!=urlParams.sketch;d.actions.get("downloadDesktop").visible="1"!=urlParams.sketch;var f=d.actions.put("toggleDarkMode",new Action(mxResources.get("dark"),function(b){d.setDarkMode(!Editor.darkMode)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.isDarkMode()});f=d.actions.put("toggleSketchMode",new Action(mxResources.get("sketch"),function(b){d.setSketchMode(!Editor.sketchMode)}));
f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.sketchMode});f=d.actions.put("togglePagesVisible",new Action(mxResources.get("pages"),function(b){d.setPagesVisible(!Editor.pagesVisible)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.pagesVisible});d.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){e.popupMenuHandler.hideMenu();d.showImportCsvDialog()}));d.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var b=
@@ -3951,61 +3951,61 @@ b,c);null!=l&&d.menus.addSubmenu("language",b,c);d.menus.addSubmenu("units",b,c)
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 D=!1;EditorUi.prototype.initFormatWindow=function(){if(!D){D=!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),
+"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 I=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&&(X.style.left=58>I.offsetTop-I.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;
+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&&(W.style.left=58>E.offsetTop-E.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?A: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([fa,ia],60),520<=e&&g([wa,640<=e?f("",ta.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",ta,Editor.zoomInImage):null,640<=e?f("",U.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",U,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==ra&&(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),ra=c),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=ra&&(ra.parentNode.removeChild(ra),ra=null))}H.apply(this,arguments);"1"!=urlParams.embedInline&&this.doSetDarkMode(null!=urlParams.dark?1==urlParams.dark&&!mxClient.IS_IE&&!mxClient.IS_IE11:
+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([fa,ia],60),520<=e&&g([wa,640<=e?f("",ra.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",ra,Editor.zoomInImage):null,640<=e?f("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",V,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))}I.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";var y=m.menus.get("viewZoom"),A="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,D="1"==urlParams.sketch?document.createElement("div"):null,I="1"==urlParams.sketch?document.createElement("div"):null,X="1"==urlParams.sketch?document.createElement("div"):null,aa=mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),
-this.sidebar.graph.defaultPageBackgroundColor=n.defaultPageBackgroundColor,this.sidebar.graph.defaultForegroundColor=n.defaultForegroundColor,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",aa);m.addListener("sketchModeChanged",aa);var la=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)X.style.left="10px",X.style.top=
-"10px",I.style.left="10px",I.style.top="60px",D.style.top="10px",D.style.right="12px",D.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()}X.style.left=m.diagramContainer.offsetLeft+"px";X.style.top=m.diagramContainer.offsetTop-X.offsetHeight-4+"px";I.style.display="";I.style.left=m.diagramContainer.offsetLeft-I.offsetWidth-4+"px";I.style.top=m.diagramContainer.offsetTop+"px";D.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-D.offsetWidth+"px";D.style.top=X.style.top;D.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";X.style.visibility="";D.style.visibility=""}),ga=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";la()}),aa=mxUtils.bind(this,function(){ga();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+
-c.width+4,c.y)});m.addListener("inlineFullscreenChanged",ga);m.addListener("editInlineStart",aa);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",aa);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";X.style.visibility="hidden";D.style.visibility="hidden";I.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 pa=n.freehand.createStyle;n.freehand.createStyle=function(b){return pa.apply(this,arguments)+"sketch=0;"}}if("1"==
-urlParams.sketch){I.className="geToolbarContainer";D.className="geToolbarContainer";X.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=I;var qa=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){qa||(m.statusContainer.style.display="none")});var ma=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();ma(b);var c=m.getCurrentFile(),c=null!=c?c.savingStatusKey:DrawioFile.prototype.savingStatusKey;b==mxResources.get(c)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(c))+'..."src="'+Editor.tailSpin+'">',m.statusContainer.style.display="inline-block",qa=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display="none",qa=!1)}else m.statusContainer.style.display="inline-block",ma(null),qa=!0;p.style.visibility=12<p.clientWidth?"":
-"hidden"}))):m.editor.addListener("statusChanged",mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));P=d("diagram",null,Editor.menuImage);P.style.boxShadow="none";P.style.padding="6px";P.style.margin="0px";X.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 Y=document.createElement("a");Y.style.padding="0px";Y.style.boxShadow=
-"none";Y.className="geMenuItem";Y.style.display="inline-block";Y.style.width="40px";Y.style.height="12px";Y.style.marginBottom="-2px";Y.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";Y.style.backgroundPosition="top center";Y.style.backgroundRepeat="no-repeat";Y.setAttribute("title","Minimize");var ba=!1,R=mxUtils.bind(this,function(){I.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";I.appendChild(b);mxUtils.br(I);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+
-")",A);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&&I.appendChild(Y)});mxEvent.addListener(Y,"click",mxUtils.bind(this,function(){ba?(mxUtils.setPrefixedStyle(I.style,"transform","translate(0, -50%)"),I.style.padding="8px 6px 4px",I.style.top="50%",I.style.bottom="",
-I.style.height="",Y.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",Y.style.width="40px",Y.style.height="12px",Y.setAttribute("title","Minimize"),ba=!1,R()):(I.innerHTML="",I.appendChild(Y),mxUtils.setPrefixedStyle(I.style,"transform","translate(0, 0)"),I.style.top="",I.style.bottom="12px",I.style.padding="0px",I.style.height="24px",Y.style.height="24px",Y.style.backgroundImage="url("+Editor.plusImage+")",Y.setAttribute("title",mxResources.get("insert")),Y.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!=y){var aa=function(b){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},ta=m.actions.get("zoomIn"),U=m.actions.get("zoomOut"),T=m.actions.get("resetView"),na=m.actions.get("fullscreen");m.actions.get("toggleDarkMode");var va=
-m.actions.get("undo"),S=m.actions.get("redo"),fa=f("",va.funct,null,mxResources.get("undo")+" ("+va.shortcut+")",va,Editor.undoImage),ia=f("",S.funct,null,mxResources.get("redo")+" ("+S.shortcut+")",S,Editor.redoImage),ja=f("",na.funct,null,mxResources.get("fullscreen"),na,Editor.fullscreenImage);if(null!=D){y=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";X.appendChild(ua);oa.addListener("stateChanged",function(){ua.style.opacity=oa.enabled?"":"0.1"});T=function(){fa.style.display=0<m.editor.undoManager.history.length||n.isEditing()?"inline-block":"none";ia.style.display=fa.style.display;fa.style.opacity=va.enabled?"":"0.1";ia.style.opacity=S.enabled?"":"0.1"};X.appendChild(fa);X.appendChild(ia);va.addListener("stateChanged",T);S.addListener("stateChanged",
-T);T();null!=urlParams.layers&&(T=m.actions.get("layers"),T=f("",T.funct,null,mxResources.get("layers"),T,Editor.layersImage),T.style.opacity="0.4",D.appendChild(T));null!=urlParams.tags&&(T=m.actions.get("tags"),T=f("",T.funct,null,mxResources.get("tags"),T,Editor.tagsImage),T.style.opacity="0.4",D.appendChild(T));T=m.actions.get("outline");T=f("",T.funct,null,mxResources.get("outline"),T,Editor.outlineImage);D.appendChild(T);T=f("",U.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",
-U,Editor.zoomOutImage);D.appendChild(T);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";D.appendChild(P);mxEvent.addListener(P,
-"click",aa);aa=f("",ta.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",ta,Editor.zoomInImage);D.appendChild(aa);"1"==urlParams.embedInline&&(D.appendChild(ja),aa=m.actions.get("exit"),D.appendChild(f("",aa.funct,null,mxResources.get("exit"),aa,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";D.appendChild(da);m.addListener("fileDescriptorChanged",y);m.addListener("pagesVisibleChanged",y);y();m.tabContainer.style.visibility="hidden";p.style.cssText="position:absolute;right:12px;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;";
-X.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;";D.style.cssText="position:absolute;right:12px;bottom:12px;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(X);x.appendChild(D);I.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(I);window.setTimeout(function(){mxUtils.setPrefixedStyle(I.style,"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(x)}else{var wa=f("",aa,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",T,Editor.zoomFitImage);p.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;text-align:left;white-space:nowrap;";this.tabContainer.style.right="70px";P=t.addMenu("100%",y.funct);P.setAttribute("title",mxResources.get("zoom")+
+"position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var y=m.menus.get("viewZoom"),A="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,D="1"==urlParams.sketch?document.createElement("div"):null,E="1"==urlParams.sketch?document.createElement("div"):null,W="1"==urlParams.sketch?document.createElement("div"):null,T=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",T);m.addListener("sketchModeChanged",T);var na=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)W.style.left="10px",W.style.top="10px",E.style.left="10px",E.style.top="60px",D.style.top="10px",D.style.right="12px",D.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()}W.style.left=m.diagramContainer.offsetLeft+"px";W.style.top=m.diagramContainer.offsetTop-
+W.offsetHeight-4+"px";E.style.display="";E.style.left=m.diagramContainer.offsetLeft-E.offsetWidth-4+"px";E.style.top=m.diagramContainer.offsetTop+"px";D.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-D.offsetWidth+"px";D.style.top=W.style.top;D.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";W.style.visibility="";D.style.visibility=""}),ga=mxUtils.bind(this,function(){ba.style.backgroundImage=
+"url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";na()}),T=mxUtils.bind(this,function(){ga();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",ga);m.addListener("editInlineStart",T);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",
+T);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";W.style.visibility="hidden";D.style.visibility="hidden";E.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 ja=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||ja.apply(this,arguments)}}if(null!=n.freehand){var ma=n.freehand.createStyle;n.freehand.createStyle=function(b){return ma.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){E.className="geToolbarContainer";D.className="geToolbarContainer";W.className="geToolbarContainer";p.className="geToolbarContainer";
+m.picker=E;var oa=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){oa||(m.statusContainer.style.display="none")});var ka=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();ka(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",oa=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display="none",oa=!1)}else m.statusContainer.style.display="inline-block",ka(null),oa=!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";W.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 Z=document.createElement("a");Z.style.padding="0px";Z.style.boxShadow="none";Z.className="geMenuItem";Z.style.display="inline-block";Z.style.width="40px";Z.style.height="12px";Z.style.marginBottom="-2px";Z.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+
+")";Z.style.backgroundPosition="top center";Z.style.backgroundRepeat="no-repeat";Z.setAttribute("title","Minimize");var ca=!1,R=mxUtils.bind(this,function(){E.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";E.appendChild(b);mxUtils.br(E);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+")",A);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&&E.appendChild(Z)});mxEvent.addListener(Z,"click",mxUtils.bind(this,function(){ca?(mxUtils.setPrefixedStyle(E.style,"transform","translate(0, -50%)"),E.style.padding="8px 6px 4px",E.style.top="50%",E.style.bottom="",E.style.height="",Z.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",Z.style.width="40px",Z.style.height=
+"12px",Z.setAttribute("title","Minimize"),ca=!1,R()):(E.innerHTML="",E.appendChild(Z),mxUtils.setPrefixedStyle(E.style,"transform","translate(0, 0)"),E.style.top="",E.style.bottom="12px",E.style.padding="0px",E.style.height="24px",Z.style.height="24px",Z.style.backgroundImage="url("+Editor.plusImage+")",Z.setAttribute("title",mxResources.get("insert")),Z.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!=y){var T=function(b){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},ra=m.actions.get("zoomIn"),V=m.actions.get("zoomOut"),U=m.actions.get("resetView"),la=m.actions.get("fullscreen");m.actions.get("toggleDarkMode");var ta=m.actions.get("undo"),S=m.actions.get("redo"),fa=f("",ta.funct,null,mxResources.get("undo")+" ("+ta.shortcut+")",ta,Editor.undoImage),
+ia=f("",S.funct,null,mxResources.get("redo")+" ("+S.shortcut+")",S,Editor.redoImage),ba=f("",la.funct,null,mxResources.get("fullscreen"),la,Editor.fullscreenImage);if(null!=D){y=function(){ea.style.display=null!=m.pages&&("1"==urlParams.pages||1<m.pages.length||Editor.pagesVisible)?"inline-block":"none"};ba.parentNode.removeChild(ba);var za=m.actions.get("delete"),va=f("",za.funct,null,mxResources.get("delete"),za,Editor.trashImage);va.style.opacity="0.1";W.appendChild(va);za.addListener("stateChanged",
+function(){va.style.opacity=za.enabled?"":"0.1"});U=function(){fa.style.display=0<m.editor.undoManager.history.length||n.isEditing()?"inline-block":"none";ia.style.display=fa.style.display;fa.style.opacity=ta.enabled?"":"0.1";ia.style.opacity=S.enabled?"":"0.1"};W.appendChild(fa);W.appendChild(ia);ta.addListener("stateChanged",U);S.addListener("stateChanged",U);U();null!=urlParams.layers&&(U=m.actions.get("layers"),U=f("",U.funct,null,mxResources.get("layers"),U,Editor.layersImage),U.style.opacity=
+"0.4",D.appendChild(U));null!=urlParams.tags&&(U=m.actions.get("tags"),U=f("",U.funct,null,mxResources.get("tags"),U,Editor.tagsImage),U.style.opacity="0.4",D.appendChild(U));U=m.actions.get("outline");U=f("",U.funct,null,mxResources.get("outline"),U,Editor.outlineImage);D.appendChild(U);U=f("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",V,Editor.zoomOutImage);D.appendChild(U);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";D.appendChild(P);mxEvent.addListener(P,"click",T);T=f("",ra.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",ra,Editor.zoomInImage);D.appendChild(T);
+"1"==urlParams.embedInline&&(D.appendChild(ba),T=m.actions.get("exit"),D.appendChild(f("",T.funct,null,mxResources.get("exit"),T,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";D.appendChild(ea);m.addListener("fileDescriptorChanged",y);m.addListener("pagesVisibleChanged",y);y();m.tabContainer.style.visibility="hidden";p.style.cssText="position:absolute;right:12px;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;";
+W.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;";D.style.cssText="position:absolute;right:12px;bottom:12px;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(W);x.appendChild(D);E.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(E);window.setTimeout(function(){mxUtils.setPrefixedStyle(E.style,"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(x)}else{var wa=f("",T,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",U,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%",y.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==D?this.tabContainerHeight+"px":"0px")}}x.appendChild(p);x.appendChild(m.diagramContainer);l.appendChild(x);m.updateTabContainer();null==D&&x.appendChild(m.tabContainer);var ra=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";I.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 za=null,Aa=null,Da=null,Ea=null;mxEvent.addGestureListeners(l,function(b){Ea=parseInt(m.diagramContainer.style.height);Aa=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){Da=parseInt(m.diagramContainer.style.width);za=mxEvent.getClientX(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});mxEvent.addGestureListeners(document.body,null,function(b){var c=!1;null!=za&&(m.diagramContainer.style.width=Math.max(20,Da+mxEvent.getClientX(b)-za)+"px",c=!0);null!=Aa&&(m.diagramContainer.style.height=Math.max(20,
-Ea+mxEvent.getClientY(b)-Aa)+"px",c=!0);c&&((window.opener||window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:m.diagramContainer.getBoundingClientRect()}),"*"),la(),m.refresh())},function(b){null==za&&null==Aa||mxEvent.consume(b);Aa=za=null});this.diagramContainer.style.borderRadius="4px";document.body.style.backgroundColor="transparent";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";X.style.visibility="hidden";D.style.visibility=
-"hidden";I.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,g,p,t){this.file=b;this.id=c;this.content=e;this.modifiedDate=k;this.createdDate=g;this.isResolved=p;this.user=t;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,c,e,k,g){c()};DrawioComment.prototype.editComment=function(b,c,e){c()};DrawioComment.prototype.deleteComment=function(b,c){b()};DrawioUser=function(b,c,e,k,g){this.id=b;this.email=c;this.displayName=e;this.pictureUrl=k;this.locale=g};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. Click \'Yes\' to merge changes or \'No\' to overwrite.\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\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\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="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><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="#ffffff"/></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;
+"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 xa=m.setGraphEnabled;m.setGraphEnabled=function(){xa.apply(this,arguments);null!=this.tabContainer&&(P.style.visibility=
+this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==D?this.tabContainerHeight+"px":"0px")}}x.appendChild(p);x.appendChild(m.diagramContainer);l.appendChild(x);m.updateTabContainer();null==D&&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";E.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 Aa=null,Ba=null,Da=null,Ea=null;mxEvent.addGestureListeners(l,function(b){Ea=parseInt(m.diagramContainer.style.height);Ba=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){Da=parseInt(m.diagramContainer.style.width);Aa=mxEvent.getClientX(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});mxEvent.addGestureListeners(document.body,null,function(b){var c=!1;null!=Aa&&(m.diagramContainer.style.width=Math.max(20,Da+mxEvent.getClientX(b)-Aa)+"px",c=!0);null!=Ba&&(m.diagramContainer.style.height=Math.max(20,
+Ea+mxEvent.getClientY(b)-Ba)+"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==Aa&&null==Ba||mxEvent.consume(b);Ba=Aa=null});this.diagramContainer.style.borderRadius="4px";document.body.style.backgroundColor="transparent";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";W.style.visibility="hidden";D.style.visibility=
+"hidden";E.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,g,p,t){this.file=b;this.id=c;this.content=e;this.modifiedDate=k;this.createdDate=g;this.isResolved=p;this.user=t;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,c,e,k,g){c()};DrawioComment.prototype.editComment=function(b,c,e){c()};DrawioComment.prototype.deleteComment=function(b,c){b()};DrawioUser=function(b,c,e,k,g){this.id=b;this.email=c;this.displayName=e;this.pictureUrl=k;this.locale=g};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. Click \'Yes\' to merge changes or \'No\' to overwrite.\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\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.\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="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><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="#ffffff"/></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=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="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="#2a2a2a"/><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="#2a2a2a"/></add></mxStylesheet>').documentElement;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"]?
@@ -4017,10 +4017,10 @@ this.graph.dialect==mxConstants.DIALECT_SVG){var e=this.graph.view.getDrawPane()
(this.editor.defaultGraphOverflow="visible");this.xmlNode=this.editor.extractGraphModel(this.xmlNode,!0);this.xmlNode!=c&&(this.xml=mxUtils.getXml(this.xmlNode),this.xmlDocument=this.xmlNode.ownerDocument);var d=this;this.graph.getImageFromBundles=function(b){return d.getImageUrl(b)};mxClient.IS_SVG&&this.graph.addSvgShadow(this.graph.view.canvas.ownerSVGElement,null,!0);if("mxfile"==this.xmlNode.nodeName){var f=this.xmlNode.getElementsByTagName("diagram");if(0<f.length){if(null!=this.pageId)for(var g=
0;g<f.length;g++)if(this.pageId==f[g].getAttribute("id")){this.currentPage=g;break}var k=this.graph.getGlobalVariable,d=this;this.graph.getGlobalVariable=function(b){var c=f[d.currentPage];return"page"==b?c.getAttribute("name")||"Page-"+(d.currentPage+1):"pagenumber"==b?d.currentPage+1:"pagecount"==b?f.length:k.apply(this,arguments)}}}this.diagrams=[];var p=null;this.selectPage=function(b){this.handlingResize||(this.currentPage=mxUtils.mod(b,this.diagrams.length),this.updateGraphXml(Editor.parseDiagramNode(this.diagrams[this.currentPage])))};
this.selectPageById=function(b){b=this.getIndexById(b);var c=0<=b;c&&this.selectPage(b);return c};var g=mxUtils.bind(this,function(){if(null==this.xmlNode||"mxfile"!=this.xmlNode.nodeName)this.diagrams=[];this.xmlNode!=p&&(this.diagrams=this.xmlNode.getElementsByTagName("diagram"),p=this.xmlNode)}),n=this.graph.setBackgroundImage;this.graph.setBackgroundImage=function(b){if(null!=b&&Graph.isPageLink(b.src)){var c=b.src,e=c.indexOf(",");0<e&&(e=d.getIndexById(c.substring(e+1)),0<=e&&(b=d.getImageForGraphModel(Editor.parseDiagramNode(d.diagrams[e])),
-b.originalSrc=c))}n.apply(this,arguments)};var u=this.graph.getGraphBounds;this.graph.getGraphBounds=function(b){var c=u.apply(this,arguments);b=this.backgroundImage;if(null!=b){var d=this.view.translate,e=this.view.scale,c=mxRectangle.fromRectangle(c);c.add(new mxRectangle((d.x+b.x)*e,(d.y+b.y)*e,b.width*e,b.height*e))}return c};this.addListener("xmlNodeChanged",g);g();urlParams.page=d.currentPage;g=null;this.graph.getModel().beginUpdate();try{urlParams.nav=0!=this.graphConfig.nav?"1":"0",this.editor.setGraphXml(this.xmlNode),
+b.originalSrc=c))}n.apply(this,arguments)};var v=this.graph.getGraphBounds;this.graph.getGraphBounds=function(b){var c=v.apply(this,arguments);b=this.backgroundImage;if(null!=b){var d=this.view.translate,e=this.view.scale,c=mxRectangle.fromRectangle(c);c.add(new mxRectangle((d.x+b.x)*e,(d.y+b.y)*e,b.width*e,b.height*e))}return c};this.addListener("xmlNodeChanged",g);g();urlParams.page=d.currentPage;g=null;this.graph.getModel().beginUpdate();try{urlParams.nav=0!=this.graphConfig.nav?"1":"0",this.editor.setGraphXml(this.xmlNode),
this.graph.view.scale=this.graphConfig.zoom||1,g=this.setLayersVisible(),this.responsive||(this.graph.border=null!=this.graphConfig.border?this.graphConfig.border:8)}finally{this.graph.getModel().endUpdate()}this.responsive||(this.graph.panningHandler.isForcePanningEvent=function(b){return!mxEvent.isPopupTrigger(b.getEvent())&&"auto"==this.graph.container.style.overflow},this.graph.panningHandler.useLeftButtonForPanning=!0,this.graph.panningHandler.ignoreCell=!0,this.graph.panningHandler.usePopupTrigger=
!1,this.graph.panningHandler.pinchEnabled=!1);this.graph.setPanning(!1);null!=this.graphConfig.toolbar?this.addToolbar():null!=this.graphConfig.title&&this.showTitleAsTooltip&&b.setAttribute("title",this.graphConfig.title);this.responsive||this.addSizeHandler();!this.showLayers(this.graph)||this.forceCenter||this.layersEnabled&&!this.autoCrop||this.crop();this.addClickHandler(this.graph);this.graph.setTooltips(0!=this.graphConfig.tooltips);this.graph.initialViewState={translate:this.graph.view.translate.clone(),
-scale:this.graph.view.scale};null!=g&&this.setLayersVisible(g);this.graph.customLinkClicked=function(b){if(Graph.isPageLink(b)){var c=b.indexOf(",");d.selectPageById(b.substring(c+1))||alert(mxResources.get("pageNotFound")||"Page not found")}else this.handleCustomLink(b);return!0};var v=this.graph.foldTreeCell;this.graph.foldTreeCell=mxUtils.bind(this,function(){this.treeCellFolded=!0;return v.apply(this.graph,arguments)});this.fireEvent(new mxEventObject("render"))});e=window.MutationObserver||window.WebKitMutationObserver||
+scale:this.graph.view.scale};null!=g&&this.setLayersVisible(g);this.graph.customLinkClicked=function(b){if(Graph.isPageLink(b)){var c=b.indexOf(",");d.selectPageById(b.substring(c+1))||alert(mxResources.get("pageNotFound")||"Page not found")}else this.handleCustomLink(b);return!0};var u=this.graph.foldTreeCell;this.graph.foldTreeCell=mxUtils.bind(this,function(){this.treeCellFolded=!0;return u.apply(this.graph,arguments)});this.fireEvent(new mxEventObject("render"))});e=window.MutationObserver||window.WebKitMutationObserver||
window.MozMutationObserver;if(this.checkVisibleState&&0==b.offsetWidth&&"undefined"!==typeof e){var g=this.getObservableParent(b),p=new e(mxUtils.bind(this,function(c){0<b.offsetWidth&&(p.disconnect(),k())}));p.observe(g,{attributes:!0})}else k()}};GraphViewer.prototype.getObservableParent=function(b){for(b=b.parentNode;b!=document.body&&null!=b.parentNode&&"none"!==mxUtils.getCurrentStyle(b).display;)b=b.parentNode;return b};
GraphViewer.prototype.getImageUrl=function(b){null!=b&&"http://"!=b.substring(0,7)&&"https://"!=b.substring(0,8)&&"data:image"!=b.substring(0,10)&&("/"==b.charAt(0)&&(b=b.substring(1,b.length)),b=this.imageBaseUrl+b);return b};
GraphViewer.prototype.getImageForGraphModel=function(b){var c=Graph.createOffscreenGraph(this.graph.getStylesheet());c.getGlobalVariable=this.graph.getGlobalVariable;document.body.appendChild(c.container);b=(new mxCodec(b.ownerDocument)).decode(b).root;c.model.setRoot(b);b=c.getSvg();var e=c.getGraphBounds();document.body.removeChild(c.container);return new mxImage(Editor.createSvgDataUri(mxUtils.getXml(b)),e.width,e.height,e.x,e.y)};
@@ -4045,19 +4045,19 @@ function(){g.style.backgroundColor="#eee"}),mxUtils.setOpacity(b,60),g.style.cur
e.style.whiteSpace="nowrap";e.style.textAlign="left";e.style.zIndex=this.toolbarZIndex;e.style.backgroundColor="#eee";e.style.height=this.toolbarHeight+"px";this.toolbar=e;if("inline"==this.graphConfig["toolbar-position"]){mxUtils.setPrefixedStyle(e.style,"transition","opacity 100ms ease-in-out");mxUtils.setOpacity(e,30);var k=null,g=null,p=mxUtils.bind(this,function(b){null!=k&&(window.clearTimeout(k),fadeThead=null);null!=g&&(window.clearTimeout(g),fadeThead2=null);k=window.setTimeout(mxUtils.bind(this,
function(){mxUtils.setOpacity(e,0);k=null;g=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";g=null}),100)}),b||200)}),t=mxUtils.bind(this,function(b){null!=k&&(window.clearTimeout(k),fadeThead=null);null!=g&&(window.clearTimeout(g),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,b||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(t(30),p())}));mxEvent.addListener(e,mxClient.IS_POINTER?
"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(b){t(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(b){t(100);mxEvent.consume(b)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||t(30)}));var d=this.graph,f=d.getTolerance();d.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(b,c){this.startX=c.getGraphX();this.startY=c.getGraphY();
-this.scrollLeft=d.container.scrollLeft;this.scrollTop=d.container.scrollTop},mouseMove:function(b,c){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-d.container.scrollLeft)<f&&Math.abs(this.scrollTop-d.container.scrollTop)<f&&Math.abs(this.startX-c.getGraphX())<f&&Math.abs(this.startY-c.getGraphY())<f&&(0<parseFloat(e.style.opacity||0)?p():t(30))}})}for(var l=this.toolbarItems,m=0,q=null,n=null,u=null,v=null,y=0;y<l.length;y++){var x=l[y];if("pages"==x){v=c.ownerDocument.createElement("div");
-v.style.cssText="display:inline-block;position:relative;top:5px;padding:0 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;;cursor:default;";mxUtils.setOpacity(v,70);var D=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");D.style.borderRightStyle="none";D.style.paddingLeft="0px";D.style.paddingRight="0px";e.appendChild(v);var H=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage+
-1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");H.style.paddingLeft="0px";H.style.paddingRight="0px";x=mxUtils.bind(this,function(){v.innerHTML="";mxUtils.write(v,this.currentPage+1+" / "+this.diagrams.length);v.style.display=1<this.diagrams.length?"inline-block":"none";D.style.display=v.style.display;H.style.display=v.style.display});this.addListener("graphChanged",x);x()}else if("zoom"==x)this.zoomEnabled&&(b(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,
-mxResources.get("zoomOut")||"Zoom Out"),b(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),b(mxUtils.bind(this,function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==x){if(this.layersEnabled){var C=this.graph.getModel(),F=b(mxUtils.bind(this,function(b){if(null!=q)q.parentNode.removeChild(q),
+this.scrollLeft=d.container.scrollLeft;this.scrollTop=d.container.scrollTop},mouseMove:function(b,c){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-d.container.scrollLeft)<f&&Math.abs(this.scrollTop-d.container.scrollTop)<f&&Math.abs(this.startX-c.getGraphX())<f&&Math.abs(this.startY-c.getGraphY())<f&&(0<parseFloat(e.style.opacity||0)?p():t(30))}})}for(var l=this.toolbarItems,m=0,q=null,n=null,v=null,u=null,y=0;y<l.length;y++){var x=l[y];if("pages"==x){u=c.ownerDocument.createElement("div");
+u.style.cssText="display:inline-block;position:relative;top:5px;padding:0 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;;cursor:default;";mxUtils.setOpacity(u,70);var D=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");D.style.borderRightStyle="none";D.style.paddingLeft="0px";D.style.paddingRight="0px";e.appendChild(u);var I=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage+
+1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");I.style.paddingLeft="0px";I.style.paddingRight="0px";x=mxUtils.bind(this,function(){u.innerHTML="";mxUtils.write(u,this.currentPage+1+" / "+this.diagrams.length);u.style.display=1<this.diagrams.length?"inline-block":"none";D.style.display=u.style.display;I.style.display=u.style.display});this.addListener("graphChanged",x);x()}else if("zoom"==x)this.zoomEnabled&&(b(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,
+mxResources.get("zoomOut")||"Zoom Out"),b(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),b(mxUtils.bind(this,function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==x){if(this.layersEnabled){var B=this.graph.getModel(),G=b(mxUtils.bind(this,function(b){if(null!=q)q.parentNode.removeChild(q),
q=null;else{q=this.graph.createLayersDialog(mxUtils.bind(this,function(){if(this.autoCrop)this.crop();else if(this.autoOrigin){var b=this.graph.getGraphBounds(),c=this.graph.view;0>b.x||0>b.y?(this.crop(),this.graph.originalViewState=this.graph.initialViewState,this.graph.initialViewState={translate:c.translate.clone(),scale:c.scale}):null!=this.graph.originalViewState&&0<b.x/c.scale+this.graph.originalViewState.translate.x-c.translate.x&&0<b.y/c.scale+this.graph.originalViewState.translate.y-c.translate.y&&
-(c.setTranslate(this.graph.originalViewState.translate.x,this.graph.originalViewState.translate.y),this.graph.originalViewState=null,this.graph.initialViewState={translate:c.translate.clone(),scale:c.scale})}}));mxEvent.addListener(q,"mouseleave",function(){q.parentNode.removeChild(q);q=null});b=F.getBoundingClientRect();q.style.width="140px";q.style.padding="2px 0px 2px 0px";q.style.border="1px solid #d0d0d0";q.style.backgroundColor="#eee";q.style.fontFamily=Editor.defaultHtmlFont;q.style.fontSize=
-"11px";q.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(q,80);var c=mxUtils.getDocumentScrollOrigin(document);q.style.left=c.x+b.left-1+"px";q.style.top=c.y+b.bottom-2+"px";document.body.appendChild(q)}}),Editor.layersImage,mxResources.get("layers")||"Layers");C.addListener(mxEvent.CHANGE,function(){F.style.display=1<C.getChildCount(C.root)?"inline-block":"none"});F.style.display=1<C.getChildCount(C.root)?"inline-block":"none"}}else if("tags"==x){if(this.tagsEnabled){var M=b(mxUtils.bind(this,
+(c.setTranslate(this.graph.originalViewState.translate.x,this.graph.originalViewState.translate.y),this.graph.originalViewState=null,this.graph.initialViewState={translate:c.translate.clone(),scale:c.scale})}}));mxEvent.addListener(q,"mouseleave",function(){q.parentNode.removeChild(q);q=null});b=G.getBoundingClientRect();q.style.width="140px";q.style.padding="2px 0px 2px 0px";q.style.border="1px solid #d0d0d0";q.style.backgroundColor="#eee";q.style.fontFamily=Editor.defaultHtmlFont;q.style.fontSize=
+"11px";q.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(q,80);var c=mxUtils.getDocumentScrollOrigin(document);q.style.left=c.x+b.left-1+"px";q.style.top=c.y+b.bottom-2+"px";document.body.appendChild(q)}}),Editor.layersImage,mxResources.get("layers")||"Layers");B.addListener(mxEvent.CHANGE,function(){G.style.display=1<B.getChildCount(B.root)?"inline-block":"none"});G.style.display=1<B.getChildCount(B.root)?"inline-block":"none"}}else if("tags"==x){if(this.tagsEnabled){var M=b(mxUtils.bind(this,
function(b){null==n&&(n=this.graph.createTagsDialog(mxUtils.bind(this,function(){return!0})),n.div.getElementsByTagName("div")[0].style.position="",n.div.style.maxHeight="160px",n.div.style.maxWidth="120px",n.div.style.padding="2px",n.div.style.overflow="auto",n.div.style.height="auto",n.div.style.position="fixed",n.div.style.fontFamily=Editor.defaultHtmlFont,n.div.style.fontSize="11px",n.div.style.backgroundColor="#eee",n.div.style.color="#000",n.div.style.border="1px solid #d0d0d0",n.div.style.zIndex=
-this.toolbarZIndex+1,mxUtils.setOpacity(n.div,80));if(null!=u)u.parentNode.removeChild(u),u=null;else{u=n.div;mxEvent.addListener(u,"mouseleave",function(){u.parentNode.removeChild(u);u=null});b=M.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);n.refresh()}}),Editor.tagsImage,mxResources.get("tags")||"Tags");C.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){M.style.display=0<
+this.toolbarZIndex+1,mxUtils.setOpacity(n.div,80));if(null!=v)v.parentNode.removeChild(v),v=null;else{v=n.div;mxEvent.addListener(v,"mouseleave",function(){v.parentNode.removeChild(v);v=null});b=M.getBoundingClientRect();var c=mxUtils.getDocumentScrollOrigin(document);v.style.left=c.x+b.left-1+"px";v.style.top=c.y+b.bottom-2+"px";document.body.appendChild(v);n.refresh()}}),Editor.tagsImage,mxResources.get("tags")||"Tags");B.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){M.style.display=0<
this.graph.getAllTags().length?"inline-block":"none"}));M.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 E=c.style.border,K=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 F=c.style.border,K=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"==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!=q&&(q.parentNode.removeChild(q),q=null);c.style.border=E});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"==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!=q&&(q.parentNode.removeChild(q),q=null);c.style.border=F});mxEvent.addListener(document,"mousemove",function(b){for(b=mxEvent.getSource(b);null!=b;){if(b==
c||b==e||b==q)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",K):K();this.responsive&&"undefined"!==typeof ResizeObserver&&(new ResizeObserver(function(){null!=e.parentNode&&K()})).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 g=mxEvent.getSource(e);g!=b.container&&null!=g&&null==k;)"a"==g.nodeName.toLowerCase()&&(k=g.getAttribute("href")),g=g.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)&&
@@ -4080,7 +4080,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 g(){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 p(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 g,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"==p(c,"position")&&(c.style.position="relative");var e=c.resizeSensor.childNodes[0],f=e.childNodes[0],k=c.resizeSensor.childNodes[1],l=function(){f.style.width="100000px";f.style.height="100000px";e.scrollLeft=1E5;e.scrollTop=1E5;k.scrollLeft=1E5;k.scrollTop=1E5};l();var m=!1,n=function(){c.resizedAttached&&(m&&(c.resizedAttached.call(),m=!1),b(n))};b(n);var q,t,M,E,K=function(){if((M=c.offsetWidth)!=q||(E=c.offsetHeight)!=t)m=!0,q=M,t=E;l()},B=function(b,c,d){b.attachEvent?
-b.attachEvent("on"+c,d):b.addEventListener(c,d)};B(e,"scroll",K);B(k,"scroll",K)}var d=function(){GraphViewer.resizeSensorEnabled&&k()},f=Object.prototype.toString.call(e),l="[object Array]"===f||"[object NodeList]"===f||"[object HTMLCollection]"===f||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(l)for(var f=0,m=e.length;f<m;f++)t(e[f],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.appendChild(c.resizeSensor);"static"==p(c,"position")&&(c.style.position="relative");var e=c.resizeSensor.childNodes[0],f=e.childNodes[0],k=c.resizeSensor.childNodes[1],l=function(){f.style.width="100000px";f.style.height="100000px";e.scrollLeft=1E5;e.scrollTop=1E5;k.scrollLeft=1E5;k.scrollTop=1E5};l();var m=!1,n=function(){c.resizedAttached&&(m&&(c.resizedAttached.call(),m=!1),b(n))};b(n);var q,t,M,F,K=function(){if((M=c.offsetWidth)!=q||(F=c.offsetHeight)!=t)m=!0,q=M,t=F;l()},C=function(b,c,d){b.attachEvent?
+b.attachEvent("on"+c,d):b.addEventListener(c,d)};C(e,"scroll",K);C(k,"scroll",K)}var d=function(){GraphViewer.resizeSensorEnabled&&k()},f=Object.prototype.toString.call(e),l="[object Array]"===f||"[object NodeList]"===f||"[object HTMLCollection]"===f||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(l)for(var f=0,m=e.length;f<m;f++)t(e[f],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 5110bddc..9fcb8aff 100644
--- a/src/main/webapp/mxgraph/mxClient.js
+++ b/src/main/webapp/mxgraph/mxClient.js
@@ -1,4 +1,4 @@
-var mxClient={VERSION:"15.6.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/"),
+var mxClient={VERSION:"15.6.4",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")||0<=navigator.userAgent.indexOf("Opera/"),
@@ -1402,16 +1402,16 @@ mxGraphHandler.prototype.destroyShapes=function(){null!=this.shape&&(this.shape.
mxGraphHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);this.graph.removeListener(this.panHandler);null!=this.escapeHandler&&(this.graph.removeListener(this.escapeHandler),this.escapeHandler=null);null!=this.refreshHandler&&(this.graph.getModel().removeListener(this.refreshHandler),this.graph.removeListener(this.refreshHandler),this.refreshHandler=null);mxEvent.removeListener(document,"keydown",this.keyHandler);mxEvent.removeListener(document,"keyup",this.keyHandler);this.destroyShapes();
this.removeHint()};
function mxPanningHandler(a){null!=a&&(this.graph=a,this.graph.addMouseListener(this),this.forcePanningHandler=mxUtils.bind(this,function(a,c){var b=c.getProperty("eventName"),e=c.getProperty("event");b==mxEvent.MOUSE_DOWN&&this.isForcePanningEvent(e)&&(this.start(e),this.active=!0,this.fireEvent(new mxEventObject(mxEvent.PAN_START,"event",e)),e.consume())}),this.graph.addListener(mxEvent.FIRE_MOUSE_EVENT,this.forcePanningHandler),this.gestureHandler=mxUtils.bind(this,function(a,c){if(this.isPinchEnabled()){var b=
-c.getProperty("event");mxEvent.isConsumed(b)||"gesturestart"!=b.type?"gestureend"==b.type&&null!=this.initialScale&&(this.initialScale=null):(this.initialScale=this.graph.view.scale,this.active||null==this.mouseDownEvent||(this.start(this.mouseDownEvent),this.mouseDownEvent=null));null!=this.initialScale&&this.zoomGraph(b)}}),this.graph.addListener(mxEvent.GESTURE,this.gestureHandler),this.mouseUpListener=mxUtils.bind(this,function(){this.active&&this.reset()}),mxEvent.addListener(document,"mouseup",
-this.mouseUpListener),mxEvent.addListener(document,"mouseleave",this.mouseUpListener))}mxPanningHandler.prototype=new mxEventSource;mxPanningHandler.prototype.constructor=mxPanningHandler;mxPanningHandler.prototype.graph=null;mxPanningHandler.prototype.useLeftButtonForPanning=!1;mxPanningHandler.prototype.usePopupTrigger=!0;mxPanningHandler.prototype.ignoreCell=!1;mxPanningHandler.prototype.previewEnabled=!0;mxPanningHandler.prototype.useGrid=!1;mxPanningHandler.prototype.panningEnabled=!0;
-mxPanningHandler.prototype.pinchEnabled=!0;mxPanningHandler.prototype.maxScale=8;mxPanningHandler.prototype.minScale=.01;mxPanningHandler.prototype.dx=null;mxPanningHandler.prototype.dy=null;mxPanningHandler.prototype.startX=0;mxPanningHandler.prototype.startY=0;mxPanningHandler.prototype.isActive=function(){return this.active||null!=this.initialScale};mxPanningHandler.prototype.isPanningEnabled=function(){return this.panningEnabled};
+c.getProperty("event");mxEvent.isConsumed(b)||"gesturestart"!=b.type?"gestureend"==b.type&&null!=this.initialScale&&(this.initialScale=null):(this.initialScale=this.graph.view.scale,this.active||null==this.mouseDownEvent||(this.start(this.mouseDownEvent),this.mouseDownEvent=null));null!=this.initialScale&&this.zoomGraph(b)}}),this.graph.addListener(mxEvent.GESTURE,this.gestureHandler),this.mouseUpListener=mxUtils.bind(this,function(){this.active&&this.reset()}),mxEvent.addGestureListeners(document,
+null,null,this.mouseUpListener),mxEvent.addListener(document,"mouseleave",this.mouseUpListener))}mxPanningHandler.prototype=new mxEventSource;mxPanningHandler.prototype.constructor=mxPanningHandler;mxPanningHandler.prototype.graph=null;mxPanningHandler.prototype.useLeftButtonForPanning=!1;mxPanningHandler.prototype.usePopupTrigger=!0;mxPanningHandler.prototype.ignoreCell=!1;mxPanningHandler.prototype.previewEnabled=!0;mxPanningHandler.prototype.useGrid=!1;
+mxPanningHandler.prototype.panningEnabled=!0;mxPanningHandler.prototype.pinchEnabled=!0;mxPanningHandler.prototype.maxScale=8;mxPanningHandler.prototype.minScale=.01;mxPanningHandler.prototype.dx=null;mxPanningHandler.prototype.dy=null;mxPanningHandler.prototype.startX=0;mxPanningHandler.prototype.startY=0;mxPanningHandler.prototype.isActive=function(){return this.active||null!=this.initialScale};mxPanningHandler.prototype.isPanningEnabled=function(){return this.panningEnabled};
mxPanningHandler.prototype.setPanningEnabled=function(a){this.panningEnabled=a};mxPanningHandler.prototype.isPinchEnabled=function(){return this.pinchEnabled};mxPanningHandler.prototype.setPinchEnabled=function(a){this.pinchEnabled=a};mxPanningHandler.prototype.isPanningTrigger=function(a){var b=a.getEvent();return this.useLeftButtonForPanning&&null==a.getState()&&mxEvent.isLeftMouseButton(b)||mxEvent.isControlDown(b)&&mxEvent.isShiftDown(b)||this.usePopupTrigger&&mxEvent.isPopupTrigger(b)};
mxPanningHandler.prototype.isForcePanningEvent=function(a){return this.ignoreCell||mxEvent.isMultiTouchEvent(a.getEvent())};mxPanningHandler.prototype.mouseDown=function(a,b){this.mouseDownEvent=b;!b.isConsumed()&&this.isPanningEnabled()&&!this.active&&this.isPanningTrigger(b)&&(this.start(b),this.consumePanningTrigger(b))};
mxPanningHandler.prototype.start=function(a){this.dx0=-this.graph.container.scrollLeft;this.dy0=-this.graph.container.scrollTop;this.startX=a.getX();this.startY=a.getY();this.dy=this.dx=null;this.panningTrigger=!0};mxPanningHandler.prototype.consumePanningTrigger=function(a){a.consume()};
mxPanningHandler.prototype.mouseMove=function(a,b){this.dx=b.getX()-this.startX;this.dy=b.getY()-this.startY;if(this.active)this.previewEnabled&&(this.useGrid&&(this.dx=this.graph.snap(this.dx),this.dy=this.graph.snap(this.dy)),this.graph.panGraph(this.dx+this.dx0,this.dy+this.dy0)),this.fireEvent(new mxEventObject(mxEvent.PAN,"event",b));else if(this.panningTrigger){var c=this.active;this.active=Math.abs(this.dx)>this.graph.tolerance||Math.abs(this.dy)>this.graph.tolerance;!c&&this.active&&this.fireEvent(new mxEventObject(mxEvent.PAN_START,
"event",b))}(this.active||this.panningTrigger)&&b.consume()};mxPanningHandler.prototype.mouseUp=function(a,b){if(this.active){if(null!=this.dx&&null!=this.dy){if(!this.graph.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.graph.container)){var c=this.graph.getView().scale,d=this.graph.getView().translate;this.graph.panGraph(0,0);this.panGraph(d.x+this.dx/c,d.y+this.dy/c)}b.consume()}this.fireEvent(new mxEventObject(mxEvent.PAN_END,"event",b))}this.reset()};
mxPanningHandler.prototype.zoomGraph=function(a){var b=Math.round(this.initialScale*a.scale*100)/100;null!=this.minScale&&(b=Math.max(this.minScale,b));null!=this.maxScale&&(b=Math.min(this.maxScale,b));this.graph.view.scale!=b&&(this.graph.zoomTo(b),mxEvent.consume(a))};mxPanningHandler.prototype.reset=function(){this.panningTrigger=this.graph.isMouseDown=!1;this.mouseDownEvent=null;this.active=!1;this.dy=this.dx=null};
-mxPanningHandler.prototype.panGraph=function(a,b){this.graph.getView().setTranslate(a,b)};mxPanningHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);this.graph.removeListener(this.forcePanningHandler);this.graph.removeListener(this.gestureHandler);mxEvent.removeListener(document,"mouseup",this.mouseUpListener);mxEvent.removeListener(document,"mouseleave",this.mouseUpListener)};
+mxPanningHandler.prototype.panGraph=function(a,b){this.graph.getView().setTranslate(a,b)};mxPanningHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);this.graph.removeListener(this.forcePanningHandler);this.graph.removeListener(this.gestureHandler);mxEvent.removeGestureListeners(document,null,null,this.mouseUpListener);mxEvent.removeListener(document,"mouseleave",this.mouseUpListener)};
function mxPopupMenuHandler(a,b){null!=a&&(this.graph=a,this.factoryMethod=b,this.graph.addMouseListener(this),this.gestureHandler=mxUtils.bind(this,function(a,b){this.inTolerance=!1}),this.graph.addListener(mxEvent.GESTURE,this.gestureHandler),this.init())}mxPopupMenuHandler.prototype=new mxPopupMenu;mxPopupMenuHandler.prototype.constructor=mxPopupMenuHandler;mxPopupMenuHandler.prototype.graph=null;mxPopupMenuHandler.prototype.selectOnPopup=!0;
mxPopupMenuHandler.prototype.clearSelectionOnBackground=!0;mxPopupMenuHandler.prototype.triggerX=null;mxPopupMenuHandler.prototype.triggerY=null;mxPopupMenuHandler.prototype.screenX=null;mxPopupMenuHandler.prototype.screenY=null;mxPopupMenuHandler.prototype.init=function(){mxPopupMenu.prototype.init.apply(this);mxEvent.addGestureListeners(this.div,mxUtils.bind(this,function(a){this.graph.tooltipHandler.hide()}))};mxPopupMenuHandler.prototype.isSelectOnPopup=function(a){return this.selectOnPopup};
mxPopupMenuHandler.prototype.mouseDown=function(a,b){this.isEnabled()&&!mxEvent.isMultiTouchEvent(b.getEvent())&&(this.hideMenu(),this.triggerX=b.getGraphX(),this.triggerY=b.getGraphY(),this.screenX=mxEvent.getMainEvent(b.getEvent()).screenX,this.screenY=mxEvent.getMainEvent(b.getEvent()).screenY,this.popupTrigger=this.isPopupTrigger(b),this.inTolerance=!0)};
diff --git a/src/main/webapp/resources/dia.txt b/src/main/webapp/resources/dia.txt
index 579151ae..02f713cd 100644
--- a/src/main/webapp/resources/dia.txt
+++ b/src/main/webapp/resources/dia.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_am.txt b/src/main/webapp/resources/dia_am.txt
index d6c91ff7..ae844884 100644
--- a/src/main/webapp/resources/dia_am.txt
+++ b/src/main/webapp/resources/dia_am.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_ar.txt b/src/main/webapp/resources/dia_ar.txt
index c8d9922c..a25ff229 100644
--- a/src/main/webapp/resources/dia_ar.txt
+++ b/src/main/webapp/resources/dia_ar.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_bg.txt b/src/main/webapp/resources/dia_bg.txt
index cbb7983c..f2fc6f94 100644
--- a/src/main/webapp/resources/dia_bg.txt
+++ b/src/main/webapp/resources/dia_bg.txt
@@ -1164,3 +1164,4 @@ branch=Клон
meters=Метри
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_bn.txt b/src/main/webapp/resources/dia_bn.txt
index 937e2aa3..4b2c7429 100644
--- a/src/main/webapp/resources/dia_bn.txt
+++ b/src/main/webapp/resources/dia_bn.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_bs.txt b/src/main/webapp/resources/dia_bs.txt
index 9611dee8..56da939b 100644
--- a/src/main/webapp/resources/dia_bs.txt
+++ b/src/main/webapp/resources/dia_bs.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_ca.txt b/src/main/webapp/resources/dia_ca.txt
index dee1df61..c6ddb5d0 100644
--- a/src/main/webapp/resources/dia_ca.txt
+++ b/src/main/webapp/resources/dia_ca.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_cs.txt b/src/main/webapp/resources/dia_cs.txt
index c625ea1b..314ed376 100644
--- a/src/main/webapp/resources/dia_cs.txt
+++ b/src/main/webapp/resources/dia_cs.txt
@@ -1164,3 +1164,4 @@ branch=Větev
meters=MetrĹŻ
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_da.txt b/src/main/webapp/resources/dia_da.txt
index 7033fd10..518a9ff8 100644
--- a/src/main/webapp/resources/dia_da.txt
+++ b/src/main/webapp/resources/dia_da.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_de.txt b/src/main/webapp/resources/dia_de.txt
index d608c733..27d1601f 100644
--- a/src/main/webapp/resources/dia_de.txt
+++ b/src/main/webapp/resources/dia_de.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meter
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_el.txt b/src/main/webapp/resources/dia_el.txt
index 50757955..8a3383c6 100644
--- a/src/main/webapp/resources/dia_el.txt
+++ b/src/main/webapp/resources/dia_el.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_eo.txt b/src/main/webapp/resources/dia_eo.txt
index 9ed40113..b4a616bc 100644
--- a/src/main/webapp/resources/dia_eo.txt
+++ b/src/main/webapp/resources/dia_eo.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_es.txt b/src/main/webapp/resources/dia_es.txt
index 844fa5ee..685a5dc1 100644
--- a/src/main/webapp/resources/dia_es.txt
+++ b/src/main/webapp/resources/dia_es.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_et.txt b/src/main/webapp/resources/dia_et.txt
index 13d0649c..86d073a4 100644
--- a/src/main/webapp/resources/dia_et.txt
+++ b/src/main/webapp/resources/dia_et.txt
@@ -1164,3 +1164,4 @@ branch=Haru
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_eu.txt b/src/main/webapp/resources/dia_eu.txt
index b7145846..9ef59d68 100644
--- a/src/main/webapp/resources/dia_eu.txt
+++ b/src/main/webapp/resources/dia_eu.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_fa.txt b/src/main/webapp/resources/dia_fa.txt
index 13fff987..ec48bc62 100644
--- a/src/main/webapp/resources/dia_fa.txt
+++ b/src/main/webapp/resources/dia_fa.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_fi.txt b/src/main/webapp/resources/dia_fi.txt
index f0209bf0..8ec997c6 100644
--- a/src/main/webapp/resources/dia_fi.txt
+++ b/src/main/webapp/resources/dia_fi.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_fil.txt b/src/main/webapp/resources/dia_fil.txt
index 2bb363ed..b1197135 100644
--- a/src/main/webapp/resources/dia_fil.txt
+++ b/src/main/webapp/resources/dia_fil.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_fr.txt b/src/main/webapp/resources/dia_fr.txt
index b36fb73e..7c88c2e0 100644
--- a/src/main/webapp/resources/dia_fr.txt
+++ b/src/main/webapp/resources/dia_fr.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_gl.txt b/src/main/webapp/resources/dia_gl.txt
index a99eb17b..433aa3d6 100644
--- a/src/main/webapp/resources/dia_gl.txt
+++ b/src/main/webapp/resources/dia_gl.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_gu.txt b/src/main/webapp/resources/dia_gu.txt
index 9599cff1..662d6bf8 100644
--- a/src/main/webapp/resources/dia_gu.txt
+++ b/src/main/webapp/resources/dia_gu.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_he.txt b/src/main/webapp/resources/dia_he.txt
index aefd38eb..c57677f3 100644
--- a/src/main/webapp/resources/dia_he.txt
+++ b/src/main/webapp/resources/dia_he.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_hi.txt b/src/main/webapp/resources/dia_hi.txt
index 338b71b6..b3a16ecd 100644
--- a/src/main/webapp/resources/dia_hi.txt
+++ b/src/main/webapp/resources/dia_hi.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_hr.txt b/src/main/webapp/resources/dia_hr.txt
index 7b46f337..0955b489 100644
--- a/src/main/webapp/resources/dia_hr.txt
+++ b/src/main/webapp/resources/dia_hr.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_hu.txt b/src/main/webapp/resources/dia_hu.txt
index a9da64c0..31834525 100644
--- a/src/main/webapp/resources/dia_hu.txt
+++ b/src/main/webapp/resources/dia_hu.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_i18n.txt b/src/main/webapp/resources/dia_i18n.txt
index 4c9ed033..36eacb3d 100644
--- a/src/main/webapp/resources/dia_i18n.txt
+++ b/src/main/webapp/resources/dia_i18n.txt
@@ -1164,3 +1164,4 @@ branch=branch
meters=meters
teamsNoEditingMsg=teamsNoEditingMsg
contactOwner=contactOwner
+viewerOnlyMsg=viewerOnlyMsg
diff --git a/src/main/webapp/resources/dia_id.txt b/src/main/webapp/resources/dia_id.txt
index 67a6d592..b5c60cf1 100644
--- a/src/main/webapp/resources/dia_id.txt
+++ b/src/main/webapp/resources/dia_id.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_it.txt b/src/main/webapp/resources/dia_it.txt
index 94a918b0..dd120cbf 100644
--- a/src/main/webapp/resources/dia_it.txt
+++ b/src/main/webapp/resources/dia_it.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_ja.txt b/src/main/webapp/resources/dia_ja.txt
index 1d92f74e..be1784a8 100644
--- a/src/main/webapp/resources/dia_ja.txt
+++ b/src/main/webapp/resources/dia_ja.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_kn.txt b/src/main/webapp/resources/dia_kn.txt
index 3e4cdf31..e1c4ad4a 100644
--- a/src/main/webapp/resources/dia_kn.txt
+++ b/src/main/webapp/resources/dia_kn.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_ko.txt b/src/main/webapp/resources/dia_ko.txt
index f3ce8038..7ce76bc1 100644
--- a/src/main/webapp/resources/dia_ko.txt
+++ b/src/main/webapp/resources/dia_ko.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_lt.txt b/src/main/webapp/resources/dia_lt.txt
index b4a74b06..1e0c6682 100644
--- a/src/main/webapp/resources/dia_lt.txt
+++ b/src/main/webapp/resources/dia_lt.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_lv.txt b/src/main/webapp/resources/dia_lv.txt
index e33bc013..3d33072d 100644
--- a/src/main/webapp/resources/dia_lv.txt
+++ b/src/main/webapp/resources/dia_lv.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_ml.txt b/src/main/webapp/resources/dia_ml.txt
index 82c63a53..300b90b7 100644
--- a/src/main/webapp/resources/dia_ml.txt
+++ b/src/main/webapp/resources/dia_ml.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_mr.txt b/src/main/webapp/resources/dia_mr.txt
index 45e1adff..58dd9d67 100644
--- a/src/main/webapp/resources/dia_mr.txt
+++ b/src/main/webapp/resources/dia_mr.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_ms.txt b/src/main/webapp/resources/dia_ms.txt
index ee5ecac2..e5d38878 100644
--- a/src/main/webapp/resources/dia_ms.txt
+++ b/src/main/webapp/resources/dia_ms.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_my.txt b/src/main/webapp/resources/dia_my.txt
index 579151ae..02f713cd 100644
--- a/src/main/webapp/resources/dia_my.txt
+++ b/src/main/webapp/resources/dia_my.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_nl.txt b/src/main/webapp/resources/dia_nl.txt
index 0f3fe42a..60e2797c 100644
--- a/src/main/webapp/resources/dia_nl.txt
+++ b/src/main/webapp/resources/dia_nl.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_no.txt b/src/main/webapp/resources/dia_no.txt
index 55bd0f81..deb3e9d9 100644
--- a/src/main/webapp/resources/dia_no.txt
+++ b/src/main/webapp/resources/dia_no.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_pl.txt b/src/main/webapp/resources/dia_pl.txt
index d401b9df..3eda63c0 100644
--- a/src/main/webapp/resources/dia_pl.txt
+++ b/src/main/webapp/resources/dia_pl.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_pt-br.txt b/src/main/webapp/resources/dia_pt-br.txt
index 5367e640..0b2012aa 100644
--- a/src/main/webapp/resources/dia_pt-br.txt
+++ b/src/main/webapp/resources/dia_pt-br.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Metros
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_pt.txt b/src/main/webapp/resources/dia_pt.txt
index 450eea06..00d7cf99 100644
--- a/src/main/webapp/resources/dia_pt.txt
+++ b/src/main/webapp/resources/dia_pt.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_ro.txt b/src/main/webapp/resources/dia_ro.txt
index d8217f21..07d73474 100644
--- a/src/main/webapp/resources/dia_ro.txt
+++ b/src/main/webapp/resources/dia_ro.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_ru.txt b/src/main/webapp/resources/dia_ru.txt
index 4886a6b4..f49a1a0f 100644
--- a/src/main/webapp/resources/dia_ru.txt
+++ b/src/main/webapp/resources/dia_ru.txt
@@ -1164,3 +1164,4 @@ branch=Ветвь
meters=Метры
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_si.txt b/src/main/webapp/resources/dia_si.txt
index 579151ae..02f713cd 100644
--- a/src/main/webapp/resources/dia_si.txt
+++ b/src/main/webapp/resources/dia_si.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_sk.txt b/src/main/webapp/resources/dia_sk.txt
index 4ec39154..c8b25376 100644
--- a/src/main/webapp/resources/dia_sk.txt
+++ b/src/main/webapp/resources/dia_sk.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_sl.txt b/src/main/webapp/resources/dia_sl.txt
index 652c0ca2..37ec66c5 100644
--- a/src/main/webapp/resources/dia_sl.txt
+++ b/src/main/webapp/resources/dia_sl.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_sr.txt b/src/main/webapp/resources/dia_sr.txt
index b56a9b46..e7eed433 100644
--- a/src/main/webapp/resources/dia_sr.txt
+++ b/src/main/webapp/resources/dia_sr.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_sv.txt b/src/main/webapp/resources/dia_sv.txt
index fd4ee6fd..aa5ae58d 100644
--- a/src/main/webapp/resources/dia_sv.txt
+++ b/src/main/webapp/resources/dia_sv.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_sw.txt b/src/main/webapp/resources/dia_sw.txt
index e9f75798..1e625a5b 100644
--- a/src/main/webapp/resources/dia_sw.txt
+++ b/src/main/webapp/resources/dia_sw.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_ta.txt b/src/main/webapp/resources/dia_ta.txt
index 12978568..4ee2288f 100644
--- a/src/main/webapp/resources/dia_ta.txt
+++ b/src/main/webapp/resources/dia_ta.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_te.txt b/src/main/webapp/resources/dia_te.txt
index 87034fb6..1480c6e2 100644
--- a/src/main/webapp/resources/dia_te.txt
+++ b/src/main/webapp/resources/dia_te.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_th.txt b/src/main/webapp/resources/dia_th.txt
index 1f104454..b4c3fa4f 100644
--- a/src/main/webapp/resources/dia_th.txt
+++ b/src/main/webapp/resources/dia_th.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_tr.txt b/src/main/webapp/resources/dia_tr.txt
index f415a0b4..585dc71f 100644
--- a/src/main/webapp/resources/dia_tr.txt
+++ b/src/main/webapp/resources/dia_tr.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_uk.txt b/src/main/webapp/resources/dia_uk.txt
index 2996e3eb..9c3f7449 100644
--- a/src/main/webapp/resources/dia_uk.txt
+++ b/src/main/webapp/resources/dia_uk.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_vi.txt b/src/main/webapp/resources/dia_vi.txt
index 80c4339d..1604fcda 100644
--- a/src/main/webapp/resources/dia_vi.txt
+++ b/src/main/webapp/resources/dia_vi.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_zh-tw.txt b/src/main/webapp/resources/dia_zh-tw.txt
index 3892e16c..e984b1d8 100644
--- a/src/main/webapp/resources/dia_zh-tw.txt
+++ b/src/main/webapp/resources/dia_zh-tw.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/resources/dia_zh.txt b/src/main/webapp/resources/dia_zh.txt
index 74a01a61..34c34dad 100644
--- a/src/main/webapp/resources/dia_zh.txt
+++ b/src/main/webapp/resources/dia_zh.txt
@@ -1164,3 +1164,4 @@ branch=Branch
meters=Meters
teamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)
contactOwner=Contact Owner
+viewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.
diff --git a/src/main/webapp/service-worker.js b/src/main/webapp/service-worker.js
index fc4218bf..2dbdd046 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:"02bf4a3896697b71ea64eb3e306bac33"},{url:"js/extensions.min.js",revision:"8f6625690fa713232aedd263ba09d115"},{url:"js/stencils.min.js",revision:"61006768fc3d04dc75dcf02bfb9081d9"},{url:"js/shapes-14-6-5.min.js",revision:"966d6d7fd2b6a3ddf7098a12982e31f7"},{url:"js/math-print.js",revision:"9d98c920695f6c3395da4b68f723e60a"},{url:"index.html",revision:"28ab148081b0ccd22ad2db634d538b6b"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/grapheditor.css",revision:"00339c600732790e04874fb33825899c"},{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:"a878348fbe26c84f3ff243d805c0eec3"},{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:"ff6d6e41b861a30d0b39ac80bd34afa7"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"7a37d0c45339d8a2b6239c10e5faa7c6"},{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:"2c2497f5cadbfc653d9081a29f262c5b"},{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:"abda65f2c227cf1adcf338e5786247dc"},{url:"resources/dia_am.txt",revision:"985583765133e113edbd5084372ff15e"},{url:"resources/dia_ar.txt",revision:"13704a7e09c499d75eea07c303b4ab70"},{url:"resources/dia_bg.txt",revision:"73288c325bb27c8e91714b7b57f258a0"},{url:"resources/dia_bn.txt",revision:"5d95c152adb80cb0aa00ba333a46f1d9"},{url:"resources/dia_bs.txt",revision:"9f1a5a393b5d8d5cff1e89b0cc3506f4"},{url:"resources/dia_ca.txt",revision:"ed2bfa1a43b6a4fc78706eeba092d929"},{url:"resources/dia_cs.txt",revision:"2435ce3c60106d20b850ee8a7c79ea62"},{url:"resources/dia_da.txt",revision:"d5079653660eaa335e577b0a96647a00"},{url:"resources/dia_de.txt",revision:"1f9e4b79183323851fcb7b47e97d8e88"},{url:"resources/dia_el.txt",revision:"9044d9496aa0f948da7240c92890faad"},{url:"resources/dia_eo.txt",revision:"8d77f1c42ca0fec532352940b3eacb0f"},{url:"resources/dia_es.txt",revision:"e66dc83bab3b5d0d88c40cbe0fbee87f"},{url:"resources/dia_et.txt",revision:"7d2ae4c63984e15db7561579db88b695"},{url:"resources/dia_eu.txt",revision:"0d752e85724ae2bdbf1f41b0d7ee51f0"},{url:"resources/dia_fa.txt",revision:"8084f74eb63efb199ba8b546e3ac98b1"},{url:"resources/dia_fi.txt",revision:"4e3c02221e758553aa8cdbd9a16517d5"},{url:"resources/dia_fil.txt",revision:"e83a92bbafc8c96fa55054c115556d9d"},{url:"resources/dia_fr.txt",revision:"8ecf1221c64462b7e891efa6078ddb00"},{url:"resources/dia_gl.txt",revision:"e10e6ba5bf2a114db2aa4c887e93884c"},{url:"resources/dia_gu.txt",revision:"04b9a7a272b0059b3b80b27ca64acbe4"},{url:"resources/dia_he.txt",revision:"e0cb98b5033b10516adee85d52b633cb"},{url:"resources/dia_hi.txt",revision:"dc4f2db734b5c613be9998c27837061f"},{url:"resources/dia_hr.txt",revision:"4aec81d5824d12b359417513fa4da8d2"},{url:"resources/dia_hu.txt",revision:"f93ea6f2eca943677f4a495a73e0edda"},{url:"resources/dia_id.txt",revision:"ed4e051a70aff9725ff5f073dc7677aa"},{url:"resources/dia_it.txt",revision:"0def42c56a72520d29a23b91445e4eb5"},{url:"resources/dia_ja.txt",revision:"0f9606f5ac39f88012aefe65ee6be993"},{url:"resources/dia_kn.txt",revision:"e8bafd50280b1bc321d1354e5c72f100"},{url:"resources/dia_ko.txt",revision:"9f1e4826e6f2330526acf02cc5006b44"},{url:"resources/dia_lt.txt",revision:"e2118573d7ad053d63f8679825f5a5bd"},{url:"resources/dia_lv.txt",revision:"5c865bfa301d9d65ab54e95423414c78"},{url:"resources/dia_ml.txt",revision:"5ca3a82ca913f8d9f2a398262df2ce84"},{url:"resources/dia_mr.txt",revision:"381214c99dca41169076bd171aae56d7"},{url:"resources/dia_ms.txt",revision:"98078d66f921b0f9aad557afd96ad5f6"},{url:"resources/dia_my.txt",revision:"abda65f2c227cf1adcf338e5786247dc"},{url:"resources/dia_nl.txt",revision:"47d494ac943f682b07b19f22a5ba165d"},{url:"resources/dia_no.txt",revision:"24b8baaf0608ead26940857e03386c39"},{url:"resources/dia_pl.txt",revision:"518aa92192e14dd07870d3c545735360"},{url:"resources/dia_pt-br.txt",revision:"ecad97c12934b9c8e6eecf28840bbacc"},{url:"resources/dia_pt.txt",revision:"0ee78d0afe79d2b10f31a151a8754863"},{url:"resources/dia_ro.txt",revision:"5102fdd8dc072d1a4689dabd0e0c7b87"},{url:"resources/dia_ru.txt",revision:"968be5e8d4b7b6824bffa8c5a67b645b"},{url:"resources/dia_si.txt",revision:"abda65f2c227cf1adcf338e5786247dc"},{url:"resources/dia_sk.txt",revision:"61b386854200fb3d278d089e3b231364"},{url:"resources/dia_sl.txt",revision:"6c44ba0f54e9c8ef0a75c11f35edbb78"},{url:"resources/dia_sr.txt",revision:"5d5b80aac08e95cdc9ec2966427afd4f"},{url:"resources/dia_sv.txt",revision:"2ef9be94b6261808c604579a98d04c2b"},{url:"resources/dia_sw.txt",revision:"16a5c6bb13501f5cb9bb405fc5bcafd2"},{url:"resources/dia_ta.txt",revision:"a046cff5073df3237474537dae2e0b5b"},{url:"resources/dia_te.txt",revision:"fd69ed824e6b250472717a57ce6293fd"},{url:"resources/dia_th.txt",revision:"45d55590ecd0ad109fbdc4e7740f229a"},{url:"resources/dia_tr.txt",revision:"e2570c3f082331afd3a78de6bf1eb643"},{url:"resources/dia_uk.txt",revision:"f73eb7d031c51bdae3003d0a79911f4c"},{url:"resources/dia_vi.txt",revision:"e7e24a8e1046d5db7d431163101594db"},{url:"resources/dia_zh-tw.txt",revision:"5dca79977e9370e5cb33ffe3566e15d0"},{url:"resources/dia_zh.txt",revision:"7bb20aaa598f95668561a38173364328"},{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:"5df253a5cf68431e236fa0b6f97d4307"},{url:"js/extensions.min.js",revision:"8f6625690fa713232aedd263ba09d115"},{url:"js/stencils.min.js",revision:"61006768fc3d04dc75dcf02bfb9081d9"},{url:"js/shapes-14-6-5.min.js",revision:"966d6d7fd2b6a3ddf7098a12982e31f7"},{url:"js/math-print.js",revision:"9d98c920695f6c3395da4b68f723e60a"},{url:"index.html",revision:"28ab148081b0ccd22ad2db634d538b6b"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/grapheditor.css",revision:"00339c600732790e04874fb33825899c"},{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:"765c59e857acb60fac4e9830e71216e2"},{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:"ff6d6e41b861a30d0b39ac80bd34afa7"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"7a37d0c45339d8a2b6239c10e5faa7c6"},{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:"2c2497f5cadbfc653d9081a29f262c5b"},{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:"e2a61cf10ed871219fdfdad658b6fa5c"},{url:"resources/dia_am.txt",revision:"b05a83cf96d7637d3a863adeab6d572f"},{url:"resources/dia_ar.txt",revision:"42145856c1d564a5ecccd4ffaa9695d8"},{url:"resources/dia_bg.txt",revision:"2199b9d1d54574363178fceb0fb94ba9"},{url:"resources/dia_bn.txt",revision:"3e536299d08c969f51c0259dc389be9a"},{url:"resources/dia_bs.txt",revision:"57299ba0e7cbc07d499c029d323a469a"},{url:"resources/dia_ca.txt",revision:"30845caf0680663b016949e8e83f0921"},{url:"resources/dia_cs.txt",revision:"8aaa2600880ea57c829d8d762e578e9f"},{url:"resources/dia_da.txt",revision:"2880e938dbff2d9d9d08b4d7268f08e4"},{url:"resources/dia_de.txt",revision:"984c046491b9d5bee5e2d6044cfce7a7"},{url:"resources/dia_el.txt",revision:"ea4b07a0d6de499b2bd857220ec310c3"},{url:"resources/dia_eo.txt",revision:"4a533aed6ce84fbf2a7ed37adee78eb0"},{url:"resources/dia_es.txt",revision:"e62fc668c8f394fc85983e2f632e7f41"},{url:"resources/dia_et.txt",revision:"90e169c40ed260afd33a2aeb72a603cf"},{url:"resources/dia_eu.txt",revision:"e8a54dd0c7693bf4a448ee6650c93d8d"},{url:"resources/dia_fa.txt",revision:"8ee88785ef25f7ff64980499112628f8"},{url:"resources/dia_fi.txt",revision:"a0673455ac82f97b6ac1b02a05222199"},{url:"resources/dia_fil.txt",revision:"a3856e3a849749cfc4afe7326dad87f1"},{url:"resources/dia_fr.txt",revision:"7ff7768b79fbe186c52cb34e6c3e10c0"},{url:"resources/dia_gl.txt",revision:"a0c0303acfefd1dca9b70d213ff62862"},{url:"resources/dia_gu.txt",revision:"5a98b68ab709eaa931d314e3acc993b2"},{url:"resources/dia_he.txt",revision:"6fe1151c96b8e2ba5590aa99b8de6bd5"},{url:"resources/dia_hi.txt",revision:"e917f561016dba1b5a16a401ff7f9fad"},{url:"resources/dia_hr.txt",revision:"34c38bd34aa5a5bbd9050c81c0e3fc53"},{url:"resources/dia_hu.txt",revision:"8ba0b7f9e39a0f6b1ff9e2947e5723f2"},{url:"resources/dia_id.txt",revision:"48e53bc0c77337c50fa6c2856f43ac69"},{url:"resources/dia_it.txt",revision:"5c99745696c32868de00908d06f4536f"},{url:"resources/dia_ja.txt",revision:"667a8e38b6eebeade2017c0e502c9815"},{url:"resources/dia_kn.txt",revision:"736406df5dc88c79b13333df8ed5e69f"},{url:"resources/dia_ko.txt",revision:"7c0cced76f947761c5e5247e08fffcda"},{url:"resources/dia_lt.txt",revision:"5a0fe3d60dc5fb01578f32e18df3558e"},{url:"resources/dia_lv.txt",revision:"e167aa4d4d11e82669f292ae4921ebf1"},{url:"resources/dia_ml.txt",revision:"a5211dcbf4b1afb05ccfdce86294cd4a"},{url:"resources/dia_mr.txt",revision:"5eea065897cf31a50347a886dc22bcab"},{url:"resources/dia_ms.txt",revision:"a38a6c0f2084b01cf7034c9c0f4769fc"},{url:"resources/dia_my.txt",revision:"e2a61cf10ed871219fdfdad658b6fa5c"},{url:"resources/dia_nl.txt",revision:"e213e36351253ce777330b74ead7a325"},{url:"resources/dia_no.txt",revision:"9a899cac83111a2b32cd76fac9f0572c"},{url:"resources/dia_pl.txt",revision:"c09e66ff906444c27b87c2b998ba3955"},{url:"resources/dia_pt-br.txt",revision:"ebb9b873b6d0f12a4352a890fc6ae2ac"},{url:"resources/dia_pt.txt",revision:"f9000a402791ee386c19ff0e7139e91a"},{url:"resources/dia_ro.txt",revision:"4df4a9df7334b0aff937cd28738e335e"},{url:"resources/dia_ru.txt",revision:"98bbaa943f56696159400282a6058c4f"},{url:"resources/dia_si.txt",revision:"e2a61cf10ed871219fdfdad658b6fa5c"},{url:"resources/dia_sk.txt",revision:"5d920fb3fbf131174d05b5030eda19ff"},{url:"resources/dia_sl.txt",revision:"34fa15b3041a9668b8a95727cb172d51"},{url:"resources/dia_sr.txt",revision:"1548012b4cb3e45968d88a47727eca40"},{url:"resources/dia_sv.txt",revision:"27d5c830130e32419428b2894caa8e0e"},{url:"resources/dia_sw.txt",revision:"428f042e164ae345bd8f582f26e6cc60"},{url:"resources/dia_ta.txt",revision:"86779cd767f8f2bd0e584da4448e649c"},{url:"resources/dia_te.txt",revision:"36b81b29ca2a6afd35c50281b4fd56fc"},{url:"resources/dia_th.txt",revision:"0934bf30ce61bde4798b853647895ca3"},{url:"resources/dia_tr.txt",revision:"d49aa135ade7a92c02ef50c2d6ea830c"},{url:"resources/dia_uk.txt",revision:"55d9f2a5830fa5d73449541144088b0d"},{url:"resources/dia_vi.txt",revision:"f20bd7deb75b76ea296039d2ca61e545"},{url:"resources/dia_zh-tw.txt",revision:"c2f32b4e7bf836a82f4e65e78bd78dbe"},{url:"resources/dia_zh.txt",revision:"56bcd3abb6dcd89c5c88890248a158ae"},{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 be8951c3..6b7677a4 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/70b19095d5a577d44288a830f53a97ae/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\": \"02bf4a3896697b71ea64eb3e306bac33\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"8f6625690fa713232aedd263ba09d115\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"61006768fc3d04dc75dcf02bfb9081d9\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"966d6d7fd2b6a3ddf7098a12982e31f7\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"9d98c920695f6c3395da4b68f723e60a\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"28ab148081b0ccd22ad2db634d538b6b\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"00339c600732790e04874fb33825899c\"\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\": \"a878348fbe26c84f3ff243d805c0eec3\"\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\": \"ff6d6e41b861a30d0b39ac80bd34afa7\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"7a37d0c45339d8a2b6239c10e5faa7c6\"\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\": \"2c2497f5cadbfc653d9081a29f262c5b\"\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\": \"abda65f2c227cf1adcf338e5786247dc\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"985583765133e113edbd5084372ff15e\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"13704a7e09c499d75eea07c303b4ab70\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"73288c325bb27c8e91714b7b57f258a0\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"5d95c152adb80cb0aa00ba333a46f1d9\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"9f1a5a393b5d8d5cff1e89b0cc3506f4\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"ed2bfa1a43b6a4fc78706eeba092d929\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"2435ce3c60106d20b850ee8a7c79ea62\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"d5079653660eaa335e577b0a96647a00\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"1f9e4b79183323851fcb7b47e97d8e88\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"9044d9496aa0f948da7240c92890faad\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"8d77f1c42ca0fec532352940b3eacb0f\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"e66dc83bab3b5d0d88c40cbe0fbee87f\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"7d2ae4c63984e15db7561579db88b695\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"0d752e85724ae2bdbf1f41b0d7ee51f0\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"8084f74eb63efb199ba8b546e3ac98b1\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"4e3c02221e758553aa8cdbd9a16517d5\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"e83a92bbafc8c96fa55054c115556d9d\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"8ecf1221c64462b7e891efa6078ddb00\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"e10e6ba5bf2a114db2aa4c887e93884c\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"04b9a7a272b0059b3b80b27ca64acbe4\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"e0cb98b5033b10516adee85d52b633cb\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"dc4f2db734b5c613be9998c27837061f\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"4aec81d5824d12b359417513fa4da8d2\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"f93ea6f2eca943677f4a495a73e0edda\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"ed4e051a70aff9725ff5f073dc7677aa\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"0def42c56a72520d29a23b91445e4eb5\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"0f9606f5ac39f88012aefe65ee6be993\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"e8bafd50280b1bc321d1354e5c72f100\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"9f1e4826e6f2330526acf02cc5006b44\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"e2118573d7ad053d63f8679825f5a5bd\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"5c865bfa301d9d65ab54e95423414c78\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"5ca3a82ca913f8d9f2a398262df2ce84\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"381214c99dca41169076bd171aae56d7\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"98078d66f921b0f9aad557afd96ad5f6\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"abda65f2c227cf1adcf338e5786247dc\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"47d494ac943f682b07b19f22a5ba165d\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"24b8baaf0608ead26940857e03386c39\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"518aa92192e14dd07870d3c545735360\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"ecad97c12934b9c8e6eecf28840bbacc\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"0ee78d0afe79d2b10f31a151a8754863\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"5102fdd8dc072d1a4689dabd0e0c7b87\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"968be5e8d4b7b6824bffa8c5a67b645b\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"abda65f2c227cf1adcf338e5786247dc\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"61b386854200fb3d278d089e3b231364\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"6c44ba0f54e9c8ef0a75c11f35edbb78\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"5d5b80aac08e95cdc9ec2966427afd4f\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"2ef9be94b6261808c604579a98d04c2b\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"16a5c6bb13501f5cb9bb405fc5bcafd2\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"a046cff5073df3237474537dae2e0b5b\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"fd69ed824e6b250472717a57ce6293fd\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"45d55590ecd0ad109fbdc4e7740f229a\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"e2570c3f082331afd3a78de6bf1eb643\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"f73eb7d031c51bdae3003d0a79911f4c\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"e7e24a8e1046d5db7d431163101594db\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"5dca79977e9370e5cb33ffe3566e15d0\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"7bb20aaa598f95668561a38173364328\"\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/421e236d75a28c76cd1d27cfe63e1baf/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\": \"5df253a5cf68431e236fa0b6f97d4307\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"8f6625690fa713232aedd263ba09d115\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"61006768fc3d04dc75dcf02bfb9081d9\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"966d6d7fd2b6a3ddf7098a12982e31f7\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"9d98c920695f6c3395da4b68f723e60a\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"28ab148081b0ccd22ad2db634d538b6b\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"00339c600732790e04874fb33825899c\"\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\": \"765c59e857acb60fac4e9830e71216e2\"\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\": \"ff6d6e41b861a30d0b39ac80bd34afa7\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"7a37d0c45339d8a2b6239c10e5faa7c6\"\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\": \"2c2497f5cadbfc653d9081a29f262c5b\"\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\": \"e2a61cf10ed871219fdfdad658b6fa5c\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"b05a83cf96d7637d3a863adeab6d572f\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"42145856c1d564a5ecccd4ffaa9695d8\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"2199b9d1d54574363178fceb0fb94ba9\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"3e536299d08c969f51c0259dc389be9a\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"57299ba0e7cbc07d499c029d323a469a\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"30845caf0680663b016949e8e83f0921\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"8aaa2600880ea57c829d8d762e578e9f\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"2880e938dbff2d9d9d08b4d7268f08e4\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"984c046491b9d5bee5e2d6044cfce7a7\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"ea4b07a0d6de499b2bd857220ec310c3\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"4a533aed6ce84fbf2a7ed37adee78eb0\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"e62fc668c8f394fc85983e2f632e7f41\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"90e169c40ed260afd33a2aeb72a603cf\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"e8a54dd0c7693bf4a448ee6650c93d8d\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"8ee88785ef25f7ff64980499112628f8\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"a0673455ac82f97b6ac1b02a05222199\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"a3856e3a849749cfc4afe7326dad87f1\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"7ff7768b79fbe186c52cb34e6c3e10c0\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"a0c0303acfefd1dca9b70d213ff62862\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"5a98b68ab709eaa931d314e3acc993b2\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"6fe1151c96b8e2ba5590aa99b8de6bd5\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"e917f561016dba1b5a16a401ff7f9fad\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"34c38bd34aa5a5bbd9050c81c0e3fc53\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"8ba0b7f9e39a0f6b1ff9e2947e5723f2\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"48e53bc0c77337c50fa6c2856f43ac69\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"5c99745696c32868de00908d06f4536f\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"667a8e38b6eebeade2017c0e502c9815\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"736406df5dc88c79b13333df8ed5e69f\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"7c0cced76f947761c5e5247e08fffcda\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"5a0fe3d60dc5fb01578f32e18df3558e\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"e167aa4d4d11e82669f292ae4921ebf1\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"a5211dcbf4b1afb05ccfdce86294cd4a\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"5eea065897cf31a50347a886dc22bcab\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"a38a6c0f2084b01cf7034c9c0f4769fc\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"e2a61cf10ed871219fdfdad658b6fa5c\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"e213e36351253ce777330b74ead7a325\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"9a899cac83111a2b32cd76fac9f0572c\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"c09e66ff906444c27b87c2b998ba3955\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"ebb9b873b6d0f12a4352a890fc6ae2ac\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"f9000a402791ee386c19ff0e7139e91a\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"4df4a9df7334b0aff937cd28738e335e\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"98bbaa943f56696159400282a6058c4f\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"e2a61cf10ed871219fdfdad658b6fa5c\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"5d920fb3fbf131174d05b5030eda19ff\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"34fa15b3041a9668b8a95727cb172d51\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"1548012b4cb3e45968d88a47727eca40\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"27d5c830130e32419428b2894caa8e0e\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"428f042e164ae345bd8f582f26e6cc60\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"86779cd767f8f2bd0e584da4448e649c\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"36b81b29ca2a6afd35c50281b4fd56fc\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"0934bf30ce61bde4798b853647895ca3\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"d49aa135ade7a92c02ef50c2d6ea830c\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"55d9f2a5830fa5d73449541144088b0d\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"f20bd7deb75b76ea296039d2ca61e545\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"c2f32b4e7bf836a82f4e65e78bd78dbe\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"56bcd3abb6dcd89c5c88890248a158ae\"\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