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:
Diffstat (limited to 'src/main/webapp/js/integrate.min.js')
-rw-r--r--src/main/webapp/js/integrate.min.js1680
1 files changed, 840 insertions, 840 deletions
diff --git a/src/main/webapp/js/integrate.min.js b/src/main/webapp/js/integrate.min.js
index 454ffb29..2bc42421 100644
--- a/src/main/webapp/js/integrate.min.js
+++ b/src/main/webapp/js/integrate.min.js
@@ -469,7 +469,7 @@ if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==url
"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.DOM_PURIFY_CONFIG=window.DOM_PURIFY_CONFIG||{ADD_TAGS:["use"],FORBID_TAGS:["form"],ALLOWED_URI_REGEXP:/^((?!javascript:).)*$/i,ADD_ATTR:["target","content"]};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:"20.0.0",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"20.0.1",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&2<navigator.maxTouchPoints,IS_WEBVIEW:/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&
0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!==
@@ -2348,54 +2348,54 @@ Editor.prototype.setFilename=function(a){this.filename=a};
Editor.prototype.createUndoManager=function(){var a=this.graph,b=new mxUndoManager;this.undoListener=function(d,g){b.undoableEditHappened(g.getProperty("edit"))};var f=mxUtils.bind(this,function(d,g){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,f);a.getView().addListener(mxEvent.UNDO,f);f=function(d,g){d=a.getSelectionCellsForChanges(g.getProperty("edit").changes,function(k){return!(k instanceof mxChildChange)});if(0<d.length){a.getModel();g=[];for(var e=0;e<d.length;e++)null!=
a.view.getState(d[e])&&g.push(d[e]);a.setSelectionCells(g)}};b.addListener(mxEvent.UNDO,f);b.addListener(mxEvent.REDO,f);return b};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(a){this.consumer=this.producer=null;this.done=a;this.args=null};OpenFile.prototype.setConsumer=function(a){this.consumer=a;this.execute()};OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};
OpenFile.prototype.error=function(a){this.cancel(!0);mxUtils.alert(a)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(a){null!=this.done&&this.done(null!=a?a:!0)};
-function Dialog(a,b,f,d,g,e,k,n,u,m,r){var x=u?57:0,A=f,C=d,F=u?0:64,K=Editor.inlineFullscreen||null==a.embedViewport?mxUtils.getDocumentSize():mxUtils.clone(a.embedViewport);null==a.embedViewport&&null!=window.innerHeight&&(K.height=window.innerHeight);var D=K.height,O=Math.max(1,Math.round((K.width-f-F)/2)),Q=Math.max(1,Math.round((D-d-a.footerHeight)/3));b.style.maxHeight="100%";f=null!=document.body?Math.min(f,document.body.scrollWidth-F):f;d=Math.min(d,D-F);0<a.dialogs.length&&(this.zIndex+=
-2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=Dialog.backdropColor,this.bg.style.height=D+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));K=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=K.x+"px";this.bg.style.top=K.y+"px";O+=K.x;Q+=K.y;Editor.inlineFullscreen||null==a.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px",
-Q+=a.embedViewport.y,O+=a.embedViewport.x);g&&document.body.appendChild(this.bg);var R=a.createDiv(u?"geTransDialog":"geDialog");g=this.getPosition(O,Q,f,d);O=g.x;Q=g.y;R.style.width=f+"px";R.style.height=d+"px";R.style.left=O+"px";R.style.top=Q+"px";R.style.zIndex=this.zIndex;R.appendChild(b);document.body.appendChild(R);!n&&b.clientHeight>R.clientHeight-F&&(b.style.overflowY="auto");b.style.overflowX="hidden";if(e&&(e=document.createElement("img"),e.setAttribute("src",Dialog.prototype.closeImage),
-e.setAttribute("title",mxResources.get("close")),e.className="geDialogClose",e.style.top=Q+14+"px",e.style.left=O+f+38-x+"px",e.style.zIndex=this.zIndex,mxEvent.addListener(e,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(e),this.dialogImg=e,!r)){var P=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(Z){P=!0}),null,mxUtils.bind(this,function(Z){P&&(a.hideDialog(!0),P=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=m){var Z=m();
-null!=Z&&(A=f=Z.w,C=d=Z.h)}Z=mxUtils.getDocumentSize();D=Z.height;this.bg.style.height=D+"px";Editor.inlineFullscreen||null==a.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px");O=Math.max(1,Math.round((Z.width-f-F)/2));Q=Math.max(1,Math.round((D-d-a.footerHeight)/3));f=null!=document.body?Math.min(A,document.body.scrollWidth-F):A;d=Math.min(C,D-F);Z=this.getPosition(O,Q,f,d);O=Z.x;Q=Z.y;R.style.left=O+"px";R.style.top=Q+"px";R.style.width=f+"px";R.style.height=d+"px";!n&&
-b.clientHeight>R.clientHeight-F&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=Q+14+"px",this.dialogImg.style.left=O+f+38-x+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=k;this.container=R;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
+function Dialog(a,b,f,d,g,e,k,n,u,m,r){var x=u?57:0,B=f,C=d,G=u?0:64,J=Editor.inlineFullscreen||null==a.embedViewport?mxUtils.getDocumentSize():mxUtils.clone(a.embedViewport);null==a.embedViewport&&null!=window.innerHeight&&(J.height=window.innerHeight);var D=J.height,N=Math.max(1,Math.round((J.width-f-G)/2)),Q=Math.max(1,Math.round((D-d-a.footerHeight)/3));b.style.maxHeight="100%";f=null!=document.body?Math.min(f,document.body.scrollWidth-G):f;d=Math.min(d,D-G);0<a.dialogs.length&&(this.zIndex+=
+2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=Dialog.backdropColor,this.bg.style.height=D+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));J=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=J.x+"px";this.bg.style.top=J.y+"px";N+=J.x;Q+=J.y;Editor.inlineFullscreen||null==a.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px",
+Q+=a.embedViewport.y,N+=a.embedViewport.x);g&&document.body.appendChild(this.bg);var R=a.createDiv(u?"geTransDialog":"geDialog");g=this.getPosition(N,Q,f,d);N=g.x;Q=g.y;R.style.width=f+"px";R.style.height=d+"px";R.style.left=N+"px";R.style.top=Q+"px";R.style.zIndex=this.zIndex;R.appendChild(b);document.body.appendChild(R);!n&&b.clientHeight>R.clientHeight-G&&(b.style.overflowY="auto");b.style.overflowX="hidden";if(e&&(e=document.createElement("img"),e.setAttribute("src",Dialog.prototype.closeImage),
+e.setAttribute("title",mxResources.get("close")),e.className="geDialogClose",e.style.top=Q+14+"px",e.style.left=N+f+38-x+"px",e.style.zIndex=this.zIndex,mxEvent.addListener(e,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(e),this.dialogImg=e,!r)){var P=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(Z){P=!0}),null,mxUtils.bind(this,function(Z){P&&(a.hideDialog(!0),P=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=m){var Z=m();
+null!=Z&&(B=f=Z.w,C=d=Z.h)}Z=mxUtils.getDocumentSize();D=Z.height;this.bg.style.height=D+"px";Editor.inlineFullscreen||null==a.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px");N=Math.max(1,Math.round((Z.width-f-G)/2));Q=Math.max(1,Math.round((D-d-a.footerHeight)/3));f=null!=document.body?Math.min(B,document.body.scrollWidth-G):B;d=Math.min(C,D-G);Z=this.getPosition(N,Q,f,d);N=Z.x;Q=Z.y;R.style.left=N+"px";R.style.top=Q+"px";R.style.width=f+"px";R.style.height=d+"px";!n&&
+b.clientHeight>R.clientHeight-G&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=Q+14+"px",this.dialogImg.style.left=N+f+38-x+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=k;this.container=R;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
Dialog.prototype.noColorImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzRDlBMUUwODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzRDlBMUUxODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTNEOUExREU4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTNEOUExREY4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5xh3fmAAAABlBMVEX////MzMw46qqDAAAAGElEQVR42mJggAJGKGAYIIGBth8KAAIMAEUQAIElnLuQAAAAAElFTkSuQmCC":IMAGE_PATH+
"/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(a,b){return new mxPoint(a,b)};Dialog.prototype.close=function(a,b){if(null!=this.onDialogClose){if(0==this.onDialogClose(a,b))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(a,b,f,d,g,e,k,n,u,m,r){u=null!=u?u:!0;var x=document.createElement("div");x.style.textAlign="center";if(null!=b){var A=document.createElement("div");A.style.padding="0px";A.style.margin="0px";A.style.fontSize="18px";A.style.paddingBottom="16px";A.style.marginBottom="10px";A.style.borderBottom="1px solid #c0c0c0";A.style.color="gray";A.style.whiteSpace="nowrap";A.style.textOverflow="ellipsis";A.style.overflow="hidden";mxUtils.write(A,b);A.setAttribute("title",b);x.appendChild(A)}b=
+var ErrorDialog=function(a,b,f,d,g,e,k,n,u,m,r){u=null!=u?u:!0;var x=document.createElement("div");x.style.textAlign="center";if(null!=b){var B=document.createElement("div");B.style.padding="0px";B.style.margin="0px";B.style.fontSize="18px";B.style.paddingBottom="16px";B.style.marginBottom="10px";B.style.borderBottom="1px solid #c0c0c0";B.style.color="gray";B.style.whiteSpace="nowrap";B.style.textOverflow="ellipsis";B.style.overflow="hidden";mxUtils.write(B,b);B.setAttribute("title",b);x.appendChild(B)}b=
document.createElement("div");b.style.lineHeight="1.2em";b.style.padding="6px";b.innerHTML=f;x.appendChild(b);f=document.createElement("div");f.style.marginTop="12px";f.style.textAlign="center";null!=e&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();e()}),b.className="geBtn",f.appendChild(b),f.style.textAlign="center");null!=m&&(m=mxUtils.button(m,function(){null!=r&&r()}),m.className="geBtn",f.appendChild(m));var C=mxUtils.button(d,function(){u&&a.hideDialog();null!=g&&g()});
C.className="geBtn";f.appendChild(C);null!=k&&(d=mxUtils.button(k,function(){u&&a.hideDialog();null!=n&&n()}),d.className="geBtn gePrimaryBtn",f.appendChild(d));this.init=function(){C.focus()};x.appendChild(f);this.container=x},PrintDialog=function(a,b){this.create(a,b)};
-PrintDialog.prototype.create=function(a){function b(C){var F=k.checked||m.checked,K=parseInt(x.value)/100;isNaN(K)&&(K=1,x.value="100%");K*=.75;var D=f.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,O=1/f.pageScale;if(F){var Q=k.checked?1:parseInt(r.value);isNaN(Q)||(O=mxUtils.getScaleForPageCount(Q,f,D))}f.getGraphBounds();var R=Q=0;D=mxRectangle.fromRectangle(D);D.width=Math.ceil(D.width*K);D.height=Math.ceil(D.height*K);O*=K;!F&&f.pageVisible?(K=f.getPageLayout(),Q-=K.x*D.width,R-=K.y*D.height):
-F=!0;F=PrintDialog.createPrintPreview(f,O,D,0,Q,R,F);F.open();C&&PrintDialog.printPreview(F)}var f=a.editor.graph,d=document.createElement("table");d.style.width="100%";d.style.height="100%";var g=document.createElement("tbody");var e=document.createElement("tr");var k=document.createElement("input");k.setAttribute("type","checkbox");var n=document.createElement("td");n.setAttribute("colspan","2");n.style.fontSize="10pt";n.appendChild(k);var u=document.createElement("span");mxUtils.write(u," "+mxResources.get("fitPage"));
+PrintDialog.prototype.create=function(a){function b(C){var G=k.checked||m.checked,J=parseInt(x.value)/100;isNaN(J)&&(J=1,x.value="100%");J*=.75;var D=f.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,N=1/f.pageScale;if(G){var Q=k.checked?1:parseInt(r.value);isNaN(Q)||(N=mxUtils.getScaleForPageCount(Q,f,D))}f.getGraphBounds();var R=Q=0;D=mxRectangle.fromRectangle(D);D.width=Math.ceil(D.width*J);D.height=Math.ceil(D.height*J);N*=J;!G&&f.pageVisible?(J=f.getPageLayout(),Q-=J.x*D.width,R-=J.y*D.height):
+G=!0;G=PrintDialog.createPrintPreview(f,N,D,0,Q,R,G);G.open();C&&PrintDialog.printPreview(G)}var f=a.editor.graph,d=document.createElement("table");d.style.width="100%";d.style.height="100%";var g=document.createElement("tbody");var e=document.createElement("tr");var k=document.createElement("input");k.setAttribute("type","checkbox");var n=document.createElement("td");n.setAttribute("colspan","2");n.style.fontSize="10pt";n.appendChild(k);var u=document.createElement("span");mxUtils.write(u," "+mxResources.get("fitPage"));
n.appendChild(u);mxEvent.addListener(u,"click",function(C){k.checked=!k.checked;m.checked=!k.checked;mxEvent.consume(C)});mxEvent.addListener(k,"change",function(){m.checked=!k.checked});e.appendChild(n);g.appendChild(e);e=e.cloneNode(!1);var m=document.createElement("input");m.setAttribute("type","checkbox");n=document.createElement("td");n.style.fontSize="10pt";n.appendChild(m);u=document.createElement("span");mxUtils.write(u," "+mxResources.get("posterPrint")+":");n.appendChild(u);mxEvent.addListener(u,
"click",function(C){m.checked=!m.checked;k.checked=!m.checked;mxEvent.consume(C)});e.appendChild(n);var r=document.createElement("input");r.setAttribute("value","1");r.setAttribute("type","number");r.setAttribute("min","1");r.setAttribute("size","4");r.setAttribute("disabled","disabled");r.style.width="50px";n=document.createElement("td");n.style.fontSize="10pt";n.appendChild(r);mxUtils.write(n," "+mxResources.get("pages")+" (max)");e.appendChild(n);g.appendChild(e);mxEvent.addListener(m,"change",
function(){m.checked?r.removeAttribute("disabled"):r.setAttribute("disabled","disabled");k.checked=!m.checked});e=e.cloneNode(!1);n=document.createElement("td");mxUtils.write(n,mxResources.get("pageScale")+":");e.appendChild(n);n=document.createElement("td");var x=document.createElement("input");x.setAttribute("value","100 %");x.setAttribute("size","5");x.style.width="50px";n.appendChild(x);e.appendChild(n);g.appendChild(e);e=document.createElement("tr");n=document.createElement("td");n.colSpan=2;
-n.style.paddingTop="20px";n.setAttribute("align","right");u=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});u.className="geBtn";a.editor.cancelFirst&&n.appendChild(u);if(PrintDialog.previewEnabled){var A=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});A.className="geBtn";n.appendChild(A)}A=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});A.className="geBtn gePrimaryBtn";n.appendChild(A);a.editor.cancelFirst||
+n.style.paddingTop="20px";n.setAttribute("align","right");u=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});u.className="geBtn";a.editor.cancelFirst&&n.appendChild(u);if(PrintDialog.previewEnabled){var B=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});B.className="geBtn";n.appendChild(B)}B=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});B.className="geBtn gePrimaryBtn";n.appendChild(B);a.editor.cancelFirst||
n.appendChild(u);e.appendChild(n);g.appendChild(e);d.appendChild(g);this.container=d};PrintDialog.printPreview=function(a){try{if(null!=a.wnd){var b=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(b,500):b()}}catch(f){}};
PrintDialog.createPrintPreview=function(a,b,f,d,g,e,k){b=new mxPrintPreview(a,b,f,d,g,e);b.title=mxResources.get("preview");b.printBackgroundImage=!0;b.autoOrigin=k;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";b.backgroundColor=a;var n=b.writeHead;b.writeHead=function(u){n.apply(this,arguments);u.writeln('<style type="text/css">');u.writeln("@media screen {");u.writeln(" body > div { padding:30px;box-sizing:content-box; }");u.writeln("}");u.writeln("</style>")};return b};
PrintDialog.previewEnabled=!0;
-var PageSetupDialog=function(a){function b(){null==r||r==mxConstants.NONE?(m.style.backgroundColor="",m.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(m.style.backgroundColor=r,m.style.backgroundImage="")}function f(){var D=F;null!=D&&Graph.isPageLink(D.src)&&(D=a.createImageForPageLink(D.src,null));null!=D&&null!=D.src?(C.setAttribute("src",D.src),C.style.display=""):(C.removeAttribute("src"),C.style.display="none")}var d=a.editor.graph,g=document.createElement("table");g.style.width=
+var PageSetupDialog=function(a){function b(){null==r||r==mxConstants.NONE?(m.style.backgroundColor="",m.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(m.style.backgroundColor=r,m.style.backgroundImage="")}function f(){var D=G;null!=D&&Graph.isPageLink(D.src)&&(D=a.createImageForPageLink(D.src,null));null!=D&&null!=D.src?(C.setAttribute("src",D.src),C.style.display=""):(C.removeAttribute("src"),C.style.display="none")}var d=a.editor.graph,g=document.createElement("table");g.style.width=
"100%";g.style.height="100%";var e=document.createElement("tbody");var k=document.createElement("tr");var n=document.createElement("td");n.style.verticalAlign="top";n.style.fontSize="10pt";mxUtils.write(n,mxResources.get("paperSize")+":");k.appendChild(n);n=document.createElement("td");n.style.verticalAlign="top";n.style.fontSize="10pt";var u=PageSetupDialog.addPageFormatPanel(n,"pagesetupdialog",d.pageFormat);k.appendChild(n);e.appendChild(k);k=document.createElement("tr");n=document.createElement("td");
mxUtils.write(n,mxResources.get("background")+":");k.appendChild(n);n=document.createElement("td");n.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var m=document.createElement("button");m.style.width="22px";m.style.height="22px";m.style.cursor="pointer";m.style.marginRight="20px";m.style.backgroundPosition="center center";m.style.backgroundRepeat="no-repeat";mxClient.IS_FF&&(m.style.position="relative",m.style.top="-6px");var r=d.background;b();mxEvent.addListener(m,
-"click",function(D){a.pickColor(r||"none",function(O){r=O;b()});mxEvent.consume(D)});n.appendChild(m);mxUtils.write(n,mxResources.get("gridSize")+":");var x=document.createElement("input");x.setAttribute("type","number");x.setAttribute("min","0");x.style.width="40px";x.style.marginLeft="6px";x.value=d.getGridSize();n.appendChild(x);mxEvent.addListener(x,"change",function(){var D=parseInt(x.value);x.value=Math.max(1,isNaN(D)?d.getGridSize():D)});k.appendChild(n);e.appendChild(k);k=document.createElement("tr");
-n=document.createElement("td");mxUtils.write(n,mxResources.get("image")+":");k.appendChild(n);n=document.createElement("td");var A=document.createElement("button");A.className="geBtn";A.style.margin="0px";mxUtils.write(A,mxResources.get("change")+"...");var C=document.createElement("img");C.setAttribute("valign","middle");C.style.verticalAlign="middle";C.style.border="1px solid lightGray";C.style.borderRadius="4px";C.style.marginRight="14px";C.style.maxWidth="100px";C.style.cursor="pointer";C.style.height=
-"60px";C.style.padding="4px";var F=d.backgroundImage,K=function(D){a.showBackgroundImageDialog(function(O,Q){Q||(F=O,f())},F);mxEvent.consume(D)};mxEvent.addListener(A,"click",K);mxEvent.addListener(C,"click",K);f();n.appendChild(C);n.appendChild(A);k.appendChild(n);e.appendChild(k);k=document.createElement("tr");n=document.createElement("td");n.colSpan=2;n.style.paddingTop="16px";n.setAttribute("align","right");A=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});A.className="geBtn";
-a.editor.cancelFirst&&n.appendChild(A);K=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var D=parseInt(x.value);isNaN(D)||d.gridSize===D||d.setGridSize(D);D=new ChangePageSetup(a,r,F,u.get());D.ignoreColor=d.background==r;D.ignoreImage=(null!=d.backgroundImage?d.backgroundImage.src:null)===(null!=F?F.src:null);d.pageFormat.width==D.previousFormat.width&&d.pageFormat.height==D.previousFormat.height&&D.ignoreColor&&D.ignoreImage||d.model.execute(D)});K.className="geBtn gePrimaryBtn";
-n.appendChild(K);a.editor.cancelFirst||n.appendChild(A);k.appendChild(n);e.appendChild(k);g.appendChild(e);this.container=g};
-PageSetupDialog.addPageFormatPanel=function(a,b,f,d){function g(Z,T,U){if(U||x!=document.activeElement&&A!=document.activeElement){Z=!1;for(T=0;T<F.length;T++)U=F[T],Q?"custom"==U.key&&(n.value=U.key,Q=!1):null!=U.format&&("a4"==U.key?826==f.width?(f=mxRectangle.fromRectangle(f),f.width=827):826==f.height&&(f=mxRectangle.fromRectangle(f),f.height=827):"a5"==U.key&&(584==f.width?(f=mxRectangle.fromRectangle(f),f.width=583):584==f.height&&(f=mxRectangle.fromRectangle(f),f.height=583)),f.width==U.format.width&&
-f.height==U.format.height?(n.value=U.key,e.setAttribute("checked","checked"),e.defaultChecked=!0,e.checked=!0,k.removeAttribute("checked"),k.defaultChecked=!1,k.checked=!1,Z=!0):f.width==U.format.height&&f.height==U.format.width&&(n.value=U.key,e.removeAttribute("checked"),e.defaultChecked=!1,e.checked=!1,k.setAttribute("checked","checked"),k.defaultChecked=!0,Z=k.checked=!0));Z?(u.style.display="",r.style.display="none"):(x.value=f.width/100,A.value=f.height/100,e.setAttribute("checked","checked"),
+"click",function(D){a.pickColor(r||"none",function(N){r=N;b()});mxEvent.consume(D)});n.appendChild(m);mxUtils.write(n,mxResources.get("gridSize")+":");var x=document.createElement("input");x.setAttribute("type","number");x.setAttribute("min","0");x.style.width="40px";x.style.marginLeft="6px";x.value=d.getGridSize();n.appendChild(x);mxEvent.addListener(x,"change",function(){var D=parseInt(x.value);x.value=Math.max(1,isNaN(D)?d.getGridSize():D)});k.appendChild(n);e.appendChild(k);k=document.createElement("tr");
+n=document.createElement("td");mxUtils.write(n,mxResources.get("image")+":");k.appendChild(n);n=document.createElement("td");var B=document.createElement("button");B.className="geBtn";B.style.margin="0px";mxUtils.write(B,mxResources.get("change")+"...");var C=document.createElement("img");C.setAttribute("valign","middle");C.style.verticalAlign="middle";C.style.border="1px solid lightGray";C.style.borderRadius="4px";C.style.marginRight="14px";C.style.maxWidth="100px";C.style.cursor="pointer";C.style.height=
+"60px";C.style.padding="4px";var G=d.backgroundImage,J=function(D){a.showBackgroundImageDialog(function(N,Q){Q||(G=N,f())},G);mxEvent.consume(D)};mxEvent.addListener(B,"click",J);mxEvent.addListener(C,"click",J);f();n.appendChild(C);n.appendChild(B);k.appendChild(n);e.appendChild(k);k=document.createElement("tr");n=document.createElement("td");n.colSpan=2;n.style.paddingTop="16px";n.setAttribute("align","right");B=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});B.className="geBtn";
+a.editor.cancelFirst&&n.appendChild(B);J=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var D=parseInt(x.value);isNaN(D)||d.gridSize===D||d.setGridSize(D);D=new ChangePageSetup(a,r,G,u.get());D.ignoreColor=d.background==r;D.ignoreImage=(null!=d.backgroundImage?d.backgroundImage.src:null)===(null!=G?G.src:null);d.pageFormat.width==D.previousFormat.width&&d.pageFormat.height==D.previousFormat.height&&D.ignoreColor&&D.ignoreImage||d.model.execute(D)});J.className="geBtn gePrimaryBtn";
+n.appendChild(J);a.editor.cancelFirst||n.appendChild(B);k.appendChild(n);e.appendChild(k);g.appendChild(e);this.container=g};
+PageSetupDialog.addPageFormatPanel=function(a,b,f,d){function g(Z,U,V){if(V||x!=document.activeElement&&B!=document.activeElement){Z=!1;for(U=0;U<G.length;U++)V=G[U],Q?"custom"==V.key&&(n.value=V.key,Q=!1):null!=V.format&&("a4"==V.key?826==f.width?(f=mxRectangle.fromRectangle(f),f.width=827):826==f.height&&(f=mxRectangle.fromRectangle(f),f.height=827):"a5"==V.key&&(584==f.width?(f=mxRectangle.fromRectangle(f),f.width=583):584==f.height&&(f=mxRectangle.fromRectangle(f),f.height=583)),f.width==V.format.width&&
+f.height==V.format.height?(n.value=V.key,e.setAttribute("checked","checked"),e.defaultChecked=!0,e.checked=!0,k.removeAttribute("checked"),k.defaultChecked=!1,k.checked=!1,Z=!0):f.width==V.format.height&&f.height==V.format.width&&(n.value=V.key,e.removeAttribute("checked"),e.defaultChecked=!1,e.checked=!1,k.setAttribute("checked","checked"),k.defaultChecked=!0,Z=k.checked=!0));Z?(u.style.display="",r.style.display="none"):(x.value=f.width/100,B.value=f.height/100,e.setAttribute("checked","checked"),
n.value="custom",u.style.display="none",r.style.display="")}}b="format-"+b;var e=document.createElement("input");e.setAttribute("name",b);e.setAttribute("type","radio");e.setAttribute("value","portrait");var k=document.createElement("input");k.setAttribute("name",b);k.setAttribute("type","radio");k.setAttribute("value","landscape");var n=document.createElement("select");n.style.marginBottom="8px";n.style.borderRadius="4px";n.style.border="1px solid rgb(160, 160, 160)";n.style.width="206px";var u=
document.createElement("div");u.style.marginLeft="4px";u.style.width="210px";u.style.height="24px";e.style.marginRight="6px";u.appendChild(e);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));u.appendChild(b);k.style.marginLeft="10px";k.style.marginRight="6px";u.appendChild(k);var m=document.createElement("span");m.style.width="100px";mxUtils.write(m,mxResources.get("landscape"));u.appendChild(m);var r=document.createElement("div");r.style.marginLeft=
-"4px";r.style.width="210px";r.style.height="24px";var x=document.createElement("input");x.setAttribute("size","7");x.style.textAlign="right";r.appendChild(x);mxUtils.write(r," in x ");var A=document.createElement("input");A.setAttribute("size","7");A.style.textAlign="right";r.appendChild(A);mxUtils.write(r," in");u.style.display="none";r.style.display="none";for(var C={},F=PageSetupDialog.getFormats(),K=0;K<F.length;K++){var D=F[K];C[D.key]=D;var O=document.createElement("option");O.setAttribute("value",
-D.key);mxUtils.write(O,D.title);n.appendChild(O)}var Q=!1;g();a.appendChild(n);mxUtils.br(a);a.appendChild(u);a.appendChild(r);var R=f,P=function(Z,T){Z=C[n.value];null!=Z.format?(x.value=Z.format.width/100,A.value=Z.format.height/100,r.style.display="none",u.style.display=""):(u.style.display="none",r.style.display="");Z=parseFloat(x.value);if(isNaN(Z)||0>=Z)x.value=f.width/100;Z=parseFloat(A.value);if(isNaN(Z)||0>=Z)A.value=f.height/100;Z=new mxRectangle(0,0,Math.floor(100*parseFloat(x.value)),
-Math.floor(100*parseFloat(A.value)));"custom"!=n.value&&k.checked&&(Z=new mxRectangle(0,0,Z.height,Z.width));T&&Q||Z.width==R.width&&Z.height==R.height||(R=Z,null!=d&&d(R))};mxEvent.addListener(b,"click",function(Z){e.checked=!0;P(Z);mxEvent.consume(Z)});mxEvent.addListener(m,"click",function(Z){k.checked=!0;P(Z);mxEvent.consume(Z)});mxEvent.addListener(x,"blur",P);mxEvent.addListener(x,"click",P);mxEvent.addListener(A,"blur",P);mxEvent.addListener(A,"click",P);mxEvent.addListener(k,"change",P);mxEvent.addListener(e,
-"change",P);mxEvent.addListener(n,"change",function(Z){Q="custom"==n.value;P(Z,!0)});P();return{set:function(Z){f=Z;g(null,null,!0)},get:function(){return R},widthInput:x,heightInput:A}};
+"4px";r.style.width="210px";r.style.height="24px";var x=document.createElement("input");x.setAttribute("size","7");x.style.textAlign="right";r.appendChild(x);mxUtils.write(r," in x ");var B=document.createElement("input");B.setAttribute("size","7");B.style.textAlign="right";r.appendChild(B);mxUtils.write(r," in");u.style.display="none";r.style.display="none";for(var C={},G=PageSetupDialog.getFormats(),J=0;J<G.length;J++){var D=G[J];C[D.key]=D;var N=document.createElement("option");N.setAttribute("value",
+D.key);mxUtils.write(N,D.title);n.appendChild(N)}var Q=!1;g();a.appendChild(n);mxUtils.br(a);a.appendChild(u);a.appendChild(r);var R=f,P=function(Z,U){Z=C[n.value];null!=Z.format?(x.value=Z.format.width/100,B.value=Z.format.height/100,r.style.display="none",u.style.display=""):(u.style.display="none",r.style.display="");Z=parseFloat(x.value);if(isNaN(Z)||0>=Z)x.value=f.width/100;Z=parseFloat(B.value);if(isNaN(Z)||0>=Z)B.value=f.height/100;Z=new mxRectangle(0,0,Math.floor(100*parseFloat(x.value)),
+Math.floor(100*parseFloat(B.value)));"custom"!=n.value&&k.checked&&(Z=new mxRectangle(0,0,Z.height,Z.width));U&&Q||Z.width==R.width&&Z.height==R.height||(R=Z,null!=d&&d(R))};mxEvent.addListener(b,"click",function(Z){e.checked=!0;P(Z);mxEvent.consume(Z)});mxEvent.addListener(m,"click",function(Z){k.checked=!0;P(Z);mxEvent.consume(Z)});mxEvent.addListener(x,"blur",P);mxEvent.addListener(x,"click",P);mxEvent.addListener(B,"blur",P);mxEvent.addListener(B,"click",P);mxEvent.addListener(k,"change",P);mxEvent.addListener(e,
+"change",P);mxEvent.addListener(n,"change",function(Z){Q="custom"==n.value;P(Z,!0)});P();return{set:function(Z){f=Z;g(null,null,!0)},get:function(){return R},widthInput:x,heightInput:B}};
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(a,b,f,d,g,e,k,n,u,m,r,x,A){u=null!=u?u:!0;var C=document.createElement("table"),F=document.createElement("tbody");C.style.position="absolute";C.style.top="30px";C.style.left="20px";var K=document.createElement("tr");var D=document.createElement("td");D.style.textOverflow="ellipsis";D.style.textAlign="right";D.style.maxWidth=(A?A+15:100)+"px";D.style.fontSize="10pt";D.style.width=(A?A:84)+"px";mxUtils.write(D,(g||mxResources.get("filename"))+":");K.appendChild(D);var O=
-document.createElement("input");O.setAttribute("value",b||"");O.style.marginLeft="4px";O.style.width=null!=x?x+"px":"180px";var Q=mxUtils.button(f,function(){if(null==e||e(O.value))u&&a.hideDialog(),d(O.value)});Q.className="geBtn gePrimaryBtn";this.init=function(){if(null!=g||null==k)if(O.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?O.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var R=C.parentNode;if(null!=R){var P=null;mxEvent.addListener(R,"dragleave",
-function(Z){null!=P&&(P.style.backgroundColor="",P=null);Z.stopPropagation();Z.preventDefault()});mxEvent.addListener(R,"dragover",mxUtils.bind(this,function(Z){null==P&&(!mxClient.IS_IE||10<document.documentMode)&&(P=O,P.style.backgroundColor="#ebf2f9");Z.stopPropagation();Z.preventDefault()}));mxEvent.addListener(R,"drop",mxUtils.bind(this,function(Z){null!=P&&(P.style.backgroundColor="",P=null);0<=mxUtils.indexOf(Z.dataTransfer.types,"text/uri-list")&&(O.value=decodeURIComponent(Z.dataTransfer.getData("text/uri-list")),
-Q.click());Z.stopPropagation();Z.preventDefault()}))}}};D=document.createElement("td");D.style.whiteSpace="nowrap";D.appendChild(O);K.appendChild(D);if(null!=g||null==k)F.appendChild(K),null!=r&&(D.appendChild(FilenameDialog.createTypeHint(a,O,r)),null!=a.editor.diagramFileTypes&&(K=document.createElement("tr"),D=document.createElement("td"),D.style.textOverflow="ellipsis",D.style.textAlign="right",D.style.maxWidth="100px",D.style.fontSize="10pt",D.style.width="84px",mxUtils.write(D,mxResources.get("type")+
-":"),K.appendChild(D),D=document.createElement("td"),D.style.whiteSpace="nowrap",K.appendChild(D),b=FilenameDialog.createFileTypes(a,O,a.editor.diagramFileTypes),b.style.marginLeft="4px",b.style.width="198px",D.appendChild(b),O.style.width=null!=x?x-40+"px":"190px",K.appendChild(D),F.appendChild(K)));null!=k&&(K=document.createElement("tr"),D=document.createElement("td"),D.colSpan=2,D.appendChild(k),K.appendChild(D),F.appendChild(K));K=document.createElement("tr");D=document.createElement("td");D.colSpan=
-2;D.style.paddingTop=null!=r?"12px":"20px";D.style.whiteSpace="nowrap";D.setAttribute("align","right");r=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=m&&m()});r.className="geBtn";a.editor.cancelFirst&&D.appendChild(r);null!=n&&(x=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(n)}),x.className="geBtn",D.appendChild(x));mxEvent.addListener(O,"keypress",function(R){13==R.keyCode&&Q.click()});D.appendChild(Q);a.editor.cancelFirst||D.appendChild(r);
-K.appendChild(D);F.appendChild(K);C.appendChild(F);this.container=C};FilenameDialog.filenameHelpLink=null;
+var FilenameDialog=function(a,b,f,d,g,e,k,n,u,m,r,x,B){u=null!=u?u:!0;var C=document.createElement("table"),G=document.createElement("tbody");C.style.position="absolute";C.style.top="30px";C.style.left="20px";var J=document.createElement("tr");var D=document.createElement("td");D.style.textOverflow="ellipsis";D.style.textAlign="right";D.style.maxWidth=(B?B+15:100)+"px";D.style.fontSize="10pt";D.style.width=(B?B:84)+"px";mxUtils.write(D,(g||mxResources.get("filename"))+":");J.appendChild(D);var N=
+document.createElement("input");N.setAttribute("value",b||"");N.style.marginLeft="4px";N.style.width=null!=x?x+"px":"180px";var Q=mxUtils.button(f,function(){if(null==e||e(N.value))u&&a.hideDialog(),d(N.value)});Q.className="geBtn gePrimaryBtn";this.init=function(){if(null!=g||null==k)if(N.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?N.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var R=C.parentNode;if(null!=R){var P=null;mxEvent.addListener(R,"dragleave",
+function(Z){null!=P&&(P.style.backgroundColor="",P=null);Z.stopPropagation();Z.preventDefault()});mxEvent.addListener(R,"dragover",mxUtils.bind(this,function(Z){null==P&&(!mxClient.IS_IE||10<document.documentMode)&&(P=N,P.style.backgroundColor="#ebf2f9");Z.stopPropagation();Z.preventDefault()}));mxEvent.addListener(R,"drop",mxUtils.bind(this,function(Z){null!=P&&(P.style.backgroundColor="",P=null);0<=mxUtils.indexOf(Z.dataTransfer.types,"text/uri-list")&&(N.value=decodeURIComponent(Z.dataTransfer.getData("text/uri-list")),
+Q.click());Z.stopPropagation();Z.preventDefault()}))}}};D=document.createElement("td");D.style.whiteSpace="nowrap";D.appendChild(N);J.appendChild(D);if(null!=g||null==k)G.appendChild(J),null!=r&&(D.appendChild(FilenameDialog.createTypeHint(a,N,r)),null!=a.editor.diagramFileTypes&&(J=document.createElement("tr"),D=document.createElement("td"),D.style.textOverflow="ellipsis",D.style.textAlign="right",D.style.maxWidth="100px",D.style.fontSize="10pt",D.style.width="84px",mxUtils.write(D,mxResources.get("type")+
+":"),J.appendChild(D),D=document.createElement("td"),D.style.whiteSpace="nowrap",J.appendChild(D),b=FilenameDialog.createFileTypes(a,N,a.editor.diagramFileTypes),b.style.marginLeft="4px",b.style.width="198px",D.appendChild(b),N.style.width=null!=x?x-40+"px":"190px",J.appendChild(D),G.appendChild(J)));null!=k&&(J=document.createElement("tr"),D=document.createElement("td"),D.colSpan=2,D.appendChild(k),J.appendChild(D),G.appendChild(J));J=document.createElement("tr");D=document.createElement("td");D.colSpan=
+2;D.style.paddingTop=null!=r?"12px":"20px";D.style.whiteSpace="nowrap";D.setAttribute("align","right");r=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=m&&m()});r.className="geBtn";a.editor.cancelFirst&&D.appendChild(r);null!=n&&(x=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(n)}),x.className="geBtn",D.appendChild(x));mxEvent.addListener(N,"keypress",function(R){13==R.keyCode&&Q.click()});D.appendChild(Q);a.editor.cancelFirst||D.appendChild(r);
+J.appendChild(D);G.appendChild(J);C.appendChild(G);this.container=C};FilenameDialog.filenameHelpLink=null;
FilenameDialog.createTypeHint=function(a,b,f){var d=document.createElement("img");d.style.backgroundPosition="center bottom";d.style.backgroundRepeat="no-repeat";d.style.margin="2px 0 0 4px";d.style.verticalAlign="top";d.style.cursor="pointer";d.style.height="16px";d.style.width="16px";mxUtils.setOpacity(d,70);var g=function(){d.setAttribute("src",Editor.helpImage);d.setAttribute("title",mxResources.get("help"));for(var e=0;e<f.length;e++)if(0<f[e].ext.length&&b.value.toLowerCase().substring(b.value.length-
f[e].ext.length-1)=="."+f[e].ext){d.setAttribute("title",mxResources.get(f[e].title));break}};mxEvent.addListener(b,"keyup",g);mxEvent.addListener(b,"change",g);mxEvent.addListener(d,"click",function(e){var k=d.getAttribute("title");d.getAttribute("src")==Editor.helpImage?a.editor.graph.openLink(FilenameDialog.filenameHelpLink):""!=k&&a.showError(null,k,mxResources.get("help"),function(){a.editor.graph.openLink(FilenameDialog.filenameHelpLink)},null,mxResources.get("ok"),null,null,null,340,90);mxEvent.consume(e)});
g();return d};
@@ -2408,42 +2408,42 @@ mxGraphView.prototype.validateBackgroundStyles=function(){var k=this.graph,n=nul
")";var x=u=0;null!=k.view.backgroundPageShape&&(x=this.getBackgroundPageBounds(),u=1+x.x,x=1+x.y);r=-Math.round(r-mxUtils.mod(this.translate.x*this.scale-u,r))+"px "+-Math.round(r-mxUtils.mod(this.translate.y*this.scale-x,r))+"px"}u=k.view.canvas;null!=u.ownerSVGElement&&(u=u.ownerSVGElement);null!=k.view.backgroundPageShape?(k.view.backgroundPageShape.node.style.backgroundPosition=r,k.view.backgroundPageShape.node.style.backgroundImage=m,k.view.backgroundPageShape.node.style.backgroundColor=n,k.view.backgroundPageShape.node.style.borderColor=
k.defaultPageBorderColor,k.container.className="geDiagramContainer geDiagramBackdrop",u.style.backgroundImage="none",u.style.backgroundColor=""):(k.container.className="geDiagramContainer",u.style.backgroundPosition=r,u.style.backgroundColor=n,u.style.backgroundImage=m)};mxGraphView.prototype.createSvgGrid=function(k){for(var n=this.graph.gridSize*this.scale;n<this.minGridSize;)n*=2;for(var u=this.gridSteps*n,m=[],r=1;r<this.gridSteps;r++){var x=r*n;m.push("M 0 "+x+" L "+u+" "+x+" M "+x+" 0 L "+x+
" "+u)}return'<svg width="'+u+'" height="'+u+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+u+'" height="'+u+'" patternUnits="userSpaceOnUse"><path d="'+m.join(" ")+'" fill="none" stroke="'+k+'" opacity="0.2" stroke-width="1"/><path d="M '+u+" 0 L 0 0 0 "+u+'" fill="none" stroke="'+k+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(k,n){a.apply(this,arguments);
-if(null!=this.shiftPreview1){var u=this.view.canvas;null!=u.ownerSVGElement&&(u=u.ownerSVGElement);var m=this.gridSize*this.view.scale*this.view.gridSteps;m=-Math.round(m-mxUtils.mod(this.view.translate.x*this.view.scale+k,m))+"px "+-Math.round(m-mxUtils.mod(this.view.translate.y*this.view.scale+n,m))+"px";u.style.backgroundPosition=m}};mxGraph.prototype.updatePageBreaks=function(k,n,u){var m=this.view.scale,r=this.view.translate,x=this.pageFormat,A=m*this.pageScale,C=this.view.getBackgroundPageBounds();
-n=C.width;u=C.height;var F=new mxRectangle(m*r.x,m*r.y,x.width*A,x.height*A),K=(k=k&&Math.min(F.width,F.height)>this.minPageBreakDist)?Math.ceil(u/F.height)-1:0,D=k?Math.ceil(n/F.width)-1:0,O=C.x+n,Q=C.y+u;null==this.horizontalPageBreaks&&0<K&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<D&&(this.verticalPageBreaks=[]);k=mxUtils.bind(this,function(R){if(null!=R){for(var P=R==this.horizontalPageBreaks?K:D,Z=0;Z<=P;Z++){var T=R==this.horizontalPageBreaks?[new mxPoint(Math.round(C.x),
-Math.round(C.y+(Z+1)*F.height)),new mxPoint(Math.round(O),Math.round(C.y+(Z+1)*F.height))]:[new mxPoint(Math.round(C.x+(Z+1)*F.width),Math.round(C.y)),new mxPoint(Math.round(C.x+(Z+1)*F.width),Math.round(Q))];null!=R[Z]?(R[Z].points=T,R[Z].redraw()):(T=new mxPolyline(T,this.pageBreakColor),T.dialect=this.dialect,T.isDashed=this.pageBreakDashed,T.pointerEvents=!1,T.init(this.view.backgroundPane),T.redraw(),R[Z]=T)}for(Z=P;Z<R.length;Z++)R[Z].destroy();R.splice(P,R.length-P)}});k(this.horizontalPageBreaks);
+if(null!=this.shiftPreview1){var u=this.view.canvas;null!=u.ownerSVGElement&&(u=u.ownerSVGElement);var m=this.gridSize*this.view.scale*this.view.gridSteps;m=-Math.round(m-mxUtils.mod(this.view.translate.x*this.view.scale+k,m))+"px "+-Math.round(m-mxUtils.mod(this.view.translate.y*this.view.scale+n,m))+"px";u.style.backgroundPosition=m}};mxGraph.prototype.updatePageBreaks=function(k,n,u){var m=this.view.scale,r=this.view.translate,x=this.pageFormat,B=m*this.pageScale,C=this.view.getBackgroundPageBounds();
+n=C.width;u=C.height;var G=new mxRectangle(m*r.x,m*r.y,x.width*B,x.height*B),J=(k=k&&Math.min(G.width,G.height)>this.minPageBreakDist)?Math.ceil(u/G.height)-1:0,D=k?Math.ceil(n/G.width)-1:0,N=C.x+n,Q=C.y+u;null==this.horizontalPageBreaks&&0<J&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<D&&(this.verticalPageBreaks=[]);k=mxUtils.bind(this,function(R){if(null!=R){for(var P=R==this.horizontalPageBreaks?J:D,Z=0;Z<=P;Z++){var U=R==this.horizontalPageBreaks?[new mxPoint(Math.round(C.x),
+Math.round(C.y+(Z+1)*G.height)),new mxPoint(Math.round(N),Math.round(C.y+(Z+1)*G.height))]:[new mxPoint(Math.round(C.x+(Z+1)*G.width),Math.round(C.y)),new mxPoint(Math.round(C.x+(Z+1)*G.width),Math.round(Q))];null!=R[Z]?(R[Z].points=U,R[Z].redraw()):(U=new mxPolyline(U,this.pageBreakColor),U.dialect=this.dialect,U.isDashed=this.pageBreakDashed,U.pointerEvents=!1,U.init(this.view.backgroundPane),U.redraw(),R[Z]=U)}for(Z=P;Z<R.length;Z++)R[Z].destroy();R.splice(P,R.length-P)}});k(this.horizontalPageBreaks);
k(this.verticalPageBreaks)};var b=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(k,n,u){for(var m=0;m<n.length;m++){if(this.graph.isTableCell(n[m])||this.graph.isTableRow(n[m]))return!1;if(this.graph.getModel().isVertex(n[m])){var r=this.graph.getCellGeometry(n[m]);if(null!=r&&r.relative)return!1}}return b.apply(this,arguments)};var f=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var k=
f.apply(this,arguments);k.intersects=mxUtils.bind(this,function(n,u){return this.isConnecting()?!0:mxCellMarker.prototype.intersects.apply(k,arguments)});return k};mxGraphView.prototype.createBackgroundPageShape=function(k){return new mxRectangleShape(k,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var k=this.getGraphBounds(),n=0<k.width?k.x/this.scale-this.translate.x:0,u=0<k.height?k.y/this.scale-this.translate.y:0,m=this.graph.pageFormat,
-r=this.graph.pageScale,x=m.width*r;m=m.height*r;r=Math.floor(Math.min(0,n)/x);var A=Math.floor(Math.min(0,u)/m);return new mxRectangle(this.scale*(this.translate.x+r*x),this.scale*(this.translate.y+A*m),this.scale*(Math.ceil(Math.max(1,n+k.width/this.scale)/x)-r)*x,this.scale*(Math.ceil(Math.max(1,u+k.height/this.scale)/m)-A)*m)};var d=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(k,n){d.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||
-this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=k+"px",this.view.backgroundPageShape.node.style.marginTop=n+"px")};var g=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(k,n,u,m,r,x){var A=g.apply(this,arguments);null==x||x||mxEvent.addListener(A,"mousedown",function(C){mxEvent.consume(C)});return A};var e=mxGraphHandler.prototype.isPropagateSelectionCell;mxGraphHandler.prototype.isPropagateSelectionCell=
+r=this.graph.pageScale,x=m.width*r;m=m.height*r;r=Math.floor(Math.min(0,n)/x);var B=Math.floor(Math.min(0,u)/m);return new mxRectangle(this.scale*(this.translate.x+r*x),this.scale*(this.translate.y+B*m),this.scale*(Math.ceil(Math.max(1,n+k.width/this.scale)/x)-r)*x,this.scale*(Math.ceil(Math.max(1,u+k.height/this.scale)/m)-B)*m)};var d=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(k,n){d.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||
+this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=k+"px",this.view.backgroundPageShape.node.style.marginTop=n+"px")};var g=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(k,n,u,m,r,x){var B=g.apply(this,arguments);null==x||x||mxEvent.addListener(B,"mousedown",function(C){mxEvent.consume(C)});return B};var e=mxGraphHandler.prototype.isPropagateSelectionCell;mxGraphHandler.prototype.isPropagateSelectionCell=
function(k,n,u){var m=this.graph.model.getParent(k);if(n){var r=this.graph.model.isEdge(k)?null:this.graph.getCellGeometry(k);r=!this.graph.model.isEdge(m)&&!this.graph.isSiblingSelected(k)&&(null!=r&&r.relative||!this.graph.isContainer(m)||this.graph.isPart(k))}else if(r=e.apply(this,arguments),this.graph.isTableCell(k)||this.graph.isTableRow(k))r=m,this.graph.isTable(r)||(r=this.graph.model.getParent(r)),r=!this.graph.selectionCellsHandler.isHandled(r)||this.graph.isCellSelected(r)&&this.graph.isToggleEvent(u.getEvent())||
-this.graph.isCellSelected(k)&&!this.graph.isToggleEvent(u.getEvent())||this.graph.isTableCell(k)&&this.graph.isCellSelected(m);return r};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(k){k=k.getCell();for(var n=this.graph.getModel(),u=n.getParent(k),m=this.graph.view.getState(u),r=this.graph.isCellSelected(k);null!=m&&(n.isVertex(u)||n.isEdge(u));){var x=this.graph.isCellSelected(u);r=r||x;if(x||!r&&(this.graph.isTableCell(k)||this.graph.isTableRow(k)))k=u;u=n.getParent(u)}return k}})();EditorUi=function(a,b,f){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=b||document.body;var d=this.editor.graph;d.lightbox=f;var g=d.getGraphBounds;d.getGraphBounds=function(){var I=g.apply(this,arguments),L=this.backgroundImage;if(null!=L&&null!=L.width&&null!=L.height){var H=this.view.translate,S=this.view.scale;I=mxRectangle.fromRectangle(I);I.add(new mxRectangle((H.x+L.x)*S,(H.y+L.y)*S,L.width*S,L.height*S))}return I};d.useCssTransforms&&(this.lazyZoomDelay=
-0);mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);this.selectionStateListener=mxUtils.bind(this,function(I,L){this.clearSelectionState()});d.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionStateListener);
-d.getModel().addListener(mxEvent.CHANGE,this.selectionStateListener);d.addListener(mxEvent.EDITING_STARTED,this.selectionStateListener);d.addListener(mxEvent.EDITING_STOPPED,this.selectionStateListener);d.getView().addListener("unitChanged",this.selectionStateListener);this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,d.isEnabled=function(){return!1},d.panningHandler.isForcePanningEvent=function(I){return!mxEvent.isPopupTrigger(I.getEvent())});this.actions=new Actions(this);this.menus=
+this.graph.isCellSelected(k)&&!this.graph.isToggleEvent(u.getEvent())||this.graph.isTableCell(k)&&this.graph.isCellSelected(m);return r};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(k){k=k.getCell();for(var n=this.graph.getModel(),u=n.getParent(k),m=this.graph.view.getState(u),r=this.graph.isCellSelected(k);null!=m&&(n.isVertex(u)||n.isEdge(u));){var x=this.graph.isCellSelected(u);r=r||x;if(x||!r&&(this.graph.isTableCell(k)||this.graph.isTableRow(k)))k=u;u=n.getParent(u)}return k}})();EditorUi=function(a,b,f){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=b||document.body;var d=this.editor.graph;d.lightbox=f;var g=d.getGraphBounds;d.getGraphBounds=function(){var F=g.apply(this,arguments),L=this.backgroundImage;if(null!=L&&null!=L.width&&null!=L.height){var T=this.view.translate,ca=this.view.scale;F=mxRectangle.fromRectangle(F);F.add(new mxRectangle((T.x+L.x)*ca,(T.y+L.y)*ca,L.width*ca,L.height*ca))}return F};d.useCssTransforms&&(this.lazyZoomDelay=
+0);mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);this.selectionStateListener=mxUtils.bind(this,function(F,L){this.clearSelectionState()});d.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionStateListener);
+d.getModel().addListener(mxEvent.CHANGE,this.selectionStateListener);d.addListener(mxEvent.EDITING_STARTED,this.selectionStateListener);d.addListener(mxEvent.EDITING_STOPPED,this.selectionStateListener);d.getView().addListener("unitChanged",this.selectionStateListener);this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,d.isEnabled=function(){return!1},d.panningHandler.isForcePanningEvent=function(F){return!mxEvent.isPopupTrigger(F.getEvent())});this.actions=new Actions(this);this.menus=
this.createMenus();if(!d.standalone){var e="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(" "),
-n="curved sourcePerimeterSpacing targetPerimeterSpacing startArrow startFill startSize endArrow endFill endSize".split(" ");this.setDefaultStyle=function(I){try{var L=d.getCellStyle(I,!1),H=[],S=[],V;for(V in L)H.push(L[V]),S.push(V);d.getModel().isEdge(I)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",S,"values",H,"cells",[I]))}catch(ea){this.handleError(ea)}};this.clearDefaultStyle=function(){d.currentEdgeStyle=mxUtils.clone(d.defaultEdgeStyle);
-d.currentVertexStyle=mxUtils.clone(d.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var u=["fontFamily","fontSource","fontSize","fontColor"];for(b=0;b<u.length;b++)0>mxUtils.indexOf(e,u[b])&&e.push(u[b]);var m="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),r=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],
-["fillColor","gradientColor","gradientDirection"],["opacity"],["html"]];for(b=0;b<r.length;b++)for(f=0;f<r[b].length;f++)e.push(r[b][f]);for(b=0;b<k.length;b++)0>mxUtils.indexOf(e,k[b])&&e.push(k[b]);var x=function(I,L,H,S,V,ea,ka){S=null!=S?S:d.currentVertexStyle;V=null!=V?V:d.currentEdgeStyle;ea=null!=ea?ea:!0;H=null!=H?H:d.getModel();if(ka){ka=[];for(var wa=0;wa<I.length;wa++)ka=ka.concat(H.getDescendants(I[wa]));I=ka}H.beginUpdate();try{for(wa=0;wa<I.length;wa++){var W=I[wa];if(L)var aa=["fontSize",
-"fontFamily","fontColor"];else{var oa=H.getStyle(W),ua=null!=oa?oa.split(";"):[];aa=e.slice();for(var Ja=0;Ja<ua.length;Ja++){var Ga=ua[Ja],va=Ga.indexOf("=");if(0<=va){var za=Ga.substring(0,va),ra=mxUtils.indexOf(aa,za);0<=ra&&aa.splice(ra,1);for(ka=0;ka<r.length;ka++){var Ha=r[ka];if(0<=mxUtils.indexOf(Ha,za))for(var Ta=0;Ta<Ha.length;Ta++){var db=mxUtils.indexOf(aa,Ha[Ta]);0<=db&&aa.splice(db,1)}}}}}var Ua=H.isEdge(W);ka=Ua?V:S;var Va=H.getStyle(W);for(Ja=0;Ja<aa.length;Ja++){za=aa[Ja];var Ya=
-ka[za];null!=Ya&&"edgeStyle"!=za&&("shape"!=za||Ua)&&(!Ua||ea||0>mxUtils.indexOf(n,za))&&(Va=mxUtils.setStyle(Va,za,Ya))}Editor.simpleLabels&&(Va=mxUtils.setStyle(mxUtils.setStyle(Va,"html",null),"whiteSpace",null));H.setStyle(W,Va)}}finally{H.endUpdate()}return I};d.addListener("cellsInserted",function(I,L){x(L.getProperty("cells"),null,null,null,null,!0,!0)});d.addListener("textInserted",function(I,L){x(L.getProperty("cells"),!0)});this.insertHandler=x;this.createDivs();this.createUi();this.refresh();
-var A=mxUtils.bind(this,function(I){null==I&&(I=window.event);return d.isEditing()||null!=I&&this.isSelectionAllowed(I)});this.container==document.body&&(this.menubarContainer.onselectstart=A,this.menubarContainer.onmousedown=A,this.toolbarContainer.onselectstart=A,this.toolbarContainer.onmousedown=A,this.diagramContainer.onselectstart=A,this.diagramContainer.onmousedown=A,this.sidebarContainer.onselectstart=A,this.sidebarContainer.onmousedown=A,this.formatContainer.onselectstart=A,this.formatContainer.onmousedown=
-A,this.footerContainer.onselectstart=A,this.footerContainer.onmousedown=A,null!=this.tabContainer&&(this.tabContainer.onselectstart=A));!this.editor.chromeless||this.editor.editable?(b=function(I){if(null!=I){var L=mxEvent.getSource(I);if("A"==L.nodeName)for(;null!=L;){if("geHint"==L.className)return!0;L=L.parentNode}}return A(I)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=
-b):d.panningHandler.usePopupTrigger=!1;d.init(this.diagramContainer);mxClient.IS_SVG&&null!=d.view.getDrawPane()&&(b=d.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=d.graphHandler){var C=d.graphHandler.start;d.graphHandler.start=function(){null!=fa.hoverIcons&&fa.hoverIcons.reset();C.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(I){var L=mxUtils.getOffset(this.diagramContainer);
-0<mxEvent.getClientX(I)-L.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(I)-L.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var F=!1,K=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(I,L){return F||K.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(I){32!=I.which||d.isEditing()?mxEvent.isConsumed(I)||27!=I.keyCode||this.hideDialog(null,
-!0):(F=!0,this.hoverIcons.reset(),d.container.style.cursor="move",d.isEditing()||mxEvent.getSource(I)!=d.container||mxEvent.consume(I))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(I){d.container.style.cursor="";F=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var D=d.panningHandler.isForcePanningEvent;d.panningHandler.isForcePanningEvent=function(I){return D.apply(this,arguments)||F||mxEvent.isMouseEvent(I.getEvent())&&(this.usePopupTrigger||
-!mxEvent.isPopupTrigger(I.getEvent()))&&(!mxEvent.isControlDown(I.getEvent())&&mxEvent.isRightMouseButton(I.getEvent())||mxEvent.isMiddleMouseButton(I.getEvent()))};var O=d.cellEditor.isStopEditingEvent;d.cellEditor.isStopEditingEvent=function(I){return O.apply(this,arguments)||13==I.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(I)||mxClient.IS_MAC&&mxEvent.isMetaDown(I)||mxClient.IS_SF&&mxEvent.isShiftDown(I))};var Q=d.isZoomWheelEvent;d.isZoomWheelEvent=function(){return F||Q.apply(this,arguments)};
-var R=!1,P=null,Z=null,T=null,U=mxUtils.bind(this,function(){if(null!=this.toolbar&&R!=d.cellEditor.isContentEditing()){for(var I=this.toolbar.container.firstChild,L=[];null!=I;){var H=I.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,I)&&(I.parentNode.removeChild(I),L.push(I));I=H}I=this.toolbar.fontMenu;H=this.toolbar.sizeMenu;if(null==T)this.toolbar.createTextToolbar();else{for(var S=0;S<T.length;S++)this.toolbar.container.appendChild(T[S]);this.toolbar.fontMenu=P;this.toolbar.sizeMenu=
-Z}R=d.cellEditor.isContentEditing();P=I;Z=H;T=L}}),fa=this,ha=d.cellEditor.startEditing;d.cellEditor.startEditing=function(){ha.apply(this,arguments);U();if(d.cellEditor.isContentEditing()){var I=!1,L=function(){I||(I=!0,window.setTimeout(function(){var H=d.getSelectedEditingElement();null!=H&&(H=mxUtils.getCurrentStyle(H),null!=H&&null!=fa.toolbar&&(fa.toolbar.setFontName(Graph.stripQuotes(H.fontFamily)),fa.toolbar.setFontSize(parseInt(H.fontSize))));I=!1},0))};mxEvent.addListener(d.cellEditor.textarea,
-"input",L);mxEvent.addListener(d.cellEditor.textarea,"touchend",L);mxEvent.addListener(d.cellEditor.textarea,"mouseup",L);mxEvent.addListener(d.cellEditor.textarea,"keyup",L);L()}};var ba=d.cellEditor.stopEditing;d.cellEditor.stopEditing=function(I,L){try{ba.apply(this,arguments),U()}catch(H){fa.handleError(H)}};d.container.setAttribute("tabindex","0");d.container.style.cursor="default";if(window.self===window.top&&null!=d.container.parentNode)try{d.container.focus()}catch(I){}var qa=d.fireMouseEvent;
-d.fireMouseEvent=function(I,L,H){I==mxEvent.MOUSE_DOWN&&this.container.focus();qa.apply(this,arguments)};d.popupMenuHandler.autoExpand=!0;null!=this.menus&&(d.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(I,L,H){this.menus.createPopupMenu(I,L,H)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(I){d.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);this.getKeyHandler=function(){return keyHandler};d.connectionHandler.addListener(mxEvent.CONNECT,function(I,
-L){var H=[L.getProperty("cell")];L.getProperty("terminalInserted")&&(H.push(L.getProperty("terminal")),window.setTimeout(function(){null!=fa.hoverIcons&&fa.hoverIcons.update(d.view.getState(H[H.length-1]))},0));x(H)});this.addListener("styleChanged",mxUtils.bind(this,function(I,L){var H=L.getProperty("cells"),S=I=!1;if(0<H.length)for(var V=0;V<H.length&&(I=d.getModel().isVertex(H[V])||I,!(S=d.getModel().isEdge(H[V])||S)||!I);V++);else S=I=!0;H=L.getProperty("keys");L=L.getProperty("values");for(V=
-0;V<H.length;V++){var ea=0<=mxUtils.indexOf(u,H[V]);if("strokeColor"!=H[V]||null!=L[V]&&"none"!=L[V])if(0<=mxUtils.indexOf(k,H[V]))S||0<=mxUtils.indexOf(m,H[V])?null==L[V]?delete d.currentEdgeStyle[H[V]]:d.currentEdgeStyle[H[V]]=L[V]:I&&0<=mxUtils.indexOf(e,H[V])&&(null==L[V]?delete d.currentVertexStyle[H[V]]:d.currentVertexStyle[H[V]]=L[V]);else if(0<=mxUtils.indexOf(e,H[V])){if(I||ea)null==L[V]?delete d.currentVertexStyle[H[V]]:d.currentVertexStyle[H[V]]=L[V];if(S||ea||0<=mxUtils.indexOf(m,H[V]))null==
-L[V]?delete d.currentEdgeStyle[H[V]]:d.currentEdgeStyle[H[V]]=L[V]}}null!=this.toolbar&&(this.toolbar.setFontName(d.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(d.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==d.currentEdgeStyle.edgeStyle&&"1"==d.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==d.currentEdgeStyle.edgeStyle||
-"none"==d.currentEdgeStyle.edgeStyle||null==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),
-null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==d.currentEdgeStyle.shape?"geSprite geSprite-linkedge":"flexArrow"==d.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==d.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var I=d.currentVertexStyle.fontFamily||"Helvetica",L=String(d.currentVertexStyle.fontSize||"12"),H=d.getView().getState(d.getSelectionCell());
-null!=H&&(I=H.style[mxConstants.STYLE_FONTFAMILY]||I,L=H.style[mxConstants.STYLE_FONTSIZE]||L,10<I.length&&(I=I.substring(0,8)+"..."));this.toolbar.setFontName(I);this.toolbar.setFontSize(L)}),d.getSelectionModel().addListener(mxEvent.CHANGE,a),d.getModel().addListener(mxEvent.CHANGE,a));d.addListener(mxEvent.CELLS_ADDED,function(I,L){I=L.getProperty("cells");L=L.getProperty("parent");null!=L&&d.getModel().isLayer(L)&&!d.isCellVisible(L)&&null!=I&&0<I.length&&d.getModel().setVisible(L,!0)});this.gestureHandler=
-mxUtils.bind(this,function(I){null!=this.currentMenu&&mxEvent.getSource(I)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document,this.gestureHandler);this.resizeHandler=mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,function(){null!=this.editor.graph&&this.refresh()}),0)});mxEvent.addListener(window,"resize",this.resizeHandler);this.orientationChangeHandler=mxUtils.bind(this,function(){this.refresh()});mxEvent.addListener(window,"orientationchange",
-this.orientationChangeHandler);mxClient.IS_IOS&&!window.navigator.standalone&&"undefined"!==typeof Menus&&(this.scrollHandler=mxUtils.bind(this,function(){window.scrollTo(0,0)}),mxEvent.addListener(window,"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){d.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){d.view.validateBackground()}));
-d.addListener("gridSizeChanged",mxUtils.bind(this,function(){d.isGridEnabled()&&d.view.validateBackground()}));this.editor.resetGraph()}this.init();d.standalone||this.open()};EditorUi.compactUi=!0;
+n="curved sourcePerimeterSpacing targetPerimeterSpacing startArrow startFill startSize endArrow endFill endSize".split(" "),u=!1,m=!1;this.setDefaultStyle=function(F){try{var L=d.getCellStyle(F,!1),T=[],ca=[],fa;for(fa in L)T.push(L[fa]),ca.push(fa);d.getModel().isEdge(F)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",ca,"values",T,"cells",[F]));d.getModel().isEdge(F)?m=!0:u=!0}catch(wa){this.handleError(wa)}};this.clearDefaultStyle=function(){d.currentEdgeStyle=
+mxUtils.clone(d.defaultEdgeStyle);d.currentVertexStyle=mxUtils.clone(d.defaultVertexStyle);u=m=!1;this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var r=["fontFamily","fontSource","fontSize","fontColor"];for(b=0;b<r.length;b++)0>mxUtils.indexOf(e,r[b])&&e.push(r[b]);var x="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),B=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],
+["strokeColor","strokeWidth"],["fillColor","gradientColor","gradientDirection"],["opacity"],["html"]];for(b=0;b<B.length;b++)for(f=0;f<B[b].length;f++)e.push(B[b][f]);for(b=0;b<k.length;b++)0>mxUtils.indexOf(e,k[b])&&e.push(k[b]);var C=function(F,L,T,ca,fa,wa,W){ca=null!=ca?ca:d.currentVertexStyle;fa=null!=fa?fa:d.currentEdgeStyle;wa=null!=wa?wa:!0;T=null!=T?T:d.getModel();if(W){W=[];for(var aa=0;aa<F.length;aa++)W=W.concat(T.getDescendants(F[aa]));F=W}T.beginUpdate();try{for(aa=0;aa<F.length;aa++){var oa=
+F[aa];if(L)var sa=["fontSize","fontFamily","fontColor"];else{var Ka=T.getStyle(oa),Ha=null!=Ka?Ka.split(";"):[];sa=e.slice();for(var ua=0;ua<Ha.length;ua++){var Ca=Ha[ua],ra=Ca.indexOf("=");if(0<=ra){var Da=Ca.substring(0,ra),Ua=mxUtils.indexOf(sa,Da);0<=Ua&&sa.splice(Ua,1);for(W=0;W<B.length;W++){var db=B[W];if(0<=mxUtils.indexOf(db,Da))for(var Ta=0;Ta<db.length;Ta++){var $a=mxUtils.indexOf(sa,db[Ta]);0<=$a&&sa.splice($a,1)}}}}}var Xa=T.isEdge(oa);W=Xa?fa:ca;var Va=T.getStyle(oa);for(ua=0;ua<sa.length;ua++){Da=
+sa[ua];var Ya=W[Da];null!=Ya&&"edgeStyle"!=Da&&("shape"!=Da||Xa)&&(!Xa||wa||0>mxUtils.indexOf(n,Da))&&(Va=mxUtils.setStyle(Va,Da,Ya))}Editor.simpleLabels&&(Va=mxUtils.setStyle(mxUtils.setStyle(Va,"html",null),"whiteSpace",null));T.setStyle(oa,Va)}}finally{T.endUpdate()}return F};d.addListener("cellsInserted",function(F,L){C(L.getProperty("cells"),null,null,null,null,!0,!0)});d.addListener("textInserted",function(F,L){C(L.getProperty("cells"),!0)});this.insertHandler=C;this.createDivs();this.createUi();
+this.refresh();var G=mxUtils.bind(this,function(F){null==F&&(F=window.event);return d.isEditing()||null!=F&&this.isSelectionAllowed(F)});this.container==document.body&&(this.menubarContainer.onselectstart=G,this.menubarContainer.onmousedown=G,this.toolbarContainer.onselectstart=G,this.toolbarContainer.onmousedown=G,this.diagramContainer.onselectstart=G,this.diagramContainer.onmousedown=G,this.sidebarContainer.onselectstart=G,this.sidebarContainer.onmousedown=G,this.formatContainer.onselectstart=G,
+this.formatContainer.onmousedown=G,this.footerContainer.onselectstart=G,this.footerContainer.onmousedown=G,null!=this.tabContainer&&(this.tabContainer.onselectstart=G));!this.editor.chromeless||this.editor.editable?(b=function(F){if(null!=F){var L=mxEvent.getSource(F);if("A"==L.nodeName)for(;null!=L;){if("geHint"==L.className)return!0;L=L.parentNode}}return G(F)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",
+b):this.diagramContainer.oncontextmenu=b):d.panningHandler.usePopupTrigger=!1;d.init(this.diagramContainer);mxClient.IS_SVG&&null!=d.view.getDrawPane()&&(b=d.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=d.graphHandler){var J=d.graphHandler.start;d.graphHandler.start=function(){null!=ba.hoverIcons&&ba.hoverIcons.reset();J.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(F){var L=
+mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(F)-L.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(F)-L.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var D=!1,N=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(F,L){return D||N.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(F){32!=F.which||d.isEditing()?mxEvent.isConsumed(F)||
+27!=F.keyCode||this.hideDialog(null,!0):(D=!0,this.hoverIcons.reset(),d.container.style.cursor="move",d.isEditing()||mxEvent.getSource(F)!=d.container||mxEvent.consume(F))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(F){d.container.style.cursor="";D=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var Q=d.panningHandler.isForcePanningEvent;d.panningHandler.isForcePanningEvent=function(F){return Q.apply(this,arguments)||D||mxEvent.isMouseEvent(F.getEvent())&&
+(this.usePopupTrigger||!mxEvent.isPopupTrigger(F.getEvent()))&&(!mxEvent.isControlDown(F.getEvent())&&mxEvent.isRightMouseButton(F.getEvent())||mxEvent.isMiddleMouseButton(F.getEvent()))};var R=d.cellEditor.isStopEditingEvent;d.cellEditor.isStopEditingEvent=function(F){return R.apply(this,arguments)||13==F.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(F)||mxClient.IS_MAC&&mxEvent.isMetaDown(F)||mxClient.IS_SF&&mxEvent.isShiftDown(F))};var P=d.isZoomWheelEvent;d.isZoomWheelEvent=function(){return D||
+P.apply(this,arguments)};var Z=!1,U=null,V=null,ia=null,ha=mxUtils.bind(this,function(){if(null!=this.toolbar&&Z!=d.cellEditor.isContentEditing()){for(var F=this.toolbar.container.firstChild,L=[];null!=F;){var T=F.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,F)&&(F.parentNode.removeChild(F),L.push(F));F=T}F=this.toolbar.fontMenu;T=this.toolbar.sizeMenu;if(null==ia)this.toolbar.createTextToolbar();else{for(var ca=0;ca<ia.length;ca++)this.toolbar.container.appendChild(ia[ca]);this.toolbar.fontMenu=
+U;this.toolbar.sizeMenu=V}Z=d.cellEditor.isContentEditing();U=F;V=T;ia=L}}),ba=this,qa=d.cellEditor.startEditing;d.cellEditor.startEditing=function(){qa.apply(this,arguments);ha();if(d.cellEditor.isContentEditing()){var F=!1,L=function(){F||(F=!0,window.setTimeout(function(){var T=d.getSelectedEditingElement();null!=T&&(T=mxUtils.getCurrentStyle(T),null!=T&&null!=ba.toolbar&&(ba.toolbar.setFontName(Graph.stripQuotes(T.fontFamily)),ba.toolbar.setFontSize(parseInt(T.fontSize))));F=!1},0))};mxEvent.addListener(d.cellEditor.textarea,
+"input",L);mxEvent.addListener(d.cellEditor.textarea,"touchend",L);mxEvent.addListener(d.cellEditor.textarea,"mouseup",L);mxEvent.addListener(d.cellEditor.textarea,"keyup",L);L()}};var O=d.cellEditor.stopEditing;d.cellEditor.stopEditing=function(F,L){try{O.apply(this,arguments),ha()}catch(T){ba.handleError(T)}};d.container.setAttribute("tabindex","0");d.container.style.cursor="default";if(window.self===window.top&&null!=d.container.parentNode)try{d.container.focus()}catch(F){}var S=d.fireMouseEvent;
+d.fireMouseEvent=function(F,L,T){F==mxEvent.MOUSE_DOWN&&this.container.focus();S.apply(this,arguments)};d.popupMenuHandler.autoExpand=!0;null!=this.menus&&(d.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(F,L,T){this.menus.createPopupMenu(F,L,T)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(F){d.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);this.getKeyHandler=function(){return keyHandler};d.connectionHandler.addListener(mxEvent.CONNECT,function(F,
+L){var T=[L.getProperty("cell")];L.getProperty("terminalInserted")&&(T.push(L.getProperty("terminal")),window.setTimeout(function(){null!=ba.hoverIcons&&ba.hoverIcons.update(d.view.getState(T[T.length-1]))},0));C(T)});this.addListener("styleChanged",mxUtils.bind(this,function(F,L){var T=L.getProperty("cells"),ca=F=!1;if(0<T.length)for(var fa=0;fa<T.length&&(F=d.getModel().isVertex(T[fa])||F,!(ca=d.getModel().isEdge(T[fa])||ca)||!F);fa++);else ca=F=!0;F=F&&!u;ca=ca&&!m;T=L.getProperty("keys");L=L.getProperty("values");
+for(fa=0;fa<T.length;fa++){var wa=0<=mxUtils.indexOf(r,T[fa]);if("strokeColor"!=T[fa]||null!=L[fa]&&"none"!=L[fa])if(0<=mxUtils.indexOf(k,T[fa]))ca||0<=mxUtils.indexOf(x,T[fa])?null==L[fa]?delete d.currentEdgeStyle[T[fa]]:d.currentEdgeStyle[T[fa]]=L[fa]:F&&0<=mxUtils.indexOf(e,T[fa])&&(null==L[fa]?delete d.currentVertexStyle[T[fa]]:d.currentVertexStyle[T[fa]]=L[fa]);else if(0<=mxUtils.indexOf(e,T[fa])){if(F||wa)null==L[fa]?delete d.currentVertexStyle[T[fa]]:d.currentVertexStyle[T[fa]]=L[fa];if(ca||
+wa||0<=mxUtils.indexOf(x,T[fa]))null==L[fa]?delete d.currentEdgeStyle[T[fa]]:d.currentEdgeStyle[T[fa]]=L[fa]}}null!=this.toolbar&&(this.toolbar.setFontName(d.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(d.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==d.currentEdgeStyle.edgeStyle&&"1"==d.currentEdgeStyle.curved?"geSprite geSprite-curved":
+"straight"==d.currentEdgeStyle.edgeStyle||"none"==d.currentEdgeStyle.edgeStyle||null==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):
+"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==d.currentEdgeStyle.shape?"geSprite geSprite-linkedge":"flexArrow"==d.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==d.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var F=d.currentVertexStyle.fontFamily||"Helvetica",L=String(d.currentVertexStyle.fontSize||
+"12"),T=d.getView().getState(d.getSelectionCell());null!=T&&(F=T.style[mxConstants.STYLE_FONTFAMILY]||F,L=T.style[mxConstants.STYLE_FONTSIZE]||L,10<F.length&&(F=F.substring(0,8)+"..."));this.toolbar.setFontName(F);this.toolbar.setFontSize(L)}),d.getSelectionModel().addListener(mxEvent.CHANGE,a),d.getModel().addListener(mxEvent.CHANGE,a));d.addListener(mxEvent.CELLS_ADDED,function(F,L){F=L.getProperty("cells");L=L.getProperty("parent");null!=L&&d.getModel().isLayer(L)&&!d.isCellVisible(L)&&null!=F&&
+0<F.length&&d.getModel().setVisible(L,!0)});this.gestureHandler=mxUtils.bind(this,function(F){null!=this.currentMenu&&mxEvent.getSource(F)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document,this.gestureHandler);this.resizeHandler=mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,function(){null!=this.editor.graph&&this.refresh()}),0)});mxEvent.addListener(window,"resize",this.resizeHandler);this.orientationChangeHandler=mxUtils.bind(this,function(){this.refresh()});
+mxEvent.addListener(window,"orientationchange",this.orientationChangeHandler);mxClient.IS_IOS&&!window.navigator.standalone&&"undefined"!==typeof Menus&&(this.scrollHandler=mxUtils.bind(this,function(){window.scrollTo(0,0)}),mxEvent.addListener(window,"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){d.view.validateBackground()}));this.addListener("backgroundColorChanged",
+mxUtils.bind(this,function(){d.view.validateBackground()}));d.addListener("gridSizeChanged",mxUtils.bind(this,function(){d.isGridEnabled()&&d.view.validateBackground()}));this.editor.resetGraph()}this.init();d.standalone||this.open()};EditorUi.compactUi=!0;
EditorUi.parsePng=function(a,b,f){function d(n,u){var m=e;e+=u;return n.substring(m,e)}function g(n){n=d(n,4);return n.charCodeAt(3)+(n.charCodeAt(2)<<8)+(n.charCodeAt(1)<<16)+(n.charCodeAt(0)<<24)}var e=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=f&&f();else if(d(a,4),"IHDR"!=d(a,4))null!=f&&f();else{d(a,17);do{f=g(a);var k=d(a,4);if(null!=b&&b(e-8,k,f))break;value=d(a,f);d(a,4);if("IEND"==k)break}while(f)}};mxUtils.extend(EditorUi,mxEventSource);
EditorUi.prototype.splitSize=mxClient.IS_TOUCH||mxClient.IS_POINTER?12:8;EditorUi.prototype.menubarHeight=30;EditorUi.prototype.formatEnabled=!0;EditorUi.prototype.formatWidth=240;EditorUi.prototype.toolbarHeight=38;EditorUi.prototype.footerHeight=28;EditorUi.prototype.sidebarFooterHeight=34;EditorUi.prototype.hsplitPosition=640>=screen.width?118:"large"!=urlParams["sidebar-entries"]?212:240;EditorUi.prototype.allowAnimation=!0;EditorUi.prototype.lightboxMaxFitScale=2;
EditorUi.prototype.lightboxVerticalDivider=4;EditorUi.prototype.hsplitClickEnabled=!1;
@@ -2452,23 +2452,23 @@ EditorUi.prototype.init=function(){var a=this.editor.graph;if(!a.standalone){"0"
arguments);f.updateActionStates()};a.editLink=f.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()}};EditorUi.prototype.clearSelectionState=function(){this.selectionState=null};EditorUi.prototype.getSelectionState=function(){null==this.selectionState&&(this.selectionState=this.createSelectionState());return this.selectionState};
EditorUi.prototype.createSelectionState=function(){for(var a=this.editor.graph,b=a.getSelectionCells(),f=this.initSelectionState(),d=!0,g=0;g<b.length;g++){var e=a.getCurrentCellStyle(b[g]);"0"!=mxUtils.getValue(e,mxConstants.STYLE_EDITABLE,"1")&&(this.updateSelectionStateForCell(f,b[g],b,d),d=!1)}this.updateSelectionStateForTableCells(f);return f};
EditorUi.prototype.initSelectionState=function(){return{vertices:[],edges:[],cells:[],x:null,y:null,width:null,height:null,style:{},containsImage:!1,containsLabel:!1,fill:!0,glass:!0,rounded:!0,autoSize:!1,image:!0,shadow:!0,lineJumps:!0,resizable:!0,table:!1,cell:!1,row:!1,movable:!0,rotatable:!0,stroke:!0,swimlane:!1,unlocked:this.editor.graph.isEnabled(),connections:!1}};
-EditorUi.prototype.updateSelectionStateForTableCells=function(a){if(1<a.cells.length&&a.cell){for(var b=mxUtils.sortCells(a.cells),f=this.editor.graph.model,d=f.getParent(b[0]),g=f.getParent(d),e=d.getIndex(b[0]),k=g.getIndex(d),n=null,u=1,m=1,r=0,x=k<g.getChildCount()-1?f.getChildAt(f.getChildAt(g,k+1),e):null;r<b.length-1;){var A=b[++r];null==x||x!=A||null!=n&&u!=n||(n=u,u=0,m++,d=f.getParent(x),x=k+m<g.getChildCount()?f.getChildAt(f.getChildAt(g,k+m),e):null);var C=this.editor.graph.view.getState(A);
-if(A==f.getChildAt(d,e+u)&&null!=C&&1==mxUtils.getValue(C.style,"colspan",1)&&1==mxUtils.getValue(C.style,"rowspan",1))u++;else break}r==m*u-1&&(a.mergeCell=b[0],a.colspan=u,a.rowspan=m)}};
+EditorUi.prototype.updateSelectionStateForTableCells=function(a){if(1<a.cells.length&&a.cell){for(var b=mxUtils.sortCells(a.cells),f=this.editor.graph.model,d=f.getParent(b[0]),g=f.getParent(d),e=d.getIndex(b[0]),k=g.getIndex(d),n=null,u=1,m=1,r=0,x=k<g.getChildCount()-1?f.getChildAt(f.getChildAt(g,k+1),e):null;r<b.length-1;){var B=b[++r];null==x||x!=B||null!=n&&u!=n||(n=u,u=0,m++,d=f.getParent(x),x=k+m<g.getChildCount()?f.getChildAt(f.getChildAt(g,k+m),e):null);var C=this.editor.graph.view.getState(B);
+if(B==f.getChildAt(d,e+u)&&null!=C&&1==mxUtils.getValue(C.style,"colspan",1)&&1==mxUtils.getValue(C.style,"rowspan",1))u++;else break}r==m*u-1&&(a.mergeCell=b[0],a.colspan=u,a.rowspan=m)}};
EditorUi.prototype.updateSelectionStateForCell=function(a,b,f,d){f=this.editor.graph;a.cells.push(b);if(f.getModel().isVertex(b)){a.connections=0<f.model.getEdgeCount(b);a.unlocked=a.unlocked&&!f.isCellLocked(b);a.resizable=a.resizable&&f.isCellResizable(b);a.rotatable=a.rotatable&&f.isCellRotatable(b);a.movable=a.movable&&f.isCellMovable(b)&&!f.isTableRow(b)&&!f.isTableCell(b);a.swimlane=a.swimlane||f.isSwimlane(b);a.table=a.table||f.isTable(b);a.cell=a.cell||f.isTableCell(b);a.row=a.row||f.isTableRow(b);
a.vertices.push(b);var g=f.getCellGeometry(b);if(null!=g&&(0<g.width?null==a.width?a.width=g.width:a.width!=g.width&&(a.width=""):a.containsLabel=!0,0<g.height?null==a.height?a.height=g.height:a.height!=g.height&&(a.height=""):a.containsLabel=!0,!g.relative||null!=g.offset)){var e=g.relative?g.offset.x:g.x;g=g.relative?g.offset.y:g.y;null==a.x?a.x=e:a.x!=e&&(a.x="");null==a.y?a.y=g:a.y!=g&&(a.y="")}}else f.getModel().isEdge(b)&&(a.edges.push(b),a.connections=!0,a.resizable=!1,a.rotatable=!1,a.movable=
!1);b=f.view.getState(b);null!=b&&(a.autoSize=a.autoSize||f.isAutoSizeState(b),a.glass=a.glass&&f.isGlassState(b),a.rounded=a.rounded&&f.isRoundedState(b),a.lineJumps=a.lineJumps&&f.isLineJumpState(b),a.image=a.image&&f.isImageState(b),a.shadow=a.shadow&&f.isShadowState(b),a.fill=a.fill&&f.isFillState(b),a.stroke=a.stroke&&f.isStrokeState(b),e=mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,null),a.containsImage=a.containsImage||"image"==e,f.mergeStyle(b.style,a.style,d))};
EditorUi.prototype.installShapePicker=function(){var a=this.editor.graph,b=this;a.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(u,m){"mouseDown"==m.getProperty("eventName")&&b.hideShapePicker()}));var f=mxUtils.bind(this,function(){b.hideShapePicker(!0)});a.addListener("wheel",f);a.addListener(mxEvent.ESCAPE,f);a.view.addListener(mxEvent.SCALE,f);a.view.addListener(mxEvent.SCALE_AND_TRANSLATE,f);a.getSelectionModel().addListener(mxEvent.CHANGE,f);var d=a.popupMenuHandler.isMenuShowing;
a.popupMenuHandler.isMenuShowing=function(){return d.apply(this,arguments)||null!=b.shapePicker};var g=a.dblClick;a.dblClick=function(u,m){if(this.isEnabled())if(null!=m||null==b.sidebar||mxEvent.isShiftDown(u)||a.isCellLocked(a.getDefaultParent()))g.apply(this,arguments);else{var r=mxUtils.convertPoint(this.container,mxEvent.getClientX(u),mxEvent.getClientY(u));mxEvent.consume(u);window.setTimeout(mxUtils.bind(this,function(){b.showShapePicker(r.x,r.y)}),30)}};if(null!=this.hoverIcons){this.hoverIcons.addListener("reset",
-f);var e=this.hoverIcons.drag;this.hoverIcons.drag=function(){b.hideShapePicker();e.apply(this,arguments)};var k=this.hoverIcons.execute;this.hoverIcons.execute=function(u,m,r){var x=r.getEvent();this.graph.isCloneEvent(x)||mxEvent.isShiftDown(x)?k.apply(this,arguments):this.graph.connectVertex(u.cell,m,this.graph.defaultEdgeLength,x,null,null,mxUtils.bind(this,function(A,C,F){var K=a.getCompositeParent(u.cell);A=a.getCellGeometry(K);for(r.consume();null!=K&&a.model.isVertex(K)&&null!=A&&A.relative;)cell=
-K,K=a.model.getParent(cell),A=a.getCellGeometry(K);window.setTimeout(mxUtils.bind(this,function(){b.showShapePicker(r.getGraphX(),r.getGraphY(),K,mxUtils.bind(this,function(D){F(D);null!=b.hoverIcons&&b.hoverIcons.update(a.view.getState(D))}),m)}),30)}),mxUtils.bind(this,function(A){this.graph.selectCellsForConnectVertex(A,x,this)}))};var n=null;this.hoverIcons.addListener("focus",mxUtils.bind(this,function(u,m){null!=n&&window.clearTimeout(n);n=window.setTimeout(mxUtils.bind(this,function(){var r=
-m.getProperty("arrow"),x=m.getProperty("direction"),A=m.getProperty("event");r=r.getBoundingClientRect();var C=mxUtils.getOffset(a.container),F=a.container.scrollLeft+r.x-C.x;C=a.container.scrollTop+r.y-C.y;var K=a.getCompositeParent(null!=this.hoverIcons.currentState?this.hoverIcons.currentState.cell:null),D=b.showShapePicker(F,C,K,mxUtils.bind(this,function(O){null!=O&&a.connectVertex(K,x,a.defaultEdgeLength,A,!0,!0,function(Q,R,P){P(O);null!=b.hoverIcons&&b.hoverIcons.update(a.view.getState(O))},
-function(Q){a.selectCellsForConnectVertex(Q)},A,this.hoverIcons)}),x,!0);this.centerShapePicker(D,r,F,C,x);mxUtils.setOpacity(D,30);mxEvent.addListener(D,"mouseenter",function(){mxUtils.setOpacity(D,100)});mxEvent.addListener(D,"mouseleave",function(){b.hideShapePicker()})}),Editor.shapePickerHoverDelay)}));this.hoverIcons.addListener("blur",mxUtils.bind(this,function(u,m){null!=n&&window.clearTimeout(n)}))}};
+f);var e=this.hoverIcons.drag;this.hoverIcons.drag=function(){b.hideShapePicker();e.apply(this,arguments)};var k=this.hoverIcons.execute;this.hoverIcons.execute=function(u,m,r){var x=r.getEvent();this.graph.isCloneEvent(x)||mxEvent.isShiftDown(x)?k.apply(this,arguments):this.graph.connectVertex(u.cell,m,this.graph.defaultEdgeLength,x,null,null,mxUtils.bind(this,function(B,C,G){var J=a.getCompositeParent(u.cell);B=a.getCellGeometry(J);for(r.consume();null!=J&&a.model.isVertex(J)&&null!=B&&B.relative;)cell=
+J,J=a.model.getParent(cell),B=a.getCellGeometry(J);window.setTimeout(mxUtils.bind(this,function(){b.showShapePicker(r.getGraphX(),r.getGraphY(),J,mxUtils.bind(this,function(D){G(D);null!=b.hoverIcons&&b.hoverIcons.update(a.view.getState(D))}),m)}),30)}),mxUtils.bind(this,function(B){this.graph.selectCellsForConnectVertex(B,x,this)}))};var n=null;this.hoverIcons.addListener("focus",mxUtils.bind(this,function(u,m){null!=n&&window.clearTimeout(n);n=window.setTimeout(mxUtils.bind(this,function(){var r=
+m.getProperty("arrow"),x=m.getProperty("direction"),B=m.getProperty("event");r=r.getBoundingClientRect();var C=mxUtils.getOffset(a.container),G=a.container.scrollLeft+r.x-C.x;C=a.container.scrollTop+r.y-C.y;var J=a.getCompositeParent(null!=this.hoverIcons.currentState?this.hoverIcons.currentState.cell:null),D=b.showShapePicker(G,C,J,mxUtils.bind(this,function(N){null!=N&&a.connectVertex(J,x,a.defaultEdgeLength,B,!0,!0,function(Q,R,P){P(N);null!=b.hoverIcons&&b.hoverIcons.update(a.view.getState(N))},
+function(Q){a.selectCellsForConnectVertex(Q)},B,this.hoverIcons)}),x,!0);this.centerShapePicker(D,r,G,C,x);mxUtils.setOpacity(D,30);mxEvent.addListener(D,"mouseenter",function(){mxUtils.setOpacity(D,100)});mxEvent.addListener(D,"mouseleave",function(){b.hideShapePicker()})}),Editor.shapePickerHoverDelay)}));this.hoverIcons.addListener("blur",mxUtils.bind(this,function(u,m){null!=n&&window.clearTimeout(n)}))}};
EditorUi.prototype.centerShapePicker=function(a,b,f,d,g){if(g==mxConstants.DIRECTION_EAST||g==mxConstants.DIRECTION_WEST)a.style.width="40px";var e=a.getBoundingClientRect();g==mxConstants.DIRECTION_NORTH?(f-=e.width/2-10,d-=e.height+6):g==mxConstants.DIRECTION_SOUTH?(f-=e.width/2-10,d+=b.height+6):g==mxConstants.DIRECTION_WEST?(f-=e.width+6,d-=e.height/2-10):g==mxConstants.DIRECTION_EAST&&(f+=b.width+6,d-=e.height/2-10);a.style.left=f+"px";a.style.top=d+"px"};
EditorUi.prototype.showShapePicker=function(a,b,f,d,g,e){a=this.createShapePicker(a,b,f,d,g,mxUtils.bind(this,function(){this.hideShapePicker()}),this.getCellsForShapePicker(f,e),e);null!=a&&(null==this.hoverIcons||e||this.hoverIcons.reset(),e=this.editor.graph,e.popupMenuHandler.hideMenu(),e.tooltipHandler.hideTooltip(),this.hideCurrentMenu(),this.hideShapePicker(),this.shapePickerCallback=d,this.shapePicker=a);return a};
EditorUi.prototype.createShapePicker=function(a,b,f,d,g,e,k,n){var u=null;if(null!=k&&0<k.length){var m=this,r=this.editor.graph;u=document.createElement("div");g=r.view.getState(f);var x=null==f||null!=g&&r.isTransparentState(g)?null:r.copyStyle(f);f=6>k.length?35*k.length:140;u.className="geToolbarContainer geSidebarContainer";u.style.cssText="position:absolute;left:"+a+"px;top:"+b+"px;width:"+f+"px;border-radius:10px;padding:4px;text-align:center;box-shadow:0px 0px 3px 1px #d1d1d1;padding: 6px 0 8px 0;z-index: "+
-mxPopupMenu.prototype.zIndex+1+";";n||mxUtils.setPrefixedStyle(u.style,"transform","translate(-22px,-22px)");null!=r.background&&r.background!=mxConstants.NONE&&(u.style.backgroundColor=r.background);r.container.appendChild(u);f=mxUtils.bind(this,function(A){var C=document.createElement("a");C.className="geItem";C.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:3px 0 0 3px;";u.appendChild(C);null!=x&&"1"!=urlParams.sketch?
-this.sidebar.graph.pasteStyle(x,[A]):m.insertHandler([A],""!=A.value&&"1"!=urlParams.sketch,this.sidebar.graph.model);this.sidebar.createThumb([A],25,25,C,null,!0,!1,A.geometry.width,A.geometry.height);mxEvent.addListener(C,"click",function(){var F=r.cloneCell(A);if(null!=d)d(F);else{F.geometry.x=r.snap(Math.round(a/r.view.scale)-r.view.translate.x-A.geometry.width/2);F.geometry.y=r.snap(Math.round(b/r.view.scale)-r.view.translate.y-A.geometry.height/2);r.model.beginUpdate();try{r.addCell(F)}finally{r.model.endUpdate()}r.setSelectionCell(F);
-r.scrollCellToVisible(F);r.startEditingAtCell(F);null!=m.hoverIcons&&m.hoverIcons.update(r.view.getState(F))}null!=e&&e()})});for(g=0;g<(n?Math.min(k.length,4):k.length);g++)f(k[g]);k=u.offsetTop+u.clientHeight-(r.container.scrollTop+r.container.offsetHeight);0<k&&(u.style.top=Math.max(r.container.scrollTop+22,b-k)+"px");k=u.offsetLeft+u.clientWidth-(r.container.scrollLeft+r.container.offsetWidth);0<k&&(u.style.left=Math.max(r.container.scrollLeft+22,a-k)+"px")}return u};
+mxPopupMenu.prototype.zIndex+1+";";n||mxUtils.setPrefixedStyle(u.style,"transform","translate(-22px,-22px)");null!=r.background&&r.background!=mxConstants.NONE&&(u.style.backgroundColor=r.background);r.container.appendChild(u);f=mxUtils.bind(this,function(B){var C=document.createElement("a");C.className="geItem";C.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:3px 0 0 3px;";u.appendChild(C);null!=x&&"1"!=urlParams.sketch?
+this.sidebar.graph.pasteStyle(x,[B]):m.insertHandler([B],""!=B.value&&"1"!=urlParams.sketch,this.sidebar.graph.model);this.sidebar.createThumb([B],25,25,C,null,!0,!1,B.geometry.width,B.geometry.height);mxEvent.addListener(C,"click",function(){var G=r.cloneCell(B);if(null!=d)d(G);else{G.geometry.x=r.snap(Math.round(a/r.view.scale)-r.view.translate.x-B.geometry.width/2);G.geometry.y=r.snap(Math.round(b/r.view.scale)-r.view.translate.y-B.geometry.height/2);r.model.beginUpdate();try{r.addCell(G)}finally{r.model.endUpdate()}r.setSelectionCell(G);
+r.scrollCellToVisible(G);r.startEditingAtCell(G);null!=m.hoverIcons&&m.hoverIcons.update(r.view.getState(G))}null!=e&&e()})});for(g=0;g<(n?Math.min(k.length,4):k.length);g++)f(k[g]);k=u.offsetTop+u.clientHeight-(r.container.scrollTop+r.container.offsetHeight);0<k&&(u.style.top=Math.max(r.container.scrollTop+22,b-k)+"px");k=u.offsetLeft+u.clientWidth-(r.container.scrollLeft+r.container.offsetWidth);0<k&&(u.style.left=Math.max(r.container.scrollLeft+22,a-k)+"px")}return u};
EditorUi.prototype.getCellsForShapePicker=function(a,b){b=mxUtils.bind(this,function(f,d,g,e){return this.editor.graph.createVertex(null,null,e||"",0,0,d||120,g||60,f,!1)});return[null!=a?this.editor.graph.cloneCell(a):b("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;",40,20,"Text"),b("whiteSpace=wrap;html=1;"),b("ellipse;whiteSpace=wrap;html=1;"),b("rhombus;whiteSpace=wrap;html=1;",80,80),b("rounded=1;whiteSpace=wrap;html=1;"),b("shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;"),
b("shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,60),b("shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;",120,80),b("shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,80),b("shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;"),b("triangle;whiteSpace=wrap;html=1;",60,80),b("shape=document;whiteSpace=wrap;html=1;boundedLbl=1;",120,80),b("shape=tape;whiteSpace=wrap;html=1;",120,100),b("ellipse;shape=cloud;whiteSpace=wrap;html=1;",
120,80),b("shape=singleArrow;whiteSpace=wrap;html=1;arrowWidth=0.4;arrowSize=0.4;",80,60),b("shape=waypoint;sketch=0;size=6;pointerEvents=1;points=[];fillColor=none;resizable=0;rotatable=0;perimeter=centerPerimeter;snapToPoint=1;",40,40)]};EditorUi.prototype.hideShapePicker=function(a){null!=this.shapePicker&&(this.shapePicker.parentNode.removeChild(this.shapePicker),this.shapePicker=null,a||null==this.shapePickerCallback||this.shapePickerCallback(),this.shapePickerCallback=null)};
@@ -2484,43 +2484,43 @@ a==mxConstants.ARROW_BLOCK_THIN?f="1"!=b?Format.blockThinMarkerImage.src:Format.
f=Format.ERmandOneMarkerImage.src:"ERmany"==a?f=Format.ERmanyMarkerImage.src:"ERoneToMany"==a?f=Format.ERoneToManyMarkerImage.src:"ERzeroToOne"==a?f=Format.ERzeroToOneMarkerImage.src:"ERzeroToMany"==a&&(f=Format.ERzeroToManyMarkerImage.src);return f};EditorUi.prototype.createMenus=function(){return null};
EditorUi.prototype.updatePasteActionStates=function(){var a=this.editor.graph,b=this.actions.get("paste"),f=this.actions.get("pasteHere");b.setEnabled(this.editor.graph.cellEditor.isContentEditing()||(!mxClient.IS_FF&&null!=navigator.clipboard||!mxClipboard.isEmpty())&&a.isEnabled()&&!a.isCellLocked(a.getDefaultParent()));f.setEnabled(b.isEnabled())};
EditorUi.prototype.initClipboard=function(){var a=this,b=mxClipboard.cut;mxClipboard.cut=function(e){e.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):b.apply(this,arguments);a.updatePasteActionStates()};mxClipboard.copy=function(e){var k=null;if(e.cellEditor.isContentEditing())document.execCommand("copy",!1,null);else{k=k||e.getSelectionCells();k=e.getExportableCells(e.model.getTopmostCells(k));for(var n={},u=e.createCellLookup(k),m=e.cloneCells(k,null,n),r=new mxGraphModel,x=r.getChildAt(r.getRoot(),
-0),A=0;A<m.length;A++){r.add(x,m[A]);var C=e.view.getState(k[A]);if(null!=C){var F=e.getCellGeometry(m[A]);null!=F&&F.relative&&!r.isEdge(k[A])&&null==u[mxObjectIdentity.get(r.getParent(k[A]))]&&(F.offset=null,F.relative=!1,F.x=C.x/C.view.scale-C.view.translate.x,F.y=C.y/C.view.scale-C.view.translate.y)}}e.updateCustomLinks(e.createCellMapping(n,u),m);mxClipboard.insertCount=1;mxClipboard.setCells(m)}a.updatePasteActionStates();return k};var f=mxClipboard.paste;mxClipboard.paste=function(e){var k=
+0),B=0;B<m.length;B++){r.add(x,m[B]);var C=e.view.getState(k[B]);if(null!=C){var G=e.getCellGeometry(m[B]);null!=G&&G.relative&&!r.isEdge(k[B])&&null==u[mxObjectIdentity.get(r.getParent(k[B]))]&&(G.offset=null,G.relative=!1,G.x=C.x/C.view.scale-C.view.translate.x,G.y=C.y/C.view.scale-C.view.translate.y)}}e.updateCustomLinks(e.createCellMapping(n,u),m);mxClipboard.insertCount=1;mxClipboard.setCells(m)}a.updatePasteActionStates();return k};var f=mxClipboard.paste;mxClipboard.paste=function(e){var k=
null;e.cellEditor.isContentEditing()?document.execCommand("paste",!1,null):k=f.apply(this,arguments);a.updatePasteActionStates();return k};var d=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){d.apply(this,arguments);a.updatePasteActionStates()};var g=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(e,k){g.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};
EditorUi.prototype.lazyZoomDelay=20;EditorUi.prototype.wheelZoomDelay=400;EditorUi.prototype.buttonZoomDelay=600;
-EditorUi.prototype.initCanvas=function(){var a=this.editor.graph;a.timerAutoScroll=!0;a.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((a.container.offsetWidth-34)/a.view.scale)),Math.max(0,Math.round((a.container.offsetHeight-34)/a.view.scale)))};a.view.getBackgroundPageBounds=function(){var H=this.graph.getPageLayout(),S=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+H.x*S.width),this.scale*(this.translate.y+H.y*S.height),this.scale*H.width*S.width,
-this.scale*H.height*S.height)};a.getPreferredPageSize=function(H,S,V){H=this.getPageLayout();S=this.getPageSize();return new mxRectangle(0,0,H.width*S.width,H.height*S.height)};var b=null,f=this;if(this.editor.isChromelessView()){this.chromelessResize=b=mxUtils.bind(this,function(H,S,V,ea){if(null!=a.container&&!a.isViewer()){V=null!=V?V:0;ea=null!=ea?ea:0;var ka=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),wa=mxUtils.hasScrollbars(a.container),W=a.view.translate,aa=a.view.scale,
-oa=mxRectangle.fromRectangle(ka);oa.x=oa.x/aa-W.x;oa.y=oa.y/aa-W.y;oa.width/=aa;oa.height/=aa;W=a.container.scrollTop;var ua=a.container.scrollLeft,Ja=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)Ja+=3;var Ga=a.container.offsetWidth-Ja;Ja=a.container.offsetHeight-Ja;H=H?Math.max(.3,Math.min(S||1,Ga/oa.width)):aa;S=(Ga-H*oa.width)/2/H;var va=0==this.lightboxVerticalDivider?0:(Ja-H*oa.height)/this.lightboxVerticalDivider/H;wa&&(S=Math.max(S,0),va=Math.max(va,
-0));if(wa||ka.width<Ga||ka.height<Ja)a.view.scaleAndTranslate(H,Math.floor(S-oa.x),Math.floor(va-oa.y)),a.container.scrollTop=W*H/aa,a.container.scrollLeft=ua*H/aa;else if(0!=V||0!=ea)ka=a.view.translate,a.view.setTranslate(Math.floor(ka.x+V/aa),Math.floor(ka.y+ea/aa))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var d=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",d);this.destroyFunctions.push(function(){mxEvent.removeListener(window,
-"resize",d)});this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(H){a.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(H){a.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=
+EditorUi.prototype.initCanvas=function(){var a=this.editor.graph;a.timerAutoScroll=!0;a.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((a.container.offsetWidth-34)/a.view.scale)),Math.max(0,Math.round((a.container.offsetHeight-34)/a.view.scale)))};a.view.getBackgroundPageBounds=function(){var F=this.graph.getPageLayout(),L=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+F.x*L.width),this.scale*(this.translate.y+F.y*L.height),this.scale*F.width*L.width,
+this.scale*F.height*L.height)};a.getPreferredPageSize=function(F,L,T){F=this.getPageLayout();L=this.getPageSize();return new mxRectangle(0,0,F.width*L.width,F.height*L.height)};var b=null,f=this;if(this.editor.isChromelessView()){this.chromelessResize=b=mxUtils.bind(this,function(F,L,T,ca){if(null!=a.container&&!a.isViewer()){T=null!=T?T:0;ca=null!=ca?ca:0;var fa=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),wa=mxUtils.hasScrollbars(a.container),W=a.view.translate,aa=a.view.scale,
+oa=mxRectangle.fromRectangle(fa);oa.x=oa.x/aa-W.x;oa.y=oa.y/aa-W.y;oa.width/=aa;oa.height/=aa;W=a.container.scrollTop;var sa=a.container.scrollLeft,Ka=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)Ka+=3;var Ha=a.container.offsetWidth-Ka;Ka=a.container.offsetHeight-Ka;F=F?Math.max(.3,Math.min(L||1,Ha/oa.width)):aa;L=(Ha-F*oa.width)/2/F;var ua=0==this.lightboxVerticalDivider?0:(Ka-F*oa.height)/this.lightboxVerticalDivider/F;wa&&(L=Math.max(L,0),ua=Math.max(ua,
+0));if(wa||fa.width<Ha||fa.height<Ka)a.view.scaleAndTranslate(F,Math.floor(L-oa.x),Math.floor(ua-oa.y)),a.container.scrollTop=W*F/aa,a.container.scrollLeft=sa*F/aa;else if(0!=T||0!=ca)fa=a.view.translate,a.view.setTranslate(Math.floor(fa.x+T/aa),Math.floor(fa.y+ca/aa))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var d=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",d);this.destroyFunctions.push(function(){mxEvent.removeListener(window,
+"resize",d)});this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(F){a.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(F){a.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=a.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 e=mxUtils.bind(this,function(){var H=mxUtils.getCurrentStyle(a.container);a.isViewer()?this.chromelessToolbar.style.top="0":this.chromelessToolbar.style.bottom=(null!=H?parseInt(H["margin-bottom"]||0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",e);e();var k=0;e=mxUtils.bind(this,function(H,S,V){k++;
-var ea=document.createElement("span");ea.style.paddingLeft="8px";ea.style.paddingRight="8px";ea.style.cursor="pointer";mxEvent.addListener(ea,"click",H);null!=V&&ea.setAttribute("title",V);H=document.createElement("img");H.setAttribute("border","0");H.setAttribute("src",S);H.style.width="36px";H.style.filter="invert(100%)";ea.appendChild(H);this.chromelessToolbar.appendChild(ea);return ea});null!=g.backBtn&&e(mxUtils.bind(this,function(H){window.location.href=g.backBtn.url;mxEvent.consume(H)}),Editor.backImage,
-mxResources.get("back",null,"Back"));if(this.isPagesEnabled()){var n=e(mxUtils.bind(this,function(H){this.actions.get("previousPage").funct();mxEvent.consume(H)}),Editor.previousImage,mxResources.get("previousPage")),u=document.createElement("div");u.style.fontFamily=Editor.defaultHtmlFont;u.style.display="inline-block";u.style.verticalAlign="top";u.style.fontWeight="bold";u.style.marginTop="8px";u.style.fontSize="14px";u.style.color=mxClient.IS_IE||mxClient.IS_IE11?"#000000":"#ffffff";this.chromelessToolbar.appendChild(u);
-var m=e(mxUtils.bind(this,function(H){this.actions.get("nextPage").funct();mxEvent.consume(H)}),Editor.nextImage,mxResources.get("nextPage")),r=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(u.innerText="",mxUtils.write(u,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});n.style.paddingLeft="0px";n.style.paddingRight="4px";m.style.paddingLeft="4px";m.style.paddingRight="0px";var x=mxUtils.bind(this,function(){null!=this.pages&&
-1<this.pages.length&&null!=this.currentPage?(m.style.display="",n.style.display="",u.style.display="inline-block"):(m.style.display="none",n.style.display="none",u.style.display="none");r()});this.editor.addListener("resetGraphView",x);this.editor.addListener("pageSelected",r)}e(mxUtils.bind(this,function(H){this.actions.get("zoomOut").funct();mxEvent.consume(H)}),Editor.zoomOutImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");e(mxUtils.bind(this,function(H){this.actions.get("zoomIn").funct();
-mxEvent.consume(H)}),Editor.zoomInImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");e(mxUtils.bind(this,function(H){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(H)}),Editor.zoomFitImage,mxResources.get("fit"));var A=null,C=null,F=mxUtils.bind(this,function(H){null!=A&&(window.clearTimeout(A),A=null);null!=C&&(window.clearTimeout(C),C=null);A=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,
-0);A=null;C=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";C=null}),600)}),H||200)}),K=mxUtils.bind(this,function(H){null!=A&&(window.clearTimeout(A),A=null);null!=C&&(window.clearTimeout(C),C=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,H||30)});if("1"==urlParams.layers){this.layersDialog=null;var D=e(mxUtils.bind(this,function(H){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),
-this.layersDialog=null;else{this.layersDialog=a.createLayersDialog(null,!0);mxEvent.addListener(this.layersDialog,"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var S=D.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=S.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));S=mxUtils.getCurrentStyle(this.editor.graph.container);
-this.layersDialog.style.zIndex=S.zIndex;document.body.appendChild(this.layersDialog);this.editor.fireEvent(new mxEventObject("layersDialogShown"))}mxEvent.consume(H)}),Editor.layersImage,mxResources.get("layers")),O=a.getModel();O.addListener(mxEvent.CHANGE,function(){D.style.display=1<O.getChildCount(O.root)?"":"none"})}("1"!=urlParams.openInSameWin||navigator.standalone)&&this.addChromelessToolbarItems(e);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||e(mxUtils.bind(this,function(H){null!=
-this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(H)}),Editor.editImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(x=0;x<this.lightboxToolbarActions.length;x++){var Q=this.lightboxToolbarActions[x];Q.elem=e(Q.fn,Q.icon,Q.tooltip)}null!=g.refreshBtn&&e(mxUtils.bind(this,function(H){g.refreshBtn.url?window.location.href=g.refreshBtn.url:
-window.location.reload();mxEvent.consume(H)}),Editor.refreshImage,mxResources.get("refresh",null,"Refresh"));null!=g.fullscreenBtn&&window.self!==window.top&&e(mxUtils.bind(this,function(H){g.fullscreenBtn.url?a.openLink(g.fullscreenBtn.url):a.openLink(window.location.href);mxEvent.consume(H)}),Editor.fullscreenImage,mxResources.get("openInNewWindow",null,"Open in New Window"));(g.closeBtn&&window.self===window.top||a.lightbox&&("1"==urlParams.close||this.container!=document.body))&&e(mxUtils.bind(this,
-function(H){"1"==urlParams.close||g.closeBtn?window.close():(this.destroy(),mxEvent.consume(H))}),Editor.closeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display="none";a.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");a.container.appendChild(this.chromelessToolbar);mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(H){mxEvent.isTouchEvent(H)||(mxEvent.isShiftDown(H)||
-K(30),F())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(H){mxEvent.consume(H)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",mxUtils.bind(this,function(H){a.tooltipHandler.resetTimer();a.tooltipHandler.hideTooltip();mxEvent.isShiftDown(H)?F():K(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(H){mxEvent.isShiftDown(H)?F():K(100);mxEvent.consume(H)}));mxEvent.addListener(this.chromelessToolbar,
-"mouseleave",mxUtils.bind(this,function(H){mxEvent.isTouchEvent(H)||K(30)}));var R=a.getTolerance();a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(H,S){this.startX=S.getGraphX();this.startY=S.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(H,S){},mouseUp:function(H,S){mxEvent.isTouchEvent(S.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<R&&Math.abs(this.scrollTop-a.container.scrollTop)<R&&
-Math.abs(this.startX-S.getGraphX())<R&&Math.abs(this.startY-S.getGraphY())<R&&(0<parseFloat(f.chromelessToolbar.style.opacity||0)?F():K(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var P=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var H=this.graph.getPagePadding(),S=this.graph.getPageSize();this.translate.x=H.x-(this.x0||0)*S.width;this.translate.y=H.y-(this.y0||0)*S.height}P.apply(this,
-arguments)};if(!a.isViewer()){var Z=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var H=this.getPageLayout(),S=this.getPagePadding(),V=this.getPageSize(),ea=Math.ceil(2*S.x+H.width*V.width),ka=Math.ceil(2*S.y+H.height*V.height),wa=a.minimumGraphSize;if(null==wa||wa.width!=ea||wa.height!=ka)a.minimumGraphSize=new mxRectangle(0,0,ea,ka);ea=S.x-H.x*V.width;S=S.y-H.y*V.height;this.autoTranslate||this.view.translate.x==ea&&this.view.translate.y==
-S?Z.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=H.x,this.view.y0=H.y,H=a.view.translate.x,V=a.view.translate.y,a.view.setTranslate(ea,S),a.container.scrollLeft+=Math.round((ea-H)*a.view.scale),a.container.scrollTop+=Math.round((S-V)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var T=a.view.getBackgroundPane(),U=a.view.getDrawPane();a.cumulativeZoomFactor=1;var fa=null,ha=null,ba=null,qa=null,I=null,L=function(H){null!=
-fa&&window.clearTimeout(fa);0<=H&&window.setTimeout(function(){if(!a.isMouseDown||qa)fa=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)),U.style.transformOrigin="",T.style.transformOrigin="",mxClient.IS_SF?(U.style.transform="scale(1)",
-T.style.transform="scale(1)",window.setTimeout(function(){U.style.transform="";T.style.transform=""},0)):(U.style.transform="",T.style.transform=""),a.view.getDecoratorPane().style.opacity="",a.view.getOverlayPane().style.opacity="");var S=new mxPoint(a.container.scrollLeft,a.container.scrollTop),V=mxUtils.getOffset(a.container),ea=a.view.scale,ka=0,wa=0;null!=ha&&(ka=a.container.offsetWidth/2-ha.x+V.x,wa=a.container.offsetHeight/2-ha.y+V.y);a.zoom(a.cumulativeZoomFactor,null,a.isFastZoomEnabled()?
-20:null);a.view.scale!=ea&&(null!=ba&&(ka+=S.x-ba.x,wa+=S.y-ba.y),null!=b&&f.chromelessResize(!1,null,ka*(a.cumulativeZoomFactor-1),wa*(a.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==ka&&0==wa||(a.container.scrollLeft-=ka*(a.cumulativeZoomFactor-1),a.container.scrollTop-=wa*(a.cumulativeZoomFactor-1)));null!=I&&U.setAttribute("filter",I);a.cumulativeZoomFactor=1;I=qa=ha=ba=fa=null}),null!=H?H:a.isFastZoomEnabled()?f.wheelZoomDelay:f.lazyZoomDelay)},0)};a.lazyZoom=function(H,S,
-V,ea){ea=null!=ea?ea:this.zoomFactor;(S=S||!a.scrollbars)&&(ha=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));H?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=ea,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-
-.05)/this.view.scale:(this.cumulativeZoomFactor/=ea,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,160))/this.view.scale;a.isFastZoomEnabled()&&(null==I&&""!=U.getAttribute("filter")&&(I=U.getAttribute("filter"),U.removeAttribute("filter")),ba=new mxPoint(a.container.scrollLeft,a.container.scrollTop),H=S||null==ha?a.container.scrollLeft+a.container.clientWidth/
-2:ha.x+a.container.scrollLeft-a.container.offsetLeft,ea=S||null==ha?a.container.scrollTop+a.container.clientHeight/2:ha.y+a.container.scrollTop-a.container.offsetTop,U.style.transformOrigin=H+"px "+ea+"px",U.style.transform="scale("+this.cumulativeZoomFactor+")",T.style.transformOrigin=H+"px "+ea+"px",T.style.transform="scale("+this.cumulativeZoomFactor+")",null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node&&(H=a.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(H.style,
-"transform-origin",(S||null==ha?a.container.clientWidth/2+a.container.scrollLeft-H.offsetLeft+"px":ha.x+a.container.scrollLeft-H.offsetLeft-a.container.offsetLeft+"px")+" "+(S||null==ha?a.container.clientHeight/2+a.container.scrollTop-H.offsetTop+"px":ha.y+a.container.scrollTop-H.offsetTop-a.container.offsetTop+"px")),mxUtils.setPrefixedStyle(H.style,"transform","scale("+this.cumulativeZoomFactor+")")),a.view.getDecoratorPane().style.opacity="0",a.view.getOverlayPane().style.opacity="0",null!=f.hoverIcons&&
-f.hoverIcons.reset());L(a.isFastZoomEnabled()?V:0)};mxEvent.addGestureListeners(a.container,function(H){null!=fa&&window.clearTimeout(fa)},null,function(H){1!=a.cumulativeZoomFactor&&L(0)});mxEvent.addListener(a.container,"scroll",function(H){null==fa||a.isMouseDown||1==a.cumulativeZoomFactor||L(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(H,S,V,ea,ka){a.fireEvent(new mxEventObject("wheel"));if(null==this.dialogs||0==this.dialogs.length)if(!a.scrollbars&&!V&&a.isScrollWheelEvent(H))V=
-a.view.getTranslate(),ea=40/a.view.scale,mxEvent.isShiftDown(H)?a.view.setTranslate(V.x+(S?-ea:ea),V.y):a.view.setTranslate(V.x,V.y+(S?ea:-ea));else if(V||a.isZoomWheelEvent(H))for(var wa=mxEvent.getSource(H);null!=wa;){if(wa==a.container)return a.tooltipHandler.hideTooltip(),ha=null!=ea&&null!=ka?new mxPoint(ea,ka):new mxPoint(mxEvent.getClientX(H),mxEvent.getClientY(H)),qa=V,V=a.zoomFactor,ea=null,H.ctrlKey&&null!=H.deltaY&&40>Math.abs(H.deltaY)&&Math.round(H.deltaY)!=H.deltaY?V=1+Math.abs(H.deltaY)/
-20*(V-1):null!=H.movementY&&"pointermove"==H.type&&(V=1+Math.max(1,Math.abs(H.movementY))/20*(V-1),ea=-1),a.lazyZoom(S,null,ea,V),mxEvent.consume(H),!1;wa=wa.parentNode}}),a.container);a.panningHandler.zoomGraph=function(H){a.cumulativeZoomFactor=H.scale;a.lazyZoom(0<H.scale,!0);mxEvent.consume(H)}};EditorUi.prototype.addChromelessToolbarItems=function(a){a(mxUtils.bind(this,function(b){this.actions.get("print").funct();mxEvent.consume(b)}),Editor.printImage,mxResources.get("print"))};
+"borderRadius","16px");mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transition","opacity 600ms ease-in-out");var e=mxUtils.bind(this,function(){var F=mxUtils.getCurrentStyle(a.container);a.isViewer()?this.chromelessToolbar.style.top="0":this.chromelessToolbar.style.bottom=(null!=F?parseInt(F["margin-bottom"]||0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",e);e();var k=0;e=mxUtils.bind(this,function(F,L,T){k++;
+var ca=document.createElement("span");ca.style.paddingLeft="8px";ca.style.paddingRight="8px";ca.style.cursor="pointer";mxEvent.addListener(ca,"click",F);null!=T&&ca.setAttribute("title",T);F=document.createElement("img");F.setAttribute("border","0");F.setAttribute("src",L);F.style.width="36px";F.style.filter="invert(100%)";ca.appendChild(F);this.chromelessToolbar.appendChild(ca);return ca});null!=g.backBtn&&e(mxUtils.bind(this,function(F){window.location.href=g.backBtn.url;mxEvent.consume(F)}),Editor.backImage,
+mxResources.get("back",null,"Back"));if(this.isPagesEnabled()){var n=e(mxUtils.bind(this,function(F){this.actions.get("previousPage").funct();mxEvent.consume(F)}),Editor.previousImage,mxResources.get("previousPage")),u=document.createElement("div");u.style.fontFamily=Editor.defaultHtmlFont;u.style.display="inline-block";u.style.verticalAlign="top";u.style.fontWeight="bold";u.style.marginTop="8px";u.style.fontSize="14px";u.style.color=mxClient.IS_IE||mxClient.IS_IE11?"#000000":"#ffffff";this.chromelessToolbar.appendChild(u);
+var m=e(mxUtils.bind(this,function(F){this.actions.get("nextPage").funct();mxEvent.consume(F)}),Editor.nextImage,mxResources.get("nextPage")),r=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(u.innerText="",mxUtils.write(u,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});n.style.paddingLeft="0px";n.style.paddingRight="4px";m.style.paddingLeft="4px";m.style.paddingRight="0px";var x=mxUtils.bind(this,function(){null!=this.pages&&
+1<this.pages.length&&null!=this.currentPage?(m.style.display="",n.style.display="",u.style.display="inline-block"):(m.style.display="none",n.style.display="none",u.style.display="none");r()});this.editor.addListener("resetGraphView",x);this.editor.addListener("pageSelected",r)}e(mxUtils.bind(this,function(F){this.actions.get("zoomOut").funct();mxEvent.consume(F)}),Editor.zoomOutImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");e(mxUtils.bind(this,function(F){this.actions.get("zoomIn").funct();
+mxEvent.consume(F)}),Editor.zoomInImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");e(mxUtils.bind(this,function(F){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(F)}),Editor.zoomFitImage,mxResources.get("fit"));var B=null,C=null,G=mxUtils.bind(this,function(F){null!=B&&(window.clearTimeout(B),B=null);null!=C&&(window.clearTimeout(C),C=null);B=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,
+0);B=null;C=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";C=null}),600)}),F||200)}),J=mxUtils.bind(this,function(F){null!=B&&(window.clearTimeout(B),B=null);null!=C&&(window.clearTimeout(C),C=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,F||30)});if("1"==urlParams.layers){this.layersDialog=null;var D=e(mxUtils.bind(this,function(F){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),
+this.layersDialog=null;else{this.layersDialog=a.createLayersDialog(null,!0);mxEvent.addListener(this.layersDialog,"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var L=D.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=L.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));L=mxUtils.getCurrentStyle(this.editor.graph.container);
+this.layersDialog.style.zIndex=L.zIndex;document.body.appendChild(this.layersDialog);this.editor.fireEvent(new mxEventObject("layersDialogShown"))}mxEvent.consume(F)}),Editor.layersImage,mxResources.get("layers")),N=a.getModel();N.addListener(mxEvent.CHANGE,function(){D.style.display=1<N.getChildCount(N.root)?"":"none"})}("1"!=urlParams.openInSameWin||navigator.standalone)&&this.addChromelessToolbarItems(e);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||e(mxUtils.bind(this,function(F){null!=
+this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(F)}),Editor.editImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(x=0;x<this.lightboxToolbarActions.length;x++){var Q=this.lightboxToolbarActions[x];Q.elem=e(Q.fn,Q.icon,Q.tooltip)}null!=g.refreshBtn&&e(mxUtils.bind(this,function(F){g.refreshBtn.url?window.location.href=g.refreshBtn.url:
+window.location.reload();mxEvent.consume(F)}),Editor.refreshImage,mxResources.get("refresh",null,"Refresh"));null!=g.fullscreenBtn&&window.self!==window.top&&e(mxUtils.bind(this,function(F){g.fullscreenBtn.url?a.openLink(g.fullscreenBtn.url):a.openLink(window.location.href);mxEvent.consume(F)}),Editor.fullscreenImage,mxResources.get("openInNewWindow",null,"Open in New Window"));(g.closeBtn&&window.self===window.top||a.lightbox&&("1"==urlParams.close||this.container!=document.body))&&e(mxUtils.bind(this,
+function(F){"1"==urlParams.close||g.closeBtn?window.close():(this.destroy(),mxEvent.consume(F))}),Editor.closeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display="none";a.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");a.container.appendChild(this.chromelessToolbar);mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(F){mxEvent.isTouchEvent(F)||(mxEvent.isShiftDown(F)||
+J(30),G())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(F){mxEvent.consume(F)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",mxUtils.bind(this,function(F){a.tooltipHandler.resetTimer();a.tooltipHandler.hideTooltip();mxEvent.isShiftDown(F)?G():J(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(F){mxEvent.isShiftDown(F)?G():J(100);mxEvent.consume(F)}));mxEvent.addListener(this.chromelessToolbar,
+"mouseleave",mxUtils.bind(this,function(F){mxEvent.isTouchEvent(F)||J(30)}));var R=a.getTolerance();a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(F,L){this.startX=L.getGraphX();this.startY=L.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(F,L){},mouseUp:function(F,L){mxEvent.isTouchEvent(L.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<R&&Math.abs(this.scrollTop-a.container.scrollTop)<R&&
+Math.abs(this.startX-L.getGraphX())<R&&Math.abs(this.startY-L.getGraphY())<R&&(0<parseFloat(f.chromelessToolbar.style.opacity||0)?G():J(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var P=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var F=this.graph.getPagePadding(),L=this.graph.getPageSize();this.translate.x=F.x-(this.x0||0)*L.width;this.translate.y=F.y-(this.y0||0)*L.height}P.apply(this,
+arguments)};if(!a.isViewer()){var Z=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var F=this.getPageLayout(),L=this.getPagePadding(),T=this.getPageSize(),ca=Math.ceil(2*L.x+F.width*T.width),fa=Math.ceil(2*L.y+F.height*T.height),wa=a.minimumGraphSize;if(null==wa||wa.width!=ca||wa.height!=fa)a.minimumGraphSize=new mxRectangle(0,0,ca,fa);ca=L.x-F.x*T.width;L=L.y-F.y*T.height;this.autoTranslate||this.view.translate.x==ca&&this.view.translate.y==
+L?Z.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=F.x,this.view.y0=F.y,F=a.view.translate.x,T=a.view.translate.y,a.view.setTranslate(ca,L),a.container.scrollLeft+=Math.round((ca-F)*a.view.scale),a.container.scrollTop+=Math.round((L-T)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var U=a.view.getBackgroundPane(),V=a.view.getDrawPane();a.cumulativeZoomFactor=1;var ia=null,ha=null,ba=null,qa=null,O=null,S=function(F){null!=
+ia&&window.clearTimeout(ia);0<=F&&window.setTimeout(function(){if(!a.isMouseDown||qa)ia=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)),V.style.transformOrigin="",U.style.transformOrigin="",mxClient.IS_SF?(V.style.transform="scale(1)",
+U.style.transform="scale(1)",window.setTimeout(function(){V.style.transform="";U.style.transform=""},0)):(V.style.transform="",U.style.transform=""),a.view.getDecoratorPane().style.opacity="",a.view.getOverlayPane().style.opacity="");var L=new mxPoint(a.container.scrollLeft,a.container.scrollTop),T=mxUtils.getOffset(a.container),ca=a.view.scale,fa=0,wa=0;null!=ha&&(fa=a.container.offsetWidth/2-ha.x+T.x,wa=a.container.offsetHeight/2-ha.y+T.y);a.zoom(a.cumulativeZoomFactor,null,a.isFastZoomEnabled()?
+20:null);a.view.scale!=ca&&(null!=ba&&(fa+=L.x-ba.x,wa+=L.y-ba.y),null!=b&&f.chromelessResize(!1,null,fa*(a.cumulativeZoomFactor-1),wa*(a.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==fa&&0==wa||(a.container.scrollLeft-=fa*(a.cumulativeZoomFactor-1),a.container.scrollTop-=wa*(a.cumulativeZoomFactor-1)));null!=O&&V.setAttribute("filter",O);a.cumulativeZoomFactor=1;O=qa=ha=ba=ia=null}),null!=F?F:a.isFastZoomEnabled()?f.wheelZoomDelay:f.lazyZoomDelay)},0)};a.lazyZoom=function(F,L,
+T,ca){ca=null!=ca?ca:this.zoomFactor;(L=L||!a.scrollbars)&&(ha=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));F?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=ca,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-
+.05)/this.view.scale:(this.cumulativeZoomFactor/=ca,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,160))/this.view.scale;a.isFastZoomEnabled()&&(null==O&&""!=V.getAttribute("filter")&&(O=V.getAttribute("filter"),V.removeAttribute("filter")),ba=new mxPoint(a.container.scrollLeft,a.container.scrollTop),F=L||null==ha?a.container.scrollLeft+a.container.clientWidth/
+2:ha.x+a.container.scrollLeft-a.container.offsetLeft,ca=L||null==ha?a.container.scrollTop+a.container.clientHeight/2:ha.y+a.container.scrollTop-a.container.offsetTop,V.style.transformOrigin=F+"px "+ca+"px",V.style.transform="scale("+this.cumulativeZoomFactor+")",U.style.transformOrigin=F+"px "+ca+"px",U.style.transform="scale("+this.cumulativeZoomFactor+")",null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node&&(F=a.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(F.style,
+"transform-origin",(L||null==ha?a.container.clientWidth/2+a.container.scrollLeft-F.offsetLeft+"px":ha.x+a.container.scrollLeft-F.offsetLeft-a.container.offsetLeft+"px")+" "+(L||null==ha?a.container.clientHeight/2+a.container.scrollTop-F.offsetTop+"px":ha.y+a.container.scrollTop-F.offsetTop-a.container.offsetTop+"px")),mxUtils.setPrefixedStyle(F.style,"transform","scale("+this.cumulativeZoomFactor+")")),a.view.getDecoratorPane().style.opacity="0",a.view.getOverlayPane().style.opacity="0",null!=f.hoverIcons&&
+f.hoverIcons.reset());S(a.isFastZoomEnabled()?T:0)};mxEvent.addGestureListeners(a.container,function(F){null!=ia&&window.clearTimeout(ia)},null,function(F){1!=a.cumulativeZoomFactor&&S(0)});mxEvent.addListener(a.container,"scroll",function(F){null==ia||a.isMouseDown||1==a.cumulativeZoomFactor||S(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(F,L,T,ca,fa){a.fireEvent(new mxEventObject("wheel"));if(null==this.dialogs||0==this.dialogs.length)if(!a.scrollbars&&!T&&a.isScrollWheelEvent(F))T=
+a.view.getTranslate(),ca=40/a.view.scale,mxEvent.isShiftDown(F)?a.view.setTranslate(T.x+(L?-ca:ca),T.y):a.view.setTranslate(T.x,T.y+(L?ca:-ca));else if(T||a.isZoomWheelEvent(F))for(var wa=mxEvent.getSource(F);null!=wa;){if(wa==a.container)return a.tooltipHandler.hideTooltip(),ha=null!=ca&&null!=fa?new mxPoint(ca,fa):new mxPoint(mxEvent.getClientX(F),mxEvent.getClientY(F)),qa=T,T=a.zoomFactor,ca=null,F.ctrlKey&&null!=F.deltaY&&40>Math.abs(F.deltaY)&&Math.round(F.deltaY)!=F.deltaY?T=1+Math.abs(F.deltaY)/
+20*(T-1):null!=F.movementY&&"pointermove"==F.type&&(T=1+Math.max(1,Math.abs(F.movementY))/20*(T-1),ca=-1),a.lazyZoom(L,null,ca,T),mxEvent.consume(F),!1;wa=wa.parentNode}}),a.container);a.panningHandler.zoomGraph=function(F){a.cumulativeZoomFactor=F.scale;a.lazyZoom(0<F.scale,!0);mxEvent.consume(F)}};EditorUi.prototype.addChromelessToolbarItems=function(a){a(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(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,f=60;null!=b&&(f=parseInt(b));this.editor.graph.maxFitScale=this.lightboxMaxFitScale;this.editor.graph.fit(f,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))};
@@ -2566,11 +2566,11 @@ this.container.appendChild(this.sidebarFooterContainer);this.container.appendChi
!0,0,mxUtils.bind(this,function(b){this.hsplitPosition=b;this.refresh()})))};EditorUi.prototype.createStatusContainer=function(){var a=document.createElement("a");a.className="geItem geStatus";return a};EditorUi.prototype.setStatusText=function(a){this.statusContainer.innerHTML=a;0==this.statusContainer.getElementsByTagName("div").length&&(this.statusContainer.innerText="",a=this.createStatusDiv(a),this.statusContainer.appendChild(a))};
EditorUi.prototype.createStatusDiv=function(a){var b=document.createElement("div");b.setAttribute("title",a);b.innerHTML=a;return b};EditorUi.prototype.createToolbar=function(a){return new Toolbar(this,a)};EditorUi.prototype.createSidebar=function(a){return new Sidebar(this,a)};EditorUi.prototype.createFormat=function(a){return new Format(this,a)};EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")};
EditorUi.prototype.createDiv=function(a){var b=document.createElement("div");b.className=a;return b};
-EditorUi.prototype.addSplitHandler=function(a,b,f,d){function g(x){if(null!=k){var A=new mxPoint(mxEvent.getClientX(x),mxEvent.getClientY(x));d(Math.max(0,n+(b?A.x-k.x:k.y-A.y)-f));mxEvent.consume(x);n!=r()&&(u=!0,m=null)}}function e(x){g(x);k=n=null}var k=null,n=null,u=!0,m=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var r=mxUtils.bind(this,function(){var x=parseInt(b?a.style.left:a.style.bottom);b||(x=x+f-this.footerHeight);return x});mxEvent.addGestureListeners(a,function(x){k=new mxPoint(mxEvent.getClientX(x),
-mxEvent.getClientY(x));n=r();u=!1;mxEvent.consume(x)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(x){if(!u&&this.hsplitClickEnabled){var A=null!=m?m-f:0;m=r();d(A);mxEvent.consume(x)}}));mxEvent.addGestureListeners(document,null,g,e);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,g,e)})};
+EditorUi.prototype.addSplitHandler=function(a,b,f,d){function g(x){if(null!=k){var B=new mxPoint(mxEvent.getClientX(x),mxEvent.getClientY(x));d(Math.max(0,n+(b?B.x-k.x:k.y-B.y)-f));mxEvent.consume(x);n!=r()&&(u=!0,m=null)}}function e(x){g(x);k=n=null}var k=null,n=null,u=!0,m=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var r=mxUtils.bind(this,function(){var x=parseInt(b?a.style.left:a.style.bottom);b||(x=x+f-this.footerHeight);return x});mxEvent.addGestureListeners(a,function(x){k=new mxPoint(mxEvent.getClientX(x),
+mxEvent.getClientY(x));n=r();u=!1;mxEvent.consume(x)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(x){if(!u&&this.hsplitClickEnabled){var B=null!=m?m-f:0;m=r();d(B);mxEvent.consume(x)}}));mxEvent.addGestureListeners(document,null,g,e);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,g,e)})};
EditorUi.prototype.prompt=function(a,b,f){a=new FilenameDialog(this,b,mxResources.get("apply"),function(d){f(parseFloat(d))},a);this.showDialog(a.container,300,80,!0,!0);a.init()};
EditorUi.prototype.handleError=function(a,b,f,d,g){a=null!=a&&null!=a.error?a.error:a;if(null!=a||null!=b){g=mxUtils.htmlEntities(mxResources.get("unknownError"));var e=mxResources.get("ok");b=null!=b?b:mxResources.get("error");null!=a&&null!=a.message&&(g=mxUtils.htmlEntities(a.message));this.showError(b,g,e,f,null,null,null,null,null,null,null,null,d?f:null)}else null!=f&&f()};
-EditorUi.prototype.showError=function(a,b,f,d,g,e,k,n,u,m,r,x,A){a=new ErrorDialog(this,a,b,f||mxResources.get("ok"),d,g,e,k,x,n,u);b=Math.ceil(null!=b?b.length/50:1);this.showDialog(a.container,m||340,r||100+20*b,!0,!1,A);a.init()};EditorUi.prototype.showDialog=function(a,b,f,d,g,e,k,n,u,m){this.editor.graph.tooltipHandler.resetTimer();this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,f,d,g,e,k,n,u,m);this.dialogs.push(this.dialog)};
+EditorUi.prototype.showError=function(a,b,f,d,g,e,k,n,u,m,r,x,B){a=new ErrorDialog(this,a,b,f||mxResources.get("ok"),d,g,e,k,x,n,u);b=Math.ceil(null!=b?b.length/50:1);this.showDialog(a.container,m||340,r||100+20*b,!0,!1,B);a.init()};EditorUi.prototype.showDialog=function(a,b,f,d,g,e,k,n,u,m){this.editor.graph.tooltipHandler.resetTimer();this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,f,d,g,e,k,n,u,m);this.dialogs.push(this.dialog)};
EditorUi.prototype.hideDialog=function(a,b,f){null!=this.dialogs&&0<this.dialogs.length&&(null==f||f==this.dialog.container.firstChild)&&(f=this.dialogs.pop(),0==f.close(a,b)?this.dialogs.push(f):(this.dialog=0<this.dialogs.length?this.dialogs[this.dialogs.length-1]:null,this.editor.fireEvent(new mxEventObject("hideDialog")),null==this.dialog&&"hidden"!=this.editor.graph.container.style.visibility&&window.setTimeout(mxUtils.bind(this,function(){this.editor.graph.isEditing()&&null!=this.editor.graph.cellEditor.textarea?
this.editor.graph.cellEditor.textarea.focus():(mxUtils.clearSelection(),this.editor.graph.container.focus())}),0)))};EditorUi.prototype.ctrlEnter=function(){var a=this.editor.graph;if(a.isEnabled())try{for(var b=a.getSelectionCells(),f=new mxDictionary,d=[],g=0;g<b.length;g++){var e=a.isTableCell(b[g])?a.model.getParent(b[g]):b[g];null==e||f.get(e)||(f.put(e,!0),d.push(e))}a.setSelectionCells(a.duplicateCells(d,!1))}catch(k){this.handleError(k)}};
EditorUi.prototype.pickColor=function(a,b){var f=this.editor.graph,d=f.cellEditor.saveSelection(),g=230+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12));a=new ColorDialog(this,mxUtils.rgba2hex(a)||"none",function(e){f.cellEditor.restoreSelection(d);b(e)},function(){f.cellEditor.restoreSelection(d)});this.showDialog(a.container,230,g,!0,!1);a.init()};
@@ -2594,13 +2594,13 @@ EditorUi.prototype.showDataDialog=function(a){null!=a&&(a=new EditDataDialog(thi
EditorUi.prototype.showBackgroundImageDialog=function(a,b){a=null!=a?a:mxUtils.bind(this,function(d){d=new ChangePageSetup(this,null,d);d.ignoreColor=!0;this.editor.graph.model.execute(d)});var f=mxUtils.prompt(mxResources.get("backgroundImage"),null!=b?b.src:"");null!=f&&0<f.length?(b=new Image,b.onload=function(){a(new mxImage(f,b.width,b.height),!1)},b.onerror=function(){a(null,!0);mxUtils.alert(mxResources.get("fileNotFound"))},b.src=f):a(null)};
EditorUi.prototype.setBackgroundImage=function(a){this.editor.graph.setBackgroundImage(a);this.editor.graph.view.validateBackgroundImage();this.fireEvent(new mxEventObject("backgroundImageChanged"))};EditorUi.prototype.confirm=function(a,b,f){mxUtils.confirm(a)?null!=b&&b():null!=f&&f()};EditorUi.prototype.createOutline=function(a){var b=new mxOutline(this.editor.graph);mxEvent.addListener(window,"resize",function(){b.update(!1)});return b};
EditorUi.prototype.altShiftActions={67:"clearWaypoints",65:"connectionArrows",76:"editLink",80:"connectionPoints",84:"editTooltip",86:"pasteSize",88:"copySize",66:"copyData",69:"pasteData"};
-EditorUi.prototype.createKeyHandler=function(a){function b(x,A,C){if(!d.isSelectionEmpty()&&d.isEnabled()){A=null!=A?A:1;var F=d.getCompositeParents(d.getSelectionCells()),K=0<F.length?F[0]:null;if(null!=K)if(C){d.getModel().beginUpdate();try{for(K=0;K<F.length;K++)if(d.getModel().isVertex(F[K])&&d.isCellResizable(F[K])){var D=d.getCellGeometry(F[K]);null!=D&&(D=D.clone(),37==x?D.width=Math.max(0,D.width-A):38==x?D.height=Math.max(0,D.height-A):39==x?D.width+=A:40==x&&(D.height+=A),d.getModel().setGeometry(F[K],
-D))}}finally{d.getModel().endUpdate()}}else{D=d.model.getParent(K);var O=d.getView().scale;C=null;1==d.getSelectionCount()&&d.model.isVertex(K)&&null!=d.layoutManager&&!d.isCellLocked(K)&&(C=d.layoutManager.getLayout(D));if(null!=C&&C.constructor==mxStackLayout)A=D.getIndex(K),37==x||38==x?d.model.add(D,K,Math.max(0,A-1)):(39==x||40==x)&&d.model.add(D,K,Math.min(d.model.getChildCount(D),A+1));else{var Q=d.graphHandler;null!=Q&&(null==Q.first&&Q.start(K,0,0,F),null!=Q.first&&(K=F=0,37==x?F=-A:38==
-x?K=-A:39==x?F=A:40==x&&(K=A),Q.currentDx+=F*O,Q.currentDy+=K*O,Q.checkPreview(),Q.updatePreview()),null!=k&&window.clearTimeout(k),k=window.setTimeout(function(){if(null!=Q.first){var R=Q.roundLength(Q.currentDx/O),P=Q.roundLength(Q.currentDy/O);Q.moveCells(Q.cells,R,P);Q.reset()}},400))}}}}var f=this,d=this.editor.graph,g=new mxKeyHandler(d),e=g.isEventIgnored;g.isEventIgnored=function(x){return!(mxEvent.isShiftDown(x)&&9==x.keyCode)&&(!this.isControlDown(x)||mxEvent.isShiftDown(x)||90!=x.keyCode&&
+EditorUi.prototype.createKeyHandler=function(a){function b(x,B,C){if(!d.isSelectionEmpty()&&d.isEnabled()){B=null!=B?B:1;var G=d.getCompositeParents(d.getSelectionCells()),J=0<G.length?G[0]:null;if(null!=J)if(C){d.getModel().beginUpdate();try{for(J=0;J<G.length;J++)if(d.getModel().isVertex(G[J])&&d.isCellResizable(G[J])){var D=d.getCellGeometry(G[J]);null!=D&&(D=D.clone(),37==x?D.width=Math.max(0,D.width-B):38==x?D.height=Math.max(0,D.height-B):39==x?D.width+=B:40==x&&(D.height+=B),d.getModel().setGeometry(G[J],
+D))}}finally{d.getModel().endUpdate()}}else{D=d.model.getParent(J);var N=d.getView().scale;C=null;1==d.getSelectionCount()&&d.model.isVertex(J)&&null!=d.layoutManager&&!d.isCellLocked(J)&&(C=d.layoutManager.getLayout(D));if(null!=C&&C.constructor==mxStackLayout)B=D.getIndex(J),37==x||38==x?d.model.add(D,J,Math.max(0,B-1)):(39==x||40==x)&&d.model.add(D,J,Math.min(d.model.getChildCount(D),B+1));else{var Q=d.graphHandler;null!=Q&&(null==Q.first&&Q.start(J,0,0,G),null!=Q.first&&(J=G=0,37==x?G=-B:38==
+x?J=-B:39==x?G=B:40==x&&(J=B),Q.currentDx+=G*N,Q.currentDy+=J*N,Q.checkPreview(),Q.updatePreview()),null!=k&&window.clearTimeout(k),k=window.setTimeout(function(){if(null!=Q.first){var R=Q.roundLength(Q.currentDx/N),P=Q.roundLength(Q.currentDy/N);Q.moveCells(Q.cells,R,P);Q.reset()}},400))}}}}var f=this,d=this.editor.graph,g=new mxKeyHandler(d),e=g.isEventIgnored;g.isEventIgnored=function(x){return!(mxEvent.isShiftDown(x)&&9==x.keyCode)&&(!this.isControlDown(x)||mxEvent.isShiftDown(x)||90!=x.keyCode&&
89!=x.keyCode&&188!=x.keyCode&&190!=x.keyCode&&85!=x.keyCode)&&(66!=x.keyCode&&73!=x.keyCode||!this.isControlDown(x)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&!mxClient.IS_SF)&&e.apply(this,arguments)};g.isEnabledForEvent=function(x){return!mxEvent.isConsumed(x)&&this.isGraphEvent(x)&&this.isEnabled()&&(null==f.dialogs||0==f.dialogs.length)};g.isControlDown=function(x){return mxEvent.isControlDown(x)||mxClient.IS_MAC&&x.metaKey};var k=null,n={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,
-39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},u=g.getFunction;mxKeyHandler.prototype.getFunction=function(x){if(d.isEnabled()){if(mxEvent.isShiftDown(x)&&mxEvent.isAltDown(x)){var A=f.actions.get(f.altShiftActions[x.keyCode]);if(null!=A)return A.funct}if(null!=n[x.keyCode]&&!d.isSelectionEmpty())if(!this.isControlDown(x)&&mxEvent.isShiftDown(x)&&mxEvent.isAltDown(x)){if(d.model.isVertex(d.getSelectionCell()))return function(){var C=d.connectVertex(d.getSelectionCell(),n[x.keyCode],
+39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},u=g.getFunction;mxKeyHandler.prototype.getFunction=function(x){if(d.isEnabled()){if(mxEvent.isShiftDown(x)&&mxEvent.isAltDown(x)){var B=f.actions.get(f.altShiftActions[x.keyCode]);if(null!=B)return B.funct}if(null!=n[x.keyCode]&&!d.isSelectionEmpty())if(!this.isControlDown(x)&&mxEvent.isShiftDown(x)&&mxEvent.isAltDown(x)){if(d.model.isVertex(d.getSelectionCell()))return function(){var C=d.connectVertex(d.getSelectionCell(),n[x.keyCode],
d.defaultEdgeLength,x,!0);null!=C&&0<C.length&&(1==C.length&&d.model.isEdge(C[0])?d.setSelectionCell(d.model.getTerminal(C[0],!1)):d.setSelectionCell(C[C.length-1]),d.scrollCellToVisible(d.getSelectionCell()),null!=f.hoverIcons&&f.hoverIcons.update(d.view.getState(d.getSelectionCell())))}}else return this.isControlDown(x)?function(){b(x.keyCode,mxEvent.isShiftDown(x)?d.gridSize:null,!0)}:function(){b(x.keyCode,mxEvent.isShiftDown(x)?d.gridSize:null)}}return u.apply(this,arguments)};g.bindAction=mxUtils.bind(this,
-function(x,A,C,F){var K=this.actions.get(C);null!=K&&(C=function(){K.isEnabled()&&K.funct()},A?F?g.bindControlShiftKey(x,C):g.bindControlKey(x,C):F?g.bindShiftKey(x,C):g.bindKey(x,C))});var m=this,r=g.escape;g.escape=function(x){r.apply(this,arguments)};g.enter=function(){};g.bindControlShiftKey(36,function(){d.exitGroup()});g.bindControlShiftKey(35,function(){d.enterGroup()});g.bindShiftKey(36,function(){d.home()});g.bindKey(35,function(){d.refresh()});g.bindAction(107,!0,"zoomIn");g.bindAction(109,
+function(x,B,C,G){var J=this.actions.get(C);null!=J&&(C=function(){J.isEnabled()&&J.funct()},B?G?g.bindControlShiftKey(x,C):g.bindControlKey(x,C):G?g.bindShiftKey(x,C):g.bindKey(x,C))});var m=this,r=g.escape;g.escape=function(x){r.apply(this,arguments)};g.enter=function(){};g.bindControlShiftKey(36,function(){d.exitGroup()});g.bindControlShiftKey(35,function(){d.enterGroup()});g.bindShiftKey(36,function(){d.home()});g.bindKey(35,function(){d.refresh()});g.bindAction(107,!0,"zoomIn");g.bindAction(109,
!0,"zoomOut");g.bindAction(80,!0,"print");g.bindAction(79,!0,"outline",!0);if(!this.editor.chromeless||this.editor.editable)g.bindControlKey(36,function(){d.isEnabled()&&d.foldCells(!0)}),g.bindControlKey(35,function(){d.isEnabled()&&d.foldCells(!1)}),g.bindControlKey(13,function(){m.ctrlEnter()}),g.bindAction(8,!1,"delete"),g.bindAction(8,!0,"deleteAll"),g.bindAction(8,!1,"deleteLabels",!0),g.bindAction(46,!1,"delete"),g.bindAction(46,!0,"deleteAll"),g.bindAction(46,!1,"deleteLabels",!0),g.bindAction(36,
!1,"resetView"),g.bindAction(72,!0,"fitWindow",!0),g.bindAction(74,!0,"fitPage"),g.bindAction(74,!0,"fitTwoPages",!0),g.bindAction(48,!0,"customZoom"),g.bindAction(82,!0,"turn"),g.bindAction(82,!0,"clearDefaultStyle",!0),g.bindAction(83,!0,"save"),g.bindAction(83,!0,"saveAs",!0),g.bindAction(65,!0,"selectAll"),g.bindAction(65,!0,"selectNone",!0),g.bindAction(73,!0,"selectVertices",!0),g.bindAction(69,!0,"selectEdges",!0),g.bindAction(69,!0,"editStyle"),g.bindAction(66,!0,"bold"),g.bindAction(66,!0,
"toBack",!0),g.bindAction(70,!0,"toFront",!0),g.bindAction(68,!0,"duplicate"),g.bindAction(68,!0,"setAsDefaultStyle",!0),g.bindAction(90,!0,"undo"),g.bindAction(89,!0,"autosize",!0),g.bindAction(88,!0,"cut"),g.bindAction(67,!0,"copy"),g.bindAction(86,!0,"paste"),g.bindAction(71,!0,"group"),g.bindAction(77,!0,"editData"),g.bindAction(71,!0,"grid",!0),g.bindAction(73,!0,"italic"),g.bindAction(76,!0,"lockUnlock"),g.bindAction(76,!0,"layers",!0),g.bindAction(80,!0,"formatPanel",!0),g.bindAction(85,!0,
@@ -2639,15 +2639,15 @@ Sidebar.prototype.addEntries=function(a){for(var b=0;b<a.length;b++)mxUtils.bind
mxUtils.bind(this,function(){var e=this.editorUi.stringToCells(Graph.decompress(f.xml));return this.createVertexTemplateFromCells(e,f.w,f.h,f.title||"",!0,!1,!0)}))})(a[b])};Sidebar.prototype.setCurrentSearchEntryLibrary=function(a,b){this.currentSearchEntryLibrary=null!=a?{id:a,lib:b}:null};
Sidebar.prototype.addEntry=function(a,b){if(null!=this.taglist&&null!=a&&0<a.length){null!=this.currentSearchEntryLibrary&&(b.parentLibraries=[this.currentSearchEntryLibrary]);a=a.toLowerCase().replace(/[\/,\(\)]/g," ").split(" ");for(var f=[],d={},g=0;g<a.length;g++){null==d[a[g]]&&(d[a[g]]=!0,f.push(a[g]));var e=a[g].replace(/\.*\d*$/,"");e!=a[g]&&null==d[e]&&(d[e]=!0,f.push(e))}for(g=0;g<f.length;g++)this.addEntryForTag(f[g],b)}return b};
Sidebar.prototype.addEntryForTag=function(a,b){if(null!=a&&1<a.length){var f=this.taglist[a];"object"!==typeof f&&(f={entries:[]},this.taglist[a]=f);f.entries.push(b)}};
-Sidebar.prototype.searchEntries=function(a,b,f,d,g){if(null!=this.taglist&&null!=a){var e=a.toLowerCase().split(" ");g=new mxDictionary;var k=(f+1)*b;a=[];for(var n=0,u=0;u<e.length;u++)if(0<e[u].length){var m=this.taglist[e[u]],r=new mxDictionary;if(null!=m){var x=m.entries;a=[];for(var A=0;A<x.length;A++)if(m=x[A],0==n==(null==g.get(m))&&(r.put(m,m),a.push(m),u==e.length-1&&a.length==k)){d(a.slice(f*b,k),k,!0,e);return}}else a=[];g=r;n++}g=a.length;d(a.slice(f*b,(f+1)*b),g,!1,e)}else d([],null,
+Sidebar.prototype.searchEntries=function(a,b,f,d,g){if(null!=this.taglist&&null!=a){var e=a.toLowerCase().split(" ");g=new mxDictionary;var k=(f+1)*b;a=[];for(var n=0,u=0;u<e.length;u++)if(0<e[u].length){var m=this.taglist[e[u]],r=new mxDictionary;if(null!=m){var x=m.entries;a=[];for(var B=0;B<x.length;B++)if(m=x[B],0==n==(null==g.get(m))&&(r.put(m,m),a.push(m),u==e.length-1&&a.length==k)){d(a.slice(f*b,k),k,!0,e);return}}else a=[];g=r;n++}g=a.length;d(a.slice(f*b,(f+1)*b),g,!1,e)}else d([],null,
null,e)};Sidebar.prototype.filterTags=function(a){if(null!=a){a=a.split(" ");for(var b=[],f={},d=0;d<a.length;d++)null==f[a[d]]&&(f[a[d]]="1",b.push(a[d]));return b.join(" ")}return null};Sidebar.prototype.cloneCell=function(a,b){a=a.clone();null!=b&&(a.value=b);return a};Sidebar.prototype.showPopupMenuForEntry=function(a,b,f){};
Sidebar.prototype.addSearchPalette=function(a){var b=document.createElement("div");b.style.visibility="hidden";this.container.appendChild(b);var f=document.createElement("div");f.className="geSidebar";f.style.boxSizing="border-box";f.style.overflow="hidden";f.style.width="100%";f.style.padding="8px";f.style.paddingTop="14px";f.style.paddingBottom="0px";a||(f.style.display="none");var d=document.createElement("div");d.style.whiteSpace="nowrap";d.style.textOverflow="clip";d.style.paddingBottom="8px";
d.style.cursor="default";var g=document.createElement("input");g.setAttribute("placeholder",mxResources.get("searchShapes"));g.setAttribute("type","text");g.style.fontSize="12px";g.style.overflow="hidden";g.style.boxSizing="border-box";g.style.border="solid 1px #d5d5d5";g.style.borderRadius="4px";g.style.width="100%";g.style.outline="none";g.style.padding="6px";g.style.paddingRight="20px";d.appendChild(g);var e=document.createElement("img");e.setAttribute("src",Sidebar.prototype.searchImage);e.setAttribute("title",
-mxResources.get("search"));e.style.position="relative";e.style.left="-18px";e.style.top="1px";e.style.background="url('"+this.editorUi.editor.transparentImage+"')";d.appendChild(e);f.appendChild(d);var k=document.createElement("center"),n=mxUtils.button(mxResources.get("moreResults"),function(){K()});n.style.display="none";n.style.lineHeight="normal";n.style.fontSize="12px";n.style.padding="6px 12px 6px 12px";n.style.marginTop="4px";n.style.marginBottom="8px";k.style.paddingTop="4px";k.style.paddingBottom=
-"4px";k.appendChild(n);f.appendChild(k);var u="",m=!1,r=!1,x=0,A={},C=12,F=mxUtils.bind(this,function(){m=!1;this.currentSearch=null;for(var D=f.firstChild;null!=D;){var O=D.nextSibling;D!=d&&D!=k&&D.parentNode.removeChild(D);D=O}});mxEvent.addListener(e,"click",function(){e.getAttribute("src")==Dialog.prototype.closeImage&&(e.setAttribute("src",Sidebar.prototype.searchImage),e.setAttribute("title",mxResources.get("search")),n.style.display="none",u=g.value="",F());g.focus()});var K=mxUtils.bind(this,
-function(){C=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10)));this.hideTooltip();if(""!=g.value){if(null!=k.parentNode&&(u!=g.value&&(F(),u=g.value,A={},r=!1,x=0),!m&&!r)){n.setAttribute("disabled","true");n.style.display="";n.style.cursor="wait";n.innerHTML=mxResources.get("loading")+"...";m=!0;var D={};this.currentSearch=D;this.searchEntries(u,C,x,mxUtils.bind(this,function(O,Q,R,P){if(this.currentSearch==D){O=null!=O?O:[];m=!1;x++;this.insertSearchHint(f,u,C,x,O,Q,R,P);
-0==O.length&&1==x&&(u="");null!=k.parentNode&&k.parentNode.removeChild(k);for(Q=0;Q<O.length;Q++)mxUtils.bind(this,function(Z){try{var T=Z();null==A[T.innerHTML]?(A[T.innerHTML]=null!=Z.parentLibraries?Z.parentLibraries.slice():[],f.appendChild(T)):null!=Z.parentLibraries&&(A[T.innerHTML]=A[T.innerHTML].concat(Z.parentLibraries));mxEvent.addGestureListeners(T,null,null,mxUtils.bind(this,function(U){var fa=A[T.innerHTML];mxEvent.isPopupTrigger(U)&&this.showPopupMenuForEntry(T,fa,U)}));mxEvent.disableContextMenu(T)}catch(U){}})(O[Q]);
-R?(n.removeAttribute("disabled"),n.innerHTML=mxResources.get("moreResults")):(n.innerHTML=mxResources.get("reset"),n.style.display="none",r=!0);n.style.cursor="";f.appendChild(k)}}),mxUtils.bind(this,function(){n.style.cursor=""}))}}else F(),u=g.value="",A={},n.style.display="none",r=!1,g.focus()});this.searchShapes=function(D){g.value=D;K()};mxEvent.addListener(g,"keydown",mxUtils.bind(this,function(D){13==D.keyCode&&(K(),mxEvent.consume(D))}));mxEvent.addListener(g,"keyup",mxUtils.bind(this,function(D){""==
+mxResources.get("search"));e.style.position="relative";e.style.left="-18px";e.style.top="1px";e.style.background="url('"+this.editorUi.editor.transparentImage+"')";d.appendChild(e);f.appendChild(d);var k=document.createElement("center"),n=mxUtils.button(mxResources.get("moreResults"),function(){J()});n.style.display="none";n.style.lineHeight="normal";n.style.fontSize="12px";n.style.padding="6px 12px 6px 12px";n.style.marginTop="4px";n.style.marginBottom="8px";k.style.paddingTop="4px";k.style.paddingBottom=
+"4px";k.appendChild(n);f.appendChild(k);var u="",m=!1,r=!1,x=0,B={},C=12,G=mxUtils.bind(this,function(){m=!1;this.currentSearch=null;for(var D=f.firstChild;null!=D;){var N=D.nextSibling;D!=d&&D!=k&&D.parentNode.removeChild(D);D=N}});mxEvent.addListener(e,"click",function(){e.getAttribute("src")==Dialog.prototype.closeImage&&(e.setAttribute("src",Sidebar.prototype.searchImage),e.setAttribute("title",mxResources.get("search")),n.style.display="none",u=g.value="",G());g.focus()});var J=mxUtils.bind(this,
+function(){C=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10)));this.hideTooltip();if(""!=g.value){if(null!=k.parentNode&&(u!=g.value&&(G(),u=g.value,B={},r=!1,x=0),!m&&!r)){n.setAttribute("disabled","true");n.style.display="";n.style.cursor="wait";n.innerHTML=mxResources.get("loading")+"...";m=!0;var D={};this.currentSearch=D;this.searchEntries(u,C,x,mxUtils.bind(this,function(N,Q,R,P){if(this.currentSearch==D){N=null!=N?N:[];m=!1;x++;this.insertSearchHint(f,u,C,x,N,Q,R,P);
+0==N.length&&1==x&&(u="");null!=k.parentNode&&k.parentNode.removeChild(k);for(Q=0;Q<N.length;Q++)mxUtils.bind(this,function(Z){try{var U=Z();null==B[U.innerHTML]?(B[U.innerHTML]=null!=Z.parentLibraries?Z.parentLibraries.slice():[],f.appendChild(U)):null!=Z.parentLibraries&&(B[U.innerHTML]=B[U.innerHTML].concat(Z.parentLibraries));mxEvent.addGestureListeners(U,null,null,mxUtils.bind(this,function(V){var ia=B[U.innerHTML];mxEvent.isPopupTrigger(V)&&this.showPopupMenuForEntry(U,ia,V)}));mxEvent.disableContextMenu(U)}catch(V){}})(N[Q]);
+R?(n.removeAttribute("disabled"),n.innerHTML=mxResources.get("moreResults")):(n.innerHTML=mxResources.get("reset"),n.style.display="none",r=!0);n.style.cursor="";f.appendChild(k)}}),mxUtils.bind(this,function(){n.style.cursor=""}))}}else G(),u=g.value="",B={},n.style.display="none",r=!1,g.focus()});this.searchShapes=function(D){g.value=D;J()};mxEvent.addListener(g,"keydown",mxUtils.bind(this,function(D){13==D.keyCode&&(J(),mxEvent.consume(D))}));mxEvent.addListener(g,"keyup",mxUtils.bind(this,function(D){""==
g.value?(e.setAttribute("src",Sidebar.prototype.searchImage),e.setAttribute("title",mxResources.get("search"))):(e.setAttribute("src",Dialog.prototype.closeImage),e.setAttribute("title",mxResources.get("reset")));""==g.value?(r=!0,n.style.display="none"):g.value!=u?(n.style.display="none",r=!1):m||(n.style.display=r?"none":"")}));mxEvent.addListener(g,"mousedown",function(D){D.stopPropagation&&D.stopPropagation();D.cancelBubble=!0});mxEvent.addListener(g,"selectstart",function(D){D.stopPropagation&&
D.stopPropagation();D.cancelBubble=!0});a=document.createElement("div");a.appendChild(f);this.container.appendChild(a);this.palettes.search=[b,a]};
Sidebar.prototype.insertSearchHint=function(a,b,f,d,g,e,k,n){0==g.length&&1==d&&(f=document.createElement("div"),f.className="geTitle",f.style.cssText="background-color:transparent;border-color:transparent;color:gray;padding:6px 0px 0px 0px !important;margin:4px 8px 4px 8px;text-align:center;cursor:default !important",mxUtils.write(f,mxResources.get("noResultsFor",[b])),a.appendChild(f))};
@@ -2770,42 +2770,42 @@ Sidebar.prototype.updateShapes=function(a,b){var f=this.editorUi.editor.graph,d=
0;n<b.length;n++){var u=b[n];if(f.getModel().isVertex(u)==f.getModel().isVertex(a)||f.getModel().isEdge(u)==f.getModel().isEdge(a)){var m=f.getCellStyle(b[n],!1);f.getModel().setStyle(u,e);if("1"==mxUtils.getValue(m,"composite","0"))for(var r=f.model.getChildCount(u);0<=r;r--)f.model.remove(f.model.getChildAt(u,r));"umlLifeline"==m[mxConstants.STYLE_SHAPE]&&"umlLifeline"!=d[mxConstants.STYLE_SHAPE]&&(f.setCellStyles(mxConstants.STYLE_SHAPE,"umlLifeline",[u]),f.setCellStyles("participant",d[mxConstants.STYLE_SHAPE],
[u]));for(r=0;r<k.length;r++){var x=m[k[r]];null!=x&&f.setCellStyles(k[r],x,[u])}g.push(u)}}}finally{f.model.endUpdate()}return g};
Sidebar.prototype.createDropHandler=function(a,b,f,d){f=null!=f?f:!0;return mxUtils.bind(this,function(g,e,k,n,u,m){for(m=m?null:mxEvent.isTouchEvent(e)||mxEvent.isPenEvent(e)?document.elementFromPoint(mxEvent.getClientX(e),mxEvent.getClientY(e)):mxEvent.getSource(e);null!=m&&m!=this.container;)m=m.parentNode;if(null==m&&g.isEnabled()){a=g.getImportableCells(a);if(0<a.length){g.stopEditing();m=null==k||mxEvent.isAltDown(e)?!1:g.isValidDropTarget(k,a,e);var r=null;null==k||m||(k=null);if(!g.isCellLocked(k||
-g.getDefaultParent())){g.model.beginUpdate();try{n=Math.round(n);u=Math.round(u);if(b&&g.isSplitTarget(k,a,e)){var x=g.view.scale,A=g.view.translate,C=(n+A.x)*x,F=(u+A.y)*x,K=g.cloneCells(a);g.splitEdge(k,K,null,n-d.width/2,u-d.height/2,C,F);r=K}else 0<a.length&&(r=g.importCells(a,n,u,k));if(null!=g.layoutManager){var D=g.layoutManager.getLayout(k);if(null!=D)for(x=g.view.scale,A=g.view.translate,C=(n+A.x)*x,F=(u+A.y)*x,k=0;k<r.length;k++)D.moveCell(r[k],C,F)}!f||null!=e&&mxEvent.isShiftDown(e)||
-g.fireEvent(new mxEventObject("cellsInserted","cells",r))}catch(O){this.editorUi.handleError(O)}finally{g.model.endUpdate()}null!=r&&0<r.length&&(g.scrollCellToVisible(r[0]),g.setSelectionCells(r));g.editAfterInsert&&null!=e&&mxEvent.isMouseEvent(e)&&null!=r&&1==r.length&&window.setTimeout(function(){g.startEditing(r[0])},0)}}mxEvent.consume(e)}})};
+g.getDefaultParent())){g.model.beginUpdate();try{n=Math.round(n);u=Math.round(u);if(b&&g.isSplitTarget(k,a,e)){var x=g.view.scale,B=g.view.translate,C=(n+B.x)*x,G=(u+B.y)*x,J=g.cloneCells(a);g.splitEdge(k,J,null,n-d.width/2,u-d.height/2,C,G);r=J}else 0<a.length&&(r=g.importCells(a,n,u,k));if(null!=g.layoutManager){var D=g.layoutManager.getLayout(k);if(null!=D)for(x=g.view.scale,B=g.view.translate,C=(n+B.x)*x,G=(u+B.y)*x,k=0;k<r.length;k++)D.moveCell(r[k],C,G)}!f||null!=e&&mxEvent.isShiftDown(e)||
+g.fireEvent(new mxEventObject("cellsInserted","cells",r))}catch(N){this.editorUi.handleError(N)}finally{g.model.endUpdate()}null!=r&&0<r.length&&(g.scrollCellToVisible(r[0]),g.setSelectionCells(r));g.editAfterInsert&&null!=e&&mxEvent.isMouseEvent(e)&&null!=r&&1==r.length&&window.setTimeout(function(){g.startEditing(r[0])},0)}}mxEvent.consume(e)}})};
Sidebar.prototype.createDragPreview=function(a,b){var f=document.createElement("div");f.className="geDragPreview";f.style.width=a+"px";f.style.height=b+"px";return f};
-Sidebar.prototype.dropAndConnect=function(a,b,f,d,g){var e=this.getDropAndConnectGeometry(a,b[d],f,b),k=[];if(null!=e){var n=this.editorUi.editor.graph,u=null;n.model.beginUpdate();try{var m=n.getCellGeometry(a),r=n.getCellGeometry(b[d]),x=n.model.getParent(a),A=!0;if(null!=n.layoutManager){var C=n.layoutManager.getLayout(x);null!=C&&C.constructor==mxStackLayout&&(A=!1)}k=n.model.isEdge(a)?null:n.view.getState(x);var F=C=0;if(null!=k){var K=k.origin;C=K.x;F=K.y;var D=e.getTerminalPoint(!1);null!=
-D&&(D.x+=K.x,D.y+=K.y)}var O=!n.isTableRow(a)&&!n.isTableCell(a)&&(n.model.isEdge(a)||null!=m&&!m.relative&&A),Q=n.getCellAt((e.x+C+n.view.translate.x)*n.view.scale,(e.y+F+n.view.translate.y)*n.view.scale,null,null,null,function(Z,T,U){return!n.isContainer(Z.cell)});if(null!=Q&&Q!=x)k=n.view.getState(Q),null!=k&&(K=k.origin,x=Q,O=!0,n.model.isEdge(a)||(e.x-=K.x-C,e.y-=K.y-F));else if(!A||n.isTableRow(a)||n.isTableCell(a))e.x+=C,e.y+=F;C=r.x;F=r.y;n.model.isEdge(b[d])&&(F=C=0);k=b=n.importCells(b,
-e.x-(O?C:0),e.y-(O?F:0),O?x:null);if(n.model.isEdge(a))n.model.setTerminal(a,b[d],f==mxConstants.DIRECTION_NORTH);else if(n.model.isEdge(b[d])){n.model.setTerminal(b[d],a,!0);var R=n.getCellGeometry(b[d]);R.points=null;if(null!=R.getTerminalPoint(!1))R.setTerminalPoint(e.getTerminalPoint(!1),!1);else if(O&&n.model.isVertex(x)){var P=n.view.getState(x);K=P.cell!=n.view.currentRoot?P.origin:new mxPoint(0,0);n.cellsMoved(b,K.x,K.y,null,null,!0)}}else r=n.getCellGeometry(b[d]),C=e.x-Math.round(r.x),F=
-e.y-Math.round(r.y),e.x=Math.round(r.x),e.y=Math.round(r.y),n.model.setGeometry(b[d],e),n.cellsMoved(b,C,F,null,null,!0),k=b.slice(),u=1==k.length?k[0]:null,b.push(n.insertEdge(null,null,"",a,b[d],n.createCurrentEdgeStyle()));null!=g&&mxEvent.isShiftDown(g)||n.fireEvent(new mxEventObject("cellsInserted","cells",b))}catch(Z){this.editorUi.handleError(Z)}finally{n.model.endUpdate()}n.editAfterInsert&&null!=g&&mxEvent.isMouseEvent(g)&&null!=u&&window.setTimeout(function(){n.startEditing(u)},0)}return k};
+Sidebar.prototype.dropAndConnect=function(a,b,f,d,g){var e=this.getDropAndConnectGeometry(a,b[d],f,b),k=[];if(null!=e){var n=this.editorUi.editor.graph,u=null;n.model.beginUpdate();try{var m=n.getCellGeometry(a),r=n.getCellGeometry(b[d]),x=n.model.getParent(a),B=!0;if(null!=n.layoutManager){var C=n.layoutManager.getLayout(x);null!=C&&C.constructor==mxStackLayout&&(B=!1)}k=n.model.isEdge(a)?null:n.view.getState(x);var G=C=0;if(null!=k){var J=k.origin;C=J.x;G=J.y;var D=e.getTerminalPoint(!1);null!=
+D&&(D.x+=J.x,D.y+=J.y)}var N=!n.isTableRow(a)&&!n.isTableCell(a)&&(n.model.isEdge(a)||null!=m&&!m.relative&&B),Q=n.getCellAt((e.x+C+n.view.translate.x)*n.view.scale,(e.y+G+n.view.translate.y)*n.view.scale,null,null,null,function(Z,U,V){return!n.isContainer(Z.cell)});if(null!=Q&&Q!=x)k=n.view.getState(Q),null!=k&&(J=k.origin,x=Q,N=!0,n.model.isEdge(a)||(e.x-=J.x-C,e.y-=J.y-G));else if(!B||n.isTableRow(a)||n.isTableCell(a))e.x+=C,e.y+=G;C=r.x;G=r.y;n.model.isEdge(b[d])&&(G=C=0);k=b=n.importCells(b,
+e.x-(N?C:0),e.y-(N?G:0),N?x:null);if(n.model.isEdge(a))n.model.setTerminal(a,b[d],f==mxConstants.DIRECTION_NORTH);else if(n.model.isEdge(b[d])){n.model.setTerminal(b[d],a,!0);var R=n.getCellGeometry(b[d]);R.points=null;if(null!=R.getTerminalPoint(!1))R.setTerminalPoint(e.getTerminalPoint(!1),!1);else if(N&&n.model.isVertex(x)){var P=n.view.getState(x);J=P.cell!=n.view.currentRoot?P.origin:new mxPoint(0,0);n.cellsMoved(b,J.x,J.y,null,null,!0)}}else r=n.getCellGeometry(b[d]),C=e.x-Math.round(r.x),G=
+e.y-Math.round(r.y),e.x=Math.round(r.x),e.y=Math.round(r.y),n.model.setGeometry(b[d],e),n.cellsMoved(b,C,G,null,null,!0),k=b.slice(),u=1==k.length?k[0]:null,b.push(n.insertEdge(null,null,"",a,b[d],n.createCurrentEdgeStyle()));null!=g&&mxEvent.isShiftDown(g)||n.fireEvent(new mxEventObject("cellsInserted","cells",b))}catch(Z){this.editorUi.handleError(Z)}finally{n.model.endUpdate()}n.editAfterInsert&&null!=g&&mxEvent.isMouseEvent(g)&&null!=u&&window.setTimeout(function(){n.startEditing(u)},0)}return k};
Sidebar.prototype.getDropAndConnectGeometry=function(a,b,f,d){var g=this.editorUi.editor.graph,e=g.view,k=1<d.length,n=g.getCellGeometry(a);d=g.getCellGeometry(b);null!=n&&null!=d&&(d=d.clone(),g.model.isEdge(a)?(a=g.view.getState(a),n=a.absolutePoints,b=n[0],g=n[n.length-1],f==mxConstants.DIRECTION_NORTH?(d.x=b.x/e.scale-e.translate.x-d.width/2,d.y=b.y/e.scale-e.translate.y-d.height/2):(d.x=g.x/e.scale-e.translate.x-d.width/2,d.y=g.y/e.scale-e.translate.y-d.height/2)):(n.relative&&(a=g.view.getState(a),
n=n.clone(),n.x=(a.x-e.translate.x)/e.scale,n.y=(a.y-e.translate.y)/e.scale),e=g.defaultEdgeLength,g.model.isEdge(b)&&null!=d.getTerminalPoint(!0)&&null!=d.getTerminalPoint(!1)?(b=d.getTerminalPoint(!0),g=d.getTerminalPoint(!1),e=g.x-b.x,b=g.y-b.y,e=Math.sqrt(e*e+b*b),d.x=n.getCenterX(),d.y=n.getCenterY(),d.width=1,d.height=1,f==mxConstants.DIRECTION_NORTH?(d.height=e,d.y=n.y-e,d.setTerminalPoint(new mxPoint(d.x,d.y),!1)):f==mxConstants.DIRECTION_EAST?(d.width=e,d.x=n.x+n.width,d.setTerminalPoint(new mxPoint(d.x+
d.width,d.y),!1)):f==mxConstants.DIRECTION_SOUTH?(d.height=e,d.y=n.y+n.height,d.setTerminalPoint(new mxPoint(d.x,d.y+d.height),!1)):f==mxConstants.DIRECTION_WEST&&(d.width=e,d.x=n.x-e,d.setTerminalPoint(new mxPoint(d.x,d.y),!1))):(!k&&45<d.width&&45<d.height&&45<n.width&&45<n.height&&(d.width*=n.height/d.height,d.height=n.height),d.x=n.x+n.width/2-d.width/2,d.y=n.y+n.height/2-d.height/2,f==mxConstants.DIRECTION_NORTH?d.y=d.y-n.height/2-d.height/2-e:f==mxConstants.DIRECTION_EAST?d.x=d.x+n.width/2+
d.width/2+e:f==mxConstants.DIRECTION_SOUTH?d.y=d.y+n.height/2+d.height/2+e:f==mxConstants.DIRECTION_WEST&&(d.x=d.x-n.width/2-d.width/2-e),g.model.isEdge(b)&&null!=d.getTerminalPoint(!0)&&null!=b.getTerminal(!1)&&(n=g.getCellGeometry(b.getTerminal(!1)),null!=n&&(f==mxConstants.DIRECTION_NORTH?(d.x-=n.getCenterX(),d.y-=n.getCenterY()+n.height/2):f==mxConstants.DIRECTION_EAST?(d.x-=n.getCenterX()-n.width/2,d.y-=n.getCenterY()):f==mxConstants.DIRECTION_SOUTH?(d.x-=n.getCenterX(),d.y-=n.getCenterY()-n.height/
2):f==mxConstants.DIRECTION_WEST&&(d.x-=n.getCenterX()+n.width/2,d.y-=n.getCenterY()))))));return d};Sidebar.prototype.isDropStyleEnabled=function(a,b){var f=!0;null!=b&&1==a.length&&(a=this.graph.getCellStyle(a[b]),null!=a&&(f=mxUtils.getValue(a,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(a,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE));return f};
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,f,d,g){function e(aa,oa){var ua=mxUtils.createImage(aa.src);ua.style.width=aa.width+"px";ua.style.height=aa.height+"px";null!=oa&&ua.setAttribute("title",oa);mxUtils.setOpacity(ua,aa==this.refreshTarget?30:20);ua.style.position="absolute";ua.style.cursor="crosshair";return ua}function k(aa,oa,ua,Ja){null!=Ja.parentNode&&(mxUtils.contains(ua,aa,oa)?(mxUtils.setOpacity(Ja,100),L=Ja):mxUtils.setOpacity(Ja,Ja==fa?30:20));return ua}for(var n=this.editorUi,
-u=n.editor.graph,m=null,r=null,x=this,A=0;A<d.length&&(null==r&&u.model.isVertex(d[A])?r=A:null==m&&u.model.isEdge(d[A])&&null==u.model.getTerminal(d[A],!0)&&(m=A),null==r||null==m);A++);var C=this.isDropStyleEnabled(d,r),F=mxUtils.makeDraggable(a,u,mxUtils.bind(this,function(aa,oa,ua,Ja,Ga){null!=this.updateThread&&window.clearTimeout(this.updateThread);if(null!=d&&null!=Q&&L==fa){var va=aa.isCellSelected(Q.cell)?aa.getSelectionCells():[Q.cell];va=this.updateShapes(aa.model.isEdge(Q.cell)?d[0]:d[r],
-va);aa.setSelectionCells(va)}else null!=d&&null!=L&&null!=D&&L!=fa?(va=aa.model.isEdge(D.cell)||null==m?r:m,aa.setSelectionCells(this.dropAndConnect(D.cell,d,I,va,oa))):b.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(aa.view.getState(aa.getSelectionCell()))}),f,0,0,u.autoscroll,!0,!0);u.addListener(mxEvent.ESCAPE,function(aa,oa){F.isActive()&&F.reset()});var K=F.mouseDown;F.mouseDown=function(aa){mxEvent.isPopupTrigger(aa)||mxEvent.isMultiTouchEvent(aa)||u.isCellLocked(u.getDefaultParent())||
-(u.stopEditing(),K.apply(this,arguments))};var D=null,O=null,Q=null,R=!1,P=e(this.triangleUp,mxResources.get("connect")),Z=e(this.triangleRight,mxResources.get("connect")),T=e(this.triangleDown,mxResources.get("connect")),U=e(this.triangleLeft,mxResources.get("connect")),fa=e(this.refreshTarget,mxResources.get("replace")),ha=null,ba=e(this.roundDrop),qa=e(this.roundDrop),I=mxConstants.DIRECTION_NORTH,L=null,H=F.createPreviewElement;F.createPreviewElement=function(aa){var oa=H.apply(this,arguments);
-mxClient.IS_SVG&&(oa.style.pointerEvents="none");this.previewElementWidth=oa.style.width;this.previewElementHeight=oa.style.height;return oa};var S=F.dragEnter;F.dragEnter=function(aa,oa){null!=n.hoverIcons&&n.hoverIcons.setDisplay("none");S.apply(this,arguments)};var V=F.dragExit;F.dragExit=function(aa,oa){null!=n.hoverIcons&&n.hoverIcons.setDisplay("");V.apply(this,arguments)};F.dragOver=function(aa,oa){mxDragSource.prototype.dragOver.apply(this,arguments);null!=this.currentGuide&&null!=L&&this.currentGuide.hide();
-if(null!=this.previewElement){var ua=aa.view;if(null!=Q&&L==fa)this.previewElement.style.display=aa.model.isEdge(Q.cell)?"none":"",this.previewElement.style.left=Q.x+"px",this.previewElement.style.top=Q.y+"px",this.previewElement.style.width=Q.width+"px",this.previewElement.style.height=Q.height+"px";else if(null!=D&&null!=L){null!=F.currentHighlight&&null!=F.currentHighlight.state&&F.currentHighlight.hide();var Ja=aa.model.isEdge(D.cell)||null==m?r:m,Ga=x.getDropAndConnectGeometry(D.cell,d[Ja],I,
-d),va=aa.model.isEdge(D.cell)?null:aa.getCellGeometry(D.cell),za=aa.getCellGeometry(d[Ja]),ra=aa.model.getParent(D.cell),Ha=ua.translate.x*ua.scale,Ta=ua.translate.y*ua.scale;null!=va&&!va.relative&&aa.model.isVertex(ra)&&ra!=ua.currentRoot&&(Ta=ua.getState(ra),Ha=Ta.x,Ta=Ta.y);va=za.x;za=za.y;aa.model.isEdge(d[Ja])&&(za=va=0);this.previewElement.style.left=(Ga.x-va)*ua.scale+Ha+"px";this.previewElement.style.top=(Ga.y-za)*ua.scale+Ta+"px";1==d.length&&(this.previewElement.style.width=Ga.width*ua.scale+
-"px",this.previewElement.style.height=Ga.height*ua.scale+"px");this.previewElement.style.display=""}else null!=F.currentHighlight.state&&aa.model.isEdge(F.currentHighlight.state.cell)?(this.previewElement.style.left=Math.round(parseInt(this.previewElement.style.left)-g.width*ua.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-g.height*ua.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,
-this.previewElement.style.display="")}};var ea=(new Date).getTime(),ka=0,wa=null,W=this.editorUi.editor.graph.getCellStyle(d[0]);F.getDropTarget=mxUtils.bind(this,function(aa,oa,ua,Ja){var Ga=mxEvent.isAltDown(Ja)||null==d?null:aa.getCellAt(oa,ua,null,null,null,function(Ta,db,Ua){return aa.isContainer(Ta.cell)});if(null!=Ga&&!this.graph.isCellConnectable(Ga)&&!this.graph.model.isEdge(Ga)){var va=this.graph.getModel().getParent(Ga);this.graph.getModel().isVertex(va)&&this.graph.isCellConnectable(va)&&
-(Ga=va)}aa.isCellLocked(Ga)&&(Ga=null);var za=aa.view.getState(Ga);va=L=null;wa!=za?(ea=(new Date).getTime(),ka=0,wa=za,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=za&&(this.updateThread=window.setTimeout(function(){null==L&&(wa=za,F.getDropTarget(aa,oa,ua,Ja))},this.dropTargetDelay+10))):ka=(new Date).getTime()-ea;if(C&&2500>ka&&null!=za&&!mxEvent.isShiftDown(Ja)&&(mxUtils.getValue(za.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(W,mxConstants.STYLE_SHAPE)&&(mxUtils.getValue(za.style,
-mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(za.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(za.style,mxConstants.STYLE_GRADIENTCOLOR,mxConstants.NONE)!=mxConstants.NONE)||"image"==mxUtils.getValue(W,mxConstants.STYLE_SHAPE)||1500<ka||aa.model.isEdge(za.cell))&&ka>this.dropTargetDelay&&!this.isDropStyleTargetIgnored(za)&&(aa.model.isVertex(za.cell)&&null!=r||aa.model.isEdge(za.cell)&&aa.model.isEdge(d[0]))){if(aa.isCellEditable(za.cell)){Q=
-za;var ra=aa.model.isEdge(za.cell)?aa.view.getPoint(za):new mxPoint(za.getCenterX(),za.getCenterY());ra=new mxRectangle(ra.x-this.refreshTarget.width/2,ra.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height);fa.style.left=Math.floor(ra.x)+"px";fa.style.top=Math.floor(ra.y)+"px";null==ha&&(aa.container.appendChild(fa),ha=fa.parentNode);k(oa,ua,ra,fa)}}else null==Q||!mxUtils.contains(Q,oa,ua)||1500<ka&&!mxEvent.isShiftDown(Ja)?(Q=null,null!=ha&&(fa.parentNode.removeChild(fa),
-ha=null)):null!=Q&&null!=ha&&(ra=aa.model.isEdge(Q.cell)?aa.view.getPoint(Q):new mxPoint(Q.getCenterX(),Q.getCenterY()),ra=new mxRectangle(ra.x-this.refreshTarget.width/2,ra.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height),k(oa,ua,ra,fa));if(R&&null!=D&&!mxEvent.isAltDown(Ja)&&null==L){va=mxRectangle.fromRectangle(D);if(aa.model.isEdge(D.cell)){var Ha=D.absolutePoints;null!=ba.parentNode&&(ra=Ha[0],va.add(k(oa,ua,new mxRectangle(ra.x-this.roundDrop.width/2,ra.y-this.roundDrop.height/
-2,this.roundDrop.width,this.roundDrop.height),ba)));null!=qa.parentNode&&(Ha=Ha[Ha.length-1],va.add(k(oa,ua,new mxRectangle(Ha.x-this.roundDrop.width/2,Ha.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),qa)))}else ra=mxRectangle.fromRectangle(D),null!=D.shape&&null!=D.shape.boundingBox&&(ra=mxRectangle.fromRectangle(D.shape.boundingBox)),ra.grow(this.graph.tolerance),ra.grow(HoverIcons.prototype.arrowSpacing),Ha=this.graph.selectionCellsHandler.getHandler(D.cell),null!=Ha&&(ra.x-=
-Ha.horizontalOffset/2,ra.y-=Ha.verticalOffset/2,ra.width+=Ha.horizontalOffset,ra.height+=Ha.verticalOffset,null!=Ha.rotationShape&&null!=Ha.rotationShape.node&&"hidden"!=Ha.rotationShape.node.style.visibility&&"none"!=Ha.rotationShape.node.style.display&&null!=Ha.rotationShape.boundingBox&&ra.add(Ha.rotationShape.boundingBox)),va.add(k(oa,ua,new mxRectangle(D.getCenterX()-this.triangleUp.width/2,ra.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),P)),va.add(k(oa,ua,new mxRectangle(ra.x+
-ra.width,D.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,this.triangleRight.height),Z)),va.add(k(oa,ua,new mxRectangle(D.getCenterX()-this.triangleDown.width/2,ra.y+ra.height,this.triangleDown.width,this.triangleDown.height),T)),va.add(k(oa,ua,new mxRectangle(ra.x-this.triangleLeft.width,D.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),U));null!=va&&va.grow(10)}I=mxConstants.DIRECTION_NORTH;L==Z?I=mxConstants.DIRECTION_EAST:L==T||L==qa?
-I=mxConstants.DIRECTION_SOUTH:L==U&&(I=mxConstants.DIRECTION_WEST);null!=Q&&L==fa&&(za=Q);ra=(null==r||aa.isCellConnectable(d[r]))&&(aa.model.isEdge(Ga)&&null!=r||aa.model.isVertex(Ga)&&aa.isCellConnectable(Ga));if(null!=D&&5E3<=ka||D!=za&&(null==va||!mxUtils.contains(va,oa,ua)||500<ka&&null==L&&ra))if(R=!1,D=5E3>ka&&ka>this.dropTargetDelay||aa.model.isEdge(Ga)?za:null,null!=D&&ra){va=[ba,qa,P,Z,T,U];for(ra=0;ra<va.length;ra++)null!=va[ra].parentNode&&va[ra].parentNode.removeChild(va[ra]);aa.model.isEdge(Ga)?
-(Ha=za.absolutePoints,null!=Ha&&(ra=Ha[0],Ha=Ha[Ha.length-1],va=aa.tolerance,new mxRectangle(oa-va,ua-va,2*va,2*va),ba.style.left=Math.floor(ra.x-this.roundDrop.width/2)+"px",ba.style.top=Math.floor(ra.y-this.roundDrop.height/2)+"px",qa.style.left=Math.floor(Ha.x-this.roundDrop.width/2)+"px",qa.style.top=Math.floor(Ha.y-this.roundDrop.height/2)+"px",null==aa.model.getTerminal(Ga,!0)&&aa.container.appendChild(ba),null==aa.model.getTerminal(Ga,!1)&&aa.container.appendChild(qa))):(ra=mxRectangle.fromRectangle(za),
-null!=za.shape&&null!=za.shape.boundingBox&&(ra=mxRectangle.fromRectangle(za.shape.boundingBox)),ra.grow(this.graph.tolerance),ra.grow(HoverIcons.prototype.arrowSpacing),Ha=this.graph.selectionCellsHandler.getHandler(za.cell),null!=Ha&&(ra.x-=Ha.horizontalOffset/2,ra.y-=Ha.verticalOffset/2,ra.width+=Ha.horizontalOffset,ra.height+=Ha.verticalOffset,null!=Ha.rotationShape&&null!=Ha.rotationShape.node&&"hidden"!=Ha.rotationShape.node.style.visibility&&"none"!=Ha.rotationShape.node.style.display&&null!=
-Ha.rotationShape.boundingBox&&ra.add(Ha.rotationShape.boundingBox)),P.style.left=Math.floor(za.getCenterX()-this.triangleUp.width/2)+"px",P.style.top=Math.floor(ra.y-this.triangleUp.height)+"px",Z.style.left=Math.floor(ra.x+ra.width)+"px",Z.style.top=Math.floor(za.getCenterY()-this.triangleRight.height/2)+"px",T.style.left=P.style.left,T.style.top=Math.floor(ra.y+ra.height)+"px",U.style.left=Math.floor(ra.x-this.triangleLeft.width)+"px",U.style.top=Z.style.top,"eastwest"!=za.style.portConstraint&&
-(aa.container.appendChild(P),aa.container.appendChild(T)),aa.container.appendChild(Z),aa.container.appendChild(U));null!=za&&(O=aa.selectionCellsHandler.getHandler(za.cell),null!=O&&null!=O.setHandlesVisible&&O.setHandlesVisible(!1));R=!0}else for(va=[ba,qa,P,Z,T,U],ra=0;ra<va.length;ra++)null!=va[ra].parentNode&&va[ra].parentNode.removeChild(va[ra]);R||null==O||O.setHandlesVisible(!0);Ga=mxEvent.isAltDown(Ja)&&!mxEvent.isShiftDown(Ja)||null!=Q&&L==fa?null:mxDragSource.prototype.getDropTarget.apply(this,
-arguments);va=aa.getModel();if(null!=Ga&&(null!=L||!aa.isSplitTarget(Ga,d,Ja))){for(;null!=Ga&&!aa.isValidDropTarget(Ga,d,Ja)&&va.isVertex(va.getParent(Ga));)Ga=va.getParent(Ga);null!=Ga&&(aa.view.currentRoot==Ga||!aa.isValidRoot(Ga)&&0==aa.getModel().getChildCount(Ga)||aa.isCellLocked(Ga)||va.isEdge(Ga)||!aa.isValidDropTarget(Ga,d,Ja))&&(Ga=null)}aa.isCellLocked(Ga)&&(Ga=null);return Ga});F.stopDrag=function(){mxDragSource.prototype.stopDrag.apply(this,arguments);for(var aa=[ba,qa,fa,P,Z,T,U],oa=
-0;oa<aa.length;oa++)null!=aa[oa].parentNode&&aa[oa].parentNode.removeChild(aa[oa]);null!=D&&null!=O&&O.reset();L=ha=Q=D=O=null};return F};
+Sidebar.prototype.createDragSource=function(a,b,f,d,g){function e(aa,oa){var sa=mxUtils.createImage(aa.src);sa.style.width=aa.width+"px";sa.style.height=aa.height+"px";null!=oa&&sa.setAttribute("title",oa);mxUtils.setOpacity(sa,aa==this.refreshTarget?30:20);sa.style.position="absolute";sa.style.cursor="crosshair";return sa}function k(aa,oa,sa,Ka){null!=Ka.parentNode&&(mxUtils.contains(sa,aa,oa)?(mxUtils.setOpacity(Ka,100),S=Ka):mxUtils.setOpacity(Ka,Ka==ia?30:20));return sa}for(var n=this.editorUi,
+u=n.editor.graph,m=null,r=null,x=this,B=0;B<d.length&&(null==r&&u.model.isVertex(d[B])?r=B:null==m&&u.model.isEdge(d[B])&&null==u.model.getTerminal(d[B],!0)&&(m=B),null==r||null==m);B++);var C=this.isDropStyleEnabled(d,r),G=mxUtils.makeDraggable(a,u,mxUtils.bind(this,function(aa,oa,sa,Ka,Ha){null!=this.updateThread&&window.clearTimeout(this.updateThread);if(null!=d&&null!=Q&&S==ia){var ua=aa.isCellSelected(Q.cell)?aa.getSelectionCells():[Q.cell];ua=this.updateShapes(aa.model.isEdge(Q.cell)?d[0]:d[r],
+ua);aa.setSelectionCells(ua)}else null!=d&&null!=S&&null!=D&&S!=ia?(ua=aa.model.isEdge(D.cell)||null==m?r:m,aa.setSelectionCells(this.dropAndConnect(D.cell,d,O,ua,oa))):b.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(aa.view.getState(aa.getSelectionCell()))}),f,0,0,u.autoscroll,!0,!0);u.addListener(mxEvent.ESCAPE,function(aa,oa){G.isActive()&&G.reset()});var J=G.mouseDown;G.mouseDown=function(aa){mxEvent.isPopupTrigger(aa)||mxEvent.isMultiTouchEvent(aa)||u.isCellLocked(u.getDefaultParent())||
+(u.stopEditing(),J.apply(this,arguments))};var D=null,N=null,Q=null,R=!1,P=e(this.triangleUp,mxResources.get("connect")),Z=e(this.triangleRight,mxResources.get("connect")),U=e(this.triangleDown,mxResources.get("connect")),V=e(this.triangleLeft,mxResources.get("connect")),ia=e(this.refreshTarget,mxResources.get("replace")),ha=null,ba=e(this.roundDrop),qa=e(this.roundDrop),O=mxConstants.DIRECTION_NORTH,S=null,F=G.createPreviewElement;G.createPreviewElement=function(aa){var oa=F.apply(this,arguments);
+mxClient.IS_SVG&&(oa.style.pointerEvents="none");this.previewElementWidth=oa.style.width;this.previewElementHeight=oa.style.height;return oa};var L=G.dragEnter;G.dragEnter=function(aa,oa){null!=n.hoverIcons&&n.hoverIcons.setDisplay("none");L.apply(this,arguments)};var T=G.dragExit;G.dragExit=function(aa,oa){null!=n.hoverIcons&&n.hoverIcons.setDisplay("");T.apply(this,arguments)};G.dragOver=function(aa,oa){mxDragSource.prototype.dragOver.apply(this,arguments);null!=this.currentGuide&&null!=S&&this.currentGuide.hide();
+if(null!=this.previewElement){var sa=aa.view;if(null!=Q&&S==ia)this.previewElement.style.display=aa.model.isEdge(Q.cell)?"none":"",this.previewElement.style.left=Q.x+"px",this.previewElement.style.top=Q.y+"px",this.previewElement.style.width=Q.width+"px",this.previewElement.style.height=Q.height+"px";else if(null!=D&&null!=S){null!=G.currentHighlight&&null!=G.currentHighlight.state&&G.currentHighlight.hide();var Ka=aa.model.isEdge(D.cell)||null==m?r:m,Ha=x.getDropAndConnectGeometry(D.cell,d[Ka],O,
+d),ua=aa.model.isEdge(D.cell)?null:aa.getCellGeometry(D.cell),Ca=aa.getCellGeometry(d[Ka]),ra=aa.model.getParent(D.cell),Da=sa.translate.x*sa.scale,Ua=sa.translate.y*sa.scale;null!=ua&&!ua.relative&&aa.model.isVertex(ra)&&ra!=sa.currentRoot&&(Ua=sa.getState(ra),Da=Ua.x,Ua=Ua.y);ua=Ca.x;Ca=Ca.y;aa.model.isEdge(d[Ka])&&(Ca=ua=0);this.previewElement.style.left=(Ha.x-ua)*sa.scale+Da+"px";this.previewElement.style.top=(Ha.y-Ca)*sa.scale+Ua+"px";1==d.length&&(this.previewElement.style.width=Ha.width*sa.scale+
+"px",this.previewElement.style.height=Ha.height*sa.scale+"px");this.previewElement.style.display=""}else null!=G.currentHighlight.state&&aa.model.isEdge(G.currentHighlight.state.cell)?(this.previewElement.style.left=Math.round(parseInt(this.previewElement.style.left)-g.width*sa.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-g.height*sa.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,
+this.previewElement.style.display="")}};var ca=(new Date).getTime(),fa=0,wa=null,W=this.editorUi.editor.graph.getCellStyle(d[0]);G.getDropTarget=mxUtils.bind(this,function(aa,oa,sa,Ka){var Ha=mxEvent.isAltDown(Ka)||null==d?null:aa.getCellAt(oa,sa,null,null,null,function(Ua,db,Ta){return aa.isContainer(Ua.cell)});if(null!=Ha&&!this.graph.isCellConnectable(Ha)&&!this.graph.model.isEdge(Ha)){var ua=this.graph.getModel().getParent(Ha);this.graph.getModel().isVertex(ua)&&this.graph.isCellConnectable(ua)&&
+(Ha=ua)}aa.isCellLocked(Ha)&&(Ha=null);var Ca=aa.view.getState(Ha);ua=S=null;wa!=Ca?(ca=(new Date).getTime(),fa=0,wa=Ca,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=Ca&&(this.updateThread=window.setTimeout(function(){null==S&&(wa=Ca,G.getDropTarget(aa,oa,sa,Ka))},this.dropTargetDelay+10))):fa=(new Date).getTime()-ca;if(C&&2500>fa&&null!=Ca&&!mxEvent.isShiftDown(Ka)&&(mxUtils.getValue(Ca.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(W,mxConstants.STYLE_SHAPE)&&(mxUtils.getValue(Ca.style,
+mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(Ca.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(Ca.style,mxConstants.STYLE_GRADIENTCOLOR,mxConstants.NONE)!=mxConstants.NONE)||"image"==mxUtils.getValue(W,mxConstants.STYLE_SHAPE)||1500<fa||aa.model.isEdge(Ca.cell))&&fa>this.dropTargetDelay&&!this.isDropStyleTargetIgnored(Ca)&&(aa.model.isVertex(Ca.cell)&&null!=r||aa.model.isEdge(Ca.cell)&&aa.model.isEdge(d[0]))){if(aa.isCellEditable(Ca.cell)){Q=
+Ca;var ra=aa.model.isEdge(Ca.cell)?aa.view.getPoint(Ca):new mxPoint(Ca.getCenterX(),Ca.getCenterY());ra=new mxRectangle(ra.x-this.refreshTarget.width/2,ra.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height);ia.style.left=Math.floor(ra.x)+"px";ia.style.top=Math.floor(ra.y)+"px";null==ha&&(aa.container.appendChild(ia),ha=ia.parentNode);k(oa,sa,ra,ia)}}else null==Q||!mxUtils.contains(Q,oa,sa)||1500<fa&&!mxEvent.isShiftDown(Ka)?(Q=null,null!=ha&&(ia.parentNode.removeChild(ia),
+ha=null)):null!=Q&&null!=ha&&(ra=aa.model.isEdge(Q.cell)?aa.view.getPoint(Q):new mxPoint(Q.getCenterX(),Q.getCenterY()),ra=new mxRectangle(ra.x-this.refreshTarget.width/2,ra.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height),k(oa,sa,ra,ia));if(R&&null!=D&&!mxEvent.isAltDown(Ka)&&null==S){ua=mxRectangle.fromRectangle(D);if(aa.model.isEdge(D.cell)){var Da=D.absolutePoints;null!=ba.parentNode&&(ra=Da[0],ua.add(k(oa,sa,new mxRectangle(ra.x-this.roundDrop.width/2,ra.y-this.roundDrop.height/
+2,this.roundDrop.width,this.roundDrop.height),ba)));null!=qa.parentNode&&(Da=Da[Da.length-1],ua.add(k(oa,sa,new mxRectangle(Da.x-this.roundDrop.width/2,Da.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),qa)))}else ra=mxRectangle.fromRectangle(D),null!=D.shape&&null!=D.shape.boundingBox&&(ra=mxRectangle.fromRectangle(D.shape.boundingBox)),ra.grow(this.graph.tolerance),ra.grow(HoverIcons.prototype.arrowSpacing),Da=this.graph.selectionCellsHandler.getHandler(D.cell),null!=Da&&(ra.x-=
+Da.horizontalOffset/2,ra.y-=Da.verticalOffset/2,ra.width+=Da.horizontalOffset,ra.height+=Da.verticalOffset,null!=Da.rotationShape&&null!=Da.rotationShape.node&&"hidden"!=Da.rotationShape.node.style.visibility&&"none"!=Da.rotationShape.node.style.display&&null!=Da.rotationShape.boundingBox&&ra.add(Da.rotationShape.boundingBox)),ua.add(k(oa,sa,new mxRectangle(D.getCenterX()-this.triangleUp.width/2,ra.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),P)),ua.add(k(oa,sa,new mxRectangle(ra.x+
+ra.width,D.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,this.triangleRight.height),Z)),ua.add(k(oa,sa,new mxRectangle(D.getCenterX()-this.triangleDown.width/2,ra.y+ra.height,this.triangleDown.width,this.triangleDown.height),U)),ua.add(k(oa,sa,new mxRectangle(ra.x-this.triangleLeft.width,D.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),V));null!=ua&&ua.grow(10)}O=mxConstants.DIRECTION_NORTH;S==Z?O=mxConstants.DIRECTION_EAST:S==U||S==qa?
+O=mxConstants.DIRECTION_SOUTH:S==V&&(O=mxConstants.DIRECTION_WEST);null!=Q&&S==ia&&(Ca=Q);ra=(null==r||aa.isCellConnectable(d[r]))&&(aa.model.isEdge(Ha)&&null!=r||aa.model.isVertex(Ha)&&aa.isCellConnectable(Ha));if(null!=D&&5E3<=fa||D!=Ca&&(null==ua||!mxUtils.contains(ua,oa,sa)||500<fa&&null==S&&ra))if(R=!1,D=5E3>fa&&fa>this.dropTargetDelay||aa.model.isEdge(Ha)?Ca:null,null!=D&&ra){ua=[ba,qa,P,Z,U,V];for(ra=0;ra<ua.length;ra++)null!=ua[ra].parentNode&&ua[ra].parentNode.removeChild(ua[ra]);aa.model.isEdge(Ha)?
+(Da=Ca.absolutePoints,null!=Da&&(ra=Da[0],Da=Da[Da.length-1],ua=aa.tolerance,new mxRectangle(oa-ua,sa-ua,2*ua,2*ua),ba.style.left=Math.floor(ra.x-this.roundDrop.width/2)+"px",ba.style.top=Math.floor(ra.y-this.roundDrop.height/2)+"px",qa.style.left=Math.floor(Da.x-this.roundDrop.width/2)+"px",qa.style.top=Math.floor(Da.y-this.roundDrop.height/2)+"px",null==aa.model.getTerminal(Ha,!0)&&aa.container.appendChild(ba),null==aa.model.getTerminal(Ha,!1)&&aa.container.appendChild(qa))):(ra=mxRectangle.fromRectangle(Ca),
+null!=Ca.shape&&null!=Ca.shape.boundingBox&&(ra=mxRectangle.fromRectangle(Ca.shape.boundingBox)),ra.grow(this.graph.tolerance),ra.grow(HoverIcons.prototype.arrowSpacing),Da=this.graph.selectionCellsHandler.getHandler(Ca.cell),null!=Da&&(ra.x-=Da.horizontalOffset/2,ra.y-=Da.verticalOffset/2,ra.width+=Da.horizontalOffset,ra.height+=Da.verticalOffset,null!=Da.rotationShape&&null!=Da.rotationShape.node&&"hidden"!=Da.rotationShape.node.style.visibility&&"none"!=Da.rotationShape.node.style.display&&null!=
+Da.rotationShape.boundingBox&&ra.add(Da.rotationShape.boundingBox)),P.style.left=Math.floor(Ca.getCenterX()-this.triangleUp.width/2)+"px",P.style.top=Math.floor(ra.y-this.triangleUp.height)+"px",Z.style.left=Math.floor(ra.x+ra.width)+"px",Z.style.top=Math.floor(Ca.getCenterY()-this.triangleRight.height/2)+"px",U.style.left=P.style.left,U.style.top=Math.floor(ra.y+ra.height)+"px",V.style.left=Math.floor(ra.x-this.triangleLeft.width)+"px",V.style.top=Z.style.top,"eastwest"!=Ca.style.portConstraint&&
+(aa.container.appendChild(P),aa.container.appendChild(U)),aa.container.appendChild(Z),aa.container.appendChild(V));null!=Ca&&(N=aa.selectionCellsHandler.getHandler(Ca.cell),null!=N&&null!=N.setHandlesVisible&&N.setHandlesVisible(!1));R=!0}else for(ua=[ba,qa,P,Z,U,V],ra=0;ra<ua.length;ra++)null!=ua[ra].parentNode&&ua[ra].parentNode.removeChild(ua[ra]);R||null==N||N.setHandlesVisible(!0);Ha=mxEvent.isAltDown(Ka)&&!mxEvent.isShiftDown(Ka)||null!=Q&&S==ia?null:mxDragSource.prototype.getDropTarget.apply(this,
+arguments);ua=aa.getModel();if(null!=Ha&&(null!=S||!aa.isSplitTarget(Ha,d,Ka))){for(;null!=Ha&&!aa.isValidDropTarget(Ha,d,Ka)&&ua.isVertex(ua.getParent(Ha));)Ha=ua.getParent(Ha);null!=Ha&&(aa.view.currentRoot==Ha||!aa.isValidRoot(Ha)&&0==aa.getModel().getChildCount(Ha)||aa.isCellLocked(Ha)||ua.isEdge(Ha)||!aa.isValidDropTarget(Ha,d,Ka))&&(Ha=null)}aa.isCellLocked(Ha)&&(Ha=null);return Ha});G.stopDrag=function(){mxDragSource.prototype.stopDrag.apply(this,arguments);for(var aa=[ba,qa,ia,P,Z,U,V],oa=
+0;oa<aa.length;oa++)null!=aa[oa].parentNode&&aa[oa].parentNode.removeChild(aa[oa]);null!=D&&null!=N&&N.reset();S=ha=Q=D=N=null};return G};
Sidebar.prototype.itemClicked=function(a,b,f,d){d=this.editorUi.editor.graph;d.container.focus();if(mxEvent.isAltDown(f)&&1==d.getSelectionCount()&&d.model.isVertex(d.getSelectionCell())){b=null;for(var g=0;g<a.length&&null==b;g++)d.model.isVertex(a[g])&&(b=g);null!=b&&(d.setSelectionCells(this.dropAndConnect(d.getSelectionCell(),a,mxEvent.isMetaDown(f)||mxEvent.isControlDown(f)?mxEvent.isShiftDown(f)?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH:mxEvent.isShiftDown(f)?mxConstants.DIRECTION_EAST:
mxConstants.DIRECTION_SOUTH,b,f)),d.scrollCellToVisible(d.getSelectionCell()))}else mxEvent.isShiftDown(f)&&!d.isSelectionEmpty()?(f=d.getEditableCells(d.getSelectionCells()),this.updateShapes(a[0],f),d.scrollCellToVisible(f)):(a=mxEvent.isAltDown(f)?d.getFreeInsertPoint():d.getCenterInsertPoint(d.getBoundingBoxFromGeometry(a,!0)),b.drop(d,f,null,a.x,a.y,!0))};
Sidebar.prototype.addClickHandler=function(a,b,f){var d=b.mouseDown,g=b.mouseMove,e=b.mouseUp,k=this.editorUi.editor.graph.tolerance,n=null,u=this;b.mouseDown=function(m){d.apply(this,arguments);n=new mxPoint(mxEvent.getClientX(m),mxEvent.getClientY(m));null!=this.dragElement&&(this.dragElement.style.display="none",mxUtils.setOpacity(a,50))};b.mouseMove=function(m){null!=this.dragElement&&"none"==this.dragElement.style.display&&null!=n&&(Math.abs(n.x-mxEvent.getClientX(m))>k||Math.abs(n.y-mxEvent.getClientY(m))>
@@ -2819,10 +2819,10 @@ Sidebar.prototype.addPalette=function(a,b,f,d){b=this.createTitle(b);this.contai
Sidebar.prototype.addFoldingHandler=function(a,b,f){var d=!1;if(!mxClient.IS_IE||8<=document.documentMode)a.style.backgroundImage="none"==b.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')";a.style.backgroundRepeat="no-repeat";a.style.backgroundPosition="0% 50%";mxEvent.addListener(a,"click",mxUtils.bind(this,function(g){if("none"==b.style.display){if(d)b.style.display="block";else if(d=!0,null!=f){a.style.cursor="wait";var e=a.innerHTML;a.innerHTML=mxResources.get("loading")+
"...";window.setTimeout(function(){b.style.display="block";a.style.cursor="";a.innerHTML=e;var k=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;f(b,a);mxClient.NO_FO=k},mxClient.IS_FF?20:0)}else b.style.display="block";a.style.backgroundImage="url('"+this.expandedImage+"')"}else a.style.backgroundImage="url('"+this.collapsedImage+"')",b.style.display="none";mxEvent.consume(g)}));mxEvent.addListener(a,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(g){g.preventDefault()}))};
Sidebar.prototype.removePalette=function(a){var b=this.palettes[a];if(null!=b){this.palettes[a]=null;for(a=0;a<b.length;a++)this.container.removeChild(b[a]);return!0}return!1};
-Sidebar.prototype.addImagePalette=function(a,b,f,d,g,e,k){for(var n=[],u=0;u<g.length;u++)mxUtils.bind(this,function(m,r,x){if(null==x){x=m.lastIndexOf("/");var A=m.lastIndexOf(".");x=m.substring(0<=x?x+1:0,0<=A?A:m.length).replace(/[-_]/g," ")}n.push(this.createVertexTemplateEntry("image;html=1;image="+f+m+d,this.defaultImageWidth,this.defaultImageHeight,"",r,null!=r,null,this.filterTags(x)))})(g[u],null!=e?e[u]:null,null!=k?k[g[u]]:null);this.addPaletteFunctions(a,b,!1,n)};
+Sidebar.prototype.addImagePalette=function(a,b,f,d,g,e,k){for(var n=[],u=0;u<g.length;u++)mxUtils.bind(this,function(m,r,x){if(null==x){x=m.lastIndexOf("/");var B=m.lastIndexOf(".");x=m.substring(0<=x?x+1:0,0<=B?B:m.length).replace(/[-_]/g," ")}n.push(this.createVertexTemplateEntry("image;html=1;image="+f+m+d,this.defaultImageWidth,this.defaultImageHeight,"",r,null!=r,null,this.filterTags(x)))})(g[u],null!=e?e[u]:null,null!=k?k[g[u]]:null);this.addPaletteFunctions(a,b,!1,n)};
Sidebar.prototype.getTagsForStencil=function(a,b,f){a=a.split(".");for(var d=1;d<a.length;d++)a[d]=a[d].replace(/_/g," ");a.push(b.replace(/_/g," "));null!=f&&a.push(f);return a.slice(1,a.length)};
-Sidebar.prototype.addStencilPalette=function(a,b,f,d,g,e,k,n,u,m){k=null!=k?k:1;if(this.addStencilsToIndex){var r=[];if(null!=u)for(m=0;m<u.length;m++)r.push(u[m]);mxStencilRegistry.loadStencilSet(f,mxUtils.bind(this,function(x,A,C,F,K){if(null==g||0>mxUtils.indexOf(g,A)){C=this.getTagsForStencil(x,A);var D=null!=n?n[A]:null;null!=D&&C.push(D);r.push(this.createVertexTemplateEntry("shape="+x+A.toLowerCase()+d,Math.round(F*k),Math.round(K*k),"",A.replace(/_/g," "),null,null,this.filterTags(C.join(" "))))}}),
-!0,!0);this.addPaletteFunctions(a,b,!1,r)}else this.addPalette(a,b,!1,mxUtils.bind(this,function(x){null==d&&(d="");null!=e&&e.call(this,x);if(null!=u)for(var A=0;A<u.length;A++)u[A](x);mxStencilRegistry.loadStencilSet(f,mxUtils.bind(this,function(C,F,K,D,O){(null==g||0>mxUtils.indexOf(g,F))&&x.appendChild(this.createVertexTemplate("shape="+C+F.toLowerCase()+d,Math.round(D*k),Math.round(O*k),"",F.replace(/_/g," "),!0))}),!0)}))};
+Sidebar.prototype.addStencilPalette=function(a,b,f,d,g,e,k,n,u,m){k=null!=k?k:1;if(this.addStencilsToIndex){var r=[];if(null!=u)for(m=0;m<u.length;m++)r.push(u[m]);mxStencilRegistry.loadStencilSet(f,mxUtils.bind(this,function(x,B,C,G,J){if(null==g||0>mxUtils.indexOf(g,B)){C=this.getTagsForStencil(x,B);var D=null!=n?n[B]:null;null!=D&&C.push(D);r.push(this.createVertexTemplateEntry("shape="+x+B.toLowerCase()+d,Math.round(G*k),Math.round(J*k),"",B.replace(/_/g," "),null,null,this.filterTags(C.join(" "))))}}),
+!0,!0);this.addPaletteFunctions(a,b,!1,r)}else this.addPalette(a,b,!1,mxUtils.bind(this,function(x){null==d&&(d="");null!=e&&e.call(this,x);if(null!=u)for(var B=0;B<u.length;B++)u[B](x);mxStencilRegistry.loadStencilSet(f,mxUtils.bind(this,function(C,G,J,D,N){(null==g||0>mxUtils.indexOf(g,G))&&x.appendChild(this.createVertexTemplate("shape="+C+G.toLowerCase()+d,Math.round(D*k),Math.round(N*k),"",G.replace(/_/g," "),!0))}),!0)}))};
Sidebar.prototype.destroy=function(){null!=this.graph&&(null!=this.graph.container&&null!=this.graph.container.parentNode&&this.graph.container.parentNode.removeChild(this.graph.container),this.graph.destroy(),this.graph=null);null!=this.pointerUpHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointerup":"mouseup",this.pointerUpHandler),this.pointerUpHandler=null);null!=this.pointerDownHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointerdown":"mousedown",this.pointerDownHandler),
this.pointerDownHandler=null);null!=this.pointerMoveHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointermove":"mousemove",this.pointerMoveHandler),this.pointerMoveHandler=null);null!=this.pointerOutHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointerout":"mouseout",this.pointerOutHandler),this.pointerOutHandler=null)};(function(){var a=[["nbsp","160"],["shy","173"]],b=mxUtils.parseXml;mxUtils.parseXml=function(f){for(var d=0;d<a.length;d++)f=f.replace(new RegExp("&"+a[d][0]+";","g"),"&#"+a[d][1]+";");return b(f)}})();
Date.prototype.toISOString||function(){function a(b){b=String(b);1===b.length&&(b="0"+b);return b}Date.prototype.toISOString=function(){return this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"."+String((this.getUTCMilliseconds()/1E3).toFixed(3)).slice(2,5)+"Z"}}();Date.now||(Date.now=function(){return(new Date).getTime()});
@@ -2833,35 +2833,35 @@ mxConstants.VML_SHADOWCOLOR="#d0d0d0";mxCodec.allowlist="mxStylesheet Array mxGr
mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif";mxGraphView.prototype.gridSteps=4;mxGraphView.prototype.minGridSize=4;mxGraphView.prototype.defaultGridColor="#d0d0d0";mxGraphView.prototype.defaultDarkGridColor="#6e6e6e";mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultGridColor;mxGraphView.prototype.unit=mxConstants.POINTS;
mxGraphView.prototype.setUnit=function(a){this.unit!=a&&(this.unit=a,this.fireEvent(new mxEventObject("unitChanged","unit",a)))};mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]";mxShape.prototype.getConstraints=function(a,b,f){return null};
mxImageShape.prototype.getImageDataUri=function(){var a=this.image;if("data:image/svg+xml;base64,"==a.substring(0,26)&&null!=this.style&&"1"==mxUtils.getValue(this.style,"clipSvg","0")){if(null==this.clippedSvg||this.clippedImage!=a)this.clippedSvg=Graph.clipSvgDataUri(a,!0),this.clippedImage=a;a=this.clippedSvg}return a};
-Graph=function(a,b,f,d,g,e){mxGraph.call(this,a,b,f,d);this.themes=g||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);this.standalone=null!=e?e:!1;a=this.baseUrl;b=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<b&&(b=a.indexOf("/",b+2),0<b&&(this.domainUrl=a.substring(0,b)),b=a.lastIndexOf("/"),0<b&&(this.domainPathUrl=a.substring(0,b+1)));this.isHtmlLabel=function(I){I=this.getCurrentCellStyle(I);
-return null!=I?"1"==I.html||"wrap"==I[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var k=null,n=null,u=null,m=null,r=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(I,L){if("mouseDown"==L.getProperty("eventName")&&this.isEnabled()){I=L.getProperty("event");var H=I.getState();L=this.view.scale;if(!mxEvent.isAltDown(I.getEvent())&&null!=H)if(this.model.isEdge(H.cell))if(k=new mxPoint(I.getGraphX(),I.getGraphY()),r=this.isCellSelected(H.cell),u=H,n=I,null!=H.text&&null!=
-H.text.boundingBox&&mxUtils.contains(H.text.boundingBox,I.getGraphX(),I.getGraphY()))m=mxEvent.LABEL_HANDLE;else{var S=this.selectionCellsHandler.getHandler(H.cell);null!=S&&null!=S.bends&&0<S.bends.length&&(m=S.getHandleForEvent(I))}else if(!this.panningHandler.isActive()&&!mxEvent.isControlDown(I.getEvent())&&(S=this.selectionCellsHandler.getHandler(H.cell),null==S||null==S.getHandleForEvent(I))){var V=new mxRectangle(I.getGraphX()-1,I.getGraphY()-1),ea=mxEvent.isTouchEvent(I.getEvent())?mxShape.prototype.svgStrokeTolerance-
-1:(mxShape.prototype.svgStrokeTolerance+2)/2;S=ea+2;V.grow(ea);if(this.isTableCell(H.cell)&&!this.isCellSelected(H.cell)&&!(mxUtils.contains(H,I.getGraphX()-S,I.getGraphY()-S)&&mxUtils.contains(H,I.getGraphX()-S,I.getGraphY()+S)&&mxUtils.contains(H,I.getGraphX()+S,I.getGraphY()+S)&&mxUtils.contains(H,I.getGraphX()+S,I.getGraphY()-S))){var ka=this.model.getParent(H.cell);S=this.model.getParent(ka);if(!this.isCellSelected(S)){ea*=L;var wa=2*ea;if(this.model.getChildAt(S,0)!=ka&&mxUtils.intersects(V,
-new mxRectangle(H.x,H.y-ea,H.width,wa))||this.model.getChildAt(ka,0)!=H.cell&&mxUtils.intersects(V,new mxRectangle(H.x-ea,H.y,wa,H.height))||mxUtils.intersects(V,new mxRectangle(H.x,H.y+H.height-ea,H.width,wa))||mxUtils.intersects(V,new mxRectangle(H.x+H.width-ea,H.y,wa,H.height)))ka=this.selectionCellsHandler.isHandled(S),this.selectCellForEvent(S,I.getEvent()),S=this.selectionCellsHandler.getHandler(S),null!=S&&(ea=S.getHandleForEvent(I),null!=ea&&(S.start(I.getGraphX(),I.getGraphY(),ea),S.blockDelayedSelection=
-!ka,I.consume()))}}for(;!I.isConsumed()&&null!=H&&(this.isTableCell(H.cell)||this.isTableRow(H.cell)||this.isTable(H.cell));)this.isSwimlane(H.cell)&&(S=this.getActualStartSize(H.cell),(0<S.x||0<S.width)&&mxUtils.intersects(V,new mxRectangle(H.x+(S.x-S.width-1)*L+(0==S.x?H.width:0),H.y,1,H.height))||(0<S.y||0<S.height)&&mxUtils.intersects(V,new mxRectangle(H.x,H.y+(S.y-S.height-1)*L+(0==S.y?H.height:0),H.width,1)))&&(this.selectCellForEvent(H.cell,I.getEvent()),S=this.selectionCellsHandler.getHandler(H.cell),
-null!=S&&(ea=mxEvent.CUSTOM_HANDLE-S.customHandles.length+1,S.start(I.getGraphX(),I.getGraphY(),ea),I.consume())),H=this.view.getState(this.model.getParent(H.cell))}}}));this.addMouseListener({mouseDown:function(I,L){},mouseMove:mxUtils.bind(this,function(I,L){I=this.selectionCellsHandler.handlers.map;for(var H in I)if(null!=I[H].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isAltDown(L.getEvent())){var S=this.tolerance;if(null!=k&&null!=u&&null!=n){if(H=u,Math.abs(k.x-
-L.getGraphX())>S||Math.abs(k.y-L.getGraphY())>S){var V=this.selectionCellsHandler.getHandler(H.cell);null==V&&this.model.isEdge(H.cell)&&(V=this.createHandler(H));if(null!=V&&null!=V.bends&&0<V.bends.length){I=V.getHandleForEvent(n);var ea=this.view.getEdgeStyle(H);S=ea==mxEdgeStyle.EntityRelation;r||m!=mxEvent.LABEL_HANDLE||(I=m);if(S&&0!=I&&I!=V.bends.length-1&&I!=mxEvent.LABEL_HANDLE)!S||null==H.visibleSourceState&&null==H.visibleTargetState||(this.graphHandler.reset(),L.consume());else if(I==
-mxEvent.LABEL_HANDLE||0==I||null!=H.visibleSourceState||I==V.bends.length-1||null!=H.visibleTargetState)S||I==mxEvent.LABEL_HANDLE||(S=H.absolutePoints,null!=S&&(null==ea&&null==I||ea==mxEdgeStyle.OrthConnector)&&(I=m,null==I&&(I=new mxRectangle(k.x,k.y),I.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(I,S[0].x,S[0].y)?I=0:mxUtils.contains(I,S[S.length-1].x,S[S.length-1].y)?I=V.bends.length-1:null!=ea&&(2==S.length||3==S.length&&(0==Math.round(S[0].x-S[1].x)&&0==Math.round(S[1].x-
-S[2].x)||0==Math.round(S[0].y-S[1].y)&&0==Math.round(S[1].y-S[2].y)))?I=2:(I=mxUtils.findNearestSegment(H,k.x,k.y),I=null==ea?mxEvent.VIRTUAL_HANDLE-I:I+1))),null==I&&(I=mxEvent.VIRTUAL_HANDLE)),V.start(L.getGraphX(),L.getGraphX(),I),L.consume(),this.graphHandler.reset()}null!=V&&(this.selectionCellsHandler.isHandlerActive(V)?this.isCellSelected(H.cell)||(this.selectionCellsHandler.handlers.put(H.cell,V),this.selectCellForEvent(H.cell,L.getEvent())):this.isCellSelected(H.cell)||V.destroy());r=!1;
-k=n=u=m=null}}else if(H=L.getState(),null!=H&&this.isCellEditable(H.cell)){V=null;if(this.model.isEdge(H.cell)){if(I=new mxRectangle(L.getGraphX(),L.getGraphY()),I.grow(mxEdgeHandler.prototype.handleImage.width/2),S=H.absolutePoints,null!=S)if(null!=H.text&&null!=H.text.boundingBox&&mxUtils.contains(H.text.boundingBox,L.getGraphX(),L.getGraphY()))V="move";else if(mxUtils.contains(I,S[0].x,S[0].y)||mxUtils.contains(I,S[S.length-1].x,S[S.length-1].y))V="pointer";else if(null!=H.visibleSourceState||
-null!=H.visibleTargetState)I=this.view.getEdgeStyle(H),V="crosshair",I!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(H)&&(L=mxUtils.findNearestSegment(H,L.getGraphX(),L.getGraphY()),L<S.length-1&&0<=L&&(V=0==Math.round(S[L].x-S[L+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(L.getEvent())){S=mxShape.prototype.svgStrokeTolerance/2;I=new mxRectangle(L.getGraphX(),L.getGraphY());I.grow(S);if(this.isTableCell(H.cell)&&(L=this.model.getParent(H.cell),S=this.model.getParent(L),!this.isCellSelected(S)))if(mxUtils.intersects(I,
-new mxRectangle(H.x,H.y-2,H.width,4))&&this.model.getChildAt(S,0)!=L||mxUtils.intersects(I,new mxRectangle(H.x,H.y+H.height-2,H.width,4)))V="row-resize";else if(mxUtils.intersects(I,new mxRectangle(H.x-2,H.y,4,H.height))&&this.model.getChildAt(L,0)!=H.cell||mxUtils.intersects(I,new mxRectangle(H.x+H.width-2,H.y,4,H.height)))V="col-resize";for(L=H;null==V&&null!=L&&(this.isTableCell(L.cell)||this.isTableRow(L.cell)||this.isTable(L.cell));)this.isSwimlane(L.cell)&&(S=this.getActualStartSize(L.cell),
-ea=this.view.scale,(0<S.x||0<S.width)&&mxUtils.intersects(I,new mxRectangle(L.x+(S.x-S.width-1)*ea+(0==S.x?L.width*ea:0),L.y,1,L.height))?V="col-resize":(0<S.y||0<S.height)&&mxUtils.intersects(I,new mxRectangle(L.x,L.y+(S.y-S.height-1)*ea+(0==S.y?L.height:0),L.width,1))&&(V="row-resize")),L=this.view.getState(this.model.getParent(L.cell))}null!=V&&H.setCursor(V)}}}),mouseUp:mxUtils.bind(this,function(I,L){m=k=n=u=null})})}this.cellRenderer.minSvgStrokeWidth=.1;this.cellRenderer.getLabelValue=function(I){var L=
-mxCellRenderer.prototype.getLabelValue.apply(this,arguments);I.view.graph.isHtmlLabel(I.cell)&&(L=1!=I.style.html?mxUtils.htmlEntities(L,!1):I.view.graph.sanitizeHtml(L));return L};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(I,L){return!1};this.alternateEdgeStyle="vertical";null==d&&this.loadStylesheet();var x=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=function(){var I=x.apply(this,arguments);if(this.graph.pageVisible){var L=[],H=this.graph.pageFormat,S=this.graph.pageScale,V=H.width*S;H=H.height*S;S=this.graph.view.translate;for(var ea=this.graph.view.scale,ka=
-this.graph.getPageLayout(),wa=0;wa<ka.width;wa++)L.push(new mxRectangle(((ka.x+wa)*V+S.x)*ea,(ka.y*H+S.y)*ea,V*ea,H*ea));for(wa=1;wa<ka.height;wa++)L.push(new mxRectangle((ka.x*V+S.x)*ea,((ka.y+wa)*H+S.y)*ea,V*ea,H*ea));I=L.concat(I)}return I};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=function(I,L){return null==I.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(I){this.previewColor="#000000"==this.graph.background?
-"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var A=this.graphHandler.getCells;this.graphHandler.getCells=function(I){for(var L=A.apply(this,arguments),H=new mxDictionary,S=[],V=0;V<L.length;V++){var ea=this.graph.isTableCell(I)&&this.graph.isTableCell(L[V])&&this.graph.isCellSelected(L[V])?this.graph.model.getParent(L[V]):this.graph.isTableRow(I)&&this.graph.isTableRow(L[V])&&this.graph.isCellSelected(L[V])?L[V]:this.graph.getCompositeParent(L[V]);
-null==ea||H.get(ea)||(H.put(ea,!0),S.push(ea))}return S};var C=this.graphHandler.start;this.graphHandler.start=function(I,L,H,S){var V=!1;this.graph.isTableCell(I)&&(this.graph.isCellSelected(I)?V=!0:I=this.graph.model.getParent(I));V||this.graph.isTableRow(I)&&this.graph.isCellSelected(I)||(I=this.graph.getCompositeParent(I));C.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(I,L){L=this.graph.getCompositeParent(L);return mxConnectionHandler.prototype.createTargetVertex.apply(this,
-arguments)};var F=new mxRubberband(this);this.getRubberband=function(){return F};var K=(new Date).getTime(),D=0,O=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var I=this.currentState;O.apply(this,arguments);I!=this.currentState?(K=(new Date).getTime(),D=0):D=(new Date).getTime()-K};var Q=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(I){return mxEvent.isShiftDown(I.getEvent())&&mxEvent.isAltDown(I.getEvent())?!1:null!=
-this.currentState&&I.getState()==this.currentState&&2E3<D||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&Q.apply(this,arguments)};var R=this.isToggleEvent;this.isToggleEvent=function(I){return R.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(I)};var P=F.isForceRubberbandEvent;F.isForceRubberbandEvent=function(I){return P.apply(this,arguments)||mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(I.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&
-mxClient.IS_FF&&mxClient.IS_WIN&&null==I.getState()&&mxEvent.isTouchEvent(I.getEvent())};var Z=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(Z=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=Z)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(I){return mxEvent.isMouseEvent(I.getEvent())};
-var T=this.click;this.click=function(I){var L=null==I.state&&null!=I.sourceState&&this.isCellLocked(I.sourceState.cell);if(this.isEnabled()&&!L||I.isConsumed())return T.apply(this,arguments);var H=L?I.sourceState.cell:I.getCell();null!=H&&(H=this.getClickableLinkForCell(H),null!=H&&(this.isCustomLink(H)?this.customLinkClicked(H):this.openLink(H)));this.isEnabled()&&L&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(I){return I.sourceState};var U=this.tooltipHandler.show;this.tooltipHandler.show=
-function(){U.apply(this,arguments);if(null!=this.div)for(var I=this.div.getElementsByTagName("a"),L=0;L<I.length;L++)null!=I[L].getAttribute("href")&&null==I[L].getAttribute("target")&&I[L].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(I){return I.sourceState};this.getCursorForMouseEvent=function(I){var L=null==I.state&&null!=I.sourceState&&this.isCellLocked(I.sourceState.cell);return this.getCursorForCell(L?I.sourceState.cell:I.getCell())};var fa=this.getCursorForCell;
-this.getCursorForCell=function(I){if(!this.isEnabled()||this.isCellLocked(I)){if(null!=this.getClickableLinkForCell(I))return"pointer";if(this.isCellLocked(I))return"default"}return fa.apply(this,arguments)};this.selectRegion=function(I,L){var H=mxEvent.isAltDown(L)?I:null;I=this.getCells(I.x,I.y,I.width,I.height,null,null,H,function(S){return"1"==mxUtils.getValue(S.style,"locked","0")},!0);if(this.isToggleEvent(L))for(H=0;H<I.length;H++)this.selectCellForEvent(I[H],L);else this.selectCellsForEvent(I,
-L);return I};var ha=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(I,L,H){return this.graph.isCellSelected(I)?!1:ha.apply(this,arguments)};this.isCellLocked=function(I){for(;null!=I;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(I),"locked","0"))return!0;I=this.model.getParent(I)}return!1};var ba=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(I,L){"mouseDown"==L.getProperty("eventName")&&(I=L.getProperty("event").getState(),
-ba=null==I||this.isSelectionEmpty()||this.isCellSelected(I.cell)?null:this.getSelectionCells())}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(I,L){if(!mxEvent.isMultiTouchEvent(L)){I=L.getProperty("event");var H=L.getProperty("cell");null==H?(I=mxUtils.convertPoint(this.container,mxEvent.getClientX(I),mxEvent.getClientY(I)),F.start(I.x,I.y)):null!=ba?this.addSelectionCells(ba):1<this.getSelectionCount()&&this.isCellSelected(H)&&this.removeSelectionCell(H);ba=null;L.consume()}}));
-this.connectionHandler.selectCells=function(I,L){this.graph.setSelectionCell(L||I)};this.connectionHandler.constraintHandler.isStateIgnored=function(I,L){var H=I.view.graph;return L&&(H.isCellSelected(I.cell)||H.isTableRow(I.cell)&&H.selectionCellsHandler.isHandled(H.model.getParent(I.cell)))};this.selectionModel.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){var I=this.connectionHandler.constraintHandler;null!=I.currentFocus&&I.isStateIgnored(I.currentFocus,!0)&&(I.currentFocus=null,I.constraints=
-null,I.destroyIcons());I.destroyFocusHighlight()}));Graph.touchStyle&&this.initTouch();var qa=this.updateMouseEvent;this.updateMouseEvent=function(I){I=qa.apply(this,arguments);null!=I.state&&this.isCellLocked(I.getCell())&&(I.state=null);return I}}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=function(a,b,f,d,g,e){mxGraph.call(this,a,b,f,d);this.themes=g||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);this.standalone=null!=e?e:!1;a=this.baseUrl;b=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<b&&(b=a.indexOf("/",b+2),0<b&&(this.domainUrl=a.substring(0,b)),b=a.lastIndexOf("/"),0<b&&(this.domainPathUrl=a.substring(0,b+1)));this.isHtmlLabel=function(O){O=this.getCurrentCellStyle(O);
+return null!=O?"1"==O.html||"wrap"==O[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var k=null,n=null,u=null,m=null,r=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(O,S){if("mouseDown"==S.getProperty("eventName")&&this.isEnabled()){O=S.getProperty("event");var F=O.getState();S=this.view.scale;if(!mxEvent.isAltDown(O.getEvent())&&null!=F)if(this.model.isEdge(F.cell))if(k=new mxPoint(O.getGraphX(),O.getGraphY()),r=this.isCellSelected(F.cell),u=F,n=O,null!=F.text&&null!=
+F.text.boundingBox&&mxUtils.contains(F.text.boundingBox,O.getGraphX(),O.getGraphY()))m=mxEvent.LABEL_HANDLE;else{var L=this.selectionCellsHandler.getHandler(F.cell);null!=L&&null!=L.bends&&0<L.bends.length&&(m=L.getHandleForEvent(O))}else if(!this.panningHandler.isActive()&&!mxEvent.isControlDown(O.getEvent())&&(L=this.selectionCellsHandler.getHandler(F.cell),null==L||null==L.getHandleForEvent(O))){var T=new mxRectangle(O.getGraphX()-1,O.getGraphY()-1),ca=mxEvent.isTouchEvent(O.getEvent())?mxShape.prototype.svgStrokeTolerance-
+1:(mxShape.prototype.svgStrokeTolerance+2)/2;L=ca+2;T.grow(ca);if(this.isTableCell(F.cell)&&!this.isCellSelected(F.cell)&&!(mxUtils.contains(F,O.getGraphX()-L,O.getGraphY()-L)&&mxUtils.contains(F,O.getGraphX()-L,O.getGraphY()+L)&&mxUtils.contains(F,O.getGraphX()+L,O.getGraphY()+L)&&mxUtils.contains(F,O.getGraphX()+L,O.getGraphY()-L))){var fa=this.model.getParent(F.cell);L=this.model.getParent(fa);if(!this.isCellSelected(L)){ca*=S;var wa=2*ca;if(this.model.getChildAt(L,0)!=fa&&mxUtils.intersects(T,
+new mxRectangle(F.x,F.y-ca,F.width,wa))||this.model.getChildAt(fa,0)!=F.cell&&mxUtils.intersects(T,new mxRectangle(F.x-ca,F.y,wa,F.height))||mxUtils.intersects(T,new mxRectangle(F.x,F.y+F.height-ca,F.width,wa))||mxUtils.intersects(T,new mxRectangle(F.x+F.width-ca,F.y,wa,F.height)))fa=this.selectionCellsHandler.isHandled(L),this.selectCellForEvent(L,O.getEvent()),L=this.selectionCellsHandler.getHandler(L),null!=L&&(ca=L.getHandleForEvent(O),null!=ca&&(L.start(O.getGraphX(),O.getGraphY(),ca),L.blockDelayedSelection=
+!fa,O.consume()))}}for(;!O.isConsumed()&&null!=F&&(this.isTableCell(F.cell)||this.isTableRow(F.cell)||this.isTable(F.cell));)this.isSwimlane(F.cell)&&(L=this.getActualStartSize(F.cell),(0<L.x||0<L.width)&&mxUtils.intersects(T,new mxRectangle(F.x+(L.x-L.width-1)*S+(0==L.x?F.width:0),F.y,1,F.height))||(0<L.y||0<L.height)&&mxUtils.intersects(T,new mxRectangle(F.x,F.y+(L.y-L.height-1)*S+(0==L.y?F.height:0),F.width,1)))&&(this.selectCellForEvent(F.cell,O.getEvent()),L=this.selectionCellsHandler.getHandler(F.cell),
+null!=L&&(ca=mxEvent.CUSTOM_HANDLE-L.customHandles.length+1,L.start(O.getGraphX(),O.getGraphY(),ca),O.consume())),F=this.view.getState(this.model.getParent(F.cell))}}}));this.addMouseListener({mouseDown:function(O,S){},mouseMove:mxUtils.bind(this,function(O,S){O=this.selectionCellsHandler.handlers.map;for(var F in O)if(null!=O[F].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isAltDown(S.getEvent())){var L=this.tolerance;if(null!=k&&null!=u&&null!=n){if(F=u,Math.abs(k.x-
+S.getGraphX())>L||Math.abs(k.y-S.getGraphY())>L){var T=this.selectionCellsHandler.getHandler(F.cell);null==T&&this.model.isEdge(F.cell)&&(T=this.createHandler(F));if(null!=T&&null!=T.bends&&0<T.bends.length){O=T.getHandleForEvent(n);var ca=this.view.getEdgeStyle(F);L=ca==mxEdgeStyle.EntityRelation;r||m!=mxEvent.LABEL_HANDLE||(O=m);if(L&&0!=O&&O!=T.bends.length-1&&O!=mxEvent.LABEL_HANDLE)!L||null==F.visibleSourceState&&null==F.visibleTargetState||(this.graphHandler.reset(),S.consume());else if(O==
+mxEvent.LABEL_HANDLE||0==O||null!=F.visibleSourceState||O==T.bends.length-1||null!=F.visibleTargetState)L||O==mxEvent.LABEL_HANDLE||(L=F.absolutePoints,null!=L&&(null==ca&&null==O||ca==mxEdgeStyle.OrthConnector)&&(O=m,null==O&&(O=new mxRectangle(k.x,k.y),O.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(O,L[0].x,L[0].y)?O=0:mxUtils.contains(O,L[L.length-1].x,L[L.length-1].y)?O=T.bends.length-1:null!=ca&&(2==L.length||3==L.length&&(0==Math.round(L[0].x-L[1].x)&&0==Math.round(L[1].x-
+L[2].x)||0==Math.round(L[0].y-L[1].y)&&0==Math.round(L[1].y-L[2].y)))?O=2:(O=mxUtils.findNearestSegment(F,k.x,k.y),O=null==ca?mxEvent.VIRTUAL_HANDLE-O:O+1))),null==O&&(O=mxEvent.VIRTUAL_HANDLE)),T.start(S.getGraphX(),S.getGraphX(),O),S.consume(),this.graphHandler.reset()}null!=T&&(this.selectionCellsHandler.isHandlerActive(T)?this.isCellSelected(F.cell)||(this.selectionCellsHandler.handlers.put(F.cell,T),this.selectCellForEvent(F.cell,S.getEvent())):this.isCellSelected(F.cell)||T.destroy());r=!1;
+k=n=u=m=null}}else if(F=S.getState(),null!=F&&this.isCellEditable(F.cell)){T=null;if(this.model.isEdge(F.cell)){if(O=new mxRectangle(S.getGraphX(),S.getGraphY()),O.grow(mxEdgeHandler.prototype.handleImage.width/2),L=F.absolutePoints,null!=L)if(null!=F.text&&null!=F.text.boundingBox&&mxUtils.contains(F.text.boundingBox,S.getGraphX(),S.getGraphY()))T="move";else if(mxUtils.contains(O,L[0].x,L[0].y)||mxUtils.contains(O,L[L.length-1].x,L[L.length-1].y))T="pointer";else if(null!=F.visibleSourceState||
+null!=F.visibleTargetState)O=this.view.getEdgeStyle(F),T="crosshair",O!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(F)&&(S=mxUtils.findNearestSegment(F,S.getGraphX(),S.getGraphY()),S<L.length-1&&0<=S&&(T=0==Math.round(L[S].x-L[S+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(S.getEvent())){L=mxShape.prototype.svgStrokeTolerance/2;O=new mxRectangle(S.getGraphX(),S.getGraphY());O.grow(L);if(this.isTableCell(F.cell)&&(S=this.model.getParent(F.cell),L=this.model.getParent(S),!this.isCellSelected(L)))if(mxUtils.intersects(O,
+new mxRectangle(F.x,F.y-2,F.width,4))&&this.model.getChildAt(L,0)!=S||mxUtils.intersects(O,new mxRectangle(F.x,F.y+F.height-2,F.width,4)))T="row-resize";else if(mxUtils.intersects(O,new mxRectangle(F.x-2,F.y,4,F.height))&&this.model.getChildAt(S,0)!=F.cell||mxUtils.intersects(O,new mxRectangle(F.x+F.width-2,F.y,4,F.height)))T="col-resize";for(S=F;null==T&&null!=S&&(this.isTableCell(S.cell)||this.isTableRow(S.cell)||this.isTable(S.cell));)this.isSwimlane(S.cell)&&(L=this.getActualStartSize(S.cell),
+ca=this.view.scale,(0<L.x||0<L.width)&&mxUtils.intersects(O,new mxRectangle(S.x+(L.x-L.width-1)*ca+(0==L.x?S.width*ca:0),S.y,1,S.height))?T="col-resize":(0<L.y||0<L.height)&&mxUtils.intersects(O,new mxRectangle(S.x,S.y+(L.y-L.height-1)*ca+(0==L.y?S.height:0),S.width,1))&&(T="row-resize")),S=this.view.getState(this.model.getParent(S.cell))}null!=T&&F.setCursor(T)}}}),mouseUp:mxUtils.bind(this,function(O,S){m=k=n=u=null})})}this.cellRenderer.minSvgStrokeWidth=.1;this.cellRenderer.getLabelValue=function(O){var S=
+mxCellRenderer.prototype.getLabelValue.apply(this,arguments);O.view.graph.isHtmlLabel(O.cell)&&(S=1!=O.style.html?mxUtils.htmlEntities(S,!1):O.view.graph.sanitizeHtml(S));return S};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(O,S){return!1};this.alternateEdgeStyle="vertical";null==d&&this.loadStylesheet();var x=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=function(){var O=x.apply(this,arguments);if(this.graph.pageVisible){var S=[],F=this.graph.pageFormat,L=this.graph.pageScale,T=F.width*L;F=F.height*L;L=this.graph.view.translate;for(var ca=this.graph.view.scale,fa=
+this.graph.getPageLayout(),wa=0;wa<fa.width;wa++)S.push(new mxRectangle(((fa.x+wa)*T+L.x)*ca,(fa.y*F+L.y)*ca,T*ca,F*ca));for(wa=1;wa<fa.height;wa++)S.push(new mxRectangle((fa.x*T+L.x)*ca,((fa.y+wa)*F+L.y)*ca,T*ca,F*ca));O=S.concat(O)}return O};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=function(O,S){return null==O.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(O){this.previewColor="#000000"==this.graph.background?
+"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var B=this.graphHandler.getCells;this.graphHandler.getCells=function(O){for(var S=B.apply(this,arguments),F=new mxDictionary,L=[],T=0;T<S.length;T++){var ca=this.graph.isTableCell(O)&&this.graph.isTableCell(S[T])&&this.graph.isCellSelected(S[T])?this.graph.model.getParent(S[T]):this.graph.isTableRow(O)&&this.graph.isTableRow(S[T])&&this.graph.isCellSelected(S[T])?S[T]:this.graph.getCompositeParent(S[T]);
+null==ca||F.get(ca)||(F.put(ca,!0),L.push(ca))}return L};var C=this.graphHandler.start;this.graphHandler.start=function(O,S,F,L){var T=!1;this.graph.isTableCell(O)&&(this.graph.isCellSelected(O)?T=!0:O=this.graph.model.getParent(O));T||this.graph.isTableRow(O)&&this.graph.isCellSelected(O)||(O=this.graph.getCompositeParent(O));C.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(O,S){S=this.graph.getCompositeParent(S);return mxConnectionHandler.prototype.createTargetVertex.apply(this,
+arguments)};var G=new mxRubberband(this);this.getRubberband=function(){return G};var J=(new Date).getTime(),D=0,N=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var O=this.currentState;N.apply(this,arguments);O!=this.currentState?(J=(new Date).getTime(),D=0):D=(new Date).getTime()-J};var Q=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(O){return mxEvent.isShiftDown(O.getEvent())&&mxEvent.isAltDown(O.getEvent())?!1:null!=
+this.currentState&&O.getState()==this.currentState&&2E3<D||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&Q.apply(this,arguments)};var R=this.isToggleEvent;this.isToggleEvent=function(O){return R.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(O)};var P=G.isForceRubberbandEvent;G.isForceRubberbandEvent=function(O){return P.apply(this,arguments)||mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(O.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&
+mxClient.IS_FF&&mxClient.IS_WIN&&null==O.getState()&&mxEvent.isTouchEvent(O.getEvent())};var Z=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(Z=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=Z)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(O){return mxEvent.isMouseEvent(O.getEvent())};
+var U=this.click;this.click=function(O){var S=null==O.state&&null!=O.sourceState&&this.isCellLocked(O.sourceState.cell);if(this.isEnabled()&&!S||O.isConsumed())return U.apply(this,arguments);var F=S?O.sourceState.cell:O.getCell();null!=F&&(F=this.getClickableLinkForCell(F),null!=F&&(this.isCustomLink(F)?this.customLinkClicked(F):this.openLink(F)));this.isEnabled()&&S&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(O){return O.sourceState};var V=this.tooltipHandler.show;this.tooltipHandler.show=
+function(){V.apply(this,arguments);if(null!=this.div)for(var O=this.div.getElementsByTagName("a"),S=0;S<O.length;S++)null!=O[S].getAttribute("href")&&null==O[S].getAttribute("target")&&O[S].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(O){return O.sourceState};this.getCursorForMouseEvent=function(O){var S=null==O.state&&null!=O.sourceState&&this.isCellLocked(O.sourceState.cell);return this.getCursorForCell(S?O.sourceState.cell:O.getCell())};var ia=this.getCursorForCell;
+this.getCursorForCell=function(O){if(!this.isEnabled()||this.isCellLocked(O)){if(null!=this.getClickableLinkForCell(O))return"pointer";if(this.isCellLocked(O))return"default"}return ia.apply(this,arguments)};this.selectRegion=function(O,S){var F=mxEvent.isAltDown(S)?O:null;O=this.getCells(O.x,O.y,O.width,O.height,null,null,F,function(L){return"1"==mxUtils.getValue(L.style,"locked","0")},!0);if(this.isToggleEvent(S))for(F=0;F<O.length;F++)this.selectCellForEvent(O[F],S);else this.selectCellsForEvent(O,
+S);return O};var ha=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(O,S,F){return this.graph.isCellSelected(O)?!1:ha.apply(this,arguments)};this.isCellLocked=function(O){for(;null!=O;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(O),"locked","0"))return!0;O=this.model.getParent(O)}return!1};var ba=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(O,S){"mouseDown"==S.getProperty("eventName")&&(O=S.getProperty("event").getState(),
+ba=null==O||this.isSelectionEmpty()||this.isCellSelected(O.cell)?null:this.getSelectionCells())}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(O,S){if(!mxEvent.isMultiTouchEvent(S)){O=S.getProperty("event");var F=S.getProperty("cell");null==F?(O=mxUtils.convertPoint(this.container,mxEvent.getClientX(O),mxEvent.getClientY(O)),G.start(O.x,O.y)):null!=ba?this.addSelectionCells(ba):1<this.getSelectionCount()&&this.isCellSelected(F)&&this.removeSelectionCell(F);ba=null;S.consume()}}));
+this.connectionHandler.selectCells=function(O,S){this.graph.setSelectionCell(S||O)};this.connectionHandler.constraintHandler.isStateIgnored=function(O,S){var F=O.view.graph;return S&&(F.isCellSelected(O.cell)||F.isTableRow(O.cell)&&F.selectionCellsHandler.isHandled(F.model.getParent(O.cell)))};this.selectionModel.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){var O=this.connectionHandler.constraintHandler;null!=O.currentFocus&&O.isStateIgnored(O.currentFocus,!0)&&(O.currentFocus=null,O.constraints=
+null,O.destroyIcons());O.destroyFocusHighlight()}));Graph.touchStyle&&this.initTouch();var qa=this.updateMouseEvent;this.updateMouseEvent=function(O){O=qa.apply(this,arguments);null!=O.state&&this.isCellLocked(O.getCell())&&(O.state=null);return O}}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="Text is not SVG - cannot display";
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(" ");
Graph.layoutNames="mxHierarchicalLayout mxCircleLayout mxCompactTreeLayout mxEdgeLabelLayout mxFastOrganicLayout mxParallelEdgeLayout mxPartitionLayout mxRadialTreeLayout mxStackLayout".split(" ");
@@ -2896,8 +2896,8 @@ mxUtils.getValue(k.style,mxConstants.STYLE_SHAPE,null);return"label"==k||"image"
n,0==u)}return n};Graph.prototype.mergeStyle=function(k,n,u){if(null!=k){var m={},r;for(r in k){var x=k[r];null!=x&&(m[r]=!0,null==n[r]&&u?n[r]=x:n[r]!=x&&delete n[r])}for(r in n)m[r]||delete n[r]}};Graph.prototype.getStartEditingCell=function(k,n){n=this.getCellStyle(k);n=parseInt(mxUtils.getValue(n,mxConstants.STYLE_STARTSIZE,0));this.isTable(k)&&(!this.isSwimlane(k)||0==n)&&""==this.getLabel(k)&&0<this.model.getChildCount(k)&&(k=this.model.getChildAt(k,0),n=this.getCellStyle(k),n=parseInt(mxUtils.getValue(n,
mxConstants.STYLE_STARTSIZE,0)));if(this.isTableRow(k)&&(!this.isSwimlane(k)||0==n)&&""==this.getLabel(k)&&0<this.model.getChildCount(k))for(n=0;n<this.model.getChildCount(k);n++){var u=this.model.getChildAt(k,n);if(this.isCellEditable(u)){k=u;break}}return k};Graph.prototype.copyStyle=function(k){return this.getCellStyle(k,!1)};Graph.prototype.pasteStyle=function(k,n,u){u=null!=u?u:Graph.pasteStyles;Graph.removeKeys(k,function(m){return 0>mxUtils.indexOf(u,m)});this.updateCellStyles(k,n)};Graph.prototype.updateCellStyles=
function(k,n){this.model.beginUpdate();try{for(var u=0;u<n.length;u++)if(this.model.isVertex(n[u])||this.model.isEdge(n[u])){var m=this.getCellStyle(n[u],!1),r;for(r in k){var x=k[r];m[r]!=x&&this.setCellStyles(r,x,[n[u]])}}}finally{this.model.endUpdate()}};Graph.prototype.isFastZoomEnabled=function(){return"nocss"!=urlParams.zoom&&!mxClient.NO_FO&&!mxClient.IS_EDGE&&!this.useCssTransforms&&(this.isCssTransformsSupported()||mxClient.IS_IOS)};Graph.prototype.isCssTransformsSupported=function(){return this.dialect==
-mxConstants.DIALECT_SVG&&!mxClient.NO_FO&&(!this.lightbox||!mxClient.IS_SF)};Graph.prototype.getCellAt=function(k,n,u,m,r,x){this.useCssTransforms&&(k=k/this.currentScale-this.currentTranslate.x,n=n/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(k,n,u,m,r,x){m=null!=m?m:!0;r=null!=r?r:!0;null==u&&(u=this.getCurrentRoot(),null==u&&(u=this.getModel().getRoot()));if(null!=u)for(var A=this.model.getChildCount(u)-1;0<=
-A;A--){var C=this.model.getChildAt(u,A),F=this.getScaledCellAt(k,n,C,m,r,x);if(null!=F)return F;if(this.isCellVisible(C)&&(r&&this.model.isEdge(C)||m&&this.model.isVertex(C))&&(F=this.view.getState(C),null!=F&&(null==x||!x(F,k,n))&&this.intersects(F,k,n)))return C}return null};Graph.prototype.isRecursiveVertexResize=function(k){return!this.isSwimlane(k.cell)&&0<this.model.getChildCount(k.cell)&&!this.isCellCollapsed(k.cell)&&"1"==mxUtils.getValue(k.style,"recursiveResize","1")&&null==mxUtils.getValue(k.style,
+mxConstants.DIALECT_SVG&&!mxClient.NO_FO&&(!this.lightbox||!mxClient.IS_SF)};Graph.prototype.getCellAt=function(k,n,u,m,r,x){this.useCssTransforms&&(k=k/this.currentScale-this.currentTranslate.x,n=n/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(k,n,u,m,r,x){m=null!=m?m:!0;r=null!=r?r:!0;null==u&&(u=this.getCurrentRoot(),null==u&&(u=this.getModel().getRoot()));if(null!=u)for(var B=this.model.getChildCount(u)-1;0<=
+B;B--){var C=this.model.getChildAt(u,B),G=this.getScaledCellAt(k,n,C,m,r,x);if(null!=G)return G;if(this.isCellVisible(C)&&(r&&this.model.isEdge(C)||m&&this.model.isVertex(C))&&(G=this.view.getState(C),null!=G&&(null==x||!x(G,k,n))&&this.intersects(G,k,n)))return C}return null};Graph.prototype.isRecursiveVertexResize=function(k){return!this.isSwimlane(k.cell)&&0<this.model.getChildCount(k.cell)&&!this.isCellCollapsed(k.cell)&&"1"==mxUtils.getValue(k.style,"recursiveResize","1")&&null==mxUtils.getValue(k.style,
"childLayout",null)};Graph.prototype.getAbsoluteParent=function(k){for(var n=this.getCellGeometry(k);null!=n&&n.relative;)k=this.getModel().getParent(k),n=this.getCellGeometry(k);return k};Graph.prototype.isPart=function(k){return"1"==mxUtils.getValue(this.getCurrentCellStyle(k),"part","0")||this.isTableCell(k)||this.isTableRow(k)};Graph.prototype.getCompositeParents=function(k){for(var n=new mxDictionary,u=[],m=0;m<k.length;m++){var r=this.getCompositeParent(k[m]);this.isTableCell(r)&&(r=this.graph.model.getParent(r));
this.isTableRow(r)&&(r=this.graph.model.getParent(r));null==r||n.get(r)||(n.put(r,!0),u.push(r))}return u};Graph.prototype.getCompositeParent=function(k){for(;this.isPart(k);){var n=this.model.getParent(k);if(!this.model.isVertex(n))break;k=n}return k};Graph.prototype.filterSelectionCells=function(k){var n=this.getSelectionCells();if(null!=k){for(var u=[],m=0;m<n.length;m++)k(n[m])||u.push(n[m]);n=u}return n};var a=mxGraph.prototype.scrollRectToVisible;Graph.prototype.scrollRectToVisible=function(k){if(this.useCssTransforms){var n=
this.currentScale,u=this.currentTranslate;k=new mxRectangle((k.x+2*u.x)*n-u.x,(k.y+2*u.y)*n-u.y,k.width*n,k.height*n)}a.apply(this,arguments)};mxCellHighlight.prototype.getStrokeWidth=function(k){k=this.strokeWidth;this.graph.useCssTransforms&&(k/=this.graph.currentScale);return k};mxGraphView.prototype.getGraphBounds=function(){var k=this.graphBounds;if(this.graph.useCssTransforms){var n=this.graph.currentTranslate,u=this.graph.currentScale;k=new mxRectangle((k.x+n.x)*u,(k.y+n.y)*u,k.width*u,k.height*
@@ -2932,10 +2932,10 @@ Graph.prototype.getLabel=function(a){var b=mxGraph.prototype.getLabel.apply(this
Graph.prototype.setGridSize=function(a){this.gridSize=a;this.fireEvent(new mxEventObject("gridSizeChanged"))};Graph.prototype.setDefaultParent=function(a){this.defaultParent=a;this.fireEvent(new mxEventObject("defaultParentChanged"))};Graph.prototype.getClickableLinkForCell=function(a){do{var b=this.getLinkForCell(a);if(null!=b)return b;a=this.model.getParent(a)}while(null!=a);return null};
Graph.prototype.getGlobalVariable=function(a){var b=null;"date"==a?b=(new Date).toLocaleDateString():"time"==a?b=(new Date).toLocaleTimeString():"timestamp"==a?b=(new Date).toLocaleString():"date{"==a.substring(0,5)&&(a=a.substring(5,a.length-1),b=this.formatDate(new Date,a));return b};
Graph.prototype.formatDate=function(a,b,f){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 d=this.dateFormatCache,g=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,e=/[^-+\dA-Z]/g,k=function(O,Q){O=String(O);for(Q=Q||2;O.length<Q;)O="0"+O;return O};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)||
-/\d/.test(a)||(b=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");b=String(d.masks[b]||b||d.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),f=!0);var n=f?"getUTC":"get",u=a[n+"Date"](),m=a[n+"Day"](),r=a[n+"Month"](),x=a[n+"FullYear"](),A=a[n+"Hours"](),C=a[n+"Minutes"](),F=a[n+"Seconds"]();n=a[n+"Milliseconds"]();var K=f?0:a.getTimezoneOffset(),D={d:u,dd:k(u),ddd:d.i18n.dayNames[m],dddd:d.i18n.dayNames[m+7],m:r+1,mm:k(r+1),mmm:d.i18n.monthNames[r],mmmm:d.i18n.monthNames[r+
-12],yy:String(x).slice(2),yyyy:x,h:A%12||12,hh:k(A%12||12),H:A,HH:k(A),M:C,MM:k(C),s:F,ss:k(F),l:k(n,3),L:k(99<n?Math.round(n/10):n),t:12>A?"a":"p",tt:12>A?"am":"pm",T:12>A?"A":"P",TT:12>A?"AM":"PM",Z:f?"UTC":(String(a).match(g)||[""]).pop().replace(e,""),o:(0<K?"-":"+")+k(100*Math.floor(Math.abs(K)/60)+Math.abs(K)%60,4),S:["th","st","nd","rd"][3<u%10?0:(10!=u%100-u%10)*u%10]};return b.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(O){return O in D?D[O]:O.slice(1,
-O.length-1)})};Graph.prototype.getLayerForCells=function(a){var b=null;if(0<a.length){for(b=a[0];!this.model.isLayer(b);)b=this.model.getParent(b);for(var f=1;f<a.length;f++)if(!this.model.isAncestor(b,a[f])){b=null;break}}return b};
+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 d=this.dateFormatCache,g=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,e=/[^-+\dA-Z]/g,k=function(N,Q){N=String(N);for(Q=Q||2;N.length<Q;)N="0"+N;return N};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)||
+/\d/.test(a)||(b=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");b=String(d.masks[b]||b||d.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),f=!0);var n=f?"getUTC":"get",u=a[n+"Date"](),m=a[n+"Day"](),r=a[n+"Month"](),x=a[n+"FullYear"](),B=a[n+"Hours"](),C=a[n+"Minutes"](),G=a[n+"Seconds"]();n=a[n+"Milliseconds"]();var J=f?0:a.getTimezoneOffset(),D={d:u,dd:k(u),ddd:d.i18n.dayNames[m],dddd:d.i18n.dayNames[m+7],m:r+1,mm:k(r+1),mmm:d.i18n.monthNames[r],mmmm:d.i18n.monthNames[r+
+12],yy:String(x).slice(2),yyyy:x,h:B%12||12,hh:k(B%12||12),H:B,HH:k(B),M:C,MM:k(C),s:G,ss:k(G),l:k(n,3),L:k(99<n?Math.round(n/10):n),t:12>B?"a":"p",tt:12>B?"am":"pm",T:12>B?"A":"P",TT:12>B?"AM":"PM",Z:f?"UTC":(String(a).match(g)||[""]).pop().replace(e,""),o:(0<J?"-":"+")+k(100*Math.floor(Math.abs(J)/60)+Math.abs(J)%60,4),S:["th","st","nd","rd"][3<u%10?0:(10!=u%100-u%10)*u%10]};return b.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(N){return N in D?D[N]:N.slice(1,
+N.length-1)})};Graph.prototype.getLayerForCells=function(a){var b=null;if(0<a.length){for(b=a[0];!this.model.isLayer(b);)b=this.model.getParent(b);for(var f=1;f<a.length;f++)if(!this.model.isAncestor(b,a[f])){b=null;break}}return b};
Graph.prototype.createLayersDialog=function(a,b){var f=document.createElement("div");f.style.position="absolute";for(var d=this.getModel(),g=d.getChildCount(d.root),e=0;e<g;e++)mxUtils.bind(this,function(k){function n(){d.isVisible(k)?(r.setAttribute("src",Editor.visibleImage),mxUtils.setOpacity(m,75)):(r.setAttribute("src",Editor.hiddenImage),mxUtils.setOpacity(m,25))}var u=this.convertValueToString(k)||mxResources.get("background")||"Background",m=document.createElement("div");m.style.overflow=
"hidden";m.style.textOverflow="ellipsis";m.style.padding="2px";m.style.whiteSpace="nowrap";m.style.cursor="pointer";m.setAttribute("title",mxResources.get(d.isVisible(k)?"hideIt":"show",[u]));var r=document.createElement("img");r.setAttribute("draggable","false");r.setAttribute("align","absmiddle");r.setAttribute("border","0");r.style.position="relative";r.style.width="16px";r.style.padding="0px 6px 0 4px";b&&(r.style.filter="invert(100%)",r.style.top="-2px");m.appendChild(r);mxUtils.write(m,u);f.appendChild(m);
mxEvent.addListener(m,"click",function(){d.setVisible(k,!d.isVisible(k));n();null!=a&&a(k)});n()})(d.getChildAt(d.root,e));return f};
@@ -2948,12 +2948,12 @@ Graph.prototype.snapCellsToGrid=function(a,b){this.getModel().beginUpdate();try{
g)}}}finally{this.getModel().endUpdate()}};Graph.prototype.selectCellsForConnectVertex=function(a,b,f){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),this.scrollCellToVisible(a[1]),null!=f&&(mxEvent.isTouchEvent(b)?f.update(f.getState(this.view.getState(a[1]))):f.reset())):this.setSelectionCells(a)};
Graph.prototype.isCloneConnectSource=function(a){var b=null;null!=this.layoutManager&&(b=this.layoutManager.getLayout(this.model.getParent(a)));return this.isTableRow(a)||this.isTableCell(a)||null!=b&&b.constructor==mxStackLayout};
Graph.prototype.connectVertex=function(a,b,f,d,g,e,k,n){e=e?e:!1;if(a.geometry.relative&&this.model.isEdge(a.parent))return[];for(;a.geometry.relative&&this.model.isVertex(a.parent);)a=a.parent;var u=this.isCloneConnectSource(a),m=u?a:this.getCompositeParent(a),r=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(m.geometry.x,m.geometry.y);b==mxConstants.DIRECTION_NORTH?(r.x+=m.geometry.width/2,r.y-=f):b==
-mxConstants.DIRECTION_SOUTH?(r.x+=m.geometry.width/2,r.y+=m.geometry.height+f):(r.x=b==mxConstants.DIRECTION_WEST?r.x-f:r.x+(m.geometry.width+f),r.y+=m.geometry.height/2);var x=this.view.getState(this.model.getParent(a));f=this.view.scale;var A=this.view.translate;m=A.x*f;A=A.y*f;null!=x&&this.model.isVertex(x.cell)&&(m=x.x,A=x.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(r.x+=a.parent.geometry.x,r.y+=a.parent.geometry.y);e=e?null:(new mxRectangle(m+r.x*f,A+r.y*f)).grow(40*f);e=null!=e?
-this.getCells(0,0,0,0,null,null,e,null,!0):null;x=this.view.getState(a);var C=null,F=null;if(null!=e){e=e.reverse();for(var K=0;K<e.length;K++)if(!this.isCellLocked(e[K])&&!this.model.isEdge(e[K])&&e[K]!=a)if(!this.model.isAncestor(a,e[K])&&this.isContainer(e[K])&&(null==C||e[K]==this.model.getParent(a)))C=e[K];else if(null==F&&this.isCellConnectable(e[K])&&!this.model.isAncestor(e[K],a)&&!this.isSwimlane(e[K])){var D=this.view.getState(e[K]);null==x||null==D||mxUtils.intersects(x,D)||(F=e[K])}}var O=
-!mxEvent.isShiftDown(d)||mxEvent.isControlDown(d)||g;O&&("1"!=urlParams.sketch||g)&&(b==mxConstants.DIRECTION_NORTH?r.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?r.y+=a.geometry.height/2:r.x=b==mxConstants.DIRECTION_WEST?r.x-a.geometry.width/2:r.x+a.geometry.width/2);var Q=[],R=F;F=C;g=mxUtils.bind(this,function(P){if(null==k||null!=P||null==F&&u){this.model.beginUpdate();try{if(null==R&&O){var Z=this.getAbsoluteParent(null!=P?P:a);Z=u?a:this.getCompositeParent(Z);R=null!=P?P:this.duplicateCells([Z],
-!1)[0];null!=P&&this.addCells([R],this.model.getParent(a),null,null,null,!0);var T=this.getCellGeometry(R);null!=T&&(null!=P&&"1"==urlParams.sketch&&(b==mxConstants.DIRECTION_NORTH?r.y-=T.height/2:b==mxConstants.DIRECTION_SOUTH?r.y+=T.height/2:r.x=b==mxConstants.DIRECTION_WEST?r.x-T.width/2:r.x+T.width/2),T.x=r.x-T.width/2,T.y=r.y-T.height/2);null!=C?(this.addCells([R],C,null,null,null,!0),F=null):O&&!u&&this.addCells([R],this.getDefaultParent(),null,null,null,!0)}var U=mxEvent.isControlDown(d)&&
-mxEvent.isShiftDown(d)&&O||null==F&&u?null:this.insertEdge(this.model.getParent(a),null,"",a,R,this.createCurrentEdgeStyle());if(null!=U&&this.connectionHandler.insertBeforeSource){var fa=null;for(P=a;null!=P.parent&&null!=P.geometry&&P.geometry.relative&&P.parent!=U.parent;)P=this.model.getParent(P);null!=P&&null!=P.parent&&P.parent==U.parent&&(fa=P.parent.getIndex(P),this.model.add(P.parent,U,fa))}null==F&&null!=R&&null!=a.parent&&u&&b==mxConstants.DIRECTION_WEST&&(fa=a.parent.getIndex(a),this.model.add(a.parent,
-R,fa));null!=U&&Q.push(U);null==F&&null!=R&&Q.push(R);null==R&&null!=U&&U.geometry.setTerminalPoint(r,!1);null!=U&&this.fireEvent(new mxEventObject("cellsInserted","cells",[U]))}finally{this.model.endUpdate()}}if(null!=n)n(Q);else return Q});if(null==k||null!=R||!O||null==F&&u)return g(R);k(m+r.x*f,A+r.y*f,g)};
+mxConstants.DIRECTION_SOUTH?(r.x+=m.geometry.width/2,r.y+=m.geometry.height+f):(r.x=b==mxConstants.DIRECTION_WEST?r.x-f:r.x+(m.geometry.width+f),r.y+=m.geometry.height/2);var x=this.view.getState(this.model.getParent(a));f=this.view.scale;var B=this.view.translate;m=B.x*f;B=B.y*f;null!=x&&this.model.isVertex(x.cell)&&(m=x.x,B=x.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(r.x+=a.parent.geometry.x,r.y+=a.parent.geometry.y);e=e?null:(new mxRectangle(m+r.x*f,B+r.y*f)).grow(40*f);e=null!=e?
+this.getCells(0,0,0,0,null,null,e,null,!0):null;x=this.view.getState(a);var C=null,G=null;if(null!=e){e=e.reverse();for(var J=0;J<e.length;J++)if(!this.isCellLocked(e[J])&&!this.model.isEdge(e[J])&&e[J]!=a)if(!this.model.isAncestor(a,e[J])&&this.isContainer(e[J])&&(null==C||e[J]==this.model.getParent(a)))C=e[J];else if(null==G&&this.isCellConnectable(e[J])&&!this.model.isAncestor(e[J],a)&&!this.isSwimlane(e[J])){var D=this.view.getState(e[J]);null==x||null==D||mxUtils.intersects(x,D)||(G=e[J])}}var N=
+!mxEvent.isShiftDown(d)||mxEvent.isControlDown(d)||g;N&&("1"!=urlParams.sketch||g)&&(b==mxConstants.DIRECTION_NORTH?r.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?r.y+=a.geometry.height/2:r.x=b==mxConstants.DIRECTION_WEST?r.x-a.geometry.width/2:r.x+a.geometry.width/2);var Q=[],R=G;G=C;g=mxUtils.bind(this,function(P){if(null==k||null!=P||null==G&&u){this.model.beginUpdate();try{if(null==R&&N){var Z=this.getAbsoluteParent(null!=P?P:a);Z=u?a:this.getCompositeParent(Z);R=null!=P?P:this.duplicateCells([Z],
+!1)[0];null!=P&&this.addCells([R],this.model.getParent(a),null,null,null,!0);var U=this.getCellGeometry(R);null!=U&&(null!=P&&"1"==urlParams.sketch&&(b==mxConstants.DIRECTION_NORTH?r.y-=U.height/2:b==mxConstants.DIRECTION_SOUTH?r.y+=U.height/2:r.x=b==mxConstants.DIRECTION_WEST?r.x-U.width/2:r.x+U.width/2),U.x=r.x-U.width/2,U.y=r.y-U.height/2);null!=C?(this.addCells([R],C,null,null,null,!0),G=null):N&&!u&&this.addCells([R],this.getDefaultParent(),null,null,null,!0)}var V=mxEvent.isControlDown(d)&&
+mxEvent.isShiftDown(d)&&N||null==G&&u?null:this.insertEdge(this.model.getParent(a),null,"",a,R,this.createCurrentEdgeStyle());if(null!=V&&this.connectionHandler.insertBeforeSource){var ia=null;for(P=a;null!=P.parent&&null!=P.geometry&&P.geometry.relative&&P.parent!=V.parent;)P=this.model.getParent(P);null!=P&&null!=P.parent&&P.parent==V.parent&&(ia=P.parent.getIndex(P),this.model.add(P.parent,V,ia))}null==G&&null!=R&&null!=a.parent&&u&&b==mxConstants.DIRECTION_WEST&&(ia=a.parent.getIndex(a),this.model.add(a.parent,
+R,ia));null!=V&&Q.push(V);null==G&&null!=R&&Q.push(R);null==R&&null!=V&&V.geometry.setTerminalPoint(r,!1);null!=V&&this.fireEvent(new mxEventObject("cellsInserted","cells",[V]))}finally{this.model.endUpdate()}}if(null!=n)n(Q);else return Q});if(null==k||null!=R||!N||null==G&&u)return g(R);k(m+r.x*f,B+r.y*f,g)};
Graph.prototype.getIndexableText=function(a){a=null!=a?a:this.model.getDescendants(this.model.root);for(var b=document.createElement("div"),f=[],d,g=0;g<a.length;g++)if(d=a[g],this.model.isVertex(d)||this.model.isEdge(d))this.isHtmlLabel(d)?(b.innerHTML=this.sanitizeHtml(this.getLabel(d)),d=mxUtils.extractTextWithWhitespace([b])):d=this.getLabel(d),d=mxUtils.trim(d.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<d.length&&f.push(d);return f.join(" ")};
Graph.prototype.convertValueToString=function(a){var b=this.model.getValue(a);if(null!=b&&"object"==typeof b){var f=null;if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder")){b=a.getAttribute("placeholder");for(var d=a;null==f&&null!=d;)null!=d.value&&"object"==typeof d.value&&(f=d.hasAttribute(b)?null!=d.getAttribute(b)?d.getAttribute(b):"":null),d=this.model.getParent(d)}else f=null,Graph.translateDiagram&&null!=Graph.diagramLanguage&&(f=b.getAttribute("label_"+Graph.diagramLanguage)),
null==f&&(f=b.getAttribute("label")||"");return f||""}return mxGraph.prototype.convertValueToString.apply(this,arguments)};Graph.prototype.getLinksForState=function(a){return null!=a&&null!=a.text&&null!=a.text.node?a.text.node.getElementsByTagName("a"):null};Graph.prototype.getLinkForCell=function(a){return null!=a.value&&"object"==typeof a.value?(a=a.value.getAttribute("link"),null!=a&&"javascript:"===a.toLowerCase().substring(0,11)&&(a=a.substring(11)),a):null};
@@ -3017,36 +3017,36 @@ Graph.prototype.setTableValues=function(a,b,f){for(var d=this.model.getChildCell
Graph.prototype.createCrossFunctionalSwimlane=function(a,b,f,d,g,e,k,n,u){f=null!=f?f:120;d=null!=d?d:120;k=null!=k?k:"shape=tableRow;horizontal=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;dropTarget=0;fontStyle=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;startSize=40;collapsible=0;recursiveResize=0;expand=0;";n=null!=n?n:"swimlane;swimlaneHead=0;swimlaneBody=0;fontStyle=0;connectable=0;fillColor=none;startSize=40;collapsible=0;recursiveResize=0;expand=0;";
u=null!=u?u:"swimlane;swimlaneHead=0;swimlaneBody=0;fontStyle=0;connectable=0;fillColor=none;startSize=0;collapsible=0;recursiveResize=0;expand=0;";g=this.createVertex(null,null,null!=g?g:"",0,0,b*f,a*d,null!=e?e:"shape=table;childLayout=tableLayout;"+(null==g?"startSize=0;fillColor=none;":"startSize=40;")+"collapsible=0;recursiveResize=0;expand=0;");e=mxUtils.getValue(this.getCellStyle(g),mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);g.geometry.width+=e;g.geometry.height+=e;k=this.createVertex(null,
null,"",0,e,b*f+e,d,k);g.insert(this.createParent(k,this.createVertex(null,null,"",e,0,f,d,n),b,f,0));return 1<a?(k.geometry.y=d+e,this.createParent(g,this.createParent(k,this.createVertex(null,null,"",e,0,f,d,u),b,f,0),a-1,0,d)):g};
-Graph.prototype.visitTableCells=function(a,b){var f=null,d=this.model.getChildCells(a,!0);a=this.getActualStartSize(a,!0);for(var g=0;g<d.length;g++){for(var e=this.getActualStartSize(d[g],!0),k=this.model.getChildCells(d[g],!0),n=this.getCellStyle(d[g],!0),u=null,m=[],r=0;r<k.length;r++){var x=this.getCellGeometry(k[r]),A={cell:k[r],rospan:1,colspan:1,row:g,col:r,geo:x};x=null!=x.alternateBounds?x.alternateBounds:x;A.point=new mxPoint(x.width+(null!=u?u.point.x:a.x+e.x),x.height+(null!=f&&null!=
-f[0]?f[0].point.y:a.y+e.y));A.actual=A;null!=f&&null!=f[r]&&1<f[r].rowspan?(A.rowspan=f[r].rowspan-1,A.colspan=f[r].colspan,A.actual=f[r].actual):null!=u&&1<u.colspan?(A.rowspan=u.rowspan,A.colspan=u.colspan-1,A.actual=u.actual):(u=this.getCurrentCellStyle(k[r],!0),null!=u&&(A.rowspan=parseInt(u.rowspan||1),A.colspan=parseInt(u.colspan||1)));u=1==mxUtils.getValue(n,mxConstants.STYLE_SWIMLANE_HEAD,1)&&mxUtils.getValue(n,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE;b(A,k.length,
-d.length,a.x+(u?e.x:0),a.y+(u?e.y:0));m.push(A);u=A}f=m}};Graph.prototype.getTableLines=function(a,b,f){var d=[],g=[];(b||f)&&this.visitTableCells(a,mxUtils.bind(this,function(e,k,n,u,m){b&&e.row<n-1&&(null==d[e.row]&&(d[e.row]=[new mxPoint(u,e.point.y)]),1<e.rowspan&&d[e.row].push(null),d[e.row].push(e.point));f&&e.col<k-1&&(null==g[e.col]&&(g[e.col]=[new mxPoint(e.point.x,m)]),1<e.colspan&&g[e.col].push(null),g[e.col].push(e.point))}));return d.concat(g)};
+Graph.prototype.visitTableCells=function(a,b){var f=null,d=this.model.getChildCells(a,!0);a=this.getActualStartSize(a,!0);for(var g=0;g<d.length;g++){for(var e=this.getActualStartSize(d[g],!0),k=this.model.getChildCells(d[g],!0),n=this.getCellStyle(d[g],!0),u=null,m=[],r=0;r<k.length;r++){var x=this.getCellGeometry(k[r]),B={cell:k[r],rospan:1,colspan:1,row:g,col:r,geo:x};x=null!=x.alternateBounds?x.alternateBounds:x;B.point=new mxPoint(x.width+(null!=u?u.point.x:a.x+e.x),x.height+(null!=f&&null!=
+f[0]?f[0].point.y:a.y+e.y));B.actual=B;null!=f&&null!=f[r]&&1<f[r].rowspan?(B.rowspan=f[r].rowspan-1,B.colspan=f[r].colspan,B.actual=f[r].actual):null!=u&&1<u.colspan?(B.rowspan=u.rowspan,B.colspan=u.colspan-1,B.actual=u.actual):(u=this.getCurrentCellStyle(k[r],!0),null!=u&&(B.rowspan=parseInt(u.rowspan||1),B.colspan=parseInt(u.colspan||1)));u=1==mxUtils.getValue(n,mxConstants.STYLE_SWIMLANE_HEAD,1)&&mxUtils.getValue(n,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE;b(B,k.length,
+d.length,a.x+(u?e.x:0),a.y+(u?e.y:0));m.push(B);u=B}f=m}};Graph.prototype.getTableLines=function(a,b,f){var d=[],g=[];(b||f)&&this.visitTableCells(a,mxUtils.bind(this,function(e,k,n,u,m){b&&e.row<n-1&&(null==d[e.row]&&(d[e.row]=[new mxPoint(u,e.point.y)]),1<e.rowspan&&d[e.row].push(null),d[e.row].push(e.point));f&&e.col<k-1&&(null==g[e.col]&&(g[e.col]=[new mxPoint(e.point.x,m)]),1<e.colspan&&g[e.col].push(null),g[e.col].push(e.point))}));return d.concat(g)};
Graph.prototype.isTableCell=function(a){return this.model.isVertex(a)&&this.isTableRow(this.model.getParent(a))};Graph.prototype.isTableRow=function(a){return this.model.isVertex(a)&&this.isTable(this.model.getParent(a))};Graph.prototype.isTable=function(a){a=this.getCellStyle(a);return null!=a&&"tableLayout"==a.childLayout};Graph.prototype.isStack=function(a){a=this.getCellStyle(a);return null!=a&&"stackLayout"==a.childLayout};
Graph.prototype.isStackChild=function(a){return this.model.isVertex(a)&&this.isStack(this.model.getParent(a))};
Graph.prototype.setTableRowHeight=function(a,b,f){f=null!=f?f:!0;var d=this.getModel();d.beginUpdate();try{var g=this.getCellGeometry(a);if(null!=g){g=g.clone();g.height+=b;d.setGeometry(a,g);var e=d.getParent(a),k=d.getChildCells(e,!0);if(!f){var n=mxUtils.indexOf(k,a);if(n<k.length-1){var u=k[n+1],m=this.getCellGeometry(u);null!=m&&(m=m.clone(),m.y+=b,m.height-=b,d.setGeometry(u,m))}}var r=this.getCellGeometry(e);null!=r&&(f||(f=a==k[k.length-1]),f&&(r=r.clone(),r.height+=b,d.setGeometry(e,r)))}}finally{d.endUpdate()}};
Graph.prototype.setTableColumnWidth=function(a,b,f){f=null!=f?f:!1;var d=this.getModel(),g=d.getParent(a),e=d.getParent(g),k=d.getChildCells(g,!0);a=mxUtils.indexOf(k,a);var n=a==k.length-1;d.beginUpdate();try{for(var u=d.getChildCells(e,!0),m=0;m<u.length;m++){g=u[m];k=d.getChildCells(g,!0);var r=k[a],x=this.getCellGeometry(r);null!=x&&(x=x.clone(),x.width+=b,null!=x.alternateBounds&&(x.alternateBounds.width+=b),d.setGeometry(r,x));a<k.length-1&&(r=k[a+1],x=this.getCellGeometry(r),null!=x&&(x=x.clone(),
-x.x+=b,f||(x.width-=b,null!=x.alternateBounds&&(x.alternateBounds.width-=b)),d.setGeometry(r,x)))}if(n||f){var A=this.getCellGeometry(e);null!=A&&(A=A.clone(),A.width+=b,d.setGeometry(e,A))}null!=this.layoutManager&&this.layoutManager.executeLayout(e)}finally{d.endUpdate()}};function TableLayout(a){mxGraphLayout.call(this,a)}TableLayout.prototype=new mxStackLayout;TableLayout.prototype.constructor=TableLayout;TableLayout.prototype.isHorizontal=function(){return!1};
+x.x+=b,f||(x.width-=b,null!=x.alternateBounds&&(x.alternateBounds.width-=b)),d.setGeometry(r,x)))}if(n||f){var B=this.getCellGeometry(e);null!=B&&(B=B.clone(),B.width+=b,d.setGeometry(e,B))}null!=this.layoutManager&&this.layoutManager.executeLayout(e)}finally{d.endUpdate()}};function TableLayout(a){mxGraphLayout.call(this,a)}TableLayout.prototype=new mxStackLayout;TableLayout.prototype.constructor=TableLayout;TableLayout.prototype.isHorizontal=function(){return!1};
TableLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};TableLayout.prototype.getSize=function(a,b){for(var f=0,d=0;d<a.length;d++)if(!this.isVertexIgnored(a[d])){var g=this.graph.getCellGeometry(a[d]);null!=g&&(f+=b?g.width:g.height)}return f};
TableLayout.prototype.getRowLayout=function(a,b){var f=this.graph.model.getChildCells(a,!0),d=this.graph.getActualStartSize(a,!0);a=this.getSize(f,!0);b=b-d.x-d.width;var g=[];d=d.x;for(var e=0;e<f.length;e++){var k=this.graph.getCellGeometry(f[e]);null!=k&&(d+=(null!=k.alternateBounds?k.alternateBounds.width:k.width)*b/a,g.push(Math.round(d)))}return g};
TableLayout.prototype.layoutRow=function(a,b,f,d){var g=this.graph.getModel(),e=g.getChildCells(a,!0);a=this.graph.getActualStartSize(a,!0);var k=a.x,n=0;null!=b&&(b=b.slice(),b.splice(0,0,a.x));for(var u=0;u<e.length;u++){var m=this.graph.getCellGeometry(e[u]);null!=m&&(m=m.clone(),m.y=a.y,m.height=f-a.y-a.height,null!=b?(m.x=b[u],m.width=b[u+1]-m.x,u==e.length-1&&u<b.length-2&&(m.width=d-m.x-a.x-a.width)):(m.x=k,k+=m.width,u==e.length-1?m.width=d-a.x-a.width-n:n+=m.width),m.alternateBounds=new mxRectangle(0,
0,m.width,m.height),g.setGeometry(e[u],m))}return n};
-TableLayout.prototype.execute=function(a){if(null!=a){var b=this.graph.getActualStartSize(a,!0),f=this.graph.getCellGeometry(a),d=this.graph.getCellStyle(a),g="1"==mxUtils.getValue(d,"resizeLastRow","0"),e="1"==mxUtils.getValue(d,"resizeLast","0");d="1"==mxUtils.getValue(d,"fixedRows","0");var k=this.graph.getModel(),n=0;k.beginUpdate();try{for(var u=f.height-b.y-b.height,m=f.width-b.x-b.width,r=k.getChildCells(a,!0),x=0;x<r.length;x++)k.setVisible(r[x],!0);var A=this.getSize(r,!1);if(0<u&&0<m&&0<
-r.length&&0<A){if(g){var C=this.graph.getCellGeometry(r[r.length-1]);null!=C&&(C=C.clone(),C.height=u-A+C.height,k.setGeometry(r[r.length-1],C))}var F=e?null:this.getRowLayout(r[0],m),K=[],D=b.y;for(x=0;x<r.length;x++)C=this.graph.getCellGeometry(r[x]),null!=C&&(C=C.clone(),C.x=b.x,C.width=m,C.y=Math.round(D),D=g||d?D+C.height:D+C.height/A*u,C.height=Math.round(D)-C.y,k.setGeometry(r[x],C)),n=Math.max(n,this.layoutRow(r[x],F,C.height,m,K));d&&u<A&&(f=f.clone(),f.height=D+b.height,k.setGeometry(a,
-f));e&&m<n+Graph.minTableColumnWidth&&(f=f.clone(),f.width=n+b.width+b.x+Graph.minTableColumnWidth,k.setGeometry(a,f));this.graph.visitTableCells(a,mxUtils.bind(this,function(O){k.setVisible(O.cell,O.actual.cell==O.cell);if(O.actual.cell!=O.cell){if(O.actual.row==O.row){var Q=null!=O.geo.alternateBounds?O.geo.alternateBounds:O.geo;O.actual.geo.width+=Q.width}O.actual.col==O.col&&(Q=null!=O.geo.alternateBounds?O.geo.alternateBounds:O.geo,O.actual.geo.height+=Q.height)}}))}else for(x=0;x<r.length;x++)k.setVisible(r[x],
+TableLayout.prototype.execute=function(a){if(null!=a){var b=this.graph.getActualStartSize(a,!0),f=this.graph.getCellGeometry(a),d=this.graph.getCellStyle(a),g="1"==mxUtils.getValue(d,"resizeLastRow","0"),e="1"==mxUtils.getValue(d,"resizeLast","0");d="1"==mxUtils.getValue(d,"fixedRows","0");var k=this.graph.getModel(),n=0;k.beginUpdate();try{for(var u=f.height-b.y-b.height,m=f.width-b.x-b.width,r=k.getChildCells(a,!0),x=0;x<r.length;x++)k.setVisible(r[x],!0);var B=this.getSize(r,!1);if(0<u&&0<m&&0<
+r.length&&0<B){if(g){var C=this.graph.getCellGeometry(r[r.length-1]);null!=C&&(C=C.clone(),C.height=u-B+C.height,k.setGeometry(r[r.length-1],C))}var G=e?null:this.getRowLayout(r[0],m),J=[],D=b.y;for(x=0;x<r.length;x++)C=this.graph.getCellGeometry(r[x]),null!=C&&(C=C.clone(),C.x=b.x,C.width=m,C.y=Math.round(D),D=g||d?D+C.height:D+C.height/B*u,C.height=Math.round(D)-C.y,k.setGeometry(r[x],C)),n=Math.max(n,this.layoutRow(r[x],G,C.height,m,J));d&&u<B&&(f=f.clone(),f.height=D+b.height,k.setGeometry(a,
+f));e&&m<n+Graph.minTableColumnWidth&&(f=f.clone(),f.width=n+b.width+b.x+Graph.minTableColumnWidth,k.setGeometry(a,f));this.graph.visitTableCells(a,mxUtils.bind(this,function(N){k.setVisible(N.cell,N.actual.cell==N.cell);if(N.actual.cell!=N.cell){if(N.actual.row==N.row){var Q=null!=N.geo.alternateBounds?N.geo.alternateBounds:N.geo;N.actual.geo.width+=Q.width}N.actual.col==N.col&&(Q=null!=N.geo.alternateBounds?N.geo.alternateBounds:N.geo,N.actual.geo.height+=Q.height)}}))}else for(x=0;x<r.length;x++)k.setVisible(r[x],
!1)}finally{k.endUpdate()}}};
-(function(){var a=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){a.apply(this,arguments);this.validEdges=[]};var b=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(r,x){x=null!=x?x:!0;var A=this.getState(r);null!=A&&x&&this.graph.model.isEdge(A.cell)&&null!=A.style&&1!=A.style[mxConstants.STYLE_CURVED]&&!A.invalid&&this.updateLineJumps(A)&&this.graph.cellRenderer.redraw(A,!1,this.isRendering());A=b.apply(this,
-arguments);null!=A&&x&&this.graph.model.isEdge(A.cell)&&null!=A.style&&1!=A.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(A);return A};var f=mxShape.prototype.paint;mxShape.prototype.paint=function(){f.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 r=this.node.getElementsByTagName("path");if(1<r.length){"1"!=mxUtils.getValue(this.state.style,
+(function(){var a=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){a.apply(this,arguments);this.validEdges=[]};var b=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(r,x){x=null!=x?x:!0;var B=this.getState(r);null!=B&&x&&this.graph.model.isEdge(B.cell)&&null!=B.style&&1!=B.style[mxConstants.STYLE_CURVED]&&!B.invalid&&this.updateLineJumps(B)&&this.graph.cellRenderer.redraw(B,!1,this.isRendering());B=b.apply(this,
+arguments);null!=B&&x&&this.graph.model.isEdge(B.cell)&&null!=B.style&&1!=B.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(B);return B};var f=mxShape.prototype.paint;mxShape.prototype.paint=function(){f.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 r=this.node.getElementsByTagName("path");if(1<r.length){"1"!=mxUtils.getValue(this.state.style,
mxConstants.STYLE_DASHED,"0")&&r[1].setAttribute("stroke-dasharray",8*this.state.view.scale);var x=this.state.view.graph.getFlowAnimationStyle();null!=x&&r[1].setAttribute("class",x.getAttribute("id"))}}};var d=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(r,x){return d.apply(this,arguments)||null!=r.routedPoints&&null!=x.routedPoints&&!mxUtils.equalPoints(x.routedPoints,r.routedPoints)};var g=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=
-function(r){g.apply(this,arguments);this.graph.model.isEdge(r.cell)&&1!=r.style[mxConstants.STYLE_CURVED]&&this.updateLineJumps(r)};mxGraphView.prototype.updateLineJumps=function(r){var x=r.absolutePoints;if(Graph.lineJumpsEnabled){var A=null!=r.routedPoints,C=null;if(null!=x&&null!=this.validEdges&&"none"!==mxUtils.getValue(r.style,"jumpStyle","none")){var F=function(ba,qa,I){var L=new mxPoint(qa,I);L.type=ba;C.push(L);L=null!=r.routedPoints?r.routedPoints[C.length-1]:null;return null==L||L.type!=
-ba||L.x!=qa||L.y!=I},K=.5*this.scale;A=!1;C=[];for(var D=0;D<x.length-1;D++){for(var O=x[D+1],Q=x[D],R=[],P=x[D+2];D<x.length-2&&mxUtils.ptSegDistSq(Q.x,Q.y,P.x,P.y,O.x,O.y)<1*this.scale*this.scale;)O=P,D++,P=x[D+2];A=F(0,Q.x,Q.y)||A;for(var Z=0;Z<this.validEdges.length;Z++){var T=this.validEdges[Z],U=T.absolutePoints;if(null!=U&&mxUtils.intersects(r,T)&&"1"!=T.style.noJump)for(T=0;T<U.length-1;T++){var fa=U[T+1],ha=U[T];for(P=U[T+2];T<U.length-2&&mxUtils.ptSegDistSq(ha.x,ha.y,P.x,P.y,fa.x,fa.y)<
-1*this.scale*this.scale;)fa=P,T++,P=U[T+2];P=mxUtils.intersection(Q.x,Q.y,O.x,O.y,ha.x,ha.y,fa.x,fa.y);if(null!=P&&(Math.abs(P.x-Q.x)>K||Math.abs(P.y-Q.y)>K)&&(Math.abs(P.x-O.x)>K||Math.abs(P.y-O.y)>K)&&(Math.abs(P.x-ha.x)>K||Math.abs(P.y-ha.y)>K)&&(Math.abs(P.x-fa.x)>K||Math.abs(P.y-fa.y)>K)){fa=P.x-Q.x;ha=P.y-Q.y;P={distSq:fa*fa+ha*ha,x:P.x,y:P.y};for(fa=0;fa<R.length;fa++)if(R[fa].distSq>P.distSq){R.splice(fa,0,P);P=null;break}null==P||0!=R.length&&R[R.length-1].x===P.x&&R[R.length-1].y===P.y||
-R.push(P)}}}for(T=0;T<R.length;T++)A=F(1,R[T].x,R[T].y)||A}P=x[x.length-1];A=F(0,P.x,P.y)||A}r.routedPoints=C;return A}return!1};var e=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(r,x,A){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)e.apply(this,arguments);else{var C=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
-2,F=(parseInt(mxUtils.getValue(this.style,"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,K=mxUtils.getValue(this.style,"jumpStyle","none"),D=!0,O=null,Q=null,R=[],P=null;r.begin();for(var Z=0;Z<this.state.routedPoints.length;Z++){var T=this.state.routedPoints[Z],U=new mxPoint(T.x/this.scale,T.y/this.scale);0==Z?U=x[0]:Z==this.state.routedPoints.length-1&&(U=x[x.length-1]);var fa=!1;if(null!=O&&1==T.type){var ha=this.state.routedPoints[Z+1];T=ha.x/this.scale-U.x;ha=ha.y/this.scale-U.y;T=
-T*T+ha*ha;null==P&&(P=new mxPoint(U.x-O.x,U.y-O.y),Q=Math.sqrt(P.x*P.x+P.y*P.y),0<Q?(P.x=P.x*F/Q,P.y=P.y*F/Q):P=null);T>F*F&&0<Q&&(T=O.x-U.x,ha=O.y-U.y,T=T*T+ha*ha,T>F*F&&(fa=new mxPoint(U.x-P.x,U.y-P.y),T=new mxPoint(U.x+P.x,U.y+P.y),R.push(fa),this.addPoints(r,R,A,C,!1,null,D),R=0>Math.round(P.x)||0==Math.round(P.x)&&0>=Math.round(P.y)?1:-1,D=!1,"sharp"==K?(r.lineTo(fa.x-P.y*R,fa.y+P.x*R),r.lineTo(T.x-P.y*R,T.y+P.x*R),r.lineTo(T.x,T.y)):"line"==K?(r.moveTo(fa.x+P.y*R,fa.y-P.x*R),r.lineTo(fa.x-P.y*
-R,fa.y+P.x*R),r.moveTo(T.x-P.y*R,T.y+P.x*R),r.lineTo(T.x+P.y*R,T.y-P.x*R),r.moveTo(T.x,T.y)):"arc"==K?(R*=1.3,r.curveTo(fa.x-P.y*R,fa.y+P.x*R,T.x-P.y*R,T.y+P.x*R,T.x,T.y)):(r.moveTo(T.x,T.y),D=!0),R=[T],fa=!0))}else P=null;fa||(R.push(U),O=U)}this.addPoints(r,R,A,C,!1,null,D);r.stroke()}};var k=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(r,x,A,C){return null!=x&&"centerPerimeter"==x.style[mxConstants.STYLE_PERIMETER]?new mxPoint(x.getCenterX(),
-x.getCenterY()):k.apply(this,arguments)};var n=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(r,x,A,C){if(null==x||null==r||"1"!=x.style.snapToPoint&&"1"!=r.style.snapToPoint)n.apply(this,arguments);else{x=this.getTerminalPort(r,x,C);var F=this.getNextPoint(r,A,C),K=this.graph.isOrthogonal(r),D=mxUtils.toRadians(Number(x.style[mxConstants.STYLE_ROTATION]||"0")),O=new mxPoint(x.getCenterX(),x.getCenterY());if(0!=D){var Q=Math.cos(-D),R=
-Math.sin(-D);F=mxUtils.getRotatedPoint(F,Q,R,O)}Q=parseFloat(r.style[mxConstants.STYLE_PERIMETER_SPACING]||0);Q+=parseFloat(r.style[C?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);F=this.getPerimeterPoint(x,F,0==D&&K,Q);0!=D&&(Q=Math.cos(D),R=Math.sin(D),F=mxUtils.getRotatedPoint(F,Q,R,O));r.setAbsoluteTerminalPoint(this.snapToAnchorPoint(r,x,A,C,F),C)}};mxGraphView.prototype.snapToAnchorPoint=function(r,x,A,C,F){if(null!=x&&null!=r){r=this.graph.getAllConnectionConstraints(x);
-C=A=null;if(null!=r)for(var K=0;K<r.length;K++){var D=this.graph.getConnectionPoint(x,r[K]);if(null!=D){var O=(D.x-F.x)*(D.x-F.x)+(D.y-F.y)*(D.y-F.y);if(null==C||O<C)A=D,C=O}}null!=A&&(F=A)}return F};var u=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(r,x,A){var C=u.apply(this,arguments);"1"==r.getAttribute("placeholders")&&null!=A.state&&(C=A.state.view.graph.replacePlaceholders(A.state.cell,C));return C};var m=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=
-function(r){if(null!=r.style&&"undefined"!==typeof pako){var x=mxUtils.getValue(r.style,mxConstants.STYLE_SHAPE,null);if(null!=x&&"string"===typeof x&&"stencil("==x.substring(0,8))try{var A=x.substring(8,x.length-1),C=mxUtils.parseXml(Graph.decompress(A));return new mxShape(new mxStencil(C.documentElement))}catch(F){null!=window.console&&console.log("Error in shape: "+F)}}return m.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;
+function(r){g.apply(this,arguments);this.graph.model.isEdge(r.cell)&&1!=r.style[mxConstants.STYLE_CURVED]&&this.updateLineJumps(r)};mxGraphView.prototype.updateLineJumps=function(r){var x=r.absolutePoints;if(Graph.lineJumpsEnabled){var B=null!=r.routedPoints,C=null;if(null!=x&&null!=this.validEdges&&"none"!==mxUtils.getValue(r.style,"jumpStyle","none")){var G=function(ba,qa,O){var S=new mxPoint(qa,O);S.type=ba;C.push(S);S=null!=r.routedPoints?r.routedPoints[C.length-1]:null;return null==S||S.type!=
+ba||S.x!=qa||S.y!=O},J=.5*this.scale;B=!1;C=[];for(var D=0;D<x.length-1;D++){for(var N=x[D+1],Q=x[D],R=[],P=x[D+2];D<x.length-2&&mxUtils.ptSegDistSq(Q.x,Q.y,P.x,P.y,N.x,N.y)<1*this.scale*this.scale;)N=P,D++,P=x[D+2];B=G(0,Q.x,Q.y)||B;for(var Z=0;Z<this.validEdges.length;Z++){var U=this.validEdges[Z],V=U.absolutePoints;if(null!=V&&mxUtils.intersects(r,U)&&"1"!=U.style.noJump)for(U=0;U<V.length-1;U++){var ia=V[U+1],ha=V[U];for(P=V[U+2];U<V.length-2&&mxUtils.ptSegDistSq(ha.x,ha.y,P.x,P.y,ia.x,ia.y)<
+1*this.scale*this.scale;)ia=P,U++,P=V[U+2];P=mxUtils.intersection(Q.x,Q.y,N.x,N.y,ha.x,ha.y,ia.x,ia.y);if(null!=P&&(Math.abs(P.x-Q.x)>J||Math.abs(P.y-Q.y)>J)&&(Math.abs(P.x-N.x)>J||Math.abs(P.y-N.y)>J)&&(Math.abs(P.x-ha.x)>J||Math.abs(P.y-ha.y)>J)&&(Math.abs(P.x-ia.x)>J||Math.abs(P.y-ia.y)>J)){ia=P.x-Q.x;ha=P.y-Q.y;P={distSq:ia*ia+ha*ha,x:P.x,y:P.y};for(ia=0;ia<R.length;ia++)if(R[ia].distSq>P.distSq){R.splice(ia,0,P);P=null;break}null==P||0!=R.length&&R[R.length-1].x===P.x&&R[R.length-1].y===P.y||
+R.push(P)}}}for(U=0;U<R.length;U++)B=G(1,R[U].x,R[U].y)||B}P=x[x.length-1];B=G(0,P.x,P.y)||B}r.routedPoints=C;return B}return!1};var e=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(r,x,B){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)e.apply(this,arguments);else{var C=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
+2,G=(parseInt(mxUtils.getValue(this.style,"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,J=mxUtils.getValue(this.style,"jumpStyle","none"),D=!0,N=null,Q=null,R=[],P=null;r.begin();for(var Z=0;Z<this.state.routedPoints.length;Z++){var U=this.state.routedPoints[Z],V=new mxPoint(U.x/this.scale,U.y/this.scale);0==Z?V=x[0]:Z==this.state.routedPoints.length-1&&(V=x[x.length-1]);var ia=!1;if(null!=N&&1==U.type){var ha=this.state.routedPoints[Z+1];U=ha.x/this.scale-V.x;ha=ha.y/this.scale-V.y;U=
+U*U+ha*ha;null==P&&(P=new mxPoint(V.x-N.x,V.y-N.y),Q=Math.sqrt(P.x*P.x+P.y*P.y),0<Q?(P.x=P.x*G/Q,P.y=P.y*G/Q):P=null);U>G*G&&0<Q&&(U=N.x-V.x,ha=N.y-V.y,U=U*U+ha*ha,U>G*G&&(ia=new mxPoint(V.x-P.x,V.y-P.y),U=new mxPoint(V.x+P.x,V.y+P.y),R.push(ia),this.addPoints(r,R,B,C,!1,null,D),R=0>Math.round(P.x)||0==Math.round(P.x)&&0>=Math.round(P.y)?1:-1,D=!1,"sharp"==J?(r.lineTo(ia.x-P.y*R,ia.y+P.x*R),r.lineTo(U.x-P.y*R,U.y+P.x*R),r.lineTo(U.x,U.y)):"line"==J?(r.moveTo(ia.x+P.y*R,ia.y-P.x*R),r.lineTo(ia.x-P.y*
+R,ia.y+P.x*R),r.moveTo(U.x-P.y*R,U.y+P.x*R),r.lineTo(U.x+P.y*R,U.y-P.x*R),r.moveTo(U.x,U.y)):"arc"==J?(R*=1.3,r.curveTo(ia.x-P.y*R,ia.y+P.x*R,U.x-P.y*R,U.y+P.x*R,U.x,U.y)):(r.moveTo(U.x,U.y),D=!0),R=[U],ia=!0))}else P=null;ia||(R.push(V),N=V)}this.addPoints(r,R,B,C,!1,null,D);r.stroke()}};var k=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(r,x,B,C){return null!=x&&"centerPerimeter"==x.style[mxConstants.STYLE_PERIMETER]?new mxPoint(x.getCenterX(),
+x.getCenterY()):k.apply(this,arguments)};var n=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(r,x,B,C){if(null==x||null==r||"1"!=x.style.snapToPoint&&"1"!=r.style.snapToPoint)n.apply(this,arguments);else{x=this.getTerminalPort(r,x,C);var G=this.getNextPoint(r,B,C),J=this.graph.isOrthogonal(r),D=mxUtils.toRadians(Number(x.style[mxConstants.STYLE_ROTATION]||"0")),N=new mxPoint(x.getCenterX(),x.getCenterY());if(0!=D){var Q=Math.cos(-D),R=
+Math.sin(-D);G=mxUtils.getRotatedPoint(G,Q,R,N)}Q=parseFloat(r.style[mxConstants.STYLE_PERIMETER_SPACING]||0);Q+=parseFloat(r.style[C?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);G=this.getPerimeterPoint(x,G,0==D&&J,Q);0!=D&&(Q=Math.cos(D),R=Math.sin(D),G=mxUtils.getRotatedPoint(G,Q,R,N));r.setAbsoluteTerminalPoint(this.snapToAnchorPoint(r,x,B,C,G),C)}};mxGraphView.prototype.snapToAnchorPoint=function(r,x,B,C,G){if(null!=x&&null!=r){r=this.graph.getAllConnectionConstraints(x);
+C=B=null;if(null!=r)for(var J=0;J<r.length;J++){var D=this.graph.getConnectionPoint(x,r[J]);if(null!=D){var N=(D.x-G.x)*(D.x-G.x)+(D.y-G.y)*(D.y-G.y);if(null==C||N<C)B=D,C=N}}null!=B&&(G=B)}return G};var u=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(r,x,B){var C=u.apply(this,arguments);"1"==r.getAttribute("placeholders")&&null!=B.state&&(C=B.state.view.graph.replacePlaceholders(B.state.cell,C));return C};var m=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=
+function(r){if(null!=r.style&&"undefined"!==typeof pako){var x=mxUtils.getValue(r.style,mxConstants.STYLE_SHAPE,null);if(null!=x&&"string"===typeof x&&"stencil("==x.substring(0,8))try{var B=x.substring(8,x.length-1),C=mxUtils.parseXml(Graph.decompress(B));return new mxShape(new mxStencil(C.documentElement))}catch(G){null!=window.console&&console.log("Error in shape: "+G)}}return m.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;
mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];mxStencilRegistry.filesLoaded={};
mxStencilRegistry.getStencil=function(a){var b=mxStencilRegistry.stencils[a];if(null==b&&null==mxCellRenderer.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var f=mxStencilRegistry.getBasenameForStencil(a);if(null!=f){b=mxStencilRegistry.libraries[f];if(null!=b){if(null==mxStencilRegistry.packages[f]){for(var d=0;d<b.length;d++){var g=b[d];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 e=mxUtils.load(g);null!=e&&200<=e.getStatus()&&299>=e.getStatus()&&eval.call(window,e.getText())}}catch(k){null!=window.console&&console.log("error in getStencil:",a,f,b,g,k)}}mxStencilRegistry.packages[f]=1}}else f=f.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+f+".xml",null);b=mxStencilRegistry.stencils[a]}}return b};
@@ -3060,140 +3060,140 @@ mxConstants.HANDLE_STROKECOLOR="#0088cf";mxConstants.VERTEX_SELECTION_COLOR="#00
!0;mxGraphHandler.prototype.guidesEnabled=!0;mxGraphHandler.prototype.removeEmptyParents=!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(t){return!mxEvent.isAltDown(t)};var f=mxGraphLayout.prototype.isVertexIgnored;mxGraphLayout.prototype.isVertexIgnored=function(t){return f.apply(this,arguments)||this.graph.isTableRow(t)||this.graph.isTableCell(t)};var d=mxGraphLayout.prototype.isEdgeIgnored;mxGraphLayout.prototype.isEdgeIgnored=function(t){return d.apply(this,arguments)||
this.graph.isEdgeIgnored(t)};var g=mxConnectionHandler.prototype.isCreateTarget;mxConnectionHandler.prototype.isCreateTarget=function(t){return this.graph.isCloneEvent(t)!=g.apply(this,arguments)};mxConstraintHandler.prototype.createHighlightShape=function(){var t=new mxEllipse(null,this.highlightColor,this.highlightColor,0);t.opacity=mxConstants.HIGHLIGHT_OPACITY;return t};mxConnectionHandler.prototype.livePreview=!0;mxConnectionHandler.prototype.cursor="crosshair";mxConnectionHandler.prototype.createEdgeState=
function(t){t=this.graph.createCurrentEdgeStyle();t=this.graph.createEdge(null,null,null,null,null,t);t=new mxCellState(this.graph.view,t,this.graph.getCellStyle(t));for(var z in this.graph.currentEdgeStyle)t.style[z]=this.graph.currentEdgeStyle[z];t.style=this.graph.postProcessCellStyle(t.cell,t.style);return t};var e=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var t=e.apply(this,arguments);t.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];
-return t};mxConnectionHandler.prototype.updatePreview=function(t){};var k=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var t=k.apply(this,arguments),z=t.getCell;t.getCell=mxUtils.bind(this,function(B){var E=z.apply(this,arguments);this.error=null;return E});return t};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=
-function(){for(var t="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";",z="shape curved rounded comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle jumpStyle jumpSize".split(" "),B=0;B<z.length;B++)null!=this.currentEdgeStyle[z[B]]&&(t+=z[B]+"="+this.currentEdgeStyle[z[B]]+";");null!=this.currentEdgeStyle.orthogonalLoop?t+="orthogonalLoop="+this.currentEdgeStyle.orthogonalLoop+";":null!=Graph.prototype.defaultEdgeStyle.orthogonalLoop&&
+return t};mxConnectionHandler.prototype.updatePreview=function(t){};var k=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var t=k.apply(this,arguments),z=t.getCell;t.getCell=mxUtils.bind(this,function(A){var E=z.apply(this,arguments);this.error=null;return E});return t};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=
+function(){for(var t="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";",z="shape curved rounded comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle jumpStyle jumpSize".split(" "),A=0;A<z.length;A++)null!=this.currentEdgeStyle[z[A]]&&(t+=z[A]+"="+this.currentEdgeStyle[z[A]]+";");null!=this.currentEdgeStyle.orthogonalLoop?t+="orthogonalLoop="+this.currentEdgeStyle.orthogonalLoop+";":null!=Graph.prototype.defaultEdgeStyle.orthogonalLoop&&
(t+="orthogonalLoop="+Graph.prototype.defaultEdgeStyle.orthogonalLoop+";");null!=this.currentEdgeStyle.jettySize?t+="jettySize="+this.currentEdgeStyle.jettySize+";":null!=Graph.prototype.defaultEdgeStyle.jettySize&&(t+="jettySize="+Graph.prototype.defaultEdgeStyle.jettySize+";");"elbowEdgeStyle"==this.currentEdgeStyle.edgeStyle&&null!=this.currentEdgeStyle.elbow&&(t+="elbow="+this.currentEdgeStyle.elbow+";");return t=null!=this.currentEdgeStyle.html?t+("html="+this.currentEdgeStyle.html+";"):t+"html=1;"};
-Graph.prototype.getPagePadding=function(){return new mxPoint(0,0)};Graph.prototype.loadStylesheet=function(){var t=null!=this.themes?this.themes[this.defaultThemeName]:mxStyleRegistry.dynamicLoading?mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement():null;null!=t&&(new mxCodec(t.ownerDocument)).decode(t,this.getStylesheet())};Graph.prototype.createCellLookup=function(t,z){z=null!=z?z:{};for(var B=0;B<t.length;B++){var E=t[B];z[mxObjectIdentity.get(E)]=E.getId();for(var G=this.model.getChildCount(E),
-M=0;M<G;M++)this.createCellLookup([this.model.getChildAt(E,M)],z)}return z};Graph.prototype.createCellMapping=function(t,z,B){B=null!=B?B:{};for(var E in t){var G=z[E];null==B[G]&&(B[G]=t[E].getId()||"")}return B};Graph.prototype.importGraphModel=function(t,z,B,E){z=null!=z?z:0;B=null!=B?B:0;var G=new mxCodec(t.ownerDocument),M=new mxGraphModel;G.decode(t,M);t=[];G={};var X={},ia=M.getChildren(this.cloneCell(M.root,this.isCloneInvalidEdges(),G));if(null!=ia){var da=this.createCellLookup([M.root]);
-ia=ia.slice();this.model.beginUpdate();try{if(1!=ia.length||this.isCellLocked(this.getDefaultParent()))for(M=0;M<ia.length;M++)ja=this.model.getChildren(this.moveCells([ia[M]],z,B,!1,this.model.getRoot())[0]),null!=ja&&(t=t.concat(ja));else{var ja=M.getChildren(ia[0]);null!=ja&&(t=this.moveCells(ja,z,B,!1,this.getDefaultParent()),X[M.getChildAt(M.root,0).getId()]=this.getDefaultParent().getId())}if(null!=t&&(this.createCellMapping(G,da,X),this.updateCustomLinks(X,t),E)){this.isGridEnabled()&&(z=this.snap(z),
-B=this.snap(B));var sa=this.getBoundingBoxFromGeometry(t,!0);null!=sa&&this.moveCells(t,z-sa.x,B-sa.y)}}finally{this.model.endUpdate()}}return t};Graph.prototype.encodeCells=function(t){for(var z={},B=this.cloneCells(t,null,z),E=new mxDictionary,G=0;G<t.length;G++)E.put(t[G],!0);var M=new mxCodec,X=new mxGraphModel,ia=X.getChildAt(X.getRoot(),0);for(G=0;G<B.length;G++){X.add(ia,B[G]);var da=this.view.getState(t[G]);if(null!=da){var ja=this.getCellGeometry(B[G]);null!=ja&&ja.relative&&!this.model.isEdge(t[G])&&
-null==E.get(this.model.getParent(t[G]))&&(ja.offset=null,ja.relative=!1,ja.x=da.x/da.view.scale-da.view.translate.x,ja.y=da.y/da.view.scale-da.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(z,this.createCellLookup(t)),B);return M.encode(X)};Graph.prototype.isSwimlane=function(t,z){var B=null;null==t||this.model.isEdge(t)||this.model.getParent(t)==this.model.getRoot()||(B=this.getCurrentCellStyle(t,z)[mxConstants.STYLE_SHAPE]);return B==mxConstants.SHAPE_SWIMLANE||"table"==B||"tableRow"==
-B};var n=Graph.prototype.isExtendParent;Graph.prototype.isExtendParent=function(t){var z=this.model.getParent(t);if(null!=z){var B=this.getCurrentCellStyle(z);if(null!=B.expand)return"0"!=B.expand}return n.apply(this,arguments)&&(null==z||!this.isTable(z))};var u=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(t,z,B,E,G,M,X,ia){null==ia&&(ia=this.model.getParent(t),this.isTable(ia)||this.isTableRow(ia))&&(ia=this.getCellAt(M,X,null,!0,!1));B=null;this.model.beginUpdate();try{B=u.apply(this,
-[t,z,B,E,G,M,X,ia]);this.model.setValue(B,"");var da=this.getChildCells(B,!0);for(z=0;z<da.length;z++){var ja=this.getCellGeometry(da[z]);null!=ja&&ja.relative&&0<ja.x&&this.model.remove(da[z])}var sa=this.getChildCells(t,!0);for(z=0;z<sa.length;z++)ja=this.getCellGeometry(sa[z]),null!=ja&&ja.relative&&0>=ja.x&&this.model.remove(sa[z]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,null,[B]);this.setCellStyles(mxConstants.STYLE_ENDARROW,mxConstants.NONE,[B]);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,
-null,[t]);this.setCellStyles(mxConstants.STYLE_STARTARROW,mxConstants.NONE,[t]);var Ba=this.model.getTerminal(B,!1);if(null!=Ba){var Da=this.getCurrentCellStyle(Ba);null!=Da&&"1"==Da.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[t]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[t]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[B]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[B]))}}finally{this.model.endUpdate()}return B};var m=Graph.prototype.selectCell;Graph.prototype.selectCell=
-function(t,z,B){if(z||B)m.apply(this,arguments);else{var E=this.getSelectionCell(),G=null,M=[],X=mxUtils.bind(this,function(ia){if(null!=this.view.getState(ia)&&(this.model.isVertex(ia)||this.model.isEdge(ia)))if(M.push(ia),ia==E)G=M.length-1;else if(t&&null==E&&0<M.length||null!=G&&t&&M.length>G||!t&&0<G)return;for(var da=0;da<this.model.getChildCount(ia);da++)X(this.model.getChildAt(ia,da))});X(this.model.root);0<M.length&&(G=null!=G?mxUtils.mod(G+(t?1:-1),M.length):0,this.setSelectionCell(M[G]))}};
-Graph.prototype.swapShapes=function(t,z,B,E,G,M,X){z=!1;if(!E&&null!=G&&1==t.length&&(E=this.view.getState(G),B=this.view.getState(t[0]),null!=E&&null!=B&&(null!=M&&mxEvent.isShiftDown(M)||"umlLifeline"==E.style.shape&&"umlLifeline"==B.style.shape)&&(E=this.getCellGeometry(G),M=this.getCellGeometry(t[0]),null!=E&&null!=M))){z=E.clone();E=M.clone();E.x=z.x;E.y=z.y;z.x=M.x;z.y=M.y;this.model.beginUpdate();try{this.model.setGeometry(G,z),this.model.setGeometry(t[0],E)}finally{this.model.endUpdate()}z=
-!0}return z};var r=Graph.prototype.moveCells;Graph.prototype.moveCells=function(t,z,B,E,G,M,X){if(this.swapShapes(t,z,B,E,G,M,X))return t;X=null!=X?X:{};if(this.isTable(G)){for(var ia=[],da=0;da<t.length;da++)this.isTable(t[da])?ia=ia.concat(this.model.getChildCells(t[da],!0).reverse()):ia.push(t[da]);t=ia}this.model.beginUpdate();try{ia=[];for(da=0;da<t.length;da++)if(null!=G&&this.isTableRow(t[da])){var ja=this.model.getParent(t[da]),sa=this.getCellGeometry(t[da]);this.isTable(ja)&&ia.push(ja);
-if(null!=ja&&null!=sa&&this.isTable(ja)&&this.isTable(G)&&(E||ja!=G)){if(!E){var Ba=this.getCellGeometry(ja);null!=Ba&&(Ba=Ba.clone(),Ba.height-=sa.height,this.model.setGeometry(ja,Ba))}Ba=this.getCellGeometry(G);null!=Ba&&(Ba=Ba.clone(),Ba.height+=sa.height,this.model.setGeometry(G,Ba));var Da=this.model.getChildCells(G,!0);if(0<Da.length){t[da]=E?this.cloneCell(t[da]):t[da];var Ma=this.model.getChildCells(t[da],!0),La=this.model.getChildCells(Da[0],!0),Ia=La.length-Ma.length;if(0<Ia)for(var Ea=
-0;Ea<Ia;Ea++){var Fa=this.cloneCell(Ma[Ma.length-1]);null!=Fa&&(Fa.value="",this.model.add(t[da],Fa))}else if(0>Ia)for(Ea=0;Ea>Ia;Ea--)this.model.remove(Ma[Ma.length+Ea-1]);Ma=this.model.getChildCells(t[da],!0);for(Ea=0;Ea<La.length;Ea++){var Oa=this.getCellGeometry(La[Ea]),Pa=this.getCellGeometry(Ma[Ea]);null!=Oa&&null!=Pa&&(Pa=Pa.clone(),Pa.width=Oa.width,this.model.setGeometry(Ma[Ea],Pa))}}}}var Na=r.apply(this,arguments);for(da=0;da<ia.length;da++)!E&&this.model.contains(ia[da])&&0==this.model.getChildCount(ia[da])&&
-this.model.remove(ia[da]);E&&this.updateCustomLinks(this.createCellMapping(X,this.createCellLookup(t)),Na)}finally{this.model.endUpdate()}return Na};var x=Graph.prototype.removeCells;Graph.prototype.removeCells=function(t,z){var B=[];this.model.beginUpdate();try{for(var E=0;E<t.length;E++)if(this.isTableCell(t[E])){var G=this.model.getParent(t[E]),M=this.model.getParent(G);1==this.model.getChildCount(G)&&1==this.model.getChildCount(M)?0>mxUtils.indexOf(t,M)&&0>mxUtils.indexOf(B,M)&&B.push(M):this.labelChanged(t[E],
-"")}else{if(this.isTableRow(t[E])&&(M=this.model.getParent(t[E]),0>mxUtils.indexOf(t,M)&&0>mxUtils.indexOf(B,M))){for(var X=this.model.getChildCells(M,!0),ia=0,da=0;da<X.length;da++)0<=mxUtils.indexOf(t,X[da])&&ia++;ia==X.length&&B.push(M)}B.push(t[E])}B=x.apply(this,[B,z])}finally{this.model.endUpdate()}return B};Graph.prototype.updateCustomLinks=function(t,z,B){B=null!=B?B:new Graph;for(var E=0;E<z.length;E++)null!=z[E]&&B.updateCustomLinksForCell(t,z[E],B)};Graph.prototype.updateCustomLinksForCell=
-function(t,z){this.doUpdateCustomLinksForCell(t,z);for(var B=this.model.getChildCount(z),E=0;E<B;E++)this.updateCustomLinksForCell(t,this.model.getChildAt(z,E))};Graph.prototype.doUpdateCustomLinksForCell=function(t,z){};Graph.prototype.getAllConnectionConstraints=function(t,z){if(null!=t){z=mxUtils.getValue(t.style,"points",null);if(null!=z){t=[];try{var B=JSON.parse(z);for(z=0;z<B.length;z++){var E=B[z];t.push(new mxConnectionConstraint(new mxPoint(E[0],E[1]),2<E.length?"0"!=E[2]:!0,null,3<E.length?
-E[3]:0,4<E.length?E[4]:0))}}catch(M){}return t}if(null!=t.shape&&null!=t.shape.bounds){E=t.shape.direction;z=t.shape.bounds;var G=t.shape.scale;B=z.width/G;z=z.height/G;if(E==mxConstants.DIRECTION_NORTH||E==mxConstants.DIRECTION_SOUTH)E=B,B=z,z=E;z=t.shape.getConstraints(t.style,B,z);if(null!=z)return z;if(null!=t.shape.stencil&&null!=t.shape.stencil.constraints)return t.shape.stencil.constraints;if(null!=t.shape.constraints)return t.shape.constraints}}return null};Graph.prototype.flipEdge=function(t){if(null!=
-t){var z=this.getCurrentCellStyle(t);z=mxUtils.getValue(z,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL;this.setCellStyles(mxConstants.STYLE_ELBOW,z,[t])}};Graph.prototype.isValidRoot=function(t){for(var z=this.model.getChildCount(t),B=0,E=0;E<z;E++){var G=this.model.getChildAt(t,E);this.model.isVertex(G)&&(G=this.getCellGeometry(G),null==G||G.relative||B++)}return 0<B||this.isContainer(t)};Graph.prototype.isValidDropTarget=
-function(t,z,B){for(var E=this.getCurrentCellStyle(t),G=!0,M=!0,X=0;X<z.length&&M;X++)G=G&&this.isTable(z[X]),M=M&&this.isTableRow(z[X]);return(1==z.length&&null!=B&&mxEvent.isShiftDown(B)&&!mxEvent.isControlDown(B)&&!mxEvent.isAltDown(B)||("1"!=mxUtils.getValue(E,"part","0")||this.isContainer(t))&&"0"!=mxUtils.getValue(E,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(t))&&!this.isTableRow(t)&&(!this.isTable(t)||M||G))&&!this.isCellLocked(t)};Graph.prototype.createGroupCell=
-function(){var t=mxGraph.prototype.createGroupCell.apply(this,arguments);t.setStyle("group");return t};Graph.prototype.isExtendParentsOnAdd=function(t){var z=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(z&&null!=t&&null!=this.layoutManager){var B=this.model.getParent(t);null!=B&&(B=this.layoutManager.getLayout(B),null!=B&&B.constructor==mxStackLayout&&(z=!1))}return z};Graph.prototype.getPreferredSizeForCell=function(t){var z=mxGraph.prototype.getPreferredSizeForCell.apply(this,
-arguments);null!=z&&(z.width+=10,z.height+=4,this.gridEnabled&&(z.width=this.snap(z.width),z.height=this.snap(z.height)));return z};Graph.prototype.turnShapes=function(t,z){var B=this.getModel(),E=[];B.beginUpdate();try{for(var G=0;G<t.length;G++){var M=t[G];if(B.isEdge(M)){var X=B.getTerminal(M,!0),ia=B.getTerminal(M,!1);B.setTerminal(M,ia,!0);B.setTerminal(M,X,!1);var da=B.getGeometry(M);if(null!=da){da=da.clone();null!=da.points&&da.points.reverse();var ja=da.getTerminalPoint(!0),sa=da.getTerminalPoint(!1);
-da.setTerminalPoint(ja,!1);da.setTerminalPoint(sa,!0);B.setGeometry(M,da);var Ba=this.view.getState(M),Da=this.view.getState(X),Ma=this.view.getState(ia);if(null!=Ba){var La=null!=Da?this.getConnectionConstraint(Ba,Da,!0):null,Ia=null!=Ma?this.getConnectionConstraint(Ba,Ma,!1):null;this.setConnectionConstraint(M,X,!0,Ia);this.setConnectionConstraint(M,ia,!1,La);var Ea=mxUtils.getValue(Ba.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,
-mxUtils.getValue(Ba.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[M]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,Ea,[M])}E.push(M)}}else if(B.isVertex(M)&&(da=this.getCellGeometry(M),null!=da)){if(!(this.isTable(M)||this.isTableRow(M)||this.isTableCell(M)||this.isSwimlane(M))){da=da.clone();da.x+=da.width/2-da.height/2;da.y+=da.height/2-da.width/2;var Fa=da.width;da.width=da.height;da.height=Fa;B.setGeometry(M,da)}var Oa=this.view.getState(M);if(null!=Oa){var Pa=[mxConstants.DIRECTION_EAST,
-mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],Na=mxUtils.getValue(Oa.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,Pa[mxUtils.mod(mxUtils.indexOf(Pa,Na)+(z?-1:1),Pa.length)],[M])}E.push(M)}}}finally{B.endUpdate()}return E};Graph.prototype.stencilHasPlaceholders=function(t){if(null!=t&&null!=t.fgNode)for(t=t.fgNode.firstChild;null!=t;){if("text"==t.nodeName&&"1"==t.getAttribute("placeholders"))return!0;
-t=t.nextSibling}return!1};var A=Graph.prototype.processChange;Graph.prototype.processChange=function(t){if(t instanceof mxGeometryChange&&(this.isTableCell(t.cell)||this.isTableRow(t.cell))&&(null==t.previous&&null!=t.geometry||null!=t.previous&&!t.previous.equals(t.geometry))){var z=t.cell;this.isTableCell(z)&&(z=this.model.getParent(z));this.isTableRow(z)&&(z=this.model.getParent(z));var B=this.view.getState(z);null!=B&&null!=B.shape&&(this.view.invalidate(z),B.shape.bounds=null)}A.apply(this,arguments);
-t instanceof mxValueChange&&null!=t.cell&&null!=t.cell.value&&"object"==typeof t.cell.value&&this.invalidateDescendantsWithPlaceholders(t.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=function(t){t=this.model.getDescendants(t);if(0<t.length)for(var z=0;z<t.length;z++){var B=this.view.getState(t[z]);null!=B&&null!=B.shape&&null!=B.shape.stencil&&this.stencilHasPlaceholders(B.shape.stencil)?this.removeStateForCell(t[z]):this.isReplacePlaceholders(t[z])&&this.view.invalidate(t[z],!1,!1)}};
-Graph.prototype.replaceElement=function(t,z){z=t.ownerDocument.createElement(null!=z?z:"span");for(var B=Array.prototype.slice.call(t.attributes);attr=B.pop();)z.setAttribute(attr.nodeName,attr.nodeValue);z.innerHTML=t.innerHTML;t.parentNode.replaceChild(z,t)};Graph.prototype.processElements=function(t,z){if(null!=t){t=t.getElementsByTagName("*");for(var B=0;B<t.length;B++)z(t[B])}};Graph.prototype.updateLabelElements=function(t,z,B){t=null!=t?t:this.getSelectionCells();for(var E=document.createElement("div"),
-G=0;G<t.length;G++)if(this.isHtmlLabel(t[G])){var M=this.convertValueToString(t[G]);if(null!=M&&0<M.length){E.innerHTML=M;for(var X=E.getElementsByTagName(null!=B?B:"*"),ia=0;ia<X.length;ia++)z(X[ia]);E.innerHTML!=M&&this.cellLabelChanged(t[G],E.innerHTML)}}};Graph.prototype.cellLabelChanged=function(t,z,B){z=Graph.zapGremlins(z);this.model.beginUpdate();try{if(null!=t.value&&"object"==typeof t.value){if(this.isReplacePlaceholders(t)&&null!=t.getAttribute("placeholder"))for(var E=t.getAttribute("placeholder"),
-G=t;null!=G;){if(G==this.model.getRoot()||null!=G.value&&"object"==typeof G.value&&G.hasAttribute(E)){this.setAttributeForCell(G,E,z);break}G=this.model.getParent(G)}var M=t.value.cloneNode(!0);Graph.translateDiagram&&null!=Graph.diagramLanguage&&M.hasAttribute("label_"+Graph.diagramLanguage)?M.setAttribute("label_"+Graph.diagramLanguage,z):M.setAttribute("label",z);z=M}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(t){if(null!=
-t){for(var z=new mxDictionary,B=0;B<t.length;B++)z.put(t[B],!0);var E=[];for(B=0;B<t.length;B++){var G=this.model.getParent(t[B]);null==G||z.get(G)||(z.put(G,!0),E.push(G))}for(B=0;B<E.length;B++)if(G=this.view.getState(E[B]),null!=G&&(this.model.isEdge(G.cell)||this.model.isVertex(G.cell))&&this.isCellDeletable(G.cell)&&this.isTransparentState(G)){for(var M=!0,X=0;X<this.model.getChildCount(G.cell)&&M;X++)z.get(this.model.getChildAt(G.cell,X))||(M=!1);M&&t.push(G.cell)}}mxGraph.prototype.cellsRemoved.apply(this,
-arguments)};Graph.prototype.removeCellsAfterUngroup=function(t){for(var z=[],B=0;B<t.length;B++)this.isCellDeletable(t[B])&&this.isTransparentState(this.view.getState(t[B]))&&z.push(t[B]);t=z;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(t,z){this.setAttributeForCell(t,"link",z)};Graph.prototype.setTooltipForCell=function(t,z){var B="tooltip";Graph.translateDiagram&&null!=Graph.diagramLanguage&&mxUtils.isNode(t.value)&&t.value.hasAttribute("tooltip_"+
-Graph.diagramLanguage)&&(B="tooltip_"+Graph.diagramLanguage);this.setAttributeForCell(t,B,z)};Graph.prototype.getAttributeForCell=function(t,z,B){t=null!=t.value&&"object"===typeof t.value?t.value.getAttribute(z):null;return null!=t?t:B};Graph.prototype.setAttributeForCell=function(t,z,B){if(null!=t.value&&"object"==typeof t.value)var E=t.value.cloneNode(!0);else E=mxUtils.createXmlDocument().createElement("UserObject"),E.setAttribute("label",t.value||"");null!=B?E.setAttribute(z,B):E.removeAttribute(z);
-this.model.setValue(t,E)};var C=Graph.prototype.getDropTarget;Graph.prototype.getDropTarget=function(t,z,B,E){this.getModel();if(mxEvent.isAltDown(z))return null;for(var G=0;G<t.length;G++){var M=this.model.getParent(t[G]);if(this.model.isEdge(M)&&0>mxUtils.indexOf(t,M))return null}M=C.apply(this,arguments);var X=!0;for(G=0;G<t.length&&X;G++)X=X&&this.isTableRow(t[G]);X&&(this.isTableCell(M)&&(M=this.model.getParent(M)),this.isTableRow(M)&&(M=this.model.getParent(M)),this.isTable(M)||(M=null));return M};
-Graph.prototype.click=function(t){mxGraph.prototype.click.call(this,t);this.firstClickState=t.getState();this.firstClickSource=t.getSource()};Graph.prototype.dblClick=function(t,z){this.isEnabled()&&(z=this.insertTextForEvent(t,z),mxGraph.prototype.dblClick.call(this,t,z))};Graph.prototype.insertTextForEvent=function(t,z){var B=mxUtils.convertPoint(this.container,mxEvent.getClientX(t),mxEvent.getClientY(t));if(null!=t&&!this.model.isVertex(z)){var E=this.model.isEdge(z)?this.view.getState(z):null,
-G=mxEvent.getSource(t);this.firstClickState!=E||this.firstClickSource!=G||null!=E&&null!=E.text&&null!=E.text.node&&null!=E.text.boundingBox&&(mxUtils.contains(E.text.boundingBox,B.x,B.y)||mxUtils.isAncestorNode(E.text.node,mxEvent.getSource(t)))||(null!=E||this.isCellLocked(this.getDefaultParent()))&&(null==E||this.isCellLocked(E.cell))||!(null!=E||mxClient.IS_SVG&&G==this.view.getCanvas().ownerSVGElement)||(null==E&&(E=this.view.getState(this.getCellAt(B.x,B.y))),z=this.addText(B.x,B.y,E))}return z};
-Graph.prototype.getInsertPoint=function(){var t=this.getGridSize(),z=this.container.scrollLeft/this.view.scale-this.view.translate.x,B=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible){var E=this.getPageLayout(),G=this.getPageSize();z=Math.max(z,E.x*G.width);B=Math.max(B,E.y*G.height)}return new mxPoint(this.snap(z+t),this.snap(B+t))};Graph.prototype.getFreeInsertPoint=function(){var t=this.view,z=this.getGraphBounds(),B=this.getInsertPoint(),E=this.snap(Math.round(Math.max(B.x,
-z.x/t.scale-t.translate.x+(0==z.width?2*this.gridSize:0))));t=this.snap(Math.round(Math.max(B.y,(z.y+z.height)/t.scale-t.translate.y+2*this.gridSize)));return new mxPoint(E,t)};Graph.prototype.getCenterInsertPoint=function(t){t=null!=t?t:new mxRectangle;return mxUtils.hasScrollbars(this.container)?new mxPoint(this.snap(Math.round((this.container.scrollLeft+this.container.clientWidth/2)/this.view.scale-this.view.translate.x-t.width/2)),this.snap(Math.round((this.container.scrollTop+this.container.clientHeight/
-2)/this.view.scale-this.view.translate.y-t.height/2))):new mxPoint(this.snap(Math.round(this.container.clientWidth/2/this.view.scale-this.view.translate.x-t.width/2)),this.snap(Math.round(this.container.clientHeight/2/this.view.scale-this.view.translate.y-t.height/2)))};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(t,z,B){var E=new mxCell;E.value="Text";E.geometry=new mxGeometry(0,0,0,0);E.vertex=!0;if(null!=B&&this.model.isEdge(B.cell)){E.style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];";
-E.geometry.relative=!0;E.connectable=!1;var G=this.view.getRelativePoint(B,t,z);E.geometry.x=Math.round(1E4*G.x)/1E4;E.geometry.y=Math.round(G.y);E.geometry.offset=new mxPoint(0,0);G=this.view.getPoint(B,E.geometry);var M=this.view.scale;E.geometry.offset=new mxPoint(Math.round((t-G.x)/M),Math.round((z-G.y)/M))}else G=this.view.translate,E.style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];",E.geometry.width=40,E.geometry.height=20,E.geometry.x=Math.round(t/this.view.scale)-
-G.x-(null!=B?B.origin.x:0),E.geometry.y=Math.round(z/this.view.scale)-G.y-(null!=B?B.origin.y:0),E.style+="autosize=1;";this.getModel().beginUpdate();try{this.addCells([E],null!=B?B.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[E])),this.autoSizeCell(E)}finally{this.getModel().endUpdate()}return E};Graph.prototype.addClickHandler=function(t,z,B){var E=mxUtils.bind(this,function(){var da=this.container.getElementsByTagName("a");if(null!=da)for(var ja=0;ja<da.length;ja++){var sa=
-this.getAbsoluteUrl(da[ja].getAttribute("href"));null!=sa&&(da[ja].setAttribute("rel",this.linkRelation),da[ja].setAttribute("href",sa),null!=z&&mxEvent.addGestureListeners(da[ja],null,null,z))}});this.model.addListener(mxEvent.CHANGE,E);E();var G=this.container.style.cursor,M=this.getTolerance(),X=this,ia={currentState:null,currentLink:null,currentTarget:null,highlight:null!=t&&""!=t&&t!=mxConstants.NONE?new mxCellHighlight(X,t,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(da){var ja=
-da.sourceState;if(null==ja||null==X.getLinkForCell(ja.cell))da=X.getCellAt(da.getGraphX(),da.getGraphY(),null,null,null,function(sa,Ba,Da){return null==X.getLinkForCell(sa.cell)}),ja=null==ja||X.model.isAncestor(da,ja.cell)?X.view.getState(da):null;ja!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=ja,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(da,ja){this.startX=ja.getGraphX();this.startY=ja.getGraphY();this.scrollLeft=X.container.scrollLeft;
-this.scrollTop=X.container.scrollTop;null==this.currentLink&&"auto"==X.container.style.overflow&&(X.container.style.cursor="move");this.updateCurrentState(ja)},mouseMove:function(da,ja){if(X.isMouseDown)null!=this.currentLink&&(da=Math.abs(this.startX-ja.getGraphX()),ja=Math.abs(this.startY-ja.getGraphY()),(da>M||ja>M)&&this.clear());else{for(da=ja.getSource();null!=da&&"a"!=da.nodeName.toLowerCase();)da=da.parentNode;null!=da?this.clear():(null!=X.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&
-X.tooltipHandler.reset(ja,!0,this.currentState),(null==this.currentState||ja.getState()!=this.currentState&&null!=ja.sourceState||!X.intersects(this.currentState,ja.getGraphX(),ja.getGraphY()))&&this.updateCurrentState(ja))}},mouseUp:function(da,ja){var sa=ja.getSource();for(da=ja.getEvent();null!=sa&&"a"!=sa.nodeName.toLowerCase();)sa=sa.parentNode;null==sa&&Math.abs(this.scrollLeft-X.container.scrollLeft)<M&&Math.abs(this.scrollTop-X.container.scrollTop)<M&&(null==ja.sourceState||!ja.isSource(ja.sourceState.control))&&
-((mxEvent.isLeftMouseButton(da)||mxEvent.isMiddleMouseButton(da))&&!mxEvent.isPopupTrigger(da)||mxEvent.isTouchEvent(da))&&(null!=this.currentLink?(sa=X.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&sa||null==z||z(da,this.currentLink),mxEvent.isConsumed(da)||(da=null!=this.currentTarget?this.currentTarget:mxEvent.isMiddleMouseButton(da)?"_blank":sa?X.linkTarget:"_top",X.openLink(this.currentLink,da),ja.consume())):null!=B&&!ja.isConsumed()&&Math.abs(this.scrollLeft-X.container.scrollLeft)<
-M&&Math.abs(this.scrollTop-X.container.scrollTop)<M&&Math.abs(this.startX-ja.getGraphX())<M&&Math.abs(this.startY-ja.getGraphY())<M&&B(ja.getEvent()));this.clear()},activate:function(da){this.currentLink=X.getAbsoluteUrl(X.getLinkForCell(da.cell));null!=this.currentLink&&(this.currentTarget=X.getLinkTargetForCell(da.cell),X.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(da))},clear:function(){null!=X.container&&(X.container.style.cursor=G);this.currentLink=this.currentState=
-this.currentTarget=null;null!=this.highlight&&this.highlight.hide();null!=X.tooltipHandler&&X.tooltipHandler.hide()}};X.click=function(da){};X.addMouseListener(ia);mxEvent.addListener(document,"mouseleave",function(da){ia.clear()})};Graph.prototype.duplicateCells=function(t,z){t=null!=t?t:this.getSelectionCells();z=null!=z?z:!0;for(var B=0;B<t.length;B++)this.isTableCell(t[B])&&(t[B]=this.model.getParent(t[B]));t=this.model.getTopmostCells(t);var E=this.getModel(),G=this.gridSize,M=[];E.beginUpdate();
-try{var X={},ia=this.createCellLookup(t),da=this.cloneCells(t,!1,X,!0);for(B=0;B<t.length;B++){var ja=E.getParent(t[B]);if(null!=ja){var sa=this.moveCells([da[B]],G,G,!1)[0];M.push(sa);if(z)E.add(ja,da[B]);else{var Ba=ja.getIndex(t[B]);E.add(ja,da[B],Ba+1)}if(this.isTable(ja)){var Da=this.getCellGeometry(da[B]),Ma=this.getCellGeometry(ja);null!=Da&&null!=Ma&&(Ma=Ma.clone(),Ma.height+=Da.height,E.setGeometry(ja,Ma))}}else M.push(da[B])}this.updateCustomLinks(this.createCellMapping(X,ia),da,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,
-"cells",da))}finally{E.endUpdate()}return M};Graph.prototype.insertImage=function(t,z,B){if(null!=t&&null!=this.cellEditor.textarea){for(var E=this.cellEditor.textarea.getElementsByTagName("img"),G=[],M=0;M<E.length;M++)G.push(E[M]);document.execCommand("insertimage",!1,t);t=this.cellEditor.textarea.getElementsByTagName("img");if(t.length==G.length+1)for(M=t.length-1;0<=M;M--)if(0==M||t[M]!=G[M-1]){t[M].setAttribute("width",z);t[M].setAttribute("height",B);break}}};Graph.prototype.insertLink=function(t){if(null!=
-this.cellEditor.textarea)if(0==t.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var z=this.cellEditor.textarea.getElementsByTagName("a"),B=[],E=0;E<z.length;E++)B.push(z[E]);document.execCommand("createlink",!1,mxUtils.trim(t));z=this.cellEditor.textarea.getElementsByTagName("a");if(z.length==B.length+1)for(E=z.length-1;0<=E;E--)if(z[E]!=B[E-1]){for(z=z[E].getElementsByTagName("a");0<z.length;){for(B=z[0].parentNode;null!=z[0].firstChild;)B.insertBefore(z[0].firstChild,z[0]);
-B.removeChild(z[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(t))};Graph.prototype.isCellResizable=function(t){var z=mxGraph.prototype.isCellResizable.apply(this,arguments),B=this.getCurrentCellStyle(t);return!this.isTableCell(t)&&!this.isTableRow(t)&&(z||"0"!=mxUtils.getValue(B,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==B[mxConstants.STYLE_WHITE_SPACE])};Graph.prototype.distributeCells=function(t,z){null==z&&(z=this.getSelectionCells());if(null!=z&&1<z.length){for(var B=[],E=null,
-G=null,M=0;M<z.length;M++)if(this.getModel().isVertex(z[M])){var X=this.view.getState(z[M]);if(null!=X){var ia=t?X.getCenterX():X.getCenterY();E=null!=E?Math.max(E,ia):ia;G=null!=G?Math.min(G,ia):ia;B.push(X)}}if(2<B.length){B.sort(function(Ba,Da){return t?Ba.x-Da.x:Ba.y-Da.y});X=this.view.translate;ia=this.view.scale;G=G/ia-(t?X.x:X.y);E=E/ia-(t?X.x:X.y);this.getModel().beginUpdate();try{var da=(E-G)/(B.length-1);E=G;for(M=1;M<B.length-1;M++){var ja=this.view.getState(this.model.getParent(B[M].cell)),
-sa=this.getCellGeometry(B[M].cell);E+=da;null!=sa&&null!=ja&&(sa=sa.clone(),t?sa.x=Math.round(E-sa.width/2)-ja.origin.x:sa.y=Math.round(E-sa.height/2)-ja.origin.y,this.getModel().setGeometry(B[M].cell,sa))}}finally{this.getModel().endUpdate()}}}return z};Graph.prototype.isCloneEvent=function(t){return mxClient.IS_MAC&&mxEvent.isMetaDown(t)||mxEvent.isControlDown(t)};Graph.prototype.createSvgImageExport=function(){var t=new mxImageExport;t.getLinkForCellState=mxUtils.bind(this,function(z,B){return this.getLinkForCell(z.cell)});
-return t};Graph.prototype.parseBackgroundImage=function(t){var z=null;null!=t&&0<t.length&&(t=JSON.parse(t),z=new mxImage(t.src,t.width,t.height));return z};Graph.prototype.getBackgroundImageObject=function(t){return t};Graph.prototype.getSvg=function(t,z,B,E,G,M,X,ia,da,ja,sa,Ba,Da,Ma){var La=null;if(null!=Ma)for(La=new mxDictionary,sa=0;sa<Ma.length;sa++)La.put(Ma[sa],!0);if(Ma=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{z=null!=z?z:1;B=null!=B?
-B:0;G=null!=G?G:!0;M=null!=M?M:!0;X=null!=X?X:!0;ja=null!=ja?ja:!1;var Ia="page"==Da?this.view.getBackgroundPageBounds():M&&null==La||E||"diagram"==Da?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),Ea=this.view.scale;"diagram"==Da&&null!=this.backgroundImage&&(Ia=mxRectangle.fromRectangle(Ia),Ia.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*Ea,(this.view.translate.y+this.backgroundImage.y)*Ea,this.backgroundImage.width*Ea,this.backgroundImage.height*Ea)));
-if(null==Ia)throw Error(mxResources.get("drawingEmpty"));E=z/Ea;Da=G?-.5:0;var Fa=Graph.createSvgNode(Da,Da,Math.max(1,Math.ceil(Ia.width*E)+2*B)+(ja&&0==B?5:0),Math.max(1,Math.ceil(Ia.height*E)+2*B)+(ja&&0==B?5:0),t),Oa=Fa.ownerDocument,Pa=null!=Oa.createElementNS?Oa.createElementNS(mxConstants.NS_SVG,"g"):Oa.createElement("g");Fa.appendChild(Pa);var Na=this.createSvgCanvas(Pa);Na.foOffset=G?-.5:0;Na.textOffset=G?-.5:0;Na.imageOffset=G?-.5:0;Na.translate(Math.floor(B/z-Ia.x/Ea),Math.floor(B/z-Ia.y/
-Ea));var Sa=document.createElement("div"),eb=Na.getAlternateText;Na.getAlternateText=function(ab,mb,Xa,ib,gb,Wa,qb,tb,nb,fb,Ra,rb,xb){if(null!=Wa&&0<this.state.fontSize)try{mxUtils.isNode(Wa)?Wa=Wa.innerText:(Sa.innerHTML=Wa,Wa=mxUtils.extractTextWithWhitespace(Sa.childNodes));for(var kb=Math.ceil(2*ib/this.state.fontSize),hb=[],ob=0,lb=0;(0==kb||ob<kb)&&lb<Wa.length;){var sb=Wa.charCodeAt(lb);if(10==sb||13==sb){if(0<ob)break}else hb.push(Wa.charAt(lb)),255>sb&&ob++;lb++}hb.length<Wa.length&&1<Wa.length-
-hb.length&&(Wa=mxUtils.trim(hb.join(""))+"...");return Wa}catch(c){return eb.apply(this,arguments)}else return eb.apply(this,arguments)};var Za=this.backgroundImage;if(null!=Za){t=Ea/z;var pb=this.view.translate;Da=new mxRectangle((Za.x+pb.x)*t,(Za.y+pb.y)*t,Za.width*t,Za.height*t);mxUtils.intersects(Ia,Da)&&Na.image(Za.x+pb.x,Za.y+pb.y,Za.width,Za.height,Za.src,!0)}Na.scale(E);Na.textEnabled=X;ia=null!=ia?ia:this.createSvgImageExport();var ub=ia.drawCellState,vb=ia.getLinkForCellState;ia.getLinkForCellState=
-function(ab,mb){var Xa=vb.apply(this,arguments);return null==Xa||ab.view.graph.isCustomLink(Xa)?null:Xa};ia.getLinkTargetForCellState=function(ab,mb){return ab.view.graph.getLinkTargetForCell(ab.cell)};ia.drawCellState=function(ab,mb){for(var Xa=ab.view.graph,ib=null!=La?La.get(ab.cell):Xa.isCellSelected(ab.cell),gb=Xa.model.getParent(ab.cell);!(M&&null==La||ib)&&null!=gb;)ib=null!=La?La.get(gb):Xa.isCellSelected(gb),gb=Xa.model.getParent(gb);(M&&null==La||ib)&&ub.apply(this,arguments)};ia.drawState(this.getView().getState(this.model.root),
-Na);this.updateSvgLinks(Fa,da,!0);this.addForeignObjectWarning(Na,Fa);return Fa}finally{Ma&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(t,z){if("0"!=urlParams["svg-warning"]&&0<z.getElementsByTagName("foreignObject").length){var B=t.createElement("switch"),E=t.createElement("g");E.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var G=t.createElement("a");G.setAttribute("transform","translate(0,-5)");
-null==G.setAttributeNS||z.ownerDocument!=document&&null==document.documentMode?(G.setAttribute("xlink:href",Graph.foreignObjectWarningLink),G.setAttribute("target","_blank")):(G.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",Graph.foreignObjectWarningLink),G.setAttributeNS(mxConstants.NS_XLINK,"target","_blank"));t=t.createElement("text");t.setAttribute("text-anchor","middle");t.setAttribute("font-size","10px");t.setAttribute("x","50%");t.setAttribute("y","100%");mxUtils.write(t,Graph.foreignObjectWarningText);
-B.appendChild(E);G.appendChild(t);B.appendChild(G);z.appendChild(B)}};Graph.prototype.updateSvgLinks=function(t,z,B){t=t.getElementsByTagName("a");for(var E=0;E<t.length;E++)if(null==t[E].getAttribute("target")){var G=t[E].getAttribute("href");null==G&&(G=t[E].getAttribute("xlink:href"));null!=G&&(null!=z&&/^https?:\/\//.test(G)?t[E].setAttribute("target",z):B&&this.isCustomLink(G)&&t[E].setAttribute("href","javascript:void(0);"))}};Graph.prototype.createSvgCanvas=function(t){t=new mxSvgCanvas2D(t);
+Graph.prototype.getPagePadding=function(){return new mxPoint(0,0)};Graph.prototype.loadStylesheet=function(){var t=null!=this.themes?this.themes[this.defaultThemeName]:mxStyleRegistry.dynamicLoading?mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement():null;null!=t&&(new mxCodec(t.ownerDocument)).decode(t,this.getStylesheet())};Graph.prototype.createCellLookup=function(t,z){z=null!=z?z:{};for(var A=0;A<t.length;A++){var E=t[A];z[mxObjectIdentity.get(E)]=E.getId();for(var H=this.model.getChildCount(E),
+K=0;K<H;K++)this.createCellLookup([this.model.getChildAt(E,K)],z)}return z};Graph.prototype.createCellMapping=function(t,z,A){A=null!=A?A:{};for(var E in t){var H=z[E];null==A[H]&&(A[H]=t[E].getId()||"")}return A};Graph.prototype.importGraphModel=function(t,z,A,E){z=null!=z?z:0;A=null!=A?A:0;var H=new mxCodec(t.ownerDocument),K=new mxGraphModel;H.decode(t,K);t=[];H={};var X={},ja=K.getChildren(this.cloneCell(K.root,this.isCloneInvalidEdges(),H));if(null!=ja){var ea=this.createCellLookup([K.root]);
+ja=ja.slice();this.model.beginUpdate();try{if(1!=ja.length||this.isCellLocked(this.getDefaultParent()))for(K=0;K<ja.length;K++)ka=this.model.getChildren(this.moveCells([ja[K]],z,A,!1,this.model.getRoot())[0]),null!=ka&&(t=t.concat(ka));else{var ka=K.getChildren(ja[0]);null!=ka&&(t=this.moveCells(ka,z,A,!1,this.getDefaultParent()),X[K.getChildAt(K.root,0).getId()]=this.getDefaultParent().getId())}if(null!=t&&(this.createCellMapping(H,ea,X),this.updateCustomLinks(X,t),E)){this.isGridEnabled()&&(z=this.snap(z),
+A=this.snap(A));var ta=this.getBoundingBoxFromGeometry(t,!0);null!=ta&&this.moveCells(t,z-ta.x,A-ta.y)}}finally{this.model.endUpdate()}}return t};Graph.prototype.encodeCells=function(t){for(var z={},A=this.cloneCells(t,null,z),E=new mxDictionary,H=0;H<t.length;H++)E.put(t[H],!0);var K=new mxCodec,X=new mxGraphModel,ja=X.getChildAt(X.getRoot(),0);for(H=0;H<A.length;H++){X.add(ja,A[H]);var ea=this.view.getState(t[H]);if(null!=ea){var ka=this.getCellGeometry(A[H]);null!=ka&&ka.relative&&!this.model.isEdge(t[H])&&
+null==E.get(this.model.getParent(t[H]))&&(ka.offset=null,ka.relative=!1,ka.x=ea.x/ea.view.scale-ea.view.translate.x,ka.y=ea.y/ea.view.scale-ea.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(z,this.createCellLookup(t)),A);return K.encode(X)};Graph.prototype.isSwimlane=function(t,z){var A=null;null==t||this.model.isEdge(t)||this.model.getParent(t)==this.model.getRoot()||(A=this.getCurrentCellStyle(t,z)[mxConstants.STYLE_SHAPE]);return A==mxConstants.SHAPE_SWIMLANE||"table"==A||"tableRow"==
+A};var n=Graph.prototype.isExtendParent;Graph.prototype.isExtendParent=function(t){var z=this.model.getParent(t);if(null!=z){var A=this.getCurrentCellStyle(z);if(null!=A.expand)return"0"!=A.expand}return n.apply(this,arguments)&&(null==z||!this.isTable(z))};var u=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(t,z,A,E,H,K,X,ja){null==ja&&(ja=this.model.getParent(t),this.isTable(ja)||this.isTableRow(ja))&&(ja=this.getCellAt(K,X,null,!0,!1));A=null;this.model.beginUpdate();try{A=u.apply(this,
+[t,z,A,E,H,K,X,ja]);this.model.setValue(A,"");var ea=this.getChildCells(A,!0);for(z=0;z<ea.length;z++){var ka=this.getCellGeometry(ea[z]);null!=ka&&ka.relative&&0<ka.x&&this.model.remove(ea[z])}var ta=this.getChildCells(t,!0);for(z=0;z<ta.length;z++)ka=this.getCellGeometry(ta[z]),null!=ka&&ka.relative&&0>=ka.x&&this.model.remove(ta[z]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,null,[A]);this.setCellStyles(mxConstants.STYLE_ENDARROW,mxConstants.NONE,[A]);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,
+null,[t]);this.setCellStyles(mxConstants.STYLE_STARTARROW,mxConstants.NONE,[t]);var Aa=this.model.getTerminal(A,!1);if(null!=Aa){var Ea=this.getCurrentCellStyle(Aa);null!=Ea&&"1"==Ea.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[t]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[t]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[A]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[A]))}}finally{this.model.endUpdate()}return A};var m=Graph.prototype.selectCell;Graph.prototype.selectCell=
+function(t,z,A){if(z||A)m.apply(this,arguments);else{var E=this.getSelectionCell(),H=null,K=[],X=mxUtils.bind(this,function(ja){if(null!=this.view.getState(ja)&&(this.model.isVertex(ja)||this.model.isEdge(ja)))if(K.push(ja),ja==E)H=K.length-1;else if(t&&null==E&&0<K.length||null!=H&&t&&K.length>H||!t&&0<H)return;for(var ea=0;ea<this.model.getChildCount(ja);ea++)X(this.model.getChildAt(ja,ea))});X(this.model.root);0<K.length&&(H=null!=H?mxUtils.mod(H+(t?1:-1),K.length):0,this.setSelectionCell(K[H]))}};
+Graph.prototype.swapShapes=function(t,z,A,E,H,K,X){z=!1;if(!E&&null!=H&&1==t.length&&(E=this.view.getState(H),A=this.view.getState(t[0]),null!=E&&null!=A&&(null!=K&&mxEvent.isShiftDown(K)||"umlLifeline"==E.style.shape&&"umlLifeline"==A.style.shape)&&(E=this.getCellGeometry(H),K=this.getCellGeometry(t[0]),null!=E&&null!=K))){z=E.clone();E=K.clone();E.x=z.x;E.y=z.y;z.x=K.x;z.y=K.y;this.model.beginUpdate();try{this.model.setGeometry(H,z),this.model.setGeometry(t[0],E)}finally{this.model.endUpdate()}z=
+!0}return z};var r=Graph.prototype.moveCells;Graph.prototype.moveCells=function(t,z,A,E,H,K,X){if(this.swapShapes(t,z,A,E,H,K,X))return t;X=null!=X?X:{};if(this.isTable(H)){for(var ja=[],ea=0;ea<t.length;ea++)this.isTable(t[ea])?ja=ja.concat(this.model.getChildCells(t[ea],!0).reverse()):ja.push(t[ea]);t=ja}this.model.beginUpdate();try{ja=[];for(ea=0;ea<t.length;ea++)if(null!=H&&this.isTableRow(t[ea])){var ka=this.model.getParent(t[ea]),ta=this.getCellGeometry(t[ea]);this.isTable(ka)&&ja.push(ka);
+if(null!=ka&&null!=ta&&this.isTable(ka)&&this.isTable(H)&&(E||ka!=H)){if(!E){var Aa=this.getCellGeometry(ka);null!=Aa&&(Aa=Aa.clone(),Aa.height-=ta.height,this.model.setGeometry(ka,Aa))}Aa=this.getCellGeometry(H);null!=Aa&&(Aa=Aa.clone(),Aa.height+=ta.height,this.model.setGeometry(H,Aa));var Ea=this.model.getChildCells(H,!0);if(0<Ea.length){t[ea]=E?this.cloneCell(t[ea]):t[ea];var Ma=this.model.getChildCells(t[ea],!0),La=this.model.getChildCells(Ea[0],!0),Ia=La.length-Ma.length;if(0<Ia)for(var Fa=
+0;Fa<Ia;Fa++){var Ga=this.cloneCell(Ma[Ma.length-1]);null!=Ga&&(Ga.value="",this.model.add(t[ea],Ga))}else if(0>Ia)for(Fa=0;Fa>Ia;Fa--)this.model.remove(Ma[Ma.length+Fa-1]);Ma=this.model.getChildCells(t[ea],!0);for(Fa=0;Fa<La.length;Fa++){var Oa=this.getCellGeometry(La[Fa]),Pa=this.getCellGeometry(Ma[Fa]);null!=Oa&&null!=Pa&&(Pa=Pa.clone(),Pa.width=Oa.width,this.model.setGeometry(Ma[Fa],Pa))}}}}var Na=r.apply(this,arguments);for(ea=0;ea<ja.length;ea++)!E&&this.model.contains(ja[ea])&&0==this.model.getChildCount(ja[ea])&&
+this.model.remove(ja[ea]);E&&this.updateCustomLinks(this.createCellMapping(X,this.createCellLookup(t)),Na)}finally{this.model.endUpdate()}return Na};var x=Graph.prototype.removeCells;Graph.prototype.removeCells=function(t,z){var A=[];this.model.beginUpdate();try{for(var E=0;E<t.length;E++)if(this.isTableCell(t[E])){var H=this.model.getParent(t[E]),K=this.model.getParent(H);1==this.model.getChildCount(H)&&1==this.model.getChildCount(K)?0>mxUtils.indexOf(t,K)&&0>mxUtils.indexOf(A,K)&&A.push(K):this.labelChanged(t[E],
+"")}else{if(this.isTableRow(t[E])&&(K=this.model.getParent(t[E]),0>mxUtils.indexOf(t,K)&&0>mxUtils.indexOf(A,K))){for(var X=this.model.getChildCells(K,!0),ja=0,ea=0;ea<X.length;ea++)0<=mxUtils.indexOf(t,X[ea])&&ja++;ja==X.length&&A.push(K)}A.push(t[E])}A=x.apply(this,[A,z])}finally{this.model.endUpdate()}return A};Graph.prototype.updateCustomLinks=function(t,z,A){A=null!=A?A:new Graph;for(var E=0;E<z.length;E++)null!=z[E]&&A.updateCustomLinksForCell(t,z[E],A)};Graph.prototype.updateCustomLinksForCell=
+function(t,z){this.doUpdateCustomLinksForCell(t,z);for(var A=this.model.getChildCount(z),E=0;E<A;E++)this.updateCustomLinksForCell(t,this.model.getChildAt(z,E))};Graph.prototype.doUpdateCustomLinksForCell=function(t,z){};Graph.prototype.getAllConnectionConstraints=function(t,z){if(null!=t){z=mxUtils.getValue(t.style,"points",null);if(null!=z){t=[];try{var A=JSON.parse(z);for(z=0;z<A.length;z++){var E=A[z];t.push(new mxConnectionConstraint(new mxPoint(E[0],E[1]),2<E.length?"0"!=E[2]:!0,null,3<E.length?
+E[3]:0,4<E.length?E[4]:0))}}catch(K){}return t}if(null!=t.shape&&null!=t.shape.bounds){E=t.shape.direction;z=t.shape.bounds;var H=t.shape.scale;A=z.width/H;z=z.height/H;if(E==mxConstants.DIRECTION_NORTH||E==mxConstants.DIRECTION_SOUTH)E=A,A=z,z=E;z=t.shape.getConstraints(t.style,A,z);if(null!=z)return z;if(null!=t.shape.stencil&&null!=t.shape.stencil.constraints)return t.shape.stencil.constraints;if(null!=t.shape.constraints)return t.shape.constraints}}return null};Graph.prototype.flipEdge=function(t){if(null!=
+t){var z=this.getCurrentCellStyle(t);z=mxUtils.getValue(z,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL;this.setCellStyles(mxConstants.STYLE_ELBOW,z,[t])}};Graph.prototype.isValidRoot=function(t){for(var z=this.model.getChildCount(t),A=0,E=0;E<z;E++){var H=this.model.getChildAt(t,E);this.model.isVertex(H)&&(H=this.getCellGeometry(H),null==H||H.relative||A++)}return 0<A||this.isContainer(t)};Graph.prototype.isValidDropTarget=
+function(t,z,A){for(var E=this.getCurrentCellStyle(t),H=!0,K=!0,X=0;X<z.length&&K;X++)H=H&&this.isTable(z[X]),K=K&&this.isTableRow(z[X]);return(1==z.length&&null!=A&&mxEvent.isShiftDown(A)&&!mxEvent.isControlDown(A)&&!mxEvent.isAltDown(A)||("1"!=mxUtils.getValue(E,"part","0")||this.isContainer(t))&&"0"!=mxUtils.getValue(E,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(t))&&!this.isTableRow(t)&&(!this.isTable(t)||K||H))&&!this.isCellLocked(t)};Graph.prototype.createGroupCell=
+function(){var t=mxGraph.prototype.createGroupCell.apply(this,arguments);t.setStyle("group");return t};Graph.prototype.isExtendParentsOnAdd=function(t){var z=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(z&&null!=t&&null!=this.layoutManager){var A=this.model.getParent(t);null!=A&&(A=this.layoutManager.getLayout(A),null!=A&&A.constructor==mxStackLayout&&(z=!1))}return z};Graph.prototype.getPreferredSizeForCell=function(t){var z=mxGraph.prototype.getPreferredSizeForCell.apply(this,
+arguments);null!=z&&(z.width+=10,z.height+=4,this.gridEnabled&&(z.width=this.snap(z.width),z.height=this.snap(z.height)));return z};Graph.prototype.turnShapes=function(t,z){var A=this.getModel(),E=[];A.beginUpdate();try{for(var H=0;H<t.length;H++){var K=t[H];if(A.isEdge(K)){var X=A.getTerminal(K,!0),ja=A.getTerminal(K,!1);A.setTerminal(K,ja,!0);A.setTerminal(K,X,!1);var ea=A.getGeometry(K);if(null!=ea){ea=ea.clone();null!=ea.points&&ea.points.reverse();var ka=ea.getTerminalPoint(!0),ta=ea.getTerminalPoint(!1);
+ea.setTerminalPoint(ka,!1);ea.setTerminalPoint(ta,!0);A.setGeometry(K,ea);var Aa=this.view.getState(K),Ea=this.view.getState(X),Ma=this.view.getState(ja);if(null!=Aa){var La=null!=Ea?this.getConnectionConstraint(Aa,Ea,!0):null,Ia=null!=Ma?this.getConnectionConstraint(Aa,Ma,!1):null;this.setConnectionConstraint(K,X,!0,Ia);this.setConnectionConstraint(K,ja,!1,La);var Fa=mxUtils.getValue(Aa.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,
+mxUtils.getValue(Aa.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[K]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,Fa,[K])}E.push(K)}}else if(A.isVertex(K)&&(ea=this.getCellGeometry(K),null!=ea)){if(!(this.isTable(K)||this.isTableRow(K)||this.isTableCell(K)||this.isSwimlane(K))){ea=ea.clone();ea.x+=ea.width/2-ea.height/2;ea.y+=ea.height/2-ea.width/2;var Ga=ea.width;ea.width=ea.height;ea.height=Ga;A.setGeometry(K,ea)}var Oa=this.view.getState(K);if(null!=Oa){var Pa=[mxConstants.DIRECTION_EAST,
+mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],Na=mxUtils.getValue(Oa.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,Pa[mxUtils.mod(mxUtils.indexOf(Pa,Na)+(z?-1:1),Pa.length)],[K])}E.push(K)}}}finally{A.endUpdate()}return E};Graph.prototype.stencilHasPlaceholders=function(t){if(null!=t&&null!=t.fgNode)for(t=t.fgNode.firstChild;null!=t;){if("text"==t.nodeName&&"1"==t.getAttribute("placeholders"))return!0;
+t=t.nextSibling}return!1};var B=Graph.prototype.processChange;Graph.prototype.processChange=function(t){if(t instanceof mxGeometryChange&&(this.isTableCell(t.cell)||this.isTableRow(t.cell))&&(null==t.previous&&null!=t.geometry||null!=t.previous&&!t.previous.equals(t.geometry))){var z=t.cell;this.isTableCell(z)&&(z=this.model.getParent(z));this.isTableRow(z)&&(z=this.model.getParent(z));var A=this.view.getState(z);null!=A&&null!=A.shape&&(this.view.invalidate(z),A.shape.bounds=null)}B.apply(this,arguments);
+t instanceof mxValueChange&&null!=t.cell&&null!=t.cell.value&&"object"==typeof t.cell.value&&this.invalidateDescendantsWithPlaceholders(t.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=function(t){t=this.model.getDescendants(t);if(0<t.length)for(var z=0;z<t.length;z++){var A=this.view.getState(t[z]);null!=A&&null!=A.shape&&null!=A.shape.stencil&&this.stencilHasPlaceholders(A.shape.stencil)?this.removeStateForCell(t[z]):this.isReplacePlaceholders(t[z])&&this.view.invalidate(t[z],!1,!1)}};
+Graph.prototype.replaceElement=function(t,z){z=t.ownerDocument.createElement(null!=z?z:"span");for(var A=Array.prototype.slice.call(t.attributes);attr=A.pop();)z.setAttribute(attr.nodeName,attr.nodeValue);z.innerHTML=t.innerHTML;t.parentNode.replaceChild(z,t)};Graph.prototype.processElements=function(t,z){if(null!=t){t=t.getElementsByTagName("*");for(var A=0;A<t.length;A++)z(t[A])}};Graph.prototype.updateLabelElements=function(t,z,A){t=null!=t?t:this.getSelectionCells();for(var E=document.createElement("div"),
+H=0;H<t.length;H++)if(this.isHtmlLabel(t[H])){var K=this.convertValueToString(t[H]);if(null!=K&&0<K.length){E.innerHTML=K;for(var X=E.getElementsByTagName(null!=A?A:"*"),ja=0;ja<X.length;ja++)z(X[ja]);E.innerHTML!=K&&this.cellLabelChanged(t[H],E.innerHTML)}}};Graph.prototype.cellLabelChanged=function(t,z,A){z=Graph.zapGremlins(z);this.model.beginUpdate();try{if(null!=t.value&&"object"==typeof t.value){if(this.isReplacePlaceholders(t)&&null!=t.getAttribute("placeholder"))for(var E=t.getAttribute("placeholder"),
+H=t;null!=H;){if(H==this.model.getRoot()||null!=H.value&&"object"==typeof H.value&&H.hasAttribute(E)){this.setAttributeForCell(H,E,z);break}H=this.model.getParent(H)}var K=t.value.cloneNode(!0);Graph.translateDiagram&&null!=Graph.diagramLanguage&&K.hasAttribute("label_"+Graph.diagramLanguage)?K.setAttribute("label_"+Graph.diagramLanguage,z):K.setAttribute("label",z);z=K}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(t){if(null!=
+t){for(var z=new mxDictionary,A=0;A<t.length;A++)z.put(t[A],!0);var E=[];for(A=0;A<t.length;A++){var H=this.model.getParent(t[A]);null==H||z.get(H)||(z.put(H,!0),E.push(H))}for(A=0;A<E.length;A++)if(H=this.view.getState(E[A]),null!=H&&(this.model.isEdge(H.cell)||this.model.isVertex(H.cell))&&this.isCellDeletable(H.cell)&&this.isTransparentState(H)){for(var K=!0,X=0;X<this.model.getChildCount(H.cell)&&K;X++)z.get(this.model.getChildAt(H.cell,X))||(K=!1);K&&t.push(H.cell)}}mxGraph.prototype.cellsRemoved.apply(this,
+arguments)};Graph.prototype.removeCellsAfterUngroup=function(t){for(var z=[],A=0;A<t.length;A++)this.isCellDeletable(t[A])&&this.isTransparentState(this.view.getState(t[A]))&&z.push(t[A]);t=z;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(t,z){this.setAttributeForCell(t,"link",z)};Graph.prototype.setTooltipForCell=function(t,z){var A="tooltip";Graph.translateDiagram&&null!=Graph.diagramLanguage&&mxUtils.isNode(t.value)&&t.value.hasAttribute("tooltip_"+
+Graph.diagramLanguage)&&(A="tooltip_"+Graph.diagramLanguage);this.setAttributeForCell(t,A,z)};Graph.prototype.getAttributeForCell=function(t,z,A){t=null!=t.value&&"object"===typeof t.value?t.value.getAttribute(z):null;return null!=t?t:A};Graph.prototype.setAttributeForCell=function(t,z,A){if(null!=t.value&&"object"==typeof t.value)var E=t.value.cloneNode(!0);else E=mxUtils.createXmlDocument().createElement("UserObject"),E.setAttribute("label",t.value||"");null!=A?E.setAttribute(z,A):E.removeAttribute(z);
+this.model.setValue(t,E)};var C=Graph.prototype.getDropTarget;Graph.prototype.getDropTarget=function(t,z,A,E){this.getModel();if(mxEvent.isAltDown(z))return null;for(var H=0;H<t.length;H++){var K=this.model.getParent(t[H]);if(this.model.isEdge(K)&&0>mxUtils.indexOf(t,K))return null}K=C.apply(this,arguments);var X=!0;for(H=0;H<t.length&&X;H++)X=X&&this.isTableRow(t[H]);X&&(this.isTableCell(K)&&(K=this.model.getParent(K)),this.isTableRow(K)&&(K=this.model.getParent(K)),this.isTable(K)||(K=null));return K};
+Graph.prototype.click=function(t){mxGraph.prototype.click.call(this,t);this.firstClickState=t.getState();this.firstClickSource=t.getSource()};Graph.prototype.dblClick=function(t,z){this.isEnabled()&&(z=this.insertTextForEvent(t,z),mxGraph.prototype.dblClick.call(this,t,z))};Graph.prototype.insertTextForEvent=function(t,z){var A=mxUtils.convertPoint(this.container,mxEvent.getClientX(t),mxEvent.getClientY(t));if(null!=t&&!this.model.isVertex(z)){var E=this.model.isEdge(z)?this.view.getState(z):null,
+H=mxEvent.getSource(t);this.firstClickState!=E||this.firstClickSource!=H||null!=E&&null!=E.text&&null!=E.text.node&&null!=E.text.boundingBox&&(mxUtils.contains(E.text.boundingBox,A.x,A.y)||mxUtils.isAncestorNode(E.text.node,mxEvent.getSource(t)))||(null!=E||this.isCellLocked(this.getDefaultParent()))&&(null==E||this.isCellLocked(E.cell))||!(null!=E||mxClient.IS_SVG&&H==this.view.getCanvas().ownerSVGElement)||(null==E&&(E=this.view.getState(this.getCellAt(A.x,A.y))),z=this.addText(A.x,A.y,E))}return z};
+Graph.prototype.getInsertPoint=function(){var t=this.getGridSize(),z=this.container.scrollLeft/this.view.scale-this.view.translate.x,A=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible){var E=this.getPageLayout(),H=this.getPageSize();z=Math.max(z,E.x*H.width);A=Math.max(A,E.y*H.height)}return new mxPoint(this.snap(z+t),this.snap(A+t))};Graph.prototype.getFreeInsertPoint=function(){var t=this.view,z=this.getGraphBounds(),A=this.getInsertPoint(),E=this.snap(Math.round(Math.max(A.x,
+z.x/t.scale-t.translate.x+(0==z.width?2*this.gridSize:0))));t=this.snap(Math.round(Math.max(A.y,(z.y+z.height)/t.scale-t.translate.y+2*this.gridSize)));return new mxPoint(E,t)};Graph.prototype.getCenterInsertPoint=function(t){t=null!=t?t:new mxRectangle;return mxUtils.hasScrollbars(this.container)?new mxPoint(this.snap(Math.round((this.container.scrollLeft+this.container.clientWidth/2)/this.view.scale-this.view.translate.x-t.width/2)),this.snap(Math.round((this.container.scrollTop+this.container.clientHeight/
+2)/this.view.scale-this.view.translate.y-t.height/2))):new mxPoint(this.snap(Math.round(this.container.clientWidth/2/this.view.scale-this.view.translate.x-t.width/2)),this.snap(Math.round(this.container.clientHeight/2/this.view.scale-this.view.translate.y-t.height/2)))};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(t,z,A){var E=new mxCell;E.value="Text";E.geometry=new mxGeometry(0,0,0,0);E.vertex=!0;if(null!=A&&this.model.isEdge(A.cell)){E.style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];";
+E.geometry.relative=!0;E.connectable=!1;var H=this.view.getRelativePoint(A,t,z);E.geometry.x=Math.round(1E4*H.x)/1E4;E.geometry.y=Math.round(H.y);E.geometry.offset=new mxPoint(0,0);H=this.view.getPoint(A,E.geometry);var K=this.view.scale;E.geometry.offset=new mxPoint(Math.round((t-H.x)/K),Math.round((z-H.y)/K))}else H=this.view.translate,E.style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];",E.geometry.width=40,E.geometry.height=20,E.geometry.x=Math.round(t/this.view.scale)-
+H.x-(null!=A?A.origin.x:0),E.geometry.y=Math.round(z/this.view.scale)-H.y-(null!=A?A.origin.y:0),E.style+="autosize=1;";this.getModel().beginUpdate();try{this.addCells([E],null!=A?A.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[E])),this.autoSizeCell(E)}finally{this.getModel().endUpdate()}return E};Graph.prototype.addClickHandler=function(t,z,A){var E=mxUtils.bind(this,function(){var ea=this.container.getElementsByTagName("a");if(null!=ea)for(var ka=0;ka<ea.length;ka++){var ta=
+this.getAbsoluteUrl(ea[ka].getAttribute("href"));null!=ta&&(ea[ka].setAttribute("rel",this.linkRelation),ea[ka].setAttribute("href",ta),null!=z&&mxEvent.addGestureListeners(ea[ka],null,null,z))}});this.model.addListener(mxEvent.CHANGE,E);E();var H=this.container.style.cursor,K=this.getTolerance(),X=this,ja={currentState:null,currentLink:null,currentTarget:null,highlight:null!=t&&""!=t&&t!=mxConstants.NONE?new mxCellHighlight(X,t,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(ea){var ka=
+ea.sourceState;if(null==ka||null==X.getLinkForCell(ka.cell))ea=X.getCellAt(ea.getGraphX(),ea.getGraphY(),null,null,null,function(ta,Aa,Ea){return null==X.getLinkForCell(ta.cell)}),ka=null==ka||X.model.isAncestor(ea,ka.cell)?X.view.getState(ea):null;ka!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=ka,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(ea,ka){this.startX=ka.getGraphX();this.startY=ka.getGraphY();this.scrollLeft=X.container.scrollLeft;
+this.scrollTop=X.container.scrollTop;null==this.currentLink&&"auto"==X.container.style.overflow&&(X.container.style.cursor="move");this.updateCurrentState(ka)},mouseMove:function(ea,ka){if(X.isMouseDown)null!=this.currentLink&&(ea=Math.abs(this.startX-ka.getGraphX()),ka=Math.abs(this.startY-ka.getGraphY()),(ea>K||ka>K)&&this.clear());else{for(ea=ka.getSource();null!=ea&&"a"!=ea.nodeName.toLowerCase();)ea=ea.parentNode;null!=ea?this.clear():(null!=X.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&
+X.tooltipHandler.reset(ka,!0,this.currentState),(null==this.currentState||ka.getState()!=this.currentState&&null!=ka.sourceState||!X.intersects(this.currentState,ka.getGraphX(),ka.getGraphY()))&&this.updateCurrentState(ka))}},mouseUp:function(ea,ka){var ta=ka.getSource();for(ea=ka.getEvent();null!=ta&&"a"!=ta.nodeName.toLowerCase();)ta=ta.parentNode;null==ta&&Math.abs(this.scrollLeft-X.container.scrollLeft)<K&&Math.abs(this.scrollTop-X.container.scrollTop)<K&&(null==ka.sourceState||!ka.isSource(ka.sourceState.control))&&
+((mxEvent.isLeftMouseButton(ea)||mxEvent.isMiddleMouseButton(ea))&&!mxEvent.isPopupTrigger(ea)||mxEvent.isTouchEvent(ea))&&(null!=this.currentLink?(ta=X.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&ta||null==z||z(ea,this.currentLink),mxEvent.isConsumed(ea)||(ea=null!=this.currentTarget?this.currentTarget:mxEvent.isMiddleMouseButton(ea)?"_blank":ta?X.linkTarget:"_top",X.openLink(this.currentLink,ea),ka.consume())):null!=A&&!ka.isConsumed()&&Math.abs(this.scrollLeft-X.container.scrollLeft)<
+K&&Math.abs(this.scrollTop-X.container.scrollTop)<K&&Math.abs(this.startX-ka.getGraphX())<K&&Math.abs(this.startY-ka.getGraphY())<K&&A(ka.getEvent()));this.clear()},activate:function(ea){this.currentLink=X.getAbsoluteUrl(X.getLinkForCell(ea.cell));null!=this.currentLink&&(this.currentTarget=X.getLinkTargetForCell(ea.cell),X.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(ea))},clear:function(){null!=X.container&&(X.container.style.cursor=H);this.currentLink=this.currentState=
+this.currentTarget=null;null!=this.highlight&&this.highlight.hide();null!=X.tooltipHandler&&X.tooltipHandler.hide()}};X.click=function(ea){};X.addMouseListener(ja);mxEvent.addListener(document,"mouseleave",function(ea){ja.clear()})};Graph.prototype.duplicateCells=function(t,z){t=null!=t?t:this.getSelectionCells();z=null!=z?z:!0;for(var A=0;A<t.length;A++)this.isTableCell(t[A])&&(t[A]=this.model.getParent(t[A]));t=this.model.getTopmostCells(t);var E=this.getModel(),H=this.gridSize,K=[];E.beginUpdate();
+try{var X={},ja=this.createCellLookup(t),ea=this.cloneCells(t,!1,X,!0);for(A=0;A<t.length;A++){var ka=E.getParent(t[A]);if(null!=ka){var ta=this.moveCells([ea[A]],H,H,!1)[0];K.push(ta);if(z)E.add(ka,ea[A]);else{var Aa=ka.getIndex(t[A]);E.add(ka,ea[A],Aa+1)}if(this.isTable(ka)){var Ea=this.getCellGeometry(ea[A]),Ma=this.getCellGeometry(ka);null!=Ea&&null!=Ma&&(Ma=Ma.clone(),Ma.height+=Ea.height,E.setGeometry(ka,Ma))}}else K.push(ea[A])}this.updateCustomLinks(this.createCellMapping(X,ja),ea,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,
+"cells",ea))}finally{E.endUpdate()}return K};Graph.prototype.insertImage=function(t,z,A){if(null!=t&&null!=this.cellEditor.textarea){for(var E=this.cellEditor.textarea.getElementsByTagName("img"),H=[],K=0;K<E.length;K++)H.push(E[K]);document.execCommand("insertimage",!1,t);t=this.cellEditor.textarea.getElementsByTagName("img");if(t.length==H.length+1)for(K=t.length-1;0<=K;K--)if(0==K||t[K]!=H[K-1]){t[K].setAttribute("width",z);t[K].setAttribute("height",A);break}}};Graph.prototype.insertLink=function(t){if(null!=
+this.cellEditor.textarea)if(0==t.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var z=this.cellEditor.textarea.getElementsByTagName("a"),A=[],E=0;E<z.length;E++)A.push(z[E]);document.execCommand("createlink",!1,mxUtils.trim(t));z=this.cellEditor.textarea.getElementsByTagName("a");if(z.length==A.length+1)for(E=z.length-1;0<=E;E--)if(z[E]!=A[E-1]){for(z=z[E].getElementsByTagName("a");0<z.length;){for(A=z[0].parentNode;null!=z[0].firstChild;)A.insertBefore(z[0].firstChild,z[0]);
+A.removeChild(z[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(t))};Graph.prototype.isCellResizable=function(t){var z=mxGraph.prototype.isCellResizable.apply(this,arguments),A=this.getCurrentCellStyle(t);return!this.isTableCell(t)&&!this.isTableRow(t)&&(z||"0"!=mxUtils.getValue(A,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==A[mxConstants.STYLE_WHITE_SPACE])};Graph.prototype.distributeCells=function(t,z){null==z&&(z=this.getSelectionCells());if(null!=z&&1<z.length){for(var A=[],E=null,
+H=null,K=0;K<z.length;K++)if(this.getModel().isVertex(z[K])){var X=this.view.getState(z[K]);if(null!=X){var ja=t?X.getCenterX():X.getCenterY();E=null!=E?Math.max(E,ja):ja;H=null!=H?Math.min(H,ja):ja;A.push(X)}}if(2<A.length){A.sort(function(Aa,Ea){return t?Aa.x-Ea.x:Aa.y-Ea.y});X=this.view.translate;ja=this.view.scale;H=H/ja-(t?X.x:X.y);E=E/ja-(t?X.x:X.y);this.getModel().beginUpdate();try{var ea=(E-H)/(A.length-1);E=H;for(K=1;K<A.length-1;K++){var ka=this.view.getState(this.model.getParent(A[K].cell)),
+ta=this.getCellGeometry(A[K].cell);E+=ea;null!=ta&&null!=ka&&(ta=ta.clone(),t?ta.x=Math.round(E-ta.width/2)-ka.origin.x:ta.y=Math.round(E-ta.height/2)-ka.origin.y,this.getModel().setGeometry(A[K].cell,ta))}}finally{this.getModel().endUpdate()}}}return z};Graph.prototype.isCloneEvent=function(t){return mxClient.IS_MAC&&mxEvent.isMetaDown(t)||mxEvent.isControlDown(t)};Graph.prototype.createSvgImageExport=function(){var t=new mxImageExport;t.getLinkForCellState=mxUtils.bind(this,function(z,A){return this.getLinkForCell(z.cell)});
+return t};Graph.prototype.parseBackgroundImage=function(t){var z=null;null!=t&&0<t.length&&(t=JSON.parse(t),z=new mxImage(t.src,t.width,t.height));return z};Graph.prototype.getBackgroundImageObject=function(t){return t};Graph.prototype.getSvg=function(t,z,A,E,H,K,X,ja,ea,ka,ta,Aa,Ea,Ma){var La=null;if(null!=Ma)for(La=new mxDictionary,ta=0;ta<Ma.length;ta++)La.put(Ma[ta],!0);if(Ma=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{z=null!=z?z:1;A=null!=A?
+A:0;H=null!=H?H:!0;K=null!=K?K:!0;X=null!=X?X:!0;ka=null!=ka?ka:!1;var Ia="page"==Ea?this.view.getBackgroundPageBounds():K&&null==La||E||"diagram"==Ea?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),Fa=this.view.scale;"diagram"==Ea&&null!=this.backgroundImage&&(Ia=mxRectangle.fromRectangle(Ia),Ia.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*Fa,(this.view.translate.y+this.backgroundImage.y)*Fa,this.backgroundImage.width*Fa,this.backgroundImage.height*Fa)));
+if(null==Ia)throw Error(mxResources.get("drawingEmpty"));E=z/Fa;Ea=H?-.5:0;var Ga=Graph.createSvgNode(Ea,Ea,Math.max(1,Math.ceil(Ia.width*E)+2*A)+(ka&&0==A?5:0),Math.max(1,Math.ceil(Ia.height*E)+2*A)+(ka&&0==A?5:0),t),Oa=Ga.ownerDocument,Pa=null!=Oa.createElementNS?Oa.createElementNS(mxConstants.NS_SVG,"g"):Oa.createElement("g");Ga.appendChild(Pa);var Na=this.createSvgCanvas(Pa);Na.foOffset=H?-.5:0;Na.textOffset=H?-.5:0;Na.imageOffset=H?-.5:0;Na.translate(Math.floor(A/z-Ia.x/Fa),Math.floor(A/z-Ia.y/
+Fa));var Sa=document.createElement("div"),eb=Na.getAlternateText;Na.getAlternateText=function(cb,mb,Za,ib,gb,Wa,qb,tb,nb,fb,Ra,rb,xb){if(null!=Wa&&0<this.state.fontSize)try{mxUtils.isNode(Wa)?Wa=Wa.innerText:(Sa.innerHTML=Wa,Wa=mxUtils.extractTextWithWhitespace(Sa.childNodes));for(var kb=Math.ceil(2*ib/this.state.fontSize),hb=[],ob=0,lb=0;(0==kb||ob<kb)&&lb<Wa.length;){var sb=Wa.charCodeAt(lb);if(10==sb||13==sb){if(0<ob)break}else hb.push(Wa.charAt(lb)),255>sb&&ob++;lb++}hb.length<Wa.length&&1<Wa.length-
+hb.length&&(Wa=mxUtils.trim(hb.join(""))+"...");return Wa}catch(c){return eb.apply(this,arguments)}else return eb.apply(this,arguments)};var ab=this.backgroundImage;if(null!=ab){t=Fa/z;var pb=this.view.translate;Ea=new mxRectangle((ab.x+pb.x)*t,(ab.y+pb.y)*t,ab.width*t,ab.height*t);mxUtils.intersects(Ia,Ea)&&Na.image(ab.x+pb.x,ab.y+pb.y,ab.width,ab.height,ab.src,!0)}Na.scale(E);Na.textEnabled=X;ja=null!=ja?ja:this.createSvgImageExport();var ub=ja.drawCellState,vb=ja.getLinkForCellState;ja.getLinkForCellState=
+function(cb,mb){var Za=vb.apply(this,arguments);return null==Za||cb.view.graph.isCustomLink(Za)?null:Za};ja.getLinkTargetForCellState=function(cb,mb){return cb.view.graph.getLinkTargetForCell(cb.cell)};ja.drawCellState=function(cb,mb){for(var Za=cb.view.graph,ib=null!=La?La.get(cb.cell):Za.isCellSelected(cb.cell),gb=Za.model.getParent(cb.cell);!(K&&null==La||ib)&&null!=gb;)ib=null!=La?La.get(gb):Za.isCellSelected(gb),gb=Za.model.getParent(gb);(K&&null==La||ib)&&ub.apply(this,arguments)};ja.drawState(this.getView().getState(this.model.root),
+Na);this.updateSvgLinks(Ga,ea,!0);this.addForeignObjectWarning(Na,Ga);return Ga}finally{Ma&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(t,z){if("0"!=urlParams["svg-warning"]&&0<z.getElementsByTagName("foreignObject").length){var A=t.createElement("switch"),E=t.createElement("g");E.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var H=t.createElement("a");H.setAttribute("transform","translate(0,-5)");
+null==H.setAttributeNS||z.ownerDocument!=document&&null==document.documentMode?(H.setAttribute("xlink:href",Graph.foreignObjectWarningLink),H.setAttribute("target","_blank")):(H.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",Graph.foreignObjectWarningLink),H.setAttributeNS(mxConstants.NS_XLINK,"target","_blank"));t=t.createElement("text");t.setAttribute("text-anchor","middle");t.setAttribute("font-size","10px");t.setAttribute("x","50%");t.setAttribute("y","100%");mxUtils.write(t,Graph.foreignObjectWarningText);
+A.appendChild(E);H.appendChild(t);A.appendChild(H);z.appendChild(A)}};Graph.prototype.updateSvgLinks=function(t,z,A){t=t.getElementsByTagName("a");for(var E=0;E<t.length;E++)if(null==t[E].getAttribute("target")){var H=t[E].getAttribute("href");null==H&&(H=t[E].getAttribute("xlink:href"));null!=H&&(null!=z&&/^https?:\/\//.test(H)?t[E].setAttribute("target",z):A&&this.isCustomLink(H)&&t[E].setAttribute("href","javascript:void(0);"))}};Graph.prototype.createSvgCanvas=function(t){t=new mxSvgCanvas2D(t);
t.minStrokeWidth=this.cellRenderer.minSvgStrokeWidth;t.pointerEvents=!0;return t};Graph.prototype.getSelectedElement=function(){var t=null;if(window.getSelection){var z=window.getSelection();z.getRangeAt&&z.rangeCount&&(t=z.getRangeAt(0).commonAncestorContainer)}else document.selection&&(t=document.selection.createRange().parentElement());return t};Graph.prototype.getSelectedEditingElement=function(){for(var t=this.getSelectedElement();null!=t&&t.nodeType!=mxConstants.NODETYPE_ELEMENT;)t=t.parentNode;
-null!=t&&t==this.cellEditor.textarea&&1==this.cellEditor.textarea.children.length&&this.cellEditor.textarea.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&(t=this.cellEditor.textarea.firstChild);return t};Graph.prototype.getParentByName=function(t,z,B){for(;null!=t&&t.nodeName!=z;){if(t==B)return null;t=t.parentNode}return t};Graph.prototype.getParentByNames=function(t,z,B){for(;null!=t&&!(0<=mxUtils.indexOf(z,t.nodeName));){if(t==B)return null;t=t.parentNode}return t};Graph.prototype.selectNode=
-function(t){var z=null;if(window.getSelection){if(z=window.getSelection(),z.getRangeAt&&z.rangeCount){var B=document.createRange();B.selectNode(t);z.removeAllRanges();z.addRange(B)}}else(z=document.selection)&&"Control"!=z.type&&(t=z.createRange(),t.collapse(!0),B=z.createRange(),B.setEndPoint("StartToStart",t),B.select())};Graph.prototype.flipEdgePoints=function(t,z,B){var E=this.getCellGeometry(t);if(null!=E){E=E.clone();if(null!=E.points)for(var G=0;G<E.points.length;G++)z?E.points[G].x=B+(B-E.points[G].x):
-E.points[G].y=B+(B-E.points[G].y);G=function(M){null!=M&&(z?M.x=B+(B-M.x):M.y=B+(B-M.y))};G(E.getTerminalPoint(!0));G(E.getTerminalPoint(!1));this.model.setGeometry(t,E)}};Graph.prototype.flipChildren=function(t,z,B){this.model.beginUpdate();try{for(var E=this.model.getChildCount(t),G=0;G<E;G++){var M=this.model.getChildAt(t,G);if(this.model.isEdge(M))this.flipEdgePoints(M,z,B);else{var X=this.getCellGeometry(M);null!=X&&(X=X.clone(),z?X.x=B+(B-X.x-X.width):X.y=B+(B-X.y-X.height),this.model.setGeometry(M,
-X))}}}finally{this.model.endUpdate()}};Graph.prototype.flipCells=function(t,z){this.model.beginUpdate();try{t=this.model.getTopmostCells(t);for(var B=[],E=0;E<t.length;E++)if(this.model.isEdge(t[E])){var G=this.view.getState(t[E]);null!=G&&this.flipEdgePoints(t[E],z,(z?G.getCenterX():G.getCenterY())/this.view.scale-(z?G.origin.x:G.origin.y)-(z?this.view.translate.x:this.view.translate.y))}else{var M=this.getCellGeometry(t[E]);null!=M&&this.flipChildren(t[E],z,z?M.getCenterX()-M.x:M.getCenterY()-M.y);
-B.push(t[E])}this.toggleCellStyles(z?mxConstants.STYLE_FLIPH:mxConstants.STYLE_FLIPV,!1,B)}finally{this.model.endUpdate()}};Graph.prototype.deleteCells=function(t,z){var B=null;if(null!=t&&0<t.length){this.model.beginUpdate();try{for(var E=0;E<t.length;E++){var G=this.model.getParent(t[E]);if(this.isTable(G)){var M=this.getCellGeometry(t[E]),X=this.getCellGeometry(G);null!=M&&null!=X&&(X=X.clone(),X.height-=M.height,this.model.setGeometry(G,X))}}var ia=this.selectParentAfterDelete?this.model.getParents(t):
-null;this.removeCells(t,z)}finally{this.model.endUpdate()}if(null!=ia)for(B=[],E=0;E<ia.length;E++)this.model.contains(ia[E])&&(this.model.isVertex(ia[E])||this.model.isEdge(ia[E]))&&B.push(ia[E])}return B};Graph.prototype.insertTableColumn=function(t,z){var B=this.getModel();B.beginUpdate();try{var E=t,G=0;if(this.isTableCell(t)){var M=B.getParent(t);E=B.getParent(M);G=mxUtils.indexOf(B.getChildCells(M,!0),t)}else this.isTableRow(t)?E=B.getParent(t):t=B.getChildCells(E,!0)[0],z||(G=B.getChildCells(t,
-!0).length-1);var X=B.getChildCells(E,!0),ia=Graph.minTableColumnWidth;for(t=0;t<X.length;t++){var da=B.getChildCells(X[t],!0)[G],ja=B.cloneCell(da,!1),sa=this.getCellGeometry(ja);ja.value=null;ja.style=mxUtils.setStyle(mxUtils.setStyle(ja.style,"rowspan",null),"colspan",null);if(null!=sa){null!=sa.alternateBounds&&(sa.width=sa.alternateBounds.width,sa.height=sa.alternateBounds.height,sa.alternateBounds=null);ia=sa.width;var Ba=this.getCellGeometry(X[t]);null!=Ba&&(sa.height=Ba.height)}B.add(X[t],
-ja,G+(z?0:1))}var Da=this.getCellGeometry(E);null!=Da&&(Da=Da.clone(),Da.width+=ia,B.setGeometry(E,Da))}finally{B.endUpdate()}};Graph.prototype.deleteLane=function(t){var z=this.getModel();z.beginUpdate();try{var B=null;B="stackLayout"==this.getCurrentCellStyle(t).childLayout?t:z.getParent(t);var E=z.getChildCells(B,!0);0==E.length?z.remove(B):(B==t&&(t=E[E.length-1]),z.remove(t))}finally{z.endUpdate()}};Graph.prototype.insertLane=function(t,z){var B=this.getModel();B.beginUpdate();try{var E=null;
-if("stackLayout"==this.getCurrentCellStyle(t).childLayout){E=t;var G=B.getChildCells(E,!0);t=G[z?0:G.length-1]}else E=B.getParent(t);var M=E.getIndex(t);t=B.cloneCell(t,!1);t.value=null;B.add(E,t,M+(z?0:1))}finally{B.endUpdate()}};Graph.prototype.insertTableRow=function(t,z){var B=this.getModel();B.beginUpdate();try{var E=t,G=t;if(this.isTableCell(t))G=B.getParent(t),E=B.getParent(G);else if(this.isTableRow(t))E=B.getParent(t);else{var M=B.getChildCells(E,!0);G=M[z?0:M.length-1]}var X=B.getChildCells(G,
-!0),ia=E.getIndex(G);G=B.cloneCell(G,!1);G.value=null;var da=this.getCellGeometry(G);if(null!=da){for(M=0;M<X.length;M++){t=B.cloneCell(X[M],!1);t.value=null;t.style=mxUtils.setStyle(mxUtils.setStyle(t.style,"rowspan",null),"colspan",null);var ja=this.getCellGeometry(t);null!=ja&&(null!=ja.alternateBounds&&(ja.width=ja.alternateBounds.width,ja.height=ja.alternateBounds.height,ja.alternateBounds=null),ja.height=da.height);G.insert(t)}B.add(E,G,ia+(z?0:1));var sa=this.getCellGeometry(E);null!=sa&&(sa=
-sa.clone(),sa.height+=da.height,B.setGeometry(E,sa))}}finally{B.endUpdate()}};Graph.prototype.deleteTableColumn=function(t){var z=this.getModel();z.beginUpdate();try{var B=t,E=t;this.isTableCell(t)&&(E=z.getParent(t));this.isTableRow(E)&&(B=z.getParent(E));var G=z.getChildCells(B,!0);if(0==G.length)z.remove(B);else{this.isTableRow(E)||(E=G[0]);var M=z.getChildCells(E,!0);if(1>=M.length)z.remove(B);else{var X=M.length-1;this.isTableCell(t)&&(X=mxUtils.indexOf(M,t));for(E=t=0;E<G.length;E++){var ia=
-z.getChildCells(G[E],!0)[X];z.remove(ia);var da=this.getCellGeometry(ia);null!=da&&(t=Math.max(t,da.width))}var ja=this.getCellGeometry(B);null!=ja&&(ja=ja.clone(),ja.width-=t,z.setGeometry(B,ja))}}}finally{z.endUpdate()}};Graph.prototype.deleteTableRow=function(t){var z=this.getModel();z.beginUpdate();try{var B=t,E=t;this.isTableCell(t)&&(t=E=z.getParent(t));this.isTableRow(t)&&(B=z.getParent(E));var G=z.getChildCells(B,!0);if(1>=G.length)z.remove(B);else{this.isTableRow(E)||(E=G[G.length-1]);z.remove(E);
-t=0;var M=this.getCellGeometry(E);null!=M&&(t=M.height);var X=this.getCellGeometry(B);null!=X&&(X=X.clone(),X.height-=t,z.setGeometry(B,X))}}finally{z.endUpdate()}};Graph.prototype.insertRow=function(t,z){for(var B=t.tBodies[0],E=B.rows[0].cells,G=t=0;G<E.length;G++){var M=E[G].getAttribute("colspan");t+=null!=M?parseInt(M):1}z=B.insertRow(z);for(G=0;G<t;G++)mxUtils.br(z.insertCell(-1));return z.cells[0]};Graph.prototype.deleteRow=function(t,z){t.tBodies[0].deleteRow(z)};Graph.prototype.insertColumn=
-function(t,z){var B=t.tHead;if(null!=B)for(var E=0;E<B.rows.length;E++){var G=document.createElement("th");B.rows[E].appendChild(G);mxUtils.br(G)}t=t.tBodies[0];for(B=0;B<t.rows.length;B++)E=t.rows[B].insertCell(z),mxUtils.br(E);return t.rows[0].cells[0<=z?z:t.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(t,z){if(0<=z){t=t.tBodies[0].rows;for(var B=0;B<t.length;B++)t[B].cells.length>z&&t[B].deleteCell(z)}};Graph.prototype.pasteHtmlAtCaret=function(t){if(window.getSelection){var z=
-window.getSelection();if(z.getRangeAt&&z.rangeCount){z=z.getRangeAt(0);z.deleteContents();var B=document.createElement("div");B.innerHTML=t;t=document.createDocumentFragment();for(var E;E=B.firstChild;)lastNode=t.appendChild(E);z.insertNode(t)}}else(z=document.selection)&&"Control"!=z.type&&z.createRange().pasteHTML(t)};Graph.prototype.createLinkForHint=function(t,z){function B(G,M){G.length>M&&(G=G.substring(0,Math.round(M/2))+"..."+G.substring(G.length-Math.round(M/4)));return G}t=null!=t?t:"javascript:void(0);";
-if(null==z||0==z.length)z=this.isCustomLink(t)?this.getLinkTitle(t):t;var E=document.createElement("a");E.setAttribute("rel",this.linkRelation);E.setAttribute("href",this.getAbsoluteUrl(t));E.setAttribute("title",B(this.isCustomLink(t)?this.getLinkTitle(t):t,80));null!=this.linkTarget&&E.setAttribute("target",this.linkTarget);mxUtils.write(E,B(z,40));this.isCustomLink(t)&&mxEvent.addListener(E,"click",mxUtils.bind(this,function(G){this.customLinkClicked(t);mxEvent.consume(G)}));return E};Graph.prototype.initTouch=
-function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(M,X){this.popupMenuHandler.hideMenu()});var t=this.updateMouseEvent;this.updateMouseEvent=function(M){M=t.apply(this,arguments);if(mxEvent.isTouchEvent(M.getEvent())&&null==M.getState()){var X=this.getCellAt(M.graphX,M.graphY);null!=X&&this.isSwimlane(X)&&this.hitsSwimlaneContent(X,M.graphX,M.graphY)||(M.state=this.view.getState(X),null!=M.state&&
-null!=M.state.shape&&(this.container.style.cursor=M.state.shape.node.style.cursor))}null==M.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return M};var z=!1,B=!1,E=!1,G=this.fireMouseEvent;this.fireMouseEvent=function(M,X,ia){M==mxEvent.MOUSE_DOWN&&(X=this.updateMouseEvent(X),z=this.isCellSelected(X.getCell()),B=this.isSelectionEmpty(),E=this.popupMenuHandler.isMenuShowing());G.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(M,X){var ia=mxEvent.isMouseEvent(X.getEvent());
-this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==X.getState()||!X.isSource(X.getState().control))&&(this.popupMenuHandler.popupTrigger||!E&&!ia&&(B&&null==X.getCell()&&this.isSelectionEmpty()||z&&this.isCellSelected(X.getCell())));ia=!z||ia?null:mxUtils.bind(this,function(da){window.setTimeout(mxUtils.bind(this,function(){if(!this.isEditing()){var ja=mxUtils.getScrollOrigin();this.popupMenuHandler.popup(X.getX()+ja.x+1,X.getY()+ja.y+1,da,X.getEvent())}}),500)});mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,
-[M,X,ia])})};mxCellEditor.prototype.isContentEditing=function(){var t=this.graph.view.getState(this.editingCell);return null!=t&&1==t.style.html};mxCellEditor.prototype.isTableSelected=function(){return null!=this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",this.textarea)};mxCellEditor.prototype.isTextSelected=function(){var t="";window.getSelection?t=window.getSelection():document.getSelection?t=document.getSelection():document.selection&&(t=document.selection.createRange().text);
-return""!=t};mxCellEditor.prototype.insertTab=function(t){var z=this.textarea.ownerDocument.defaultView.getSelection(),B=z.getRangeAt(0),E="\t";if(null!=t)for(E="";0<t;)E+=" ",t--;t=document.createElement("span");t.style.whiteSpace="pre";t.appendChild(document.createTextNode(E));B.insertNode(t);B.setStartAfter(t);B.setEndAfter(t);z.removeAllRanges();z.addRange(B)};mxCellEditor.prototype.alignText=function(t,z){var B=null!=z&&mxEvent.isShiftDown(z);if(B||null!=window.getSelection&&null!=window.getSelection().containsNode){var E=
-!0;this.graph.processElements(this.textarea,function(G){B||window.getSelection().containsNode(G,!0)?(G.removeAttribute("align"),G.style.textAlign=null):E=!1});E&&this.graph.cellEditor.setAlign(t)}document.execCommand("justify"+t.toLowerCase(),!1,null)};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var t=window.getSelection();if(t.getRangeAt&&t.rangeCount){for(var z=[],B=0,E=t.rangeCount;B<E;++B)z.push(t.getRangeAt(B));return z}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();
-return null};mxCellEditor.prototype.restoreSelection=function(t){try{if(t)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var z=0,B=t.length;z<B;++z)sel.addRange(t[z])}else document.selection&&t.select&&t.select()}catch(E){}};var F=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(t){null!=t.text&&(t.text.replaceLinefeeds="0"!=mxUtils.getValue(t.style,"nl2Br","1"));F.apply(this,arguments)};var K=mxConstraintHandler.prototype.update;
-mxConstraintHandler.prototype.update=function(t,z){this.isKeepFocusEvent(t)||!mxEvent.isAltDown(t.getEvent())?K.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(t){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var D=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(t,z){t=this.graph.getStartEditingCell(t,z);D.apply(this,arguments);var B=this.graph.view.getState(t);
-this.textarea.className=null!=B&&1==B.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(t);B=this.graph.getModel().getParent(t);var E=this.graph.getCellGeometry(t);if(this.graph.getModel().isEdge(B)&&null!=E&&E.relative||this.graph.getModel().isEdge(t))this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var O=mxCellEditor.prototype.installListeners;
-mxCellEditor.prototype.installListeners=function(t){function z(G,M){M.originalNode=G;G=G.firstChild;for(var X=M.firstChild;null!=G&&null!=X;)z(G,X),G=G.nextSibling,X=X.nextSibling;return M}function B(G,M){if(null!=G)if(M.originalNode!=G)E(G);else for(G=G.firstChild,M=M.firstChild;null!=G;){var X=G.nextSibling;null==M?E(G):(B(G,M),M=M.nextSibling);G=X}}function E(G){for(var M=G.firstChild;null!=M;){var X=M.nextSibling;E(M);M=X}1==G.nodeType&&("BR"===G.nodeName||null!=G.firstChild)||3==G.nodeType&&
-0!=mxUtils.trim(mxUtils.getTextContent(G)).length?(3==G.nodeType&&mxUtils.setTextContent(G,mxUtils.getTextContent(G).replace(/\n|\r/g,"")),1==G.nodeType&&(G.removeAttribute("style"),G.removeAttribute("class"),G.removeAttribute("width"),G.removeAttribute("cellpadding"),G.removeAttribute("cellspacing"),G.removeAttribute("border"))):G.parentNode.removeChild(G)}O.apply(this,arguments);7!==document.documentMode&&8!==document.documentMode&&mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(G){var M=
-z(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]>")?B(this.textarea,M):Graph.removePasteFormatting(this.textarea))}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var t=this.graph.view.getState(this.editingCell);if(null!=t){var z=null!=t&&"0"!=mxUtils.getValue(t.style,"nl2Br","1"),B=this.saveSelection();if(this.codeViewMode){ia=
-mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<ia.length&&"\n"==ia.charAt(ia.length-1)&&(ia=ia.substring(0,ia.length-1));ia=this.graph.sanitizeHtml(z?ia.replace(/\n/g,"<br/>"):ia,!0);this.textarea.className="mxCellEditor geContentEditable";da=mxUtils.getValue(t.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE);z=mxUtils.getValue(t.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY);var E=mxUtils.getValue(t.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),
-G=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,M=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,X=[];(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&X.push("underline");(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&X.push("line-through");this.textarea.style.lineHeight=
-mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(da*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(da)+"px";this.textarea.style.textDecoration=X.join(" ");this.textarea.style.fontWeight=G?"bold":"normal";this.textarea.style.fontStyle=M?"italic":"";this.textarea.style.fontFamily=z;this.textarea.style.textAlign=E;this.textarea.style.padding="0px";this.textarea.innerHTML!=ia&&(this.textarea.innerHTML=ia,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.innerText="");var ia=mxUtils.htmlEntities(this.textarea.innerHTML);8!=document.documentMode&&(ia=mxUtils.replaceTrailingNewlines(ia,"<div><br></div>"));ia=this.graph.sanitizeHtml(z?ia.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):ia,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";
-var da=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(da*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(da)+"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!=
-ia&&(this.textarea.innerHTML=ia);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=B;this.resize()}};var Q=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(t,z){if(null!=this.textarea)if(t=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=t){var B=t.view.scale;this.bounds=mxRectangle.fromRectangle(t);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=
-160*B;this.bounds.height=60*B;var E=null!=t.text?t.text.margin:null;null==E&&(E=mxUtils.getAlignmentAsPoint(mxUtils.getValue(t.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(t.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=E.x*this.bounds.width;this.bounds.y+=E.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-4)/B)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/B)+"px";this.textarea.style.overflow=
-"auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/B)+(this.textarea.offsetHeight-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*B);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/B)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*B);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("+B+","+B+")")}else this.textarea.style.height="",this.textarea.style.overflow="",Q.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(t,z){if("0"==mxUtils.getValue(t.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var B=this.graph.getEditingValue(t.cell,z);"1"==
-mxUtils.getValue(t.style,"nl2Br","1")&&(B=B.replace(/\n/g,"<br/>"));return B=this.graph.sanitizeHtml(B,!0)};mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(t){if("0"==mxUtils.getValue(t.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var z=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return z="1"==mxUtils.getValue(t.style,"nl2Br","1")?z.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):z.replace(/\r\n/g,
+null!=t&&t==this.cellEditor.textarea&&1==this.cellEditor.textarea.children.length&&this.cellEditor.textarea.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&(t=this.cellEditor.textarea.firstChild);return t};Graph.prototype.getParentByName=function(t,z,A){for(;null!=t&&t.nodeName!=z;){if(t==A)return null;t=t.parentNode}return t};Graph.prototype.getParentByNames=function(t,z,A){for(;null!=t&&!(0<=mxUtils.indexOf(z,t.nodeName));){if(t==A)return null;t=t.parentNode}return t};Graph.prototype.selectNode=
+function(t){var z=null;if(window.getSelection){if(z=window.getSelection(),z.getRangeAt&&z.rangeCount){var A=document.createRange();A.selectNode(t);z.removeAllRanges();z.addRange(A)}}else(z=document.selection)&&"Control"!=z.type&&(t=z.createRange(),t.collapse(!0),A=z.createRange(),A.setEndPoint("StartToStart",t),A.select())};Graph.prototype.flipEdgePoints=function(t,z,A){var E=this.getCellGeometry(t);if(null!=E){E=E.clone();if(null!=E.points)for(var H=0;H<E.points.length;H++)z?E.points[H].x=A+(A-E.points[H].x):
+E.points[H].y=A+(A-E.points[H].y);H=function(K){null!=K&&(z?K.x=A+(A-K.x):K.y=A+(A-K.y))};H(E.getTerminalPoint(!0));H(E.getTerminalPoint(!1));this.model.setGeometry(t,E)}};Graph.prototype.flipChildren=function(t,z,A){this.model.beginUpdate();try{for(var E=this.model.getChildCount(t),H=0;H<E;H++){var K=this.model.getChildAt(t,H);if(this.model.isEdge(K))this.flipEdgePoints(K,z,A);else{var X=this.getCellGeometry(K);null!=X&&(X=X.clone(),z?X.x=A+(A-X.x-X.width):X.y=A+(A-X.y-X.height),this.model.setGeometry(K,
+X))}}}finally{this.model.endUpdate()}};Graph.prototype.flipCells=function(t,z){this.model.beginUpdate();try{t=this.model.getTopmostCells(t);for(var A=[],E=0;E<t.length;E++)if(this.model.isEdge(t[E])){var H=this.view.getState(t[E]);null!=H&&this.flipEdgePoints(t[E],z,(z?H.getCenterX():H.getCenterY())/this.view.scale-(z?H.origin.x:H.origin.y)-(z?this.view.translate.x:this.view.translate.y))}else{var K=this.getCellGeometry(t[E]);null!=K&&this.flipChildren(t[E],z,z?K.getCenterX()-K.x:K.getCenterY()-K.y);
+A.push(t[E])}this.toggleCellStyles(z?mxConstants.STYLE_FLIPH:mxConstants.STYLE_FLIPV,!1,A)}finally{this.model.endUpdate()}};Graph.prototype.deleteCells=function(t,z){var A=null;if(null!=t&&0<t.length){this.model.beginUpdate();try{for(var E=0;E<t.length;E++){var H=this.model.getParent(t[E]);if(this.isTable(H)){var K=this.getCellGeometry(t[E]),X=this.getCellGeometry(H);null!=K&&null!=X&&(X=X.clone(),X.height-=K.height,this.model.setGeometry(H,X))}}var ja=this.selectParentAfterDelete?this.model.getParents(t):
+null;this.removeCells(t,z)}finally{this.model.endUpdate()}if(null!=ja)for(A=[],E=0;E<ja.length;E++)this.model.contains(ja[E])&&(this.model.isVertex(ja[E])||this.model.isEdge(ja[E]))&&A.push(ja[E])}return A};Graph.prototype.insertTableColumn=function(t,z){var A=this.getModel();A.beginUpdate();try{var E=t,H=0;if(this.isTableCell(t)){var K=A.getParent(t);E=A.getParent(K);H=mxUtils.indexOf(A.getChildCells(K,!0),t)}else this.isTableRow(t)?E=A.getParent(t):t=A.getChildCells(E,!0)[0],z||(H=A.getChildCells(t,
+!0).length-1);var X=A.getChildCells(E,!0),ja=Graph.minTableColumnWidth;for(t=0;t<X.length;t++){var ea=A.getChildCells(X[t],!0)[H],ka=A.cloneCell(ea,!1),ta=this.getCellGeometry(ka);ka.value=null;ka.style=mxUtils.setStyle(mxUtils.setStyle(ka.style,"rowspan",null),"colspan",null);if(null!=ta){null!=ta.alternateBounds&&(ta.width=ta.alternateBounds.width,ta.height=ta.alternateBounds.height,ta.alternateBounds=null);ja=ta.width;var Aa=this.getCellGeometry(X[t]);null!=Aa&&(ta.height=Aa.height)}A.add(X[t],
+ka,H+(z?0:1))}var Ea=this.getCellGeometry(E);null!=Ea&&(Ea=Ea.clone(),Ea.width+=ja,A.setGeometry(E,Ea))}finally{A.endUpdate()}};Graph.prototype.deleteLane=function(t){var z=this.getModel();z.beginUpdate();try{var A=null;A="stackLayout"==this.getCurrentCellStyle(t).childLayout?t:z.getParent(t);var E=z.getChildCells(A,!0);0==E.length?z.remove(A):(A==t&&(t=E[E.length-1]),z.remove(t))}finally{z.endUpdate()}};Graph.prototype.insertLane=function(t,z){var A=this.getModel();A.beginUpdate();try{var E=null;
+if("stackLayout"==this.getCurrentCellStyle(t).childLayout){E=t;var H=A.getChildCells(E,!0);t=H[z?0:H.length-1]}else E=A.getParent(t);var K=E.getIndex(t);t=A.cloneCell(t,!1);t.value=null;A.add(E,t,K+(z?0:1))}finally{A.endUpdate()}};Graph.prototype.insertTableRow=function(t,z){var A=this.getModel();A.beginUpdate();try{var E=t,H=t;if(this.isTableCell(t))H=A.getParent(t),E=A.getParent(H);else if(this.isTableRow(t))E=A.getParent(t);else{var K=A.getChildCells(E,!0);H=K[z?0:K.length-1]}var X=A.getChildCells(H,
+!0),ja=E.getIndex(H);H=A.cloneCell(H,!1);H.value=null;var ea=this.getCellGeometry(H);if(null!=ea){for(K=0;K<X.length;K++){t=A.cloneCell(X[K],!1);t.value=null;t.style=mxUtils.setStyle(mxUtils.setStyle(t.style,"rowspan",null),"colspan",null);var ka=this.getCellGeometry(t);null!=ka&&(null!=ka.alternateBounds&&(ka.width=ka.alternateBounds.width,ka.height=ka.alternateBounds.height,ka.alternateBounds=null),ka.height=ea.height);H.insert(t)}A.add(E,H,ja+(z?0:1));var ta=this.getCellGeometry(E);null!=ta&&(ta=
+ta.clone(),ta.height+=ea.height,A.setGeometry(E,ta))}}finally{A.endUpdate()}};Graph.prototype.deleteTableColumn=function(t){var z=this.getModel();z.beginUpdate();try{var A=t,E=t;this.isTableCell(t)&&(E=z.getParent(t));this.isTableRow(E)&&(A=z.getParent(E));var H=z.getChildCells(A,!0);if(0==H.length)z.remove(A);else{this.isTableRow(E)||(E=H[0]);var K=z.getChildCells(E,!0);if(1>=K.length)z.remove(A);else{var X=K.length-1;this.isTableCell(t)&&(X=mxUtils.indexOf(K,t));for(E=t=0;E<H.length;E++){var ja=
+z.getChildCells(H[E],!0)[X];z.remove(ja);var ea=this.getCellGeometry(ja);null!=ea&&(t=Math.max(t,ea.width))}var ka=this.getCellGeometry(A);null!=ka&&(ka=ka.clone(),ka.width-=t,z.setGeometry(A,ka))}}}finally{z.endUpdate()}};Graph.prototype.deleteTableRow=function(t){var z=this.getModel();z.beginUpdate();try{var A=t,E=t;this.isTableCell(t)&&(t=E=z.getParent(t));this.isTableRow(t)&&(A=z.getParent(E));var H=z.getChildCells(A,!0);if(1>=H.length)z.remove(A);else{this.isTableRow(E)||(E=H[H.length-1]);z.remove(E);
+t=0;var K=this.getCellGeometry(E);null!=K&&(t=K.height);var X=this.getCellGeometry(A);null!=X&&(X=X.clone(),X.height-=t,z.setGeometry(A,X))}}finally{z.endUpdate()}};Graph.prototype.insertRow=function(t,z){for(var A=t.tBodies[0],E=A.rows[0].cells,H=t=0;H<E.length;H++){var K=E[H].getAttribute("colspan");t+=null!=K?parseInt(K):1}z=A.insertRow(z);for(H=0;H<t;H++)mxUtils.br(z.insertCell(-1));return z.cells[0]};Graph.prototype.deleteRow=function(t,z){t.tBodies[0].deleteRow(z)};Graph.prototype.insertColumn=
+function(t,z){var A=t.tHead;if(null!=A)for(var E=0;E<A.rows.length;E++){var H=document.createElement("th");A.rows[E].appendChild(H);mxUtils.br(H)}t=t.tBodies[0];for(A=0;A<t.rows.length;A++)E=t.rows[A].insertCell(z),mxUtils.br(E);return t.rows[0].cells[0<=z?z:t.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(t,z){if(0<=z){t=t.tBodies[0].rows;for(var A=0;A<t.length;A++)t[A].cells.length>z&&t[A].deleteCell(z)}};Graph.prototype.pasteHtmlAtCaret=function(t){if(window.getSelection){var z=
+window.getSelection();if(z.getRangeAt&&z.rangeCount){z=z.getRangeAt(0);z.deleteContents();var A=document.createElement("div");A.innerHTML=t;t=document.createDocumentFragment();for(var E;E=A.firstChild;)lastNode=t.appendChild(E);z.insertNode(t)}}else(z=document.selection)&&"Control"!=z.type&&z.createRange().pasteHTML(t)};Graph.prototype.createLinkForHint=function(t,z){function A(H,K){H.length>K&&(H=H.substring(0,Math.round(K/2))+"..."+H.substring(H.length-Math.round(K/4)));return H}t=null!=t?t:"javascript:void(0);";
+if(null==z||0==z.length)z=this.isCustomLink(t)?this.getLinkTitle(t):t;var E=document.createElement("a");E.setAttribute("rel",this.linkRelation);E.setAttribute("href",this.getAbsoluteUrl(t));E.setAttribute("title",A(this.isCustomLink(t)?this.getLinkTitle(t):t,80));null!=this.linkTarget&&E.setAttribute("target",this.linkTarget);mxUtils.write(E,A(z,40));this.isCustomLink(t)&&mxEvent.addListener(E,"click",mxUtils.bind(this,function(H){this.customLinkClicked(t);mxEvent.consume(H)}));return E};Graph.prototype.initTouch=
+function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,function(K,X){this.popupMenuHandler.hideMenu()});var t=this.updateMouseEvent;this.updateMouseEvent=function(K){K=t.apply(this,arguments);if(mxEvent.isTouchEvent(K.getEvent())&&null==K.getState()){var X=this.getCellAt(K.graphX,K.graphY);null!=X&&this.isSwimlane(X)&&this.hitsSwimlaneContent(X,K.graphX,K.graphY)||(K.state=this.view.getState(X),null!=K.state&&
+null!=K.state.shape&&(this.container.style.cursor=K.state.shape.node.style.cursor))}null==K.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return K};var z=!1,A=!1,E=!1,H=this.fireMouseEvent;this.fireMouseEvent=function(K,X,ja){K==mxEvent.MOUSE_DOWN&&(X=this.updateMouseEvent(X),z=this.isCellSelected(X.getCell()),A=this.isSelectionEmpty(),E=this.popupMenuHandler.isMenuShowing());H.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(K,X){var ja=mxEvent.isMouseEvent(X.getEvent());
+this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==X.getState()||!X.isSource(X.getState().control))&&(this.popupMenuHandler.popupTrigger||!E&&!ja&&(A&&null==X.getCell()&&this.isSelectionEmpty()||z&&this.isCellSelected(X.getCell())));ja=!z||ja?null:mxUtils.bind(this,function(ea){window.setTimeout(mxUtils.bind(this,function(){if(!this.isEditing()){var ka=mxUtils.getScrollOrigin();this.popupMenuHandler.popup(X.getX()+ka.x+1,X.getY()+ka.y+1,ea,X.getEvent())}}),500)});mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,
+[K,X,ja])})};mxCellEditor.prototype.isContentEditing=function(){var t=this.graph.view.getState(this.editingCell);return null!=t&&1==t.style.html};mxCellEditor.prototype.isTableSelected=function(){return null!=this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",this.textarea)};mxCellEditor.prototype.isTextSelected=function(){var t="";window.getSelection?t=window.getSelection():document.getSelection?t=document.getSelection():document.selection&&(t=document.selection.createRange().text);
+return""!=t};mxCellEditor.prototype.insertTab=function(t){var z=this.textarea.ownerDocument.defaultView.getSelection(),A=z.getRangeAt(0),E="\t";if(null!=t)for(E="";0<t;)E+=" ",t--;t=document.createElement("span");t.style.whiteSpace="pre";t.appendChild(document.createTextNode(E));A.insertNode(t);A.setStartAfter(t);A.setEndAfter(t);z.removeAllRanges();z.addRange(A)};mxCellEditor.prototype.alignText=function(t,z){var A=null!=z&&mxEvent.isShiftDown(z);if(A||null!=window.getSelection&&null!=window.getSelection().containsNode){var E=
+!0;this.graph.processElements(this.textarea,function(H){A||window.getSelection().containsNode(H,!0)?(H.removeAttribute("align"),H.style.textAlign=null):E=!1});E&&this.graph.cellEditor.setAlign(t)}document.execCommand("justify"+t.toLowerCase(),!1,null)};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var t=window.getSelection();if(t.getRangeAt&&t.rangeCount){for(var z=[],A=0,E=t.rangeCount;A<E;++A)z.push(t.getRangeAt(A));return z}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();
+return null};mxCellEditor.prototype.restoreSelection=function(t){try{if(t)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var z=0,A=t.length;z<A;++z)sel.addRange(t[z])}else document.selection&&t.select&&t.select()}catch(E){}};var G=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(t){null!=t.text&&(t.text.replaceLinefeeds="0"!=mxUtils.getValue(t.style,"nl2Br","1"));G.apply(this,arguments)};var J=mxConstraintHandler.prototype.update;
+mxConstraintHandler.prototype.update=function(t,z){this.isKeepFocusEvent(t)||!mxEvent.isAltDown(t.getEvent())?J.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(t){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var D=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(t,z){t=this.graph.getStartEditingCell(t,z);D.apply(this,arguments);var A=this.graph.view.getState(t);
+this.textarea.className=null!=A&&1==A.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(t);A=this.graph.getModel().getParent(t);var E=this.graph.getCellGeometry(t);if(this.graph.getModel().isEdge(A)&&null!=E&&E.relative||this.graph.getModel().isEdge(t))this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var N=mxCellEditor.prototype.installListeners;
+mxCellEditor.prototype.installListeners=function(t){function z(H,K){K.originalNode=H;H=H.firstChild;for(var X=K.firstChild;null!=H&&null!=X;)z(H,X),H=H.nextSibling,X=X.nextSibling;return K}function A(H,K){if(null!=H)if(K.originalNode!=H)E(H);else for(H=H.firstChild,K=K.firstChild;null!=H;){var X=H.nextSibling;null==K?E(H):(A(H,K),K=K.nextSibling);H=X}}function E(H){for(var K=H.firstChild;null!=K;){var X=K.nextSibling;E(K);K=X}1==H.nodeType&&("BR"===H.nodeName||null!=H.firstChild)||3==H.nodeType&&
+0!=mxUtils.trim(mxUtils.getTextContent(H)).length?(3==H.nodeType&&mxUtils.setTextContent(H,mxUtils.getTextContent(H).replace(/\n|\r/g,"")),1==H.nodeType&&(H.removeAttribute("style"),H.removeAttribute("class"),H.removeAttribute("width"),H.removeAttribute("cellpadding"),H.removeAttribute("cellspacing"),H.removeAttribute("border"))):H.parentNode.removeChild(H)}N.apply(this,arguments);7!==document.documentMode&&8!==document.documentMode&&mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(H){var K=
+z(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]>")?A(this.textarea,K):Graph.removePasteFormatting(this.textarea))}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var t=this.graph.view.getState(this.editingCell);if(null!=t){var z=null!=t&&"0"!=mxUtils.getValue(t.style,"nl2Br","1"),A=this.saveSelection();if(this.codeViewMode){ja=
+mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<ja.length&&"\n"==ja.charAt(ja.length-1)&&(ja=ja.substring(0,ja.length-1));ja=this.graph.sanitizeHtml(z?ja.replace(/\n/g,"<br/>"):ja,!0);this.textarea.className="mxCellEditor geContentEditable";ea=mxUtils.getValue(t.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE);z=mxUtils.getValue(t.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY);var E=mxUtils.getValue(t.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),
+H=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,K=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,X=[];(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&X.push("underline");(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&X.push("line-through");this.textarea.style.lineHeight=
+mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(ea*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(ea)+"px";this.textarea.style.textDecoration=X.join(" ");this.textarea.style.fontWeight=H?"bold":"normal";this.textarea.style.fontStyle=K?"italic":"";this.textarea.style.fontFamily=z;this.textarea.style.textAlign=E;this.textarea.style.padding="0px";this.textarea.innerHTML!=ja&&(this.textarea.innerHTML=ja,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.innerText="");var ja=mxUtils.htmlEntities(this.textarea.innerHTML);8!=document.documentMode&&(ja=mxUtils.replaceTrailingNewlines(ja,"<div><br></div>"));ja=this.graph.sanitizeHtml(z?ja.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):ja,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";
+var ea=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(ea*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(ea)+"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!=
+ja&&(this.textarea.innerHTML=ja);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=A;this.resize()}};var Q=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(t,z){if(null!=this.textarea)if(t=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=t){var A=t.view.scale;this.bounds=mxRectangle.fromRectangle(t);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=
+160*A;this.bounds.height=60*A;var E=null!=t.text?t.text.margin:null;null==E&&(E=mxUtils.getAlignmentAsPoint(mxUtils.getValue(t.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(t.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=E.x*this.bounds.width;this.bounds.y+=E.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-4)/A)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/A)+"px";this.textarea.style.overflow=
+"auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/A)+(this.textarea.offsetHeight-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*A);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/A)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*A);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("+A+","+A+")")}else this.textarea.style.height="",this.textarea.style.overflow="",Q.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(t,z){if("0"==mxUtils.getValue(t.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var A=this.graph.getEditingValue(t.cell,z);"1"==
+mxUtils.getValue(t.style,"nl2Br","1")&&(A=A.replace(/\n/g,"<br/>"));return A=this.graph.sanitizeHtml(A,!0)};mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(t){if("0"==mxUtils.getValue(t.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var z=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return z="1"==mxUtils.getValue(t.style,"nl2Br","1")?z.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):z.replace(/\r\n/g,
"").replace(/\n/g,"")};var R=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(t){this.codeViewMode&&this.toggleViewMode();R.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(t){}};var P=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(t,z){this.graph.getModel().beginUpdate();try{P.apply(this,arguments),""==z&&this.graph.isCellDeletable(t.cell)&&0==this.graph.model.getChildCount(t.cell)&&
this.graph.isTransparentState(t)&&this.graph.removeCells([t.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(t){var z=mxUtils.getValue(t.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);null!=z&&z!=mxConstants.NONE||!(null!=t.cell.geometry&&0<t.cell.geometry.width)||0==mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION,0)&&0!=mxUtils.getValue(t.style,mxConstants.STYLE_HORIZONTAL,1)||(z=mxUtils.getValue(t.style,mxConstants.STYLE_FILLCOLOR,
null));z==mxConstants.NONE&&(z=null);return z};mxCellEditor.prototype.getBorderColor=function(t){var z=mxUtils.getValue(t.style,mxConstants.STYLE_LABEL_BORDERCOLOR,null);null!=z&&z!=mxConstants.NONE||!(null!=t.cell.geometry&&0<t.cell.geometry.width)||0==mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION,0)&&0!=mxUtils.getValue(t.style,mxConstants.STYLE_HORIZONTAL,1)||(z=mxUtils.getValue(t.style,mxConstants.STYLE_STROKECOLOR,null));z==mxConstants.NONE&&(z=null);return z};mxCellEditor.prototype.getMinimumSize=
function(t){var z=this.graph.getView().scale;return new mxRectangle(0,0,null==t.text?30:t.text.size*z+20,30)};mxGraphHandlerIsValidDropTarget=mxGraphHandler.prototype.isValidDropTarget;mxGraphHandler.prototype.isValidDropTarget=function(t,z){return mxGraphHandlerIsValidDropTarget.apply(this,arguments)&&!mxEvent.isAltDown(z.getEvent)};mxGraphView.prototype.formatUnitText=function(t){return t?b(t,this.unit):t};mxGraphHandler.prototype.updateHint=function(t){if(null!=this.pBounds&&(null!=this.shape||
-this.livePreviewActive)){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var z=this.graph.view.translate,B=this.graph.view.scale;t=this.roundLength((this.bounds.x+this.currentDx)/B-z.x);z=this.roundLength((this.bounds.y+this.currentDy)/B-z.y);B=this.graph.view.unit;this.hint.innerHTML=b(t,B)+", "+b(z,B);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 Z=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell=function(t,z){Z.apply(this,arguments);var B=this.graph.getCellStyle(t);if(null==B.childLayout){var E=this.graph.model.getParent(t),G=null!=E?this.graph.getCellGeometry(E):null;if(null!=G&&(B=this.graph.getCellStyle(E),"stackLayout"==B.childLayout)){var M=parseFloat(mxUtils.getValue(B,
-"stackBorder",mxStackLayout.prototype.border));B="1"==mxUtils.getValue(B,"horizontalStack","1");var X=this.graph.getActualStartSize(E);G=G.clone();B?G.height=z.height+X.y+X.height+2*M:G.width=z.width+X.x+X.width+2*M;this.graph.model.setGeometry(E,G)}}};var T=mxSelectionCellsHandler.prototype.getHandledSelectionCells;mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function t(ia){B.get(ia)||(B.put(ia,!0),G.push(ia))}for(var z=T.apply(this,arguments),B=new mxDictionary,E=this.graph.model,
-G=[],M=0;M<z.length;M++){var X=z[M];this.graph.isTableCell(X)?t(E.getParent(E.getParent(X))):this.graph.isTableRow(X)&&t(E.getParent(X));t(X)}return G};var U=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(t){var z=U.apply(this,arguments);z.stroke="#C0C0C0";z.strokewidth=1;return z};var fa=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(t){var z=fa.apply(this,arguments);
+this.livePreviewActive)){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var z=this.graph.view.translate,A=this.graph.view.scale;t=this.roundLength((this.bounds.x+this.currentDx)/A-z.x);z=this.roundLength((this.bounds.y+this.currentDy)/A-z.y);A=this.graph.view.unit;this.hint.innerHTML=b(t,A)+", "+b(z,A);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 Z=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell=function(t,z){Z.apply(this,arguments);var A=this.graph.getCellStyle(t);if(null==A.childLayout){var E=this.graph.model.getParent(t),H=null!=E?this.graph.getCellGeometry(E):null;if(null!=H&&(A=this.graph.getCellStyle(E),"stackLayout"==A.childLayout)){var K=parseFloat(mxUtils.getValue(A,
+"stackBorder",mxStackLayout.prototype.border));A="1"==mxUtils.getValue(A,"horizontalStack","1");var X=this.graph.getActualStartSize(E);H=H.clone();A?H.height=z.height+X.y+X.height+2*K:H.width=z.width+X.x+X.width+2*K;this.graph.model.setGeometry(E,H)}}};var U=mxSelectionCellsHandler.prototype.getHandledSelectionCells;mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function t(ja){A.get(ja)||(A.put(ja,!0),H.push(ja))}for(var z=U.apply(this,arguments),A=new mxDictionary,E=this.graph.model,
+H=[],K=0;K<z.length;K++){var X=z[K];this.graph.isTableCell(X)?t(E.getParent(E.getParent(X))):this.graph.isTableRow(X)&&t(E.getParent(X));t(X)}return H};var V=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(t){var z=V.apply(this,arguments);z.stroke="#C0C0C0";z.strokewidth=1;return z};var ia=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(t){var z=ia.apply(this,arguments);
z.stroke="#C0C0C0";z.strokewidth=1;return z};mxVertexHandler.prototype.rotationHandleVSpacing=-12;mxVertexHandler.prototype.getRotationHandlePosition=function(){var t=this.getHandlePadding();return new mxPoint(this.bounds.x+this.bounds.width-this.rotationHandleVSpacing+t.x/2,this.bounds.y+this.rotationHandleVSpacing-t.y/2)};mxVertexHandler.prototype.isRecursiveResize=function(t,z){return this.graph.isRecursiveVertexResize(t)&&!mxEvent.isAltDown(z.getEvent())};mxVertexHandler.prototype.isCenteredEvent=
function(t,z){return mxEvent.isControlDown(z.getEvent())||mxEvent.isMetaDown(z.getEvent())};var ha=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return ha.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 ba=mxVertexHandler.prototype.isParentHighlightVisible;mxVertexHandler.prototype.isParentHighlightVisible=function(){return ba.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var qa=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(t){return t.tableHandle||qa.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=
-function(){var t=0;this.graph.isTableRow(this.state.cell)?t=1:this.graph.isTableCell(this.state.cell)&&(t=2);return t};var I=mxVertexHandler.prototype.getSelectionBorderBounds;mxVertexHandler.prototype.getSelectionBorderBounds=function(){return I.apply(this,arguments).grow(-this.getSelectionBorderInset())};var L=null,H=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){null==L&&(L=mxCellRenderer.defaultShapes.tableLine);var t=H.apply(this,arguments);
-if(this.graph.isTable(this.state.cell)){var z=function(La,Ia,Ea){for(var Fa=[],Oa=0;Oa<La.length;Oa++){var Pa=La[Oa];Fa.push(null==Pa?null:new mxPoint((da+Pa.x+Ia)*M,(ja+Pa.y+Ea)*M))}return Fa},B=this,E=this.graph,G=E.model,M=E.view.scale,X=this.state,ia=this.selectionBorder,da=this.state.origin.x+E.view.translate.x,ja=this.state.origin.y+E.view.translate.y;null==t&&(t=[]);var sa=E.view.getCellStates(G.getChildCells(this.state.cell,!0));if(0<sa.length){var Ba=G.getChildCells(sa[0].cell,!0),Da=E.getTableLines(this.state.cell,
-!1,!0),Ma=E.getTableLines(this.state.cell,!0,!1);for(G=0;G<sa.length;G++)mxUtils.bind(this,function(La){var Ia=sa[La],Ea=La<sa.length-1?sa[La+1]:null;Ea=null!=Ea?E.getCellGeometry(Ea.cell):null;var Fa=null!=Ea&&null!=Ea.alternateBounds?Ea.alternateBounds:Ea;Ea=null!=Ma[La]?new L(Ma[La],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!1);Ea.isDashed=ia.isDashed;Ea.svgStrokeTolerance++;Ia=new mxHandle(Ia,"row-resize",null,Ea);Ia.tableHandle=!0;var Oa=0;Ia.shape.node.parentNode.insertBefore(Ia.shape.node,
-Ia.shape.node.parentNode.firstChild);Ia.redraw=function(){if(null!=this.shape){this.shape.stroke=0==Oa?mxConstants.NONE:ia.stroke;if(this.shape.constructor==L)this.shape.line=z(Ma[La],0,Oa),this.shape.updateBoundsFromLine();else{var Na=E.getActualStartSize(X.cell,!0);this.shape.bounds.height=1;this.shape.bounds.y=this.state.y+this.state.height+Oa*M;this.shape.bounds.x=X.x+(La==sa.length-1?0:Na.x*M);this.shape.bounds.width=X.width-(La==sa.length-1?0:Na.width+Na.x+M)}this.shape.redraw()}};var Pa=!1;
-Ia.setPosition=function(Na,Sa,eb){Oa=Math.max(Graph.minTableRowHeight-Na.height,Sa.y-Na.y-Na.height);Pa=mxEvent.isShiftDown(eb.getEvent());null!=Fa&&Pa&&(Oa=Math.min(Oa,Fa.height-Graph.minTableRowHeight))};Ia.execute=function(Na){if(0!=Oa)E.setTableRowHeight(this.state.cell,Oa,!Pa);else if(!B.blockDelayedSelection){var Sa=E.getCellAt(Na.getGraphX(),Na.getGraphY())||X.cell;E.graphHandler.selectCellForEvent(Sa,Na)}Oa=0};Ia.reset=function(){Oa=0};t.push(Ia)})(G);for(G=0;G<Ba.length;G++)mxUtils.bind(this,
-function(La){var Ia=E.view.getState(Ba[La]),Ea=E.getCellGeometry(Ba[La]),Fa=null!=Ea.alternateBounds?Ea.alternateBounds:Ea;null==Ia&&(Ia=new mxCellState(E.view,Ba[La],E.getCellStyle(Ba[La])),Ia.x=X.x+Ea.x*M,Ia.y=X.y+Ea.y*M,Ia.width=Fa.width*M,Ia.height=Fa.height*M,Ia.updateCachedBounds());Ea=La<Ba.length-1?Ba[La+1]:null;Ea=null!=Ea?E.getCellGeometry(Ea):null;var Oa=null!=Ea&&null!=Ea.alternateBounds?Ea.alternateBounds:Ea;Ea=null!=Da[La]?new L(Da[La],mxConstants.NONE,1):new mxLine(new mxRectangle,
-mxConstants.NONE,1,!0);Ea.isDashed=ia.isDashed;Ea.svgStrokeTolerance++;Ia=new mxHandle(Ia,"col-resize",null,Ea);Ia.tableHandle=!0;var Pa=0;Ia.shape.node.parentNode.insertBefore(Ia.shape.node,Ia.shape.node.parentNode.firstChild);Ia.redraw=function(){if(null!=this.shape){this.shape.stroke=0==Pa?mxConstants.NONE:ia.stroke;if(this.shape.constructor==L)this.shape.line=z(Da[La],Pa,0),this.shape.updateBoundsFromLine();else{var Sa=E.getActualStartSize(X.cell,!0);this.shape.bounds.width=1;this.shape.bounds.x=
-this.state.x+(Fa.width+Pa)*M;this.shape.bounds.y=X.y+(La==Ba.length-1?0:Sa.y*M);this.shape.bounds.height=X.height-(La==Ba.length-1?0:(Sa.height+Sa.y)*M)}this.shape.redraw()}};var Na=!1;Ia.setPosition=function(Sa,eb,Za){Pa=Math.max(Graph.minTableColumnWidth-Fa.width,eb.x-Sa.x-Fa.width);Na=mxEvent.isShiftDown(Za.getEvent());null==Oa||Na||(Pa=Math.min(Pa,Oa.width-Graph.minTableColumnWidth))};Ia.execute=function(Sa){if(0!=Pa)E.setTableColumnWidth(this.state.cell,Pa,Na);else if(!B.blockDelayedSelection){var eb=
-E.getCellAt(Sa.getGraphX(),Sa.getGraphY())||X.cell;E.graphHandler.selectCellForEvent(eb,Sa)}Pa=0};Ia.positionChanged=function(){};Ia.reset=function(){Pa=0};t.push(Ia)})(G)}}return null!=t?t.reverse():null};var S=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(t){S.apply(this,arguments);if(null!=this.moveHandles)for(var z=0;z<this.moveHandles.length;z++)this.moveHandles[z].style.visibility=t?"":"hidden";if(null!=this.cornerHandles)for(z=0;z<this.cornerHandles.length;z++)this.cornerHandles[z].node.style.visibility=
-t?"":"hidden"};mxVertexHandler.prototype.refreshMoveHandles=function(){var t=this.graph.model;if(null!=this.moveHandles){for(var z=0;z<this.moveHandles.length;z++)this.moveHandles[z].parentNode.removeChild(this.moveHandles[z]);this.moveHandles=null}this.moveHandles=[];for(z=0;z<t.getChildCount(this.state.cell);z++)mxUtils.bind(this,function(B){if(null!=B&&t.isVertex(B.cell)){var E=mxUtils.createImage(Editor.rowMoveImage);E.style.position="absolute";E.style.cursor="pointer";E.style.width="7px";E.style.height=
-"4px";E.style.padding="4px 2px 4px 2px";E.rowState=B;mxEvent.addGestureListeners(E,mxUtils.bind(this,function(G){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);!this.graph.isToggleEvent(G)&&this.graph.isCellSelected(B.cell)||this.graph.selectCellForEvent(B.cell,G);mxEvent.isPopupTrigger(G)||(this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(G),mxEvent.getClientY(G),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=
-mxEvent.isMouseEvent(G),this.graph.isMouseDown=!0);mxEvent.consume(G)}),null,mxUtils.bind(this,function(G){mxEvent.isPopupTrigger(G)&&(this.graph.popupMenuHandler.popup(mxEvent.getClientX(G),mxEvent.getClientY(G),B.cell,G),mxEvent.consume(G))}));this.moveHandles.push(E);this.graph.container.appendChild(E)}})(this.graph.view.getState(t.getChildAt(this.state.cell,z)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){for(var t=0;t<this.customHandles.length;t++)this.customHandles[t].destroy();
-this.customHandles=this.createCustomHandles()}this.graph.isTable(this.state.cell)&&this.refreshMoveHandles()};var V=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var t=new mxPoint(0,0),z=this.tolerance,B=this.state.style.shape;null==mxCellRenderer.defaultShapes[B]&&mxStencilRegistry.getStencil(B);B=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!B&&null!=this.customHandles)for(var E=0;E<this.customHandles.length;E++)if(null!=
-this.customHandles[E].shape&&null!=this.customHandles[E].shape.bounds){var G=this.customHandles[E].shape.bounds,M=G.getCenterX(),X=G.getCenterY();if(Math.abs(this.state.x-M)<G.width/2||Math.abs(this.state.y-X)<G.height/2||Math.abs(this.state.x+this.state.width-M)<G.width/2||Math.abs(this.state.y+this.state.height-X)<G.height/2){B=!0;break}}B&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(z/=2,this.graph.isTable(this.state.cell)&&(z+=7),t.x=this.sizers[0].bounds.width+z,t.y=this.sizers[0].bounds.height+
-z):t=V.apply(this,arguments);return t};mxVertexHandler.prototype.updateHint=function(t){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{t=this.state.view.scale;var z=this.state.view.unit;this.hint.innerHTML=b(this.roundLength(this.bounds.width/t),z)+" x "+b(this.roundLength(this.bounds.height/t),z)}t=mxUtils.getBoundingBox(this.bounds,
-null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0");null==t&&(t=this.bounds);this.hint.style.left=t.x+Math.round((t.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=t.y+t.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 ea=mxEdgeHandler.prototype.mouseMove;
-mxEdgeHandler.prototype.mouseMove=function(t,z){ea.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 ka=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=function(t,z){ka.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(t,z){null==this.hint&&
-(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var B=this.graph.view.translate,E=this.graph.view.scale,G=this.roundLength(z.x/E-B.x);B=this.roundLength(z.y/E-B.y);E=this.graph.view.unit;this.hint.innerHTML=b(G,E)+", "+b(B,E);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(t.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(t.getGraphY(),z.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};Graph.prototype.expandedImage=Graph.createSvgImage(9,9,'<defs><linearGradient id="grad1" x1="50%" y1="0%" x2="50%" y2="100%"><stop offset="30%" style="stop-color:#f0f0f0;" /><stop offset="100%" style="stop-color:#AFB0B6;" /></linearGradient></defs><rect x="0" y="0" width="9" height="9" stroke="#8A94A5" fill="url(#grad1)" stroke-width="2"/><path d="M 2 4.5 L 7 4.5 z" stroke="#000"/>');
+function(){var t=0;this.graph.isTableRow(this.state.cell)?t=1:this.graph.isTableCell(this.state.cell)&&(t=2);return t};var O=mxVertexHandler.prototype.getSelectionBorderBounds;mxVertexHandler.prototype.getSelectionBorderBounds=function(){return O.apply(this,arguments).grow(-this.getSelectionBorderInset())};var S=null,F=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){null==S&&(S=mxCellRenderer.defaultShapes.tableLine);var t=F.apply(this,arguments);
+if(this.graph.isTable(this.state.cell)){var z=function(La,Ia,Fa){for(var Ga=[],Oa=0;Oa<La.length;Oa++){var Pa=La[Oa];Ga.push(null==Pa?null:new mxPoint((ea+Pa.x+Ia)*K,(ka+Pa.y+Fa)*K))}return Ga},A=this,E=this.graph,H=E.model,K=E.view.scale,X=this.state,ja=this.selectionBorder,ea=this.state.origin.x+E.view.translate.x,ka=this.state.origin.y+E.view.translate.y;null==t&&(t=[]);var ta=E.view.getCellStates(H.getChildCells(this.state.cell,!0));if(0<ta.length){var Aa=H.getChildCells(ta[0].cell,!0),Ea=E.getTableLines(this.state.cell,
+!1,!0),Ma=E.getTableLines(this.state.cell,!0,!1);for(H=0;H<ta.length;H++)mxUtils.bind(this,function(La){var Ia=ta[La],Fa=La<ta.length-1?ta[La+1]:null;Fa=null!=Fa?E.getCellGeometry(Fa.cell):null;var Ga=null!=Fa&&null!=Fa.alternateBounds?Fa.alternateBounds:Fa;Fa=null!=Ma[La]?new S(Ma[La],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!1);Fa.isDashed=ja.isDashed;Fa.svgStrokeTolerance++;Ia=new mxHandle(Ia,"row-resize",null,Fa);Ia.tableHandle=!0;var Oa=0;Ia.shape.node.parentNode.insertBefore(Ia.shape.node,
+Ia.shape.node.parentNode.firstChild);Ia.redraw=function(){if(null!=this.shape){this.shape.stroke=0==Oa?mxConstants.NONE:ja.stroke;if(this.shape.constructor==S)this.shape.line=z(Ma[La],0,Oa),this.shape.updateBoundsFromLine();else{var Na=E.getActualStartSize(X.cell,!0);this.shape.bounds.height=1;this.shape.bounds.y=this.state.y+this.state.height+Oa*K;this.shape.bounds.x=X.x+(La==ta.length-1?0:Na.x*K);this.shape.bounds.width=X.width-(La==ta.length-1?0:Na.width+Na.x+K)}this.shape.redraw()}};var Pa=!1;
+Ia.setPosition=function(Na,Sa,eb){Oa=Math.max(Graph.minTableRowHeight-Na.height,Sa.y-Na.y-Na.height);Pa=mxEvent.isShiftDown(eb.getEvent());null!=Ga&&Pa&&(Oa=Math.min(Oa,Ga.height-Graph.minTableRowHeight))};Ia.execute=function(Na){if(0!=Oa)E.setTableRowHeight(this.state.cell,Oa,!Pa);else if(!A.blockDelayedSelection){var Sa=E.getCellAt(Na.getGraphX(),Na.getGraphY())||X.cell;E.graphHandler.selectCellForEvent(Sa,Na)}Oa=0};Ia.reset=function(){Oa=0};t.push(Ia)})(H);for(H=0;H<Aa.length;H++)mxUtils.bind(this,
+function(La){var Ia=E.view.getState(Aa[La]),Fa=E.getCellGeometry(Aa[La]),Ga=null!=Fa.alternateBounds?Fa.alternateBounds:Fa;null==Ia&&(Ia=new mxCellState(E.view,Aa[La],E.getCellStyle(Aa[La])),Ia.x=X.x+Fa.x*K,Ia.y=X.y+Fa.y*K,Ia.width=Ga.width*K,Ia.height=Ga.height*K,Ia.updateCachedBounds());Fa=La<Aa.length-1?Aa[La+1]:null;Fa=null!=Fa?E.getCellGeometry(Fa):null;var Oa=null!=Fa&&null!=Fa.alternateBounds?Fa.alternateBounds:Fa;Fa=null!=Ea[La]?new S(Ea[La],mxConstants.NONE,1):new mxLine(new mxRectangle,
+mxConstants.NONE,1,!0);Fa.isDashed=ja.isDashed;Fa.svgStrokeTolerance++;Ia=new mxHandle(Ia,"col-resize",null,Fa);Ia.tableHandle=!0;var Pa=0;Ia.shape.node.parentNode.insertBefore(Ia.shape.node,Ia.shape.node.parentNode.firstChild);Ia.redraw=function(){if(null!=this.shape){this.shape.stroke=0==Pa?mxConstants.NONE:ja.stroke;if(this.shape.constructor==S)this.shape.line=z(Ea[La],Pa,0),this.shape.updateBoundsFromLine();else{var Sa=E.getActualStartSize(X.cell,!0);this.shape.bounds.width=1;this.shape.bounds.x=
+this.state.x+(Ga.width+Pa)*K;this.shape.bounds.y=X.y+(La==Aa.length-1?0:Sa.y*K);this.shape.bounds.height=X.height-(La==Aa.length-1?0:(Sa.height+Sa.y)*K)}this.shape.redraw()}};var Na=!1;Ia.setPosition=function(Sa,eb,ab){Pa=Math.max(Graph.minTableColumnWidth-Ga.width,eb.x-Sa.x-Ga.width);Na=mxEvent.isShiftDown(ab.getEvent());null==Oa||Na||(Pa=Math.min(Pa,Oa.width-Graph.minTableColumnWidth))};Ia.execute=function(Sa){if(0!=Pa)E.setTableColumnWidth(this.state.cell,Pa,Na);else if(!A.blockDelayedSelection){var eb=
+E.getCellAt(Sa.getGraphX(),Sa.getGraphY())||X.cell;E.graphHandler.selectCellForEvent(eb,Sa)}Pa=0};Ia.positionChanged=function(){};Ia.reset=function(){Pa=0};t.push(Ia)})(H)}}return null!=t?t.reverse():null};var L=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(t){L.apply(this,arguments);if(null!=this.moveHandles)for(var z=0;z<this.moveHandles.length;z++)this.moveHandles[z].style.visibility=t?"":"hidden";if(null!=this.cornerHandles)for(z=0;z<this.cornerHandles.length;z++)this.cornerHandles[z].node.style.visibility=
+t?"":"hidden"};mxVertexHandler.prototype.refreshMoveHandles=function(){var t=this.graph.model;if(null!=this.moveHandles){for(var z=0;z<this.moveHandles.length;z++)this.moveHandles[z].parentNode.removeChild(this.moveHandles[z]);this.moveHandles=null}this.moveHandles=[];for(z=0;z<t.getChildCount(this.state.cell);z++)mxUtils.bind(this,function(A){if(null!=A&&t.isVertex(A.cell)){var E=mxUtils.createImage(Editor.rowMoveImage);E.style.position="absolute";E.style.cursor="pointer";E.style.width="7px";E.style.height=
+"4px";E.style.padding="4px 2px 4px 2px";E.rowState=A;mxEvent.addGestureListeners(E,mxUtils.bind(this,function(H){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);!this.graph.isToggleEvent(H)&&this.graph.isCellSelected(A.cell)||this.graph.selectCellForEvent(A.cell,H);mxEvent.isPopupTrigger(H)||(this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(H),mxEvent.getClientY(H),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=
+mxEvent.isMouseEvent(H),this.graph.isMouseDown=!0);mxEvent.consume(H)}),null,mxUtils.bind(this,function(H){mxEvent.isPopupTrigger(H)&&(this.graph.popupMenuHandler.popup(mxEvent.getClientX(H),mxEvent.getClientY(H),A.cell,H),mxEvent.consume(H))}));this.moveHandles.push(E);this.graph.container.appendChild(E)}})(this.graph.view.getState(t.getChildAt(this.state.cell,z)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){for(var t=0;t<this.customHandles.length;t++)this.customHandles[t].destroy();
+this.customHandles=this.createCustomHandles()}this.graph.isTable(this.state.cell)&&this.refreshMoveHandles()};var T=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var t=new mxPoint(0,0),z=this.tolerance,A=this.state.style.shape;null==mxCellRenderer.defaultShapes[A]&&mxStencilRegistry.getStencil(A);A=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!A&&null!=this.customHandles)for(var E=0;E<this.customHandles.length;E++)if(null!=
+this.customHandles[E].shape&&null!=this.customHandles[E].shape.bounds){var H=this.customHandles[E].shape.bounds,K=H.getCenterX(),X=H.getCenterY();if(Math.abs(this.state.x-K)<H.width/2||Math.abs(this.state.y-X)<H.height/2||Math.abs(this.state.x+this.state.width-K)<H.width/2||Math.abs(this.state.y+this.state.height-X)<H.height/2){A=!0;break}}A&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(z/=2,this.graph.isTable(this.state.cell)&&(z+=7),t.x=this.sizers[0].bounds.width+z,t.y=this.sizers[0].bounds.height+
+z):t=T.apply(this,arguments);return t};mxVertexHandler.prototype.updateHint=function(t){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{t=this.state.view.scale;var z=this.state.view.unit;this.hint.innerHTML=b(this.roundLength(this.bounds.width/t),z)+" x "+b(this.roundLength(this.bounds.height/t),z)}t=mxUtils.getBoundingBox(this.bounds,
+null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0");null==t&&(t=this.bounds);this.hint.style.left=t.x+Math.round((t.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=t.y+t.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 ca=mxEdgeHandler.prototype.mouseMove;
+mxEdgeHandler.prototype.mouseMove=function(t,z){ca.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 fa=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=function(t,z){fa.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(t,z){null==this.hint&&
+(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var A=this.graph.view.translate,E=this.graph.view.scale,H=this.roundLength(z.x/E-A.x);A=this.roundLength(z.y/E-A.y);E=this.graph.view.unit;this.hint.innerHTML=b(H,E)+", "+b(A,E);this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(H=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*H.x)+
+"%, "+Math.round(100*H.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(t.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(t.getGraphY(),z.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};Graph.prototype.expandedImage=Graph.createSvgImage(9,9,'<defs><linearGradient id="grad1" x1="50%" y1="0%" x2="50%" y2="100%"><stop offset="30%" style="stop-color:#f0f0f0;" /><stop offset="100%" style="stop-color:#AFB0B6;" /></linearGradient></defs><rect x="0" y="0" width="9" height="9" stroke="#8A94A5" fill="url(#grad1)" stroke-width="2"/><path d="M 2 4.5 L 7 4.5 z" stroke="#000"/>');
Graph.prototype.collapsedImage=Graph.createSvgImage(9,9,'<defs><linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="30%" style="stop-color:#f0f0f0;" /><stop offset="100%" style="stop-color:#AFB0B6;" /></linearGradient></defs><rect x="0" y="0" width="9" height="9" stroke="#8A94A5" fill="url(#grad1)" stroke-width="2"/><path d="M 4.5 2 L 4.5 7 M 2 4.5 L 7 4.5 z" stroke="#000"/>');mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=
Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>');HoverIcons.prototype.endMainHandle=Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>');HoverIcons.prototype.secondaryHandle=Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>');HoverIcons.prototype.fixedHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="#01bd22"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>');
HoverIcons.prototype.endFixedHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="7" stroke="#fff" fill="#01bd22"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>');HoverIcons.prototype.terminalHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/><circle cx="11" cy="11" r="3" stroke="#fff" fill="transparent"/>');HoverIcons.prototype.endTerminalHandle=Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="7" stroke="#fff" fill="'+
@@ -3205,38 +3205,38 @@ HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangl
!0;mxEdgeHandler.prototype.manageLabelHandle=!0;mxEdgeHandler.prototype.outlineConnect=!0;mxEdgeHandler.prototype.isAddVirtualBendEvent=function(t){return!mxEvent.isShiftDown(t.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent=function(t){return!mxEvent.isShiftDown(t.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(t){return mxEvent.isMouseEvent(t.getEvent())?4:this.graph.getTolerance()};mxPanningHandler.prototype.isPanningTrigger=function(t){var z=t.getEvent();return null==t.getState()&&!mxEvent.isMouseEvent(z)||mxEvent.isPopupTrigger(z)&&(null==t.getState()||mxEvent.isControlDown(z)||mxEvent.isShiftDown(z))};var wa=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=
function(t,z){wa.apply(this,arguments);mxEvent.isTouchEvent(z.getEvent())&&this.graph.isCellSelected(z.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(t){var z=t.getEvent();return mxEvent.isLeftMouseButton(z)&&(this.useLeftButtonForPanning&&null==t.getState()||mxEvent.isControlDown(z)&&!mxEvent.isShiftDown(z))||this.usePopupTrigger&&mxEvent.isPopupTrigger(z)};mxRubberband.prototype.isSpaceEvent=function(t){return this.graph.isEnabled()&&
-!this.graph.isCellLocked(this.graph.getDefaultParent())&&(mxEvent.isControlDown(t.getEvent())||mxEvent.isMetaDown(t.getEvent()))&&mxEvent.isShiftDown(t.getEvent())&&mxEvent.isAltDown(t.getEvent())};mxRubberband.prototype.cancelled=!1;mxRubberband.prototype.cancel=function(){this.isActive()&&(this.cancelled=!0,this.reset())};mxRubberband.prototype.mouseUp=function(t,z){if(this.cancelled)this.cancelled=!1,z.consume();else{var B=null!=this.div&&"none"!=this.div.style.display,E=null,G=null,M=t=null;null!=
-this.first&&null!=this.currentX&&null!=this.currentY&&(E=this.first.x,G=this.first.y,t=(this.currentX-E)/this.graph.view.scale,M=(this.currentY-G)/this.graph.view.scale,mxEvent.isAltDown(z.getEvent())||(t=this.graph.snap(t),M=this.graph.snap(M),this.graph.isGridEnabled()||(Math.abs(t)<this.graph.tolerance&&(t=0),Math.abs(M)<this.graph.tolerance&&(M=0))));this.reset();if(B){if(this.isSpaceEvent(z)){this.graph.model.beginUpdate();try{var X=this.graph.getCellsBeyond(E,G,this.graph.getDefaultParent(),
-!0,!0);for(B=0;B<X.length;B++)if(this.graph.isCellMovable(X[B])){var ia=this.graph.view.getState(X[B]),da=this.graph.getCellGeometry(X[B]);null!=ia&&null!=da&&(da=da.clone(),da.translate(t,M),this.graph.model.setGeometry(X[B],da))}}finally{this.graph.model.endUpdate()}}else X=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(X,z.getEvent());z.consume()}}};mxRubberband.prototype.mouseMove=function(t,z){if(!z.isConsumed()&&null!=this.first){var B=mxUtils.getScrollOrigin(this.graph.container);
-t=mxUtils.getOffset(this.graph.container);B.x-=t.x;B.y-=t.y;t=z.getX()+B.x;B=z.getY()+B.y;var E=this.first.x-t,G=this.first.y-B,M=this.graph.tolerance;if(null!=this.div||Math.abs(E)>M||Math.abs(G)>M)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(t,B),this.isSpaceEvent(z)?(t=this.x+this.width,B=this.y+this.height,E=this.graph.view.scale,mxEvent.isAltDown(z.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=t-this.width),this.y<this.first.y&&(this.y=B-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",
+!this.graph.isCellLocked(this.graph.getDefaultParent())&&(mxEvent.isControlDown(t.getEvent())||mxEvent.isMetaDown(t.getEvent()))&&mxEvent.isShiftDown(t.getEvent())&&mxEvent.isAltDown(t.getEvent())};mxRubberband.prototype.cancelled=!1;mxRubberband.prototype.cancel=function(){this.isActive()&&(this.cancelled=!0,this.reset())};mxRubberband.prototype.mouseUp=function(t,z){if(this.cancelled)this.cancelled=!1,z.consume();else{var A=null!=this.div&&"none"!=this.div.style.display,E=null,H=null,K=t=null;null!=
+this.first&&null!=this.currentX&&null!=this.currentY&&(E=this.first.x,H=this.first.y,t=(this.currentX-E)/this.graph.view.scale,K=(this.currentY-H)/this.graph.view.scale,mxEvent.isAltDown(z.getEvent())||(t=this.graph.snap(t),K=this.graph.snap(K),this.graph.isGridEnabled()||(Math.abs(t)<this.graph.tolerance&&(t=0),Math.abs(K)<this.graph.tolerance&&(K=0))));this.reset();if(A){if(this.isSpaceEvent(z)){this.graph.model.beginUpdate();try{var X=this.graph.getCellsBeyond(E,H,this.graph.getDefaultParent(),
+!0,!0);for(A=0;A<X.length;A++)if(this.graph.isCellMovable(X[A])){var ja=this.graph.view.getState(X[A]),ea=this.graph.getCellGeometry(X[A]);null!=ja&&null!=ea&&(ea=ea.clone(),ea.translate(t,K),this.graph.model.setGeometry(X[A],ea))}}finally{this.graph.model.endUpdate()}}else X=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(X,z.getEvent());z.consume()}}};mxRubberband.prototype.mouseMove=function(t,z){if(!z.isConsumed()&&null!=this.first){var A=mxUtils.getScrollOrigin(this.graph.container);
+t=mxUtils.getOffset(this.graph.container);A.x-=t.x;A.y-=t.y;t=z.getX()+A.x;A=z.getY()+A.y;var E=this.first.x-t,H=this.first.y-A,K=this.graph.tolerance;if(null!=this.div||Math.abs(E)>K||Math.abs(H)>K)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(t,A),this.isSpaceEvent(z)?(t=this.x+this.width,A=this.y+this.height,E=this.graph.view.scale,mxEvent.isAltDown(z.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=t-this.width),this.y<this.first.y&&(this.y=A-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)),z.consume()}};var W=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);W.apply(this,arguments)};var aa=(new Date).getTime(),oa=0,ua=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(t,z,B,E){ua.apply(this,arguments);B!=this.currentTerminalState?(aa=(new Date).getTime(),
-oa=0):oa=(new Date).getTime()-aa;this.currentTerminalState=B};var Ja=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(t){return mxEvent.isShiftDown(t.getEvent())&&mxEvent.isAltDown(t.getEvent())?!1:null!=this.currentTerminalState&&t.getState()==this.currentTerminalState&&2E3<oa||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&Ja.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=
-function(t,z,B){z=null!=t&&0==t;var E=this.state.getVisibleTerminalState(z);t=null!=t&&(0==t||t>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==t)?this.graph.getConnectionConstraint(this.state,E,z):null;B=null!=(null!=t?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(z),t):null)?B?this.endFixedHandleImage:this.fixedHandleImage:null!=t&&null!=E?B?this.endTerminalHandleImage:this.terminalHandleImage:B?this.endHandleImage:this.handleImage;if(null!=B)return B=
-new mxImageShape(new mxRectangle(0,0,B.width,B.height),B.src),B.preserveImageAspect=!1,B;B=mxConstants.HANDLE_SIZE;this.preferHtml&&--B;return new mxRectangleShape(new mxRectangle(0,0,B,B),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var Ga=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(t,z,B){this.handleImage=z==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:z==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;
-return Ga.apply(this,arguments)};var va=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(t){if(null!=t&&1==t.length){var z=this.graph.getModel(),B=z.getParent(t[0]),E=this.graph.getCellGeometry(t[0]);if(z.isEdge(B)&&null!=E&&E.relative&&(z=this.graph.view.getState(t[0]),null!=z&&2>z.width&&2>z.height&&null!=z.text&&null!=z.text.boundingBox))return mxRectangle.fromRectangle(z.text.boundingBox)}return va.apply(this,arguments)};var za=mxGraphHandler.prototype.getGuideStates;
-mxGraphHandler.prototype.getGuideStates=function(){for(var t=za.apply(this,arguments),z=[],B=0;B<t.length;B++)"1"!=mxUtils.getValue(t[B].style,"part","0")&&z.push(t[B]);return z};var ra=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(t){var z=this.graph.getModel(),B=z.getParent(t.cell),E=this.graph.getCellGeometry(t.cell);return z.isEdge(B)&&null!=E&&E.relative&&2>t.width&&2>t.height&&null!=t.text&&null!=t.text.boundingBox?(z=t.text.unrotatedBoundingBox||
-t.text.boundingBox,new mxRectangle(Math.round(z.x),Math.round(z.y),Math.round(z.width),Math.round(z.height))):ra.apply(this,arguments)};var Ha=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(t,z){var B=this.graph.getModel(),E=B.getParent(this.state.cell),G=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(z)==mxEvent.ROTATION_HANDLE||!B.isEdge(E)||null==G||!G.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&Ha.apply(this,arguments)};
+(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null)),z.consume()}};var W=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);W.apply(this,arguments)};var aa=(new Date).getTime(),oa=0,sa=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(t,z,A,E){sa.apply(this,arguments);A!=this.currentTerminalState?(aa=(new Date).getTime(),
+oa=0):oa=(new Date).getTime()-aa;this.currentTerminalState=A};var Ka=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(t){return mxEvent.isShiftDown(t.getEvent())&&mxEvent.isAltDown(t.getEvent())?!1:null!=this.currentTerminalState&&t.getState()==this.currentTerminalState&&2E3<oa||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&Ka.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=
+function(t,z,A){z=null!=t&&0==t;var E=this.state.getVisibleTerminalState(z);t=null!=t&&(0==t||t>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==t)?this.graph.getConnectionConstraint(this.state,E,z):null;A=null!=(null!=t?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(z),t):null)?A?this.endFixedHandleImage:this.fixedHandleImage:null!=t&&null!=E?A?this.endTerminalHandleImage:this.terminalHandleImage:A?this.endHandleImage:this.handleImage;if(null!=A)return A=
+new mxImageShape(new mxRectangle(0,0,A.width,A.height),A.src),A.preserveImageAspect=!1,A;A=mxConstants.HANDLE_SIZE;this.preferHtml&&--A;return new mxRectangleShape(new mxRectangle(0,0,A,A),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var Ha=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(t,z,A){this.handleImage=z==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:z==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;
+return Ha.apply(this,arguments)};var ua=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(t){if(null!=t&&1==t.length){var z=this.graph.getModel(),A=z.getParent(t[0]),E=this.graph.getCellGeometry(t[0]);if(z.isEdge(A)&&null!=E&&E.relative&&(z=this.graph.view.getState(t[0]),null!=z&&2>z.width&&2>z.height&&null!=z.text&&null!=z.text.boundingBox))return mxRectangle.fromRectangle(z.text.boundingBox)}return ua.apply(this,arguments)};var Ca=mxGraphHandler.prototype.getGuideStates;
+mxGraphHandler.prototype.getGuideStates=function(){for(var t=Ca.apply(this,arguments),z=[],A=0;A<t.length;A++)"1"!=mxUtils.getValue(t[A].style,"part","0")&&z.push(t[A]);return z};var ra=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(t){var z=this.graph.getModel(),A=z.getParent(t.cell),E=this.graph.getCellGeometry(t.cell);return z.isEdge(A)&&null!=E&&E.relative&&2>t.width&&2>t.height&&null!=t.text&&null!=t.text.boundingBox?(z=t.text.unrotatedBoundingBox||
+t.text.boundingBox,new mxRectangle(Math.round(z.x),Math.round(z.y),Math.round(z.width),Math.round(z.height))):ra.apply(this,arguments)};var Da=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(t,z){var A=this.graph.getModel(),E=A.getParent(this.state.cell),H=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(z)==mxEvent.ROTATION_HANDLE||!A.isEdge(E)||null==H||!H.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&Da.apply(this,arguments)};
mxVertexHandler.prototype.rotateClick=function(){var t=mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),z=mxUtils.getValue(this.state.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);this.state.view.graph.model.isVertex(this.state.cell)&&t==mxConstants.NONE&&z==mxConstants.NONE?(t=mxUtils.mod(mxUtils.getValue(this.state.style,mxConstants.STYLE_ROTATION,0)+90,360),this.state.view.graph.setCellStyles(mxConstants.STYLE_ROTATION,t,[this.state.cell])):this.state.view.graph.turnShapes([this.state.cell])};
-var Ta=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(t,z){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 db=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(t,z){db.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 Ua=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){Ua.apply(this,arguments);var t=!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 z=0;4>z;z++){var B=new mxRectangleShape(new mxRectangle(0,0,6,6),"#ffffff",mxConstants.HANDLE_STROKECOLOR);B.dialect=mxConstants.DIALECT_SVG;B.init(this.graph.view.getOverlayPane());this.cornerHandles.push(B)}}var E=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(G,M){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));E()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(G,M){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);
-z=this.graph.getLinkForCell(this.state.cell);B=this.graph.getLinksForState(this.state);this.updateLinkHint(z,B);if(null!=z||null!=B&&0<B.length)t=!0;t&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(t,z){try{if(null==t&&(null==z||0==z.length)||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=t||null!=z&&0<z.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.innerText="";if(null!=t&&(this.linkHint.appendChild(this.graph.createLinkForHint(t)),this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var B=document.createElement("img");B.setAttribute("src",Editor.editImage);B.setAttribute("title",
-mxResources.get("editLink"));B.setAttribute("width","11");B.setAttribute("height","11");B.style.marginLeft="10px";B.style.marginBottom="-1px";B.style.cursor="pointer";Editor.isDarkMode()&&(B.style.filter="invert(100%)");this.linkHint.appendChild(B);mxEvent.addListener(B,"click",mxUtils.bind(this,function(M){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(M)}));var E=B.cloneNode(!0);E.setAttribute("src",Editor.trashImage);E.setAttribute("title",mxResources.get("removeIt",
-[mxResources.get("link")]));E.style.marginLeft="4px";this.linkHint.appendChild(E);mxEvent.addListener(E,"click",mxUtils.bind(this,function(M){this.graph.setLinkForCell(this.state.cell,null);mxEvent.consume(M)}))}if(null!=z)for(B=0;B<z.length;B++){var G=document.createElement("div");G.style.marginTop=null!=t||0<B?"6px":"0px";G.appendChild(this.graph.createLinkForHint(z[B].getAttribute("href"),mxUtils.getTextContent(z[B])));this.linkHint.appendChild(G)}}null!=this.linkHint&&Graph.sanitizeNode(this.linkHint)}catch(M){}};
-mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var Va=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){Va.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});var t=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(E,G){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));t();this.redrawHandles()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var z=this.graph.getLinkForCell(this.state.cell),B=this.graph.getLinksForState(this.state);if(null!=
-z||null!=B&&0<B.length)this.updateLinkHint(z,B),this.redrawHandles()};var Ya=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){Ya.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var bb=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){if(null!=this.moveHandles)for(var t=0;t<this.moveHandles.length;t++)this.moveHandles[t].style.left=this.moveHandles[t].rowState.x+
-this.moveHandles[t].rowState.width-5+"px",this.moveHandles[t].style.top=this.moveHandles[t].rowState.y+this.moveHandles[t].rowState.height/2-6+"px";if(null!=this.cornerHandles){t=this.getSelectionBorderInset();var z=this.cornerHandles,B=z[0].bounds.height/2;z[0].bounds.x=this.state.x-z[0].bounds.width/2+t;z[0].bounds.y=this.state.y-B+t;z[0].redraw();z[1].bounds.x=z[0].bounds.x+this.state.width-2*t;z[1].bounds.y=z[0].bounds.y;z[1].redraw();z[2].bounds.x=z[0].bounds.x;z[2].bounds.y=this.state.y+this.state.height-
-2*t;z[2].redraw();z[3].bounds.x=z[1].bounds.x;z[3].bounds.y=z[2].bounds.y;z[3].redraw();for(t=0;t<this.cornerHandles.length;t++)this.cornerHandles[t].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":"");bb.apply(this);null!=this.state&&null!=this.linkHint&&(t=new mxPoint(this.state.getCenterX(),
-this.state.getCenterY()),z=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),B=mxUtils.getBoundingBox(z,this.state.style[mxConstants.STYLE_ROTATION]||"0",t),t=null!=B?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state,z=null!=this.state.text?this.state.text.boundingBox:null,null==B&&(B=this.state),B=B.y+B.height,null!=z&&(B=Math.max(B,z.y+z.height)),this.linkHint.style.left=Math.max(0,Math.round(t.x+(t.width-this.linkHint.clientWidth)/
-2))+"px",this.linkHint.style.top=Math.round(B+this.verticalOffset/2+Editor.hintOffset)+"px")};var cb=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){cb.apply(this,arguments);if(null!=this.moveHandles){for(var t=0;t<this.moveHandles.length;t++)null!=this.moveHandles[t]&&null!=this.moveHandles[t].parentNode&&this.moveHandles[t].parentNode.removeChild(this.moveHandles[t]);this.moveHandles=null}if(null!=this.cornerHandles){for(t=0;t<this.cornerHandles.length;t++)null!=this.cornerHandles[t]&&
+var Ua=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(t,z){Ua.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 db=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(t,z){db.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 Ta=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){Ta.apply(this,arguments);var t=!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 z=0;4>z;z++){var A=new mxRectangleShape(new mxRectangle(0,0,6,6),"#ffffff",mxConstants.HANDLE_STROKECOLOR);A.dialect=mxConstants.DIALECT_SVG;A.init(this.graph.view.getOverlayPane());this.cornerHandles.push(A)}}var E=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(H,K){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));E()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(H,K){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);
+z=this.graph.getLinkForCell(this.state.cell);A=this.graph.getLinksForState(this.state);this.updateLinkHint(z,A);if(null!=z||null!=A&&0<A.length)t=!0;t&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(t,z){try{if(null==t&&(null==z||0==z.length)||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=t||null!=z&&0<z.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.innerText="";if(null!=t&&(this.linkHint.appendChild(this.graph.createLinkForHint(t)),this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var A=document.createElement("img");A.setAttribute("src",Editor.editImage);A.setAttribute("title",
+mxResources.get("editLink"));A.setAttribute("width","11");A.setAttribute("height","11");A.style.marginLeft="10px";A.style.marginBottom="-1px";A.style.cursor="pointer";Editor.isDarkMode()&&(A.style.filter="invert(100%)");this.linkHint.appendChild(A);mxEvent.addListener(A,"click",mxUtils.bind(this,function(K){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(K)}));var E=A.cloneNode(!0);E.setAttribute("src",Editor.trashImage);E.setAttribute("title",mxResources.get("removeIt",
+[mxResources.get("link")]));E.style.marginLeft="4px";this.linkHint.appendChild(E);mxEvent.addListener(E,"click",mxUtils.bind(this,function(K){this.graph.setLinkForCell(this.state.cell,null);mxEvent.consume(K)}))}if(null!=z)for(A=0;A<z.length;A++){var H=document.createElement("div");H.style.marginTop=null!=t||0<A?"6px":"0px";H.appendChild(this.graph.createLinkForHint(z[A].getAttribute("href"),mxUtils.getTextContent(z[A])));this.linkHint.appendChild(H)}}null!=this.linkHint&&Graph.sanitizeNode(this.linkHint)}catch(K){}};
+mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var $a=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){$a.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});var t=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(E,H){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));t();this.redrawHandles()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var z=this.graph.getLinkForCell(this.state.cell),A=this.graph.getLinksForState(this.state);if(null!=
+z||null!=A&&0<A.length)this.updateLinkHint(z,A),this.redrawHandles()};var Xa=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){Xa.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 t=0;t<this.moveHandles.length;t++)this.moveHandles[t].style.left=this.moveHandles[t].rowState.x+
+this.moveHandles[t].rowState.width-5+"px",this.moveHandles[t].style.top=this.moveHandles[t].rowState.y+this.moveHandles[t].rowState.height/2-6+"px";if(null!=this.cornerHandles){t=this.getSelectionBorderInset();var z=this.cornerHandles,A=z[0].bounds.height/2;z[0].bounds.x=this.state.x-z[0].bounds.width/2+t;z[0].bounds.y=this.state.y-A+t;z[0].redraw();z[1].bounds.x=z[0].bounds.x+this.state.width-2*t;z[1].bounds.y=z[0].bounds.y;z[1].redraw();z[2].bounds.x=z[0].bounds.x;z[2].bounds.y=this.state.y+this.state.height-
+2*t;z[2].redraw();z[3].bounds.x=z[1].bounds.x;z[3].bounds.y=z[2].bounds.y;z[3].redraw();for(t=0;t<this.cornerHandles.length;t++)this.cornerHandles[t].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&&(t=new mxPoint(this.state.getCenterX(),
+this.state.getCenterY()),z=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),A=mxUtils.getBoundingBox(z,this.state.style[mxConstants.STYLE_ROTATION]||"0",t),t=null!=A?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state,z=null!=this.state.text?this.state.text.boundingBox:null,null==A&&(A=this.state),A=A.y+A.height,null!=z&&(A=Math.max(A,z.y+z.height)),this.linkHint.style.left=Math.max(0,Math.round(t.x+(t.width-this.linkHint.clientWidth)/
+2))+"px",this.linkHint.style.top=Math.round(A+this.verticalOffset/2+Editor.hintOffset)+"px")};var Ya=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){Ya.apply(this,arguments);if(null!=this.moveHandles){for(var t=0;t<this.moveHandles.length;t++)null!=this.moveHandles[t]&&null!=this.moveHandles[t].parentNode&&this.moveHandles[t].parentNode.removeChild(this.moveHandles[t]);this.moveHandles=null}if(null!=this.cornerHandles){for(t=0;t<this.cornerHandles.length;t++)null!=this.cornerHandles[t]&&
null!=this.cornerHandles[t].node&&null!=this.cornerHandles[t].node.parentNode&&this.cornerHandles[t].node.parentNode.removeChild(this.cornerHandles[t].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 jb=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(jb.apply(this),null!=this.state&&null!=this.linkHint)){var t=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(t=new mxRectangle(t.x,t.y,t.width,t.height),t.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(t.x+(t.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=
-Math.round(t.y+t.height+Editor.hintOffset)+"px"}};var $a=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){$a.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var ca=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){ca.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getSelectionModel().removeListener(this.changeHandler),
+Math.round(t.y+t.height+Editor.hintOffset)+"px"}};var bb=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){bb.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var da=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){da.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);
@@ -3259,40 +3259,40 @@ Format.prototype.labelIndex=0;Format.prototype.diagramIndex=0;Format.prototype.c
Format.prototype.init=function(){var a=this.editorUi,b=a.editor,f=b.graph;this.update=mxUtils.bind(this,function(d,g){this.refresh()});f.getSelectionModel().addListener(mxEvent.CHANGE,this.update);f.getModel().addListener(mxEvent.CHANGE,this.update);f.addListener(mxEvent.EDITING_STARTED,this.update);f.addListener(mxEvent.EDITING_STOPPED,this.update);f.getView().addListener("unitChanged",this.update);b.addListener("autosaveChanged",this.update);f.addListener(mxEvent.ROOT,this.update);a.addListener("styleChanged",
this.update);this.refresh()};Format.prototype.clear=function(){this.container.innerText="";if(null!=this.panels)for(var a=0;a<this.panels.length;a++)this.panels[a].destroy();this.panels=[]};Format.prototype.refresh=function(){null!=this.pendingRefresh&&(window.clearTimeout(this.pendingRefresh),this.pendingRefresh=null);this.pendingRefresh=window.setTimeout(mxUtils.bind(this,function(){this.immediateRefresh()}))};
Format.prototype.immediateRefresh=function(){if("0px"!=this.container.style.width){this.clear();var a=this.editorUi,b=a.editor.graph,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.color="rgb(112, 112, 112)";f.style.textAlign="left";f.style.cursor="default";var d=document.createElement("div");d.className="geFormatSection";d.style.textAlign="center";d.style.fontWeight="bold";d.style.paddingTop="8px";d.style.fontSize="13px";d.style.borderWidth="0px 0px 1px 1px";d.style.borderStyle=
-"solid";d.style.display="inline-block";d.style.height="25px";d.style.overflow="hidden";d.style.width="100%";this.container.appendChild(f);mxEvent.addListener(d,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(C){C.preventDefault()}));var g=a.getSelectionState(),e=g.containsLabel,k=null,n=null,u=mxUtils.bind(this,function(C,F,K,D){var O=mxUtils.bind(this,function(Q){k!=C&&(e?this.labelIndex=K:b.isSelectionEmpty()?this.diagramIndex=K:this.currentIndex=K,null!=k&&(k.style.backgroundColor=
-Format.inactiveTabBackgroundColor,k.style.borderBottomWidth="1px"),k=C,k.style.backgroundColor="",k.style.borderBottomWidth="0px",n!=F&&(null!=n&&(n.style.display="none"),n=F,n.style.display=""))});mxEvent.addListener(C,"click",O);mxEvent.addListener(C,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(Q){Q.preventDefault()}));(D&&null==k||K==(e?this.labelIndex:b.isSelectionEmpty()?this.diagramIndex:this.currentIndex))&&O()}),m=0;if(b.isSelectionEmpty()){mxUtils.write(d,mxResources.get("diagram"));
+"solid";d.style.display="inline-block";d.style.height="25px";d.style.overflow="hidden";d.style.width="100%";this.container.appendChild(f);mxEvent.addListener(d,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(C){C.preventDefault()}));var g=a.getSelectionState(),e=g.containsLabel,k=null,n=null,u=mxUtils.bind(this,function(C,G,J,D){var N=mxUtils.bind(this,function(Q){k!=C&&(e?this.labelIndex=J:b.isSelectionEmpty()?this.diagramIndex=J:this.currentIndex=J,null!=k&&(k.style.backgroundColor=
+Format.inactiveTabBackgroundColor,k.style.borderBottomWidth="1px"),k=C,k.style.backgroundColor="",k.style.borderBottomWidth="0px",n!=G&&(null!=n&&(n.style.display="none"),n=G,n.style.display=""))});mxEvent.addListener(C,"click",N);mxEvent.addListener(C,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(Q){Q.preventDefault()}));(D&&null==k||J==(e?this.labelIndex:b.isSelectionEmpty()?this.diagramIndex:this.currentIndex))&&N()}),m=0;if(b.isSelectionEmpty()){mxUtils.write(d,mxResources.get("diagram"));
d.style.borderLeftWidth="0px";f.appendChild(d);g=f.cloneNode(!1);this.panels.push(new DiagramFormatPanel(this,a,g));this.container.appendChild(g);if(null!=Editor.styles){g.style.display="none";d.style.width=this.showCloseButton?"106px":"50%";d.style.cursor="pointer";d.style.backgroundColor=Format.inactiveTabBackgroundColor;var r=d.cloneNode(!1);r.style.borderLeftWidth="1px";r.style.borderRightWidth="1px";r.style.backgroundColor=Format.inactiveTabBackgroundColor;u(d,g,m++);var x=f.cloneNode(!1);x.style.display=
"none";mxUtils.write(r,mxResources.get("style"));f.appendChild(r);this.panels.push(new DiagramStylePanel(this,a,x));this.container.appendChild(x);u(r,x,m++)}this.showCloseButton&&(r=d.cloneNode(!1),r.style.borderLeftWidth="1px",r.style.borderRightWidth="1px",r.style.borderBottomWidth="1px",r.style.backgroundColor=Format.inactiveTabBackgroundColor,r.style.position="absolute",r.style.right="0px",r.style.top="0px",r.style.width="25px",u=document.createElement("img"),u.setAttribute("border","0"),u.setAttribute("src",
Dialog.prototype.closeImage),u.setAttribute("title",mxResources.get("hide")),u.style.position="absolute",u.style.display="block",u.style.right="0px",u.style.top="8px",u.style.cursor="pointer",u.style.marginTop="1px",u.style.marginRight="6px",u.style.border="1px solid transparent",u.style.padding="1px",u.style.opacity=.5,r.appendChild(u),mxEvent.addListener(u,"click",function(){a.actions.get("formatPanel").funct()}),f.appendChild(r))}else if(b.isEditing())mxUtils.write(d,mxResources.get("text")),f.appendChild(d),
-this.panels.push(new TextFormatPanel(this,a,f));else{d.style.backgroundColor=Format.inactiveTabBackgroundColor;d.style.borderLeftWidth="1px";d.style.cursor="pointer";d.style.width=e||0==g.cells.length?"50%":"33.3%";r=d.cloneNode(!1);var A=r.cloneNode(!1);r.style.backgroundColor=Format.inactiveTabBackgroundColor;A.style.backgroundColor=Format.inactiveTabBackgroundColor;e?r.style.borderLeftWidth="0px":(d.style.borderLeftWidth="0px",mxUtils.write(d,mxResources.get("style")),f.appendChild(d),x=f.cloneNode(!1),
-x.style.display="none",this.panels.push(new StyleFormatPanel(this,a,x)),this.container.appendChild(x),u(d,x,m++));mxUtils.write(r,mxResources.get("text"));f.appendChild(r);d=f.cloneNode(!1);d.style.display="none";this.panels.push(new TextFormatPanel(this,a,d));this.container.appendChild(d);mxUtils.write(A,mxResources.get("arrange"));f.appendChild(A);f=f.cloneNode(!1);f.style.display="none";this.panels.push(new ArrangePanel(this,a,f));this.container.appendChild(f);0<g.cells.length?u(r,d,m++):r.style.display=
-"none";u(A,f,m++,!0)}}};BaseFormatPanel=function(a,b,f){this.format=a;this.editorUi=b;this.container=f;this.listeners=[]};BaseFormatPanel.prototype.buttonBackgroundColor="white";
-BaseFormatPanel.prototype.installInputHandler=function(a,b,f,d,g,e,k,n){e=null!=e?e:"";n=null!=n?n:!1;var u=this.editorUi,m=u.editor.graph;d=null!=d?d:1;g=null!=g?g:999;var r=null,x=!1,A=mxUtils.bind(this,function(C){var F=n?parseFloat(a.value):parseInt(a.value);isNaN(F)||b!=mxConstants.STYLE_ROTATION||(F=mxUtils.mod(Math.round(100*F),36E3)/100);F=Math.min(g,Math.max(d,isNaN(F)?f:F));if(m.cellEditor.isContentEditing()&&k)x||(x=!0,null!=r&&(m.cellEditor.restoreSelection(r),r=null),k(F),a.value=F+e,
-x=!1);else if(F!=mxUtils.getValue(u.getSelectionState().style,b,f)){m.isEditing()&&m.stopEditing(!0);m.getModel().beginUpdate();try{var K=u.getSelectionState().cells;m.setCellStyles(b,F,K);b==mxConstants.STYLE_FONTSIZE&&m.updateLabelElements(K,function(O){O.style.fontSize=F+"px";O.removeAttribute("size")});for(var D=0;D<K.length;D++)0==m.model.getChildCount(K[D])&&m.autoSizeCell(K[D],!1);u.fireEvent(new mxEventObject("styleChanged","keys",[b],"values",[F],"cells",K))}finally{m.getModel().endUpdate()}}a.value=
-F+e;mxEvent.consume(C)});k&&m.cellEditor.isContentEditing()&&(mxEvent.addListener(a,"mousedown",function(){document.activeElement==m.cellEditor.textarea&&(r=m.cellEditor.saveSelection())}),mxEvent.addListener(a,"touchstart",function(){document.activeElement==m.cellEditor.textarea&&(r=m.cellEditor.saveSelection())}));mxEvent.addListener(a,"change",A);mxEvent.addListener(a,"blur",A);return A};
+this.panels.push(new TextFormatPanel(this,a,f));else{d.style.backgroundColor=Format.inactiveTabBackgroundColor;d.style.borderLeftWidth="1px";d.style.cursor="pointer";d.style.width=e||0==g.cells.length?"50%":"33.3%";r=d.cloneNode(!1);var B=r.cloneNode(!1);r.style.backgroundColor=Format.inactiveTabBackgroundColor;B.style.backgroundColor=Format.inactiveTabBackgroundColor;e?r.style.borderLeftWidth="0px":(d.style.borderLeftWidth="0px",mxUtils.write(d,mxResources.get("style")),f.appendChild(d),x=f.cloneNode(!1),
+x.style.display="none",this.panels.push(new StyleFormatPanel(this,a,x)),this.container.appendChild(x),u(d,x,m++));mxUtils.write(r,mxResources.get("text"));f.appendChild(r);d=f.cloneNode(!1);d.style.display="none";this.panels.push(new TextFormatPanel(this,a,d));this.container.appendChild(d);mxUtils.write(B,mxResources.get("arrange"));f.appendChild(B);f=f.cloneNode(!1);f.style.display="none";this.panels.push(new ArrangePanel(this,a,f));this.container.appendChild(f);0<g.cells.length?u(r,d,m++):r.style.display=
+"none";u(B,f,m++,!0)}}};BaseFormatPanel=function(a,b,f){this.format=a;this.editorUi=b;this.container=f;this.listeners=[]};BaseFormatPanel.prototype.buttonBackgroundColor="white";
+BaseFormatPanel.prototype.installInputHandler=function(a,b,f,d,g,e,k,n){e=null!=e?e:"";n=null!=n?n:!1;var u=this.editorUi,m=u.editor.graph;d=null!=d?d:1;g=null!=g?g:999;var r=null,x=!1,B=mxUtils.bind(this,function(C){var G=n?parseFloat(a.value):parseInt(a.value);isNaN(G)||b!=mxConstants.STYLE_ROTATION||(G=mxUtils.mod(Math.round(100*G),36E3)/100);G=Math.min(g,Math.max(d,isNaN(G)?f:G));if(m.cellEditor.isContentEditing()&&k)x||(x=!0,null!=r&&(m.cellEditor.restoreSelection(r),r=null),k(G),a.value=G+e,
+x=!1);else if(G!=mxUtils.getValue(u.getSelectionState().style,b,f)){m.isEditing()&&m.stopEditing(!0);m.getModel().beginUpdate();try{var J=u.getSelectionState().cells;m.setCellStyles(b,G,J);b==mxConstants.STYLE_FONTSIZE&&m.updateLabelElements(J,function(N){N.style.fontSize=G+"px";N.removeAttribute("size")});for(var D=0;D<J.length;D++)0==m.model.getChildCount(J[D])&&m.autoSizeCell(J[D],!1);u.fireEvent(new mxEventObject("styleChanged","keys",[b],"values",[G],"cells",J))}finally{m.getModel().endUpdate()}}a.value=
+G+e;mxEvent.consume(C)});k&&m.cellEditor.isContentEditing()&&(mxEvent.addListener(a,"mousedown",function(){document.activeElement==m.cellEditor.textarea&&(r=m.cellEditor.saveSelection())}),mxEvent.addListener(a,"touchstart",function(){document.activeElement==m.cellEditor.textarea&&(r=m.cellEditor.saveSelection())}));mxEvent.addListener(a,"change",B);mxEvent.addListener(a,"blur",B);return B};
BaseFormatPanel.prototype.createPanel=function(){var a=document.createElement("div");a.className="geFormatSection";a.style.padding="12px 0px 12px 14px";return a};BaseFormatPanel.prototype.createTitle=function(a){var b=document.createElement("div");b.style.padding="0px 0px 6px 0px";b.style.whiteSpace="nowrap";b.style.overflow="hidden";b.style.width="200px";b.style.fontWeight="bold";mxUtils.write(b,a);return b};
BaseFormatPanel.prototype.addAction=function(a,b){var f=this.editorUi.actions.get(b);b=null;null!=f&&f.isEnabled()&&(b=mxUtils.button(f.label,function(d){f.funct(d,d)}),b.setAttribute("title",f.label+(null!=f.shortcut?" ("+f.shortcut+")":"")),b.style.marginBottom="2px",b.style.width="210px",a.appendChild(b),result=!0);return b};
BaseFormatPanel.prototype.addActions=function(a,b){for(var f=null,d=null,g=0,e=0;e<b.length;e++){var k=this.addAction(a,b[e]);null!=k&&(g++,0==mxUtils.mod(g,2)&&(d.style.marginRight="2px",d.style.width="104px",k.style.width="104px",f.parentNode.removeChild(f)),f=mxUtils.br(a),d=k)}return g};
BaseFormatPanel.prototype.createStepper=function(a,b,f,d,g,e,k){f=null!=f?f:1;d=null!=d?d:9;var n=10*f,u=document.createElement("div");mxUtils.setPrefixedStyle(u.style,"borderRadius","3px");u.style.border="1px solid rgb(192, 192, 192)";u.style.position="absolute";var m=document.createElement("div");m.style.borderBottom="1px solid rgb(192, 192, 192)";m.style.position="relative";m.style.height=d+"px";m.style.width="10px";m.className="geBtnUp";u.appendChild(m);var r=m.cloneNode(!1);r.style.border="none";
-r.style.height=d+"px";r.className="geBtnDown";u.appendChild(r);mxEvent.addGestureListeners(r,function(A){mxEvent.consume(A)},null,function(A){""==a.value&&(a.value=e||"2");var C=k?parseFloat(a.value):parseInt(a.value);isNaN(C)||(a.value=C-(mxEvent.isShiftDown(A)?n:f),null!=b&&b(A));mxEvent.consume(A)});mxEvent.addGestureListeners(m,function(A){mxEvent.consume(A)},null,function(A){""==a.value&&(a.value=e||"0");var C=k?parseFloat(a.value):parseInt(a.value);isNaN(C)||(a.value=C+(mxEvent.isShiftDown(A)?
-n:f),null!=b&&b(A));mxEvent.consume(A)});if(g){var x=null;mxEvent.addGestureListeners(u,function(A){mxEvent.consume(A)},null,function(A){if(null!=x){try{x.select()}catch(C){}x=null;mxEvent.consume(A)}})}else mxEvent.addListener(u,"click",function(A){mxEvent.consume(A)});return u};
+r.style.height=d+"px";r.className="geBtnDown";u.appendChild(r);mxEvent.addGestureListeners(r,function(B){mxEvent.consume(B)},null,function(B){""==a.value&&(a.value=e||"2");var C=k?parseFloat(a.value):parseInt(a.value);isNaN(C)||(a.value=C-(mxEvent.isShiftDown(B)?n:f),null!=b&&b(B));mxEvent.consume(B)});mxEvent.addGestureListeners(m,function(B){mxEvent.consume(B)},null,function(B){""==a.value&&(a.value=e||"0");var C=k?parseFloat(a.value):parseInt(a.value);isNaN(C)||(a.value=C+(mxEvent.isShiftDown(B)?
+n:f),null!=b&&b(B));mxEvent.consume(B)});if(g){var x=null;mxEvent.addGestureListeners(u,function(B){mxEvent.consume(B)},null,function(B){if(null!=x){try{x.select()}catch(C){}x=null;mxEvent.consume(B)}})}else mxEvent.addListener(u,"click",function(B){mxEvent.consume(B)});return u};
BaseFormatPanel.prototype.createOption=function(a,b,f,d,g){var e=document.createElement("div");e.style.padding="3px 0px 3px 0px";e.style.whiteSpace="nowrap";e.style.textOverflow="ellipsis";e.style.overflow="hidden";e.style.width="200px";e.style.height="18px";var k=document.createElement("input");k.setAttribute("type","checkbox");k.style.margin="1px 6px 0px 0px";k.style.verticalAlign="top";e.appendChild(k);var n=document.createElement("span");n.style.verticalAlign="top";n.style.userSelect="none";mxUtils.write(n,
-a);e.appendChild(n);var u=!1,m=b(),r=function(x,A){u||(u=!0,x?(k.setAttribute("checked","checked"),k.defaultChecked=!0,k.checked=!0):(k.removeAttribute("checked"),k.defaultChecked=!1,k.checked=!1),m!=x&&(m=x,b()!=m&&f(m,A)),u=!1)};mxEvent.addListener(e,"click",function(x){if("disabled"!=k.getAttribute("disabled")){var A=mxEvent.getSource(x);if(A==e||A==n)k.checked=!k.checked;r(k.checked,x)}});r(m);null!=d&&(d.install(r),this.listeners.push(d));null!=g&&g(e);return e};
-BaseFormatPanel.prototype.createCellOption=function(a,b,f,d,g,e,k,n,u){var m=this.editorUi,r=m.editor.graph;d=null!=d?"null"==d?null:d:1;g=null!=g?"null"==g?null:g:0;var x=null!=u?r.getCommonStyle(u):m.getSelectionState().style;return this.createOption(a,function(){return mxUtils.getValue(x,b,f)!=g},function(A){n&&r.stopEditing();if(null!=k)k.funct();else{r.getModel().beginUpdate();try{var C=null!=u?u:m.getSelectionState().cells;A=A?d:g;r.setCellStyles(b,A,C);null!=e&&e(C,A);m.fireEvent(new mxEventObject("styleChanged",
-"keys",[b],"values",[A],"cells",C))}finally{r.getModel().endUpdate()}}},{install:function(A){this.listener=function(){A(mxUtils.getValue(x,b,f)!=g)};r.getModel().addListener(mxEvent.CHANGE,this.listener)},destroy:function(){r.getModel().removeListener(this.listener)}})};
+a);e.appendChild(n);var u=!1,m=b(),r=function(x,B){u||(u=!0,x?(k.setAttribute("checked","checked"),k.defaultChecked=!0,k.checked=!0):(k.removeAttribute("checked"),k.defaultChecked=!1,k.checked=!1),m!=x&&(m=x,b()!=m&&f(m,B)),u=!1)};mxEvent.addListener(e,"click",function(x){if("disabled"!=k.getAttribute("disabled")){var B=mxEvent.getSource(x);if(B==e||B==n)k.checked=!k.checked;r(k.checked,x)}});r(m);null!=d&&(d.install(r),this.listeners.push(d));null!=g&&g(e);return e};
+BaseFormatPanel.prototype.createCellOption=function(a,b,f,d,g,e,k,n,u){var m=this.editorUi,r=m.editor.graph;d=null!=d?"null"==d?null:d:1;g=null!=g?"null"==g?null:g:0;var x=null!=u?r.getCommonStyle(u):m.getSelectionState().style;return this.createOption(a,function(){return mxUtils.getValue(x,b,f)!=g},function(B){n&&r.stopEditing();if(null!=k)k.funct();else{r.getModel().beginUpdate();try{var C=null!=u?u:m.getSelectionState().cells;B=B?d:g;r.setCellStyles(b,B,C);null!=e&&e(C,B);m.fireEvent(new mxEventObject("styleChanged",
+"keys",[b],"values",[B],"cells",C))}finally{r.getModel().endUpdate()}}},{install:function(B){this.listener=function(){B(mxUtils.getValue(x,b,f)!=g)};r.getModel().addListener(mxEvent.CHANGE,this.listener)},destroy:function(){r.getModel().removeListener(this.listener)}})};
BaseFormatPanel.prototype.createColorOption=function(a,b,f,d,g,e,k,n){var u=document.createElement("div");u.style.padding="3px 0px 3px 0px";u.style.whiteSpace="nowrap";u.style.overflow="hidden";u.style.width="200px";u.style.height="18px";var m=document.createElement("input");m.setAttribute("type","checkbox");m.style.margin="1px 6px 0px 0px";m.style.verticalAlign="top";k||u.appendChild(m);var r=document.createElement("span");r.style.verticalAlign="top";mxUtils.write(r,a);u.appendChild(r);var x=b(),
-A=!1,C=null,F=function(D,O,Q){if(!A){var R="null"==d?null:d;A=!0;D=/(^#?[a-zA-Z0-9]*$)/.test(D)?D:R;R=null!=D&&D!=mxConstants.NONE?D:R;var P=document.createElement("div");P.style.width="36px";P.style.height="12px";P.style.margin="3px";P.style.border="1px solid black";P.style.backgroundColor="default"==R?n:R;C.innerText="";C.appendChild(P);null!=D&&D!=mxConstants.NONE&&1<D.length&&"string"===typeof D&&(R="#"==D.charAt(0)?D.substring(1).toUpperCase():D,R=ColorDialog.prototype.colorNames[R],C.setAttribute("title",
-null!=R?R+" (Shift+Click for Color Dropper)":"Shift+Click for Color Dropper"));null!=D&&D!=mxConstants.NONE?(m.setAttribute("checked","checked"),m.defaultChecked=!0,m.checked=!0):(m.removeAttribute("checked"),m.defaultChecked=!1,m.checked=!1);C.style.display=m.checked||k?"":"none";null!=e&&e("null"==D?null:D);x=D;O||(Q||k||b()!=x)&&f("null"==x?null:x,x);A=!1}},K=document.createElement("input");K.setAttribute("type","color");K.style.visibility="hidden";K.style.width="0px";K.style.height="0px";K.style.border=
-"none";u.appendChild(K);C=mxUtils.button("",mxUtils.bind(this,function(D){var O=x;"default"==O&&(O=n);!mxEvent.isShiftDown(D)||mxClient.IS_IE||mxClient.IS_IE11?this.editorUi.pickColor(O,function(Q){F(Q,null,!0)},n):(K.value=O,K.click(),mxEvent.addListener(K,"input",function(){F(K.value,null,!0)}));mxEvent.consume(D)}));C.style.position="absolute";C.style.marginTop="-3px";C.style.left="178px";C.style.height="22px";C.className="geColorBtn";C.style.display=m.checked||k?"":"none";u.appendChild(C);a=null!=
-x&&"string"===typeof x&&"#"==x.charAt(0)?x.substring(1).toUpperCase():x;a=ColorDialog.prototype.colorNames[a];C.setAttribute("title",null!=a?a+" (Shift+Click for Color Dropper)":"Shift+Click for Color Dropper");mxEvent.addListener(u,"click",function(D){D=mxEvent.getSource(D);if(D==m||"INPUT"!=D.nodeName)D!=m&&(m.checked=!m.checked),m.checked||null==x||x==mxConstants.NONE||d==mxConstants.NONE||(d=x),F(m.checked?d:mxConstants.NONE)});F(x,!0);null!=g&&(g.install(F),this.listeners.push(g));return u};
+B=!1,C=null,G=function(D,N,Q){if(!B){var R="null"==d?null:d;B=!0;D=/(^#?[a-zA-Z0-9]*$)/.test(D)?D:R;R=null!=D&&D!=mxConstants.NONE?D:R;var P=document.createElement("div");P.style.width="36px";P.style.height="12px";P.style.margin="3px";P.style.border="1px solid black";P.style.backgroundColor="default"==R?n:R;C.innerText="";C.appendChild(P);null!=D&&D!=mxConstants.NONE&&1<D.length&&"string"===typeof D&&(R="#"==D.charAt(0)?D.substring(1).toUpperCase():D,R=ColorDialog.prototype.colorNames[R],C.setAttribute("title",
+null!=R?R+" (Shift+Click for Color Dropper)":"Shift+Click for Color Dropper"));null!=D&&D!=mxConstants.NONE?(m.setAttribute("checked","checked"),m.defaultChecked=!0,m.checked=!0):(m.removeAttribute("checked"),m.defaultChecked=!1,m.checked=!1);C.style.display=m.checked||k?"":"none";null!=e&&e("null"==D?null:D);x=D;N||(Q||k||b()!=x)&&f("null"==x?null:x,x);B=!1}},J=document.createElement("input");J.setAttribute("type","color");J.style.visibility="hidden";J.style.width="0px";J.style.height="0px";J.style.border=
+"none";u.appendChild(J);C=mxUtils.button("",mxUtils.bind(this,function(D){var N=x;"default"==N&&(N=n);!mxEvent.isShiftDown(D)||mxClient.IS_IE||mxClient.IS_IE11?this.editorUi.pickColor(N,function(Q){G(Q,null,!0)},n):(J.value=N,J.click(),mxEvent.addListener(J,"input",function(){G(J.value,null,!0)}));mxEvent.consume(D)}));C.style.position="absolute";C.style.marginTop="-3px";C.style.left="178px";C.style.height="22px";C.className="geColorBtn";C.style.display=m.checked||k?"":"none";u.appendChild(C);a=null!=
+x&&"string"===typeof x&&"#"==x.charAt(0)?x.substring(1).toUpperCase():x;a=ColorDialog.prototype.colorNames[a];C.setAttribute("title",null!=a?a+" (Shift+Click for Color Dropper)":"Shift+Click for Color Dropper");mxEvent.addListener(u,"click",function(D){D=mxEvent.getSource(D);if(D==m||"INPUT"!=D.nodeName)D!=m&&(m.checked=!m.checked),m.checked||null==x||x==mxConstants.NONE||d==mxConstants.NONE||(d=x),G(m.checked?d:mxConstants.NONE)});G(x,!0);null!=g&&(g.install(G),this.listeners.push(g));return u};
BaseFormatPanel.prototype.createCellColorOption=function(a,b,f,d,g,e){var k=this.editorUi,n=k.editor.graph;return this.createColorOption(a,function(){var u=n.view.getState(k.getSelectionState().cells[0]);return null!=u?mxUtils.getValue(u.style,b,null):null},function(u,m){n.getModel().beginUpdate();try{var r=k.getSelectionState().cells;n.setCellStyles(b,u,r);null!=g&&g(u);k.fireEvent(new mxEventObject("styleChanged","keys",[b],"values",[u],"cells",r))}finally{n.getModel().endUpdate()}},f||mxConstants.NONE,
{install:function(u){this.listener=function(){var m=n.view.getState(k.getSelectionState().cells[0]);null!=m&&u(mxUtils.getValue(m.style,b,null),!0)};n.getModel().addListener(mxEvent.CHANGE,this.listener)},destroy:function(){n.getModel().removeListener(this.listener)}},d,null,e)};
BaseFormatPanel.prototype.addArrow=function(a,b,f){b=null!=b?b:10;var d=document.createElement("div");d.style.borderLeft="1px solid #a0a0a0";d.style.display="inline-block";d.style.height=b+"px";d.style.paddingRight="4px";d.style.padding="6px";f?(d.style.verticalAlign="top",d.style.marginLeft="1px"):(b=10-b,2==b?d.style.paddingTop="6px":0<b?d.style.paddingTop=6-b+"px":d.style.marginTop="-2px");b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("valign","middle");b.setAttribute("src",
Toolbar.prototype.dropDownImage);d.appendChild(b);b=d.getElementsByTagName("img")[0];b.style.position="relative";b.style.left="1px";b.style.top=mxClient.IS_FF?"0px":"-4px";mxUtils.setOpacity(d,70);b=a.getElementsByTagName("div")[0];null!=b&&(b.style.paddingRight="6px",b.style.marginLeft="4px",b.style.marginTop="-1px",b.style.display="inline-block",mxUtils.setOpacity(b,60));mxUtils.setOpacity(a,100);a.style.border="1px solid #a0a0a0";a.style.backgroundColor=this.buttonBackgroundColor;a.style.backgroundImage=
"none";a.style.width="auto";a.className+=" geColorBtn";mxUtils.setPrefixedStyle(a.style,"borderRadius","3px");a.appendChild(d);return b};
BaseFormatPanel.prototype.addUnitInput=function(a,b,f,d,g,e,k,n,u){k=null!=k?k:0;b=document.createElement("input");b.style.position="absolute";b.style.textAlign="right";b.style.marginTop="-2px";b.style.left=228-f-d+"px";b.style.width=d+"px";b.style.height="21px";b.style.border="1px solid rgb(160, 160, 160)";b.style.borderRadius="4px";b.style.boxSizing="border-box";a.appendChild(b);d=this.createStepper(b,g,e,null,n,null,u);d.style.marginTop=k-2+"px";d.style.left=228-f+"px";a.appendChild(d);return b};
-BaseFormatPanel.prototype.createRelativeOption=function(a,b,f,d,g){f=null!=f?f:52;var e=this.editorUi,k=e.editor.graph,n=this.createPanel();n.style.paddingTop="10px";n.style.paddingBottom="10px";mxUtils.write(n,a);n.style.fontWeight="bold";a=mxUtils.bind(this,function(r){if(null!=d)d(u);else{var x=parseInt(u.value);x=Math.min(100,Math.max(0,isNaN(x)?100:x));var A=k.view.getState(e.getSelectionState().cells[0]);null!=A&&x!=mxUtils.getValue(A.style,b,100)&&(100==x&&(x=null),A=e.getSelectionState().cells,
-k.setCellStyles(b,x,A),this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",[b],"values",[x],"cells",A)));u.value=(null!=x?x:"100")+" %"}mxEvent.consume(r)});var u=this.addUnitInput(n,"%",16,f,a,10,-15,null!=d);if(null!=b){var m=mxUtils.bind(this,function(r,x,A){if(A||u!=document.activeElement)r=e.getSelectionState(),r=parseInt(mxUtils.getValue(r.style,b,100)),u.value=isNaN(r)?"":r+" %"});mxEvent.addListener(u,"keydown",function(r){13==r.keyCode?(k.container.focus(),mxEvent.consume(r)):
+BaseFormatPanel.prototype.createRelativeOption=function(a,b,f,d,g){f=null!=f?f:52;var e=this.editorUi,k=e.editor.graph,n=this.createPanel();n.style.paddingTop="10px";n.style.paddingBottom="10px";mxUtils.write(n,a);n.style.fontWeight="bold";a=mxUtils.bind(this,function(r){if(null!=d)d(u);else{var x=parseInt(u.value);x=Math.min(100,Math.max(0,isNaN(x)?100:x));var B=k.view.getState(e.getSelectionState().cells[0]);null!=B&&x!=mxUtils.getValue(B.style,b,100)&&(100==x&&(x=null),B=e.getSelectionState().cells,
+k.setCellStyles(b,x,B),this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",[b],"values",[x],"cells",B)));u.value=(null!=x?x:"100")+" %"}mxEvent.consume(r)});var u=this.addUnitInput(n,"%",16,f,a,10,-15,null!=d);if(null!=b){var m=mxUtils.bind(this,function(r,x,B){if(B||u!=document.activeElement)r=e.getSelectionState(),r=parseInt(mxUtils.getValue(r.style,b,100)),u.value=isNaN(r)?"":r+" %"});mxEvent.addListener(u,"keydown",function(r){13==r.keyCode?(k.container.focus(),mxEvent.consume(r)):
27==r.keyCode&&(m(null,null,!0),k.container.focus(),mxEvent.consume(r))});k.getModel().addListener(mxEvent.CHANGE,m);this.listeners.push({destroy:function(){k.getModel().removeListener(m)}});m()}mxEvent.addListener(u,"blur",a);mxEvent.addListener(u,"change",a);null!=g&&g(u);return n};
BaseFormatPanel.prototype.addLabel=function(a,b,f,d){d=null!=d?d:61;var g=document.createElement("div");mxUtils.write(g,b);g.style.position="absolute";g.style.left=240-f-d+"px";g.style.width=d+"px";g.style.marginTop="6px";g.style.textAlign="center";a.appendChild(g)};
BaseFormatPanel.prototype.addKeyHandler=function(a,b){mxEvent.addListener(a,"keydown",mxUtils.bind(this,function(f){13==f.keyCode?(this.editorUi.editor.graph.container.focus(),mxEvent.consume(f)):27==f.keyCode&&(null!=b&&b(null,null,!0),this.editorUi.editor.graph.container.focus(),mxEvent.consume(f))}))};
@@ -3323,111 +3323,111 @@ BaseFormatPanel.prototype.getUnit=function(){switch(this.editorUi.editor.graph.v
BaseFormatPanel.prototype.fromUnit=function(a){switch(this.editorUi.editor.graph.view.unit){case mxConstants.POINTS:return a;case mxConstants.INCHES:return a*mxConstants.PIXELS_PER_INCH;case mxConstants.MILLIMETERS:return a*mxConstants.PIXELS_PER_MM;case mxConstants.METERS:return a*mxConstants.PIXELS_PER_MM*1E3}};BaseFormatPanel.prototype.isFloatUnit=function(){return this.editorUi.editor.graph.view.unit!=mxConstants.POINTS};
BaseFormatPanel.prototype.getUnitStep=function(){switch(this.editorUi.editor.graph.view.unit){case mxConstants.POINTS:return 1;case mxConstants.INCHES:return.1;case mxConstants.MILLIMETERS:return.5;case mxConstants.METERS:return.001}};
ArrangePanel.prototype.addGeometry=function(a){var b=this,f=this.editorUi,d=f.editor.graph,g=d.getModel(),e=f.getSelectionState(),k=this.createPanel();k.style.paddingBottom="8px";var n=document.createElement("div");n.style.position="absolute";n.style.width="50px";n.style.marginTop="0px";n.style.fontWeight="bold";mxUtils.write(n,mxResources.get("size"));k.appendChild(n);var u=this.addUnitInput(k,this.getUnit(),87,52,function(){C.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),
-m=this.addUnitInput(k,this.getUnit(),16,52,function(){F.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),r=document.createElement("div");r.className="geSprite geSprite-fit";r.setAttribute("title",mxResources.get("autosize")+" ("+this.editorUi.actions.get("autosize").shortcut+")");r.style.position="relative";r.style.cursor="pointer";r.style.marginTop="-3px";r.style.border="0px";r.style.left="42px";mxUtils.setOpacity(r,50);mxEvent.addListener(r,"mouseenter",function(){mxUtils.setOpacity(r,
+m=this.addUnitInput(k,this.getUnit(),16,52,function(){G.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),r=document.createElement("div");r.className="geSprite geSprite-fit";r.setAttribute("title",mxResources.get("autosize")+" ("+this.editorUi.actions.get("autosize").shortcut+")");r.style.position="relative";r.style.cursor="pointer";r.style.marginTop="-3px";r.style.border="0px";r.style.left="42px";mxUtils.setOpacity(r,50);mxEvent.addListener(r,"mouseenter",function(){mxUtils.setOpacity(r,
100)});mxEvent.addListener(r,"mouseleave",function(){mxUtils.setOpacity(r,50)});mxEvent.addListener(r,"click",function(){f.actions.get("autosize").funct()});k.appendChild(r);e.row?(u.style.visibility="hidden",u.nextSibling.style.visibility="hidden"):this.addLabel(k,mxResources.get("width"),87);this.addLabel(k,mxResources.get("height"),16);mxUtils.br(k);n=document.createElement("div");n.style.paddingTop="8px";n.style.paddingRight="20px";n.style.whiteSpace="nowrap";n.style.textAlign="right";var x=this.createCellOption(mxResources.get("constrainProportions"),
-mxConstants.STYLE_ASPECT,null,"fixed","null");x.style.width="210px";n.appendChild(x);e.cell||e.row?r.style.visibility="hidden":k.appendChild(n);var A=x.getElementsByTagName("input")[0];this.addKeyHandler(u,Q);this.addKeyHandler(m,Q);var C=this.addGeometryHandler(u,function(T,U,fa){if(d.isTableCell(fa))return d.setTableColumnWidth(fa,U-T.width,!0),!0;0<T.width&&(U=Math.max(1,b.fromUnit(U)),A.checked&&(T.height=Math.round(T.height*U*100/T.width)/100),T.width=U)});var F=this.addGeometryHandler(m,function(T,
-U,fa){d.isTableCell(fa)&&(fa=d.model.getParent(fa));if(d.isTableRow(fa))return d.setTableRowHeight(fa,U-T.height),!0;0<T.height&&(U=Math.max(1,b.fromUnit(U)),A.checked&&(T.width=Math.round(T.width*U*100/T.height)/100),T.height=U)});(e.resizable||e.row||e.cell)&&a.appendChild(k);var K=this.createPanel();K.style.paddingBottom="30px";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("position"));
-K.appendChild(n);var D=this.addUnitInput(K,this.getUnit(),87,52,function(){R.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),O=this.addUnitInput(K,this.getUnit(),16,52,function(){P.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit());mxUtils.br(K);this.addLabel(K,mxResources.get("left"),87);this.addLabel(K,mxResources.get("top"),16);var Q=mxUtils.bind(this,function(T,U,fa){e=f.getSelectionState();if(e.containsLabel||e.vertices.length!=d.getSelectionCount()||
-null==e.width||null==e.height)k.style.display="none";else{k.style.display="";if(fa||document.activeElement!=u)u.value=this.inUnit(e.width)+(""==e.width?"":" "+this.getUnit());if(fa||document.activeElement!=m)m.value=this.inUnit(e.height)+(""==e.height?"":" "+this.getUnit())}if(e.vertices.length==d.getSelectionCount()&&null!=e.x&&null!=e.y){K.style.display="";if(fa||document.activeElement!=D)D.value=this.inUnit(e.x)+(""==e.x?"":" "+this.getUnit());if(fa||document.activeElement!=O)O.value=this.inUnit(e.y)+
-(""==e.y?"":" "+this.getUnit())}else K.style.display="none"});this.addKeyHandler(D,Q);this.addKeyHandler(O,Q);g.addListener(mxEvent.CHANGE,Q);this.listeners.push({destroy:function(){g.removeListener(Q)}});Q();var R=this.addGeometryHandler(D,function(T,U){U=b.fromUnit(U);T.relative?T.offset.x=U:T.x=U});var P=this.addGeometryHandler(O,function(T,U){U=b.fromUnit(U);T.relative?T.offset.y=U:T.y=U});if(e.movable){if(0==e.edges.length&&1==e.vertices.length&&g.isEdge(g.getParent(e.vertices[0]))){var Z=d.getCellGeometry(e.vertices[0]);
-null!=Z&&Z.relative&&(n=mxUtils.button(mxResources.get("center"),mxUtils.bind(this,function(T){g.beginUpdate();try{Z=Z.clone(),Z.x=0,Z.y=0,Z.offset=new mxPoint,g.setGeometry(e.vertices[0],Z)}finally{g.endUpdate()}})),n.setAttribute("title",mxResources.get("center")),n.style.width="210px",n.style.position="absolute",mxUtils.br(K),mxUtils.br(K),K.appendChild(n))}a.appendChild(K)}};
-ArrangePanel.prototype.addGeometryHandler=function(a,b){function f(n){if(""!=a.value){var u=parseFloat(a.value);if(isNaN(u))a.value=e+" "+k.getUnit();else if(u!=e){g.getModel().beginUpdate();try{for(var m=d.getSelectionState().cells,r=0;r<m.length;r++)if(g.getModel().isVertex(m[r])){var x=g.getCellGeometry(m[r]);if(null!=x&&(x=x.clone(),!b(x,u,m[r]))){var A=g.view.getState(m[r]);null!=A&&g.isRecursiveVertexResize(A)&&g.resizeChildCells(m[r],x);g.getModel().setGeometry(m[r],x);g.constrainChildCells(m[r])}}}finally{g.getModel().endUpdate()}e=
+mxConstants.STYLE_ASPECT,null,"fixed","null");x.style.width="210px";n.appendChild(x);e.cell||e.row?r.style.visibility="hidden":k.appendChild(n);var B=x.getElementsByTagName("input")[0];this.addKeyHandler(u,Q);this.addKeyHandler(m,Q);var C=this.addGeometryHandler(u,function(U,V,ia){if(d.isTableCell(ia))return d.setTableColumnWidth(ia,V-U.width,!0),!0;0<U.width&&(V=Math.max(1,b.fromUnit(V)),B.checked&&(U.height=Math.round(U.height*V*100/U.width)/100),U.width=V)});var G=this.addGeometryHandler(m,function(U,
+V,ia){d.isTableCell(ia)&&(ia=d.model.getParent(ia));if(d.isTableRow(ia))return d.setTableRowHeight(ia,V-U.height),!0;0<U.height&&(V=Math.max(1,b.fromUnit(V)),B.checked&&(U.width=Math.round(U.width*V*100/U.height)/100),U.height=V)});(e.resizable||e.row||e.cell)&&a.appendChild(k);var J=this.createPanel();J.style.paddingBottom="30px";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("position"));
+J.appendChild(n);var D=this.addUnitInput(J,this.getUnit(),87,52,function(){R.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),N=this.addUnitInput(J,this.getUnit(),16,52,function(){P.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit());mxUtils.br(J);this.addLabel(J,mxResources.get("left"),87);this.addLabel(J,mxResources.get("top"),16);var Q=mxUtils.bind(this,function(U,V,ia){e=f.getSelectionState();if(e.containsLabel||e.vertices.length!=d.getSelectionCount()||
+null==e.width||null==e.height)k.style.display="none";else{k.style.display="";if(ia||document.activeElement!=u)u.value=this.inUnit(e.width)+(""==e.width?"":" "+this.getUnit());if(ia||document.activeElement!=m)m.value=this.inUnit(e.height)+(""==e.height?"":" "+this.getUnit())}if(e.vertices.length==d.getSelectionCount()&&null!=e.x&&null!=e.y){J.style.display="";if(ia||document.activeElement!=D)D.value=this.inUnit(e.x)+(""==e.x?"":" "+this.getUnit());if(ia||document.activeElement!=N)N.value=this.inUnit(e.y)+
+(""==e.y?"":" "+this.getUnit())}else J.style.display="none"});this.addKeyHandler(D,Q);this.addKeyHandler(N,Q);g.addListener(mxEvent.CHANGE,Q);this.listeners.push({destroy:function(){g.removeListener(Q)}});Q();var R=this.addGeometryHandler(D,function(U,V){V=b.fromUnit(V);U.relative?U.offset.x=V:U.x=V});var P=this.addGeometryHandler(N,function(U,V){V=b.fromUnit(V);U.relative?U.offset.y=V:U.y=V});if(e.movable){if(0==e.edges.length&&1==e.vertices.length&&g.isEdge(g.getParent(e.vertices[0]))){var Z=d.getCellGeometry(e.vertices[0]);
+null!=Z&&Z.relative&&(n=mxUtils.button(mxResources.get("center"),mxUtils.bind(this,function(U){g.beginUpdate();try{Z=Z.clone(),Z.x=0,Z.y=0,Z.offset=new mxPoint,g.setGeometry(e.vertices[0],Z)}finally{g.endUpdate()}})),n.setAttribute("title",mxResources.get("center")),n.style.width="210px",n.style.position="absolute",mxUtils.br(J),mxUtils.br(J),J.appendChild(n))}a.appendChild(J)}};
+ArrangePanel.prototype.addGeometryHandler=function(a,b){function f(n){if(""!=a.value){var u=parseFloat(a.value);if(isNaN(u))a.value=e+" "+k.getUnit();else if(u!=e){g.getModel().beginUpdate();try{for(var m=d.getSelectionState().cells,r=0;r<m.length;r++)if(g.getModel().isVertex(m[r])){var x=g.getCellGeometry(m[r]);if(null!=x&&(x=x.clone(),!b(x,u,m[r]))){var B=g.view.getState(m[r]);null!=B&&g.isRecursiveVertexResize(B)&&g.resizeChildCells(m[r],x);g.getModel().setGeometry(m[r],x);g.constrainChildCells(m[r])}}}finally{g.getModel().endUpdate()}e=
u;a.value=u+" "+k.getUnit()}}mxEvent.consume(n)}var d=this.editorUi,g=d.editor.graph,e=null,k=this;mxEvent.addListener(a,"blur",f);mxEvent.addListener(a,"change",f);mxEvent.addListener(a,"focus",function(){e=a.value});return f};
ArrangePanel.prototype.addEdgeGeometryHandler=function(a,b){function f(k){if(""!=a.value){var n=parseFloat(a.value);if(isNaN(n))a.value=e+" pt";else if(n!=e){g.getModel().beginUpdate();try{for(var u=d.getSelectionState().cells,m=0;m<u.length;m++)if(g.getModel().isEdge(u[m])){var r=g.getCellGeometry(u[m]);null!=r&&(r=r.clone(),b(r,n),g.getModel().setGeometry(u[m],r))}}finally{g.getModel().endUpdate()}e=n;a.value=n+" pt"}}mxEvent.consume(k)}var d=this.editorUi,g=d.editor.graph,e=null;mxEvent.addListener(a,
"blur",f);mxEvent.addListener(a,"change",f);mxEvent.addListener(a,"focus",function(){e=a.value});return f};
-ArrangePanel.prototype.addEdgeGeometry=function(a){var b=this.editorUi,f=b.editor.graph,d=b.getSelectionState(),g=this.createPanel(),e=document.createElement("div");e.style.position="absolute";e.style.width="70px";e.style.marginTop="0px";e.style.fontWeight="bold";mxUtils.write(e,mxResources.get("width"));g.appendChild(e);var k=this.addUnitInput(g,"pt",12,44,function(){n.apply(this,arguments)});mxUtils.br(g);this.addKeyHandler(k,F);var n=mxUtils.bind(this,function(R){var P=parseInt(k.value);P=Math.min(999,
+ArrangePanel.prototype.addEdgeGeometry=function(a){var b=this.editorUi,f=b.editor.graph,d=b.getSelectionState(),g=this.createPanel(),e=document.createElement("div");e.style.position="absolute";e.style.width="70px";e.style.marginTop="0px";e.style.fontWeight="bold";mxUtils.write(e,mxResources.get("width"));g.appendChild(e);var k=this.addUnitInput(g,"pt",12,44,function(){n.apply(this,arguments)});mxUtils.br(g);this.addKeyHandler(k,G);var n=mxUtils.bind(this,function(R){var P=parseInt(k.value);P=Math.min(999,
Math.max(1,isNaN(P)?1:P));if(P!=mxUtils.getValue(d.style,"width",mxCellRenderer.defaultShapes.flexArrow.prototype.defaultWidth)){var Z=b.getSelectionState().cells;f.setCellStyles("width",P,Z);b.fireEvent(new mxEventObject("styleChanged","keys",["width"],"values",[P],"cells",Z))}k.value=P+" pt";mxEvent.consume(R)});mxEvent.addListener(k,"blur",n);mxEvent.addListener(k,"change",n);a.appendChild(g);var u=this.createPanel();u.style.paddingBottom="30px";e=document.createElement("div");e.style.position=
-"absolute";e.style.width="70px";e.style.marginTop="0px";mxUtils.write(e,mxResources.get("linestart"));u.appendChild(e);var m=this.addUnitInput(u,"pt",87,52,function(){K.apply(this,arguments)}),r=this.addUnitInput(u,"pt",16,52,function(){D.apply(this,arguments)});mxUtils.br(u);this.addLabel(u,mxResources.get("left"),87);this.addLabel(u,mxResources.get("top"),16);a.appendChild(u);this.addKeyHandler(m,F);this.addKeyHandler(r,F);var x=this.createPanel();x.style.paddingBottom="30px";e=document.createElement("div");
-e.style.position="absolute";e.style.width="70px";e.style.marginTop="0px";mxUtils.write(e,mxResources.get("lineend"));x.appendChild(e);var A=this.addUnitInput(x,"pt",87,52,function(){O.apply(this,arguments)}),C=this.addUnitInput(x,"pt",16,52,function(){Q.apply(this,arguments)});mxUtils.br(x);this.addLabel(x,mxResources.get("left"),87);this.addLabel(x,mxResources.get("top"),16);a.appendChild(x);this.addKeyHandler(A,F);this.addKeyHandler(C,F);var F=mxUtils.bind(this,function(R,P,Z){d=b.getSelectionState();
+"absolute";e.style.width="70px";e.style.marginTop="0px";mxUtils.write(e,mxResources.get("linestart"));u.appendChild(e);var m=this.addUnitInput(u,"pt",87,52,function(){J.apply(this,arguments)}),r=this.addUnitInput(u,"pt",16,52,function(){D.apply(this,arguments)});mxUtils.br(u);this.addLabel(u,mxResources.get("left"),87);this.addLabel(u,mxResources.get("top"),16);a.appendChild(u);this.addKeyHandler(m,G);this.addKeyHandler(r,G);var x=this.createPanel();x.style.paddingBottom="30px";e=document.createElement("div");
+e.style.position="absolute";e.style.width="70px";e.style.marginTop="0px";mxUtils.write(e,mxResources.get("lineend"));x.appendChild(e);var B=this.addUnitInput(x,"pt",87,52,function(){N.apply(this,arguments)}),C=this.addUnitInput(x,"pt",16,52,function(){Q.apply(this,arguments)});mxUtils.br(x);this.addLabel(x,mxResources.get("left"),87);this.addLabel(x,mxResources.get("top"),16);a.appendChild(x);this.addKeyHandler(B,G);this.addKeyHandler(C,G);var G=mxUtils.bind(this,function(R,P,Z){d=b.getSelectionState();
R=d.cells[0];if("link"==d.style.shape||"flexArrow"==d.style.shape){if(g.style.display="",Z||document.activeElement!=k)Z=mxUtils.getValue(d.style,"width",mxCellRenderer.defaultShapes.flexArrow.prototype.defaultWidth),k.value=Z+" pt"}else g.style.display="none";1==d.cells.length&&f.model.isEdge(R)?(Z=f.model.getGeometry(R),null!=Z.sourcePoint&&null==f.model.getTerminal(R,!0)?(m.value=Z.sourcePoint.x,r.value=Z.sourcePoint.y):u.style.display="none",null!=Z.targetPoint&&null==f.model.getTerminal(R,!1)?
-(A.value=Z.targetPoint.x,C.value=Z.targetPoint.y):x.style.display="none"):(u.style.display="none",x.style.display="none")});var K=this.addEdgeGeometryHandler(m,function(R,P){R.sourcePoint.x=P});var D=this.addEdgeGeometryHandler(r,function(R,P){R.sourcePoint.y=P});var O=this.addEdgeGeometryHandler(A,function(R,P){R.targetPoint.x=P});var Q=this.addEdgeGeometryHandler(C,function(R,P){R.targetPoint.y=P});f.getModel().addListener(mxEvent.CHANGE,F);this.listeners.push({destroy:function(){f.getModel().removeListener(F)}});
-F()};TextFormatPanel=function(a,b,f){BaseFormatPanel.call(this,a,b,f);this.init()};mxUtils.extend(TextFormatPanel,BaseFormatPanel);TextFormatPanel.prototype.init=function(){this.container.style.borderBottom="none";this.addFont(this.container)};
-TextFormatPanel.prototype.addFont=function(a){function b(ca,t){ca.style.backgroundImage=t?Editor.isDarkMode()?"linear-gradient(rgb(0 161 241) 0px, rgb(0, 97, 146) 100%)":"linear-gradient(#c5ecff 0px,#87d4fb 100%)":""}var f=this.editorUi,d=f.editor.graph,g=f.getSelectionState(),e=this.createTitle(mxResources.get("font"));e.style.paddingLeft="14px";e.style.paddingTop="10px";e.style.paddingBottom="6px";a.appendChild(e);e=this.createPanel();e.style.paddingTop="2px";e.style.paddingBottom="2px";e.style.position=
+(B.value=Z.targetPoint.x,C.value=Z.targetPoint.y):x.style.display="none"):(u.style.display="none",x.style.display="none")});var J=this.addEdgeGeometryHandler(m,function(R,P){R.sourcePoint.x=P});var D=this.addEdgeGeometryHandler(r,function(R,P){R.sourcePoint.y=P});var N=this.addEdgeGeometryHandler(B,function(R,P){R.targetPoint.x=P});var Q=this.addEdgeGeometryHandler(C,function(R,P){R.targetPoint.y=P});f.getModel().addListener(mxEvent.CHANGE,G);this.listeners.push({destroy:function(){f.getModel().removeListener(G)}});
+G()};TextFormatPanel=function(a,b,f){BaseFormatPanel.call(this,a,b,f);this.init()};mxUtils.extend(TextFormatPanel,BaseFormatPanel);TextFormatPanel.prototype.init=function(){this.container.style.borderBottom="none";this.addFont(this.container)};
+TextFormatPanel.prototype.addFont=function(a){function b(da,t){da.style.backgroundImage=t?Editor.isDarkMode()?"linear-gradient(rgb(0 161 241) 0px, rgb(0, 97, 146) 100%)":"linear-gradient(#c5ecff 0px,#87d4fb 100%)":""}var f=this.editorUi,d=f.editor.graph,g=f.getSelectionState(),e=this.createTitle(mxResources.get("font"));e.style.paddingLeft="14px";e.style.paddingTop="10px";e.style.paddingBottom="6px";a.appendChild(e);e=this.createPanel();e.style.paddingTop="2px";e.style.paddingBottom="2px";e.style.position=
"relative";e.style.marginLeft="-2px";e.style.borderWidth="0px";e.className="geToolbarContainer";if(d.cellEditor.isContentEditing()){var k=e.cloneNode(),n=this.editorUi.toolbar.addMenu(mxResources.get("style"),mxResources.get("style"),!0,"formatBlock",k,null,!0);n.style.color="rgb(112, 112, 112)";n.style.whiteSpace="nowrap";n.style.overflow="hidden";n.style.margin="0px";this.addArrow(n);n.style.width="200px";n.style.height="15px";n=n.getElementsByTagName("div")[0];n.style.cssFloat="right";a.appendChild(k)}a.appendChild(e);
k=this.createPanel();k.style.marginTop="8px";k.style.borderTop="1px solid #c0c0c0";k.style.paddingTop="6px";k.style.paddingBottom="6px";var u=this.editorUi.toolbar.addMenu("Helvetica",mxResources.get("fontFamily"),!0,"fontFamily",e,null,!0);u.style.color="rgb(112, 112, 112)";u.style.whiteSpace="nowrap";u.style.overflow="hidden";u.style.margin="0px";this.addArrow(u);u.style.width="200px";u.style.height="15px";n=e.cloneNode(!1);n.style.marginLeft="-3px";var m=this.editorUi.toolbar.addItems(["bold",
"italic","underline"],n,!0);m[0].setAttribute("title",mxResources.get("bold")+" ("+this.editorUi.actions.get("bold").shortcut+")");m[1].setAttribute("title",mxResources.get("italic")+" ("+this.editorUi.actions.get("italic").shortcut+")");m[2].setAttribute("title",mxResources.get("underline")+" ("+this.editorUi.actions.get("underline").shortcut+")");var r=this.editorUi.toolbar.addItems(["vertical"],n,!0)[0];a.appendChild(n);this.styleButtons(m);this.styleButtons([r]);var x=e.cloneNode(!1);x.style.marginLeft=
-"-3px";x.style.paddingBottom="0px";var A=function(ca){return function(){return ca()}},C=this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),d.cellEditor.isContentEditing()?function(ca){d.cellEditor.alignText(mxConstants.ALIGN_LEFT,ca);f.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ALIGN],"values",[mxConstants.ALIGN_LEFT],"cells",g.cells))}:A(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT])),x),F=this.editorUi.toolbar.addButton("geSprite-center",
-mxResources.get("center"),d.cellEditor.isContentEditing()?function(ca){d.cellEditor.alignText(mxConstants.ALIGN_CENTER,ca);f.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ALIGN],"values",[mxConstants.ALIGN_CENTER],"cells",g.cells))}:A(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER])),x),K=this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),d.cellEditor.isContentEditing()?function(ca){d.cellEditor.alignText(mxConstants.ALIGN_RIGHT,
-ca);f.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ALIGN],"values",[mxConstants.ALIGN_RIGHT],"cells",g.cells))}:A(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT])),x);this.styleButtons([C,F,K]);if(d.cellEditor.isContentEditing()){var D=this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("strikethrough"),function(){document.execCommand("strikeThrough",!1,null)},n);this.styleButtons([D]);D.firstChild.style.background=
+"-3px";x.style.paddingBottom="0px";var B=function(da){return function(){return da()}},C=this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),d.cellEditor.isContentEditing()?function(da){d.cellEditor.alignText(mxConstants.ALIGN_LEFT,da);f.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ALIGN],"values",[mxConstants.ALIGN_LEFT],"cells",g.cells))}:B(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT])),x),G=this.editorUi.toolbar.addButton("geSprite-center",
+mxResources.get("center"),d.cellEditor.isContentEditing()?function(da){d.cellEditor.alignText(mxConstants.ALIGN_CENTER,da);f.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ALIGN],"values",[mxConstants.ALIGN_CENTER],"cells",g.cells))}:B(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER])),x),J=this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),d.cellEditor.isContentEditing()?function(da){d.cellEditor.alignText(mxConstants.ALIGN_RIGHT,
+da);f.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ALIGN],"values",[mxConstants.ALIGN_RIGHT],"cells",g.cells))}:B(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT])),x);this.styleButtons([C,G,J]);if(d.cellEditor.isContentEditing()){var D=this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("strikethrough"),function(){document.execCommand("strikeThrough",!1,null)},n);this.styleButtons([D]);D.firstChild.style.background=
"url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PGRlZnM+PHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjR2MjRIMFYweiIvPjwvZGVmcz48Y2xpcFBhdGggaWQ9ImIiPjx1c2UgeGxpbms6aHJlZj0iI2EiIG92ZXJmbG93PSJ2aXNpYmxlIi8+PC9jbGlwUGF0aD48cGF0aCBjbGlwLXBhdGg9InVybCgjYikiIGZpbGw9IiMwMTAxMDEiIGQ9Ik03LjI0IDguNzVjLS4yNi0uNDgtLjM5LTEuMDMtLjM5LTEuNjcgMC0uNjEuMTMtMS4xNi40LTEuNjcuMjYtLjUuNjMtLjkzIDEuMTEtMS4yOS40OC0uMzUgMS4wNS0uNjMgMS43LS44My42Ni0uMTkgMS4zOS0uMjkgMi4xOC0uMjkuODEgMCAxLjU0LjExIDIuMjEuMzQuNjYuMjIgMS4yMy41NCAxLjY5Ljk0LjQ3LjQuODMuODggMS4wOCAxLjQzLjI1LjU1LjM4IDEuMTUuMzggMS44MWgtMy4wMWMwLS4zMS0uMDUtLjU5LS4xNS0uODUtLjA5LS4yNy0uMjQtLjQ5LS40NC0uNjgtLjItLjE5LS40NS0uMzMtLjc1LS40NC0uMy0uMS0uNjYtLjE2LTEuMDYtLjE2LS4zOSAwLS43NC4wNC0xLjAzLjEzLS4yOS4wOS0uNTMuMjEtLjcyLjM2LS4xOS4xNi0uMzQuMzQtLjQ0LjU1LS4xLjIxLS4xNS40My0uMTUuNjYgMCAuNDguMjUuODguNzQgMS4yMS4zOC4yNS43Ny40OCAxLjQxLjdINy4zOWMtLjA1LS4wOC0uMTEtLjE3LS4xNS0uMjV6TTIxIDEydi0ySDN2Mmg5LjYyYy4xOC4wNy40LjE0LjU1LjIuMzcuMTcuNjYuMzQuODcuNTEuMjEuMTcuMzUuMzYuNDMuNTcuMDcuMi4xMS40My4xMS42OSAwIC4yMy0uMDUuNDUtLjE0LjY2LS4wOS4yLS4yMy4zOC0uNDIuNTMtLjE5LjE1LS40Mi4yNi0uNzEuMzUtLjI5LjA4LS42My4xMy0xLjAxLjEzLS40MyAwLS44My0uMDQtMS4xOC0uMTNzLS42Ni0uMjMtLjkxLS40MmMtLjI1LS4xOS0uNDUtLjQ0LS41OS0uNzUtLjE0LS4zMS0uMjUtLjc2LS4yNS0xLjIxSDYuNGMwIC41NS4wOCAxLjEzLjI0IDEuNTguMTYuNDUuMzcuODUuNjUgMS4yMS4yOC4zNS42LjY2Ljk4LjkyLjM3LjI2Ljc4LjQ4IDEuMjIuNjUuNDQuMTcuOS4zIDEuMzguMzkuNDguMDguOTYuMTMgMS40NC4xMy44IDAgMS41My0uMDkgMi4xOC0uMjhzMS4yMS0uNDUgMS42Ny0uNzljLjQ2LS4zNC44Mi0uNzcgMS4wNy0xLjI3cy4zOC0xLjA3LjM4LTEuNzFjMC0uNi0uMS0xLjE0LS4zMS0xLjYxLS4wNS0uMTEtLjExLS4yMy0uMTctLjMzSDIxeiIvPjwvc3ZnPg==)";
-D.firstChild.style.backgroundPosition="2px 2px";D.firstChild.style.backgroundSize="18px 18px";this.styleButtons([D])}var O=this.editorUi.toolbar.addButton("geSprite-top",mxResources.get("top"),A(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP])),x),Q=this.editorUi.toolbar.addButton("geSprite-middle",mxResources.get("middle"),A(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE])),x),R=this.editorUi.toolbar.addButton("geSprite-bottom",
-mxResources.get("bottom"),A(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM])),x);this.styleButtons([O,Q,R]);a.appendChild(x);var P,Z,T,U,fa;if(d.cellEditor.isContentEditing()){O.style.display="none";Q.style.display="none";R.style.display="none";r.style.display="none";var ha=this.editorUi.toolbar.addButton("geSprite-justifyfull",mxResources.get("block"),function(){1==ha.style.opacity&&document.execCommand("justifyfull",!1,null)},x);ha.style.marginRight=
-"9px";ha.style.opacity=1;this.styleButtons([ha,P=this.editorUi.toolbar.addButton("geSprite-subscript",mxResources.get("subscript")+" ("+Editor.ctrlKey+"+,)",function(){document.execCommand("subscript",!1,null)},x),Z=this.editorUi.toolbar.addButton("geSprite-superscript",mxResources.get("superscript")+" ("+Editor.ctrlKey+"+.)",function(){document.execCommand("superscript",!1,null)},x)]);P.style.marginLeft="10px";A=x.cloneNode(!1);A.style.paddingTop="4px";x=[this.editorUi.toolbar.addButton("geSprite-orderedlist",
-mxResources.get("numberedList"),function(){document.execCommand("insertorderedlist",!1,null)},A),this.editorUi.toolbar.addButton("geSprite-unorderedlist",mxResources.get("bulletedList"),function(){document.execCommand("insertunorderedlist",!1,null)},A),this.editorUi.toolbar.addButton("geSprite-outdent",mxResources.get("decreaseIndent"),function(){document.execCommand("outdent",!1,null)},A),this.editorUi.toolbar.addButton("geSprite-indent",mxResources.get("increaseIndent"),function(){document.execCommand("indent",
-!1,null)},A),this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("removeFormat"),function(){document.execCommand("removeformat",!1,null)},A),this.editorUi.toolbar.addButton("geSprite-code",mxResources.get("html"),function(){d.cellEditor.toggleViewMode()},A)];this.styleButtons(x);x[x.length-2].style.marginLeft="10px";a.appendChild(A)}else m[2].style.marginRight="12px",K.style.marginRight="12px";x=e.cloneNode(!1);x.style.marginLeft="0px";x.style.paddingTop="8px";x.style.paddingBottom=
+D.firstChild.style.backgroundPosition="2px 2px";D.firstChild.style.backgroundSize="18px 18px";this.styleButtons([D])}var N=this.editorUi.toolbar.addButton("geSprite-top",mxResources.get("top"),B(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP])),x),Q=this.editorUi.toolbar.addButton("geSprite-middle",mxResources.get("middle"),B(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE])),x),R=this.editorUi.toolbar.addButton("geSprite-bottom",
+mxResources.get("bottom"),B(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM])),x);this.styleButtons([N,Q,R]);a.appendChild(x);var P,Z,U,V,ia;if(d.cellEditor.isContentEditing()){N.style.display="none";Q.style.display="none";R.style.display="none";r.style.display="none";var ha=this.editorUi.toolbar.addButton("geSprite-justifyfull",mxResources.get("block"),function(){1==ha.style.opacity&&document.execCommand("justifyfull",!1,null)},x);ha.style.marginRight=
+"9px";ha.style.opacity=1;this.styleButtons([ha,P=this.editorUi.toolbar.addButton("geSprite-subscript",mxResources.get("subscript")+" ("+Editor.ctrlKey+"+,)",function(){document.execCommand("subscript",!1,null)},x),Z=this.editorUi.toolbar.addButton("geSprite-superscript",mxResources.get("superscript")+" ("+Editor.ctrlKey+"+.)",function(){document.execCommand("superscript",!1,null)},x)]);P.style.marginLeft="10px";B=x.cloneNode(!1);B.style.paddingTop="4px";x=[this.editorUi.toolbar.addButton("geSprite-orderedlist",
+mxResources.get("numberedList"),function(){document.execCommand("insertorderedlist",!1,null)},B),this.editorUi.toolbar.addButton("geSprite-unorderedlist",mxResources.get("bulletedList"),function(){document.execCommand("insertunorderedlist",!1,null)},B),this.editorUi.toolbar.addButton("geSprite-outdent",mxResources.get("decreaseIndent"),function(){document.execCommand("outdent",!1,null)},B),this.editorUi.toolbar.addButton("geSprite-indent",mxResources.get("increaseIndent"),function(){document.execCommand("indent",
+!1,null)},B),this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("removeFormat"),function(){document.execCommand("removeformat",!1,null)},B),this.editorUi.toolbar.addButton("geSprite-code",mxResources.get("html"),function(){d.cellEditor.toggleViewMode()},B)];this.styleButtons(x);x[x.length-2].style.marginLeft="10px";a.appendChild(B)}else m[2].style.marginRight="12px",J.style.marginRight="12px";x=e.cloneNode(!1);x.style.marginLeft="0px";x.style.paddingTop="8px";x.style.paddingBottom=
"4px";x.style.fontWeight="normal";mxUtils.write(x,mxResources.get("position"));var ba=document.createElement("select");ba.style.position="absolute";ba.style.left="126px";ba.style.width="98px";ba.style.border="1px solid rgb(160, 160, 160)";ba.style.borderRadius="4px";ba.style.marginTop="-2px";D="topLeft top topRight left center right bottomLeft bottom bottomRight".split(" ");var qa={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]};for(A=0;A<D.length;A++){var I=document.createElement("option");I.setAttribute("value",D[A]);mxUtils.write(I,mxResources.get(D[A]));ba.appendChild(I)}x.appendChild(ba);D=e.cloneNode(!1);D.style.marginLeft="0px";D.style.paddingTop=
-"4px";D.style.paddingBottom="4px";D.style.fontWeight="normal";mxUtils.write(D,mxResources.get("writingDirection"));var L=document.createElement("select");L.style.position="absolute";L.style.border="1px solid rgb(160, 160, 160)";L.style.left="126px";L.style.width="98px";L.style.borderRadius="4px";L.style.marginTop="-2px";I=["automatic","leftToRight","rightToLeft"];var H={automatic:null,leftToRight:mxConstants.TEXT_DIRECTION_LTR,rightToLeft:mxConstants.TEXT_DIRECTION_RTL};for(A=0;A<I.length;A++){var S=
-document.createElement("option");S.setAttribute("value",I[A]);mxUtils.write(S,mxResources.get(I[A]));L.appendChild(S)}D.appendChild(L);d.isEditing()||(a.appendChild(x),mxEvent.addListener(ba,"change",function(ca){d.getModel().beginUpdate();try{var t=qa[ba.value];null!=t&&(d.setCellStyles(mxConstants.STYLE_LABEL_POSITION,t[0],g.cells),d.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION,t[1],g.cells),d.setCellStyles(mxConstants.STYLE_ALIGN,t[2],g.cells),d.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,
-t[3],g.cells))}finally{d.getModel().endUpdate()}mxEvent.consume(ca)}),a.appendChild(D),mxEvent.addListener(L,"change",function(ca){d.setCellStyles(mxConstants.STYLE_TEXT_DIRECTION,H[L.value],g.cells);mxEvent.consume(ca)}));var V=document.createElement("input");V.style.position="absolute";V.style.border="1px solid rgb(160, 160, 160)";V.style.textAlign="right";V.style.marginTop="4px";V.style.left="161px";V.style.width="53px";V.style.borderRadius="4px";V.style.height="23px";V.style.boxSizing="border-box";
-n.appendChild(V);var ea=null;x=this.installInputHandler(V,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize,1,999," pt",function(ca){if(window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11){var t=function(G,M){null!=d.cellEditor.textarea&&G!=d.cellEditor.textarea&&d.cellEditor.textarea.contains(G)&&(M||z.containsNode(G,!0))&&("FONT"==G.nodeName?(G.removeAttribute("size"),G.style.fontSize=ca+"px"):mxUtils.getCurrentStyle(G).fontSize!=ca+"px"&&(mxUtils.getCurrentStyle(G.parentNode).fontSize!=
-ca+"px"?G.style.fontSize=ca+"px":G.style.fontSize=""));f.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTSIZE],"values",[ca],"cells",g.cells))},z=window.getSelection(),B=0<z.rangeCount?z.getRangeAt(0).commonAncestorContainer:d.cellEditor.textarea;B!=d.cellEditor.textarea&&B.nodeType==mxConstants.NODETYPE_ELEMENT||document.execCommand("fontSize",!1,"1");B!=d.cellEditor.textarea&&(B=B.parentNode);if(null!=B&&B.nodeType==mxConstants.NODETYPE_ELEMENT){var E=B.getElementsByTagName("*");
-t(B);for(B=0;B<E.length;B++)t(E[B])}V.value=ca+" pt"}else if(window.getSelection||document.selection)if(t=function(G,M){for(;null!=M;){if(M===G)return!0;M=M.parentNode}return!1},E=null,document.selection?E=document.selection.createRange().parentElement():(z=window.getSelection(),0<z.rangeCount&&(E=z.getRangeAt(0).commonAncestorContainer)),null!=E&&t(d.cellEditor.textarea,E))for(ea=ca,document.execCommand("fontSize",!1,"4"),E=d.cellEditor.textarea.getElementsByTagName("font"),B=0;B<E.length;B++)if("4"==
-E[B].getAttribute("size")){E[B].removeAttribute("size");E[B].style.fontSize=ea+"px";window.setTimeout(function(){V.value=ea+" pt";ea=null},0);break}},!0);x=this.createStepper(V,x,1,10,!0,Menus.prototype.defaultFontSize);x.style.display=V.style.display;x.style.marginTop="4px";x.style.left="214px";n.appendChild(x);n=u.getElementsByTagName("div")[0];n.style.cssFloat="right";var ka=null,wa=d.shapeBackgroundColor,W=null,aa=d.shapeForegroundColor,oa=d.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),
-function(){return wa},function(ca){document.execCommand("backcolor",!1,ca!=mxConstants.NONE?ca:"transparent");f.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],"values",[ca],"cells",g.cells))},d.shapeBackgroundColor,{install:function(ca){ka=ca},destroy:function(){ka=null}},null,!0):this.createCellColorOption(mxResources.get("backgroundColor"),mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"default",null,function(ca){d.updateLabelElements(g.cells,function(t){t.style.backgroundColor=
-null})},d.shapeBackgroundColor);oa.style.fontWeight="bold";var ua=this.createCellColorOption(mxResources.get("borderColor"),mxConstants.STYLE_LABEL_BORDERCOLOR,"default",null,null,d.shapeForegroundColor);ua.style.fontWeight="bold";n=1<=g.vertices.length?d.stylesheet.getDefaultVertexStyle():d.stylesheet.getDefaultEdgeStyle();n=d.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("fontColor"),function(){return aa},function(ca){if(mxClient.IS_FF){for(var t=d.cellEditor.textarea.getElementsByTagName("font"),
-z=[],B=0;B<t.length;B++)z.push({node:t[B],color:t[B].getAttribute("color")});document.execCommand("forecolor",!1,ca!=mxConstants.NONE?ca:"transparent");f.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTCOLOR],"values",[ca],"cells",g.cells));ca=d.cellEditor.textarea.getElementsByTagName("font");for(B=0;B<ca.length;B++)if(B>=z.length||ca[B]!=z[B].node||ca[B]==z[B].node&&ca[B].getAttribute("color")!=z[B].color){z=ca[B].firstChild;if(null!=z&&"A"==z.nodeName&&null==z.nextSibling&&
-null!=z.firstChild){ca[B].parentNode.insertBefore(z,ca[B]);for(t=z.firstChild;null!=t;){var E=t.nextSibling;ca[B].appendChild(t);t=E}z.appendChild(ca[B])}break}}else document.execCommand("forecolor",!1,ca!=mxConstants.NONE?ca:"transparent"),f.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTCOLOR],"values",[ca],"cells",g.cells))},null!=n[mxConstants.STYLE_FONTCOLOR]?n[mxConstants.STYLE_FONTCOLOR]:d.shapeForegroundColor,{install:function(ca){W=ca},destroy:function(){W=null}},
-null,!0):this.createCellColorOption(mxResources.get("fontColor"),mxConstants.STYLE_FONTCOLOR,"default",function(ca){oa.style.display=ca==mxConstants.NONE?"none":"";ua.style.display=oa.style.display},function(ca){ca==mxConstants.NONE?d.setCellStyles(mxConstants.STYLE_NOLABEL,"1",g.cells):d.setCellStyles(mxConstants.STYLE_NOLABEL,null,g.cells);d.setCellStyles(mxConstants.STYLE_FONTCOLOR,ca,g.cells);d.updateLabelElements(g.cells,function(t){t.removeAttribute("color");t.style.color=null})},d.shapeForegroundColor);
-n.style.fontWeight="bold";k.appendChild(n);k.appendChild(oa);d.cellEditor.isContentEditing()||k.appendChild(ua);a.appendChild(k);k=this.createPanel();k.style.paddingTop="2px";k.style.paddingBottom="4px";n=d.filterSelectionCells(mxUtils.bind(this,function(ca){var t=d.view.getState(ca);return null==t||d.isAutoSizeState(t)||d.getModel().isEdge(ca)||!d.isTableRow(ca)&&!d.isTableCell(ca)&&!d.isCellResizable(ca)}));x=this.createCellOption(mxResources.get("wordWrap"),mxConstants.STYLE_WHITE_SPACE,null,"wrap",
+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]};for(B=0;B<D.length;B++){var O=document.createElement("option");O.setAttribute("value",D[B]);mxUtils.write(O,mxResources.get(D[B]));ba.appendChild(O)}x.appendChild(ba);D=e.cloneNode(!1);D.style.marginLeft="0px";D.style.paddingTop=
+"4px";D.style.paddingBottom="4px";D.style.fontWeight="normal";mxUtils.write(D,mxResources.get("writingDirection"));var S=document.createElement("select");S.style.position="absolute";S.style.border="1px solid rgb(160, 160, 160)";S.style.left="126px";S.style.width="98px";S.style.borderRadius="4px";S.style.marginTop="-2px";O=["automatic","leftToRight","rightToLeft"];var F={automatic:null,leftToRight:mxConstants.TEXT_DIRECTION_LTR,rightToLeft:mxConstants.TEXT_DIRECTION_RTL};for(B=0;B<O.length;B++){var L=
+document.createElement("option");L.setAttribute("value",O[B]);mxUtils.write(L,mxResources.get(O[B]));S.appendChild(L)}D.appendChild(S);d.isEditing()||(a.appendChild(x),mxEvent.addListener(ba,"change",function(da){d.getModel().beginUpdate();try{var t=qa[ba.value];null!=t&&(d.setCellStyles(mxConstants.STYLE_LABEL_POSITION,t[0],g.cells),d.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION,t[1],g.cells),d.setCellStyles(mxConstants.STYLE_ALIGN,t[2],g.cells),d.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,
+t[3],g.cells))}finally{d.getModel().endUpdate()}mxEvent.consume(da)}),a.appendChild(D),mxEvent.addListener(S,"change",function(da){d.setCellStyles(mxConstants.STYLE_TEXT_DIRECTION,F[S.value],g.cells);mxEvent.consume(da)}));var T=document.createElement("input");T.style.position="absolute";T.style.border="1px solid rgb(160, 160, 160)";T.style.textAlign="right";T.style.marginTop="4px";T.style.left="161px";T.style.width="53px";T.style.borderRadius="4px";T.style.height="23px";T.style.boxSizing="border-box";
+n.appendChild(T);var ca=null;x=this.installInputHandler(T,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize,1,999," pt",function(da){if(window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11){var t=function(H,K){null!=d.cellEditor.textarea&&H!=d.cellEditor.textarea&&d.cellEditor.textarea.contains(H)&&(K||z.containsNode(H,!0))&&("FONT"==H.nodeName?(H.removeAttribute("size"),H.style.fontSize=da+"px"):mxUtils.getCurrentStyle(H).fontSize!=da+"px"&&(mxUtils.getCurrentStyle(H.parentNode).fontSize!=
+da+"px"?H.style.fontSize=da+"px":H.style.fontSize=""));f.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTSIZE],"values",[da],"cells",g.cells))},z=window.getSelection(),A=0<z.rangeCount?z.getRangeAt(0).commonAncestorContainer:d.cellEditor.textarea;A!=d.cellEditor.textarea&&A.nodeType==mxConstants.NODETYPE_ELEMENT||document.execCommand("fontSize",!1,"1");A!=d.cellEditor.textarea&&(A=A.parentNode);if(null!=A&&A.nodeType==mxConstants.NODETYPE_ELEMENT){var E=A.getElementsByTagName("*");
+t(A);for(A=0;A<E.length;A++)t(E[A])}T.value=da+" pt"}else if(window.getSelection||document.selection)if(t=function(H,K){for(;null!=K;){if(K===H)return!0;K=K.parentNode}return!1},E=null,document.selection?E=document.selection.createRange().parentElement():(z=window.getSelection(),0<z.rangeCount&&(E=z.getRangeAt(0).commonAncestorContainer)),null!=E&&t(d.cellEditor.textarea,E))for(ca=da,document.execCommand("fontSize",!1,"4"),E=d.cellEditor.textarea.getElementsByTagName("font"),A=0;A<E.length;A++)if("4"==
+E[A].getAttribute("size")){E[A].removeAttribute("size");E[A].style.fontSize=ca+"px";window.setTimeout(function(){T.value=ca+" pt";ca=null},0);break}},!0);x=this.createStepper(T,x,1,10,!0,Menus.prototype.defaultFontSize);x.style.display=T.style.display;x.style.marginTop="4px";x.style.left="214px";n.appendChild(x);n=u.getElementsByTagName("div")[0];n.style.cssFloat="right";var fa=null,wa=d.shapeBackgroundColor,W=null,aa=d.shapeForegroundColor,oa=d.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),
+function(){return wa},function(da){document.execCommand("backcolor",!1,da!=mxConstants.NONE?da:"transparent");f.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],"values",[da],"cells",g.cells))},d.shapeBackgroundColor,{install:function(da){fa=da},destroy:function(){fa=null}},null,!0):this.createCellColorOption(mxResources.get("backgroundColor"),mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"default",null,function(da){d.updateLabelElements(g.cells,function(t){t.style.backgroundColor=
+null})},d.shapeBackgroundColor);oa.style.fontWeight="bold";var sa=this.createCellColorOption(mxResources.get("borderColor"),mxConstants.STYLE_LABEL_BORDERCOLOR,"default",null,null,d.shapeForegroundColor);sa.style.fontWeight="bold";n=1<=g.vertices.length?d.stylesheet.getDefaultVertexStyle():d.stylesheet.getDefaultEdgeStyle();n=d.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("fontColor"),function(){return aa},function(da){if(mxClient.IS_FF){for(var t=d.cellEditor.textarea.getElementsByTagName("font"),
+z=[],A=0;A<t.length;A++)z.push({node:t[A],color:t[A].getAttribute("color")});document.execCommand("forecolor",!1,da!=mxConstants.NONE?da:"transparent");f.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTCOLOR],"values",[da],"cells",g.cells));da=d.cellEditor.textarea.getElementsByTagName("font");for(A=0;A<da.length;A++)if(A>=z.length||da[A]!=z[A].node||da[A]==z[A].node&&da[A].getAttribute("color")!=z[A].color){z=da[A].firstChild;if(null!=z&&"A"==z.nodeName&&null==z.nextSibling&&
+null!=z.firstChild){da[A].parentNode.insertBefore(z,da[A]);for(t=z.firstChild;null!=t;){var E=t.nextSibling;da[A].appendChild(t);t=E}z.appendChild(da[A])}break}}else document.execCommand("forecolor",!1,da!=mxConstants.NONE?da:"transparent"),f.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTCOLOR],"values",[da],"cells",g.cells))},null!=n[mxConstants.STYLE_FONTCOLOR]?n[mxConstants.STYLE_FONTCOLOR]:d.shapeForegroundColor,{install:function(da){W=da},destroy:function(){W=null}},
+null,!0):this.createCellColorOption(mxResources.get("fontColor"),mxConstants.STYLE_FONTCOLOR,"default",function(da){oa.style.display=da==mxConstants.NONE?"none":"";sa.style.display=oa.style.display},function(da){da==mxConstants.NONE?d.setCellStyles(mxConstants.STYLE_NOLABEL,"1",g.cells):d.setCellStyles(mxConstants.STYLE_NOLABEL,null,g.cells);d.setCellStyles(mxConstants.STYLE_FONTCOLOR,da,g.cells);d.updateLabelElements(g.cells,function(t){t.removeAttribute("color");t.style.color=null})},d.shapeForegroundColor);
+n.style.fontWeight="bold";k.appendChild(n);k.appendChild(oa);d.cellEditor.isContentEditing()||k.appendChild(sa);a.appendChild(k);k=this.createPanel();k.style.paddingTop="2px";k.style.paddingBottom="4px";n=d.filterSelectionCells(mxUtils.bind(this,function(da){var t=d.view.getState(da);return null==t||d.isAutoSizeState(t)||d.getModel().isEdge(da)||!d.isTableRow(da)&&!d.isTableCell(da)&&!d.isCellResizable(da)}));x=this.createCellOption(mxResources.get("wordWrap"),mxConstants.STYLE_WHITE_SPACE,null,"wrap",
"null",null,null,!0,n);x.style.fontWeight="bold";0<n.length&&k.appendChild(x);n=this.createCellOption(mxResources.get("formattedText"),"html",0,null,null,null,f.actions.get("formattedText"));n.style.fontWeight="bold";k.appendChild(n);n=this.createPanel();n.style.paddingTop="10px";n.style.paddingBottom="28px";n.style.fontWeight="normal";x=document.createElement("div");x.style.position="absolute";x.style.width="70px";x.style.marginTop="0px";x.style.fontWeight="bold";mxUtils.write(x,mxResources.get("spacing"));
-n.appendChild(x);var Ja=this.addUnitInput(n,"pt",87,52,function(){Ya.apply(this,arguments)}),Ga=this.addUnitInput(n,"pt",16,52,function(){Va.apply(this,arguments)});mxUtils.br(n);this.addLabel(n,mxResources.get("top"),87);this.addLabel(n,mxResources.get("global"),16);mxUtils.br(n);mxUtils.br(n);var va=this.addUnitInput(n,"pt",158,52,function(){jb.apply(this,arguments)}),za=this.addUnitInput(n,"pt",87,52,function(){cb.apply(this,arguments)}),ra=this.addUnitInput(n,"pt",16,52,function(){bb.apply(this,
-arguments)});mxUtils.br(n);this.addLabel(n,mxResources.get("left"),158);this.addLabel(n,mxResources.get("bottom"),87);this.addLabel(n,mxResources.get("right"),16);if(d.cellEditor.isContentEditing()){var Ha=null,Ta=null;a.appendChild(this.createRelativeOption(mxResources.get("lineheight"),null,null,function(ca){var t=""==ca.value?120:parseInt(ca.value);t=Math.max(0,isNaN(t)?120:t);null!=Ha&&(d.cellEditor.restoreSelection(Ha),Ha=null);for(var z=d.getSelectedElement();null!=z&&z.nodeType!=mxConstants.NODETYPE_ELEMENT;)z=
-z.parentNode;null!=z&&z==d.cellEditor.textarea&&null!=d.cellEditor.textarea.firstChild&&("P"!=d.cellEditor.textarea.firstChild.nodeName&&(d.cellEditor.textarea.innerHTML="<p>"+d.cellEditor.textarea.innerHTML+"</p>"),z=d.cellEditor.textarea.firstChild);null!=z&&null!=d.cellEditor.textarea&&z!=d.cellEditor.textarea&&d.cellEditor.textarea.contains(z)&&(z.style.lineHeight=t/100);ca.value=t+" %"},function(ca){Ta=ca;mxEvent.addListener(ca,"mousedown",function(){document.activeElement==d.cellEditor.textarea&&
-(Ha=d.cellEditor.saveSelection())});mxEvent.addListener(ca,"touchstart",function(){document.activeElement==d.cellEditor.textarea&&(Ha=d.cellEditor.saveSelection())});ca.value="120 %"}));k=e.cloneNode(!1);k.style.paddingLeft="0px";n=this.editorUi.toolbar.addItems(["link","image"],k,!0);x=[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(ca){this.editorUi.menus.addInsertTableItem(ca,null,null,!1)}))];this.styleButtons(n);this.styleButtons(x);n=this.createPanel();n.style.paddingTop="10px";n.style.paddingBottom="10px";n.appendChild(this.createTitle(mxResources.get("insert")));n.appendChild(k);a.appendChild(n);n=e.cloneNode(!1);n.style.paddingLeft="0px";x=[this.editorUi.toolbar.addButton("geSprite-insertcolumnbefore",mxResources.get("insertColumnBefore"),mxUtils.bind(this,
-function(){try{null!=T&&d.insertColumn(T,null!=U?U.cellIndex:0)}catch(ca){this.editorUi.handleError(ca)}}),n),this.editorUi.toolbar.addButton("geSprite-insertcolumnafter",mxResources.get("insertColumnAfter"),mxUtils.bind(this,function(){try{null!=T&&d.insertColumn(T,null!=U?U.cellIndex+1:-1)}catch(ca){this.editorUi.handleError(ca)}}),n),this.editorUi.toolbar.addButton("geSprite-deletecolumn",mxResources.get("deleteColumn"),mxUtils.bind(this,function(){try{null!=T&&null!=U&&d.deleteColumn(T,U.cellIndex)}catch(ca){this.editorUi.handleError(ca)}}),
-n),this.editorUi.toolbar.addButton("geSprite-insertrowbefore",mxResources.get("insertRowBefore"),mxUtils.bind(this,function(){try{null!=T&&null!=fa&&d.insertRow(T,fa.sectionRowIndex)}catch(ca){this.editorUi.handleError(ca)}}),n),this.editorUi.toolbar.addButton("geSprite-insertrowafter",mxResources.get("insertRowAfter"),mxUtils.bind(this,function(){try{null!=T&&null!=fa&&d.insertRow(T,fa.sectionRowIndex+1)}catch(ca){this.editorUi.handleError(ca)}}),n),this.editorUi.toolbar.addButton("geSprite-deleterow",
-mxResources.get("deleteRow"),mxUtils.bind(this,function(){try{null!=T&&null!=fa&&d.deleteRow(T,fa.sectionRowIndex)}catch(ca){this.editorUi.handleError(ca)}}),n)];this.styleButtons(x);x[2].style.marginRight="10px";k=this.createPanel();k.style.paddingTop="10px";k.style.paddingBottom="10px";k.appendChild(this.createTitle(mxResources.get("table")));k.appendChild(n);e=e.cloneNode(!1);e.style.paddingLeft="0px";x=[this.editorUi.toolbar.addButton("geSprite-strokecolor",mxResources.get("borderColor"),mxUtils.bind(this,
-function(ca){if(null!=T){var t=T.style.borderColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(z,B,E,G){return"#"+("0"+Number(B).toString(16)).substr(-2)+("0"+Number(E).toString(16)).substr(-2)+("0"+Number(G).toString(16)).substr(-2)});this.editorUi.pickColor(t,function(z){var B=null==U||null!=ca&&mxEvent.isShiftDown(ca)?T:U;d.processElements(B,function(E){E.style.border=null});null==z||z==mxConstants.NONE?(B.removeAttribute("border"),B.style.border="",B.style.borderCollapse=
-""):(B.setAttribute("border","1"),B.style.border="1px solid "+z,B.style.borderCollapse="collapse")})}}),e),this.editorUi.toolbar.addButton("geSprite-fillcolor",mxResources.get("backgroundColor"),mxUtils.bind(this,function(ca){if(null!=T){var t=T.style.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(z,B,E,G){return"#"+("0"+Number(B).toString(16)).substr(-2)+("0"+Number(E).toString(16)).substr(-2)+("0"+Number(G).toString(16)).substr(-2)});this.editorUi.pickColor(t,
-function(z){var B=null==U||null!=ca&&mxEvent.isShiftDown(ca)?T:U;d.processElements(B,function(E){E.style.backgroundColor=null});B.style.backgroundColor=null==z||z==mxConstants.NONE?"":z})}}),e),this.editorUi.toolbar.addButton("geSprite-fit",mxResources.get("spacing"),function(){if(null!=T){var ca=T.getAttribute("cellPadding")||0;ca=new FilenameDialog(f,ca,mxResources.get("apply"),mxUtils.bind(this,function(t){null!=t&&0<t.length?T.setAttribute("cellPadding",t):T.removeAttribute("cellPadding")}),mxResources.get("spacing"));
-f.showDialog(ca.container,300,80,!0,!0);ca.init()}},e),this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),function(){null!=T&&T.setAttribute("align","left")},e),this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center"),function(){null!=T&&T.setAttribute("align","center")},e),this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),function(){null!=T&&T.setAttribute("align","right")},e)];this.styleButtons(x);x[2].style.marginRight="10px";k.appendChild(e);
-a.appendChild(k);var db=k}else a.appendChild(k),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(n);for(A=0;3>A;A++)(function(ca){mxEvent.addListener(m[ca],"click",function(){b(m[ca],""==m[ca].style.backgroundImage)})})(A);var Ua=mxUtils.bind(this,function(ca,t,z){g=f.getSelectionState();ca=mxUtils.getValue(g.style,mxConstants.STYLE_FONTSTYLE,0);b(m[0],(ca&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);b(m[1],(ca&mxConstants.FONT_ITALIC)==
-mxConstants.FONT_ITALIC);b(m[2],(ca&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);u.firstChild.nodeValue=mxUtils.getValue(g.style,mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont);b(r,"0"==mxUtils.getValue(g.style,mxConstants.STYLE_HORIZONTAL,"1"));if(z||document.activeElement!=V)ca=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize)),V.value=isNaN(ca)?"":ca+" pt";ca=mxUtils.getValue(g.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);
-b(C,ca==mxConstants.ALIGN_LEFT);b(F,ca==mxConstants.ALIGN_CENTER);b(K,ca==mxConstants.ALIGN_RIGHT);ca=mxUtils.getValue(g.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);b(O,ca==mxConstants.ALIGN_TOP);b(Q,ca==mxConstants.ALIGN_MIDDLE);b(R,ca==mxConstants.ALIGN_BOTTOM);ca=mxUtils.getValue(g.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);t=mxUtils.getValue(g.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);ba.value=ca==mxConstants.ALIGN_LEFT&&
-t==mxConstants.ALIGN_TOP?"topLeft":ca==mxConstants.ALIGN_CENTER&&t==mxConstants.ALIGN_TOP?"top":ca==mxConstants.ALIGN_RIGHT&&t==mxConstants.ALIGN_TOP?"topRight":ca==mxConstants.ALIGN_LEFT&&t==mxConstants.ALIGN_BOTTOM?"bottomLeft":ca==mxConstants.ALIGN_CENTER&&t==mxConstants.ALIGN_BOTTOM?"bottom":ca==mxConstants.ALIGN_RIGHT&&t==mxConstants.ALIGN_BOTTOM?"bottomRight":ca==mxConstants.ALIGN_LEFT?"left":ca==mxConstants.ALIGN_RIGHT?"right":"center";ca=mxUtils.getValue(g.style,mxConstants.STYLE_TEXT_DIRECTION,
-mxConstants.DEFAULT_TEXT_DIRECTION);ca==mxConstants.TEXT_DIRECTION_RTL?L.value="rightToLeft":ca==mxConstants.TEXT_DIRECTION_LTR?L.value="leftToRight":ca==mxConstants.TEXT_DIRECTION_AUTO&&(L.value="automatic");if(z||document.activeElement!=Ga)ca=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING,2)),Ga.value=isNaN(ca)?"":ca+" pt";if(z||document.activeElement!=Ja)ca=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING_TOP,0)),Ja.value=isNaN(ca)?"":ca+" pt";if(z||document.activeElement!=
-ra)ca=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING_RIGHT,0)),ra.value=isNaN(ca)?"":ca+" pt";if(z||document.activeElement!=za)ca=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING_BOTTOM,0)),za.value=isNaN(ca)?"":ca+" pt";if(z||document.activeElement!=va)ca=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING_LEFT,0)),va.value=isNaN(ca)?"":ca+" pt"});var Va=this.installInputHandler(Ga,mxConstants.STYLE_SPACING,2,-999,999," pt");var Ya=this.installInputHandler(Ja,
-mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");var bb=this.installInputHandler(ra,mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");var cb=this.installInputHandler(za,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");var jb=this.installInputHandler(va,mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(V,Ua);this.addKeyHandler(Ga,Ua);this.addKeyHandler(Ja,Ua);this.addKeyHandler(ra,Ua);this.addKeyHandler(za,Ua);this.addKeyHandler(va,Ua);d.getModel().addListener(mxEvent.CHANGE,Ua);
-this.listeners.push({destroy:function(){d.getModel().removeListener(Ua)}});Ua();if(d.cellEditor.isContentEditing()){var $a=!1;e=function(){$a||($a=!0,window.setTimeout(function(){var ca=d.getSelectedEditingElement();if(null!=ca){var t=function(Ba,Da){if(null!=Ba&&null!=Da){if(Ba==Da)return!0;if(Ba.length>Da.length+1)return Ba.substring(Ba.length-Da.length-1,Ba.length)=="-"+Da}return!1},z=function(Ba){if(null!=d.getParentByName(ca,Ba,d.cellEditor.textarea))return!0;for(var Da=ca;null!=Da&&1==Da.childNodes.length;)if(Da=
-Da.childNodes[0],Da.nodeName==Ba)return!0;return!1},B=function(Ba){Ba=null!=Ba?Ba.fontSize:null;return null!=Ba&&"px"==Ba.substring(Ba.length-2)?parseFloat(Ba):mxConstants.DEFAULT_FONTSIZE},E=function(Ba,Da,Ma){return null!=Ma.style&&null!=Da?(Da=Da.lineHeight,null!=Ma.style.lineHeight&&"%"==Ma.style.lineHeight.substring(Ma.style.lineHeight.length-1)?parseInt(Ma.style.lineHeight)/100:"px"==Da.substring(Da.length-2)?parseFloat(Da)/Ba:parseInt(Da)):""},G=mxUtils.getCurrentStyle(ca),M=B(G),X=E(M,G,ca),
-ia=ca.getElementsByTagName("*");if(0<ia.length&&window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11)for(var da=window.getSelection(),ja=0;ja<ia.length;ja++)if(da.containsNode(ia[ja],!0)){temp=mxUtils.getCurrentStyle(ia[ja]);M=Math.max(B(temp),M);var sa=E(M,temp,ia[ja]);if(sa!=X||isNaN(sa))X=""}null!=G&&(b(m[0],"bold"==G.fontWeight||400<G.fontWeight||z("B")||z("STRONG")),b(m[1],"italic"==G.fontStyle||z("I")||z("EM")),b(m[2],z("U")),b(Z,z("SUP")),b(P,z("SUB")),d.cellEditor.isTableSelected()?(b(ha,
-t(G.textAlign,"justify")),b(C,t(G.textAlign,"left")),b(F,t(G.textAlign,"center")),b(K,t(G.textAlign,"right"))):(z=d.cellEditor.align||mxUtils.getValue(g.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),t(G.textAlign,"justify")?(b(ha,t(G.textAlign,"justify")),b(C,!1),b(F,!1),b(K,!1)):(b(ha,!1),b(C,z==mxConstants.ALIGN_LEFT),b(F,z==mxConstants.ALIGN_CENTER),b(K,z==mxConstants.ALIGN_RIGHT))),T=d.getParentByName(ca,"TABLE",d.cellEditor.textarea),fa=null==T?null:d.getParentByName(ca,"TR",T),U=null==
-T?null:d.getParentByNames(ca,["TD","TH"],T),db.style.display=null!=T?"":"none",document.activeElement!=V&&("FONT"==ca.nodeName&&"4"==ca.getAttribute("size")&&null!=ea?(ca.removeAttribute("size"),ca.style.fontSize=ea+" pt",ea=null):V.value=isNaN(M)?"":M+" pt",sa=parseFloat(X),isNaN(sa)?Ta.value="100 %":Ta.value=Math.round(100*sa)+" %"),null!=W&&(aa="rgba(0, 0, 0, 0)"==G.color||"transparent"==G.color?mxConstants.NONE:mxUtils.rgba2hex(G.color),W(aa,!0)),null!=ka&&(wa="rgba(0, 0, 0, 0)"==G.backgroundColor||
-"transparent"==G.backgroundColor?mxConstants.NONE:mxUtils.rgba2hex(G.backgroundColor),ka(wa,!0)),null!=u.firstChild&&(u.firstChild.nodeValue=Graph.stripQuotes(G.fontFamily)))}$a=!1},0))};(mxClient.IS_FF||mxClient.IS_EDGE||mxClient.IS_IE||mxClient.IS_IE11)&&mxEvent.addListener(d.cellEditor.textarea,"DOMSubtreeModified",e);mxEvent.addListener(d.cellEditor.textarea,"input",e);mxEvent.addListener(d.cellEditor.textarea,"touchend",e);mxEvent.addListener(d.cellEditor.textarea,"mouseup",e);mxEvent.addListener(d.cellEditor.textarea,
+n.appendChild(x);var Ka=this.addUnitInput(n,"pt",87,52,function(){Xa.apply(this,arguments)}),Ha=this.addUnitInput(n,"pt",16,52,function(){$a.apply(this,arguments)});mxUtils.br(n);this.addLabel(n,mxResources.get("top"),87);this.addLabel(n,mxResources.get("global"),16);mxUtils.br(n);mxUtils.br(n);var ua=this.addUnitInput(n,"pt",158,52,function(){jb.apply(this,arguments)}),Ca=this.addUnitInput(n,"pt",87,52,function(){Ya.apply(this,arguments)}),ra=this.addUnitInput(n,"pt",16,52,function(){Va.apply(this,
+arguments)});mxUtils.br(n);this.addLabel(n,mxResources.get("left"),158);this.addLabel(n,mxResources.get("bottom"),87);this.addLabel(n,mxResources.get("right"),16);if(d.cellEditor.isContentEditing()){var Da=null,Ua=null;a.appendChild(this.createRelativeOption(mxResources.get("lineheight"),null,null,function(da){var t=""==da.value?120:parseInt(da.value);t=Math.max(0,isNaN(t)?120:t);null!=Da&&(d.cellEditor.restoreSelection(Da),Da=null);for(var z=d.getSelectedElement();null!=z&&z.nodeType!=mxConstants.NODETYPE_ELEMENT;)z=
+z.parentNode;null!=z&&z==d.cellEditor.textarea&&null!=d.cellEditor.textarea.firstChild&&("P"!=d.cellEditor.textarea.firstChild.nodeName&&(d.cellEditor.textarea.innerHTML="<p>"+d.cellEditor.textarea.innerHTML+"</p>"),z=d.cellEditor.textarea.firstChild);null!=z&&null!=d.cellEditor.textarea&&z!=d.cellEditor.textarea&&d.cellEditor.textarea.contains(z)&&(z.style.lineHeight=t/100);da.value=t+" %"},function(da){Ua=da;mxEvent.addListener(da,"mousedown",function(){document.activeElement==d.cellEditor.textarea&&
+(Da=d.cellEditor.saveSelection())});mxEvent.addListener(da,"touchstart",function(){document.activeElement==d.cellEditor.textarea&&(Da=d.cellEditor.saveSelection())});da.value="120 %"}));k=e.cloneNode(!1);k.style.paddingLeft="0px";n=this.editorUi.toolbar.addItems(["link","image"],k,!0);x=[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(da){this.editorUi.menus.addInsertTableItem(da,null,null,!1)}))];this.styleButtons(n);this.styleButtons(x);n=this.createPanel();n.style.paddingTop="10px";n.style.paddingBottom="10px";n.appendChild(this.createTitle(mxResources.get("insert")));n.appendChild(k);a.appendChild(n);n=e.cloneNode(!1);n.style.paddingLeft="0px";x=[this.editorUi.toolbar.addButton("geSprite-insertcolumnbefore",mxResources.get("insertColumnBefore"),mxUtils.bind(this,
+function(){try{null!=U&&d.insertColumn(U,null!=V?V.cellIndex:0)}catch(da){this.editorUi.handleError(da)}}),n),this.editorUi.toolbar.addButton("geSprite-insertcolumnafter",mxResources.get("insertColumnAfter"),mxUtils.bind(this,function(){try{null!=U&&d.insertColumn(U,null!=V?V.cellIndex+1:-1)}catch(da){this.editorUi.handleError(da)}}),n),this.editorUi.toolbar.addButton("geSprite-deletecolumn",mxResources.get("deleteColumn"),mxUtils.bind(this,function(){try{null!=U&&null!=V&&d.deleteColumn(U,V.cellIndex)}catch(da){this.editorUi.handleError(da)}}),
+n),this.editorUi.toolbar.addButton("geSprite-insertrowbefore",mxResources.get("insertRowBefore"),mxUtils.bind(this,function(){try{null!=U&&null!=ia&&d.insertRow(U,ia.sectionRowIndex)}catch(da){this.editorUi.handleError(da)}}),n),this.editorUi.toolbar.addButton("geSprite-insertrowafter",mxResources.get("insertRowAfter"),mxUtils.bind(this,function(){try{null!=U&&null!=ia&&d.insertRow(U,ia.sectionRowIndex+1)}catch(da){this.editorUi.handleError(da)}}),n),this.editorUi.toolbar.addButton("geSprite-deleterow",
+mxResources.get("deleteRow"),mxUtils.bind(this,function(){try{null!=U&&null!=ia&&d.deleteRow(U,ia.sectionRowIndex)}catch(da){this.editorUi.handleError(da)}}),n)];this.styleButtons(x);x[2].style.marginRight="10px";k=this.createPanel();k.style.paddingTop="10px";k.style.paddingBottom="10px";k.appendChild(this.createTitle(mxResources.get("table")));k.appendChild(n);e=e.cloneNode(!1);e.style.paddingLeft="0px";x=[this.editorUi.toolbar.addButton("geSprite-strokecolor",mxResources.get("borderColor"),mxUtils.bind(this,
+function(da){if(null!=U){var t=U.style.borderColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(z,A,E,H){return"#"+("0"+Number(A).toString(16)).substr(-2)+("0"+Number(E).toString(16)).substr(-2)+("0"+Number(H).toString(16)).substr(-2)});this.editorUi.pickColor(t,function(z){var A=null==V||null!=da&&mxEvent.isShiftDown(da)?U:V;d.processElements(A,function(E){E.style.border=null});null==z||z==mxConstants.NONE?(A.removeAttribute("border"),A.style.border="",A.style.borderCollapse=
+""):(A.setAttribute("border","1"),A.style.border="1px solid "+z,A.style.borderCollapse="collapse")})}}),e),this.editorUi.toolbar.addButton("geSprite-fillcolor",mxResources.get("backgroundColor"),mxUtils.bind(this,function(da){if(null!=U){var t=U.style.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(z,A,E,H){return"#"+("0"+Number(A).toString(16)).substr(-2)+("0"+Number(E).toString(16)).substr(-2)+("0"+Number(H).toString(16)).substr(-2)});this.editorUi.pickColor(t,
+function(z){var A=null==V||null!=da&&mxEvent.isShiftDown(da)?U:V;d.processElements(A,function(E){E.style.backgroundColor=null});A.style.backgroundColor=null==z||z==mxConstants.NONE?"":z})}}),e),this.editorUi.toolbar.addButton("geSprite-fit",mxResources.get("spacing"),function(){if(null!=U){var da=U.getAttribute("cellPadding")||0;da=new FilenameDialog(f,da,mxResources.get("apply"),mxUtils.bind(this,function(t){null!=t&&0<t.length?U.setAttribute("cellPadding",t):U.removeAttribute("cellPadding")}),mxResources.get("spacing"));
+f.showDialog(da.container,300,80,!0,!0);da.init()}},e),this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),function(){null!=U&&U.setAttribute("align","left")},e),this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center"),function(){null!=U&&U.setAttribute("align","center")},e),this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),function(){null!=U&&U.setAttribute("align","right")},e)];this.styleButtons(x);x[2].style.marginRight="10px";k.appendChild(e);
+a.appendChild(k);var db=k}else a.appendChild(k),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(n);for(B=0;3>B;B++)(function(da){mxEvent.addListener(m[da],"click",function(){b(m[da],""==m[da].style.backgroundImage)})})(B);var Ta=mxUtils.bind(this,function(da,t,z){g=f.getSelectionState();da=mxUtils.getValue(g.style,mxConstants.STYLE_FONTSTYLE,0);b(m[0],(da&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);b(m[1],(da&mxConstants.FONT_ITALIC)==
+mxConstants.FONT_ITALIC);b(m[2],(da&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);u.firstChild.nodeValue=mxUtils.getValue(g.style,mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont);b(r,"0"==mxUtils.getValue(g.style,mxConstants.STYLE_HORIZONTAL,"1"));if(z||document.activeElement!=T)da=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize)),T.value=isNaN(da)?"":da+" pt";da=mxUtils.getValue(g.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);
+b(C,da==mxConstants.ALIGN_LEFT);b(G,da==mxConstants.ALIGN_CENTER);b(J,da==mxConstants.ALIGN_RIGHT);da=mxUtils.getValue(g.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);b(N,da==mxConstants.ALIGN_TOP);b(Q,da==mxConstants.ALIGN_MIDDLE);b(R,da==mxConstants.ALIGN_BOTTOM);da=mxUtils.getValue(g.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);t=mxUtils.getValue(g.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);ba.value=da==mxConstants.ALIGN_LEFT&&
+t==mxConstants.ALIGN_TOP?"topLeft":da==mxConstants.ALIGN_CENTER&&t==mxConstants.ALIGN_TOP?"top":da==mxConstants.ALIGN_RIGHT&&t==mxConstants.ALIGN_TOP?"topRight":da==mxConstants.ALIGN_LEFT&&t==mxConstants.ALIGN_BOTTOM?"bottomLeft":da==mxConstants.ALIGN_CENTER&&t==mxConstants.ALIGN_BOTTOM?"bottom":da==mxConstants.ALIGN_RIGHT&&t==mxConstants.ALIGN_BOTTOM?"bottomRight":da==mxConstants.ALIGN_LEFT?"left":da==mxConstants.ALIGN_RIGHT?"right":"center";da=mxUtils.getValue(g.style,mxConstants.STYLE_TEXT_DIRECTION,
+mxConstants.DEFAULT_TEXT_DIRECTION);da==mxConstants.TEXT_DIRECTION_RTL?S.value="rightToLeft":da==mxConstants.TEXT_DIRECTION_LTR?S.value="leftToRight":da==mxConstants.TEXT_DIRECTION_AUTO&&(S.value="automatic");if(z||document.activeElement!=Ha)da=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING,2)),Ha.value=isNaN(da)?"":da+" pt";if(z||document.activeElement!=Ka)da=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING_TOP,0)),Ka.value=isNaN(da)?"":da+" pt";if(z||document.activeElement!=
+ra)da=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING_RIGHT,0)),ra.value=isNaN(da)?"":da+" pt";if(z||document.activeElement!=Ca)da=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING_BOTTOM,0)),Ca.value=isNaN(da)?"":da+" pt";if(z||document.activeElement!=ua)da=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING_LEFT,0)),ua.value=isNaN(da)?"":da+" pt"});var $a=this.installInputHandler(Ha,mxConstants.STYLE_SPACING,2,-999,999," pt");var Xa=this.installInputHandler(Ka,
+mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");var Va=this.installInputHandler(ra,mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");var Ya=this.installInputHandler(Ca,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");var jb=this.installInputHandler(ua,mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(T,Ta);this.addKeyHandler(Ha,Ta);this.addKeyHandler(Ka,Ta);this.addKeyHandler(ra,Ta);this.addKeyHandler(Ca,Ta);this.addKeyHandler(ua,Ta);d.getModel().addListener(mxEvent.CHANGE,Ta);
+this.listeners.push({destroy:function(){d.getModel().removeListener(Ta)}});Ta();if(d.cellEditor.isContentEditing()){var bb=!1;e=function(){bb||(bb=!0,window.setTimeout(function(){var da=d.getSelectedEditingElement();if(null!=da){var t=function(Aa,Ea){if(null!=Aa&&null!=Ea){if(Aa==Ea)return!0;if(Aa.length>Ea.length+1)return Aa.substring(Aa.length-Ea.length-1,Aa.length)=="-"+Ea}return!1},z=function(Aa){if(null!=d.getParentByName(da,Aa,d.cellEditor.textarea))return!0;for(var Ea=da;null!=Ea&&1==Ea.childNodes.length;)if(Ea=
+Ea.childNodes[0],Ea.nodeName==Aa)return!0;return!1},A=function(Aa){Aa=null!=Aa?Aa.fontSize:null;return null!=Aa&&"px"==Aa.substring(Aa.length-2)?parseFloat(Aa):mxConstants.DEFAULT_FONTSIZE},E=function(Aa,Ea,Ma){return null!=Ma.style&&null!=Ea?(Ea=Ea.lineHeight,null!=Ma.style.lineHeight&&"%"==Ma.style.lineHeight.substring(Ma.style.lineHeight.length-1)?parseInt(Ma.style.lineHeight)/100:"px"==Ea.substring(Ea.length-2)?parseFloat(Ea)/Aa:parseInt(Ea)):""},H=mxUtils.getCurrentStyle(da),K=A(H),X=E(K,H,da),
+ja=da.getElementsByTagName("*");if(0<ja.length&&window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11)for(var ea=window.getSelection(),ka=0;ka<ja.length;ka++)if(ea.containsNode(ja[ka],!0)){temp=mxUtils.getCurrentStyle(ja[ka]);K=Math.max(A(temp),K);var ta=E(K,temp,ja[ka]);if(ta!=X||isNaN(ta))X=""}null!=H&&(b(m[0],"bold"==H.fontWeight||400<H.fontWeight||z("B")||z("STRONG")),b(m[1],"italic"==H.fontStyle||z("I")||z("EM")),b(m[2],z("U")),b(Z,z("SUP")),b(P,z("SUB")),d.cellEditor.isTableSelected()?(b(ha,
+t(H.textAlign,"justify")),b(C,t(H.textAlign,"left")),b(G,t(H.textAlign,"center")),b(J,t(H.textAlign,"right"))):(z=d.cellEditor.align||mxUtils.getValue(g.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),t(H.textAlign,"justify")?(b(ha,t(H.textAlign,"justify")),b(C,!1),b(G,!1),b(J,!1)):(b(ha,!1),b(C,z==mxConstants.ALIGN_LEFT),b(G,z==mxConstants.ALIGN_CENTER),b(J,z==mxConstants.ALIGN_RIGHT))),U=d.getParentByName(da,"TABLE",d.cellEditor.textarea),ia=null==U?null:d.getParentByName(da,"TR",U),V=null==
+U?null:d.getParentByNames(da,["TD","TH"],U),db.style.display=null!=U?"":"none",document.activeElement!=T&&("FONT"==da.nodeName&&"4"==da.getAttribute("size")&&null!=ca?(da.removeAttribute("size"),da.style.fontSize=ca+" pt",ca=null):T.value=isNaN(K)?"":K+" pt",ta=parseFloat(X),isNaN(ta)?Ua.value="100 %":Ua.value=Math.round(100*ta)+" %"),null!=W&&(aa="rgba(0, 0, 0, 0)"==H.color||"transparent"==H.color?mxConstants.NONE:mxUtils.rgba2hex(H.color),W(aa,!0)),null!=fa&&(wa="rgba(0, 0, 0, 0)"==H.backgroundColor||
+"transparent"==H.backgroundColor?mxConstants.NONE:mxUtils.rgba2hex(H.backgroundColor),fa(wa,!0)),null!=u.firstChild&&(u.firstChild.nodeValue=Graph.stripQuotes(H.fontFamily)))}bb=!1},0))};(mxClient.IS_FF||mxClient.IS_EDGE||mxClient.IS_IE||mxClient.IS_IE11)&&mxEvent.addListener(d.cellEditor.textarea,"DOMSubtreeModified",e);mxEvent.addListener(d.cellEditor.textarea,"input",e);mxEvent.addListener(d.cellEditor.textarea,"touchend",e);mxEvent.addListener(d.cellEditor.textarea,"mouseup",e);mxEvent.addListener(d.cellEditor.textarea,
"keyup",e);this.listeners.push({destroy:function(){}});e()}return a};StyleFormatPanel=function(a,b,f){BaseFormatPanel.call(this,a,b,f);this.init()};mxUtils.extend(StyleFormatPanel,BaseFormatPanel);StyleFormatPanel.prototype.defaultStrokeColor="black";
StyleFormatPanel.prototype.init=function(){var a=this.editorUi.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.fill&&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(""),f=document.createElement("style");mxUtils.setTextContent(f,a);b.body.appendChild(f);return f.sheet.cssRules};
StyleFormatPanel.prototype.addSvgStyles=function(a){var b=this.editorUi.getSelectionState();a.style.paddingTop="6px";a.style.paddingBottom="6px";a.style.fontWeight="bold";a.style.display="none";try{var f=b.style.editableCssRules;if(null!=f){var d=new RegExp(f),g=b.style.image.substring(b.style.image.indexOf(",")+1),e=window.atob?atob(g):Base64.decode(g,!0),k=mxUtils.parseXml(e);if(null!=k){var n=k.getElementsByTagName("style");for(b=0;b<n.length;b++){var u=this.getCssRules(mxUtils.getTextContent(n[b]));
for(f=0;f<u.length;f++)this.addSvgRule(a,u[f],k,n[b],u,f,d)}}}}catch(m){}return a};
-StyleFormatPanel.prototype.addSvgRule=function(a,b,f,d,g,e,k){var n=this.editorUi,u=n.editor.graph;k.test(b.selectorText)&&(k=mxUtils.bind(this,function(m,r,x){var A=mxUtils.trim(m.style[r]);""!=A&&"url("!=A.substring(0,4)&&(m=this.createColorOption(x+" "+m.selectorText,function(){var C=A;return(C=C.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i))&&4===C.length?"#"+("0"+parseInt(C[1],10).toString(16)).slice(-2)+("0"+parseInt(C[2],10).toString(16)).slice(-2)+("0"+parseInt(C[3],
-10).toString(16)).slice(-2):""},mxUtils.bind(this,function(C){g[e].style[r]=C;C="";for(var F=0;F<g.length;F++)C+=g[F].cssText+" ";d.textContent=C;C=mxUtils.getXml(f.documentElement);u.setCellStyles(mxConstants.STYLE_IMAGE,"data:image/svg+xml,"+(window.btoa?btoa(C):Base64.encode(C,!0)),n.getSelectionState().cells)}),"#ffffff",{install:function(C){},destroy:function(){}}),a.appendChild(m),a.style.display="")}),k(b,"fill",mxResources.get("fill")),k(b,"stroke",mxResources.get("line")),k(b,"stop-color",
+StyleFormatPanel.prototype.addSvgRule=function(a,b,f,d,g,e,k){var n=this.editorUi,u=n.editor.graph;k.test(b.selectorText)&&(k=mxUtils.bind(this,function(m,r,x){var B=mxUtils.trim(m.style[r]);""!=B&&"url("!=B.substring(0,4)&&(m=this.createColorOption(x+" "+m.selectorText,function(){var C=B;return(C=C.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i))&&4===C.length?"#"+("0"+parseInt(C[1],10).toString(16)).slice(-2)+("0"+parseInt(C[2],10).toString(16)).slice(-2)+("0"+parseInt(C[3],
+10).toString(16)).slice(-2):""},mxUtils.bind(this,function(C){g[e].style[r]=C;C="";for(var G=0;G<g.length;G++)C+=g[G].cssText+" ";d.textContent=C;C=mxUtils.getXml(f.documentElement);u.setCellStyles(mxConstants.STYLE_IMAGE,"data:image/svg+xml,"+(window.btoa?btoa(C):Base64.encode(C,!0)),n.getSelectionState().cells)}),"#ffffff",{install:function(C){},destroy:function(){}}),a.appendChild(m),a.style.display="")}),k(b,"fill",mxResources.get("fill")),k(b,"stroke",mxResources.get("line")),k(b,"stop-color",
mxResources.get("gradient")))};
StyleFormatPanel.prototype.addEditOps=function(a){var b=this.editorUi.getSelectionState(),f=null;1==b.cells.length&&(f=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,function(d){this.editorUi.actions.get("editStyle").funct()})),f.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),f.style.width="210px",f.style.marginBottom="2px",a.appendChild(f));b.image&&0<b.cells.length&&(b=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,
function(d){this.editorUi.actions.get("image").funct()})),b.setAttribute("title",mxResources.get("editImage")),b.style.marginBottom="2px",null==f?b.style.width="210px":(f.style.width="104px",b.style.width="104px",b.style.marginLeft="2px"),a.appendChild(b));return a};
StyleFormatPanel.prototype.addFill=function(a){var b=this.editorUi,f=b.editor.graph,d=b.getSelectionState();a.style.paddingTop="6px";a.style.paddingBottom="6px";var g=document.createElement("select");g.style.position="absolute";g.style.left="104px";g.style.width="70px";g.style.height="22px";g.style.padding="0px";g.style.marginTop="-3px";g.style.borderRadius="4px";g.style.border="1px solid rgb(160, 160, 160)";g.style.boxSizing="border-box";var e=g.cloneNode(!1);mxEvent.addListener(g,"click",function(C){mxEvent.consume(C)});
mxEvent.addListener(e,"click",function(C){mxEvent.consume(C)});var k=1<=d.vertices.length?f.stylesheet.getDefaultVertexStyle():f.stylesheet.getDefaultEdgeStyle(),n=this.createCellColorOption(mxResources.get("gradient"),mxConstants.STYLE_GRADIENTCOLOR,null!=k[mxConstants.STYLE_GRADIENTCOLOR]?k[mxConstants.STYLE_GRADIENTCOLOR]:"#ffffff",function(C){g.style.display=null==C||C==mxConstants.NONE?"none":""},function(C){f.updateCellStyles({gradientColor:C},f.getSelectionCells())}),u="image"==d.style.shape?
mxConstants.STYLE_IMAGE_BACKGROUND:mxConstants.STYLE_FILLCOLOR;k=this.createCellColorOption(mxResources.get("fill"),u,"default",null,mxUtils.bind(this,function(C){f.setCellStyles(u,C,d.cells)}),f.shapeBackgroundColor);k.style.fontWeight="bold";var m=mxUtils.getValue(d.style,u,null);n.style.display=null!=m&&m!=mxConstants.NONE&&d.fill&&"image"!=d.style.shape?"":"none";var r=[mxConstants.DIRECTION_NORTH,mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_RADIAL];
-for(m=0;m<r.length;m++){var x=document.createElement("option");x.setAttribute("value",r[m]);mxUtils.write(x,mxResources.get(r[m]));g.appendChild(x)}n.appendChild(g);for(m=0;m<Editor.roughFillStyles.length;m++)r=document.createElement("option"),r.setAttribute("value",Editor.roughFillStyles[m].val),mxUtils.write(r,Editor.roughFillStyles[m].dispName),e.appendChild(r);k.appendChild(e);var A=mxUtils.bind(this,function(){d=b.getSelectionState();var C=mxUtils.getValue(d.style,mxConstants.STYLE_GRADIENT_DIRECTION,
-mxConstants.DIRECTION_SOUTH),F=mxUtils.getValue(d.style,"fillStyle","auto");""==C&&(C=mxConstants.DIRECTION_SOUTH);g.value=C;e.value=F;a.style.display=d.fill?"":"none";C=mxUtils.getValue(d.style,u,null);d.fill&&null!=C&&C!=mxConstants.NONE&&"filledEdge"!=d.style.shape?(e.style.display="1"==d.style.sketch?"":"none",n.style.display=d.containsImage||"1"==d.style.sketch&&"solid"!=F&&"auto"!=F?"none":""):(e.style.display="none",n.style.display="none")});f.getModel().addListener(mxEvent.CHANGE,A);this.listeners.push({destroy:function(){f.getModel().removeListener(A)}});
-A();mxEvent.addListener(g,"change",function(C){f.setCellStyles(mxConstants.STYLE_GRADIENT_DIRECTION,g.value,d.cells);b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_GRADIENT_DIRECTION],"values",[g.value],"cells",d.cells));mxEvent.consume(C)});mxEvent.addListener(e,"change",function(C){f.setCellStyles("fillStyle",e.value,d.cells);b.fireEvent(new mxEventObject("styleChanged","keys",["fillStyle"],"values",[e.value],"cells",d.cells));mxEvent.consume(C)});a.appendChild(k);a.appendChild(n);
+for(m=0;m<r.length;m++){var x=document.createElement("option");x.setAttribute("value",r[m]);mxUtils.write(x,mxResources.get(r[m]));g.appendChild(x)}n.appendChild(g);for(m=0;m<Editor.roughFillStyles.length;m++)r=document.createElement("option"),r.setAttribute("value",Editor.roughFillStyles[m].val),mxUtils.write(r,Editor.roughFillStyles[m].dispName),e.appendChild(r);k.appendChild(e);var B=mxUtils.bind(this,function(){d=b.getSelectionState();var C=mxUtils.getValue(d.style,mxConstants.STYLE_GRADIENT_DIRECTION,
+mxConstants.DIRECTION_SOUTH),G=mxUtils.getValue(d.style,"fillStyle","auto");""==C&&(C=mxConstants.DIRECTION_SOUTH);g.value=C;e.value=G;a.style.display=d.fill?"":"none";C=mxUtils.getValue(d.style,u,null);d.fill&&null!=C&&C!=mxConstants.NONE&&"filledEdge"!=d.style.shape?(e.style.display="1"==d.style.sketch?"":"none",n.style.display=d.containsImage||"1"==d.style.sketch&&"solid"!=G&&"auto"!=G?"none":""):(e.style.display="none",n.style.display="none")});f.getModel().addListener(mxEvent.CHANGE,B);this.listeners.push({destroy:function(){f.getModel().removeListener(B)}});
+B();mxEvent.addListener(g,"change",function(C){f.setCellStyles(mxConstants.STYLE_GRADIENT_DIRECTION,g.value,d.cells);b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_GRADIENT_DIRECTION],"values",[g.value],"cells",d.cells));mxEvent.consume(C)});mxEvent.addListener(e,"change",function(C){f.setCellStyles("fillStyle",e.value,d.cells);b.fireEvent(new mxEventObject("styleChanged","keys",["fillStyle"],"values",[e.value],"cells",d.cells));mxEvent.consume(C)});a.appendChild(k);a.appendChild(n);
k=this.getCustomColors();for(m=0;m<k.length;m++)a.appendChild(this.createCellColorOption(k[m].title,k[m].key,k[m].defaultValue));return a};StyleFormatPanel.prototype.getCustomColors=function(){var a=[];this.editorUi.getSelectionState().swimlane&&a.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"default"});return a};
-StyleFormatPanel.prototype.addStroke=function(a){function b(W){var aa=parseFloat(D.value);aa=Math.min(999,Math.max(0,isNaN(aa)?1:aa));aa!=mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)&&(g.setCellStyles(mxConstants.STYLE_STROKEWIDTH,aa,e.cells),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[aa],"cells",e.cells)));D.value=aa+" pt";mxEvent.consume(W)}function f(W){var aa=parseFloat(O.value);aa=Math.min(999,Math.max(0,isNaN(aa)?1:aa));aa!=mxUtils.getValue(e.style,
-mxConstants.STYLE_STROKEWIDTH,1)&&(g.setCellStyles(mxConstants.STYLE_STROKEWIDTH,aa,e.cells),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[aa],"cells",e.cells)));O.value=aa+" pt";mxEvent.consume(W)}var d=this.editorUi,g=d.editor.graph,e=d.getSelectionState();a.style.paddingTop="6px";a.style.paddingBottom="4px";a.style.whiteSpace="normal";var k=document.createElement("div");k.style.fontWeight="bold";e.stroke||(k.style.display="none");var n=document.createElement("select");
+StyleFormatPanel.prototype.addStroke=function(a){function b(W){var aa=parseFloat(D.value);aa=Math.min(999,Math.max(0,isNaN(aa)?1:aa));aa!=mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)&&(g.setCellStyles(mxConstants.STYLE_STROKEWIDTH,aa,e.cells),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[aa],"cells",e.cells)));D.value=aa+" pt";mxEvent.consume(W)}function f(W){var aa=parseFloat(N.value);aa=Math.min(999,Math.max(0,isNaN(aa)?1:aa));aa!=mxUtils.getValue(e.style,
+mxConstants.STYLE_STROKEWIDTH,1)&&(g.setCellStyles(mxConstants.STYLE_STROKEWIDTH,aa,e.cells),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[aa],"cells",e.cells)));N.value=aa+" pt";mxEvent.consume(W)}var d=this.editorUi,g=d.editor.graph,e=d.getSelectionState();a.style.paddingTop="6px";a.style.paddingBottom="4px";a.style.whiteSpace="normal";var k=document.createElement("div");k.style.fontWeight="bold";e.stroke||(k.style.display="none");var n=document.createElement("select");
n.style.position="absolute";n.style.height="22px";n.style.padding="0px";n.style.marginTop="-3px";n.style.boxSizing="border-box";n.style.left="94px";n.style.width="80px";n.style.border="1px solid rgb(160, 160, 160)";n.style.borderRadius="4px";for(var u=["sharp","rounded","curved"],m=0;m<u.length;m++){var r=document.createElement("option");r.setAttribute("value",u[m]);mxUtils.write(r,mxResources.get(u[m]));n.appendChild(r)}mxEvent.addListener(n,"change",function(W){g.getModel().beginUpdate();try{var aa=
-[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],oa=["0",null];"rounded"==n.value?oa=["1",null]:"curved"==n.value&&(oa=[null,"1"]);for(var ua=0;ua<aa.length;ua++)g.setCellStyles(aa[ua],oa[ua],e.cells);d.fireEvent(new mxEventObject("styleChanged","keys",aa,"values",oa,"cells",e.cells))}finally{g.getModel().endUpdate()}mxEvent.consume(W)});mxEvent.addListener(n,"click",function(W){mxEvent.consume(W)});var x="image"==e.style.shape?mxConstants.STYLE_IMAGE_BORDER:mxConstants.STYLE_STROKECOLOR;u="image"==
-e.style.shape?mxResources.get("border"):mxResources.get("line");u=this.createCellColorOption(u,x,"default",null,mxUtils.bind(this,function(W){g.setCellStyles(x,W,e.cells)}),g.shapeForegroundColor);u.appendChild(n);k.appendChild(u);var A=k.cloneNode(!1);A.style.fontWeight="normal";A.style.whiteSpace="nowrap";A.style.position="relative";A.style.paddingLeft="0px";A.style.marginBottom="2px";A.style.overflow="hidden";A.style.marginTop="2px";A.style.width="220px";A.className="geToolbarContainer";var C=
-mxUtils.bind(this,function(W,aa,oa,ua,Ja){W=this.editorUi.menus.styleChange(W,"",ua,Ja,"geIcon",null);ua=document.createElement("div");ua.style.width=aa+"px";ua.style.height="1px";ua.style.borderBottom="1px "+oa+" "+this.defaultStrokeColor;ua.style.paddingTop="6px";W.firstChild.firstChild.style.padding="0px 4px 0px 4px";W.firstChild.firstChild.style.width=aa+"px";W.firstChild.firstChild.appendChild(ua);return W});m=this.editorUi.toolbar.addMenuFunctionInContainer(A,"geSprite-orthogonal",mxResources.get("pattern"),
+[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],oa=["0",null];"rounded"==n.value?oa=["1",null]:"curved"==n.value&&(oa=[null,"1"]);for(var sa=0;sa<aa.length;sa++)g.setCellStyles(aa[sa],oa[sa],e.cells);d.fireEvent(new mxEventObject("styleChanged","keys",aa,"values",oa,"cells",e.cells))}finally{g.getModel().endUpdate()}mxEvent.consume(W)});mxEvent.addListener(n,"click",function(W){mxEvent.consume(W)});var x="image"==e.style.shape?mxConstants.STYLE_IMAGE_BORDER:mxConstants.STYLE_STROKECOLOR;u="image"==
+e.style.shape?mxResources.get("border"):mxResources.get("line");u=this.createCellColorOption(u,x,"default",null,mxUtils.bind(this,function(W){g.setCellStyles(x,W,e.cells)}),g.shapeForegroundColor);u.appendChild(n);k.appendChild(u);var B=k.cloneNode(!1);B.style.fontWeight="normal";B.style.whiteSpace="nowrap";B.style.position="relative";B.style.paddingLeft="0px";B.style.marginBottom="2px";B.style.overflow="hidden";B.style.marginTop="2px";B.style.width="220px";B.className="geToolbarContainer";var C=
+mxUtils.bind(this,function(W,aa,oa,sa,Ka){W=this.editorUi.menus.styleChange(W,"",sa,Ka,"geIcon",null);sa=document.createElement("div");sa.style.width=aa+"px";sa.style.height="1px";sa.style.borderBottom="1px "+oa+" "+this.defaultStrokeColor;sa.style.paddingTop="6px";W.firstChild.firstChild.style.padding="0px 4px 0px 4px";W.firstChild.firstChild.style.width=aa+"px";W.firstChild.firstChild.appendChild(sa);return W});m=this.editorUi.toolbar.addMenuFunctionInContainer(B,"geSprite-orthogonal",mxResources.get("pattern"),
!1,mxUtils.bind(this,function(W){C(W,75,"solid",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",mxResources.get("solid"));C(W,75,"dashed",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1",null]).setAttribute("title",mxResources.get("dashed"));C(W,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",mxResources.get("dotted")+" (1)");C(W,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],
-["1","1 2"]).setAttribute("title",mxResources.get("dotted")+" (2)");C(W,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")}));var F=A.cloneNode(!1),K=this.editorUi.toolbar.addMenuFunctionInContainer(F,"geSprite-connection",mxResources.get("connection"),!1,mxUtils.bind(this,function(W){this.editorUi.menus.styleChange(W,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],[null,
+["1","1 2"]).setAttribute("title",mxResources.get("dotted")+" (2)");C(W,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")}));var G=B.cloneNode(!1),J=this.editorUi.toolbar.addMenuFunctionInContainer(G,"geSprite-connection",mxResources.get("connection"),!1,mxUtils.bind(this,function(W){this.editorUi.menus.styleChange(W,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],[null,
null,null,null],"geIcon geSprite geSprite-connection",null,!0).setAttribute("title",mxResources.get("line"));this.editorUi.menus.styleChange(W,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["link",null,null,null],"geIcon geSprite geSprite-linkedge",null,!0).setAttribute("title",mxResources.get("link"));this.editorUi.menus.styleChange(W,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["flexArrow",null,null,null],
-"geIcon geSprite geSprite-arrow",null,!0).setAttribute("title",mxResources.get("arrow"));this.editorUi.menus.styleChange(W,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["arrow",null,null,null],"geIcon geSprite geSprite-simplearrow",null,!0).setAttribute("title",mxResources.get("simpleArrow"))}));r=this.editorUi.toolbar.addMenuFunctionInContainer(F,"geSprite-orthogonal",mxResources.get("pattern"),!1,mxUtils.bind(this,function(W){C(W,33,"solid",[mxConstants.STYLE_DASHED,
+"geIcon geSprite geSprite-arrow",null,!0).setAttribute("title",mxResources.get("arrow"));this.editorUi.menus.styleChange(W,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["arrow",null,null,null],"geIcon geSprite geSprite-simplearrow",null,!0).setAttribute("title",mxResources.get("simpleArrow"))}));r=this.editorUi.toolbar.addMenuFunctionInContainer(G,"geSprite-orthogonal",mxResources.get("pattern"),!1,mxUtils.bind(this,function(W){C(W,33,"solid",[mxConstants.STYLE_DASHED,
mxConstants.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",mxResources.get("solid"));C(W,33,"dashed",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1",null]).setAttribute("title",mxResources.get("dashed"));C(W,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",mxResources.get("dotted")+" (1)");C(W,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",mxResources.get("dotted")+
-" (2)");C(W,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")}));u=A.cloneNode(!1);var D=document.createElement("input");D.style.position="absolute";D.style.textAlign="right";D.style.marginTop="2px";D.style.width="52px";D.style.height="21px";D.style.left="146px";D.style.border="1px solid rgb(160, 160, 160)";D.style.borderRadius="4px";D.style.boxSizing="border-box";D.setAttribute("title",mxResources.get("linewidth"));
-A.appendChild(D);var O=D.cloneNode(!0);F.appendChild(O);var Q=this.createStepper(D,b,1,9);Q.style.display=D.style.display;Q.style.marginTop="2px";Q.style.left="198px";A.appendChild(Q);Q=this.createStepper(O,f,1,9);Q.style.display=O.style.display;Q.style.marginTop="2px";O.style.position="absolute";Q.style.left="198px";F.appendChild(Q);mxEvent.addListener(D,"blur",b);mxEvent.addListener(D,"change",b);mxEvent.addListener(O,"blur",f);mxEvent.addListener(O,"change",f);var R=this.editorUi.toolbar.addMenuFunctionInContainer(u,
+" (2)");C(W,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")}));u=B.cloneNode(!1);var D=document.createElement("input");D.style.position="absolute";D.style.textAlign="right";D.style.marginTop="2px";D.style.width="52px";D.style.height="21px";D.style.left="146px";D.style.border="1px solid rgb(160, 160, 160)";D.style.borderRadius="4px";D.style.boxSizing="border-box";D.setAttribute("title",mxResources.get("linewidth"));
+B.appendChild(D);var N=D.cloneNode(!0);G.appendChild(N);var Q=this.createStepper(D,b,1,9);Q.style.display=D.style.display;Q.style.marginTop="2px";Q.style.left="198px";B.appendChild(Q);Q=this.createStepper(N,f,1,9);Q.style.display=N.style.display;Q.style.marginTop="2px";N.style.position="absolute";Q.style.left="198px";G.appendChild(Q);mxEvent.addListener(D,"blur",b);mxEvent.addListener(D,"change",b);mxEvent.addListener(N,"blur",f);mxEvent.addListener(N,"change",f);var R=this.editorUi.toolbar.addMenuFunctionInContainer(u,
"geSprite-orthogonal",mxResources.get("waypoints"),!1,mxUtils.bind(this,function(W){"arrow"!=e.style.shape&&(this.editorUi.menus.edgeStyleChange(W,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],[null,null,null],"geIcon geSprite geSprite-straight",null,!0).setAttribute("title",mxResources.get("straight")),this.editorUi.menus.edgeStyleChange(W,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle",null,null],"geIcon geSprite geSprite-orthogonal",
null,!0).setAttribute("title",mxResources.get("orthogonal")),this.editorUi.menus.edgeStyleChange(W,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["elbowEdgeStyle",null,null,null],"geIcon geSprite geSprite-horizontalelbow",null,!0).setAttribute("title",mxResources.get("simple")),this.editorUi.menus.edgeStyleChange(W,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["elbowEdgeStyle",
"vertical",null,null],"geIcon geSprite geSprite-verticalelbow",null,!0).setAttribute("title",mxResources.get("simple")),this.editorUi.menus.edgeStyleChange(W,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["isometricEdgeStyle",null,null,null],"geIcon geSprite geSprite-horizontalisometric",null,!0).setAttribute("title",mxResources.get("isometric")),this.editorUi.menus.edgeStyleChange(W,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,
@@ -3459,48 +3459,48 @@ mxUtils.bind(this,function(W){if("connector"==e.style.shape||"flexArrow"==e.styl
"scaleX(-1)"),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(W,"",[mxConstants.STYLE_ENDARROW,"endFill"],["baseDash",0],null,null,!1,Format.baseDashMarkerImage.src),"scaleX(-1)"),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(W,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERone",0],null,null,!1,Format.EROneMarkerImage.src),"scaleX(-1)"),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(W,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERmandOne",0],null,null,!1,Format.ERmandOneMarkerImage.src),
"scaleX(-1)"),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(W,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERmany",0],null,null,!1,Format.ERmanyMarkerImage.src),"scaleX(-1)"),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(W,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERoneToMany",0],null,null,!1,Format.ERoneToManyMarkerImage.src),"scaleX(-1)"),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(W,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToOne",0],null,null,
!1,Format.ERzeroToOneMarkerImage.src),"scaleX(-1)"),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(W,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToMany",0],null,null,!1,Format.ERzeroToManyMarkerImage.src),"scaleX(-1)"),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(W,"",[mxConstants.STYLE_ENDARROW,"endFill"],["doubleBlock",0],null,null,!1,Format.doubleBlockMarkerImage.src),"scaleX(-1)"),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(W,"",[mxConstants.STYLE_ENDARROW,
-"endFill"],["doubleBlock",1],null,null,!1,Format.doubleBlockFilledMarkerImage.src),"scaleX(-1)")):this.editorUi.menus.edgeStyleChange(W,"",[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-endblocktrans",null,!1).setAttribute("title",mxResources.get("block"));W.div.style.width="40px";window.setTimeout(mxUtils.bind(this,function(){null!=W.div&&mxUtils.fit(W.div)}),0)}}));Q=this.addArrow(K,8);Q.nextSibling.style.position="relative";Q.nextSibling.style.top="-2px";Q=this.addArrow(R,
-10);Q.nextSibling.style.position="relative";Q.nextSibling.style.top="-3px";R.getElementsByTagName("img")[0].style.top="-1px";this.addArrow(P,null,!0);this.addArrow(Z,null,!0);Q=this.addArrow(m,9);Q.className="geIcon";Q.style.width="auto";var T=this.addArrow(r,9);T.className="geIcon";T.style.width="22px";var U=document.createElement("div");U.style.width="84px";U.style.height="1px";U.style.borderBottom="1px solid "+this.defaultStrokeColor;U.style.marginBottom="7px";Q.appendChild(U);var fa=document.createElement("div");
-fa.style.width="23px";fa.style.height="1px";fa.style.borderBottom="1px solid "+this.defaultStrokeColor;fa.style.marginBottom="7px";T.appendChild(fa);m.style.height="15px";m.style.marginLeft="16px";r.style.height="15px";r.style.marginLeft="3px";K.style.marginLeft="10px";K.style.height="15px";R.style.marginLeft="10px";R.style.height="17px";P.style.marginLeft="3px";P.style.height="17px";Z.style.marginLeft="3px";Z.style.height="17px";a.appendChild(k);a.appendChild(F);a.appendChild(A);m=A.cloneNode(!1);
-m.style.padding="5px 4px 6px 0px";m.style.fontWeight="normal";r=document.createElement("div");r.style.position="absolute";r.style.marginLeft="0px";r.style.marginBottom="12px";r.style.marginTop="2px";r.style.fontWeight="normal";r.style.width="76px";mxUtils.write(r,mxResources.get("lineend"));m.appendChild(r);var ha=this.addUnitInput(m,"pt",98,52,function(){ka.apply(this,arguments)}),ba=this.addUnitInput(m,"pt",30,52,function(){ea.apply(this,arguments)});mxUtils.br(m);Q=document.createElement("div");
-Q.style.height="8px";m.appendChild(Q);r=r.cloneNode(!1);mxUtils.write(r,mxResources.get("linestart"));m.appendChild(r);var qa=this.addUnitInput(m,"pt",98,52,function(){V.apply(this,arguments)}),I=this.addUnitInput(m,"pt",30,52,function(){S.apply(this,arguments)});mxUtils.br(m);this.addLabel(m,mxResources.get("spacing"),98,52);this.addLabel(m,mxResources.get("size"),30,52);mxUtils.br(m);k=k.cloneNode(!1);k.style.fontWeight="normal";k.style.position="relative";k.style.paddingLeft="16px";k.style.marginBottom=
-"2px";k.style.marginTop="6px";k.style.borderWidth="0px";k.style.paddingBottom="18px";r=document.createElement("div");r.style.position="absolute";r.style.marginLeft="3px";r.style.marginBottom="12px";r.style.marginTop="1px";r.style.fontWeight="normal";r.style.width="120px";mxUtils.write(r,mxResources.get("perimeter"));k.appendChild(r);var L=this.addUnitInput(k,"pt",30,52,function(){wa.apply(this,arguments)});e.edges.length==e.cells.length?(a.appendChild(u),a.appendChild(m)):e.vertices.length==e.cells.length&&
-a.appendChild(k);var H=mxUtils.bind(this,function(W,aa,oa){function ua(Ja,Ga,va,za){va=va.getElementsByTagName("div")[0];null!=va&&d.updateCssForMarker(va,za,e.style.shape,Ja,Ga);return va}e=d.getSelectionState();if(oa||document.activeElement!=D)W=parseFloat(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),D.value=isNaN(W)?"":W+" pt";if(oa||document.activeElement!=O)W=parseFloat(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),O.value=isNaN(W)?"":W+" pt";n.style.visibility="connector"==
-e.style.shape||"filledEdge"==e.style.shape?"":"hidden";"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?n.value="curved":"1"==mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,null)&&(n.value="rounded");"1"==mxUtils.getValue(e.style,mxConstants.STYLE_DASHED,null)?null==mxUtils.getValue(e.style,mxConstants.STYLE_DASH_PATTERN,null)?U.style.borderBottom="1px dashed "+this.defaultStrokeColor:U.style.borderBottom="1px dotted "+this.defaultStrokeColor:U.style.borderBottom="1px solid "+this.defaultStrokeColor;
-fa.style.borderBottom=U.style.borderBottom;W=R.getElementsByTagName("div")[0];null!=W&&(aa=mxUtils.getValue(e.style,mxConstants.STYLE_EDGE,null),"1"==mxUtils.getValue(e.style,mxConstants.STYLE_NOEDGESTYLE,null)&&(aa=null),"orthogonalEdgeStyle"==aa&&"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?W.className="geSprite geSprite-curved":W.className="straight"==aa||"none"==aa||null==aa?"geSprite geSprite-straight":"entityRelationEdgeStyle"==aa?"geSprite geSprite-entity":"elbowEdgeStyle"==
-aa?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalelbow":"geSprite-horizontalelbow"):"isometricEdgeStyle"==aa?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalisometric":"geSprite-horizontalisometric"):"geSprite geSprite-orthogonal");W=K.getElementsByTagName("div")[0];null!=W&&(W.className="link"==e.style.shape?"geSprite geSprite-linkedge":"flexArrow"==e.style.shape?"geSprite geSprite-arrow":"arrow"==
-e.style.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection");e.edges.length==e.cells.length?(F.style.display="",A.style.display="none"):(F.style.display="none",A.style.display="");Graph.lineJumpsEnabled&&0<e.edges.length&&0==e.vertices.length&&e.lineJumps&&(a.style.borderBottomStyle="none");W=ua(mxUtils.getValue(e.style,mxConstants.STYLE_STARTARROW,null),mxUtils.getValue(e.style,"startFill","1"),P,"start");aa=ua(mxUtils.getValue(e.style,mxConstants.STYLE_ENDARROW,null),mxUtils.getValue(e.style,
+"endFill"],["doubleBlock",1],null,null,!1,Format.doubleBlockFilledMarkerImage.src),"scaleX(-1)")):this.editorUi.menus.edgeStyleChange(W,"",[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-endblocktrans",null,!1).setAttribute("title",mxResources.get("block"));W.div.style.width="40px";window.setTimeout(mxUtils.bind(this,function(){null!=W.div&&mxUtils.fit(W.div)}),0)}}));Q=this.addArrow(J,8);Q.nextSibling.style.position="relative";Q.nextSibling.style.top="-2px";Q=this.addArrow(R,
+10);Q.nextSibling.style.position="relative";Q.nextSibling.style.top="-3px";R.getElementsByTagName("img")[0].style.top="-1px";this.addArrow(P,null,!0);this.addArrow(Z,null,!0);Q=this.addArrow(m,9);Q.className="geIcon";Q.style.width="auto";var U=this.addArrow(r,9);U.className="geIcon";U.style.width="22px";var V=document.createElement("div");V.style.width="84px";V.style.height="1px";V.style.borderBottom="1px solid "+this.defaultStrokeColor;V.style.marginBottom="7px";Q.appendChild(V);var ia=document.createElement("div");
+ia.style.width="23px";ia.style.height="1px";ia.style.borderBottom="1px solid "+this.defaultStrokeColor;ia.style.marginBottom="7px";U.appendChild(ia);m.style.height="15px";m.style.marginLeft="16px";r.style.height="15px";r.style.marginLeft="3px";J.style.marginLeft="10px";J.style.height="15px";R.style.marginLeft="10px";R.style.height="17px";P.style.marginLeft="3px";P.style.height="17px";Z.style.marginLeft="3px";Z.style.height="17px";a.appendChild(k);a.appendChild(G);a.appendChild(B);m=B.cloneNode(!1);
+m.style.padding="5px 4px 6px 0px";m.style.fontWeight="normal";r=document.createElement("div");r.style.position="absolute";r.style.marginLeft="0px";r.style.marginBottom="12px";r.style.marginTop="2px";r.style.fontWeight="normal";r.style.width="76px";mxUtils.write(r,mxResources.get("lineend"));m.appendChild(r);var ha=this.addUnitInput(m,"pt",98,52,function(){fa.apply(this,arguments)}),ba=this.addUnitInput(m,"pt",30,52,function(){ca.apply(this,arguments)});mxUtils.br(m);Q=document.createElement("div");
+Q.style.height="8px";m.appendChild(Q);r=r.cloneNode(!1);mxUtils.write(r,mxResources.get("linestart"));m.appendChild(r);var qa=this.addUnitInput(m,"pt",98,52,function(){T.apply(this,arguments)}),O=this.addUnitInput(m,"pt",30,52,function(){L.apply(this,arguments)});mxUtils.br(m);this.addLabel(m,mxResources.get("spacing"),98,52);this.addLabel(m,mxResources.get("size"),30,52);mxUtils.br(m);k=k.cloneNode(!1);k.style.fontWeight="normal";k.style.position="relative";k.style.paddingLeft="16px";k.style.marginBottom=
+"2px";k.style.marginTop="6px";k.style.borderWidth="0px";k.style.paddingBottom="18px";r=document.createElement("div");r.style.position="absolute";r.style.marginLeft="3px";r.style.marginBottom="12px";r.style.marginTop="1px";r.style.fontWeight="normal";r.style.width="120px";mxUtils.write(r,mxResources.get("perimeter"));k.appendChild(r);var S=this.addUnitInput(k,"pt",30,52,function(){wa.apply(this,arguments)});e.edges.length==e.cells.length?(a.appendChild(u),a.appendChild(m)):e.vertices.length==e.cells.length&&
+a.appendChild(k);var F=mxUtils.bind(this,function(W,aa,oa){function sa(Ka,Ha,ua,Ca){ua=ua.getElementsByTagName("div")[0];null!=ua&&d.updateCssForMarker(ua,Ca,e.style.shape,Ka,Ha);return ua}e=d.getSelectionState();if(oa||document.activeElement!=D)W=parseFloat(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),D.value=isNaN(W)?"":W+" pt";if(oa||document.activeElement!=N)W=parseFloat(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),N.value=isNaN(W)?"":W+" pt";n.style.visibility="connector"==
+e.style.shape||"filledEdge"==e.style.shape?"":"hidden";"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?n.value="curved":"1"==mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,null)&&(n.value="rounded");"1"==mxUtils.getValue(e.style,mxConstants.STYLE_DASHED,null)?null==mxUtils.getValue(e.style,mxConstants.STYLE_DASH_PATTERN,null)?V.style.borderBottom="1px dashed "+this.defaultStrokeColor:V.style.borderBottom="1px dotted "+this.defaultStrokeColor:V.style.borderBottom="1px solid "+this.defaultStrokeColor;
+ia.style.borderBottom=V.style.borderBottom;W=R.getElementsByTagName("div")[0];null!=W&&(aa=mxUtils.getValue(e.style,mxConstants.STYLE_EDGE,null),"1"==mxUtils.getValue(e.style,mxConstants.STYLE_NOEDGESTYLE,null)&&(aa=null),"orthogonalEdgeStyle"==aa&&"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?W.className="geSprite geSprite-curved":W.className="straight"==aa||"none"==aa||null==aa?"geSprite geSprite-straight":"entityRelationEdgeStyle"==aa?"geSprite geSprite-entity":"elbowEdgeStyle"==
+aa?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalelbow":"geSprite-horizontalelbow"):"isometricEdgeStyle"==aa?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalisometric":"geSprite-horizontalisometric"):"geSprite geSprite-orthogonal");W=J.getElementsByTagName("div")[0];null!=W&&(W.className="link"==e.style.shape?"geSprite geSprite-linkedge":"flexArrow"==e.style.shape?"geSprite geSprite-arrow":"arrow"==
+e.style.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection");e.edges.length==e.cells.length?(G.style.display="",B.style.display="none"):(G.style.display="none",B.style.display="");Graph.lineJumpsEnabled&&0<e.edges.length&&0==e.vertices.length&&e.lineJumps&&(a.style.borderBottomStyle="none");W=sa(mxUtils.getValue(e.style,mxConstants.STYLE_STARTARROW,null),mxUtils.getValue(e.style,"startFill","1"),P,"start");aa=sa(mxUtils.getValue(e.style,mxConstants.STYLE_ENDARROW,null),mxUtils.getValue(e.style,
"endFill","1"),Z,"end");null!=W&&null!=aa&&("arrow"==e.style.shape?(W.className="geSprite geSprite-noarrow",aa.className="geSprite geSprite-endblocktrans"):"link"==e.style.shape&&(W.className="geSprite geSprite-noarrow",aa.className="geSprite geSprite-noarrow"));mxUtils.setOpacity(R,"arrow"==e.style.shape?30:100);"connector"!=e.style.shape&&"flexArrow"!=e.style.shape&&"filledEdge"!=e.style.shape?(mxUtils.setOpacity(P,30),mxUtils.setOpacity(Z,30)):(mxUtils.setOpacity(P,100),mxUtils.setOpacity(Z,100));
-if(oa||document.activeElement!=I)W=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)),I.value=isNaN(W)?"":W+" pt";if(oa||document.activeElement!=qa)W=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),qa.value=isNaN(W)?"":W+" pt";if(oa||document.activeElement!=ba)W=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),ba.value=isNaN(W)?"":W+" pt";if(oa||document.activeElement!=qa)W=parseInt(mxUtils.getValue(e.style,
-mxConstants.STYLE_TARGET_PERIMETER_SPACING,0)),ha.value=isNaN(W)?"":W+" pt";if(oa||document.activeElement!=L)W=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_PERIMETER_SPACING,0)),L.value=isNaN(W)?"":W+" pt"});var S=this.installInputHandler(I,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");var V=this.installInputHandler(qa,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");var ea=this.installInputHandler(ba,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,
-0,999," pt");var ka=this.installInputHandler(ha,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0,-999,999," pt");var wa=this.installInputHandler(L,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(D,H);this.addKeyHandler(I,H);this.addKeyHandler(qa,H);this.addKeyHandler(ba,H);this.addKeyHandler(ha,H);this.addKeyHandler(L,H);g.getModel().addListener(mxEvent.CHANGE,H);this.listeners.push({destroy:function(){g.getModel().removeListener(H)}});H();return a};
+if(oa||document.activeElement!=O)W=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)),O.value=isNaN(W)?"":W+" pt";if(oa||document.activeElement!=qa)W=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),qa.value=isNaN(W)?"":W+" pt";if(oa||document.activeElement!=ba)W=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),ba.value=isNaN(W)?"":W+" pt";if(oa||document.activeElement!=qa)W=parseInt(mxUtils.getValue(e.style,
+mxConstants.STYLE_TARGET_PERIMETER_SPACING,0)),ha.value=isNaN(W)?"":W+" pt";if(oa||document.activeElement!=S)W=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_PERIMETER_SPACING,0)),S.value=isNaN(W)?"":W+" pt"});var L=this.installInputHandler(O,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");var T=this.installInputHandler(qa,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");var ca=this.installInputHandler(ba,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,
+0,999," pt");var fa=this.installInputHandler(ha,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0,-999,999," pt");var wa=this.installInputHandler(S,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(D,F);this.addKeyHandler(O,F);this.addKeyHandler(qa,F);this.addKeyHandler(ba,F);this.addKeyHandler(ha,F);this.addKeyHandler(S,F);g.getModel().addListener(mxEvent.CHANGE,F);this.listeners.push({destroy:function(){g.getModel().removeListener(F)}});F();return a};
StyleFormatPanel.prototype.addLineJumps=function(a){var b=this.editorUi,f=b.editor.graph,d=b.getSelectionState();if(Graph.lineJumpsEnabled&&0<d.edges.length&&0==d.vertices.length&&d.lineJumps){a.style.padding="2px 0px 24px 14px";var g=document.createElement("div");g.style.position="absolute";g.style.maxWidth="82px";g.style.overflow="hidden";g.style.textOverflow="ellipsis";mxUtils.write(g,mxResources.get("lineJumps"));a.appendChild(g);var e=document.createElement("select");e.style.position="absolute";
e.style.height="21px";e.style.padding="0px";e.style.marginTop="-2px";e.style.boxSizing="border-box";e.style.right="76px";e.style.width="54px";e.style.border="1px solid rgb(160, 160, 160)";e.style.borderRadius="4px";g=["none","arc","gap","sharp","line"];for(var k=0;k<g.length;k++){var n=document.createElement("option");n.setAttribute("value",g[k]);mxUtils.write(n,mxResources.get(g[k]));e.appendChild(n)}mxEvent.addListener(e,"change",function(x){f.getModel().beginUpdate();try{f.setCellStyles("jumpStyle",
-e.value,d.cells),b.fireEvent(new mxEventObject("styleChanged","keys",["jumpStyle"],"values",[e.value],"cells",d.cells))}finally{f.getModel().endUpdate()}mxEvent.consume(x)});mxEvent.addListener(e,"click",function(x){mxEvent.consume(x)});a.appendChild(e);var u=this.addUnitInput(a,"pt",16,42,function(){m.apply(this,arguments)});var m=this.installInputHandler(u,"jumpSize",Graph.defaultJumpSize,0,999," pt");var r=mxUtils.bind(this,function(x,A,C){d=b.getSelectionState();e.value=mxUtils.getValue(d.style,
+e.value,d.cells),b.fireEvent(new mxEventObject("styleChanged","keys",["jumpStyle"],"values",[e.value],"cells",d.cells))}finally{f.getModel().endUpdate()}mxEvent.consume(x)});mxEvent.addListener(e,"click",function(x){mxEvent.consume(x)});a.appendChild(e);var u=this.addUnitInput(a,"pt",16,42,function(){m.apply(this,arguments)});var m=this.installInputHandler(u,"jumpSize",Graph.defaultJumpSize,0,999," pt");var r=mxUtils.bind(this,function(x,B,C){d=b.getSelectionState();e.value=mxUtils.getValue(d.style,
"jumpStyle","none");if(C||document.activeElement!=u)x=parseInt(mxUtils.getValue(d.style,"jumpSize",Graph.defaultJumpSize)),u.value=isNaN(x)?"":x+" pt"});this.addKeyHandler(u,r);f.getModel().addListener(mxEvent.CHANGE,r);this.listeners.push({destroy:function(){f.getModel().removeListener(r)}});r()}else a.style.display="none";return a};
StyleFormatPanel.prototype.addEffects=function(a){var b=this.editorUi,f=b.editor.graph,d=b.getSelectionState();a.style.paddingTop="4px";a.style.paddingBottom="0px";var g=document.createElement("table");g.style.width="210px";g.style.fontWeight="bold";g.style.tableLayout="fixed";var e=document.createElement("tbody"),k=document.createElement("tr");k.style.padding="0px";var n=document.createElement("td");n.style.padding="0px";n.style.width="50%";n.setAttribute("valign","top");var u=n.cloneNode(!0);u.style.paddingLeft=
-"8px";k.appendChild(n);k.appendChild(u);e.appendChild(k);g.appendChild(e);a.appendChild(g);var m=n,r=0,x=mxUtils.bind(this,function(C,F,K){C=this.createCellOption(C,F,K);C.style.width="100%";m.appendChild(C);m=m==n?u:n;r++}),A=mxUtils.bind(this,function(C,F,K){d=b.getSelectionState();n.innerText="";u.innerText="";m=n;d.rounded&&x(mxResources.get("rounded"),mxConstants.STYLE_ROUNDED,0);d.swimlane&&x(mxResources.get("divider"),"swimlaneLine",1);d.containsImage||x(mxResources.get("shadow"),mxConstants.STYLE_SHADOW,
-0);d.glass&&x(mxResources.get("glass"),mxConstants.STYLE_GLASS,0);x(mxResources.get("sketch"),"sketch",0)});f.getModel().addListener(mxEvent.CHANGE,A);this.listeners.push({destroy:function(){f.getModel().removeListener(A)}});A();return a};StyleFormatPanel.prototype.addStyleOps=function(a){a.style.paddingTop="10px";a.style.paddingBottom="10px";this.addActions(a,["setAsDefaultStyle"]);return a};DiagramStylePanel=function(a,b,f){BaseFormatPanel.call(this,a,b,f);this.init()};
+"8px";k.appendChild(n);k.appendChild(u);e.appendChild(k);g.appendChild(e);a.appendChild(g);var m=n,r=0,x=mxUtils.bind(this,function(C,G,J){C=this.createCellOption(C,G,J);C.style.width="100%";m.appendChild(C);m=m==n?u:n;r++}),B=mxUtils.bind(this,function(C,G,J){d=b.getSelectionState();n.innerText="";u.innerText="";m=n;d.rounded&&x(mxResources.get("rounded"),mxConstants.STYLE_ROUNDED,0);d.swimlane&&x(mxResources.get("divider"),"swimlaneLine",1);d.containsImage||x(mxResources.get("shadow"),mxConstants.STYLE_SHADOW,
+0);d.glass&&x(mxResources.get("glass"),mxConstants.STYLE_GLASS,0);x(mxResources.get("sketch"),"sketch",0)});f.getModel().addListener(mxEvent.CHANGE,B);this.listeners.push({destroy:function(){f.getModel().removeListener(B)}});B();return a};StyleFormatPanel.prototype.addStyleOps=function(a){a.style.paddingTop="10px";a.style.paddingBottom="10px";this.addActions(a,["setAsDefaultStyle"]);return a};DiagramStylePanel=function(a,b,f){BaseFormatPanel.call(this,a,b,f);this.init()};
mxUtils.extend(DiagramStylePanel,BaseFormatPanel);DiagramStylePanel.prototype.init=function(){var a=this.editorUi;this.darkModeChangedListener=mxUtils.bind(this,function(){this.format.cachedStyleEntries=[]});a.addListener("darkModeChanged",this.darkModeChangedListener);this.container.appendChild(this.addView(this.createPanel()))};
DiagramStylePanel.prototype.addView=function(a){var b=this.editorUi,f=b.editor.graph,d=f.getModel(),g=f.view.gridColor;a.style.whiteSpace="normal";var e="1"==f.currentVertexStyle.sketch&&"1"==f.currentEdgeStyle.sketch,k="1"==f.currentVertexStyle.rounded,n="1"==f.currentEdgeStyle.curved,u=document.createElement("div");u.style.marginRight="16px";a.style.paddingTop="8px";var m=document.createElement("table");m.style.width="210px";m.style.fontWeight="bold";var r=document.createElement("tbody"),x=document.createElement("tr");
-x.style.padding="0px";var A=document.createElement("td");A.style.padding="0px";A.style.width="50%";A.setAttribute("valign","middle");var C=A.cloneNode(!0);C.style.paddingLeft="8px";"1"!=urlParams.sketch&&(u.style.paddingBottom="12px",x.appendChild(A),A.appendChild(this.createOption(mxResources.get("sketch"),function(){return e},function(ba){(e=ba)?(f.currentEdgeStyle.sketch="1",f.currentVertexStyle.sketch="1"):(delete f.currentEdgeStyle.sketch,delete f.currentVertexStyle.sketch);f.updateCellStyles({sketch:ba?
+x.style.padding="0px";var B=document.createElement("td");B.style.padding="0px";B.style.width="50%";B.setAttribute("valign","middle");var C=B.cloneNode(!0);C.style.paddingLeft="8px";"1"!=urlParams.sketch&&(u.style.paddingBottom="12px",x.appendChild(B),B.appendChild(this.createOption(mxResources.get("sketch"),function(){return e},function(ba){(e=ba)?(f.currentEdgeStyle.sketch="1",f.currentVertexStyle.sketch="1"):(delete f.currentEdgeStyle.sketch,delete f.currentVertexStyle.sketch);f.updateCellStyles({sketch:ba?
"1":null},f.getVerticesAndEdges())},null,function(ba){ba.style.width="auto"})));x.appendChild(C);r.appendChild(x);m.appendChild(r);C.appendChild(this.createOption(mxResources.get("rounded"),function(){return k},function(ba){(k=ba)?(f.currentEdgeStyle.rounded="1",f.currentVertexStyle.rounded="1"):(delete f.currentEdgeStyle.rounded,delete f.currentVertexStyle.rounded);f.updateCellStyles({rounded:ba?"1":"0"},f.getVerticesAndEdges())},null,function(ba){ba.style.width="auto"}));"1"!=urlParams.sketch&&
-(A=A.cloneNode(!1),C=C.cloneNode(!1),x=x.cloneNode(!1),x.appendChild(A),x.appendChild(C),r.appendChild(x),A.appendChild(this.createOption(mxResources.get("curved"),function(){return n},function(ba){(n=ba)?f.currentEdgeStyle.curved="1":delete f.currentEdgeStyle.curved;f.updateCellStyles({curved:ba?"1":null},f.getVerticesAndEdges(!1,!0))},null,function(ba){ba.style.width="auto"})));u.appendChild(m);a.appendChild(u);var F=["fillColor","strokeColor","fontColor","gradientColor"],K=mxUtils.bind(this,function(ba,
-qa){var I=f.getVerticesAndEdges();d.beginUpdate();try{for(var L=0;L<I.length;L++){var H=f.getCellStyle(I[L]);null!=H.labelBackgroundColor&&f.updateCellStyles({labelBackgroundColor:null!=qa?qa.background:null},[I[L]]);for(var S=d.isEdge(I[L]),V=d.getStyle(I[L]),ea=S?f.currentEdgeStyle:f.currentVertexStyle,ka=0;ka<ba.length;ka++)if(null!=H[ba[ka]]&&H[ba[ka]]!=mxConstants.NONE||ba[ka]!=mxConstants.STYLE_FILLCOLOR&&ba[ka]!=mxConstants.STYLE_STROKECOLOR)V=mxUtils.setStyle(V,ba[ka],ea[ba[ka]]);d.setStyle(I[L],
-V)}}finally{d.endUpdate()}}),D=mxUtils.bind(this,function(ba,qa,I){if(null!=ba)for(var L=0;L<qa.length;L++)if(null!=ba[qa[L]]&&ba[qa[L]]!=mxConstants.NONE||qa[L]!=mxConstants.STYLE_FILLCOLOR&&qa[L]!=mxConstants.STYLE_STROKECOLOR)ba[qa[L]]=I[qa[L]]}),O=mxUtils.bind(this,function(ba,qa,I,L,H){if(null!=ba){null!=I&&null!=qa.labelBackgroundColor&&(L=null!=L?L.background:null,H=null!=H?H:f,null==L&&(L=H.background),null==L&&(L=H.defaultPageBackgroundColor),qa.labelBackgroundColor=L);for(var S in ba)if(null==
-I||null!=qa[S]&&qa[S]!=mxConstants.NONE||S!=mxConstants.STYLE_FILLCOLOR&&S!=mxConstants.STYLE_STROKECOLOR)qa[S]=ba[S]}});"1"!=urlParams.sketch&&(A=mxUtils.button(mxResources.get("reset"),mxUtils.bind(this,function(ba){ba=f.getVerticesAndEdges(!0,!0);if(0<ba.length){d.beginUpdate();try{f.updateCellStyles({sketch:null,rounded:null},ba),f.updateCellStyles({curved:null},f.getVerticesAndEdges(!1,!0))}finally{d.endUpdate()}}b.clearDefaultStyle()})),A.setAttribute("title",mxResources.get("reset")),A.style.textOverflow=
-"ellipsis",A.style.maxWidth="90px",C.appendChild(A));var Q=mxUtils.bind(this,function(ba,qa,I,L,H){var S=document.createElement("div");S.style.position="absolute";S.style.display="inline-block";S.style.overflow="hidden";S.style.pointerEvents="none";S.style.width="100%";S.style.height="100%";H.appendChild(S);var V=new Graph(S,null,null,f.getStylesheet());V.resetViewOnRootChange=!1;V.foldingEnabled=!1;V.gridEnabled=!1;V.autoScroll=!1;V.setTooltips(!1);V.setConnectable(!1);V.setPanning(!1);V.setEnabled(!1);
-V.getCellStyle=function(wa,W){W=null!=W?W:!0;var aa=mxUtils.clone(f.getCellStyle.apply(this,arguments)),oa=f.stylesheet.getDefaultVertexStyle(),ua=qa;d.isEdge(wa)&&(oa=f.stylesheet.getDefaultEdgeStyle(),ua=I);D(aa,F,oa);O(ba,aa,wa,L,V);O(ua,aa,wa,L,V);W&&(aa=f.postProcessCellStyle(wa,aa));return aa};V.model.beginUpdate();try{var ea=V.insertVertex(V.getDefaultParent(),null,"Shape",14,8,70,40,"strokeWidth=2;"),ka=V.insertEdge(V.getDefaultParent(),null,"Connector",ea,ea,"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;endSize=5;strokeWidth=2;");
-ka.geometry.points=[new mxPoint(32,70)];ka.geometry.offset=new mxPoint(0,8)}finally{V.model.endUpdate()}}),R=document.createElement("div");R.style.position="relative";a.appendChild(R);null==this.format.cachedStyleEntries&&(this.format.cachedStyleEntries=[]);var P=mxUtils.bind(this,function(ba,qa,I,L,H){var S=this.format.cachedStyleEntries[H];null==S&&(S=document.createElement("div"),S.style.display="inline-block",S.style.position="relative",S.style.width="96px",S.style.height="90px",S.style.cursor=
-"pointer",S.style.border="1px solid gray",S.style.borderRadius="8px",S.style.margin="2px",S.style.overflow="hidden",null!=L&&null!=L.background&&(S.style.backgroundColor=L.background),Q(ba,qa,I,L,S),mxEvent.addGestureListeners(S,mxUtils.bind(this,function(V){S.style.opacity=.5}),null,mxUtils.bind(this,function(V){S.style.opacity=1;f.currentVertexStyle=mxUtils.clone(f.defaultVertexStyle);f.currentEdgeStyle=mxUtils.clone(f.defaultEdgeStyle);O(ba,f.currentVertexStyle);O(ba,f.currentEdgeStyle);O(qa,f.currentVertexStyle);
-O(I,f.currentEdgeStyle);"1"==urlParams.sketch&&(e=Editor.sketchMode);e?(f.currentEdgeStyle.sketch="1",f.currentVertexStyle.sketch="1"):(f.currentEdgeStyle.sketch="0",f.currentVertexStyle.sketch="0");f.currentVertexStyle.rounded=k?"1":"0";f.currentEdgeStyle.rounded="1";f.currentEdgeStyle.curved=n?"1":"0";d.beginUpdate();try{var ea=F.slice(),ka;for(ka in ba)ea.push(ka);K(ea,L);var wa=new ChangePageSetup(b,null!=L?L.background:null);wa.ignoreImage=!0;d.execute(wa);d.execute(new ChangeGridColor(b,null!=
-L&&null!=L.gridColor?L.gridColor:g))}finally{d.endUpdate()}})),mxEvent.addListener(S,"mouseenter",mxUtils.bind(this,function(V){var ea=f.getCellStyle;V=f.background;var ka=f.view.gridColor;f.background=null!=L?L.background:null;f.view.gridColor=null!=L&&null!=L.gridColor?L.gridColor:g;f.getCellStyle=function(wa,W){W=null!=W?W:!0;var aa=mxUtils.clone(ea.apply(this,arguments)),oa=f.stylesheet.getDefaultVertexStyle(),ua=qa;d.isEdge(wa)&&(oa=f.stylesheet.getDefaultEdgeStyle(),ua=I);D(aa,F,oa);O(ba,aa,
-wa,L);O(ua,aa,wa,L);W&&(aa=this.postProcessCellStyle(wa,aa));return aa};f.refresh();f.getCellStyle=ea;f.background=V;f.view.gridColor=ka})),mxEvent.addListener(S,"mouseleave",mxUtils.bind(this,function(V){f.refresh()})),mxClient.IS_IE||mxClient.IS_IE11||(this.format.cachedStyleEntries[H]=S));R.appendChild(S)}),Z=Math.ceil(Editor.styles.length/10);this.format.currentStylePage=null!=this.format.currentStylePage?this.format.currentStylePage:0;var T=[],U=mxUtils.bind(this,function(){0<T.length&&(T[this.format.currentStylePage].style.background=
-"#84d7ff");for(var ba=10*this.format.currentStylePage;ba<Math.min(10*(this.format.currentStylePage+1),Editor.styles.length);ba++){var qa=Editor.styles[ba];P(qa.commonStyle,qa.vertexStyle,qa.edgeStyle,qa.graph,ba)}}),fa=mxUtils.bind(this,function(ba){0<=ba&&ba<Z&&(T[this.format.currentStylePage].style.background="transparent",R.innerText="",this.format.currentStylePage=ba,U())});if(1<Z){u=document.createElement("div");u.style.whiteSpace="nowrap";u.style.position="relative";u.style.textAlign="center";
-u.style.paddingTop="4px";u.style.width="210px";a.style.paddingBottom="8px";for(C=0;C<Z;C++){var ha=document.createElement("div");ha.style.display="inline-block";ha.style.width="6px";ha.style.height="6px";ha.style.marginLeft="4px";ha.style.marginRight="3px";ha.style.borderRadius="3px";ha.style.cursor="pointer";ha.style.background="transparent";ha.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(ba,qa){mxEvent.addListener(ha,"click",mxUtils.bind(this,function(){fa(ba)}))})(C,ha);u.appendChild(ha);
-T.push(ha)}a.appendChild(u);U();15>Z&&(m=function(ba){mxEvent.addListener(ba,"mouseenter",function(){ba.style.opacity="1"});mxEvent.addListener(ba,"mouseleave",function(){ba.style.opacity="0.5"})},A=document.createElement("div"),A.style.position="absolute",A.style.left="0px",A.style.top="0px",A.style.bottom="0px",A.style.width="24px",A.style.height="24px",A.style.margin="0px",A.style.cursor="pointer",A.style.opacity="0.5",A.style.backgroundRepeat="no-repeat",A.style.backgroundPosition="center center",
-A.style.backgroundSize="24px 24px",A.style.backgroundImage="url("+Editor.previousImage+")",Editor.isDarkMode()&&(A.style.filter="invert(100%)"),C=A.cloneNode(!1),C.style.backgroundImage="url("+Editor.nextImage+")",C.style.left="",C.style.right="2px",u.appendChild(A),u.appendChild(C),mxEvent.addListener(A,"click",mxUtils.bind(this,function(){fa(mxUtils.mod(this.format.currentStylePage-1,Z))})),mxEvent.addListener(C,"click",mxUtils.bind(this,function(){fa(mxUtils.mod(this.format.currentStylePage+1,
-Z))})),m(A),m(C))}else U();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,f){BaseFormatPanel.call(this,a,b,f);this.init()};mxUtils.extend(DiagramFormatPanel,BaseFormatPanel);DiagramFormatPanel.showPageView=!0;DiagramFormatPanel.prototype.showBackgroundImageOption=!0;
+(B=B.cloneNode(!1),C=C.cloneNode(!1),x=x.cloneNode(!1),x.appendChild(B),x.appendChild(C),r.appendChild(x),B.appendChild(this.createOption(mxResources.get("curved"),function(){return n},function(ba){(n=ba)?f.currentEdgeStyle.curved="1":delete f.currentEdgeStyle.curved;f.updateCellStyles({curved:ba?"1":null},f.getVerticesAndEdges(!1,!0))},null,function(ba){ba.style.width="auto"})));u.appendChild(m);a.appendChild(u);var G=["fillColor","strokeColor","fontColor","gradientColor"],J=mxUtils.bind(this,function(ba,
+qa){var O=f.getVerticesAndEdges();d.beginUpdate();try{for(var S=0;S<O.length;S++){var F=f.getCellStyle(O[S]);null!=F.labelBackgroundColor&&f.updateCellStyles({labelBackgroundColor:null!=qa?qa.background:null},[O[S]]);for(var L=d.isEdge(O[S]),T=d.getStyle(O[S]),ca=L?f.currentEdgeStyle:f.currentVertexStyle,fa=0;fa<ba.length;fa++)if(null!=F[ba[fa]]&&F[ba[fa]]!=mxConstants.NONE||ba[fa]!=mxConstants.STYLE_FILLCOLOR&&ba[fa]!=mxConstants.STYLE_STROKECOLOR)T=mxUtils.setStyle(T,ba[fa],ca[ba[fa]]);d.setStyle(O[S],
+T)}}finally{d.endUpdate()}}),D=mxUtils.bind(this,function(ba,qa,O){if(null!=ba)for(var S=0;S<qa.length;S++)if(null!=ba[qa[S]]&&ba[qa[S]]!=mxConstants.NONE||qa[S]!=mxConstants.STYLE_FILLCOLOR&&qa[S]!=mxConstants.STYLE_STROKECOLOR)ba[qa[S]]=O[qa[S]]}),N=mxUtils.bind(this,function(ba,qa,O,S,F){if(null!=ba){null!=O&&null!=qa.labelBackgroundColor&&(S=null!=S?S.background:null,F=null!=F?F:f,null==S&&(S=F.background),null==S&&(S=F.defaultPageBackgroundColor),qa.labelBackgroundColor=S);for(var L in ba)if(null==
+O||null!=qa[L]&&qa[L]!=mxConstants.NONE||L!=mxConstants.STYLE_FILLCOLOR&&L!=mxConstants.STYLE_STROKECOLOR)qa[L]=ba[L]}});"1"!=urlParams.sketch&&(B=mxUtils.button(mxResources.get("reset"),mxUtils.bind(this,function(ba){ba=f.getVerticesAndEdges(!0,!0);if(0<ba.length){d.beginUpdate();try{f.updateCellStyles({sketch:null,rounded:null},ba),f.updateCellStyles({curved:null},f.getVerticesAndEdges(!1,!0))}finally{d.endUpdate()}}b.clearDefaultStyle()})),B.setAttribute("title",mxResources.get("reset")),B.style.textOverflow=
+"ellipsis",B.style.maxWidth="90px",C.appendChild(B));var Q=mxUtils.bind(this,function(ba,qa,O,S,F){var L=document.createElement("div");L.style.position="absolute";L.style.display="inline-block";L.style.overflow="hidden";L.style.pointerEvents="none";L.style.width="100%";L.style.height="100%";F.appendChild(L);var T=new Graph(L,null,null,f.getStylesheet());T.resetViewOnRootChange=!1;T.foldingEnabled=!1;T.gridEnabled=!1;T.autoScroll=!1;T.setTooltips(!1);T.setConnectable(!1);T.setPanning(!1);T.setEnabled(!1);
+T.getCellStyle=function(wa,W){W=null!=W?W:!0;var aa=mxUtils.clone(f.getCellStyle.apply(this,arguments)),oa=f.stylesheet.getDefaultVertexStyle(),sa=qa;d.isEdge(wa)&&(oa=f.stylesheet.getDefaultEdgeStyle(),sa=O);D(aa,G,oa);N(ba,aa,wa,S,T);N(sa,aa,wa,S,T);W&&(aa=f.postProcessCellStyle(wa,aa));return aa};T.model.beginUpdate();try{var ca=T.insertVertex(T.getDefaultParent(),null,"Shape",14,8,70,40,"strokeWidth=2;"),fa=T.insertEdge(T.getDefaultParent(),null,"Connector",ca,ca,"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;endSize=5;strokeWidth=2;");
+fa.geometry.points=[new mxPoint(32,70)];fa.geometry.offset=new mxPoint(0,8)}finally{T.model.endUpdate()}}),R=document.createElement("div");R.style.position="relative";a.appendChild(R);null==this.format.cachedStyleEntries&&(this.format.cachedStyleEntries=[]);var P=mxUtils.bind(this,function(ba,qa,O,S,F){var L=this.format.cachedStyleEntries[F];null==L&&(L=document.createElement("div"),L.style.display="inline-block",L.style.position="relative",L.style.width="96px",L.style.height="90px",L.style.cursor=
+"pointer",L.style.border="1px solid gray",L.style.borderRadius="8px",L.style.margin="2px",L.style.overflow="hidden",null!=S&&null!=S.background&&(L.style.backgroundColor=S.background),Q(ba,qa,O,S,L),mxEvent.addGestureListeners(L,mxUtils.bind(this,function(T){L.style.opacity=.5}),null,mxUtils.bind(this,function(T){L.style.opacity=1;f.currentVertexStyle=mxUtils.clone(f.defaultVertexStyle);f.currentEdgeStyle=mxUtils.clone(f.defaultEdgeStyle);N(ba,f.currentVertexStyle);N(ba,f.currentEdgeStyle);N(qa,f.currentVertexStyle);
+N(O,f.currentEdgeStyle);"1"==urlParams.sketch&&(e=Editor.sketchMode);e?(f.currentEdgeStyle.sketch="1",f.currentVertexStyle.sketch="1"):(f.currentEdgeStyle.sketch="0",f.currentVertexStyle.sketch="0");f.currentVertexStyle.rounded=k?"1":"0";f.currentEdgeStyle.rounded="1";f.currentEdgeStyle.curved=n?"1":"0";d.beginUpdate();try{var ca=G.slice(),fa;for(fa in ba)ca.push(fa);J(ca,S);var wa=new ChangePageSetup(b,null!=S?S.background:null);wa.ignoreImage=!0;d.execute(wa);d.execute(new ChangeGridColor(b,null!=
+S&&null!=S.gridColor?S.gridColor:g))}finally{d.endUpdate()}})),mxEvent.addListener(L,"mouseenter",mxUtils.bind(this,function(T){var ca=f.getCellStyle;T=f.background;var fa=f.view.gridColor;f.background=null!=S?S.background:null;f.view.gridColor=null!=S&&null!=S.gridColor?S.gridColor:g;f.getCellStyle=function(wa,W){W=null!=W?W:!0;var aa=mxUtils.clone(ca.apply(this,arguments)),oa=f.stylesheet.getDefaultVertexStyle(),sa=qa;d.isEdge(wa)&&(oa=f.stylesheet.getDefaultEdgeStyle(),sa=O);D(aa,G,oa);N(ba,aa,
+wa,S);N(sa,aa,wa,S);W&&(aa=this.postProcessCellStyle(wa,aa));return aa};f.refresh();f.getCellStyle=ca;f.background=T;f.view.gridColor=fa})),mxEvent.addListener(L,"mouseleave",mxUtils.bind(this,function(T){f.refresh()})),mxClient.IS_IE||mxClient.IS_IE11||(this.format.cachedStyleEntries[F]=L));R.appendChild(L)}),Z=Math.ceil(Editor.styles.length/10);this.format.currentStylePage=null!=this.format.currentStylePage?this.format.currentStylePage:0;var U=[],V=mxUtils.bind(this,function(){0<U.length&&(U[this.format.currentStylePage].style.background=
+"#84d7ff");for(var ba=10*this.format.currentStylePage;ba<Math.min(10*(this.format.currentStylePage+1),Editor.styles.length);ba++){var qa=Editor.styles[ba];P(qa.commonStyle,qa.vertexStyle,qa.edgeStyle,qa.graph,ba)}}),ia=mxUtils.bind(this,function(ba){0<=ba&&ba<Z&&(U[this.format.currentStylePage].style.background="transparent",R.innerText="",this.format.currentStylePage=ba,V())});if(1<Z){u=document.createElement("div");u.style.whiteSpace="nowrap";u.style.position="relative";u.style.textAlign="center";
+u.style.paddingTop="4px";u.style.width="210px";a.style.paddingBottom="8px";for(C=0;C<Z;C++){var ha=document.createElement("div");ha.style.display="inline-block";ha.style.width="6px";ha.style.height="6px";ha.style.marginLeft="4px";ha.style.marginRight="3px";ha.style.borderRadius="3px";ha.style.cursor="pointer";ha.style.background="transparent";ha.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(ba,qa){mxEvent.addListener(ha,"click",mxUtils.bind(this,function(){ia(ba)}))})(C,ha);u.appendChild(ha);
+U.push(ha)}a.appendChild(u);V();15>Z&&(m=function(ba){mxEvent.addListener(ba,"mouseenter",function(){ba.style.opacity="1"});mxEvent.addListener(ba,"mouseleave",function(){ba.style.opacity="0.5"})},B=document.createElement("div"),B.style.position="absolute",B.style.left="0px",B.style.top="0px",B.style.bottom="0px",B.style.width="24px",B.style.height="24px",B.style.margin="0px",B.style.cursor="pointer",B.style.opacity="0.5",B.style.backgroundRepeat="no-repeat",B.style.backgroundPosition="center center",
+B.style.backgroundSize="24px 24px",B.style.backgroundImage="url("+Editor.previousImage+")",Editor.isDarkMode()&&(B.style.filter="invert(100%)"),C=B.cloneNode(!1),C.style.backgroundImage="url("+Editor.nextImage+")",C.style.left="",C.style.right="2px",u.appendChild(B),u.appendChild(C),mxEvent.addListener(B,"click",mxUtils.bind(this,function(){ia(mxUtils.mod(this.format.currentStylePage-1,Z))})),mxEvent.addListener(C,"click",mxUtils.bind(this,function(){ia(mxUtils.mod(this.format.currentStylePage+1,
+Z))})),m(B),m(C))}else V();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,f){BaseFormatPanel.call(this,a,b,f);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,f=b.editor.graph;a.appendChild(this.createTitle(mxResources.get("view")));this.addGridOption(a);DiagramFormatPanel.showPageView&&a.appendChild(this.createOption(mxResources.get("pageView"),function(){return f.pageVisible},function(e){b.actions.get("pageView").funct()},{install:function(e){this.listener=function(){e(f.pageVisible)};b.addListener("pageViewChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}}));
if(f.isEnabled()){var d=this.createColorOption(mxResources.get("background"),function(){return f.background},function(e){var k=new ChangePageSetup(b,e);k.ignoreImage=null!=e&&e!=mxConstants.NONE;f.model.execute(k)},"#ffffff",{install:function(e){this.listener=function(){e(f.background)};b.addListener("backgroundColorChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});if(this.showBackgroundImageOption){var g=d.getElementsByTagName("span")[0];g.style.display="inline-block";
@@ -3516,19 +3516,19 @@ DiagramFormatPanel.prototype.addDocumentProperties=function(a){a.appendChild(thi
DiagramFormatPanel.prototype.addPaperSize=function(a){var b=this.editorUi,f=b.editor.graph;a.appendChild(this.createTitle(mxResources.get("paperSize")));var d=PageSetupDialog.addPageFormatPanel(a,"formatpanel",f.pageFormat,function(e){if(null==f.pageFormat||f.pageFormat.width!=e.width||f.pageFormat.height!=e.height)e=new ChangePageSetup(b,null,null,e),e.ignoreColor=!0,e.ignoreImage=!0,f.model.execute(e)});this.addKeyHandler(d.widthInput,function(){d.set(f.pageFormat)});this.addKeyHandler(d.heightInput,
function(){d.set(f.pageFormat)});var g=function(){d.set(f.pageFormat)};b.addListener("pageFormatChanged",g);this.listeners.push({destroy:function(){b.removeListener(g)}});f.getModel().addListener(mxEvent.CHANGE,g);this.listeners.push({destroy:function(){f.getModel().removeListener(g)}});return a};DiagramFormatPanel.prototype.addStyleOps=function(a){this.addActions(a,["editData"]);this.addActions(a,["clearDefaultStyle"]);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(c,h,q){mxShape.call(this);this.line=c;this.stroke=h;this.strokewidth=null!=q?q:1;this.updateBoundsFromLine()}function b(){mxSwimlane.call(this)}function f(){mxSwimlane.call(this)}function d(){mxCylinder.call(this)}function g(){mxCylinder.call(this)}function e(){mxActor.call(this)}function k(){mxCylinder.call(this)}function n(){mxCylinder.call(this)}function u(){mxCylinder.call(this)}function m(){mxCylinder.call(this)}function r(){mxShape.call(this)}function x(){mxShape.call(this)}
-function A(c,h,q,l){mxShape.call(this);this.bounds=c;this.fill=h;this.stroke=q;this.strokewidth=null!=l?l:1}function C(){mxActor.call(this)}function F(){mxCylinder.call(this)}function K(){mxCylinder.call(this)}function D(){mxActor.call(this)}function O(){mxActor.call(this)}function Q(){mxActor.call(this)}function R(){mxActor.call(this)}function P(){mxActor.call(this)}function Z(){mxActor.call(this)}function T(){mxActor.call(this)}function U(c,h){this.canvas=c;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");
-this.defaultVariation=h;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,U.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,U.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,U.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,U.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,U.prototype.curveTo);
-this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,U.prototype.arcTo)}function fa(){mxRectangleShape.call(this)}function ha(){mxRectangleShape.call(this)}function ba(){mxActor.call(this)}function qa(){mxActor.call(this)}function I(){mxActor.call(this)}function L(){mxRectangleShape.call(this)}function H(){mxRectangleShape.call(this)}function S(){mxCylinder.call(this)}function V(){mxShape.call(this)}function ea(){mxShape.call(this)}function ka(){mxEllipse.call(this)}function wa(){mxShape.call(this)}
-function W(){mxShape.call(this)}function aa(){mxRectangleShape.call(this)}function oa(){mxShape.call(this)}function ua(){mxShape.call(this)}function Ja(){mxShape.call(this)}function Ga(){mxShape.call(this)}function va(){mxShape.call(this)}function za(){mxCylinder.call(this)}function ra(){mxCylinder.call(this)}function Ha(){mxRectangleShape.call(this)}function Ta(){mxDoubleEllipse.call(this)}function db(){mxDoubleEllipse.call(this)}function Ua(){mxArrowConnector.call(this);this.spacing=0}function Va(){mxArrowConnector.call(this);
-this.spacing=0}function Ya(){mxActor.call(this)}function bb(){mxRectangleShape.call(this)}function cb(){mxActor.call(this)}function jb(){mxActor.call(this)}function $a(){mxActor.call(this)}function ca(){mxActor.call(this)}function t(){mxActor.call(this)}function z(){mxActor.call(this)}function B(){mxActor.call(this)}function E(){mxActor.call(this)}function G(){mxActor.call(this)}function M(){mxActor.call(this)}function X(){mxEllipse.call(this)}function ia(){mxEllipse.call(this)}function da(){mxEllipse.call(this)}
-function ja(){mxRhombus.call(this)}function sa(){mxEllipse.call(this)}function Ba(){mxEllipse.call(this)}function Da(){mxEllipse.call(this)}function Ma(){mxEllipse.call(this)}function La(){mxActor.call(this)}function Ia(){mxActor.call(this)}function Ea(){mxActor.call(this)}function Fa(c,h,q,l){mxShape.call(this);this.bounds=c;this.fill=h;this.stroke=q;this.strokewidth=null!=l?l:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Oa(){mxConnector.call(this)}
-function Pa(c,h,q,l,p,v,w,J,y,Y){w+=y;var N=l.clone();l.x-=p*(2*w+y);l.y-=v*(2*w+y);p*=w+y;v*=w+y;return function(){c.ellipse(N.x-p-w,N.y-v-w,2*w,2*w);Y?c.fillAndStroke():c.stroke()}}mxUtils.extend(a,mxShape);a.prototype.updateBoundsFromLine=function(){var c=null;if(null!=this.line)for(var h=0;h<this.line.length;h++){var q=this.line[h];null!=q&&(q=new mxRectangle(q.x,q.y,this.strokewidth,this.strokewidth),null==c?c=q:c.add(q))}this.bounds=null!=c?c:new mxRectangle};a.prototype.paintVertexShape=function(c,
+function B(c,h,q,l){mxShape.call(this);this.bounds=c;this.fill=h;this.stroke=q;this.strokewidth=null!=l?l:1}function C(){mxActor.call(this)}function G(){mxCylinder.call(this)}function J(){mxCylinder.call(this)}function D(){mxActor.call(this)}function N(){mxActor.call(this)}function Q(){mxActor.call(this)}function R(){mxActor.call(this)}function P(){mxActor.call(this)}function Z(){mxActor.call(this)}function U(){mxActor.call(this)}function V(c,h){this.canvas=c;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");
+this.defaultVariation=h;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,V.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,V.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,V.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,V.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,V.prototype.curveTo);
+this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,V.prototype.arcTo)}function ia(){mxRectangleShape.call(this)}function ha(){mxRectangleShape.call(this)}function ba(){mxActor.call(this)}function qa(){mxActor.call(this)}function O(){mxActor.call(this)}function S(){mxRectangleShape.call(this)}function F(){mxRectangleShape.call(this)}function L(){mxCylinder.call(this)}function T(){mxShape.call(this)}function ca(){mxShape.call(this)}function fa(){mxEllipse.call(this)}function wa(){mxShape.call(this)}
+function W(){mxShape.call(this)}function aa(){mxRectangleShape.call(this)}function oa(){mxShape.call(this)}function sa(){mxShape.call(this)}function Ka(){mxShape.call(this)}function Ha(){mxShape.call(this)}function ua(){mxShape.call(this)}function Ca(){mxCylinder.call(this)}function ra(){mxCylinder.call(this)}function Da(){mxRectangleShape.call(this)}function Ua(){mxDoubleEllipse.call(this)}function db(){mxDoubleEllipse.call(this)}function Ta(){mxArrowConnector.call(this);this.spacing=0}function $a(){mxArrowConnector.call(this);
+this.spacing=0}function Xa(){mxActor.call(this)}function Va(){mxRectangleShape.call(this)}function Ya(){mxActor.call(this)}function jb(){mxActor.call(this)}function bb(){mxActor.call(this)}function da(){mxActor.call(this)}function t(){mxActor.call(this)}function z(){mxActor.call(this)}function A(){mxActor.call(this)}function E(){mxActor.call(this)}function H(){mxActor.call(this)}function K(){mxActor.call(this)}function X(){mxEllipse.call(this)}function ja(){mxEllipse.call(this)}function ea(){mxEllipse.call(this)}
+function ka(){mxRhombus.call(this)}function ta(){mxEllipse.call(this)}function Aa(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}function Ma(){mxEllipse.call(this)}function La(){mxActor.call(this)}function Ia(){mxActor.call(this)}function Fa(){mxActor.call(this)}function Ga(c,h,q,l){mxShape.call(this);this.bounds=c;this.fill=h;this.stroke=q;this.strokewidth=null!=l?l:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Oa(){mxConnector.call(this)}
+function Pa(c,h,q,l,p,v,w,I,y,Y){w+=y;var M=l.clone();l.x-=p*(2*w+y);l.y-=v*(2*w+y);p*=w+y;v*=w+y;return function(){c.ellipse(M.x-p-w,M.y-v-w,2*w,2*w);Y?c.fillAndStroke():c.stroke()}}mxUtils.extend(a,mxShape);a.prototype.updateBoundsFromLine=function(){var c=null;if(null!=this.line)for(var h=0;h<this.line.length;h++){var q=this.line[h];null!=q&&(q=new mxRectangle(q.x,q.y,this.strokewidth,this.strokewidth),null==c?c=q:c.add(q))}this.bounds=null!=c?c:new mxRectangle};a.prototype.paintVertexShape=function(c,
h,q,l,p){this.paintTableLine(c,this.line,0,0)};a.prototype.paintTableLine=function(c,h,q,l){if(null!=h){var p=null;c.begin();for(var v=0;v<h.length;v++){var w=h[v];null!=w&&(null==p?c.moveTo(w.x+q,w.y+l):null!=p&&c.lineTo(w.x+q,w.y+l));p=w}c.end();c.stroke()}};a.prototype.intersectsRectangle=function(c){var h=!1;if(mxShape.prototype.intersectsRectangle.apply(this,arguments)&&null!=this.line)for(var q=null,l=0;l<this.line.length&&!h;l++){var p=this.line[l];null!=p&&null!=q&&(h=mxUtils.rectangleIntersectsSegment(c,
-q,p));q=p}return h};mxCellRenderer.registerShape("tableLine",a);mxUtils.extend(b,mxSwimlane);b.prototype.getLabelBounds=function(c){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};b.prototype.paintVertexShape=function(c,h,q,l,p){var v=null!=this.state?this.state.view.graph.isCellCollapsed(this.state.cell):!1,w=this.isHorizontal(),J=this.getTitleSize();0==J||this.outline?Da.prototype.paintVertexShape.apply(this,
-arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),c.translate(-h,-q));v||this.outline||!(w&&J<p||!w&&J<l)||this.paintForeground(c,h,q,l,p)};b.prototype.paintForeground=function(c,h,q,l,p){if(null!=this.state){var v=this.flipH,w=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH){var J=v;v=w;w=J}c.rotate(-this.getShapeRotation(),v,w,h+l/2,q+p/2);s=this.scale;h=this.bounds.x/s;q=this.bounds.y/s;l=this.bounds.width/s;p=this.bounds.height/
+q,p));q=p}return h};mxCellRenderer.registerShape("tableLine",a);mxUtils.extend(b,mxSwimlane);b.prototype.getLabelBounds=function(c){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};b.prototype.paintVertexShape=function(c,h,q,l,p){var v=null!=this.state?this.state.view.graph.isCellCollapsed(this.state.cell):!1,w=this.isHorizontal(),I=this.getTitleSize();0==I||this.outline?Ea.prototype.paintVertexShape.apply(this,
+arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),c.translate(-h,-q));v||this.outline||!(w&&I<p||!w&&I<l)||this.paintForeground(c,h,q,l,p)};b.prototype.paintForeground=function(c,h,q,l,p){if(null!=this.state){var v=this.flipH,w=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH){var I=v;v=w;w=I}c.rotate(-this.getShapeRotation(),v,w,h+l/2,q+p/2);s=this.scale;h=this.bounds.x/s;q=this.bounds.y/s;l=this.bounds.width/s;p=this.bounds.height/
s;this.paintTableForeground(c,h,q,l,p)}};b.prototype.paintTableForeground=function(c,h,q,l,p){l=this.state.view.graph.getTableLines(this.state.cell,"0"!=mxUtils.getValue(this.state.style,"rowLines","1"),"0"!=mxUtils.getValue(this.state.style,"columnLines","1"));for(p=0;p<l.length;p++)a.prototype.paintTableLine(c,l[p],h,q)};b.prototype.configurePointerEvents=function(c){0==this.getTitleSize()?c.pointerEvents=!1:mxSwimlane.prototype.configurePointerEvents.apply(this,arguments)};mxCellRenderer.registerShape("table",
-b);mxUtils.extend(f,b);f.prototype.paintForeground=function(){};mxCellRenderer.registerShape("tableRow",f);mxUtils.extend(d,mxCylinder);d.prototype.size=20;d.prototype.darkOpacity=0;d.prototype.darkOpacity2=0;d.prototype.paintVertexShape=function(c,h,q,l,p){var v=Math.max(0,Math.min(l,Math.min(p,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),w=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity)))),J=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"darkOpacity2",this.darkOpacity2))));c.translate(h,q);c.begin();c.moveTo(0,0);c.lineTo(l-v,0);c.lineTo(l,v);c.lineTo(l,p);c.lineTo(v,p);c.lineTo(0,p-v);c.lineTo(0,0);c.close();c.end();c.fillAndStroke();this.outline||(c.setShadow(!1),0!=w&&(c.setFillAlpha(Math.abs(w)),c.setFillColor(0>w?"#FFFFFF":"#000000"),c.begin(),c.moveTo(0,0),c.lineTo(l-v,0),c.lineTo(l,v),c.lineTo(v,v),c.close(),c.fill()),0!=J&&(c.setFillAlpha(Math.abs(J)),c.setFillColor(0>J?"#FFFFFF":"#000000"),c.begin(),c.moveTo(0,0),c.lineTo(v,
+b);mxUtils.extend(f,b);f.prototype.paintForeground=function(){};mxCellRenderer.registerShape("tableRow",f);mxUtils.extend(d,mxCylinder);d.prototype.size=20;d.prototype.darkOpacity=0;d.prototype.darkOpacity2=0;d.prototype.paintVertexShape=function(c,h,q,l,p){var v=Math.max(0,Math.min(l,Math.min(p,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),w=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity)))),I=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"darkOpacity2",this.darkOpacity2))));c.translate(h,q);c.begin();c.moveTo(0,0);c.lineTo(l-v,0);c.lineTo(l,v);c.lineTo(l,p);c.lineTo(v,p);c.lineTo(0,p-v);c.lineTo(0,0);c.close();c.end();c.fillAndStroke();this.outline||(c.setShadow(!1),0!=w&&(c.setFillAlpha(Math.abs(w)),c.setFillColor(0>w?"#FFFFFF":"#000000"),c.begin(),c.moveTo(0,0),c.lineTo(l-v,0),c.lineTo(l,v),c.lineTo(v,v),c.close(),c.fill()),0!=I&&(c.setFillAlpha(Math.abs(I)),c.setFillColor(0>I?"#FFFFFF":"#000000"),c.begin(),c.moveTo(0,0),c.lineTo(v,
v),c.lineTo(v,p),c.lineTo(0,p-v),c.close(),c.fill()),c.begin(),c.moveTo(v,p),c.lineTo(v,v),c.lineTo(0,0),c.moveTo(v,v),c.lineTo(l,v),c.end(),c.stroke())};d.prototype.getLabelMargins=function(c){return mxUtils.getValue(this.style,"boundedLbl",!1)?(c=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(c,c,0,0)):null};mxCellRenderer.registerShape("cube",d);var Na=Math.tan(mxUtils.toRadians(30)),Sa=(.5-Na)/2;mxCellRenderer.registerShape("isoRectangle",e);mxUtils.extend(g,
mxCylinder);g.prototype.size=6;g.prototype.paintVertexShape=function(c,h,q,l,p){c.setFillColor(this.stroke);var v=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;c.ellipse(h+.5*(l-v),q+.5*(p-v),v,v);c.fill();c.setFillColor(mxConstants.NONE);c.rect(h,q,l,p);c.fill()};mxCellRenderer.registerShape("waypoint",g);mxUtils.extend(e,mxActor);e.prototype.size=20;e.prototype.redrawPath=function(c,h,q,l,p){h=Math.min(l,p/Na);c.translate((l-h)/2,(p-h)/2+h/4);c.moveTo(0,
.25*h);c.lineTo(.5*h,h*Sa);c.lineTo(h,.25*h);c.lineTo(.5*h,(.5-Sa)*h);c.lineTo(0,.25*h);c.close();c.end()};mxCellRenderer.registerShape("isoRectangle",e);mxUtils.extend(k,mxCylinder);k.prototype.size=20;k.prototype.redrawPath=function(c,h,q,l,p,v){h=Math.min(l,p/(.5+Na));v?(c.moveTo(0,.25*h),c.lineTo(.5*h,(.5-Sa)*h),c.lineTo(h,.25*h),c.moveTo(.5*h,(.5-Sa)*h),c.lineTo(.5*h,(1-Sa)*h)):(c.translate((l-h)/2,(p-h)/2),c.moveTo(0,.25*h),c.lineTo(.5*h,h*Sa),c.lineTo(h,.25*h),c.lineTo(h,.75*h),c.lineTo(.5*
@@ -3537,198 +3537,198 @@ h,(1-Sa)*h),c.lineTo(0,.75*h),c.close());c.end()};mxCellRenderer.registerShape("
this.size))))),w=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity))));c.translate(h,q);c.begin();c.moveTo(0,0);c.lineTo(l-v,0);c.lineTo(l,v);c.lineTo(l,p);c.lineTo(0,p);c.lineTo(0,0);c.close();c.end();c.fillAndStroke();this.outline||(c.setShadow(!1),0!=w&&(c.setFillAlpha(Math.abs(w)),c.setFillColor(0>w?"#FFFFFF":"#000000"),c.begin(),c.moveTo(l-v,0),c.lineTo(l-v,v),c.lineTo(l,v),c.close(),c.fill()),c.begin(),c.moveTo(l-v,0),c.lineTo(l-v,v),c.lineTo(l,v),
c.end(),c.stroke())};mxCellRenderer.registerShape("note",u);mxUtils.extend(m,u);mxCellRenderer.registerShape("note2",m);m.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var h=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(c.height*this.scale,h*this.scale),0,0)}return null};mxUtils.extend(r,mxShape);r.prototype.isoAngle=15;r.prototype.paintVertexShape=function(c,h,q,l,p){var v=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,
"isoAngle",this.isoAngle))))*Math.PI/200;v=Math.min(l*Math.tan(v),.5*p);c.translate(h,q);c.begin();c.moveTo(.5*l,0);c.lineTo(l,v);c.lineTo(l,p-v);c.lineTo(.5*l,p);c.lineTo(0,p-v);c.lineTo(0,v);c.close();c.fillAndStroke();c.setShadow(!1);c.begin();c.moveTo(0,v);c.lineTo(.5*l,2*v);c.lineTo(l,v);c.moveTo(.5*l,2*v);c.lineTo(.5*l,p);c.stroke()};mxCellRenderer.registerShape("isoCube2",r);mxUtils.extend(x,mxShape);x.prototype.size=15;x.prototype.paintVertexShape=function(c,h,q,l,p){var v=Math.max(0,Math.min(.5*
-p,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.translate(h,q);0==v?(c.rect(0,0,l,p),c.fillAndStroke()):(c.begin(),c.moveTo(0,v),c.arcTo(.5*l,v,0,0,1,.5*l,0),c.arcTo(.5*l,v,0,0,1,l,v),c.lineTo(l,p-v),c.arcTo(.5*l,v,0,0,1,.5*l,p),c.arcTo(.5*l,v,0,0,1,0,p-v),c.close(),c.fillAndStroke(),c.setShadow(!1),c.begin(),c.moveTo(l,v),c.arcTo(.5*l,v,0,0,1,.5*l,2*v),c.arcTo(.5*l,v,0,0,1,0,v),c.stroke())};mxCellRenderer.registerShape("cylinder2",x);mxUtils.extend(A,mxCylinder);A.prototype.size=
-15;A.prototype.paintVertexShape=function(c,h,q,l,p){var v=Math.max(0,Math.min(.5*p,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),w=mxUtils.getValue(this.style,"lid",!0);c.translate(h,q);0==v?(c.rect(0,0,l,p),c.fillAndStroke()):(c.begin(),w?(c.moveTo(0,v),c.arcTo(.5*l,v,0,0,1,.5*l,0),c.arcTo(.5*l,v,0,0,1,l,v)):(c.moveTo(0,0),c.arcTo(.5*l,v,0,0,0,.5*l,v),c.arcTo(.5*l,v,0,0,0,l,0)),c.lineTo(l,p-v),c.arcTo(.5*l,v,0,0,1,.5*l,p),c.arcTo(.5*l,v,0,0,1,0,p-v),c.close(),c.fillAndStroke(),c.setShadow(!1),
-w&&(c.begin(),c.moveTo(l,v),c.arcTo(.5*l,v,0,0,1,.5*l,2*v),c.arcTo(.5*l,v,0,0,1,0,v),c.stroke()))};mxCellRenderer.registerShape("cylinder3",A);mxUtils.extend(C,mxActor);C.prototype.redrawPath=function(c,h,q,l,p){c.moveTo(0,0);c.quadTo(l/2,.5*p,l,0);c.quadTo(.5*l,p/2,l,p);c.quadTo(l/2,.5*p,0,p);c.quadTo(.5*l,p/2,0,0);c.end()};mxCellRenderer.registerShape("switch",C);mxUtils.extend(F,mxCylinder);F.prototype.tabWidth=60;F.prototype.tabHeight=20;F.prototype.tabPosition="right";F.prototype.arcSize=.1;
-F.prototype.paintVertexShape=function(c,h,q,l,p){c.translate(h,q);h=Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));q=Math.max(0,Math.min(p,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var v=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),w=mxUtils.getValue(this.style,"rounded",!1),J=mxUtils.getValue(this.style,"absoluteArcSize",!1),y=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));J||(y*=Math.min(l,p));
+p,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.translate(h,q);0==v?(c.rect(0,0,l,p),c.fillAndStroke()):(c.begin(),c.moveTo(0,v),c.arcTo(.5*l,v,0,0,1,.5*l,0),c.arcTo(.5*l,v,0,0,1,l,v),c.lineTo(l,p-v),c.arcTo(.5*l,v,0,0,1,.5*l,p),c.arcTo(.5*l,v,0,0,1,0,p-v),c.close(),c.fillAndStroke(),c.setShadow(!1),c.begin(),c.moveTo(l,v),c.arcTo(.5*l,v,0,0,1,.5*l,2*v),c.arcTo(.5*l,v,0,0,1,0,v),c.stroke())};mxCellRenderer.registerShape("cylinder2",x);mxUtils.extend(B,mxCylinder);B.prototype.size=
+15;B.prototype.paintVertexShape=function(c,h,q,l,p){var v=Math.max(0,Math.min(.5*p,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),w=mxUtils.getValue(this.style,"lid",!0);c.translate(h,q);0==v?(c.rect(0,0,l,p),c.fillAndStroke()):(c.begin(),w?(c.moveTo(0,v),c.arcTo(.5*l,v,0,0,1,.5*l,0),c.arcTo(.5*l,v,0,0,1,l,v)):(c.moveTo(0,0),c.arcTo(.5*l,v,0,0,0,.5*l,v),c.arcTo(.5*l,v,0,0,0,l,0)),c.lineTo(l,p-v),c.arcTo(.5*l,v,0,0,1,.5*l,p),c.arcTo(.5*l,v,0,0,1,0,p-v),c.close(),c.fillAndStroke(),c.setShadow(!1),
+w&&(c.begin(),c.moveTo(l,v),c.arcTo(.5*l,v,0,0,1,.5*l,2*v),c.arcTo(.5*l,v,0,0,1,0,v),c.stroke()))};mxCellRenderer.registerShape("cylinder3",B);mxUtils.extend(C,mxActor);C.prototype.redrawPath=function(c,h,q,l,p){c.moveTo(0,0);c.quadTo(l/2,.5*p,l,0);c.quadTo(.5*l,p/2,l,p);c.quadTo(l/2,.5*p,0,p);c.quadTo(.5*l,p/2,0,0);c.end()};mxCellRenderer.registerShape("switch",C);mxUtils.extend(G,mxCylinder);G.prototype.tabWidth=60;G.prototype.tabHeight=20;G.prototype.tabPosition="right";G.prototype.arcSize=.1;
+G.prototype.paintVertexShape=function(c,h,q,l,p){c.translate(h,q);h=Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));q=Math.max(0,Math.min(p,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var v=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),w=mxUtils.getValue(this.style,"rounded",!1),I=mxUtils.getValue(this.style,"absoluteArcSize",!1),y=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));I||(y*=Math.min(l,p));
y=Math.min(y,.5*l,.5*(p-q));h=Math.max(h,y);h=Math.min(l-y,h);w||(y=0);c.begin();"left"==v?(c.moveTo(Math.max(y,0),q),c.lineTo(Math.max(y,0),0),c.lineTo(h,0),c.lineTo(h,q)):(c.moveTo(l-h,q),c.lineTo(l-h,0),c.lineTo(l-Math.max(y,0),0),c.lineTo(l-Math.max(y,0),q));w?(c.moveTo(0,y+q),c.arcTo(y,y,0,0,1,y,q),c.lineTo(l-y,q),c.arcTo(y,y,0,0,1,l,y+q),c.lineTo(l,p-y),c.arcTo(y,y,0,0,1,l-y,p),c.lineTo(y,p),c.arcTo(y,y,0,0,1,0,p-y)):(c.moveTo(0,q),c.lineTo(l,q),c.lineTo(l,p),c.lineTo(0,p));c.close();c.fillAndStroke();
-c.setShadow(!1);"triangle"==mxUtils.getValue(this.style,"folderSymbol",null)&&(c.begin(),c.moveTo(l-30,q+20),c.lineTo(l-20,q+10),c.lineTo(l-10,q+20),c.close(),c.stroke())};mxCellRenderer.registerShape("folder",F);F.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var h=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var q=mxUtils.getValue(this.style,"tabWidth",15)*this.scale;h=mxUtils.getValue(this.style,
+c.setShadow(!1);"triangle"==mxUtils.getValue(this.style,"folderSymbol",null)&&(c.begin(),c.moveTo(l-30,q+20),c.lineTo(l-20,q+10),c.lineTo(l-10,q+20),c.close(),c.stroke())};mxCellRenderer.registerShape("folder",G);G.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var h=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var q=mxUtils.getValue(this.style,"tabWidth",15)*this.scale;h=mxUtils.getValue(this.style,
"tabHeight",15)*this.scale;var l=mxUtils.getValue(this.style,"rounded",!1),p=mxUtils.getValue(this.style,"absoluteArcSize",!1),v=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));p||(v*=Math.min(c.width,c.height));v=Math.min(v,.5*c.width,.5*(c.height-h));l||(v=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(v,0,Math.min(c.width,c.width-q),Math.min(c.height,c.height-h)):new mxRectangle(Math.min(c.width,c.width-q),0,v,Math.min(c.height,c.height-
-h))}return new mxRectangle(0,Math.min(c.height,h),0,0)}return null};mxUtils.extend(K,mxCylinder);K.prototype.arcSize=.1;K.prototype.paintVertexShape=function(c,h,q,l,p){c.translate(h,q);var v=mxUtils.getValue(this.style,"rounded",!1),w=mxUtils.getValue(this.style,"absoluteArcSize",!1);h=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));q=mxUtils.getValue(this.style,"umlStateConnection",null);w||(h*=Math.min(l,p));h=Math.min(h,.5*l,.5*p);v||(h=0);v=0;null!=q&&(v=10);c.begin();c.moveTo(v,
+h))}return new mxRectangle(0,Math.min(c.height,h),0,0)}return null};mxUtils.extend(J,mxCylinder);J.prototype.arcSize=.1;J.prototype.paintVertexShape=function(c,h,q,l,p){c.translate(h,q);var v=mxUtils.getValue(this.style,"rounded",!1),w=mxUtils.getValue(this.style,"absoluteArcSize",!1);h=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));q=mxUtils.getValue(this.style,"umlStateConnection",null);w||(h*=Math.min(l,p));h=Math.min(h,.5*l,.5*p);v||(h=0);v=0;null!=q&&(v=10);c.begin();c.moveTo(v,
h);c.arcTo(h,h,0,0,1,v+h,0);c.lineTo(l-h,0);c.arcTo(h,h,0,0,1,l,h);c.lineTo(l,p-h);c.arcTo(h,h,0,0,1,l-h,p);c.lineTo(v+h,p);c.arcTo(h,h,0,0,1,v,p-h);c.close();c.fillAndStroke();c.setShadow(!1);"collapseState"==mxUtils.getValue(this.style,"umlStateSymbol",null)&&(c.roundrect(l-40,p-20,10,10,3,3),c.stroke(),c.roundrect(l-20,p-20,10,10,3,3),c.stroke(),c.begin(),c.moveTo(l-30,p-15),c.lineTo(l-20,p-15),c.stroke());"connPointRefEntry"==q?(c.ellipse(0,.5*p-10,20,20),c.fillAndStroke()):"connPointRefExit"==
-q&&(c.ellipse(0,.5*p-10,20,20),c.fillAndStroke(),c.begin(),c.moveTo(5,.5*p-5),c.lineTo(15,.5*p+5),c.moveTo(15,.5*p-5),c.lineTo(5,.5*p+5),c.stroke())};K.prototype.getLabelMargins=function(c){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",K);mxUtils.extend(D,mxActor);D.prototype.size=30;D.prototype.isRoundable=function(){return!0};D.prototype.redrawPath=
-function(c,h,q,l,p){h=Math.max(0,Math.min(l,Math.min(p,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(h,0),new mxPoint(l,0),new mxPoint(l,p),new mxPoint(0,p),new mxPoint(0,h)],this.isRounded,q,!0);c.end()};mxCellRenderer.registerShape("card",D);mxUtils.extend(O,mxActor);O.prototype.size=.4;O.prototype.redrawPath=function(c,h,q,l,p){h=p*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"size",this.size))));c.moveTo(0,h/2);c.quadTo(l/4,1.4*h,l/2,h/2);c.quadTo(3*l/4,h*(1-1.4),l,h/2);c.lineTo(l,p-h/2);c.quadTo(3*l/4,p-1.4*h,l/2,p-h/2);c.quadTo(l/4,p-h*(1-1.4),0,p-h/2);c.lineTo(0,h/2);c.close();c.end()};O.prototype.getLabelBounds=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var h=mxUtils.getValue(this.style,"size",this.size),q=c.width,l=c.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return h*=
-l,new mxRectangle(c.x,c.y+h,q,l-2*h);h*=q;return new mxRectangle(c.x+h,c.y,q-2*h,l)}return c};mxCellRenderer.registerShape("tape",O);mxUtils.extend(Q,mxActor);Q.prototype.size=.3;Q.prototype.getLabelMargins=function(c){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*c.height):null};Q.prototype.redrawPath=function(c,h,q,l,p){h=p*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.moveTo(0,
+q&&(c.ellipse(0,.5*p-10,20,20),c.fillAndStroke(),c.begin(),c.moveTo(5,.5*p-5),c.lineTo(15,.5*p+5),c.moveTo(15,.5*p-5),c.lineTo(5,.5*p+5),c.stroke())};J.prototype.getLabelMargins=function(c){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",J);mxUtils.extend(D,mxActor);D.prototype.size=30;D.prototype.isRoundable=function(){return!0};D.prototype.redrawPath=
+function(c,h,q,l,p){h=Math.max(0,Math.min(l,Math.min(p,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(h,0),new mxPoint(l,0),new mxPoint(l,p),new mxPoint(0,p),new mxPoint(0,h)],this.isRounded,q,!0);c.end()};mxCellRenderer.registerShape("card",D);mxUtils.extend(N,mxActor);N.prototype.size=.4;N.prototype.redrawPath=function(c,h,q,l,p){h=p*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));c.moveTo(0,h/2);c.quadTo(l/4,1.4*h,l/2,h/2);c.quadTo(3*l/4,h*(1-1.4),l,h/2);c.lineTo(l,p-h/2);c.quadTo(3*l/4,p-1.4*h,l/2,p-h/2);c.quadTo(l/4,p-h*(1-1.4),0,p-h/2);c.lineTo(0,h/2);c.close();c.end()};N.prototype.getLabelBounds=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var h=mxUtils.getValue(this.style,"size",this.size),q=c.width,l=c.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return h*=
+l,new mxRectangle(c.x,c.y+h,q,l-2*h);h*=q;return new mxRectangle(c.x+h,c.y,q-2*h,l)}return c};mxCellRenderer.registerShape("tape",N);mxUtils.extend(Q,mxActor);Q.prototype.size=.3;Q.prototype.getLabelMargins=function(c){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*c.height):null};Q.prototype.redrawPath=function(c,h,q,l,p){h=p*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.moveTo(0,
0);c.lineTo(l,0);c.lineTo(l,p-h/2);c.quadTo(3*l/4,p-1.4*h,l/2,p-h/2);c.quadTo(l/4,p-h*(1-1.4),0,p-h/2);c.lineTo(0,h/2);c.close();c.end()};mxCellRenderer.registerShape("document",Q);var eb=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(c,h,q,l){var p=mxUtils.getValue(this.style,"size");return null!=p?l*Math.max(0,Math.min(1,p)):eb.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var h=2*mxUtils.getValue(this.style,
-"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*this.scale,c.height*h),0,0)}return null};A.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var h=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(h/=2);return new mxRectangle(0,Math.min(c.height*this.scale,2*h*this.scale),0,Math.max(0,.3*h*this.scale))}return null};F.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var h=mxUtils.getValue(this.style,
+"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*this.scale,c.height*h),0,0)}return null};B.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var h=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(h/=2);return new mxRectangle(0,Math.min(c.height*this.scale,2*h*this.scale),0,Math.max(0,.3*h*this.scale))}return null};G.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var h=mxUtils.getValue(this.style,
"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var q=mxUtils.getValue(this.style,"tabWidth",15)*this.scale;h=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;var l=mxUtils.getValue(this.style,"rounded",!1),p=mxUtils.getValue(this.style,"absoluteArcSize",!1),v=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));p||(v*=Math.min(c.width,c.height));v=Math.min(v,.5*c.width,.5*(c.height-h));l||(v=0);return"left"==mxUtils.getValue(this.style,"tabPosition",
-this.tabPosition)?new mxRectangle(v,0,Math.min(c.width,c.width-q),Math.min(c.height,c.height-h)):new mxRectangle(Math.min(c.width,c.width-q),0,v,Math.min(c.height,c.height-h))}return new mxRectangle(0,Math.min(c.height,h),0,0)}return null};K.prototype.getLabelMargins=function(c){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};m.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,
+this.tabPosition)?new mxRectangle(v,0,Math.min(c.width,c.width-q),Math.min(c.height,c.height-h)):new mxRectangle(Math.min(c.width,c.width-q),0,v,Math.min(c.height,c.height-h))}return new mxRectangle(0,Math.min(c.height,h),0,0)}return null};J.prototype.getLabelMargins=function(c){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};m.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,
"boundedLbl",!1)){var h=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(c.height*this.scale,h*this.scale),0,Math.max(0,h*this.scale))}return null};mxUtils.extend(R,mxActor);R.prototype.size=.2;R.prototype.fixedSize=20;R.prototype.isRoundable=function(){return!0};R.prototype.redrawPath=function(c,h,q,l,p){h="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
"size",this.size))));q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(0,p),new mxPoint(h,0),new mxPoint(l,0),new mxPoint(l-h,p)],this.isRounded,q,!0);c.end()};mxCellRenderer.registerShape("parallelogram",R);mxUtils.extend(P,mxActor);P.prototype.size=.2;P.prototype.fixedSize=20;P.prototype.isRoundable=function(){return!0};P.prototype.redrawPath=function(c,h,q,l,p){h="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*
l,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):l*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(0,p),new mxPoint(h,0),new mxPoint(l-h,0),new mxPoint(l,p)],this.isRounded,q,!0)};mxCellRenderer.registerShape("trapezoid",P);mxUtils.extend(Z,mxActor);Z.prototype.size=.5;Z.prototype.redrawPath=function(c,h,q,l,p){c.setFillColor(null);
-h=l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(l,0),new mxPoint(h,0),new mxPoint(h,p/2),new mxPoint(0,p/2),new mxPoint(h,p/2),new mxPoint(h,p),new mxPoint(l,p)],this.isRounded,q,!1);c.end()};mxCellRenderer.registerShape("curlyBracket",Z);mxUtils.extend(T,mxActor);T.prototype.redrawPath=function(c,h,q,l,p){c.setStrokeWidth(1);c.setFillColor(this.stroke);
-h=l/5;c.rect(0,0,h,p);c.fillAndStroke();c.rect(2*h,0,h,p);c.fillAndStroke();c.rect(4*h,0,h,p);c.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",T);U.prototype.moveTo=function(c,h){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=h;this.firstX=c;this.firstY=h};U.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)};
-U.prototype.quadTo=function(c,h,q,l){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=q;this.lastY=l};U.prototype.curveTo=function(c,h,q,l,p,v){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=p;this.lastY=v};U.prototype.arcTo=function(c,h,q,l,p,v,w){this.originalArcTo.apply(this.canvas,arguments);this.lastX=v;this.lastY=w};U.prototype.lineTo=function(c,h){if(null!=this.lastX&&null!=this.lastY){var q=function(N){return"number"===typeof N?N?0>N?-1:1:N===N?0:NaN:NaN},l=Math.abs(c-
-this.lastX),p=Math.abs(h-this.lastY),v=Math.sqrt(l*l+p*p);if(2>v){this.originalLineTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=h;return}var w=Math.round(v/10),J=this.defaultVariation;5>w&&(w=5,J/=3);var y=q(c-this.lastX)*l/w;q=q(h-this.lastY)*p/w;l/=v;p/=v;for(v=0;v<w;v++){var Y=(Math.random()-.5)*J;this.originalLineTo.call(this.canvas,y*v+this.lastX-Y*p,q*v+this.lastY-Y*l)}this.originalLineTo.call(this.canvas,c,h)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=
-h};U.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 Za=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(c){Za.apply(this,arguments);null==c.handJiggle&&(c.handJiggle=this.createHandJiggle(c))};var pb=mxShape.prototype.afterPaint;
-mxShape.prototype.afterPaint=function(c){pb.apply(this,arguments);null!=c.handJiggle&&(c.handJiggle.destroy(),delete c.handJiggle)};mxShape.prototype.createComicCanvas=function(c){return new U(c,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle))};mxShape.prototype.createHandJiggle=function(c){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"comic","0")?null:this.createComicCanvas(c)};mxRhombus.prototype.defaultJiggle=2;var ub=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"))&&ub.apply(this,arguments)};var vb=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(c,h,q,l,p){if(null==c.handJiggle||c.handJiggle.constructor!=U)vb.apply(this,arguments);else{var v=!0;null!=this.style&&(v="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,
+h=l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(l,0),new mxPoint(h,0),new mxPoint(h,p/2),new mxPoint(0,p/2),new mxPoint(h,p/2),new mxPoint(h,p),new mxPoint(l,p)],this.isRounded,q,!1);c.end()};mxCellRenderer.registerShape("curlyBracket",Z);mxUtils.extend(U,mxActor);U.prototype.redrawPath=function(c,h,q,l,p){c.setStrokeWidth(1);c.setFillColor(this.stroke);
+h=l/5;c.rect(0,0,h,p);c.fillAndStroke();c.rect(2*h,0,h,p);c.fillAndStroke();c.rect(4*h,0,h,p);c.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",U);V.prototype.moveTo=function(c,h){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=h;this.firstX=c;this.firstY=h};V.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)};
+V.prototype.quadTo=function(c,h,q,l){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=q;this.lastY=l};V.prototype.curveTo=function(c,h,q,l,p,v){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=p;this.lastY=v};V.prototype.arcTo=function(c,h,q,l,p,v,w){this.originalArcTo.apply(this.canvas,arguments);this.lastX=v;this.lastY=w};V.prototype.lineTo=function(c,h){if(null!=this.lastX&&null!=this.lastY){var q=function(M){return"number"===typeof M?M?0>M?-1:1:M===M?0:NaN:NaN},l=Math.abs(c-
+this.lastX),p=Math.abs(h-this.lastY),v=Math.sqrt(l*l+p*p);if(2>v){this.originalLineTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=h;return}var w=Math.round(v/10),I=this.defaultVariation;5>w&&(w=5,I/=3);var y=q(c-this.lastX)*l/w;q=q(h-this.lastY)*p/w;l/=v;p/=v;for(v=0;v<w;v++){var Y=(Math.random()-.5)*I;this.originalLineTo.call(this.canvas,y*v+this.lastX-Y*p,q*v+this.lastY-Y*l)}this.originalLineTo.call(this.canvas,c,h)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=
+h};V.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(c){ab.apply(this,arguments);null==c.handJiggle&&(c.handJiggle=this.createHandJiggle(c))};var pb=mxShape.prototype.afterPaint;
+mxShape.prototype.afterPaint=function(c){pb.apply(this,arguments);null!=c.handJiggle&&(c.handJiggle.destroy(),delete c.handJiggle)};mxShape.prototype.createComicCanvas=function(c){return new V(c,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle))};mxShape.prototype.createHandJiggle=function(c){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"comic","0")?null:this.createComicCanvas(c)};mxRhombus.prototype.defaultJiggle=2;var ub=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"))&&ub.apply(this,arguments)};var vb=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(c,h,q,l,p){if(null==c.handJiggle||c.handJiggle.constructor!=V)vb.apply(this,arguments);else{var v=!0;null!=this.style&&(v="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,
"1"));if(v||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)v||null!=this.fill&&this.fill!=mxConstants.NONE||(c.pointerEvents=!1),c.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?v=Math.min(l/2,Math.min(p/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(v=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,v=Math.min(l*
-v,p*v)),c.moveTo(h+v,q),c.lineTo(h+l-v,q),c.quadTo(h+l,q,h+l,q+v),c.lineTo(h+l,q+p-v),c.quadTo(h+l,q+p,h+l-v,q+p),c.lineTo(h+v,q+p),c.quadTo(h,q+p,h,q+p-v),c.lineTo(h,q+v),c.quadTo(h,q,h+v,q)):(c.moveTo(h,q),c.lineTo(h+l,q),c.lineTo(h+l,q+p),c.lineTo(h,q+p),c.lineTo(h,q)),c.close(),c.end(),c.fillAndStroke()}};mxUtils.extend(fa,mxRectangleShape);fa.prototype.size=.1;fa.prototype.fixedSize=!1;fa.prototype.isHtmlAllowed=function(){return!1};fa.prototype.getLabelBounds=function(c){if(mxUtils.getValue(this.state.style,
+v,p*v)),c.moveTo(h+v,q),c.lineTo(h+l-v,q),c.quadTo(h+l,q,h+l,q+v),c.lineTo(h+l,q+p-v),c.quadTo(h+l,q+p,h+l-v,q+p),c.lineTo(h+v,q+p),c.quadTo(h,q+p,h,q+p-v),c.lineTo(h,q+v),c.quadTo(h,q,h+v,q)):(c.moveTo(h,q),c.lineTo(h+l,q),c.lineTo(h+l,q+p),c.lineTo(h,q+p),c.lineTo(h,q)),c.close(),c.end(),c.fillAndStroke()}};mxUtils.extend(ia,mxRectangleShape);ia.prototype.size=.1;ia.prototype.fixedSize=!1;ia.prototype.isHtmlAllowed=function(){return!1};ia.prototype.getLabelBounds=function(c){if(mxUtils.getValue(this.state.style,
mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)){var h=c.width,q=c.height;c=new mxRectangle(c.x,c.y,h,q);var l=h*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded){var p=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;l=Math.max(l,Math.min(h*p,q*p))}c.x+=Math.round(l);c.width-=Math.round(2*l);return c}return c};
-fa.prototype.paintForeground=function(c,h,q,l,p){var v=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),w=parseFloat(mxUtils.getValue(this.style,"size",this.size));w=v?Math.max(0,Math.min(l,w)):l*Math.max(0,Math.min(1,w));this.isRounded&&(v=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,w=Math.max(w,Math.min(l*v,p*v)));w=Math.round(w);c.begin();c.moveTo(h+w,q);c.lineTo(h+w,q+p);c.moveTo(h+l-w,q);c.lineTo(h+l-w,q+p);c.end();c.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
-arguments)};mxCellRenderer.registerShape("process",fa);mxCellRenderer.registerShape("process2",fa);mxUtils.extend(ha,mxRectangleShape);ha.prototype.paintBackground=function(c,h,q,l,p){c.setFillColor(mxConstants.NONE);c.rect(h,q,l,p);c.fill()};ha.prototype.paintForeground=function(c,h,q,l,p){};mxCellRenderer.registerShape("transparent",ha);mxUtils.extend(ba,mxHexagon);ba.prototype.size=30;ba.prototype.position=.5;ba.prototype.position2=.5;ba.prototype.base=20;ba.prototype.getLabelMargins=function(){return new mxRectangle(0,
+ia.prototype.paintForeground=function(c,h,q,l,p){var v=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),w=parseFloat(mxUtils.getValue(this.style,"size",this.size));w=v?Math.max(0,Math.min(l,w)):l*Math.max(0,Math.min(1,w));this.isRounded&&(v=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,w=Math.max(w,Math.min(l*v,p*v)));w=Math.round(w);c.begin();c.moveTo(h+w,q);c.lineTo(h+w,q+p);c.moveTo(h+l-w,q);c.lineTo(h+l-w,q+p);c.end();c.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
+arguments)};mxCellRenderer.registerShape("process",ia);mxCellRenderer.registerShape("process2",ia);mxUtils.extend(ha,mxRectangleShape);ha.prototype.paintBackground=function(c,h,q,l,p){c.setFillColor(mxConstants.NONE);c.rect(h,q,l,p);c.fill()};ha.prototype.paintForeground=function(c,h,q,l,p){};mxCellRenderer.registerShape("transparent",ha);mxUtils.extend(ba,mxHexagon);ba.prototype.size=30;ba.prototype.position=.5;ba.prototype.position2=.5;ba.prototype.base=20;ba.prototype.getLabelMargins=function(){return new mxRectangle(0,
0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};ba.prototype.isRoundable=function(){return!0};ba.prototype.redrawPath=function(c,h,q,l,p){h=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;q=Math.max(0,Math.min(p,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var v=l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),w=l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",
-this.position2)))),J=Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(c,[new mxPoint(0,0),new mxPoint(l,0),new mxPoint(l,p-q),new mxPoint(Math.min(l,v+J),p-q),new mxPoint(w,p),new mxPoint(Math.max(0,v),p-q),new mxPoint(0,p-q)],this.isRounded,h,!0,[4])};mxCellRenderer.registerShape("callout",ba);mxUtils.extend(qa,mxActor);qa.prototype.size=.2;qa.prototype.fixedSize=20;qa.prototype.isRoundable=function(){return!0};qa.prototype.redrawPath=function(c,h,
+this.position2)))),I=Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(c,[new mxPoint(0,0),new mxPoint(l,0),new mxPoint(l,p-q),new mxPoint(Math.min(l,v+I),p-q),new mxPoint(w,p),new mxPoint(Math.max(0,v),p-q),new mxPoint(0,p-q)],this.isRounded,h,!0,[4])};mxCellRenderer.registerShape("callout",ba);mxUtils.extend(qa,mxActor);qa.prototype.size=.2;qa.prototype.fixedSize=20;qa.prototype.isRoundable=function(){return!0};qa.prototype.redrawPath=function(c,h,
q,l,p){h="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(0,0),new mxPoint(l-h,0),new mxPoint(l,p/2),new mxPoint(l-h,p),new mxPoint(0,p),new mxPoint(h,p/2)],this.isRounded,q,!0);c.end()};mxCellRenderer.registerShape("step",
-qa);mxUtils.extend(I,mxHexagon);I.prototype.size=.25;I.prototype.fixedSize=20;I.prototype.isRoundable=function(){return!0};I.prototype.redrawPath=function(c,h,q,l,p){h="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*l,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(h,
-0),new mxPoint(l-h,0),new mxPoint(l,.5*p),new mxPoint(l-h,p),new mxPoint(h,p),new mxPoint(0,.5*p)],this.isRounded,q,!0)};mxCellRenderer.registerShape("hexagon",I);mxUtils.extend(L,mxRectangleShape);L.prototype.isHtmlAllowed=function(){return!1};L.prototype.paintForeground=function(c,h,q,l,p){var v=Math.min(l/5,p/5)+1;c.begin();c.moveTo(h+l/2,q+v);c.lineTo(h+l/2,q+p-v);c.moveTo(h+v,q+p/2);c.lineTo(h+l-v,q+p/2);c.end();c.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",
-L);var ab=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(c){if(1==this.style["double"]){var h=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(c.x+h,c.y+h,c.width-2*h,c.height-2*h)}return c};mxRhombus.prototype.paintVertexShape=function(c,h,q,l,p){ab.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var v=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
-0);h+=v;q+=v;l-=2*v;p-=2*v;0<l&&0<p&&(c.setShadow(!1),ab.apply(this,[c,h,q,l,p]))}};mxUtils.extend(H,mxRectangleShape);H.prototype.isHtmlAllowed=function(){return!1};H.prototype.getLabelBounds=function(c){if(1==this.style["double"]){var h=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(c.x+h,c.y+h,c.width-2*h,c.height-2*h)}return c};H.prototype.paintForeground=function(c,h,q,l,p){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var v=
-Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);h+=v;q+=v;l-=2*v;p-=2*v;0<l&&0<p&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}c.setDashed(!1);v=0;do{var w=mxCellRenderer.defaultShapes[this.style["symbol"+v]];if(null!=w){var J=this.style["symbol"+v+"Align"],y=this.style["symbol"+v+"VerticalAlign"],Y=this.style["symbol"+v+"Width"],N=this.style["symbol"+v+"Height"],Ca=this.style["symbol"+v+"Spacing"]||0,Qa=this.style["symbol"+v+"VSpacing"]||Ca,
-Ka=this.style["symbol"+v+"ArcSpacing"];null!=Ka&&(Ka*=this.getArcSize(l+this.strokewidth,p+this.strokewidth),Ca+=Ka,Qa+=Ka);Ka=h;var la=q;Ka=J==mxConstants.ALIGN_CENTER?Ka+(l-Y)/2:J==mxConstants.ALIGN_RIGHT?Ka+(l-Y-Ca):Ka+Ca;la=y==mxConstants.ALIGN_MIDDLE?la+(p-N)/2:y==mxConstants.ALIGN_BOTTOM?la+(p-N-Qa):la+Qa;c.save();J=new w;J.style=this.style;w.prototype.paintVertexShape.call(J,c,Ka,la,Y,N);c.restore()}v++}while(null!=w)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",
-H);mxUtils.extend(S,mxCylinder);S.prototype.redrawPath=function(c,h,q,l,p,v){v?(c.moveTo(0,0),c.lineTo(l/2,p/2),c.lineTo(l,0),c.end()):(c.moveTo(0,0),c.lineTo(l,0),c.lineTo(l,p),c.lineTo(0,p),c.close())};mxCellRenderer.registerShape("message",S);mxUtils.extend(V,mxShape);V.prototype.paintBackground=function(c,h,q,l,p){c.translate(h,q);c.ellipse(l/4,0,l/2,p/4);c.fillAndStroke();c.begin();c.moveTo(l/2,p/4);c.lineTo(l/2,2*p/3);c.moveTo(l/2,p/3);c.lineTo(0,p/3);c.moveTo(l/2,p/3);c.lineTo(l,p/3);c.moveTo(l/
-2,2*p/3);c.lineTo(0,p);c.moveTo(l/2,2*p/3);c.lineTo(l,p);c.end();c.stroke()};mxCellRenderer.registerShape("umlActor",V);mxUtils.extend(ea,mxShape);ea.prototype.getLabelMargins=function(c){return new mxRectangle(c.width/6,0,0,0)};ea.prototype.paintBackground=function(c,h,q,l,p){c.translate(h,q);c.begin();c.moveTo(0,p/4);c.lineTo(0,3*p/4);c.end();c.stroke();c.begin();c.moveTo(0,p/2);c.lineTo(l/6,p/2);c.end();c.stroke();c.ellipse(l/6,0,5*l/6,p);c.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",
-ea);mxUtils.extend(ka,mxEllipse);ka.prototype.paintVertexShape=function(c,h,q,l,p){mxEllipse.prototype.paintVertexShape.apply(this,arguments);c.begin();c.moveTo(h+l/8,q+p);c.lineTo(h+7*l/8,q+p);c.end();c.stroke()};mxCellRenderer.registerShape("umlEntity",ka);mxUtils.extend(wa,mxShape);wa.prototype.paintVertexShape=function(c,h,q,l,p){c.translate(h,q);c.begin();c.moveTo(l,0);c.lineTo(0,p);c.moveTo(0,0);c.lineTo(l,p);c.end();c.stroke()};mxCellRenderer.registerShape("umlDestroy",wa);mxUtils.extend(W,
+qa);mxUtils.extend(O,mxHexagon);O.prototype.size=.25;O.prototype.fixedSize=20;O.prototype.isRoundable=function(){return!0};O.prototype.redrawPath=function(c,h,q,l,p){h="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*l,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(h,
+0),new mxPoint(l-h,0),new mxPoint(l,.5*p),new mxPoint(l-h,p),new mxPoint(h,p),new mxPoint(0,.5*p)],this.isRounded,q,!0)};mxCellRenderer.registerShape("hexagon",O);mxUtils.extend(S,mxRectangleShape);S.prototype.isHtmlAllowed=function(){return!1};S.prototype.paintForeground=function(c,h,q,l,p){var v=Math.min(l/5,p/5)+1;c.begin();c.moveTo(h+l/2,q+v);c.lineTo(h+l/2,q+p-v);c.moveTo(h+v,q+p/2);c.lineTo(h+l-v,q+p/2);c.end();c.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",
+S);var cb=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(c){if(1==this.style["double"]){var h=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(c.x+h,c.y+h,c.width-2*h,c.height-2*h)}return c};mxRhombus.prototype.paintVertexShape=function(c,h,q,l,p){cb.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var v=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
+0);h+=v;q+=v;l-=2*v;p-=2*v;0<l&&0<p&&(c.setShadow(!1),cb.apply(this,[c,h,q,l,p]))}};mxUtils.extend(F,mxRectangleShape);F.prototype.isHtmlAllowed=function(){return!1};F.prototype.getLabelBounds=function(c){if(1==this.style["double"]){var h=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(c.x+h,c.y+h,c.width-2*h,c.height-2*h)}return c};F.prototype.paintForeground=function(c,h,q,l,p){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var v=
+Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);h+=v;q+=v;l-=2*v;p-=2*v;0<l&&0<p&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}c.setDashed(!1);v=0;do{var w=mxCellRenderer.defaultShapes[this.style["symbol"+v]];if(null!=w){var I=this.style["symbol"+v+"Align"],y=this.style["symbol"+v+"VerticalAlign"],Y=this.style["symbol"+v+"Width"],M=this.style["symbol"+v+"Height"],Ba=this.style["symbol"+v+"Spacing"]||0,Qa=this.style["symbol"+v+"VSpacing"]||Ba,
+Ja=this.style["symbol"+v+"ArcSpacing"];null!=Ja&&(Ja*=this.getArcSize(l+this.strokewidth,p+this.strokewidth),Ba+=Ja,Qa+=Ja);Ja=h;var la=q;Ja=I==mxConstants.ALIGN_CENTER?Ja+(l-Y)/2:I==mxConstants.ALIGN_RIGHT?Ja+(l-Y-Ba):Ja+Ba;la=y==mxConstants.ALIGN_MIDDLE?la+(p-M)/2:y==mxConstants.ALIGN_BOTTOM?la+(p-M-Qa):la+Qa;c.save();I=new w;I.style=this.style;w.prototype.paintVertexShape.call(I,c,Ja,la,Y,M);c.restore()}v++}while(null!=w)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",
+F);mxUtils.extend(L,mxCylinder);L.prototype.redrawPath=function(c,h,q,l,p,v){v?(c.moveTo(0,0),c.lineTo(l/2,p/2),c.lineTo(l,0),c.end()):(c.moveTo(0,0),c.lineTo(l,0),c.lineTo(l,p),c.lineTo(0,p),c.close())};mxCellRenderer.registerShape("message",L);mxUtils.extend(T,mxShape);T.prototype.paintBackground=function(c,h,q,l,p){c.translate(h,q);c.ellipse(l/4,0,l/2,p/4);c.fillAndStroke();c.begin();c.moveTo(l/2,p/4);c.lineTo(l/2,2*p/3);c.moveTo(l/2,p/3);c.lineTo(0,p/3);c.moveTo(l/2,p/3);c.lineTo(l,p/3);c.moveTo(l/
+2,2*p/3);c.lineTo(0,p);c.moveTo(l/2,2*p/3);c.lineTo(l,p);c.end();c.stroke()};mxCellRenderer.registerShape("umlActor",T);mxUtils.extend(ca,mxShape);ca.prototype.getLabelMargins=function(c){return new mxRectangle(c.width/6,0,0,0)};ca.prototype.paintBackground=function(c,h,q,l,p){c.translate(h,q);c.begin();c.moveTo(0,p/4);c.lineTo(0,3*p/4);c.end();c.stroke();c.begin();c.moveTo(0,p/2);c.lineTo(l/6,p/2);c.end();c.stroke();c.ellipse(l/6,0,5*l/6,p);c.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",
+ca);mxUtils.extend(fa,mxEllipse);fa.prototype.paintVertexShape=function(c,h,q,l,p){mxEllipse.prototype.paintVertexShape.apply(this,arguments);c.begin();c.moveTo(h+l/8,q+p);c.lineTo(h+7*l/8,q+p);c.end();c.stroke()};mxCellRenderer.registerShape("umlEntity",fa);mxUtils.extend(wa,mxShape);wa.prototype.paintVertexShape=function(c,h,q,l,p){c.translate(h,q);c.begin();c.moveTo(l,0);c.lineTo(0,p);c.moveTo(0,0);c.lineTo(l,p);c.end();c.stroke()};mxCellRenderer.registerShape("umlDestroy",wa);mxUtils.extend(W,
mxShape);W.prototype.getLabelBounds=function(c){return new mxRectangle(c.x,c.y+c.height/8,c.width,7*c.height/8)};W.prototype.paintBackground=function(c,h,q,l,p){c.translate(h,q);c.begin();c.moveTo(3*l/8,p/8*1.1);c.lineTo(5*l/8,0);c.end();c.stroke();c.ellipse(0,p/8,l,7*p/8);c.fillAndStroke()};W.prototype.paintForeground=function(c,h,q,l,p){c.begin();c.moveTo(3*l/8,p/8*1.1);c.lineTo(5*l/8,p/4);c.end();c.stroke()};mxCellRenderer.registerShape("umlControl",W);mxUtils.extend(aa,mxRectangleShape);aa.prototype.size=
40;aa.prototype.isHtmlAllowed=function(){return!1};aa.prototype.getLabelBounds=function(c){var h=Math.max(0,Math.min(c.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(c.x,c.y,c.width,h)};aa.prototype.paintBackground=function(c,h,q,l,p){var v=Math.max(0,Math.min(p,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),w=mxUtils.getValue(this.style,"participant");null==w||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,
c,h,q,l,v):(w=this.state.view.graph.cellRenderer.getShape(w),null!=w&&w!=aa&&(w=new w,w.apply(this.state),c.save(),w.paintVertexShape(c,h,q,l,v),c.restore()));v<p&&(c.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),c.begin(),c.moveTo(h+l/2,q+v),c.lineTo(h+l/2,q+p),c.end(),c.stroke())};aa.prototype.paintForeground=function(c,h,q,l,p){var v=Math.max(0,Math.min(p,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,c,h,q,l,
Math.min(p,v))};mxCellRenderer.registerShape("umlLifeline",aa);mxUtils.extend(oa,mxShape);oa.prototype.width=60;oa.prototype.height=30;oa.prototype.corner=10;oa.prototype.getLabelMargins=function(c){return new mxRectangle(0,0,c.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),c.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*this.scale))};oa.prototype.paintBackground=function(c,h,q,l,p){var v=this.corner,w=Math.min(l,Math.max(v,parseFloat(mxUtils.getValue(this.style,
-"width",this.width)))),J=Math.min(p,Math.max(1.5*v,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),y=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);y!=mxConstants.NONE&&(c.setFillColor(y),c.rect(h,q,l,p),c.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(c,h,q,l,p),c.setGradient(this.fill,this.gradient,h,q,l,p,this.gradientDirection)):c.setFillColor(this.fill);c.begin();
-c.moveTo(h,q);c.lineTo(h+w,q);c.lineTo(h+w,q+Math.max(0,J-1.5*v));c.lineTo(h+Math.max(0,w-v),q+J);c.lineTo(h,q+J);c.close();c.fillAndStroke();c.begin();c.moveTo(h+w,q);c.lineTo(h+l,q);c.lineTo(h+l,q+p);c.lineTo(h,q+p);c.lineTo(h,q+J);c.stroke()};mxCellRenderer.registerShape("umlFrame",oa);mxPerimeter.CenterPerimeter=function(c,h,q,l){return new mxPoint(c.getCenterX(),c.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(c,h,
+"width",this.width)))),I=Math.min(p,Math.max(1.5*v,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),y=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);y!=mxConstants.NONE&&(c.setFillColor(y),c.rect(h,q,l,p),c.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(c,h,q,l,p),c.setGradient(this.fill,this.gradient,h,q,l,p,this.gradientDirection)):c.setFillColor(this.fill);c.begin();
+c.moveTo(h,q);c.lineTo(h+w,q);c.lineTo(h+w,q+Math.max(0,I-1.5*v));c.lineTo(h+Math.max(0,w-v),q+I);c.lineTo(h,q+I);c.close();c.fillAndStroke();c.begin();c.moveTo(h+w,q);c.lineTo(h+l,q);c.lineTo(h+l,q+p);c.lineTo(h,q+p);c.lineTo(h,q+I);c.stroke()};mxCellRenderer.registerShape("umlFrame",oa);mxPerimeter.CenterPerimeter=function(c,h,q,l){return new mxPoint(c.getCenterX(),c.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(c,h,
q,l){l=aa.prototype.size;null!=h&&(l=mxUtils.getValue(h.style,"size",l)*h.view.scale);h=parseFloat(h.style[mxConstants.STYLE_STROKEWIDTH]||1)*h.view.scale/2-1;q.x<c.getCenterX()&&(h=-1*(h+1));return new mxPoint(c.getCenterX()+h,Math.min(c.y+c.height,Math.max(c.y+l,q.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(c,h,q,l){l=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",
mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(c,h,q,l){l=parseFloat(h.style[mxConstants.STYLE_STROKEWIDTH]||1)*h.view.scale/2-1;null!=h.style.backboneSize&&(l+=parseFloat(h.style.backboneSize)*h.view.scale/2-1);if("south"==h.style[mxConstants.STYLE_DIRECTION]||"north"==h.style[mxConstants.STYLE_DIRECTION])return q.x<c.getCenterX()&&(l=-1*(l+1)),new mxPoint(c.getCenterX()+l,Math.min(c.y+c.height,Math.max(c.y,q.y)));q.y<c.getCenterY()&&(l=-1*(l+1));return new mxPoint(Math.min(c.x+
c.width,Math.max(c.x,q.x)),c.getCenterY()+l)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(c,h,q,l){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(c,new mxRectangle(0,0,0,Math.max(0,Math.min(c.height,parseFloat(mxUtils.getValue(h.style,"size",ba.prototype.size))*h.view.scale))),h.style),h,q,l)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(c,
-h,q,l){var p="0"!=mxUtils.getValue(h.style,"fixedSize","0"),v=p?R.prototype.fixedSize:R.prototype.size;null!=h&&(v=mxUtils.getValue(h.style,"size",v));p&&(v*=h.view.scale);var w=c.x,J=c.y,y=c.width,Y=c.height;h=null!=h?mxUtils.getValue(h.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;h==mxConstants.DIRECTION_NORTH||h==mxConstants.DIRECTION_SOUTH?(p=p?Math.max(0,Math.min(Y,v)):Y*Math.max(0,Math.min(1,v)),J=[new mxPoint(w,J),new mxPoint(w+y,J+p),new mxPoint(w+
-y,J+Y),new mxPoint(w,J+Y-p),new mxPoint(w,J)]):(p=p?Math.max(0,Math.min(.5*y,v)):y*Math.max(0,Math.min(1,v)),J=[new mxPoint(w+p,J),new mxPoint(w+y,J),new mxPoint(w+y-p,J+Y),new mxPoint(w,J+Y),new mxPoint(w+p,J)]);Y=c.getCenterX();c=c.getCenterY();c=new mxPoint(Y,c);l&&(q.x<w||q.x>w+y?c.y=q.y:c.x=q.x);return mxUtils.getPerimeterPoint(J,c,q)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(c,h,q,l){var p="0"!=mxUtils.getValue(h.style,
-"fixedSize","0"),v=p?P.prototype.fixedSize:P.prototype.size;null!=h&&(v=mxUtils.getValue(h.style,"size",v));p&&(v*=h.view.scale);var w=c.x,J=c.y,y=c.width,Y=c.height;h=null!=h?mxUtils.getValue(h.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;h==mxConstants.DIRECTION_EAST?(p=p?Math.max(0,Math.min(.5*y,v)):y*Math.max(0,Math.min(1,v)),J=[new mxPoint(w+p,J),new mxPoint(w+y-p,J),new mxPoint(w+y,J+Y),new mxPoint(w,J+Y),new mxPoint(w+p,J)]):h==mxConstants.DIRECTION_WEST?
-(p=p?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),J=[new mxPoint(w,J),new mxPoint(w+y,J),new mxPoint(w+y-p,J+Y),new mxPoint(w+p,J+Y),new mxPoint(w,J)]):h==mxConstants.DIRECTION_NORTH?(p=p?Math.max(0,Math.min(Y,v)):Y*Math.max(0,Math.min(1,v)),J=[new mxPoint(w,J+p),new mxPoint(w+y,J),new mxPoint(w+y,J+Y),new mxPoint(w,J+Y-p),new mxPoint(w,J+p)]):(p=p?Math.max(0,Math.min(Y,v)):Y*Math.max(0,Math.min(1,v)),J=[new mxPoint(w,J),new mxPoint(w+y,J+p),new mxPoint(w+y,J+Y-p),new mxPoint(w,J+Y),new mxPoint(w,
-J)]);Y=c.getCenterX();c=c.getCenterY();c=new mxPoint(Y,c);l&&(q.x<w||q.x>w+y?c.y=q.y:c.x=q.x);return mxUtils.getPerimeterPoint(J,c,q)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(c,h,q,l){var p="0"!=mxUtils.getValue(h.style,"fixedSize","0"),v=p?qa.prototype.fixedSize:qa.prototype.size;null!=h&&(v=mxUtils.getValue(h.style,"size",v));p&&(v*=h.view.scale);var w=c.x,J=c.y,y=c.width,Y=c.height,N=c.getCenterX();c=c.getCenterY();h=null!=
-h?mxUtils.getValue(h.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;h==mxConstants.DIRECTION_EAST?(p=p?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),J=[new mxPoint(w,J),new mxPoint(w+y-p,J),new mxPoint(w+y,c),new mxPoint(w+y-p,J+Y),new mxPoint(w,J+Y),new mxPoint(w+p,c),new mxPoint(w,J)]):h==mxConstants.DIRECTION_WEST?(p=p?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),J=[new mxPoint(w+p,J),new mxPoint(w+y,J),new mxPoint(w+y-p,c),new mxPoint(w+
-y,J+Y),new mxPoint(w+p,J+Y),new mxPoint(w,c),new mxPoint(w+p,J)]):h==mxConstants.DIRECTION_NORTH?(p=p?Math.max(0,Math.min(Y,v)):Y*Math.max(0,Math.min(1,v)),J=[new mxPoint(w,J+p),new mxPoint(N,J),new mxPoint(w+y,J+p),new mxPoint(w+y,J+Y),new mxPoint(N,J+Y-p),new mxPoint(w,J+Y),new mxPoint(w,J+p)]):(p=p?Math.max(0,Math.min(Y,v)):Y*Math.max(0,Math.min(1,v)),J=[new mxPoint(w,J),new mxPoint(N,J+p),new mxPoint(w+y,J),new mxPoint(w+y,J+Y-p),new mxPoint(N,J+Y),new mxPoint(w,J+Y-p),new mxPoint(w,J)]);N=new mxPoint(N,
-c);l&&(q.x<w||q.x>w+y?N.y=q.y:N.x=q.x);return mxUtils.getPerimeterPoint(J,N,q)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(c,h,q,l){var p="0"!=mxUtils.getValue(h.style,"fixedSize","0"),v=p?I.prototype.fixedSize:I.prototype.size;null!=h&&(v=mxUtils.getValue(h.style,"size",v));p&&(v*=h.view.scale);var w=c.x,J=c.y,y=c.width,Y=c.height,N=c.getCenterX();c=c.getCenterY();h=null!=h?mxUtils.getValue(h.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):
-mxConstants.DIRECTION_EAST;h==mxConstants.DIRECTION_NORTH||h==mxConstants.DIRECTION_SOUTH?(p=p?Math.max(0,Math.min(Y,v)):Y*Math.max(0,Math.min(1,v)),J=[new mxPoint(N,J),new mxPoint(w+y,J+p),new mxPoint(w+y,J+Y-p),new mxPoint(N,J+Y),new mxPoint(w,J+Y-p),new mxPoint(w,J+p),new mxPoint(N,J)]):(p=p?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),J=[new mxPoint(w+p,J),new mxPoint(w+y-p,J),new mxPoint(w+y,c),new mxPoint(w+y-p,J+Y),new mxPoint(w+p,J+Y),new mxPoint(w,c),new mxPoint(w+p,J)]);N=new mxPoint(N,
-c);l&&(q.x<w||q.x>w+y?N.y=q.y:N.x=q.x);return mxUtils.getPerimeterPoint(J,N,q)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(ua,mxShape);ua.prototype.size=10;ua.prototype.paintBackground=function(c,h,q,l,p){var v=parseFloat(mxUtils.getValue(this.style,"size",this.size));c.translate(h,q);c.ellipse((l-v)/2,0,v,v);c.fillAndStroke();c.begin();c.moveTo(l/2,v);c.lineTo(l/2,p);c.end();c.stroke()};mxCellRenderer.registerShape("lollipop",ua);mxUtils.extend(Ja,
-mxShape);Ja.prototype.size=10;Ja.prototype.inset=2;Ja.prototype.paintBackground=function(c,h,q,l,p){var v=parseFloat(mxUtils.getValue(this.style,"size",this.size)),w=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;c.translate(h,q);c.begin();c.moveTo(l/2,v+w);c.lineTo(l/2,p);c.end();c.stroke();c.begin();c.moveTo((l-v)/2-w,v/2);c.quadTo((l-v)/2-w,v+w,l/2,v+w);c.quadTo((l+v)/2+w,v+w,(l+v)/2+w,v/2);c.end();c.stroke()};mxCellRenderer.registerShape("requires",Ja);mxUtils.extend(Ga,
-mxShape);Ga.prototype.paintBackground=function(c,h,q,l,p){c.translate(h,q);c.begin();c.moveTo(0,0);c.quadTo(l,0,l,p/2);c.quadTo(l,p,0,p);c.end();c.stroke()};mxCellRenderer.registerShape("requiredInterface",Ga);mxUtils.extend(va,mxShape);va.prototype.inset=2;va.prototype.paintBackground=function(c,h,q,l,p){var v=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;c.translate(h,q);c.ellipse(0,v,l-2*v,p-2*v);c.fillAndStroke();c.begin();c.moveTo(l/2,0);c.quadTo(l,0,l,p/2);c.quadTo(l,
-p,l/2,p);c.end();c.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",va);mxUtils.extend(za,mxCylinder);za.prototype.jettyWidth=20;za.prototype.jettyHeight=10;za.prototype.redrawPath=function(c,h,q,l,p,v){var w=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));h=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));q=w/2;w=q+w/2;var J=Math.min(h,p-h),y=Math.min(J+2*h,p-h);v?(c.moveTo(q,J),c.lineTo(w,J),c.lineTo(w,J+h),c.lineTo(q,J+h),c.moveTo(q,
-y),c.lineTo(w,y),c.lineTo(w,y+h),c.lineTo(q,y+h)):(c.moveTo(q,0),c.lineTo(l,0),c.lineTo(l,p),c.lineTo(q,p),c.lineTo(q,y+h),c.lineTo(0,y+h),c.lineTo(0,y),c.lineTo(q,y),c.lineTo(q,J+h),c.lineTo(0,J+h),c.lineTo(0,J),c.lineTo(q,J),c.close());c.end()};mxCellRenderer.registerShape("module",za);mxUtils.extend(ra,mxCylinder);ra.prototype.jettyWidth=32;ra.prototype.jettyHeight=12;ra.prototype.redrawPath=function(c,h,q,l,p,v){var w=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));h=parseFloat(mxUtils.getValue(this.style,
-"jettyHeight",this.jettyHeight));q=w/2;w=q+w/2;var J=.3*p-h/2,y=.7*p-h/2;v?(c.moveTo(q,J),c.lineTo(w,J),c.lineTo(w,J+h),c.lineTo(q,J+h),c.moveTo(q,y),c.lineTo(w,y),c.lineTo(w,y+h),c.lineTo(q,y+h)):(c.moveTo(q,0),c.lineTo(l,0),c.lineTo(l,p),c.lineTo(q,p),c.lineTo(q,y+h),c.lineTo(0,y+h),c.lineTo(0,y),c.lineTo(q,y),c.lineTo(q,J+h),c.lineTo(0,J+h),c.lineTo(0,J),c.lineTo(q,J),c.close());c.end()};mxCellRenderer.registerShape("component",ra);mxUtils.extend(Ha,mxRectangleShape);Ha.prototype.paintForeground=
-function(c,h,q,l,p){var v=l/2,w=p/2,J=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;c.begin();this.addPoints(c,[new mxPoint(h+v,q),new mxPoint(h+l,q+w),new mxPoint(h+v,q+p),new mxPoint(h,q+w)],this.isRounded,J,!0);c.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",Ha);mxUtils.extend(Ta,mxDoubleEllipse);Ta.prototype.outerStroke=!0;Ta.prototype.paintVertexShape=function(c,h,q,l,p){var v=Math.min(4,
-Math.min(l/5,p/5));0<l&&0<p&&(c.ellipse(h+v,q+v,l-2*v,p-2*v),c.fillAndStroke());c.setShadow(!1);this.outerStroke&&(c.ellipse(h,q,l,p),c.stroke())};mxCellRenderer.registerShape("endState",Ta);mxUtils.extend(db,Ta);db.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",db);mxUtils.extend(Ua,mxArrowConnector);Ua.prototype.defaultWidth=4;Ua.prototype.isOpenEnded=function(){return!0};Ua.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,
-this.strokewidth-1)};Ua.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",Ua);mxUtils.extend(Va,mxArrowConnector);Va.prototype.defaultWidth=10;Va.prototype.defaultArrowWidth=20;Va.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};Va.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};Va.prototype.getEdgeWidth=
-function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",Va);mxUtils.extend(Ya,mxActor);Ya.prototype.size=30;Ya.prototype.isRoundable=function(){return!0};Ya.prototype.redrawPath=function(c,h,q,l,p){h=Math.min(p,parseFloat(mxUtils.getValue(this.style,"size",this.size)));q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(0,p),new mxPoint(0,h),new mxPoint(l,
-0),new mxPoint(l,p)],this.isRounded,q,!0);c.end()};mxCellRenderer.registerShape("manualInput",Ya);mxUtils.extend(bb,mxRectangleShape);bb.prototype.dx=20;bb.prototype.dy=20;bb.prototype.isHtmlAllowed=function(){return!1};bb.prototype.paintForeground=function(c,h,q,l,p){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var v=0;if(this.isRounded){var w=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;v=Math.max(v,Math.min(l*w,p*w))}w=
-Math.max(v,Math.min(l,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));v=Math.max(v,Math.min(p,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));c.begin();c.moveTo(h,q+v);c.lineTo(h+l,q+v);c.end();c.stroke();c.begin();c.moveTo(h+w,q);c.lineTo(h+w,q+p);c.end();c.stroke()};mxCellRenderer.registerShape("internalStorage",bb);mxUtils.extend(cb,mxActor);cb.prototype.dx=20;cb.prototype.dy=20;cb.prototype.redrawPath=function(c,h,q,l,p){h=Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,
-"dx",this.dx))));q=Math.max(0,Math.min(p,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var v=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(0,0),new mxPoint(l,0),new mxPoint(l,q),new mxPoint(h,q),new mxPoint(h,p),new mxPoint(0,p)],this.isRounded,v,!0);c.end()};mxCellRenderer.registerShape("corner",cb);mxUtils.extend(jb,mxActor);jb.prototype.redrawPath=function(c,h,q,
-l,p){c.moveTo(0,0);c.lineTo(0,p);c.end();c.moveTo(l,0);c.lineTo(l,p);c.end();c.moveTo(0,p/2);c.lineTo(l,p/2);c.end()};mxCellRenderer.registerShape("crossbar",jb);mxUtils.extend($a,mxActor);$a.prototype.dx=20;$a.prototype.dy=20;$a.prototype.redrawPath=function(c,h,q,l,p){h=Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));q=Math.max(0,Math.min(p,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var v=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(0,0),new mxPoint(l,0),new mxPoint(l,q),new mxPoint((l+h)/2,q),new mxPoint((l+h)/2,p),new mxPoint((l-h)/2,p),new mxPoint((l-h)/2,q),new mxPoint(0,q)],this.isRounded,v,!0);c.end()};mxCellRenderer.registerShape("tee",$a);mxUtils.extend(ca,mxActor);ca.prototype.arrowWidth=.3;ca.prototype.arrowSize=.2;ca.prototype.redrawPath=function(c,h,q,l,p){var v=p*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",
-this.arrowWidth))));h=l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));q=(p-v)/2;v=q+v;var w=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(0,q),new mxPoint(l-h,q),new mxPoint(l-h,0),new mxPoint(l,p/2),new mxPoint(l-h,p),new mxPoint(l-h,v),new mxPoint(0,v)],this.isRounded,w,!0);c.end()};mxCellRenderer.registerShape("singleArrow",ca);mxUtils.extend(t,mxActor);t.prototype.redrawPath=function(c,
-h,q,l,p){var v=p*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ca.prototype.arrowWidth))));h=l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ca.prototype.arrowSize))));q=(p-v)/2;v=q+v;var w=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(0,p/2),new mxPoint(h,0),new mxPoint(h,q),new mxPoint(l-h,q),new mxPoint(l-h,0),new mxPoint(l,p/2),new mxPoint(l-h,p),new mxPoint(l-h,v),new mxPoint(h,
+h,q,l){var p="0"!=mxUtils.getValue(h.style,"fixedSize","0"),v=p?R.prototype.fixedSize:R.prototype.size;null!=h&&(v=mxUtils.getValue(h.style,"size",v));p&&(v*=h.view.scale);var w=c.x,I=c.y,y=c.width,Y=c.height;h=null!=h?mxUtils.getValue(h.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;h==mxConstants.DIRECTION_NORTH||h==mxConstants.DIRECTION_SOUTH?(p=p?Math.max(0,Math.min(Y,v)):Y*Math.max(0,Math.min(1,v)),I=[new mxPoint(w,I),new mxPoint(w+y,I+p),new mxPoint(w+
+y,I+Y),new mxPoint(w,I+Y-p),new mxPoint(w,I)]):(p=p?Math.max(0,Math.min(.5*y,v)):y*Math.max(0,Math.min(1,v)),I=[new mxPoint(w+p,I),new mxPoint(w+y,I),new mxPoint(w+y-p,I+Y),new mxPoint(w,I+Y),new mxPoint(w+p,I)]);Y=c.getCenterX();c=c.getCenterY();c=new mxPoint(Y,c);l&&(q.x<w||q.x>w+y?c.y=q.y:c.x=q.x);return mxUtils.getPerimeterPoint(I,c,q)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(c,h,q,l){var p="0"!=mxUtils.getValue(h.style,
+"fixedSize","0"),v=p?P.prototype.fixedSize:P.prototype.size;null!=h&&(v=mxUtils.getValue(h.style,"size",v));p&&(v*=h.view.scale);var w=c.x,I=c.y,y=c.width,Y=c.height;h=null!=h?mxUtils.getValue(h.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;h==mxConstants.DIRECTION_EAST?(p=p?Math.max(0,Math.min(.5*y,v)):y*Math.max(0,Math.min(1,v)),I=[new mxPoint(w+p,I),new mxPoint(w+y-p,I),new mxPoint(w+y,I+Y),new mxPoint(w,I+Y),new mxPoint(w+p,I)]):h==mxConstants.DIRECTION_WEST?
+(p=p?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),I=[new mxPoint(w,I),new mxPoint(w+y,I),new mxPoint(w+y-p,I+Y),new mxPoint(w+p,I+Y),new mxPoint(w,I)]):h==mxConstants.DIRECTION_NORTH?(p=p?Math.max(0,Math.min(Y,v)):Y*Math.max(0,Math.min(1,v)),I=[new mxPoint(w,I+p),new mxPoint(w+y,I),new mxPoint(w+y,I+Y),new mxPoint(w,I+Y-p),new mxPoint(w,I+p)]):(p=p?Math.max(0,Math.min(Y,v)):Y*Math.max(0,Math.min(1,v)),I=[new mxPoint(w,I),new mxPoint(w+y,I+p),new mxPoint(w+y,I+Y-p),new mxPoint(w,I+Y),new mxPoint(w,
+I)]);Y=c.getCenterX();c=c.getCenterY();c=new mxPoint(Y,c);l&&(q.x<w||q.x>w+y?c.y=q.y:c.x=q.x);return mxUtils.getPerimeterPoint(I,c,q)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(c,h,q,l){var p="0"!=mxUtils.getValue(h.style,"fixedSize","0"),v=p?qa.prototype.fixedSize:qa.prototype.size;null!=h&&(v=mxUtils.getValue(h.style,"size",v));p&&(v*=h.view.scale);var w=c.x,I=c.y,y=c.width,Y=c.height,M=c.getCenterX();c=c.getCenterY();h=null!=
+h?mxUtils.getValue(h.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;h==mxConstants.DIRECTION_EAST?(p=p?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),I=[new mxPoint(w,I),new mxPoint(w+y-p,I),new mxPoint(w+y,c),new mxPoint(w+y-p,I+Y),new mxPoint(w,I+Y),new mxPoint(w+p,c),new mxPoint(w,I)]):h==mxConstants.DIRECTION_WEST?(p=p?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),I=[new mxPoint(w+p,I),new mxPoint(w+y,I),new mxPoint(w+y-p,c),new mxPoint(w+
+y,I+Y),new mxPoint(w+p,I+Y),new mxPoint(w,c),new mxPoint(w+p,I)]):h==mxConstants.DIRECTION_NORTH?(p=p?Math.max(0,Math.min(Y,v)):Y*Math.max(0,Math.min(1,v)),I=[new mxPoint(w,I+p),new mxPoint(M,I),new mxPoint(w+y,I+p),new mxPoint(w+y,I+Y),new mxPoint(M,I+Y-p),new mxPoint(w,I+Y),new mxPoint(w,I+p)]):(p=p?Math.max(0,Math.min(Y,v)):Y*Math.max(0,Math.min(1,v)),I=[new mxPoint(w,I),new mxPoint(M,I+p),new mxPoint(w+y,I),new mxPoint(w+y,I+Y-p),new mxPoint(M,I+Y),new mxPoint(w,I+Y-p),new mxPoint(w,I)]);M=new mxPoint(M,
+c);l&&(q.x<w||q.x>w+y?M.y=q.y:M.x=q.x);return mxUtils.getPerimeterPoint(I,M,q)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(c,h,q,l){var p="0"!=mxUtils.getValue(h.style,"fixedSize","0"),v=p?O.prototype.fixedSize:O.prototype.size;null!=h&&(v=mxUtils.getValue(h.style,"size",v));p&&(v*=h.view.scale);var w=c.x,I=c.y,y=c.width,Y=c.height,M=c.getCenterX();c=c.getCenterY();h=null!=h?mxUtils.getValue(h.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):
+mxConstants.DIRECTION_EAST;h==mxConstants.DIRECTION_NORTH||h==mxConstants.DIRECTION_SOUTH?(p=p?Math.max(0,Math.min(Y,v)):Y*Math.max(0,Math.min(1,v)),I=[new mxPoint(M,I),new mxPoint(w+y,I+p),new mxPoint(w+y,I+Y-p),new mxPoint(M,I+Y),new mxPoint(w,I+Y-p),new mxPoint(w,I+p),new mxPoint(M,I)]):(p=p?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),I=[new mxPoint(w+p,I),new mxPoint(w+y-p,I),new mxPoint(w+y,c),new mxPoint(w+y-p,I+Y),new mxPoint(w+p,I+Y),new mxPoint(w,c),new mxPoint(w+p,I)]);M=new mxPoint(M,
+c);l&&(q.x<w||q.x>w+y?M.y=q.y:M.x=q.x);return mxUtils.getPerimeterPoint(I,M,q)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(sa,mxShape);sa.prototype.size=10;sa.prototype.paintBackground=function(c,h,q,l,p){var v=parseFloat(mxUtils.getValue(this.style,"size",this.size));c.translate(h,q);c.ellipse((l-v)/2,0,v,v);c.fillAndStroke();c.begin();c.moveTo(l/2,v);c.lineTo(l/2,p);c.end();c.stroke()};mxCellRenderer.registerShape("lollipop",sa);mxUtils.extend(Ka,
+mxShape);Ka.prototype.size=10;Ka.prototype.inset=2;Ka.prototype.paintBackground=function(c,h,q,l,p){var v=parseFloat(mxUtils.getValue(this.style,"size",this.size)),w=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;c.translate(h,q);c.begin();c.moveTo(l/2,v+w);c.lineTo(l/2,p);c.end();c.stroke();c.begin();c.moveTo((l-v)/2-w,v/2);c.quadTo((l-v)/2-w,v+w,l/2,v+w);c.quadTo((l+v)/2+w,v+w,(l+v)/2+w,v/2);c.end();c.stroke()};mxCellRenderer.registerShape("requires",Ka);mxUtils.extend(Ha,
+mxShape);Ha.prototype.paintBackground=function(c,h,q,l,p){c.translate(h,q);c.begin();c.moveTo(0,0);c.quadTo(l,0,l,p/2);c.quadTo(l,p,0,p);c.end();c.stroke()};mxCellRenderer.registerShape("requiredInterface",Ha);mxUtils.extend(ua,mxShape);ua.prototype.inset=2;ua.prototype.paintBackground=function(c,h,q,l,p){var v=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;c.translate(h,q);c.ellipse(0,v,l-2*v,p-2*v);c.fillAndStroke();c.begin();c.moveTo(l/2,0);c.quadTo(l,0,l,p/2);c.quadTo(l,
+p,l/2,p);c.end();c.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",ua);mxUtils.extend(Ca,mxCylinder);Ca.prototype.jettyWidth=20;Ca.prototype.jettyHeight=10;Ca.prototype.redrawPath=function(c,h,q,l,p,v){var w=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));h=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));q=w/2;w=q+w/2;var I=Math.min(h,p-h),y=Math.min(I+2*h,p-h);v?(c.moveTo(q,I),c.lineTo(w,I),c.lineTo(w,I+h),c.lineTo(q,I+h),c.moveTo(q,
+y),c.lineTo(w,y),c.lineTo(w,y+h),c.lineTo(q,y+h)):(c.moveTo(q,0),c.lineTo(l,0),c.lineTo(l,p),c.lineTo(q,p),c.lineTo(q,y+h),c.lineTo(0,y+h),c.lineTo(0,y),c.lineTo(q,y),c.lineTo(q,I+h),c.lineTo(0,I+h),c.lineTo(0,I),c.lineTo(q,I),c.close());c.end()};mxCellRenderer.registerShape("module",Ca);mxUtils.extend(ra,mxCylinder);ra.prototype.jettyWidth=32;ra.prototype.jettyHeight=12;ra.prototype.redrawPath=function(c,h,q,l,p,v){var w=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));h=parseFloat(mxUtils.getValue(this.style,
+"jettyHeight",this.jettyHeight));q=w/2;w=q+w/2;var I=.3*p-h/2,y=.7*p-h/2;v?(c.moveTo(q,I),c.lineTo(w,I),c.lineTo(w,I+h),c.lineTo(q,I+h),c.moveTo(q,y),c.lineTo(w,y),c.lineTo(w,y+h),c.lineTo(q,y+h)):(c.moveTo(q,0),c.lineTo(l,0),c.lineTo(l,p),c.lineTo(q,p),c.lineTo(q,y+h),c.lineTo(0,y+h),c.lineTo(0,y),c.lineTo(q,y),c.lineTo(q,I+h),c.lineTo(0,I+h),c.lineTo(0,I),c.lineTo(q,I),c.close());c.end()};mxCellRenderer.registerShape("component",ra);mxUtils.extend(Da,mxRectangleShape);Da.prototype.paintForeground=
+function(c,h,q,l,p){var v=l/2,w=p/2,I=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;c.begin();this.addPoints(c,[new mxPoint(h+v,q),new mxPoint(h+l,q+w),new mxPoint(h+v,q+p),new mxPoint(h,q+w)],this.isRounded,I,!0);c.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",Da);mxUtils.extend(Ua,mxDoubleEllipse);Ua.prototype.outerStroke=!0;Ua.prototype.paintVertexShape=function(c,h,q,l,p){var v=Math.min(4,
+Math.min(l/5,p/5));0<l&&0<p&&(c.ellipse(h+v,q+v,l-2*v,p-2*v),c.fillAndStroke());c.setShadow(!1);this.outerStroke&&(c.ellipse(h,q,l,p),c.stroke())};mxCellRenderer.registerShape("endState",Ua);mxUtils.extend(db,Ua);db.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",db);mxUtils.extend(Ta,mxArrowConnector);Ta.prototype.defaultWidth=4;Ta.prototype.isOpenEnded=function(){return!0};Ta.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,
+this.strokewidth-1)};Ta.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",Ta);mxUtils.extend($a,mxArrowConnector);$a.prototype.defaultWidth=10;$a.prototype.defaultArrowWidth=20;$a.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};$a.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};$a.prototype.getEdgeWidth=
+function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",$a);mxUtils.extend(Xa,mxActor);Xa.prototype.size=30;Xa.prototype.isRoundable=function(){return!0};Xa.prototype.redrawPath=function(c,h,q,l,p){h=Math.min(p,parseFloat(mxUtils.getValue(this.style,"size",this.size)));q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(0,p),new mxPoint(0,h),new mxPoint(l,
+0),new mxPoint(l,p)],this.isRounded,q,!0);c.end()};mxCellRenderer.registerShape("manualInput",Xa);mxUtils.extend(Va,mxRectangleShape);Va.prototype.dx=20;Va.prototype.dy=20;Va.prototype.isHtmlAllowed=function(){return!1};Va.prototype.paintForeground=function(c,h,q,l,p){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var v=0;if(this.isRounded){var w=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;v=Math.max(v,Math.min(l*w,p*w))}w=
+Math.max(v,Math.min(l,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));v=Math.max(v,Math.min(p,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));c.begin();c.moveTo(h,q+v);c.lineTo(h+l,q+v);c.end();c.stroke();c.begin();c.moveTo(h+w,q);c.lineTo(h+w,q+p);c.end();c.stroke()};mxCellRenderer.registerShape("internalStorage",Va);mxUtils.extend(Ya,mxActor);Ya.prototype.dx=20;Ya.prototype.dy=20;Ya.prototype.redrawPath=function(c,h,q,l,p){h=Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,
+"dx",this.dx))));q=Math.max(0,Math.min(p,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var v=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(0,0),new mxPoint(l,0),new mxPoint(l,q),new mxPoint(h,q),new mxPoint(h,p),new mxPoint(0,p)],this.isRounded,v,!0);c.end()};mxCellRenderer.registerShape("corner",Ya);mxUtils.extend(jb,mxActor);jb.prototype.redrawPath=function(c,h,q,
+l,p){c.moveTo(0,0);c.lineTo(0,p);c.end();c.moveTo(l,0);c.lineTo(l,p);c.end();c.moveTo(0,p/2);c.lineTo(l,p/2);c.end()};mxCellRenderer.registerShape("crossbar",jb);mxUtils.extend(bb,mxActor);bb.prototype.dx=20;bb.prototype.dy=20;bb.prototype.redrawPath=function(c,h,q,l,p){h=Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));q=Math.max(0,Math.min(p,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var v=mxUtils.getValue(this.style,
+mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(0,0),new mxPoint(l,0),new mxPoint(l,q),new mxPoint((l+h)/2,q),new mxPoint((l+h)/2,p),new mxPoint((l-h)/2,p),new mxPoint((l-h)/2,q),new mxPoint(0,q)],this.isRounded,v,!0);c.end()};mxCellRenderer.registerShape("tee",bb);mxUtils.extend(da,mxActor);da.prototype.arrowWidth=.3;da.prototype.arrowSize=.2;da.prototype.redrawPath=function(c,h,q,l,p){var v=p*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",
+this.arrowWidth))));h=l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));q=(p-v)/2;v=q+v;var w=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(0,q),new mxPoint(l-h,q),new mxPoint(l-h,0),new mxPoint(l,p/2),new mxPoint(l-h,p),new mxPoint(l-h,v),new mxPoint(0,v)],this.isRounded,w,!0);c.end()};mxCellRenderer.registerShape("singleArrow",da);mxUtils.extend(t,mxActor);t.prototype.redrawPath=function(c,
+h,q,l,p){var v=p*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",da.prototype.arrowWidth))));h=l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",da.prototype.arrowSize))));q=(p-v)/2;v=q+v;var w=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(0,p/2),new mxPoint(h,0),new mxPoint(h,q),new mxPoint(l-h,q),new mxPoint(l-h,0),new mxPoint(l,p/2),new mxPoint(l-h,p),new mxPoint(l-h,v),new mxPoint(h,
v),new mxPoint(h,p)],this.isRounded,w,!0);c.end()};mxCellRenderer.registerShape("doubleArrow",t);mxUtils.extend(z,mxActor);z.prototype.size=.1;z.prototype.fixedSize=20;z.prototype.redrawPath=function(c,h,q,l,p){h="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.moveTo(h,0);c.lineTo(l,0);c.quadTo(l-2*h,p/2,l,p);c.lineTo(h,p);c.quadTo(h-
-2*h,p/2,h,0);c.close();c.end()};mxCellRenderer.registerShape("dataStorage",z);mxUtils.extend(B,mxActor);B.prototype.redrawPath=function(c,h,q,l,p){c.moveTo(0,0);c.quadTo(l,0,l,p/2);c.quadTo(l,p,0,p);c.close();c.end()};mxCellRenderer.registerShape("or",B);mxUtils.extend(E,mxActor);E.prototype.redrawPath=function(c,h,q,l,p){c.moveTo(0,0);c.quadTo(l,0,l,p/2);c.quadTo(l,p,0,p);c.quadTo(l/2,p/2,0,0);c.close();c.end()};mxCellRenderer.registerShape("xor",E);mxUtils.extend(G,mxActor);G.prototype.size=20;
-G.prototype.isRoundable=function(){return!0};G.prototype.redrawPath=function(c,h,q,l,p){h=Math.min(l/2,Math.min(p,parseFloat(mxUtils.getValue(this.style,"size",this.size))));q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(h,0),new mxPoint(l-h,0),new mxPoint(l,.8*h),new mxPoint(l,p),new mxPoint(0,p),new mxPoint(0,.8*h)],this.isRounded,q,!0);c.end()};mxCellRenderer.registerShape("loopLimit",G);mxUtils.extend(M,mxActor);M.prototype.size=
-.375;M.prototype.isRoundable=function(){return!0};M.prototype.redrawPath=function(c,h,q,l,p){h=p*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(0,0),new mxPoint(l,0),new mxPoint(l,p-h),new mxPoint(l/2,p),new mxPoint(0,p-h)],this.isRounded,q,!0);c.end()};mxCellRenderer.registerShape("offPageConnector",M);mxUtils.extend(X,mxEllipse);X.prototype.paintVertexShape=
-function(c,h,q,l,p){mxEllipse.prototype.paintVertexShape.apply(this,arguments);c.begin();c.moveTo(h+l/2,q+p);c.lineTo(h+l,q+p);c.end();c.stroke()};mxCellRenderer.registerShape("tapeData",X);mxUtils.extend(ia,mxEllipse);ia.prototype.paintVertexShape=function(c,h,q,l,p){mxEllipse.prototype.paintVertexShape.apply(this,arguments);c.setShadow(!1);c.begin();c.moveTo(h,q+p/2);c.lineTo(h+l,q+p/2);c.end();c.stroke();c.begin();c.moveTo(h+l/2,q);c.lineTo(h+l/2,q+p);c.end();c.stroke()};mxCellRenderer.registerShape("orEllipse",
-ia);mxUtils.extend(da,mxEllipse);da.prototype.paintVertexShape=function(c,h,q,l,p){mxEllipse.prototype.paintVertexShape.apply(this,arguments);c.setShadow(!1);c.begin();c.moveTo(h+.145*l,q+.145*p);c.lineTo(h+.855*l,q+.855*p);c.end();c.stroke();c.begin();c.moveTo(h+.855*l,q+.145*p);c.lineTo(h+.145*l,q+.855*p);c.end();c.stroke()};mxCellRenderer.registerShape("sumEllipse",da);mxUtils.extend(ja,mxRhombus);ja.prototype.paintVertexShape=function(c,h,q,l,p){mxRhombus.prototype.paintVertexShape.apply(this,
-arguments);c.setShadow(!1);c.begin();c.moveTo(h,q+p/2);c.lineTo(h+l,q+p/2);c.end();c.stroke()};mxCellRenderer.registerShape("sortShape",ja);mxUtils.extend(sa,mxEllipse);sa.prototype.paintVertexShape=function(c,h,q,l,p){c.begin();c.moveTo(h,q);c.lineTo(h+l,q);c.lineTo(h+l/2,q+p/2);c.close();c.fillAndStroke();c.begin();c.moveTo(h,q+p);c.lineTo(h+l,q+p);c.lineTo(h+l/2,q+p/2);c.close();c.fillAndStroke()};mxCellRenderer.registerShape("collate",sa);mxUtils.extend(Ba,mxEllipse);Ba.prototype.paintVertexShape=
-function(c,h,q,l,p){var v=c.state.strokeWidth/2,w=10+2*v,J=q+p-w/2;c.begin();c.moveTo(h,q);c.lineTo(h,q+p);c.moveTo(h+v,J);c.lineTo(h+v+w,J-w/2);c.moveTo(h+v,J);c.lineTo(h+v+w,J+w/2);c.moveTo(h+v,J);c.lineTo(h+l-v,J);c.moveTo(h+l,q);c.lineTo(h+l,q+p);c.moveTo(h+l-v,J);c.lineTo(h+l-w-v,J-w/2);c.moveTo(h+l-v,J);c.lineTo(h+l-w-v,J+w/2);c.end();c.stroke()};mxCellRenderer.registerShape("dimension",Ba);mxUtils.extend(Da,mxEllipse);Da.prototype.drawHidden=!0;Da.prototype.paintVertexShape=function(c,h,q,
-l,p){this.outline||c.setStrokeColor(null);if(null!=this.style){var v=c.pointerEvents,w=null!=this.fill&&this.fill!=mxConstants.NONE;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||w||(c.pointerEvents=!1);var J="1"==mxUtils.getValue(this.style,"top","1"),y="1"==mxUtils.getValue(this.style,"left","1"),Y="1"==mxUtils.getValue(this.style,"right","1"),N="1"==mxUtils.getValue(this.style,"bottom","1");this.drawHidden||w||this.outline||J||Y||N||y?(c.rect(h,q,l,p),c.fill(),c.pointerEvents=
-v,c.setStrokeColor(this.stroke),c.setLineCap("square"),c.begin(),c.moveTo(h,q),this.outline||J?c.lineTo(h+l,q):c.moveTo(h+l,q),this.outline||Y?c.lineTo(h+l,q+p):c.moveTo(h+l,q+p),this.outline||N?c.lineTo(h,q+p):c.moveTo(h,q+p),(this.outline||y)&&c.lineTo(h,q),c.end(),c.stroke(),c.setLineCap("flat")):c.setStrokeColor(this.stroke)}};mxCellRenderer.registerShape("partialRectangle",Da);mxUtils.extend(Ma,mxEllipse);Ma.prototype.paintVertexShape=function(c,h,q,l,p){mxEllipse.prototype.paintVertexShape.apply(this,
+2*h,p/2,h,0);c.close();c.end()};mxCellRenderer.registerShape("dataStorage",z);mxUtils.extend(A,mxActor);A.prototype.redrawPath=function(c,h,q,l,p){c.moveTo(0,0);c.quadTo(l,0,l,p/2);c.quadTo(l,p,0,p);c.close();c.end()};mxCellRenderer.registerShape("or",A);mxUtils.extend(E,mxActor);E.prototype.redrawPath=function(c,h,q,l,p){c.moveTo(0,0);c.quadTo(l,0,l,p/2);c.quadTo(l,p,0,p);c.quadTo(l/2,p/2,0,0);c.close();c.end()};mxCellRenderer.registerShape("xor",E);mxUtils.extend(H,mxActor);H.prototype.size=20;
+H.prototype.isRoundable=function(){return!0};H.prototype.redrawPath=function(c,h,q,l,p){h=Math.min(l/2,Math.min(p,parseFloat(mxUtils.getValue(this.style,"size",this.size))));q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(h,0),new mxPoint(l-h,0),new mxPoint(l,.8*h),new mxPoint(l,p),new mxPoint(0,p),new mxPoint(0,.8*h)],this.isRounded,q,!0);c.end()};mxCellRenderer.registerShape("loopLimit",H);mxUtils.extend(K,mxActor);K.prototype.size=
+.375;K.prototype.isRoundable=function(){return!0};K.prototype.redrawPath=function(c,h,q,l,p){h=p*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(0,0),new mxPoint(l,0),new mxPoint(l,p-h),new mxPoint(l/2,p),new mxPoint(0,p-h)],this.isRounded,q,!0);c.end()};mxCellRenderer.registerShape("offPageConnector",K);mxUtils.extend(X,mxEllipse);X.prototype.paintVertexShape=
+function(c,h,q,l,p){mxEllipse.prototype.paintVertexShape.apply(this,arguments);c.begin();c.moveTo(h+l/2,q+p);c.lineTo(h+l,q+p);c.end();c.stroke()};mxCellRenderer.registerShape("tapeData",X);mxUtils.extend(ja,mxEllipse);ja.prototype.paintVertexShape=function(c,h,q,l,p){mxEllipse.prototype.paintVertexShape.apply(this,arguments);c.setShadow(!1);c.begin();c.moveTo(h,q+p/2);c.lineTo(h+l,q+p/2);c.end();c.stroke();c.begin();c.moveTo(h+l/2,q);c.lineTo(h+l/2,q+p);c.end();c.stroke()};mxCellRenderer.registerShape("orEllipse",
+ja);mxUtils.extend(ea,mxEllipse);ea.prototype.paintVertexShape=function(c,h,q,l,p){mxEllipse.prototype.paintVertexShape.apply(this,arguments);c.setShadow(!1);c.begin();c.moveTo(h+.145*l,q+.145*p);c.lineTo(h+.855*l,q+.855*p);c.end();c.stroke();c.begin();c.moveTo(h+.855*l,q+.145*p);c.lineTo(h+.145*l,q+.855*p);c.end();c.stroke()};mxCellRenderer.registerShape("sumEllipse",ea);mxUtils.extend(ka,mxRhombus);ka.prototype.paintVertexShape=function(c,h,q,l,p){mxRhombus.prototype.paintVertexShape.apply(this,
+arguments);c.setShadow(!1);c.begin();c.moveTo(h,q+p/2);c.lineTo(h+l,q+p/2);c.end();c.stroke()};mxCellRenderer.registerShape("sortShape",ka);mxUtils.extend(ta,mxEllipse);ta.prototype.paintVertexShape=function(c,h,q,l,p){c.begin();c.moveTo(h,q);c.lineTo(h+l,q);c.lineTo(h+l/2,q+p/2);c.close();c.fillAndStroke();c.begin();c.moveTo(h,q+p);c.lineTo(h+l,q+p);c.lineTo(h+l/2,q+p/2);c.close();c.fillAndStroke()};mxCellRenderer.registerShape("collate",ta);mxUtils.extend(Aa,mxEllipse);Aa.prototype.paintVertexShape=
+function(c,h,q,l,p){var v=c.state.strokeWidth/2,w=10+2*v,I=q+p-w/2;c.begin();c.moveTo(h,q);c.lineTo(h,q+p);c.moveTo(h+v,I);c.lineTo(h+v+w,I-w/2);c.moveTo(h+v,I);c.lineTo(h+v+w,I+w/2);c.moveTo(h+v,I);c.lineTo(h+l-v,I);c.moveTo(h+l,q);c.lineTo(h+l,q+p);c.moveTo(h+l-v,I);c.lineTo(h+l-w-v,I-w/2);c.moveTo(h+l-v,I);c.lineTo(h+l-w-v,I+w/2);c.end();c.stroke()};mxCellRenderer.registerShape("dimension",Aa);mxUtils.extend(Ea,mxEllipse);Ea.prototype.drawHidden=!0;Ea.prototype.paintVertexShape=function(c,h,q,
+l,p){this.outline||c.setStrokeColor(null);if(null!=this.style){var v=c.pointerEvents,w=null!=this.fill&&this.fill!=mxConstants.NONE;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||w||(c.pointerEvents=!1);var I="1"==mxUtils.getValue(this.style,"top","1"),y="1"==mxUtils.getValue(this.style,"left","1"),Y="1"==mxUtils.getValue(this.style,"right","1"),M="1"==mxUtils.getValue(this.style,"bottom","1");this.drawHidden||w||this.outline||I||Y||M||y?(c.rect(h,q,l,p),c.fill(),c.pointerEvents=
+v,c.setStrokeColor(this.stroke),c.setLineCap("square"),c.begin(),c.moveTo(h,q),this.outline||I?c.lineTo(h+l,q):c.moveTo(h+l,q),this.outline||Y?c.lineTo(h+l,q+p):c.moveTo(h+l,q+p),this.outline||M?c.lineTo(h,q+p):c.moveTo(h,q+p),(this.outline||y)&&c.lineTo(h,q),c.end(),c.stroke(),c.setLineCap("flat")):c.setStrokeColor(this.stroke)}};mxCellRenderer.registerShape("partialRectangle",Ea);mxUtils.extend(Ma,mxEllipse);Ma.prototype.paintVertexShape=function(c,h,q,l,p){mxEllipse.prototype.paintVertexShape.apply(this,
arguments);c.setShadow(!1);c.begin();"vertical"==mxUtils.getValue(this.style,"line")?(c.moveTo(h+l/2,q),c.lineTo(h+l/2,q+p)):(c.moveTo(h,q+p/2),c.lineTo(h+l,q+p/2));c.end();c.stroke()};mxCellRenderer.registerShape("lineEllipse",Ma);mxUtils.extend(La,mxActor);La.prototype.redrawPath=function(c,h,q,l,p){h=Math.min(l,p/2);c.moveTo(0,0);c.lineTo(l-h,0);c.quadTo(l,0,l,p/2);c.quadTo(l,p,l-h,p);c.lineTo(0,p);c.close();c.end()};mxCellRenderer.registerShape("delay",La);mxUtils.extend(Ia,mxActor);Ia.prototype.size=
-.2;Ia.prototype.redrawPath=function(c,h,q,l,p){h=Math.min(p,l);var v=Math.max(0,Math.min(h,h*parseFloat(mxUtils.getValue(this.style,"size",this.size))));h=(p-v)/2;q=h+v;var w=(l-v)/2;v=w+v;c.moveTo(0,h);c.lineTo(w,h);c.lineTo(w,0);c.lineTo(v,0);c.lineTo(v,h);c.lineTo(l,h);c.lineTo(l,q);c.lineTo(v,q);c.lineTo(v,p);c.lineTo(w,p);c.lineTo(w,q);c.lineTo(0,q);c.close();c.end()};mxCellRenderer.registerShape("cross",Ia);mxUtils.extend(Ea,mxActor);Ea.prototype.size=.25;Ea.prototype.redrawPath=function(c,
-h,q,l,p){h=Math.min(l,p/2);q=Math.min(l-h,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*l);c.moveTo(0,p/2);c.lineTo(q,0);c.lineTo(l-h,0);c.quadTo(l,0,l,p/2);c.quadTo(l,p,l-h,p);c.lineTo(q,p);c.close();c.end()};mxCellRenderer.registerShape("display",Ea);mxUtils.extend(Fa,mxActor);Fa.prototype.cst={RECT2:"mxgraph.basic.rect"};Fa.prototype.customProperties=[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",
+.2;Ia.prototype.redrawPath=function(c,h,q,l,p){h=Math.min(p,l);var v=Math.max(0,Math.min(h,h*parseFloat(mxUtils.getValue(this.style,"size",this.size))));h=(p-v)/2;q=h+v;var w=(l-v)/2;v=w+v;c.moveTo(0,h);c.lineTo(w,h);c.lineTo(w,0);c.lineTo(v,0);c.lineTo(v,h);c.lineTo(l,h);c.lineTo(l,q);c.lineTo(v,q);c.lineTo(v,p);c.lineTo(w,p);c.lineTo(w,q);c.lineTo(0,q);c.close();c.end()};mxCellRenderer.registerShape("cross",Ia);mxUtils.extend(Fa,mxActor);Fa.prototype.size=.25;Fa.prototype.redrawPath=function(c,
+h,q,l,p){h=Math.min(l,p/2);q=Math.min(l-h,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*l);c.moveTo(0,p/2);c.lineTo(q,0);c.lineTo(l-h,0);c.quadTo(l,0,l,p/2);c.quadTo(l,p,l-h,p);c.lineTo(q,p);c.close();c.end()};mxCellRenderer.registerShape("display",Fa);mxUtils.extend(Ga,mxActor);Ga.prototype.cst={RECT2:"mxgraph.basic.rect"};Ga.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"}]}];Fa.prototype.paintVertexShape=function(c,h,q,l,p){c.translate(h,q);this.strictDrawShape(c,0,0,l,p)};Fa.prototype.strictDrawShape=function(c,h,q,l,p,v){var w=v&&v.rectStyle?v.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),J=v&&v.absoluteCornerSize?v.absoluteCornerSize:mxUtils.getValue(this.style,
-"absoluteCornerSize",this.absoluteCornerSize),y=v&&v.size?v.size:Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),Y=v&&v.rectOutline?v.rectOutline:mxUtils.getValue(this.style,"rectOutline",this.rectOutline),N=v&&v.indent?v.indent:Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),Ca=v&&v.dashed?v.dashed:mxUtils.getValue(this.style,"dashed",!1),Qa=v&&v.dashPattern?v.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),Ka=v&&
-v.relIndent?v.relIndent:Math.max(0,Math.min(50,N)),la=v&&v.top?v.top:mxUtils.getValue(this.style,"top",!0),pa=v&&v.right?v.right:mxUtils.getValue(this.style,"right",!0),na=v&&v.bottom?v.bottom:mxUtils.getValue(this.style,"bottom",!0),ma=v&&v.left?v.left:mxUtils.getValue(this.style,"left",!0),ta=v&&v.topLeftStyle?v.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),xa=v&&v.topRightStyle?v.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),ya=v&&v.bottomRightStyle?
-v.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),Aa=v&&v.bottomLeftStyle?v.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),zb=v&&v.fillColor?v.fillColor:mxUtils.getValue(this.style,"fillColor","#ffffff");v&&v.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var Ab=v&&v.strokeWidth?v.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),wb=v&&v.fillColor2?v.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),yb=v&&v.gradientColor2?
-v.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),Bb=v&&v.gradientDirection2?v.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),Cb=v&&v.opacity?v.opacity:mxUtils.getValue(this.style,"opacity","100"),Db=Math.max(0,Math.min(50,y));v=Fa.prototype;c.setDashed(Ca);Qa&&""!=Qa&&c.setDashPattern(Qa);c.setStrokeWidth(Ab);y=Math.min(.5*p,.5*l,y);J||(y=Db*Math.min(l,p)/100);y=Math.min(y,.5*Math.min(l,p));J||(N=Math.min(Ka*Math.min(l,p)/100));N=Math.min(N,.5*Math.min(l,
-p)-y);(la||pa||na||ma)&&"frame"!=Y&&(c.begin(),la?v.moveNW(c,h,q,l,p,w,ta,y,ma):c.moveTo(0,0),la&&v.paintNW(c,h,q,l,p,w,ta,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),pa&&v.paintNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),na&&v.paintSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,Aa,y,ma),ma&&v.paintSW(c,h,q,l,p,w,Aa,y,na),v.paintLeft(c,h,q,l,p,w,ta,y,la),c.close(),c.fill(),c.setShadow(!1),c.setFillColor(wb),Ca=J=Cb,"none"==wb&&(J=0),"none"==yb&&(Ca=0),c.setGradient(wb,yb,0,0,l,p,Bb,J,Ca),
-c.begin(),la?v.moveNWInner(c,h,q,l,p,w,ta,y,N,la,ma):c.moveTo(N,0),v.paintLeftInner(c,h,q,l,p,w,Aa,y,N,na,ma),ma&&na&&v.paintSWInner(c,h,q,l,p,w,Aa,y,N,na),v.paintBottomInner(c,h,q,l,p,w,ya,y,N,pa,na),na&&pa&&v.paintSEInner(c,h,q,l,p,w,ya,y,N),v.paintRightInner(c,h,q,l,p,w,xa,y,N,la,pa),pa&&la&&v.paintNEInner(c,h,q,l,p,w,xa,y,N),v.paintTopInner(c,h,q,l,p,w,ta,y,N,ma,la),la&&ma&&v.paintNWInner(c,h,q,l,p,w,ta,y,N),c.fill(),"none"==zb&&(c.begin(),v.paintFolds(c,h,q,l,p,w,ta,xa,ya,Aa,y,la,pa,na,ma),c.stroke()));
-la||pa||na||!ma?la||pa||!na||ma?!la&&!pa&&na&&ma?"frame"!=Y?(c.begin(),v.moveSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,Aa,y,ma),v.paintSW(c,h,q,l,p,w,Aa,y,na),v.paintLeft(c,h,q,l,p,w,ta,y,la),"double"==Y&&(v.moveNWInner(c,h,q,l,p,w,ta,y,N,la,ma),v.paintLeftInner(c,h,q,l,p,w,Aa,y,N,na,ma),v.paintSWInner(c,h,q,l,p,w,Aa,y,N,na),v.paintBottomInner(c,h,q,l,p,w,ya,y,N,pa,na)),c.stroke()):(c.begin(),v.moveSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,Aa,y,ma),v.paintSW(c,h,q,l,p,w,Aa,y,na),v.paintLeft(c,
-h,q,l,p,w,ta,y,la),v.lineNWInner(c,h,q,l,p,w,ta,y,N,la,ma),v.paintLeftInner(c,h,q,l,p,w,Aa,y,N,na,ma),v.paintSWInner(c,h,q,l,p,w,Aa,y,N,na),v.paintBottomInner(c,h,q,l,p,w,ya,y,N,pa,na),c.close(),c.fillAndStroke()):la||!pa||na||ma?!la&&pa&&!na&&ma?"frame"!=Y?(c.begin(),v.moveSW(c,h,q,l,p,w,ta,y,na),v.paintLeft(c,h,q,l,p,w,ta,y,la),"double"==Y&&(v.moveNWInner(c,h,q,l,p,w,ta,y,N,la,ma),v.paintLeftInner(c,h,q,l,p,w,Aa,y,N,na,ma)),c.stroke(),c.begin(),v.moveNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,
-p,w,ya,y,na),"double"==Y&&(v.moveSEInner(c,h,q,l,p,w,ya,y,N,na),v.paintRightInner(c,h,q,l,p,w,xa,y,N,la,pa)),c.stroke()):(c.begin(),v.moveSW(c,h,q,l,p,w,ta,y,na),v.paintLeft(c,h,q,l,p,w,ta,y,la),v.lineNWInner(c,h,q,l,p,w,ta,y,N,la,ma),v.paintLeftInner(c,h,q,l,p,w,Aa,y,N,na,ma),c.close(),c.fillAndStroke(),c.begin(),v.moveNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),v.lineSEInner(c,h,q,l,p,w,ya,y,N,na),v.paintRightInner(c,h,q,l,p,w,xa,y,N,la,pa),c.close(),c.fillAndStroke()):!la&&pa&&na&&
-!ma?"frame"!=Y?(c.begin(),v.moveNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),v.paintSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,Aa,y,ma),"double"==Y&&(v.moveSWInner(c,h,q,l,p,w,Aa,y,N,ma),v.paintBottomInner(c,h,q,l,p,w,ya,y,N,pa,na),v.paintSEInner(c,h,q,l,p,w,ya,y,N),v.paintRightInner(c,h,q,l,p,w,xa,y,N,la,pa)),c.stroke()):(c.begin(),v.moveNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),v.paintSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,Aa,y,ma),v.lineSWInner(c,
-h,q,l,p,w,Aa,y,N,ma),v.paintBottomInner(c,h,q,l,p,w,ya,y,N,pa,na),v.paintSEInner(c,h,q,l,p,w,ya,y,N),v.paintRightInner(c,h,q,l,p,w,xa,y,N,la,pa),c.close(),c.fillAndStroke()):!la&&pa&&na&&ma?"frame"!=Y?(c.begin(),v.moveNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),v.paintSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,Aa,y,ma),v.paintSW(c,h,q,l,p,w,Aa,y,na),v.paintLeft(c,h,q,l,p,w,ta,y,la),"double"==Y&&(v.moveNWInner(c,h,q,l,p,w,ta,y,N,la,ma),v.paintLeftInner(c,h,q,l,p,w,Aa,y,N,na,ma),
-v.paintSWInner(c,h,q,l,p,w,Aa,y,N,na),v.paintBottomInner(c,h,q,l,p,w,ya,y,N,pa,na),v.paintSEInner(c,h,q,l,p,w,ya,y,N),v.paintRightInner(c,h,q,l,p,w,xa,y,N,la,pa)),c.stroke()):(c.begin(),v.moveNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),v.paintSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,Aa,y,ma),v.paintSW(c,h,q,l,p,w,Aa,y,na),v.paintLeft(c,h,q,l,p,w,ta,y,la),v.lineNWInner(c,h,q,l,p,w,ta,y,N,la,ma),v.paintLeftInner(c,h,q,l,p,w,Aa,y,N,na,ma),v.paintSWInner(c,h,q,l,p,w,Aa,y,N,na),
-v.paintBottomInner(c,h,q,l,p,w,ya,y,N,pa,na),v.paintSEInner(c,h,q,l,p,w,ya,y,N),v.paintRightInner(c,h,q,l,p,w,xa,y,N,la,pa),c.close(),c.fillAndStroke()):!la||pa||na||ma?la&&!pa&&!na&&ma?"frame"!=Y?(c.begin(),v.moveSW(c,h,q,l,p,w,Aa,y,na),v.paintLeft(c,h,q,l,p,w,ta,y,la),v.paintNW(c,h,q,l,p,w,ta,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),"double"==Y&&(v.moveNEInner(c,h,q,l,p,w,xa,y,N,pa),v.paintTopInner(c,h,q,l,p,w,ta,y,N,ma,la),v.paintNWInner(c,h,q,l,p,w,ta,y,N),v.paintLeftInner(c,h,q,l,p,w,Aa,y,N,na,
-ma)),c.stroke()):(c.begin(),v.moveSW(c,h,q,l,p,w,Aa,y,na),v.paintLeft(c,h,q,l,p,w,ta,y,la),v.paintNW(c,h,q,l,p,w,ta,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.lineNEInner(c,h,q,l,p,w,xa,y,N,pa),v.paintTopInner(c,h,q,l,p,w,ta,y,N,ma,la),v.paintNWInner(c,h,q,l,p,w,ta,y,N),v.paintLeftInner(c,h,q,l,p,w,Aa,y,N,na,ma),c.close(),c.fillAndStroke()):la&&!pa&&na&&!ma?"frame"!=Y?(c.begin(),v.moveNW(c,h,q,l,p,w,ta,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),"double"==Y&&(v.moveNEInner(c,h,q,l,p,w,xa,y,N,pa),v.paintTopInner(c,
-h,q,l,p,w,ta,y,N,ma,la)),c.stroke(),c.begin(),v.moveSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,Aa,y,ma),"double"==Y&&(v.moveSWInner(c,h,q,l,p,w,Aa,y,N,ma),v.paintBottomInner(c,h,q,l,p,w,ya,y,N,pa,na)),c.stroke()):(c.begin(),v.moveNW(c,h,q,l,p,w,ta,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.lineNEInner(c,h,q,l,p,w,xa,y,N,pa),v.paintTopInner(c,h,q,l,p,w,ta,y,N,ma,la),c.close(),c.fillAndStroke(),c.begin(),v.moveSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,Aa,y,ma),v.lineSWInner(c,h,q,l,p,w,
-Aa,y,N,ma),v.paintBottomInner(c,h,q,l,p,w,ya,y,N,pa,na),c.close(),c.fillAndStroke()):la&&!pa&&na&&ma?"frame"!=Y?(c.begin(),v.moveSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,Aa,y,ma),v.paintSW(c,h,q,l,p,w,Aa,y,na),v.paintLeft(c,h,q,l,p,w,ta,y,la),v.paintNW(c,h,q,l,p,w,ta,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),"double"==Y&&(v.moveNEInner(c,h,q,l,p,w,xa,y,N,pa),v.paintTopInner(c,h,q,l,p,w,ta,y,N,ma,la),v.paintNWInner(c,h,q,l,p,w,ta,y,N),v.paintLeftInner(c,h,q,l,p,w,Aa,y,N,na,ma),v.paintSWInner(c,
-h,q,l,p,w,Aa,y,N,na),v.paintBottomInner(c,h,q,l,p,w,ya,y,N,pa,na)),c.stroke()):(c.begin(),v.moveSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,Aa,y,ma),v.paintSW(c,h,q,l,p,w,Aa,y,na),v.paintLeft(c,h,q,l,p,w,ta,y,la),v.paintNW(c,h,q,l,p,w,ta,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.lineNEInner(c,h,q,l,p,w,xa,y,N,pa),v.paintTopInner(c,h,q,l,p,w,ta,y,N,ma,la),v.paintNWInner(c,h,q,l,p,w,ta,y,N),v.paintLeftInner(c,h,q,l,p,w,Aa,y,N,na,ma),v.paintSWInner(c,h,q,l,p,w,Aa,y,N,na),v.paintBottomInner(c,h,q,
-l,p,w,ya,y,N,pa,na),c.close(),c.fillAndStroke()):la&&pa&&!na&&!ma?"frame"!=Y?(c.begin(),v.moveNW(c,h,q,l,p,w,ta,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.paintNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),"double"==Y&&(v.moveSEInner(c,h,q,l,p,w,ya,y,N,na),v.paintRightInner(c,h,q,l,p,w,xa,y,N,la,pa),v.paintNEInner(c,h,q,l,p,w,xa,y,N),v.paintTopInner(c,h,q,l,p,w,ta,y,N,ma,la)),c.stroke()):(c.begin(),v.moveNW(c,h,q,l,p,w,ta,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.paintNE(c,h,q,l,p,w,xa,y,la),
-v.paintRight(c,h,q,l,p,w,ya,y,na),v.lineSEInner(c,h,q,l,p,w,ya,y,N,na),v.paintRightInner(c,h,q,l,p,w,xa,y,N,la,pa),v.paintNEInner(c,h,q,l,p,w,xa,y,N),v.paintTopInner(c,h,q,l,p,w,ta,y,N,ma,la),c.close(),c.fillAndStroke()):la&&pa&&!na&&ma?"frame"!=Y?(c.begin(),v.moveSW(c,h,q,l,p,w,Aa,y,na),v.paintLeft(c,h,q,l,p,w,ta,y,la),v.paintNW(c,h,q,l,p,w,ta,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.paintNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),"double"==Y&&(v.moveSEInner(c,h,q,l,p,w,ya,y,N,na),
-v.paintRightInner(c,h,q,l,p,w,xa,y,N,la,pa),v.paintNEInner(c,h,q,l,p,w,xa,y,N),v.paintTopInner(c,h,q,l,p,w,ta,y,N,ma,la),v.paintNWInner(c,h,q,l,p,w,ta,y,N),v.paintLeftInner(c,h,q,l,p,w,Aa,y,N,na,ma)),c.stroke()):(c.begin(),v.moveSW(c,h,q,l,p,w,Aa,y,na),v.paintLeft(c,h,q,l,p,w,ta,y,la),v.paintNW(c,h,q,l,p,w,ta,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.paintNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),v.lineSEInner(c,h,q,l,p,w,ya,y,N,na),v.paintRightInner(c,h,q,l,p,w,xa,y,N,la,pa),v.paintNEInner(c,
-h,q,l,p,w,xa,y,N),v.paintTopInner(c,h,q,l,p,w,ta,y,N,ma,la),v.paintNWInner(c,h,q,l,p,w,ta,y,N),v.paintLeftInner(c,h,q,l,p,w,Aa,y,N,na,ma),c.close(),c.fillAndStroke()):la&&pa&&na&&!ma?"frame"!=Y?(c.begin(),v.moveNW(c,h,q,l,p,w,ta,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.paintNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),v.paintSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,Aa,y,ma),"double"==Y&&(v.moveSWInner(c,h,q,l,p,w,Aa,y,N,ma),v.paintBottomInner(c,h,q,l,p,w,ya,y,N,pa,na),v.paintSEInner(c,
-h,q,l,p,w,ya,y,N),v.paintRightInner(c,h,q,l,p,w,xa,y,N,la,pa),v.paintNEInner(c,h,q,l,p,w,xa,y,N),v.paintTopInner(c,h,q,l,p,w,ta,y,N,ma,la)),c.stroke()):(c.begin(),v.moveNW(c,h,q,l,p,w,ta,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.paintNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),v.paintSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,Aa,y,ma),v.lineSWInner(c,h,q,l,p,w,Aa,y,N,ma),v.paintBottomInner(c,h,q,l,p,w,ya,y,N,pa,na),v.paintSEInner(c,h,q,l,p,w,ya,y,N),v.paintRightInner(c,h,q,l,p,
-w,xa,y,N,la,pa),v.paintNEInner(c,h,q,l,p,w,xa,y,N),v.paintTopInner(c,h,q,l,p,w,ta,y,N,ma,la),c.close(),c.fillAndStroke()):la&&pa&&na&&ma&&("frame"!=Y?(c.begin(),v.moveNW(c,h,q,l,p,w,ta,y,ma),v.paintNW(c,h,q,l,p,w,ta,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.paintNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),v.paintSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,Aa,y,ma),v.paintSW(c,h,q,l,p,w,Aa,y,na),v.paintLeft(c,h,q,l,p,w,ta,y,la),c.close(),"double"==Y&&(v.moveSWInner(c,h,q,l,p,w,Aa,
-y,N,ma),v.paintSWInner(c,h,q,l,p,w,Aa,y,N,na),v.paintBottomInner(c,h,q,l,p,w,ya,y,N,pa,na),v.paintSEInner(c,h,q,l,p,w,ya,y,N),v.paintRightInner(c,h,q,l,p,w,xa,y,N,la,pa),v.paintNEInner(c,h,q,l,p,w,xa,y,N),v.paintTopInner(c,h,q,l,p,w,ta,y,N,ma,la),v.paintNWInner(c,h,q,l,p,w,ta,y,N),v.paintLeftInner(c,h,q,l,p,w,Aa,y,N,na,ma),c.close()),c.stroke()):(c.begin(),v.moveNW(c,h,q,l,p,w,ta,y,ma),v.paintNW(c,h,q,l,p,w,ta,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.paintNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,
-l,p,w,ya,y,na),v.paintSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,Aa,y,ma),v.paintSW(c,h,q,l,p,w,Aa,y,na),v.paintLeft(c,h,q,l,p,w,ta,y,la),c.close(),v.moveSWInner(c,h,q,l,p,w,Aa,y,N,ma),v.paintSWInner(c,h,q,l,p,w,Aa,y,N,na),v.paintBottomInner(c,h,q,l,p,w,ya,y,N,pa,na),v.paintSEInner(c,h,q,l,p,w,ya,y,N),v.paintRightInner(c,h,q,l,p,w,xa,y,N,la,pa),v.paintNEInner(c,h,q,l,p,w,xa,y,N),v.paintTopInner(c,h,q,l,p,w,ta,y,N,ma,la),v.paintNWInner(c,h,q,l,p,w,ta,y,N),v.paintLeftInner(c,h,q,l,p,w,Aa,y,N,
-na,ma),c.close(),c.fillAndStroke())):"frame"!=Y?(c.begin(),v.moveNW(c,h,q,l,p,w,ta,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),"double"==Y&&(v.moveNEInner(c,h,q,l,p,w,xa,y,N,pa),v.paintTopInner(c,h,q,l,p,w,ta,y,N,ma,la)),c.stroke()):(c.begin(),v.moveNW(c,h,q,l,p,w,ta,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.lineNEInner(c,h,q,l,p,w,xa,y,N,pa),v.paintTopInner(c,h,q,l,p,w,ta,y,N,ma,la),c.close(),c.fillAndStroke()):"frame"!=Y?(c.begin(),v.moveNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),"double"==
-Y&&(v.moveSEInner(c,h,q,l,p,w,ya,y,N,na),v.paintRightInner(c,h,q,l,p,w,xa,y,N,la,pa)),c.stroke()):(c.begin(),v.moveNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),v.lineSEInner(c,h,q,l,p,w,ya,y,N,na),v.paintRightInner(c,h,q,l,p,w,xa,y,N,la,pa),c.close(),c.fillAndStroke()):"frame"!=Y?(c.begin(),v.moveSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,Aa,y,ma),"double"==Y&&(v.moveSWInner(c,h,q,l,p,w,Aa,y,N,ma),v.paintBottomInner(c,h,q,l,p,w,ya,y,N,pa,na)),c.stroke()):(c.begin(),v.moveSE(c,
-h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,Aa,y,ma),v.lineSWInner(c,h,q,l,p,w,Aa,y,N,ma),v.paintBottomInner(c,h,q,l,p,w,ya,y,N,pa,na),c.close(),c.fillAndStroke()):"frame"!=Y?(c.begin(),v.moveSW(c,h,q,l,p,w,ta,y,na),v.paintLeft(c,h,q,l,p,w,ta,y,la),"double"==Y&&(v.moveNWInner(c,h,q,l,p,w,ta,y,N,la,ma),v.paintLeftInner(c,h,q,l,p,w,Aa,y,N,na,ma)),c.stroke()):(c.begin(),v.moveSW(c,h,q,l,p,w,ta,y,na),v.paintLeft(c,h,q,l,p,w,ta,y,la),v.lineNWInner(c,h,q,l,p,w,ta,y,N,la,ma),v.paintLeftInner(c,h,q,l,p,
-w,Aa,y,N,na,ma),c.close(),c.fillAndStroke());c.begin();v.paintFolds(c,h,q,l,p,w,ta,xa,ya,Aa,y,la,pa,na,ma);c.stroke()};Fa.prototype.moveNW=function(c,h,q,l,p,v,w,J,y){"square"==w||"default"==w&&"square"==v||!y?c.moveTo(0,0):c.moveTo(0,J)};Fa.prototype.moveNE=function(c,h,q,l,p,v,w,J,y){"square"==w||"default"==w&&"square"==v||!y?c.moveTo(l,0):c.moveTo(l-J,0)};Fa.prototype.moveSE=function(c,h,q,l,p,v,w,J,y){"square"==w||"default"==w&&"square"==v||!y?c.moveTo(l,p):c.moveTo(l,p-J)};Fa.prototype.moveSW=
-function(c,h,q,l,p,v,w,J,y){"square"==w||"default"==w&&"square"==v||!y?c.moveTo(0,p):c.moveTo(J,p)};Fa.prototype.paintNW=function(c,h,q,l,p,v,w,J,y){if(y)if("rounded"==w||"default"==w&&"rounded"==v||"invRound"==w||"default"==w&&"invRound"==v){h=0;if("rounded"==w||"default"==w&&"rounded"==v)h=1;c.arcTo(J,J,0,0,h,J,0)}else("snip"==w||"default"==w&&"snip"==v||"fold"==w||"default"==w&&"fold"==v)&&c.lineTo(J,0);else c.lineTo(0,0)};Fa.prototype.paintTop=function(c,h,q,l,p,v,w,J,y){"square"==w||"default"==
-w&&"square"==v||!y?c.lineTo(l,0):c.lineTo(l-J,0)};Fa.prototype.paintNE=function(c,h,q,l,p,v,w,J,y){if(y)if("rounded"==w||"default"==w&&"rounded"==v||"invRound"==w||"default"==w&&"invRound"==v){h=0;if("rounded"==w||"default"==w&&"rounded"==v)h=1;c.arcTo(J,J,0,0,h,l,J)}else("snip"==w||"default"==w&&"snip"==v||"fold"==w||"default"==w&&"fold"==v)&&c.lineTo(l,J);else c.lineTo(l,0)};Fa.prototype.paintRight=function(c,h,q,l,p,v,w,J,y){"square"==w||"default"==w&&"square"==v||!y?c.lineTo(l,p):c.lineTo(l,p-
-J)};Fa.prototype.paintLeft=function(c,h,q,l,p,v,w,J,y){"square"==w||"default"==w&&"square"==v||!y?c.lineTo(0,0):c.lineTo(0,J)};Fa.prototype.paintSE=function(c,h,q,l,p,v,w,J,y){if(y)if("rounded"==w||"default"==w&&"rounded"==v||"invRound"==w||"default"==w&&"invRound"==v){h=0;if("rounded"==w||"default"==w&&"rounded"==v)h=1;c.arcTo(J,J,0,0,h,l-J,p)}else("snip"==w||"default"==w&&"snip"==v||"fold"==w||"default"==w&&"fold"==v)&&c.lineTo(l-J,p);else c.lineTo(l,p)};Fa.prototype.paintBottom=function(c,h,q,
-l,p,v,w,J,y){"square"==w||"default"==w&&"square"==v||!y?c.lineTo(0,p):c.lineTo(J,p)};Fa.prototype.paintSW=function(c,h,q,l,p,v,w,J,y){if(y)if("rounded"==w||"default"==w&&"rounded"==v||"invRound"==w||"default"==w&&"invRound"==v){h=0;if("rounded"==w||"default"==w&&"rounded"==v)h=1;c.arcTo(J,J,0,0,h,0,p-J)}else("snip"==w||"default"==w&&"snip"==v||"fold"==w||"default"==w&&"fold"==v)&&c.lineTo(0,p-J);else c.lineTo(0,p)};Fa.prototype.paintNWInner=function(c,h,q,l,p,v,w,J,y){if("rounded"==w||"default"==
-w&&"rounded"==v)c.arcTo(J-.5*y,J-.5*y,0,0,0,y,.5*y+J);else if("invRound"==w||"default"==w&&"invRound"==v)c.arcTo(J+y,J+y,0,0,1,y,y+J);else if("snip"==w||"default"==w&&"snip"==v)c.lineTo(y,.5*y+J);else if("fold"==w||"default"==w&&"fold"==v)c.lineTo(y+J,y+J),c.lineTo(y,y+J)};Fa.prototype.paintTopInner=function(c,h,q,l,p,v,w,J,y,Y,N){Y||N?!Y&&N?c.lineTo(0,y):Y&&!N?c.lineTo(y,0):Y?"square"==w||"default"==w&&"square"==v?c.lineTo(y,y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==
-v?c.lineTo(J+.5*y,y):c.lineTo(J+y,y):c.lineTo(0,y):c.lineTo(0,0)};Fa.prototype.paintNEInner=function(c,h,q,l,p,v,w,J,y){if("rounded"==w||"default"==w&&"rounded"==v)c.arcTo(J-.5*y,J-.5*y,0,0,0,l-J-.5*y,y);else if("invRound"==w||"default"==w&&"invRound"==v)c.arcTo(J+y,J+y,0,0,1,l-J-y,y);else if("snip"==w||"default"==w&&"snip"==v)c.lineTo(l-J-.5*y,y);else if("fold"==w||"default"==w&&"fold"==v)c.lineTo(l-J-y,J+y),c.lineTo(l-J-y,y)};Fa.prototype.paintRightInner=function(c,h,q,l,p,v,w,J,y,Y,N){Y||N?!Y&&
-N?c.lineTo(l-y,0):Y&&!N?c.lineTo(l,y):Y?"square"==w||"default"==w&&"square"==v?c.lineTo(l-y,y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.lineTo(l-y,J+.5*y):c.lineTo(l-y,J+y):c.lineTo(l-y,0):c.lineTo(l,0)};Fa.prototype.paintLeftInner=function(c,h,q,l,p,v,w,J,y,Y,N){Y||N?!Y&&N?c.lineTo(y,p):Y&&!N?c.lineTo(0,p-y):Y?"square"==w||"default"==w&&"square"==v?c.lineTo(y,p-y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.lineTo(y,p-J-.5*
-y):c.lineTo(y,p-J-y):c.lineTo(y,p):c.lineTo(0,p)};Fa.prototype.paintSEInner=function(c,h,q,l,p,v,w,J,y){if("rounded"==w||"default"==w&&"rounded"==v)c.arcTo(J-.5*y,J-.5*y,0,0,0,l-y,p-J-.5*y);else if("invRound"==w||"default"==w&&"invRound"==v)c.arcTo(J+y,J+y,0,0,1,l-y,p-J-y);else if("snip"==w||"default"==w&&"snip"==v)c.lineTo(l-y,p-J-.5*y);else if("fold"==w||"default"==w&&"fold"==v)c.lineTo(l-J-y,p-J-y),c.lineTo(l-y,p-J-y)};Fa.prototype.paintBottomInner=function(c,h,q,l,p,v,w,J,y,Y,N){Y||N?!Y&&N?c.lineTo(l,
-p-y):Y&&!N?c.lineTo(l-y,p):"square"==w||"default"==w&&"square"==v||!Y?c.lineTo(l-y,p-y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.lineTo(l-J-.5*y,p-y):c.lineTo(l-J-y,p-y):c.lineTo(l,p)};Fa.prototype.paintSWInner=function(c,h,q,l,p,v,w,J,y,Y){if(!Y)c.lineTo(y,p);else if("square"==w||"default"==w&&"square"==v)c.lineTo(y,p-y);else if("rounded"==w||"default"==w&&"rounded"==v)c.arcTo(J-.5*y,J-.5*y,0,0,0,J+.5*y,p-y);else if("invRound"==w||"default"==w&&"invRound"==v)c.arcTo(J+
-y,J+y,0,0,1,J+y,p-y);else if("snip"==w||"default"==w&&"snip"==v)c.lineTo(J+.5*y,p-y);else if("fold"==w||"default"==w&&"fold"==v)c.lineTo(y+J,p-J-y),c.lineTo(y+J,p-y)};Fa.prototype.moveSWInner=function(c,h,q,l,p,v,w,J,y,Y){Y?"square"==w||"default"==w&&"square"==v?c.moveTo(y,p-y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.moveTo(y,p-J-.5*y):("invRound"==w||"default"==w&&"invRound"==v||"fold"==w||"default"==w&&"fold"==v)&&c.moveTo(y,p-J-y):c.moveTo(0,p-y)};Fa.prototype.lineSWInner=
-function(c,h,q,l,p,v,w,J,y,Y){Y?"square"==w||"default"==w&&"square"==v?c.lineTo(y,p-y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.lineTo(y,p-J-.5*y):("invRound"==w||"default"==w&&"invRound"==v||"fold"==w||"default"==w&&"fold"==v)&&c.lineTo(y,p-J-y):c.lineTo(0,p-y)};Fa.prototype.moveSEInner=function(c,h,q,l,p,v,w,J,y,Y){Y?"square"==w||"default"==w&&"square"==v?c.moveTo(l-y,p-y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.moveTo(l-
-y,p-J-.5*y):("invRound"==w||"default"==w&&"invRound"==v||"fold"==w||"default"==w&&"fold"==v)&&c.moveTo(l-y,p-J-y):c.moveTo(l-y,p)};Fa.prototype.lineSEInner=function(c,h,q,l,p,v,w,J,y,Y){Y?"square"==w||"default"==w&&"square"==v?c.lineTo(l-y,p-y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.lineTo(l-y,p-J-.5*y):("invRound"==w||"default"==w&&"invRound"==v||"fold"==w||"default"==w&&"fold"==v)&&c.lineTo(l-y,p-J-y):c.lineTo(l-y,p)};Fa.prototype.moveNEInner=function(c,h,
-q,l,p,v,w,J,y,Y){Y?"square"==w||"default"==w&&"square"==v||Y?c.moveTo(l-y,y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.moveTo(l-y,J+.5*y):("invRound"==w||"default"==w&&"invRound"==v||"fold"==w||"default"==w&&"fold"==v)&&c.moveTo(l-y,J+y):c.moveTo(l,y)};Fa.prototype.lineNEInner=function(c,h,q,l,p,v,w,J,y,Y){Y?"square"==w||"default"==w&&"square"==v||Y?c.lineTo(l-y,y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.lineTo(l-y,J+.5*y):
-("invRound"==w||"default"==w&&"invRound"==v||"fold"==w||"default"==w&&"fold"==v)&&c.lineTo(l-y,J+y):c.lineTo(l,y)};Fa.prototype.moveNWInner=function(c,h,q,l,p,v,w,J,y,Y,N){Y||N?!Y&&N?c.moveTo(y,0):Y&&!N?c.moveTo(0,y):"square"==w||"default"==w&&"square"==v?c.moveTo(y,y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.moveTo(y,J+.5*y):("invRound"==w||"default"==w&&"invRound"==v||"fold"==w||"default"==w&&"fold"==v)&&c.moveTo(y,J+y):c.moveTo(0,0)};Fa.prototype.lineNWInner=
-function(c,h,q,l,p,v,w,J,y,Y,N){Y||N?!Y&&N?c.lineTo(y,0):Y&&!N?c.lineTo(0,y):"square"==w||"default"==w&&"square"==v?c.lineTo(y,y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.lineTo(y,J+.5*y):("invRound"==w||"default"==w&&"invRound"==v||"fold"==w||"default"==w&&"fold"==v)&&c.lineTo(y,J+y):c.lineTo(0,0)};Fa.prototype.paintFolds=function(c,h,q,l,p,v,w,J,y,Y,N,Ca,Qa,Ka,la){if("fold"==v||"fold"==w||"fold"==J||"fold"==y||"fold"==Y)("fold"==w||"default"==w&&"fold"==v)&&
-Ca&&la&&(c.moveTo(0,N),c.lineTo(N,N),c.lineTo(N,0)),("fold"==J||"default"==J&&"fold"==v)&&Ca&&Qa&&(c.moveTo(l-N,0),c.lineTo(l-N,N),c.lineTo(l,N)),("fold"==y||"default"==y&&"fold"==v)&&Ka&&Qa&&(c.moveTo(l-N,p),c.lineTo(l-N,p-N),c.lineTo(l,p-N)),("fold"==Y||"default"==Y&&"fold"==v)&&Ka&&la&&(c.moveTo(0,p-N),c.lineTo(N,p-N),c.lineTo(N,p))};mxCellRenderer.registerShape(Fa.prototype.cst.RECT2,Fa);Fa.prototype.constraints=null;mxUtils.extend(Oa,mxConnector);Oa.prototype.origPaintEdgeShape=Oa.prototype.paintEdgeShape;
+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"}]}];Ga.prototype.paintVertexShape=function(c,h,q,l,p){c.translate(h,q);this.strictDrawShape(c,0,0,l,p)};Ga.prototype.strictDrawShape=function(c,h,q,l,p,v){var w=v&&v.rectStyle?v.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),I=v&&v.absoluteCornerSize?v.absoluteCornerSize:mxUtils.getValue(this.style,
+"absoluteCornerSize",this.absoluteCornerSize),y=v&&v.size?v.size:Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),Y=v&&v.rectOutline?v.rectOutline:mxUtils.getValue(this.style,"rectOutline",this.rectOutline),M=v&&v.indent?v.indent:Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),Ba=v&&v.dashed?v.dashed:mxUtils.getValue(this.style,"dashed",!1),Qa=v&&v.dashPattern?v.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),Ja=v&&
+v.relIndent?v.relIndent:Math.max(0,Math.min(50,M)),la=v&&v.top?v.top:mxUtils.getValue(this.style,"top",!0),pa=v&&v.right?v.right:mxUtils.getValue(this.style,"right",!0),na=v&&v.bottom?v.bottom:mxUtils.getValue(this.style,"bottom",!0),ma=v&&v.left?v.left:mxUtils.getValue(this.style,"left",!0),va=v&&v.topLeftStyle?v.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),xa=v&&v.topRightStyle?v.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),ya=v&&v.bottomRightStyle?
+v.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),za=v&&v.bottomLeftStyle?v.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),zb=v&&v.fillColor?v.fillColor:mxUtils.getValue(this.style,"fillColor","#ffffff");v&&v.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var Ab=v&&v.strokeWidth?v.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),wb=v&&v.fillColor2?v.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),yb=v&&v.gradientColor2?
+v.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),Bb=v&&v.gradientDirection2?v.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),Cb=v&&v.opacity?v.opacity:mxUtils.getValue(this.style,"opacity","100"),Db=Math.max(0,Math.min(50,y));v=Ga.prototype;c.setDashed(Ba);Qa&&""!=Qa&&c.setDashPattern(Qa);c.setStrokeWidth(Ab);y=Math.min(.5*p,.5*l,y);I||(y=Db*Math.min(l,p)/100);y=Math.min(y,.5*Math.min(l,p));I||(M=Math.min(Ja*Math.min(l,p)/100));M=Math.min(M,.5*Math.min(l,
+p)-y);(la||pa||na||ma)&&"frame"!=Y&&(c.begin(),la?v.moveNW(c,h,q,l,p,w,va,y,ma):c.moveTo(0,0),la&&v.paintNW(c,h,q,l,p,w,va,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),pa&&v.paintNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),na&&v.paintSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,za,y,ma),ma&&v.paintSW(c,h,q,l,p,w,za,y,na),v.paintLeft(c,h,q,l,p,w,va,y,la),c.close(),c.fill(),c.setShadow(!1),c.setFillColor(wb),Ba=I=Cb,"none"==wb&&(I=0),"none"==yb&&(Ba=0),c.setGradient(wb,yb,0,0,l,p,Bb,I,Ba),
+c.begin(),la?v.moveNWInner(c,h,q,l,p,w,va,y,M,la,ma):c.moveTo(M,0),v.paintLeftInner(c,h,q,l,p,w,za,y,M,na,ma),ma&&na&&v.paintSWInner(c,h,q,l,p,w,za,y,M,na),v.paintBottomInner(c,h,q,l,p,w,ya,y,M,pa,na),na&&pa&&v.paintSEInner(c,h,q,l,p,w,ya,y,M),v.paintRightInner(c,h,q,l,p,w,xa,y,M,la,pa),pa&&la&&v.paintNEInner(c,h,q,l,p,w,xa,y,M),v.paintTopInner(c,h,q,l,p,w,va,y,M,ma,la),la&&ma&&v.paintNWInner(c,h,q,l,p,w,va,y,M),c.fill(),"none"==zb&&(c.begin(),v.paintFolds(c,h,q,l,p,w,va,xa,ya,za,y,la,pa,na,ma),c.stroke()));
+la||pa||na||!ma?la||pa||!na||ma?!la&&!pa&&na&&ma?"frame"!=Y?(c.begin(),v.moveSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,za,y,ma),v.paintSW(c,h,q,l,p,w,za,y,na),v.paintLeft(c,h,q,l,p,w,va,y,la),"double"==Y&&(v.moveNWInner(c,h,q,l,p,w,va,y,M,la,ma),v.paintLeftInner(c,h,q,l,p,w,za,y,M,na,ma),v.paintSWInner(c,h,q,l,p,w,za,y,M,na),v.paintBottomInner(c,h,q,l,p,w,ya,y,M,pa,na)),c.stroke()):(c.begin(),v.moveSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,za,y,ma),v.paintSW(c,h,q,l,p,w,za,y,na),v.paintLeft(c,
+h,q,l,p,w,va,y,la),v.lineNWInner(c,h,q,l,p,w,va,y,M,la,ma),v.paintLeftInner(c,h,q,l,p,w,za,y,M,na,ma),v.paintSWInner(c,h,q,l,p,w,za,y,M,na),v.paintBottomInner(c,h,q,l,p,w,ya,y,M,pa,na),c.close(),c.fillAndStroke()):la||!pa||na||ma?!la&&pa&&!na&&ma?"frame"!=Y?(c.begin(),v.moveSW(c,h,q,l,p,w,va,y,na),v.paintLeft(c,h,q,l,p,w,va,y,la),"double"==Y&&(v.moveNWInner(c,h,q,l,p,w,va,y,M,la,ma),v.paintLeftInner(c,h,q,l,p,w,za,y,M,na,ma)),c.stroke(),c.begin(),v.moveNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,
+p,w,ya,y,na),"double"==Y&&(v.moveSEInner(c,h,q,l,p,w,ya,y,M,na),v.paintRightInner(c,h,q,l,p,w,xa,y,M,la,pa)),c.stroke()):(c.begin(),v.moveSW(c,h,q,l,p,w,va,y,na),v.paintLeft(c,h,q,l,p,w,va,y,la),v.lineNWInner(c,h,q,l,p,w,va,y,M,la,ma),v.paintLeftInner(c,h,q,l,p,w,za,y,M,na,ma),c.close(),c.fillAndStroke(),c.begin(),v.moveNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),v.lineSEInner(c,h,q,l,p,w,ya,y,M,na),v.paintRightInner(c,h,q,l,p,w,xa,y,M,la,pa),c.close(),c.fillAndStroke()):!la&&pa&&na&&
+!ma?"frame"!=Y?(c.begin(),v.moveNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),v.paintSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,za,y,ma),"double"==Y&&(v.moveSWInner(c,h,q,l,p,w,za,y,M,ma),v.paintBottomInner(c,h,q,l,p,w,ya,y,M,pa,na),v.paintSEInner(c,h,q,l,p,w,ya,y,M),v.paintRightInner(c,h,q,l,p,w,xa,y,M,la,pa)),c.stroke()):(c.begin(),v.moveNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),v.paintSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,za,y,ma),v.lineSWInner(c,
+h,q,l,p,w,za,y,M,ma),v.paintBottomInner(c,h,q,l,p,w,ya,y,M,pa,na),v.paintSEInner(c,h,q,l,p,w,ya,y,M),v.paintRightInner(c,h,q,l,p,w,xa,y,M,la,pa),c.close(),c.fillAndStroke()):!la&&pa&&na&&ma?"frame"!=Y?(c.begin(),v.moveNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),v.paintSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,za,y,ma),v.paintSW(c,h,q,l,p,w,za,y,na),v.paintLeft(c,h,q,l,p,w,va,y,la),"double"==Y&&(v.moveNWInner(c,h,q,l,p,w,va,y,M,la,ma),v.paintLeftInner(c,h,q,l,p,w,za,y,M,na,ma),
+v.paintSWInner(c,h,q,l,p,w,za,y,M,na),v.paintBottomInner(c,h,q,l,p,w,ya,y,M,pa,na),v.paintSEInner(c,h,q,l,p,w,ya,y,M),v.paintRightInner(c,h,q,l,p,w,xa,y,M,la,pa)),c.stroke()):(c.begin(),v.moveNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),v.paintSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,za,y,ma),v.paintSW(c,h,q,l,p,w,za,y,na),v.paintLeft(c,h,q,l,p,w,va,y,la),v.lineNWInner(c,h,q,l,p,w,va,y,M,la,ma),v.paintLeftInner(c,h,q,l,p,w,za,y,M,na,ma),v.paintSWInner(c,h,q,l,p,w,za,y,M,na),
+v.paintBottomInner(c,h,q,l,p,w,ya,y,M,pa,na),v.paintSEInner(c,h,q,l,p,w,ya,y,M),v.paintRightInner(c,h,q,l,p,w,xa,y,M,la,pa),c.close(),c.fillAndStroke()):!la||pa||na||ma?la&&!pa&&!na&&ma?"frame"!=Y?(c.begin(),v.moveSW(c,h,q,l,p,w,za,y,na),v.paintLeft(c,h,q,l,p,w,va,y,la),v.paintNW(c,h,q,l,p,w,va,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),"double"==Y&&(v.moveNEInner(c,h,q,l,p,w,xa,y,M,pa),v.paintTopInner(c,h,q,l,p,w,va,y,M,ma,la),v.paintNWInner(c,h,q,l,p,w,va,y,M),v.paintLeftInner(c,h,q,l,p,w,za,y,M,na,
+ma)),c.stroke()):(c.begin(),v.moveSW(c,h,q,l,p,w,za,y,na),v.paintLeft(c,h,q,l,p,w,va,y,la),v.paintNW(c,h,q,l,p,w,va,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.lineNEInner(c,h,q,l,p,w,xa,y,M,pa),v.paintTopInner(c,h,q,l,p,w,va,y,M,ma,la),v.paintNWInner(c,h,q,l,p,w,va,y,M),v.paintLeftInner(c,h,q,l,p,w,za,y,M,na,ma),c.close(),c.fillAndStroke()):la&&!pa&&na&&!ma?"frame"!=Y?(c.begin(),v.moveNW(c,h,q,l,p,w,va,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),"double"==Y&&(v.moveNEInner(c,h,q,l,p,w,xa,y,M,pa),v.paintTopInner(c,
+h,q,l,p,w,va,y,M,ma,la)),c.stroke(),c.begin(),v.moveSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,za,y,ma),"double"==Y&&(v.moveSWInner(c,h,q,l,p,w,za,y,M,ma),v.paintBottomInner(c,h,q,l,p,w,ya,y,M,pa,na)),c.stroke()):(c.begin(),v.moveNW(c,h,q,l,p,w,va,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.lineNEInner(c,h,q,l,p,w,xa,y,M,pa),v.paintTopInner(c,h,q,l,p,w,va,y,M,ma,la),c.close(),c.fillAndStroke(),c.begin(),v.moveSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,za,y,ma),v.lineSWInner(c,h,q,l,p,w,
+za,y,M,ma),v.paintBottomInner(c,h,q,l,p,w,ya,y,M,pa,na),c.close(),c.fillAndStroke()):la&&!pa&&na&&ma?"frame"!=Y?(c.begin(),v.moveSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,za,y,ma),v.paintSW(c,h,q,l,p,w,za,y,na),v.paintLeft(c,h,q,l,p,w,va,y,la),v.paintNW(c,h,q,l,p,w,va,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),"double"==Y&&(v.moveNEInner(c,h,q,l,p,w,xa,y,M,pa),v.paintTopInner(c,h,q,l,p,w,va,y,M,ma,la),v.paintNWInner(c,h,q,l,p,w,va,y,M),v.paintLeftInner(c,h,q,l,p,w,za,y,M,na,ma),v.paintSWInner(c,
+h,q,l,p,w,za,y,M,na),v.paintBottomInner(c,h,q,l,p,w,ya,y,M,pa,na)),c.stroke()):(c.begin(),v.moveSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,za,y,ma),v.paintSW(c,h,q,l,p,w,za,y,na),v.paintLeft(c,h,q,l,p,w,va,y,la),v.paintNW(c,h,q,l,p,w,va,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.lineNEInner(c,h,q,l,p,w,xa,y,M,pa),v.paintTopInner(c,h,q,l,p,w,va,y,M,ma,la),v.paintNWInner(c,h,q,l,p,w,va,y,M),v.paintLeftInner(c,h,q,l,p,w,za,y,M,na,ma),v.paintSWInner(c,h,q,l,p,w,za,y,M,na),v.paintBottomInner(c,h,q,
+l,p,w,ya,y,M,pa,na),c.close(),c.fillAndStroke()):la&&pa&&!na&&!ma?"frame"!=Y?(c.begin(),v.moveNW(c,h,q,l,p,w,va,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.paintNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),"double"==Y&&(v.moveSEInner(c,h,q,l,p,w,ya,y,M,na),v.paintRightInner(c,h,q,l,p,w,xa,y,M,la,pa),v.paintNEInner(c,h,q,l,p,w,xa,y,M),v.paintTopInner(c,h,q,l,p,w,va,y,M,ma,la)),c.stroke()):(c.begin(),v.moveNW(c,h,q,l,p,w,va,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.paintNE(c,h,q,l,p,w,xa,y,la),
+v.paintRight(c,h,q,l,p,w,ya,y,na),v.lineSEInner(c,h,q,l,p,w,ya,y,M,na),v.paintRightInner(c,h,q,l,p,w,xa,y,M,la,pa),v.paintNEInner(c,h,q,l,p,w,xa,y,M),v.paintTopInner(c,h,q,l,p,w,va,y,M,ma,la),c.close(),c.fillAndStroke()):la&&pa&&!na&&ma?"frame"!=Y?(c.begin(),v.moveSW(c,h,q,l,p,w,za,y,na),v.paintLeft(c,h,q,l,p,w,va,y,la),v.paintNW(c,h,q,l,p,w,va,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.paintNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),"double"==Y&&(v.moveSEInner(c,h,q,l,p,w,ya,y,M,na),
+v.paintRightInner(c,h,q,l,p,w,xa,y,M,la,pa),v.paintNEInner(c,h,q,l,p,w,xa,y,M),v.paintTopInner(c,h,q,l,p,w,va,y,M,ma,la),v.paintNWInner(c,h,q,l,p,w,va,y,M),v.paintLeftInner(c,h,q,l,p,w,za,y,M,na,ma)),c.stroke()):(c.begin(),v.moveSW(c,h,q,l,p,w,za,y,na),v.paintLeft(c,h,q,l,p,w,va,y,la),v.paintNW(c,h,q,l,p,w,va,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.paintNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),v.lineSEInner(c,h,q,l,p,w,ya,y,M,na),v.paintRightInner(c,h,q,l,p,w,xa,y,M,la,pa),v.paintNEInner(c,
+h,q,l,p,w,xa,y,M),v.paintTopInner(c,h,q,l,p,w,va,y,M,ma,la),v.paintNWInner(c,h,q,l,p,w,va,y,M),v.paintLeftInner(c,h,q,l,p,w,za,y,M,na,ma),c.close(),c.fillAndStroke()):la&&pa&&na&&!ma?"frame"!=Y?(c.begin(),v.moveNW(c,h,q,l,p,w,va,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.paintNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),v.paintSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,za,y,ma),"double"==Y&&(v.moveSWInner(c,h,q,l,p,w,za,y,M,ma),v.paintBottomInner(c,h,q,l,p,w,ya,y,M,pa,na),v.paintSEInner(c,
+h,q,l,p,w,ya,y,M),v.paintRightInner(c,h,q,l,p,w,xa,y,M,la,pa),v.paintNEInner(c,h,q,l,p,w,xa,y,M),v.paintTopInner(c,h,q,l,p,w,va,y,M,ma,la)),c.stroke()):(c.begin(),v.moveNW(c,h,q,l,p,w,va,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.paintNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),v.paintSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,za,y,ma),v.lineSWInner(c,h,q,l,p,w,za,y,M,ma),v.paintBottomInner(c,h,q,l,p,w,ya,y,M,pa,na),v.paintSEInner(c,h,q,l,p,w,ya,y,M),v.paintRightInner(c,h,q,l,p,
+w,xa,y,M,la,pa),v.paintNEInner(c,h,q,l,p,w,xa,y,M),v.paintTopInner(c,h,q,l,p,w,va,y,M,ma,la),c.close(),c.fillAndStroke()):la&&pa&&na&&ma&&("frame"!=Y?(c.begin(),v.moveNW(c,h,q,l,p,w,va,y,ma),v.paintNW(c,h,q,l,p,w,va,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.paintNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),v.paintSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,za,y,ma),v.paintSW(c,h,q,l,p,w,za,y,na),v.paintLeft(c,h,q,l,p,w,va,y,la),c.close(),"double"==Y&&(v.moveSWInner(c,h,q,l,p,w,za,
+y,M,ma),v.paintSWInner(c,h,q,l,p,w,za,y,M,na),v.paintBottomInner(c,h,q,l,p,w,ya,y,M,pa,na),v.paintSEInner(c,h,q,l,p,w,ya,y,M),v.paintRightInner(c,h,q,l,p,w,xa,y,M,la,pa),v.paintNEInner(c,h,q,l,p,w,xa,y,M),v.paintTopInner(c,h,q,l,p,w,va,y,M,ma,la),v.paintNWInner(c,h,q,l,p,w,va,y,M),v.paintLeftInner(c,h,q,l,p,w,za,y,M,na,ma),c.close()),c.stroke()):(c.begin(),v.moveNW(c,h,q,l,p,w,va,y,ma),v.paintNW(c,h,q,l,p,w,va,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.paintNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,
+l,p,w,ya,y,na),v.paintSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,za,y,ma),v.paintSW(c,h,q,l,p,w,za,y,na),v.paintLeft(c,h,q,l,p,w,va,y,la),c.close(),v.moveSWInner(c,h,q,l,p,w,za,y,M,ma),v.paintSWInner(c,h,q,l,p,w,za,y,M,na),v.paintBottomInner(c,h,q,l,p,w,ya,y,M,pa,na),v.paintSEInner(c,h,q,l,p,w,ya,y,M),v.paintRightInner(c,h,q,l,p,w,xa,y,M,la,pa),v.paintNEInner(c,h,q,l,p,w,xa,y,M),v.paintTopInner(c,h,q,l,p,w,va,y,M,ma,la),v.paintNWInner(c,h,q,l,p,w,va,y,M),v.paintLeftInner(c,h,q,l,p,w,za,y,M,
+na,ma),c.close(),c.fillAndStroke())):"frame"!=Y?(c.begin(),v.moveNW(c,h,q,l,p,w,va,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),"double"==Y&&(v.moveNEInner(c,h,q,l,p,w,xa,y,M,pa),v.paintTopInner(c,h,q,l,p,w,va,y,M,ma,la)),c.stroke()):(c.begin(),v.moveNW(c,h,q,l,p,w,va,y,ma),v.paintTop(c,h,q,l,p,w,xa,y,pa),v.lineNEInner(c,h,q,l,p,w,xa,y,M,pa),v.paintTopInner(c,h,q,l,p,w,va,y,M,ma,la),c.close(),c.fillAndStroke()):"frame"!=Y?(c.begin(),v.moveNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),"double"==
+Y&&(v.moveSEInner(c,h,q,l,p,w,ya,y,M,na),v.paintRightInner(c,h,q,l,p,w,xa,y,M,la,pa)),c.stroke()):(c.begin(),v.moveNE(c,h,q,l,p,w,xa,y,la),v.paintRight(c,h,q,l,p,w,ya,y,na),v.lineSEInner(c,h,q,l,p,w,ya,y,M,na),v.paintRightInner(c,h,q,l,p,w,xa,y,M,la,pa),c.close(),c.fillAndStroke()):"frame"!=Y?(c.begin(),v.moveSE(c,h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,za,y,ma),"double"==Y&&(v.moveSWInner(c,h,q,l,p,w,za,y,M,ma),v.paintBottomInner(c,h,q,l,p,w,ya,y,M,pa,na)),c.stroke()):(c.begin(),v.moveSE(c,
+h,q,l,p,w,ya,y,pa),v.paintBottom(c,h,q,l,p,w,za,y,ma),v.lineSWInner(c,h,q,l,p,w,za,y,M,ma),v.paintBottomInner(c,h,q,l,p,w,ya,y,M,pa,na),c.close(),c.fillAndStroke()):"frame"!=Y?(c.begin(),v.moveSW(c,h,q,l,p,w,va,y,na),v.paintLeft(c,h,q,l,p,w,va,y,la),"double"==Y&&(v.moveNWInner(c,h,q,l,p,w,va,y,M,la,ma),v.paintLeftInner(c,h,q,l,p,w,za,y,M,na,ma)),c.stroke()):(c.begin(),v.moveSW(c,h,q,l,p,w,va,y,na),v.paintLeft(c,h,q,l,p,w,va,y,la),v.lineNWInner(c,h,q,l,p,w,va,y,M,la,ma),v.paintLeftInner(c,h,q,l,p,
+w,za,y,M,na,ma),c.close(),c.fillAndStroke());c.begin();v.paintFolds(c,h,q,l,p,w,va,xa,ya,za,y,la,pa,na,ma);c.stroke()};Ga.prototype.moveNW=function(c,h,q,l,p,v,w,I,y){"square"==w||"default"==w&&"square"==v||!y?c.moveTo(0,0):c.moveTo(0,I)};Ga.prototype.moveNE=function(c,h,q,l,p,v,w,I,y){"square"==w||"default"==w&&"square"==v||!y?c.moveTo(l,0):c.moveTo(l-I,0)};Ga.prototype.moveSE=function(c,h,q,l,p,v,w,I,y){"square"==w||"default"==w&&"square"==v||!y?c.moveTo(l,p):c.moveTo(l,p-I)};Ga.prototype.moveSW=
+function(c,h,q,l,p,v,w,I,y){"square"==w||"default"==w&&"square"==v||!y?c.moveTo(0,p):c.moveTo(I,p)};Ga.prototype.paintNW=function(c,h,q,l,p,v,w,I,y){if(y)if("rounded"==w||"default"==w&&"rounded"==v||"invRound"==w||"default"==w&&"invRound"==v){h=0;if("rounded"==w||"default"==w&&"rounded"==v)h=1;c.arcTo(I,I,0,0,h,I,0)}else("snip"==w||"default"==w&&"snip"==v||"fold"==w||"default"==w&&"fold"==v)&&c.lineTo(I,0);else c.lineTo(0,0)};Ga.prototype.paintTop=function(c,h,q,l,p,v,w,I,y){"square"==w||"default"==
+w&&"square"==v||!y?c.lineTo(l,0):c.lineTo(l-I,0)};Ga.prototype.paintNE=function(c,h,q,l,p,v,w,I,y){if(y)if("rounded"==w||"default"==w&&"rounded"==v||"invRound"==w||"default"==w&&"invRound"==v){h=0;if("rounded"==w||"default"==w&&"rounded"==v)h=1;c.arcTo(I,I,0,0,h,l,I)}else("snip"==w||"default"==w&&"snip"==v||"fold"==w||"default"==w&&"fold"==v)&&c.lineTo(l,I);else c.lineTo(l,0)};Ga.prototype.paintRight=function(c,h,q,l,p,v,w,I,y){"square"==w||"default"==w&&"square"==v||!y?c.lineTo(l,p):c.lineTo(l,p-
+I)};Ga.prototype.paintLeft=function(c,h,q,l,p,v,w,I,y){"square"==w||"default"==w&&"square"==v||!y?c.lineTo(0,0):c.lineTo(0,I)};Ga.prototype.paintSE=function(c,h,q,l,p,v,w,I,y){if(y)if("rounded"==w||"default"==w&&"rounded"==v||"invRound"==w||"default"==w&&"invRound"==v){h=0;if("rounded"==w||"default"==w&&"rounded"==v)h=1;c.arcTo(I,I,0,0,h,l-I,p)}else("snip"==w||"default"==w&&"snip"==v||"fold"==w||"default"==w&&"fold"==v)&&c.lineTo(l-I,p);else c.lineTo(l,p)};Ga.prototype.paintBottom=function(c,h,q,
+l,p,v,w,I,y){"square"==w||"default"==w&&"square"==v||!y?c.lineTo(0,p):c.lineTo(I,p)};Ga.prototype.paintSW=function(c,h,q,l,p,v,w,I,y){if(y)if("rounded"==w||"default"==w&&"rounded"==v||"invRound"==w||"default"==w&&"invRound"==v){h=0;if("rounded"==w||"default"==w&&"rounded"==v)h=1;c.arcTo(I,I,0,0,h,0,p-I)}else("snip"==w||"default"==w&&"snip"==v||"fold"==w||"default"==w&&"fold"==v)&&c.lineTo(0,p-I);else c.lineTo(0,p)};Ga.prototype.paintNWInner=function(c,h,q,l,p,v,w,I,y){if("rounded"==w||"default"==
+w&&"rounded"==v)c.arcTo(I-.5*y,I-.5*y,0,0,0,y,.5*y+I);else if("invRound"==w||"default"==w&&"invRound"==v)c.arcTo(I+y,I+y,0,0,1,y,y+I);else if("snip"==w||"default"==w&&"snip"==v)c.lineTo(y,.5*y+I);else if("fold"==w||"default"==w&&"fold"==v)c.lineTo(y+I,y+I),c.lineTo(y,y+I)};Ga.prototype.paintTopInner=function(c,h,q,l,p,v,w,I,y,Y,M){Y||M?!Y&&M?c.lineTo(0,y):Y&&!M?c.lineTo(y,0):Y?"square"==w||"default"==w&&"square"==v?c.lineTo(y,y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==
+v?c.lineTo(I+.5*y,y):c.lineTo(I+y,y):c.lineTo(0,y):c.lineTo(0,0)};Ga.prototype.paintNEInner=function(c,h,q,l,p,v,w,I,y){if("rounded"==w||"default"==w&&"rounded"==v)c.arcTo(I-.5*y,I-.5*y,0,0,0,l-I-.5*y,y);else if("invRound"==w||"default"==w&&"invRound"==v)c.arcTo(I+y,I+y,0,0,1,l-I-y,y);else if("snip"==w||"default"==w&&"snip"==v)c.lineTo(l-I-.5*y,y);else if("fold"==w||"default"==w&&"fold"==v)c.lineTo(l-I-y,I+y),c.lineTo(l-I-y,y)};Ga.prototype.paintRightInner=function(c,h,q,l,p,v,w,I,y,Y,M){Y||M?!Y&&
+M?c.lineTo(l-y,0):Y&&!M?c.lineTo(l,y):Y?"square"==w||"default"==w&&"square"==v?c.lineTo(l-y,y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.lineTo(l-y,I+.5*y):c.lineTo(l-y,I+y):c.lineTo(l-y,0):c.lineTo(l,0)};Ga.prototype.paintLeftInner=function(c,h,q,l,p,v,w,I,y,Y,M){Y||M?!Y&&M?c.lineTo(y,p):Y&&!M?c.lineTo(0,p-y):Y?"square"==w||"default"==w&&"square"==v?c.lineTo(y,p-y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.lineTo(y,p-I-.5*
+y):c.lineTo(y,p-I-y):c.lineTo(y,p):c.lineTo(0,p)};Ga.prototype.paintSEInner=function(c,h,q,l,p,v,w,I,y){if("rounded"==w||"default"==w&&"rounded"==v)c.arcTo(I-.5*y,I-.5*y,0,0,0,l-y,p-I-.5*y);else if("invRound"==w||"default"==w&&"invRound"==v)c.arcTo(I+y,I+y,0,0,1,l-y,p-I-y);else if("snip"==w||"default"==w&&"snip"==v)c.lineTo(l-y,p-I-.5*y);else if("fold"==w||"default"==w&&"fold"==v)c.lineTo(l-I-y,p-I-y),c.lineTo(l-y,p-I-y)};Ga.prototype.paintBottomInner=function(c,h,q,l,p,v,w,I,y,Y,M){Y||M?!Y&&M?c.lineTo(l,
+p-y):Y&&!M?c.lineTo(l-y,p):"square"==w||"default"==w&&"square"==v||!Y?c.lineTo(l-y,p-y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.lineTo(l-I-.5*y,p-y):c.lineTo(l-I-y,p-y):c.lineTo(l,p)};Ga.prototype.paintSWInner=function(c,h,q,l,p,v,w,I,y,Y){if(!Y)c.lineTo(y,p);else if("square"==w||"default"==w&&"square"==v)c.lineTo(y,p-y);else if("rounded"==w||"default"==w&&"rounded"==v)c.arcTo(I-.5*y,I-.5*y,0,0,0,I+.5*y,p-y);else if("invRound"==w||"default"==w&&"invRound"==v)c.arcTo(I+
+y,I+y,0,0,1,I+y,p-y);else if("snip"==w||"default"==w&&"snip"==v)c.lineTo(I+.5*y,p-y);else if("fold"==w||"default"==w&&"fold"==v)c.lineTo(y+I,p-I-y),c.lineTo(y+I,p-y)};Ga.prototype.moveSWInner=function(c,h,q,l,p,v,w,I,y,Y){Y?"square"==w||"default"==w&&"square"==v?c.moveTo(y,p-y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.moveTo(y,p-I-.5*y):("invRound"==w||"default"==w&&"invRound"==v||"fold"==w||"default"==w&&"fold"==v)&&c.moveTo(y,p-I-y):c.moveTo(0,p-y)};Ga.prototype.lineSWInner=
+function(c,h,q,l,p,v,w,I,y,Y){Y?"square"==w||"default"==w&&"square"==v?c.lineTo(y,p-y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.lineTo(y,p-I-.5*y):("invRound"==w||"default"==w&&"invRound"==v||"fold"==w||"default"==w&&"fold"==v)&&c.lineTo(y,p-I-y):c.lineTo(0,p-y)};Ga.prototype.moveSEInner=function(c,h,q,l,p,v,w,I,y,Y){Y?"square"==w||"default"==w&&"square"==v?c.moveTo(l-y,p-y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.moveTo(l-
+y,p-I-.5*y):("invRound"==w||"default"==w&&"invRound"==v||"fold"==w||"default"==w&&"fold"==v)&&c.moveTo(l-y,p-I-y):c.moveTo(l-y,p)};Ga.prototype.lineSEInner=function(c,h,q,l,p,v,w,I,y,Y){Y?"square"==w||"default"==w&&"square"==v?c.lineTo(l-y,p-y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.lineTo(l-y,p-I-.5*y):("invRound"==w||"default"==w&&"invRound"==v||"fold"==w||"default"==w&&"fold"==v)&&c.lineTo(l-y,p-I-y):c.lineTo(l-y,p)};Ga.prototype.moveNEInner=function(c,h,
+q,l,p,v,w,I,y,Y){Y?"square"==w||"default"==w&&"square"==v||Y?c.moveTo(l-y,y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.moveTo(l-y,I+.5*y):("invRound"==w||"default"==w&&"invRound"==v||"fold"==w||"default"==w&&"fold"==v)&&c.moveTo(l-y,I+y):c.moveTo(l,y)};Ga.prototype.lineNEInner=function(c,h,q,l,p,v,w,I,y,Y){Y?"square"==w||"default"==w&&"square"==v||Y?c.lineTo(l-y,y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.lineTo(l-y,I+.5*y):
+("invRound"==w||"default"==w&&"invRound"==v||"fold"==w||"default"==w&&"fold"==v)&&c.lineTo(l-y,I+y):c.lineTo(l,y)};Ga.prototype.moveNWInner=function(c,h,q,l,p,v,w,I,y,Y,M){Y||M?!Y&&M?c.moveTo(y,0):Y&&!M?c.moveTo(0,y):"square"==w||"default"==w&&"square"==v?c.moveTo(y,y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.moveTo(y,I+.5*y):("invRound"==w||"default"==w&&"invRound"==v||"fold"==w||"default"==w&&"fold"==v)&&c.moveTo(y,I+y):c.moveTo(0,0)};Ga.prototype.lineNWInner=
+function(c,h,q,l,p,v,w,I,y,Y,M){Y||M?!Y&&M?c.lineTo(y,0):Y&&!M?c.lineTo(0,y):"square"==w||"default"==w&&"square"==v?c.lineTo(y,y):"rounded"==w||"default"==w&&"rounded"==v||"snip"==w||"default"==w&&"snip"==v?c.lineTo(y,I+.5*y):("invRound"==w||"default"==w&&"invRound"==v||"fold"==w||"default"==w&&"fold"==v)&&c.lineTo(y,I+y):c.lineTo(0,0)};Ga.prototype.paintFolds=function(c,h,q,l,p,v,w,I,y,Y,M,Ba,Qa,Ja,la){if("fold"==v||"fold"==w||"fold"==I||"fold"==y||"fold"==Y)("fold"==w||"default"==w&&"fold"==v)&&
+Ba&&la&&(c.moveTo(0,M),c.lineTo(M,M),c.lineTo(M,0)),("fold"==I||"default"==I&&"fold"==v)&&Ba&&Qa&&(c.moveTo(l-M,0),c.lineTo(l-M,M),c.lineTo(l,M)),("fold"==y||"default"==y&&"fold"==v)&&Ja&&Qa&&(c.moveTo(l-M,p),c.lineTo(l-M,p-M),c.lineTo(l,p-M)),("fold"==Y||"default"==Y&&"fold"==v)&&Ja&&la&&(c.moveTo(0,p-M),c.lineTo(M,p-M),c.lineTo(M,p))};mxCellRenderer.registerShape(Ga.prototype.cst.RECT2,Ga);Ga.prototype.constraints=null;mxUtils.extend(Oa,mxConnector);Oa.prototype.origPaintEdgeShape=Oa.prototype.paintEdgeShape;
Oa.prototype.paintEdgeShape=function(c,h,q){for(var l=[],p=0;p<h.length;p++)l.push(mxUtils.clone(h[p]));p=c.state.dashed;var v=c.state.fixDash;Oa.prototype.origPaintEdgeShape.apply(this,[c,l,q]);3<=c.state.strokeWidth&&(l=mxUtils.getValue(this.style,"fillColor",null),null!=l&&(c.setStrokeColor(l),c.setStrokeWidth(c.state.strokeWidth-2),c.setDashed(p,v),Oa.prototype.origPaintEdgeShape.apply(this,[c,h,q])))};mxCellRenderer.registerShape("filledEdge",Oa);"undefined"!==typeof StyleFormatPanel&&function(){var c=
-StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var h=this.editorUi.getSelectionState(),q=c.apply(this,arguments);"umlFrame"==h.style.shape&&q.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"default"});return q}}();mxMarker.addMarker("dash",function(c,h,q,l,p,v,w,J,y,Y){var N=p*(w+y+1),Ca=v*(w+y+1);return function(){c.begin();c.moveTo(l.x-N/2-Ca/2,l.y-Ca/2+N/2);c.lineTo(l.x+Ca/2-3*N/2,l.y-3*Ca/2-N/2);c.stroke()}});mxMarker.addMarker("box",
-function(c,h,q,l,p,v,w,J,y,Y){var N=p*(w+y+1),Ca=v*(w+y+1),Qa=l.x+N/2,Ka=l.y+Ca/2;l.x-=N;l.y-=Ca;return function(){c.begin();c.moveTo(Qa-N/2-Ca/2,Ka-Ca/2+N/2);c.lineTo(Qa-N/2+Ca/2,Ka-Ca/2-N/2);c.lineTo(Qa+Ca/2-3*N/2,Ka-3*Ca/2-N/2);c.lineTo(Qa-Ca/2-3*N/2,Ka-3*Ca/2+N/2);c.close();Y?c.fillAndStroke():c.stroke()}});mxMarker.addMarker("cross",function(c,h,q,l,p,v,w,J,y,Y){var N=p*(w+y+1),Ca=v*(w+y+1);return function(){c.begin();c.moveTo(l.x-N/2-Ca/2,l.y-Ca/2+N/2);c.lineTo(l.x+Ca/2-3*N/2,l.y-3*Ca/2-N/2);
-c.moveTo(l.x-N/2+Ca/2,l.y-Ca/2-N/2);c.lineTo(l.x-Ca/2-3*N/2,l.y-3*Ca/2+N/2);c.stroke()}});mxMarker.addMarker("circle",Pa);mxMarker.addMarker("circlePlus",function(c,h,q,l,p,v,w,J,y,Y){var N=l.clone(),Ca=Pa.apply(this,arguments),Qa=p*(w+2*y),Ka=v*(w+2*y);return function(){Ca.apply(this,arguments);c.begin();c.moveTo(N.x-p*y,N.y-v*y);c.lineTo(N.x-2*Qa+p*y,N.y-2*Ka+v*y);c.moveTo(N.x-Qa-Ka+v*y,N.y-Ka+Qa-p*y);c.lineTo(N.x+Ka-Qa-v*y,N.y-Ka-Qa+p*y);c.stroke()}});mxMarker.addMarker("halfCircle",function(c,
-h,q,l,p,v,w,J,y,Y){var N=p*(w+y+1),Ca=v*(w+y+1),Qa=l.clone();l.x-=N;l.y-=Ca;return function(){c.begin();c.moveTo(Qa.x-Ca,Qa.y+N);c.quadTo(l.x-Ca,l.y+N,l.x,l.y);c.quadTo(l.x+Ca,l.y-N,Qa.x+Ca,Qa.y-N);c.stroke()}});mxMarker.addMarker("async",function(c,h,q,l,p,v,w,J,y,Y){h=p*y*1.118;q=v*y*1.118;p*=w+y;v*=w+y;var N=l.clone();N.x-=h;N.y-=q;l.x+=-p-h;l.y+=-v-q;return function(){c.begin();c.moveTo(N.x,N.y);J?c.lineTo(N.x-p-v/2,N.y-v+p/2):c.lineTo(N.x+v/2-p,N.y-v-p/2);c.lineTo(N.x-p,N.y-v);c.close();Y?c.fillAndStroke():
-c.stroke()}});mxMarker.addMarker("openAsync",function(c){c=null!=c?c:2;return function(h,q,l,p,v,w,J,y,Y,N){v*=J+Y;w*=J+Y;var Ca=p.clone();return function(){h.begin();h.moveTo(Ca.x,Ca.y);y?h.lineTo(Ca.x-v-w/c,Ca.y-w+v/c):h.lineTo(Ca.x+w/c-v,Ca.y-w-v/c);h.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var mb=function(c,h,q){return Xa(c,["width"],h,function(l,p,v,w,J){J=c.shape.getEdgeWidth()*c.view.scale+q;return new mxPoint(w.x+p*l/4+v*J/2,w.y+v*l/4-p*J/2)},function(l,p,v,w,J,y){l=Math.sqrt(mxUtils.ptSegDistSq(w.x,
-w.y,J.x,J.y,y.x,y.y));c.style.width=Math.round(2*l)/c.view.scale-q})},Xa=function(c,h,q,l,p){return Ra(c,h,function(v){var w=c.absolutePoints,J=w.length-1;v=c.view.translate;var y=c.view.scale,Y=q?w[0]:w[J];w=q?w[1]:w[J-1];J=w.x-Y.x;var N=w.y-Y.y,Ca=Math.sqrt(J*J+N*N);Y=l.call(this,Ca,J/Ca,N/Ca,Y,w);return new mxPoint(Y.x/y-v.x,Y.y/y-v.y)},function(v,w,J){var y=c.absolutePoints,Y=y.length-1;v=c.view.translate;var N=c.view.scale,Ca=q?y[0]:y[Y];y=q?y[1]:y[Y-1];Y=y.x-Ca.x;var Qa=y.y-Ca.y,Ka=Math.sqrt(Y*
-Y+Qa*Qa);w.x=(w.x+v.x)*N;w.y=(w.y+v.y)*N;p.call(this,Ka,Y/Ka,Qa/Ka,Ca,y,w,J)})},ib=function(c){return function(h){return[Ra(h,["arrowWidth","arrowSize"],function(q){var l=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",ca.prototype.arrowWidth))),p=Math.max(0,Math.min(c,mxUtils.getValue(this.state.style,"arrowSize",ca.prototype.arrowSize)));return new mxPoint(q.x+(1-p)*q.width,q.y+(1-l)*q.height/2)},function(q,l){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(q.y+q.height/
+StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var h=this.editorUi.getSelectionState(),q=c.apply(this,arguments);"umlFrame"==h.style.shape&&q.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"default"});return q}}();mxMarker.addMarker("dash",function(c,h,q,l,p,v,w,I,y,Y){var M=p*(w+y+1),Ba=v*(w+y+1);return function(){c.begin();c.moveTo(l.x-M/2-Ba/2,l.y-Ba/2+M/2);c.lineTo(l.x+Ba/2-3*M/2,l.y-3*Ba/2-M/2);c.stroke()}});mxMarker.addMarker("box",
+function(c,h,q,l,p,v,w,I,y,Y){var M=p*(w+y+1),Ba=v*(w+y+1),Qa=l.x+M/2,Ja=l.y+Ba/2;l.x-=M;l.y-=Ba;return function(){c.begin();c.moveTo(Qa-M/2-Ba/2,Ja-Ba/2+M/2);c.lineTo(Qa-M/2+Ba/2,Ja-Ba/2-M/2);c.lineTo(Qa+Ba/2-3*M/2,Ja-3*Ba/2-M/2);c.lineTo(Qa-Ba/2-3*M/2,Ja-3*Ba/2+M/2);c.close();Y?c.fillAndStroke():c.stroke()}});mxMarker.addMarker("cross",function(c,h,q,l,p,v,w,I,y,Y){var M=p*(w+y+1),Ba=v*(w+y+1);return function(){c.begin();c.moveTo(l.x-M/2-Ba/2,l.y-Ba/2+M/2);c.lineTo(l.x+Ba/2-3*M/2,l.y-3*Ba/2-M/2);
+c.moveTo(l.x-M/2+Ba/2,l.y-Ba/2-M/2);c.lineTo(l.x-Ba/2-3*M/2,l.y-3*Ba/2+M/2);c.stroke()}});mxMarker.addMarker("circle",Pa);mxMarker.addMarker("circlePlus",function(c,h,q,l,p,v,w,I,y,Y){var M=l.clone(),Ba=Pa.apply(this,arguments),Qa=p*(w+2*y),Ja=v*(w+2*y);return function(){Ba.apply(this,arguments);c.begin();c.moveTo(M.x-p*y,M.y-v*y);c.lineTo(M.x-2*Qa+p*y,M.y-2*Ja+v*y);c.moveTo(M.x-Qa-Ja+v*y,M.y-Ja+Qa-p*y);c.lineTo(M.x+Ja-Qa-v*y,M.y-Ja-Qa+p*y);c.stroke()}});mxMarker.addMarker("halfCircle",function(c,
+h,q,l,p,v,w,I,y,Y){var M=p*(w+y+1),Ba=v*(w+y+1),Qa=l.clone();l.x-=M;l.y-=Ba;return function(){c.begin();c.moveTo(Qa.x-Ba,Qa.y+M);c.quadTo(l.x-Ba,l.y+M,l.x,l.y);c.quadTo(l.x+Ba,l.y-M,Qa.x+Ba,Qa.y-M);c.stroke()}});mxMarker.addMarker("async",function(c,h,q,l,p,v,w,I,y,Y){h=p*y*1.118;q=v*y*1.118;p*=w+y;v*=w+y;var M=l.clone();M.x-=h;M.y-=q;l.x+=-p-h;l.y+=-v-q;return function(){c.begin();c.moveTo(M.x,M.y);I?c.lineTo(M.x-p-v/2,M.y-v+p/2):c.lineTo(M.x+v/2-p,M.y-v-p/2);c.lineTo(M.x-p,M.y-v);c.close();Y?c.fillAndStroke():
+c.stroke()}});mxMarker.addMarker("openAsync",function(c){c=null!=c?c:2;return function(h,q,l,p,v,w,I,y,Y,M){v*=I+Y;w*=I+Y;var Ba=p.clone();return function(){h.begin();h.moveTo(Ba.x,Ba.y);y?h.lineTo(Ba.x-v-w/c,Ba.y-w+v/c):h.lineTo(Ba.x+w/c-v,Ba.y-w-v/c);h.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var mb=function(c,h,q){return Za(c,["width"],h,function(l,p,v,w,I){I=c.shape.getEdgeWidth()*c.view.scale+q;return new mxPoint(w.x+p*l/4+v*I/2,w.y+v*l/4-p*I/2)},function(l,p,v,w,I,y){l=Math.sqrt(mxUtils.ptSegDistSq(w.x,
+w.y,I.x,I.y,y.x,y.y));c.style.width=Math.round(2*l)/c.view.scale-q})},Za=function(c,h,q,l,p){return Ra(c,h,function(v){var w=c.absolutePoints,I=w.length-1;v=c.view.translate;var y=c.view.scale,Y=q?w[0]:w[I];w=q?w[1]:w[I-1];I=w.x-Y.x;var M=w.y-Y.y,Ba=Math.sqrt(I*I+M*M);Y=l.call(this,Ba,I/Ba,M/Ba,Y,w);return new mxPoint(Y.x/y-v.x,Y.y/y-v.y)},function(v,w,I){var y=c.absolutePoints,Y=y.length-1;v=c.view.translate;var M=c.view.scale,Ba=q?y[0]:y[Y];y=q?y[1]:y[Y-1];Y=y.x-Ba.x;var Qa=y.y-Ba.y,Ja=Math.sqrt(Y*
+Y+Qa*Qa);w.x=(w.x+v.x)*M;w.y=(w.y+v.y)*M;p.call(this,Ja,Y/Ja,Qa/Ja,Ba,y,w,I)})},ib=function(c){return function(h){return[Ra(h,["arrowWidth","arrowSize"],function(q){var l=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",da.prototype.arrowWidth))),p=Math.max(0,Math.min(c,mxUtils.getValue(this.state.style,"arrowSize",da.prototype.arrowSize)));return new mxPoint(q.x+(1-p)*q.width,q.y+(1-l)*q.height/2)},function(q,l){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(q.y+q.height/
2-l.y)/q.height*2));this.state.style.arrowSize=Math.max(0,Math.min(c,(q.x+q.width-l.x)/q.width))})]}},gb=function(c){return function(h){return[Ra(h,["size"],function(q){var l=Math.max(0,Math.min(.5*q.height,parseFloat(mxUtils.getValue(this.state.style,"size",c))));return new mxPoint(q.x,q.y+l)},function(q,l){this.state.style.size=Math.max(0,l.y-q.y)},!0)]}},Wa=function(c,h,q){return function(l){var p=[Ra(l,["size"],function(v){var w=Math.max(0,Math.min(v.width,Math.min(v.height,parseFloat(mxUtils.getValue(this.state.style,
-"size",h)))))*c;return new mxPoint(v.x+w,v.y+w)},function(v,w){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(v.width,w.x-v.x),Math.min(v.height,w.y-v.y)))/c)},!1)];q&&mxUtils.getValue(l.style,mxConstants.STYLE_ROUNDED,!1)&&p.push(fb(l));return p}},qb=function(c,h,q,l,p){q=null!=q?q:.5;return function(v){var w=[Ra(v,["size"],function(J){var y=null!=p?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,Y=parseFloat(mxUtils.getValue(this.state.style,"size",y?p:c));return new mxPoint(J.x+
-Math.max(0,Math.min(.5*J.width,Y*(y?1:J.width))),J.getCenterY())},function(J,y,Y){J=null!=p&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?y.x-J.x:Math.max(0,Math.min(q,(y.x-J.x)/J.width));this.state.style.size=J},!1,l)];h&&mxUtils.getValue(v.style,mxConstants.STYLE_ROUNDED,!1)&&w.push(fb(v));return w}},tb=function(c,h,q){c=null!=c?c:.5;return function(l){var p=[Ra(l,["size"],function(v){var w=null!=q?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,J=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,
-"size",w?q:h)));return new mxPoint(v.x+Math.min(.75*v.width*c,J*(w?.75:.75*v.width)),v.y+v.height/4)},function(v,w){v=null!=q&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?w.x-v.x:Math.max(0,Math.min(c,(w.x-v.x)/v.width*.75));this.state.style.size=v},!1,!0)];mxUtils.getValue(l.style,mxConstants.STYLE_ROUNDED,!1)&&p.push(fb(l));return p}},nb=function(){return function(c){var h=[];mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&h.push(fb(c));return h}},fb=function(c,h){return Ra(c,
+"size",h)))))*c;return new mxPoint(v.x+w,v.y+w)},function(v,w){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(v.width,w.x-v.x),Math.min(v.height,w.y-v.y)))/c)},!1)];q&&mxUtils.getValue(l.style,mxConstants.STYLE_ROUNDED,!1)&&p.push(fb(l));return p}},qb=function(c,h,q,l,p){q=null!=q?q:.5;return function(v){var w=[Ra(v,["size"],function(I){var y=null!=p?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,Y=parseFloat(mxUtils.getValue(this.state.style,"size",y?p:c));return new mxPoint(I.x+
+Math.max(0,Math.min(.5*I.width,Y*(y?1:I.width))),I.getCenterY())},function(I,y,Y){I=null!=p&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?y.x-I.x:Math.max(0,Math.min(q,(y.x-I.x)/I.width));this.state.style.size=I},!1,l)];h&&mxUtils.getValue(v.style,mxConstants.STYLE_ROUNDED,!1)&&w.push(fb(v));return w}},tb=function(c,h,q){c=null!=c?c:.5;return function(l){var p=[Ra(l,["size"],function(v){var w=null!=q?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,I=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,
+"size",w?q:h)));return new mxPoint(v.x+Math.min(.75*v.width*c,I*(w?.75:.75*v.width)),v.y+v.height/4)},function(v,w){v=null!=q&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?w.x-v.x:Math.max(0,Math.min(c,(w.x-v.x)/v.width*.75));this.state.style.size=v},!1,!0)];mxUtils.getValue(l.style,mxConstants.STYLE_ROUNDED,!1)&&p.push(fb(l));return p}},nb=function(){return function(c){var h=[];mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&h.push(fb(c));return h}},fb=function(c,h){return Ra(c,
[mxConstants.STYLE_ARCSIZE],function(q){var l=null!=h?h:q.height/8;if("1"==mxUtils.getValue(c.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var p=mxUtils.getValue(c.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(q.x+q.width-Math.min(q.width/2,p),q.y+l)}p=Math.max(0,parseFloat(mxUtils.getValue(c.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(q.x+q.width-Math.min(Math.max(q.width/2,q.height/2),Math.min(q.width,q.height)*
-p),q.y+l)},function(q,l,p){"1"==mxUtils.getValue(c.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(q.width,2*(q.x+q.width-l.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(q.width-l.x+q.x)/Math.min(q.width,q.height))))})},Ra=function(c,h,q,l,p,v,w){var J=new mxHandle(c,null,mxVertexHandler.prototype.secondaryHandleImage);J.execute=function(Y){for(var N=0;N<h.length;N++)this.copyStyle(h[N]);
-w&&w(Y)};J.getPosition=q;J.setPosition=l;J.ignoreGrid=null!=p?p:!0;if(v){var y=J.positionChanged;J.positionChanged=function(){y.apply(this,arguments);c.view.invalidate(this.state.cell);c.view.validate()}}return J},rb={link:function(c){return[mb(c,!0,10),mb(c,!1,10)]},flexArrow:function(c){var h=c.view.graph.gridSize/c.view.scale,q=[];mxUtils.getValue(c.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(q.push(Xa(c,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
-!0,function(l,p,v,w,J){l=(c.shape.getEdgeWidth()-c.shape.strokewidth)*c.view.scale;J=3*mxUtils.getNumber(c.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*c.view.scale;return new mxPoint(w.x+p*(J+c.shape.strokewidth*c.view.scale)+v*l/2,w.y+v*(J+c.shape.strokewidth*c.view.scale)-p*l/2)},function(l,p,v,w,J,y,Y){l=Math.sqrt(mxUtils.ptSegDistSq(w.x,w.y,J.x,J.y,y.x,y.y));p=mxUtils.ptLineDist(w.x,w.y,w.x+v,w.y-p,y.x,y.y);c.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(p-c.shape.strokewidth)/
-3)/100/c.view.scale;c.style.width=Math.round(2*l)/c.view.scale;if(mxEvent.isShiftDown(Y.getEvent())||mxEvent.isControlDown(Y.getEvent()))c.style[mxConstants.STYLE_ENDSIZE]=c.style[mxConstants.STYLE_STARTSIZE];mxEvent.isAltDown(Y.getEvent())||Math.abs(parseFloat(c.style[mxConstants.STYLE_STARTSIZE])-parseFloat(c.style[mxConstants.STYLE_ENDSIZE]))<h/6&&(c.style[mxConstants.STYLE_STARTSIZE]=c.style[mxConstants.STYLE_ENDSIZE])})),q.push(Xa(c,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
-!0,function(l,p,v,w,J){l=(c.shape.getStartArrowWidth()-c.shape.strokewidth)*c.view.scale;J=3*mxUtils.getNumber(c.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*c.view.scale;return new mxPoint(w.x+p*(J+c.shape.strokewidth*c.view.scale)+v*l/2,w.y+v*(J+c.shape.strokewidth*c.view.scale)-p*l/2)},function(l,p,v,w,J,y,Y){l=Math.sqrt(mxUtils.ptSegDistSq(w.x,w.y,J.x,J.y,y.x,y.y));p=mxUtils.ptLineDist(w.x,w.y,w.x+v,w.y-p,y.x,y.y);c.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(p-c.shape.strokewidth)/
+p),q.y+l)},function(q,l,p){"1"==mxUtils.getValue(c.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(q.width,2*(q.x+q.width-l.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(q.width-l.x+q.x)/Math.min(q.width,q.height))))})},Ra=function(c,h,q,l,p,v,w){var I=new mxHandle(c,null,mxVertexHandler.prototype.secondaryHandleImage);I.execute=function(Y){for(var M=0;M<h.length;M++)this.copyStyle(h[M]);
+w&&w(Y)};I.getPosition=q;I.setPosition=l;I.ignoreGrid=null!=p?p:!0;if(v){var y=I.positionChanged;I.positionChanged=function(){y.apply(this,arguments);c.view.invalidate(this.state.cell);c.view.validate()}}return I},rb={link:function(c){return[mb(c,!0,10),mb(c,!1,10)]},flexArrow:function(c){var h=c.view.graph.gridSize/c.view.scale,q=[];mxUtils.getValue(c.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(q.push(Za(c,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
+!0,function(l,p,v,w,I){l=(c.shape.getEdgeWidth()-c.shape.strokewidth)*c.view.scale;I=3*mxUtils.getNumber(c.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*c.view.scale;return new mxPoint(w.x+p*(I+c.shape.strokewidth*c.view.scale)+v*l/2,w.y+v*(I+c.shape.strokewidth*c.view.scale)-p*l/2)},function(l,p,v,w,I,y,Y){l=Math.sqrt(mxUtils.ptSegDistSq(w.x,w.y,I.x,I.y,y.x,y.y));p=mxUtils.ptLineDist(w.x,w.y,w.x+v,w.y-p,y.x,y.y);c.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(p-c.shape.strokewidth)/
+3)/100/c.view.scale;c.style.width=Math.round(2*l)/c.view.scale;if(mxEvent.isShiftDown(Y.getEvent())||mxEvent.isControlDown(Y.getEvent()))c.style[mxConstants.STYLE_ENDSIZE]=c.style[mxConstants.STYLE_STARTSIZE];mxEvent.isAltDown(Y.getEvent())||Math.abs(parseFloat(c.style[mxConstants.STYLE_STARTSIZE])-parseFloat(c.style[mxConstants.STYLE_ENDSIZE]))<h/6&&(c.style[mxConstants.STYLE_STARTSIZE]=c.style[mxConstants.STYLE_ENDSIZE])})),q.push(Za(c,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
+!0,function(l,p,v,w,I){l=(c.shape.getStartArrowWidth()-c.shape.strokewidth)*c.view.scale;I=3*mxUtils.getNumber(c.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*c.view.scale;return new mxPoint(w.x+p*(I+c.shape.strokewidth*c.view.scale)+v*l/2,w.y+v*(I+c.shape.strokewidth*c.view.scale)-p*l/2)},function(l,p,v,w,I,y,Y){l=Math.sqrt(mxUtils.ptSegDistSq(w.x,w.y,I.x,I.y,y.x,y.y));p=mxUtils.ptLineDist(w.x,w.y,w.x+v,w.y-p,y.x,y.y);c.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(p-c.shape.strokewidth)/
3)/100/c.view.scale;c.style.startWidth=Math.max(0,Math.round(2*l)-c.shape.getEdgeWidth())/c.view.scale;if(mxEvent.isShiftDown(Y.getEvent())||mxEvent.isControlDown(Y.getEvent()))c.style[mxConstants.STYLE_ENDSIZE]=c.style[mxConstants.STYLE_STARTSIZE],c.style.endWidth=c.style.startWidth;mxEvent.isAltDown(Y.getEvent())||(Math.abs(parseFloat(c.style[mxConstants.STYLE_STARTSIZE])-parseFloat(c.style[mxConstants.STYLE_ENDSIZE]))<h/6&&(c.style[mxConstants.STYLE_STARTSIZE]=c.style[mxConstants.STYLE_ENDSIZE]),
-Math.abs(parseFloat(c.style.startWidth)-parseFloat(c.style.endWidth))<h&&(c.style.startWidth=c.style.endWidth))})));mxUtils.getValue(c.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(q.push(Xa(c,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(l,p,v,w,J){l=(c.shape.getEdgeWidth()-c.shape.strokewidth)*c.view.scale;J=3*mxUtils.getNumber(c.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*c.view.scale;return new mxPoint(w.x+p*(J+c.shape.strokewidth*
-c.view.scale)-v*l/2,w.y+v*(J+c.shape.strokewidth*c.view.scale)+p*l/2)},function(l,p,v,w,J,y,Y){l=Math.sqrt(mxUtils.ptSegDistSq(w.x,w.y,J.x,J.y,y.x,y.y));p=mxUtils.ptLineDist(w.x,w.y,w.x+v,w.y-p,y.x,y.y);c.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(p-c.shape.strokewidth)/3)/100/c.view.scale;c.style.width=Math.round(2*l)/c.view.scale;if(mxEvent.isShiftDown(Y.getEvent())||mxEvent.isControlDown(Y.getEvent()))c.style[mxConstants.STYLE_STARTSIZE]=c.style[mxConstants.STYLE_ENDSIZE];mxEvent.isAltDown(Y.getEvent())||
-Math.abs(parseFloat(c.style[mxConstants.STYLE_ENDSIZE])-parseFloat(c.style[mxConstants.STYLE_STARTSIZE]))<h/6&&(c.style[mxConstants.STYLE_ENDSIZE]=c.style[mxConstants.STYLE_STARTSIZE])})),q.push(Xa(c,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(l,p,v,w,J){l=(c.shape.getEndArrowWidth()-c.shape.strokewidth)*c.view.scale;J=3*mxUtils.getNumber(c.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*c.view.scale;return new mxPoint(w.x+p*(J+c.shape.strokewidth*
-c.view.scale)-v*l/2,w.y+v*(J+c.shape.strokewidth*c.view.scale)+p*l/2)},function(l,p,v,w,J,y,Y){l=Math.sqrt(mxUtils.ptSegDistSq(w.x,w.y,J.x,J.y,y.x,y.y));p=mxUtils.ptLineDist(w.x,w.y,w.x+v,w.y-p,y.x,y.y);c.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(p-c.shape.strokewidth)/3)/100/c.view.scale;c.style.endWidth=Math.max(0,Math.round(2*l)-c.shape.getEdgeWidth())/c.view.scale;if(mxEvent.isShiftDown(Y.getEvent())||mxEvent.isControlDown(Y.getEvent()))c.style[mxConstants.STYLE_STARTSIZE]=c.style[mxConstants.STYLE_ENDSIZE],
+Math.abs(parseFloat(c.style.startWidth)-parseFloat(c.style.endWidth))<h&&(c.style.startWidth=c.style.endWidth))})));mxUtils.getValue(c.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(q.push(Za(c,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(l,p,v,w,I){l=(c.shape.getEdgeWidth()-c.shape.strokewidth)*c.view.scale;I=3*mxUtils.getNumber(c.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*c.view.scale;return new mxPoint(w.x+p*(I+c.shape.strokewidth*
+c.view.scale)-v*l/2,w.y+v*(I+c.shape.strokewidth*c.view.scale)+p*l/2)},function(l,p,v,w,I,y,Y){l=Math.sqrt(mxUtils.ptSegDistSq(w.x,w.y,I.x,I.y,y.x,y.y));p=mxUtils.ptLineDist(w.x,w.y,w.x+v,w.y-p,y.x,y.y);c.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(p-c.shape.strokewidth)/3)/100/c.view.scale;c.style.width=Math.round(2*l)/c.view.scale;if(mxEvent.isShiftDown(Y.getEvent())||mxEvent.isControlDown(Y.getEvent()))c.style[mxConstants.STYLE_STARTSIZE]=c.style[mxConstants.STYLE_ENDSIZE];mxEvent.isAltDown(Y.getEvent())||
+Math.abs(parseFloat(c.style[mxConstants.STYLE_ENDSIZE])-parseFloat(c.style[mxConstants.STYLE_STARTSIZE]))<h/6&&(c.style[mxConstants.STYLE_ENDSIZE]=c.style[mxConstants.STYLE_STARTSIZE])})),q.push(Za(c,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(l,p,v,w,I){l=(c.shape.getEndArrowWidth()-c.shape.strokewidth)*c.view.scale;I=3*mxUtils.getNumber(c.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*c.view.scale;return new mxPoint(w.x+p*(I+c.shape.strokewidth*
+c.view.scale)-v*l/2,w.y+v*(I+c.shape.strokewidth*c.view.scale)+p*l/2)},function(l,p,v,w,I,y,Y){l=Math.sqrt(mxUtils.ptSegDistSq(w.x,w.y,I.x,I.y,y.x,y.y));p=mxUtils.ptLineDist(w.x,w.y,w.x+v,w.y-p,y.x,y.y);c.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(p-c.shape.strokewidth)/3)/100/c.view.scale;c.style.endWidth=Math.max(0,Math.round(2*l)-c.shape.getEdgeWidth())/c.view.scale;if(mxEvent.isShiftDown(Y.getEvent())||mxEvent.isControlDown(Y.getEvent()))c.style[mxConstants.STYLE_STARTSIZE]=c.style[mxConstants.STYLE_ENDSIZE],
c.style.startWidth=c.style.endWidth;mxEvent.isAltDown(Y.getEvent())||(Math.abs(parseFloat(c.style[mxConstants.STYLE_ENDSIZE])-parseFloat(c.style[mxConstants.STYLE_STARTSIZE]))<h/6&&(c.style[mxConstants.STYLE_ENDSIZE]=c.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(c.style.endWidth)-parseFloat(c.style.startWidth))<h&&(c.style.endWidth=c.style.startWidth))})));return q},swimlane:function(c){var h=[];if(mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED)){var q=parseFloat(mxUtils.getValue(c.style,
mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));h.push(fb(c,q/2))}h.push(Ra(c,[mxConstants.STYLE_STARTSIZE],function(l){var p=parseFloat(mxUtils.getValue(c.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(c.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(l.getCenterX(),l.y+Math.max(0,Math.min(l.height,p))):new mxPoint(l.x+Math.max(0,Math.min(l.width,p)),l.getCenterY())},function(l,p){c.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,
-mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(l.height,p.y-l.y))):Math.round(Math.max(0,Math.min(l.width,p.x-l.x)))},!1,null,function(l){var p=c.view.graph;if(!mxEvent.isShiftDown(l.getEvent())&&!mxEvent.isControlDown(l.getEvent())&&(p.isTableRow(c.cell)||p.isTableCell(c.cell))){l=p.getSwimlaneDirection(c.style);var v=p.model.getParent(c.cell);v=p.model.getChildCells(v,!0);for(var w=[],J=0;J<v.length;J++)v[J]!=c.cell&&p.isSwimlane(v[J])&&p.getSwimlaneDirection(p.getCurrentCellStyle(v[J]))==
-l&&w.push(v[J]);p.setCellStyles(mxConstants.STYLE_STARTSIZE,c.style[mxConstants.STYLE_STARTSIZE],w)}}));return h},label:nb(),ext:nb(),rectangle:nb(),triangle:nb(),rhombus:nb(),umlLifeline:function(c){return[Ra(c,["size"],function(h){var q=Math.max(0,Math.min(h.height,parseFloat(mxUtils.getValue(this.state.style,"size",aa.prototype.size))));return new mxPoint(h.getCenterX(),h.y+q)},function(h,q){this.state.style.size=Math.round(Math.max(0,Math.min(h.height,q.y-h.y)))},!1)]},umlFrame:function(c){return[Ra(c,
+mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(l.height,p.y-l.y))):Math.round(Math.max(0,Math.min(l.width,p.x-l.x)))},!1,null,function(l){var p=c.view.graph;if(!mxEvent.isShiftDown(l.getEvent())&&!mxEvent.isControlDown(l.getEvent())&&(p.isTableRow(c.cell)||p.isTableCell(c.cell))){l=p.getSwimlaneDirection(c.style);var v=p.model.getParent(c.cell);v=p.model.getChildCells(v,!0);for(var w=[],I=0;I<v.length;I++)v[I]!=c.cell&&p.isSwimlane(v[I])&&p.getSwimlaneDirection(p.getCurrentCellStyle(v[I]))==
+l&&w.push(v[I]);p.setCellStyles(mxConstants.STYLE_STARTSIZE,c.style[mxConstants.STYLE_STARTSIZE],w)}}));return h},label:nb(),ext:nb(),rectangle:nb(),triangle:nb(),rhombus:nb(),umlLifeline:function(c){return[Ra(c,["size"],function(h){var q=Math.max(0,Math.min(h.height,parseFloat(mxUtils.getValue(this.state.style,"size",aa.prototype.size))));return new mxPoint(h.getCenterX(),h.y+q)},function(h,q){this.state.style.size=Math.round(Math.max(0,Math.min(h.height,q.y-h.y)))},!1)]},umlFrame:function(c){return[Ra(c,
["width","height"],function(h){var q=Math.max(oa.prototype.corner,Math.min(h.width,mxUtils.getValue(this.state.style,"width",oa.prototype.width))),l=Math.max(1.5*oa.prototype.corner,Math.min(h.height,mxUtils.getValue(this.state.style,"height",oa.prototype.height)));return new mxPoint(h.x+q,h.y+l)},function(h,q){this.state.style.width=Math.round(Math.max(oa.prototype.corner,Math.min(h.width,q.x-h.x)));this.state.style.height=Math.round(Math.max(1.5*oa.prototype.corner,Math.min(h.height,q.y-h.y)))},
-!1)]},process:function(c){var h=[Ra(c,["size"],function(q){var l="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),p=parseFloat(mxUtils.getValue(this.state.style,"size",fa.prototype.size));return l?new mxPoint(q.x+p,q.y+q.height/4):new mxPoint(q.x+q.width*p,q.y+q.height/4)},function(q,l){q="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(.5*q.width,l.x-q.x)):Math.max(0,Math.min(.5,(l.x-q.x)/q.width));this.state.style.size=q},!1)];mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,
+!1)]},process:function(c){var h=[Ra(c,["size"],function(q){var l="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),p=parseFloat(mxUtils.getValue(this.state.style,"size",ia.prototype.size));return l?new mxPoint(q.x+p,q.y+q.height/4):new mxPoint(q.x+q.width*p,q.y+q.height/4)},function(q,l){q="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(.5*q.width,l.x-q.x)):Math.max(0,Math.min(.5,(l.x-q.x)/q.width));this.state.style.size=q},!1)];mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,
!1)&&h.push(fb(c));return h},cross:function(c){return[Ra(c,["size"],function(h){var q=Math.min(h.width,h.height);q=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",Ia.prototype.size)))*q/2;return new mxPoint(h.getCenterX()-q,h.getCenterY()-q)},function(h,q){var l=Math.min(h.width,h.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,h.getCenterY()-q.y)/l*2,Math.max(0,h.getCenterX()-q.x)/l*2)))})]},note:function(c){return[Ra(c,["size"],function(h){var q=Math.max(0,
Math.min(h.width,Math.min(h.height,parseFloat(mxUtils.getValue(this.state.style,"size",u.prototype.size)))));return new mxPoint(h.x+h.width-q,h.y+q)},function(h,q){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(h.width,h.x+h.width-q.x),Math.min(h.height,q.y-h.y))))})]},note2:function(c){return[Ra(c,["size"],function(h){var q=Math.max(0,Math.min(h.width,Math.min(h.height,parseFloat(mxUtils.getValue(this.state.style,"size",m.prototype.size)))));return new mxPoint(h.x+h.width-q,h.y+q)},
-function(h,q){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(h.width,h.x+h.width-q.x),Math.min(h.height,q.y-h.y))))})]},manualInput:function(c){var h=[Ra(c,["size"],function(q){var l=Math.max(0,Math.min(q.height,mxUtils.getValue(this.state.style,"size",Ya.prototype.size)));return new mxPoint(q.x+q.width/4,q.y+3*l/4)},function(q,l){this.state.style.size=Math.round(Math.max(0,Math.min(q.height,4*(l.y-q.y)/3)))},!1)];mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&h.push(fb(c));
+function(h,q){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(h.width,h.x+h.width-q.x),Math.min(h.height,q.y-h.y))))})]},manualInput:function(c){var h=[Ra(c,["size"],function(q){var l=Math.max(0,Math.min(q.height,mxUtils.getValue(this.state.style,"size",Xa.prototype.size)));return new mxPoint(q.x+q.width/4,q.y+3*l/4)},function(q,l){this.state.style.size=Math.round(Math.max(0,Math.min(q.height,4*(l.y-q.y)/3)))},!1)];mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&h.push(fb(c));
return h},dataStorage:function(c){return[Ra(c,["size"],function(h){var q="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),l=parseFloat(mxUtils.getValue(this.state.style,"size",q?z.prototype.fixedSize:z.prototype.size));return new mxPoint(h.x+h.width-l*(q?1:h.width),h.getCenterY())},function(h,q){h="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(h.width,h.x+h.width-q.x)):Math.max(0,Math.min(1,(h.x+h.width-q.x)/h.width));this.state.style.size=h},!1)]},callout:function(c){var h=
[Ra(c,["size","position"],function(q){var l=Math.max(0,Math.min(q.height,mxUtils.getValue(this.state.style,"size",ba.prototype.size))),p=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",ba.prototype.position)));mxUtils.getValue(this.state.style,"base",ba.prototype.base);return new mxPoint(q.x+p*q.width,q.y+q.height-l)},function(q,l){mxUtils.getValue(this.state.style,"base",ba.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(q.height,q.y+q.height-l.y)));this.state.style.position=
Math.round(100*Math.max(0,Math.min(1,(l.x-q.x)/q.width)))/100},!1),Ra(c,["position2"],function(q){var l=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",ba.prototype.position2)));return new mxPoint(q.x+l*q.width,q.y+q.height)},function(q,l){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(l.x-q.x)/q.width)))/100},!1),Ra(c,["base"],function(q){var l=Math.max(0,Math.min(q.height,mxUtils.getValue(this.state.style,"size",ba.prototype.size))),p=Math.max(0,Math.min(1,
mxUtils.getValue(this.state.style,"position",ba.prototype.position))),v=Math.max(0,Math.min(q.width,mxUtils.getValue(this.state.style,"base",ba.prototype.base)));return new mxPoint(q.x+Math.min(q.width,p*q.width+v),q.y+q.height-l)},function(q,l){var p=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",ba.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(q.width,l.x-q.x-p*q.width)))},!1)];mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&h.push(fb(c));
-return h},internalStorage:function(c){var h=[Ra(c,["dx","dy"],function(q){var l=Math.max(0,Math.min(q.width,mxUtils.getValue(this.state.style,"dx",bb.prototype.dx))),p=Math.max(0,Math.min(q.height,mxUtils.getValue(this.state.style,"dy",bb.prototype.dy)));return new mxPoint(q.x+l,q.y+p)},function(q,l){this.state.style.dx=Math.round(Math.max(0,Math.min(q.width,l.x-q.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(q.height,l.y-q.y)))},!1)];mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&
-h.push(fb(c));return h},module:function(c){return[Ra(c,["jettyWidth","jettyHeight"],function(h){var q=Math.max(0,Math.min(h.width,mxUtils.getValue(this.state.style,"jettyWidth",za.prototype.jettyWidth))),l=Math.max(0,Math.min(h.height,mxUtils.getValue(this.state.style,"jettyHeight",za.prototype.jettyHeight)));return new mxPoint(h.x+q/2,h.y+2*l)},function(h,q){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(h.width,q.x-h.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(h.height,
-q.y-h.y))/2)})]},corner:function(c){return[Ra(c,["dx","dy"],function(h){var q=Math.max(0,Math.min(h.width,mxUtils.getValue(this.state.style,"dx",cb.prototype.dx))),l=Math.max(0,Math.min(h.height,mxUtils.getValue(this.state.style,"dy",cb.prototype.dy)));return new mxPoint(h.x+q,h.y+l)},function(h,q){this.state.style.dx=Math.round(Math.max(0,Math.min(h.width,q.x-h.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(h.height,q.y-h.y)))},!1)]},tee:function(c){return[Ra(c,["dx","dy"],function(h){var q=
-Math.max(0,Math.min(h.width,mxUtils.getValue(this.state.style,"dx",$a.prototype.dx))),l=Math.max(0,Math.min(h.height,mxUtils.getValue(this.state.style,"dy",$a.prototype.dy)));return new mxPoint(h.x+(h.width+q)/2,h.y+l)},function(h,q){this.state.style.dx=Math.round(Math.max(0,2*Math.min(h.width/2,q.x-h.x-h.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(h.height,q.y-h.y)))},!1)]},singleArrow:ib(1),doubleArrow:ib(.5),folder:function(c){return[Ra(c,["tabWidth","tabHeight"],function(h){var q=
-Math.max(0,Math.min(h.width,mxUtils.getValue(this.state.style,"tabWidth",F.prototype.tabWidth))),l=Math.max(0,Math.min(h.height,mxUtils.getValue(this.state.style,"tabHeight",F.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",F.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(q=h.width-q);return new mxPoint(h.x+q,h.y+l)},function(h,q){var l=Math.max(0,Math.min(h.width,q.x-h.x));mxUtils.getValue(this.state.style,"tabPosition",F.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&
+return h},internalStorage:function(c){var h=[Ra(c,["dx","dy"],function(q){var l=Math.max(0,Math.min(q.width,mxUtils.getValue(this.state.style,"dx",Va.prototype.dx))),p=Math.max(0,Math.min(q.height,mxUtils.getValue(this.state.style,"dy",Va.prototype.dy)));return new mxPoint(q.x+l,q.y+p)},function(q,l){this.state.style.dx=Math.round(Math.max(0,Math.min(q.width,l.x-q.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(q.height,l.y-q.y)))},!1)];mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&
+h.push(fb(c));return h},module:function(c){return[Ra(c,["jettyWidth","jettyHeight"],function(h){var q=Math.max(0,Math.min(h.width,mxUtils.getValue(this.state.style,"jettyWidth",Ca.prototype.jettyWidth))),l=Math.max(0,Math.min(h.height,mxUtils.getValue(this.state.style,"jettyHeight",Ca.prototype.jettyHeight)));return new mxPoint(h.x+q/2,h.y+2*l)},function(h,q){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(h.width,q.x-h.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(h.height,
+q.y-h.y))/2)})]},corner:function(c){return[Ra(c,["dx","dy"],function(h){var q=Math.max(0,Math.min(h.width,mxUtils.getValue(this.state.style,"dx",Ya.prototype.dx))),l=Math.max(0,Math.min(h.height,mxUtils.getValue(this.state.style,"dy",Ya.prototype.dy)));return new mxPoint(h.x+q,h.y+l)},function(h,q){this.state.style.dx=Math.round(Math.max(0,Math.min(h.width,q.x-h.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(h.height,q.y-h.y)))},!1)]},tee:function(c){return[Ra(c,["dx","dy"],function(h){var q=
+Math.max(0,Math.min(h.width,mxUtils.getValue(this.state.style,"dx",bb.prototype.dx))),l=Math.max(0,Math.min(h.height,mxUtils.getValue(this.state.style,"dy",bb.prototype.dy)));return new mxPoint(h.x+(h.width+q)/2,h.y+l)},function(h,q){this.state.style.dx=Math.round(Math.max(0,2*Math.min(h.width/2,q.x-h.x-h.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(h.height,q.y-h.y)))},!1)]},singleArrow:ib(1),doubleArrow:ib(.5),folder:function(c){return[Ra(c,["tabWidth","tabHeight"],function(h){var q=
+Math.max(0,Math.min(h.width,mxUtils.getValue(this.state.style,"tabWidth",G.prototype.tabWidth))),l=Math.max(0,Math.min(h.height,mxUtils.getValue(this.state.style,"tabHeight",G.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",G.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(q=h.width-q);return new mxPoint(h.x+q,h.y+l)},function(h,q){var l=Math.max(0,Math.min(h.width,q.x-h.x));mxUtils.getValue(this.state.style,"tabPosition",G.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&
(l=h.width-l);this.state.style.tabWidth=Math.round(l);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(h.height,q.y-h.y)))},!1)]},document:function(c){return[Ra(c,["size"],function(h){var q=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",Q.prototype.size))));return new mxPoint(h.x+3*h.width/4,h.y+(1-q)*h.height)},function(h,q){this.state.style.size=Math.max(0,Math.min(1,(h.y+h.height-q.y)/h.height))},!1)]},tape:function(c){return[Ra(c,["size"],function(h){var q=
-Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",O.prototype.size))));return new mxPoint(h.getCenterX(),h.y+q*h.height/2)},function(h,q){this.state.style.size=Math.max(0,Math.min(1,(q.y-h.y)/h.height*2))},!1)]},isoCube2:function(c){return[Ra(c,["isoAngle"],function(h){var q=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",r.isoAngle))))*Math.PI/200;return new mxPoint(h.x,h.y+Math.min(h.width*Math.tan(q),.5*h.height))},function(h,q){this.state.style.isoAngle=
-Math.max(0,50*(q.y-h.y)/h.height)},!0)]},cylinder2:gb(x.prototype.size),cylinder3:gb(A.prototype.size),offPageConnector:function(c){return[Ra(c,["size"],function(h){var q=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",M.prototype.size))));return new mxPoint(h.getCenterX(),h.y+(1-q)*h.height)},function(h,q){this.state.style.size=Math.max(0,Math.min(1,(h.y+h.height-q.y)/h.height))},!1)]},"mxgraph.basic.rect":function(c){var h=[Graph.createHandle(c,["size"],function(q){var l=
+Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",N.prototype.size))));return new mxPoint(h.getCenterX(),h.y+q*h.height/2)},function(h,q){this.state.style.size=Math.max(0,Math.min(1,(q.y-h.y)/h.height*2))},!1)]},isoCube2:function(c){return[Ra(c,["isoAngle"],function(h){var q=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",r.isoAngle))))*Math.PI/200;return new mxPoint(h.x,h.y+Math.min(h.width*Math.tan(q),.5*h.height))},function(h,q){this.state.style.isoAngle=
+Math.max(0,50*(q.y-h.y)/h.height)},!0)]},cylinder2:gb(x.prototype.size),cylinder3:gb(B.prototype.size),offPageConnector:function(c){return[Ra(c,["size"],function(h){var q=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",K.prototype.size))));return new mxPoint(h.getCenterX(),h.y+(1-q)*h.height)},function(h,q){this.state.style.size=Math.max(0,Math.min(1,(h.y+h.height-q.y)/h.height))},!1)]},"mxgraph.basic.rect":function(c){var h=[Graph.createHandle(c,["size"],function(q){var l=
Math.max(0,Math.min(q.width/2,q.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(q.x+l,q.y+l)},function(q,l){this.state.style.size=Math.round(100*Math.max(0,Math.min(q.height/2,q.width/2,l.x-q.x)))/100})];c=Graph.createHandle(c,["indent"],function(q){var l=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(q.x+.75*q.width,q.y+l*q.height/200)},function(q,l){this.state.style.indent=Math.round(100*
-Math.max(0,Math.min(100,200*(l.y-q.y)/q.height)))/100});h.push(c);return h},step:qb(qa.prototype.size,!0,null,!0,qa.prototype.fixedSize),hexagon:qb(I.prototype.size,!0,.5,!0,I.prototype.fixedSize),curlyBracket:qb(Z.prototype.size,!1),display:qb(Ea.prototype.size,!1),cube:Wa(1,d.prototype.size,!1),card:Wa(.5,D.prototype.size,!0),loopLimit:Wa(.5,G.prototype.size,!0),trapezoid:tb(.5,P.prototype.size,P.prototype.fixedSize),parallelogram:tb(1,R.prototype.size,R.prototype.fixedSize)};Graph.createHandle=
+Math.max(0,Math.min(100,200*(l.y-q.y)/q.height)))/100});h.push(c);return h},step:qb(qa.prototype.size,!0,null,!0,qa.prototype.fixedSize),hexagon:qb(O.prototype.size,!0,.5,!0,O.prototype.fixedSize),curlyBracket:qb(Z.prototype.size,!1),display:qb(Fa.prototype.size,!1),cube:Wa(1,d.prototype.size,!1),card:Wa(.5,D.prototype.size,!0),loopLimit:Wa(.5,H.prototype.size,!0),trapezoid:tb(.5,P.prototype.size,P.prototype.fixedSize),parallelogram:tb(1,R.prototype.size,R.prototype.fixedSize)};Graph.createHandle=
Ra;Graph.handleFactory=rb;var xb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var c=xb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var h=this.state.style.shape;null==mxCellRenderer.defaultShapes[h]&&null==mxStencilRegistry.getStencil(h)?h=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&(h=mxConstants.SHAPE_SWIMLANE);h=rb[h];null==h&&null!=this.state.shape&&this.state.shape.isRoundable()&&
(h=rb[mxConstants.SHAPE_RECTANGLE]);null!=h&&(h=h(this.state),null!=h&&(c=null==c?h:c.concat(h)))}return c};mxEdgeHandler.prototype.createCustomHandles=function(){var c=this.state.style.shape;null==mxCellRenderer.defaultShapes[c]&&null==mxStencilRegistry.getStencil(c)&&(c=mxConstants.SHAPE_CONNECTOR);c=rb[c];return null!=c?c(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var kb=new mxPoint(1,0),hb=new mxPoint(1,0),ob=mxUtils.toRadians(-30);kb=mxUtils.getRotatedPoint(kb,
-Math.cos(ob),Math.sin(ob));var lb=mxUtils.toRadians(-150);hb=mxUtils.getRotatedPoint(hb,Math.cos(lb),Math.sin(lb));mxEdgeStyle.IsometricConnector=function(c,h,q,l,p){var v=c.view;l=null!=l&&0<l.length?l[0]:null;var w=c.absolutePoints,J=w[0];w=w[w.length-1];null!=l&&(l=v.transformControlPoint(c,l));null==J&&null!=h&&(J=new mxPoint(h.getCenterX(),h.getCenterY()));null==w&&null!=q&&(w=new mxPoint(q.getCenterX(),q.getCenterY()));var y=kb.x,Y=kb.y,N=hb.x,Ca=hb.y,Qa="horizontal"==mxUtils.getValue(c.style,
-"elbow","horizontal");if(null!=w&&null!=J){c=function(la,pa,na){la-=Ka.x;var ma=pa-Ka.y;pa=(Ca*la-N*ma)/(y*Ca-Y*N);la=(Y*la-y*ma)/(Y*N-y*Ca);Qa?(na&&(Ka=new mxPoint(Ka.x+y*pa,Ka.y+Y*pa),p.push(Ka)),Ka=new mxPoint(Ka.x+N*la,Ka.y+Ca*la)):(na&&(Ka=new mxPoint(Ka.x+N*la,Ka.y+Ca*la),p.push(Ka)),Ka=new mxPoint(Ka.x+y*pa,Ka.y+Y*pa));p.push(Ka)};var Ka=J;null==l&&(l=new mxPoint(J.x+(w.x-J.x)/2,J.y+(w.y-J.y)/2));c(l.x,l.y,!0);c(w.x,w.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);
+Math.cos(ob),Math.sin(ob));var lb=mxUtils.toRadians(-150);hb=mxUtils.getRotatedPoint(hb,Math.cos(lb),Math.sin(lb));mxEdgeStyle.IsometricConnector=function(c,h,q,l,p){var v=c.view;l=null!=l&&0<l.length?l[0]:null;var w=c.absolutePoints,I=w[0];w=w[w.length-1];null!=l&&(l=v.transformControlPoint(c,l));null==I&&null!=h&&(I=new mxPoint(h.getCenterX(),h.getCenterY()));null==w&&null!=q&&(w=new mxPoint(q.getCenterX(),q.getCenterY()));var y=kb.x,Y=kb.y,M=hb.x,Ba=hb.y,Qa="horizontal"==mxUtils.getValue(c.style,
+"elbow","horizontal");if(null!=w&&null!=I){c=function(la,pa,na){la-=Ja.x;var ma=pa-Ja.y;pa=(Ba*la-M*ma)/(y*Ba-Y*M);la=(Y*la-y*ma)/(Y*M-y*Ba);Qa?(na&&(Ja=new mxPoint(Ja.x+y*pa,Ja.y+Y*pa),p.push(Ja)),Ja=new mxPoint(Ja.x+M*la,Ja.y+Ba*la)):(na&&(Ja=new mxPoint(Ja.x+M*la,Ja.y+Ba*la),p.push(Ja)),Ja=new mxPoint(Ja.x+y*pa,Ja.y+Y*pa));p.push(Ja)};var Ja=I;null==l&&(l=new mxPoint(I.x+(w.x-I.x)/2,I.y+(w.y-I.y)/2));c(l.x,l.y,!0);c(w.x,w.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);
var sb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(c,h){if(h==mxEdgeStyle.IsometricConnector){var q=new mxElbowEdgeHandler(c);q.snapToTerminals=!1;return q}return sb.apply(this,arguments)};e.prototype.constraints=[];k.prototype.getConstraints=function(c,h,q){c=[];var l=Math.tan(mxUtils.toRadians(30)),p=(.5-l)/2;l=Math.min(h,q/(.5+l));h=(h-l)/2;q=(q-l)/2;c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h,q+.25*l));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,h+.5*l,q+l*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h+l,q+.25*l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h+l,q+.75*l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h+.5*l,q+(1-p)*l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h,q+.75*l));return c};r.prototype.getConstraints=function(c,h,q){c=[];var l=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200;l=Math.min(h*
Math.tan(l),.5*q);c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h,l));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h,q-l));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,q-l));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
@@ -3736,62 +3736,62 @@ Math.tan(l),.5*q);c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.pus
0),!1));c.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h,.5*(q-l)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h,q-l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,
q-l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(q-l)));h>=2*l&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!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))];Da.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=
-mxRectangleShape.prototype.constraints;L.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;u.prototype.getConstraints=function(c,h,q){c=[];var l=Math.max(0,Math.min(h,Math.min(q,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(h-l),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,
+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;S.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;u.prototype.getConstraints=function(c,h,q){c=[];var l=Math.max(0,Math.min(h,Math.min(q,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(h-l),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,
null,h-l,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h-.5*l,.5*l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h,l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h,.5*(q+l)));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));h>=2*l&&c.push(new mxConnectionConstraint(new mxPoint(.5,
0),!1));return c};D.prototype.getConstraints=function(c,h,q){c=[];var l=Math.max(0,Math.min(h,Math.min(q,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(h+l),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,.5*l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,l));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,0,.5*(q+l)));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));h>=2*l&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};d.prototype.getConstraints=function(c,h,q){c=[];var l=Math.max(0,Math.min(h,Math.min(q,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(h-l),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h-l,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h-.5*l,.5*l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h,l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h,.5*(q+l)));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(h+l),q));c.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,l,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,q-.5*l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,q-l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(q-l)));return c};A.prototype.getConstraints=function(c,h,q){c=[];h=Math.max(0,Math.min(q,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,
+0),!1,null,l,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,q-.5*l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,q-l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(q-l)));return c};B.prototype.getConstraints=function(c,h,q){c=[];h=Math.max(0,Math.min(q,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,
1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,h));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,h));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-h));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-h));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,h+.5*(.5*q-h)));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,h+.5*(.5*q-h)));c.push(new mxConnectionConstraint(new mxPoint(1,
-0),!1,null,0,q-h-.5*(.5*q-h)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,q-h-.5*(.5*q-h)));c.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*h));c.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*h));c.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-h));c.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-h));return c};F.prototype.getConstraints=function(c,h,q){c=[];var l=Math.max(0,Math.min(h,parseFloat(mxUtils.getValue(this.style,
+0),!1,null,0,q-h-.5*(.5*q-h)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,q-h-.5*(.5*q-h)));c.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*h));c.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*h));c.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-h));c.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-h));return c};G.prototype.getConstraints=function(c,h,q){c=[];var l=Math.max(0,Math.min(h,parseFloat(mxUtils.getValue(this.style,
"tabWidth",this.tabWidth)))),p=Math.max(0,Math.min(q,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(c.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,p)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
.5*(h+l),p))):(c.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h-.5*l,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h-l,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h-l,p)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(h-l),p)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h,.25*(q-p)+p));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,h,.5*(q-p)+p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h,.75*(q-p)+p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(q-p)+p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(q-p)+p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*(q-p)+p));c.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,q));c.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return c};bb.prototype.constraints=mxRectangleShape.prototype.constraints;z.prototype.constraints=mxRectangleShape.prototype.constraints;X.prototype.constraints=mxEllipse.prototype.constraints;ia.prototype.constraints=mxEllipse.prototype.constraints;da.prototype.constraints=mxEllipse.prototype.constraints;Ma.prototype.constraints=
-mxEllipse.prototype.constraints;Ya.prototype.constraints=mxRectangleShape.prototype.constraints;La.prototype.constraints=mxRectangleShape.prototype.constraints;Ea.prototype.getConstraints=function(c,h,q){c=[];var l=Math.min(h,q/2),p=Math.min(h-l,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*h);c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
-.5*(p+h-l),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h-l,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h-l,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(p+h-l),q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,q));return c};za.prototype.getConstraints=function(c,h,q){h=parseFloat(mxUtils.getValue(c,"jettyWidth",za.prototype.jettyWidth))/2;c=parseFloat(mxUtils.getValue(c,
-"jettyHeight",za.prototype.jettyHeight));var l=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,h),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,
+0),!1,null,0,q));c.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return c};Va.prototype.constraints=mxRectangleShape.prototype.constraints;z.prototype.constraints=mxRectangleShape.prototype.constraints;X.prototype.constraints=mxEllipse.prototype.constraints;ja.prototype.constraints=mxEllipse.prototype.constraints;ea.prototype.constraints=mxEllipse.prototype.constraints;Ma.prototype.constraints=
+mxEllipse.prototype.constraints;Xa.prototype.constraints=mxRectangleShape.prototype.constraints;La.prototype.constraints=mxRectangleShape.prototype.constraints;Fa.prototype.getConstraints=function(c,h,q){c=[];var l=Math.min(h,q/2),p=Math.min(h-l,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*h);c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
+.5*(p+h-l),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h-l,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h-l,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(p+h-l),q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,q));return c};Ca.prototype.getConstraints=function(c,h,q){h=parseFloat(mxUtils.getValue(c,"jettyWidth",Ca.prototype.jettyWidth))/2;c=parseFloat(mxUtils.getValue(c,
+"jettyHeight",Ca.prototype.jettyHeight));var l=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,h),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,
h),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(q-.5*c,1.5*c)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(q-.5*c,3.5*c))];q>5*c&&l.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,h));q>8*c&&l.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,h));q>
-15*c&&l.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,h));return l};G.prototype.constraints=mxRectangleShape.prototype.constraints;M.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)];V.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,
+15*c&&l.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,h));return l};H.prototype.constraints=mxRectangleShape.prototype.constraints;K.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)];T.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)];ra.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)];C.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)];O.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,
+.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];N.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)];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(.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)];ua.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,
+.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)];sa.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)];R.prototype.constraints=mxRectangleShape.prototype.constraints;P.prototype.constraints=mxRectangleShape.prototype.constraints;Q.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;$a.prototype.getConstraints=function(c,h,q){c=[];var l=Math.max(0,Math.min(h,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),p=Math.max(0,Math.min(q,parseFloat(mxUtils.getValue(this.style,
+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;bb.prototype.getConstraints=function(c,h,q){c=[];var l=Math.max(0,Math.min(h,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),p=Math.max(0,Math.min(q,parseFloat(mxUtils.getValue(this.style,
"dy",this.dy))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h,.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*h+.25*l,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(h+l),p));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,.5*(h+l),.5*(q+p)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(h+l),q));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(h-l),q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(h-l),.5*(q+p)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(h-l),p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*h-.25*l,p));c.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*p));return c};cb.prototype.getConstraints=function(c,h,q){c=[];var l=Math.max(0,Math.min(h,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),p=Math.max(0,Math.min(q,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*p));return c};Ya.prototype.getConstraints=function(c,h,q){c=[];var l=Math.max(0,Math.min(h,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),p=Math.max(0,Math.min(q,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,h,.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(h+l),p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*(q+p)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,q));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,
-1),!1));return c};jb.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)];ca.prototype.getConstraints=
+1),!1));return c};jb.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];da.prototype.getConstraints=
function(c,h,q){c=[];var l=q*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),p=h*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));l=(q-l)/2;c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(h-p),l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h-p,0));c.push(new mxConnectionConstraint(new mxPoint(1,
-.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h-p,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(h-p),q-l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,q-l));return c};t.prototype.getConstraints=function(c,h,q){c=[];var l=q*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ca.prototype.arrowWidth)))),p=h*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ca.prototype.arrowSize))));l=(q-l)/2;c.push(new mxConnectionConstraint(new mxPoint(0,
+.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h-p,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(h-p),q-l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,q-l));return c};t.prototype.getConstraints=function(c,h,q){c=[];var l=q*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",da.prototype.arrowWidth)))),p=h*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",da.prototype.arrowSize))));l=(q-l)/2;c.push(new mxConnectionConstraint(new mxPoint(0,
.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*h,l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h-p,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h-p,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*h,q-l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,q));return c};Ia.prototype.getConstraints=
function(c,h,q){c=[];var l=Math.min(q,h),p=Math.max(0,Math.min(l,l*parseFloat(mxUtils.getValue(this.style,"size",this.size))));l=(q-p)/2;var v=l+p,w=(h-p)/2;p=w+p;c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,w,.5*l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,w,0));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,.5*l));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,p,l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,w,q-.5*l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,w,q));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,q-.5*l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(h+p),l));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,h,l));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,h,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(h+p),v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,w,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*w,l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,l));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*w,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,w,l));return c};aa.prototype.constraints=null;B.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)];E.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)];va.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*w,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,w,l));return c};aa.prototype.constraints=null;A.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)];E.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)];Ha.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ua.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(m){e.escape();m=e.deleteCells(e.getDeletableCells(e.getSelectionCells()),m);null!=m&&e.setSelectionCells(m)}function b(){if(!e.isSelectionEmpty()){e.getModel().beginUpdate();try{for(var m=e.getSelectionCells(),r=0;r<m.length;r++)e.cellLabelChanged(m[r],"")}finally{e.getModel().endUpdate()}}}function f(m,r,x,A,C){C.getModel().beginUpdate();try{var F=C.getCellGeometry(m);null!=F&&x&&A&&(x/=A,F=F.clone(),1<x?F.height=F.width/x:F.width=F.height*x,C.getModel().setGeometry(m,
-F));C.setCellStyles(mxConstants.STYLE_CLIP_PATH,r,[m]);C.setCellStyles(mxConstants.STYLE_ASPECT,"fixed",[m])}finally{C.getModel().endUpdate()}}var d=this.editorUi,g=d.editor,e=g.graph,k=function(){return Action.prototype.isEnabled.apply(this,arguments)&&e.isEnabled()};this.addAction("new...",function(){e.openLink(d.getUrl())});this.addAction("open...",function(){window.openNew=!0;window.openKey="open";d.openFile()});this.addAction("smartFit",function(){e.popupMenuHandler.hideMenu();var m=e.view.scale,
+Actions.prototype.init=function(){function a(m){e.escape();m=e.deleteCells(e.getDeletableCells(e.getSelectionCells()),m);null!=m&&e.setSelectionCells(m)}function b(){if(!e.isSelectionEmpty()){e.getModel().beginUpdate();try{for(var m=e.getSelectionCells(),r=0;r<m.length;r++)e.cellLabelChanged(m[r],"")}finally{e.getModel().endUpdate()}}}function f(m,r,x,B,C){C.getModel().beginUpdate();try{var G=C.getCellGeometry(m);null!=G&&x&&B&&(x/=B,G=G.clone(),1<x?G.height=G.width/x:G.width=G.height*x,C.getModel().setGeometry(m,
+G));C.setCellStyles(mxConstants.STYLE_CLIP_PATH,r,[m]);C.setCellStyles(mxConstants.STYLE_ASPECT,"fixed",[m])}finally{C.getModel().endUpdate()}}var d=this.editorUi,g=d.editor,e=g.graph,k=function(){return Action.prototype.isEnabled.apply(this,arguments)&&e.isEnabled()};this.addAction("new...",function(){e.openLink(d.getUrl())});this.addAction("open...",function(){window.openNew=!0;window.openKey="open";d.openFile()});this.addAction("smartFit",function(){e.popupMenuHandler.hideMenu();var m=e.view.scale,
r=e.view.translate.x,x=e.view.translate.y;d.actions.get("resetView").funct();1E-5>Math.abs(m-e.view.scale)&&r==e.view.translate.x&&x==e.view.translate.y&&d.actions.get(e.pageVisible?"fitPage":"fitWindow").funct()});this.addAction("keyPressEnter",function(){e.isEnabled()&&(e.isSelectionEmpty()?d.actions.get("smartFit").funct():e.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(m,r){try{var x=mxUtils.parseXml(m);g.graph.setSelectionCells(g.graph.importGraphModel(x.documentElement))}catch(A){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+A.message)}}));d.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=k;this.addAction("save",function(){d.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=k;this.addAction("saveAs...",function(){d.saveFile(!0)},null,
+window.openFile.setConsumer(mxUtils.bind(this,function(m,r){try{var x=mxUtils.parseXml(m);g.graph.setSelectionCells(g.graph.importGraphModel(x.documentElement))}catch(B){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+B.message)}}));d.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=k;this.addAction("save",function(){d.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=k;this.addAction("saveAs...",function(){d.saveFile(!0)},null,
null,Editor.ctrlKey+"+Shift+S").isEnabled=k;this.addAction("export...",function(){d.showDialog((new ExportDialog(d)).container,300,340,!0,!0)});this.addAction("editDiagram...",function(){var m=new EditDiagramDialog(d);d.showDialog(m.container,620,420,!0,!1);m.init()});this.addAction("pageSetup...",function(){d.showDialog((new PageSetupDialog(d)).container,320,240,!0,!0)}).isEnabled=k;this.addAction("print...",function(){d.showDialog((new PrintDialog(d)).container,300,180,!0,!0)},null,"sprite-print",
Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(e,null,10,10)});this.addAction("undo",function(){d.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){d.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",function(){var m=null;try{m=d.copyXml(),null!=m&&e.removeCells(m,!1)}catch(r){}null==m&&mxClipboard.cut(e)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){try{d.copyXml()}catch(m){}try{mxClipboard.copy(e)}catch(m){d.handleError(m)}},
-null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(e.isEnabled()&&!e.isCellLocked(e.getDefaultParent())){var m=!1;try{Editor.enableNativeCipboard&&(d.readGraphModelFromClipboard(function(r){if(null!=r){e.getModel().beginUpdate();try{d.pasteXml(r,!0)}finally{e.getModel().endUpdate()}}else mxClipboard.paste(e)}),m=!0)}catch(r){}m||mxClipboard.paste(e)}},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(m){function r(A){if(null!=A){for(var C=!0,F=0;F<
-A.length&&C;F++)C=C&&e.model.isEdge(A[F]);var K=e.view.translate;F=e.view.scale;var D=K.x,O=K.y;K=null;if(1==A.length&&C){var Q=e.getCellGeometry(A[0]);null!=Q&&(K=Q.getTerminalPoint(!0))}K=null!=K?K:e.getBoundingBoxFromGeometry(A,C);null!=K&&(C=Math.round(e.snap(e.popupMenuHandler.triggerX/F-D)),F=Math.round(e.snap(e.popupMenuHandler.triggerY/F-O)),e.cellsMoved(A,C-K.x,F-K.y))}}function x(){e.getModel().beginUpdate();try{r(mxClipboard.paste(e))}finally{e.getModel().endUpdate()}}if(e.isEnabled()&&
-!e.isCellLocked(e.getDefaultParent())){m=!1;try{Editor.enableNativeCipboard&&(d.readGraphModelFromClipboard(function(A){if(null!=A){e.getModel().beginUpdate();try{r(d.pasteXml(A,!0))}finally{e.getModel().endUpdate()}}else x()}),m=!0)}catch(A){}m||x()}});this.addAction("copySize",function(){var m=e.getSelectionCell();e.isEnabled()&&null!=m&&e.getModel().isVertex(m)&&(m=e.getCellGeometry(m),null!=m&&(d.copiedSize=new mxRectangle(m.x,m.y,m.width,m.height)))},null,null,"Alt+Shift+X");this.addAction("pasteSize",
+null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(e.isEnabled()&&!e.isCellLocked(e.getDefaultParent())){var m=!1;try{Editor.enableNativeCipboard&&(d.readGraphModelFromClipboard(function(r){if(null!=r){e.getModel().beginUpdate();try{d.pasteXml(r,!0)}finally{e.getModel().endUpdate()}}else mxClipboard.paste(e)}),m=!0)}catch(r){}m||mxClipboard.paste(e)}},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(m){function r(B){if(null!=B){for(var C=!0,G=0;G<
+B.length&&C;G++)C=C&&e.model.isEdge(B[G]);var J=e.view.translate;G=e.view.scale;var D=J.x,N=J.y;J=null;if(1==B.length&&C){var Q=e.getCellGeometry(B[0]);null!=Q&&(J=Q.getTerminalPoint(!0))}J=null!=J?J:e.getBoundingBoxFromGeometry(B,C);null!=J&&(C=Math.round(e.snap(e.popupMenuHandler.triggerX/G-D)),G=Math.round(e.snap(e.popupMenuHandler.triggerY/G-N)),e.cellsMoved(B,C-J.x,G-J.y))}}function x(){e.getModel().beginUpdate();try{r(mxClipboard.paste(e))}finally{e.getModel().endUpdate()}}if(e.isEnabled()&&
+!e.isCellLocked(e.getDefaultParent())){m=!1;try{Editor.enableNativeCipboard&&(d.readGraphModelFromClipboard(function(B){if(null!=B){e.getModel().beginUpdate();try{r(d.pasteXml(B,!0))}finally{e.getModel().endUpdate()}}else x()}),m=!0)}catch(B){}m||x()}});this.addAction("copySize",function(){var m=e.getSelectionCell();e.isEnabled()&&null!=m&&e.getModel().isVertex(m)&&(m=e.getCellGeometry(m),null!=m&&(d.copiedSize=new mxRectangle(m.x,m.y,m.width,m.height)))},null,null,"Alt+Shift+X");this.addAction("pasteSize",
function(){if(e.isEnabled()&&!e.isSelectionEmpty()&&null!=d.copiedSize){e.getModel().beginUpdate();try{for(var m=e.getResizableCells(e.getSelectionCells()),r=0;r<m.length;r++)if(e.getModel().isVertex(m[r])){var x=e.getCellGeometry(m[r]);null!=x&&(x=x.clone(),x.width=d.copiedSize.width,x.height=d.copiedSize.height,e.getModel().setGeometry(m[r],x))}}finally{e.getModel().endUpdate()}}},null,null,"Alt+Shift+V");this.addAction("copyData",function(){var m=e.getSelectionCell()||e.getModel().getRoot();e.isEnabled()&&
-null!=m&&(m=m.cloneValue(),null==m||isNaN(m.nodeType)||(d.copiedValue=m))},null,null,"Alt+Shift+B");this.addAction("pasteData",function(m,r){function x(F,K){var D=A.getValue(F);K=F.cloneValue(K);K.removeAttribute("placeholders");null==D||isNaN(D.nodeType)||K.setAttribute("placeholders",D.getAttribute("placeholders"));null!=m&&mxEvent.isShiftDown(m)||K.setAttribute("label",e.convertValueToString(F));A.setValue(F,K)}m=null!=r?r:m;var A=e.getModel();if(e.isEnabled()&&!e.isSelectionEmpty()&&null!=d.copiedValue){A.beginUpdate();
-try{var C=e.getEditableCells(e.getSelectionCells());if(0==C.length)x(A.getRoot(),d.copiedValue);else for(r=0;r<C.length;r++)x(C[r],d.copiedValue)}finally{A.endUpdate()}}},null,null,"Alt+Shift+E");this.addAction("delete",function(m,r){m=null!=r?r:m;null!=m&&mxEvent.isShiftDown(m)?b():a(null!=m&&(mxEvent.isControlDown(m)||mxEvent.isMetaDown(m)||mxEvent.isAltDown(m)))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)});this.addAction("deleteLabels",function(){b()},null,null,Editor.ctrlKey+
+null!=m&&(m=m.cloneValue(),null==m||isNaN(m.nodeType)||(d.copiedValue=m))},null,null,"Alt+Shift+B");this.addAction("pasteData",function(m,r){function x(G,J){var D=B.getValue(G);J=G.cloneValue(J);J.removeAttribute("placeholders");null==D||isNaN(D.nodeType)||J.setAttribute("placeholders",D.getAttribute("placeholders"));null!=m&&mxEvent.isShiftDown(m)||J.setAttribute("label",e.convertValueToString(G));B.setValue(G,J)}m=null!=r?r:m;var B=e.getModel();if(e.isEnabled()&&!e.isSelectionEmpty()&&null!=d.copiedValue){B.beginUpdate();
+try{var C=e.getEditableCells(e.getSelectionCells());if(0==C.length)x(B.getRoot(),d.copiedValue);else for(r=0;r<C.length;r++)x(C[r],d.copiedValue)}finally{B.endUpdate()}}},null,null,"Alt+Shift+E");this.addAction("delete",function(m,r){m=null!=r?r:m;null!=m&&mxEvent.isShiftDown(m)?b():a(null!=m&&(mxEvent.isControlDown(m)||mxEvent.isMetaDown(m)||mxEvent.isAltDown(m)))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)});this.addAction("deleteLabels",function(){b()},null,null,Editor.ctrlKey+
"+Delete");this.addAction("duplicate",function(){try{e.setSelectionCells(e.duplicateCells()),e.scrollCellToVisible(e.getSelectionCell())}catch(m){d.handleError(m)}},null,null,Editor.ctrlKey+"+D");this.put("mergeCells",new Action(mxResources.get("merge"),function(){var m=d.getSelectionState();if(null!=m.mergeCell){e.getModel().beginUpdate();try{e.setCellStyles("rowspan",m.rowspan,[m.mergeCell]),e.setCellStyles("colspan",m.colspan,[m.mergeCell])}finally{e.getModel().endUpdate()}}}));this.put("unmergeCells",
new Action(mxResources.get("unmerge"),function(){var m=d.getSelectionState();if(0<m.cells.length){e.getModel().beginUpdate();try{e.setCellStyles("rowspan",null,m.cells),e.setCellStyles("colspan",null,m.cells)}finally{e.getModel().endUpdate()}}}));this.put("turn",new Action(mxResources.get("turn")+" / "+mxResources.get("reverse"),function(m,r){m=null!=r?r:m;e.turnShapes(e.getResizableCells(e.getSelectionCells()),null!=m?mxEvent.isShiftDown(m):!1)},null,null,mxClient.IS_SF?null:Editor.ctrlKey+"+R"));
this.put("selectConnections",new Action(mxResources.get("selectEdges"),function(m){m=e.getSelectionCell();e.isEnabled()&&null!=m&&e.addSelectionCells(e.getEdges(m))}));this.addAction("selectVertices",function(){e.selectVertices(null,!0)},null,null,Editor.ctrlKey+"+Shift+I");this.addAction("selectEdges",function(){e.selectEdges()},null,null,Editor.ctrlKey+"+Shift+E");this.addAction("selectAll",function(){e.selectAll(null,!0)},null,null,Editor.ctrlKey+"+A");this.addAction("selectNone",function(){e.clearSelection()},
@@ -3800,14 +3800,14 @@ x,m);e.setCellStyles("connectable",x,m)}finally{e.getModel().endUpdate()}}},null
null,null,Editor.ctrlKey+"+End");this.addAction("toFront",function(){e.orderCells(!1)},null,null,Editor.ctrlKey+"+Shift+F");this.addAction("toBack",function(){e.orderCells(!0)},null,null,Editor.ctrlKey+"+Shift+B");this.addAction("bringForward",function(m){e.orderCells(!1,null,!0)});this.addAction("sendBackward",function(m){e.orderCells(!0,null,!0)});this.addAction("group",function(){if(e.isEnabled()){var m=mxUtils.sortCells(e.getSelectionCells(),!0);1!=m.length||e.isTable(m[0])||e.isTableRow(m[0])?
(m=e.getCellsForGroup(m),1<m.length&&e.setSelectionCell(e.groupCells(null,0,m))):e.setCellStyles("container","1")}},null,null,Editor.ctrlKey+"+G");this.addAction("ungroup",function(){if(e.isEnabled()){var m=e.getEditableCells(e.getSelectionCells());e.model.beginUpdate();try{var r=e.ungroupCells();if(null!=m)for(var x=0;x<m.length;x++)e.model.contains(m[x])&&(0==e.model.getChildCount(m[x])&&e.model.isVertex(m[x])&&e.setCellStyles("container","0",[m[x]]),r.push(m[x]))}finally{e.model.endUpdate()}0<
r.length&&e.setSelectionCells(r)}},null,null,Editor.ctrlKey+"+Shift+U");this.addAction("removeFromGroup",function(){if(e.isEnabled()){var m=e.getSelectionCells();if(null!=m){for(var r=[],x=0;x<m.length;x++)e.isTableRow(m[x])||e.isTableCell(m[x])||r.push(m[x]);e.removeCellsFromParent(r)}}});this.addAction("edit",function(){e.isEnabled()&&e.startEditingAtCell()},null,null,"F2/Enter");this.addAction("editData...",function(){var m=e.getSelectionCell()||e.getModel().getRoot();d.showDataDialog(m)},null,
-null,Editor.ctrlKey+"+M");this.addAction("editTooltip...",function(){var m=e.getSelectionCell();if(e.isEnabled()&&null!=m&&e.isCellEditable(m)){var r="";if(mxUtils.isNode(m.value)){var x=null;Graph.translateDiagram&&null!=Graph.diagramLanguage&&m.value.hasAttribute("tooltip_"+Graph.diagramLanguage)&&(x=m.value.getAttribute("tooltip_"+Graph.diagramLanguage));null==x&&(x=m.value.getAttribute("tooltip"));null!=x&&(r=x)}r=new TextareaDialog(d,mxResources.get("editTooltip")+":",r,function(A){e.setTooltipForCell(m,
-A)});d.showDialog(r.container,320,200,!0,!0);r.init()}},null,null,"Alt+Shift+T");this.addAction("openLink",function(){var m=e.getLinkForCell(e.getSelectionCell());null!=m&&e.openLink(m)});this.addAction("editLink...",function(){var m=e.getSelectionCell();if(e.isEnabled()&&null!=m&&e.isCellEditable(m)){var r=e.getLinkForCell(m)||"";d.showLinkDialog(r,mxResources.get("apply"),function(x,A,C){x=mxUtils.trim(x);e.setLinkForCell(m,0<x.length?x:null);e.setAttributeForCell(m,"linkTarget",C)},!0,e.getLinkTargetForCell(m))}},
-null,null,"Alt+Shift+L");this.put("insertImage",new Action(mxResources.get("image")+"...",function(){e.isEnabled()&&!e.isCellLocked(e.getDefaultParent())&&(e.clearSelection(),d.actions.get("image").funct())})).isEnabled=k;this.put("insertLink",new Action(mxResources.get("link")+"...",function(){e.isEnabled()&&!e.isCellLocked(e.getDefaultParent())&&d.showLinkDialog("",mxResources.get("insert"),function(m,r,x){m=mxUtils.trim(m);if(0<m.length){var A=null,C=e.getLinkTitle(m);null!=r&&0<r.length&&(A=r[0].iconUrl,
-C=r[0].name||r[0].type,C=C.charAt(0).toUpperCase()+C.substring(1),30<C.length&&(C=C.substring(0,30)+"..."));r=new mxCell(C,new mxGeometry(0,0,100,40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+(null!=A?"shape=label;imageWidth=16;imageHeight=16;spacingLeft=26;align=left;image="+A:"spacing=10;"));r.vertex=!0;A=e.getCenterInsertPoint(e.getBoundingBoxFromGeometry([r],!0));r.geometry.x=A.x;r.geometry.y=A.y;e.setAttributeForCell(r,"linkTarget",x);e.setLinkForCell(r,m);e.cellSizeUpdated(r,
-!0);e.getModel().beginUpdate();try{r=e.addCell(r),e.fireEvent(new mxEventObject("cellsInserted","cells",[r]))}finally{e.getModel().endUpdate()}e.setSelectionCell(r);e.scrollCellToVisible(e.getSelectionCell())}},!0)})).isEnabled=k;this.addAction("link...",mxUtils.bind(this,function(){if(e.isEnabled())if(e.cellEditor.isContentEditing()){var m=e.getSelectedElement(),r=e.getParentByName(m,"A",e.cellEditor.textarea),x="";if(null==r&&null!=m&&null!=m.getElementsByTagName)for(var A=m.getElementsByTagName("a"),
-C=0;C<A.length&&null==r;C++)A[C].textContent==m.textContent&&(r=A[C]);null!=r&&"A"==r.nodeName&&(x=r.getAttribute("href")||"",e.selectNode(r));var F=e.cellEditor.saveSelection();d.showLinkDialog(x,mxResources.get("apply"),mxUtils.bind(this,function(K){e.cellEditor.restoreSelection(F);null!=K&&e.insertLink(K)}))}else e.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=k;this.addAction("autosize",function(){var m=e.getSelectionCells();if(null!=m){e.getModel().beginUpdate();
+null,Editor.ctrlKey+"+M");this.addAction("editTooltip...",function(){var m=e.getSelectionCell();if(e.isEnabled()&&null!=m&&e.isCellEditable(m)){var r="";if(mxUtils.isNode(m.value)){var x=null;Graph.translateDiagram&&null!=Graph.diagramLanguage&&m.value.hasAttribute("tooltip_"+Graph.diagramLanguage)&&(x=m.value.getAttribute("tooltip_"+Graph.diagramLanguage));null==x&&(x=m.value.getAttribute("tooltip"));null!=x&&(r=x)}r=new TextareaDialog(d,mxResources.get("editTooltip")+":",r,function(B){e.setTooltipForCell(m,
+B)});d.showDialog(r.container,320,200,!0,!0);r.init()}},null,null,"Alt+Shift+T");this.addAction("openLink",function(){var m=e.getLinkForCell(e.getSelectionCell());null!=m&&e.openLink(m)});this.addAction("editLink...",function(){var m=e.getSelectionCell();if(e.isEnabled()&&null!=m&&e.isCellEditable(m)){var r=e.getLinkForCell(m)||"";d.showLinkDialog(r,mxResources.get("apply"),function(x,B,C){x=mxUtils.trim(x);e.setLinkForCell(m,0<x.length?x:null);e.setAttributeForCell(m,"linkTarget",C)},!0,e.getLinkTargetForCell(m))}},
+null,null,"Alt+Shift+L");this.put("insertImage",new Action(mxResources.get("image")+"...",function(){e.isEnabled()&&!e.isCellLocked(e.getDefaultParent())&&(e.clearSelection(),d.actions.get("image").funct())})).isEnabled=k;this.put("insertLink",new Action(mxResources.get("link")+"...",function(){e.isEnabled()&&!e.isCellLocked(e.getDefaultParent())&&d.showLinkDialog("",mxResources.get("insert"),function(m,r,x){m=mxUtils.trim(m);if(0<m.length){var B=null,C=e.getLinkTitle(m);null!=r&&0<r.length&&(B=r[0].iconUrl,
+C=r[0].name||r[0].type,C=C.charAt(0).toUpperCase()+C.substring(1),30<C.length&&(C=C.substring(0,30)+"..."));r=new mxCell(C,new mxGeometry(0,0,100,40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+(null!=B?"shape=label;imageWidth=16;imageHeight=16;spacingLeft=26;align=left;image="+B:"spacing=10;"));r.vertex=!0;B=e.getCenterInsertPoint(e.getBoundingBoxFromGeometry([r],!0));r.geometry.x=B.x;r.geometry.y=B.y;e.setAttributeForCell(r,"linkTarget",x);e.setLinkForCell(r,m);e.cellSizeUpdated(r,
+!0);e.getModel().beginUpdate();try{r=e.addCell(r),e.fireEvent(new mxEventObject("cellsInserted","cells",[r]))}finally{e.getModel().endUpdate()}e.setSelectionCell(r);e.scrollCellToVisible(e.getSelectionCell())}},!0)})).isEnabled=k;this.addAction("link...",mxUtils.bind(this,function(){if(e.isEnabled())if(e.cellEditor.isContentEditing()){var m=e.getSelectedElement(),r=e.getParentByName(m,"A",e.cellEditor.textarea),x="";if(null==r&&null!=m&&null!=m.getElementsByTagName)for(var B=m.getElementsByTagName("a"),
+C=0;C<B.length&&null==r;C++)B[C].textContent==m.textContent&&(r=B[C]);null!=r&&"A"==r.nodeName&&(x=r.getAttribute("href")||"",e.selectNode(r));var G=e.cellEditor.saveSelection();d.showLinkDialog(x,mxResources.get("apply"),mxUtils.bind(this,function(J){e.cellEditor.restoreSelection(G);null!=J&&e.insertLink(J)}))}else e.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=k;this.addAction("autosize",function(){var m=e.getSelectionCells();if(null!=m){e.getModel().beginUpdate();
try{for(var r=0;r<m.length;r++){var x=m[r];0<e.getModel().getChildCount(x)?e.updateGroupBounds([x],0,!0):e.updateCellSize(x)}}finally{e.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+Y");this.addAction("snapToGrid",function(){e.snapCellsToGrid(e.getSelectionCells(),e.gridSize)});this.addAction("formattedText",function(){e.stopEditing();var m=e.getCommonStyle(e.getSelectionCells());m="1"==mxUtils.getValue(m,"html","0")?null:"1";e.getModel().beginUpdate();try{for(var r=e.getEditableCells(e.getSelectionCells()),
-x=0;x<r.length;x++)if(state=e.getView().getState(r[x]),null!=state){var A=mxUtils.getValue(state.style,"html","0");if("1"==A&&null==m){var C=e.convertValueToString(state.cell);"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(C=C.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));var F=document.createElement("div");F.innerHTML=e.sanitizeHtml(C);C=mxUtils.extractTextWithWhitespace(F.childNodes);e.cellLabelChanged(state.cell,C);e.setCellStyles("html",m,[r[x]])}else"0"==A&&"1"==m&&(C=mxUtils.htmlEntities(e.convertValueToString(state.cell),
+x=0;x<r.length;x++)if(state=e.getView().getState(r[x]),null!=state){var B=mxUtils.getValue(state.style,"html","0");if("1"==B&&null==m){var C=e.convertValueToString(state.cell);"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(C=C.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));var G=document.createElement("div");G.innerHTML=e.sanitizeHtml(C);C=mxUtils.extractTextWithWhitespace(G.childNodes);e.cellLabelChanged(state.cell,C);e.setCellStyles("html",m,[r[x]])}else"0"==B&&"1"==m&&(C=mxUtils.htmlEntities(e.convertValueToString(state.cell),
!1),"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(C=C.replace(/\n/g,"<br/>")),e.cellLabelChanged(state.cell,e.sanitizeHtml(C)),e.setCellStyles("html",m,[r[x]]))}d.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!=m?m:"0"],"cells",r))}finally{e.getModel().endUpdate()}});this.addAction("wordWrap",function(){var m=e.getView().getState(e.getSelectionCell()),r="wrap";e.stopEditing();null!=m&&"wrap"==m.style[mxConstants.STYLE_WHITE_SPACE]&&(r=null);e.setCellStyles(mxConstants.STYLE_WHITE_SPACE,
r)});this.addAction("rotation",function(){var m="0",r=e.getView().getState(e.getSelectionCell());null!=r&&(m=r.style[mxConstants.STYLE_ROTATION]||m);m=new FilenameDialog(d,m,mxResources.get("apply"),function(x){null!=x&&0<x.length&&e.setCellStyles(mxConstants.STYLE_ROTATION,x)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");d.showDialog(m.container,375,80,!0,!0);m.init()});this.addAction("resetView",function(){e.zoomTo(1);d.resetScrollbars()},null,null,"Enter/Home");this.addAction("zoomIn",
function(m){e.isFastZoomEnabled()?e.lazyZoom(!0,!0,d.buttonZoomDelay):e.zoomIn()},null,null,Editor.ctrlKey+" + (Numpad) / Alt+Mousewheel");this.addAction("zoomOut",function(m){e.isFastZoomEnabled()?e.lazyZoom(!1,!0,d.buttonZoomDelay):e.zoomOut()},null,null,Editor.ctrlKey+" - (Numpad) / Alt+Mousewheel");this.addAction("fitWindow",function(){var m=e.isSelectionEmpty()?e.getGraphBounds():e.getBoundingBox(e.getSelectionCells()),r=e.view.translate,x=e.view.scale;m.x=m.x/x-r.x;m.y=m.y/x-r.y;m.width/=x;
@@ -3821,9 +3821,9 @@ n.setEnabled(!1);n=this.addAction("tooltips",function(){e.tooltipHandler.setEnab
n.isEnabled=k;n=this.addAction("scrollbars",function(){d.setScrollbars(!d.hasScrollbars())});n.setToggleAction(!0);n.setSelectedCallback(function(){return e.scrollbars});n=this.addAction("pageView",mxUtils.bind(this,function(){d.setPageVisible(!e.pageVisible)}));n.setToggleAction(!0);n.setSelectedCallback(function(){return e.pageVisible});n=this.addAction("connectionArrows",function(){e.connectionArrowsEnabled=!e.connectionArrowsEnabled;d.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,
null,"Alt+Shift+A");n.setToggleAction(!0);n.setSelectedCallback(function(){return e.connectionArrowsEnabled});n=this.addAction("connectionPoints",function(){e.setConnectable(!e.connectionHandler.isEnabled());d.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Alt+Shift+P");n.setToggleAction(!0);n.setSelectedCallback(function(){return e.connectionHandler.isEnabled()});n=this.addAction("copyConnect",function(){e.connectionHandler.setCreateTarget(!e.connectionHandler.isCreateTarget());
d.fireEvent(new mxEventObject("copyConnectChanged"))});n.setToggleAction(!0);n.setSelectedCallback(function(){return e.connectionHandler.isCreateTarget()});n.isEnabled=k;n=this.addAction("autosave",function(){d.editor.setAutosave(!d.editor.autosave)});n.setToggleAction(!0);n.setSelectedCallback(function(){return d.editor.autosave});n.isEnabled=k;n.visible=!1;this.addAction("help",function(){var m="";mxResources.isLanguageSupported(mxClient.language)&&(m="_"+mxClient.language);e.openLink(RESOURCES_PATH+
-"/help"+m+".html")});var u=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){u||(d.showDialog((new AboutDialog(d)).container,320,280,!0,!0,function(){u=!1}),u=!0)}));n=mxUtils.bind(this,function(m,r,x,A){return this.addAction(m,function(){if(null!=x&&e.cellEditor.isContentEditing())x();else{e.stopEditing(!1);e.getModel().beginUpdate();try{var C=e.getEditableCells(e.getSelectionCells());e.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,r,C);(r&mxConstants.FONT_BOLD)==
-mxConstants.FONT_BOLD?e.updateLabelElements(C,function(K){K.style.fontWeight=null;"B"==K.nodeName&&e.replaceElement(K)}):(r&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?e.updateLabelElements(C,function(K){K.style.fontStyle=null;"I"==K.nodeName&&e.replaceElement(K)}):(r&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&e.updateLabelElements(C,function(K){K.style.textDecoration=null;"U"==K.nodeName&&e.replaceElement(K)});for(var F=0;F<C.length;F++)0==e.model.getChildCount(C[F])&&e.autoSizeCell(C[F],
-!1)}finally{e.getModel().endUpdate()}}},null,null,A)});n("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");n("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},Editor.ctrlKey+"+I");n("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},Editor.ctrlKey+"+U");this.addAction("fontColor...",function(){d.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});this.addAction("strokeColor...",
+"/help"+m+".html")});var u=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){u||(d.showDialog((new AboutDialog(d)).container,320,280,!0,!0,function(){u=!1}),u=!0)}));n=mxUtils.bind(this,function(m,r,x,B){return this.addAction(m,function(){if(null!=x&&e.cellEditor.isContentEditing())x();else{e.stopEditing(!1);e.getModel().beginUpdate();try{var C=e.getEditableCells(e.getSelectionCells());e.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,r,C);(r&mxConstants.FONT_BOLD)==
+mxConstants.FONT_BOLD?e.updateLabelElements(C,function(J){J.style.fontWeight=null;"B"==J.nodeName&&e.replaceElement(J)}):(r&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?e.updateLabelElements(C,function(J){J.style.fontStyle=null;"I"==J.nodeName&&e.replaceElement(J)}):(r&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&e.updateLabelElements(C,function(J){J.style.textDecoration=null;"U"==J.nodeName&&e.replaceElement(J)});for(var G=0;G<C.length;G++)0==e.model.getChildCount(C[G])&&e.autoSizeCell(C[G],
+!1)}finally{e.getModel().endUpdate()}}},null,null,B)});n("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");n("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},Editor.ctrlKey+"+I");n("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},Editor.ctrlKey+"+U");this.addAction("fontColor...",function(){d.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});this.addAction("strokeColor...",
function(){d.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){d.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){d.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});this.addAction("backgroundColor...",function(){d.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){d.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)});this.addAction("vertical",function(){d.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,
!0)});this.addAction("shadow",function(){d.menus.toggleStyle(mxConstants.STYLE_SHADOW)});this.addAction("solid",function(){e.getModel().beginUpdate();try{e.setCellStyles(mxConstants.STYLE_DASHED,null),e.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",e.getSelectionCells()))}finally{e.getModel().endUpdate()}});this.addAction("dashed",function(){e.getModel().beginUpdate();
try{e.setCellStyles(mxConstants.STYLE_DASHED,"1"),e.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",e.getSelectionCells()))}finally{e.getModel().endUpdate()}});this.addAction("dotted",function(){e.getModel().beginUpdate();try{e.setCellStyles(mxConstants.STYLE_DASHED,"1"),e.setCellStyles(mxConstants.STYLE_DASH_PATTERN,"1 4"),d.fireEvent(new mxEventObject("styleChanged",
@@ -3832,14 +3832,14 @@ this.addAction("rounded",function(){e.getModel().beginUpdate();try{e.setCellStyl
x="1"==mxUtils.getValue(r,mxConstants.STYLE_ROUNDED,"0")?"0":"1";e.setCellStyles(mxConstants.STYLE_ROUNDED,x);e.setCellStyles(mxConstants.STYLE_CURVED,null);d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[x,"0"],"cells",e.getSelectionCells()))}finally{e.getModel().endUpdate()}}});this.addAction("curved",function(){e.getModel().beginUpdate();try{e.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),e.setCellStyles(mxConstants.STYLE_CURVED,
"1"),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",e.getSelectionCells()))}finally{e.getModel().endUpdate()}});this.addAction("collapsible",function(){var m=e.view.getState(e.getSelectionCell()),r="1";null!=m&&null!=e.getFoldingImage(m)&&(r="0");e.setCellStyles("collapsible",r);d.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[r],"cells",e.getSelectionCells()))});this.addAction("editStyle...",
mxUtils.bind(this,function(){var m=e.getEditableCells(e.getSelectionCells());if(null!=m&&0<m.length){var r=e.getModel();r=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",r.getStyle(m[0])||"",function(x){null!=x&&e.setCellStyle(mxUtils.trim(x),m)},null,null,400,220);this.editorUi.showDialog(r.container,420,300,!0,!0);r.init()}}),null,null,Editor.ctrlKey+"+E");this.addAction("setAsDefaultStyle",function(){e.isEnabled()&&!e.isSelectionEmpty()&&d.setDefaultStyle(e.getSelectionCell())},
-null,null,Editor.ctrlKey+"+Shift+D");this.addAction("clearDefaultStyle",function(){e.isEnabled()&&d.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var m=e.getSelectionCell();if(null!=m&&e.getModel().isEdge(m)){var r=g.graph.selectionCellsHandler.getHandler(m);if(r instanceof mxEdgeHandler){var x=e.view.translate,A=e.view.scale,C=x.x;x=x.y;m=e.getModel().getParent(m);for(var F=e.getCellGeometry(m);e.getModel().isVertex(m)&&null!=F;)C+=F.x,x+=F.y,m=
-e.getModel().getParent(m),F=e.getCellGeometry(m);C=Math.round(e.snap(e.popupMenuHandler.triggerX/A-C));A=Math.round(e.snap(e.popupMenuHandler.triggerY/A-x));r.addPointAt(r.state,C,A)}}});this.addAction("removeWaypoint",function(){var m=d.actions.get("removeWaypoint");null!=m.handler&&m.handler.removePoint(m.handler.state,m.index)});this.addAction("clearWaypoints",function(m,r){m=null!=r?r:m;var x=e.getSelectionCells();if(null!=x){x=e.getEditableCells(e.addAllEdges(x));e.getModel().beginUpdate();try{for(var A=
-0;A<x.length;A++){var C=x[A];if(e.getModel().isEdge(C)){var F=e.getCellGeometry(C);null!=r&&mxEvent.isShiftDown(m)?(e.setCellStyles(mxConstants.STYLE_EXIT_X,null,[C]),e.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[C]),e.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[C]),e.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[C])):null!=F&&(F=F.clone(),F.points=null,F.x=0,F.y=0,F.offset=null,e.getModel().setGeometry(C,F))}}}finally{e.getModel().endUpdate()}}},null,null,"Alt+Shift+C");n=this.addAction("subscript",
+null,null,Editor.ctrlKey+"+Shift+D");this.addAction("clearDefaultStyle",function(){e.isEnabled()&&d.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var m=e.getSelectionCell();if(null!=m&&e.getModel().isEdge(m)){var r=g.graph.selectionCellsHandler.getHandler(m);if(r instanceof mxEdgeHandler){var x=e.view.translate,B=e.view.scale,C=x.x;x=x.y;m=e.getModel().getParent(m);for(var G=e.getCellGeometry(m);e.getModel().isVertex(m)&&null!=G;)C+=G.x,x+=G.y,m=
+e.getModel().getParent(m),G=e.getCellGeometry(m);C=Math.round(e.snap(e.popupMenuHandler.triggerX/B-C));B=Math.round(e.snap(e.popupMenuHandler.triggerY/B-x));r.addPointAt(r.state,C,B)}}});this.addAction("removeWaypoint",function(){var m=d.actions.get("removeWaypoint");null!=m.handler&&m.handler.removePoint(m.handler.state,m.index)});this.addAction("clearWaypoints",function(m,r){m=null!=r?r:m;var x=e.getSelectionCells();if(null!=x){x=e.getEditableCells(e.addAllEdges(x));e.getModel().beginUpdate();try{for(var B=
+0;B<x.length;B++){var C=x[B];if(e.getModel().isEdge(C)){var G=e.getCellGeometry(C);null!=r&&mxEvent.isShiftDown(m)?(e.setCellStyles(mxConstants.STYLE_EXIT_X,null,[C]),e.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[C]),e.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[C]),e.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[C])):null!=G&&(G=G.clone(),G.points=null,G.x=0,G.y=0,G.offset=null,e.getModel().setGeometry(C,G))}}}finally{e.getModel().endUpdate()}}},null,null,"Alt+Shift+C");n=this.addAction("subscript",
mxUtils.bind(this,function(){e.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");n=this.addAction("superscript",mxUtils.bind(this,function(){e.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...",function(){if(e.isEnabled()&&!e.isCellLocked(e.getDefaultParent())){var m=mxResources.get("image")+" ("+mxResources.get("url")+"):",r=e.getView().getState(e.getSelectionCell()),
-x="",A=null;null!=r&&(x=r.style[mxConstants.STYLE_IMAGE]||x,A=r.style[mxConstants.STYLE_CLIP_PATH]||A);var C=e.cellEditor.saveSelection();d.showImageDialog(m,x,function(F,K,D,O,Q,R){if(e.cellEditor.isContentEditing())e.cellEditor.restoreSelection(C),e.insertImage(F,K,D);else{var P=e.getSelectionCells();if(null!=F&&(0<F.length||0<P.length)){var Z=null;e.getModel().beginUpdate();try{if(0==P.length){P=[e.insertVertex(e.getDefaultParent(),null,"",0,0,K,D,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")];
-var T=e.getCenterInsertPoint(e.getBoundingBoxFromGeometry(P,!0));P[0].geometry.x=T.x;P[0].geometry.y=T.y;null!=O&&f(P[0],O,Q,R,e);Z=P;e.fireEvent(new mxEventObject("cellsInserted","cells",Z))}e.setCellStyles(mxConstants.STYLE_IMAGE,0<F.length?F:null,P);var U=e.getCurrentCellStyle(P[0]);"image"!=U[mxConstants.STYLE_SHAPE]&&"label"!=U[mxConstants.STYLE_SHAPE]?e.setCellStyles(mxConstants.STYLE_SHAPE,"image",P):0==F.length&&e.setCellStyles(mxConstants.STYLE_SHAPE,null,P);if(1==e.getSelectionCount()&&
-null!=K&&null!=D){var fa=P[0],ha=e.getModel().getGeometry(fa);null!=ha&&(ha=ha.clone(),ha.width=K,ha.height=D,e.getModel().setGeometry(fa,ha));null!=O?f(fa,O,Q,R,e):e.setCellStyles(mxConstants.STYLE_CLIP_PATH,null,P)}}finally{e.getModel().endUpdate()}null!=Z&&(e.setSelectionCells(Z),e.scrollCellToVisible(Z[0]))}}},e.cellEditor.isContentEditing(),!e.cellEditor.isContentEditing(),!0,A)}}).isEnabled=k;this.addAction("crop...",function(){var m=e.getSelectionCell();if(e.isEnabled()&&!e.isCellLocked(e.getDefaultParent())&&
-null!=m){var r=e.getCurrentCellStyle(m),x=r[mxConstants.STYLE_IMAGE],A=r[mxConstants.STYLE_SHAPE];x&&"image"==A&&(r=new CropImageDialog(d,x,r[mxConstants.STYLE_CLIP_PATH],function(C,F,K){f(m,C,F,K,e)}),d.showDialog(r.container,300,390,!0,!0))}}).isEnabled=k;n=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(d,document.body.offsetWidth-280,120,212,200),this.layersWindow.window.addListener("show",mxUtils.bind(this,function(){d.fireEvent(new mxEventObject("layers"))})),
+x="",B=null;null!=r&&(x=r.style[mxConstants.STYLE_IMAGE]||x,B=r.style[mxConstants.STYLE_CLIP_PATH]||B);var C=e.cellEditor.saveSelection();d.showImageDialog(m,x,function(G,J,D,N,Q,R){if(e.cellEditor.isContentEditing())e.cellEditor.restoreSelection(C),e.insertImage(G,J,D);else{var P=e.getSelectionCells();if(null!=G&&(0<G.length||0<P.length)){var Z=null;e.getModel().beginUpdate();try{if(0==P.length){P=[e.insertVertex(e.getDefaultParent(),null,"",0,0,J,D,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")];
+var U=e.getCenterInsertPoint(e.getBoundingBoxFromGeometry(P,!0));P[0].geometry.x=U.x;P[0].geometry.y=U.y;null!=N&&f(P[0],N,Q,R,e);Z=P;e.fireEvent(new mxEventObject("cellsInserted","cells",Z))}e.setCellStyles(mxConstants.STYLE_IMAGE,0<G.length?G:null,P);var V=e.getCurrentCellStyle(P[0]);"image"!=V[mxConstants.STYLE_SHAPE]&&"label"!=V[mxConstants.STYLE_SHAPE]?e.setCellStyles(mxConstants.STYLE_SHAPE,"image",P):0==G.length&&e.setCellStyles(mxConstants.STYLE_SHAPE,null,P);if(1==e.getSelectionCount()&&
+null!=J&&null!=D){var ia=P[0],ha=e.getModel().getGeometry(ia);null!=ha&&(ha=ha.clone(),ha.width=J,ha.height=D,e.getModel().setGeometry(ia,ha));null!=N?f(ia,N,Q,R,e):e.setCellStyles(mxConstants.STYLE_CLIP_PATH,null,P)}}finally{e.getModel().endUpdate()}null!=Z&&(e.setSelectionCells(Z),e.scrollCellToVisible(Z[0]))}}},e.cellEditor.isContentEditing(),!e.cellEditor.isContentEditing(),!0,B)}}).isEnabled=k;this.addAction("crop...",function(){var m=e.getSelectionCell();if(e.isEnabled()&&!e.isCellLocked(e.getDefaultParent())&&
+null!=m){var r=e.getCurrentCellStyle(m),x=r[mxConstants.STYLE_IMAGE],B=r[mxConstants.STYLE_SHAPE];x&&"image"==B&&(r=new CropImageDialog(d,x,r[mxConstants.STYLE_CLIP_PATH],function(C,G,J){f(m,C,G,J,e)}),d.showDialog(r.container,300,390,!0,!0))}}).isEnabled=k;n=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(d,document.body.offsetWidth-280,120,212,200),this.layersWindow.window.addListener("show",mxUtils.bind(this,function(){d.fireEvent(new mxEventObject("layers"))})),
this.layersWindow.window.addListener("hide",function(){d.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),d.fireEvent(new mxEventObject("layers")),this.layersWindow.init()):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");n.setToggleAction(!0);n.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));n=this.addAction("formatPanel",mxUtils.bind(this,
function(){d.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");n.setToggleAction(!0);n.setSelectedCallback(mxUtils.bind(this,function(){return 0<d.formatWidth}));n=this.addAction("outline",mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(d,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",mxUtils.bind(this,function(){d.fireEvent(new mxEventObject("outline"))})),this.outlineWindow.window.addListener("hide",function(){d.fireEvent(new mxEventObject("outline"))}),
this.outlineWindow.window.setVisible(!0),d.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+O");n.setToggleAction(!0);n.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}));this.addAction("editConnectionPoints...",function(){var m=e.getSelectionCell();if(e.isEnabled()&&!e.isCellLocked(e.getDefaultParent())&&null!=m){var r=new ConnectionPointsDialog(d,
@@ -3851,7 +3851,7 @@ function(u){u.removeAttribute("face");u.style.fontFamily=null;"PRE"==u.nodeName&
mxResources.get("custom")+"...","",mxConstants.DEFAULT_FONTFAMILY,mxConstants.STYLE_FONTFAMILY,g,!0,mxUtils.bind(this,function(n){0>mxUtils.indexOf(this.customFonts,n)&&(this.customFonts.push(n),this.editorUi.fireEvent(new mxEventObject("customFontsChanged")))}))})));this.put("formatBlock",new Menu(mxUtils.bind(this,function(d,g){function e(k,n){return d.addItem(k,null,mxUtils.bind(this,function(){null!=b.cellEditor.textarea&&(b.cellEditor.textarea.focus(),document.execCommand("formatBlock",!1,"<"+
n+">"))}),g)}e(mxResources.get("normal"),"p");e("","h1").firstChild.nextSibling.innerHTML='<h1 style="margin:0px;">'+mxResources.get("heading")+" 1</h1>";e("","h2").firstChild.nextSibling.innerHTML='<h2 style="margin:0px;">'+mxResources.get("heading")+" 2</h2>";e("","h3").firstChild.nextSibling.innerHTML='<h3 style="margin:0px;">'+mxResources.get("heading")+" 3</h3>";e("","h4").firstChild.nextSibling.innerHTML='<h4 style="margin:0px;">'+mxResources.get("heading")+" 4</h4>";e("","h5").firstChild.nextSibling.innerHTML=
'<h5 style="margin:0px;">'+mxResources.get("heading")+" 5</h5>";e("","h6").firstChild.nextSibling.innerHTML='<h6 style="margin:0px;">'+mxResources.get("heading")+" 6</h6>";e("","pre").firstChild.nextSibling.innerHTML='<pre style="margin:0px;">'+mxResources.get("formatted")+"</pre>";e("","blockquote").firstChild.nextSibling.innerHTML='<blockquote style="margin-top:0px;margin-bottom:0px;">'+mxResources.get("blockquote")+"</blockquote>"})));this.put("fontSize",new Menu(mxUtils.bind(this,function(d,g){var e=
-[6,8,9,10,11,12,14,18,24,36,48,72];0>mxUtils.indexOf(e,this.defaultFontSize)&&(e.push(this.defaultFontSize),e.sort(function(x,A){return x-A}));for(var k=mxUtils.bind(this,function(x){if(null!=b.cellEditor.textarea){document.execCommand("fontSize",!1,"3");for(var A=b.cellEditor.textarea.getElementsByTagName("font"),C=0;C<A.length;C++)if("3"==A[C].getAttribute("size")){A[C].removeAttribute("size");A[C].style.fontSize=x+"px";break}a.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTSIZE],
+[6,8,9,10,11,12,14,18,24,36,48,72];0>mxUtils.indexOf(e,this.defaultFontSize)&&(e.push(this.defaultFontSize),e.sort(function(x,B){return x-B}));for(var k=mxUtils.bind(this,function(x){if(null!=b.cellEditor.textarea){document.execCommand("fontSize",!1,"3");for(var B=b.cellEditor.textarea.getElementsByTagName("font"),C=0;C<B.length;C++)if("3"==B[C].getAttribute("size")){B[C].removeAttribute("size");B[C].style.fontSize=x+"px";break}a.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTSIZE],
"values",[x],"cells",[b.cellEditor.getEditingCell()]))}}),n=mxUtils.bind(this,function(x){this.styleChange(d,x,[mxConstants.STYLE_FONTSIZE],[x],null,g,function(){k(x)})}),u=0;u<e.length;u++)n(e[u]);d.addSeparator(g);if(0<this.customFontSizes.length){var m=0;for(u=0;u<this.customFontSizes.length;u++)0>mxUtils.indexOf(e,this.customFontSizes[u])&&(n(this.customFontSizes[u]),m++);0<m&&d.addSeparator(g);d.addItem(mxResources.get("reset"),null,mxUtils.bind(this,function(){this.customFontSizes=[]}),g);d.addSeparator(g)}var r=
null;this.promptChange(d,mxResources.get("custom")+"...","("+mxResources.get("points")+")",this.defaultFontSize,mxConstants.STYLE_FONTSIZE,g,!0,mxUtils.bind(this,function(x){null!=r&&null!=b.cellEditor.textarea&&(b.cellEditor.textarea.focus(),b.cellEditor.restoreSelection(r));null!=x&&0<x.length&&(this.customFontSizes.push(x),k(x))}),null,function(){r=b.cellEditor.saveSelection();return!1})})));this.put("direction",new Menu(mxUtils.bind(this,function(d,g){d.addItem(mxResources.get("flipH"),null,function(){b.toggleCellStyles(mxConstants.STYLE_FLIPH,
!1)},g);d.addItem(mxResources.get("flipV"),null,function(){b.toggleCellStyles(mxConstants.STYLE_FLIPV,!1)},g);this.addMenuItems(d,["-","rotation"],g)})));this.put("align",new Menu(mxUtils.bind(this,function(d,g){var e=1<this.editorUi.getSelectionState().vertices.length;d.addItem(mxResources.get("leftAlign"),null,function(){b.alignCells(mxConstants.ALIGN_LEFT)},g,null,e);d.addItem(mxResources.get("center"),null,function(){b.alignCells(mxConstants.ALIGN_CENTER)},g,null,e);d.addItem(mxResources.get("rightAlign"),
@@ -3874,24 +3874,24 @@ g){this.addMenuItems(d,["resetView","-"],g);for(var e=[.25,.5,.75,1,1.25,1.5,2,3
"undo redo - cut copy paste delete - duplicate - editData editTooltip - editStyle - edit - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))})));this.put("extras",new Menu(mxUtils.bind(this,function(d,g){this.addMenuItems(d,["copyConnect","collapseExpand","-","editDiagram"])})));this.put("help",new Menu(mxUtils.bind(this,function(d,g){this.addMenuItems(d,["help","-","about"])})))};Menus.prototype.put=function(a,b){return this.menus[a]=b};
Menus.prototype.get=function(a){return this.menus[a]};Menus.prototype.addSubmenu=function(a,b,f,d){var g=this.get(a);null!=g&&(g=g.isEnabled(),b.showDisabled||g)&&(f=b.addItem(d||mxResources.get(a),null,null,f,null,g),this.addMenu(a,b,f))};Menus.prototype.addMenu=function(a,b,f){var d=this.get(a);null!=d&&(b.showDisabled||d.isEnabled())&&this.get(a).execute(b,f)};
Menus.prototype.addInsertTableCellItem=function(a,b){var f=this.editorUi.editor.graph,d=f.getSelectionCell(),g=f.getCurrentCellStyle(d);1<f.getSelectionCount()&&(f.isTableCell(d)&&(d=f.model.getParent(d)),f.isTableRow(d)&&(d=f.model.getParent(d)));var e=f.isTable(d)||f.isTableRow(d)||f.isTableCell(d),k=f.isStack(d)||f.isStackChild(d),n=e,u=e;k&&(g=f.isStack(d)?g:f.getCellStyle(f.model.getParent(d)),u="0"==g.horizontalStack,n=!u);null!=b||!e&&!k?this.addInsertTableItem(a,mxUtils.bind(this,function(m,
-r,x,A,C){r=C||mxEvent.isControlDown(m)||mxEvent.isMetaDown(m)?f.createCrossFunctionalSwimlane(r,x,null,null,A||mxEvent.isShiftDown(m)?"Cross-Functional Flowchart":null):f.createTable(r,x,null,null,A||mxEvent.isShiftDown(m)?"Table":null);m=mxEvent.isAltDown(m)?f.getFreeInsertPoint():f.getCenterInsertPoint(f.getBoundingBoxFromGeometry([r],!0));x=null;f.getModel().beginUpdate();try{x=f.importCells([r],m.x,m.y),f.fireEvent(new mxEventObject("cellsInserted","cells",f.model.getDescendants(x[0])))}finally{f.getModel().endUpdate()}null!=
+r,x,B,C){r=C||mxEvent.isControlDown(m)||mxEvent.isMetaDown(m)?f.createCrossFunctionalSwimlane(r,x,null,null,B||mxEvent.isShiftDown(m)?"Cross-Functional Flowchart":null):f.createTable(r,x,null,null,B||mxEvent.isShiftDown(m)?"Table":null);m=mxEvent.isAltDown(m)?f.getFreeInsertPoint():f.getCenterInsertPoint(f.getBoundingBoxFromGeometry([r],!0));x=null;f.getModel().beginUpdate();try{x=f.importCells([r],m.x,m.y),f.fireEvent(new mxEventObject("cellsInserted","cells",f.model.getDescendants(x[0])))}finally{f.getModel().endUpdate()}null!=
x&&0<x.length&&(f.scrollCellToVisible(x[0]),f.setSelectionCells(x))}),b):(n&&(b=a.addItem(mxResources.get("insertColumnBefore"),null,mxUtils.bind(this,function(){try{k?f.insertLane(d,!0):f.insertTableColumn(d,!0)}catch(m){this.editorUi.handleError(m)}}),null,"geIcon geSprite geSprite-insertcolumnbefore"),b.setAttribute("title",mxResources.get("insertColumnBefore")),b=a.addItem(mxResources.get("insertColumnAfter"),null,mxUtils.bind(this,function(){try{k?f.insertLane(d,!1):f.insertTableColumn(d,!1)}catch(m){this.editorUi.handleError(m)}}),
null,"geIcon geSprite geSprite-insertcolumnafter"),b.setAttribute("title",mxResources.get("insertColumnAfter")),b=a.addItem(mxResources.get("deleteColumn"),null,mxUtils.bind(this,function(){if(null!=d)try{k?f.deleteLane(d):f.deleteTableColumn(d)}catch(m){this.editorUi.handleError(m)}}),null,"geIcon geSprite geSprite-deletecolumn"),b.setAttribute("title",mxResources.get("deleteColumn"))),u&&(b=a.addItem(mxResources.get("insertRowBefore"),null,mxUtils.bind(this,function(){try{k?f.insertLane(d,!0):f.insertTableRow(d,
!0)}catch(m){this.editorUi.handleError(m)}}),null,"geIcon geSprite geSprite-insertrowbefore"),b.setAttribute("title",mxResources.get("insertRowBefore")),b=a.addItem(mxResources.get("insertRowAfter"),null,mxUtils.bind(this,function(){try{k?f.insertLane(d,!1):f.insertTableRow(d,!1)}catch(m){this.editorUi.handleError(m)}}),null,"geIcon geSprite geSprite-insertrowafter"),b.setAttribute("title",mxResources.get("insertRowAfter")),b=a.addItem(mxResources.get("deleteRow"),null,mxUtils.bind(this,function(){try{k?
f.deleteLane(d):f.deleteTableRow(d)}catch(m){this.editorUi.handleError(m)}}),null,"geIcon geSprite geSprite-deleterow"),b.setAttribute("title",mxResources.get("deleteRow")),u=this.editorUi.getSelectionState(),null!=u.mergeCell?this.addMenuItem(a,"mergeCells"):(1<u.style.colspan||1<u.style.rowspan)&&this.addMenuItem(a,"unmergeCells")))};
-Menus.prototype.addInsertTableItem=function(a,b,f,d){function g(C){n=e.getParentByName(mxEvent.getSource(C),"TD");var F=!1;if(null!=n){k=e.getParentByName(n,"TR");var K=mxEvent.isMouseEvent(C)?2:4,D=x,O=Math.min(20,k.sectionRowIndex+K);K=Math.min(20,n.cellIndex+K);for(var Q=D.rows.length;Q<O;Q++)for(var R=D.insertRow(Q),P=0;P<D.rows[0].cells.length;P++)R.insertCell(-1);for(Q=0;Q<D.rows.length;Q++)for(R=D.rows[Q],P=R.cells.length;P<K;P++)R.insertCell(-1);A.innerHTML=n.cellIndex+1+"x"+(k.sectionRowIndex+
-1);for(D=0;D<x.rows.length;D++)for(O=x.rows[D],K=0;K<O.cells.length;K++)Q=O.cells[K],D==k.sectionRowIndex&&K==n.cellIndex&&(F="blue"==Q.style.backgroundColor),Q.style.backgroundColor=D<=k.sectionRowIndex&&K<=n.cellIndex?"blue":"transparent"}mxEvent.consume(C);return F}d=null!=d?d:!0;b=null!=b?b:mxUtils.bind(this,function(C,F,K){var D=this.editorUi.editor.graph;C=D.getParentByName(mxEvent.getSource(C),"TD");if(null!=C&&null!=D.cellEditor.textarea){D.getParentByName(C,"TR");var O=D.cellEditor.textarea.getElementsByTagName("table");
-C=[];for(var Q=0;Q<O.length;Q++)C.push(O[Q]);D.container.focus();Q=D.pasteHtmlAtCaret;O=["<table>"];for(var R=0;R<F;R++){O.push("<tr>");for(var P=0;P<K;P++)O.push("<td><br></td>");O.push("</tr>")}O.push("</table>");F=O.join("");Q.call(D,F);F=D.cellEditor.textarea.getElementsByTagName("table");if(F.length==C.length+1)for(Q=F.length-1;0<=Q;Q--)if(0==Q||F[Q]!=C[Q-1]){D.selectNode(F[Q].rows[0].cells[0]);break}}});var e=this.editorUi.editor.graph,k=null,n=null;null==f&&(a.div.className+=" geToolbarMenu",
+Menus.prototype.addInsertTableItem=function(a,b,f,d){function g(C){n=e.getParentByName(mxEvent.getSource(C),"TD");var G=!1;if(null!=n){k=e.getParentByName(n,"TR");var J=mxEvent.isMouseEvent(C)?2:4,D=x,N=Math.min(20,k.sectionRowIndex+J);J=Math.min(20,n.cellIndex+J);for(var Q=D.rows.length;Q<N;Q++)for(var R=D.insertRow(Q),P=0;P<D.rows[0].cells.length;P++)R.insertCell(-1);for(Q=0;Q<D.rows.length;Q++)for(R=D.rows[Q],P=R.cells.length;P<J;P++)R.insertCell(-1);B.innerHTML=n.cellIndex+1+"x"+(k.sectionRowIndex+
+1);for(D=0;D<x.rows.length;D++)for(N=x.rows[D],J=0;J<N.cells.length;J++)Q=N.cells[J],D==k.sectionRowIndex&&J==n.cellIndex&&(G="blue"==Q.style.backgroundColor),Q.style.backgroundColor=D<=k.sectionRowIndex&&J<=n.cellIndex?"blue":"transparent"}mxEvent.consume(C);return G}d=null!=d?d:!0;b=null!=b?b:mxUtils.bind(this,function(C,G,J){var D=this.editorUi.editor.graph;C=D.getParentByName(mxEvent.getSource(C),"TD");if(null!=C&&null!=D.cellEditor.textarea){D.getParentByName(C,"TR");var N=D.cellEditor.textarea.getElementsByTagName("table");
+C=[];for(var Q=0;Q<N.length;Q++)C.push(N[Q]);D.container.focus();Q=D.pasteHtmlAtCaret;N=["<table>"];for(var R=0;R<G;R++){N.push("<tr>");for(var P=0;P<J;P++)N.push("<td><br></td>");N.push("</tr>")}N.push("</table>");G=N.join("");Q.call(D,G);G=D.cellEditor.textarea.getElementsByTagName("table");if(G.length==C.length+1)for(Q=G.length-1;0<=Q;Q--)if(0==Q||G[Q]!=C[Q-1]){D.selectNode(G[Q].rows[0].cells[0]);break}}});var e=this.editorUi.editor.graph,k=null,n=null;null==f&&(a.div.className+=" geToolbarMenu",
a.labels=!1);a=a.addItem("",null,null,f,null,null,null,!0);a.firstChild.style.fontSize=Menus.prototype.defaultFontSize+"px";a.firstChild.innerText="";var u=document.createElement("input");u.setAttribute("id","geTitleOption");u.setAttribute("type","checkbox");f=document.createElement("label");mxUtils.write(f,mxResources.get("title"));f.setAttribute("for","geTitleOption");mxEvent.addGestureListeners(f,null,null,mxUtils.bind(this,function(C){mxEvent.consume(C)}));mxEvent.addGestureListeners(u,null,null,
mxUtils.bind(this,function(C){mxEvent.consume(C)}));var m=document.createElement("input");m.setAttribute("id","geContainerOption");m.setAttribute("type","checkbox");var r=document.createElement("label");mxUtils.write(r,mxResources.get("container"));r.setAttribute("for","geContainerOption");mxEvent.addGestureListeners(r,null,null,mxUtils.bind(this,function(C){mxEvent.consume(C)}));mxEvent.addGestureListeners(m,null,null,mxUtils.bind(this,function(C){mxEvent.consume(C)}));d&&(a.firstChild.appendChild(u),
-a.firstChild.appendChild(f),mxUtils.br(a.firstChild),a.firstChild.appendChild(m),a.firstChild.appendChild(r),mxUtils.br(a.firstChild),mxUtils.br(a.firstChild));var x=function(C,F){var K=document.createElement("table");K.setAttribute("border","1");K.style.borderCollapse="collapse";K.style.borderStyle="solid";K.setAttribute("cellPadding","8");for(var D=0;D<C;D++)for(var O=K.insertRow(D),Q=0;Q<F;Q++)O.insertCell(-1);return K}(5,5);a.firstChild.appendChild(x);var A=document.createElement("div");A.style.padding=
-"4px";A.innerHTML="1x1";a.firstChild.appendChild(A);mxEvent.addGestureListeners(x,null,null,mxUtils.bind(this,function(C){var F=g(C);null!=n&&null!=k&&F&&(b(C,k.sectionRowIndex+1,n.cellIndex+1,u.checked,m.checked),window.setTimeout(mxUtils.bind(this,function(){this.editorUi.hideCurrentMenu()}),0))}));mxEvent.addListener(x,"mouseover",g)};
-Menus.prototype.edgeStyleChange=function(a,b,f,d,g,e,k,n){return this.showIconOnly(a.addItem(b,n,mxUtils.bind(this,function(){var u=this.editorUi.editor.graph;u.stopEditing(!1);u.getModel().beginUpdate();try{for(var m=u.getSelectionCells(),r=[],x=0;x<m.length;x++){var A=m[x];if(u.getModel().isEdge(A)){if(k){var C=u.getCellGeometry(A);null!=C&&(C=C.clone(),C.points=null,u.getModel().setGeometry(A,C))}for(var F=0;F<f.length;F++)u.setCellStyles(f[F],d[F],[A]);r.push(A)}}this.editorUi.fireEvent(new mxEventObject("styleChanged",
+a.firstChild.appendChild(f),mxUtils.br(a.firstChild),a.firstChild.appendChild(m),a.firstChild.appendChild(r),mxUtils.br(a.firstChild),mxUtils.br(a.firstChild));var x=function(C,G){var J=document.createElement("table");J.setAttribute("border","1");J.style.borderCollapse="collapse";J.style.borderStyle="solid";J.setAttribute("cellPadding","8");for(var D=0;D<C;D++)for(var N=J.insertRow(D),Q=0;Q<G;Q++)N.insertCell(-1);return J}(5,5);a.firstChild.appendChild(x);var B=document.createElement("div");B.style.padding=
+"4px";B.innerHTML="1x1";a.firstChild.appendChild(B);mxEvent.addGestureListeners(x,null,null,mxUtils.bind(this,function(C){var G=g(C);null!=n&&null!=k&&G&&(b(C,k.sectionRowIndex+1,n.cellIndex+1,u.checked,m.checked),window.setTimeout(mxUtils.bind(this,function(){this.editorUi.hideCurrentMenu()}),0))}));mxEvent.addListener(x,"mouseover",g)};
+Menus.prototype.edgeStyleChange=function(a,b,f,d,g,e,k,n){return this.showIconOnly(a.addItem(b,n,mxUtils.bind(this,function(){var u=this.editorUi.editor.graph;u.stopEditing(!1);u.getModel().beginUpdate();try{for(var m=u.getSelectionCells(),r=[],x=0;x<m.length;x++){var B=m[x];if(u.getModel().isEdge(B)){if(k){var C=u.getCellGeometry(B);null!=C&&(C=C.clone(),C.points=null,u.getModel().setGeometry(B,C))}for(var G=0;G<f.length;G++)u.setCellStyles(f[G],d[G],[B]);r.push(B)}}this.editorUi.fireEvent(new mxEventObject("styleChanged",
"keys",f,"values",d,"cells",r))}finally{u.getModel().endUpdate()}}),e,g))};Menus.prototype.showIconOnly=function(a){var b=a.getElementsByTagName("td");for(i=0;i<b.length;i++)"mxPopupMenuItem"==b[i].getAttribute("class")&&(b[i].style.display="none");return a};
Menus.prototype.styleChange=function(a,b,f,d,g,e,k,n,u){var m=this.createStyleChangeFunction(f,d);a=a.addItem(b,null,mxUtils.bind(this,function(){var r=this.editorUi.editor.graph;null!=k&&r.cellEditor.isContentEditing()?k():m(n)}),e,g);u&&this.showIconOnly(a);return a};
Menus.prototype.createStyleChangeFunction=function(a,b){return mxUtils.bind(this,function(f){var d=this.editorUi.editor.graph;d.stopEditing(!1);d.getModel().beginUpdate();try{for(var g=d.getEditableCells(d.getSelectionCells()),e=!1,k=0;k<a.length;k++)if(d.setCellStyles(a[k],b[k],g),a[k]==mxConstants.STYLE_ALIGN&&d.updateLabelElements(g,function(n){n.removeAttribute("align");n.style.textAlign=null}),a[k]==mxConstants.STYLE_FONTFAMILY||"fontSource"==a[k])e=!0;if(e)for(e=0;e<g.length;e++)0==d.model.getChildCount(g[e])&&
d.autoSizeCell(g[e],!1);null!=f&&f();this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",a,"values",b,"cells",g))}finally{d.getModel().endUpdate()}})};
-Menus.prototype.promptChange=function(a,b,f,d,g,e,k,n,u,m){return a.addItem(b,null,mxUtils.bind(this,function(){var r=this.editorUi.editor.graph,x=d,A=r.getView().getState(r.getSelectionCell());null!=A&&(x=A.style[g]||x);var C=null!=m?m():!0;x=new FilenameDialog(this.editorUi,x,mxResources.get("apply"),mxUtils.bind(this,function(F){if(null!=F&&0<F.length){if(C){r.getModel().beginUpdate();try{r.stopEditing(!1),r.setCellStyles(g,F)}finally{r.getModel().endUpdate()}}null!=n&&n(F)}}),mxResources.get("enterValue")+
+Menus.prototype.promptChange=function(a,b,f,d,g,e,k,n,u,m){return a.addItem(b,null,mxUtils.bind(this,function(){var r=this.editorUi.editor.graph,x=d,B=r.getView().getState(r.getSelectionCell());null!=B&&(x=B.style[g]||x);var C=null!=m?m():!0;x=new FilenameDialog(this.editorUi,x,mxResources.get("apply"),mxUtils.bind(this,function(G){if(null!=G&&0<G.length){if(C){r.getModel().beginUpdate();try{r.stopEditing(!1),r.setCellStyles(g,G)}finally{r.getModel().endUpdate()}}null!=n&&n(G)}}),mxResources.get("enterValue")+
(0<f.length?" "+f:""),null,null,null,null,function(){null!=n&&null!=m&&n(null)});this.editorUi.showDialog(x.container,300,80,!0,!0);x.init()}),e,u,k)};
Menus.prototype.pickColor=function(a,b,f){var d=this.editorUi,g=d.editor.graph,e=226+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12));if(null!=b&&g.cellEditor.isContentEditing()){var k=g.cellEditor.saveSelection();a=new ColorDialog(this.editorUi,f||g.shapeForegroundColor,mxUtils.bind(this,function(u){g.cellEditor.restoreSelection(k);document.execCommand(b,!1,u!=mxConstants.NONE?u:"transparent");var m={forecolor:mxConstants.STYLE_FONTCOLOR,
backcolor:mxConstants.STYLE_LABEL_BACKGROUNDCOLOR}[b];null!=m&&d.fireEvent(new mxEventObject("styleChanged","keys",[m],"values",[u],"cells",[g.cellEditor.getEditingCell()]))}),function(){g.cellEditor.restoreSelection(k)});this.editorUi.showDialog(a.container,230,e,!0,!0);a.init()}else{null==this.colorDialog&&(this.colorDialog=new ColorDialog(this.editorUi));this.colorDialog.currentColorKey=a;f=g.getView().getState(g.getSelectionCell());var n=mxConstants.NONE;null!=f&&(n=f.style[a]||n);n==mxConstants.NONE?
@@ -3949,9 +3949,9 @@ this.addSeparator();d=this.addMenuFunction("",mxResources.get("insert"),!0,mxUti
!1,mxUtils.bind(this,function(e){var k=b.getSelectedElement(),n=b.getParentByNames(k,["TD","TH"],b.cellEditor.text2),u=b.getParentByName(k,"TR",b.cellEditor.text2);if(null==u)this.editorUi.menus.addInsertTableItem(e);else{var m=b.getParentByName(u,"TABLE",b.cellEditor.text2);k=e.addItem("",null,mxUtils.bind(this,function(){try{b.selectNode(b.insertColumn(m,null!=n?n.cellIndex:0))}catch(r){this.editorUi.handleError(r)}}),null,"geIcon geSprite geSprite-insertcolumnbefore");k.setAttribute("title",mxResources.get("insertColumnBefore"));
k=e.addItem("",null,mxUtils.bind(this,function(){try{b.selectNode(b.insertColumn(m,null!=n?n.cellIndex+1:-1))}catch(r){this.editorUi.handleError(r)}}),null,"geIcon geSprite geSprite-insertcolumnafter");k.setAttribute("title",mxResources.get("insertColumnAfter"));k=e.addItem("Delete column",null,mxUtils.bind(this,function(){if(null!=n)try{b.deleteColumn(m,n.cellIndex)}catch(r){this.editorUi.handleError(r)}}),null,"geIcon geSprite geSprite-deletecolumn");k.setAttribute("title",mxResources.get("deleteColumn"));
k=e.addItem("",null,mxUtils.bind(this,function(){try{b.selectNode(b.insertRow(m,u.sectionRowIndex))}catch(r){this.editorUi.handleError(r)}}),null,"geIcon geSprite geSprite-insertrowbefore");k.setAttribute("title",mxResources.get("insertRowBefore"));k=e.addItem("",null,mxUtils.bind(this,function(){try{b.selectNode(b.insertRow(m,u.sectionRowIndex+1))}catch(r){this.editorUi.handleError(r)}}),null,"geIcon geSprite geSprite-insertrowafter");k.setAttribute("title",mxResources.get("insertRowAfter"));k=e.addItem("",
-null,mxUtils.bind(this,function(){try{b.deleteRow(m,u.sectionRowIndex)}catch(r){this.editorUi.handleError(r)}}),null,"geIcon geSprite geSprite-deleterow");k.setAttribute("title",mxResources.get("deleteRow"));k=e.addItem("",null,mxUtils.bind(this,function(){var r=m.style.borderColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(x,A,C,F){return"#"+("0"+Number(A).toString(16)).substr(-2)+("0"+Number(C).toString(16)).substr(-2)+("0"+Number(F).toString(16)).substr(-2)});this.editorUi.pickColor(r,
-function(x){null==x||x==mxConstants.NONE?(m.removeAttribute("border"),m.style.border="",m.style.borderCollapse=""):(m.setAttribute("border","1"),m.style.border="1px solid "+x,m.style.borderCollapse="collapse")})}),null,"geIcon geSprite geSprite-strokecolor");k.setAttribute("title",mxResources.get("borderColor"));k=e.addItem("",null,mxUtils.bind(this,function(){var r=m.style.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(x,A,C,F){return"#"+("0"+Number(A).toString(16)).substr(-2)+
-("0"+Number(C).toString(16)).substr(-2)+("0"+Number(F).toString(16)).substr(-2)});this.editorUi.pickColor(r,function(x){m.style.backgroundColor=null==x||x==mxConstants.NONE?"":x})}),null,"geIcon geSprite geSprite-fillcolor");k.setAttribute("title",mxResources.get("backgroundColor"));k=e.addItem("",null,mxUtils.bind(this,function(){var r=m.getAttribute("cellPadding")||0;r=new FilenameDialog(this.editorUi,r,mxResources.get("apply"),mxUtils.bind(this,function(x){null!=x&&0<x.length?m.setAttribute("cellPadding",
+null,mxUtils.bind(this,function(){try{b.deleteRow(m,u.sectionRowIndex)}catch(r){this.editorUi.handleError(r)}}),null,"geIcon geSprite geSprite-deleterow");k.setAttribute("title",mxResources.get("deleteRow"));k=e.addItem("",null,mxUtils.bind(this,function(){var r=m.style.borderColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(x,B,C,G){return"#"+("0"+Number(B).toString(16)).substr(-2)+("0"+Number(C).toString(16)).substr(-2)+("0"+Number(G).toString(16)).substr(-2)});this.editorUi.pickColor(r,
+function(x){null==x||x==mxConstants.NONE?(m.removeAttribute("border"),m.style.border="",m.style.borderCollapse=""):(m.setAttribute("border","1"),m.style.border="1px solid "+x,m.style.borderCollapse="collapse")})}),null,"geIcon geSprite geSprite-strokecolor");k.setAttribute("title",mxResources.get("borderColor"));k=e.addItem("",null,mxUtils.bind(this,function(){var r=m.style.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(x,B,C,G){return"#"+("0"+Number(B).toString(16)).substr(-2)+
+("0"+Number(C).toString(16)).substr(-2)+("0"+Number(G).toString(16)).substr(-2)});this.editorUi.pickColor(r,function(x){m.style.backgroundColor=null==x||x==mxConstants.NONE?"":x})}),null,"geIcon geSprite geSprite-fillcolor");k.setAttribute("title",mxResources.get("backgroundColor"));k=e.addItem("",null,mxUtils.bind(this,function(){var r=m.getAttribute("cellPadding")||0;r=new FilenameDialog(this.editorUi,r,mxResources.get("apply"),mxUtils.bind(this,function(x){null!=x&&0<x.length?m.setAttribute("cellPadding",
x):m.removeAttribute("cellPadding")}),mxResources.get("spacing"));this.editorUi.showDialog(r.container,300,80,!0,!0);r.init()}),null,"geIcon geSprite geSprite-fit");k.setAttribute("title",mxResources.get("spacing"));k=e.addItem("",null,mxUtils.bind(this,function(){m.setAttribute("align","left")}),null,"geIcon geSprite geSprite-left");k.setAttribute("title",mxResources.get("left"));k=e.addItem("",null,mxUtils.bind(this,function(){m.setAttribute("align","center")}),null,"geIcon geSprite geSprite-center");
k.setAttribute("title",mxResources.get("center"));k=e.addItem("",null,mxUtils.bind(this,function(){m.setAttribute("align","right")}),null,"geIcon geSprite geSprite-right");k.setAttribute("title",mxResources.get("right"))}}));g.style.position="relative";g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.width="30px";g.innerText="";f=document.createElement("div");f.className="geSprite geSprite-table";f.style.marginLeft="-2px";g.appendChild(f);this.appendDropDownImageHtml(g);EditorUi.compactUi&&
(g.getElementsByTagName("img")[0].style.left="22px",g.getElementsByTagName("img")[0].style.top="5px")};Toolbar.prototype.hideMenu=function(){this.editorUi.hideCurrentMenu()};Toolbar.prototype.addMenu=function(a,b,f,d,g,e,k){var n=this.editorUi.menus.get(d),u=this.addMenuFunction(a,b,f,function(){n.funct.apply(n,arguments)},g,e);k||"function"!==typeof u.setEnabled||n.addListener("stateChanged",function(){u.setEnabled(n.enabled)});return u};
@@ -3961,90 +3961,90 @@ Toolbar.prototype.addButton=function(a,b,f,d){a=this.createButton(a);d=null!=d?d
Toolbar.prototype.addClickHandler=function(a,b){null!=b&&(mxEvent.addListener(a,"click",function(f){a.enabled&&b(f);mxEvent.consume(f)}),mxEvent.addListener(a,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(f){f.preventDefault()})))};Toolbar.prototype.createButton=function(a){var b=document.createElement("a");b.className="geButton";var f=document.createElement("div");null!=a&&(f.className="geSprite "+a);b.appendChild(f);return b};
Toolbar.prototype.createLabel=function(a,b){b=document.createElement("a");b.className="geLabel";mxUtils.write(b,a);return b};
Toolbar.prototype.addMenuHandler=function(a,b,f,d){if(null!=f){var g=this.editorUi.editor.graph,e=null,k=!0;mxEvent.addListener(a,"click",mxUtils.bind(this,function(n){if(k&&(null==a.enabled||a.enabled)){g.popupMenuHandler.hideMenu();e=new mxPopupMenu(f);e.div.className+=" geToolbarMenu";e.showDisabled=d;e.labels=b;e.autoExpand=!0;!b&&e.div.scrollHeight>e.div.clientHeight&&(e.div.style.width="40px");e.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(e,arguments);this.editorUi.resetCurrentMenu();
-e.destroy()});var u=mxUtils.getOffset(a);e.popup(u.x,u.y+a.offsetHeight,null,n);this.editorUi.setCurrentMenu(e,a)}k=!0;mxEvent.consume(n)}));mxEvent.addListener(a,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(n){k=null==e||null==e.div||null==e.div.parentNode;n.preventDefault()}))}};Toolbar.prototype.destroy=function(){null!=this.gestureHandler&&(mxEvent.removeGestureListeners(document,this.gestureHandler),this.gestureHandler=null)};var OpenDialog=function(){var a=document.createElement("iframe");a.style.backgroundColor="transparent";a.allowTransparency="true";a.style.borderStyle="none";a.style.borderWidth="0px";a.style.overflow="hidden";a.frameBorder="0";a.setAttribute("width",(Editor.useLocalStorage?640:320)+"px");a.setAttribute("height",(Editor.useLocalStorage?480:220)+"px");a.setAttribute("src",OPEN_FORM);this.container=a},ColorDialog=function(a,b,f,d){function g(){var K=k.value;/(^#?[a-zA-Z0-9]*$)/.test(K)?("none"!=K&&"#"!=
-K.charAt(0)&&(K="#"+K),ColorDialog.addRecentColor("none"!=K?K.substring(1):K,12),n(K),a.hideDialog()):a.handleError({message:mxResources.get("invalidInput")})}function e(){var K=r(0==ColorDialog.recentColors.length?["FFFFFF"]:ColorDialog.recentColors,11,"FFFFFF",!0);K.style.marginBottom="8px";return K}this.editorUi=a;var k=document.createElement("input");k.style.marginBottom="10px";mxClient.IS_IE&&(k.style.marginTop="10px",document.body.appendChild(k));var n=null!=f?f:this.createApplyFunction();this.init=
-function(){mxClient.IS_TOUCH||k.focus()};var u=new mxJSColor.color(k);u.pickerOnfocus=!1;u.showPicker();f=document.createElement("div");mxJSColor.picker.box.style.position="relative";mxJSColor.picker.box.style.width="230px";mxJSColor.picker.box.style.height="100px";mxJSColor.picker.box.style.paddingBottom="10px";f.appendChild(mxJSColor.picker.box);var m=document.createElement("center"),r=mxUtils.bind(this,function(K,D,O,Q){D=null!=D?D:12;var R=document.createElement("table");R.style.borderCollapse=
-"collapse";R.setAttribute("cellspacing","0");R.style.marginBottom="20px";R.style.cellSpacing="0px";R.style.marginLeft="1px";var P=document.createElement("tbody");R.appendChild(P);for(var Z=K.length/D,T=0;T<Z;T++){for(var U=document.createElement("tr"),fa=0;fa<D;fa++)mxUtils.bind(this,function(ha){var ba=document.createElement("td");ba.style.border="0px solid black";ba.style.padding="0px";ba.style.width="16px";ba.style.height="16px";null==ha&&(ha=O);if(null!=ha){ba.style.borderWidth="1px";"none"==
-ha?ba.style.background="url('"+Dialog.prototype.noColorImage+"')":ba.style.backgroundColor="#"+ha;var qa=this.colorNames[ha.toUpperCase()];null!=qa&&ba.setAttribute("title",qa)}U.appendChild(ba);null!=ha&&(ba.style.cursor="pointer",mxEvent.addListener(ba,"click",function(){"none"==ha?(u.fromString("ffffff"),k.value="none"):u.fromString(ha)}),mxEvent.addListener(ba,"dblclick",g))})(K[T*D+fa]);P.appendChild(U)}Q&&(K=document.createElement("td"),K.setAttribute("title",mxResources.get("reset")),K.style.border=
-"1px solid black",K.style.padding="0px",K.style.width="16px",K.style.height="16px",K.style.backgroundImage="url('"+Dialog.prototype.closeImage+"')",K.style.backgroundPosition="center center",K.style.backgroundRepeat="no-repeat",K.style.cursor="pointer",U.appendChild(K),mxEvent.addListener(K,"click",function(){ColorDialog.resetRecentColors();R.parentNode.replaceChild(e(),R)}));m.appendChild(R);return R});f.appendChild(k);if(mxClient.IS_IE||mxClient.IS_IE11)k.style.width="216px";else{k.style.width=
-"182px";var x=document.createElement("input");x.setAttribute("type","color");x.style.visibility="hidden";x.style.width="0px";x.style.height="0px";x.style.border="none";x.style.marginLeft="2px";f.style.whiteSpace="nowrap";f.appendChild(x);f.appendChild(mxUtils.button("...",function(){document.activeElement==x?k.focus():(x.value="#"+k.value,x.click())}));mxEvent.addListener(x,"input",function(){u.fromString(x.value.substring(1))})}mxUtils.br(f);e();var A=r(this.presetColors);A.style.marginBottom="8px";
-A=r(this.defaultColors);A.style.marginBottom="16px";f.appendChild(m);A=document.createElement("div");A.style.textAlign="right";A.style.whiteSpace="nowrap";var C=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=d&&d()});C.className="geBtn";a.editor.cancelFirst&&A.appendChild(C);var F=mxUtils.button(mxResources.get("apply"),g);F.className="geBtn gePrimaryBtn";A.appendChild(F);a.editor.cancelFirst||A.appendChild(C);null!=b&&("none"==b?(u.fromString("ffffff"),k.value="none"):u.fromString(b));
-f.appendChild(A);this.picker=u;this.colorInput=k;mxEvent.addListener(f,"keydown",function(K){27==K.keyCode&&(a.hideDialog(),null!=d&&d(),mxEvent.consume(K))});this.container=f};ColorDialog.prototype.presetColors="E6D0DE CDA2BE B5739D E1D5E7 C3ABD0 A680B8 D4E1F5 A9C4EB 7EA6E0 D5E8D4 9AC7BF 67AB9F D5E8D4 B9E0A5 97D077 FFF2CC FFE599 FFD966 FFF4C3 FFCE9F FFB570 F8CECC F19C99 EA6B66".split(" ");ColorDialog.prototype.colorNames={};ColorDialog.prototype.defaultColors="none FFFFFF E6E6E6 CCCCCC B3B3B3 999999 808080 666666 4D4D4D 333333 1A1A1A 000000 FFCCCC FFE6CC FFFFCC E6FFCC CCFFCC CCFFE6 CCFFFF CCE5FF CCCCFF E5CCFF FFCCFF FFCCE6 FF9999 FFCC99 FFFF99 CCFF99 99FF99 99FFCC 99FFFF 99CCFF 9999FF CC99FF FF99FF FF99CC FF6666 FFB366 FFFF66 B3FF66 66FF66 66FFB3 66FFFF 66B2FF 6666FF B266FF FF66FF FF66B3 FF3333 FF9933 FFFF33 99FF33 33FF33 33FF99 33FFFF 3399FF 3333FF 9933FF FF33FF FF3399 FF0000 FF8000 FFFF00 80FF00 00FF00 00FF80 00FFFF 007FFF 0000FF 7F00FF FF00FF FF0080 CC0000 CC6600 CCCC00 66CC00 00CC00 00CC66 00CCCC 0066CC 0000CC 6600CC CC00CC CC0066 990000 994C00 999900 4D9900 009900 00994D 009999 004C99 000099 4C0099 990099 99004D 660000 663300 666600 336600 006600 006633 006666 003366 000066 330066 660066 660033 330000 331A00 333300 1A3300 003300 00331A 003333 001933 000033 190033 330033 33001A".split(" ");
+e.destroy()});var u=mxUtils.getOffset(a);e.popup(u.x,u.y+a.offsetHeight,null,n);this.editorUi.setCurrentMenu(e,a)}k=!0;mxEvent.consume(n)}));mxEvent.addListener(a,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(n){k=null==e||null==e.div||null==e.div.parentNode;n.preventDefault()}))}};Toolbar.prototype.destroy=function(){null!=this.gestureHandler&&(mxEvent.removeGestureListeners(document,this.gestureHandler),this.gestureHandler=null)};var OpenDialog=function(){var a=document.createElement("iframe");a.style.backgroundColor="transparent";a.allowTransparency="true";a.style.borderStyle="none";a.style.borderWidth="0px";a.style.overflow="hidden";a.frameBorder="0";a.setAttribute("width",(Editor.useLocalStorage?640:320)+"px");a.setAttribute("height",(Editor.useLocalStorage?480:220)+"px");a.setAttribute("src",OPEN_FORM);this.container=a},ColorDialog=function(a,b,f,d){function g(){var J=k.value;/(^#?[a-zA-Z0-9]*$)/.test(J)?("none"!=J&&"#"!=
+J.charAt(0)&&(J="#"+J),ColorDialog.addRecentColor("none"!=J?J.substring(1):J,12),n(J),a.hideDialog()):a.handleError({message:mxResources.get("invalidInput")})}function e(){var J=r(0==ColorDialog.recentColors.length?["FFFFFF"]:ColorDialog.recentColors,11,"FFFFFF",!0);J.style.marginBottom="8px";return J}this.editorUi=a;var k=document.createElement("input");k.style.marginBottom="10px";mxClient.IS_IE&&(k.style.marginTop="10px",document.body.appendChild(k));var n=null!=f?f:this.createApplyFunction();this.init=
+function(){mxClient.IS_TOUCH||k.focus()};var u=new mxJSColor.color(k);u.pickerOnfocus=!1;u.showPicker();f=document.createElement("div");mxJSColor.picker.box.style.position="relative";mxJSColor.picker.box.style.width="230px";mxJSColor.picker.box.style.height="100px";mxJSColor.picker.box.style.paddingBottom="10px";f.appendChild(mxJSColor.picker.box);var m=document.createElement("center"),r=mxUtils.bind(this,function(J,D,N,Q){D=null!=D?D:12;var R=document.createElement("table");R.style.borderCollapse=
+"collapse";R.setAttribute("cellspacing","0");R.style.marginBottom="20px";R.style.cellSpacing="0px";R.style.marginLeft="1px";var P=document.createElement("tbody");R.appendChild(P);for(var Z=J.length/D,U=0;U<Z;U++){for(var V=document.createElement("tr"),ia=0;ia<D;ia++)mxUtils.bind(this,function(ha){var ba=document.createElement("td");ba.style.border="0px solid black";ba.style.padding="0px";ba.style.width="16px";ba.style.height="16px";null==ha&&(ha=N);if(null!=ha){ba.style.borderWidth="1px";"none"==
+ha?ba.style.background="url('"+Dialog.prototype.noColorImage+"')":ba.style.backgroundColor="#"+ha;var qa=this.colorNames[ha.toUpperCase()];null!=qa&&ba.setAttribute("title",qa)}V.appendChild(ba);null!=ha&&(ba.style.cursor="pointer",mxEvent.addListener(ba,"click",function(){"none"==ha?(u.fromString("ffffff"),k.value="none"):u.fromString(ha)}),mxEvent.addListener(ba,"dblclick",g))})(J[U*D+ia]);P.appendChild(V)}Q&&(J=document.createElement("td"),J.setAttribute("title",mxResources.get("reset")),J.style.border=
+"1px solid black",J.style.padding="0px",J.style.width="16px",J.style.height="16px",J.style.backgroundImage="url('"+Dialog.prototype.closeImage+"')",J.style.backgroundPosition="center center",J.style.backgroundRepeat="no-repeat",J.style.cursor="pointer",V.appendChild(J),mxEvent.addListener(J,"click",function(){ColorDialog.resetRecentColors();R.parentNode.replaceChild(e(),R)}));m.appendChild(R);return R});f.appendChild(k);if(mxClient.IS_IE||mxClient.IS_IE11)k.style.width="216px";else{k.style.width=
+"182px";var x=document.createElement("input");x.setAttribute("type","color");x.style.visibility="hidden";x.style.width="0px";x.style.height="0px";x.style.border="none";x.style.marginLeft="2px";f.style.whiteSpace="nowrap";f.appendChild(x);f.appendChild(mxUtils.button("...",function(){document.activeElement==x?k.focus():(x.value="#"+k.value,x.click())}));mxEvent.addListener(x,"input",function(){u.fromString(x.value.substring(1))})}mxUtils.br(f);e();var B=r(this.presetColors);B.style.marginBottom="8px";
+B=r(this.defaultColors);B.style.marginBottom="16px";f.appendChild(m);B=document.createElement("div");B.style.textAlign="right";B.style.whiteSpace="nowrap";var C=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=d&&d()});C.className="geBtn";a.editor.cancelFirst&&B.appendChild(C);var G=mxUtils.button(mxResources.get("apply"),g);G.className="geBtn gePrimaryBtn";B.appendChild(G);a.editor.cancelFirst||B.appendChild(C);null!=b&&("none"==b?(u.fromString("ffffff"),k.value="none"):u.fromString(b));
+f.appendChild(B);this.picker=u;this.colorInput=k;mxEvent.addListener(f,"keydown",function(J){27==J.keyCode&&(a.hideDialog(),null!=d&&d(),mxEvent.consume(J))});this.container=f};ColorDialog.prototype.presetColors="E6D0DE CDA2BE B5739D E1D5E7 C3ABD0 A680B8 D4E1F5 A9C4EB 7EA6E0 D5E8D4 9AC7BF 67AB9F D5E8D4 B9E0A5 97D077 FFF2CC FFE599 FFD966 FFF4C3 FFCE9F FFB570 F8CECC F19C99 EA6B66".split(" ");ColorDialog.prototype.colorNames={};ColorDialog.prototype.defaultColors="none FFFFFF E6E6E6 CCCCCC B3B3B3 999999 808080 666666 4D4D4D 333333 1A1A1A 000000 FFCCCC FFE6CC FFFFCC E6FFCC CCFFCC CCFFE6 CCFFFF CCE5FF CCCCFF E5CCFF FFCCFF FFCCE6 FF9999 FFCC99 FFFF99 CCFF99 99FF99 99FFCC 99FFFF 99CCFF 9999FF CC99FF FF99FF FF99CC FF6666 FFB366 FFFF66 B3FF66 66FF66 66FFB3 66FFFF 66B2FF 6666FF B266FF FF66FF FF66B3 FF3333 FF9933 FFFF33 99FF33 33FF33 33FF99 33FFFF 3399FF 3333FF 9933FF FF33FF FF3399 FF0000 FF8000 FFFF00 80FF00 00FF00 00FF80 00FFFF 007FFF 0000FF 7F00FF FF00FF FF0080 CC0000 CC6600 CCCC00 66CC00 00CC00 00CC66 00CCCC 0066CC 0000CC 6600CC CC00CC CC0066 990000 994C00 999900 4D9900 009900 00994D 009999 004C99 000099 4C0099 990099 99004D 660000 663300 666600 336600 006600 006633 006666 003366 000066 330066 660066 660033 330000 331A00 333300 1A3300 003300 00331A 003333 001933 000033 190033 330033 33001A".split(" ");
ColorDialog.prototype.createApplyFunction=function(){return mxUtils.bind(this,function(a){var b=this.editorUi.editor.graph;b.getModel().beginUpdate();try{b.setCellStyles(this.currentColorKey,a),this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",[this.currentColorKey],"values",[a],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}})};ColorDialog.recentColors=[];
ColorDialog.addRecentColor=function(a,b){null!=a&&(mxUtils.remove(a,ColorDialog.recentColors),ColorDialog.recentColors.splice(0,0,a),ColorDialog.recentColors.length>=b&&ColorDialog.recentColors.pop())};ColorDialog.resetRecentColors=function(){ColorDialog.recentColors=[]};
var AboutDialog=function(a){var b=document.createElement("div");b.setAttribute("align","center");var f=document.createElement("h3");mxUtils.write(f,mxResources.get("about")+" GraphEditor");b.appendChild(f);f=document.createElement("img");f.style.border="0px";f.setAttribute("width","176");f.setAttribute("width","151");f.setAttribute("src",IMAGE_PATH+"/logo.png");b.appendChild(f);mxUtils.br(b);mxUtils.write(b,"Powered by mxGraph "+mxClient.VERSION);mxUtils.br(b);f=document.createElement("a");f.setAttribute("href",
-"http://www.jgraph.com/");f.setAttribute("target","_blank");mxUtils.write(f,"www.jgraph.com");b.appendChild(f);mxUtils.br(b);mxUtils.br(b);f=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});f.className="geBtn gePrimaryBtn";b.appendChild(f);this.container=b},TextareaDialog=function(a,b,f,d,g,e,k,n,u,m,r,x,A,C,F){m=null!=m?m:!1;k=document.createElement("div");k.style.position="absolute";k.style.top="20px";k.style.bottom="20px";k.style.left="20px";k.style.right="20px";n=document.createElement("div");
-n.style.position="absolute";n.style.left="0px";n.style.right="0px";var K=n.cloneNode(!1),D=n.cloneNode(!1);n.style.top="0px";n.style.height="20px";K.style.top="20px";K.style.bottom="64px";D.style.bottom="0px";D.style.height="60px";D.style.textAlign="center";mxUtils.write(n,b);k.appendChild(n);k.appendChild(K);k.appendChild(D);null!=F&&n.appendChild(F);var O=document.createElement("textarea");r&&O.setAttribute("wrap","off");O.setAttribute("spellcheck","false");O.setAttribute("autocorrect","off");O.setAttribute("autocomplete",
-"off");O.setAttribute("autocapitalize","off");mxUtils.write(O,f||"");O.style.resize="none";O.style.outline="none";O.style.position="absolute";O.style.boxSizing="border-box";O.style.top="0px";O.style.left="0px";O.style.height="100%";O.style.width="100%";this.textarea=O;this.init=function(){O.focus();O.scrollTop=0};K.appendChild(O);null!=A&&(b=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(A)}),b.className="geBtn",D.appendChild(b));if(null!=C)for(b=0;b<C.length;b++)(function(R,
-P,Z){R=mxUtils.button(R,function(T){P(T,O)});null!=Z&&R.setAttribute("title",Z);R.className="geBtn";D.appendChild(R)})(C[b][0],C[b][1],C[b][2]);e=mxUtils.button(e||mxResources.get("cancel"),function(){a.hideDialog();null!=g&&g()});e.setAttribute("title","Escape");e.className="geBtn";a.editor.cancelFirst&&D.appendChild(e);null!=u&&u(D,O);if(null!=d){var Q=mxUtils.button(x||mxResources.get("apply"),function(){m||a.hideDialog();d(O.value)});Q.setAttribute("title","Ctrl+Enter");Q.className="geBtn gePrimaryBtn";
-D.appendChild(Q);mxEvent.addListener(O,"keypress",function(R){13==R.keyCode&&mxEvent.isControlDown(R)&&Q.click()})}a.editor.cancelFirst||D.appendChild(e);this.container=k},EditDiagramDialog=function(a){var b=document.createElement("div");b.style.textAlign="right";var f=document.createElement("textarea");f.setAttribute("wrap","off");f.setAttribute("spellcheck","false");f.setAttribute("autocorrect","off");f.setAttribute("autocomplete","off");f.setAttribute("autocapitalize","off");f.style.overflow="auto";
+"http://www.jgraph.com/");f.setAttribute("target","_blank");mxUtils.write(f,"www.jgraph.com");b.appendChild(f);mxUtils.br(b);mxUtils.br(b);f=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});f.className="geBtn gePrimaryBtn";b.appendChild(f);this.container=b},TextareaDialog=function(a,b,f,d,g,e,k,n,u,m,r,x,B,C,G){m=null!=m?m:!1;k=document.createElement("div");k.style.position="absolute";k.style.top="20px";k.style.bottom="20px";k.style.left="20px";k.style.right="20px";n=document.createElement("div");
+n.style.position="absolute";n.style.left="0px";n.style.right="0px";var J=n.cloneNode(!1),D=n.cloneNode(!1);n.style.top="0px";n.style.height="20px";J.style.top="20px";J.style.bottom="64px";D.style.bottom="0px";D.style.height="60px";D.style.textAlign="center";mxUtils.write(n,b);k.appendChild(n);k.appendChild(J);k.appendChild(D);null!=G&&n.appendChild(G);var N=document.createElement("textarea");r&&N.setAttribute("wrap","off");N.setAttribute("spellcheck","false");N.setAttribute("autocorrect","off");N.setAttribute("autocomplete",
+"off");N.setAttribute("autocapitalize","off");mxUtils.write(N,f||"");N.style.resize="none";N.style.outline="none";N.style.position="absolute";N.style.boxSizing="border-box";N.style.top="0px";N.style.left="0px";N.style.height="100%";N.style.width="100%";this.textarea=N;this.init=function(){N.focus();N.scrollTop=0};J.appendChild(N);null!=B&&(b=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(B)}),b.className="geBtn",D.appendChild(b));if(null!=C)for(b=0;b<C.length;b++)(function(R,
+P,Z){R=mxUtils.button(R,function(U){P(U,N)});null!=Z&&R.setAttribute("title",Z);R.className="geBtn";D.appendChild(R)})(C[b][0],C[b][1],C[b][2]);e=mxUtils.button(e||mxResources.get("cancel"),function(){a.hideDialog();null!=g&&g()});e.setAttribute("title","Escape");e.className="geBtn";a.editor.cancelFirst&&D.appendChild(e);null!=u&&u(D,N);if(null!=d){var Q=mxUtils.button(x||mxResources.get("apply"),function(){m||a.hideDialog();d(N.value)});Q.setAttribute("title","Ctrl+Enter");Q.className="geBtn gePrimaryBtn";
+D.appendChild(Q);mxEvent.addListener(N,"keypress",function(R){13==R.keyCode&&mxEvent.isControlDown(R)&&Q.click()})}a.editor.cancelFirst||D.appendChild(e);this.container=k},EditDiagramDialog=function(a){var b=document.createElement("div");b.style.textAlign="right";var f=document.createElement("textarea");f.setAttribute("wrap","off");f.setAttribute("spellcheck","false");f.setAttribute("autocorrect","off");f.setAttribute("autocomplete","off");f.setAttribute("autocapitalize","off");f.style.overflow="auto";
f.style.resize="none";f.style.width="600px";f.style.height="360px";f.style.marginBottom="16px";f.value=mxUtils.getPrettyXml(a.editor.getGraphXml());b.appendChild(f);this.init=function(){f.focus()};Graph.fileSupport&&(f.addEventListener("dragover",function(k){k.stopPropagation();k.preventDefault()},!1),f.addEventListener("drop",function(k){k.stopPropagation();k.preventDefault();if(0<k.dataTransfer.files.length){k=k.dataTransfer.files[0];var n=new FileReader;n.onload=function(u){f.value=u.target.result};
n.readAsText(k)}else f.value=a.extractGraphModelFromEvent(k)},!1));var d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});d.className="geBtn";a.editor.cancelFirst&&b.appendChild(d);var g=document.createElement("select");g.style.width="180px";g.className="geBtn";if(a.editor.graph.isEnabled()){var e=document.createElement("option");e.setAttribute("value","replace");mxUtils.write(e,mxResources.get("replaceExistingDrawing"));g.appendChild(e)}e=document.createElement("option");e.setAttribute("value",
"new");mxUtils.write(e,mxResources.get("openInNewWindow"));EditDiagramDialog.showNewWindowOption&&g.appendChild(e);a.editor.graph.isEnabled()&&(e=document.createElement("option"),e.setAttribute("value","import"),mxUtils.write(e,mxResources.get("addToExistingDrawing")),g.appendChild(e));b.appendChild(g);e=mxUtils.button(mxResources.get("ok"),function(){var k=Graph.zapGremlins(mxUtils.trim(f.value)),n=null;if("new"==g.value)a.hideDialog(),a.editor.editAsNew(k);else if("replace"==g.value){a.editor.graph.model.beginUpdate();
try{a.editor.setGraphXml(mxUtils.parseXml(k).documentElement),a.hideDialog()}catch(x){n=x}finally{a.editor.graph.model.endUpdate()}}else if("import"==g.value){a.editor.graph.model.beginUpdate();try{var u=mxUtils.parseXml(k),m=new mxGraphModel;(new mxCodec(u)).decode(u.documentElement,m);var r=m.getChildren(m.getChildAt(m.getRoot(),0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(r));a.hideDialog()}catch(x){n=x}finally{a.editor.graph.model.endUpdate()}}null!=n&&mxUtils.alert(n.message)});
e.className="geBtn gePrimaryBtn";b.appendChild(e);a.editor.cancelFirst||b.appendChild(d);this.container=b};EditDiagramDialog.showNewWindowOption=!0;
-var ExportDialog=function(a){function b(){var U=r.value,fa=U.lastIndexOf(".");r.value=0<fa?U.substring(0,fa+1)+x.value:U+"."+x.value;"xml"===x.value?(A.setAttribute("disabled","true"),C.setAttribute("disabled","true"),F.setAttribute("disabled","true"),P.setAttribute("disabled","true")):(A.removeAttribute("disabled"),C.removeAttribute("disabled"),F.removeAttribute("disabled"),P.removeAttribute("disabled"));"png"===x.value||"svg"===x.value||"pdf"===x.value?Q.removeAttribute("disabled"):Q.setAttribute("disabled",
-"disabled");"png"===x.value||"jpg"===x.value||"pdf"===x.value?R.removeAttribute("disabled"):R.setAttribute("disabled","disabled");"png"===x.value?(K.removeAttribute("disabled"),D.removeAttribute("disabled")):(K.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"))}function f(){C.style.backgroundColor=C.value*F.value>MAX_AREA||0>=C.value?"red":"";F.style.backgroundColor=C.value*F.value>MAX_AREA||0>=F.value?"red":""}var d=a.editor.graph,g=d.getGraphBounds(),e=d.view.scale,k=Math.ceil(g.width/
+var ExportDialog=function(a){function b(){var V=r.value,ia=V.lastIndexOf(".");r.value=0<ia?V.substring(0,ia+1)+x.value:V+"."+x.value;"xml"===x.value?(B.setAttribute("disabled","true"),C.setAttribute("disabled","true"),G.setAttribute("disabled","true"),P.setAttribute("disabled","true")):(B.removeAttribute("disabled"),C.removeAttribute("disabled"),G.removeAttribute("disabled"),P.removeAttribute("disabled"));"png"===x.value||"svg"===x.value||"pdf"===x.value?Q.removeAttribute("disabled"):Q.setAttribute("disabled",
+"disabled");"png"===x.value||"jpg"===x.value||"pdf"===x.value?R.removeAttribute("disabled"):R.setAttribute("disabled","disabled");"png"===x.value?(J.removeAttribute("disabled"),D.removeAttribute("disabled")):(J.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"))}function f(){C.style.backgroundColor=C.value*G.value>MAX_AREA||0>=C.value?"red":"";G.style.backgroundColor=C.value*G.value>MAX_AREA||0>=G.value?"red":""}var d=a.editor.graph,g=d.getGraphBounds(),e=d.view.scale,k=Math.ceil(g.width/
e),n=Math.ceil(g.height/e);e=document.createElement("table");var u=document.createElement("tbody");e.setAttribute("cellpadding",mxClient.IS_SF?"0":"2");g=document.createElement("tr");var m=document.createElement("td");m.style.fontSize="10pt";m.style.width="100px";mxUtils.write(m,mxResources.get("filename")+":");g.appendChild(m);var r=document.createElement("input");r.setAttribute("value",a.editor.getOrCreateFilename());r.style.width="180px";m=document.createElement("td");m.appendChild(r);g.appendChild(m);
u.appendChild(g);g=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("format")+":");g.appendChild(m);var x=document.createElement("select");x.style.width="180px";m=document.createElement("option");m.setAttribute("value","png");mxUtils.write(m,mxResources.get("formatPng"));x.appendChild(m);m=document.createElement("option");ExportDialog.showGifOption&&(m.setAttribute("value","gif"),mxUtils.write(m,mxResources.get("formatGif")),x.appendChild(m));
m=document.createElement("option");m.setAttribute("value","jpg");mxUtils.write(m,mxResources.get("formatJpg"));x.appendChild(m);m=document.createElement("option");m.setAttribute("value","pdf");mxUtils.write(m,mxResources.get("formatPdf"));x.appendChild(m);m=document.createElement("option");m.setAttribute("value","svg");mxUtils.write(m,mxResources.get("formatSvg"));x.appendChild(m);ExportDialog.showXmlOption&&(m=document.createElement("option"),m.setAttribute("value","xml"),mxUtils.write(m,mxResources.get("formatXml")),
-x.appendChild(m));m=document.createElement("td");m.appendChild(x);g.appendChild(m);u.appendChild(g);g=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("zoom")+" (%):");g.appendChild(m);var A=document.createElement("input");A.setAttribute("type","number");A.setAttribute("value","100");A.style.width="180px";m=document.createElement("td");m.appendChild(A);g.appendChild(m);u.appendChild(g);g=document.createElement("tr");m=document.createElement("td");
-m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("width")+":");g.appendChild(m);var C=document.createElement("input");C.setAttribute("value",k);C.style.width="180px";m=document.createElement("td");m.appendChild(C);g.appendChild(m);u.appendChild(g);g=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("height")+":");g.appendChild(m);var F=document.createElement("input");F.setAttribute("value",n);F.style.width="180px";m=document.createElement("td");
-m.appendChild(F);g.appendChild(m);u.appendChild(g);g=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("dpi")+":");g.appendChild(m);var K=document.createElement("select");K.style.width="180px";m=document.createElement("option");m.setAttribute("value","100");mxUtils.write(m,"100dpi");K.appendChild(m);m=document.createElement("option");m.setAttribute("value","200");mxUtils.write(m,"200dpi");K.appendChild(m);m=document.createElement("option");
-m.setAttribute("value","300");mxUtils.write(m,"300dpi");K.appendChild(m);m=document.createElement("option");m.setAttribute("value","400");mxUtils.write(m,"400dpi");K.appendChild(m);m=document.createElement("option");m.setAttribute("value","custom");mxUtils.write(m,mxResources.get("custom"));K.appendChild(m);var D=document.createElement("input");D.style.width="180px";D.style.display="none";D.setAttribute("value","100");D.setAttribute("type","number");D.setAttribute("min","50");D.setAttribute("step",
-"50");var O=!1;mxEvent.addListener(K,"change",function(){"custom"==this.value?(this.style.display="none",D.style.display="",D.focus()):(D.value=this.value,O||(A.value=this.value))});mxEvent.addListener(D,"change",function(){var U=parseInt(D.value);isNaN(U)||0>=U?D.style.backgroundColor="red":(D.style.backgroundColor="",O||(A.value=U))});m=document.createElement("td");m.appendChild(K);m.appendChild(D);g.appendChild(m);u.appendChild(g);g=document.createElement("tr");m=document.createElement("td");m.style.fontSize=
+x.appendChild(m));m=document.createElement("td");m.appendChild(x);g.appendChild(m);u.appendChild(g);g=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("zoom")+" (%):");g.appendChild(m);var B=document.createElement("input");B.setAttribute("type","number");B.setAttribute("value","100");B.style.width="180px";m=document.createElement("td");m.appendChild(B);g.appendChild(m);u.appendChild(g);g=document.createElement("tr");m=document.createElement("td");
+m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("width")+":");g.appendChild(m);var C=document.createElement("input");C.setAttribute("value",k);C.style.width="180px";m=document.createElement("td");m.appendChild(C);g.appendChild(m);u.appendChild(g);g=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("height")+":");g.appendChild(m);var G=document.createElement("input");G.setAttribute("value",n);G.style.width="180px";m=document.createElement("td");
+m.appendChild(G);g.appendChild(m);u.appendChild(g);g=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("dpi")+":");g.appendChild(m);var J=document.createElement("select");J.style.width="180px";m=document.createElement("option");m.setAttribute("value","100");mxUtils.write(m,"100dpi");J.appendChild(m);m=document.createElement("option");m.setAttribute("value","200");mxUtils.write(m,"200dpi");J.appendChild(m);m=document.createElement("option");
+m.setAttribute("value","300");mxUtils.write(m,"300dpi");J.appendChild(m);m=document.createElement("option");m.setAttribute("value","400");mxUtils.write(m,"400dpi");J.appendChild(m);m=document.createElement("option");m.setAttribute("value","custom");mxUtils.write(m,mxResources.get("custom"));J.appendChild(m);var D=document.createElement("input");D.style.width="180px";D.style.display="none";D.setAttribute("value","100");D.setAttribute("type","number");D.setAttribute("min","50");D.setAttribute("step",
+"50");var N=!1;mxEvent.addListener(J,"change",function(){"custom"==this.value?(this.style.display="none",D.style.display="",D.focus()):(D.value=this.value,N||(B.value=this.value))});mxEvent.addListener(D,"change",function(){var V=parseInt(D.value);isNaN(V)||0>=V?D.style.backgroundColor="red":(D.style.backgroundColor="",N||(B.value=V))});m=document.createElement("td");m.appendChild(J);m.appendChild(D);g.appendChild(m);u.appendChild(g);g=document.createElement("tr");m=document.createElement("td");m.style.fontSize=
"10pt";mxUtils.write(m,mxResources.get("background")+":");g.appendChild(m);var Q=document.createElement("input");Q.setAttribute("type","checkbox");Q.checked=null==d.background||d.background==mxConstants.NONE;m=document.createElement("td");m.appendChild(Q);mxUtils.write(m,mxResources.get("transparent"));g.appendChild(m);u.appendChild(g);g=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("grid")+":");g.appendChild(m);var R=document.createElement("input");
R.setAttribute("type","checkbox");R.checked=!1;m=document.createElement("td");m.appendChild(R);g.appendChild(m);u.appendChild(g);g=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("borderWidth")+":");g.appendChild(m);var P=document.createElement("input");P.setAttribute("type","number");P.setAttribute("value",ExportDialog.lastBorderValue);P.style.width="180px";m=document.createElement("td");m.appendChild(P);g.appendChild(m);u.appendChild(g);
-e.appendChild(u);mxEvent.addListener(x,"change",b);b();mxEvent.addListener(A,"change",function(){O=!0;var U=Math.max(0,parseFloat(A.value)||100)/100;A.value=parseFloat((100*U).toFixed(2));0<k?(C.value=Math.floor(k*U),F.value=Math.floor(n*U)):(A.value="100",C.value=k,F.value=n);f()});mxEvent.addListener(C,"change",function(){var U=parseInt(C.value)/k;0<U?(A.value=parseFloat((100*U).toFixed(2)),F.value=Math.floor(n*U)):(A.value="100",C.value=k,F.value=n);f()});mxEvent.addListener(F,"change",function(){var U=
-parseInt(F.value)/n;0<U?(A.value=parseFloat((100*U).toFixed(2)),C.value=Math.floor(k*U)):(A.value="100",C.value=k,F.value=n);f()});g=document.createElement("tr");m=document.createElement("td");m.setAttribute("align","right");m.style.paddingTop="22px";m.colSpan=2;var Z=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(){if(0>=parseInt(A.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var U=r.value,fa=x.value,ha=Math.max(0,parseFloat(A.value)||100)/100,ba=Math.max(0,parseInt(P.value)),
-qa=d.background,I=Math.max(1,parseInt(D.value));if(("svg"==fa||"png"==fa||"pdf"==fa)&&Q.checked)qa=null;else if(null==qa||qa==mxConstants.NONE)qa="#ffffff";ExportDialog.lastBorderValue=ba;ExportDialog.exportFile(a,U,fa,qa,ha,ba,I,R.checked)}}));Z.className="geBtn gePrimaryBtn";var T=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});T.className="geBtn";a.editor.cancelFirst?(m.appendChild(T),m.appendChild(Z)):(m.appendChild(Z),m.appendChild(T));g.appendChild(m);u.appendChild(g);e.appendChild(u);
+e.appendChild(u);mxEvent.addListener(x,"change",b);b();mxEvent.addListener(B,"change",function(){N=!0;var V=Math.max(0,parseFloat(B.value)||100)/100;B.value=parseFloat((100*V).toFixed(2));0<k?(C.value=Math.floor(k*V),G.value=Math.floor(n*V)):(B.value="100",C.value=k,G.value=n);f()});mxEvent.addListener(C,"change",function(){var V=parseInt(C.value)/k;0<V?(B.value=parseFloat((100*V).toFixed(2)),G.value=Math.floor(n*V)):(B.value="100",C.value=k,G.value=n);f()});mxEvent.addListener(G,"change",function(){var V=
+parseInt(G.value)/n;0<V?(B.value=parseFloat((100*V).toFixed(2)),C.value=Math.floor(k*V)):(B.value="100",C.value=k,G.value=n);f()});g=document.createElement("tr");m=document.createElement("td");m.setAttribute("align","right");m.style.paddingTop="22px";m.colSpan=2;var Z=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(){if(0>=parseInt(B.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var V=r.value,ia=x.value,ha=Math.max(0,parseFloat(B.value)||100)/100,ba=Math.max(0,parseInt(P.value)),
+qa=d.background,O=Math.max(1,parseInt(D.value));if(("svg"==ia||"png"==ia||"pdf"==ia)&&Q.checked)qa=null;else if(null==qa||qa==mxConstants.NONE)qa="#ffffff";ExportDialog.lastBorderValue=ba;ExportDialog.exportFile(a,V,ia,qa,ha,ba,O,R.checked)}}));Z.className="geBtn gePrimaryBtn";var U=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});U.className="geBtn";a.editor.cancelFirst?(m.appendChild(U),m.appendChild(Z)):(m.appendChild(Z),m.appendChild(U));g.appendChild(m);u.appendChild(g);e.appendChild(u);
this.container=e};ExportDialog.lastBorderValue=0;ExportDialog.showGifOption=!0;ExportDialog.showXmlOption=!0;
ExportDialog.exportFile=function(a,b,f,d,g,e,k,n){n=a.editor.graph;if("xml"==f)ExportDialog.saveLocalFile(a,mxUtils.getXml(a.editor.getGraphXml()),b,f);else if("svg"==f)ExportDialog.saveLocalFile(a,mxUtils.getXml(n.getSvg(d,g,e)),b,f);else{var u=n.getGraphBounds(),m=mxUtils.createXmlDocument(),r=m.createElement("output");m.appendChild(r);m=new mxXmlCanvas2D(r);m.translate(Math.floor((e/g-u.x)/n.view.scale),Math.floor((e/g-u.y)/n.view.scale));m.scale(g/n.view.scale);(new mxImageExport).drawState(n.getView().getState(n.model.root),
m);r="xml="+encodeURIComponent(mxUtils.getXml(r));m=Math.ceil(u.width*g/n.view.scale+2*e);g=Math.ceil(u.height*g/n.view.scale+2*e);r.length<=MAX_REQUEST_SIZE&&m*g<MAX_AREA?(a.hideDialog(),(new mxXmlRequest(EXPORT_URL,"format="+f+"&filename="+encodeURIComponent(b)+"&bg="+(null!=d?d:"none")+"&w="+m+"&h="+g+"&"+r+"&dpi="+k)).simulate(document,"_blank")):mxUtils.alert(mxResources.get("drawingTooLarge"))}};
ExportDialog.saveLocalFile=function(a,b,f,d){b.length<MAX_REQUEST_SIZE?(a.hideDialog(),(new mxXmlRequest(SAVE_URL,"xml="+encodeURIComponent(b)+"&filename="+encodeURIComponent(f)+"&format="+d)).simulate(document,"_blank")):(mxUtils.alert(mxResources.get("drawingTooLarge")),mxUtils.popup(xml))};
-var EditDataDialog=function(a,b){function f(){0<R.value.length?P.removeAttribute("disabled"):P.setAttribute("disabled","disabled")}var d=document.createElement("div"),g=a.editor.graph,e=g.getModel().getValue(b);if(!mxUtils.isNode(e)){var k=mxUtils.createXmlDocument().createElement("object");k.setAttribute("label",e||"");e=k}var n={};try{var u=mxUtils.getValue(a.editor.graph.getCurrentCellStyle(b),"metaData",null);null!=u&&(n=JSON.parse(u))}catch(T){}var m=new mxForm("properties");m.table.style.width=
-"100%";var r=e.attributes,x=[],A=[],C=0,F=null!=EditDataDialog.getDisplayIdForCell?EditDataDialog.getDisplayIdForCell(a,b):null,K=function(T,U){var fa=document.createElement("div");fa.style.position="relative";fa.style.paddingRight="20px";fa.style.boxSizing="border-box";fa.style.width="100%";var ha=document.createElement("a"),ba=mxUtils.createImage(Dialog.prototype.closeImage);ba.style.height="9px";ba.style.fontSize="9px";ba.style.marginBottom=mxClient.IS_IE11?"-1px":"5px";ha.className="geButton";
-ha.setAttribute("title",mxResources.get("delete"));ha.style.position="absolute";ha.style.top="4px";ha.style.right="0px";ha.style.margin="0px";ha.style.width="9px";ha.style.height="9px";ha.style.cursor="pointer";ha.appendChild(ba);U=function(qa){return function(){for(var I=0,L=0;L<x.length;L++){if(x[L]==qa){A[L]=null;m.table.deleteRow(I+(null!=F?1:0));break}null!=A[L]&&I++}}}(U);mxEvent.addListener(ha,"click",U);U=T.parentNode;fa.appendChild(T);fa.appendChild(ha);U.appendChild(fa)};k=function(T,U,
-fa){x[T]=U;A[T]=m.addTextarea(x[C]+":",fa,2);A[T].style.width="100%";0<fa.indexOf("\n")&&A[T].setAttribute("rows","2");K(A[T],U);null!=n[U]&&0==n[U].editable&&A[T].setAttribute("disabled","disabled")};u=[];for(var D=g.getModel().getParent(b)==g.getModel().getRoot(),O=0;O<r.length;O++)!D&&"label"==r[O].nodeName||"placeholders"==r[O].nodeName||u.push({name:r[O].nodeName,value:r[O].nodeValue});u.sort(function(T,U){return T.name<U.name?-1:T.name>U.name?1:0});if(null!=F){r=document.createElement("div");
-r.style.width="100%";r.style.fontSize="11px";r.style.textAlign="center";mxUtils.write(r,F);var Q=m.addField(mxResources.get("id")+":",r);mxEvent.addListener(r,"dblclick",function(T){mxEvent.isShiftDown(T)&&(T=new FilenameDialog(a,F,mxResources.get("apply"),mxUtils.bind(this,function(U){null!=U&&0<U.length&&U!=F&&(null==g.getModel().getCell(U)?(g.getModel().cellRemoved(b),b.setId(U),F=U,Q.innerHTML=mxUtils.htmlEntities(U),g.getModel().cellAdded(b)):a.handleError({message:mxResources.get("alreadyExst",
-[U])}))}),mxResources.get("id")),a.showDialog(T.container,300,80,!0,!0),T.init())});r.setAttribute("title","Shift+Double Click to Edit ID")}for(O=0;O<u.length;O++)k(C,u[O].name,u[O].value),C++;u=document.createElement("div");u.style.position="absolute";u.style.top="30px";u.style.left="30px";u.style.right="30px";u.style.bottom="80px";u.style.overflowY="auto";u.appendChild(m.table);k=document.createElement("div");k.style.boxSizing="border-box";k.style.paddingRight="160px";k.style.whiteSpace="nowrap";
-k.style.marginTop="6px";k.style.width="100%";var R=document.createElement("input");R.setAttribute("placeholder",mxResources.get("enterPropertyName"));R.setAttribute("type","text");R.setAttribute("size",mxClient.IS_IE||mxClient.IS_IE11?"36":"40");R.style.boxSizing="border-box";R.style.marginLeft="2px";R.style.width="100%";k.appendChild(R);u.appendChild(k);d.appendChild(u);var P=mxUtils.button(mxResources.get("addProperty"),function(){var T=R.value;if(0<T.length&&"label"!=T&&"placeholders"!=T&&0>T.indexOf(":"))try{var U=
-mxUtils.indexOf(x,T);if(0<=U&&null!=A[U])A[U].focus();else{e.cloneNode(!1).setAttribute(T,"");0<=U&&(x.splice(U,1),A.splice(U,1));x.push(T);var fa=m.addTextarea(T+":","",2);fa.style.width="100%";A.push(fa);K(fa,T);fa.focus()}P.setAttribute("disabled","disabled");R.value=""}catch(ha){mxUtils.alert(ha)}else mxUtils.alert(mxResources.get("invalidName"))});mxEvent.addListener(R,"keypress",function(T){13==T.keyCode&&P.click()});this.init=function(){0<A.length?A[0].focus():R.focus()};P.setAttribute("title",
-mxResources.get("addProperty"));P.setAttribute("disabled","disabled");P.style.textOverflow="ellipsis";P.style.position="absolute";P.style.overflow="hidden";P.style.width="144px";P.style.right="0px";P.className="geBtn";k.appendChild(P);u=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog.apply(a,arguments)});u.setAttribute("title","Escape");u.className="geBtn";var Z=mxUtils.button(mxResources.get("apply"),function(){try{a.hideDialog.apply(a,arguments);e=e.cloneNode(!0);for(var T=!1,U=
-0;U<x.length;U++)null==A[U]?e.removeAttribute(x[U]):(e.setAttribute(x[U],A[U].value),T=T||"placeholder"==x[U]&&"1"==e.getAttribute("placeholders"));T&&e.removeAttribute("label");g.getModel().setValue(b,e)}catch(fa){mxUtils.alert(fa)}});Z.setAttribute("title","Ctrl+Enter");Z.className="geBtn gePrimaryBtn";mxEvent.addListener(d,"keypress",function(T){13==T.keyCode&&mxEvent.isControlDown(T)&&Z.click()});mxEvent.addListener(R,"keyup",f);mxEvent.addListener(R,"change",f);k=document.createElement("div");
+var EditDataDialog=function(a,b){function f(){0<R.value.length?P.removeAttribute("disabled"):P.setAttribute("disabled","disabled")}var d=document.createElement("div"),g=a.editor.graph,e=g.getModel().getValue(b);if(!mxUtils.isNode(e)){var k=mxUtils.createXmlDocument().createElement("object");k.setAttribute("label",e||"");e=k}var n={};try{var u=mxUtils.getValue(a.editor.graph.getCurrentCellStyle(b),"metaData",null);null!=u&&(n=JSON.parse(u))}catch(U){}var m=new mxForm("properties");m.table.style.width=
+"100%";var r=e.attributes,x=[],B=[],C=0,G=null!=EditDataDialog.getDisplayIdForCell?EditDataDialog.getDisplayIdForCell(a,b):null,J=function(U,V){var ia=document.createElement("div");ia.style.position="relative";ia.style.paddingRight="20px";ia.style.boxSizing="border-box";ia.style.width="100%";var ha=document.createElement("a"),ba=mxUtils.createImage(Dialog.prototype.closeImage);ba.style.height="9px";ba.style.fontSize="9px";ba.style.marginBottom=mxClient.IS_IE11?"-1px":"5px";ha.className="geButton";
+ha.setAttribute("title",mxResources.get("delete"));ha.style.position="absolute";ha.style.top="4px";ha.style.right="0px";ha.style.margin="0px";ha.style.width="9px";ha.style.height="9px";ha.style.cursor="pointer";ha.appendChild(ba);V=function(qa){return function(){for(var O=0,S=0;S<x.length;S++){if(x[S]==qa){B[S]=null;m.table.deleteRow(O+(null!=G?1:0));break}null!=B[S]&&O++}}}(V);mxEvent.addListener(ha,"click",V);V=U.parentNode;ia.appendChild(U);ia.appendChild(ha);V.appendChild(ia)};k=function(U,V,
+ia){x[U]=V;B[U]=m.addTextarea(x[C]+":",ia,2);B[U].style.width="100%";0<ia.indexOf("\n")&&B[U].setAttribute("rows","2");J(B[U],V);null!=n[V]&&0==n[V].editable&&B[U].setAttribute("disabled","disabled")};u=[];for(var D=g.getModel().getParent(b)==g.getModel().getRoot(),N=0;N<r.length;N++)!D&&"label"==r[N].nodeName||"placeholders"==r[N].nodeName||u.push({name:r[N].nodeName,value:r[N].nodeValue});u.sort(function(U,V){return U.name<V.name?-1:U.name>V.name?1:0});if(null!=G){r=document.createElement("div");
+r.style.width="100%";r.style.fontSize="11px";r.style.textAlign="center";mxUtils.write(r,G);var Q=m.addField(mxResources.get("id")+":",r);mxEvent.addListener(r,"dblclick",function(U){mxEvent.isShiftDown(U)&&(U=new FilenameDialog(a,G,mxResources.get("apply"),mxUtils.bind(this,function(V){null!=V&&0<V.length&&V!=G&&(null==g.getModel().getCell(V)?(g.getModel().cellRemoved(b),b.setId(V),G=V,Q.innerHTML=mxUtils.htmlEntities(V),g.getModel().cellAdded(b)):a.handleError({message:mxResources.get("alreadyExst",
+[V])}))}),mxResources.get("id")),a.showDialog(U.container,300,80,!0,!0),U.init())});r.setAttribute("title","Shift+Double Click to Edit ID")}for(N=0;N<u.length;N++)k(C,u[N].name,u[N].value),C++;u=document.createElement("div");u.style.position="absolute";u.style.top="30px";u.style.left="30px";u.style.right="30px";u.style.bottom="80px";u.style.overflowY="auto";u.appendChild(m.table);k=document.createElement("div");k.style.boxSizing="border-box";k.style.paddingRight="160px";k.style.whiteSpace="nowrap";
+k.style.marginTop="6px";k.style.width="100%";var R=document.createElement("input");R.setAttribute("placeholder",mxResources.get("enterPropertyName"));R.setAttribute("type","text");R.setAttribute("size",mxClient.IS_IE||mxClient.IS_IE11?"36":"40");R.style.boxSizing="border-box";R.style.marginLeft="2px";R.style.width="100%";k.appendChild(R);u.appendChild(k);d.appendChild(u);var P=mxUtils.button(mxResources.get("addProperty"),function(){var U=R.value;if(0<U.length&&"label"!=U&&"placeholders"!=U&&0>U.indexOf(":"))try{var V=
+mxUtils.indexOf(x,U);if(0<=V&&null!=B[V])B[V].focus();else{e.cloneNode(!1).setAttribute(U,"");0<=V&&(x.splice(V,1),B.splice(V,1));x.push(U);var ia=m.addTextarea(U+":","",2);ia.style.width="100%";B.push(ia);J(ia,U);ia.focus()}P.setAttribute("disabled","disabled");R.value=""}catch(ha){mxUtils.alert(ha)}else mxUtils.alert(mxResources.get("invalidName"))});mxEvent.addListener(R,"keypress",function(U){13==U.keyCode&&P.click()});this.init=function(){0<B.length?B[0].focus():R.focus()};P.setAttribute("title",
+mxResources.get("addProperty"));P.setAttribute("disabled","disabled");P.style.textOverflow="ellipsis";P.style.position="absolute";P.style.overflow="hidden";P.style.width="144px";P.style.right="0px";P.className="geBtn";k.appendChild(P);u=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog.apply(a,arguments)});u.setAttribute("title","Escape");u.className="geBtn";var Z=mxUtils.button(mxResources.get("apply"),function(){try{a.hideDialog.apply(a,arguments);e=e.cloneNode(!0);for(var U=!1,V=
+0;V<x.length;V++)null==B[V]?e.removeAttribute(x[V]):(e.setAttribute(x[V],B[V].value),U=U||"placeholder"==x[V]&&"1"==e.getAttribute("placeholders"));U&&e.removeAttribute("label");g.getModel().setValue(b,e)}catch(ia){mxUtils.alert(ia)}});Z.setAttribute("title","Ctrl+Enter");Z.className="geBtn gePrimaryBtn";mxEvent.addListener(d,"keypress",function(U){13==U.keyCode&&mxEvent.isControlDown(U)&&Z.click()});mxEvent.addListener(R,"keyup",f);mxEvent.addListener(R,"change",f);k=document.createElement("div");
k.style.cssText="position:absolute;left:30px;right:30px;text-align:right;bottom:30px;height:40px;";if(a.editor.graph.getModel().isVertex(b)||a.editor.graph.getModel().isEdge(b))r=document.createElement("span"),r.style.marginRight="10px",D=document.createElement("input"),D.setAttribute("type","checkbox"),D.style.marginRight="6px","1"==e.getAttribute("placeholders")&&(D.setAttribute("checked","checked"),D.defaultChecked=!0),mxEvent.addListener(D,"click",function(){"1"==e.getAttribute("placeholders")?
-e.removeAttribute("placeholders"):e.setAttribute("placeholders","1")}),r.appendChild(D),mxUtils.write(r,mxResources.get("placeholders")),null!=EditDataDialog.placeholderHelpLink&&(D=document.createElement("a"),D.setAttribute("href",EditDataDialog.placeholderHelpLink),D.setAttribute("title",mxResources.get("help")),D.setAttribute("target","_blank"),D.style.marginLeft="8px",D.style.cursor="help",O=document.createElement("img"),mxUtils.setOpacity(O,50),O.style.height="16px",O.style.width="16px",O.setAttribute("border",
-"0"),O.setAttribute("valign","middle"),O.style.marginTop=mxClient.IS_IE11?"0px":"-4px",O.setAttribute("src",Editor.helpImage),D.appendChild(O),r.appendChild(D)),k.appendChild(r);a.editor.cancelFirst?(k.appendChild(u),k.appendChild(Z)):(k.appendChild(Z),k.appendChild(u));d.appendChild(k);this.container=d};EditDataDialog.getDisplayIdForCell=function(a,b){var f=null;null!=a.editor.graph.getModel().getParent(b)&&(f=b.getId());return f};EditDataDialog.placeholderHelpLink=null;
+e.removeAttribute("placeholders"):e.setAttribute("placeholders","1")}),r.appendChild(D),mxUtils.write(r,mxResources.get("placeholders")),null!=EditDataDialog.placeholderHelpLink&&(D=document.createElement("a"),D.setAttribute("href",EditDataDialog.placeholderHelpLink),D.setAttribute("title",mxResources.get("help")),D.setAttribute("target","_blank"),D.style.marginLeft="8px",D.style.cursor="help",N=document.createElement("img"),mxUtils.setOpacity(N,50),N.style.height="16px",N.style.width="16px",N.setAttribute("border",
+"0"),N.setAttribute("valign","middle"),N.style.marginTop=mxClient.IS_IE11?"0px":"-4px",N.setAttribute("src",Editor.helpImage),D.appendChild(N),r.appendChild(D)),k.appendChild(r);a.editor.cancelFirst?(k.appendChild(u),k.appendChild(Z)):(k.appendChild(Z),k.appendChild(u));d.appendChild(k);this.container=d};EditDataDialog.getDisplayIdForCell=function(a,b){var f=null;null!=a.editor.graph.getModel().getParent(b)&&(f=b.getId());return f};EditDataDialog.placeholderHelpLink=null;
var LinkDialog=function(a,b,f,d){var g=document.createElement("div");mxUtils.write(g,mxResources.get("editLink")+":");var e=document.createElement("div");e.className="geTitle";e.style.backgroundColor="transparent";e.style.borderColor="transparent";e.style.whiteSpace="nowrap";e.style.textOverflow="clip";e.style.cursor="default";e.style.paddingRight="20px";var k=document.createElement("input");k.setAttribute("value",b);k.setAttribute("placeholder","http://www.example.com/");k.setAttribute("type","text");
k.style.marginTop="6px";k.style.width="400px";k.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";k.style.backgroundRepeat="no-repeat";k.style.backgroundPosition="100% 50%";k.style.paddingRight="14px";b=document.createElement("div");b.setAttribute("title",mxResources.get("reset"));b.style.position="relative";b.style.left="-16px";b.style.width="12px";b.style.height="14px";b.style.cursor="pointer";b.style.display="inline-block";b.style.top="3px";b.style.background="url("+IMAGE_PATH+"/transparent.gif)";
mxEvent.addListener(b,"click",function(){k.value="";k.focus()});e.appendChild(k);e.appendChild(b);g.appendChild(e);this.init=function(){k.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?k.select():document.execCommand("selectAll",!1,null)};e=document.createElement("div");e.style.marginTop="18px";e.style.textAlign="right";mxEvent.addListener(k,"keypress",function(n){13==n.keyCode&&(a.hideDialog(),d(k.value))});b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});
b.className="geBtn";a.editor.cancelFirst&&e.appendChild(b);f=mxUtils.button(f,function(){a.hideDialog();d(k.value)});f.className="geBtn gePrimaryBtn";e.appendChild(f);a.editor.cancelFirst||e.appendChild(b);g.appendChild(e);this.container=g},OutlineWindow=function(a,b,f,d,g){var e=a.editor.graph,k=document.createElement("div");k.style.position="absolute";k.style.width="100%";k.style.height="100%";k.style.overflow="hidden";this.window=new mxWindow(mxResources.get("outline"),k,b,f,d,g,!0,!0);this.window.minimumSize=
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(m,r){var x=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;m=Math.max(0,Math.min(m,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));r=Math.max(0,Math.min(r,x-this.table.clientHeight-("1"==urlParams.sketch?
3:48)));this.getX()==m&&this.getY()==r||mxWindow.prototype.setLocation.apply(this,arguments)};var n=mxUtils.bind(this,function(){var m=this.window.getX(),r=this.window.getY();this.window.setLocation(m,r)});mxEvent.addListener(window,"resize",n);var u=a.createOutline(this.window);this.destroy=function(){mxEvent.removeListener(window,"resize",n);this.window.destroy();u.destroy()};this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit();u.setSuspended(!1)}));this.window.addListener(mxEvent.HIDE,
-mxUtils.bind(this,function(){u.setSuspended(!0)}));this.window.addListener(mxEvent.NORMALIZE,mxUtils.bind(this,function(){u.setSuspended(!1)}));this.window.addListener(mxEvent.MINIMIZE,mxUtils.bind(this,function(){u.setSuspended(!0)}));u.init(k);a.actions.get("zoomIn");a.actions.get("zoomOut");mxEvent.addMouseWheelListener(function(m,r){for(var x=!1,A=mxEvent.getSource(m);null!=A;){if(A==u.svg){x=!0;break}A=A.parentNode}x&&(x=e.zoomFactor,null!=m.deltaY&&Math.round(m.deltaY)!=m.deltaY&&(x=1+Math.abs(m.deltaY)/
-20*(x-1)),e.lazyZoom(r,null,null,x),mxEvent.consume(m))})},LayersWindow=function(a,b,f,d,g){function e(ha){if(u.isEnabled()&&null!=ha){var ba=u.convertValueToString(ha);ba=new FilenameDialog(a,ba||mxResources.get("background"),mxResources.get("rename"),mxUtils.bind(this,function(qa){null!=qa&&u.cellLabelChanged(ha,qa)}),mxResources.get("enterName"));a.showDialog(ba.container,300,100,!0,!0);ba.init()}}function k(){var ha=T.get(u.getLayerForCells(u.getSelectionCells()));null!=ha?ha.appendChild(U):null!=
-U.parentNode&&U.parentNode.removeChild(U)}function n(){function ha(I,L,H,S){var V=document.createElement("div");V.className="geToolbarContainer";T.put(H,V);V.style.overflow="hidden";V.style.position="relative";V.style.padding="4px";V.style.height="22px";V.style.display="block";V.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";V.style.borderWidth="0px 0px 1px 0px";V.style.borderColor="#c3c3c3";V.style.borderStyle="solid";V.style.whiteSpace="nowrap";V.setAttribute("title",
-L);var ea=document.createElement("div");ea.style.display="inline-block";ea.style.width="100%";ea.style.textOverflow="ellipsis";ea.style.overflow="hidden";mxEvent.addListener(V,"dragover",function(W){W.dataTransfer.dropEffect="move";C=I;W.stopPropagation();W.preventDefault()});mxEvent.addListener(V,"dragstart",function(W){A=V;mxClient.IS_FF&&W.dataTransfer.setData("Text","<layer/>")});mxEvent.addListener(V,"dragend",function(W){null!=A&&null!=C&&u.addCell(H,u.model.root,C);C=A=null;W.stopPropagation();
-W.preventDefault()});var ka=document.createElement("img");ka.setAttribute("draggable","false");ka.setAttribute("align","top");ka.setAttribute("border","0");ka.style.width="16px";ka.style.padding="0px 6px 0 4px";ka.style.marginTop="2px";ka.style.cursor="pointer";ka.setAttribute("title",mxResources.get(u.model.isVisible(H)?"hide":"show"));u.model.isVisible(H)?(ka.setAttribute("src",Editor.visibleImage),mxUtils.setOpacity(V,75)):(ka.setAttribute("src",Editor.hiddenImage),mxUtils.setOpacity(V,25));Editor.isDarkMode()&&
-(ka.style.filter="invert(100%)");ea.appendChild(ka);mxEvent.addListener(ka,"click",function(W){u.model.setVisible(H,!u.model.isVisible(H));mxEvent.consume(W)});ka=document.createElement("img");ka.setAttribute("draggable","false");ka.setAttribute("align","top");ka.setAttribute("border","0");ka.style.width="16px";ka.style.padding="0px 6px 0 0";ka.style.marginTop="2px";ka.setAttribute("title",mxResources.get("lockUnlock"));var wa=u.getCurrentCellStyle(H);"1"==mxUtils.getValue(wa,"locked","0")?(ka.setAttribute("src",
-Editor.lockedImage),mxUtils.setOpacity(ka,75)):(ka.setAttribute("src",Editor.unlockedImage),mxUtils.setOpacity(ka,25));Editor.isDarkMode()&&(ka.style.filter="invert(100%)");u.isEnabled()&&(ka.style.cursor="pointer");mxEvent.addListener(ka,"click",function(W){if(u.isEnabled()){var aa=null;u.getModel().beginUpdate();try{aa="1"==mxUtils.getValue(wa,"locked","0")?null:"1",u.setCellStyles("locked",aa,[H])}finally{u.getModel().endUpdate()}"1"==aa&&u.removeSelectionCells(u.getModel().getDescendants(H));
-mxEvent.consume(W)}});ea.appendChild(ka);ka=document.createElement("span");mxUtils.write(ka,L);ka.style.display="block";ka.style.whiteSpace="nowrap";ka.style.overflow="hidden";ka.style.textOverflow="ellipsis";ka.style.position="absolute";ka.style.left="52px";ka.style.right="8px";ka.style.top="8px";ea.appendChild(ka);V.appendChild(ea);if(u.isEnabled()){if(mxClient.IS_TOUCH||mxClient.IS_POINTER||mxClient.IS_IE&&10>document.documentMode)L=document.createElement("div"),L.style.display="block",L.style.textAlign=
-"right",L.style.whiteSpace="nowrap",L.style.position="absolute",L.style.right="16px",L.style.top="6px",0<I&&(ea=document.createElement("a"),ea.setAttribute("title",mxResources.get("toBack")),ea.className="geButton",ea.style.cssFloat="none",ea.innerHTML="&#9660;",ea.style.width="14px",ea.style.height="14px",ea.style.fontSize="14px",ea.style.margin="0px",ea.style.marginTop="-1px",L.appendChild(ea),mxEvent.addListener(ea,"click",function(W){u.isEnabled()&&u.addCell(H,u.model.root,I-1);mxEvent.consume(W)})),
-0<=I&&I<F-1&&(ea=document.createElement("a"),ea.setAttribute("title",mxResources.get("toFront")),ea.className="geButton",ea.style.cssFloat="none",ea.innerHTML="&#9650;",ea.style.width="14px",ea.style.height="14px",ea.style.fontSize="14px",ea.style.margin="0px",ea.style.marginTop="-1px",L.appendChild(ea),mxEvent.addListener(ea,"click",function(W){u.isEnabled()&&u.addCell(H,u.model.root,I+1);mxEvent.consume(W)})),V.appendChild(L);mxClient.IS_SVG&&(!mxClient.IS_IE||10<=document.documentMode)&&(V.setAttribute("draggable",
-"true"),V.style.cursor="move")}mxEvent.addListener(V,"dblclick",function(W){var aa=mxEvent.getSource(W).nodeName;"INPUT"!=aa&&"IMG"!=aa&&(e(H),mxEvent.consume(W))});u.getDefaultParent()==H&&(V.style.background=Editor.isDarkMode()?"#505759":"#e6eff8",V.style.fontWeight=u.isEnabled()?"bold":"",K=H);mxEvent.addListener(V,"click",function(W){u.isEnabled()&&(u.setDefaultParent(S),u.view.setCurrentRoot(null),mxEvent.isShiftDown(W)&&u.setSelectionCells(H.children),mxEvent.consume(W))});x.appendChild(V)}
-F=u.model.getChildCount(u.model.root);x.innerText="";T.clear();for(var ba=F-1;0<=ba;ba--)mxUtils.bind(this,function(I){ha(ba,u.convertValueToString(I)||mxResources.get("background"),I,I)})(u.model.getChildAt(u.model.root,ba));var qa=u.convertValueToString(K)||mxResources.get("background");Q.setAttribute("title",mxResources.get("removeIt",[qa]));Z.setAttribute("title",mxResources.get("duplicateIt",[qa]));u.isSelectionEmpty()&&(R.className="geButton mxDisabled");k()}var u=a.editor.graph,m=document.createElement("div");
+mxUtils.bind(this,function(){u.setSuspended(!0)}));this.window.addListener(mxEvent.NORMALIZE,mxUtils.bind(this,function(){u.setSuspended(!1)}));this.window.addListener(mxEvent.MINIMIZE,mxUtils.bind(this,function(){u.setSuspended(!0)}));u.init(k);a.actions.get("zoomIn");a.actions.get("zoomOut");mxEvent.addMouseWheelListener(function(m,r){for(var x=!1,B=mxEvent.getSource(m);null!=B;){if(B==u.svg){x=!0;break}B=B.parentNode}x&&(x=e.zoomFactor,null!=m.deltaY&&Math.round(m.deltaY)!=m.deltaY&&(x=1+Math.abs(m.deltaY)/
+20*(x-1)),e.lazyZoom(r,null,null,x),mxEvent.consume(m))})},LayersWindow=function(a,b,f,d,g){function e(ha){if(u.isEnabled()&&null!=ha){var ba=u.convertValueToString(ha);ba=new FilenameDialog(a,ba||mxResources.get("background"),mxResources.get("rename"),mxUtils.bind(this,function(qa){null!=qa&&u.cellLabelChanged(ha,qa)}),mxResources.get("enterName"));a.showDialog(ba.container,300,100,!0,!0);ba.init()}}function k(){var ha=U.get(u.getLayerForCells(u.getSelectionCells()));null!=ha?ha.appendChild(V):null!=
+V.parentNode&&V.parentNode.removeChild(V)}function n(){function ha(O,S,F,L){var T=document.createElement("div");T.className="geToolbarContainer";U.put(F,T);T.style.overflow="hidden";T.style.position="relative";T.style.padding="4px";T.style.height="22px";T.style.display="block";T.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";T.style.borderWidth="0px 0px 1px 0px";T.style.borderColor="#c3c3c3";T.style.borderStyle="solid";T.style.whiteSpace="nowrap";T.setAttribute("title",
+S);var ca=document.createElement("div");ca.style.display="inline-block";ca.style.width="100%";ca.style.textOverflow="ellipsis";ca.style.overflow="hidden";mxEvent.addListener(T,"dragover",function(W){W.dataTransfer.dropEffect="move";C=O;W.stopPropagation();W.preventDefault()});mxEvent.addListener(T,"dragstart",function(W){B=T;mxClient.IS_FF&&W.dataTransfer.setData("Text","<layer/>")});mxEvent.addListener(T,"dragend",function(W){null!=B&&null!=C&&u.addCell(F,u.model.root,C);C=B=null;W.stopPropagation();
+W.preventDefault()});var fa=document.createElement("img");fa.setAttribute("draggable","false");fa.setAttribute("align","top");fa.setAttribute("border","0");fa.style.width="16px";fa.style.padding="0px 6px 0 4px";fa.style.marginTop="2px";fa.style.cursor="pointer";fa.setAttribute("title",mxResources.get(u.model.isVisible(F)?"hide":"show"));u.model.isVisible(F)?(fa.setAttribute("src",Editor.visibleImage),mxUtils.setOpacity(T,75)):(fa.setAttribute("src",Editor.hiddenImage),mxUtils.setOpacity(T,25));Editor.isDarkMode()&&
+(fa.style.filter="invert(100%)");ca.appendChild(fa);mxEvent.addListener(fa,"click",function(W){u.model.setVisible(F,!u.model.isVisible(F));mxEvent.consume(W)});fa=document.createElement("img");fa.setAttribute("draggable","false");fa.setAttribute("align","top");fa.setAttribute("border","0");fa.style.width="16px";fa.style.padding="0px 6px 0 0";fa.style.marginTop="2px";fa.setAttribute("title",mxResources.get("lockUnlock"));var wa=u.getCurrentCellStyle(F);"1"==mxUtils.getValue(wa,"locked","0")?(fa.setAttribute("src",
+Editor.lockedImage),mxUtils.setOpacity(fa,75)):(fa.setAttribute("src",Editor.unlockedImage),mxUtils.setOpacity(fa,25));Editor.isDarkMode()&&(fa.style.filter="invert(100%)");u.isEnabled()&&(fa.style.cursor="pointer");mxEvent.addListener(fa,"click",function(W){if(u.isEnabled()){var aa=null;u.getModel().beginUpdate();try{aa="1"==mxUtils.getValue(wa,"locked","0")?null:"1",u.setCellStyles("locked",aa,[F])}finally{u.getModel().endUpdate()}"1"==aa&&u.removeSelectionCells(u.getModel().getDescendants(F));
+mxEvent.consume(W)}});ca.appendChild(fa);fa=document.createElement("span");mxUtils.write(fa,S);fa.style.display="block";fa.style.whiteSpace="nowrap";fa.style.overflow="hidden";fa.style.textOverflow="ellipsis";fa.style.position="absolute";fa.style.left="52px";fa.style.right="8px";fa.style.top="8px";ca.appendChild(fa);T.appendChild(ca);if(u.isEnabled()){if(mxClient.IS_TOUCH||mxClient.IS_POINTER||mxClient.IS_IE&&10>document.documentMode)S=document.createElement("div"),S.style.display="block",S.style.textAlign=
+"right",S.style.whiteSpace="nowrap",S.style.position="absolute",S.style.right="16px",S.style.top="6px",0<O&&(ca=document.createElement("a"),ca.setAttribute("title",mxResources.get("toBack")),ca.className="geButton",ca.style.cssFloat="none",ca.innerHTML="&#9660;",ca.style.width="14px",ca.style.height="14px",ca.style.fontSize="14px",ca.style.margin="0px",ca.style.marginTop="-1px",S.appendChild(ca),mxEvent.addListener(ca,"click",function(W){u.isEnabled()&&u.addCell(F,u.model.root,O-1);mxEvent.consume(W)})),
+0<=O&&O<G-1&&(ca=document.createElement("a"),ca.setAttribute("title",mxResources.get("toFront")),ca.className="geButton",ca.style.cssFloat="none",ca.innerHTML="&#9650;",ca.style.width="14px",ca.style.height="14px",ca.style.fontSize="14px",ca.style.margin="0px",ca.style.marginTop="-1px",S.appendChild(ca),mxEvent.addListener(ca,"click",function(W){u.isEnabled()&&u.addCell(F,u.model.root,O+1);mxEvent.consume(W)})),T.appendChild(S);mxClient.IS_SVG&&(!mxClient.IS_IE||10<=document.documentMode)&&(T.setAttribute("draggable",
+"true"),T.style.cursor="move")}mxEvent.addListener(T,"dblclick",function(W){var aa=mxEvent.getSource(W).nodeName;"INPUT"!=aa&&"IMG"!=aa&&(e(F),mxEvent.consume(W))});u.getDefaultParent()==F&&(T.style.background=Editor.isDarkMode()?"#505759":"#e6eff8",T.style.fontWeight=u.isEnabled()?"bold":"",J=F);mxEvent.addListener(T,"click",function(W){u.isEnabled()&&(u.setDefaultParent(L),u.view.setCurrentRoot(null),mxEvent.isShiftDown(W)&&u.setSelectionCells(F.children),mxEvent.consume(W))});x.appendChild(T)}
+G=u.model.getChildCount(u.model.root);x.innerText="";U.clear();for(var ba=G-1;0<=ba;ba--)mxUtils.bind(this,function(O){ha(ba,u.convertValueToString(O)||mxResources.get("background"),O,O)})(u.model.getChildAt(u.model.root,ba));var qa=u.convertValueToString(J)||mxResources.get("background");Q.setAttribute("title",mxResources.get("removeIt",[qa]));Z.setAttribute("title",mxResources.get("duplicateIt",[qa]));u.isSelectionEmpty()&&(R.className="geButton mxDisabled");k()}var u=a.editor.graph,m=document.createElement("div");
m.style.userSelect="none";m.style.background=Editor.isDarkMode()?Dialog.backdropColor:"#fff";m.style.border="1px solid whiteSmoke";m.style.height="100%";m.style.marginBottom="10px";m.style.overflow="auto";var r=EditorUi.compactUi?"26px":"30px",x=document.createElement("div");x.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"#fff";x.style.position="absolute";x.style.overflow="auto";x.style.left="0px";x.style.right="0px";x.style.top="0px";x.style.bottom=parseInt(r)+7+"px";m.appendChild(x);
-var A=null,C=null;mxEvent.addListener(m,"dragover",function(ha){ha.dataTransfer.dropEffect="move";C=0;ha.stopPropagation();ha.preventDefault()});mxEvent.addListener(m,"drop",function(ha){ha.stopPropagation();ha.preventDefault()});var F=null,K=null,D=document.createElement("div");D.className="geToolbarContainer";D.style.position="absolute";D.style.bottom="0px";D.style.left="0px";D.style.right="0px";D.style.height=r;D.style.overflow="hidden";D.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";
-D.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";D.style.borderWidth="1px 0px 0px 0px";D.style.borderColor="#c3c3c3";D.style.borderStyle="solid";D.style.display="block";D.style.whiteSpace="nowrap";var O=document.createElement("a");O.className="geButton";var Q=O.cloneNode(!1);r=document.createElement("img");r.setAttribute("border","0");r.setAttribute("width","22");r.setAttribute("src",Editor.trashImage);r.style.opacity="0.9";Editor.isDarkMode()&&(r.style.filter="invert(100%)");
-Q.appendChild(r);mxEvent.addListener(Q,"click",function(ha){if(u.isEnabled()){u.model.beginUpdate();try{var ba=u.model.root.getIndex(K);u.removeCells([K],!1);0==u.model.getChildCount(u.model.root)?(u.model.add(u.model.root,new mxCell),u.setDefaultParent(null)):0<ba&&ba<=u.model.getChildCount(u.model.root)?u.setDefaultParent(u.model.getChildAt(u.model.root,ba-1)):u.setDefaultParent(null)}finally{u.model.endUpdate()}}mxEvent.consume(ha)});u.isEnabled()||(Q.className="geButton mxDisabled");D.appendChild(Q);
-var R=O.cloneNode();R.setAttribute("title",mxUtils.trim(mxResources.get("moveSelectionTo",["..."])));r=r.cloneNode(!1);r.setAttribute("src",Editor.verticalDotsImage);R.appendChild(r);mxEvent.addListener(R,"click",function(ha){if(u.isEnabled()&&!u.isSelectionEmpty()){var ba=mxUtils.getOffset(R);a.showPopupMenu(mxUtils.bind(this,function(qa,I){for(var L=F-1;0<=L;L--)mxUtils.bind(this,function(H){var S=qa.addItem(u.convertValueToString(H)||mxResources.get("background"),null,mxUtils.bind(this,function(){u.moveCells(u.getSelectionCells(),
-0,0,!1,H)}),I);1==u.getSelectionCount()&&u.model.isAncestor(H,u.getSelectionCell())&&qa.addCheckmark(S,Editor.checkmarkImage)})(u.model.getChildAt(u.model.root,L))}),ba.x,ba.y+R.offsetHeight,ha)}});D.appendChild(R);var P=O.cloneNode(!1);P.setAttribute("title",mxResources.get("editData"));r=r.cloneNode(!1);r.setAttribute("src",Editor.editImage);P.appendChild(r);mxEvent.addListener(P,"click",function(ha){u.isEnabled()&&a.showDataDialog(K);mxEvent.consume(ha)});u.isEnabled()||(P.className="geButton mxDisabled");
-D.appendChild(P);var Z=O.cloneNode(!1);Z.setAttribute("title",mxResources.get("duplicate"));r=r.cloneNode(!1);r.setAttribute("src",Editor.duplicateImage);Z.appendChild(r);mxEvent.addListener(Z,"click",function(ha){if(u.isEnabled()){ha=null;u.model.beginUpdate();try{ha=u.cloneCell(K),u.cellLabelChanged(ha,mxResources.get("untitledLayer")),ha.setVisible(!0),ha=u.addCell(ha,u.model.root),u.setDefaultParent(ha)}finally{u.model.endUpdate()}null==ha||u.isCellLocked(ha)||u.selectAll(ha)}});u.isEnabled()||
-(Z.className="geButton mxDisabled");D.appendChild(Z);O=O.cloneNode(!1);O.setAttribute("title",mxResources.get("addLayer"));r=r.cloneNode(!1);r.setAttribute("src",Editor.addImage);O.appendChild(r);mxEvent.addListener(O,"click",function(ha){if(u.isEnabled()){u.model.beginUpdate();try{var ba=u.addCell(new mxCell(mxResources.get("untitledLayer")),u.model.root);u.setDefaultParent(ba)}finally{u.model.endUpdate()}}mxEvent.consume(ha)});u.isEnabled()||(O.className="geButton mxDisabled");D.appendChild(O);
-m.appendChild(D);var T=new mxDictionary,U=document.createElement("span");U.setAttribute("title",mxResources.get("selectionOnly"));U.innerHTML="&#8226;";U.style.position="absolute";U.style.fontWeight="bold";U.style.fontSize="16pt";U.style.right="2px";U.style.top="2px";n();u.model.addListener(mxEvent.CHANGE,n);u.addListener("defaultParentChanged",n);u.selectionModel.addListener(mxEvent.CHANGE,function(){u.isSelectionEmpty()?R.className="geButton mxDisabled":R.className="geButton";k()});this.window=
+var B=null,C=null;mxEvent.addListener(m,"dragover",function(ha){ha.dataTransfer.dropEffect="move";C=0;ha.stopPropagation();ha.preventDefault()});mxEvent.addListener(m,"drop",function(ha){ha.stopPropagation();ha.preventDefault()});var G=null,J=null,D=document.createElement("div");D.className="geToolbarContainer";D.style.position="absolute";D.style.bottom="0px";D.style.left="0px";D.style.right="0px";D.style.height=r;D.style.overflow="hidden";D.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";
+D.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";D.style.borderWidth="1px 0px 0px 0px";D.style.borderColor="#c3c3c3";D.style.borderStyle="solid";D.style.display="block";D.style.whiteSpace="nowrap";var N=document.createElement("a");N.className="geButton";var Q=N.cloneNode(!1);r=document.createElement("img");r.setAttribute("border","0");r.setAttribute("width","22");r.setAttribute("src",Editor.trashImage);r.style.opacity="0.9";Editor.isDarkMode()&&(r.style.filter="invert(100%)");
+Q.appendChild(r);mxEvent.addListener(Q,"click",function(ha){if(u.isEnabled()){u.model.beginUpdate();try{var ba=u.model.root.getIndex(J);u.removeCells([J],!1);0==u.model.getChildCount(u.model.root)?(u.model.add(u.model.root,new mxCell),u.setDefaultParent(null)):0<ba&&ba<=u.model.getChildCount(u.model.root)?u.setDefaultParent(u.model.getChildAt(u.model.root,ba-1)):u.setDefaultParent(null)}finally{u.model.endUpdate()}}mxEvent.consume(ha)});u.isEnabled()||(Q.className="geButton mxDisabled");D.appendChild(Q);
+var R=N.cloneNode();R.setAttribute("title",mxUtils.trim(mxResources.get("moveSelectionTo",["..."])));r=r.cloneNode(!1);r.setAttribute("src",Editor.verticalDotsImage);R.appendChild(r);mxEvent.addListener(R,"click",function(ha){if(u.isEnabled()&&!u.isSelectionEmpty()){var ba=mxUtils.getOffset(R);a.showPopupMenu(mxUtils.bind(this,function(qa,O){for(var S=G-1;0<=S;S--)mxUtils.bind(this,function(F){var L=qa.addItem(u.convertValueToString(F)||mxResources.get("background"),null,mxUtils.bind(this,function(){u.moveCells(u.getSelectionCells(),
+0,0,!1,F)}),O);1==u.getSelectionCount()&&u.model.isAncestor(F,u.getSelectionCell())&&qa.addCheckmark(L,Editor.checkmarkImage)})(u.model.getChildAt(u.model.root,S))}),ba.x,ba.y+R.offsetHeight,ha)}});D.appendChild(R);var P=N.cloneNode(!1);P.setAttribute("title",mxResources.get("editData"));r=r.cloneNode(!1);r.setAttribute("src",Editor.editImage);P.appendChild(r);mxEvent.addListener(P,"click",function(ha){u.isEnabled()&&a.showDataDialog(J);mxEvent.consume(ha)});u.isEnabled()||(P.className="geButton mxDisabled");
+D.appendChild(P);var Z=N.cloneNode(!1);Z.setAttribute("title",mxResources.get("duplicate"));r=r.cloneNode(!1);r.setAttribute("src",Editor.duplicateImage);Z.appendChild(r);mxEvent.addListener(Z,"click",function(ha){if(u.isEnabled()){ha=null;u.model.beginUpdate();try{ha=u.cloneCell(J),u.cellLabelChanged(ha,mxResources.get("untitledLayer")),ha.setVisible(!0),ha=u.addCell(ha,u.model.root),u.setDefaultParent(ha)}finally{u.model.endUpdate()}null==ha||u.isCellLocked(ha)||u.selectAll(ha)}});u.isEnabled()||
+(Z.className="geButton mxDisabled");D.appendChild(Z);N=N.cloneNode(!1);N.setAttribute("title",mxResources.get("addLayer"));r=r.cloneNode(!1);r.setAttribute("src",Editor.addImage);N.appendChild(r);mxEvent.addListener(N,"click",function(ha){if(u.isEnabled()){u.model.beginUpdate();try{var ba=u.addCell(new mxCell(mxResources.get("untitledLayer")),u.model.root);u.setDefaultParent(ba)}finally{u.model.endUpdate()}}mxEvent.consume(ha)});u.isEnabled()||(N.className="geButton mxDisabled");D.appendChild(N);
+m.appendChild(D);var U=new mxDictionary,V=document.createElement("span");V.setAttribute("title",mxResources.get("selectionOnly"));V.innerHTML="&#8226;";V.style.position="absolute";V.style.fontWeight="bold";V.style.fontSize="16pt";V.style.right="2px";V.style.top="2px";n();u.model.addListener(mxEvent.CHANGE,n);u.addListener("defaultParentChanged",n);u.selectionModel.addListener(mxEvent.CHANGE,function(){u.isSelectionEmpty()?R.className="geButton mxDisabled":R.className="geButton";k()});this.window=
new mxWindow(mxResources.get("layers"),m,b,f,d,g,!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(){x.scrollTop=x.scrollHeight-x.clientHeight};this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.refreshLayers=n;this.window.setLocation=function(ha,ba){var qa=window.innerHeight||document.body.clientHeight||
-document.documentElement.clientHeight;ha=Math.max(0,Math.min(ha,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));ba=Math.max(0,Math.min(ba,qa-this.table.clientHeight-("1"==urlParams.sketch?3:48)));this.getX()==ha&&this.getY()==ba||mxWindow.prototype.setLocation.apply(this,arguments)};var fa=mxUtils.bind(this,function(){var ha=this.window.getX(),ba=this.window.getY();this.window.setLocation(ha,ba)});mxEvent.addListener(window,"resize",fa);
-this.destroy=function(){mxEvent.removeListener(window,"resize",fa);this.window.destroy()}};
+document.documentElement.clientHeight;ha=Math.max(0,Math.min(ha,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));ba=Math.max(0,Math.min(ba,qa-this.table.clientHeight-("1"==urlParams.sketch?3:48)));this.getX()==ha&&this.getY()==ba||mxWindow.prototype.setLocation.apply(this,arguments)};var ia=mxUtils.bind(this,function(){var ha=this.window.getX(),ba=this.window.getY();this.window.setLocation(ha,ba)});mxEvent.addListener(window,"resize",ia);
+this.destroy=function(){mxEvent.removeListener(window,"resize",ia);this.window.destroy()}};
(function(){Sidebar.prototype.tagIndex="5V1dV+M6sv01rDvngax0oLvveYQEaGaAziE0PW8sxVYSDbblI9uk6V9/VVWS7ST+kB0zL3etbmIn3ltlfZRKUqkU/rpRLN6MmFJym5yM/8QL/Xnw7yLceXQ03fA3JaOTyfjCQCKZehvu66tErCMW6J9E1M4jlJcFTJWIPP1VIKK1ixj/zML4VBRiTMaf9HOKx8G7/lwy71V/ZJEv8Vv8cKea9KW646tU41nk678/4tK7SZVu5FpC9oz/TDPVnkEPJlsn4wVma1lEnVemGByy6q+M+SXkSmaQ6Vv27gJeBDzyOQDMu1ma5FVEEVBEtuokgQhdyZ62Uv/9qWWoYPRltgx4A3U970/hc6BnIuD+kdI+KbGTcelGce6ec4evOBl/k0r8llGKtWBTvulF98xVKjzEvxWXDVS/M8VHF57Hk0TDpzpxJQGScC9TIoX3euXvVV/UcWWpDFkqsCYyfaM/1ly36vGfgVhv0oiasyfh7ypgyaaBaKHl5/nThqb5VeAvZEigXx8k0AolJJUkVjo7jGBOHFOm29Se3FZin6VsyRL42V+2U90z9crTOGAeIEK8Q1UCnMlGxk4CLWb/gsflKt0y/MLnbzyQccgjaIivAjgTT/Gtr4Quf9cXXWRLjRKxyRwvkBko75hHnjisPzUkP/kyESnHtwoAtQ7kkrehL7UyzUAtLrh6E5g7Nnn9iYo2SWW8ZVr1QYsTIW8gE+ll5kHWQlXGdr/Qug1Zl/RDe2O4FL+fWPBaiJSUZGoDT6HRYT3DN9Gdgy4agY3Q59gj+iIOdAOB/MmYYlHKqYp5PMLaFHMVirSSG2XYySnnZrGHNW19JdaZoiYxGV8LbGq+9DKsT0APT3Sk1ldzXaZszQvOpfzlkndUYodytAPDOEuxuocyEqlUmM+Jbm6HevkAq0sAW8+MB9BmQJs+8HQr1Wup3G2zL6uCetJZjXKofV7J+FLnUUWtxZyLTYa20FzpV1GxEgnVdxH4JOgyS0QECr4F3z3nEUHWUQfUjUi/ZUv7tjqTGaCkl0q6Wou0Ef9tdhslUBAn9Xq4GshZkG6gTmx0m8EqvuGoYzb4iwMYdDnVMcpbS2QM3TYB3mM0Sp71/0fuSVPf7lmki1d10DN3LE6x0/CKut+GuddVgGpRyFCtc/sZYS/Cm9FySdUj3sgIPlOZeZvWNAm1o0uTXH81UO3zZEEqQDkwD5q37t+zdAOqNe/RS/aJ6Tdi5purBt73xV930PiLapT8HTTXqz2Kh7JloQ26bIlVOtAl6dIY9uBPMhbeCdgtu/ZLJeEe1XdduTSPrpc6v9+TlIf64jakMpeQ9RumQFVr3YiV3vcb+eZyy9Viw4Ogl1p+nM2xmofSyNSdYgHjnSzA6m26fu+wTKtwYM30S1LXTkxPsYp0qp+nbu8yg271r4xnWM3/hoseBI+8qttygmLlSfLhZtmsS7CZUd1Kds295iT2m4dTh7aH0qLgF2QqGo5qVVdLtHiPvIp2mdDXinvvXtBgGhLRI4/1sJs09z5TqY6sRCNVqlU+2qxPDNuRuxm20MqLmqNOO3CqHRqxEGEclC3jNtATkMOLhFZpOynrH5FAc3UlcKRsbJHvy/9wD8iylUSFJHhrrfmRYBPaZCGDZ2Mu6QXolr3prFf16OdvsxOjqyqUVPXzVEngw+g2Qrur8WehCxWnqu71sE9gv/QWnrSalK00WglxllLFX+VXVaxv1TMae7yFcRrlV2059PNiNr2+wdxh60gmKamJ7trRDvIm4xsecYXqxI7z6sQ5pICWKDHp6jFiEyjpgtLioL1lU6MmSu3VHZm0QtcI1RVNeCPPjIeKHnuZLamxJzHnNIzdyIzsV2+DJm+Y22ZVlPINS35AxuFl1Bo4nQ5IJ7PIfxyW8xzGplLgaG9BGginPqsrUhn55RCZiLoxbRn4v4dAbkYubdBLFkWoRfXYs24CvPz8lGzpNZchT1XDzN8OSEkcF8ZBhnP+1cq2jJgddJORxMmOmMX7w5A96HXzILoS882Mr/IBWqAHTcjxejheKQPvJRo3kWNuP0g0msMlzn6upFoK36/o6A6R34t5fG0RKMGiNdXSwyFVJX4R6mwE9Y+GsodSb1gcv7cCTRUWmCEx1rI2SAbsPvY2+m9QmTl7mCeBdrAdKeMnTGC24X4ylMvU3qWtzY2Yf5/QdB+kwyKPB1i9agqkwEqZJqm+HLULWY27rx0Q72mUWoass8VjGOIQHihN0cRKenQVagMsqEtZ40YXPq4geB2yGWCXNjHdvWUBLwzZJqO0hL+TVEJ2va5urbACZWbCVYXEuLKywZep5bhnERlBRuANDHRa5c1HgwZlFJY2kWnipFFzIUE+znKy+EtINIQLcbvWDo8tdUmlOANNl1A7/85EXGmvHeBG00tYB81LS0AuLBVnVATUY8Ryv9DreSbjX5/Gw7BN6qTSVmRHniapOrKd1UqFa33dmLRcn4eiO68TzJgwXYga5OrAdj+l/P+s/3w5u4BXnkOdFpGwo5wOb+7Cf+7CX/0GtfRfzjCN8YfJX05g2BeQMAv9mxwCtgIWyOwr5L/o7pR+6SJ3Fe/5QLwwr4C6BIv1fKyzpToXHJTbLiG8/GQotrMJyTgA31zp7sYz07uavDfhI0+ET93fNFPKrlqZnmkCBaS85u7Qkeu8E9ciU7jYt/Oin4Cirkdwp8G3qlPh7jTYKupVrjsR5kytjqzkeYIFXRodnI/DcJL3VsvKmexWjgEoQCsdT/N5gLf5grrxeJ6vHTm4gO6UlxdM9fCJr5VdTooZGIdRDXwVSKniAK23gL3Xr/TsPT66RK06s+5MS1xeX2UqEqZDcGRYCDPKrMfWwKV89WhCtCt0umFC9cHJWKCO87lZ93ND0Yx1Ilesax5NH5/A6H4+Kc+ulmZcK+SoYJnx5BWnwRUNUOzoqJMouyS0VN6PSOkRm10jTnAgsGXKVzQTWkNVwXMVcD3cwHzgiccCc+0iwrV+eIB8vYYrzXPHQmiE1ZMQ1dCqZe8YRowhM391K5bkoGWFgTnpJC0cvypov69W1PHZKu61VvUKlrlgOFehv8dRqYiSVFVPrFeh9R+a6FKwUKF/2DYN5EtABZqrc/t6ZBF2b+Aky+I4EDDf0hE76YPlKyXWsFCNdaYrfEHqwDPaoVMBPZl25/OkuXfYh1AuGViPJI2HzBH4syPx50fiP/fFS0ErkVp1KFpUCxjqH1AdWqWlSspDr9t9mp8sRe05lZKcAbbwhWfvXCT5uaMGgh6KpJLW1xfoBw3LaFijA7pLbA/dLBaAHq0vExEoc+vIsCVvS8dsgKfzHs2zF5UcNegfdc9XQw7LtzEBEfnVuw5qsk9o/ZpU+TG0Qy5lmqJsZZKl/bKVR1cmoRI9kMKywhvIGYGrFIq+bi/73BQ0hZ97urenL6JXo5mqakobbtIVV66p/w8gNxay1cYALkHB9QnaBuTxx//OCudewXQalev3OcXoIopkah29PmH7C415oHVru0dODdPkGKapDAJyVt7oUe06YBVuotXIfZ+gJPdtaYfWuto0odAH8LSEDeELJ+eFgmTOYjMjHzutTu3jF0WpG5cTsOdrF/oO4OA7ZEqfB4GIEzsLWN3o6/CT3nipaAhKotcVWg06C0PjypdFnnW8zKDa16wc7zM8ads4WfHympGqW4QkbMBZ9BJqM5HWi99YkIFBog0Hzio7lkrk6FpEIqHNUzdS+rD2lUqc/dJZEPYVaHSDy8bczBP5mZ0nMo6LJDO2Kt7crnZYv2dpIkqO4Lj+UwiaZGA0N9XXHbZnPaKg7UVm+cmsVbpgLwQqTBDlK2QRjYqU9WGg36q1rR4EKSmgVoQS93g0qWbzMLnj/zKeThc2Ny9xdcxvW89tJ4FBZ+TrYS822IEJJ+OfG7MBproKdaU+lm6ha0k6VD5Wkg2Rn63EH5QRvWjn4LGOw95S7TY+lo3TH5bgr0x4r7qHlmhA5xdL8inC2+X+qnIjibHk+hEt7HPJHmiPr5FDKwqa25qJBIaLoGOvda+c0H4n10rRyKPrgymjDoVVMM5x8qynOBbcSwY9gDZTfidm4q9hNigH6Zq7EjwAgaEWn4CdRLdtSHCS1yLr+oE6voukO1CwEDCn2jNsm2CDCNlvtAe2HK3BYr8H2yZ1uJHuZl7so7STbMGZwqkd6+yc2C8a0q/ngU2T1/pvyFPmk83Tn/jK+AeZjy7QxdUCkrSe3NbTqNgL40jzsEOzt6u1D9tkTG81GT/skQ2ayLenp/lHp2H3zgzG+tdOZtsNHX1oJuNi99VAhH9Z9NF0P6/LNDBfboa6fZhgGdkTPhmqg3Eaf+zelGaa70Uruxfjpw7m7dWUBlIMPOJLqqEnlbYw7m/rCMN8W4EIq3yU28lRr/00O6EP07B7pPtJPgO3BzSObqMkNTPyh4nQVpli6C+Kh7umeGXIdYrzyrTE4a54V+7GdziaNakWdy8rutDfP+5Q6uGXHqZnFasiznRQXfSQERvNwMTfZtcLB/4N88lR1Bd6tC6Wmg+3UpO1nNAGReekn+dT/fCb2QYDbrLizeyyPyxWZ8bSBMBkfKP5KJTH8MncwhpdhJEJPjKZR2kWM4anfp4/4AqMtort1M9HJXJkDjXvCa99fDR7j1goZ+Ci5eNlH6zuA1JT24fiScpErMTelfGWWtwxQgHFjjzCtuJuPPlabFdZTK9hY7OU1LD5pjsLmKV+V7LRWsksxq1hcNHhDR5nYFYqnRg0I1Y7DGhmMD12qaM7njEng52y6I//yONAG9BDsy/0hb98H4T2Hv7Q9t5BMyMPDTB4Nn9XzMNV9SGpaZMwKq/cRu6MBdc0PRqMupDoGiLfYQUGNXqIoSzglobh11Ll0aDyYCql7wahxgrlvX5sEk9cZ8huDzRQKtakbzDk+1FCGCwTPmIQ6tuLe/08bRLHSBvMs1uV8of6M2tpff8UM/Pjklg8LY7ij2R0alrmSxLrke4KNjZKlWGvuIKL9jaT+K844epjeCsbzgtnkPNwXuM/X3fC4BwyjB44eY2kUW1gqzKElvowWzyKevTim5hHprYrSXGfbPU290OwgmbZRoHEXmVmBwR7emHQ9K589FG7k96B/hk0nQWuRNKy6Ee92NUl1NrCPFkWodFqXT7dWLX8EYuTjUw/LIFnGWQh/wD6BXjF5f1UsZTtMB/UxgsRVUy8uA9OYDJGlyEbZyNpS1HacBx90z06HU8knhzZ+GJAVIo1Vl/L92CjS6WtHnxx8r5FZ4xmPbZPYWNQQGbmEnRmuZ+BSxs5k2zBqQJpskiklWy1PIuQ4XrcZbGXdyOzpNmGIhLrhZhgucX6peINVyxIRreX0Gvda5tspRgFQCo8FlPjIwyemeTOGHtHJCIiCLF1sTgfj3fTib1jX+DJSDoQaa0feE+++5K/Z4mSnEGL3N11JS8SdE9HeEraqGfFD0fVEJwXKwldJ25PbrDKdG6T+y0F1RlOcDth5Q1LnHvED0S48Kx/2FCEsd33NxRhFplVkqLAB2obiywGV+ucayDaPEbVTg7QOnlfSrsfbDAhf+w3rmPInvWoA13OtB5XbLiyp9hIlxATesgqVVuZanqbKm6MJh1Y9lBCLL9k9Gl8cwW+HVN5dYJRLrKWiYZmurNPX2FH4z9mJNcfpaWJPKJ1YKpu6aZ3cv+m5HAb00cnVoSnzXdi39v8OjrjroXiW7JZiggXhh5ecLu4/2OIdA7Ih+C08S2Hz/Mi1Fqe56VEdMY8L6Zn4/H4j64J+gKCZEl0trLXXWAjGMsGJWQg26I8EcMmW9IrrmlhBZrg+JIlHLZJUsDSTda8UlJHNIXvj2Y5Dm0N7+NY9pee1o2LUIfB7vYSCPXf0b/4OxT2bsD8RsTjfKH/6Z9VXOcwfICpjK3rhMzX9DytZOyWPLfXrWCUPg9NPwImrq4cFDp2bgze3FOyVbYDpm9SprndbD67s+TRiPMDD27nJfk83rKrqZ7X5xQq0q9YDHNhWMhV5/fLowhZv+42gEJbG6qJssvEbZBSVOXSZTsKYuja+uiYEEIglnuoh940Z5eYnsnancUvHRghyGUuRsN2kzpsWYZVmcuVBAd9W77MgSF8cWI9JZs5sAeipm0DrrRhtrqDCGj+YStWogZxgwj9oEfBAkdsCZHMvHQ0uwCj1xdrQQeRMG1SSzqzI4JDRSpiZTWQ8TCDQIm6wsMEi66wv1qClVex6HKgZJe6zcRte5SqGO6zX6dWll1JmiVrIz2g68ZgQnab6IEXIcRmwh3ZYRxAHN5hGCfHMT5dGKlkiVuP1WAvj64TsOvFLGDWJOJAP/lY+rOPooctUXaFcG5CMCa1a0AHPB6LmSeMTZjfdEePpjmWiipzbiI1JJMhSCDb6SkZvNPUfwVnB0LYx541RzxuJ/k8hFT3ptWjI2OJC8b3RVLQnYF/CSf9GYYUlJRr45LCdn5cmnOM+J+nGctEOKfpC22h0DCFPGOcUCZPT0PubViEX01O6XyqRR4tbFvn7ONCdyczP8nnzoqrvnzzLNmUx3kP0PNFsKof4FFvGGqlYWNjR/bvu+xaITXs0W3mplMCaGSq9dDgslfw95VecO/809fRxfT0YkqMuRWRmxYdiWa1RIXZ4s43G5IMY9p07mxL6Mn4UtAY33ZVfdkuC2NpZQ2orngTjbcXfnaxl7EVNqU7WUX1OZLvoBYVfDWmbgulWK24yneHH1cVriJPvce4Kh95HZSwgX8Tx5T8neyLftHFIDycVUHfSFbhqFqHRluMTCF73Rk7urVIY0gLE+jEreOr5DkbiOfzMTy0c16rX25fTSgzM38k16QXl41tRaVVG+mqHQ9Kj2tRjO4N49KlY/vbrXN4V1f3WuAjOGZmozND0lk84L9yZ3zmzFEzTpQwu8YD2B2viUbXWWKDSOkmchQHFhbnzo2qkgRHQ8tEBty9dVYSnR8lzW0QZLBgZ46HuswCmA8R9ltgtcHh8HNJD3RKA4PMUdZbLlFOtrvUhnEyICPSHGYAsR3mR598eOA4RDUx91qTOIbeVNIBkpDJiqcJlB1dnsAJOg2hOSqwoxkt5cC8PixAfV9cX8Gqx8PJzjAM7N5oP9h+T2rYzFYabfWizslupwMJu8s4qIywhoDnZ+gK/DqkqPM94mMlfji1sFJxfTppGJD3YpwMzng2OOP54IyfB2f8cgzjvK6saydCejFOBmc8G5zxfHDGz4MzfunPCEXQt3+YDK4TahiP0Ak1jEfohBrGI3RCDeMROqGG8QidMBlcJ9QwHqETahiP0Ak1jEfohBrGI3RCDWMfnSDjVL6Y+cxIeMnoK67frkNzxEEetjrhb7XHe/VlzX35Z/NSCj73REj+FIdndDml9mfNO0Si1lGgL+nuK5gEjn+Du6vZ3iiMhyK1J7EeLjJ0IJ0MTApUp8xL0fUFY+1PIThD4lH4kcAc0ZZ7fsEUO87W7k3yOaX2XX9x6sksJg8y+L2461euSImrmyKhGTR4ZOeLfsTzjUylzdYYbqqzuZbvRY8OMSAUjkF3l2M7rL3GgfcSMN/nCg7P1gX0PUvjzEbVbDt124lo0ptoAFl6SwF7LF4S3QbMsrY0LjilL47hGt08fS+aQ3tDMPNvaYbHaMjVCm4278rUQudkb2+mtp+2Z3RgWoYf/YJS812Jv/v7mYQmH57QA7rd3d5cFu+VZMFuaksRSzpcr7Lp9ktr8l9M6+y/mNb5x6Y1f5j/18prJ60PLq+dtD64vHbS+uDyAhVlI6M799fdE5h8YAK31gsPt6BVaZt6RsUp69DTk3fr9ROx1h3yS5LHHaarfvARrtguLAODtUQzBeyZU8d6kM5KpOZkDlwuH5J18iGsZwOxPmOw7TcZpG2xuxs4cH33aI5Jd5J0A/u0wKZ8oZC56GjUdHaNAwVZp8aD2xqnlQ7dlXy5uknqlI8rfmfa4p+V00n/cZ2kaqGdDEA7r5a267C7hbLPjMiWvXFYo0Y/ZnPdiBUy+ToCJYpL0l6tk/j+06MLbE6e4m3OCmUMBlbBmIwYySAVIUXwCUXkNy1blzguKWaN4jE6VDljtma3rNJVX2ak5eHgFEcCGB0nG3TrWcrDQ+wrQdSQmIkm0+0tpXzFpGTTidwVMBCtiEwAsXob3RfLWCX4ypxyl0oZVL1mDXTKAh75Jk66e3WYbjBMgC8SL0vqzqOpBO7WH5vDDkAZ6haFYTV80TxG3EGhkULjQpwqMUeO68F4KirOKKgkwXBn/2FvzDVZc9pEc2C+SiA3Pgq6yskW3VGGFYeCeDJ2blwWhh1SQRGzpMmTZIdgizN+NtQNGoLctdpe2WPnJ+N/XIVx+o67L/O4wYoztyZe5jFhh4EpiyoZ6kje0SLH+OEmmkWxpN90tkyJ4zpgyWbHhcM19WsZkH6Ras0i8du55AloXNdaztzYgSmjVSMTb53tH+BUg7xhGZYONOBme6EMCujYxrX+rN3BeYD6xunkoQ3XlnTdTqBDlETN0hSK5ABzV3IzOXRyoYOyyjWjlS7C4Gzl2KFuctjgTfkpR62bf3bRrzgai5lv1GzlwbDVWPlKbkk35kykmnDxNfh7Eyk+b73cNsoi+HsbRY71qHcpDnlyBic7MhgeB3Q5TsmbJMsckqeTLbVSk+tI5EHclWjjK84IzRcv3ASRtGEiPyEv+h/61AUTSdPlpplatvIkMKP6LPiW06Ed6OhY1wfKmLYftpG+gY7Fc4RyhcXwxBznF3yQ2LXoERXmbJgl6LsIFIGoOEPugOC7tnWi/CywOxNXSxuzuPakZB7BoTLnqxhxGxNtsOAVRmUdSnF0fvb2MtDBzKimE2/MA2mNB7qTEI8873ZXiid0El/MsdYrniqHt38sni8oclZHCnqsvxCLcqZV5+t+fnro/r7m5ryWStYNhRnMYvM+Tnm60EOFmFThlPqfZeZcvRe6EzZntaWkS0wsOJ8spTa4HjHk+6Ibt48fQlPMCVXtlFkLkvG2iMbZYpnXMBwMWHzFas7yPYRn2FSxmTraXlU05nQ71NwNh5Uc4uTB2MANp7Sh5+EmdN03vFN026Vw7ud/xJ2r5Q8KdgOHyTIb+oN5bt1bHpGwXf/vNj8HUrMgLTPqDioiQ1eBf7KAoiFR2zLDcwecuIa+t7TluwWGYR+m9rzA4ghBJ5iZsdwJqknTOi4mHXJ0HtARirSFPaHPBXL1KyZjxYJaSwJh5izfLind6Vpr9KPN18QcHuVG8GizwuetHvkllLGJuoi6sGeG/eObVOI3NJkAhoY154U58DxDm/F6suBsH7TdDa8wy2tA3fQ6YlC9NOXTGgF0TuGI+bD1SyTEX3M0aAXOM1NHtJU7n0ZywCkYmwWjBz30PNV21NvJzuSeO0EfLBzLSaFI8HQybXkJbo+4tZ/tLMW0krl0QcGMLniY2CkXc+kC1c9lJPUyS1OcetH6+4SiDIMPmf4dGpT+0lgaIX3TQmvUXIL7tS5MjYlzg7gjwTfSQF3xN9z0aDhTy1PUXKarOmnpnCoJzWDUmgLFgLBZGF0hcDmELWGhtiVWVYyHIcbCnNNabPDKOwolTaRtHq1FxLnabcBlpslwVCMGezrNyo69hvxMhe7NKq2yCuzowiK1zpsqmSSnl5yFGAIM7kBRVJ1H68B2DYvgp5cBwwNf58z3A5yua4hje1NQxjHTqlC3Bed2VIAx6JNYZTRNUNy1A2UYw6GIJmxFftcFSGvDF8JELCgYOq0S75NO7UvgzpwS72R8qv8/ZWop8DTbmR5fknemaluT2kvj5fRFJLLje6ss2UCcubWuqSZOMX53Uj4XDH+0nxTziHBunKMpfIOWCGTtjU0KwgfbJPYIawXWuUKzqHiBn+9NQxjAUFssWiW8m2z0WSihRldm5Q/ElaZpXEz/6FMhmihnSOm+CF/mw3DTbBjZdrj6CLXi3E5041VrkdJWbsdN3SXA6E78nQk8jJVwWuBLIXHTLNl9S9Ec04PI8pHWKvfRbYEEcvuS8CixfoyRS1PbcJa+8F+wBL2m181vTnDqPM0v3FlG1+IX+QKnipndmk/ZksMe4W/ANBlflVJJs2W7StlP4oAHehqJJ3NiUn8MSXwN4xO/eAtQGNcsGjSN/bzqTf4DMn7D4rLAvbO91851AIa6CmB9wgvHx0e30ekd9TiPUo9cwMH+3uBFFLT571cSLcAO8roTkUFVIjoWj5N7XieKjDzA4dPtYd3b+jiPZCB+xaTSDirhaBFZnWFuWhNLdP3Sb/diemM6EMb2ms3QNzgeGsc+dOUKGM1ktsSZMgjAqTjuIn5idqksZYIGnp6A8MItr205EY/N+dkKcxzX0bLo3kLK9I8hiEr5BNFrh+KEfgwopR5JhgOTPkq5+gBK/QFjy4GFftODSX9ILqqJg5X/TGjj1R8yV3cYSdoPqRDXLMCAGUNSBtJGzhgsO/Y4jyg+xbxXE4/UhoiespQF77gOa0e7eWi0s/FkrD9WNG0CW882fBvwlNxvvFfyzRgorU/HptUVBG6zdODOGk83i2jQkJ/09x4uccbM/F6NH7EINuHhNEZktuOlMlO0SkxXYfnHZpoRBlaYybU5t2wpfL9lQyThV1L6NUm34kZThkF9C91FPjq0dLTEeyeea4Zle02yhLzFiaaEfORJyjLFIrtJa9XA0Uow6UZAnjseLcPmbjwh94VHlsZGJvFhyLlaFp2fuFnzDo/N8PQNxE4Sv5tiJNcw3WJ05d/Mzi2K0n03poX0KACac1zyGqKn2QyqF6wS7MV+zr3Ffc5W5pn9sNl7vLq9ZZrziinM8xgi12CwVt16W+ucAf8z04VDZ2xY+BrLXtdGBSPi9wrCaqp7RnE87+gFdANgfrM75R4c7dvjxeDKy9T7IFTkqpPoAXYQiJZlrB3kA4/TjEKfHyvEPMjQ8/9oogUz+xaPZ4rkdhWwV3hy27QQUIXFY31wI1PasqxWgZv0xJ31xJ13xv3QajQbpCI/82OJnMLpHwJG11x3p1i4shPunlAdMbY+mDQ74SadcT/xlUw/yfthJ12wCVtxPGJgw35XmVR1CLBmupkxBU53VCE5e4Jdu6a1N/jU1l1rz5B4AuZARroHljjTAMIHFadYVUBjqegcRrgofTqgIKykRANWm7VhSMLHsnbdtYLhX+yd4fYTuTUr3ZK8TFkk6wIn7BA84rk3y4CZBY38HByV/9CefZZqa1Lfl8YJ/XyCfkewgYfsgze+EV67KWnwCyZouIcpJvqubXp6Dx4JM7UHUTRkQsZPvlpZHKKVgpsUaIrDDQU11B6PcKoPHFdt7I03bXa7mAqW41X3yDo3lSmmJL/vwBFhASlaZ0jsXfm6MfThLpmtsXarWZdaWwJP3MEp9za1p9FUGY8NLHuHwdEZkWHpAMndYxfT4lC6Wk739fkD6OMCDguCJSBoA4IClZL1lcDRBKiPmgie8rc3xdFw+kwjeHIM+OwY8Pkx4M9dwLDLEephqUG/cXOaBJxi241gdIG+4kXW43VXMcosk0FYzgZhOR+E5fMgLF8GYfnan+USwwljIWfLACtK/kQvqslwVGfDUZ0PQTVlefBuPZhz8PpuYJkMwnI2CMv5kSxwXGOqMvSUXAmcQrK3XWhuFO41mYyfKrRZTYG1ki5oNfaSB2hC6bslXXbkMUtOTIXkCwSfOD/vaNHt0ykmoqEaniUbpOlZskEanyYLB3zLcLiXhOpJgh1RuSzNZBias2Fozoeh+TwMzZdhaL52pzEGUM0iQB1kRM61k/HD1QkeK5NuTjntucUb3rj/tprpZ8605QWTue7CtACZEpkVMuFND5kWP3MmIwfedJDpkq3XNBgIMnvlDFVLdMVZ0HaSDRPKa4knt0sAoRsm4wvsLhYye9Oj0RIfhHRISpdp4+kRO8y0lcR7L3nwnGCMOLdFAsNyFfA3490RiFWHF8OdweQFbLdrOSJxvmjOlJkv6jLjZBjmZqunZ7Og8kSzaixkPM4YUa53yfEfsR6TCvKKsRd7//4P";
Sidebar.prototype.searchIndexData="7Z1rU+M40Kh/zVbN+wEq98vHkHDbJUxeHGDrfFEpjkh0cKwc2R6G/fVHchKGKMwuRo7Usr21xQyBzUaPW62+qfuP9tkf3bM/Go0ofg2I+POP5kB+t8Rr8kdztPq54Hi9PMWcs5fodCD/QCP2Ev7RPFvGq0D8Sl389QfhMfVxcINnJJiwiMaUiV8ZzVgcs9W7XxgEdCF/ELO1eDWKOXsmj3QeL8VrjbdXhixgXLzyR6NZS/8RP5EfrTEUX182H7Jb23y73Hzb726+pfO3NWw+89t/F9DZBz/qjuRPsxK4IU+xdQK7JS/3gZghcEcXy5IjuF9bX7+lTXBGwjjdAyglYR2DIgZGMaQboeIgdgNMCL2mGQhDHAQsicXhmMwCAoRF245+2LH43wTPgZCwtDV2JMDsjo4iET1DHJbkB2chEAj9zh6EjiGzYUi5nwSYQ6GwvyU6fTMU/kxW6xO6FQVUt49hXxj6VjA0yoohtSJxOIejIVUQHYMgvCXma3Q+X5A5uiJQD09T+vKWxf5SkPDEOnDwtlns49iXkKYhHJU1tfG1dmIBBMW+MJgKQbzXFEBA2FES4JRD14py8AISzgkHHJUxJhBbEtMXhh7xawVDwhAfmqAppgEcdWHHB/NiTtdwINiJX3vil2gkKIA+Sk2JxJRTqIZVx1B4Zk9XoivG6T8sjHFgn4clkdjj8bBdlnUaavDOkGt6j6YJB2pfmQpgbhnI1DdMEJ2GURCA7Mzdyg07o1sQkPJ/dknAieAZ3hk+jXx2OktoMKfhIjo94zj0l+j70xP1yT6NNaNhTPj5DxLG0fa1OY6EDSa+kWt5okHwfo3NTk8s54PVP6X/fEjqi8jx9jufyI8oXmBJHNBQ/E/DkPjx9gOqsNv1fRO2fQA7xfMh6/QnZztuWszPw3lZgLf2gLcPjQAjwC9JSDj10e7dio69v2971Zu2uDOxqnAlSy7Kgr5eU9zkQ5vPCPrx6L7oqDv7/lbv0N8yQtpb4SAQ8h2JDxxFRYe+82F2Gr1lB/qUBMRnq1UiPjq6YklU+KO0Xts/S3uWFMsheTQZVvDNwL8PqViWWOtr4Yk3m/uK5rA08ojEhYCvpYBHabnHWhiP6yXhOIhOr8/GaIxp+MTxqvA6RynJ/CDk/x/PYLjj+EejJkiKr5NfLPN/LjSkaOC1Uke70A+mtb85PogagHowU/aSrq3Yz2Q/oNU9DGiBeSY3eL1ZaaEfiOIFd+pwH8gY+4I+i5aFfyb9/WeS2X0w+Eyoz9l6ycLCH/O9/0zVgXkoxXc1uj1nbK7JEA3m4igRjuAQ83nRn0xH8QFBbxN0x+SP/BI8F5d2DKfblRX6ifT382xNwKe852OxksI/EeWIz575NPhE1gQ/F/+JtPdd+D7kPZKE6JHx5yjGGyLFfjK99r6PAtiR9xLx3e7HhX8uyo45vPUH5rlM8SwgcdEfiHLMtwEbXlPCVzRUy2KL90g6yiMBfKrcF9+XVzYIZI/xgc4JE278Snxb9MfS2S/R+aAsG8xjeSQzdCaLPIt/vCsFwZBDw2UyhuFlGkNBJAh2z2XF5klAotN67fIcXQzZedGfiBqG/IL2eiP49kzGG4o5Po9mvdtC30YkehaL/R80DJIoDRS//XrRn1N3/5RpfmHnGHlOf8vndBEwxqun9FZTCu0pyf+LLKP2XmjsL9Hmf1D0Z9PraFsEJp7NBeXkRdYAe4T/oD7ZPh2xqV688f8U/SEpcczeFyLLJh7S/rMp/EOpO6HVvFdx2qxKdNqo4RmgttsD5XGCg91p8+t/ir49eEN5mbHwaq2ldFbLXH6c75OaizPGjxn/ZQmchwuxCPRtiP0lQaPtzwv/XNSivsw2wY6U3lPYvcvJMMBRhC7ojBM0XMpccvD2MIr+LNRTJnNCJq9nITjQWRKTeWnQK5FlW9vghon1zEvCXKkzameuJ86HuQw+LjhL1qURdjUGmTkhrwN+mcw2xtECx8LNe5WRxtoZjsgUXSWzoqNXjttWZu9OMPpl/1xuEebyGIby9TI8A+Wec3an4XjPYNdYYfumJXsS3cyn7vGeRLUPbNIfD7yy7IG2YgVlNvqP9xQ2nRhKsBMAn8rbG+o4KM1+0G1xdLxn8TC5LctTUPzhlrWzYSW+ntbbjeLfQe/rHsdj8eWrhDvdWk3m2ygpfMcdpd4je6hHh3O3XathHqFv3Xa9WfjgsnqTzKhID3yfRBGaSKqFB71/xSL7BTEt0MPC14hpZ0n0+HpF56vIb/bmRFp8R+PC89UNtWvx9Qao3S6+AddWenFkDqtrQY6ojyacyTOv+BkMJWjywZzXo8rzHarXSmMv9xTWmR1yLdbTQdH51mu61/70AI9Rs1d85azcUcp+YV8L8kPhLTi7FvLfk6LzVV1po3zPzrzCm8iqGt61HzREmBP8LIeFn7GfRSetNNs0q4rPOJ0vCl+v3tVNomghnnrCPi5BxF5t52tUkIcyNzvGIV6Ursy/aTSOPMTF57sfuWgajVwIvsKN5mmDPRou0OYSS9GRW02NDEeja3QhvhSdsl3felj8wHJ/35bLXr2kxVf+NQ3FFR2zcim0ZdSe22AeFj4Qp10Wrw/5PqTxKzr/ueYlGH2ktgqwwDttPFN0ztr9F7U4y1nSfowG/v9LKC++q6IOrTYap9vBHu4+cqFRd3Qv5euilteGpxyH0RPjq7R71a9bxNPzwld3KaPrDIu6dzIe3BU+raIWxpj1X7zxSeEJq+2/zAbxvHs08go/WbRe2+9FmP2ChRbk+7PCFyiqAxXNVtCNSFyKi9OKx5K9G7AWZBafzFnhS5mb+4yNxkVHk2nR8SpGW/aLPVp8vZtB4UOiSqcjs7W2I9lmaszmxc9wt22q4sfRGF3QoAROttKTKPswKB3OMkWF7mi4KDrlerNjUS1fcJY2QJuXp4BcGS5rVkmnXT6Enh6s1wHFoV94Za342Gavtu56qpRGtq1ejrjC4XxJgsIPSVTqyc2WzFxN0tnsRWes1NeZtfGuULPRLDzhusVj8HpYeF9QCWZkn2Gvx7fwwftuzSZf+UlDEiMv5kQOeio67Xptv07U7CWU6+8e8m7Oig5Z7bxjNFVyXfh7VIor0jV6y+d6Mi38jL6DklujZRmC8APa1WaU5HaE1eYO1xOBe7VKQrGaEmQA1UCd4SNwgkbeTdEZd21eJb6eFv4IVPWF0fjQn2ffR0UH3FAawRi1Mf4ihW9O2doX4LrRSyeCb+ErxpXrw9knw+sAvhncopgh8UfRMasFzEYNtxu6WMYvRH5Fg8KfeXa9khsWLjjBcvTXpPCliOpMNqPKYzwofDFtbz913TAqyeNh4fm2bd7gGZ/X68W/zqrdXVwLMZnTMoQqFCOuZ9QLGRMimzmsA1z86paWzXjFmETLyn47OmSxelQvQQ9b7ZlAWphpSNHD4O+iQ27rjpvRgsxmNCAlylkrCT+jBcxjr/DunnKhxGyR1vi+8MpCyYaYjdaP/y68/Kpd240G4W4Hw/JUgfcUx9qoCXdbDSk5Ll9hIuOwDNUWysUzs/qCxBELS9CQUrkOZdRCFpBfGH/elg+tSPHHRylnoFkb7pb8TKJSdPGzrKAl5oacW3KBZ/JC1PnPmITz4mtsu01AN9zbJRBvCJy7JeCsXNrpGE2wfvdjEhSdsJI6MesTfr/16mUYl6Z2wDaan/q+TteBBivhfD/R4h+Cyn1Vs27LjnbaLHHNeOENaqVRlNl7aZPBCNWLTliZSmc2rC8JNwpPeD/QYbZIYyI8b3Tty9UVm7JSy2zWmJucFT59ojTDMJvQngyRx57iF8wLH9xXSrrMTgkVnB/onLCiQ1ZLa43mAiejwk+A2Pkgu4slNaNW8mRc/MvBjX3Chg1jzmLms60fEpShCFQxL8yOqJv8fVF0vmr3cKNBjDsck1VS+HmhVodZ3pE1wSXo86kIstnpt3L0H0HeC439ZXn69Km6w6xcTzzxb9ERW22N4RH+gwpRLjpk5cKU2eqBLeS05wtnZctMmQ3KeSRGU7Yuw4zyet3meeh5hfcElXiR2aF0nneDpoSvaFgGH1Dtvmw0xOxNC9+xT6lrNtsK2Ct+vyI1hG9WfktyT0oZ5Gy2NtF7KH4eymYQY0oC4ssufeIDlyKrumu5ZSVRImnLAc6kBHd66k1FORutw5iKpRdelq1eUJtOUAlavih5P7ORuE1RHJYrLzblTt+iiTHlif9cdMIH2tjsuZdwTgpf2lnv7NfFmb3GOn0oOt9206II35/d9euFr7y3e1HnfnyJPMJp8RMjljlX6b2j8n3ASVD4085qWOihdONIzHoeD5NbmTeVn5hXiZBjw/YKr46tCvPjoGrwclS+117hx/X19gH3jQkwm5NVhHA4R+slC0l0OsSzgKSD3FdFh66UtDSzlyin9P5o1AQ/8XWSEsznKZAgQOn7Ff0hNLUnNB/tIVzg4lcbNTq6lsnR8F8xFq/LsAXUCujsyv9oz+B6Ug4tpBg4X4iXHO0RbNvmDnxZm45K+kB6oB5IGWyj/T4SjeylZUfjn77VyVMJDudaB+zBUAolBPhgvrsoh4+mzBz6QjX80R6BbLBQDvtUewJGTs9gTdg6IKeDcM7ZgoQsidCE8KgEVYX7BSzZL/tOUnJfRz7GPnpkK1x80vt2T72W2fDRRx2WA7Vq3tTbmQNwuqwnQ9lrufig9+2YeitzlEcX9F0ShjRclIF2bz9x3c9cRqTL2qOxnIBWDiWiXAHuZ44TaNOOhVFTEtFu7Bvj2ceL5wa7FLJtDzeXbTF4dCrMn9K1A85e93m3oaXBeTAdo827VLCNwJ7ixa7rSzm4a7eL0ud+xhme+ziKS4JcbTOeObOtj1z2JhGfGe16lZQSvA0dc0kXeEbjnY7ZqZxS8rch+NeDUTlh2xD26wlKbx4vWfhaTurZm2fnQN0bXpeEtnqdJXszUX3c+2UY5eDeV6azWVDkt8PzksAGoMhvSfwUsJeyAFcG02QOHeoD342n2TVsLAt5ZcpV5usE+uRLAtq+Ttm8A7oO0VlCAxm8LTp0pcHgW2sEC9QfabxEHg2oz8KtL1p0+kpHlex9SvXhV9EW08DXuDS468qFmezzx3LgHTMux2SVg7hSfJX9rr8+8Omoyg8Zg/3AKuVtEPcj/kECEi7isqTiAPidj5QL5qWJY6kJicw1nV8nHhE/4TR+PR3KXhcUXQjyLzgo/LiAltK+JXO+2duC02Iuv0Vv71Rw5KqUZ9YreSAvi3w3lJaSmVVKHrAvcUyeCVkXX4MrI4GzX1PPBXeC+bzwpBWLMHNsNg/S19+98pyUSm+dzLer8gB+w4rfo1bp75m9nXUeoG9J/ML4c2mMkpaiuDOHY/OAPrn+uzTqRPUurUj5Nv1QGuZKNZBZZ4f/SEs9U1/nPqRPlMzRZDsFIs0sF988VGacfMUaTynq8JdTTkKxILnOqJzcs98M1+c+EjrGjxl/LQlyJb/5FU9IF/kFDUhUCtg5RLHygF0S0VZof8VW1KV9xaLCd9ZWr4N/xUTU5Xw9mT6URKpzMMh1aY+pz9kLmZVDaUMA/v2qJNIN4ITcvMOm1q0c+Uxl2FL2+tkcoMtGlJz9LIvZrcSxvpJc00bOnuIXzAk6w5Fw8cvBXenHlD11nwN32XQC8zkqg3EIQZ9vqwvLIeBKCKWXuQJLH/h9SOOy6PG2km2zED7Z1BfKeGE57HEAQcLHx8eSyHdnvx+W0Uj4Rm9vMxFp3Oo8XNDi90fVno6zPfF0mAcsKXxpSr2nNIysZVcl2qRHNHomcVx4oW7rTpDUR30xRLs3KThsJWTVym4E6sOmM+FaDpdYfM4ASSlHXjKLXqO4+E3G9Z2eHPCL43KIZ+KzFt7HVFSLDdx3JEgT9ViIOo7xDEeF1zGKZZj9qo8+9an4IRpwjotf9mZfozySGRoGSVSCeLhdwzC9Vk82fSUvZHvDXfO383gpPKlS3Lrv6Hb08LYUdR9AOZoc6IdUcsA9DHAUoRZqlwS6cg88e6vxXKArHT23DSbr9eL3ae5D0DFv/Msh8rpztfNAvu+ZXuAZp35J+B80PrQi85ckJClz9hSXw5xRskTZ+03mgf1afOIgoJvvkRfj4l/RUrMX2bNzeXD3Rrcl0S9t5bKnFd43+JVw1EB3ZMViUhLyqmb/Qnw9N/TNkjAH4aSOL/9GvVqthsZJENNoz4wv+gPQbgyfywOQ3E92ZuSmdrQc+JVZWXasmhR/kOqdUil81ZWyJ/tbg3JEpOYpOnb1nLWj9Cdnf5dEzFWLMnuWKQ/cnInXVys8C8qiXkBEhMt8mloiTle/ztOScFc0jJWD9FcoDE0uH9H4clh47B0A5+gD5XGCA3RTInkHEYPf1KxXCVYL0MsBHEY87JHx5wVnybqifnzqL9smxKcDmVINcdFhK50V39owfB72rm2zDuxLId7hHE0JX9EQF741lzLCrL77sVnod3hOGZqyl+LX4jW7ipRnbr+QB3APp7nT4l/TUMeBtDIHdXPFLS8OFP7UVHRK9qKMPJA/0pMLKocKF5229rC4fGhv36PgsBXtnf36aJ6w0Rmn8xJc/tpvLZK9L3GuzG/YpoUlGqzXAcVh8VNEfd2O57nyn3IcRmvGC38LTG3TZQf7zeAWyZpezoKg+Mb5gb+fOa71Jegc+8+neO2fDiZD5K0wj9H9xEP1Wq120pS1MA8D1Ljfhx8oPDhdLON3Cw/Ik/w2WmOfhoub9LtRva0+IvFR5uzl4+f19lQOMHX2MTUPwyJySR9Skj8Qy8yDT3uLpg0YzQfGrwk03XZKpg6YTP3QE8ufzEadDeVXVO/X2rKgieIAydph8Wvxtk/Yb2dLuwxsuNNUOsgadSdZZdVIubBq1VPxEngqZJ9C1ujX3BQvC1ux0a+7yeqDiNvxWTmqtqywalesPsmq2W+0K1afZdWqWH2SVbdTa4Ln0jFvHwguLfBcPrgmYIBLBzyXj/L3BsD0wYNp1g8j2McHU4evYRofpFOODabXbNU2ofxNWP/ku3DgQnlgbScRilX/LtQPiZ2FU2vgDVC73Wuf/I0Gc7yO6Q/yNrbRBWQWHN6BdyejunXwW9GCg7tl0wDPxp7cNMRWq+j8jg58U9GCCb1lA99c7B32VjDDxgHDqN4/vCZoAk5fHFVwqVjSNAJKBy6UesvOPurX6jW4VBotS7LSl78OlUqnfVjsfWwqAsD8rStfs9aEJDRK2ap5OEPMhffJ0UT8gMS/Sp1QQ+1eCEmMLOjh34JqA+Zkwaf6LacOZIGyYAoOcYyD1yhGLXG8f3yJExIhK1vujVCjJ8zm/S7OIfm45SckaFb23xu0VgXtS9AqQL8H1GnXmifn8BC1lPmrFrWVQNRyAJGFJOJ7RB0HENU/aIdnklEfPKFGw3yY6B2hutBFgOH0zScX3+AoXm+jhp4YR1cTQLjUe+Dmc9S/o9VspLRGJAjg8vpgJJktXq0afF5Wgisf4qrXHMAFSLzqlfLKQqtZSdeHvK7nJIx3Y7XTutCPZuGW3NG7nnio1RYKyiNhJD8wVDYW4lHb8iw08H15LXh7RxUuIgvic0t+JpHMcNfQrjHg225zoD7LGrGG8B2mu0E65z9jEs5BVwdY49RotKYTdHlesfoEq2ZjMhGbsaL1SVrTcUXrs7Ravcn/VrQ+T6vSWp9j1azVO/DCnnDoVPmpf6PTaVV0fkunXcnO7+m0BZ1Jhef3ePqdKVwuVqIBOy738OXGGp+OvHoEnY61XdWRV0ig07FQS7Gh05XNtuq1Ey9gu6olOXM4imgEl5aNq7bvcfUcw9W1iqvlFi0bF9zf0eq7RatRM1++8/3WQ/V2s9beHyY6TKKYrQjf5Q4mAY6fGF/BhWfhTNyyExp/eIO877fn032IFbR/hTYeIG90BR1Zb39olYXC+w2xVru1kbGTQ2ic/aCRQCMbMcAjeCh05svMNgw7H89MhomtoTTabdTNFwRNlq+RbBz8q2lF6x55MeNY7akOScAsOACHoD5Ua4XqNmsQW5E6OxvE1gKMzcImvR96qC2LGcF7AhasDAmn02j17ie7pJ/sTMj9XTN4qKgsaK0NqjSO6hQqC5pKoho2GmjcRJvJznDpWBIkQadW4fkXPC0X6FjbWi0nhMcank6F51/wtNxQPdbwSOlpgMdjwZJ+HJyftOsNuEwsnFaSSadicsik24LLxIJqkUy6zVbVNe4QSreCsg/l4Rw1+oC3jxWVIqC0KyiHUDoVlEMo3XalaT+iUqnaQyq9SlYUKmT2Qbt65NW7NbicbGia33BqQuYESJ46FafT5fr0aoKEA9m+/NX67n2nBECENHtJXE2+iifl4b1GMVkhPx37ex76AYsSDrgcIWsyLyc8XUfw1FtWxCfqtN3gkzW893U81+ETDekZDufoYnQHXe00zMnNhLMbcVQJfXzTadT8bUR4I05g+RhUy+/5dCo+/8qn14bKp9m1zmd0U+/U0GUPDhRd7yIXKM1GjVRUDqh0KiofUllXVA6o9IDLSlYvMy8qsGXFEpV2ReWAShv4wWwBinfTaNYiUFR61nWtgNKGDcWcpOxaCg43lcHoIiA/T+o18e8IDh0bbhGdrU6vz8aoXq/Vag8DdD/xAAHRnF4uFqZBpF2rnTQa8Klk3UV6VLrtFrph/mYvRSwgaIxDvIBclpdV9+oBuhfKBcdogkPyi9FfNK74pHyaDuiZrPPJtYB0HACSNfKtBWT+U3jOcFkYVbdCKuTBDBhH1pyaLo62TKZdPcAFYlR5CCDddiUeWxo/m8LjQeMCFd9p4mg3KxzvcVTS8R5HR0pHEy4OoyftFgdg6TCNA/hmMY2jD/iUNcyiC3lytXEW7UqJ/sLRE1rj7zZcHEY92Z/NfoXj+ZSJrwE5vSUxx9tC2r+bJ40zePd5NQPw39OFagIaTprysvxgOhzsqo6hYVKs1nrG1qK5YepWmP4T07Rfg01J9YGyTk7OD1OtgvMhnG2RpNTZcNFktXPyIbPG3EfT1kkdvOhY5rM77NGYzZMAUK0tiDP/jVPxepzkwufvljzroaOxssX+7vxCU22ufUKbbXUuWwKuOY0IGrdcOOWz5kxyp9R2gVK9ZQNTddb/G5nqlP8PQvDP96zp67zItMCTyVp9qEsmCbcue8eZ+8OGNbJCaHdXfzdt/fznmsuRKRtlhBqtNarX0OXsHBBCy3ppn+C2Spr+Q+aolZL6DcsK4AHAKqL973hSN+Wth2clR4egRjjGQyLN8O39/5m8/78dmdXsAGKlWbaSA6udWqrXpJLaMuo21hWkDyD97+jufUeJSxyTF/wKr6uEfWK7SHfjBHDhi2kLfY8LoMtkAOxzJzIjFveR4HIDF4zpMIkEs5nYhRrycpmwhgac49eK0DtC/+fCe6PUrTcKVGiWN5wmZDiG00QCzgXlBE3roC/LmFfFKZW/G3VYVBogqLSAUYEhKy3Q94ks6ZW/W52SU1nT+Sle0BiL4yc6HWz/Jv5jcSBRztWg15pRGck4/0HCONq+tiPjp0EO8YKwEWM5PfFGQTljccxW735hsP0vY7ZW+aloejUlkHOIZr35+wEZ8fpuXVEObNC3QegvGf+fiswBmSFnUXRyRvCqonNIZ0QjHyqX5uGxZIyLbKxATjYB5QmezwMClVLLovRcpt0nINOxubeuSCA/PVQ0HziVxtBcr9YkCAjYA8smmwlnsOD0FR+q2bAHZ5rwGQ3BqhtjR9Z6jTmOkwiRgKzkqk/HOFwyNc9pDYz0d/fI1LLtqN36/mjUzrcrzAOSx/xnEktXYtueTawU3bJ//gEDrrnPLePpfixsyXrNeIzOpEdHYiCo6qqIQUJ1QxZAMDXaIHfiltMdDaGAUnVWI5syPzIo75lyODvPvnaXC+T0KVmQ6HT49nep2kfEx2ltyzfP5+QlDRyxgM6RtxR2FRTToX6gvjIx/LXkvNAJh4UulshbEzIHA0kVtGxK/hiQJoQ/MSG9BJo8AUSViM8Lxo0BuOHe9BNYoQLIjKSHh3AGIcUuAe4+YTCsVtX2+zdCAK0Ci3LEVmnhPeMROkE0YqdnAXshaeLtAodQAWUUo1+LFMbntfc9B0y/3lOiesB+kqzQJFmtK2T/jQx9e5NZOKFy4MRGVPwexwswGU3gvM7/L/FjONlx4LQmNIpZWMH6FCwZvqpQfQ4Vk0ktcT7CSd+AJxZj/lrB+hSs1JeuWH2KlcyisorVjhVP41QRWnAazoVCPx1uXgEK6IMSzH/js12dgHO5XV9+hIT1zuCqc1CgrjCoaAxkVNerNfbjCtUnUP2JwZ55oDhtjM8K1X+gSt9qiHZvi8bYF69BqY2BiG1MgyDN4CSBWBH9p7IaMsGqzsWvUauOyM9Qq/T+Zzk90BnHcoUVqh2qOafiHU5H8g+gUDJe/kiXkj0x+B6EvBmT0Hnat+sMcJ2QBTDb+KZwiH+QV8YFngCsgjbM51Xakt/FquUxtv12uMSr2Sa7LDPwT/L1aqNJXlcEx+k432QFF0i2IJ0ekE0cXAhIskIbdSyEZpqsZoEUpEpBbzF5a45fKxw7HGmQ+5e8yGqxX9+N2Q8pOzvNU3ZkT4TMJbOL9M9d5glN8QzO1c56raWjgjZL+zoaeS2PcbkOHKDNm4EBo6WbjwAGfRsTsV5AufGmwqhtH9F2jz1g4dVDwWRZlDYnGKj7eCoRQ4JD41jsnuj0TJg48/TsAsKjpXU8XWzXpQGEE/wcLzlLFksgSJo9rT2jjWQY4NVa+OMXAQ4XRHgOyTqAc6uuradR9OkwASeM0hZCMIgoW6hnHEglH+9wiF2zIrI7JongiAgsKOjbiMTCdpELOxG2DHsqir2SO6jzn+tALK3i9B+cZKu7kzsS0SjGIdwwKSxMaRij2om/RSesn/m7xh5AyDS0HIjcuIyS1epV0PkBJm7Ra9sFkwhBCaCwsOxWXbEIjMetsMjWi0sfxXW4uS4EBIdCw7RgXMul+UupQ2QweBNG//YrLAHl/LEdl/iY03fhem7+eh0ioXB8SCUWtpG9wal4bHhw+kR9giay92jFJGVyR+aJD8Zi6do15e6SdZxwAmnP2A5UeCR4OhGKRBavhQt0RwKCI7JJqgBBdJi3bBlmRAMSwtlEdVWnGJcZ8VWc0BvHCAgUu66QF3NMQzASYjlAvqMB63KbZSgPYm1ASNj2lR8oeZGHzWWAowgIE800db5M0LcbOaEEUPmHrejkUpZykp8bv5DL3Fs4J2EERtP2dJSKrFOVHTzflqeNZ8QS6TtP6JqgtAr27b2B8Orr7LL8eZ0HxI859VNYYCBpGnj5Y7qgP2VjRXmsC7WEpsmMRDDlS9VT2Y62/MldYcrXNATHqf+f8xHNYoK0/YDp9P19Jm1qGmy2IFTjAII0vSd2QcNQ6K+K2ReZ/bFpYAkVnfXj8YBdwDbRNPEDsDf8oAlcGrSvYH0OlremvDDdPg3g2rNcoWKzLWTpDkQ4nKMLLquonDDwMw6oy5/aHZkJgwwMH9Wwb9qlk/YGT2VKbj1FpFAdCLTOvkxla5VgGlqjgpYdWrOC9iG0TSZvImPOINV9H9YRubG7YKJST8Z+pulb+bOaLml4ckGDFTr/gdeMA7pApDfkNn9U9ycf6CwgrIBFCu+RJ39r7lIQ2jSzFf0pUV2HJzc0JGh7T3osX4VCqK/lMaZL0ebixVh8blhc9DxpPS5/hQQDasrQtYhC/NcyfjfBMZQ70o2ODRzrZLWOTof4B41fQU3kaTT3NWwmW0cu5MssyNuwnRQIGB9W2S6drjUiYBzUxh6Rrj0iULxPazIi23iA0h9aZQI6JC5xhLZj4WCg6DYsyYQk8W7yGwwaB2WAxg6WS4I5pC3S7u5HE+qmQFwxTv9hYbxVnkBw1NvKFPi6MSBFuk+pw2FCuLzGH4gPDASFGs3tm0KRzmqCtD1Uy6JjngQYu1N1TsztEC+ZrYSbR9MaYDjCUa/tA+lmur+lB0TIBWAS9Z6xjSK7ucKZRNLfb/mWLQ+mgwHedOF+f19bGDtEHrafFRKMutLspd4ytUHQCZrT8L3vDgWJXkx4i6Q2ur7VAvM2M7nC8h7Lue+nEuOjR8YrNvts0ts1bIUXIYFjtAOBI/39ish7Ilevc46ToBKUfSw39P8ldI7+JFCuDwPhckd8uubMT0vtKzR7aDYZ/80g+grNezRpvKBCskMiB1sLzbIJoHzbqBqo9fFfxPOVidbv8WzQvPMLKj4f8HlzDyo6H9CRxl4F5gMwlcb5LZrNmn6k3crWAfbJihSm0XPOpDhbyCyyhLWpVaowfYBpz2DeGocVqA9ApTZiReY0Imuclu1Hp5d8UwPo7V76Q46dJHEcvB9FCYOYXnX/2wqzx5Hf8dqMl36Hq0KzQ7MvQvQJbOMPu3SEy/HqB4D65wGjowSXK0r/RinaXHWYcGkC0Fj+rAKWEZhUV48EjAUOjNuE8BUOxYLRON2RFaYPMckuoAmnSJiYyUyYTBWmDzGJfVYh+ggRC+icPtG0D1jAIgImdAKNjpyNULF5xyadDLvbU6UHI16TjusK+0sakuj0/GfMk3SqMLC4SF2nYYS3WaZw/8fbheZJClaYBByoCQkC4Zn8I18ENHBCjScBACVjt+A2HlRMd0yIFRijCB6m7Xui7Tuib7/uE1XQPg1tVxtcIdsi+yE2Hwmi0zMMpdZImRyUrd3Pw2Y5OhjQt2vvOxT5sAyDcxLI+NCIJ1BqgJXb7xnTRvkiASUqeo00tMEk4fN2Mk569+IsXQkUNprJRl04AorwKWKCpjh8hoJEkZeuUdUylIZLOllKbKWUivhzKCxlwqEWdnZNi8xvAaFvZ4yBiUSrnLLNFTg2p0oLfRLVDVmA7SBdr9lRTuhbGnpNBwVsKvrSv17iCFC3bcVEzDZ6SBfVdjBTdcAdgJHmIeMI2mAvrbaXulAuGPfJ/GTE8VMsyLC0yGoKqGmQcme5n+nOsjadhIfYh3KTXclhWEHRgMnC8LmdttYSnz6AIhrN/ZZBZoMSksYVC+A09OzaDNFc4eBpMxZx29pz84ZA0BzYcd1MYxt04VyHckY86PNmv12IWRfzT+w/C5tt7ojoZGquo8vmr5D5zycsiSGFPtt1i5oGUjtppZlKr2cYhNwtdwQDal6n5gkydZfRJSJrktBZEjwjTxDBCyh2it7sa10qaV474fQfoWFBq9aGWXN2wtkaDRbb4mMYSKwqFFiapGXTnH27eQUpjmQ1vr2pbxxxCubwtcxjc8Igb70kHMpBYzc+sAvlgz5kzLo2gNSHVX0qOcDOFmbrv50Pj7dsxRmOwFxDVDtEWgJTFW/8O5o7xp6ggulb5pJOqYQmO/sxk7pZH3DHSHxyOFeaDo5mC0fSFok0WyCfTj0LaEZUfkDYisYuFik1jhxVDQukLnAQEWBgFCu4Xm9Y4BKwTYsgyFvLvJ+kgAGvks0CApQsrLf2lXCmiVa5gECPNF6iCfafAbWmtUplM3wCWji72dlnYjTrLltBoG9nBFJTPyXfYR5Hau9WPFIe8k9pzz09CRdAwBlRvCJitWBKatVkqlGV8otPau9uzDh5KHsJf8I+QdfhnMpeh3DuFCvGXc8mr/NwU6N9xtPqFjAy1bHpQf2G0aYnVOpGyeHs4kyHQsvqtcff0NoiOtnVkW3Kp8AQa8AjBulKieqANow6oL8BdAdpywEUIO+ZcjgqHKQITZeyQV0grIIoCUBZBTAEiq3AZPj6+2Xz2UYw5wXkIgmCk2kyIwfn2ZBROG0xGjajYjtWEwrmeAchOx5ZUQdkp25adiLx2aJTHFKhiKPTMznwvP7fMJ5oEAxZIING4n/UrKX/iNejmLNnsvtJyNLZpl8EdQD8QK6UeaWHR1q6uA9ppT8ZbFaty6vhCC81n/zBQOijAxsR4o6A9RQr4LCy1gwvVwRsF2z6fezp+LzYAn0PhfcmtKyj1A5rp45PLfE/UXIIgtZbO4XdCXmYHzg6rgvhxqArHPvCf3l1hJsiZR8Uhxwd218kDD9T4wuRV//wBt/ReY0Ziz5RJQ4Dl2KLWRCvW4aE9o/cBGbDtvDIZ+apg6B1UMRlwdb3AhY7Y1Ps9wLpWbApvBA/O6q9rGzGGM8+0ySj4rXhNSXz+Ss6+9TAdhDMOv/ZnudozJ4Ym8vun46Q0pauC7Her2Ia4jB6uwsQEFfMiW7LJjP29EQc1V2dzEejDqkRp6GsP0SPOHYpEGZTuhRmDUeYdTsWmV3gKEbpG7gBS9mUH1RhHROW+IKm3J0YmELrg2thR6T1V0ifnNH1+0GculFdf0eiGCcch7Ezel5tjmdUZ73j5YqOV8pE6rXMUcIvAlsSHMRLH3NyOgjEZwtxOpV+TObUp6Ez21NxiTIHDa/eMGgyDIXsLUlEsSvklPPSHrkoolEqezeyGXco7TTvVfztE33nQJDs6ZppeZE845iGjkADI35DzOdUrHnhTBpOiW1kNnRzJEeQF+OnJzTgxBm91wWyW4c4XiKxOle47YvdR11ITIGTv+BK2qmrWwCUF7URwU+uMOuDYcZXOHbqcFDQZa7Pyw0dFSuLnQl+q/EQa+bI+aujrpdVZOjRoWK9pmYWLy9uF3hFg1c04dgX63BG7HRTe7nhozyK0YA6GiC3B+6ShEQswNGjwd5+3bwPOp8nm/vvjvKzJnfifbg7gfR6TTknMgeG8+XWcISbKm6Zi7tzw8aiNY1x4IzEwdmoO3KuyFxPN+mVF7nr1SoJ6T/p8eDM+QrF278On4iwhFkSoRGNCHa1ct4mwbUQPfExXQEHJXNzLT5gGMkcmAyqu0IPjtil+evAteR1tw4E4F90HhJXQpxgqN0koTt3hRRo1pzYMV6tmPiZK8l9MEou1W1ppxvxQddyfgN3BaFyk8haoHiH8IbOOHbn2i00CbwjPuNzZzQfHHxhvGk1GDhzCVC7aj83eHfXjiADE3+6JQl3KXUNRtZuk5hTlwLsutcC8wL3PfRdEjgwJ8P3JEYTpwIn7Q4QkZssMV9h3xWRazeBiNxk+RqlxpxsoInXrvBTXQlrcndHFlSs3Kk8LJRgpydeQDc4XCSfmpUNAp7a+K5nLRvrMZ+KfesR/oP67tTXQUnyeAlfuNNy66BpjTVu09HIEWZg/Igpc6fbz8EI58z3XPOidh+IYzViSehMXZ2yRa3ZJI9LQgJ/iSlHA18cDRGdBcSZ6pPdhX2gGBuOYrSm/T7G2HQEo9p6w6w0hjhOZGE75s4cINrBlNt0zV+H9Weypu7kxHq6lwB0cY3xWmzHG3cuhfVsC9gYc2e8LeusCPcTZ7ysXdt/e5uRORNF0j4YdVndknWcOFPipW2O6eKaBEnMHIHV0Y2O68Ly5B+u7ER1pKLxneiF7OUpcKdFr/W96CWhM+64dlI5D1iuON0gYLniWls3TiWsVgXrc7CmURLiFXUFl5IfNo7rnuMwccVN7LQsq60H4hAs3Tt+X4a1JmwdkNMzPHt1xnxQ3MR6rZEV1yRdtSYuVwyIrm7yQ5fWcInDRdp5MXaqpkU316vNjYViwYnvEDM1kGpc1i7ICjszp0S7B7surbE7rNSWFW/fm6Tljovd1I1H5AHLlROyqRt31oaVrFauJDTUJuzGYU3InIgVU+zMoagbTNUl5i3Zi0PjXNR6WPPKawvMFf2lBnKM+0OeWG0QOFMgoVa+Zr81rAvsPqQR+ekILjUCbdzwesRiKcJ/vGNs5YwWU9zuL/S0zhWbK7qsp1vMr08tkOO8HMHVtm2NPbKVQ25RS7vRfD68XNmNLWviFeEnEr+enlG2xP9g7krBfr2m+JKZJ2h46cK/TmyIE4cChtrZbW1cS7JKL6s+Erx2FlvmU1IX2wUOgo1t4T+7kmXTbracBzSWxMhbksCdcnLrW/SC4wV1JlDd1a2+18V1hcN5QNAjjZdOdXzU7SKnzY0uluiBBTFeuHOzrWX7INij5oxZqxuRzZWaM8V1ugVQutT+ImSNRs5c/dC+h6XL69aV4nzrJsYtC0+uWUj/SW1aPKdOFaoo4y4zx2f16aHzMHZmXwKQNuStmENRRuvu5q+cLxpyFkUOodMtstZF55o2eyvn/PJsGl1iXkDX6MqlqGNXO6ytzSxmnKA7YdbG6H7tjPvUte0IKNxccaAsajWfktAnp2JFjGNBzxmrQxvZZuUazMZ4ERJX2oB2dS+Q5MCL+sLY8NnalRia9qUbfWa3iR8Q7E6xmX5QIzdkrip/C1L2SMP5SrBwhJg6qN0ksTXjcXQ6WK2XNCbYobSTbumBl65cAxn3l+5081RFLLse08R1hiMyw85syba2EtPlRUPmJ0GJGj9pE2PCI3/BwbMrwHSvd+UALEY3OAl9Rzv9tTNXsusiG+LV2qGrEor12jWuxba8HDVd21Z4PVF3ijJsWxWS14K71LFZ8SezR6+1iYXMnfoVNXeZvVw2F1yu6C/1FnTLvAJLuy7f0CdX4ojaLfu1iQV0NXMoYamdHdflJRO8aCh0fsxfkfdMZU2Go/rsC8nLY9BzRb2psmfe/H/1A4e2qnJ4Ghe2EeUxOqPOdOlU5csCsB8OiZd2NkmXFnsJl4KEc4eAImbGjVoVnKP637xCO/9JuE+jSp99ktcF5eSFMVec84POItnrpLSBRUuXVNnBkLjsxcU5EXNGhym1eHXj2n9HbELdSfbadtIlMzQMCA4dss/2Ja1jfGtessCVCT/q+Afjtqxk5Y5oabcV0ccVzlmAHcGlPTpaF9cVFvr+MqBzd0RMYdbpGGdGn505H7Wn1+QAyyHRUoKwxg/GK8ZlMZT/jKYcU1dKoqxH/q99grbGa4Xs88i8Zxw7hGzftPjKXSVdZsK0YBx5L3S1coibbRvjTxLLeKKjuIybF3/hV+xMpaJtNXZDnwj6UxyYzlxPOgiMGWc2ZjHjM1ni6UowUREz88Urv5A13ETWNK7GJtQPqe9ayzLbVRhbalMs59I7uj07xp3MPWqO7lDzFYx3OFwQvhuu5I602S4tVrg5I2+6s+K0uTH/GTlW1Kg9aSkfaHJIgkvjvOzv0XSsxCzALgW2bZdN3bEXaeO6gks5P+vGcSWhQ0lftWON+S354Agp1Zw1XkzsYRqgM4d2onaXAm1gIY0xf0UjKl6JcODaxFDbroAnPppwoB4oeUkhOcJNe0CaPrdkhpFbxdmKrBnPcXqERPjFTVpt4wEhjwRP6DJJCzSqpHAmck5HHo0nN2UymMxkpwx3dFnHtnfuPVP0Z7JaO8JrV9Bij1dA5g7Jl3pPzngSRfAia6n5HVNmfdvKbIWDjQvlVhsb+7cmvDANAvG5s8Jm3tAQyFZs5s6kIdUFML89BTGh0hhx5yhQu0GYl7KEO3QPQG1hZh7XtkjPnbTmvq2xa8togVjDFWJKVVDmYdw5EHNnQ+p3+tekNSVhSJ3pWWnbqKhCPRlgybi1I6x2sX1rLvijUylx7flB2rTEB4vSZhgVsk8iW+KApKkkh6DZbuos+9JHbln41uWMsTm6xPGScIeoWSuMiom/PB04VPOvuyWnYsEanBz1gvqZvSAdTkO8Ihy7KlPZ20TlwMpRucoej9BiRYIATZabFbpAq6Vr1mvRYqsVdrXRtVnFLlCtE4cSabqjM7RYceZMYtumTJ3/X+K7UjGnRpkzVxpqgZK2ujuDBNX4stHNlzZIdGjeg26bLB1WY2dDpV2j1vqEvbhz8tUtnnxy9DVzBZRSoZq5RkkLlOe5gslmOGFKArKW3owznnJrP071hXRhPrxc8ZabupWo+eBqOoJLmdH81l7ZNK+WK7zqILRX2xFcVnfjvXfmCKaWbjm4DqYHOicMbYKijvBSbIiW0TPxEW+ac4+xL/50xS/s6jad+CoyjsM0T5heAz1tocclEWrMGe9HCdNkPx731q8PcED5DLuSZFWH3fWz+0T541sH2CH7X20flj1OcSyCrngE9dq+C9XOHmo9FkJXvIS+dlLtWARd8Rv0o2jHIuiKK6HdNetoBDuuENzfxV/x9Y+FsOsIQvVaYCt74UreCFezRCD0XfFDtFtU5g4w9JeMu2MP6tYtHomfK9ag9pyqI/FzxhTUrTY+Ej9nDEHtQqKc+Z1R/9V3KCADzQzc8nPnANFtqncsgM6cINp5/iMBdPQIaWfPoR0JoDNniAIQjA50JpawfwhnbyaXO8AkcvUAAXACC3iOHh4N+4eHgOfowdHM3JPpGPBcOTR6+xHorxSS5UxviB0KuyidmqwrPQnPFaWnRk3tb1xJz1WtB0L0XNF62o0jjwHvhvnOzBVU6l+slx/IFt9zMkdXdLF8wa+OYFSb1lnfwxeEc1fgKTLYsR4vkFfCYp64s4mVE8R63veC8eeAPjlz/1A5RKwXEF1id8IFHe3a5iPAc8Vy1q/aPQI8ZwxnaFVrEp4rhjM8yeMsCedIeVs3YKoWjPWc2xXmM7lwF+llb2KfOz0SUJ+t3eleogZgOtYDMG65bx1oRRt/ErJ2xgJUs23WhS+l54oJqN/8JGd6N2LrxkuWRA7VvEDbv+8YuiKHbWgG4ZitydxVEbR/CWmDzxXpA1exMWYx42nVi5sEO9YzIRMs1oGD4BV5yWxF+EKI4yMn7kRVldSIdaCyWRIWUonSXuluUuxb39iez5hD+JRqXvv4CI7RGQlcie33oF3MFADRRF6KcwQguAtd3pK66xtbjwym9JyxCqGVok5x6Ir5osYE29bDqlP8kzoCD5zVMmUvaOBOQFXhZ78iQbyfH7t0DVhpX2vd+dgBdPTosF/YJufMhc7IXxua2bzB54r0dXSnsh4HnzOVHdDusG7weS4XJYCQwZUzClB13CBYMCtn9J96gxXABk78Z3eErw9O+CQ+R6WvBUDzSXzOnL5K9137zm+Kz5XKSnC3WDf4nLm7r9ygtp5I3+BzpQlgF1zINMXnSgNA9eiwfvLeh0RAQncMOzp20H7C6IEsqexe4tSdOAWilfjfDxKcDjinP2Q7/ItA1rRFjvA7mHvyFQ9ErF8LHHtB5zhyJVOu3oL7it2SA7Hbc1d45XDS5sFL7PGlI8h2MmUb2aMjvPKoa86Bl+fMlgTCiyXVlsyIrNqSmXg9EnfsCqW1knG74gwvFnjhTL2dYoYZN1zP3KlxUkXrK16SJis+Ixx5S3cGuO/r+6+1idNjRnASvyIPB+6kUjvWoTH2jAbhXNoWAg91S+aUM9O4SpNNue7Ep8OuTC9XujN8bZSLJrJoSV29JvGlWgc9XAzHaLh053aTWh78pcmHesgSzknov6Lzn/4Sh+4YaIqsGbdnh0kkFuBKJFa10b6STdbCNWIvYRRjyl0lZlzARpyGz2nMnyXi0KSumGk7X8neqTnaJkumLHHm6GxYPjrPA/JDXmt1hFdHNc2M+wLnkfjUDhFTL1J/paIjH2BIngWuUFNOAfP78o3avTOOpmKamd+aCWeOsOopVxSMB7LPf1JnQthKAMO4RXYlzFc/cQVXu2f7iLxiMXEl1qOW+tiBha7DJ8ZXTl1wUZquGz8hr1crKl6ukGVA9kvK3LmNYTvl+x5awxFobdvVUXIIhzPx624Od/U0aUVxml+SIR9HK437X7njrUVtnEQkWblCK4eeFlq0bhmaYC4Di64Qs51V2uJy5qTs5jAGJxdgrpyS1k2LiSSDvj8J8198QmeLyixsTYfOyTzam+vBEpIlPpwjuLq2I2OytMeZZKUiW8ZtMM+p1K7tOzZTKryiGI2xv6TOtKDsWY8nbrFNEu4vceQKN+t7c5qEoTNxWOsJkfu1W2Uqii7Tk6726P8D";
Sidebar.prototype.gearImage=GRAPH_IMAGE_PATH+"/clipart/Gear_128x128.png";Sidebar.prototype.libAliases={aws2:"aws3",gcp:"gcp2"};Sidebar.prototype.defaultEntries="general;uml;er;bpmn;flowchart;basic;arrows2";Sidebar.prototype.signs="Animals Food Healthcare Nature People Safety Science Sports Tech Transportation Travel".split(" ");Sidebar.prototype.ibm="Analytics Applications Blockchain Data DevOps Infrastructure Management Miscellaneous Security Social Users VPC Boxes Connectors".split(" ");Sidebar.prototype.allied_telesis=
@@ -11126,8 +11126,8 @@ Graph.fileSupport&&(E.addEventListener("dragover",function(v){v.stopPropagation(
function(){b.openLink("mermaid"==l?"https://mermaid-js.github.io/mermaid/#/":"https://plantuml.com/")}),e.className="geBtn",f.appendChild(e));e=mxUtils.button(mxResources.get("close"),function(){E.value==p?b.hideDialog():b.confirm(mxResources.get("areYouSure"),function(){b.hideDialog()})});e.className="geBtn";b.editor.cancelFirst&&f.appendChild(e);g=mxUtils.button(mxResources.get("insert"),function(v){b.hideDialog();d(E.value,c.value,v)});f.appendChild(g);g.className="geBtn gePrimaryBtn";b.editor.cancelFirst||
f.appendChild(e);this.container=f},NewDialog=function(b,f,l,d,t,u,E,c,e,g,k,m,p,v,x,z,y,L){function N(da){null!=da&&(Ba=Ha=da?135:140);da=!0;if(null!=xa)for(;I<xa.length&&(da||0!=mxUtils.mod(I,30));){var wa=xa[I++];wa=D(wa.url,wa.libs,wa.title,wa.tooltip?wa.tooltip:wa.title,wa.select,wa.imgUrl,wa.info,wa.onClick,wa.preview,wa.noImg,wa.clibs);da&&wa.click();da=!1}}function J(){if(Y&&null!=v)l||b.hideDialog(),v(Y,ba,F.value);else if(d)l||b.hideDialog(),d(Q,F.value,ea,P);else{var da=F.value;null!=da&&
0<da.length&&b.pickFolder(b.mode,function(wa){b.createFile(da,Q,null!=P&&0<P.length?P:null,null,function(){b.hideDialog()},null,wa,null,null!=T&&0<T.length?T:null)},b.mode!=App.MODE_GOOGLE||null==b.stateArg||null==b.stateArg.folderId)}}function q(da,wa,ta,sa,ra,va,ha){null!=V&&(V.style.backgroundColor="transparent",V.style.border="1px solid transparent");X.removeAttribute("disabled");Q=wa;P=ta;T=va;V=da;Y=sa;ea=ha;ba=ra;V.style.backgroundColor=c;V.style.border=e}function D(da,wa,ta,sa,ra,va,ha,ma,
-aa,fa,na){function la(Ka,Ta){null==Ca?(Oa=Ka,Oa=/^https?:\/\//.test(Oa)&&!b.editor.isCorsEnabledForUrl(Oa)?PROXY_URL+"?url="+encodeURIComponent(Oa):TEMPLATE_PATH+"/"+Oa,mxUtils.get(Oa,mxUtils.bind(this,function(Ua){200<=Ua.getStatus()&&299>=Ua.getStatus()&&(Ca=Ua.getText());Ta(Ca,Oa)}))):Ta(Ca,Oa)}function qa(Ka,Ta,Ua){if(null!=Ka&&mxUtils.isAncestorNode(document.body,ka)){Ka=mxUtils.parseXml(Ka);Ka=Editor.parseDiagramNode(Ka.documentElement);var Va=new mxCodec(Ka.ownerDocument),Za=new mxGraphModel;
-Va.decode(Ka,Za);Ka=Za.root.getChildAt(0).children;b.sidebar.createTooltip(ka,Ka,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!=ta?mxResources.get(ta,null,ta):null,!0,new mxPoint(Ta,Ua),!0,function(){Xa=null!=b.sidebar.tooltip&&"none"!=b.sidebar.tooltip.style.display;q(ka,null,null,da,ha,na)},!0,!1)}}function oa(Ka,Ta){null==da||Sa||
+aa,fa,na){function la(Ka,Ta){null==Ca?(Oa=Ka,Oa=/^https?:\/\//.test(Oa)&&!b.editor.isCorsEnabledForUrl(Oa)?PROXY_URL+"?url="+encodeURIComponent(Oa):TEMPLATE_PATH+"/"+Oa,mxUtils.get(Oa,mxUtils.bind(this,function(Ua){200<=Ua.getStatus()&&299>=Ua.getStatus()&&(Ca=Ua.getText());Ta(Ca,Oa)}))):Ta(Ca,Oa)}function qa(Ka,Ta,Ua){if(null!=Ka&&mxUtils.isAncestorNode(document.body,ka)){Ka=mxUtils.parseXml(Ka);Ka=Editor.parseDiagramNode(Ka.documentElement);var Va=new mxCodec(Ka.ownerDocument),$a=new mxGraphModel;
+Va.decode(Ka,$a);Ka=$a.root.getChildAt(0).children;b.sidebar.createTooltip(ka,Ka,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!=ta?mxResources.get(ta,null,ta):null,!0,new mxPoint(Ta,Ua),!0,function(){Xa=null!=b.sidebar.tooltip&&"none"!=b.sidebar.tooltip.style.display;q(ka,null,null,da,ha,na)},!0,!1)}}function oa(Ka,Ta){null==da||Sa||
b.sidebar.currentElt==ka?b.sidebar.hideTooltip():(b.sidebar.hideTooltip(),null!=Ea?(Ta='<mxfile><diagram id="d" name="n">'+Graph.compress('<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="2" value="" style="shape=image;image='+Ea.src+';imageAspect=1;" parent="1" vertex="1"><mxGeometry width="'+Ea.naturalWidth+'" height="'+Ea.naturalHeight+'" as="geometry" /></mxCell></root></mxGraphModel>')+"</diagram></mxfile>",qa(Ta,mxEvent.getClientX(Ka),mxEvent.getClientY(Ka))):(b.sidebar.currentElt=
ka,Sa=!0,la(da,function(Ua){Sa&&b.sidebar.currentElt==ka&&qa(Ua,mxEvent.getClientX(Ka),mxEvent.getClientY(Ka));Sa=!1})))}var ka=document.createElement("div");ka.className="geTemplate";ka.style.position="relative";ka.style.height=Ba+"px";ka.style.width=Ha+"px";var Ca=null,Oa=da;Editor.isDarkMode()&&(ka.style.filter="invert(100%)");null!=ta?ka.setAttribute("title",mxResources.get(ta,null,ta)):null!=sa&&0<sa.length&&ka.setAttribute("title",sa);var Sa=!1,Ea=null;if(null!=va){ka.style.display="inline-flex";
ka.style.justifyContent="center";ka.style.alignItems="center";ra=document.createElement("img");ra.setAttribute("src",va);ra.setAttribute("alt",sa);ra.style.maxWidth=Ba+"px";ra.style.maxHeight=Ha+"px";Ea=ra;var Ia=va.replace(".drawio.xml","").replace(".drawio","").replace(".xml","");ka.appendChild(ra);ra.onerror=function(){this.src!=Ia?this.src=Ia:(this.src=Editor.errorImage,this.onerror=null)};mxEvent.addGestureListeners(ka,mxUtils.bind(this,function(Ka){q(ka,null,null,da,ha,na)}),null,null);mxEvent.addListener(ka,
@@ -11526,51 +11526,51 @@ this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.update
"Invalid data",toString:function(){return this.message}};};var f=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(n,B){n=null!=n?n:!0;var K=f.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&K.setAttribute("style",this.graph.currentStyle);var R=this.graph.getBackgroundImageObject(this.graph.backgroundImage,B);null!=R&&K.setAttribute("backgroundImage",JSON.stringify(R));K.setAttribute("math",this.graph.mathEnabled?"1":"0");K.setAttribute("shadow",
this.graph.shadowVisible?"1":"0");null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(R=this.graph.extFonts.map(function(P){return P.name+"^"+P.url}),K.setAttribute("extFonts",R.join("|")));return K};Editor.prototype.isDataSvg=function(n){try{var B=mxUtils.parseXml(n).documentElement.getAttribute("content");if(null!=B&&(null!=B&&"<"!=B.charAt(0)&&"%"!=B.charAt(0)&&(B=unescape(window.atob?atob(B):Base64.decode(cont,B))),null!=B&&"%"==B.charAt(0)&&(B=decodeURIComponent(B)),null!=B&&0<B.length)){var K=
mxUtils.parseXml(B).documentElement;return"mxfile"==K.nodeName||"mxGraphModel"==K.nodeName}}catch(R){}return!1};Editor.prototype.extractGraphModel=function(n,B,K){return Editor.extractGraphModel.apply(this,arguments)};var l=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();
-l.apply(this,arguments)};var d=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){d.apply(this,arguments);this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.initMath=function(n,B){if("undefined"===typeof window.MathJax){n=null!=n?n:DRAW_MATH_URL+"/startup.js";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(P){try{MathJax.typesetClear([P]),MathJax.typeset([P])}catch(T){MathJax.typesetClear([P]),
-null!=T.retry?T.retry.then(function(){MathJax.typeset([P])}):null!=window.console&&console.log("Error in MathJax: "+T.toString())}};window.MathJax=null!=B?B:{loader:{load:["html"==urlParams["math-output"]?"output/chtml":"output/svg","input/tex","input/asciimath"]},startup:{pageReady:function(){for(var P=0;P<Editor.mathJaxQueue.length;P++)Editor.doMathJaxRender(Editor.mathJaxQueue[P])}}};Editor.MathJaxRender=function(P){"undefined"!==typeof MathJax&&"function"===typeof MathJax.typeset?Editor.doMathJaxRender(P):
-Editor.mathJaxQueue.push(P)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var K=Editor.prototype.init;Editor.prototype.init=function(){K.apply(this,arguments);var P=mxUtils.bind(this,function(T,Q){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)});this.graph.model.addListener(mxEvent.CHANGE,P);this.graph.addListener(mxEvent.REFRESH,P)};B=document.getElementsByTagName("script");if(null!=B&&0<B.length){var R=document.createElement("script");
-R.setAttribute("type","text/javascript");R.setAttribute("src",n);B[0].parentNode.appendChild(R)}}};Editor.prototype.csvToArray=function(n){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(n))return null;var B=[];n.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,
-function(K,R,P,T){void 0!==R?B.push(R.replace(/\\'/g,"'")):void 0!==P?B.push(P.replace(/\\"/g,'"')):void 0!==T&&B.push(T);return""});/,\s*$/.test(n)&&B.push("");return B};Editor.prototype.isCorsEnabledForUrl=function(n){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||n.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(n)||
-"https://raw.githubusercontent.com/"===n.substring(0,34)||"https://fonts.googleapis.com/"===n.substring(0,29)||"https://fonts.gstatic.com/"===n.substring(0,26)};Editor.prototype.createImageUrlConverter=function(){var n=new mxUrlConverter;n.updateBaseUrl();var B=n.convert,K=this;n.convert=function(R){if(null!=R){var P="http://"==R.substring(0,7)||"https://"==R.substring(0,8);P&&!navigator.onLine?R=Editor.svgBrokenImage.src:!P||R.substring(0,n.baseUrl.length)==n.baseUrl||K.crossOriginImages&&K.isCorsEnabledForUrl(R)?
-"chrome-extension://"==R.substring(0,19)||mxClient.IS_CHROMEAPP||(R=B.apply(this,arguments)):R=PROXY_URL+"?url="+encodeURIComponent(R)}return R};return n};Editor.createSvgDataUri=function(n){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(n)))};Editor.prototype.convertImageToDataUri=function(n,B){try{var K=!0,R=window.setTimeout(mxUtils.bind(this,function(){K=!1;B(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(n))mxUtils.get(n,mxUtils.bind(this,function(T){window.clearTimeout(R);
-K&&B(Editor.createSvgDataUri(T.getText()))}),function(){window.clearTimeout(R);K&&B(Editor.svgBrokenImage.src)});else{var P=new Image;this.crossOriginImages&&(P.crossOrigin="anonymous");P.onload=function(){window.clearTimeout(R);if(K)try{var T=document.createElement("canvas"),Q=T.getContext("2d");T.height=P.height;T.width=P.width;Q.drawImage(P,0,0);B(T.toDataURL())}catch(V){B(Editor.svgBrokenImage.src)}};P.onerror=function(){window.clearTimeout(R);K&&B(Editor.svgBrokenImage.src)};P.src=n}}catch(T){B(Editor.svgBrokenImage.src)}};
-Editor.prototype.convertImages=function(n,B,K,R){null==R&&(R=this.createImageUrlConverter());var P=0,T=K||{};K=mxUtils.bind(this,function(Q,V){Q=n.getElementsByTagName(Q);for(var Y=0;Y<Q.length;Y++)mxUtils.bind(this,function(ea){try{if(null!=ea){var ba=R.convert(ea.getAttribute(V));if(null!=ba&&"data:"!=ba.substring(0,5)){var ca=T[ba];null==ca?(P++,this.convertImageToDataUri(ba,function(ja){null!=ja&&(T[ba]=ja,ea.setAttribute(V,ja));P--;0==P&&B(n)})):ea.setAttribute(V,ca)}else null!=ba&&ea.setAttribute(V,
-ba)}}catch(ja){}})(Q[Y])});K("image","xlink:href");K("img","src");0==P&&B(n)};Editor.base64Encode=function(n){for(var B="",K=0,R=n.length,P,T,Q;K<R;){P=n.charCodeAt(K++)&255;if(K==R){B+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(P>>2);B+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((P&3)<<4);B+="==";break}T=n.charCodeAt(K++);if(K==R){B+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(P>>2);B+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((P&
-3)<<4|(T&240)>>4);B+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((T&15)<<2);B+="=";break}Q=n.charCodeAt(K++);B+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(P>>2);B+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((P&3)<<4|(T&240)>>4);B+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((T&15)<<2|(Q&192)>>6);B+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(Q&63)}return B};
-Editor.prototype.loadUrl=function(n,B,K,R,P,T,Q,V){try{var Y=!Q&&(R||/(\.png)($|\?)/i.test(n)||/(\.jpe?g)($|\?)/i.test(n)||/(\.gif)($|\?)/i.test(n)||/(\.pdf)($|\?)/i.test(n));P=null!=P?P:!0;var ea=mxUtils.bind(this,function(){mxUtils.get(n,mxUtils.bind(this,function(ba){if(200<=ba.getStatus()&&299>=ba.getStatus()){if(null!=B){var ca=ba.getText();if(Y){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){ba=mxUtilsBinaryToArray(ba.request.responseBody).toArray();
-ca=Array(ba.length);for(var ja=0;ja<ba.length;ja++)ca[ja]=String.fromCharCode(ba[ja]);ca=ca.join("")}T=null!=T?T:"data:image/png;base64,";ca=T+Editor.base64Encode(ca)}B(ca)}}else null!=K&&(0==ba.getStatus()?K({message:mxResources.get("accessDenied")},ba):K({message:mxResources.get("error")+" "+ba.getStatus()},ba))}),function(ba){null!=K&&K({message:mxResources.get("error")+" "+ba.getStatus()})},Y,this.timeout,function(){P&&null!=K&&K({code:App.ERROR_TIMEOUT,retry:ea})},V)});ea()}catch(ba){null!=K&&
-K(ba)}};Editor.prototype.absoluteCssFonts=function(n){var B=null;if(null!=n){var K=n.split("url(");if(0<K.length){B=[K[0]];n=window.location.pathname;var R=null!=n?n.lastIndexOf("/"):-1;0<=R&&(n=n.substring(0,R+1));R=document.getElementsByTagName("base");var P=null;null!=R&&0<R.length&&(P=R[0].getAttribute("href"));for(var T=1;T<K.length;T++)if(R=K[T].indexOf(")"),0<R){var Q=Editor.trimCssUrl(K[T].substring(0,R));this.graph.isRelativeUrl(Q)&&(Q=null!=P?P+Q:window.location.protocol+"//"+window.location.hostname+
-("/"==Q.charAt(0)?"":n)+Q);B.push('url("'+Q+'"'+K[T].substring(R))}else B.push(K[T])}else B=[n]}return null!=B?B.join(""):null};Editor.prototype.mapFontUrl=function(n,B,K){/^https?:\/\//.test(B)&&!this.isCorsEnabledForUrl(B)&&(B=PROXY_URL+"?url="+encodeURIComponent(B));K(n,B)};Editor.prototype.embedCssFonts=function(n,B){var K=n.split("url("),R=0;null==this.cachedFonts&&(this.cachedFonts={});var P=mxUtils.bind(this,function(){if(0==R){for(var Y=[K[0]],ea=1;ea<K.length;ea++){var ba=K[ea].indexOf(")");
-Y.push('url("');Y.push(this.cachedFonts[Editor.trimCssUrl(K[ea].substring(0,ba))]);Y.push('"'+K[ea].substring(ba))}B(Y.join(""))}});if(0<K.length){for(n=1;n<K.length;n++){var T=K[n].indexOf(")"),Q=null,V=K[n].indexOf("format(",T);0<V&&(Q=Editor.trimCssUrl(K[n].substring(V+7,K[n].indexOf(")",V))));mxUtils.bind(this,function(Y){if(null==this.cachedFonts[Y]){this.cachedFonts[Y]=Y;R++;var ea="application/x-font-ttf";if("svg"==Q||/(\.svg)($|\?)/i.test(Y))ea="image/svg+xml";else if("otf"==Q||"embedded-opentype"==
-Q||/(\.otf)($|\?)/i.test(Y))ea="application/x-font-opentype";else if("woff"==Q||/(\.woff)($|\?)/i.test(Y))ea="application/font-woff";else if("woff2"==Q||/(\.woff2)($|\?)/i.test(Y))ea="application/font-woff2";else if("eot"==Q||/(\.eot)($|\?)/i.test(Y))ea="application/vnd.ms-fontobject";else if("sfnt"==Q||/(\.sfnt)($|\?)/i.test(Y))ea="application/font-sfnt";this.mapFontUrl(ea,Y,mxUtils.bind(this,function(ba,ca){this.loadUrl(ca,mxUtils.bind(this,function(ja){this.cachedFonts[Y]=ja;R--;P()}),mxUtils.bind(this,
-function(ja){R--;P()}),!0,null,"data:"+ba+";charset=utf-8;base64,")}))}})(Editor.trimCssUrl(K[n].substring(0,T)),Q)}P()}else B(n)};Editor.prototype.loadFonts=function(n){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(B){this.resolvedFontCss=B;null!=n&&n()})):null!=n&&n()};Editor.prototype.createGoogleFontCache=function(){var n={},B;for(B in Graph.fontMapping)Graph.isCssFontUrl(B)&&(n[B]=Graph.fontMapping[B]);return n};Editor.prototype.embedExtFonts=
-function(n){var B=this.graph.getCustomFonts();if(0<B.length){var K=[],R=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts=this.createGoogleFontCache());for(var P=mxUtils.bind(this,function(){0==R&&this.embedCssFonts(K.join(""),n)}),T=0;T<B.length;T++)mxUtils.bind(this,function(Q,V){Graph.isCssFontUrl(V)?null==this.cachedGoogleFonts[V]?(R++,this.loadUrl(V,mxUtils.bind(this,function(Y){this.cachedGoogleFonts[V]=Y;K.push(Y+"\n");R--;P()}),mxUtils.bind(this,function(Y){R--;K.push("@import url("+
-V+");\n");P()}))):K.push(this.cachedGoogleFonts[V]+"\n"):K.push('@font-face {font-family: "'+Q+'";src: url("'+V+'")}\n')})(B[T].name,B[T].url);P()}else n()};Editor.prototype.addMathCss=function(n){n=n.getElementsByTagName("defs");if(null!=n&&0<n.length)for(var B=document.getElementsByTagName("style"),K=0;K<B.length;K++){var R=mxUtils.getTextContent(B[K]);0>R.indexOf("mxPageSelector")&&0<R.indexOf("MathJax")&&n[0].appendChild(B[K].cloneNode(!0))}};Editor.prototype.addFontCss=function(n,B){B=null!=
-B?B:this.absoluteCssFonts(this.fontCss);if(null!=B){var K=n.getElementsByTagName("defs"),R=n.ownerDocument;0==K.length?(K=null!=R.createElementNS?R.createElementNS(mxConstants.NS_SVG,"defs"):R.createElement("defs"),null!=n.firstChild?n.insertBefore(K,n.firstChild):n.appendChild(K)):K=K[0];n=null!=R.createElementNS?R.createElementNS(mxConstants.NS_SVG,"style"):R.createElement("style");n.setAttribute("type","text/css");mxUtils.setTextContent(n,B);K.appendChild(n)}};Editor.prototype.isExportToCanvas=
-function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(n,B,K){var R=mxClient.IS_FF?8192:16384;return Math.min(K,Math.min(R/n,R/B))};Editor.prototype.exportToCanvas=function(n,B,K,R,P,T,Q,V,Y,ea,ba,ca,ja,ia,Z,Da,Ga,Ba){try{T=null!=T?T:!0;Q=null!=Q?Q:!0;ca=null!=ca?ca:this.graph;ja=null!=ja?ja:0;var Ha=Y?null:ca.background;Ha==mxConstants.NONE&&(Ha=null);null==Ha&&(Ha=R);null==Ha&&0==Y&&(Ha=Da?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(ca.getSvg(null,
-null,ja,ia,null,Q,null,null,null,ea,null,Da,Ga,Ba),mxUtils.bind(this,function(pa){try{var Na=new Image;Na.onload=mxUtils.bind(this,function(){try{var ya=function(){mxClient.IS_SF?window.setTimeout(function(){xa.drawImage(Na,0,0);n(Ja,pa)},0):(xa.drawImage(Na,0,0),n(Ja,pa))},Ja=document.createElement("canvas"),Fa=parseInt(pa.getAttribute("width")),Pa=parseInt(pa.getAttribute("height"));V=null!=V?V:1;null!=B&&(V=T?Math.min(1,Math.min(3*B/(4*Pa),B/Fa)):B/Fa);V=this.getMaxCanvasScale(Fa,Pa,V);Fa=Math.ceil(V*
-Fa);Pa=Math.ceil(V*Pa);Ja.setAttribute("width",Fa);Ja.setAttribute("height",Pa);var xa=Ja.getContext("2d");null!=Ha&&(xa.beginPath(),xa.rect(0,0,Fa,Pa),xa.fillStyle=Ha,xa.fill());1!=V&&xa.scale(V,V);if(Z){var za=ca.view,ua=za.scale;za.scale=1;var Aa=btoa(unescape(encodeURIComponent(za.createSvgGrid(za.gridColor))));za.scale=ua;Aa="data:image/svg+xml;base64,"+Aa;var da=ca.gridSize*za.gridSteps*V,wa=ca.getGraphBounds(),ta=za.translate.x*ua,sa=za.translate.y*ua,ra=ta+(wa.x-ta)/ua-ja,va=sa+(wa.y-sa)/
-ua-ja,ha=new Image;ha.onload=function(){try{for(var ma=-Math.round(da-mxUtils.mod((ta-ra)*V,da)),aa=-Math.round(da-mxUtils.mod((sa-va)*V,da));ma<Fa;ma+=da)for(var fa=aa;fa<Pa;fa+=da)xa.drawImage(ha,ma/V,fa/V);ya()}catch(na){null!=P&&P(na)}};ha.onerror=function(ma){null!=P&&P(ma)};ha.src=Aa}else ya()}catch(ma){null!=P&&P(ma)}});Na.onerror=function(ya){null!=P&&P(ya)};ea&&this.graph.addSvgShadow(pa);this.graph.mathEnabled&&this.addMathCss(pa);var La=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&
-this.addFontCss(pa,this.resolvedFontCss),Na.src=Editor.createSvgDataUri(mxUtils.getXml(pa))}catch(ya){null!=P&&P(ya)}});this.embedExtFonts(mxUtils.bind(this,function(ya){try{null!=ya&&this.addFontCss(pa,ya),this.loadFonts(La)}catch(Ja){null!=P&&P(Ja)}}))}catch(ya){null!=P&&P(ya)}}),K,ba)}catch(pa){null!=P&&P(pa)}};Editor.crcTable=[];for(var t=0;256>t;t++)for(var u=t,E=0;8>E;E++)u=1==(u&1)?3988292384^u>>>1:u>>>1,Editor.crcTable[t]=u;Editor.updateCRC=function(n,B,K,R){for(var P=0;P<R;P++)n=Editor.crcTable[(n^
-B.charCodeAt(K+P))&255]^n>>>8;return n};Editor.crc32=function(n){for(var B=-1,K=0;K<n.length;K++)B=B>>>8^Editor.crcTable[(B^n.charCodeAt(K))&255];return(B^-1)>>>0};Editor.writeGraphModelToPng=function(n,B,K,R,P){function T(ba,ca){var ja=Y;Y+=ca;return ba.substring(ja,Y)}function Q(ba){ba=T(ba,4);return ba.charCodeAt(3)+(ba.charCodeAt(2)<<8)+(ba.charCodeAt(1)<<16)+(ba.charCodeAt(0)<<24)}function V(ba){return String.fromCharCode(ba>>24&255,ba>>16&255,ba>>8&255,ba&255)}n=n.substring(n.indexOf(",")+1);
-n=window.atob?atob(n):Base64.decode(n,!0);var Y=0;if(T(n,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=P&&P();else if(T(n,4),"IHDR"!=T(n,4))null!=P&&P();else{T(n,17);P=n.substring(0,Y);do{var ea=Q(n);if("IDAT"==T(n,4)){P=n.substring(0,Y-8);"pHYs"==B&&"dpi"==K?(K=Math.round(R/.0254),K=V(K)+V(K)+String.fromCharCode(1)):K=K+String.fromCharCode(0)+("zTXt"==B?String.fromCharCode(0):"")+R;R=4294967295;R=Editor.updateCRC(R,B,0,4);R=Editor.updateCRC(R,K,0,K.length);P+=V(K.length)+
-B+K+V(R^4294967295);P+=n.substring(Y-8,n.length);break}P+=n.substring(Y-8,Y-4+ea);T(n,ea);T(n,4)}while(ea);return"data:image/png;base64,"+(window.btoa?btoa(P):Base64.encode(P,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var c=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(n,B){c.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var e=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=
-function(){e.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(n,B){var K=null;null!=n.editor.graph.getModel().getParent(B)?K=B.getId():null!=n.currentPage&&(K=n.currentPage.getId());return K});if(null!=window.StyleFormatPanel){var g=Format.prototype.init;Format.prototype.init=function(){g.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var k=Format.prototype.refresh;
-Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?k.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var n=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=n&&n.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(n){return!1};var m=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(n){n=m.apply(this,arguments);
-this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var B=this.editorUi,K=B.editor.graph,R=this.createOption(mxResources.get("shadow"),function(){return K.shadowVisible},function(P){var T=new ChangePageSetup(B);T.ignoreColor=!0;T.ignoreImage=!0;T.shadowVisible=P;K.model.execute(T)},{install:function(P){this.listener=function(){P(K.shadowVisible)};B.addListener("shadowVisibleChanged",this.listener)},destroy:function(){B.removeListener(this.listener)}});Editor.enableShadowOption||
-(R.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(R,60));n.appendChild(R)}return n};var p=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(n){n=p.apply(this,arguments);var B=this.editorUi,K=B.editor.graph;if(K.isEnabled()){var R=B.getCurrentFile();if(null!=R&&R.isAutosaveOptional()){var P=this.createOption(mxResources.get("autosave"),function(){return B.editor.autosave},function(Q){B.editor.setAutosave(Q);B.editor.autosave&&
-R.isModified()&&R.fileChanged()},{install:function(Q){this.listener=function(){Q(B.editor.autosave)};B.editor.addListener("autosaveChanged",this.listener)},destroy:function(){B.editor.removeListener(this.listener)}});n.appendChild(P)}}if(this.isMathOptionVisible()&&K.isEnabled()&&"undefined"!==typeof MathJax){P=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return K.mathEnabled},function(Q){B.actions.get("mathematicalTypesetting").funct()},{install:function(Q){this.listener=
-function(){Q(K.mathEnabled)};B.addListener("mathEnabledChanged",this.listener)},destroy:function(){B.removeListener(this.listener)}});P.style.paddingTop="5px";n.appendChild(P);var T=B.menus.createHelpLink("https://www.diagrams.net/doc/faq/math-typesetting");T.style.position="relative";T.style.marginLeft="6px";T.style.top="2px";P.appendChild(T)}return n};mxCellRenderer.prototype.defaultVertexShape.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},
-{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.link.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.flexArrow.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:10},{name:"startWidth",dispName:"Start Width",type:"float",min:0,defVal:20},{name:"endWidth",dispName:"End Width",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.process.prototype.customProperties=
-[{name:"size",dispName:"Indent",type:"float",min:0,max:.5,defVal:.1}];mxCellRenderer.defaultShapes.rhombus.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,max:50,defVal:mxConstants.LINE_ARCSIZE},{name:"double",dispName:"Double",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties=[{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left Line",
-type:"bool",defVal:!0},{name:"right",dispName:"Right Line",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.parallelogram.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.hexagon.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",
-type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.triangle.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE}];mxCellRenderer.defaultShapes.document.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",defVal:.3,min:0,max:1}];mxCellRenderer.defaultShapes.internalStorage.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"dx",dispName:"Left Line",
-type:"float",min:0,defVal:20},{name:"dy",dispName:"Top Line",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.cube.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0},{name:"darkOpacity2",dispName:"Dark Opacity 2",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.step.prototype.customProperties=[{name:"size",dispName:"Notch Size",type:"float",min:0,defVal:20},
-{name:"fixedSize",dispName:"Fixed Size",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.trapezoid.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.tape.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.4}];mxCellRenderer.defaultShapes.note.prototype.customProperties=[{name:"size",dispName:"Fold Size",
-type:"float",min:0,defVal:30},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.card.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Cutoff Size",type:"float",min:0,defVal:30}];mxCellRenderer.defaultShapes.callout.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"base",dispName:"Callout Width",
-type:"float",min:0,defVal:20},{name:"size",dispName:"Callout Length",type:"float",min:0,defVal:30},{name:"position",dispName:"Callout Position",type:"float",min:0,max:1,defVal:.5},{name:"position2",dispName:"Callout Tip Position",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.folder.prototype.customProperties=[{name:"tabWidth",dispName:"Tab Width",type:"float"},{name:"tabHeight",dispName:"Tab Height",type:"float"},{name:"tabPosition",dispName:"Tap Position",type:"enum",enumList:[{val:"left",
-dispName:"Left"},{val:"right",dispName:"Right"}]}];mxCellRenderer.defaultShapes.swimlane.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"startSize",dispName:"Header Size",type:"float"},{name:"swimlaneHead",dispName:"Head Border",type:"bool",defVal:!0},{name:"swimlaneBody",dispName:"Body Border",type:"bool",defVal:!0},{name:"horizontal",dispName:"Horizontal",type:"bool",defVal:!0},{name:"separatorColor",dispName:"Separator Color",type:"color",defVal:null}];
-mxCellRenderer.defaultShapes.table.prototype.customProperties=[{name:"rowLines",dispName:"Row Lines",type:"bool",defVal:!0},{name:"columnLines",dispName:"Column Lines",type:"bool",defVal:!0},{name:"fixedRows",dispName:"Fixed Rows",type:"bool",defVal:!1},{name:"resizeLast",dispName:"Resize Last Column",type:"bool",defVal:!1},{name:"resizeLastRow",dispName:"Resize Last Row",type:"bool",defVal:!1}].concat(mxCellRenderer.defaultShapes.swimlane.prototype.customProperties).concat(mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties);
+l.apply(this,arguments)};var d=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){d.apply(this,arguments);this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.initMath=function(n,B){if("undefined"===typeof window.MathJax&&!mxClient.IS_IE&&!mxClient.IS_IE11){n=null!=n?n:DRAW_MATH_URL+"/startup.js";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(P){try{MathJax.typesetClear([P]),
+MathJax.typeset([P]),Editor.onMathJaxDone()}catch(T){MathJax.typesetClear([P]),null!=T.retry?T.retry.then(function(){MathJax.typesetPromise([P]).then(Editor.onMathJaxDone)}):null!=window.console&&console.log("Error in MathJax: "+T.toString())}};window.MathJax=null!=B?B:{loader:{load:["html"==urlParams["math-output"]?"output/chtml":"output/svg","input/tex","input/asciimath"]},startup:{pageReady:function(){for(var P=0;P<Editor.mathJaxQueue.length;P++)Editor.doMathJaxRender(Editor.mathJaxQueue[P])}}};
+Editor.MathJaxRender=function(P){"undefined"!==typeof MathJax&&"function"===typeof MathJax.typeset?Editor.doMathJaxRender(P):Editor.mathJaxQueue.push(P)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};Editor.onMathJaxDone=function(){};var K=Editor.prototype.init;Editor.prototype.init=function(){K.apply(this,arguments);var P=mxUtils.bind(this,function(T,Q){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)});this.graph.model.addListener(mxEvent.CHANGE,
+P);this.graph.addListener(mxEvent.REFRESH,P)};B=document.getElementsByTagName("script");if(null!=B&&0<B.length){var R=document.createElement("script");R.setAttribute("type","text/javascript");R.setAttribute("src",n);B[0].parentNode.appendChild(R)}}};Editor.prototype.csvToArray=function(n){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(n))return null;
+var B=[];n.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,function(K,R,P,T){void 0!==R?B.push(R.replace(/\\'/g,"'")):void 0!==P?B.push(P.replace(/\\"/g,'"')):void 0!==T&&B.push(T);return""});/,\s*$/.test(n)&&B.push("");return B};Editor.prototype.isCorsEnabledForUrl=function(n){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||n.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(n)||"https://raw.githubusercontent.com/"===n.substring(0,34)||"https://fonts.googleapis.com/"===n.substring(0,29)||"https://fonts.gstatic.com/"===n.substring(0,26)};Editor.prototype.createImageUrlConverter=function(){var n=new mxUrlConverter;n.updateBaseUrl();var B=n.convert,K=this;n.convert=function(R){if(null!=R){var P="http://"==R.substring(0,7)||"https://"==
+R.substring(0,8);P&&!navigator.onLine?R=Editor.svgBrokenImage.src:!P||R.substring(0,n.baseUrl.length)==n.baseUrl||K.crossOriginImages&&K.isCorsEnabledForUrl(R)?"chrome-extension://"==R.substring(0,19)||mxClient.IS_CHROMEAPP||(R=B.apply(this,arguments)):R=PROXY_URL+"?url="+encodeURIComponent(R)}return R};return n};Editor.createSvgDataUri=function(n){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(n)))};Editor.prototype.convertImageToDataUri=function(n,B){try{var K=!0,R=window.setTimeout(mxUtils.bind(this,
+function(){K=!1;B(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(n))mxUtils.get(n,mxUtils.bind(this,function(T){window.clearTimeout(R);K&&B(Editor.createSvgDataUri(T.getText()))}),function(){window.clearTimeout(R);K&&B(Editor.svgBrokenImage.src)});else{var P=new Image;this.crossOriginImages&&(P.crossOrigin="anonymous");P.onload=function(){window.clearTimeout(R);if(K)try{var T=document.createElement("canvas"),Q=T.getContext("2d");T.height=P.height;T.width=P.width;Q.drawImage(P,0,0);
+B(T.toDataURL())}catch(V){B(Editor.svgBrokenImage.src)}};P.onerror=function(){window.clearTimeout(R);K&&B(Editor.svgBrokenImage.src)};P.src=n}}catch(T){B(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(n,B,K,R){null==R&&(R=this.createImageUrlConverter());var P=0,T=K||{};K=mxUtils.bind(this,function(Q,V){Q=n.getElementsByTagName(Q);for(var Y=0;Y<Q.length;Y++)mxUtils.bind(this,function(ea){try{if(null!=ea){var ba=R.convert(ea.getAttribute(V));if(null!=ba&&"data:"!=ba.substring(0,
+5)){var ca=T[ba];null==ca?(P++,this.convertImageToDataUri(ba,function(ja){null!=ja&&(T[ba]=ja,ea.setAttribute(V,ja));P--;0==P&&B(n)})):ea.setAttribute(V,ca)}else null!=ba&&ea.setAttribute(V,ba)}}catch(ja){}})(Q[Y])});K("image","xlink:href");K("img","src");0==P&&B(n)};Editor.base64Encode=function(n){for(var B="",K=0,R=n.length,P,T,Q;K<R;){P=n.charCodeAt(K++)&255;if(K==R){B+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(P>>2);B+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((P&
+3)<<4);B+="==";break}T=n.charCodeAt(K++);if(K==R){B+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(P>>2);B+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((P&3)<<4|(T&240)>>4);B+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((T&15)<<2);B+="=";break}Q=n.charCodeAt(K++);B+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(P>>2);B+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((P&
+3)<<4|(T&240)>>4);B+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((T&15)<<2|(Q&192)>>6);B+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(Q&63)}return B};Editor.prototype.loadUrl=function(n,B,K,R,P,T,Q,V){try{var Y=!Q&&(R||/(\.png)($|\?)/i.test(n)||/(\.jpe?g)($|\?)/i.test(n)||/(\.gif)($|\?)/i.test(n)||/(\.pdf)($|\?)/i.test(n));P=null!=P?P:!0;var ea=mxUtils.bind(this,function(){mxUtils.get(n,mxUtils.bind(this,function(ba){if(200<=ba.getStatus()&&
+299>=ba.getStatus()){if(null!=B){var ca=ba.getText();if(Y){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){ba=mxUtilsBinaryToArray(ba.request.responseBody).toArray();ca=Array(ba.length);for(var ja=0;ja<ba.length;ja++)ca[ja]=String.fromCharCode(ba[ja]);ca=ca.join("")}T=null!=T?T:"data:image/png;base64,";ca=T+Editor.base64Encode(ca)}B(ca)}}else null!=K&&(0==ba.getStatus()?K({message:mxResources.get("accessDenied")},ba):K({message:mxResources.get("error")+
+" "+ba.getStatus()},ba))}),function(ba){null!=K&&K({message:mxResources.get("error")+" "+ba.getStatus()})},Y,this.timeout,function(){P&&null!=K&&K({code:App.ERROR_TIMEOUT,retry:ea})},V)});ea()}catch(ba){null!=K&&K(ba)}};Editor.prototype.absoluteCssFonts=function(n){var B=null;if(null!=n){var K=n.split("url(");if(0<K.length){B=[K[0]];n=window.location.pathname;var R=null!=n?n.lastIndexOf("/"):-1;0<=R&&(n=n.substring(0,R+1));R=document.getElementsByTagName("base");var P=null;null!=R&&0<R.length&&(P=
+R[0].getAttribute("href"));for(var T=1;T<K.length;T++)if(R=K[T].indexOf(")"),0<R){var Q=Editor.trimCssUrl(K[T].substring(0,R));this.graph.isRelativeUrl(Q)&&(Q=null!=P?P+Q:window.location.protocol+"//"+window.location.hostname+("/"==Q.charAt(0)?"":n)+Q);B.push('url("'+Q+'"'+K[T].substring(R))}else B.push(K[T])}else B=[n]}return null!=B?B.join(""):null};Editor.prototype.mapFontUrl=function(n,B,K){/^https?:\/\//.test(B)&&!this.isCorsEnabledForUrl(B)&&(B=PROXY_URL+"?url="+encodeURIComponent(B));K(n,B)};
+Editor.prototype.embedCssFonts=function(n,B){var K=n.split("url("),R=0;null==this.cachedFonts&&(this.cachedFonts={});var P=mxUtils.bind(this,function(){if(0==R){for(var Y=[K[0]],ea=1;ea<K.length;ea++){var ba=K[ea].indexOf(")");Y.push('url("');Y.push(this.cachedFonts[Editor.trimCssUrl(K[ea].substring(0,ba))]);Y.push('"'+K[ea].substring(ba))}B(Y.join(""))}});if(0<K.length){for(n=1;n<K.length;n++){var T=K[n].indexOf(")"),Q=null,V=K[n].indexOf("format(",T);0<V&&(Q=Editor.trimCssUrl(K[n].substring(V+7,
+K[n].indexOf(")",V))));mxUtils.bind(this,function(Y){if(null==this.cachedFonts[Y]){this.cachedFonts[Y]=Y;R++;var ea="application/x-font-ttf";if("svg"==Q||/(\.svg)($|\?)/i.test(Y))ea="image/svg+xml";else if("otf"==Q||"embedded-opentype"==Q||/(\.otf)($|\?)/i.test(Y))ea="application/x-font-opentype";else if("woff"==Q||/(\.woff)($|\?)/i.test(Y))ea="application/font-woff";else if("woff2"==Q||/(\.woff2)($|\?)/i.test(Y))ea="application/font-woff2";else if("eot"==Q||/(\.eot)($|\?)/i.test(Y))ea="application/vnd.ms-fontobject";
+else if("sfnt"==Q||/(\.sfnt)($|\?)/i.test(Y))ea="application/font-sfnt";this.mapFontUrl(ea,Y,mxUtils.bind(this,function(ba,ca){this.loadUrl(ca,mxUtils.bind(this,function(ja){this.cachedFonts[Y]=ja;R--;P()}),mxUtils.bind(this,function(ja){R--;P()}),!0,null,"data:"+ba+";charset=utf-8;base64,")}))}})(Editor.trimCssUrl(K[n].substring(0,T)),Q)}P()}else B(n)};Editor.prototype.loadFonts=function(n){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(B){this.resolvedFontCss=
+B;null!=n&&n()})):null!=n&&n()};Editor.prototype.createGoogleFontCache=function(){var n={},B;for(B in Graph.fontMapping)Graph.isCssFontUrl(B)&&(n[B]=Graph.fontMapping[B]);return n};Editor.prototype.embedExtFonts=function(n){var B=this.graph.getCustomFonts();if(0<B.length){var K=[],R=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts=this.createGoogleFontCache());for(var P=mxUtils.bind(this,function(){0==R&&this.embedCssFonts(K.join(""),n)}),T=0;T<B.length;T++)mxUtils.bind(this,function(Q,V){Graph.isCssFontUrl(V)?
+null==this.cachedGoogleFonts[V]?(R++,this.loadUrl(V,mxUtils.bind(this,function(Y){this.cachedGoogleFonts[V]=Y;K.push(Y+"\n");R--;P()}),mxUtils.bind(this,function(Y){R--;K.push("@import url("+V+");\n");P()}))):K.push(this.cachedGoogleFonts[V]+"\n"):K.push('@font-face {font-family: "'+Q+'";src: url("'+V+'")}\n')})(B[T].name,B[T].url);P()}else n()};Editor.prototype.addMathCss=function(n){n=n.getElementsByTagName("defs");if(null!=n&&0<n.length)for(var B=document.getElementsByTagName("style"),K=0;K<B.length;K++){var R=
+mxUtils.getTextContent(B[K]);0>R.indexOf("mxPageSelector")&&0<R.indexOf("MathJax")&&n[0].appendChild(B[K].cloneNode(!0))}};Editor.prototype.addFontCss=function(n,B){B=null!=B?B:this.absoluteCssFonts(this.fontCss);if(null!=B){var K=n.getElementsByTagName("defs"),R=n.ownerDocument;0==K.length?(K=null!=R.createElementNS?R.createElementNS(mxConstants.NS_SVG,"defs"):R.createElement("defs"),null!=n.firstChild?n.insertBefore(K,n.firstChild):n.appendChild(K)):K=K[0];n=null!=R.createElementNS?R.createElementNS(mxConstants.NS_SVG,
+"style"):R.createElement("style");n.setAttribute("type","text/css");mxUtils.setTextContent(n,B);K.appendChild(n)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(n,B,K){var R=mxClient.IS_FF?8192:16384;return Math.min(K,Math.min(R/n,R/B))};Editor.prototype.exportToCanvas=function(n,B,K,R,P,T,Q,V,Y,ea,ba,ca,ja,ia,Z,Da,Ga,Ba){try{T=null!=T?T:!0;Q=null!=Q?Q:!0;ca=null!=ca?ca:this.graph;ja=null!=ja?ja:0;var Ha=
+Y?null:ca.background;Ha==mxConstants.NONE&&(Ha=null);null==Ha&&(Ha=R);null==Ha&&0==Y&&(Ha=Da?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(ca.getSvg(null,null,ja,ia,null,Q,null,null,null,ea,null,Da,Ga,Ba),mxUtils.bind(this,function(pa){try{var Na=new Image;Na.onload=mxUtils.bind(this,function(){try{var ya=function(){mxClient.IS_SF?window.setTimeout(function(){xa.drawImage(Na,0,0);n(Ja,pa)},0):(xa.drawImage(Na,0,0),n(Ja,pa))},Ja=document.createElement("canvas"),Fa=parseInt(pa.getAttribute("width")),
+Pa=parseInt(pa.getAttribute("height"));V=null!=V?V:1;null!=B&&(V=T?Math.min(1,Math.min(3*B/(4*Pa),B/Fa)):B/Fa);V=this.getMaxCanvasScale(Fa,Pa,V);Fa=Math.ceil(V*Fa);Pa=Math.ceil(V*Pa);Ja.setAttribute("width",Fa);Ja.setAttribute("height",Pa);var xa=Ja.getContext("2d");null!=Ha&&(xa.beginPath(),xa.rect(0,0,Fa,Pa),xa.fillStyle=Ha,xa.fill());1!=V&&xa.scale(V,V);if(Z){var za=ca.view,ua=za.scale;za.scale=1;var Aa=btoa(unescape(encodeURIComponent(za.createSvgGrid(za.gridColor))));za.scale=ua;Aa="data:image/svg+xml;base64,"+
+Aa;var da=ca.gridSize*za.gridSteps*V,wa=ca.getGraphBounds(),ta=za.translate.x*ua,sa=za.translate.y*ua,ra=ta+(wa.x-ta)/ua-ja,va=sa+(wa.y-sa)/ua-ja,ha=new Image;ha.onload=function(){try{for(var ma=-Math.round(da-mxUtils.mod((ta-ra)*V,da)),aa=-Math.round(da-mxUtils.mod((sa-va)*V,da));ma<Fa;ma+=da)for(var fa=aa;fa<Pa;fa+=da)xa.drawImage(ha,ma/V,fa/V);ya()}catch(na){null!=P&&P(na)}};ha.onerror=function(ma){null!=P&&P(ma)};ha.src=Aa}else ya()}catch(ma){null!=P&&P(ma)}});Na.onerror=function(ya){null!=P&&
+P(ya)};ea&&this.graph.addSvgShadow(pa);this.graph.mathEnabled&&this.addMathCss(pa);var La=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(pa,this.resolvedFontCss),Na.src=Editor.createSvgDataUri(mxUtils.getXml(pa))}catch(ya){null!=P&&P(ya)}});this.embedExtFonts(mxUtils.bind(this,function(ya){try{null!=ya&&this.addFontCss(pa,ya),this.loadFonts(La)}catch(Ja){null!=P&&P(Ja)}}))}catch(ya){null!=P&&P(ya)}}),K,ba)}catch(pa){null!=P&&P(pa)}};Editor.crcTable=[];for(var t=0;256>
+t;t++)for(var u=t,E=0;8>E;E++)u=1==(u&1)?3988292384^u>>>1:u>>>1,Editor.crcTable[t]=u;Editor.updateCRC=function(n,B,K,R){for(var P=0;P<R;P++)n=Editor.crcTable[(n^B.charCodeAt(K+P))&255]^n>>>8;return n};Editor.crc32=function(n){for(var B=-1,K=0;K<n.length;K++)B=B>>>8^Editor.crcTable[(B^n.charCodeAt(K))&255];return(B^-1)>>>0};Editor.writeGraphModelToPng=function(n,B,K,R,P){function T(ba,ca){var ja=Y;Y+=ca;return ba.substring(ja,Y)}function Q(ba){ba=T(ba,4);return ba.charCodeAt(3)+(ba.charCodeAt(2)<<
+8)+(ba.charCodeAt(1)<<16)+(ba.charCodeAt(0)<<24)}function V(ba){return String.fromCharCode(ba>>24&255,ba>>16&255,ba>>8&255,ba&255)}n=n.substring(n.indexOf(",")+1);n=window.atob?atob(n):Base64.decode(n,!0);var Y=0;if(T(n,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=P&&P();else if(T(n,4),"IHDR"!=T(n,4))null!=P&&P();else{T(n,17);P=n.substring(0,Y);do{var ea=Q(n);if("IDAT"==T(n,4)){P=n.substring(0,Y-8);"pHYs"==B&&"dpi"==K?(K=Math.round(R/.0254),K=V(K)+V(K)+String.fromCharCode(1)):
+K=K+String.fromCharCode(0)+("zTXt"==B?String.fromCharCode(0):"")+R;R=4294967295;R=Editor.updateCRC(R,B,0,4);R=Editor.updateCRC(R,K,0,K.length);P+=V(K.length)+B+K+V(R^4294967295);P+=n.substring(Y-8,n.length);break}P+=n.substring(Y-8,Y-4+ea);T(n,ea);T(n,4)}while(ea);return"data:image/png;base64,"+(window.btoa?btoa(P):Base64.encode(P,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var c=ColorDialog.addRecentColor;ColorDialog.addRecentColor=
+function(n,B){c.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var e=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){e.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(n,B){var K=null;null!=n.editor.graph.getModel().getParent(B)?K=B.getId():null!=n.currentPage&&(K=n.currentPage.getId());return K});if(null!=window.StyleFormatPanel){var g=
+Format.prototype.init;Format.prototype.init=function(){g.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var k=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?k.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var n=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=n&&n.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=
+function(n){return!1};var m=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(n){n=m.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var B=this.editorUi,K=B.editor.graph,R=this.createOption(mxResources.get("shadow"),function(){return K.shadowVisible},function(P){var T=new ChangePageSetup(B);T.ignoreColor=!0;T.ignoreImage=!0;T.shadowVisible=P;K.model.execute(T)},{install:function(P){this.listener=function(){P(K.shadowVisible)};
+B.addListener("shadowVisibleChanged",this.listener)},destroy:function(){B.removeListener(this.listener)}});Editor.enableShadowOption||(R.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(R,60));n.appendChild(R)}return n};var p=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(n){n=p.apply(this,arguments);var B=this.editorUi,K=B.editor.graph;if(K.isEnabled()){var R=B.getCurrentFile();if(null!=R&&R.isAutosaveOptional()){var P=
+this.createOption(mxResources.get("autosave"),function(){return B.editor.autosave},function(Q){B.editor.setAutosave(Q);B.editor.autosave&&R.isModified()&&R.fileChanged()},{install:function(Q){this.listener=function(){Q(B.editor.autosave)};B.editor.addListener("autosaveChanged",this.listener)},destroy:function(){B.editor.removeListener(this.listener)}});n.appendChild(P)}}if(this.isMathOptionVisible()&&K.isEnabled()&&"undefined"!==typeof MathJax){P=this.createOption(mxResources.get("mathematicalTypesetting"),
+function(){return K.mathEnabled},function(Q){B.actions.get("mathematicalTypesetting").funct()},{install:function(Q){this.listener=function(){Q(K.mathEnabled)};B.addListener("mathEnabledChanged",this.listener)},destroy:function(){B.removeListener(this.listener)}});P.style.paddingTop="5px";n.appendChild(P);var T=B.menus.createHelpLink("https://www.diagrams.net/doc/faq/math-typesetting");T.style.position="relative";T.style.marginLeft="6px";T.style.top="2px";P.appendChild(T)}return n};mxCellRenderer.prototype.defaultVertexShape.prototype.customProperties=
+[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.link.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.flexArrow.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:10},{name:"startWidth",dispName:"Start Width",type:"float",min:0,defVal:20},{name:"endWidth",
+dispName:"End Width",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.process.prototype.customProperties=[{name:"size",dispName:"Indent",type:"float",min:0,max:.5,defVal:.1}];mxCellRenderer.defaultShapes.rhombus.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,max:50,defVal:mxConstants.LINE_ARCSIZE},{name:"double",dispName:"Double",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties=[{name:"top",dispName:"Top Line",
+type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left Line",type:"bool",defVal:!0},{name:"right",dispName:"Right Line",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.parallelogram.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.hexagon.prototype.customProperties=[{name:"arcSize",
+dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.triangle.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE}];mxCellRenderer.defaultShapes.document.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",defVal:.3,min:0,max:1}];mxCellRenderer.defaultShapes.internalStorage.prototype.customProperties=
+[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"dx",dispName:"Left Line",type:"float",min:0,defVal:20},{name:"dy",dispName:"Top Line",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.cube.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0},{name:"darkOpacity2",dispName:"Dark Opacity 2",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.step.prototype.customProperties=
+[{name:"size",dispName:"Notch Size",type:"float",min:0,defVal:20},{name:"fixedSize",dispName:"Fixed Size",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.trapezoid.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.tape.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.4}];mxCellRenderer.defaultShapes.note.prototype.customProperties=
+[{name:"size",dispName:"Fold Size",type:"float",min:0,defVal:30},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.card.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Cutoff Size",type:"float",min:0,defVal:30}];mxCellRenderer.defaultShapes.callout.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},
+{name:"base",dispName:"Callout Width",type:"float",min:0,defVal:20},{name:"size",dispName:"Callout Length",type:"float",min:0,defVal:30},{name:"position",dispName:"Callout Position",type:"float",min:0,max:1,defVal:.5},{name:"position2",dispName:"Callout Tip Position",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.folder.prototype.customProperties=[{name:"tabWidth",dispName:"Tab Width",type:"float"},{name:"tabHeight",dispName:"Tab Height",type:"float"},{name:"tabPosition",dispName:"Tap Position",
+type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"right",dispName:"Right"}]}];mxCellRenderer.defaultShapes.swimlane.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"startSize",dispName:"Header Size",type:"float"},{name:"swimlaneHead",dispName:"Head Border",type:"bool",defVal:!0},{name:"swimlaneBody",dispName:"Body Border",type:"bool",defVal:!0},{name:"horizontal",dispName:"Horizontal",type:"bool",defVal:!0},{name:"separatorColor",dispName:"Separator Color",
+type:"color",defVal:null}];mxCellRenderer.defaultShapes.table.prototype.customProperties=[{name:"rowLines",dispName:"Row Lines",type:"bool",defVal:!0},{name:"columnLines",dispName:"Column Lines",type:"bool",defVal:!0},{name:"fixedRows",dispName:"Fixed Rows",type:"bool",defVal:!1},{name:"resizeLast",dispName:"Resize Last Column",type:"bool",defVal:!1},{name:"resizeLastRow",dispName:"Resize Last Row",type:"bool",defVal:!1}].concat(mxCellRenderer.defaultShapes.swimlane.prototype.customProperties).concat(mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties);
mxCellRenderer.defaultShapes.tableRow.prototype.customProperties=mxCellRenderer.defaultShapes.swimlane.prototype.customProperties.concat(mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties);mxCellRenderer.defaultShapes.doubleEllipse.prototype.customProperties=[{name:"margin",dispName:"Indent",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.ext.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"double",dispName:"Double",
type:"bool",defVal:!1},{name:"margin",dispName:"Indent",type:"float",min:0,defVal:0}];mxCellRenderer.defaultShapes.curlyBracket.prototype.customProperties=[{name:"rounded",dispName:"Rounded",type:"bool",defVal:!0},{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.image.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.label.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",
type:"bool",defVal:!0},{name:"imageAlign",dispName:"Image Align",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"center",dispName:"Center"},{val:"right",dispName:"Right"}],defVal:"left"},{name:"imageVerticalAlign",dispName:"Image Vertical Align",type:"enum",enumList:[{val:"top",dispName:"Top"},{val:"middle",dispName:"Middle"},{val:"bottom",dispName:"Bottom"}],defVal:"middle"},{name:"imageWidth",dispName:"Image Width",type:"float",min:0,defVal:24},{name:"imageHeight",dispName:"Image Height",
@@ -11682,33 +11682,33 @@ mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.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(n){var B=null;null!=n&&0<n.length&&("ER"==n.substring(0,2)?B="mxgraph.er":"sysML"==n.substring(0,5)&&(B="mxgraph.sysml"));return B};var S=mxMarker.createMarker;mxMarker.createMarker=function(n,B,K,R,P,T,Q,V,Y,ea){if(null!=K&&null==mxMarker.markers[K]){var ba=this.getPackageForType(K);null!=
ba&&mxStencilRegistry.getStencil(ba)}return S.apply(this,arguments)};var X=mxStencil.prototype.drawShape;mxStencil.prototype.drawShape=function(n,B,K,R,P,T){"1"==mxUtils.getValue(B.style,"lineShape",null)&&n.setFillColor(mxUtils.getValue(B.style,mxConstants.STYLE_STROKECOLOR,this.stroke));return X.apply(this,arguments)};PrintDialog.prototype.create=function(n,B){function K(){ja.value=Math.max(1,Math.min(V,Math.max(parseInt(ja.value),parseInt(ca.value))));ca.value=Math.max(1,Math.min(V,Math.min(parseInt(ja.value),
-parseInt(ca.value))))}function R(wa){function ta(Ea,Ia,Qa){var Ma=Ea.useCssTransforms,Ra=Ea.currentTranslate,Xa=Ea.currentScale,Ka=Ea.view.translate,Ta=Ea.view.scale;Ea.useCssTransforms&&(Ea.useCssTransforms=!1,Ea.currentTranslate=new mxPoint(0,0),Ea.currentScale=1,Ea.view.translate=new mxPoint(0,0),Ea.view.scale=1);var Ua=Ea.getGraphBounds(),Va=0,Za=0,Wa=Aa.get(),ab=1/Ea.pageScale,Ya=Ba.checked;if(Ya){ab=parseInt(za.value);var gb=parseInt(ua.value);ab=Math.min(Wa.height*gb/(Ua.height/Ea.view.scale),
-Wa.width*ab/(Ua.width/Ea.view.scale))}else ab=parseInt(Ga.value)/(100*Ea.pageScale),isNaN(ab)&&(sa=1/Ea.pageScale,Ga.value="100 %");Wa=mxRectangle.fromRectangle(Wa);Wa.width=Math.ceil(Wa.width*sa);Wa.height=Math.ceil(Wa.height*sa);ab*=sa;!Ya&&Ea.pageVisible?(Ua=Ea.getPageLayout(),Va-=Ua.x*Wa.width,Za-=Ua.y*Wa.height):Ya=!0;if(null==Ia){Ia=PrintDialog.createPrintPreview(Ea,ab,Wa,0,Va,Za,Ya);Ia.pageSelector=!1;Ia.mathEnabled=!1;ia.checked&&(Ia.isCellVisible=function($a){return Ea.isCellSelected($a)});
-Va=n.getCurrentFile();null!=Va&&(Ia.title=Va.getTitle());var hb=Ia.writeHead;Ia.writeHead=function($a){hb.apply(this,arguments);null!=n.editor.fontCss&&($a.writeln('<style type="text/css">'),$a.writeln(n.editor.fontCss),$a.writeln("</style>"));for(var cb=Ea.getCustomFonts(),bb=0;bb<cb.length;bb++){var eb=cb[bb].name,db=cb[bb].url;Graph.isCssFontUrl(db)?$a.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(db)+'" charset="UTF-8" type="text/css">'):($a.writeln('<style type="text/css">'),$a.writeln('@font-face {\nfont-family: "'+
-mxUtils.htmlEntities(eb)+'";\nsrc: url("'+mxUtils.htmlEntities(db)+'");\n}'),$a.writeln("</style>"))}};if("undefined"!==typeof MathJax){var ib=Ia.renderPage;Ia.renderPage=function($a,cb,bb,eb,db,kb){var jb=mxClient.NO_FO,fb=ib.apply(this,arguments);mxClient.NO_FO=jb;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:fb.className="geDisableMathJax";return fb}}Va=null;Za=P.shapeForegroundColor;Ya=P.shapeBackgroundColor;Wa=P.enableFlowAnimation;P.enableFlowAnimation=!1;null!=P.themes&&"darkTheme"==
-P.defaultThemeName&&(Va=P.stylesheet,P.stylesheet=P.getDefaultStylesheet(),P.shapeForegroundColor="#000000",P.shapeBackgroundColor="#ffffff",P.refresh());Ia.open(null,null,Qa,!0);P.enableFlowAnimation=Wa;null!=Va&&(P.shapeForegroundColor=Za,P.shapeBackgroundColor=Ya,P.stylesheet=Va,P.refresh())}else{Wa=Ea.background;if(null==Wa||""==Wa||Wa==mxConstants.NONE)Wa="#ffffff";Ia.backgroundColor=Wa;Ia.autoOrigin=Ya;Ia.appendGraph(Ea,ab,Va,Za,Qa,!0);Qa=Ea.getCustomFonts();if(null!=Ia.wnd)for(Va=0;Va<Qa.length;Va++)Za=
-Qa[Va].name,Ya=Qa[Va].url,Graph.isCssFontUrl(Ya)?Ia.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(Ya)+'" charset="UTF-8" type="text/css">'):(Ia.wnd.document.writeln('<style type="text/css">'),Ia.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(Za)+'";\nsrc: url("'+mxUtils.htmlEntities(Ya)+'");\n}'),Ia.wnd.document.writeln("</style>"))}Ma&&(Ea.useCssTransforms=Ma,Ea.currentTranslate=Ra,Ea.currentScale=Xa,Ea.view.translate=Ka,Ea.view.scale=Ta);return Ia}
-var sa=parseInt(da.value)/100;isNaN(sa)&&(sa=1,da.value="100 %");sa*=.75;var ra=null,va=P.shapeForegroundColor,ha=P.shapeBackgroundColor;null!=P.themes&&"darkTheme"==P.defaultThemeName&&(ra=P.stylesheet,P.stylesheet=P.getDefaultStylesheet(),P.shapeForegroundColor="#000000",P.shapeBackgroundColor="#ffffff",P.refresh());var ma=ca.value,aa=ja.value,fa=!ea.checked,na=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(n,ea.checked,ma,aa,Ba.checked,za.value,ua.value,parseInt(Ga.value)/100,parseInt(da.value)/
-100,Aa.get());else{fa&&(fa=ia.checked||ma==Y&&aa==Y);if(!fa&&null!=n.pages&&n.pages.length){var la=0;fa=n.pages.length-1;ea.checked||(la=parseInt(ma)-1,fa=parseInt(aa)-1);for(var qa=la;qa<=fa;qa++){var oa=n.pages[qa];ma=oa==n.currentPage?P:null;if(null==ma){ma=n.createTemporaryGraph(P.stylesheet);ma.shapeForegroundColor=P.shapeForegroundColor;ma.shapeBackgroundColor=P.shapeBackgroundColor;aa=!0;la=!1;var ka=null,Ca=null;null==oa.viewState&&null==oa.root&&n.updatePageRoot(oa);null!=oa.viewState&&(aa=
-oa.viewState.pageVisible,la=oa.viewState.mathEnabled,ka=oa.viewState.background,Ca=oa.viewState.backgroundImage,ma.extFonts=oa.viewState.extFonts);null!=Ca&&null!=Ca.originalSrc&&(Ca=n.createImageForPageLink(Ca.originalSrc,oa));ma.background=ka;ma.backgroundImage=null!=Ca?new mxImage(Ca.src,Ca.width,Ca.height,Ca.x,Ca.y):null;ma.pageVisible=aa;ma.mathEnabled=la;var Oa=ma.getGraphBounds;ma.getGraphBounds=function(){var Ea=Oa.apply(this,arguments),Ia=this.backgroundImage;if(null!=Ia&&null!=Ia.width&&
-null!=Ia.height){var Qa=this.view.translate,Ma=this.view.scale;Ea=mxRectangle.fromRectangle(Ea);Ea.add(new mxRectangle((Qa.x+Ia.x)*Ma,(Qa.y+Ia.y)*Ma,Ia.width*Ma,Ia.height*Ma))}return Ea};var Sa=ma.getGlobalVariable;ma.getGlobalVariable=function(Ea){return"page"==Ea?oa.getName():"pagenumber"==Ea?qa+1:"pagecount"==Ea?null!=n.pages?n.pages.length:1:Sa.apply(this,arguments)};document.body.appendChild(ma.container);n.updatePageRoot(oa);ma.model.setRoot(oa.root)}na=ta(ma,na,qa!=fa);ma!=P&&ma.container.parentNode.removeChild(ma.container)}}else na=
-ta(P);null==na?n.handleError({message:mxResources.get("errorUpdatingPreview")}):(na.mathEnabled&&(fa=na.wnd.document,wa&&(na.wnd.IMMEDIATE_PRINT=!0),fa.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),na.closeDocument(),!na.mathEnabled&&wa&&PrintDialog.printPreview(na));null!=ra&&(P.shapeForegroundColor=va,P.shapeBackgroundColor=ha,P.stylesheet=ra,P.refresh())}}var P=n.editor.graph,T=document.createElement("div"),Q=document.createElement("h3");Q.style.width=
-"100%";Q.style.textAlign="center";Q.style.marginTop="0px";mxUtils.write(Q,B||mxResources.get("print"));T.appendChild(Q);var V=1,Y=1;Q=document.createElement("div");Q.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var ea=document.createElement("input");ea.style.cssText="margin-right:8px;margin-bottom:8px;";ea.setAttribute("value","all");ea.setAttribute("type","radio");ea.setAttribute("name","pages-printdialog");Q.appendChild(ea);B=document.createElement("span");
-mxUtils.write(B,mxResources.get("printAllPages"));Q.appendChild(B);mxUtils.br(Q);var ba=ea.cloneNode(!0);ea.setAttribute("checked","checked");ba.setAttribute("value","range");Q.appendChild(ba);B=document.createElement("span");mxUtils.write(B,mxResources.get("pages")+":");Q.appendChild(B);var ca=document.createElement("input");ca.style.cssText="margin:0 8px 0 8px;";ca.setAttribute("value","1");ca.setAttribute("type","number");ca.setAttribute("min","1");ca.style.width="50px";Q.appendChild(ca);B=document.createElement("span");
-mxUtils.write(B,mxResources.get("to"));Q.appendChild(B);var ja=ca.cloneNode(!0);Q.appendChild(ja);mxEvent.addListener(ca,"focus",function(){ba.checked=!0});mxEvent.addListener(ja,"focus",function(){ba.checked=!0});mxEvent.addListener(ca,"change",K);mxEvent.addListener(ja,"change",K);if(null!=n.pages&&(V=n.pages.length,null!=n.currentPage))for(B=0;B<n.pages.length;B++)if(n.currentPage==n.pages[B]){Y=B+1;ca.value=Y;ja.value=Y;break}ca.setAttribute("max",V);ja.setAttribute("max",V);n.isPagesEnabled()?
-1<V&&(T.appendChild(Q),ba.checked=!0):ba.checked=!0;mxUtils.br(Q);var ia=document.createElement("input");ia.setAttribute("value","all");ia.setAttribute("type","radio");ia.style.marginRight="8px";P.isSelectionEmpty()&&ia.setAttribute("disabled","disabled");var Z=document.createElement("div");Z.style.marginBottom="10px";1==V?(ia.setAttribute("type","checkbox"),ia.style.marginBottom="12px",Z.appendChild(ia)):(ia.setAttribute("name","pages-printdialog"),ia.style.marginBottom="8px",Q.appendChild(ia));
-B=document.createElement("span");mxUtils.write(B,mxResources.get("selectionOnly"));ia.parentNode.appendChild(B);1==V&&mxUtils.br(ia.parentNode);var Da=document.createElement("input");Da.style.marginRight="8px";Da.setAttribute("value","adjust");Da.setAttribute("type","radio");Da.setAttribute("name","printZoom");Z.appendChild(Da);B=document.createElement("span");mxUtils.write(B,mxResources.get("adjustTo"));Z.appendChild(B);var Ga=document.createElement("input");Ga.style.cssText="margin:0 8px 0 8px;";
-Ga.setAttribute("value","100 %");Ga.style.width="50px";Z.appendChild(Ga);mxEvent.addListener(Ga,"focus",function(){Da.checked=!0});T.appendChild(Z);Q=Q.cloneNode(!1);var Ba=Da.cloneNode(!0);Ba.setAttribute("value","fit");Da.setAttribute("checked","checked");B=document.createElement("div");B.style.cssText="display:inline-block;vertical-align:top;padding-top:2px;";B.appendChild(Ba);Q.appendChild(B);Z=document.createElement("table");Z.style.display="inline-block";var Ha=document.createElement("tbody"),
-pa=document.createElement("tr"),Na=pa.cloneNode(!0),La=document.createElement("td"),ya=La.cloneNode(!0),Ja=La.cloneNode(!0),Fa=La.cloneNode(!0),Pa=La.cloneNode(!0),xa=La.cloneNode(!0);La.style.textAlign="right";Fa.style.textAlign="right";mxUtils.write(La,mxResources.get("fitTo"));var za=document.createElement("input");za.style.cssText="margin:0 8px 0 8px;";za.setAttribute("value","1");za.setAttribute("min","1");za.setAttribute("type","number");za.style.width="40px";ya.appendChild(za);B=document.createElement("span");
-mxUtils.write(B,mxResources.get("fitToSheetsAcross"));Ja.appendChild(B);mxUtils.write(Fa,mxResources.get("fitToBy"));var ua=za.cloneNode(!0);Pa.appendChild(ua);mxEvent.addListener(za,"focus",function(){Ba.checked=!0});mxEvent.addListener(ua,"focus",function(){Ba.checked=!0});B=document.createElement("span");mxUtils.write(B,mxResources.get("fitToSheetsDown"));xa.appendChild(B);pa.appendChild(La);pa.appendChild(ya);pa.appendChild(Ja);Na.appendChild(Fa);Na.appendChild(Pa);Na.appendChild(xa);Ha.appendChild(pa);
-Ha.appendChild(Na);Z.appendChild(Ha);Q.appendChild(Z);T.appendChild(Q);Q=document.createElement("div");B=document.createElement("div");B.style.fontWeight="bold";B.style.marginBottom="12px";mxUtils.write(B,mxResources.get("paperSize"));Q.appendChild(B);B=document.createElement("div");B.style.marginBottom="12px";var Aa=PageSetupDialog.addPageFormatPanel(B,"printdialog",n.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);Q.appendChild(B);B=document.createElement("span");mxUtils.write(B,mxResources.get("pageScale"));
-Q.appendChild(B);var da=document.createElement("input");da.style.cssText="margin:0 8px 0 8px;";da.setAttribute("value","100 %");da.style.width="60px";Q.appendChild(da);T.appendChild(Q);B=document.createElement("div");B.style.cssText="text-align:right;margin:48px 0 0 0;";Q=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});Q.className="geBtn";n.editor.cancelFirst&&B.appendChild(Q);n.isOffline()||(Z=mxUtils.button(mxResources.get("help"),function(){P.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),
-Z.className="geBtn",B.appendChild(Z));PrintDialog.previewEnabled&&(Z=mxUtils.button(mxResources.get("preview"),function(){n.hideDialog();R(!1)}),Z.className="geBtn",B.appendChild(Z));Z=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){n.hideDialog();R(!0)});Z.className="geBtn gePrimaryBtn";B.appendChild(Z);n.editor.cancelFirst||B.appendChild(Q);T.appendChild(B);this.container=T};var O=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 n=this.image;null!=n&&null!=n.src&&Graph.isPageLink(n.src)&&(n={originalSrc:n.src});this.page.viewState.backgroundImage=n}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 O.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 W=document.createElement("canvas"),U=new Image;U.onload=function(){try{W.getContext("2d").drawImage(U,
-0,0);var n=W.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=n&&6<n.length}catch(B){}};U.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(n){}})();
+parseInt(ca.value))))}function R(wa){function ta(Ea,Ia,Qa){var Ma=Ea.useCssTransforms,Ra=Ea.currentTranslate,Xa=Ea.currentScale,Ka=Ea.view.translate,Ta=Ea.view.scale;Ea.useCssTransforms&&(Ea.useCssTransforms=!1,Ea.currentTranslate=new mxPoint(0,0),Ea.currentScale=1,Ea.view.translate=new mxPoint(0,0),Ea.view.scale=1);var Ua=Ea.getGraphBounds(),Va=0,$a=0,Wa=Aa.get(),ab=1/Ea.pageScale,Za=Ba.checked;if(Za){ab=parseInt(za.value);var gb=parseInt(ua.value);ab=Math.min(Wa.height*gb/(Ua.height/Ea.view.scale),
+Wa.width*ab/(Ua.width/Ea.view.scale))}else ab=parseInt(Ga.value)/(100*Ea.pageScale),isNaN(ab)&&(sa=1/Ea.pageScale,Ga.value="100 %");Wa=mxRectangle.fromRectangle(Wa);Wa.width=Math.ceil(Wa.width*sa);Wa.height=Math.ceil(Wa.height*sa);ab*=sa;!Za&&Ea.pageVisible?(Ua=Ea.getPageLayout(),Va-=Ua.x*Wa.width,$a-=Ua.y*Wa.height):Za=!0;if(null==Ia){Ia=PrintDialog.createPrintPreview(Ea,ab,Wa,0,Va,$a,Za);Ia.pageSelector=!1;Ia.mathEnabled=!1;ia.checked&&(Ia.isCellVisible=function(Ya){return Ea.isCellSelected(Ya)});
+Va=n.getCurrentFile();null!=Va&&(Ia.title=Va.getTitle());var hb=Ia.writeHead;Ia.writeHead=function(Ya){hb.apply(this,arguments);mxClient.IS_GC&&(Ya.writeln('<style type="text/css">'),Ya.writeln("@media print {"),Ya.writeln(".MathJax svg { shape-rendering: crispEdges; }"),Ya.writeln("}"),Ya.writeln("</style>"));null!=n.editor.fontCss&&(Ya.writeln('<style type="text/css">'),Ya.writeln(n.editor.fontCss),Ya.writeln("</style>"));for(var cb=Ea.getCustomFonts(),bb=0;bb<cb.length;bb++){var eb=cb[bb].name,
+db=cb[bb].url;Graph.isCssFontUrl(db)?Ya.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(db)+'" charset="UTF-8" type="text/css">'):(Ya.writeln('<style type="text/css">'),Ya.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(eb)+'";\nsrc: url("'+mxUtils.htmlEntities(db)+'");\n}'),Ya.writeln("</style>"))}};if("undefined"!==typeof MathJax){var ib=Ia.renderPage;Ia.renderPage=function(Ya,cb,bb,eb,db,kb){var jb=mxClient.NO_FO,fb=ib.apply(this,arguments);mxClient.NO_FO=jb;this.graph.mathEnabled?
+this.mathEnabled=this.mathEnabled||!0:fb.className="geDisableMathJax";return fb}}Va=null;$a=P.shapeForegroundColor;Za=P.shapeBackgroundColor;Wa=P.enableFlowAnimation;P.enableFlowAnimation=!1;null!=P.themes&&"darkTheme"==P.defaultThemeName&&(Va=P.stylesheet,P.stylesheet=P.getDefaultStylesheet(),P.shapeForegroundColor="#000000",P.shapeBackgroundColor="#ffffff",P.refresh());Ia.open(null,null,Qa,!0);P.enableFlowAnimation=Wa;null!=Va&&(P.shapeForegroundColor=$a,P.shapeBackgroundColor=Za,P.stylesheet=Va,
+P.refresh())}else{Wa=Ea.background;if(null==Wa||""==Wa||Wa==mxConstants.NONE)Wa="#ffffff";Ia.backgroundColor=Wa;Ia.autoOrigin=Za;Ia.appendGraph(Ea,ab,Va,$a,Qa,!0);Qa=Ea.getCustomFonts();if(null!=Ia.wnd)for(Va=0;Va<Qa.length;Va++)$a=Qa[Va].name,Za=Qa[Va].url,Graph.isCssFontUrl(Za)?Ia.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(Za)+'" charset="UTF-8" type="text/css">'):(Ia.wnd.document.writeln('<style type="text/css">'),Ia.wnd.document.writeln('@font-face {\nfont-family: "'+
+mxUtils.htmlEntities($a)+'";\nsrc: url("'+mxUtils.htmlEntities(Za)+'");\n}'),Ia.wnd.document.writeln("</style>"))}Ma&&(Ea.useCssTransforms=Ma,Ea.currentTranslate=Ra,Ea.currentScale=Xa,Ea.view.translate=Ka,Ea.view.scale=Ta);return Ia}var sa=parseInt(da.value)/100;isNaN(sa)&&(sa=1,da.value="100 %");sa*=.75;var ra=null,va=P.shapeForegroundColor,ha=P.shapeBackgroundColor;null!=P.themes&&"darkTheme"==P.defaultThemeName&&(ra=P.stylesheet,P.stylesheet=P.getDefaultStylesheet(),P.shapeForegroundColor="#000000",
+P.shapeBackgroundColor="#ffffff",P.refresh());var ma=ca.value,aa=ja.value,fa=!ea.checked,na=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(n,ea.checked,ma,aa,Ba.checked,za.value,ua.value,parseInt(Ga.value)/100,parseInt(da.value)/100,Aa.get());else{fa&&(fa=ia.checked||ma==Y&&aa==Y);if(!fa&&null!=n.pages&&n.pages.length){var la=0;fa=n.pages.length-1;ea.checked||(la=parseInt(ma)-1,fa=parseInt(aa)-1);for(var qa=la;qa<=fa;qa++){var oa=n.pages[qa];ma=oa==n.currentPage?P:null;if(null==ma){ma=n.createTemporaryGraph(P.stylesheet);
+ma.shapeForegroundColor=P.shapeForegroundColor;ma.shapeBackgroundColor=P.shapeBackgroundColor;aa=!0;la=!1;var ka=null,Ca=null;null==oa.viewState&&null==oa.root&&n.updatePageRoot(oa);null!=oa.viewState&&(aa=oa.viewState.pageVisible,la=oa.viewState.mathEnabled,ka=oa.viewState.background,Ca=oa.viewState.backgroundImage,ma.extFonts=oa.viewState.extFonts);null!=Ca&&null!=Ca.originalSrc&&(Ca=n.createImageForPageLink(Ca.originalSrc,oa));ma.background=ka;ma.backgroundImage=null!=Ca?new mxImage(Ca.src,Ca.width,
+Ca.height,Ca.x,Ca.y):null;ma.pageVisible=aa;ma.mathEnabled=la;var Oa=ma.getGraphBounds;ma.getGraphBounds=function(){var Ea=Oa.apply(this,arguments),Ia=this.backgroundImage;if(null!=Ia&&null!=Ia.width&&null!=Ia.height){var Qa=this.view.translate,Ma=this.view.scale;Ea=mxRectangle.fromRectangle(Ea);Ea.add(new mxRectangle((Qa.x+Ia.x)*Ma,(Qa.y+Ia.y)*Ma,Ia.width*Ma,Ia.height*Ma))}return Ea};var Sa=ma.getGlobalVariable;ma.getGlobalVariable=function(Ea){return"page"==Ea?oa.getName():"pagenumber"==Ea?qa+1:
+"pagecount"==Ea?null!=n.pages?n.pages.length:1:Sa.apply(this,arguments)};document.body.appendChild(ma.container);n.updatePageRoot(oa);ma.model.setRoot(oa.root)}na=ta(ma,na,qa!=fa);ma!=P&&ma.container.parentNode.removeChild(ma.container)}}else na=ta(P);null==na?n.handleError({message:mxResources.get("errorUpdatingPreview")}):(na.mathEnabled&&(fa=na.wnd.document,wa&&(na.wnd.IMMEDIATE_PRINT=!0),fa.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),na.closeDocument(),
+!na.mathEnabled&&wa&&PrintDialog.printPreview(na));null!=ra&&(P.shapeForegroundColor=va,P.shapeBackgroundColor=ha,P.stylesheet=ra,P.refresh())}}var P=n.editor.graph,T=document.createElement("div"),Q=document.createElement("h3");Q.style.width="100%";Q.style.textAlign="center";Q.style.marginTop="0px";mxUtils.write(Q,B||mxResources.get("print"));T.appendChild(Q);var V=1,Y=1;Q=document.createElement("div");Q.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var ea=
+document.createElement("input");ea.style.cssText="margin-right:8px;margin-bottom:8px;";ea.setAttribute("value","all");ea.setAttribute("type","radio");ea.setAttribute("name","pages-printdialog");Q.appendChild(ea);B=document.createElement("span");mxUtils.write(B,mxResources.get("printAllPages"));Q.appendChild(B);mxUtils.br(Q);var ba=ea.cloneNode(!0);ea.setAttribute("checked","checked");ba.setAttribute("value","range");Q.appendChild(ba);B=document.createElement("span");mxUtils.write(B,mxResources.get("pages")+
+":");Q.appendChild(B);var ca=document.createElement("input");ca.style.cssText="margin:0 8px 0 8px;";ca.setAttribute("value","1");ca.setAttribute("type","number");ca.setAttribute("min","1");ca.style.width="50px";Q.appendChild(ca);B=document.createElement("span");mxUtils.write(B,mxResources.get("to"));Q.appendChild(B);var ja=ca.cloneNode(!0);Q.appendChild(ja);mxEvent.addListener(ca,"focus",function(){ba.checked=!0});mxEvent.addListener(ja,"focus",function(){ba.checked=!0});mxEvent.addListener(ca,"change",
+K);mxEvent.addListener(ja,"change",K);if(null!=n.pages&&(V=n.pages.length,null!=n.currentPage))for(B=0;B<n.pages.length;B++)if(n.currentPage==n.pages[B]){Y=B+1;ca.value=Y;ja.value=Y;break}ca.setAttribute("max",V);ja.setAttribute("max",V);n.isPagesEnabled()?1<V&&(T.appendChild(Q),ba.checked=!0):ba.checked=!0;mxUtils.br(Q);var ia=document.createElement("input");ia.setAttribute("value","all");ia.setAttribute("type","radio");ia.style.marginRight="8px";P.isSelectionEmpty()&&ia.setAttribute("disabled",
+"disabled");var Z=document.createElement("div");Z.style.marginBottom="10px";1==V?(ia.setAttribute("type","checkbox"),ia.style.marginBottom="12px",Z.appendChild(ia)):(ia.setAttribute("name","pages-printdialog"),ia.style.marginBottom="8px",Q.appendChild(ia));B=document.createElement("span");mxUtils.write(B,mxResources.get("selectionOnly"));ia.parentNode.appendChild(B);1==V&&mxUtils.br(ia.parentNode);var Da=document.createElement("input");Da.style.marginRight="8px";Da.setAttribute("value","adjust");
+Da.setAttribute("type","radio");Da.setAttribute("name","printZoom");Z.appendChild(Da);B=document.createElement("span");mxUtils.write(B,mxResources.get("adjustTo"));Z.appendChild(B);var Ga=document.createElement("input");Ga.style.cssText="margin:0 8px 0 8px;";Ga.setAttribute("value","100 %");Ga.style.width="50px";Z.appendChild(Ga);mxEvent.addListener(Ga,"focus",function(){Da.checked=!0});T.appendChild(Z);Q=Q.cloneNode(!1);var Ba=Da.cloneNode(!0);Ba.setAttribute("value","fit");Da.setAttribute("checked",
+"checked");B=document.createElement("div");B.style.cssText="display:inline-block;vertical-align:top;padding-top:2px;";B.appendChild(Ba);Q.appendChild(B);Z=document.createElement("table");Z.style.display="inline-block";var Ha=document.createElement("tbody"),pa=document.createElement("tr"),Na=pa.cloneNode(!0),La=document.createElement("td"),ya=La.cloneNode(!0),Ja=La.cloneNode(!0),Fa=La.cloneNode(!0),Pa=La.cloneNode(!0),xa=La.cloneNode(!0);La.style.textAlign="right";Fa.style.textAlign="right";mxUtils.write(La,
+mxResources.get("fitTo"));var za=document.createElement("input");za.style.cssText="margin:0 8px 0 8px;";za.setAttribute("value","1");za.setAttribute("min","1");za.setAttribute("type","number");za.style.width="40px";ya.appendChild(za);B=document.createElement("span");mxUtils.write(B,mxResources.get("fitToSheetsAcross"));Ja.appendChild(B);mxUtils.write(Fa,mxResources.get("fitToBy"));var ua=za.cloneNode(!0);Pa.appendChild(ua);mxEvent.addListener(za,"focus",function(){Ba.checked=!0});mxEvent.addListener(ua,
+"focus",function(){Ba.checked=!0});B=document.createElement("span");mxUtils.write(B,mxResources.get("fitToSheetsDown"));xa.appendChild(B);pa.appendChild(La);pa.appendChild(ya);pa.appendChild(Ja);Na.appendChild(Fa);Na.appendChild(Pa);Na.appendChild(xa);Ha.appendChild(pa);Ha.appendChild(Na);Z.appendChild(Ha);Q.appendChild(Z);T.appendChild(Q);Q=document.createElement("div");B=document.createElement("div");B.style.fontWeight="bold";B.style.marginBottom="12px";mxUtils.write(B,mxResources.get("paperSize"));
+Q.appendChild(B);B=document.createElement("div");B.style.marginBottom="12px";var Aa=PageSetupDialog.addPageFormatPanel(B,"printdialog",n.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);Q.appendChild(B);B=document.createElement("span");mxUtils.write(B,mxResources.get("pageScale"));Q.appendChild(B);var da=document.createElement("input");da.style.cssText="margin:0 8px 0 8px;";da.setAttribute("value","100 %");da.style.width="60px";Q.appendChild(da);T.appendChild(Q);B=document.createElement("div");
+B.style.cssText="text-align:right;margin:48px 0 0 0;";Q=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});Q.className="geBtn";n.editor.cancelFirst&&B.appendChild(Q);n.isOffline()||(Z=mxUtils.button(mxResources.get("help"),function(){P.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),Z.className="geBtn",B.appendChild(Z));PrintDialog.previewEnabled&&(Z=mxUtils.button(mxResources.get("preview"),function(){n.hideDialog();R(!1)}),Z.className="geBtn",B.appendChild(Z));Z=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?
+"print":"ok"),function(){n.hideDialog();R(!0)});Z.className="geBtn gePrimaryBtn";B.appendChild(Z);n.editor.cancelFirst||B.appendChild(Q);T.appendChild(B);this.container=T};var O=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 n=this.image;null!=n&&null!=n.src&&Graph.isPageLink(n.src)&&
+(n={originalSrc:n.src});this.page.viewState.backgroundImage=n}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 O.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 W=document.createElement("canvas"),U=new Image;U.onload=function(){try{W.getContext("2d").drawImage(U,0,0);var n=W.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=n&&6<n.length}catch(B){}};U.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(n){}})();
(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(f,l,d){d.ui=f.ui;return l};b.afterDecode=function(f,l,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);null!=d.mathEnabled&&(d.mathEnabled=!d.mathEnabled);null!=d.shadowVisible&&(d.shadowVisible=!d.shadowVisible);return d};mxCodecRegistry.register(b)})();
-(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(f,l,d){d.ui=f.ui;return l};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="20.0.0";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
+(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(f,l,d){d.ui=f.ui;return l};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="20.0.1";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl=window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.nativeFileSupport=!mxClient.IS_OP&&!EditorUi.isElectronApp&&
"1"!=urlParams.extAuth&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.enableHtmlEditOption=!0;EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,
mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(c,e,g,k,m,p,v){p=null!=p?p:0<=c.indexOf("NetworkError")||0<=c.indexOf("SecurityError")||0<=c.indexOf("NS_ERROR_FAILURE")||0<=c.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&