diff --git a/ChangeLog b/ChangeLog index c9619d456..b49609d18 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +14-DEC-2023: 21.1.9 + +- Scrolls to loaded libraries, fixes library export to browser +- Fixes library moved to end after edit +- Fixes relative links in print preview +- Alt+Shift+Drag ignores cell under mouse if selection not empty + 12-DEC-2023: 22.1.8 - Adds color option in freehand dialog [drawio-3454] diff --git a/VERSION b/VERSION index 05a03b20e..d0a317704 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -22.1.8 \ No newline at end of file +22.1.9 \ No newline at end of file diff --git a/src/main/mxgraph/handler/mxGraphHandler.js b/src/main/mxgraph/handler/mxGraphHandler.js index b46683ece..b71cf256b 100644 --- a/src/main/mxgraph/handler/mxGraphHandler.js +++ b/src/main/mxgraph/handler/mxGraphHandler.js @@ -1103,9 +1103,17 @@ mxGraphHandler.prototype.mouseMove = function(sender, me) } } + var cells = graph.getSelectionCells(); + + if (!this.graph.isToggleEvent(me.getEvent()) || + !mxEvent.isAltDown(me.getEvent()) || + graph.isSelectionEmpty()) + { + cells = cells.concat(me.getCell()); + } + this.start(this.cell, this.mouseDownX, this.mouseDownY, - this.getCells(null, graph.getSelectionCells(). - concat(me.getCell()))); + this.getCells(null, cells)); } var delta = (this.first != null) ? this.getDelta(me) : null; diff --git a/src/main/webapp/images/sidebar-gcp2.png b/src/main/webapp/images/sidebar-gcp2.png index c1276d704..04a1295ae 100644 Binary files a/src/main/webapp/images/sidebar-gcp2.png and b/src/main/webapp/images/sidebar-gcp2.png differ diff --git a/src/main/webapp/js/app.min.js b/src/main/webapp/js/app.min.js index d898e4da6..bebcc76f9 100644 --- a/src/main/webapp/js/app.min.js +++ b/src/main/webapp/js/app.min.js @@ -146,7 +146,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:"22.1.8",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:"22.1.9",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&&2navigator.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|| @@ -1568,13 +1568,13 @@ mxGraphHandler.prototype.addStates=function(a,b){var c=this.graph.view.getState( mxGraphHandler.prototype.snap=function(a){var b=this.scaleGrid?this.graph.view.scale:1;a.x=this.graph.snap(a.x/b)*b;a.y=this.graph.snap(a.y/b)*b;return a};mxGraphHandler.prototype.getDelta=function(a){a=mxUtils.convertPoint(this.graph.container,a.getX(),a.getY());return new mxPoint(a.x-this.first.x-this.graph.panDx,a.y-this.first.y-this.graph.panDy)};mxGraphHandler.prototype.updateHint=function(a){};mxGraphHandler.prototype.removeHint=function(){}; mxGraphHandler.prototype.roundLength=function(a){return Math.round(100*a)/100};mxGraphHandler.prototype.isValidDropTarget=function(a,b){for(b=0;b=this.cellCount&&!this.livePreviewActive&&this.allowLivePreview?this.cloning&&this.livePreviewActive||(this.livePreviewUsed=this.livePreviewActive=!0):this.livePreviewUsed||null!=this.shape||(this.shape=this.createPreviewShape(this.bounds))}; -mxGraphHandler.prototype.mouseMove=function(a,b){a=this.graph;var c=a.tolerance;null==this.first&&this.delayedSelection&&null!=this.cell&&null!=this.mouseDownX&&null!=this.mouseDownY&&(Math.abs(this.mouseDownX-b.getX())>c||Math.abs(this.mouseDownY-b.getY())>c)&&(this.delayedSelection=!1,this.cellWasClicked=!0,this.graph.isCellSelected(this.cell)||mxEvent.isAltDown(b.getEvent())||(this.graph.isToggleEvent(b.getEvent())?a.addSelectionCell(this.cell):this.graph.isAncestorSelected(this.cell)||a.setSelectionCell(this.cell)), -this.start(this.cell,this.mouseDownX,this.mouseDownY,this.getCells(null,a.getSelectionCells().concat(b.getCell()))));var d=null!=this.first?this.getDelta(b):null;if(b.isConsumed()||!a.isMouseDown||null==this.cell||null==d||null==this.bounds||this.suspended)!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||b.isConsumed()||null==b.getState()&&null==b.sourceState||a.isMouseDown||(d=a.getCursorForMouseEvent(b),null==d&&a.isEnabled()&&a.isCellMovable(b.getCell())&&(d=a.getModel().isEdge(b.getCell())? -mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),null!=d&&null!=b.sourceState&&b.sourceState.setCursor(d));else if(mxEvent.isMultiTouchEvent(b.getEvent()))this.reset();else{if(null!=this.shape||this.livePreviewActive||this.cloning||Math.abs(d.x)>c||Math.abs(d.y)>c){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3));c=a.isCloneEvent(b.getEvent())&&a.isCellsCloneable()&&this.isCloneEnabled();var e=a.isGridEnabledEvent(b.getEvent()), -f=b.getCell();f=null!=f&&0>mxUtils.indexOf(this.cells,f)?f:a.getCellAt(b.getGraphX(),b.getGraphY(),null,null,null,mxUtils.bind(this,function(n,p,r){return 0<=mxUtils.indexOf(this.cells,n.cell)}));var g=!0,k=null;this.cloning=c;a.isDropEnabled()&&this.highlightEnabled&&(k=a.getDropTarget(this.cells,b.getEvent(),f,c));var l=a.getView().getState(k),m=!1;null!=l&&(c||this.isValidDropTarget(k,b))?(this.target!=k&&(this.target=k,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),m=!0):(this.target= -null,this.connectOnDrop&&null!=f&&1==this.cells.length&&a.getModel().isVertex(f)&&a.isCellConnectable(f)&&(l=a.getView().getState(f),null!=l&&(f=null==a.getEdgeValidationError(null,this.cell,f)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(f),m=!0)));null!=l&&m?this.highlight.highlight(l):this.highlight.hide();null!=this.guide&&this.useGuidesForEvent(b)?(d=this.guide.move(this.bounds,d,e,c),g=!1):d=a.snapDelta(d,this.bounds,!e,!1,!1);null!=this.guide&&g&& -this.guide.hide();this.isConstrainedEvent(b)&&(Math.abs(d.x)>Math.abs(d.y)?d.y=0:d.x=0);this.checkPreview();if(this.currentDx!=d.x||this.currentDy!=d.y)this.currentDx=d.x,this.currentDy=d.y,this.updatePreview()}this.updateHint(b);this.consumeMouseEvent(mxEvent.MOUSE_MOVE,b);mxEvent.consume(b.getEvent())}};mxGraphHandler.prototype.isConstrainedEvent=function(a){return(null==this.target||this.graph.isCloneEvent(a.getEvent()))&&this.graph.isConstrainedEvent(a.getEvent())}; -mxGraphHandler.prototype.updatePreview=function(a){this.livePreviewUsed&&!a?null!=this.cells&&(this.setHandlesVisibleForCells(this.graph.selectionCellsHandler.getHandledSelectionCells(),!1),this.updateLivePreview(this.currentDx,this.currentDy)):this.updatePreviewShape()}; +mxGraphHandler.prototype.mouseMove=function(a,b){a=this.graph;var c=a.tolerance;if(null==this.first&&this.delayedSelection&&null!=this.cell&&null!=this.mouseDownX&&null!=this.mouseDownY&&(Math.abs(this.mouseDownX-b.getX())>c||Math.abs(this.mouseDownY-b.getY())>c)){this.delayedSelection=!1;this.cellWasClicked=!0;this.graph.isCellSelected(this.cell)||mxEvent.isAltDown(b.getEvent())||(this.graph.isToggleEvent(b.getEvent())?a.addSelectionCell(this.cell):this.graph.isAncestorSelected(this.cell)||a.setSelectionCell(this.cell)); +var d=a.getSelectionCells();this.graph.isToggleEvent(b.getEvent())&&mxEvent.isAltDown(b.getEvent())&&!a.isSelectionEmpty()||(d=d.concat(b.getCell()));this.start(this.cell,this.mouseDownX,this.mouseDownY,this.getCells(null,d))}d=null!=this.first?this.getDelta(b):null;if(b.isConsumed()||!a.isMouseDown||null==this.cell||null==d||null==this.bounds||this.suspended)!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||b.isConsumed()||null==b.getState()&&null==b.sourceState||a.isMouseDown|| +(d=a.getCursorForMouseEvent(b),null==d&&a.isEnabled()&&a.isCellMovable(b.getCell())&&(d=a.getModel().isEdge(b.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),null!=d&&null!=b.sourceState&&b.sourceState.setCursor(d));else if(mxEvent.isMultiTouchEvent(b.getEvent()))this.reset();else{if(null!=this.shape||this.livePreviewActive||this.cloning||Math.abs(d.x)>c||Math.abs(d.y)>c){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR, +3));c=a.isCloneEvent(b.getEvent())&&a.isCellsCloneable()&&this.isCloneEnabled();var e=a.isGridEnabledEvent(b.getEvent()),f=b.getCell();f=null!=f&&0>mxUtils.indexOf(this.cells,f)?f:a.getCellAt(b.getGraphX(),b.getGraphY(),null,null,null,mxUtils.bind(this,function(n,p,r){return 0<=mxUtils.indexOf(this.cells,n.cell)}));var g=!0,k=null;this.cloning=c;a.isDropEnabled()&&this.highlightEnabled&&(k=a.getDropTarget(this.cells,b.getEvent(),f,c));var l=a.getView().getState(k),m=!1;null!=l&&(c||this.isValidDropTarget(k, +b))?(this.target!=k&&(this.target=k,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),m=!0):(this.target=null,this.connectOnDrop&&null!=f&&1==this.cells.length&&a.getModel().isVertex(f)&&a.isCellConnectable(f)&&(l=a.getView().getState(f),null!=l&&(f=null==a.getEdgeValidationError(null,this.cell,f)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(f),m=!0)));null!=l&&m?this.highlight.highlight(l):this.highlight.hide();null!=this.guide&&this.useGuidesForEvent(b)? +(d=this.guide.move(this.bounds,d,e,c),g=!1):d=a.snapDelta(d,this.bounds,!e,!1,!1);null!=this.guide&&g&&this.guide.hide();this.isConstrainedEvent(b)&&(Math.abs(d.x)>Math.abs(d.y)?d.y=0:d.x=0);this.checkPreview();if(this.currentDx!=d.x||this.currentDy!=d.y)this.currentDx=d.x,this.currentDy=d.y,this.updatePreview()}this.updateHint(b);this.consumeMouseEvent(mxEvent.MOUSE_MOVE,b);mxEvent.consume(b.getEvent())}}; +mxGraphHandler.prototype.isConstrainedEvent=function(a){return(null==this.target||this.graph.isCloneEvent(a.getEvent()))&&this.graph.isConstrainedEvent(a.getEvent())};mxGraphHandler.prototype.updatePreview=function(a){this.livePreviewUsed&&!a?null!=this.cells&&(this.setHandlesVisibleForCells(this.graph.selectionCellsHandler.getHandledSelectionCells(),!1),this.updateLivePreview(this.currentDx,this.currentDy)):this.updatePreviewShape()}; mxGraphHandler.prototype.updatePreviewShape=function(){null!=this.shape&&null!=this.pBounds&&(this.shape.bounds=new mxRectangle(Math.round(this.pBounds.x+this.currentDx),Math.round(this.pBounds.y+this.currentDy),this.pBounds.width,this.pBounds.height),this.shape.redraw())}; mxGraphHandler.prototype.updateLivePreview=function(a,b){if(!this.suspended){var c=[];null!=this.allCells&&this.allCells.visit(mxUtils.bind(this,function(n,p){n=this.graph.view.getState(p.cell);n!=p&&(p.destroy(),null!=n?this.allCells.put(p.cell,n):this.allCells.remove(p.cell),p=n);if(null!=p&&(n=p.clone(),c.push([p,n]),null!=p.shape&&(null==p.shape.originalPointerEvents&&(p.shape.originalPointerEvents=p.shape.pointerEvents),p.shape.pointerEvents=!1,null!=p.text&&(null==p.text.originalPointerEvents&& (p.text.originalPointerEvents=p.text.pointerEvents),p.text.pointerEvents=!1)),this.graph.model.isVertex(p.cell))){if(!this.cloning||this.graph.isCellCloneable(p.cell))p.x+=a,p.y+=b;this.cloning?null!=p.text&&(p.text.updateBoundingBox(),null!=p.text.boundingBox&&(p.text.boundingBox.x+=a,p.text.boundingBox.y+=b),null!=p.text.unrotatedBoundingBox&&(p.text.unrotatedBoundingBox.x+=a,p.text.unrotatedBoundingBox.y+=b)):(p.view.graph.cellRenderer.redraw(p,!0),p.view.invalidate(p.cell),p.invalid=!1,null!= @@ -2071,10 +2071,10 @@ Editor.prototype.setModified=function(a){this.modified=a};Editor.prototype.setFi Editor.prototype.createUndoManager=function(){var a=this.graph,b=new mxUndoManager;this.undoListener=function(f,g){b.undoableEditHappened(g.getProperty("edit"))};var e=mxUtils.bind(this,function(f,g){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,e);a.getView().addListener(mxEvent.UNDO,e);e=function(f,g){f=a.getSelectionCellsForChanges(g.getProperty("edit").changes,function(h){return!(h instanceof mxChildChange)});if(0L.clientHeight-G&&(b.style.overflowY="auto");b.style.overflowX="hidden";if(d&&(d=document.createElement("img"),d.setAttribute("src",Dialog.prototype.closeImage),d.setAttribute("title",mxResources.get("close")), -d.className="geDialogClose",d.style.top=I+14+"px",d.style.left=E+e+38-x+"px",d.style.zIndex=this.zIndex,mxEvent.addListener(d,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(d),this.dialogImg=d,!r)){var N=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(Y){N=!0}),null,mxUtils.bind(this,function(Y){N&&(a.hideDialog(!0),N=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=m){var Y=m();null!=Y&&(z=e=Y.w,C=f=Y.h)}Y=Editor.inlineFullscreen|| +d.className="geDialogClose",d.style.top=I+14+"px",d.style.left=E+e+38-x+"px",d.style.zIndex=this.zIndex,mxEvent.addListener(d,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(d),this.dialogImg=d,!r)){var N=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(Y){N=!0}),null,mxUtils.bind(this,function(Y){N&&(a.hideDialog(!0),N=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var Y=l();null!=Y&&(z=e=Y.w,C=f=Y.h)}Y=Editor.inlineFullscreen|| null==a.embedViewport?this.getDocumentSize():mxUtils.clone(a.embedViewport);D=Y.height;this.bg.style.height=D+"px";Editor.inlineFullscreen||null==a.embedViewport||(this.bg.style.height=this.getDocumentSize().height+"px");e=null!=document.body?Math.min(z,document.body.scrollWidth-G):z;f=Math.min(C,D-G);Y=Math.max(1,Math.round((Y.width-e-G)/2));var W=Math.max(1,Math.round((D-f-a.footerHeight)/3));W=this.getPosition(Y,W,e,f);Y=W.x;W=W.y;var X=mxUtils.getDocumentScrollOrigin(document);Y+=X.x;W+=X.y;Editor.inlineFullscreen|| null==a.embedViewport||(W+=a.embedViewport.y,Y+=a.embedViewport.x);L.style.left=Y+"px";L.style.top=W+"px";L.style.width=e+"px";L.style.height=f+"px";!n&&b.clientHeight>L.clientHeight-G&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=W+14+"px",this.dialogImg.style.left=Y+e+38-x+"px")});null!=a.embedViewport?a.addListener("embedViewportChanged",this.resizeListener):mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=h;this.container=L;a.editor.fireEvent(new mxEventObject("showDialog"))} Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2; @@ -2085,74 +2085,74 @@ Dialog.prototype.clearImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQAKA "/clear.gif";Dialog.prototype.bgOpacity=80;Dialog.prototype.getDocumentSize=function(){return mxUtils.getDocumentSize()};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&&null!=this.dialogImg.parentNode&&(this.dialogImg.parentNode.removeChild(this.dialogImg),this.dialogImg=null);null!=this.bg&&null!=this.bg.parentNode&&this.bg.parentNode.removeChild(this.bg);null!=this.editorUi.embedViewport?this.editorUi.removeListener(this.resizeListener):mxEvent.removeListener(window,"resize",this.resizeListener);null!=this.container.parentNode&& this.container.parentNode.removeChild(this.container)}; -var ErrorDialog=function(a,b,e,f,g,d,h,n,t,m,r){t=null!=t?t:!0;var x=document.createElement("div");x.style.textAlign="center";if(null!=b){var z=document.createElement("div");z.style.padding="0px";z.style.margin="0px";z.style.fontSize="18px";z.style.paddingBottom="16px";z.style.marginBottom="10px";z.style.borderBottom="1px solid #c0c0c0";z.style.color="gray";z.style.whiteSpace="nowrap";z.style.textOverflow="ellipsis";z.style.overflow="hidden";mxUtils.write(z,b);z.setAttribute("title",b);x.appendChild(z)}b= -document.createElement("div");b.style.lineHeight="1.2em";b.style.padding="6px";"string"===typeof e&&(e=e.replace(/\n/g,"
"));b.innerHTML=e;x.appendChild(b);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=d&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();d()}),b.className="geBtn",e.appendChild(b),e.style.textAlign="center");null!=m&&(m=mxUtils.button(m,function(){null!=r&&r()}),m.className="geBtn",e.appendChild(m));var C=mxUtils.button(f, +var ErrorDialog=function(a,b,e,f,g,d,h,n,t,l,r){t=null!=t?t:!0;var x=document.createElement("div");x.style.textAlign="center";if(null!=b){var z=document.createElement("div");z.style.padding="0px";z.style.margin="0px";z.style.fontSize="18px";z.style.paddingBottom="16px";z.style.marginBottom="10px";z.style.borderBottom="1px solid #c0c0c0";z.style.color="gray";z.style.whiteSpace="nowrap";z.style.textOverflow="ellipsis";z.style.overflow="hidden";mxUtils.write(z,b);z.setAttribute("title",b);x.appendChild(z)}b= +document.createElement("div");b.style.lineHeight="1.2em";b.style.padding="6px";"string"===typeof e&&(e=e.replace(/\n/g,"
"));b.innerHTML=e;x.appendChild(b);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=d&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();d()}),b.className="geBtn",e.appendChild(b),e.style.textAlign="center");null!=l&&(l=mxUtils.button(l,function(){null!=r&&r()}),l.className="geBtn",e.appendChild(l));var C=mxUtils.button(f, function(){t&&a.hideDialog();null!=g&&g()});C.className="geBtn";e.appendChild(C);null!=h&&(f=mxUtils.button(h,function(){t&&a.hideDialog();null!=n&&n()}),f.className="geBtn gePrimaryBtn",e.appendChild(f));this.init=function(){C.focus()};x.appendChild(e);this.container=x},PrintDialog=function(a,b){this.create(a,b)}; -PrintDialog.prototype.create=function(a){function b(C){var G=h.checked||m.checked,E=parseInt(x.value)/100;isNaN(E)&&(E=1,x.value="100%");mxClient.IS_SF&&(E*=.75);var D=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,I=1/e.pageScale;if(G){var M=h.checked?1:parseInt(r.value);isNaN(M)||(I=mxUtils.getScaleForPageCount(M,e,D))}var L=M=0;D=mxRectangle.fromRectangle(D);D.width=Math.ceil(D.width*E);D.height=Math.ceil(D.height*E);I*=E;!G&&e.pageVisible?(E=e.getPageLayout(),M-=E.x*D.width,L-=E.y*D.height): +PrintDialog.prototype.create=function(a){function b(C){var G=h.checked||l.checked,E=parseInt(x.value)/100;isNaN(E)&&(E=1,x.value="100%");mxClient.IS_SF&&(E*=.75);var D=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,I=1/e.pageScale;if(G){var M=h.checked?1:parseInt(r.value);isNaN(M)||(I=mxUtils.getScaleForPageCount(M,e,D))}var L=M=0;D=mxRectangle.fromRectangle(D);D.width=Math.ceil(D.width*E);D.height=Math.ceil(D.height*E);I*=E;!G&&e.pageVisible?(E=e.getPageLayout(),M-=E.x*D.width,L-=E.y*D.height): G=!0;G=PrintDialog.createPrintPreview(e,I,D,0,M,L,G);G.open();C&&PrintDialog.printPreview(G)}var e=a.editor.graph,f=document.createElement("table");f.style.width="100%";f.style.height="100%";var g=document.createElement("tbody");var d=document.createElement("tr");var h=document.createElement("input");h.setAttribute("type","checkbox");var n=document.createElement("td");n.setAttribute("colspan","2");n.style.fontSize="10pt";n.appendChild(h);var t=document.createElement("span");mxUtils.write(t," "+mxResources.get("fitPage")); -n.appendChild(t);mxEvent.addListener(t,"click",function(C){h.checked=!h.checked;m.checked=!h.checked;mxEvent.consume(C)});mxEvent.addListener(h,"change",function(){m.checked=!h.checked});d.appendChild(n);g.appendChild(d);d=d.cloneNode(!1);var m=document.createElement("input");m.setAttribute("type","checkbox");n=document.createElement("td");n.style.fontSize="10pt";n.appendChild(m);t=document.createElement("span");mxUtils.write(t," "+mxResources.get("posterPrint")+":");n.appendChild(t);mxEvent.addListener(t, -"click",function(C){m.checked=!m.checked;h.checked=!m.checked;mxEvent.consume(C)});d.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)");d.appendChild(n);g.appendChild(d);mxEvent.addListener(m,"change", -function(){m.checked?r.removeAttribute("disabled"):r.setAttribute("disabled","disabled");h.checked=!m.checked});d=d.cloneNode(!1);n=document.createElement("td");mxUtils.write(n,mxResources.get("pageScale")+":");d.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);d.appendChild(n);g.appendChild(d);d=document.createElement("tr");n=document.createElement("td");n.colSpan=2; +n.appendChild(t);mxEvent.addListener(t,"click",function(C){h.checked=!h.checked;l.checked=!h.checked;mxEvent.consume(C)});mxEvent.addListener(h,"change",function(){l.checked=!h.checked});d.appendChild(n);g.appendChild(d);d=d.cloneNode(!1);var l=document.createElement("input");l.setAttribute("type","checkbox");n=document.createElement("td");n.style.fontSize="10pt";n.appendChild(l);t=document.createElement("span");mxUtils.write(t," "+mxResources.get("posterPrint")+":");n.appendChild(t);mxEvent.addListener(t, +"click",function(C){l.checked=!l.checked;h.checked=!l.checked;mxEvent.consume(C)});d.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)");d.appendChild(n);g.appendChild(d);mxEvent.addListener(l,"change", +function(){l.checked?r.removeAttribute("disabled"):r.setAttribute("disabled","disabled");h.checked=!l.checked});d=d.cloneNode(!1);n=document.createElement("td");mxUtils.write(n,mxResources.get("pageScale")+":");d.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);d.appendChild(n);g.appendChild(d);d=document.createElement("tr");n=document.createElement("td");n.colSpan=2; n.style.paddingTop="20px";n.setAttribute("align","right");t=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});t.className="geBtn";a.editor.cancelFirst&&n.appendChild(t);if(PrintDialog.previewEnabled){var z=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});z.className="geBtn";n.appendChild(z)}z=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});z.className="geBtn gePrimaryBtn";n.appendChild(z);a.editor.cancelFirst|| n.appendChild(t);d.appendChild(n);g.appendChild(d);f.appendChild(g);this.container=f};PrintDialog.printPreview=function(a){try{null!=a.wnd&&window.setTimeout(function(){a.wnd.focus();a.wnd.print();a.wnd.close()},500)}catch(b){}}; -PrintDialog.createPrintPreview=function(a,b,e,f,g,d,h){b=new mxPrintPreview(a,b,e,f,g,d);b.title=mxResources.get("preview");b.addPageCss=!mxClient.IS_SF;b.printBackgroundImage=!0;b.autoOrigin=h;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";b.backgroundColor=a;var n=b.writeHead;b.writeHead=function(t){n.apply(this,arguments);t.writeln('")}; -return b};PrintDialog.previewEnabled=!0; +PrintDialog.createPrintPreview=function(a,b,e,f,g,d,h){b=new mxPrintPreview(a,b,e,f,g,d);b.title=mxResources.get("preview");b.addPageCss=!mxClient.IS_SF;b.printBackgroundImage=!0;b.autoOrigin=h;h=a.background;if(null==h||""==h||h==mxConstants.NONE)h="#ffffff";b.backgroundColor=h;var n=b.getLinkForCellState;b.getLinkForCellState=function(l){return a.getAbsoluteUrl(n.apply(this,arguments))};var t=b.writeHead;b.writeHead=function(l){t.apply(this,arguments);l.writeln('")};return b};PrintDialog.previewEnabled=!0; var PageSetupDialog=function(a){function b(){var E=x;null!=E&&null!=E.originalSrc&&(E=a.createImageForPageLink(E.originalSrc,null));null!=E&&null!=E.src?(r.style.backgroundImage="url("+E.src+")",r.style.display="inline-block"):(r.style.backgroundImage="",r.style.display="none");r.style.backgroundColor="";null!=z&&z!=mxConstants.NONE&&(r.style.backgroundColor=z,r.style.display="inline-block")}var e=a.editor.graph,f=document.createElement("table");f.style.width="100%";f.style.height="100%";var g=document.createElement("tbody"); var d=document.createElement("tr");var h=document.createElement("td");h.style.verticalAlign="top";h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("paperSize")+":");d.appendChild(h);h=document.createElement("td");h.style.verticalAlign="top";h.style.fontSize="10pt";var n=PageSetupDialog.addPageFormatPanel(h,"pagesetupdialog",e.pageFormat);d.appendChild(h);g.appendChild(d);d=document.createElement("tr");h=document.createElement("td");mxUtils.write(h,mxResources.get("gridSize")+":");d.appendChild(h); h=document.createElement("td");h.style.whiteSpace="nowrap";var t=document.createElement("input");t.setAttribute("type","number");t.setAttribute("min","0");t.style.width="40px";t.style.marginLeft="6px";t.value=e.getGridSize();h.appendChild(t);mxEvent.addListener(t,"change",function(){var E=parseInt(t.value);t.value=Math.max(1,isNaN(E)?e.getGridSize():E)});d.appendChild(h);g.appendChild(d);d=document.createElement("tr");h=document.createElement("td");mxUtils.write(h,mxResources.get("background")+":"); -d.appendChild(h);h=document.createElement("td");var m=document.createElement("button");m.className="geBtn";m.style.margin="0px";mxUtils.write(m,mxResources.get("change")+"...");var r=document.createElement("div");r.style.display="inline-block";r.style.verticalAlign="middle";r.style.backgroundPosition="center center";r.style.backgroundRepeat="no-repeat";r.style.backgroundSize="contain";r.style.border="1px solid lightGray";r.style.borderRadius="4px";r.style.marginRight="14px";r.style.height="32px"; -r.style.width="64px";r.style.cursor="pointer";r.style.padding="4px";var x=e.backgroundImage,z=e.background,C=e.shadowVisible,G=function(E){a.showBackgroundImageDialog(function(D,I,M,L){I||(null!=D&&null!=D.src&&Graph.isPageLink(D.src)&&(D={originalSrc:D.src}),x=D,C=L);z=M;b()},x,z,!0);mxEvent.consume(E)};mxEvent.addListener(m,"click",G);mxEvent.addListener(r,"click",G);b();h.appendChild(r);h.appendChild(m);d.appendChild(h);g.appendChild(d);d=document.createElement("tr");h=document.createElement("td"); -h.colSpan=2;h.style.paddingTop="16px";h.setAttribute("align","right");m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});m.className="geBtn";a.editor.cancelFirst&&h.appendChild(m);G=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var E=parseInt(t.value);isNaN(E)||e.gridSize===E||e.setGridSize(E);E=new ChangePageSetup(a,z,x,n.get());E.ignoreColor=e.background==z;E.ignoreImage=(null!=e.backgroundImage?e.backgroundImage.src:null)===(null!=x?x.src:null);null!=C&& -(E.shadowVisible=C);e.pageFormat.width==E.previousFormat.width&&e.pageFormat.height==E.previousFormat.height&&E.ignoreColor&&E.ignoreImage&&E.shadowVisible==e.shadowVisible||e.model.execute(E)});G.className="geBtn gePrimaryBtn";h.appendChild(G);a.editor.cancelFirst||h.appendChild(m);d.appendChild(h);g.appendChild(d);f.appendChild(g);this.container=f}; +d.appendChild(h);h=document.createElement("td");var l=document.createElement("button");l.className="geBtn";l.style.margin="0px";mxUtils.write(l,mxResources.get("change")+"...");var r=document.createElement("div");r.style.display="inline-block";r.style.verticalAlign="middle";r.style.backgroundPosition="center center";r.style.backgroundRepeat="no-repeat";r.style.backgroundSize="contain";r.style.border="1px solid lightGray";r.style.borderRadius="4px";r.style.marginRight="14px";r.style.height="32px"; +r.style.width="64px";r.style.cursor="pointer";r.style.padding="4px";var x=e.backgroundImage,z=e.background,C=e.shadowVisible,G=function(E){a.showBackgroundImageDialog(function(D,I,M,L){I||(null!=D&&null!=D.src&&Graph.isPageLink(D.src)&&(D={originalSrc:D.src}),x=D,C=L);z=M;b()},x,z,!0);mxEvent.consume(E)};mxEvent.addListener(l,"click",G);mxEvent.addListener(r,"click",G);b();h.appendChild(r);h.appendChild(l);d.appendChild(h);g.appendChild(d);d=document.createElement("tr");h=document.createElement("td"); +h.colSpan=2;h.style.paddingTop="16px";h.setAttribute("align","right");l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});l.className="geBtn";a.editor.cancelFirst&&h.appendChild(l);G=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var E=parseInt(t.value);isNaN(E)||e.gridSize===E||e.setGridSize(E);E=new ChangePageSetup(a,z,x,n.get());E.ignoreColor=e.background==z;E.ignoreImage=(null!=e.backgroundImage?e.backgroundImage.src:null)===(null!=x?x.src:null);null!=C&& +(E.shadowVisible=C);e.pageFormat.width==E.previousFormat.width&&e.pageFormat.height==E.previousFormat.height&&E.ignoreColor&&E.ignoreImage&&E.shadowVisible==e.shadowVisible||e.model.execute(E)});G.className="geBtn gePrimaryBtn";h.appendChild(G);a.editor.cancelFirst||h.appendChild(l);d.appendChild(h);g.appendChild(d);f.appendChild(g);this.container=f}; PageSetupDialog.addPageFormatPanel=function(a,b,e,f){function g(Y,W,X){if(X||x!=document.activeElement&&z!=document.activeElement){Y=!1;for(W=0;W=Y)x.value=e.width/100;Y=parseFloat(z.value);if(isNaN(Y)||0>=Y)z.value=e.height/100;Y=new mxRectangle(0,0,Math.floor(100*parseFloat(x.value)), -Math.floor(100*parseFloat(z.value)));"custom"!=n.value&&h.checked&&(Y=new mxRectangle(0,0,Y.height,Y.width));W&&M||Y.width==L.width&&Y.height==L.height||(L=Y,null!=f&&f(L))};mxEvent.addListener(b,"click",function(Y){d.checked=!0;N(Y);mxEvent.consume(Y)});mxEvent.addListener(m,"click",function(Y){h.checked=!0;N(Y);mxEvent.consume(Y)});mxEvent.addListener(x,"blur",N);mxEvent.addListener(x,"click",N);mxEvent.addListener(z,"blur",N);mxEvent.addListener(z,"click",N);mxEvent.addListener(h,"change",N);mxEvent.addListener(d, +Math.floor(100*parseFloat(z.value)));"custom"!=n.value&&h.checked&&(Y=new mxRectangle(0,0,Y.height,Y.width));W&&M||Y.width==L.width&&Y.height==L.height||(L=Y,null!=f&&f(L))};mxEvent.addListener(b,"click",function(Y){d.checked=!0;N(Y);mxEvent.consume(Y)});mxEvent.addListener(l,"click",function(Y){h.checked=!0;N(Y);mxEvent.consume(Y)});mxEvent.addListener(x,"blur",N);mxEvent.addListener(x,"click",N);mxEvent.addListener(z,"blur",N);mxEvent.addListener(z,"click",N);mxEvent.addListener(h,"change",N);mxEvent.addListener(d, "change",N);mxEvent.addListener(n,"change",function(Y){M="custom"==n.value;N(Y,!0)});N();return{set:function(Y){e=Y;g(null,null,!0)},get:function(){return L},widthInput:x,heightInput:z}}; 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,e,f,g,d,h,n,t,m,r,x,z){t=null!=t?t:!0;var C=document.createElement("table"),G=document.createElement("tbody"),E=document.createElement("tr"),D=document.createElement("td");C.style.margin="0 auto";D.style.textOverflow="ellipsis";D.style.whiteSpace="nowrap";D.style.textAlign="right";D.style.maxWidth=(z?z+15:100)+"px";D.style.fontSize="10pt";D.style.width=(z?z:84)+"px";mxUtils.write(D,(g||mxResources.get("filename"))+":");E.appendChild(D);var I=document.createElement("input"); +var FilenameDialog=function(a,b,e,f,g,d,h,n,t,l,r,x,z){t=null!=t?t:!0;var C=document.createElement("table"),G=document.createElement("tbody"),E=document.createElement("tr"),D=document.createElement("td");C.style.margin="0 auto";D.style.textOverflow="ellipsis";D.style.whiteSpace="nowrap";D.style.textAlign="right";D.style.maxWidth=(z?z+15:100)+"px";D.style.fontSize="10pt";D.style.width=(z?z:84)+"px";mxUtils.write(D,(g||mxResources.get("filename"))+":");E.appendChild(D);var I=document.createElement("input"); I.setAttribute("value",b||"");I.style.marginLeft="4px";I.style.width=null!=x?x+"px":"180px";var M=mxUtils.button(e,function(){if(null==d||d(I.value))t&&a.hideDialog(),f(I.value)});M.className="geBtn gePrimaryBtn";this.init=function(){if(null!=g||null==h)if(null!=r?Editor.selectFilename(I):(I.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?I.select():document.execCommand("selectAll",!1,null)),Graph.fileSupport){var L=C.parentNode;if(null!=L){var N=null;mxEvent.addListener(L,"dragleave", function(Y){null!=N&&(N.style.backgroundColor="",N=null);Y.stopPropagation();Y.preventDefault()});mxEvent.addListener(L,"dragover",mxUtils.bind(this,function(Y){null==N&&(!mxClient.IS_IE||10'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(h,n){a.apply(this,arguments);if(null!=this.shiftPreview1){var t=this.view.canvas; -null!=t.ownerSVGElement&&(t=t.ownerSVGElement);var m=this.gridSize*this.view.scale*this.view.gridSteps;m=-Math.round(m-mxUtils.mod(this.view.translate.x*this.view.scale+h,m))+"px "+-Math.round(m-mxUtils.mod(this.view.translate.y*this.view.scale+n,m))+"px";t.style.backgroundPosition=m}};mxGraph.prototype.updatePageBreaks=function(h,n,t){var m=this.view.scale,r=this.view.translate,x=this.pageFormat,z=m*this.pageScale,C=this.view.getBackgroundPageBounds();n=C.width;t=C.height;var G=new mxRectangle(m* -r.x,m*r.y,x.width*z,x.height*z),E=(h=h&&Math.min(G.width,G.height)>this.minPageBreakDist)?Math.ceil(t/G.height)-1:0,D=h?Math.ceil(n/G.width)-1:0,I=C.x+n,M=C.y+t;null==this.horizontalPageBreaks&&0'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(h,n){a.apply(this,arguments);if(null!=this.shiftPreview1){var t=this.view.canvas; +null!=t.ownerSVGElement&&(t=t.ownerSVGElement);var l=this.gridSize*this.view.scale*this.view.gridSteps;l=-Math.round(l-mxUtils.mod(this.view.translate.x*this.view.scale+h,l))+"px "+-Math.round(l-mxUtils.mod(this.view.translate.y*this.view.scale+n,l))+"px";t.style.backgroundPosition=l}};mxGraph.prototype.updatePageBreaks=function(h,n,t){var l=this.view.scale,r=this.view.translate,x=this.pageFormat,z=l*this.pageScale,C=this.view.getBackgroundPageBounds();n=C.width;t=C.height;var G=new mxRectangle(l* +r.x,l*r.y,x.width*z,x.height*z),E=(h=h&&Math.min(G.width,G.height)>this.minPageBreakDist)?Math.ceil(t/G.height)-1:0,D=h?Math.ceil(n/G.width)-1:0,I=C.x+n,M=C.y+t;null==this.horizontalPageBreaks&&0mxUtils.indexOf(n,z[b])&&n.push(z[b]);var C="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),G=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["fillColor","gradientColor","gradientDirection"],["opacity"],["html"]];for(b=0;bmxUtils.indexOf(n,t[b])&&n.push(t[b]);var E=function(J,R,ha,P,T,ja,pa){P= null!=P?P:g.currentVertexStyle;T=null!=T?T:g.currentEdgeStyle;ja=null!=ja?ja:!0;ha=null!=ha?ha:g.getModel();if(pa){pa=[];for(var da=0;damxUtils.indexOf(m,Ha))&&($a=mxUtils.setStyle($a,Ha,jb))}Editor.simpleLabels&&($a= +La[za],ta=Ja.indexOf("=");if(0<=ta){var Ha=Ja.substring(0,ta),Xa=mxUtils.indexOf(xa,Ha);0<=Xa&&xa.splice(Xa,1);for(pa=0;pamxUtils.indexOf(l,Ha))&&($a=mxUtils.setStyle($a,Ha,jb))}Editor.simpleLabels&&($a= mxUtils.setStyle(mxUtils.setStyle($a,"html",null),"whiteSpace",null));ha.setStyle(ua,$a)}}finally{ha.endUpdate()}return J};g.addListener("cellsInserted",function(J,R){E(R.getProperty("cells"),null,null,null,null,!0,!0)});g.addListener("textInserted",function(J,R){E(R.getProperty("cells"),!0)});this.insertHandler=E;this.createDivs();this.createUi();this.refresh();var D=mxUtils.bind(this,function(J){null==J&&(J=window.event);return g.isEditing()||null!=J&&this.isSelectionAllowed(J)});this.container!= document.body||this.editor.chromeless&&!this.editor.editable||(this.menubarContainer.onselectstart=D,this.menubarContainer.onmousedown=D,this.toolbarContainer.onselectstart=D,this.toolbarContainer.onmousedown=D,this.diagramContainer.onselectstart=D,this.diagramContainer.onmousedown=D,this.sidebarContainer.onselectstart=D,this.sidebarContainer.onmousedown=D,this.formatContainer.onselectstart=D,this.formatContainer.onmousedown=D,this.footerContainer.onselectstart=D,this.footerContainer.onmousedown= D,null!=this.tabContainer&&(this.tabContainer.onselectstart=D),mxClient.IS_IOS&&(b=function(){var J=null;if(/iP(hone|od|ad)/.test(navigator.platform)){var R=navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);try{J=[parseInt(R[1],10),parseInt(R[2],10),parseInt(R[3]||0,10)]}catch(ha){}}return J}(),null!=b&&16<=b[0]&&(mxUtils.setPrefixedStyle(this.menubarContainer.style,"userSelect","none"),mxUtils.setPrefixedStyle(this.diagramContainer.style,"userSelect","none"),mxUtils.setPrefixedStyle(this.sidebarContainer.style, @@ -2175,7 +2175,7 @@ g.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeSty g.selectionModel.addListener(mxEvent.CHANGE,function(){if(g.isEnabled()&&!g.isSelectionEmpty()){var J=g.getLayerForCells(g.getSelectionCells());null!=J&&g.setDefaultParent(J)}});this.gestureHandler=mxUtils.bind(this,function(J){null!=this.currentMenu&&mxEvent.getSource(J)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document,this.gestureHandler);var V=null;this.resizeHandler=mxUtils.bind(this,function(){null!=V&&window.clearTimeout(V);V=window.setTimeout(mxUtils.bind(this, function(){V=null;this.windowResized()}),100)});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(){g.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){g.view.validateBackground()}));g.addListener("gridSizeChanged",mxUtils.bind(this,function(){g.isGridEnabled()&&g.view.validateBackground()}));this.editor.resetGraph()}this.init();g.standalone||this.open()};EditorUi.compactUi=!0; -EditorUi.parsePng=function(a,b,e){function f(n,t){var m=d;d+=t;return n.substring(m,d)}function g(n){n=f(n,4);return n.charCodeAt(3)+(n.charCodeAt(2)<<8)+(n.charCodeAt(1)<<16)+(n.charCodeAt(0)<<24)}var d=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,17);do{e=g(a);var h=f(a,4);if(null!=b&&b(d-8,h,e))break;value=f(a,e);f(a,4);if("IEND"==h)break}while(e)}};mxUtils.extend(EditorUi,mxEventSource); +EditorUi.parsePng=function(a,b,e){function f(n,t){var l=d;d+=t;return n.substring(l,d)}function g(n){n=f(n,4);return n.charCodeAt(3)+(n.charCodeAt(2)<<8)+(n.charCodeAt(1)<<16)+(n.charCodeAt(0)<<24)}var d=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,17);do{e=g(a);var h=f(a,4);if(null!=b&&b(d-8,h,e))break;value=f(a,e);f(a,4);if("IEND"==h)break}while(e)}};mxUtils.extend(EditorUi,mxEventSource); EditorUi.prototype.splitSize=mxClient.IS_TOUCH||mxClient.IS_POINTER?12:8;EditorUi.prototype.menubarHeight=30;EditorUi.prototype.formatEnabled=!0;EditorUi.prototype.formatWidth=240;EditorUi.prototype.toolbarHeight=38;EditorUi.prototype.footerHeight=28;EditorUi.prototype.defaultSidebarWidth=Math.min(screen.width/2,"large"!=urlParams["sidebar-entries"]?212:240);EditorUi.prototype.hsplitPosition=screen.width<=Editor.smallScreenWidth?0:EditorUi.prototype.defaultSidebarWidth; EditorUi.prototype.allowAnimation=!0;EditorUi.prototype.lightboxMaxFitScale=2;EditorUi.prototype.lightboxVerticalDivider=4;EditorUi.prototype.hsplitClickEnabled=!1;EditorUi.prototype.updateDefaultStyle=!1;EditorUi.prototype.spaceDown=!1;EditorUi.prototype.shiftDown=!1; EditorUi.prototype.init=function(){var a=this.editor.graph;if(!a.standalone){"0"!=urlParams["shape-picker"]&&this.installShapePicker();mxEvent.addListener(a.container,"scroll",mxUtils.bind(this,function(){a.tooltipHandler.hide();null!=a.connectionHandler&&null!=a.connectionHandler.constraintHandler&&a.connectionHandler.constraintHandler.reset()}));a.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){a.tooltipHandler.hide();var f=a.getRubberband();null!=f&&f.cancel()}));mxEvent.addListener(a.container, @@ -2183,29 +2183,29 @@ EditorUi.prototype.init=function(){var a=this.editor.graph;if(!a.standalone){"0" arguments);e.updateActionStates()};a.showLinkDialog=mxUtils.bind(e,e.showLinkDialog);a.editLink=e.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()}};EditorUi.prototype.clearSelectionState=function(){this.selectionState=null};EditorUi.prototype.getSelectionState=function(){null==this.selectionState&&(this.selectionState=this.createSelectionState());return this.selectionState}; EditorUi.prototype.createSelectionState=function(){for(var a=this.editor.graph,b=a.getSelectionCells(),e=this.initSelectionState(),f=!0,g=0;gh.length?35*h.length:140;z.className="geToolbarContainer geSidebarContainer geShapePicker";z.setAttribute("title",mxResources.get("sidebarTooltip"));z.style.left=a+"px";z.style.top=b+"px";z.style.width=g+"px";mxClient.IS_POINTER&&(z.style.touchAction="none");n||mxUtils.setPrefixedStyle(z.style,"transform","translate(-22px,-22px)");null!=x.background&&x.background!=mxConstants.NONE&&(z.style.backgroundColor= x.background);x.container.appendChild(z);g=mxUtils.bind(this,function(E){var D=document.createElement("a");D.className="geItem";D.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:1px";z.appendChild(D);null!=G&&"1"!=urlParams.sketch?this.sidebar.graph.pasteStyle(G,[E]):C.insertHandler([E],""!=E.value&&"1"!=urlParams.sketch,this.sidebar.graph.model);var I=E.geometry;x.model.isEdge(E)&&(I=I.getTerminalPoint(!1),I=new mxRectangle(0, 0,I.x,I.y));null!=I&&D.appendChild(this.sidebar.createVertexTemplateFromCells([E],I.width,I.height,"",!0,!1,null,!1,mxUtils.bind(this,function(M){if(!mxEvent.isShiftDown(M)||null==e&&x.isSelectionEmpty()){var L=x.cloneCell(E);if(null!=f)f(L);else{var N=t([L]);x.model.isEdge(L)?L.geometry.translate(N.x,N.y):(L.geometry.x=N.x,L.geometry.y=N.y);x.model.beginUpdate();try{x.addCell(L),x.model.isVertex(L)&&x.isAutoSizeCell(L)&&x.updateCellSize(L)}finally{x.model.endUpdate()}x.setSelectionCell(L);x.scrollCellToVisible(L); -r&&x.startEditing(L);null!=C.hoverIcons&&C.hoverIcons.update(x.view.getState(L))}}else L=x.getEditableCells(null!=e?[e]:x.getSelectionCells()),x.updateShapes(E,L);null!=d&&d(M);mxEvent.consume(M)}),25,25,null,null,e))});for(m=0;m<(n?Math.min(h.length,4):h.length);m++)g(h[m]);h=z.offsetTop+z.clientHeight-(x.container.scrollTop+x.container.offsetHeight);0e&&(b=a.substring(e,f+21).replace(/>/g,">").replace(/</g,"<").replace(/\\"/g,'"').replace(/\n/g,""))}}catch(g){}return b}; EditorUi.prototype.readGraphModelFromClipboard=function(a){this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(b){null!=b?a(b):this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(e){if(null!=e){var f=decodeURIComponent(e);this.isCompatibleString(f)&&(e=f)}a(e)}),"text")}),"html")}; EditorUi.prototype.readGraphModelFromClipboardWithType=function(a,b){navigator.clipboard.read().then(mxUtils.bind(this,function(e){if(null!=e&&0':"")+Graph.sanitizeHtml(a);asHtml=!0;a=b.getElementsByTagName("style");if(null!=a)for(;0this.maxTooltipWidth||f>this.maxTooltipHeight)?Math.round(100*Math.min(this.maxTooltipWidth/e,this.maxTooltipHeight/f))/100:1;this.tooltip.style.display="block";this.graph2.labelsVisible=null==d||d;d= -mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;m=mxUtils.getCurrentStyle(this.tooltip);this.graph2.shapeBackgroundColor=m.backgroundColor;null!=b&&(b=this.graph2.cloneCells(b),this.editorUi.insertHandler(b,null,this.graph2.model,r?null:this.editorUi.editor.graph.defaultVertexStyle,r?null:this.editorUi.editor.graph.defaultEdgeStyle,r,!0),this.graph2.addCells(b));mxClient.NO_FO=d;r=this.graph2.getGraphBounds();n&&0e||r.height>f)?(e=Math.round(100*Math.min(e/ +this.tooltipCloseImage=t,mxEvent.addListener(t,"click",mxUtils.bind(this,function(x){this.hideTooltip();mxEvent.consume(x)})));this.tooltipCloseImage.style.display=l?"":"none";this.graph2.model.clear();this.graph2.view.setTranslate(this.tooltipBorder,this.tooltipBorder);this.graph2.view.scale=!n&&(e>this.maxTooltipWidth||f>this.maxTooltipHeight)?Math.round(100*Math.min(this.maxTooltipWidth/e,this.maxTooltipHeight/f))/100:1;this.tooltip.style.display="block";this.graph2.labelsVisible=null==d||d;d= +mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;l=mxUtils.getCurrentStyle(this.tooltip);this.graph2.shapeBackgroundColor=l.backgroundColor;null!=b&&(b=this.graph2.cloneCells(b),this.editorUi.insertHandler(b,null,this.graph2.model,r?null:this.editorUi.editor.graph.defaultVertexStyle,r?null:this.editorUi.editor.graph.defaultEdgeStyle,r,!0),this.graph2.addCells(b));mxClient.NO_FO=d;r=this.graph2.getGraphBounds();n&&0e||r.height>f)?(e=Math.round(100*Math.min(e/ r.width,f/r.height))/100,mxClient.NO_FO?(this.graph2.view.setScale(Math.round(100*Math.min(this.maxTooltipWidth/r.width,this.maxTooltipHeight/r.height))/100),r=this.graph2.getGraphBounds()):(this.graph2.view.getDrawPane().ownerSVGElement.style.transform="scale("+e+")",this.graph2.view.getDrawPane().ownerSVGElement.style.transformOrigin="0 0",r.width*=e,r.height*=e)):mxClient.NO_FO||(this.graph2.view.getDrawPane().ownerSVGElement.style.transform="");e=r.width+2*this.tooltipBorder+4;f=r.height+2*this.tooltipBorder; this.tooltip.style.overflow="visible";this.tooltip.style.width=e+"px";n=e;this.tooltipTitles&&null!=g&&0e&&(this.tooltip.style.width=n+"px");this.tooltip.style.height=f+"px";g=-Math.round(r.x- @@ -2396,16 +2396,16 @@ Sidebar.prototype.addEntries=function(a){for(var b=0;bt||Math.abs(r.y-mxEvent.getClientY(C))>t))&&null!=this.dragElement&&"none"==this.dragElement.style.display&&(this.dragElement.style.display="",mxUtils.setOpacity(a,100*z));h.apply(this,arguments)};b.mouseUp=function(C){try{mxEvent.isPopupTrigger(C)||null!=this.currentGraph||null==this.dragElement||"none"!=this.dragElement.style.display||(null!=f&&f(C),mxEvent.isConsumed(C)||x.itemClicked(e,b,C,a)),n.apply(b,arguments),mxUtils.setOpacity(a,100*z),r=null, x.currentElt=a}catch(G){b.reset(),x.editorUi.handleError(G)}}};Sidebar.prototype.createVertexTemplateEntry=function(a,b,e,f,g,d,h,n){null!=n&&null!=g&&(n+=" "+g);n=null!=n&&0mxUtils.indexOf(g,z)){C=this.getTagsForStencil(x,z);var D=null!=n?n[z]:null;null!=D&&C.push(D);r.push(this.createVertexTemplateEntry("shape="+x+z.toLowerCase()+f,Math.round(G*h),Math.round(E*h),"",z.replace(/_/g," "),null,null,this.filterTags(C.join(" "))))}}), +Sidebar.prototype.addStencilPalette=function(a,b,e,f,g,d,h,n,t,l){h=null!=h?h:1;if(this.addStencilsToIndex){var r=[];if(null!=t)for(l=0;lmxUtils.indexOf(g,z)){C=this.getTagsForStencil(x,z);var D=null!=n?n[z]:null;null!=D&&C.push(D);r.push(this.createVertexTemplateEntry("shape="+x+z.toLowerCase()+f,Math.round(G*h),Math.round(E*h),"",z.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==f&&(f="");null!=d&&d.call(this,x);if(null!=t)for(var z=0;zmxUtils.indexOf(g,G))&&x.appendChild(this.createVertexTemplate("shape="+C+G.toLowerCase()+f,Math.round(D*h),Math.round(I*h),"",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(e){for(var f=0;fR||Math.abs(h.y-V.getGraphY())>R){var ha=null;mxEvent.isControlDown(V.getEvent())||mxEvent.isShiftDown(V.getEvent())|| -(ha=this.selectionCellsHandler.getHandler(J.cell));if(null!=ha&&null!=ha.bends&&0R||Math.abs(h.y-V.getGraphY())>R){var ha=null;mxEvent.isControlDown(V.getEvent())||mxEvent.isShiftDown(V.getEvent())|| +(ha=this.selectionCellsHandler.getHandler(J.cell));if(null!=ha&&null!=ha.bends&&0mxUtils.indexOf(t,r)})),this.updateCellStyles(h,n))};Graph.prototype.updateCellStyles=function(h,n){this.model.beginUpdate();try{for(var t=0;tmxUtils.indexOf(t,r)})),this.updateCellStyles(h,n))};Graph.prototype.updateCellStyles=function(h,n){this.model.beginUpdate();try{for(var t=0;tz?"a":"p",tt:12>z?"am":"pm",T:12>z?"A":"P",TT:12>z?"AM":"PM",Z:e?"UTC":(String(a).match(g)||[""]).pop().replace(d,""),o:(0g&&"%"==b.charAt(match.index-1))h=d.substring(1);else{var n=d.substring(1,d.length-1);if("id"==n)h=a.id;else if("width"==n&&this.model.isVertex(a)){var t=this.getCellGeometry(a);null!=t&&(h=t.width)}else if("height"==n&&this.model.isVertex(a))t=this.getCellGeometry(a),null!=t&&(h=t.height);else if("length"== n&&this.model.isEdge(a))t=this.view.getState(a),null!=t&&(h=Math.round(t.length/this.view.scale));else if(0>n.indexOf("{"))for(t=a;null==h&&null!=t;)null!=t.value&&"object"==typeof t.value&&(Graph.translateDiagram&&null!=Graph.diagramLanguage&&(h=t.getAttribute(n+"_"+Graph.diagramLanguage)),null==h&&(h=t.hasAttribute(n)?null!=t.getAttribute(n)?t.getAttribute(n):"":null)),t=this.model.getParent(t);null==h&&(h=this.getGlobalVariable(n));null==h&&null!=e&&(h=e[n])}f.push(b.substring(g,match.index)+(null!= h?h:d));g=match.index+d.length}}f.push(b.substring(g))}return f.join("")};Graph.prototype.restoreSelection=function(a){if(null!=a&&0n[0].indexOf("=")&&(n=n.slice(1));this.model.setStyle(b[d],n.join(";"))}this.setCellStyles(mxConstants.STYLE_PERIMETER,null,[b[d]]);this.setCellStyles("points",null,[b[d]]);this.pasteStyle(g,[b[d]],null,!0)}else g=this.copyStyle(b[d]),this.model.setStyle(b[d],f),this.pasteStyle(g,[b[d]]);"1"==mxUtils.getValue(this.getCellStyle(b[d],!1),"composite","0")&&this.removeChildCells(b[d])}}finally{this.model.endUpdate()}}; Graph.prototype.selectCellsForConnectVertex=function(a,b,e){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),this.scrollCellToVisible(a[1]),null!=e&&(mxEvent.isTouchEvent(b)?e.update(e.getState(this.view.getState(a[1]))):e.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.insertEdgeBeforeCell=function(a,b){for(var e=b;null!=e.parent&&null!=e.geometry&&e.geometry.relative&&e.parent!=a.parent;)e=this.model.getParent(e);null!=e&&null!=e.parent&&e.parent==a.parent&&(b=e.parent.getIndex(e),this.model.add(e.parent,a,b))}; -Graph.prototype.connectVertex=function(a,b,e,f,g,d,h,n){d=d?d:!1;if(a.geometry.relative&&this.model.isEdge(a.parent))return[];for(;a.geometry.relative&&this.model.isVertex(a.parent);)a=a.parent;var t=this.isCloneConnectSource(a),m=t?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-=e):b== -mxConstants.DIRECTION_SOUTH?(r.x+=m.geometry.width/2,r.y+=m.geometry.height+e):(r.x=b==mxConstants.DIRECTION_WEST?r.x-e:r.x+(m.geometry.width+e),r.y+=m.geometry.height/2);var x=this.view.getState(this.model.getParent(a));e=this.view.scale;var z=this.view.translate;m=z.x*e;z=z.y*e;null!=x&&this.model.isVertex(x.cell)&&(m=x.x,z=x.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(r.x+=a.parent.geometry.x,r.y+=a.parent.geometry.y);d=d?null:(new mxRectangle(m+r.x*e,z+r.y*e)).grow(40*e);d=null!=d? +Graph.prototype.connectVertex=function(a,b,e,f,g,d,h,n){d=d?d:!1;if(a.geometry.relative&&this.model.isEdge(a.parent))return[];for(;a.geometry.relative&&this.model.isVertex(a.parent);)a=a.parent;var t=this.isCloneConnectSource(a),l=t?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(l.geometry.x,l.geometry.y);b==mxConstants.DIRECTION_NORTH?(r.x+=l.geometry.width/2,r.y-=e):b== +mxConstants.DIRECTION_SOUTH?(r.x+=l.geometry.width/2,r.y+=l.geometry.height+e):(r.x=b==mxConstants.DIRECTION_WEST?r.x-e:r.x+(l.geometry.width+e),r.y+=l.geometry.height/2);var x=this.view.getState(this.model.getParent(a));e=this.view.scale;var z=this.view.translate;l=z.x*e;z=z.y*e;null!=x&&this.model.isVertex(x.cell)&&(l=x.x,z=x.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(r.x+=a.parent.geometry.x,r.y+=a.parent.geometry.y);d=d?null:(new mxRectangle(l+r.x*e,z+r.y*e)).grow(40*e);d=null!=d? this.getCells(0,0,0,0,null,null,d,null,!0):null;x=this.view.getState(a);var C=null,G=null;if(null!=d){d=d.reverse();for(var E=0;EG*G&&0G*G&&(Z=new mxP 1.3,r.curveTo(Z.x-N.y*L,Z.y+N.x*L,W.x-N.y*L,W.y+N.x*L,W.x,W.y)):(r.moveTo(W.x,W.y),D=!0),L=[W],Z=!0))}else N=null;Z||(L.push(X),I=X)}this.addPoints(r,L,z,C,!1,null,D);r.stroke()}};var h=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(r,x,z,C){return null!=x&&"centerPerimeter"==x.style[mxConstants.STYLE_PERIMETER]?new mxPoint(x.getCenterX(),x.getCenterY()):h.apply(this,arguments)};var n=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint= function(r,x,z,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,z,C),E=this.graph.isOrthogonal(r),D=mxUtils.toRadians(Number(x.style[mxConstants.STYLE_ROTATION]||"0")),I=new mxPoint(x.getCenterX(),x.getCenterY());if(0!=D){var M=Math.cos(-D),L=Math.sin(-D);G=mxUtils.getRotatedPoint(G,M,L,I)}M=parseFloat(r.style[mxConstants.STYLE_PERIMETER_SPACING]||0);M+=parseFloat(r.style[C?mxConstants.STYLE_SOURCE_PERIMETER_SPACING: mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);G=this.getPerimeterPoint(x,G,0==D&&E,M);0!=D&&(M=Math.cos(D),L=Math.sin(D),G=mxUtils.getRotatedPoint(G,M,L,I));r.setAbsoluteTerminalPoint(this.snapToAnchorPoint(r,x,z,C,G),C)}};mxGraphView.prototype.snapToAnchorPoint=function(r,x,z,C,G){if(null!=x&&null!=r){r=this.graph.getAllConnectionConstraints(x);C=z=null;if(null!=r)for(var E=0;E=d.getStatus()&&eval.call(window,d.getText())}}catch(h){null!=window.console&&console.log("error in getStencil:",a,e,b,g,h)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);b=mxStencilRegistry.stencils[a]}}return b}; mxStencilRegistry.getBasenameForStencil=function(a){var b=null;if(null!=a&&"string"===typeof a&&(a=a.split("."),0=ia.x&&this.model.remove(wa[A]);var Ma=this.model.getTerminal(B,!1); if(null!=Ma){var Ka=this.getCurrentCellStyle(Ma);null!=Ka&&"1"==Ka.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[u]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[u]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[B]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[B]))}}finally{this.model.endUpdate()}return B};var x=Graph.prototype.selectCell;Graph.prototype.selectCell=function(u,A,B){if(A||B)x.apply(this,arguments);else{var F=this.getSelectionCell(),K=null,O=[],U=mxUtils.bind(this, function(ea){if(null!=this.view.getState(ea)&&(this.model.isVertex(ea)||this.model.isEdge(ea)))if(O.push(ea),ea==F)K=O.length-1;else if(u&&null==F&&0K||!u&&0q&&c++;k++}qb.lengthq&&c++;k++}qb.lengthz;z++)(function(fa){mxEvent.addListener(m[fa],"click",function(){b(m[fa],""==m[fa].style.backgroundImage)})})(z);var Xa=mxUtils.bind(this,function(fa,Aa,Ia){g=e.getSelectionState();fa=mxUtils.getValue(g.style,mxConstants.STYLE_FONTSTYLE,0);b(m[0],(fa&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);b(m[1], -(fa&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC);b(m[2],(fa&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);t.firstChild.nodeValue=mxUtils.getValue(g.style,mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont);b(r,"0"==mxUtils.getValue(g.style,mxConstants.STYLE_HORIZONTAL,"1"));if(Ia||document.activeElement!=J)fa=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize)),J.value=isNaN(fa)?"":fa+" pt";fa=mxUtils.getValue(g.style,mxConstants.STYLE_ALIGN, +"10px";h.appendChild(d);a.appendChild(h);var Ha=h}else a.appendChild(h),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(n);for(z=0;3>z;z++)(function(fa){mxEvent.addListener(l[fa],"click",function(){b(l[fa],""==l[fa].style.backgroundImage)})})(z);var Xa=mxUtils.bind(this,function(fa,Aa,Ia){g=e.getSelectionState();fa=mxUtils.getValue(g.style,mxConstants.STYLE_FONTSTYLE,0);b(l[0],(fa&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);b(l[1], +(fa&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC);b(l[2],(fa&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);t.firstChild.nodeValue=mxUtils.getValue(g.style,mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont);b(r,"0"==mxUtils.getValue(g.style,mxConstants.STYLE_HORIZONTAL,"1"));if(Ia||document.activeElement!=J)fa=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize)),J.value=isNaN(fa)?"":fa+" pt";fa=mxUtils.getValue(g.style,mxConstants.STYLE_ALIGN, mxConstants.ALIGN_CENTER);b(C,fa==mxConstants.ALIGN_LEFT);b(G,fa==mxConstants.ALIGN_CENTER);b(E,fa==mxConstants.ALIGN_RIGHT);fa=mxUtils.getValue(g.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);b(I,fa==mxConstants.ALIGN_TOP);b(M,fa==mxConstants.ALIGN_MIDDLE);b(L,fa==mxConstants.ALIGN_BOTTOM);fa=mxUtils.getValue(g.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);Aa=mxUtils.getValue(g.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);la.value= fa==mxConstants.ALIGN_LEFT&&Aa==mxConstants.ALIGN_TOP?"topLeft":fa==mxConstants.ALIGN_CENTER&&Aa==mxConstants.ALIGN_TOP?"top":fa==mxConstants.ALIGN_RIGHT&&Aa==mxConstants.ALIGN_TOP?"topRight":fa==mxConstants.ALIGN_LEFT&&Aa==mxConstants.ALIGN_BOTTOM?"bottomLeft":fa==mxConstants.ALIGN_CENTER&&Aa==mxConstants.ALIGN_BOTTOM?"bottom":fa==mxConstants.ALIGN_RIGHT&&Aa==mxConstants.ALIGN_BOTTOM?"bottomRight":fa==mxConstants.ALIGN_LEFT?"left":fa==mxConstants.ALIGN_RIGHT?"right":"center";fa=mxUtils.getValue(g.style, mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);fa==mxConstants.TEXT_DIRECTION_RTL?ma.value="rightToLeft":fa==mxConstants.TEXT_DIRECTION_LTR?ma.value="leftToRight":fa==mxConstants.TEXT_DIRECTION_AUTO&&(ma.value="automatic");if(Ia||document.activeElement!=xa)fa=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING,2)),xa.value=isNaN(fa)?"":fa+" pt";if(Ia||document.activeElement!=ua)fa=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING_TOP,0)),ua.value=isNaN(fa)? @@ -3189,7 +3189,7 @@ mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);fa==mxConst 999," pt");var eb=this.installInputHandler(ua,mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");var hb=this.installInputHandler(za,mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");var bb=this.installInputHandler(La,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");var $a=this.installInputHandler(Qa,mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(J,Xa);this.addKeyHandler(xa,Xa);this.addKeyHandler(ua,Xa);this.addKeyHandler(za,Xa);this.addKeyHandler(La,Xa);this.addKeyHandler(Qa,Xa); f.getModel().addListener(mxEvent.CHANGE,Xa);this.listeners.push({destroy:function(){f.getModel().removeListener(Xa)}});Xa();if(f.cellEditor.isContentEditing()){var jb=!1;d=function(){jb||(jb=!0,window.setTimeout(function(){var fa=f.getSelectedEditingElement();if(null!=fa){var Aa=function(ea,ca){if(null!=ea&&null!=ca){if(ea==ca)return!0;if(ea.length>ca.length+1)return ea.substring(ea.length-ca.length-1,ea.length)=="-"+ca}return!1},Ia=function(ea){if(null!=f.getParentByName(fa,ea,f.cellEditor.textarea))return!0; for(var ca=fa;null!=ca&&1==ca.childNodes.length;)if(ca=ca.childNodes[0],ca.nodeName==ea)return!0;return!1},Ba=function(ea){ea=null!=ea?ea.fontSize:null;return null!=ea&&"px"==ea.substring(ea.length-2)?parseFloat(ea):mxConstants.DEFAULT_FONTSIZE},Va=function(ea,ca,ia){return null!=ia.style&&null!=ca?(ca=ca.lineHeight,null!=ia.style.lineHeight&&"%"==ia.style.lineHeight.substring(ia.style.lineHeight.length-1)?parseInt(ia.style.lineHeight)/100:"px"==ca.substring(ca.length-2)?parseFloat(ca)/ea:parseInt(ca)): -""},u=mxUtils.getCurrentStyle(fa),A=Ba(u),B=Va(A,u,fa),F=fa.getElementsByTagName("*");if(0W&&(z=function(ka){mxEvent.addListener(ka,"mouseenter",function(){ka.style.opacity="1"});mxEvent.addListener(ka,"mouseleave",function(){ka.style.opacity="0.5"})},m=document.createElement("div"), -m.className="geAdaptiveAsset",m.style.position="absolute",m.style.left="0px",m.style.top="0px",m.style.bottom="0px",m.style.width="24px",m.style.height="24px",m.style.margin="0px",m.style.cursor="pointer",m.style.opacity="0.5",m.style.backgroundRepeat="no-repeat",m.style.backgroundPosition="center center",m.style.backgroundSize="24px 24px",m.style.backgroundImage="url("+Editor.previousImage+")",r=m.cloneNode(!1),r.style.backgroundImage="url("+Editor.nextImage+")",r.style.left="",r.style.right="2px", -d.appendChild(m),d.appendChild(r),mxEvent.addListener(m,"click",mxUtils.bind(this,function(){ba(mxUtils.mod(this.format.currentStylePage-1,W))})),mxEvent.addListener(r,"click",mxUtils.bind(this,function(){ba(mxUtils.mod(this.format.currentStylePage+1,W))})),z(m),z(r))}else Z();return a}; +la.style.marginRight="3px";la.style.borderRadius="3px";la.style.cursor="pointer";la.style.background="transparent";la.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(ka,ra){mxEvent.addListener(la,"click",mxUtils.bind(this,function(){ba(ka)}))})(z,la);d.appendChild(la);X.push(la)}a.appendChild(d);Z();15>W&&(z=function(ka){mxEvent.addListener(ka,"mouseenter",function(){ka.style.opacity="1"});mxEvent.addListener(ka,"mouseleave",function(){ka.style.opacity="0.5"})},l=document.createElement("div"), +l.className="geAdaptiveAsset",l.style.position="absolute",l.style.left="0px",l.style.top="0px",l.style.bottom="0px",l.style.width="24px",l.style.height="24px",l.style.margin="0px",l.style.cursor="pointer",l.style.opacity="0.5",l.style.backgroundRepeat="no-repeat",l.style.backgroundPosition="center center",l.style.backgroundSize="24px 24px",l.style.backgroundImage="url("+Editor.previousImage+")",r=l.cloneNode(!1),r.style.backgroundImage="url("+Editor.nextImage+")",r.style.left="",r.style.right="2px", +d.appendChild(l),d.appendChild(r),mxEvent.addListener(l,"click",mxUtils.bind(this,function(){ba(mxUtils.mod(this.format.currentStylePage-1,W))})),mxEvent.addListener(r,"click",mxUtils.bind(this,function(){ba(mxUtils.mod(this.format.currentStylePage+1,W))})),z(l),z(r))}else Z();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,e){BaseFormatPanel.call(this,a,b,e);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,e=b.editor.graph;a.appendChild(this.createTitle(mxResources.get("view")));this.addGridOption(a);DiagramFormatPanel.showPageView&&a.appendChild(this.createOption(mxResources.get("pageView"),function(){return e.pageVisible},function(d){b.actions.get("pageView").funct()},{install:function(d){this.listener=function(){d(e.pageVisible)};b.addListener("pageViewChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}})); @@ -3312,255 +3312,255 @@ function(){d(Editor.sketchMode)};b.addListener("sketchModeChanged",this.listener DiagramFormatPanel.prototype.addOptions=function(a){var b=this.editorUi,e=b.editor.graph;a.appendChild(this.createTitle(mxResources.get("options")));e.isEnabled()&&(a.appendChild(this.createOption(mxResources.get("connectionArrows"),function(){return e.connectionArrowsEnabled},function(f){b.actions.get("connectionArrows").funct()},{install:function(f){this.listener=function(){f(e.connectionArrowsEnabled)};b.addListener("connectionArrowsChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}})), a.appendChild(this.createOption(mxResources.get("connectionPoints"),function(){return e.connectionHandler.isEnabled()},function(f){b.actions.get("connectionPoints").funct()},{install:function(f){this.listener=function(){f(e.connectionHandler.isEnabled())};b.addListener("connectionPointsChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}})),a.appendChild(this.createOption(mxResources.get("guides"),function(){return e.graphHandler.guidesEnabled},function(f){b.actions.get("guides").funct()}, {install:function(f){this.listener=function(){f(e.graphHandler.guidesEnabled)};b.addListener("guidesEnabledChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}})));return a}; -DiagramFormatPanel.prototype.addGridOption=function(a){function b(t){var m=e.isFloatUnit()?parseFloat(d.value):parseInt(d.value);m=e.fromUnit(Math.max(e.inUnit(1),isNaN(m)?e.inUnit(10):m));m!=g.getGridSize()&&(mxGraph.prototype.gridSize=m,g.setGridSize(m));d.value=e.inUnit(m)+" "+e.getUnit();mxEvent.consume(t)}var e=this,f=this.editorUi,g=f.editor.graph,d=document.createElement("input");d.style.position="absolute";d.style.textAlign="right";d.style.width="48px";d.style.marginTop="-2px";d.style.height= +DiagramFormatPanel.prototype.addGridOption=function(a){function b(t){var l=e.isFloatUnit()?parseFloat(d.value):parseInt(d.value);l=e.fromUnit(Math.max(e.inUnit(1),isNaN(l)?e.inUnit(10):l));l!=g.getGridSize()&&(mxGraph.prototype.gridSize=l,g.setGridSize(l));d.value=e.inUnit(l)+" "+e.getUnit();mxEvent.consume(t)}var e=this,f=this.editorUi,g=f.editor.graph,d=document.createElement("input");d.style.position="absolute";d.style.textAlign="right";d.style.width="48px";d.style.marginTop="-2px";d.style.height= "21px";d.style.borderWidth="1px";d.style.borderStyle="solid";d.style.boxSizing="border-box";d.value=this.inUnit(g.getGridSize())+" "+this.getUnit();var h=this.createStepper(d,b,this.getUnitStep(),null,null,null,this.isFloatUnit());d.style.display=g.isGridEnabled()?"":"none";h.style.display=d.style.display;mxEvent.addListener(d,"keydown",function(t){13==t.keyCode?(g.container.focus(),mxEvent.consume(t)):27==t.keyCode&&(d.value=g.getGridSize(),g.container.focus(),mxEvent.consume(t))});mxEvent.addListener(d, -"blur",b);mxEvent.addListener(d,"change",b);d.style.right="78px";h.style.marginTop=mxClient.IS_MAC&&mxClient.IS_GC?"-16px":mxClient.IS_WIN?"-18px":"-17px";h.style.right="66px";var n=this.createColorOption(mxResources.get("grid"),function(){var t=g.view.gridColor;return g.isGridEnabled()?t:null},function(t){var m=g.isGridEnabled();t==mxConstants.NONE?g.setGridEnabled(!1):(g.setGridEnabled(!0),f.setGridColor(t));d.style.display=g.isGridEnabled()?"":"none";h.style.display=d.style.display;m!=g.isGridEnabled()&& +"blur",b);mxEvent.addListener(d,"change",b);d.style.right="78px";h.style.marginTop=mxClient.IS_MAC&&mxClient.IS_GC?"-16px":mxClient.IS_WIN?"-18px":"-17px";h.style.right="66px";var n=this.createColorOption(mxResources.get("grid"),function(){var t=g.view.gridColor;return g.isGridEnabled()?t:null},function(t){var l=g.isGridEnabled();t==mxConstants.NONE?g.setGridEnabled(!1):(g.setGridEnabled(!0),f.setGridColor(t));d.style.display=g.isGridEnabled()?"":"none";h.style.display=d.style.display;l!=g.isGridEnabled()&& (g.defaultGridEnabled=g.isGridEnabled(),f.fireEvent(new mxEventObject("gridEnabledChanged")))},Editor.isDarkMode()?g.view.defaultDarkGridColor:g.view.defaultGridColor,{install:function(t){this.listener=function(){t(g.isGridEnabled()?g.view.gridColor:null)};f.addListener("gridColorChanged",this.listener);f.addListener("gridEnabledChanged",this.listener)},destroy:function(){f.removeListener(this.listener)}});n.style.padding="6px 0 0 0";n.appendChild(d);n.appendChild(h);a.appendChild(n)}; DiagramFormatPanel.prototype.addDocumentProperties=function(a){a.appendChild(this.createTitle(mxResources.get("options")));return a}; DiagramFormatPanel.prototype.addPaperSize=function(a){var b=this.editorUi,e=b.editor.graph;a.appendChild(this.createTitle(mxResources.get("paperSize")));var f=PageSetupDialog.addPageFormatPanel(a,"formatpanel",e.pageFormat,function(d){if(null==e.pageFormat||e.pageFormat.width!=d.width||e.pageFormat.height!=d.height)d=new ChangePageSetup(b,null,null,d),d.ignoreColor=!0,d.ignoreImage=!0,e.model.execute(d)});this.addKeyHandler(f.widthInput,function(){f.set(e.pageFormat)});this.addKeyHandler(f.heightInput, function(){f.set(e.pageFormat)});var g=function(){f.set(e.pageFormat)};b.addListener("pageFormatChanged",g);this.listeners.push({destroy:function(){b.removeListener(g)}});e.getModel().addListener(mxEvent.CHANGE,g);this.listeners.push({destroy:function(){e.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,k,q){mxShape.call(this);this.line=c;this.stroke=k;this.strokewidth=null!=q?q:1;this.updateBoundsFromLine()}function b(){mxSwimlane.call(this)}function e(){mxSwimlane.call(this)}function f(){mxCylinder.call(this)}function g(){mxConnector.call(this)}function d(){mxCylinder.call(this)}function h(){mxActor.call(this)}function n(){mxCylinder.call(this)}function t(){mxCylinder.call(this)}function m(){mxCylinder.call(this)}function r(){mxCylinder.call(this)}function x(){mxShape.call(this)} -function z(){mxShape.call(this)}function C(c,k,q,l){mxShape.call(this);this.bounds=c;this.fill=k;this.stroke=q;this.strokewidth=null!=l?l:1}function G(){mxActor.call(this)}function E(){mxCylinder.call(this)}function D(){mxCylinder.call(this)}function I(){mxActor.call(this)}function M(){mxActor.call(this)}function L(){mxActor.call(this)}function N(){mxActor.call(this)}function Y(){mxActor.call(this)}function W(){mxActor.call(this)}function X(){mxActor.call(this)}function Z(c,k){this.canvas=c;this.canvas.setLineJoin("round"); +DiagramFormatPanel.prototype.destroy=function(){BaseFormatPanel.prototype.destroy.apply(this,arguments);this.gridEnabledListener&&(this.editorUi.removeListener(this.gridEnabledListener),this.gridEnabledListener=null)};(function(){function a(c,k,q){mxShape.call(this);this.line=c;this.stroke=k;this.strokewidth=null!=q?q:1;this.updateBoundsFromLine()}function b(){mxSwimlane.call(this)}function e(){mxSwimlane.call(this)}function f(){mxCylinder.call(this)}function g(){mxConnector.call(this)}function d(){mxCylinder.call(this)}function h(){mxActor.call(this)}function n(){mxCylinder.call(this)}function t(){mxCylinder.call(this)}function l(){mxCylinder.call(this)}function r(){mxCylinder.call(this)}function x(){mxShape.call(this)} +function z(){mxShape.call(this)}function C(c,k,q,m){mxShape.call(this);this.bounds=c;this.fill=k;this.stroke=q;this.strokewidth=null!=m?m:1}function G(){mxActor.call(this)}function E(){mxCylinder.call(this)}function D(){mxCylinder.call(this)}function I(){mxActor.call(this)}function M(){mxActor.call(this)}function L(){mxActor.call(this)}function N(){mxActor.call(this)}function Y(){mxActor.call(this)}function W(){mxActor.call(this)}function X(){mxActor.call(this)}function Z(c,k){this.canvas=c;this.canvas.setLineJoin("round"); this.canvas.setLineCap("round");this.defaultVariation=k;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,Z.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,Z.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,Z.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,Z.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this, Z.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,Z.prototype.arcTo)}function ba(){mxRectangleShape.call(this)}function la(){mxRectangleShape.call(this)}function ka(){mxActor.call(this)}function ra(){mxActor.call(this)}function ma(){mxActor.call(this)}function Q(){mxRectangleShape.call(this)}function V(){mxRectangleShape.call(this)}function J(){mxCylinder.call(this)}function R(){mxShape.call(this)}function ha(){mxShape.call(this)}function P(){mxEllipse.call(this)} function T(){mxShape.call(this)}function ja(){mxShape.call(this)}function pa(){mxRectangleShape.call(this)}function da(){mxShape.call(this)}function ua(){mxShape.call(this)}function xa(){mxShape.call(this)}function Qa(){mxShape.call(this)}function La(){mxShape.call(this)}function za(){mxCylinder.call(this)}function Ja(){mxCylinder.call(this)}function ta(){mxRectangleShape.call(this)}function Ha(){mxDoubleEllipse.call(this)}function Xa(){mxDoubleEllipse.call(this)}function gb(){mxArrowConnector.call(this); this.spacing=0}function eb(){mxArrowConnector.call(this);this.spacing=0}function hb(){mxActor.call(this)}function bb(){mxRectangleShape.call(this)}function $a(){mxActor.call(this)}function jb(){mxActor.call(this)}function fa(){mxActor.call(this)}function Aa(){mxActor.call(this)}function Ia(){mxActor.call(this)}function Ba(){mxActor.call(this)}function Va(){mxActor.call(this)}function u(){mxActor.call(this)}function A(){mxActor.call(this)}function B(){mxActor.call(this)}function F(){mxEllipse.call(this)} -function K(){mxEllipse.call(this)}function O(){mxEllipse.call(this)}function U(){mxRhombus.call(this)}function ea(){mxEllipse.call(this)}function ca(){mxEllipse.call(this)}function ia(){mxEllipse.call(this)}function wa(){mxEllipse.call(this)}function Ma(){mxActor.call(this)}function Ka(){mxActor.call(this)}function Pa(){mxActor.call(this)}function va(c,k,q,l){mxShape.call(this);this.bounds=c;this.fill=k;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 Na(){mxConnector.call(this)}function Ea(c,k,q,l,p,v,w,H,y,aa){w+=y;var S=l.clone();l.x-=p*(2*w+y);l.y-=v*(2*w+y);p*=w+y;v*=w+y;return function(){c.ellipse(S.x-p-w,S.y-v-w,2*w,2*w);aa?c.fillAndStroke():c.stroke()}}mxUtils.extend(a,mxShape);a.prototype.updateBoundsFromLine=function(){var c=null;if(null!=this.line)for(var k=0;kw?"#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!=H&&(c.setFillAlpha(Math.abs(H)),c.setFillColor(0>H?"#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())};f.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", -f);var Ya=Math.tan(mxUtils.toRadians(30)),Sa=(.5-Ya)/2;mxCellRenderer.registerShape("isoRectangle",h);mxUtils.extend(g,mxConnector);g.prototype.paintEdgeShape=function(c,k){var q=this.createMarker(c,k,!0),l=this.createMarker(c,k,!1);c.setDashed(!1);mxPolyline.prototype.paintEdgeShape.apply(this,arguments);null!=this.isDashed&&c.setDashed(this.isDashed,null!=this.style?1==mxUtils.getValue(this.style,mxConstants.STYLE_FIX_DASH,!1):!1);c.setShadow(!1);c.setStrokeColor(this.fill);mxPolyline.prototype.paintEdgeShape.apply(this, -arguments);c.setStrokeColor(this.stroke);c.setFillColor(this.stroke);c.setDashed(!1);null!=q&&q();null!=l&&l()};mxCellRenderer.registerShape("wire",g);mxUtils.extend(d,mxCylinder);d.prototype.size=6;d.prototype.paintVertexShape=function(c,k,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(k+.5*(l-v),q+.5*(p-v),v,v);c.fill();c.setFillColor(mxConstants.NONE);c.rect(k,q,l,p);c.fill()};mxCellRenderer.registerShape("waypoint", -d);mxUtils.extend(h,mxActor);h.prototype.size=20;h.prototype.redrawPath=function(c,k,q,l,p){k=Math.min(l,p/Ya);c.translate((l-k)/2,(p-k)/2+k/4);c.moveTo(0,.25*k);c.lineTo(.5*k,k*Sa);c.lineTo(k,.25*k);c.lineTo(.5*k,(.5-Sa)*k);c.lineTo(0,.25*k);c.close();c.end()};mxCellRenderer.registerShape("isoRectangle",h);mxUtils.extend(n,mxCylinder);n.prototype.size=20;n.prototype.redrawPath=function(c,k,q,l,p,v){k=Math.min(l,p/(.5+Ya));v?(c.moveTo(0,.25*k),c.lineTo(.5*k,(.5-Sa)*k),c.lineTo(k,.25*k),c.moveTo(.5* -k,(.5-Sa)*k),c.lineTo(.5*k,(1-Sa)*k)):(c.translate((l-k)/2,(p-k)/2),c.moveTo(0,.25*k),c.lineTo(.5*k,k*Sa),c.lineTo(k,.25*k),c.lineTo(k,.75*k),c.lineTo(.5*k,(1-Sa)*k),c.lineTo(0,.75*k),c.close());c.end()};mxCellRenderer.registerShape("isoCube",n);mxUtils.extend(t,mxCylinder);t.prototype.redrawPath=function(c,k,q,l,p,v){k=Math.min(p/2,Math.round(p/8)+this.strokewidth-1);if(v&&null!=this.fill||!v&&null==this.fill)c.moveTo(0,k),c.curveTo(0,2*k,l,2*k,l,k),v||(c.stroke(),c.begin()),c.translate(0,k/2),c.moveTo(0, -k),c.curveTo(0,2*k,l,2*k,l,k),v||(c.stroke(),c.begin()),c.translate(0,k/2),c.moveTo(0,k),c.curveTo(0,2*k,l,2*k,l,k),v||(c.stroke(),c.begin()),c.translate(0,-k);v||(c.moveTo(0,k),c.curveTo(0,-k/3,l,-k/3,l,k),c.lineTo(l,p-k),c.curveTo(l,p+k/3,0,p+k/3,0,p-k),c.close())};t.prototype.getLabelMargins=function(c){return new mxRectangle(0,2.5*Math.min(c.height/2,Math.round(c.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",t);mxUtils.extend(m,mxCylinder);m.prototype.size=30;m.prototype.darkOpacity= -0;m.prototype.paintVertexShape=function(c,k,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))));c.translate(k,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",m);mxUtils.extend(r,m);mxCellRenderer.registerShape("note2",r);r.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var k=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(c.height*this.scale,k*this.scale),0,0)}return null};mxUtils.extend(x,mxShape);x.prototype.isoAngle= -15;x.prototype.paintVertexShape=function(c,k,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(k,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", -x);mxUtils.extend(z,mxShape);z.prototype.size=15;z.prototype.paintVertexShape=function(c,k,q,l,p){var v=Math.max(0,Math.min(.5*p,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.translate(k,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",z);mxUtils.extend(C,mxCylinder);C.prototype.size=15;C.prototype.paintVertexShape=function(c,k,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(k,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",C);mxUtils.extend(G,mxActor);G.prototype.redrawPath=function(c,k,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",G);mxUtils.extend(E, -mxCylinder);E.prototype.tabWidth=60;E.prototype.tabHeight=20;E.prototype.tabPosition="right";E.prototype.arcSize=.1;E.prototype.paintVertexShape=function(c,k,q,l,p){c.translate(k,q);k=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),H=mxUtils.getValue(this.style, -"absoluteArcSize",!1),y=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));H||(y*=Math.min(l,p));y=Math.min(y,.5*l,.5*(p-q));k=Math.max(k,y);k=Math.min(l-y,k);w||(y=0);c.begin();"left"==v?(c.moveTo(Math.max(y,0),q),c.lineTo(Math.max(y,0),0),c.lineTo(k,0),c.lineTo(k,q)):(c.moveTo(l-k,q),c.lineTo(l-k,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",E);E.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var k=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;k=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-k));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-k)):new mxRectangle(Math.min(c.width,c.width-q),0,v,Math.min(c.height,c.height-k))}return new mxRectangle(0,Math.min(c.height,k),0,0)}return null};mxUtils.extend(D,mxCylinder);D.prototype.arcSize=.1;D.prototype.paintVertexShape=function(c,k,q,l,p){c.translate(k,q);var v=mxUtils.getValue(this.style,"rounded",!1),w=mxUtils.getValue(this.style,"absoluteArcSize",!1);k=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));q=mxUtils.getValue(this.style,"umlStateConnection", -null);w||(k*=Math.min(l,p));k=Math.min(k,.5*l,.5*p);v||(k=0);v=0;null!=q&&(v=10);c.begin();c.moveTo(v,k);c.arcTo(k,k,0,0,1,v+k,0);c.lineTo(l-k,0);c.arcTo(k,k,0,0,1,l,k);c.lineTo(l,p-k);c.arcTo(k,k,0,0,1,l-k,p);c.lineTo(v+k,p);c.arcTo(k,k,0,0,1,v,p-k);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), +function K(){mxEllipse.call(this)}function O(){mxEllipse.call(this)}function U(){mxRhombus.call(this)}function ea(){mxEllipse.call(this)}function ca(){mxEllipse.call(this)}function ia(){mxEllipse.call(this)}function wa(){mxEllipse.call(this)}function Ma(){mxActor.call(this)}function Ka(){mxActor.call(this)}function Pa(){mxActor.call(this)}function va(c,k,q,m){mxShape.call(this);this.bounds=c;this.fill=k;this.stroke=q;this.strokewidth=null!=m?m:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize= +!0;this.indent=2;this.rectOutline="single"}function Na(){mxConnector.call(this)}function Ea(c,k,q,m,p,v,w,H,y,aa){w+=y;var S=m.clone();m.x-=p*(2*w+y);m.y-=v*(2*w+y);p*=w+y;v*=w+y;return function(){c.ellipse(S.x-p-w,S.y-v-w,2*w,2*w);aa?c.fillAndStroke():c.stroke()}}mxUtils.extend(a,mxShape);a.prototype.updateBoundsFromLine=function(){var c=null;if(null!=this.line)for(var k=0;kw?"#FFFFFF":"#000000"),c.begin(),c.moveTo(0,0),c.lineTo(m-v,0),c.lineTo(m,v),c.lineTo(v, +v),c.close(),c.fill()),0!=H&&(c.setFillAlpha(Math.abs(H)),c.setFillColor(0>H?"#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(m,v),c.end(),c.stroke())};f.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", +f);var Ya=Math.tan(mxUtils.toRadians(30)),Sa=(.5-Ya)/2;mxCellRenderer.registerShape("isoRectangle",h);mxUtils.extend(g,mxConnector);g.prototype.paintEdgeShape=function(c,k){var q=this.createMarker(c,k,!0),m=this.createMarker(c,k,!1);c.setDashed(!1);mxPolyline.prototype.paintEdgeShape.apply(this,arguments);null!=this.isDashed&&c.setDashed(this.isDashed,null!=this.style?1==mxUtils.getValue(this.style,mxConstants.STYLE_FIX_DASH,!1):!1);c.setShadow(!1);c.setStrokeColor(this.fill);mxPolyline.prototype.paintEdgeShape.apply(this, +arguments);c.setStrokeColor(this.stroke);c.setFillColor(this.stroke);c.setDashed(!1);null!=q&&q();null!=m&&m()};mxCellRenderer.registerShape("wire",g);mxUtils.extend(d,mxCylinder);d.prototype.size=6;d.prototype.paintVertexShape=function(c,k,q,m,p){c.setFillColor(this.stroke);var v=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;c.ellipse(k+.5*(m-v),q+.5*(p-v),v,v);c.fill();c.setFillColor(mxConstants.NONE);c.rect(k,q,m,p);c.fill()};mxCellRenderer.registerShape("waypoint", +d);mxUtils.extend(h,mxActor);h.prototype.size=20;h.prototype.redrawPath=function(c,k,q,m,p){k=Math.min(m,p/Ya);c.translate((m-k)/2,(p-k)/2+k/4);c.moveTo(0,.25*k);c.lineTo(.5*k,k*Sa);c.lineTo(k,.25*k);c.lineTo(.5*k,(.5-Sa)*k);c.lineTo(0,.25*k);c.close();c.end()};mxCellRenderer.registerShape("isoRectangle",h);mxUtils.extend(n,mxCylinder);n.prototype.size=20;n.prototype.redrawPath=function(c,k,q,m,p,v){k=Math.min(m,p/(.5+Ya));v?(c.moveTo(0,.25*k),c.lineTo(.5*k,(.5-Sa)*k),c.lineTo(k,.25*k),c.moveTo(.5* +k,(.5-Sa)*k),c.lineTo(.5*k,(1-Sa)*k)):(c.translate((m-k)/2,(p-k)/2),c.moveTo(0,.25*k),c.lineTo(.5*k,k*Sa),c.lineTo(k,.25*k),c.lineTo(k,.75*k),c.lineTo(.5*k,(1-Sa)*k),c.lineTo(0,.75*k),c.close());c.end()};mxCellRenderer.registerShape("isoCube",n);mxUtils.extend(t,mxCylinder);t.prototype.redrawPath=function(c,k,q,m,p,v){k=Math.min(p/2,Math.round(p/8)+this.strokewidth-1);if(v&&null!=this.fill||!v&&null==this.fill)c.moveTo(0,k),c.curveTo(0,2*k,m,2*k,m,k),v||(c.stroke(),c.begin()),c.translate(0,k/2),c.moveTo(0, +k),c.curveTo(0,2*k,m,2*k,m,k),v||(c.stroke(),c.begin()),c.translate(0,k/2),c.moveTo(0,k),c.curveTo(0,2*k,m,2*k,m,k),v||(c.stroke(),c.begin()),c.translate(0,-k);v||(c.moveTo(0,k),c.curveTo(0,-k/3,m,-k/3,m,k),c.lineTo(m,p-k),c.curveTo(m,p+k/3,0,p+k/3,0,p-k),c.close())};t.prototype.getLabelMargins=function(c){return new mxRectangle(0,2.5*Math.min(c.height/2,Math.round(c.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",t);mxUtils.extend(l,mxCylinder);l.prototype.size=30;l.prototype.darkOpacity= +0;l.prototype.paintVertexShape=function(c,k,q,m,p){var v=Math.max(0,Math.min(m,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))));c.translate(k,q);c.begin();c.moveTo(0,0);c.lineTo(m-v,0);c.lineTo(m,v);c.lineTo(m,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(m-v,0),c.lineTo(m-v,v),c.lineTo(m,v),c.close(),c.fill()),c.begin(),c.moveTo(m-v,0),c.lineTo(m-v,v),c.lineTo(m,v),c.end(),c.stroke())};mxCellRenderer.registerShape("note",l);mxUtils.extend(r,l);mxCellRenderer.registerShape("note2",r);r.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var k=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(c.height*this.scale,k*this.scale),0,0)}return null};mxUtils.extend(x,mxShape);x.prototype.isoAngle= +15;x.prototype.paintVertexShape=function(c,k,q,m,p){var v=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200;v=Math.min(m*Math.tan(v),.5*p);c.translate(k,q);c.begin();c.moveTo(.5*m,0);c.lineTo(m,v);c.lineTo(m,p-v);c.lineTo(.5*m,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*m,2*v);c.lineTo(m,v);c.moveTo(.5*m,2*v);c.lineTo(.5*m,p);c.stroke()};mxCellRenderer.registerShape("isoCube2", +x);mxUtils.extend(z,mxShape);z.prototype.size=15;z.prototype.paintVertexShape=function(c,k,q,m,p){var v=Math.max(0,Math.min(.5*p,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.translate(k,q);0==v?(c.rect(0,0,m,p),c.fillAndStroke()):(c.begin(),c.moveTo(0,v),c.arcTo(.5*m,v,0,0,1,.5*m,0),c.arcTo(.5*m,v,0,0,1,m,v),c.lineTo(m,p-v),c.arcTo(.5*m,v,0,0,1,.5*m,p),c.arcTo(.5*m,v,0,0,1,0,p-v),c.close(),c.fillAndStroke(),c.setShadow(!1),c.begin(),c.moveTo(m,v),c.arcTo(.5*m,v,0,0,1,.5*m,2*v),c.arcTo(.5* +m,v,0,0,1,0,v),c.stroke())};mxCellRenderer.registerShape("cylinder2",z);mxUtils.extend(C,mxCylinder);C.prototype.size=15;C.prototype.paintVertexShape=function(c,k,q,m,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(k,q);0==v?(c.rect(0,0,m,p),c.fillAndStroke()):(c.begin(),w?(c.moveTo(0,v),c.arcTo(.5*m,v,0,0,1,.5*m,0),c.arcTo(.5*m,v,0,0,1,m,v)):(c.moveTo(0,0),c.arcTo(.5*m,v,0,0,0,.5*m,v),c.arcTo(.5*m,v, +0,0,0,m,0)),c.lineTo(m,p-v),c.arcTo(.5*m,v,0,0,1,.5*m,p),c.arcTo(.5*m,v,0,0,1,0,p-v),c.close(),c.fillAndStroke(),c.setShadow(!1),w&&(c.begin(),c.moveTo(m,v),c.arcTo(.5*m,v,0,0,1,.5*m,2*v),c.arcTo(.5*m,v,0,0,1,0,v),c.stroke()))};mxCellRenderer.registerShape("cylinder3",C);mxUtils.extend(G,mxActor);G.prototype.redrawPath=function(c,k,q,m,p){c.moveTo(0,0);c.quadTo(m/2,.5*p,m,0);c.quadTo(.5*m,p/2,m,p);c.quadTo(m/2,.5*p,0,p);c.quadTo(.5*m,p/2,0,0);c.end()};mxCellRenderer.registerShape("switch",G);mxUtils.extend(E, +mxCylinder);E.prototype.tabWidth=60;E.prototype.tabHeight=20;E.prototype.tabPosition="right";E.prototype.arcSize=.1;E.prototype.paintVertexShape=function(c,k,q,m,p){c.translate(k,q);k=Math.max(0,Math.min(m,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),H=mxUtils.getValue(this.style, +"absoluteArcSize",!1),y=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));H||(y*=Math.min(m,p));y=Math.min(y,.5*m,.5*(p-q));k=Math.max(k,y);k=Math.min(m-y,k);w||(y=0);c.begin();"left"==v?(c.moveTo(Math.max(y,0),q),c.lineTo(Math.max(y,0),0),c.lineTo(k,0),c.lineTo(k,q)):(c.moveTo(m-k,q),c.lineTo(m-k,0),c.lineTo(m-Math.max(y,0),0),c.lineTo(m-Math.max(y,0),q));w?(c.moveTo(0,y+q),c.arcTo(y,y,0,0,1,y,q),c.lineTo(m-y,q),c.arcTo(y,y,0,0,1,m,y+q),c.lineTo(m,p-y),c.arcTo(y,y,0,0,1,m-y,p),c.lineTo(y, +p),c.arcTo(y,y,0,0,1,0,p-y)):(c.moveTo(0,q),c.lineTo(m,q),c.lineTo(m,p),c.lineTo(0,p));c.close();c.fillAndStroke();c.setShadow(!1);"triangle"==mxUtils.getValue(this.style,"folderSymbol",null)&&(c.begin(),c.moveTo(m-30,q+20),c.lineTo(m-20,q+10),c.lineTo(m-10,q+20),c.close(),c.stroke())};mxCellRenderer.registerShape("folder",E);E.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var k=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;k=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;var m=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-k));m||(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-k)):new mxRectangle(Math.min(c.width,c.width-q),0,v,Math.min(c.height,c.height-k))}return new mxRectangle(0,Math.min(c.height,k),0,0)}return null};mxUtils.extend(D,mxCylinder);D.prototype.arcSize=.1;D.prototype.paintVertexShape=function(c,k,q,m,p){c.translate(k,q);var v=mxUtils.getValue(this.style,"rounded",!1),w=mxUtils.getValue(this.style,"absoluteArcSize",!1);k=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));q=mxUtils.getValue(this.style,"umlStateConnection", +null);w||(k*=Math.min(m,p));k=Math.min(k,.5*m,.5*p);v||(k=0);v=0;null!=q&&(v=10);c.begin();c.moveTo(v,k);c.arcTo(k,k,0,0,1,v+k,0);c.lineTo(m-k,0);c.arcTo(k,k,0,0,1,m,k);c.lineTo(m,p-k);c.arcTo(k,k,0,0,1,m-k,p);c.lineTo(v+k,p);c.arcTo(k,k,0,0,1,v,p-k);c.close();c.fillAndStroke();c.setShadow(!1);"collapseState"==mxUtils.getValue(this.style,"umlStateSymbol",null)&&(c.roundrect(m-40,p-20,10,10,3,3),c.stroke(),c.roundrect(m-20,p-20,10,10,3,3),c.stroke(),c.begin(),c.moveTo(m-30,p-15),c.lineTo(m-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())};D.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",D);mxUtils.extend(I, -mxActor);I.prototype.size=30;I.prototype.isRoundable=function(){return!0};I.prototype.redrawPath=function(c,k,q,l,p){k=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(k,0),new mxPoint(l,0),new mxPoint(l,p),new mxPoint(0,p),new mxPoint(0,k)],this.isRounded,q,!0);c.end()};mxCellRenderer.registerShape("card",I);mxUtils.extend(M,mxActor);M.prototype.size= -.4;M.prototype.redrawPath=function(c,k,q,l,p){k=p*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.moveTo(0,k/2);c.quadTo(l/4,1.4*k,l/2,k/2);c.quadTo(3*l/4,k*(1-1.4),l,k/2);c.lineTo(l,p-k/2);c.quadTo(3*l/4,p-1.4*k,l/2,p-k/2);c.quadTo(l/4,p-k*(1-1.4),0,p-k/2);c.lineTo(0,k/2);c.close();c.end()};M.prototype.getLabelBounds=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var k=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 k*=l,new mxRectangle(c.x,c.y+k,q,l-2*k);k*=q;return new mxRectangle(c.x+k,c.y,q-2*k,l)}return c};mxCellRenderer.registerShape("tape",M);mxUtils.extend(L,mxActor);L.prototype.size=.3;L.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};L.prototype.redrawPath=function(c,k,q, -l,p){k=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-k/2);c.quadTo(3*l/4,p-1.4*k,l/2,p-k/2);c.quadTo(l/4,p-k*(1-1.4),0,p-k/2);c.lineTo(0,k/2);c.close();c.end()};mxCellRenderer.registerShape("document",L);var Ua=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(c,k,q,l){var p=mxUtils.getValue(this.style,"size");return null!=p?l*Math.max(0,Math.min(1,p)):Ua.apply(this,arguments)};mxCylinder.prototype.getLabelMargins= +mxActor);I.prototype.size=30;I.prototype.isRoundable=function(){return!0};I.prototype.redrawPath=function(c,k,q,m,p){k=Math.max(0,Math.min(m,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(k,0),new mxPoint(m,0),new mxPoint(m,p),new mxPoint(0,p),new mxPoint(0,k)],this.isRounded,q,!0);c.end()};mxCellRenderer.registerShape("card",I);mxUtils.extend(M,mxActor);M.prototype.size= +.4;M.prototype.redrawPath=function(c,k,q,m,p){k=p*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.moveTo(0,k/2);c.quadTo(m/4,1.4*k,m/2,k/2);c.quadTo(3*m/4,k*(1-1.4),m,k/2);c.lineTo(m,p-k/2);c.quadTo(3*m/4,p-1.4*k,m/2,p-k/2);c.quadTo(m/4,p-k*(1-1.4),0,p-k/2);c.lineTo(0,k/2);c.close();c.end()};M.prototype.getLabelBounds=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var k=mxUtils.getValue(this.style,"size",this.size),q=c.width,m=c.height;if(null==this.direction|| +this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return k*=m,new mxRectangle(c.x,c.y+k,q,m-2*k);k*=q;return new mxRectangle(c.x+k,c.y,q-2*k,m)}return c};mxCellRenderer.registerShape("tape",M);mxUtils.extend(L,mxActor);L.prototype.size=.3;L.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};L.prototype.redrawPath=function(c,k,q, +m,p){k=p*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.moveTo(0,0);c.lineTo(m,0);c.lineTo(m,p-k/2);c.quadTo(3*m/4,p-1.4*k,m/2,p-k/2);c.quadTo(m/4,p-k*(1-1.4),0,p-k/2);c.lineTo(0,k/2);c.close();c.end()};mxCellRenderer.registerShape("document",L);var Ua=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(c,k,q,m){var p=mxUtils.getValue(this.style,"size");return null!=p?m*Math.max(0,Math.min(1,p)):Ua.apply(this,arguments)};mxCylinder.prototype.getLabelMargins= function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var k=2*mxUtils.getValue(this.style,"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*this.scale,c.height*k),0,0)}return null};C.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var k=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(k/=2);return new mxRectangle(0,Math.min(c.height*this.scale,2*k*this.scale),0,Math.max(0,.3*k*this.scale))}return null};E.prototype.getLabelMargins= -function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var k=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;k=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-k));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-k)):new mxRectangle(Math.min(c.width,c.width-q),0,v,Math.min(c.height,c.height-k))}return new mxRectangle(0,Math.min(c.height,k),0,0)}return null};D.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};r.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var k=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(c.height*this.scale,k*this.scale),0,Math.max(0,k*this.scale))}return null};mxUtils.extend(N,mxActor);N.prototype.size=.2;N.prototype.fixedSize=20;N.prototype.isRoundable=function(){return!0};N.prototype.redrawPath=function(c,k,q,l,p){k="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(k,0),new mxPoint(l,0),new mxPoint(l-k,p)],this.isRounded,q,!0);c.end()};mxCellRenderer.registerShape("parallelogram",N);mxUtils.extend(Y,mxActor);Y.prototype.size=.2;Y.prototype.fixedSize=20;Y.prototype.isRoundable=function(){return!0};Y.prototype.redrawPath=function(c, -k,q,l,p){k="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(k,0),new mxPoint(l-k,0),new mxPoint(l,p)],this.isRounded,q,!0)};mxCellRenderer.registerShape("trapezoid",Y);mxUtils.extend(W,mxActor); -W.prototype.size=.5;W.prototype.redrawPath=function(c,k,q,l,p){c.setFillColor(null);k=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(k,0),new mxPoint(k,p/2),new mxPoint(0,p/2),new mxPoint(k,p/2),new mxPoint(k,p),new mxPoint(l,p)],this.isRounded,q,!1);c.end()};mxCellRenderer.registerShape("curlyBracket",W);mxUtils.extend(X,mxActor); -X.prototype.redrawPath=function(c,k,q,l,p){c.setStrokeWidth(1);c.setFillColor(this.stroke);k=l/5;c.rect(0,0,k,p);c.fillAndStroke();c.rect(2*k,0,k,p);c.fillAndStroke();c.rect(4*k,0,k,p);c.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",X);Z.prototype.moveTo=function(c,k){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=k;this.firstX=c;this.firstY=k};Z.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)};Z.prototype.quadTo=function(c,k,q,l){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=q;this.lastY=l};Z.prototype.curveTo=function(c,k,q,l,p,v){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=p;this.lastY=v};Z.prototype.arcTo=function(c,k,q,l,p,v,w){this.originalArcTo.apply(this.canvas,arguments);this.lastX=v;this.lastY=w};Z.prototype.lineTo=function(c,k){if(null!=this.lastX&&null!=this.lastY){var q=function(S){return"number"=== -typeof S?S?0>S?-1:1:S===S?0:NaN:NaN},l=Math.abs(c-this.lastX),p=Math.abs(k-this.lastY),v=Math.sqrt(l*l+p*p);if(2>v){this.originalLineTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=k;return}var w=Math.round(v/10),H=this.defaultVariation;5>w&&(w=5,H/=3);var y=q(c-this.lastX)*l/w;q=q(k-this.lastY)*p/w;l/=v;p/=v;for(v=0;vS?-1:1:S===S?0:NaN:NaN},m=Math.abs(c-this.lastX),p=Math.abs(k-this.lastY),v=Math.sqrt(m*m+p*p);if(2>v){this.originalLineTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=k;return}var w=Math.round(v/10),H=this.defaultVariation;5>w&&(w=5,H/=3);var y=q(c-this.lastX)*m/w;q=q(k-this.lastY)*p/w;m/=v;p/=v;for(v=0;vw+y?c.y=q.y:c.x=q.x);return mxUtils.getPerimeterPoint(H,c,q)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(c,k,q,l){var p="0"!=mxUtils.getValue(k.style,"fixedSize","0"),v=p?Y.prototype.fixedSize:Y.prototype.size;null!=k&&(v=mxUtils.getValue(k.style,"size",v));p&&(v*=k.view.scale); +y,H),new mxPoint(w+y-p,H+aa),new mxPoint(w,H+aa),new mxPoint(w+p,H)]);aa=c.getCenterX();c=c.getCenterY();c=new mxPoint(aa,c);m&&(q.xw+y?c.y=q.y:c.x=q.x);return mxUtils.getPerimeterPoint(H,c,q)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(c,k,q,m){var p="0"!=mxUtils.getValue(k.style,"fixedSize","0"),v=p?Y.prototype.fixedSize:Y.prototype.size;null!=k&&(v=mxUtils.getValue(k.style,"size",v));p&&(v*=k.view.scale); var w=c.x,H=c.y,y=c.width,aa=c.height;k=null!=k?mxUtils.getValue(k.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;k==mxConstants.DIRECTION_EAST?(p=p?Math.max(0,Math.min(.5*y,v)):y*Math.max(0,Math.min(1,v)),H=[new mxPoint(w+p,H),new mxPoint(w+y-p,H),new mxPoint(w+y,H+aa),new mxPoint(w,H+aa),new mxPoint(w+p,H)]):k==mxConstants.DIRECTION_WEST?(p=p?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),H=[new mxPoint(w,H),new mxPoint(w+y,H),new mxPoint(w+y-p,H+ -aa),new mxPoint(w+p,H+aa),new mxPoint(w,H)]):k==mxConstants.DIRECTION_NORTH?(p=p?Math.max(0,Math.min(aa,v)):aa*Math.max(0,Math.min(1,v)),H=[new mxPoint(w,H+p),new mxPoint(w+y,H),new mxPoint(w+y,H+aa),new mxPoint(w,H+aa-p),new mxPoint(w,H+p)]):(p=p?Math.max(0,Math.min(aa,v)):aa*Math.max(0,Math.min(1,v)),H=[new mxPoint(w,H),new mxPoint(w+y,H+p),new mxPoint(w+y,H+aa-p),new mxPoint(w,H+aa),new mxPoint(w,H)]);aa=c.getCenterX();c=c.getCenterY();c=new mxPoint(aa,c);l&&(q.xw+y?c.y=q.y:c.x=q.x);return mxUtils.getPerimeterPoint(H, -c,q)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(c,k,q,l){var p="0"!=mxUtils.getValue(k.style,"fixedSize","0"),v=p?ra.prototype.fixedSize:ra.prototype.size;null!=k&&(v=mxUtils.getValue(k.style,"size",v));p&&(v*=k.view.scale);var w=c.x,H=c.y,y=c.width,aa=c.height,S=c.getCenterX();c=c.getCenterY();k=null!=k?mxUtils.getValue(k.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;k==mxConstants.DIRECTION_EAST? +aa),new mxPoint(w+p,H+aa),new mxPoint(w,H)]):k==mxConstants.DIRECTION_NORTH?(p=p?Math.max(0,Math.min(aa,v)):aa*Math.max(0,Math.min(1,v)),H=[new mxPoint(w,H+p),new mxPoint(w+y,H),new mxPoint(w+y,H+aa),new mxPoint(w,H+aa-p),new mxPoint(w,H+p)]):(p=p?Math.max(0,Math.min(aa,v)):aa*Math.max(0,Math.min(1,v)),H=[new mxPoint(w,H),new mxPoint(w+y,H+p),new mxPoint(w+y,H+aa-p),new mxPoint(w,H+aa),new mxPoint(w,H)]);aa=c.getCenterX();c=c.getCenterY();c=new mxPoint(aa,c);m&&(q.xw+y?c.y=q.y:c.x=q.x);return mxUtils.getPerimeterPoint(H, +c,q)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(c,k,q,m){var p="0"!=mxUtils.getValue(k.style,"fixedSize","0"),v=p?ra.prototype.fixedSize:ra.prototype.size;null!=k&&(v=mxUtils.getValue(k.style,"size",v));p&&(v*=k.view.scale);var w=c.x,H=c.y,y=c.width,aa=c.height,S=c.getCenterX();c=c.getCenterY();k=null!=k?mxUtils.getValue(k.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;k==mxConstants.DIRECTION_EAST? (p=p?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),H=[new mxPoint(w,H),new mxPoint(w+y-p,H),new mxPoint(w+y,c),new mxPoint(w+y-p,H+aa),new mxPoint(w,H+aa),new mxPoint(w+p,c),new mxPoint(w,H)]):k==mxConstants.DIRECTION_WEST?(p=p?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),H=[new mxPoint(w+p,H),new mxPoint(w+y,H),new mxPoint(w+y-p,c),new mxPoint(w+y,H+aa),new mxPoint(w+p,H+aa),new mxPoint(w,c),new mxPoint(w+p,H)]):k==mxConstants.DIRECTION_NORTH?(p=p?Math.max(0,Math.min(aa,v)):aa*Math.max(0, -Math.min(1,v)),H=[new mxPoint(w,H+p),new mxPoint(S,H),new mxPoint(w+y,H+p),new mxPoint(w+y,H+aa),new mxPoint(S,H+aa-p),new mxPoint(w,H+aa),new mxPoint(w,H+p)]):(p=p?Math.max(0,Math.min(aa,v)):aa*Math.max(0,Math.min(1,v)),H=[new mxPoint(w,H),new mxPoint(S,H+p),new mxPoint(w+y,H),new mxPoint(w+y,H+aa-p),new mxPoint(S,H+aa),new mxPoint(w,H+aa-p),new mxPoint(w,H)]);S=new mxPoint(S,c);l&&(q.xw+y?S.y=q.y:S.x=q.x);return mxUtils.getPerimeterPoint(H,S,q)};mxStyleRegistry.putValue("stepPerimeter", -mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(c,k,q,l){var p="0"!=mxUtils.getValue(k.style,"fixedSize","0"),v=p?ma.prototype.fixedSize:ma.prototype.size;null!=k&&(v=mxUtils.getValue(k.style,"size",v));p&&(v*=k.view.scale);var w=c.x,H=c.y,y=c.width,aa=c.height,S=c.getCenterX();c=c.getCenterY();k=null!=k?mxUtils.getValue(k.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;k==mxConstants.DIRECTION_NORTH||k==mxConstants.DIRECTION_SOUTH?(p=p?Math.max(0, -Math.min(aa,v)):aa*Math.max(0,Math.min(1,v)),H=[new mxPoint(S,H),new mxPoint(w+y,H+p),new mxPoint(w+y,H+aa-p),new mxPoint(S,H+aa),new mxPoint(w,H+aa-p),new mxPoint(w,H+p),new mxPoint(S,H)]):(p=p?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),H=[new mxPoint(w+p,H),new mxPoint(w+y-p,H),new mxPoint(w+y,c),new mxPoint(w+y-p,H+aa),new mxPoint(w+p,H+aa),new mxPoint(w,c),new mxPoint(w+p,H)]);S=new mxPoint(S,c);l&&(q.xw+y?S.y=q.y:S.x=q.x);return mxUtils.getPerimeterPoint(H,S,q)};mxStyleRegistry.putValue("hexagonPerimeter2", -mxPerimeter.HexagonPerimeter2);mxUtils.extend(ua,mxShape);ua.prototype.size=10;ua.prototype.paintBackground=function(c,k,q,l,p){var v=parseFloat(mxUtils.getValue(this.style,"size",this.size));c.translate(k,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(xa,mxShape);xa.prototype.size=10;xa.prototype.inset=2;xa.prototype.paintBackground=function(c,k,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(k,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",xa);mxUtils.extend(Qa,mxShape);Qa.prototype.paintBackground=function(c,k,q,l,p){c.translate(k,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",Qa);mxUtils.extend(La,mxShape);La.prototype.inset=2;La.prototype.paintBackground=function(c,k,q,l,p){var v=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;c.translate(k,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",La);mxUtils.extend(za,mxCylinder);za.prototype.jettyWidth= -20;za.prototype.jettyHeight=10;za.prototype.redrawPath=function(c,k,q,l,p,v){var w=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));k=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));q=w/2;w=q+w/2;var H=Math.min(k,p-k),y=Math.min(H+2*k,p-k);v?(c.moveTo(q,H),c.lineTo(w,H),c.lineTo(w,H+k),c.lineTo(q,H+k),c.moveTo(q,y),c.lineTo(w,y),c.lineTo(w,y+k),c.lineTo(q,y+k)):(c.moveTo(q,0),c.lineTo(l,0),c.lineTo(l,p),c.lineTo(q,p),c.lineTo(q,y+k),c.lineTo(0,y+k),c.lineTo(0, -y),c.lineTo(q,y),c.lineTo(q,H+k),c.lineTo(0,H+k),c.lineTo(0,H),c.lineTo(q,H),c.close());c.end()};mxCellRenderer.registerShape("module",za);mxUtils.extend(Ja,mxCylinder);Ja.prototype.jettyWidth=32;Ja.prototype.jettyHeight=12;Ja.prototype.redrawPath=function(c,k,q,l,p,v){var w=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));k=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));q=w/2;w=q+w/2;var H=.3*p-k/2,y=.7*p-k/2;v?(c.moveTo(q,H),c.lineTo(w,H),c.lineTo(w, -H+k),c.lineTo(q,H+k),c.moveTo(q,y),c.lineTo(w,y),c.lineTo(w,y+k),c.lineTo(q,y+k)):(c.moveTo(q,0),c.lineTo(l,0),c.lineTo(l,p),c.lineTo(q,p),c.lineTo(q,y+k),c.lineTo(0,y+k),c.lineTo(0,y),c.lineTo(q,y),c.lineTo(q,H+k),c.lineTo(0,H+k),c.lineTo(0,H),c.lineTo(q,H),c.close());c.end()};mxCellRenderer.registerShape("component",Ja);mxUtils.extend(ta,mxRectangleShape);ta.prototype.paintForeground=function(c,k,q,l,p){var v=l/2,w=p/2,H=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/ -2;c.begin();this.addPoints(c,[new mxPoint(k+v,q),new mxPoint(k+l,q+w),new mxPoint(k+v,q+p),new mxPoint(k,q+w)],this.isRounded,H,!0);c.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",ta);mxUtils.extend(Ha,mxDoubleEllipse);Ha.prototype.outerStroke=!0;Ha.prototype.paintVertexShape=function(c,k,q,l,p){var v=Math.min(4,Math.min(l/5,p/5));0w+y?S.y=q.y:S.x=q.x);return mxUtils.getPerimeterPoint(H,S,q)};mxStyleRegistry.putValue("stepPerimeter", +mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(c,k,q,m){var p="0"!=mxUtils.getValue(k.style,"fixedSize","0"),v=p?ma.prototype.fixedSize:ma.prototype.size;null!=k&&(v=mxUtils.getValue(k.style,"size",v));p&&(v*=k.view.scale);var w=c.x,H=c.y,y=c.width,aa=c.height,S=c.getCenterX();c=c.getCenterY();k=null!=k?mxUtils.getValue(k.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;k==mxConstants.DIRECTION_NORTH||k==mxConstants.DIRECTION_SOUTH?(p=p?Math.max(0, +Math.min(aa,v)):aa*Math.max(0,Math.min(1,v)),H=[new mxPoint(S,H),new mxPoint(w+y,H+p),new mxPoint(w+y,H+aa-p),new mxPoint(S,H+aa),new mxPoint(w,H+aa-p),new mxPoint(w,H+p),new mxPoint(S,H)]):(p=p?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),H=[new mxPoint(w+p,H),new mxPoint(w+y-p,H),new mxPoint(w+y,c),new mxPoint(w+y-p,H+aa),new mxPoint(w+p,H+aa),new mxPoint(w,c),new mxPoint(w+p,H)]);S=new mxPoint(S,c);m&&(q.xw+y?S.y=q.y:S.x=q.x);return mxUtils.getPerimeterPoint(H,S,q)};mxStyleRegistry.putValue("hexagonPerimeter2", +mxPerimeter.HexagonPerimeter2);mxUtils.extend(ua,mxShape);ua.prototype.size=10;ua.prototype.paintBackground=function(c,k,q,m,p){var v=parseFloat(mxUtils.getValue(this.style,"size",this.size));c.translate(k,q);c.ellipse((m-v)/2,0,v,v);c.fillAndStroke();c.begin();c.moveTo(m/2,v);c.lineTo(m/2,p);c.end();c.stroke()};mxCellRenderer.registerShape("lollipop",ua);mxUtils.extend(xa,mxShape);xa.prototype.size=10;xa.prototype.inset=2;xa.prototype.paintBackground=function(c,k,q,m,p){var v=parseFloat(mxUtils.getValue(this.style, +"size",this.size)),w=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;c.translate(k,q);c.begin();c.moveTo(m/2,v+w);c.lineTo(m/2,p);c.end();c.stroke();c.begin();c.moveTo((m-v)/2-w,v/2);c.quadTo((m-v)/2-w,v+w,m/2,v+w);c.quadTo((m+v)/2+w,v+w,(m+v)/2+w,v/2);c.end();c.stroke()};mxCellRenderer.registerShape("requires",xa);mxUtils.extend(Qa,mxShape);Qa.prototype.paintBackground=function(c,k,q,m,p){c.translate(k,q);c.begin();c.moveTo(0,0);c.quadTo(m,0,m,p/2);c.quadTo(m,p,0,p); +c.end();c.stroke()};mxCellRenderer.registerShape("requiredInterface",Qa);mxUtils.extend(La,mxShape);La.prototype.inset=2;La.prototype.paintBackground=function(c,k,q,m,p){var v=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;c.translate(k,q);c.ellipse(0,v,m-2*v,p-2*v);c.fillAndStroke();c.begin();c.moveTo(m/2,0);c.quadTo(m,0,m,p/2);c.quadTo(m,p,m/2,p);c.end();c.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",La);mxUtils.extend(za,mxCylinder);za.prototype.jettyWidth= +20;za.prototype.jettyHeight=10;za.prototype.redrawPath=function(c,k,q,m,p,v){var w=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));k=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));q=w/2;w=q+w/2;var H=Math.min(k,p-k),y=Math.min(H+2*k,p-k);v?(c.moveTo(q,H),c.lineTo(w,H),c.lineTo(w,H+k),c.lineTo(q,H+k),c.moveTo(q,y),c.lineTo(w,y),c.lineTo(w,y+k),c.lineTo(q,y+k)):(c.moveTo(q,0),c.lineTo(m,0),c.lineTo(m,p),c.lineTo(q,p),c.lineTo(q,y+k),c.lineTo(0,y+k),c.lineTo(0, +y),c.lineTo(q,y),c.lineTo(q,H+k),c.lineTo(0,H+k),c.lineTo(0,H),c.lineTo(q,H),c.close());c.end()};mxCellRenderer.registerShape("module",za);mxUtils.extend(Ja,mxCylinder);Ja.prototype.jettyWidth=32;Ja.prototype.jettyHeight=12;Ja.prototype.redrawPath=function(c,k,q,m,p,v){var w=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));k=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));q=w/2;w=q+w/2;var H=.3*p-k/2,y=.7*p-k/2;v?(c.moveTo(q,H),c.lineTo(w,H),c.lineTo(w, +H+k),c.lineTo(q,H+k),c.moveTo(q,y),c.lineTo(w,y),c.lineTo(w,y+k),c.lineTo(q,y+k)):(c.moveTo(q,0),c.lineTo(m,0),c.lineTo(m,p),c.lineTo(q,p),c.lineTo(q,y+k),c.lineTo(0,y+k),c.lineTo(0,y),c.lineTo(q,y),c.lineTo(q,H+k),c.lineTo(0,H+k),c.lineTo(0,H),c.lineTo(q,H),c.close());c.end()};mxCellRenderer.registerShape("component",Ja);mxUtils.extend(ta,mxRectangleShape);ta.prototype.paintForeground=function(c,k,q,m,p){var v=m/2,w=p/2,H=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/ +2;c.begin();this.addPoints(c,[new mxPoint(k+v,q),new mxPoint(k+m,q+w),new mxPoint(k+v,q+p),new mxPoint(k,q+w)],this.isRounded,H,!0);c.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",ta);mxUtils.extend(Ha,mxDoubleEllipse);Ha.prototype.outerStroke=!0;Ha.prototype.paintVertexShape=function(c,k,q,m,p){var v=Math.min(4,Math.min(m/5,p/5));0=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, +{};var sb=new mxPoint(1,0),tb=new mxPoint(1,0),xb=mxUtils.toRadians(-30);sb=mxUtils.getRotatedPoint(sb,Math.cos(xb),Math.sin(xb));var ub=mxUtils.toRadians(-150);tb=mxUtils.getRotatedPoint(tb,Math.cos(ub),Math.sin(ub));mxEdgeStyle.IsometricConnector=function(c,k,q,m,p){var v=c.view;m=null!=m&&0=2*m&&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))];ia.prototype.constraints=mxRectangleShape.prototype.constraints; -mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;Q.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;m.prototype.getConstraints=function(c,k,q){c=[];var l=Math.max(0,Math.min(k,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*(k-l),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-l,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-.5*l,.5*l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,.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));k>=2*l&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};I.prototype.getConstraints=function(c,k,q){c=[];var l=Math.max(0,Math.min(k,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*(k+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));k>=2*l&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};f.prototype.getConstraints=function(c,k,q){c=[];var l=Math.max(0,Math.min(k,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*(k-l),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-l,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-.5*l,.5*l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,.5*(q+l)));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0, -0),!1,null,.5*(k+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};C.prototype.getConstraints=function(c,k,q){c=[];k=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, +mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;Q.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;l.prototype.getConstraints=function(c,k,q){c=[];var m=Math.max(0,Math.min(k,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*(k-m),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-m,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-.5*m,.5*m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,.5*(q+m)));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));k>=2*m&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};I.prototype.getConstraints=function(c,k,q){c=[];var m=Math.max(0,Math.min(k,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*(k+m),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*m,.5*m));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,0,m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(q+m)));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));k>=2*m&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};f.prototype.getConstraints=function(c,k,q){c=[];var m=Math.max(0,Math.min(k,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*(k-m),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-m,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-.5*m,.5*m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,.5*(q+m)));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,.5*(k+m),q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*m,q-.5*m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,q-m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(q-m)));return c};C.prototype.getConstraints=function(c,k,q){c=[];k=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,k));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,k));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-k));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-k));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,k+.5*(.5*q-k)));c.push(new mxConnectionConstraint(new mxPoint(1, 0),!1,null,0,k+.5*(.5*q-k)));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,q-k-.5*(.5*q-k)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,q-k-.5*(.5*q-k)));c.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*k));c.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*k));c.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-k));c.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-k));return c};E.prototype.getConstraints= -function(c,k,q){c=[];var l=Math.max(0,Math.min(k,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*(k+l),p))):(c.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-.5*l,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-l,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-l,p)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-l),p)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,p));c.push(new mxConnectionConstraint(new mxPoint(0, +function(c,k,q){c=[];var m=Math.max(0,Math.min(k,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*m,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,0)),c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,m,p)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k+m),p))):(c.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-.5*m,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-m,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-m,p)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-m),p)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,p));c.push(new mxConnectionConstraint(new mxPoint(0, 0),!1,null,k,.25*(q-p)+p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,.5*(q-p)+p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,.75*(q-p)+p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,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;Ba.prototype.constraints=mxRectangleShape.prototype.constraints;F.prototype.constraints=mxEllipse.prototype.constraints;K.prototype.constraints=mxEllipse.prototype.constraints; -O.prototype.constraints=mxEllipse.prototype.constraints;wa.prototype.constraints=mxEllipse.prototype.constraints;hb.prototype.constraints=mxRectangleShape.prototype.constraints;Ma.prototype.constraints=mxRectangleShape.prototype.constraints;Pa.prototype.getConstraints=function(c,k,q){c=[];var l=Math.min(k,q/2),p=Math.min(k-l,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*k);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+k-l),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-l,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-l,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(p+k-l),q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,q));return c};za.prototype.getConstraints=function(c,k,q){k=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,k),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,k),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,k));q>8*c&&l.push(new mxConnectionConstraint(new mxPoint(0, -.5),!1,null,k));q>15*c&&l.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,k));return l};A.prototype.constraints=mxRectangleShape.prototype.constraints;B.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, +O.prototype.constraints=mxEllipse.prototype.constraints;wa.prototype.constraints=mxEllipse.prototype.constraints;hb.prototype.constraints=mxRectangleShape.prototype.constraints;Ma.prototype.constraints=mxRectangleShape.prototype.constraints;Pa.prototype.getConstraints=function(c,k,q){c=[];var m=Math.min(k,q/2),p=Math.min(k-m,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*k);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+k-m),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-m,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-m,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(p+k-m),q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,q));return c};za.prototype.getConstraints=function(c,k,q){k=parseFloat(mxUtils.getValue(c, +"jettyWidth",za.prototype.jettyWidth))/2;c=parseFloat(mxUtils.getValue(c,"jettyHeight",za.prototype.jettyHeight));var m=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,k),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,k),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&&m.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,k));q>8*c&&m.push(new mxConnectionConstraint(new mxPoint(0, +.5),!1,null,k));q>15*c&&m.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,k));return m};A.prototype.constraints=mxRectangleShape.prototype.constraints;B.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)];R.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75, .1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];Ja.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0, .7),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.25,.2),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(0, @@ -3572,84 +3572,84 @@ O.prototype.constraints=mxEllipse.prototype.constraints;wa.prototype.constraints .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)];N.prototype.constraints=mxRectangleShape.prototype.constraints;Y.prototype.constraints=mxRectangleShape.prototype.constraints;L.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75, -0),!0),new mxConnectionConstraint(new mxPoint(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;fa.prototype.getConstraints=function(c,k,q){c=[];var l=Math.max(0,Math.min(k,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,k,.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*k+.25*l,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k+l),p));c.push(new mxConnectionConstraint(new mxPoint(0, -0),!1,null,.5*(k+l),.5*(q+p)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k+l),q));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-l),q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-l),.5*(q+p)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-l),p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*k-.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};$a.prototype.getConstraints=function(c,k,q){c=[];var l=Math.max(0,Math.min(k,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,k,.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k+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, +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;fa.prototype.getConstraints=function(c,k,q){c=[];var m=Math.max(0,Math.min(k,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,k,.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*k+.25*m,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k+m),p));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,.5*(k+m),.5*(q+p)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k+m),q));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-m),q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-m),.5*(q+p)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-m),p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*k-.25*m,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};$a.prototype.getConstraints=function(c,k,q){c=[];var m=Math.max(0,Math.min(k,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,k,.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k+m),p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,.5*(q+p)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*m,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)];Aa.prototype.getConstraints= -function(c,k,q){c=[];var l=q*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),p=k*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*(k-p),l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-p,0));c.push(new mxConnectionConstraint(new mxPoint(1, -.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-p,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-p),q-l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,q-l));return c};Ia.prototype.getConstraints=function(c,k,q){c=[];var l=q*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",Aa.prototype.arrowWidth)))),p=k*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",Aa.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*k,l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-p,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-p,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*k,q-l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,q));return c};Ka.prototype.getConstraints= -function(c,k,q){c=[];var l=Math.min(q,k),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=(k-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*(k+p),l));c.push(new mxConnectionConstraint(new mxPoint(0, -0),!1,null,k,l));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k+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};pa.prototype.constraints=null;Va.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, +function(c,k,q){c=[];var m=q*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),p=k*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));m=(q-m)/2;c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-p),m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-p,0));c.push(new mxConnectionConstraint(new mxPoint(1, +.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-p,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-p),q-m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,q-m));return c};Ia.prototype.getConstraints=function(c,k,q){c=[];var m=q*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",Aa.prototype.arrowWidth)))),p=k*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",Aa.prototype.arrowSize))));m=(q-m)/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*k,m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-p,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-p,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*k,q-m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,q));return c};Ka.prototype.getConstraints= +function(c,k,q){c=[];var m=Math.min(q,k),p=Math.max(0,Math.min(m,m*parseFloat(mxUtils.getValue(this.style,"size",this.size))));m=(q-p)/2;var v=m+p,w=(k-p)/2;p=w+p;c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,w,.5*m));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*m));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,p,m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,w,q-.5*m));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*m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k+p),m));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,k,m));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k+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,m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,m));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,m));return c};pa.prototype.constraints=null;Va.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)];u.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)];Qa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];La.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){d.escape();m=d.deleteCells(d.getDeletableCells(d.getSelectionCells()),m);null!=m&&d.setSelectionCells(m)}function b(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();try{for(var m=d.getSelectionCells(),r=0;rMath.abs(m-d.view.scale)&&5>Math.abs(r-d.container.scrollLeft)&&5>Math.abs(x-d.container.scrollTop)&&z==d.view.translate.x&&C==d.view.translate.y&&f.actions.get("fitWindow").funct()},null,null,"Enter"));this.addAction("keyPressEnter",function(){d.isEnabled()&&(d.isSelectionEmpty()?f.actions.get("smartFit").funct(): -d.startEditingAtCell())});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){f.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(m,r){try{var x=mxUtils.parseXml(m);g.graph.setSelectionCells(g.graph.importGraphModel(x.documentElement))}catch(z){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+z.message)}}));f.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile= -null})}).isEnabled=h;this.addAction("save",function(){f.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=h;this.addAction("saveAs...",function(){f.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=h;this.addAction("export...",function(){f.showDialog((new ExportDialog(f)).container,300,340,!0,!0)});this.addAction("editDiagram...",function(){var m=new EditDiagramDialog(f);f.showDialog(m.container,620,420,!0,!1);m.init()});this.addAction("pageSetup...",function(){f.showDialog((new PageSetupDialog(f)).container, -320,240,!0,!0)}).isEnabled=h;this.addAction("print...",function(){f.showDialog((new PrintDialog(f)).container,300,180,!0,!0)},null,"sprite-print",Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(d,null,10,10)});this.addAction("undo",function(){f.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){f.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",function(){var m=null;try{m=f.copyXml(), -null!=m&&d.removeCells(m,!1)}catch(r){}try{null==m&&mxClipboard.cut(d)}catch(r){f.handleError(r)}},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){try{f.copyXml()}catch(m){}try{mxClipboard.copy(d)}catch(m){f.handleError(m)}},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var m=!1;try{Editor.enableNativeCipboard&&(f.readGraphModelFromClipboard(function(r){if(null!=r){d.getModel().beginUpdate(); -try{f.pasteXml(r,!0)}finally{d.getModel().endUpdate()}}else mxClipboard.paste(d)}),m=!0)}catch(r){}m||mxClipboard.paste(d)}},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(m){function r(z){if(null!=z){for(var C=!0,G=0;GMath.abs(l-d.view.scale)&&5>Math.abs(r-d.container.scrollLeft)&&5>Math.abs(x-d.container.scrollTop)&&z==d.view.translate.x&&C==d.view.translate.y&&f.actions.get("fitWindow").funct()},null,null,"Enter"));this.addAction("keyPressEnter",function(){d.isEnabled()&&(d.isSelectionEmpty()?f.actions.get("smartFit").funct(): +d.startEditingAtCell())});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){f.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(l,r){try{var x=mxUtils.parseXml(l);g.graph.setSelectionCells(g.graph.importGraphModel(x.documentElement))}catch(z){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+z.message)}}));f.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile= +null})}).isEnabled=h;this.addAction("save",function(){f.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=h;this.addAction("saveAs...",function(){f.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=h;this.addAction("export...",function(){f.showDialog((new ExportDialog(f)).container,300,340,!0,!0)});this.addAction("editDiagram...",function(){var l=new EditDiagramDialog(f);f.showDialog(l.container,620,420,!0,!1);l.init()});this.addAction("pageSetup...",function(){f.showDialog((new PageSetupDialog(f)).container, +320,240,!0,!0)}).isEnabled=h;this.addAction("print...",function(){f.showDialog((new PrintDialog(f)).container,300,180,!0,!0)},null,"sprite-print",Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(d,null,10,10)});this.addAction("undo",function(){f.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){f.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",function(){var l=null;try{l=f.copyXml(), +null!=l&&d.removeCells(l,!1)}catch(r){}try{null==l&&mxClipboard.cut(d)}catch(r){f.handleError(r)}},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){try{f.copyXml()}catch(l){}try{mxClipboard.copy(d)}catch(l){f.handleError(l)}},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var l=!1;try{Editor.enableNativeCipboard&&(f.readGraphModelFromClipboard(function(r){if(null!=r){d.getModel().beginUpdate(); +try{f.pasteXml(r,!0)}finally{d.getModel().endUpdate()}}else mxClipboard.paste(d)}),l=!0)}catch(r){}l||mxClipboard.paste(d)}},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(l){function r(z){if(null!=z){for(var C=!0,G=0;G"));d.cellLabelChanged(state.cell,Graph.sanitizeHtml(C));d.setCellStyles("html",m,[r[x]])}}f.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!= -m?m:"0"],"cells",r))}finally{d.getModel().endUpdate()}});this.addAction("wordWrap",function(){var m=d.getView().getState(d.getSelectionCell()),r="wrap";d.stopEditing();null!=m&&"wrap"==m.style[mxConstants.STYLE_WHITE_SPACE]&&(r=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,r)});this.addAction("rotation",function(){var m="0",r=d.getView().getState(d.getSelectionCell());null!=r&&(m=r.style[mxConstants.STYLE_ROTATION]||m);m=new FilenameDialog(f,m,mxResources.get("apply"),function(x){null!=x&&0< -x.length&&d.setCellStyles(mxConstants.STYLE_ROTATION,x)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");f.showDialog(m.container,375,80,!0,!0);m.init()});this.addAction("resetView",function(){d.zoomTo(1);f.resetScrollbars()},null,null,"Enter/Home");this.addAction("zoomIn",function(m){d.isFastZoomEnabled()?d.lazyZoom(!0,!0,f.buttonZoomDelay):d.zoomIn()},null,null,Editor.ctrlKey+" + (Numpad) / Alt+Mousewheel");this.addAction("zoomOut",function(m){d.isFastZoomEnabled()?d.lazyZoom(!1, +"+Shift+B");this.addAction("bringForward",function(l){d.orderCells(!1,null,!0)});this.addAction("sendBackward",function(l){d.orderCells(!0,null,!0)});this.addAction("group",function(){if(d.isEnabled()){var l=mxUtils.sortCells(d.getSelectionCells(),!0);1!=l.length||d.isTable(l[0])||d.isTableRow(l[0])?(l=d.getCellsForGroup(l),1"));d.cellLabelChanged(state.cell,Graph.sanitizeHtml(C));d.setCellStyles("html",l,[r[x]])}}f.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!= +l?l:"0"],"cells",r))}finally{d.getModel().endUpdate()}});this.addAction("wordWrap",function(){var l=d.getView().getState(d.getSelectionCell()),r="wrap";d.stopEditing();null!=l&&"wrap"==l.style[mxConstants.STYLE_WHITE_SPACE]&&(r=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,r)});this.addAction("rotation",function(){var l="0",r=d.getView().getState(d.getSelectionCell());null!=r&&(l=r.style[mxConstants.STYLE_ROTATION]||l);l=new FilenameDialog(f,l,mxResources.get("apply"),function(x){null!=x&&0< +x.length&&d.setCellStyles(mxConstants.STYLE_ROTATION,x)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");f.showDialog(l.container,375,80,!0,!0);l.init()});this.addAction("resetView",function(){d.zoomTo(1);f.resetScrollbars()},null,null,"Enter/Home");this.addAction("zoomIn",function(l){d.isFastZoomEnabled()?d.lazyZoom(!0,!0,f.buttonZoomDelay):d.zoomIn()},null,null,Editor.ctrlKey+" + (Numpad) / Alt+Mousewheel");this.addAction("zoomOut",function(l){d.isFastZoomEnabled()?d.lazyZoom(!1, !0,f.buttonZoomDelay):d.zoomOut()},null,null,Editor.ctrlKey+" - (Numpad) / Alt+Mousewheel");this.addAction("fitWindow",function(){d.pageVisible&&d.isSelectionEmpty()?d.fitPages():f.fitDiagramToWindow()},null,null,Editor.ctrlKey+"+Shift+H");this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible?d.fitPages(1):this.get("pageView").funct()}),null,null,Editor.ctrlKey+"+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){d.pageVisible?d.fitPages(2):this.get("pageView").funct()}), -null,null,Editor.ctrlKey+"+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible?d.fitPages(1,!0):this.get("pageView").funct()}));this.put("customZoom",new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var m=new FilenameDialog(this.editorUi,parseInt(100*d.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(r){r=parseInt(r);!isNaN(r)&&0"))}),g)}d(mxResources.get("normal"),"p");d("","h1").firstChild.nextSibling.innerHTML='

'+mxResources.get("heading")+" 1

";d("","h2").firstChild.nextSibling.innerHTML='

'+mxResources.get("heading")+" 2

";d("","h3").firstChild.nextSibling.innerHTML='

'+mxResources.get("heading")+" 3

";d("","h4").firstChild.nextSibling.innerHTML='

'+mxResources.get("heading")+" 4

";d("","h5").firstChild.nextSibling.innerHTML= '
'+mxResources.get("heading")+" 5
";d("","h6").firstChild.nextSibling.innerHTML='
'+mxResources.get("heading")+" 6
";d("","pre").firstChild.nextSibling.innerHTML='
'+mxResources.get("formatted")+"
";d("","blockquote").firstChild.nextSibling.innerHTML='
'+mxResources.get("blockquote")+"
"})));this.put("fontSize",new Menu(mxUtils.bind(this,function(f,g){var d= [6,8,9,10,11,12,14,18,24,36,48,72];0>mxUtils.indexOf(d,this.defaultFontSize)&&(d.push(this.defaultFontSize),d.sort(function(x,z){return x-z}));for(var h=mxUtils.bind(this,function(x){if(null!=b.cellEditor.textarea){document.execCommand("fontSize",!1,"3");for(var z=b.cellEditor.textarea.getElementsByTagName("font"),C=0;CmxUtils.indexOf(d,this.customFontSizes[t])&&(n(this.customFontSizes[t]),m++);0mxUtils.indexOf(d,this.customFontSizes[t])&&(n(this.customFontSizes[t]),l++);0"];for(var L=0;L");for(var N=0;N
");I.push("")}I.push("");G=I.join("");M.call(D,G);G=D.cellEditor.textarea.getElementsByTagName("table");if(G.length==C.length+1)for(M=G.length-1;0<=M;M--)if(0==M||G[M]!=C[M-1]){D.selectNode(G[M].rows[0].cells[0]);break}}});var d=this.editorUi.editor.graph,h=null,n=null;null==e&&(a.div.className+=" geToolbarMenu", a.labels=!1);a=a.addItem("",null,null,e,null,null,null,!0);a.firstChild.style.fontSize=Menus.prototype.defaultFontSize+"px";e=a.getElementsByTagName("td");1d.div.clientHeight&&(d.div.style.width="40px");d.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(d, arguments);this.editorUi.resetCurrentMenu();d.destroy()});var t=mxUtils.getOffset(a);d.popup(t.x,t.y+a.offsetHeight,null,n);this.editorUi.setCurrentMenu(d,a)}h=!0;mxEvent.consume(n)}));mxEvent.addListener(a,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(n){h=null==d||null==d.div||null==d.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.style.maxWidth="100%";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,e,f,g){function d(L,N,Y){null!=g&&L!=Y&&L.toLowerCase()== -mxResources.get("default").toLowerCase()&&(L="default");if(null!=g&&"default"==L)N?L=x:null!=Y&&(L=Y);else if("none"!=L&&"#"!=L.charAt(0))try{var W=document.createElement("canvas").getContext("2d");W.fillStyle="#"+L;W.fillStyle!="#"+L.toLowerCase()&&(W.fillStyle=L,L=W.fillStyle.substring(1))}catch(X){}return L}function h(){var L=d(m.value,!1);/(^#?[a-zA-Z0-9]*$)/.test(L)?("default"!=L&&("none"!=L&&"#"!=L.charAt(0)&&(L="#"+L),ColorDialog.addRecentColor("none"!=L?L.substring(1):L,12)),r(L),a.hideDialog()): -a.handleError({message:mxResources.get("invalidInput")})}function n(){mxClient.IS_TOUCH||(m.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?m.select():document.execCommand("selectAll",!1,null))}function t(){var L=G(0==ColorDialog.recentColors.length?["FFFFFF"]:ColorDialog.recentColors,11,"FFFFFF",!0);L.style.marginBottom="8px";return L}this.editorUi=a;var m=document.createElement("input");m.style.marginBottom="10px";m.style.marginLeft="8px";mxClient.IS_IE&&(m.style.marginTop="10px", -document.body.appendChild(m));var r=null!=e?e:this.createApplyFunction(),x=Editor.isDarkMode()&&"default"==g?"#ffffff":"#000000";this.init=function(){n()};var z=new mxJSColor.color(m);z.pickerOnfocus=!1;z.showPicker();e=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";e.appendChild(mxJSColor.picker.box);var C=document.createElement("center"), +mxResources.get("default").toLowerCase()&&(L="default");if(null!=g&&"default"==L)N?L=x:null!=Y&&(L=Y);else if("none"!=L&&"#"!=L.charAt(0))try{var W=document.createElement("canvas").getContext("2d");W.fillStyle="#"+L;W.fillStyle!="#"+L.toLowerCase()&&(W.fillStyle=L,L=W.fillStyle.substring(1))}catch(X){}return L}function h(){var L=d(l.value,!1);/(^#?[a-zA-Z0-9]*$)/.test(L)?("default"!=L&&("none"!=L&&"#"!=L.charAt(0)&&(L="#"+L),ColorDialog.addRecentColor("none"!=L?L.substring(1):L,12)),r(L),a.hideDialog()): +a.handleError({message:mxResources.get("invalidInput")})}function n(){mxClient.IS_TOUCH||(l.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?l.select():document.execCommand("selectAll",!1,null))}function t(){var L=G(0==ColorDialog.recentColors.length?["FFFFFF"]:ColorDialog.recentColors,11,"FFFFFF",!0);L.style.marginBottom="8px";return L}this.editorUi=a;var l=document.createElement("input");l.style.marginBottom="10px";l.style.marginLeft="8px";mxClient.IS_IE&&(l.style.marginTop="10px", +document.body.appendChild(l));var r=null!=e?e:this.createApplyFunction(),x=Editor.isDarkMode()&&"default"==g?"#ffffff":"#000000";this.init=function(){n()};var z=new mxJSColor.color(l);z.pickerOnfocus=!1;z.showPicker();e=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";e.appendChild(mxJSColor.picker.box);var C=document.createElement("center"), G=mxUtils.bind(this,function(L,N,Y,W){N=null!=N?N:12;var X=document.createElement("table");X.style.borderCollapse="collapse";X.setAttribute("cellspacing","0");X.style.marginBottom="20px";X.style.cellSpacing="0px";X.style.marginLeft="1px";var Z=document.createElement("tbody");X.appendChild(Z);for(var ba=L.length/N,la=0;la=b&&ColorDialog.recentColors.pop())};ColorDialog.resetRecentColors=function(){ColorDialog.recentColors=[]}; var AboutDialog=function(a){var b=document.createElement("div");b.setAttribute("align","center");var e=document.createElement("h3");mxUtils.write(e,mxResources.get("about")+" GraphEditor");b.appendChild(e);e=document.createElement("img");e.style.border="0px";e.setAttribute("width","176");e.setAttribute("width","151");e.setAttribute("src",IMAGE_PATH+"/logo.png");b.appendChild(e);mxUtils.br(b);mxUtils.write(b,"Powered by mxGraph "+mxClient.VERSION);mxUtils.br(b);e=document.createElement("a");e.setAttribute("href", -"http://www.jgraph.com/");e.setAttribute("target","_blank");mxUtils.write(e,"www.jgraph.com");b.appendChild(e);mxUtils.br(b);mxUtils.br(b);e=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});e.className="geBtn gePrimaryBtn";b.appendChild(e);this.container=b},TextareaDialog=function(a,b,e,f,g,d,h,n,t,m,r,x,z,C,G){m=null!=m?m:!1;h=document.createElement("div");h.style.position="absolute";h.style.top="20px";h.style.bottom="20px";h.style.left="20px";h.style.right="20px";n=document.createElement("div"); +"http://www.jgraph.com/");e.setAttribute("target","_blank");mxUtils.write(e,"www.jgraph.com");b.appendChild(e);mxUtils.br(b);mxUtils.br(b);e=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});e.className="geBtn gePrimaryBtn";b.appendChild(e);this.container=b},TextareaDialog=function(a,b,e,f,g,d,h,n,t,l,r,x,z,C,G){l=null!=l?l:!1;h=document.createElement("div");h.style.position="absolute";h.style.top="20px";h.style.bottom="20px";h.style.left="20px";h.style.right="20px";n=document.createElement("div"); n.style.position="absolute";n.style.left="0px";n.style.right="0px";var E=n.cloneNode(!1),D=n.cloneNode(!1);n.style.top="0px";n.style.height="20px";E.style.top="20px";E.style.bottom="64px";D.style.bottom="0px";D.style.height="60px";D.style.textAlign="center";mxUtils.write(n,b);h.appendChild(n);h.appendChild(E);h.appendChild(D);null!=G&&n.appendChild(G);var I=document.createElement("textarea");r&&I.setAttribute("wrap","off");I.setAttribute("spellcheck","false");I.setAttribute("autocorrect","off");I.setAttribute("autocomplete", "off");I.setAttribute("autocapitalize","off");mxUtils.write(I,e||"");I.style.resize="none";I.style.outline="none";I.style.position="absolute";I.style.boxSizing="border-box";I.style.top="0px";I.style.left="0px";I.style.height="100%";I.style.width="100%";this.textarea=I;this.init=function(){I.focus();I.scrollTop=0};E.appendChild(I);null!=z&&(b=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(z)}),b.className="geBtn",D.appendChild(b));if(null!=C)for(b=0;bMAX_AREA||0>=C.value?"red":"";G.style.backgroundColor=C.value*G.value>MAX_AREA||0>=G.value?"red":""}var f=a.editor.graph,g=f.getGraphBounds(),d=f.view.scale,h=Math.ceil(g.width/ -d),n=Math.ceil(g.height/d);d=document.createElement("table");var t=document.createElement("tbody");d.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); -t.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);a.printPdfExport||(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);t.appendChild(g);g=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("zoom")+" (%):");g.appendChild(m);var z=document.createElement("input");z.setAttribute("type","number");z.setAttribute("value","100");z.style.width="180px";m=document.createElement("td");m.appendChild(z);g.appendChild(m);t.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",h);C.style.width="180px";m=document.createElement("td");m.appendChild(C);g.appendChild(m);t.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);t.appendChild(g);g=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("dpi")+":");g.appendChild(m);var E=document.createElement("select");E.style.width="180px";m=document.createElement("option");m.setAttribute("value","100");mxUtils.write(m,"100dpi");E.appendChild(m);m=document.createElement("option");m.setAttribute("value","200");mxUtils.write(m,"200dpi");E.appendChild(m); -m=document.createElement("option");m.setAttribute("value","300");mxUtils.write(m,"300dpi");E.appendChild(m);m=document.createElement("option");m.setAttribute("value","400");mxUtils.write(m,"400dpi");E.appendChild(m);m=document.createElement("option");m.setAttribute("value","custom");mxUtils.write(m,mxResources.get("custom"));E.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 I=!1;mxEvent.addListener(E,"change",function(){"custom"==this.value?(this.style.display="none",D.style.display="",D.focus()):(D.value=this.value,I||(z.value=this.value))});mxEvent.addListener(D,"change",function(){var X=parseInt(D.value);isNaN(X)||0>=X?D.style.backgroundColor="red":(D.style.backgroundColor="",I||(z.value=X))});m=document.createElement("td");m.appendChild(E);m.appendChild(D);g.appendChild(m);t.appendChild(g);g=document.createElement("tr");m=document.createElement("td"); -m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("background")+":");g.appendChild(m);var M=document.createElement("input");M.setAttribute("type","checkbox");M.checked=null==f.background||f.background==mxConstants.NONE;m=document.createElement("td");m.appendChild(M);mxUtils.write(m,mxResources.get("transparent"));g.appendChild(m);t.appendChild(g);g=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("grid")+":");g.appendChild(m); -var L=document.createElement("input");L.setAttribute("type","checkbox");L.checked=!1;m=document.createElement("td");m.appendChild(L);g.appendChild(m);t.appendChild(g);g=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("borderWidth")+":");g.appendChild(m);var N=document.createElement("input");N.setAttribute("type","number");N.setAttribute("value",ExportDialog.lastBorderValue);N.style.width="180px";m=document.createElement("td");m.appendChild(N); -g.appendChild(m);t.appendChild(g);d.appendChild(t);mxEvent.addListener(x,"change",b);b();mxEvent.addListener(z,"change",function(){I=!0;var X=Math.max(0,parseFloat(z.value)||100)/100;z.value=parseFloat((100*X).toFixed(2));0=parseInt(z.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var X=r.value,Z=x.value,ba=Math.max(0,parseFloat(z.value)||100)/ -100,la=Math.max(0,parseInt(N.value)),ka=f.background,ra=Math.max(1,parseInt(D.value));if(("svg"==Z||"png"==Z||"pdf"==Z)&&M.checked)ka=null;else if(null==ka||ka==mxConstants.NONE)ka="#ffffff";ExportDialog.lastBorderValue=la;ExportDialog.exportFile(a,X,Z,ka,ba,la,ra,L.checked)}}));Y.className="geBtn gePrimaryBtn";var W=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});W.className="geBtn";a.editor.cancelFirst?(m.appendChild(W),m.appendChild(Y)):(m.appendChild(Y),m.appendChild(W)); -g.appendChild(m);t.appendChild(g);d.appendChild(t);this.container=d};ExportDialog.lastBorderValue=0;ExportDialog.showGifOption=!0;ExportDialog.showXmlOption=!0; -ExportDialog.exportFile=function(a,b,e,f,g,d,h,n){n=a.editor.graph;if("xml"==e)ExportDialog.saveLocalFile(a,mxUtils.getXml(a.editor.getGraphXml()),b,e);else if("svg"==e)ExportDialog.saveLocalFile(a,mxUtils.getXml(n.getSvg(f,g,d)),b,e);else{var t=n.getGraphBounds(),m=mxUtils.createXmlDocument(),r=m.createElement("output");m.appendChild(r);m=new mxXmlCanvas2D(r);m.translate(Math.floor((d/g-t.x)/n.view.scale),Math.floor((d/g-t.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(t.width*g/n.view.scale+2*d);g=Math.ceil(t.height*g/n.view.scale+2*d);r.length<=MAX_REQUEST_SIZE&&m*g=X?D.style.backgroundColor="red":(D.style.backgroundColor="",I||(z.value=X))});l=document.createElement("td");l.appendChild(E);l.appendChild(D);g.appendChild(l);t.appendChild(g);g=document.createElement("tr");l=document.createElement("td"); +l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("background")+":");g.appendChild(l);var M=document.createElement("input");M.setAttribute("type","checkbox");M.checked=null==f.background||f.background==mxConstants.NONE;l=document.createElement("td");l.appendChild(M);mxUtils.write(l,mxResources.get("transparent"));g.appendChild(l);t.appendChild(g);g=document.createElement("tr");l=document.createElement("td");l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("grid")+":");g.appendChild(l); +var L=document.createElement("input");L.setAttribute("type","checkbox");L.checked=!1;l=document.createElement("td");l.appendChild(L);g.appendChild(l);t.appendChild(g);g=document.createElement("tr");l=document.createElement("td");l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("borderWidth")+":");g.appendChild(l);var N=document.createElement("input");N.setAttribute("type","number");N.setAttribute("value",ExportDialog.lastBorderValue);N.style.width="180px";l=document.createElement("td");l.appendChild(N); +g.appendChild(l);t.appendChild(g);d.appendChild(t);mxEvent.addListener(x,"change",b);b();mxEvent.addListener(z,"change",function(){I=!0;var X=Math.max(0,parseFloat(z.value)||100)/100;z.value=parseFloat((100*X).toFixed(2));0=parseInt(z.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var X=r.value,Z=x.value,ba=Math.max(0,parseFloat(z.value)||100)/ +100,la=Math.max(0,parseInt(N.value)),ka=f.background,ra=Math.max(1,parseInt(D.value));if(("svg"==Z||"png"==Z||"pdf"==Z)&&M.checked)ka=null;else if(null==ka||ka==mxConstants.NONE)ka="#ffffff";ExportDialog.lastBorderValue=la;ExportDialog.exportFile(a,X,Z,ka,ba,la,ra,L.checked)}}));Y.className="geBtn gePrimaryBtn";var W=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});W.className="geBtn";a.editor.cancelFirst?(l.appendChild(W),l.appendChild(Y)):(l.appendChild(Y),l.appendChild(W)); +g.appendChild(l);t.appendChild(g);d.appendChild(t);this.container=d};ExportDialog.lastBorderValue=0;ExportDialog.showGifOption=!0;ExportDialog.showXmlOption=!0; +ExportDialog.exportFile=function(a,b,e,f,g,d,h,n){n=a.editor.graph;if("xml"==e)ExportDialog.saveLocalFile(a,mxUtils.getXml(a.editor.getGraphXml()),b,e);else if("svg"==e)ExportDialog.saveLocalFile(a,mxUtils.getXml(n.getSvg(f,g,d)),b,e);else{var t=n.getGraphBounds(),l=mxUtils.createXmlDocument(),r=l.createElement("output");l.appendChild(r);l=new mxXmlCanvas2D(r);l.translate(Math.floor((d/g-t.x)/n.view.scale),Math.floor((d/g-t.y)/n.view.scale));l.scale(g/n.view.scale);(new mxImageExport).drawState(n.getView().getState(n.model.root), +l);r="xml="+encodeURIComponent(mxUtils.getXml(r));l=Math.ceil(t.width*g/n.view.scale+2*d);g=Math.ceil(t.height*g/n.view.scale+2*d);r.length<=MAX_REQUEST_SIZE&&l*gZ.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 M=m.addField(mxResources.get("id")+":",r);mxEvent.addListener(r,"dblclick",function(X){X=new FilenameDialog(a,G,mxResources.get("apply"),mxUtils.bind(this,function(Z){if(null!=Z&&0Z.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 M=l.addField(mxResources.get("id")+":",r);mxEvent.addListener(r,"dblclick",function(X){X=new FilenameDialog(a,G,mxResources.get("apply"),mxUtils.bind(this,function(Z){if(null!=Z&&0X.indexOf(":"))try{var Z=mxUtils.indexOf(x,X);if(0<=Z&&null!=z[Z])z[Z].focus();else{d.cloneNode(!1).setAttribute(X,""); -0<=Z&&(x.splice(Z,1),z.splice(Z,1));x.push(X);var ba=m.addTextarea(X+":","",2);ba.style.width="100%";z.push(ba);E(ba,X);ba.focus()}N.setAttribute("disabled","disabled");L.value=""}catch(la){mxUtils.alert(la)}else mxUtils.alert(mxResources.get("invalidName"))});mxEvent.addListener(L,"keypress",function(X){13==X.keyCode&&N.click()});this.init=function(){0")});mxEvent.addListener(V,"dragend",function(P){null!=z&&null!=C&&t.addCell(ma,t.model.root,C);C=z=null;P.stopPropagation();P.preventDefault()});var R=document.createElement("img");R.setAttribute("draggable","false");R.setAttribute("align","top");R.setAttribute("border","0");R.className="geAdaptiveAsset"; @@ -3849,21 +3849,21 @@ R.style.width="16px";R.style.padding="0px 6px 0 4px";R.style.marginTop="2px";R.s "▼",J.style.width="14px",J.style.height="14px",J.style.fontSize="14px",J.style.margin="0px",J.style.marginTop="-1px",ra.appendChild(J),mxEvent.addListener(J,"click",function(P){t.isEnabled()&&t.addCell(ma,t.model.root,ka-1);mxEvent.consume(P)})),0<=ka&&kak&&(k=h.length);return h.substring(6,k)}return null};var d=Sidebar.prototype.getTagsForStencil;Sidebar.prototype.getTagsForStencil=function(h,k,l){var m=d.apply(this,arguments);null!=this.shapetags&&(h=h.toLowerCase(),k=k.toLowerCase(),null!=this.shapetags[h]&&m.push(this.shapetags[h]),k=h+"."+k,null!=this.shapetags[k]&&m.push(this.shapetags[k]));return m};Sidebar.prototype.addTagIndex= function(h){h=h.split("\n");for(var k=0;kq?"":l.substring(q+1));this.setCurrentSearchEntryLibrary(h[k].id,h[k].lib);this.createVertexTemplateEntry(l,parseInt(h[k].w),parseInt(h[k].h),"",m.replace(/_/g," "),null,null,this.filterTags(n.join(" ")));this.setCurrentSearchEntryLibrary()}}}}}; -Sidebar.prototype.initPalettes=function(){var h=GRAPH_IMAGE_PATH,k=STENCIL_PATH,l=this.signs,m=this.rack,n=this.pids,p=this.cisco,q=this.sysml;"1"==urlParams.createindex&&(this.createdSearchIndex=[]);this.addSearchPalette(!0);this.appendCustomLibraries||this.addCustomEntries();this.addGeneralPalette(null==this.customEntries);this.addMiscPalette(!1);this.addAdvancedPalette(!1);this.addBasicPalette();this.addStencilPalette("arrows",mxResources.get("arrows"),k+"/arrows.xml",";html=1;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+ -"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;"+mxConstants.STYLE_STROKEWIDTH+"=2;strokeColor=#000000;",null,null,null,null,null,"arrows");this.addArrows2Palette();this.setCurrentSearchEntryLibrary("clipart","computer");this.addImagePalette("computer","Clipart / Computer",h+"/lib/clip_art/computers/","_128x128.png","Antivirus Data_Filtering Database Database_Add Database_Minus Database_Move_Stack Database_Remove Fujitsu_Tablet Harddrive IBM_Tablet iMac iPad Laptop MacBook Mainframe Monitor Monitor_Tower Monitor_Tower_Behind Netbook Network Network_2 Printer Printer_Commercial Secure_System Server Server_Rack Server_Rack_Empty Server_Rack_Partial Server_Tower Software Stylus Touch USB_Hub Virtual_Application Virtual_Machine Virus Workstation".split(" "), +k.length;q++)mxUtils.bind(this,function(t){t=this.getConfigurationById(t.id);if(null!=t){this.showPalettes(t.prefix||"",t.libs||[t.id],!0);var u=this.showPalette(k[q].lib||k[q].id,!0);null!=u&&1q?"":l.substring(q+1));this.setCurrentSearchEntryLibrary(h[k].id,h[k].lib);this.createVertexTemplateEntry(l,parseInt(h[k].w),parseInt(h[k].h),"",m.replace(/_/g," "),null,null,this.filterTags(n.join(" "))); +this.setCurrentSearchEntryLibrary()}}}}};Sidebar.prototype.initPalettes=function(){var h=GRAPH_IMAGE_PATH,k=STENCIL_PATH,l=this.signs,m=this.rack,n=this.pids,p=this.cisco,q=this.sysml;"1"==urlParams.createindex&&(this.createdSearchIndex=[]);this.addSearchPalette(!0);this.appendCustomLibraries||this.addCustomEntries();this.addGeneralPalette(null==this.customEntries);this.addMiscPalette(!1);this.addAdvancedPalette(!1);this.addBasicPalette();this.addStencilPalette("arrows",mxResources.get("arrows"), +k+"/arrows.xml",";html=1;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;"+mxConstants.STYLE_STROKEWIDTH+"=2;strokeColor=#000000;",null,null,null,null,null,"arrows");this.addArrows2Palette();this.setCurrentSearchEntryLibrary("clipart","computer");this.addImagePalette("computer","Clipart / Computer",h+"/lib/clip_art/computers/","_128x128.png","Antivirus Data_Filtering Database Database_Add Database_Minus Database_Move_Stack Database_Remove Fujitsu_Tablet Harddrive IBM_Tablet iMac iPad Laptop MacBook Mainframe Monitor Monitor_Tower Monitor_Tower_Behind Netbook Network Network_2 Printer Printer_Commercial Secure_System Server Server_Rack Server_Rack_Empty Server_Rack_Partial Server_Tower Software Stylus Touch USB_Hub Virtual_Application Virtual_Machine Virus Workstation".split(" "), "Antivirus;Data Filtering;Database;Database Add;Database Minus;Database Move Stack;Database Remove;Fujitsu Tablet;Harddrive;IBMTablet;iMac;iPad;Laptop;MacBook;Mainframe;Monitor;Monitor Tower;Monitor Tower Behind;Netbook;Network;Network 2;Printer;Printer Commercial;Secure System;Server;Server Rack;Server Rack Empty;Server Rack Partial;Server Tower;Software;Stylus;Touch;USB Hub;Virtual Application;Virtual Machine;Virus;Workstation".split(";"));this.setCurrentSearchEntryLibrary("clipart","finance"); this.addImagePalette("finance","Clipart / Finance",h+"/lib/clip_art/finance/","_128x128.png","Arrow_Down Arrow_Up Coins Credit_Card Dollar Graph Pie_Chart Piggy_Bank Safe Shopping_Cart Stock_Down Stock_Up".split(" "),"Arrow_Down;Arrow Up;Coins;Credit Card;Dollar;Graph;Pie Chart;Piggy Bank;Safe;Shopping Basket;Stock Down;Stock Up".split(";"));this.setCurrentSearchEntryLibrary("clipart","clipart");this.addImagePalette("clipart","Clipart / Various",h+"/lib/clip_art/general/","_128x128.png","Battery_0 Battery_100 Battery_50 Battery_75 Battery_allstates Bluetooth Earth_globe Empty_Folder Full_Folder Gear Keys Lock Mouse_Pointer Plug Ships_Wheel Star Tire".split(" "), "Battery 0%;Battery 100%;Battery 50%;Battery 75%;Battery;Bluetooth;Globe;Empty Folder;Full Folder;Gear;Keys;Lock;Mousepointer;Plug;Ships Wheel;Star;Tire".split(";"));this.setCurrentSearchEntryLibrary("clipart","networking");this.addImagePalette("networking","Clipart / Networking",h+"/lib/clip_art/networking/","_128x128.png","Bridge Certificate Certificate_Off Cloud Cloud_Computer Cloud_Computer_Private Cloud_Rack Cloud_Rack_Private Cloud_Server Cloud_Server_Private Cloud_Storage Concentrator Email Firewall_02 Firewall Firewall-page1 Ip_Camera Modem power_distribution_unit Print_Server Print_Server_Wireless Repeater Router Router_Icon Switch UPS Wireless_Router Wireless_Router_N".split(" "), @@ -7196,24 +7196,24 @@ this.addPalette("gcpCards","GCP / Cards",!1,mxUtils.bind(this,function(c){for(va this.setCurrentSearchEntryLibrary("gcp2","gcp2API Management");this.addGCP2APIManagementPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Security");this.addGCP2SecurityPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Data Analytics");this.addGCP2DataAnalyticsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Data Transfer");this.addGCP2DataTransferPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Cloud AI");this.addGCP2CloudAIPalette();this.setCurrentSearchEntryLibrary("gcp2", "gcp2Internet of Things");this.addGCP2InternetOfThingsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Databases");this.addGCP2DatabasesPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Storage");this.addGCP2StoragePalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Management Tools");this.addGCP2ManagementToolsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Networking");this.addGCP2NetworkingPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Developer Tools");this.addGCP2DeveloperToolsPalette(); this.setCurrentSearchEntryLibrary("gcp2","gcp2Expanded Product Cards");this.addGCP2ExpandedProductCardsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Product Cards");this.addGCP2ProductCardsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2General Icons");this.addGCP2GeneralIconsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons AI and Machine Learning");this.addGCP2IconsAIAndMachineLearningPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Compute");this.addGCP2IconsComputePalette(); -this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Data Analytics");this.addGCP2IconsDataAnalyticsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Operations");this.addGCP2IconsOperationsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Networking");this.addGCP2IconsNetworkingPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons CI CD");this.addGCP2IconsCICDPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons API Management");this.addGCP2IconsAPIManagementPalette(); -this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Internet of Things");this.addGCP2IconsInternetOfThingsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Databases");this.addGCP2IconsDatabasesPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Storage");this.addGCP2IconsStoragePalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Security");this.addGCP2IconsSecurityPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Migration");this.addGCP2IconsMigrationPalette(); -this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Hybrid and Multi Cloud");this.addGCP2IconsHybridAndMultiCloudPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Open Source Icons");this.addGCP2IconsOpenSourceIconsPalette();this.setCurrentSearchEntryLibrary()};Sidebar.prototype.addGCP2PathsPalette=function(){var a=[];a=[this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;dashed=0;strokeColor=#4284F3;", -100,0,"","Primary Path",null,"gcp google cloud platform path primary"),this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;dashed=1;dashPattern=1 3;strokeColor=#4284F3;",100,0,"","Optional Primary Path",null,"gcp google cloud platform path optional primary"),this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;dashed=0;strokeColor=#9E9E9E;", -100,0,"","Secondary Path",null,"gcp google cloud platform path secondary"),this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;dashed=1;dashPattern=1 3;strokeColor=#9E9E9E;",100,0,"","Optional Secondary Path",null,"gcp google cloud platform path optional secondary"),this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;strokeColor=#34A853;dashed=0;", -100,0,"","Success Status",null,"gcp google cloud platform path success status"),this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;strokeColor=#EA4335;dashed=0;",100,0,"","Failure Status",null,"gcp google cloud platform path failure status")];this.addPalette("gcp2Paths","GCP / Paths",!1,mxUtils.bind(this,function(c){for(var d=0;drd Party","External Infrastructure 3rd party",null,null,this.getTagsForStencil("mxgraph.gcp2.zones","","gcp google cloud platform zone external infrastructure 3rd party").join(" ")),this.createVertexTemplateEntry(c+"fillColor=#E1F5FE;",120,75,"External\nInfrastructure\n1st Party", -"External Infrastructure 1st party",null,null,this.getTagsForStencil("mxgraph.gcp2.zones","","gcp google cloud platform zone external infrastructure 1st party").join(" ")),this.addEntry("gcp google cloud platform zone project cloud service provider",function(){var b=new mxCell("Project Zone / Cloud Service Provider",new mxGeometry(0,0,530,490),c+"fillColor=#F6F6F6;");b.vertex=!0;var e=new mxCell("Logical Grouping of Services / Instances",new mxGeometry(0,0,250,180),c+"fillColor=#E3F2FD;");e.geometry.relative= -!0;e.geometry.offset=new mxPoint(10,50);e.vertex=!0;b.insert(e);var f=new mxCell("Zone",new mxGeometry(0,0,230,120),c+"fillColor=#FFF3E0;");f.geometry.relative=!0;f.geometry.offset=new mxPoint(10,50);f.vertex=!0;e.insert(f);e=new mxCell("SubNetwork",new mxGeometry(0,0,210,60),c+"fillColor=#EDE7F6;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(10,50);e.vertex=!0;f.insert(e);f=new mxCell("Kubernetes cluster",new mxGeometry(0,0,250,120),c+"fillColor=#FCE4EC;");f.geometry.relative=!0;f.geometry.offset= -new mxPoint(10,240);f.vertex=!0;b.insert(f);e=new mxCell("pod",new mxGeometry(0,0,210,60),c+"fillColor=#E8F5E9;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(10,50);e.vertex=!0;f.insert(e);f=new mxCell("Account",new mxGeometry(0,0,250,60),c+"fillColor=#E8EAF6;");f.geometry.relative=!0;f.geometry.offset=new mxPoint(10,370);f.vertex=!0;b.insert(f);f=new mxCell("Region",new mxGeometry(0,0,250,310),c+"fillColor=#ECEFF1;");f.geometry.relative=!0;f.geometry.offset=new mxPoint(270,50);f.vertex= -!0;b.insert(f);e=new mxCell("Zone",new mxGeometry(0,0,230,250),c+"fillColor=#FFF3E0;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(10,50);e.vertex=!0;f.insert(e);f=new mxCell("Firewall",new mxGeometry(0,0,210,190),c+"fillColor=#FBE9E7;");f.geometry.relative=!0;f.geometry.offset=new mxPoint(10,50);f.vertex=!0;e.insert(f);e=new mxCell("Instance Group",new mxGeometry(0,0,190,60),c+"fillColor=#F9FBE7;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(10,50);e.vertex=!0;f.insert(e);e=new mxCell("Replica Pool", -new mxGeometry(0,0,190,60),c+"fillColor=#E0F7FA;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(10,120);e.vertex=!0;f.insert(e);f=new mxCell("Optional Component",new mxGeometry(0,0,250,60),"rounded=1;absoluteArcSize=1;arcSize=2;html=1;strokeColor=none;gradientColor=none;shadow=0;dashed=1;strokeColor=#4284F3;fontSize=12;fontColor=#9E9E9E;align=left;verticalAlign=top;spacing=10;spacingTop=-4;fillColor=none;dashPattern=1 2;strokeWidth=2;");f.geometry.relative=!0;f.geometry.offset=new mxPoint(270, -370);f.vertex=!0;b.insert(f);return a.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Project Zone / Cloud Service Provider")}),this.createVertexTemplateEntry("fillColor=#4DA1F5;strokeColor=none;shadow=1;gradientColor=none;fontSize=14;align=left;spacingLeft=50;fontColor=#ffffff;whiteSpace=wrap;html=1;",1E3,40,"Architecture: App Engine and Cloud Endpoints","Title bar",null,null,this.getTagsForStencil("mxgraph.gcp2.zones","","gcp google cloud platform zone title bar").join(" ")), -this.createVertexTemplateEntry("strokeColor=none;shadow=0;gradientColor=none;fontSize=11;align=left;spacing=10;fontColor=#;9E9E9E;verticalAlign=top;spacingTop=100;whiteSpace=wrap;html=1;",300,350,"Use this note to call out\nor clarify parts of a diagram","Note",null,null,this.getTagsForStencil("mxgraph.gcp2.zones","","gcp google cloud platform zone note").join(" ")),this.addEntry("gcp google cloud platform zone project",function(){var b=new mxCell("Google Cloud Platform",new mxGeometry(0,0, -650,350),"fillColor=#F6F6F6;strokeColor=none;shadow=0;gradientColor=none;fontSize=14;align=left;spacing=10;fontColor=#717171;9E9E9E;verticalAlign=top;spacingTop=-4;fontStyle=0;spacingLeft=40;html=1;whiteSpace=wrap;");b.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,23,20),"shape=mxgraph.gcp2.google_cloud_platform;fillColor=#F6F6F6;strokeColor=none;shadow=0;gradientColor=none;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(20,10);e.vertex=!0;b.insert(e);return a.createVertexTemplateFromCells([b], +this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Serverless");this.addGCP2IconsServerlessPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Data Analytics");this.addGCP2IconsDataAnalyticsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Operations");this.addGCP2IconsOperationsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Networking");this.addGCP2IconsNetworkingPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons CI CD");this.addGCP2IconsCICDPalette(); +this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Integration Services");this.addGCP2IconsIntegrationServicesPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons API Management");this.addGCP2IconsAPIManagementPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Internet of Things");this.addGCP2IconsInternetOfThingsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Databases");this.addGCP2IconsDatabasesPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Storage"); +this.addGCP2IconsStoragePalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Security");this.addGCP2IconsSecurityPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Migration");this.addGCP2IconsMigrationPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Hybrid and Multi Cloud");this.addGCP2IconsHybridAndMultiCloudPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Open Source Icons");this.addGCP2IconsOpenSourceIconsPalette();this.setCurrentSearchEntryLibrary()}; +Sidebar.prototype.addGCP2PathsPalette=function(){var a=[];a=[this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;dashed=0;strokeColor=#4284F3;",100,0,"","Primary Path",null,"gcp google cloud platform path primary"),this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;dashed=1;dashPattern=1 3;strokeColor=#4284F3;", +100,0,"","Optional Primary Path",null,"gcp google cloud platform path optional primary"),this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;dashed=0;strokeColor=#9E9E9E;",100,0,"","Secondary Path",null,"gcp google cloud platform path secondary"),this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;dashed=1;dashPattern=1 3;strokeColor=#9E9E9E;", +100,0,"","Optional Secondary Path",null,"gcp google cloud platform path optional secondary"),this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;strokeColor=#34A853;dashed=0;",100,0,"","Success Status",null,"gcp google cloud platform path success status"),this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;strokeColor=#EA4335;dashed=0;", +100,0,"","Failure Status",null,"gcp google cloud platform path failure status")];this.addPalette("gcp2Paths","GCP / Paths",!1,mxUtils.bind(this,function(c){for(var d=0;drd Party","External Infrastructure 3rd party",null,null,this.getTagsForStencil("mxgraph.gcp2.zones", +"","gcp google cloud platform zone external infrastructure 3rd party").join(" ")),this.createVertexTemplateEntry(c+"fillColor=#E1F5FE;",120,75,"External\nInfrastructure\n1st Party","External Infrastructure 1st party",null,null,this.getTagsForStencil("mxgraph.gcp2.zones","","gcp google cloud platform zone external infrastructure 1st party").join(" ")),this.addEntry("gcp google cloud platform zone project cloud service provider",function(){var b=new mxCell("Project Zone / Cloud Service Provider", +new mxGeometry(0,0,530,490),c+"fillColor=#F6F6F6;");b.vertex=!0;var e=new mxCell("Logical Grouping of Services / Instances",new mxGeometry(0,0,250,180),c+"fillColor=#E3F2FD;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(10,50);e.vertex=!0;b.insert(e);var f=new mxCell("Zone",new mxGeometry(0,0,230,120),c+"fillColor=#FFF3E0;");f.geometry.relative=!0;f.geometry.offset=new mxPoint(10,50);f.vertex=!0;e.insert(f);e=new mxCell("SubNetwork",new mxGeometry(0,0,210,60),c+"fillColor=#EDE7F6;");e.geometry.relative= +!0;e.geometry.offset=new mxPoint(10,50);e.vertex=!0;f.insert(e);f=new mxCell("Kubernetes cluster",new mxGeometry(0,0,250,120),c+"fillColor=#FCE4EC;");f.geometry.relative=!0;f.geometry.offset=new mxPoint(10,240);f.vertex=!0;b.insert(f);e=new mxCell("pod",new mxGeometry(0,0,210,60),c+"fillColor=#E8F5E9;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(10,50);e.vertex=!0;f.insert(e);f=new mxCell("Account",new mxGeometry(0,0,250,60),c+"fillColor=#E8EAF6;");f.geometry.relative=!0;f.geometry.offset= +new mxPoint(10,370);f.vertex=!0;b.insert(f);f=new mxCell("Region",new mxGeometry(0,0,250,310),c+"fillColor=#ECEFF1;");f.geometry.relative=!0;f.geometry.offset=new mxPoint(270,50);f.vertex=!0;b.insert(f);e=new mxCell("Zone",new mxGeometry(0,0,230,250),c+"fillColor=#FFF3E0;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(10,50);e.vertex=!0;f.insert(e);f=new mxCell("Firewall",new mxGeometry(0,0,210,190),c+"fillColor=#FBE9E7;");f.geometry.relative=!0;f.geometry.offset=new mxPoint(10,50);f.vertex= +!0;e.insert(f);e=new mxCell("Instance Group",new mxGeometry(0,0,190,60),c+"fillColor=#F9FBE7;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(10,50);e.vertex=!0;f.insert(e);e=new mxCell("Replica Pool",new mxGeometry(0,0,190,60),c+"fillColor=#E0F7FA;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(10,120);e.vertex=!0;f.insert(e);f=new mxCell("Optional Component",new mxGeometry(0,0,250,60),"rounded=1;absoluteArcSize=1;arcSize=2;html=1;strokeColor=none;gradientColor=none;shadow=0;dashed=1;strokeColor=#4284F3;fontSize=12;fontColor=#9E9E9E;align=left;verticalAlign=top;spacing=10;spacingTop=-4;fillColor=none;dashPattern=1 2;strokeWidth=2;"); +f.geometry.relative=!0;f.geometry.offset=new mxPoint(270,370);f.vertex=!0;b.insert(f);return a.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Project Zone / Cloud Service Provider")}),this.createVertexTemplateEntry("fillColor=#4DA1F5;strokeColor=none;shadow=1;gradientColor=none;fontSize=14;align=left;spacingLeft=50;fontColor=#ffffff;whiteSpace=wrap;html=1;",1E3,40,"Architecture: App Engine and Cloud Endpoints","Title bar",null,null,this.getTagsForStencil("mxgraph.gcp2.zones", +"","gcp google cloud platform zone title bar").join(" ")),this.createVertexTemplateEntry("strokeColor=none;shadow=0;gradientColor=none;fontSize=11;align=left;spacing=10;fontColor=#;9E9E9E;verticalAlign=top;spacingTop=100;whiteSpace=wrap;html=1;",300,350,"Use this note to call out\nor clarify parts of a diagram","Note",null,null,this.getTagsForStencil("mxgraph.gcp2.zones","","gcp google cloud platform zone note").join(" ")),this.addEntry("gcp google cloud platform zone project",function(){var b=new mxCell("Google Cloud Platform", +new mxGeometry(0,0,650,350),"fillColor=#F6F6F6;strokeColor=none;shadow=0;gradientColor=none;fontSize=14;align=left;spacing=10;fontColor=#717171;9E9E9E;verticalAlign=top;spacingTop=-4;fontStyle=0;spacingLeft=40;html=1;whiteSpace=wrap;");b.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,23,20),"shape=mxgraph.gcp2.google_cloud_platform;fillColor=#F6F6F6;strokeColor=none;shadow=0;gradientColor=none;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(20,10);e.vertex=!0;b.insert(e);return a.createVertexTemplateFromCells([b], b.geometry.width,b.geometry.height,"Project Zone")}),this.addEntry("gcp google cloud platform zone markers",function(){c="shape=ellipse;perimeter=ellipsePerimeter;strokeColor=#BDBDBD;strokeWidth=2;shadow=0;gradientColor=none;fontColor=#757575;align=center;html=1;fontStyle=1;spacingTop=-1;";var b=new mxCell("1",new mxGeometry(0,0,20,20),c);b.vertex=!0;var e=new mxCell("2",new mxGeometry(40,0,20,20),c);e.vertex=!0;var f=new mxCell("3",new mxGeometry(80,0,20,20),c);f.vertex=!0;var g=new mxCell("4",new mxGeometry(120, 0,20,20),c);g.vertex=!0;var h=new mxCell("5",new mxGeometry(160,0,20,20),c);h.vertex=!0;var k=new mxCell("6",new mxGeometry(200,0,20,20),c);k.vertex=!0;var l=new mxCell("7",new mxGeometry(240,0,20,20),c);l.vertex=!0;var m=new mxCell("Markers to be used with the legend",new mxGeometry(0,20,260,30),"strokeColor=none;fillColor=none;fontColor=#757575;align=left;html=1;fontStyle=0;fontSize=11;");m.vertex=!0;return a.createVertexTemplateFromCells([b,e,f,g,h,k,l,m],260,50,"Markers")}),this.addEntry("gcp google cloud platform zone markers", function(){var b=new mxCell("",new mxGeometry(0,0,600,70),"strokeColor=#BDBDBD;strokeWidth=1;shadow=0;gradientColor=none;");b.vertex=!0;var e=new mxCell("1 Commit code",new mxGeometry(0,0,200,30),"strokeColor=none;fillColor=none;fontColor=#757575;align=left;html=1;fontStyle=0;spacingLeft=5;fontSize=11;verticalAlign=top;whiteSpace=wrap;spacingRight=5;");e.geometry.relative=!0;e.vertex=!0;b.insert(e);e=new mxCell("2 Detect code change",new mxGeometry(0,0,200,30),"strokeColor=none;fillColor=none;fontColor=#757575;align=left;html=1;fontStyle=0;spacingLeft=5;fontSize=11;verticalAlign=top;whiteSpace=wrap;spacingRight=5;"); @@ -7841,7 +7841,8 @@ a);this.addGCP2ProductCardSet("Google\nAnalytics 360","google_analytics_360",1,. 38,42,"Speech-to-Text",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute speech to text").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjIwLjAwMDQ2MzQ4NTcxNzc3MyIgaGVpZ2h0PSIxNi42MzE1MTU1MDI5Mjk2ODgiIHZpZXdCb3g9IjAgMC4wMDAyNDE0MDk2NTI1MTcxNzcxNiAyMC4wMDA0NjM0ODU3MTc3NzMgMTYuNjMxNTE1NTAyOTI5Njg4Ij4mI3hhOwk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPiYjeGE7CS5zdDB7ZmlsbDojNjY5ZGY2O30mI3hhOwkuc3Qxe2ZpbGw6IzQyODVmNDt9JiN4YTsJPC9zdHlsZT4mI3hhOwk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNLjAxIDMuMzA2aDYuNjR2MS42N0guMDF6bS0uMDEgMTBoMCA5LjE3di0xLjY3SDB6bTAtNC4xN2g0LjE4SDEwbC0xLjY3LTEuNjZIMi41MSAweiIvPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xMCA1LjM4NmEuNDIuNDIgMCAwIDEgLjQyLS4zNi40MS40MSAwIDAgMSAuNDEuMzZ2OS4xOGEyLjA5IDIuMDkgMCAwIDAgMi42MSAyIDIuMTYgMi4xNiAwIDAgMCAxLjU2LTIuMTFWMi4wNjZhLjQuNCAwIDAgMSAuMTktLjQuNDEuNDEgMCAwIDEgLjQ1IDAgLjQuNCAwIDAgMSAuMTkuNHY5LjE2YTIuMDcgMi4wNyAwIDAgMCAuODEgMS42NCAyIDIgMCAwIDAgMS44LjM3IDIuMTYgMi4xNiAwIDAgMCAxLjU2LTIuMTJ2LTIuOGgtMS42N3YyLjkyYS40LjQgMCAwIDEtLjE5LjQuNDEuNDEgMCAwIDEtLjQ1IDAgLjQuNCAwIDAgMS0uMTktLjR2LTkuMTdhMi4wOSAyLjA5IDAgMCAwLTIuNjEtMiAyLjE2IDIuMTYgMCAwIDAtMS41NiAyLjEzdjEyLjM3YS40LjQgMCAwIDEtLjE5LjQuNDEuNDEgMCAwIDEtLjQ1IDAgLjQuNCAwIDAgMS0uMTktLjR2LTkuMTdhMi4wNyAyLjA3IDAgMCAwLTQuMTEtLjM2IDIuNCAyLjQgMCAwIDAtLjA1LjQ2djJMMTAgOS4xMzZ6Ii8+JiN4YTs8L3N2Zz4=;", 42,36,"Text-to-Speech",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute text to speech").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjE5Ljk4OTk5OTc3MTExODE2NCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDE5Ljk4OTk5OTc3MTExODE2NCAxNCI+JiN4YTsJPHN0eWxlIHR5cGU9InRleHQvY3NzIj4mI3hhOwkuc3Qwe2ZpbGw6IzY2OWRmNjt9JiN4YTsJLnN0MXtmaWxsOiM0Mjg1ZjQ7fSYjeGE7CTwvc3R5bGU+JiN4YTsJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEwLjI3IDIuMzNoMi4wNXYxLjMzSDkuNEw3LjA3IDBIMHY0LjMzaDEuOTlMMy4yNSAyaDIuNTdsLjg2IDEuMzNINC4xMUwyLjg1IDUuNjZIMHYyLjU5aDIuODVsMS4yNiAyLjQxaDIuNTdMNS44MiAxMkgzLjI1TDEuOTkgOS42NkgwVjE0aDcuMDdsMi4zMy0zLjY3aDIuOTJ2MS4zM2gtMi4wNUw4LjggMTRoNS41MlY3LjY2SDcuOTFMNy4wOCA5SDUuMjRMNi41IDcgNS4yNCA1aDEuODRsLjggMS4zM2g2LjQ0VjBIOC44eiIvPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNS45OSAxMC4xMWw0IDIuOTVWMS4xbC00IDIuOTF6Ii8+JiN4YTs8L3N2Zz4=;", 42,29,"Video\nIntelligence API",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute video intelligence api application programming interface").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJzdmcyNDYzMyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMjA4LjcxMzM2IDI1OC45NjYwOSIgaGVpZ2h0PSIyNTguOTY2MDltbSIgd2lkdGg9IjIwOC43MTMzNm1tIj4mI3hhOyAgJiN4YTsgIDxkZWZzIGlkPSJkZWZzMjQ2MzAiLz4mI3hhOyAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTMuMzk0NjI0OCwtMTcuODEwMjgyKSIgaWQ9ImxheWVyMSI+JiN4YTsgICAgPHBhdGggdHJhbnNmb3JtPSJzY2FsZSgwLjI2NDU4MzMzKSIgZD0ibSAxMTIuNDcwNyw2Ny4zMTQ0NTMgYyAtNTguMzI5NTUyLDAgLTk5LjY0MDYyMiw0MS4wMzc2NDcgLTk5LjY0MDYyMiwxMDYuODUxNTY3IHYgNzc0LjE4NzUgYyAwLDU2LjMxMzc4IDQzLjI2NjU5Niw5Ny43MzA0OCAxMDEuMjc3MzQyLDk3LjczMDQ4IEggNDEwLjA5OTYxIFYgOTQ3LjUwNTg2IEggMTA5LjM4MjgxIFYgMTYzLjIxODc1IGggMzAwLjcxNjggViA2Ny4zMTQ0NTMgWiBtIDQ3MS43MjA3MSwyOC43NzczNDQgYSA2OS44ODQ0ODksNjkuODg0NDg5IDAgMCAwIC02OS44ODQ3Nyw2OS44ODQ3NjMgNjkuODg0NDg5LDY5Ljg4NDQ4OSAwIDAgMCA0OS4wNjQ0NSw2Ni43MDExNyB2IDc2Ljg4ODY4IGMgMCwzMi4xNzM1NCAtMy4wMDI0OSw1NC4yMDgzNiAtOS4wMDU4Niw2NC4zNDc2NSAtNi4wMDMzNiwxMC4xMzkzIC0xNC4wMTI0MiwxNS4yOTY4OCAtNDIuMjM4MjgsMTUuMjk2ODggaCAtNDkuMTQyNTcgdiAzOS45OTQxNCBoIDQ5LjE0MjU3IGMgMzUuMzA1MSwwIDYyLjkxMzc2LC0xMS43MTI1MiA3Ni42NTIzNSwtMzQuOTE2MDIgMTMuNzM4NTgsLTIzLjIwMzU1IDE0LjU5Mzc1LC01MC45ODc2OCAxNC41OTM3NSwtODQuNzIyNjUgViAyMzMuMTM0NzcgQSA2OS44ODQ0ODksNjkuODg0NDg5IDAgMCAwIDY1NC4wNzQyMiwxNjUuOTc2NTYgNjkuODg0NDg5LDY5Ljg4NDQ4OSAwIDAgMCA1ODQuMTkxNDEsOTYuMDkxNzk3IFogTSAyMDkuMTA3NDIsMzU5Ljc5Njg4IHYgOTYuNjM2NzEgaCAyMDAuOTE3OTcgdiAtOTYuNjM2NzEgeiBtIDUyMi42Nzc3NCwyOC42OTMzNSBhIDY5Ljg4NDQ4OSw2OS44ODQ0ODkgMCAwIDAgLTY5Ljg4NDc3LDY5Ljg4NDc3IDY5Ljg4NDQ4OSw2OS44ODQ0ODkgMCAwIDAgNDQuNTMzMiw2NS4xMTkxNCBjIC0wLjgyMjcyLDI4LjAzMTA0IC04LjIxNjMsNDAuMDcxOTggLTIwLjgxODM2LDQ4LjQ3NjU2IC0xMy4zODU1Myw4LjkyNzE3IC0zNy43MTQ3NCwxMy4zOTg0NCAtNzEuMjc5MjksMTMuMzk4NDQgSCA0NjMuNjY0MDYgdiAzOS45OTQxNCBoIDE1MC42NzE4OCBjIDM2LjUyOTQzLDAgNjguMjkxOTIsLTMuMzI0MjMgOTMuNDY4NzUsLTIwLjExNTIzIDIzLjMyMzQ4LC0xNS41NTQ5NiAzNi42MzkxNywtNDIuOTc3MzEgMzguNDc0NjEsLTc4LjU0MTAyIEEgNjkuODg0NDg5LDY5Ljg4NDQ4OSAwIDAgMCA4MDEuNjY3OTcsNDU4LjM3NSA2OS44ODQ0ODksNjkuODg0NDg5IDAgMCAwIDczMS43ODUxNiwzODguNDkwMjMgWiBNIDIwOS4xMDc0Miw1NTYuNDgyNDIgdiA5Ni42MzY3MiBoIDIwMC45MTc5NyB2IC05Ni42MzY3MiB6IG0gMCwxOTYuNjg3NSB2IDk2LjYzNjcyIGggMjAwLjkxNzk3IHYgLTk2LjYzNjcyIHogbSAyNTQuOTc2NTYsMjcuNTQ2ODggdiAzOS45OTQxNCBoIDk4LjU5OTYxIGMgMzIuMzE0MjUsMCA1NS40NDQxMiwyLjUyNzk1IDY2LjIzMDQ3LDguMDAxOTUgNS4zOTMxNiwyLjczNzAyIDguMDg0ODgsNS4zNTUzMiAxMC41NDI5NywxMC4yMzI0MiAyLjQ1ODA5LDQuODc3MTQgNC40MDYyNSwxMi43Nzc2OCA0LjQwNjI1LDI1LjAzMTI1IHYgMTkuODE4MzYgYSA2OS44ODQ0ODksNjkuODg0NDg5IDAgMCAwIC00OS43MjI2Niw2Ni44OTY0OSA2OS44ODQ0ODksNjkuODg0NDg5IDAgMCAwIDY5Ljg4NDc3LDY5Ljg4NDc5IDY5Ljg4NDQ4OSw2OS44ODQ0ODkgMCAwIDAgNjkuODg0NzcsLTY5Ljg4NDc5IDY5Ljg4NDQ4OSw2OS44ODQ0ODkgMCAwIDAgLTUwLjA0NDkzLC02Ni45ODI0MyB2IC0xOS43MzI0MiBjIDAsLTE2LjM2ODgzIC0yLjQ2MjIsLTMwLjY4NTUgLTguNjg3NSwtNDMuMDM3MTEgLTYuMjI1MjYsLTEyLjM1MTYxIC0xNi40OTAxNywtMjEuOTczMDIgLTI4LjE2MjExLC0yNy44OTY0OCBDIDYyMy42NzE3NSw3ODEuMTk2MDggNTk2LjIxNjcsNzgwLjcxNjggNTYyLjY4MzU5LDc4MC43MTY4IFoiIHN0eWxlPSJjb2xvcjojMDAwMDAwO29wYWNpdHk6MTtmaWxsOiM1OTg2ZjI7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjM5Ljk5OTk7LWlua3NjYXBlLXN0cm9rZTpub25lIiBpZD0icGF0aDI0NzYyIi8+JiN4YTsgIDwvZz4mI3hhOzwvc3ZnPg==;", -34,42,"Document AI",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute document ai artificial intelligence").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJzdmcyNDYzMyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMzE4Ljg3MDk3IDI1NC42NzY0MyIgaGVpZ2h0PSIyNTQuNjc2NDRtbSIgd2lkdGg9IjMxOC44NzA5N21tIj4mI3hhOyAgJiN4YTsgIDxkZWZzIGlkPSJkZWZzMjQ2MzAiLz4mI3hhOyAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTAuMTk0MzAzNDIsLTUuNDMxMTkyOSkiIGlkPSJsYXllcjEiPiYjeGE7ICAgIDxwYXRoIHRyYW5zZm9ybT0ibWF0cml4KDAuMjY0NTgzMzMsMCwwLDAuMjY0NTgzMzMsMy4zOTQ2MjQ4LDE3LjgxMDI4MikiIGQ9Ik0gNTkwLjAzNTE2LC00Ni43ODcxMDkgLTEyLjA5NTcwMyw0MzUuMTk3MjcgSCAxMTkzLjA4NTkgWiIgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiNiNWNiZjk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuOTk5OTk5cHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIgaWQ9InBhdGgxMDYyIi8+JiN4YTsgICAgPHBhdGggdHJhbnNmb3JtPSJtYXRyaXgoMC4yNjQ1ODMzMywwLDAsMC4yNjQ1ODMzMywzLjM5NDYyNDgsMTcuODEwMjgyKSIgZD0iTSAtMTIuMDk1NzAzLDQzNS4xOTcyNyA1OTAuNDk0MTQsOTE1Ljc2OTUzIDExOTMuMDg1OSw0MzUuMTk3MjcgWiIgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiM3NjllZjU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjcuNDI2Nzc7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIgaWQ9InBhdGgxMDY0Ii8+JiN4YTsgICAgPHBhdGggaWQ9InBhdGgyMjU5IiBkPSJtIDE1OS4yMDg4OCw5OC41MTk1NjcgYyAxOS4wNjkwNSwwIDM0LjI1OTkyLDE1LjE5MDg3MyAzNC4yNTk5MiwzNC4yNTk5MjMgMCwxOS4wNjkwNSAtMTUuMTkwODcsMzQuMjU5NDEgLTM0LjI1OTkyLDM0LjI1OTQxIC0xOS4wNjkwNCwwIC0zNC4yNTk5MiwtMTUuMTkwMzYgLTM0LjI1OTkyLC0zNC4yNTk0MSAwLC0xOS4wNjkwNSAxNS4xOTA4NywtMzQuMjU5OTIzIDM0LjI1OTkyLC0zNC4yNTk5MjMgeiIgc3R5bGU9ImNvbG9yOiMwMDAwMDA7b3BhY2l0eToxO2ZpbGw6IzU5ODZmMjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7LWlua3NjYXBlLXN0cm9rZTpub25lIi8+JiN4YTsgICAgPHBhdGggZD0ibSAyMjEuNjUyMzcsMjEwLjY0Mzk5IC0yOC45MzM2NSwtMjkuMDcyMTMgYyAtOS41NDkyMyw2LjU5MzE1IC0yMS4xMDA1MiwxMC40NjcwNiAtMzMuNTEwMDgsMTAuNDY3MDYgLTMyLjUyMDk3LDAgLTU5LjE2MDg2LC0yNi41ODMxNiAtNTkuMjU3MzU3LC01OS4wODI3IC0xLjhlLTQsLTAuMDU5IC0wLjAwMywtMC4xMTc2NiAtMC4wMDMsLTAuMTc2NzMgMCwtMzIuNTgwMDQgMjYuNjc5Mzg3LC01OS4yNTk5NDcgNTkuMjU5NDM3LC01OS4yNTk5NDcgMzIuNTgwMDUsMCA1OS4yNTk5NSwyNi42Nzk5MDcgNTkuMjU5OTUsNTkuMjU5OTQ3IDAsMC4wNTkyIC0wLjAwMywwLjExNzYyIC0wLjAwMywwLjE3NjczIC0wLjAzNDYsMTEuNjE5OTggLTMuNDYwNDgsMjIuNDgzNDcgLTkuMzM3NDEsMzEuNjQ2MTMgbCAzMS4wODc1MSwzMS4yMzY4NiB6IE0gMTU5LjIwODY0LDk4LjUxOTU2NyBjIC0xOS4wNjkwNSwwIC0zNC4yNTk5MiwxNS4xOTA4NzMgLTM0LjI1OTkyLDM0LjI1OTkyMyAwLDE5LjA2OTA1IDE1LjE5MDg3LDM0LjI1OTQxIDM0LjI1OTkyLDM0LjI1OTQxIDE5LjA2OTA1LDAgMzQuMjU5OTEsLTE1LjE5MDM2IDM0LjI1OTkxLC0zNC4yNTk0MSAwLC0xOS4wNjkwNSAtMTUuMTkwODYsLTM0LjI1OTkyMyAtMzQuMjU5OTEsLTM0LjI1OTkyMyB6IiBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4M3B4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiIGlkPSJwYXRoMTA2Mi03Ii8+JiN4YTsgIDwvZz4mI3hhOzwvc3ZnPg==;", +34,42,"Document AI",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute document ai artificial intelligence").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJzdmc4MjciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDE3Ni4zNzUwNyAxMzYuMDc2MTciIGhlaWdodD0iMTM2LjA3NjE3bW0iIHdpZHRoPSIxNzYuMzc1MDhtbSI+JiN4YTsgIDxwYXRoIGQ9Ik0gNjEuMzg0ODQ3LDAgOC40ZS01LDM0LjA0MzQ1OSBsIDYuNzUsMTIuMjkyNDcgTCA2NC45ODA1NSwxNCBoIDUwLjI3NTM5IFYgMCBaIiBzdHlsZT0iY29sb3I6IzAwMDAwMDtvcGFjaXR5OjE7ZmlsbDojYWVjYmZhO2ZpbGwtb3BhY2l0eToxOy1pbmtzY2FwZS1zdHJva2U6bm9uZSIvPiYjeGE7ICA8cGF0aCBkPSJNIDAsMzQuMDQzMzg5IFYgMTM2LjA3NTkzIEggNjEuMTQ2NjUzIFYgMTIyLjA3NjI2IEggMTQuMDAwMTc5IFYgNDguMDcwNDQ5IGggNDcuODA0ODM0IHYgLTE0LjAyNzA2IHogbSAxMTUuMjMyNzYsNy4xMzY1MiBjIC0xOC42NzU5NTEsMCAtMzMuOTY0ODUxLDE1LjI4ODkxIC0zMy45NjQ4NTEsMzMuOTY0ODUgMCwxOC42NzU5NSAxNS4yODg5LDMzLjk2NjQwMSAzMy45NjQ4NTEsMzMuOTY2NDAxIDYuODgwNDIsMCAxMy4yOTk4NCwtMi4wNzczIDE4LjY2NjA0LC01LjYzMjczIGwgMjIuMzc0ODYsMjMuMDc0MDUgMTAuMDUwNTUsLTkuNzQ1NjYgLTIyLjU3MTc1LC0yMy4yNzgxNzEgYyAzLjQ0MjE0LC01LjMwODM5IDUuNDQ2NywtMTEuNjIzODcgNS40NDY3LC0xOC4zODM4OSAwLC0xOC42NzU5NCAtMTUuMjkwNDYsLTMzLjk2NDg1IC0zMy45NjY0LC0zMy45NjQ4NSB6IG0gMCwxMy45OTk2NiBjIDExLjEwOTc5LDAgMTkuOTY2NzQsOC44NTU0IDE5Ljk2Njc0LDE5Ljk2NTE5IDFlLTUsMTEuMTA5OCAtOC44NTY5NSwxOS45NjY3NCAtMTkuOTY2NzQsMTkuOTY2NzQgLTExLjEwOTgsMCAtMTkuOTY1MTkxLC04Ljg1Njk0IC0xOS45NjUxOTEsLTE5Ljk2Njc0IDAsLTExLjEwOTc5IDguODU1NDAxLC0xOS45NjUxOSAxOS45NjUxOTEsLTE5Ljk2NTE5IHoiIHN0eWxlPSJjb2xvcjojMDAwMDAwO29wYWNpdHk6MTtmaWxsOiM2NjlkZjY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjE7LWlua3NjYXBlLXN0cm9rZTpub25lIi8+JiN4YTsgIDxwYXRoIGQ9Ik0gMTE1LjI1NTk0LDAgNTQuMTAxNjQ2LDM0LjA0MzQ1OSBWIDEzNi4wNzYxNyBoIDcgMTE1LjI3MzQzNCBWIDM0LjA0MzQ1OSBaIG0gLTAuMDAyLDE2LjAyMzQzNyA0Ny4xMjEwOSwyNi4yNDAyMzIgViAxMjIuMDc2MTcgSCA2OC4xMDE2NDYgViA0Mi4yNjM2NjkgWiIgc3R5bGU9ImNvbG9yOiMwMDAwMDA7b3BhY2l0eToxO2ZpbGw6IzQyODVmNDtmaWxsLW9wYWNpdHk6MTstaW5rc2NhcGUtc3Ryb2tlOm5vbmUiLz4mI3hhOzwvc3ZnPg==;", +42,32,"Document AI\nWarehouse",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute document ai warehouse artificial intelligence").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJzdmcyNDYzMyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMzE4Ljg3MDk3IDI1NC42NzY0MyIgaGVpZ2h0PSIyNTQuNjc2NDRtbSIgd2lkdGg9IjMxOC44NzA5N21tIj4mI3hhOyAgJiN4YTsgIDxkZWZzIGlkPSJkZWZzMjQ2MzAiLz4mI3hhOyAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTAuMTk0MzAzNDIsLTUuNDMxMTkyOSkiIGlkPSJsYXllcjEiPiYjeGE7ICAgIDxwYXRoIHRyYW5zZm9ybT0ibWF0cml4KDAuMjY0NTgzMzMsMCwwLDAuMjY0NTgzMzMsMy4zOTQ2MjQ4LDE3LjgxMDI4MikiIGQ9Ik0gNTkwLjAzNTE2LC00Ni43ODcxMDkgLTEyLjA5NTcwMyw0MzUuMTk3MjcgSCAxMTkzLjA4NTkgWiIgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiNiNWNiZjk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuOTk5OTk5cHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIgaWQ9InBhdGgxMDYyIi8+JiN4YTsgICAgPHBhdGggdHJhbnNmb3JtPSJtYXRyaXgoMC4yNjQ1ODMzMywwLDAsMC4yNjQ1ODMzMywzLjM5NDYyNDgsMTcuODEwMjgyKSIgZD0iTSAtMTIuMDk1NzAzLDQzNS4xOTcyNyA1OTAuNDk0MTQsOTE1Ljc2OTUzIDExOTMuMDg1OSw0MzUuMTk3MjcgWiIgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiM3NjllZjU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjcuNDI2Nzc7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIgaWQ9InBhdGgxMDY0Ii8+JiN4YTsgICAgPHBhdGggaWQ9InBhdGgyMjU5IiBkPSJtIDE1OS4yMDg4OCw5OC41MTk1NjcgYyAxOS4wNjkwNSwwIDM0LjI1OTkyLDE1LjE5MDg3MyAzNC4yNTk5MiwzNC4yNTk5MjMgMCwxOS4wNjkwNSAtMTUuMTkwODcsMzQuMjU5NDEgLTM0LjI1OTkyLDM0LjI1OTQxIC0xOS4wNjkwNCwwIC0zNC4yNTk5MiwtMTUuMTkwMzYgLTM0LjI1OTkyLC0zNC4yNTk0MSAwLC0xOS4wNjkwNSAxNS4xOTA4NywtMzQuMjU5OTIzIDM0LjI1OTkyLC0zNC4yNTk5MjMgeiIgc3R5bGU9ImNvbG9yOiMwMDAwMDA7b3BhY2l0eToxO2ZpbGw6IzU5ODZmMjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7LWlua3NjYXBlLXN0cm9rZTpub25lIi8+JiN4YTsgICAgPHBhdGggZD0ibSAyMjEuNjUyMzcsMjEwLjY0Mzk5IC0yOC45MzM2NSwtMjkuMDcyMTMgYyAtOS41NDkyMyw2LjU5MzE1IC0yMS4xMDA1MiwxMC40NjcwNiAtMzMuNTEwMDgsMTAuNDY3MDYgLTMyLjUyMDk3LDAgLTU5LjE2MDg2LC0yNi41ODMxNiAtNTkuMjU3MzU3LC01OS4wODI3IC0xLjhlLTQsLTAuMDU5IC0wLjAwMywtMC4xMTc2NiAtMC4wMDMsLTAuMTc2NzMgMCwtMzIuNTgwMDQgMjYuNjc5Mzg3LC01OS4yNTk5NDcgNTkuMjU5NDM3LC01OS4yNTk5NDcgMzIuNTgwMDUsMCA1OS4yNTk5NSwyNi42Nzk5MDcgNTkuMjU5OTUsNTkuMjU5OTQ3IDAsMC4wNTkyIC0wLjAwMywwLjExNzYyIC0wLjAwMywwLjE3NjczIC0wLjAzNDYsMTEuNjE5OTggLTMuNDYwNDgsMjIuNDgzNDcgLTkuMzM3NDEsMzEuNjQ2MTMgbCAzMS4wODc1MSwzMS4yMzY4NiB6IE0gMTU5LjIwODY0LDk4LjUxOTU2NyBjIC0xOS4wNjkwNSwwIC0zNC4yNTk5MiwxNS4xOTA4NzMgLTM0LjI1OTkyLDM0LjI1OTkyMyAwLDE5LjA2OTA1IDE1LjE5MDg3LDM0LjI1OTQxIDM0LjI1OTkyLDM0LjI1OTQxIDE5LjA2OTA1LDAgMzQuMjU5OTEsLTE1LjE5MDM2IDM0LjI1OTkxLC0zNC4yNTk0MSAwLC0xOS4wNjkwNSAtMTUuMTkwODYsLTM0LjI1OTkyMyAtMzQuMjU5OTEsLTM0LjI1OTkyMyB6IiBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4M3B4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiIGlkPSJwYXRoMTA2Mi03Ii8+JiN4YTsgIDwvZz4mI3hhOzwvc3ZnPg==;", 42,34,"Visual\nInspection AI",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute visual inspection ai artificial intelligence").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJzdmcyNDYzMyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMjYzLjMwODg0IDI1OC4xNDg4IiBoZWlnaHQ9IjI1OC4xNDg4bW0iIHdpZHRoPSIyNjMuMzA4ODRtbSI+JiN4YTsgICYjeGE7ICA8ZGVmcyBpZD0iZGVmczI0NjMwIi8+JiN4YTsgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xOC41Mjk4OTgsMC4wNDIwNzMyNSkiIGlkPSJsYXllcjEiPiYjeGE7ICAgIDxwYXRoIHRyYW5zZm9ybT0ibWF0cml4KDAuMjY0NTgzMzMsMCwwLDAuMjY0NTgzMzMsMC4xOTQzMDM0Miw1LjQzMTE5MjkpIiBkPSJtIDI0Ny4wNTI3MywtMjAuNjgxNjQxIC0xNDAuNTU4NTksMi4yMjg1MTYgYyAtMjAuODY5MjAyLDAuMzMxOTYgLTM3LjUxODcwNywxNy41MTc0NzQzOCAtMzcuMTg5NDUyLDM4LjM4NjcxOSAwLjMyNzY5MywyMC44NzIyNzMgMTcuNTE0NDczLDM3LjUyNjUwMSAzOC4zODY3MjIsMzcuMTk3MjY1IGwgMTE1Ljg2NTIzLC0xLjg0NTcwMyAxODcuMjIwNyw0MDkuNDI5Njg0IC02Mi42NjA5MSwxMjQuOTM5NDkgYyAtMjIuNzEyODIsNDcuMzAyODQgOC4xOTM3MSwxMTAuNjgxNjEgNjYuNDg1OTcsMTEwLjY4MTYxIGwgNTc0LjUzMDQxLDEuMTczODMgYyAyMC44NzM0OSwwLjAzNjUgMzcuODI0NDksLTE2Ljg1NTA0IDM3Ljg2MTI5LC0zNy43Mjg1MiAwLjAzNywtMjAuODcwNDMgLTE2Ljg1MDIsLTM3LjgyMDE2IC0zNy43MjA2NiwtMzcuODYxMzMgbCAtNTcxLjU5NTcxLC0xLjA2MjUgNTguNjM0NzcsLTEyMi4wMDk3NiAzNjguOTc2NTYsLTAuODE4MzYgYyAxMy42Mjg1NSwtMC4wMjk4IDI2LjE4NTgsLTcuMzkzOTEgMzIuODY1MjQsLTE5LjI3MzQ0IGwgMTgxLjQ3NDYsLTMyMi45MzU1NSBjIDEwLjIyNzUsLTE4LjE5NzI3IDMuNzY2MiwtNDEuMjQwMTQgLTE0LjQzMTYsLTUxLjQ2Njc5IC04LjczOTMsLTQuOTEwMDggLTE5LjA3MTIsLTYuMTQ3MyAtMjguNzIyNywtMy40Mzk0NiAtOS42NTA0LDIuNzA1OTkgLTE3LjgzMDg2LDkuMTM0MyAtMjIuNzQyMTgsMTcuODcxMSBMIDgyMy4wNjI1LDQyNi40OTAyMyA0NzYuNzY5NTMsNDI3LjI1NTg2IDI4Mi4wMjE0OCwxLjM4ODY3MTkgQyAyNzUuNzc5MywtMTIuMjU2OTQxIDI2Mi4wNTY0NSwtMjAuOTE4MDMgMjQ3LjA1MjczLC0yMC42ODE2NDEgWiIgc3R5bGU9ImNvbG9yOiMwMDAwMDA7b3BhY2l0eToxO2ZpbGw6IzU5ODZmMjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6My43Nzk1MztzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7LWlua3NjYXBlLXN0cm9rZTpub25lIiBpZD0icGF0aDE2MTAyIi8+JiN4YTsgICAgPHBhdGggaWQ9InJlY3QxNzc2MyIgZD0ibSAxMjMuMjY2LDQxLjM3NjY1OSBoIDIyLjM0NjA3IGMgMi4yODkyMywwIDQuMTMyMiwxLjg0Mjk2MiA0LjEzMjIsNC4xMzIyMDIgdiA2Mi4wNjgzMjkgaCAtMTYuNjM5NyBMIDExOS4xMzM4LDc2LjM0MjA3OSBWIDQ1LjUwODg2MSBjIDAsLTIuMjg5MjQgMS44NDI5NiwtNC4xMzIyMDIgNC4xMzIyLC00LjEzMjIwMiB6IiBzdHlsZT0iY29sb3I6IzAwMDAwMDtvcGFjaXR5OjE7ZmlsbDojYjVjYmY5O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDoyMDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7LWlua3NjYXBlLXN0cm9rZTpub25lIi8+JiN4YTsgICAgPHBhdGggaWQ9InJlY3QxNzc2My01IiBkPSJtIDE2NC40OTE5OCwyNy4xMDYwMDkgaCAyMS40NjEwOSBjIDIuNjk3OSwwIDQuODY5ODUsMi4xNzE5NTEgNC44Njk4NSw0Ljg2OTg0NSBWIDEwNy41NzcxOSBIIDE1OS42MjIxMyBWIDMxLjk3NTg1NCBjIDAsLTIuNjk3ODk0IDIuMTcxOTUsLTQuODY5ODQ1IDQuODY5ODUsLTQuODY5ODQ1IHoiIHN0eWxlPSJjb2xvcjojMDAwMDAwO29wYWNpdHk6MTtmaWxsOiM3NjllZjU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjIwO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDstaW5rc2NhcGUtc3Ryb2tlOm5vbmUiLz4mI3hhOyAgICA8cGF0aCBpZD0icmVjdDE3NzYzLTMiIGQ9Im0gMjA1LjUwMTk2LDAuMzQ1MDg2NjMgaCAyMS4xMDEzMiBjIDIuODUyMDYsMCA1LjE0ODEyLDIuMjk2MDYyNzcgNS4xNDgxMiw1LjE0ODEyMjc3IFYgNzEuODc3OTMxIEwgMjExLjc5ODY1LDEwNy41NzcxOSBIIDIwMC4zNTM4NCBWIDUuNDkzMjA5NCBjIDAsLTIuODUyMDYgMi4yOTYwNiwtNS4xNDgxMjI3NyA1LjE0ODEyLC01LjE0ODEyMjc3IHoiIHN0eWxlPSJjb2xvcjojMDAwMDAwO29wYWNpdHk6MTtmaWxsOiM1OTg2ZjI7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjIwO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDstaW5rc2NhcGUtc3Ryb2tlOm5vbmUiLz4mI3hhOyAgICA8cGF0aCB0cmFuc2Zvcm09Im1hdHJpeCgwLjI2NDU4MzMzLDAsMCwwLjI2NDU4MzMzLDAuMTk0MzAzNDIsNS40MzExOTI5KSIgZD0ibSA4OTAuMjUxOTUsNzU2Ljc3NTM5IGEgOTguODY0OTg2LDk4Ljg2NDk4NiAwIDAgMCAtOTguODY1MjMsOTguODY1MjMgOTguODY0OTg2LDk4Ljg2NDk4NiAwIDAgMCA5OC44NjUyMyw5OC44NjUyNCA5OC44NjQ5ODYsOTguODY0OTg2IDAgMCAwIDk4Ljg2NTI0LC05OC44NjUyNCA5OC44NjQ5ODYsOTguODY0OTg2IDAgMCAwIC05OC44NjUyNCwtOTguODY1MjMgeiBtIC00ODkuNTMzMiwwLjQ4ODI4IGEgOTguODY0OTg2LDk4Ljg2NDk4NiAwIDAgMCAtOTguODY1MjMsOTguODY1MjQgOTguODY0OTg2LDk4Ljg2NDk4NiAwIDAgMCA5OC44NjUyMyw5OC44NjUyMyA5OC44NjQ5ODYsOTguODY0OTg2IDAgMCAwIDk4Ljg2NTIzLC05OC44NjUyMyA5OC44NjQ5ODYsOTguODY0OTg2IDAgMCAwIC05OC44NjUyMywtOTguODY1MjQgeiIgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiM3NjllZjU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjc1LjU5MDY7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIiBpZD0icGF0aDE3OTY3Ii8+JiN4YTsgIDwvZz4mI3hhOzwvc3ZnPg==;", 42,41,"Retail API",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute retail api application programming interface").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjM3Ny42ODQ2NTY1OTk1Nzg4MyIgaGVpZ2h0PSIzMzguNTIwNDc5NDMzNDQ2MiIgdmlld0JveD0iMC4wNjUwMDAwMDUwNjYzOTQ4IDAuNDc5OTk5NTQyMjM2MzI4MSA5OS45MjkwMDA4NTQ0OTIxOSA4OS41NjcwMDEzNDI3NzM0NCI+JiN4YTs8c3R5bGUgdHlwZT0idGV4dC9jc3MiPiYjeGE7CS5zdDB7ZmlsbDojYWVjYmZhO30mI3hhOwkuc3Qxe2ZpbGw6IzY2OWRmNjt9JiN4YTsJLnN0MntmaWxsOiM0Mjg1ZjQ7fSYjeGE7CS5zdDN7ZmlsbDojZmZmO30mI3hhOzwvc3R5bGU+JiN4YTsJPHBhdGggY2xhc3M9InN0MCIgZD0iTTU5LjU1NCAzNS42MmgzMC45NFY5Ljk4bDkuNS05LjVoLTQ5Ljk0djQ0LjY0em0yOS45ODEgNTQuNDI3VjUzLjYzNWwtOS41IDkuNXYxNy40MTJ6bS01MC4xMjggMFY1My42MzVsLTkuNSA5LjV2MTcuNDEyem0wLTQ0LjU3OVY5LjA1NmwtOS41IDkuNXYxNy40MTJ6IiBmaWxsPSIjYWVjYmZhIi8+JiN4YTsJPHBhdGggY2xhc3M9InN0MSIgZD0iTTk5Ljk5NCA0NS4xMlYuNDhsLTkuNSA5LjV2MjUuNjR6bS00OS44IDQ0LjkyN2gzOS4zNDJsLTkuNS05LjVINTkuNjkzem0tNTAuMTI4IDBoMzkuMzQybC05LjUtOS41SDkuNTY1em0wLTQ0LjU3OWgzOS4zNDJsLTkuNS05LjVIOS41NjV6IiBmaWxsPSIjNjY5ZGY2Ii8+JiN4YTsJPHBhdGggY2xhc3M9InN0MiIgZD0iTTUwLjA1NCA0NS4xMmg0OS45NGwtOS41LTkuNWgtMzAuOTR6bTkuNjM5IDM1LjQyN1Y2My4xMzVoMjAuMzQybDkuNS05LjVINTAuMTkzdjM2LjQxMnptLTUwLjEyOCAwVjYzLjEzNWgyMC4zNDJsOS41LTkuNUguMDY1djM2LjQxMnptMC00NC41NzlWMTguNTU2aDIwLjM0Mmw5LjUtOS41SC4wNjV2MzYuNDEyeiIgZmlsbD0iIzQyODVmNCIvPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik04Mi42ODUgMTQuMTk4bC0xMC4yNjcgOS4yMDgtNC43ODUtNC4zNS00LjExMiAzLjY3IDguOTMgNy44ODYgMTQuMTgyLTEyLjcyNnoiIGZpbGw9IiNmZmYiLz4mI3hhOzwvc3ZnPg==;", 42,38,"Recommendations\nAI",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute recommendations ai").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjE3LjUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgdmlld0JveD0iMCAwIDIwIDE3LjUiPiYjeGE7CTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+JiN4YTsJLnN0MHtmaWxsOiM0Mjg1ZjQ7fSYjeGE7CS5zdDF7ZmlsbDojNjY5ZGY2O30mI3hhOwk8L3N0eWxlPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xOC45MSAxMC42M0wyMCA4Ljc1IDE3LjgyIDVoLTMuMDdsLTEuMDYtMS44NkgxMi41VjEuODhoMS45NGwxLjA2IDEuODdoMS41OUwxNC45IDBoLTQuMjd2NWgxLjczbC43MyAxLjI1aC0yLjQ2djIuNWgyLjI2bDEuMDUtMS44N2gyLjgxbC43MiAxLjI1aC0yLjhMMTMuNjIgMTBoLTIuOTl2NC4zOGgzLjRsLS43MiAxLjI1aC0yLjY4djEuODdoNC4yN2wzLjI4LTUuNjJoLTIuMDlsLS43MyAxLjI1SDEyLjV2LTEuMjVoMi4xNGwuNzQtMS4yNXoiLz4mI3hhOwk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMS4wOSAxMC42M0wwIDguNzUgMi4xOCA1aDMuMDdsMS4wNi0xLjg2SDcuNVYxLjg4SDUuNTZMNC41IDMuNzVIMi45MUw1LjEgMGg0LjI4djVINy42NGwtLjczIDEuMjVoMi40N3YyLjVINy4xMUw2LjA2IDYuODhIMy4yNWwtLjcyIDEuMjVoMi44TDYuMzggMTBoM3Y0LjM4SDUuOTdsLjcyIDEuMjVoMi42OXYxLjg3SDUuMWwtMy4yOC01LjYyaDIuMDlsLjczIDEuMjVINy41di0xLjI1SDUuMzZsLS43NC0xLjI1eiIvPiYjeGE7PC9zdmc+;", @@ -7859,8 +7860,7 @@ a);this.addGCP2ProductCardSet("Google\nAnalytics 360","google_analytics_360",1,. 37,42,"Google Kubernetes\nEngine",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute google kubernetes engine").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJzdmc2NDI3IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMzkuMzMxMjQgMTM5LjUxODAyIiBoZWlnaHQ9IjEzOS41MTgwMm1tIiB3aWR0aD0iMTM5LjMzMTI0bW0iPiYjeGE7ICAmI3hhOyAgPGRlZnMgaWQ9ImRlZnM2NDI0Ii8+JiN4YTsgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zNy42MzI4MTYsLTYwLjY3MzM5MikiIGlkPSJsYXllcjEiPiYjeGE7ICAgIDxwYXRoIGlkPSJwYXRoNjU4NCIgZD0ibSA2NS4yNjEzNDksODkuNDE4MzQ1IDI4LjY1MTMyNCwyZS02IC0wLjE4NzI2MywtMjguNzQ0OTU1IGggODMuMDUxMzkgbCAwLjE4NzI2LDgzLjE0NTAxOCAtMjguNTU3NywwLjA5MzYgdiAyOC41NTc3IEggNjUuNDQ4NjEyIFoiIHN0eWxlPSJvcGFjaXR5OjE7ZmlsbDojNDI4NWY0O2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4M3B4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiLz4mI3hhOyAgICA8cGF0aCBkPSJtIDcyLjg0NTY5OCwxMjkuNzY3NTggYyAtMTkuNDA1NDYxLDAgLTM1LjIxMjg4MiwxNS44MDU0NyAtMzUuMjEyODgyLDM1LjIxMDk0IDAsMTkuNDA1NDYgMTUuODA3NDIxLDM1LjIxMjg5IDM1LjIxMjg4MiwzNS4yMTI4OSAxOS40MDU0NjgsMCAzNS4yMTA5NDIsLTE1LjgwNzQzIDM1LjIxMDk0MiwtMzUuMjEyODkgMCwtMTkuNDA1NDcgLTE1LjgwNTQ3NCwtMzUuMjEwOTQgLTM1LjIxMDk0MiwtMzUuMjEwOTQgeiBNIDEwNS44OTA2Myw3Mi45Nzg1MTYgViAxMDEuNTM1MTYgSCA3Ny4yMzgyODUgdiA2IDUzLjIzODI4IGggNTguODE2NDA1IHYgLTI4LjgzNzg5IGggMjguOTQzMzYgbCAtMC4xMTcxOSwtNTguOTU3MDM0IHogbSAxMiwxMiBoIDM1LjAxMzY3IGwgMC4wNzAzLDM0Ljk1NzAzNCBoIC0yOC45MTk5MiB2IDI4LjgzNzg5IEggODkuMjM4Mjc5IHYgLTM1LjIzODI4IGggMjguNjUyMzUxIHoiIHN0eWxlPSJjb2xvcjojMDAwMDAwO29wYWNpdHk6MTtmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kOy1pbmtzY2FwZS1zdHJva2U6bm9uZSIgaWQ9InBhdGg2NTQ5Ii8+JiN4YTsgICAgPHBhdGggaWQ9InBhdGg3MTgwIiBkPSJtIDcyLjg0NTcwMywxMzYuNzY3NTggYyAxNS42MjIzODgsMCAyOC4yMTA5MzcsMTIuNTg4NTUgMjguMjEwOTM3LDI4LjIxMDk0IDAsMTUuNjIyMzggLTEyLjU4ODU0OSwyOC4yMTI4OSAtMjguMjEwOTM3LDI4LjIxMjg5IC0xNS42MjIzODcsMCAtMjguMjEyODkxLC0xMi41OTA1MSAtMjguMjEyODkxLC0yOC4yMTI4OSAwLC0xNS42MjIzOSAxMi41OTA1MDQsLTI4LjIxMDk0IDI4LjIxMjg5MSwtMjguMjEwOTQgeiIgc3R5bGU9ImNvbG9yOiMwMDAwMDA7b3BhY2l0eToxO2ZpbGw6IzQyODVmNDtmaWxsLW9wYWNpdHk6MTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7LWlua3NjYXBlLXN0cm9rZTpub25lIi8+JiN4YTsgICAgPHBhdGggaWQ9InBhdGgxMjQ2MCIgZD0ibSA3Mi41MTk1MzEsMTQ4Ljg3NSAtNC40ODA0NjksNC40Mjk2OSA5LjA5NTcwNCw5LjIwMzEyIEggNTYuNjg1NTQ3IHYgNi4yOTg4MyBoIDIwLjQyMTg3NSBsIC05LjA2MjUsOS4xMjEwOSA0LjQ2ODc1LDQuNDM5NDYgMTYuNTk3NjU2LC0xNi43MDMxMyB6IiBzdHlsZT0iY29sb3I6IzAwMDAwMDtvcGFjaXR5OjE7ZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxOy1pbmtzY2FwZS1zdHJva2U6bm9uZSIvPiYjeGE7ICA8L2c+JiN4YTs8L3N2Zz4=;", 42,42,"Google Cloud\nVMware Engine",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute google cloud vmware engine").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJzdmcyNzk1MiIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTcwLjIyMjY5IDE3OS40NDAwOCIgaGVpZ2h0PSIxNzkuNDQwMDhtbSIgd2lkdGg9IjE3MC4yMjI2OW1tIj4mI3hhOyAgJiN4YTsgIDxkZWZzIGlkPSJkZWZzMjc5NDkiLz4mI3hhOyAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI2LjAyOTQxOSwtNTAuNTE5NTMpIiBpZD0ibGF5ZXIxIj4mI3hhOyAgICA8cGF0aCBkPSJNIDY5MS4zODg2Nyw1MzUuMDAxOTUgNDIwLjM5ODQ0LDgwNi42NjQwNiAxNDkuNDIzODMsNTM1LjY4OTQ1IDEyMy43NzE0OCw1NjEuMzQ3NjYgMjE0LjQ3ODUyLDY1Mi4wNTQ2OSA5OC4zNzg5MDYsNzA5LjE4MzU5IDQyMS44MzAwOCw4NjkuMTM4NjcgNzQxLjc0MDIzLDcwOC40NzQ2MSA2MjYuMDM5MDYsNjUxLjg4MjgxIDcxNy4wNzAzMSw1NjAuNjI1IFogTSA0MjAuMzk4NjMsMTkwLjkzOTk2IDEzNS43MzA4MSw0NzUuNjAwNDEgMTQ4LjUyMzYyLDQ4OC40MzAxMyA0MjAuMzk4NjMsNzYxLjA0MzMgNzA1Ljg0MTU2LDQ3NS42MDA0MSBaIG0gMC4wMzAyLDUxLjI3NDYxIEwgNjU0LjQ5Mzg0LDQ3NS42MzczIDQyMC40Mjg4Nyw3MDkuNjk0OSAxODcuMDEzNTIsNDc1LjYyOTkzIFoiIHRyYW5zZm9ybT0ic2NhbGUoMC4yNjQ1ODMzMykiIHN0eWxlPSJjb2xvcjojMDAwMDAwO29wYWNpdHk6MTtmaWxsOiM0Mjg1ZjQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjMuNzc5NTM7LWlua3NjYXBlLXN0cm9rZTpub25lIiBpZD0icGF0aDI4MDkyIi8+JiN4YTsgIDwvZz4mI3hhOzwvc3ZnPg==;", 40,42,"Bare Metal\nSolution",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute bare metal solution").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB2aWV3Qm94PSIwIDAgMjAgMjAiPiYjeGE7CTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+JiN4YTsJLnN0MHtmaWxsOiM0Mjg1ZjQ7fSYjeGE7CTwvc3R5bGU+JiN4YTsJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEzLjMzIDB2Mi4zOGgtMi4xNlYwSDguODN2Mi4zOEg2LjY3VjBINC4yOXYyLjM4YTIgMiAwIDAgMC0xLjkxIDEuOTFIMHYyLjM4aDIuMzh2Mi4xNEgwdjIuMzhoMi4zOHYyLjE0SDB2Mi4zOGgyLjM4YTIgMiAwIDAgMCAxLjkxIDEuOTFWMjBoMi4zOHYtMi4zOGgyLjE2VjIwaDIuMzR2LTIuMzhoMi4xNlYyMGgyLjM4di0yLjM4YTIgMiAwIDAgMCAxLjkxLTEuOTFIMjB2LTIuMzhoLTIuMzh2LTIuMTRIMjBWOC44MWgtMi4zOFY2LjY3SDIwVjQuMjloLTIuMzhhMiAyIDAgMCAwLTEuOTEtMS45MVYwem0xLjUzIDE1LjI0SDUuMTRhLjM4LjM4IDAgMCAxLS4zOC0uMzhWNS4xNGEuMzguMzggMCAwIDEgLjM4LS4zOGg5LjcyYS4zOC4zOCAwIDAgMSAuMzguMzh2OS43MmEuMzguMzggMCAwIDEtLjM4LjM4em0tMi4wNy02LjEybC0zLjUgNC44NnYtMy42M0g3LjIybDMuNjEtNC44MXYzLjU4eiIvPiYjeGE7PC9zdmc+;", -42,42,"Cloud GPUs",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute gpu graphics processing unit").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczp2PSJodHRwczovL3ZlY3RhLmlvL25hbm8iIHdpZHRoPSIxOS41MSIgaGVpZ2h0PSIxOS41IiB2aWV3Qm94PSIwIDAgMTkuNTEgMTkuNSI+JiN4YTsJPHBhdGggZD0iTTE3LjI2IDE3LjgxaC0uN3YtMS41aC43YS43Ni43NiAwIDAgMCAuNzUtLjc1di00LjMxYS43Ni43NiAwIDAgMC0uNzUtLjc1aC0zLjYxVjloMy42MWEyLjI1IDIuMjUgMCAwIDEgMi4yNSAyLjI1djQuMzFhMi4yNSAyLjI1IDAgMCAxLTIuMjUgMi4yNXptLTcuOTUgMGgtNC45di0xLjVoNC45eiIgZmlsbD0iIzQyODVmNCIvPiYjeGE7CTxwYXRoIGZpbGw9IiM2NjlkZjYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTUuODggMTAuNUgyLjI2QTIuMjUgMi4yNSAwIDAgMSAuMDEgOC4yNVYzLjk0YTIuMjUgMi4yNSAwIDAgMSAyLjI1LTIuMjVoMXYxLjVoLTFhLjc1Ljc1IDAgMCAwLS43NS43NXY0LjMxYS43Ni43NiAwIDAgMCAuNzUuNzVoMy42MnoiLz4mI3hhOwk8cGF0aCBmaWxsPSIjNDI4NWY0IiBkPSJNMTUuMDYgMy4xOUg5LjU4di0xLjVoNS40OHoiLz4mI3hhOwk8cGF0aCBmaWxsPSIjYWVjYmZhIiBkPSJNNi4zOSAxLjY5Vi4xOWgtM2ExLjEzIDEuMTMgMCAwIDAtMS4xMyAxLjEydjIuMjVhMS4xMyAxLjEzIDAgMCAwIDEuMTMgMS4xM2gzdi0xLjVIMy43NnYtMS41eiIvPiYjeGE7CTxwYXRoIGZpbGw9IiM2NjlkZjYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwLjUxIDEuMzF2Mi4yNWExLjEzIDEuMTMgMCAwIDEtMS4xMiAxLjEzaC0zdi0xLjVoMi42MnYtMS41SDYuMzlWLjE5aDNhMS4xMiAxLjEyIDAgMCAxIDEuMTIgMS4xMnoiLz4mI3hhOwk8cGF0aCBmaWxsPSIjYWVjYmZhIiBkPSJNMTcuMDcgNC44OGEyLjQ0IDIuNDQgMCAxIDEgMi40NC0yLjQ0IDIuNDUgMi40NSAwIDAgMS0yLjQ0IDIuNDR6bTAtMy4zOGEuOTQuOTQgMCAxIDAgLjk0Ljk0Ljk0Ljk0IDAgMCAwLS45NC0uOTR6Ii8+JiN4YTsJPHVzZSB4bGluazpocmVmPSIjQiIgZmlsbD0iIzlhYTBhNiIvPiYjeGE7CTxnIGZpbGw9IiNhZWNiZmEiPiYjeGE7CQk8dXNlIHhsaW5rOmhyZWY9IiNCIi8+JiN4YTsJCTxwYXRoIGQ9Ik0xMy4xMiAxNi4zMnYtMS41aC0zQTEuMTMgMS4xMyAwIDAgMCA5IDE1Ljk1djIuMjVhMS4xMiAxLjEyIDAgMCAwIDEuMTIgMS4xMmgzdi0xLjVIMTAuNXYtMS41eiIvPiYjeGE7CTwvZz4mI3hhOwk8cGF0aCBmaWxsPSIjNjY5ZGY2IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNy4yNSAxNS45NXYyLjI1YTEuMTMgMS4xMyAwIDAgMS0xLjEzIDEuMTJoLTN2LTEuNWgyLjY0di0xLjVoLTIuNjR2LTEuNWgzYTEuMTQgMS4xNCAwIDAgMSAxLjEzIDEuMTN6Ii8+JiN4YTsJPHBhdGggZmlsbD0iI2FlY2JmYSIgZD0iTTkuNzYgOVY3LjVoLTNhMS4xMyAxLjEzIDAgMCAwLTEuMTMgMS4xMnYyLjI1QTEuMTMgMS4xMyAwIDAgMCA2Ljc2IDEyaDN2LTEuNUg3LjEzVjl6Ii8+JiN4YTsJPHBhdGggZmlsbD0iIzY2OWRmNiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTMuODggOC42MnYyLjI1QTEuMTMgMS4xMyAwIDAgMSAxMi43NiAxMmgtM3YtMS41aDIuNjJWOUg5Ljc2VjcuNWgzYTEuMTIgMS4xMiAwIDAgMSAxLjEyIDEuMTJ6Ii8+JiN4YTsJPGRlZnM+JiN4YTsJCTxwYXRoIGlkPSJCIiBkPSJNMi40NSAxOS41YTIuNDQgMi40NCAwIDEgMSAyLjQzLTIuNDQgMi40NCAyLjQ0IDAgMCAxLTIuNDMgMi40NHptMC0zLjM4YS45NC45NCAwIDEgMCAuOTMuOTQuOTQuOTQgMCAwIDAtLjkzLS45NHoiLz4mI3hhOwk8L2RlZnM+JiN4YTs8L3N2Zz4=;", -42,42,"Workflows",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute workflows").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJzdmcxNzg1MSIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTIxLjU4NzkxIDEzMy42NzU5MyIgaGVpZ2h0PSIxMzMuNjc1OTNtbSIgd2lkdGg9IjEyMS41ODc5MW1tIj4mI3hhOyAgJiN4YTsgIDxkZWZzIGlkPSJkZWZzMTc4NDgiLz4mI3hhOyAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQ4LjI5MDk0NywtODQuMjY5Njk5KSIgaWQ9ImxheWVyMSI+JiN4YTsgICAgPHJlY3QgeT0iODQuMjY5Njk5IiB4PSI0OC4yOTA5NDciIGhlaWdodD0iMzUuMDE3MTg5IiB3aWR0aD0iOTguMTc0NTc2IiBpZD0icmVjdDE3OTg4IiBzdHlsZT0ib3BhY2l0eToxO2ZpbGw6I2FlY2JmYTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTM7c3Ryb2tlLWxpbmVqb2luOnJvdW5kIi8+JiN4YTsgICAgPHBhdGggZD0ibSAxMzIuNTE0NCwxMDEuNzc4MjkgYSAzLjA0MzAzMjksMy4wNDMwMzI5IDAgMCAxIC0zLjA0MzAzLDMuMDQzMDMgMy4wNDMwMzI5LDMuMDQzMDMyOSAwIDAgMSAtMy4wNDMwNCwtMy4wNDMwMyAzLjA0MzAzMjksMy4wNDMwMzI5IDAgMCAxIDMuMDQzMDQsLTMuMDQzMDI2IDMuMDQzMDMyOSwzLjA0MzAzMjkgMCAwIDEgMy4wNDMwMywzLjA0MzAyNiB6IE0gNjIuNzU4MzI1LDk5LjI3ODI5NCB2IDQuOTk5OTk2IGggMzUuOTU1MDc4IHYgLTQuOTk5OTk2IHoiIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6I2ZmZmZmZjtzdHJva2Utd2lkdGg6NC45OTk5OTtzdHJva2UtbGluZWpvaW46cm91bmQ7LWlua3NjYXBlLXN0cm9rZTpub25lIiBpZD0icGF0aDE4NjY4Ii8+JiN4YTsgICAgPHJlY3QgeT0iMTI5LjkyMTU3IiB4PSI0OC4yOTA5NDciIGhlaWdodD0iMzUuMDE3MTg5IiB3aWR0aD0iOTguMTc0NTc2IiBpZD0icmVjdDE3OTg4LTgiIHN0eWxlPSJvcGFjaXR5OjE7ZmlsbDojNjY5ZGY2O2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxMztzdHJva2UtbGluZWpvaW46cm91bmQiLz4mI3hhOyAgICA8cGF0aCBpZD0icGF0aDE4OTk1IiBkPSJtIDYyLjc1ODMyNSwxNDQuOTMwMTcgdiA0Ljk5OTk5IGggMzUuOTU1MDc4IHYgLTQuOTk5OTkgeiIgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDojZmZmZmZmO3N0cm9rZS13aWR0aDo0Ljk5OTk5O3N0cm9rZS1saW5lam9pbjpyb3VuZDstaW5rc2NhcGUtc3Ryb2tlOm5vbmUiLz4mI3hhOyAgICA8cmVjdCB5PSIxNzUuNTczNDQiIHg9IjQ4LjI5MDk0NyIgaGVpZ2h0PSIzNS4wMTcxODkiIHdpZHRoPSI5OC4xNzQ1NzYiIGlkPSJyZWN0MTc5ODgtMSIgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiM0Mjg1ZjQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjEzO3N0cm9rZS1saW5lam9pbjpyb3VuZCIvPiYjeGE7ICAgIDxwYXRoIGlkPSJwYXRoMTg5OTkiIGQ9Im0gNjIuNzU4MzI1LDE5MC41ODIwNCB2IDQuOTk5OTkgaCAzNS45NTUwNzggdiAtNC45OTk5OSB6IiBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjQuOTk5OTk7c3Ryb2tlLWxpbmVqb2luOnJvdW5kOy1pbmtzY2FwZS1zdHJva2U6bm9uZSIvPiYjeGE7ICAgIDxjaXJjbGUgcj0iMzcuNTI5NzM5IiBjeT0iMTgwLjQxNTg5IiBjeD0iMTMyLjM0OTEyIiBpZD0icGF0aDE5MTIxLTkiIHN0eWxlPSJvcGFjaXR5OjE7ZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDo1LjIxMzE7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIi8+JiN4YTsgICAgPHBhdGggdHJhbnNmb3JtPSJzY2FsZSgwLjI2NDU4MzMzKSIgZD0ibSA1MDAuMjE4NzUsNTY4LjIyODUyIGMgLTYyLjY4MjA3LDAgLTExMy42NTgxNyw1MC45NzYxMyAtMTEzLjY1ODIsMTEzLjY1ODIgMCw2Mi42ODIwNiA1MC45NzYxMywxMTMuNjYwMTUgMTEzLjY1ODIsMTEzLjY2MDE2IDYyLjY4MjA3LDAgMTEzLjY2MDE5LC01MC45NzgxIDExMy42NjAxNiwtMTEzLjY2MDE2IDAsLTYyLjY4MjA3IC01MC45NzgwOSwtMTEzLjY1ODIgLTExMy42NjAxNiwtMTEzLjY1ODIgeiBtIC05LjQ0OTIyLDE4LjMwNDY4IHYgODUuOTA2MjUgaCAtMzAuMTQyNTggYyAxLjAxNDU4LC0yNC41OTk1OCA1LjkyMDM5LC00Ni42MTIxMSAxMy4wMDk3NywtNjIuNDk2MDkgMy45OTMwNywtOC45NDY3MSA4LjY3ODI5LC0xNS45MDY5NCAxMy4zNDU3LC0yMC4zMzAwOCAxLjI4NzA3LC0xLjIxOTcyIDIuNTQ3MjQsLTIuMjM3MTggMy43ODcxMSwtMy4wODAwOCB6IG0gMTguODk4NDQsMC4wMDQgYyAxLjIzNzM2LDAuODQyMjEgMi40OTQwNSwxLjg1ODE5IDMuNzc5MywzLjA3NjE3IDQuNjY3NDEsNC40MjMxNCA5LjM2MDQsMTEuMzgzMzcgMTMuMzUzNTEsMjAuMzMwMDggNy4wODkzOCwxNS44ODM5OCAxMS45OTcxNCwzNy44OTY1MSAxMy4wMTE3Miw2Mi40OTYwOSBoIC0zMC4xNDQ1MyB6IG0gMjIuNjE5MTQsMi4xMjg5MSBjIDM1Ljg2NTU4LDEyLjI5Nzg5IDYyLjMxODUsNDQuNjY4OTMgNjYuMDIxNDgsODMuNzczNDMgaCAtNDMuMzY1MjMgYyAtMC45OTgwMSwtMjYuNDUyNzMgLTYuMTUwMjMsLTUwLjMxNTM3IC0xNC4zMzc4OSwtNjguNjYwMTUgLTIuNDgzNzgsLTUuNTY0OTYgLTUuMjQ3NDgsLTEwLjYzMDI5IC04LjMxODM2LC0xNS4xMTMyOCB6IG0gLTY0LjE0MjU4LDAuMDAyIGMgLTMuMDY4MjcsNC40ODI0NCAtNS44MjkxMyw5LjU0NzI5IC04LjMxMjUsMTUuMTExMzMgLTguMTg3NjYsMTguMzQ0NzggLTEzLjMzNzkzLDQyLjIwNzQzIC0xNC4zMzU5NCw2OC42NjAxNSBoIC00My4zNjcxOCBjIDMuNzAyODEsLTM5LjEwMjM4IDMwLjE1MzAxLC03MS40NzIwNyA2Ni4wMTU2MiwtODMuNzcxNDggeiBtIC02Ni4wMTU2MiwxMDIuNjY3OTcgaCA0My4zNjcxOCBjIDAuOTk4MDEsMjYuNDUxNDUgNi4xNDgyOCw1MC4zMDc1NiAxNC4zMzU5NCw2OC42NTIzNCAyLjQ4NDI3LDUuNTY2MDYgNS4yNDY4LDEwLjYzMzUxIDguMzE2NDEsMTUuMTE5MTQgLTM1Ljg2Mzk2LC0xMi4yOTgzNCAtNjIuMzE2MTEsLTQ0LjY2ODQ4IC02Ni4wMTk1MywtODMuNzcxNDggeiBtIDU4LjQ5ODA0LDAgaCAzMC4xNDI1OCB2IDg1LjkwNDI5IGMgLTEuMjM5ODcsLTAuODQyODkgLTIuNTAwMDQsLTEuODYwMzUgLTMuNzg3MTEsLTMuMDgwMDcgLTQuNjY3NDEsLTQuNDIzMTUgLTkuMzUyNTksLTExLjM4MTQyIC0xMy4zNDU3LC0yMC4zMjgxMyAtNy4wODkxOSwtMTUuODgzNTYgLTExLjk5NTAxLC0zNy44OTczMiAtMTMuMDA5NzcsLTYyLjQ5NjA5IHogbSA0OS4wNDEwMiwwIGggMzAuMTQ0NTMgYyAtMS4wMTQ3NiwyNC41OTg3NyAtNS45MjI1Myw0Ni42MTI1MyAtMTMuMDExNzIsNjIuNDk2MDkgLTMuOTkzMTEsOC45NDY3MSAtOC42ODYxLDE1LjkwNDk4IC0xMy4zNTM1MSwyMC4zMjgxMyAtMS4yODUyNSwxLjIxNzk4IC0yLjU0MTk0LDIuMjMzOTYgLTMuNzc5MywzLjA3NjE3IHogbSA0NS4yNzUzOSwwIGggNDMuMzY1MjMgYyAtMy43MDM1OSwzOS4xMDUxMiAtMzAuMTU4NDYsNzEuNDc2NiAtNjYuMDI1MzksODMuNzczNDQgMy4wNzIyMiwtNC40ODYxOSA1LjgzNzU5LC05LjU1NDEyIDguMzIyMjcsLTE1LjEyMTEgOC4xODc2NiwtMTguMzQ0NzggMTMuMzM5ODgsLTQyLjIwMDg4IDE0LjMzNzg5LC02OC42NTIzNCB6IiBzdHlsZT0iY29sb3I6IzAwMDAwMDtvcGFjaXR5OjE7ZmlsbDojNDI4NWY0O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDozLjc3OTUzO3N0cm9rZS1saW5lam9pbjpyb3VuZDstaW5rc2NhcGUtc3Ryb2tlOm5vbmUiIGlkPSJwYXRoMTkxMjEiLz4mI3hhOyAgPC9nPiYjeGE7PC9zdmc+;", +42,42,"Cloud GPUs",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute gpu graphics processing unit").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJzdmcxNzg1MSIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTIxLjU4NzkxIDEzMy42NzU5MyIgaGVpZ2h0PSIxMzMuNjc1OTNtbSIgd2lkdGg9IjEyMS41ODc5MW1tIj4mI3hhOyAgJiN4YTsgIDxkZWZzIGlkPSJkZWZzMTc4NDgiLz4mI3hhOyAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQ4LjI5MDk0NywtODQuMjY5Njk5KSIgaWQ9ImxheWVyMSI+JiN4YTsgICAgPHJlY3QgeT0iODQuMjY5Njk5IiB4PSI0OC4yOTA5NDciIGhlaWdodD0iMzUuMDE3MTg5IiB3aWR0aD0iOTguMTc0NTc2IiBpZD0icmVjdDE3OTg4IiBzdHlsZT0ib3BhY2l0eToxO2ZpbGw6I2FlY2JmYTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTM7c3Ryb2tlLWxpbmVqb2luOnJvdW5kIi8+JiN4YTsgICAgPHBhdGggZD0ibSAxMzIuNTE0NCwxMDEuNzc4MjkgYSAzLjA0MzAzMjksMy4wNDMwMzI5IDAgMCAxIC0zLjA0MzAzLDMuMDQzMDMgMy4wNDMwMzI5LDMuMDQzMDMyOSAwIDAgMSAtMy4wNDMwNCwtMy4wNDMwMyAzLjA0MzAzMjksMy4wNDMwMzI5IDAgMCAxIDMuMDQzMDQsLTMuMDQzMDI2IDMuMDQzMDMyOSwzLjA0MzAzMjkgMCAwIDEgMy4wNDMwMywzLjA0MzAyNiB6IE0gNjIuNzU4MzI1LDk5LjI3ODI5NCB2IDQuOTk5OTk2IGggMzUuOTU1MDc4IHYgLTQuOTk5OTk2IHoiIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6I2ZmZmZmZjtzdHJva2Utd2lkdGg6NC45OTk5OTtzdHJva2UtbGluZWpvaW46cm91bmQ7LWlua3NjYXBlLXN0cm9rZTpub25lIiBpZD0icGF0aDE4NjY4Ii8+JiN4YTsgICAgPHJlY3QgeT0iMTI5LjkyMTU3IiB4PSI0OC4yOTA5NDciIGhlaWdodD0iMzUuMDE3MTg5IiB3aWR0aD0iOTguMTc0NTc2IiBpZD0icmVjdDE3OTg4LTgiIHN0eWxlPSJvcGFjaXR5OjE7ZmlsbDojNjY5ZGY2O2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxMztzdHJva2UtbGluZWpvaW46cm91bmQiLz4mI3hhOyAgICA8cGF0aCBpZD0icGF0aDE4OTk1IiBkPSJtIDYyLjc1ODMyNSwxNDQuOTMwMTcgdiA0Ljk5OTk5IGggMzUuOTU1MDc4IHYgLTQuOTk5OTkgeiIgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDojZmZmZmZmO3N0cm9rZS13aWR0aDo0Ljk5OTk5O3N0cm9rZS1saW5lam9pbjpyb3VuZDstaW5rc2NhcGUtc3Ryb2tlOm5vbmUiLz4mI3hhOyAgICA8cmVjdCB5PSIxNzUuNTczNDQiIHg9IjQ4LjI5MDk0NyIgaGVpZ2h0PSIzNS4wMTcxODkiIHdpZHRoPSI5OC4xNzQ1NzYiIGlkPSJyZWN0MTc5ODgtMSIgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiM0Mjg1ZjQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjEzO3N0cm9rZS1saW5lam9pbjpyb3VuZCIvPiYjeGE7ICAgIDxwYXRoIGlkPSJwYXRoMTg5OTkiIGQ9Im0gNjIuNzU4MzI1LDE5MC41ODIwNCB2IDQuOTk5OTkgaCAzNS45NTUwNzggdiAtNC45OTk5OSB6IiBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjQuOTk5OTk7c3Ryb2tlLWxpbmVqb2luOnJvdW5kOy1pbmtzY2FwZS1zdHJva2U6bm9uZSIvPiYjeGE7ICAgIDxjaXJjbGUgcj0iMzcuNTI5NzM5IiBjeT0iMTgwLjQxNTg5IiBjeD0iMTMyLjM0OTEyIiBpZD0icGF0aDE5MTIxLTkiIHN0eWxlPSJvcGFjaXR5OjE7ZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDo1LjIxMzE7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIi8+JiN4YTsgICAgPHBhdGggdHJhbnNmb3JtPSJzY2FsZSgwLjI2NDU4MzMzKSIgZD0ibSA1MDAuMjE4NzUsNTY4LjIyODUyIGMgLTYyLjY4MjA3LDAgLTExMy42NTgxNyw1MC45NzYxMyAtMTEzLjY1ODIsMTEzLjY1ODIgMCw2Mi42ODIwNiA1MC45NzYxMywxMTMuNjYwMTUgMTEzLjY1ODIsMTEzLjY2MDE2IDYyLjY4MjA3LDAgMTEzLjY2MDE5LC01MC45NzgxIDExMy42NjAxNiwtMTEzLjY2MDE2IDAsLTYyLjY4MjA3IC01MC45NzgwOSwtMTEzLjY1ODIgLTExMy42NjAxNiwtMTEzLjY1ODIgeiBtIC05LjQ0OTIyLDE4LjMwNDY4IHYgODUuOTA2MjUgaCAtMzAuMTQyNTggYyAxLjAxNDU4LC0yNC41OTk1OCA1LjkyMDM5LC00Ni42MTIxMSAxMy4wMDk3NywtNjIuNDk2MDkgMy45OTMwNywtOC45NDY3MSA4LjY3ODI5LC0xNS45MDY5NCAxMy4zNDU3LC0yMC4zMzAwOCAxLjI4NzA3LC0xLjIxOTcyIDIuNTQ3MjQsLTIuMjM3MTggMy43ODcxMSwtMy4wODAwOCB6IG0gMTguODk4NDQsMC4wMDQgYyAxLjIzNzM2LDAuODQyMjEgMi40OTQwNSwxLjg1ODE5IDMuNzc5MywzLjA3NjE3IDQuNjY3NDEsNC40MjMxNCA5LjM2MDQsMTEuMzgzMzcgMTMuMzUzNTEsMjAuMzMwMDggNy4wODkzOCwxNS44ODM5OCAxMS45OTcxNCwzNy44OTY1MSAxMy4wMTE3Miw2Mi40OTYwOSBoIC0zMC4xNDQ1MyB6IG0gMjIuNjE5MTQsMi4xMjg5MSBjIDM1Ljg2NTU4LDEyLjI5Nzg5IDYyLjMxODUsNDQuNjY4OTMgNjYuMDIxNDgsODMuNzczNDMgaCAtNDMuMzY1MjMgYyAtMC45OTgwMSwtMjYuNDUyNzMgLTYuMTUwMjMsLTUwLjMxNTM3IC0xNC4zMzc4OSwtNjguNjYwMTUgLTIuNDgzNzgsLTUuNTY0OTYgLTUuMjQ3NDgsLTEwLjYzMDI5IC04LjMxODM2LC0xNS4xMTMyOCB6IG0gLTY0LjE0MjU4LDAuMDAyIGMgLTMuMDY4MjcsNC40ODI0NCAtNS44MjkxMyw5LjU0NzI5IC04LjMxMjUsMTUuMTExMzMgLTguMTg3NjYsMTguMzQ0NzggLTEzLjMzNzkzLDQyLjIwNzQzIC0xNC4zMzU5NCw2OC42NjAxNSBoIC00My4zNjcxOCBjIDMuNzAyODEsLTM5LjEwMjM4IDMwLjE1MzAxLC03MS40NzIwNyA2Ni4wMTU2MiwtODMuNzcxNDggeiBtIC02Ni4wMTU2MiwxMDIuNjY3OTcgaCA0My4zNjcxOCBjIDAuOTk4MDEsMjYuNDUxNDUgNi4xNDgyOCw1MC4zMDc1NiAxNC4zMzU5NCw2OC42NTIzNCAyLjQ4NDI3LDUuNTY2MDYgNS4yNDY4LDEwLjYzMzUxIDguMzE2NDEsMTUuMTE5MTQgLTM1Ljg2Mzk2LC0xMi4yOTgzNCAtNjIuMzE2MTEsLTQ0LjY2ODQ4IC02Ni4wMTk1MywtODMuNzcxNDggeiBtIDU4LjQ5ODA0LDAgaCAzMC4xNDI1OCB2IDg1LjkwNDI5IGMgLTEuMjM5ODcsLTAuODQyODkgLTIuNTAwMDQsLTEuODYwMzUgLTMuNzg3MTEsLTMuMDgwMDcgLTQuNjY3NDEsLTQuNDIzMTUgLTkuMzUyNTksLTExLjM4MTQyIC0xMy4zNDU3LC0yMC4zMjgxMyAtNy4wODkxOSwtMTUuODgzNTYgLTExLjk5NTAxLC0zNy44OTczMiAtMTMuMDA5NzcsLTYyLjQ5NjA5IHogbSA0OS4wNDEwMiwwIGggMzAuMTQ0NTMgYyAtMS4wMTQ3NiwyNC41OTg3NyAtNS45MjI1Myw0Ni42MTI1MyAtMTMuMDExNzIsNjIuNDk2MDkgLTMuOTkzMTEsOC45NDY3MSAtOC42ODYxLDE1LjkwNDk4IC0xMy4zNTM1MSwyMC4zMjgxMyAtMS4yODUyNSwxLjIxNzk4IC0yLjU0MTk0LDIuMjMzOTYgLTMuNzc5MywzLjA3NjE3IHogbSA0NS4yNzUzOSwwIGggNDMuMzY1MjMgYyAtMy43MDM1OSwzOS4xMDUxMiAtMzAuMTU4NDYsNzEuNDc2NiAtNjYuMDI1MzksODMuNzczNDQgMy4wNzIyMiwtNC40ODYxOSA1LjgzNzU5LC05LjU1NDEyIDguMzIyMjcsLTE1LjEyMTEgOC4xODc2NiwtMTguMzQ0NzggMTMuMzM5ODgsLTQyLjIwMDg4IDE0LjMzNzg5LC02OC42NTIzNCB6IiBzdHlsZT0iY29sb3I6IzAwMDAwMDtvcGFjaXR5OjE7ZmlsbDojNDI4NWY0O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDozLjc3OTUzO3N0cm9rZS1saW5lam9pbjpyb3VuZDstaW5rc2NhcGUtc3Ryb2tlOm5vbmUiIGlkPSJwYXRoMTkxMjEiLz4mI3hhOyAgPC9nPiYjeGE7PC9zdmc+;", 38,42,"Distributed\nCloud",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute distributed cloud").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB2aWV3Qm94PSIwIDAgMjAgMjAiPiYjeGE7CTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+JiN4YTsJLnN0MHtmaWxsOiM0Mjg1ZjQ7fSYjeGE7CTwvc3R5bGU+JiN4YTsJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEwIDBhMTAgMTAgMCAxIDAgMTAgMTBoMEExMCAxMCAwIDAgMCAxMCAwem0wIDE4YTggOCAwIDAgMS00LjE4LTEuMThsMy41OC0yLjA3aDB2LTQuNUw1LjUxIDh2NC41MmwyLjc1IDEuNTktMy40NiAyQTggOCAwIDAgMSA2LjA4IDN2NGgwTDEwIDkuMjggMTMuOSA3IDEwIDQuNzcgNy4yNCA2LjM2VjIuNDdhOCA4IDAgMCAxIDEwLjMxIDQuNyA4LjEgOC4xIDAgMCAxIC41MSAyLjgzdi4wN0wxNC40NiA4aDBsLTMuOSAyLjI2djQuNTFsMy45LTIuMjVWOS4zNGwzLjQ1IDJBOCA4IDAgMCAxIDEwIDE4eiIvPiYjeGE7PC9zdmc+;", 42,42,"Container-\nOptimized OS",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute container optimized os operating system").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjQwMi4zNDMyMDA2ODM1OTM3NSIgaGVpZ2h0PSI0MTYuMDAyNTMyOTU4OTg0NCIgdmlld0JveD0iMCAwLjAwMDQ5OTk2Mzc2MDM3NTk3NjYgNDAyLjM0MzIwMDY4MzU5Mzc1IDQxNi4wMDI1MzI5NTg5ODQ0Ij4mI3hhOwk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPiYjeGE7CS5zdDB7ZmlsbDojNDI4NWY0O30mI3hhOwkuc3Qxe2ZpbGw6IzY2OWRmNjt9JiN4YTsJLnN0MntmaWxsOiNhZWNiZmE7fSYjeGE7CTwvc3R5bGU+JiN4YTsJPHBhdGggY2xhc3M9InN0MiIgZD0iTTM2Ni4xNyA5Mi4wMDNjLTE5LjA1IDAtMzYgMTYuODItMzYgMzUuNzYgMCAxMi42MiA4LjQ2IDI1LjI0IDE5LjA1IDMxLjU1djE0Ny4zbC0xMTAuMDUgNjUuMjEgMTYuOTMgMjcuMzUgMTE4LjUxLTY5LjQyYzQuMjQtMi4xIDguNDctOC40MSA4LjQ3LTE0Ljczdi0xNTUuNjdjMTIuNzEtNi4zNSAxOS4wOS0xOC45MyAxOS4wOS0zMS41NSAyLjA4LTE4Ljk0LTE0Ljg1LTM1LjgtMzYtMzUuOHptLTM4LjExLTIzLjFMMjA5LjU1IDEuNTgzYy00LjI0LTIuMTEtMTAuNTktMi4xMS0xNi45MyAwTDU3LjE3IDc5LjQxM0EzNiAzNiAwIDAgMCAzNiA3My4xMDNjLTE5IDAtMzYgMTYuODMtMzYgMzUuNzZzMTYuOTMgMzUuNzcgMzYgMzUuNzcgMzYtMTYuODMgMzYtMzUuNzdsMTI5LjEtNzMuNjIgMTEwIDYzLjExem0tMTQzLjg5IDI3Ny42OHEtOS41MyAwLTE5IDYuMzFsLTExMC02My4xMXYtMTI2LjIyaC0zNHYxMzQuNjNjMCA2LjMyIDQuMjMgMTIuNjMgOC40NiAxNC43M2wxMTguNTQgNjUuMjF2Mi4xMWMwIDE4LjkzIDE2LjkzIDM1Ljc2IDM2IDM1Ljc2czM2LTE2LjgzIDM2LTM1Ljc2LTE3LTMzLjY2LTM2LTMzLjY2eiIvPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik05Ny4zOCAxMzYuMjEzbDEwNS44MiA1OC45MSAxMDMuNy01OC45MS0xMDMuNy02MXptLTYuMzUgNjcuMzJsMTEyLjE3IDYzLjExdi01MC40OWwtMTEyLjE3LTY1LjIxem0wIDYzLjExbDExMi4xNyA2NS4yMXYtNDQuMTdsLTExMi4xNy02NS4yMnoiLz4mI3hhOwk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjAzLjE3IDIxNi4xMjN2NTAuNTZsMTEyLjE2LTY1LjI5di01MC4zOXptOTItMjBhOC4xNiA4LjE2IDAgMSAxIDguMTYtOC4xNiA4LjE5IDguMTkgMCAwIDEtOC4xNiA4LjE2em0tOTIgOTEuNTJ2NDQuMTZsMTEyLjE2LTY1LjEydi00NC4xNnptOTItMjIuODhhOC4xNiA4LjE2IDAgMSAxIDguMTYtOC4xNiA4LjE5IDguMTkgMCAwIDEtOC4xNiA4LjE2eiIvPiYjeGE7PC9zdmc+;", 40,42,"GKE On-Prem",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute gke on-prem").join(" "))];this.addPalette("gcp2Icons Compute","GCP Icons / Compute",!1,mxUtils.bind(this,function(c){for(var d=0;dmxUtils.indexOf(F,f)&&H.push(f)}0
')))}catch(m){}Editor.prototype.useCanvasForExport= !1})();(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(e,g,k){k.ui=e.ui;return g};b.afterDecode=function(e,g,k){k.previousColor=k.color;k.previousImage=k.image;k.previousFormat=k.format;null!=k.foldingEnabled&&(k.foldingEnabled=!k.foldingEnabled);null!=k.mathEnabled&&(k.mathEnabled=!k.mathEnabled);null!=k.shadowVisible&&(k.shadowVisible=!k.shadowVisible);return k};mxCodecRegistry.register(b)})(); -(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(e,g,k){k.ui=e.ui;return g};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="22.1.8";EditorUi.compactUi="atlas"!=Editor.currentTheme;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; +(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(e,g,k){k.ui=e.ui;return g};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="22.1.9";EditorUi.compactUi="atlas"!=Editor.currentTheme;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.drawio.com/doc/faq/scratchpad";EditorUi.enableHtmlEditOption=!0;EditorUi.mermaidDiagramTypes="flowchart classDiagram sequenceDiagram stateDiagram mindmap graph erDiagram requirementDiagram journey gantt pie gitGraph".split(" ");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= @@ -11989,7 +12002,7 @@ this.showAlert(mxResources.get("viewerOnlyMsg"));if(this.editor.editable&&this.m A=null!=f?f(c,z,c.attributes[t].value,!0):c.attributes[t].value;null!=A&&(q^=this.hashValue(z,f,n)+this.hashValue(A,f,n))}}if(null!=c.childNodes)for(t=0;t' + -// mxResources.get('saved') + ''); -// -// // Installs click handler for opening -// if (this.statusContainer != null) -// { -// var links = this.statusContainer.getElementsByTagName('div'); -// -// if (links.length > 0) -// { -// links[0].style.cursor = 'pointer'; -// -// mxEvent.addListener(links[0], 'click', mxUtils.bind(this, function() -// { -// if (resp != null && resp.id != null) -// { -// window.open('https://drive.google.com/open?id=' + resp.id); -// } -// })); -// } -// } - this.spinner.stop(); }), mxUtils.bind(this, function(resp) { @@ -6660,18 +6626,38 @@ App.prototype.exportFile = function(data, filename, mimeType, base64Encoded, mod } else if (mode == App.MODE_BROWSER) { - var fn = mxUtils.bind(this, function() + if (window.StorageFile != null && !base64Encoded && + this.spinner.spin(document.body, mxResources.get('saving'))) { - localStorage.setItem(filename, data); - }); - - if (localStorage.getItem(filename) == null) - { - fn(); + var file = data.substring(0, 10) == '=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:"22.1.8",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:"22.1.9",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&&2navigator.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|| @@ -1568,13 +1568,13 @@ mxGraphHandler.prototype.addStates=function(a,b){var c=this.graph.view.getState( mxGraphHandler.prototype.snap=function(a){var b=this.scaleGrid?this.graph.view.scale:1;a.x=this.graph.snap(a.x/b)*b;a.y=this.graph.snap(a.y/b)*b;return a};mxGraphHandler.prototype.getDelta=function(a){a=mxUtils.convertPoint(this.graph.container,a.getX(),a.getY());return new mxPoint(a.x-this.first.x-this.graph.panDx,a.y-this.first.y-this.graph.panDy)};mxGraphHandler.prototype.updateHint=function(a){};mxGraphHandler.prototype.removeHint=function(){}; mxGraphHandler.prototype.roundLength=function(a){return Math.round(100*a)/100};mxGraphHandler.prototype.isValidDropTarget=function(a,b){for(b=0;b=this.cellCount&&!this.livePreviewActive&&this.allowLivePreview?this.cloning&&this.livePreviewActive||(this.livePreviewUsed=this.livePreviewActive=!0):this.livePreviewUsed||null!=this.shape||(this.shape=this.createPreviewShape(this.bounds))}; -mxGraphHandler.prototype.mouseMove=function(a,b){a=this.graph;var c=a.tolerance;null==this.first&&this.delayedSelection&&null!=this.cell&&null!=this.mouseDownX&&null!=this.mouseDownY&&(Math.abs(this.mouseDownX-b.getX())>c||Math.abs(this.mouseDownY-b.getY())>c)&&(this.delayedSelection=!1,this.cellWasClicked=!0,this.graph.isCellSelected(this.cell)||mxEvent.isAltDown(b.getEvent())||(this.graph.isToggleEvent(b.getEvent())?a.addSelectionCell(this.cell):this.graph.isAncestorSelected(this.cell)||a.setSelectionCell(this.cell)), -this.start(this.cell,this.mouseDownX,this.mouseDownY,this.getCells(null,a.getSelectionCells().concat(b.getCell()))));var d=null!=this.first?this.getDelta(b):null;if(b.isConsumed()||!a.isMouseDown||null==this.cell||null==d||null==this.bounds||this.suspended)!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||b.isConsumed()||null==b.getState()&&null==b.sourceState||a.isMouseDown||(d=a.getCursorForMouseEvent(b),null==d&&a.isEnabled()&&a.isCellMovable(b.getCell())&&(d=a.getModel().isEdge(b.getCell())? -mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),null!=d&&null!=b.sourceState&&b.sourceState.setCursor(d));else if(mxEvent.isMultiTouchEvent(b.getEvent()))this.reset();else{if(null!=this.shape||this.livePreviewActive||this.cloning||Math.abs(d.x)>c||Math.abs(d.y)>c){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3));c=a.isCloneEvent(b.getEvent())&&a.isCellsCloneable()&&this.isCloneEnabled();var e=a.isGridEnabledEvent(b.getEvent()), -f=b.getCell();f=null!=f&&0>mxUtils.indexOf(this.cells,f)?f:a.getCellAt(b.getGraphX(),b.getGraphY(),null,null,null,mxUtils.bind(this,function(n,p,r){return 0<=mxUtils.indexOf(this.cells,n.cell)}));var g=!0,k=null;this.cloning=c;a.isDropEnabled()&&this.highlightEnabled&&(k=a.getDropTarget(this.cells,b.getEvent(),f,c));var l=a.getView().getState(k),m=!1;null!=l&&(c||this.isValidDropTarget(k,b))?(this.target!=k&&(this.target=k,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),m=!0):(this.target= -null,this.connectOnDrop&&null!=f&&1==this.cells.length&&a.getModel().isVertex(f)&&a.isCellConnectable(f)&&(l=a.getView().getState(f),null!=l&&(f=null==a.getEdgeValidationError(null,this.cell,f)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(f),m=!0)));null!=l&&m?this.highlight.highlight(l):this.highlight.hide();null!=this.guide&&this.useGuidesForEvent(b)?(d=this.guide.move(this.bounds,d,e,c),g=!1):d=a.snapDelta(d,this.bounds,!e,!1,!1);null!=this.guide&&g&& -this.guide.hide();this.isConstrainedEvent(b)&&(Math.abs(d.x)>Math.abs(d.y)?d.y=0:d.x=0);this.checkPreview();if(this.currentDx!=d.x||this.currentDy!=d.y)this.currentDx=d.x,this.currentDy=d.y,this.updatePreview()}this.updateHint(b);this.consumeMouseEvent(mxEvent.MOUSE_MOVE,b);mxEvent.consume(b.getEvent())}};mxGraphHandler.prototype.isConstrainedEvent=function(a){return(null==this.target||this.graph.isCloneEvent(a.getEvent()))&&this.graph.isConstrainedEvent(a.getEvent())}; -mxGraphHandler.prototype.updatePreview=function(a){this.livePreviewUsed&&!a?null!=this.cells&&(this.setHandlesVisibleForCells(this.graph.selectionCellsHandler.getHandledSelectionCells(),!1),this.updateLivePreview(this.currentDx,this.currentDy)):this.updatePreviewShape()}; +mxGraphHandler.prototype.mouseMove=function(a,b){a=this.graph;var c=a.tolerance;if(null==this.first&&this.delayedSelection&&null!=this.cell&&null!=this.mouseDownX&&null!=this.mouseDownY&&(Math.abs(this.mouseDownX-b.getX())>c||Math.abs(this.mouseDownY-b.getY())>c)){this.delayedSelection=!1;this.cellWasClicked=!0;this.graph.isCellSelected(this.cell)||mxEvent.isAltDown(b.getEvent())||(this.graph.isToggleEvent(b.getEvent())?a.addSelectionCell(this.cell):this.graph.isAncestorSelected(this.cell)||a.setSelectionCell(this.cell)); +var d=a.getSelectionCells();this.graph.isToggleEvent(b.getEvent())&&mxEvent.isAltDown(b.getEvent())&&!a.isSelectionEmpty()||(d=d.concat(b.getCell()));this.start(this.cell,this.mouseDownX,this.mouseDownY,this.getCells(null,d))}d=null!=this.first?this.getDelta(b):null;if(b.isConsumed()||!a.isMouseDown||null==this.cell||null==d||null==this.bounds||this.suspended)!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||b.isConsumed()||null==b.getState()&&null==b.sourceState||a.isMouseDown|| +(d=a.getCursorForMouseEvent(b),null==d&&a.isEnabled()&&a.isCellMovable(b.getCell())&&(d=a.getModel().isEdge(b.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),null!=d&&null!=b.sourceState&&b.sourceState.setCursor(d));else if(mxEvent.isMultiTouchEvent(b.getEvent()))this.reset();else{if(null!=this.shape||this.livePreviewActive||this.cloning||Math.abs(d.x)>c||Math.abs(d.y)>c){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR, +3));c=a.isCloneEvent(b.getEvent())&&a.isCellsCloneable()&&this.isCloneEnabled();var e=a.isGridEnabledEvent(b.getEvent()),f=b.getCell();f=null!=f&&0>mxUtils.indexOf(this.cells,f)?f:a.getCellAt(b.getGraphX(),b.getGraphY(),null,null,null,mxUtils.bind(this,function(n,p,r){return 0<=mxUtils.indexOf(this.cells,n.cell)}));var g=!0,k=null;this.cloning=c;a.isDropEnabled()&&this.highlightEnabled&&(k=a.getDropTarget(this.cells,b.getEvent(),f,c));var l=a.getView().getState(k),m=!1;null!=l&&(c||this.isValidDropTarget(k, +b))?(this.target!=k&&(this.target=k,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),m=!0):(this.target=null,this.connectOnDrop&&null!=f&&1==this.cells.length&&a.getModel().isVertex(f)&&a.isCellConnectable(f)&&(l=a.getView().getState(f),null!=l&&(f=null==a.getEdgeValidationError(null,this.cell,f)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(f),m=!0)));null!=l&&m?this.highlight.highlight(l):this.highlight.hide();null!=this.guide&&this.useGuidesForEvent(b)? +(d=this.guide.move(this.bounds,d,e,c),g=!1):d=a.snapDelta(d,this.bounds,!e,!1,!1);null!=this.guide&&g&&this.guide.hide();this.isConstrainedEvent(b)&&(Math.abs(d.x)>Math.abs(d.y)?d.y=0:d.x=0);this.checkPreview();if(this.currentDx!=d.x||this.currentDy!=d.y)this.currentDx=d.x,this.currentDy=d.y,this.updatePreview()}this.updateHint(b);this.consumeMouseEvent(mxEvent.MOUSE_MOVE,b);mxEvent.consume(b.getEvent())}}; +mxGraphHandler.prototype.isConstrainedEvent=function(a){return(null==this.target||this.graph.isCloneEvent(a.getEvent()))&&this.graph.isConstrainedEvent(a.getEvent())};mxGraphHandler.prototype.updatePreview=function(a){this.livePreviewUsed&&!a?null!=this.cells&&(this.setHandlesVisibleForCells(this.graph.selectionCellsHandler.getHandledSelectionCells(),!1),this.updateLivePreview(this.currentDx,this.currentDy)):this.updatePreviewShape()}; mxGraphHandler.prototype.updatePreviewShape=function(){null!=this.shape&&null!=this.pBounds&&(this.shape.bounds=new mxRectangle(Math.round(this.pBounds.x+this.currentDx),Math.round(this.pBounds.y+this.currentDy),this.pBounds.width,this.pBounds.height),this.shape.redraw())}; mxGraphHandler.prototype.updateLivePreview=function(a,b){if(!this.suspended){var c=[];null!=this.allCells&&this.allCells.visit(mxUtils.bind(this,function(n,p){n=this.graph.view.getState(p.cell);n!=p&&(p.destroy(),null!=n?this.allCells.put(p.cell,n):this.allCells.remove(p.cell),p=n);if(null!=p&&(n=p.clone(),c.push([p,n]),null!=p.shape&&(null==p.shape.originalPointerEvents&&(p.shape.originalPointerEvents=p.shape.pointerEvents),p.shape.pointerEvents=!1,null!=p.text&&(null==p.text.originalPointerEvents&& (p.text.originalPointerEvents=p.text.pointerEvents),p.text.pointerEvents=!1)),this.graph.model.isVertex(p.cell))){if(!this.cloning||this.graph.isCellCloneable(p.cell))p.x+=a,p.y+=b;this.cloning?null!=p.text&&(p.text.updateBoundingBox(),null!=p.text.boundingBox&&(p.text.boundingBox.x+=a,p.text.boundingBox.y+=b),null!=p.text.unrotatedBoundingBox&&(p.text.unrotatedBoundingBox.x+=a,p.text.unrotatedBoundingBox.y+=b)):(p.view.graph.cellRenderer.redraw(p,!0),p.view.invalidate(p.cell),p.invalid=!1,null!= @@ -2071,10 +2071,10 @@ Editor.prototype.setModified=function(a){this.modified=a};Editor.prototype.setFi Editor.prototype.createUndoManager=function(){var a=this.graph,b=new mxUndoManager;this.undoListener=function(f,g){b.undoableEditHappened(g.getProperty("edit"))};var e=mxUtils.bind(this,function(f,g){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,e);a.getView().addListener(mxEvent.UNDO,e);e=function(f,g){f=a.getSelectionCellsForChanges(g.getProperty("edit").changes,function(h){return!(h instanceof mxChildChange)});if(0L.clientHeight-G&&(b.style.overflowY="auto");b.style.overflowX="hidden";if(d&&(d=document.createElement("img"),d.setAttribute("src",Dialog.prototype.closeImage),d.setAttribute("title",mxResources.get("close")), -d.className="geDialogClose",d.style.top=I+14+"px",d.style.left=E+e+38-x+"px",d.style.zIndex=this.zIndex,mxEvent.addListener(d,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(d),this.dialogImg=d,!r)){var N=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(Y){N=!0}),null,mxUtils.bind(this,function(Y){N&&(a.hideDialog(!0),N=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=m){var Y=m();null!=Y&&(z=e=Y.w,C=f=Y.h)}Y=Editor.inlineFullscreen|| +d.className="geDialogClose",d.style.top=I+14+"px",d.style.left=E+e+38-x+"px",d.style.zIndex=this.zIndex,mxEvent.addListener(d,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(d),this.dialogImg=d,!r)){var N=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(Y){N=!0}),null,mxUtils.bind(this,function(Y){N&&(a.hideDialog(!0),N=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var Y=l();null!=Y&&(z=e=Y.w,C=f=Y.h)}Y=Editor.inlineFullscreen|| null==a.embedViewport?this.getDocumentSize():mxUtils.clone(a.embedViewport);D=Y.height;this.bg.style.height=D+"px";Editor.inlineFullscreen||null==a.embedViewport||(this.bg.style.height=this.getDocumentSize().height+"px");e=null!=document.body?Math.min(z,document.body.scrollWidth-G):z;f=Math.min(C,D-G);Y=Math.max(1,Math.round((Y.width-e-G)/2));var W=Math.max(1,Math.round((D-f-a.footerHeight)/3));W=this.getPosition(Y,W,e,f);Y=W.x;W=W.y;var X=mxUtils.getDocumentScrollOrigin(document);Y+=X.x;W+=X.y;Editor.inlineFullscreen|| null==a.embedViewport||(W+=a.embedViewport.y,Y+=a.embedViewport.x);L.style.left=Y+"px";L.style.top=W+"px";L.style.width=e+"px";L.style.height=f+"px";!n&&b.clientHeight>L.clientHeight-G&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=W+14+"px",this.dialogImg.style.left=Y+e+38-x+"px")});null!=a.embedViewport?a.addListener("embedViewportChanged",this.resizeListener):mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=h;this.container=L;a.editor.fireEvent(new mxEventObject("showDialog"))} Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2; @@ -2085,74 +2085,74 @@ Dialog.prototype.clearImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQAKA "/clear.gif";Dialog.prototype.bgOpacity=80;Dialog.prototype.getDocumentSize=function(){return mxUtils.getDocumentSize()};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&&null!=this.dialogImg.parentNode&&(this.dialogImg.parentNode.removeChild(this.dialogImg),this.dialogImg=null);null!=this.bg&&null!=this.bg.parentNode&&this.bg.parentNode.removeChild(this.bg);null!=this.editorUi.embedViewport?this.editorUi.removeListener(this.resizeListener):mxEvent.removeListener(window,"resize",this.resizeListener);null!=this.container.parentNode&& this.container.parentNode.removeChild(this.container)}; -var ErrorDialog=function(a,b,e,f,g,d,h,n,t,m,r){t=null!=t?t:!0;var x=document.createElement("div");x.style.textAlign="center";if(null!=b){var z=document.createElement("div");z.style.padding="0px";z.style.margin="0px";z.style.fontSize="18px";z.style.paddingBottom="16px";z.style.marginBottom="10px";z.style.borderBottom="1px solid #c0c0c0";z.style.color="gray";z.style.whiteSpace="nowrap";z.style.textOverflow="ellipsis";z.style.overflow="hidden";mxUtils.write(z,b);z.setAttribute("title",b);x.appendChild(z)}b= -document.createElement("div");b.style.lineHeight="1.2em";b.style.padding="6px";"string"===typeof e&&(e=e.replace(/\n/g,"
"));b.innerHTML=e;x.appendChild(b);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=d&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();d()}),b.className="geBtn",e.appendChild(b),e.style.textAlign="center");null!=m&&(m=mxUtils.button(m,function(){null!=r&&r()}),m.className="geBtn",e.appendChild(m));var C=mxUtils.button(f, +var ErrorDialog=function(a,b,e,f,g,d,h,n,t,l,r){t=null!=t?t:!0;var x=document.createElement("div");x.style.textAlign="center";if(null!=b){var z=document.createElement("div");z.style.padding="0px";z.style.margin="0px";z.style.fontSize="18px";z.style.paddingBottom="16px";z.style.marginBottom="10px";z.style.borderBottom="1px solid #c0c0c0";z.style.color="gray";z.style.whiteSpace="nowrap";z.style.textOverflow="ellipsis";z.style.overflow="hidden";mxUtils.write(z,b);z.setAttribute("title",b);x.appendChild(z)}b= +document.createElement("div");b.style.lineHeight="1.2em";b.style.padding="6px";"string"===typeof e&&(e=e.replace(/\n/g,"
"));b.innerHTML=e;x.appendChild(b);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=d&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();d()}),b.className="geBtn",e.appendChild(b),e.style.textAlign="center");null!=l&&(l=mxUtils.button(l,function(){null!=r&&r()}),l.className="geBtn",e.appendChild(l));var C=mxUtils.button(f, function(){t&&a.hideDialog();null!=g&&g()});C.className="geBtn";e.appendChild(C);null!=h&&(f=mxUtils.button(h,function(){t&&a.hideDialog();null!=n&&n()}),f.className="geBtn gePrimaryBtn",e.appendChild(f));this.init=function(){C.focus()};x.appendChild(e);this.container=x},PrintDialog=function(a,b){this.create(a,b)}; -PrintDialog.prototype.create=function(a){function b(C){var G=h.checked||m.checked,E=parseInt(x.value)/100;isNaN(E)&&(E=1,x.value="100%");mxClient.IS_SF&&(E*=.75);var D=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,I=1/e.pageScale;if(G){var M=h.checked?1:parseInt(r.value);isNaN(M)||(I=mxUtils.getScaleForPageCount(M,e,D))}var L=M=0;D=mxRectangle.fromRectangle(D);D.width=Math.ceil(D.width*E);D.height=Math.ceil(D.height*E);I*=E;!G&&e.pageVisible?(E=e.getPageLayout(),M-=E.x*D.width,L-=E.y*D.height): +PrintDialog.prototype.create=function(a){function b(C){var G=h.checked||l.checked,E=parseInt(x.value)/100;isNaN(E)&&(E=1,x.value="100%");mxClient.IS_SF&&(E*=.75);var D=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,I=1/e.pageScale;if(G){var M=h.checked?1:parseInt(r.value);isNaN(M)||(I=mxUtils.getScaleForPageCount(M,e,D))}var L=M=0;D=mxRectangle.fromRectangle(D);D.width=Math.ceil(D.width*E);D.height=Math.ceil(D.height*E);I*=E;!G&&e.pageVisible?(E=e.getPageLayout(),M-=E.x*D.width,L-=E.y*D.height): G=!0;G=PrintDialog.createPrintPreview(e,I,D,0,M,L,G);G.open();C&&PrintDialog.printPreview(G)}var e=a.editor.graph,f=document.createElement("table");f.style.width="100%";f.style.height="100%";var g=document.createElement("tbody");var d=document.createElement("tr");var h=document.createElement("input");h.setAttribute("type","checkbox");var n=document.createElement("td");n.setAttribute("colspan","2");n.style.fontSize="10pt";n.appendChild(h);var t=document.createElement("span");mxUtils.write(t," "+mxResources.get("fitPage")); -n.appendChild(t);mxEvent.addListener(t,"click",function(C){h.checked=!h.checked;m.checked=!h.checked;mxEvent.consume(C)});mxEvent.addListener(h,"change",function(){m.checked=!h.checked});d.appendChild(n);g.appendChild(d);d=d.cloneNode(!1);var m=document.createElement("input");m.setAttribute("type","checkbox");n=document.createElement("td");n.style.fontSize="10pt";n.appendChild(m);t=document.createElement("span");mxUtils.write(t," "+mxResources.get("posterPrint")+":");n.appendChild(t);mxEvent.addListener(t, -"click",function(C){m.checked=!m.checked;h.checked=!m.checked;mxEvent.consume(C)});d.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)");d.appendChild(n);g.appendChild(d);mxEvent.addListener(m,"change", -function(){m.checked?r.removeAttribute("disabled"):r.setAttribute("disabled","disabled");h.checked=!m.checked});d=d.cloneNode(!1);n=document.createElement("td");mxUtils.write(n,mxResources.get("pageScale")+":");d.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);d.appendChild(n);g.appendChild(d);d=document.createElement("tr");n=document.createElement("td");n.colSpan=2; +n.appendChild(t);mxEvent.addListener(t,"click",function(C){h.checked=!h.checked;l.checked=!h.checked;mxEvent.consume(C)});mxEvent.addListener(h,"change",function(){l.checked=!h.checked});d.appendChild(n);g.appendChild(d);d=d.cloneNode(!1);var l=document.createElement("input");l.setAttribute("type","checkbox");n=document.createElement("td");n.style.fontSize="10pt";n.appendChild(l);t=document.createElement("span");mxUtils.write(t," "+mxResources.get("posterPrint")+":");n.appendChild(t);mxEvent.addListener(t, +"click",function(C){l.checked=!l.checked;h.checked=!l.checked;mxEvent.consume(C)});d.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)");d.appendChild(n);g.appendChild(d);mxEvent.addListener(l,"change", +function(){l.checked?r.removeAttribute("disabled"):r.setAttribute("disabled","disabled");h.checked=!l.checked});d=d.cloneNode(!1);n=document.createElement("td");mxUtils.write(n,mxResources.get("pageScale")+":");d.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);d.appendChild(n);g.appendChild(d);d=document.createElement("tr");n=document.createElement("td");n.colSpan=2; n.style.paddingTop="20px";n.setAttribute("align","right");t=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});t.className="geBtn";a.editor.cancelFirst&&n.appendChild(t);if(PrintDialog.previewEnabled){var z=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});z.className="geBtn";n.appendChild(z)}z=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});z.className="geBtn gePrimaryBtn";n.appendChild(z);a.editor.cancelFirst|| n.appendChild(t);d.appendChild(n);g.appendChild(d);f.appendChild(g);this.container=f};PrintDialog.printPreview=function(a){try{null!=a.wnd&&window.setTimeout(function(){a.wnd.focus();a.wnd.print();a.wnd.close()},500)}catch(b){}}; -PrintDialog.createPrintPreview=function(a,b,e,f,g,d,h){b=new mxPrintPreview(a,b,e,f,g,d);b.title=mxResources.get("preview");b.addPageCss=!mxClient.IS_SF;b.printBackgroundImage=!0;b.autoOrigin=h;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";b.backgroundColor=a;var n=b.writeHead;b.writeHead=function(t){n.apply(this,arguments);t.writeln('")}; -return b};PrintDialog.previewEnabled=!0; +PrintDialog.createPrintPreview=function(a,b,e,f,g,d,h){b=new mxPrintPreview(a,b,e,f,g,d);b.title=mxResources.get("preview");b.addPageCss=!mxClient.IS_SF;b.printBackgroundImage=!0;b.autoOrigin=h;h=a.background;if(null==h||""==h||h==mxConstants.NONE)h="#ffffff";b.backgroundColor=h;var n=b.getLinkForCellState;b.getLinkForCellState=function(l){return a.getAbsoluteUrl(n.apply(this,arguments))};var t=b.writeHead;b.writeHead=function(l){t.apply(this,arguments);l.writeln('")};return b};PrintDialog.previewEnabled=!0; var PageSetupDialog=function(a){function b(){var E=x;null!=E&&null!=E.originalSrc&&(E=a.createImageForPageLink(E.originalSrc,null));null!=E&&null!=E.src?(r.style.backgroundImage="url("+E.src+")",r.style.display="inline-block"):(r.style.backgroundImage="",r.style.display="none");r.style.backgroundColor="";null!=z&&z!=mxConstants.NONE&&(r.style.backgroundColor=z,r.style.display="inline-block")}var e=a.editor.graph,f=document.createElement("table");f.style.width="100%";f.style.height="100%";var g=document.createElement("tbody"); var d=document.createElement("tr");var h=document.createElement("td");h.style.verticalAlign="top";h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("paperSize")+":");d.appendChild(h);h=document.createElement("td");h.style.verticalAlign="top";h.style.fontSize="10pt";var n=PageSetupDialog.addPageFormatPanel(h,"pagesetupdialog",e.pageFormat);d.appendChild(h);g.appendChild(d);d=document.createElement("tr");h=document.createElement("td");mxUtils.write(h,mxResources.get("gridSize")+":");d.appendChild(h); h=document.createElement("td");h.style.whiteSpace="nowrap";var t=document.createElement("input");t.setAttribute("type","number");t.setAttribute("min","0");t.style.width="40px";t.style.marginLeft="6px";t.value=e.getGridSize();h.appendChild(t);mxEvent.addListener(t,"change",function(){var E=parseInt(t.value);t.value=Math.max(1,isNaN(E)?e.getGridSize():E)});d.appendChild(h);g.appendChild(d);d=document.createElement("tr");h=document.createElement("td");mxUtils.write(h,mxResources.get("background")+":"); -d.appendChild(h);h=document.createElement("td");var m=document.createElement("button");m.className="geBtn";m.style.margin="0px";mxUtils.write(m,mxResources.get("change")+"...");var r=document.createElement("div");r.style.display="inline-block";r.style.verticalAlign="middle";r.style.backgroundPosition="center center";r.style.backgroundRepeat="no-repeat";r.style.backgroundSize="contain";r.style.border="1px solid lightGray";r.style.borderRadius="4px";r.style.marginRight="14px";r.style.height="32px"; -r.style.width="64px";r.style.cursor="pointer";r.style.padding="4px";var x=e.backgroundImage,z=e.background,C=e.shadowVisible,G=function(E){a.showBackgroundImageDialog(function(D,I,M,L){I||(null!=D&&null!=D.src&&Graph.isPageLink(D.src)&&(D={originalSrc:D.src}),x=D,C=L);z=M;b()},x,z,!0);mxEvent.consume(E)};mxEvent.addListener(m,"click",G);mxEvent.addListener(r,"click",G);b();h.appendChild(r);h.appendChild(m);d.appendChild(h);g.appendChild(d);d=document.createElement("tr");h=document.createElement("td"); -h.colSpan=2;h.style.paddingTop="16px";h.setAttribute("align","right");m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});m.className="geBtn";a.editor.cancelFirst&&h.appendChild(m);G=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var E=parseInt(t.value);isNaN(E)||e.gridSize===E||e.setGridSize(E);E=new ChangePageSetup(a,z,x,n.get());E.ignoreColor=e.background==z;E.ignoreImage=(null!=e.backgroundImage?e.backgroundImage.src:null)===(null!=x?x.src:null);null!=C&& -(E.shadowVisible=C);e.pageFormat.width==E.previousFormat.width&&e.pageFormat.height==E.previousFormat.height&&E.ignoreColor&&E.ignoreImage&&E.shadowVisible==e.shadowVisible||e.model.execute(E)});G.className="geBtn gePrimaryBtn";h.appendChild(G);a.editor.cancelFirst||h.appendChild(m);d.appendChild(h);g.appendChild(d);f.appendChild(g);this.container=f}; +d.appendChild(h);h=document.createElement("td");var l=document.createElement("button");l.className="geBtn";l.style.margin="0px";mxUtils.write(l,mxResources.get("change")+"...");var r=document.createElement("div");r.style.display="inline-block";r.style.verticalAlign="middle";r.style.backgroundPosition="center center";r.style.backgroundRepeat="no-repeat";r.style.backgroundSize="contain";r.style.border="1px solid lightGray";r.style.borderRadius="4px";r.style.marginRight="14px";r.style.height="32px"; +r.style.width="64px";r.style.cursor="pointer";r.style.padding="4px";var x=e.backgroundImage,z=e.background,C=e.shadowVisible,G=function(E){a.showBackgroundImageDialog(function(D,I,M,L){I||(null!=D&&null!=D.src&&Graph.isPageLink(D.src)&&(D={originalSrc:D.src}),x=D,C=L);z=M;b()},x,z,!0);mxEvent.consume(E)};mxEvent.addListener(l,"click",G);mxEvent.addListener(r,"click",G);b();h.appendChild(r);h.appendChild(l);d.appendChild(h);g.appendChild(d);d=document.createElement("tr");h=document.createElement("td"); +h.colSpan=2;h.style.paddingTop="16px";h.setAttribute("align","right");l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});l.className="geBtn";a.editor.cancelFirst&&h.appendChild(l);G=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var E=parseInt(t.value);isNaN(E)||e.gridSize===E||e.setGridSize(E);E=new ChangePageSetup(a,z,x,n.get());E.ignoreColor=e.background==z;E.ignoreImage=(null!=e.backgroundImage?e.backgroundImage.src:null)===(null!=x?x.src:null);null!=C&& +(E.shadowVisible=C);e.pageFormat.width==E.previousFormat.width&&e.pageFormat.height==E.previousFormat.height&&E.ignoreColor&&E.ignoreImage&&E.shadowVisible==e.shadowVisible||e.model.execute(E)});G.className="geBtn gePrimaryBtn";h.appendChild(G);a.editor.cancelFirst||h.appendChild(l);d.appendChild(h);g.appendChild(d);f.appendChild(g);this.container=f}; PageSetupDialog.addPageFormatPanel=function(a,b,e,f){function g(Y,W,X){if(X||x!=document.activeElement&&z!=document.activeElement){Y=!1;for(W=0;W=Y)x.value=e.width/100;Y=parseFloat(z.value);if(isNaN(Y)||0>=Y)z.value=e.height/100;Y=new mxRectangle(0,0,Math.floor(100*parseFloat(x.value)), -Math.floor(100*parseFloat(z.value)));"custom"!=n.value&&h.checked&&(Y=new mxRectangle(0,0,Y.height,Y.width));W&&M||Y.width==L.width&&Y.height==L.height||(L=Y,null!=f&&f(L))};mxEvent.addListener(b,"click",function(Y){d.checked=!0;N(Y);mxEvent.consume(Y)});mxEvent.addListener(m,"click",function(Y){h.checked=!0;N(Y);mxEvent.consume(Y)});mxEvent.addListener(x,"blur",N);mxEvent.addListener(x,"click",N);mxEvent.addListener(z,"blur",N);mxEvent.addListener(z,"click",N);mxEvent.addListener(h,"change",N);mxEvent.addListener(d, +Math.floor(100*parseFloat(z.value)));"custom"!=n.value&&h.checked&&(Y=new mxRectangle(0,0,Y.height,Y.width));W&&M||Y.width==L.width&&Y.height==L.height||(L=Y,null!=f&&f(L))};mxEvent.addListener(b,"click",function(Y){d.checked=!0;N(Y);mxEvent.consume(Y)});mxEvent.addListener(l,"click",function(Y){h.checked=!0;N(Y);mxEvent.consume(Y)});mxEvent.addListener(x,"blur",N);mxEvent.addListener(x,"click",N);mxEvent.addListener(z,"blur",N);mxEvent.addListener(z,"click",N);mxEvent.addListener(h,"change",N);mxEvent.addListener(d, "change",N);mxEvent.addListener(n,"change",function(Y){M="custom"==n.value;N(Y,!0)});N();return{set:function(Y){e=Y;g(null,null,!0)},get:function(){return L},widthInput:x,heightInput:z}}; 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,e,f,g,d,h,n,t,m,r,x,z){t=null!=t?t:!0;var C=document.createElement("table"),G=document.createElement("tbody"),E=document.createElement("tr"),D=document.createElement("td");C.style.margin="0 auto";D.style.textOverflow="ellipsis";D.style.whiteSpace="nowrap";D.style.textAlign="right";D.style.maxWidth=(z?z+15:100)+"px";D.style.fontSize="10pt";D.style.width=(z?z:84)+"px";mxUtils.write(D,(g||mxResources.get("filename"))+":");E.appendChild(D);var I=document.createElement("input"); +var FilenameDialog=function(a,b,e,f,g,d,h,n,t,l,r,x,z){t=null!=t?t:!0;var C=document.createElement("table"),G=document.createElement("tbody"),E=document.createElement("tr"),D=document.createElement("td");C.style.margin="0 auto";D.style.textOverflow="ellipsis";D.style.whiteSpace="nowrap";D.style.textAlign="right";D.style.maxWidth=(z?z+15:100)+"px";D.style.fontSize="10pt";D.style.width=(z?z:84)+"px";mxUtils.write(D,(g||mxResources.get("filename"))+":");E.appendChild(D);var I=document.createElement("input"); I.setAttribute("value",b||"");I.style.marginLeft="4px";I.style.width=null!=x?x+"px":"180px";var M=mxUtils.button(e,function(){if(null==d||d(I.value))t&&a.hideDialog(),f(I.value)});M.className="geBtn gePrimaryBtn";this.init=function(){if(null!=g||null==h)if(null!=r?Editor.selectFilename(I):(I.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?I.select():document.execCommand("selectAll",!1,null)),Graph.fileSupport){var L=C.parentNode;if(null!=L){var N=null;mxEvent.addListener(L,"dragleave", function(Y){null!=N&&(N.style.backgroundColor="",N=null);Y.stopPropagation();Y.preventDefault()});mxEvent.addListener(L,"dragover",mxUtils.bind(this,function(Y){null==N&&(!mxClient.IS_IE||10'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(h,n){a.apply(this,arguments);if(null!=this.shiftPreview1){var t=this.view.canvas; -null!=t.ownerSVGElement&&(t=t.ownerSVGElement);var m=this.gridSize*this.view.scale*this.view.gridSteps;m=-Math.round(m-mxUtils.mod(this.view.translate.x*this.view.scale+h,m))+"px "+-Math.round(m-mxUtils.mod(this.view.translate.y*this.view.scale+n,m))+"px";t.style.backgroundPosition=m}};mxGraph.prototype.updatePageBreaks=function(h,n,t){var m=this.view.scale,r=this.view.translate,x=this.pageFormat,z=m*this.pageScale,C=this.view.getBackgroundPageBounds();n=C.width;t=C.height;var G=new mxRectangle(m* -r.x,m*r.y,x.width*z,x.height*z),E=(h=h&&Math.min(G.width,G.height)>this.minPageBreakDist)?Math.ceil(t/G.height)-1:0,D=h?Math.ceil(n/G.width)-1:0,I=C.x+n,M=C.y+t;null==this.horizontalPageBreaks&&0'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(h,n){a.apply(this,arguments);if(null!=this.shiftPreview1){var t=this.view.canvas; +null!=t.ownerSVGElement&&(t=t.ownerSVGElement);var l=this.gridSize*this.view.scale*this.view.gridSteps;l=-Math.round(l-mxUtils.mod(this.view.translate.x*this.view.scale+h,l))+"px "+-Math.round(l-mxUtils.mod(this.view.translate.y*this.view.scale+n,l))+"px";t.style.backgroundPosition=l}};mxGraph.prototype.updatePageBreaks=function(h,n,t){var l=this.view.scale,r=this.view.translate,x=this.pageFormat,z=l*this.pageScale,C=this.view.getBackgroundPageBounds();n=C.width;t=C.height;var G=new mxRectangle(l* +r.x,l*r.y,x.width*z,x.height*z),E=(h=h&&Math.min(G.width,G.height)>this.minPageBreakDist)?Math.ceil(t/G.height)-1:0,D=h?Math.ceil(n/G.width)-1:0,I=C.x+n,M=C.y+t;null==this.horizontalPageBreaks&&0mxUtils.indexOf(n,z[b])&&n.push(z[b]);var C="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),G=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["fillColor","gradientColor","gradientDirection"],["opacity"],["html"]];for(b=0;bmxUtils.indexOf(n,t[b])&&n.push(t[b]);var E=function(J,R,ha,P,T,ja,pa){P= null!=P?P:g.currentVertexStyle;T=null!=T?T:g.currentEdgeStyle;ja=null!=ja?ja:!0;ha=null!=ha?ha:g.getModel();if(pa){pa=[];for(var da=0;damxUtils.indexOf(m,Ha))&&($a=mxUtils.setStyle($a,Ha,jb))}Editor.simpleLabels&&($a= +La[za],ta=Ja.indexOf("=");if(0<=ta){var Ha=Ja.substring(0,ta),Xa=mxUtils.indexOf(xa,Ha);0<=Xa&&xa.splice(Xa,1);for(pa=0;pamxUtils.indexOf(l,Ha))&&($a=mxUtils.setStyle($a,Ha,jb))}Editor.simpleLabels&&($a= mxUtils.setStyle(mxUtils.setStyle($a,"html",null),"whiteSpace",null));ha.setStyle(ua,$a)}}finally{ha.endUpdate()}return J};g.addListener("cellsInserted",function(J,R){E(R.getProperty("cells"),null,null,null,null,!0,!0)});g.addListener("textInserted",function(J,R){E(R.getProperty("cells"),!0)});this.insertHandler=E;this.createDivs();this.createUi();this.refresh();var D=mxUtils.bind(this,function(J){null==J&&(J=window.event);return g.isEditing()||null!=J&&this.isSelectionAllowed(J)});this.container!= document.body||this.editor.chromeless&&!this.editor.editable||(this.menubarContainer.onselectstart=D,this.menubarContainer.onmousedown=D,this.toolbarContainer.onselectstart=D,this.toolbarContainer.onmousedown=D,this.diagramContainer.onselectstart=D,this.diagramContainer.onmousedown=D,this.sidebarContainer.onselectstart=D,this.sidebarContainer.onmousedown=D,this.formatContainer.onselectstart=D,this.formatContainer.onmousedown=D,this.footerContainer.onselectstart=D,this.footerContainer.onmousedown= D,null!=this.tabContainer&&(this.tabContainer.onselectstart=D),mxClient.IS_IOS&&(b=function(){var J=null;if(/iP(hone|od|ad)/.test(navigator.platform)){var R=navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);try{J=[parseInt(R[1],10),parseInt(R[2],10),parseInt(R[3]||0,10)]}catch(ha){}}return J}(),null!=b&&16<=b[0]&&(mxUtils.setPrefixedStyle(this.menubarContainer.style,"userSelect","none"),mxUtils.setPrefixedStyle(this.diagramContainer.style,"userSelect","none"),mxUtils.setPrefixedStyle(this.sidebarContainer.style, @@ -2175,7 +2175,7 @@ g.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeSty g.selectionModel.addListener(mxEvent.CHANGE,function(){if(g.isEnabled()&&!g.isSelectionEmpty()){var J=g.getLayerForCells(g.getSelectionCells());null!=J&&g.setDefaultParent(J)}});this.gestureHandler=mxUtils.bind(this,function(J){null!=this.currentMenu&&mxEvent.getSource(J)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document,this.gestureHandler);var V=null;this.resizeHandler=mxUtils.bind(this,function(){null!=V&&window.clearTimeout(V);V=window.setTimeout(mxUtils.bind(this, function(){V=null;this.windowResized()}),100)});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(){g.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){g.view.validateBackground()}));g.addListener("gridSizeChanged",mxUtils.bind(this,function(){g.isGridEnabled()&&g.view.validateBackground()}));this.editor.resetGraph()}this.init();g.standalone||this.open()};EditorUi.compactUi=!0; -EditorUi.parsePng=function(a,b,e){function f(n,t){var m=d;d+=t;return n.substring(m,d)}function g(n){n=f(n,4);return n.charCodeAt(3)+(n.charCodeAt(2)<<8)+(n.charCodeAt(1)<<16)+(n.charCodeAt(0)<<24)}var d=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,17);do{e=g(a);var h=f(a,4);if(null!=b&&b(d-8,h,e))break;value=f(a,e);f(a,4);if("IEND"==h)break}while(e)}};mxUtils.extend(EditorUi,mxEventSource); +EditorUi.parsePng=function(a,b,e){function f(n,t){var l=d;d+=t;return n.substring(l,d)}function g(n){n=f(n,4);return n.charCodeAt(3)+(n.charCodeAt(2)<<8)+(n.charCodeAt(1)<<16)+(n.charCodeAt(0)<<24)}var d=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,17);do{e=g(a);var h=f(a,4);if(null!=b&&b(d-8,h,e))break;value=f(a,e);f(a,4);if("IEND"==h)break}while(e)}};mxUtils.extend(EditorUi,mxEventSource); EditorUi.prototype.splitSize=mxClient.IS_TOUCH||mxClient.IS_POINTER?12:8;EditorUi.prototype.menubarHeight=30;EditorUi.prototype.formatEnabled=!0;EditorUi.prototype.formatWidth=240;EditorUi.prototype.toolbarHeight=38;EditorUi.prototype.footerHeight=28;EditorUi.prototype.defaultSidebarWidth=Math.min(screen.width/2,"large"!=urlParams["sidebar-entries"]?212:240);EditorUi.prototype.hsplitPosition=screen.width<=Editor.smallScreenWidth?0:EditorUi.prototype.defaultSidebarWidth; EditorUi.prototype.allowAnimation=!0;EditorUi.prototype.lightboxMaxFitScale=2;EditorUi.prototype.lightboxVerticalDivider=4;EditorUi.prototype.hsplitClickEnabled=!1;EditorUi.prototype.updateDefaultStyle=!1;EditorUi.prototype.spaceDown=!1;EditorUi.prototype.shiftDown=!1; EditorUi.prototype.init=function(){var a=this.editor.graph;if(!a.standalone){"0"!=urlParams["shape-picker"]&&this.installShapePicker();mxEvent.addListener(a.container,"scroll",mxUtils.bind(this,function(){a.tooltipHandler.hide();null!=a.connectionHandler&&null!=a.connectionHandler.constraintHandler&&a.connectionHandler.constraintHandler.reset()}));a.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){a.tooltipHandler.hide();var f=a.getRubberband();null!=f&&f.cancel()}));mxEvent.addListener(a.container, @@ -2183,29 +2183,29 @@ EditorUi.prototype.init=function(){var a=this.editor.graph;if(!a.standalone){"0" arguments);e.updateActionStates()};a.showLinkDialog=mxUtils.bind(e,e.showLinkDialog);a.editLink=e.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()}};EditorUi.prototype.clearSelectionState=function(){this.selectionState=null};EditorUi.prototype.getSelectionState=function(){null==this.selectionState&&(this.selectionState=this.createSelectionState());return this.selectionState}; EditorUi.prototype.createSelectionState=function(){for(var a=this.editor.graph,b=a.getSelectionCells(),e=this.initSelectionState(),f=!0,g=0;gh.length?35*h.length:140;z.className="geToolbarContainer geSidebarContainer geShapePicker";z.setAttribute("title",mxResources.get("sidebarTooltip"));z.style.left=a+"px";z.style.top=b+"px";z.style.width=g+"px";mxClient.IS_POINTER&&(z.style.touchAction="none");n||mxUtils.setPrefixedStyle(z.style,"transform","translate(-22px,-22px)");null!=x.background&&x.background!=mxConstants.NONE&&(z.style.backgroundColor= x.background);x.container.appendChild(z);g=mxUtils.bind(this,function(E){var D=document.createElement("a");D.className="geItem";D.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:1px";z.appendChild(D);null!=G&&"1"!=urlParams.sketch?this.sidebar.graph.pasteStyle(G,[E]):C.insertHandler([E],""!=E.value&&"1"!=urlParams.sketch,this.sidebar.graph.model);var I=E.geometry;x.model.isEdge(E)&&(I=I.getTerminalPoint(!1),I=new mxRectangle(0, 0,I.x,I.y));null!=I&&D.appendChild(this.sidebar.createVertexTemplateFromCells([E],I.width,I.height,"",!0,!1,null,!1,mxUtils.bind(this,function(M){if(!mxEvent.isShiftDown(M)||null==e&&x.isSelectionEmpty()){var L=x.cloneCell(E);if(null!=f)f(L);else{var N=t([L]);x.model.isEdge(L)?L.geometry.translate(N.x,N.y):(L.geometry.x=N.x,L.geometry.y=N.y);x.model.beginUpdate();try{x.addCell(L),x.model.isVertex(L)&&x.isAutoSizeCell(L)&&x.updateCellSize(L)}finally{x.model.endUpdate()}x.setSelectionCell(L);x.scrollCellToVisible(L); -r&&x.startEditing(L);null!=C.hoverIcons&&C.hoverIcons.update(x.view.getState(L))}}else L=x.getEditableCells(null!=e?[e]:x.getSelectionCells()),x.updateShapes(E,L);null!=d&&d(M);mxEvent.consume(M)}),25,25,null,null,e))});for(m=0;m<(n?Math.min(h.length,4):h.length);m++)g(h[m]);h=z.offsetTop+z.clientHeight-(x.container.scrollTop+x.container.offsetHeight);0e&&(b=a.substring(e,f+21).replace(/>/g,">").replace(/</g,"<").replace(/\\"/g,'"').replace(/\n/g,""))}}catch(g){}return b}; EditorUi.prototype.readGraphModelFromClipboard=function(a){this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(b){null!=b?a(b):this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(e){if(null!=e){var f=decodeURIComponent(e);this.isCompatibleString(f)&&(e=f)}a(e)}),"text")}),"html")}; EditorUi.prototype.readGraphModelFromClipboardWithType=function(a,b){navigator.clipboard.read().then(mxUtils.bind(this,function(e){if(null!=e&&0':"")+Graph.sanitizeHtml(a);asHtml=!0;a=b.getElementsByTagName("style");if(null!=a)for(;0this.maxTooltipWidth||f>this.maxTooltipHeight)?Math.round(100*Math.min(this.maxTooltipWidth/e,this.maxTooltipHeight/f))/100:1;this.tooltip.style.display="block";this.graph2.labelsVisible=null==d||d;d= -mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;m=mxUtils.getCurrentStyle(this.tooltip);this.graph2.shapeBackgroundColor=m.backgroundColor;null!=b&&(b=this.graph2.cloneCells(b),this.editorUi.insertHandler(b,null,this.graph2.model,r?null:this.editorUi.editor.graph.defaultVertexStyle,r?null:this.editorUi.editor.graph.defaultEdgeStyle,r,!0),this.graph2.addCells(b));mxClient.NO_FO=d;r=this.graph2.getGraphBounds();n&&0e||r.height>f)?(e=Math.round(100*Math.min(e/ +this.tooltipCloseImage=t,mxEvent.addListener(t,"click",mxUtils.bind(this,function(x){this.hideTooltip();mxEvent.consume(x)})));this.tooltipCloseImage.style.display=l?"":"none";this.graph2.model.clear();this.graph2.view.setTranslate(this.tooltipBorder,this.tooltipBorder);this.graph2.view.scale=!n&&(e>this.maxTooltipWidth||f>this.maxTooltipHeight)?Math.round(100*Math.min(this.maxTooltipWidth/e,this.maxTooltipHeight/f))/100:1;this.tooltip.style.display="block";this.graph2.labelsVisible=null==d||d;d= +mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;l=mxUtils.getCurrentStyle(this.tooltip);this.graph2.shapeBackgroundColor=l.backgroundColor;null!=b&&(b=this.graph2.cloneCells(b),this.editorUi.insertHandler(b,null,this.graph2.model,r?null:this.editorUi.editor.graph.defaultVertexStyle,r?null:this.editorUi.editor.graph.defaultEdgeStyle,r,!0),this.graph2.addCells(b));mxClient.NO_FO=d;r=this.graph2.getGraphBounds();n&&0e||r.height>f)?(e=Math.round(100*Math.min(e/ r.width,f/r.height))/100,mxClient.NO_FO?(this.graph2.view.setScale(Math.round(100*Math.min(this.maxTooltipWidth/r.width,this.maxTooltipHeight/r.height))/100),r=this.graph2.getGraphBounds()):(this.graph2.view.getDrawPane().ownerSVGElement.style.transform="scale("+e+")",this.graph2.view.getDrawPane().ownerSVGElement.style.transformOrigin="0 0",r.width*=e,r.height*=e)):mxClient.NO_FO||(this.graph2.view.getDrawPane().ownerSVGElement.style.transform="");e=r.width+2*this.tooltipBorder+4;f=r.height+2*this.tooltipBorder; this.tooltip.style.overflow="visible";this.tooltip.style.width=e+"px";n=e;this.tooltipTitles&&null!=g&&0e&&(this.tooltip.style.width=n+"px");this.tooltip.style.height=f+"px";g=-Math.round(r.x- @@ -2396,16 +2396,16 @@ Sidebar.prototype.addEntries=function(a){for(var b=0;bt||Math.abs(r.y-mxEvent.getClientY(C))>t))&&null!=this.dragElement&&"none"==this.dragElement.style.display&&(this.dragElement.style.display="",mxUtils.setOpacity(a,100*z));h.apply(this,arguments)};b.mouseUp=function(C){try{mxEvent.isPopupTrigger(C)||null!=this.currentGraph||null==this.dragElement||"none"!=this.dragElement.style.display||(null!=f&&f(C),mxEvent.isConsumed(C)||x.itemClicked(e,b,C,a)),n.apply(b,arguments),mxUtils.setOpacity(a,100*z),r=null, x.currentElt=a}catch(G){b.reset(),x.editorUi.handleError(G)}}};Sidebar.prototype.createVertexTemplateEntry=function(a,b,e,f,g,d,h,n){null!=n&&null!=g&&(n+=" "+g);n=null!=n&&0mxUtils.indexOf(g,z)){C=this.getTagsForStencil(x,z);var D=null!=n?n[z]:null;null!=D&&C.push(D);r.push(this.createVertexTemplateEntry("shape="+x+z.toLowerCase()+f,Math.round(G*h),Math.round(E*h),"",z.replace(/_/g," "),null,null,this.filterTags(C.join(" "))))}}), +Sidebar.prototype.addStencilPalette=function(a,b,e,f,g,d,h,n,t,l){h=null!=h?h:1;if(this.addStencilsToIndex){var r=[];if(null!=t)for(l=0;lmxUtils.indexOf(g,z)){C=this.getTagsForStencil(x,z);var D=null!=n?n[z]:null;null!=D&&C.push(D);r.push(this.createVertexTemplateEntry("shape="+x+z.toLowerCase()+f,Math.round(G*h),Math.round(E*h),"",z.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==f&&(f="");null!=d&&d.call(this,x);if(null!=t)for(var z=0;zmxUtils.indexOf(g,G))&&x.appendChild(this.createVertexTemplate("shape="+C+G.toLowerCase()+f,Math.round(D*h),Math.round(I*h),"",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(e){for(var f=0;fR||Math.abs(h.y-V.getGraphY())>R){var ha=null;mxEvent.isControlDown(V.getEvent())||mxEvent.isShiftDown(V.getEvent())|| -(ha=this.selectionCellsHandler.getHandler(J.cell));if(null!=ha&&null!=ha.bends&&0R||Math.abs(h.y-V.getGraphY())>R){var ha=null;mxEvent.isControlDown(V.getEvent())||mxEvent.isShiftDown(V.getEvent())|| +(ha=this.selectionCellsHandler.getHandler(J.cell));if(null!=ha&&null!=ha.bends&&0mxUtils.indexOf(t,r)})),this.updateCellStyles(h,n))};Graph.prototype.updateCellStyles=function(h,n){this.model.beginUpdate();try{for(var t=0;tmxUtils.indexOf(t,r)})),this.updateCellStyles(h,n))};Graph.prototype.updateCellStyles=function(h,n){this.model.beginUpdate();try{for(var t=0;tz?"a":"p",tt:12>z?"am":"pm",T:12>z?"A":"P",TT:12>z?"AM":"PM",Z:e?"UTC":(String(a).match(g)||[""]).pop().replace(d,""),o:(0g&&"%"==b.charAt(match.index-1))h=d.substring(1);else{var n=d.substring(1,d.length-1);if("id"==n)h=a.id;else if("width"==n&&this.model.isVertex(a)){var t=this.getCellGeometry(a);null!=t&&(h=t.width)}else if("height"==n&&this.model.isVertex(a))t=this.getCellGeometry(a),null!=t&&(h=t.height);else if("length"== n&&this.model.isEdge(a))t=this.view.getState(a),null!=t&&(h=Math.round(t.length/this.view.scale));else if(0>n.indexOf("{"))for(t=a;null==h&&null!=t;)null!=t.value&&"object"==typeof t.value&&(Graph.translateDiagram&&null!=Graph.diagramLanguage&&(h=t.getAttribute(n+"_"+Graph.diagramLanguage)),null==h&&(h=t.hasAttribute(n)?null!=t.getAttribute(n)?t.getAttribute(n):"":null)),t=this.model.getParent(t);null==h&&(h=this.getGlobalVariable(n));null==h&&null!=e&&(h=e[n])}f.push(b.substring(g,match.index)+(null!= h?h:d));g=match.index+d.length}}f.push(b.substring(g))}return f.join("")};Graph.prototype.restoreSelection=function(a){if(null!=a&&0n[0].indexOf("=")&&(n=n.slice(1));this.model.setStyle(b[d],n.join(";"))}this.setCellStyles(mxConstants.STYLE_PERIMETER,null,[b[d]]);this.setCellStyles("points",null,[b[d]]);this.pasteStyle(g,[b[d]],null,!0)}else g=this.copyStyle(b[d]),this.model.setStyle(b[d],f),this.pasteStyle(g,[b[d]]);"1"==mxUtils.getValue(this.getCellStyle(b[d],!1),"composite","0")&&this.removeChildCells(b[d])}}finally{this.model.endUpdate()}}; Graph.prototype.selectCellsForConnectVertex=function(a,b,e){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),this.scrollCellToVisible(a[1]),null!=e&&(mxEvent.isTouchEvent(b)?e.update(e.getState(this.view.getState(a[1]))):e.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.insertEdgeBeforeCell=function(a,b){for(var e=b;null!=e.parent&&null!=e.geometry&&e.geometry.relative&&e.parent!=a.parent;)e=this.model.getParent(e);null!=e&&null!=e.parent&&e.parent==a.parent&&(b=e.parent.getIndex(e),this.model.add(e.parent,a,b))}; -Graph.prototype.connectVertex=function(a,b,e,f,g,d,h,n){d=d?d:!1;if(a.geometry.relative&&this.model.isEdge(a.parent))return[];for(;a.geometry.relative&&this.model.isVertex(a.parent);)a=a.parent;var t=this.isCloneConnectSource(a),m=t?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-=e):b== -mxConstants.DIRECTION_SOUTH?(r.x+=m.geometry.width/2,r.y+=m.geometry.height+e):(r.x=b==mxConstants.DIRECTION_WEST?r.x-e:r.x+(m.geometry.width+e),r.y+=m.geometry.height/2);var x=this.view.getState(this.model.getParent(a));e=this.view.scale;var z=this.view.translate;m=z.x*e;z=z.y*e;null!=x&&this.model.isVertex(x.cell)&&(m=x.x,z=x.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(r.x+=a.parent.geometry.x,r.y+=a.parent.geometry.y);d=d?null:(new mxRectangle(m+r.x*e,z+r.y*e)).grow(40*e);d=null!=d? +Graph.prototype.connectVertex=function(a,b,e,f,g,d,h,n){d=d?d:!1;if(a.geometry.relative&&this.model.isEdge(a.parent))return[];for(;a.geometry.relative&&this.model.isVertex(a.parent);)a=a.parent;var t=this.isCloneConnectSource(a),l=t?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(l.geometry.x,l.geometry.y);b==mxConstants.DIRECTION_NORTH?(r.x+=l.geometry.width/2,r.y-=e):b== +mxConstants.DIRECTION_SOUTH?(r.x+=l.geometry.width/2,r.y+=l.geometry.height+e):(r.x=b==mxConstants.DIRECTION_WEST?r.x-e:r.x+(l.geometry.width+e),r.y+=l.geometry.height/2);var x=this.view.getState(this.model.getParent(a));e=this.view.scale;var z=this.view.translate;l=z.x*e;z=z.y*e;null!=x&&this.model.isVertex(x.cell)&&(l=x.x,z=x.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(r.x+=a.parent.geometry.x,r.y+=a.parent.geometry.y);d=d?null:(new mxRectangle(l+r.x*e,z+r.y*e)).grow(40*e);d=null!=d? this.getCells(0,0,0,0,null,null,d,null,!0):null;x=this.view.getState(a);var C=null,G=null;if(null!=d){d=d.reverse();for(var E=0;EG*G&&0G*G&&(Z=new mxP 1.3,r.curveTo(Z.x-N.y*L,Z.y+N.x*L,W.x-N.y*L,W.y+N.x*L,W.x,W.y)):(r.moveTo(W.x,W.y),D=!0),L=[W],Z=!0))}else N=null;Z||(L.push(X),I=X)}this.addPoints(r,L,z,C,!1,null,D);r.stroke()}};var h=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(r,x,z,C){return null!=x&&"centerPerimeter"==x.style[mxConstants.STYLE_PERIMETER]?new mxPoint(x.getCenterX(),x.getCenterY()):h.apply(this,arguments)};var n=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint= function(r,x,z,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,z,C),E=this.graph.isOrthogonal(r),D=mxUtils.toRadians(Number(x.style[mxConstants.STYLE_ROTATION]||"0")),I=new mxPoint(x.getCenterX(),x.getCenterY());if(0!=D){var M=Math.cos(-D),L=Math.sin(-D);G=mxUtils.getRotatedPoint(G,M,L,I)}M=parseFloat(r.style[mxConstants.STYLE_PERIMETER_SPACING]||0);M+=parseFloat(r.style[C?mxConstants.STYLE_SOURCE_PERIMETER_SPACING: mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);G=this.getPerimeterPoint(x,G,0==D&&E,M);0!=D&&(M=Math.cos(D),L=Math.sin(D),G=mxUtils.getRotatedPoint(G,M,L,I));r.setAbsoluteTerminalPoint(this.snapToAnchorPoint(r,x,z,C,G),C)}};mxGraphView.prototype.snapToAnchorPoint=function(r,x,z,C,G){if(null!=x&&null!=r){r=this.graph.getAllConnectionConstraints(x);C=z=null;if(null!=r)for(var E=0;E=d.getStatus()&&eval.call(window,d.getText())}}catch(h){null!=window.console&&console.log("error in getStencil:",a,e,b,g,h)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);b=mxStencilRegistry.stencils[a]}}return b}; mxStencilRegistry.getBasenameForStencil=function(a){var b=null;if(null!=a&&"string"===typeof a&&(a=a.split("."),0=ia.x&&this.model.remove(wa[A]);var Ma=this.model.getTerminal(B,!1); if(null!=Ma){var Ka=this.getCurrentCellStyle(Ma);null!=Ka&&"1"==Ka.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[u]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[u]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[B]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[B]))}}finally{this.model.endUpdate()}return B};var x=Graph.prototype.selectCell;Graph.prototype.selectCell=function(u,A,B){if(A||B)x.apply(this,arguments);else{var F=this.getSelectionCell(),K=null,O=[],U=mxUtils.bind(this, function(ea){if(null!=this.view.getState(ea)&&(this.model.isVertex(ea)||this.model.isEdge(ea)))if(O.push(ea),ea==F)K=O.length-1;else if(u&&null==F&&0K||!u&&0q&&c++;k++}qb.lengthq&&c++;k++}qb.lengthz;z++)(function(fa){mxEvent.addListener(m[fa],"click",function(){b(m[fa],""==m[fa].style.backgroundImage)})})(z);var Xa=mxUtils.bind(this,function(fa,Aa,Ia){g=e.getSelectionState();fa=mxUtils.getValue(g.style,mxConstants.STYLE_FONTSTYLE,0);b(m[0],(fa&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);b(m[1], -(fa&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC);b(m[2],(fa&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);t.firstChild.nodeValue=mxUtils.getValue(g.style,mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont);b(r,"0"==mxUtils.getValue(g.style,mxConstants.STYLE_HORIZONTAL,"1"));if(Ia||document.activeElement!=J)fa=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize)),J.value=isNaN(fa)?"":fa+" pt";fa=mxUtils.getValue(g.style,mxConstants.STYLE_ALIGN, +"10px";h.appendChild(d);a.appendChild(h);var Ha=h}else a.appendChild(h),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(n);for(z=0;3>z;z++)(function(fa){mxEvent.addListener(l[fa],"click",function(){b(l[fa],""==l[fa].style.backgroundImage)})})(z);var Xa=mxUtils.bind(this,function(fa,Aa,Ia){g=e.getSelectionState();fa=mxUtils.getValue(g.style,mxConstants.STYLE_FONTSTYLE,0);b(l[0],(fa&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);b(l[1], +(fa&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC);b(l[2],(fa&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);t.firstChild.nodeValue=mxUtils.getValue(g.style,mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont);b(r,"0"==mxUtils.getValue(g.style,mxConstants.STYLE_HORIZONTAL,"1"));if(Ia||document.activeElement!=J)fa=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize)),J.value=isNaN(fa)?"":fa+" pt";fa=mxUtils.getValue(g.style,mxConstants.STYLE_ALIGN, mxConstants.ALIGN_CENTER);b(C,fa==mxConstants.ALIGN_LEFT);b(G,fa==mxConstants.ALIGN_CENTER);b(E,fa==mxConstants.ALIGN_RIGHT);fa=mxUtils.getValue(g.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);b(I,fa==mxConstants.ALIGN_TOP);b(M,fa==mxConstants.ALIGN_MIDDLE);b(L,fa==mxConstants.ALIGN_BOTTOM);fa=mxUtils.getValue(g.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);Aa=mxUtils.getValue(g.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);la.value= fa==mxConstants.ALIGN_LEFT&&Aa==mxConstants.ALIGN_TOP?"topLeft":fa==mxConstants.ALIGN_CENTER&&Aa==mxConstants.ALIGN_TOP?"top":fa==mxConstants.ALIGN_RIGHT&&Aa==mxConstants.ALIGN_TOP?"topRight":fa==mxConstants.ALIGN_LEFT&&Aa==mxConstants.ALIGN_BOTTOM?"bottomLeft":fa==mxConstants.ALIGN_CENTER&&Aa==mxConstants.ALIGN_BOTTOM?"bottom":fa==mxConstants.ALIGN_RIGHT&&Aa==mxConstants.ALIGN_BOTTOM?"bottomRight":fa==mxConstants.ALIGN_LEFT?"left":fa==mxConstants.ALIGN_RIGHT?"right":"center";fa=mxUtils.getValue(g.style, mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);fa==mxConstants.TEXT_DIRECTION_RTL?ma.value="rightToLeft":fa==mxConstants.TEXT_DIRECTION_LTR?ma.value="leftToRight":fa==mxConstants.TEXT_DIRECTION_AUTO&&(ma.value="automatic");if(Ia||document.activeElement!=xa)fa=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING,2)),xa.value=isNaN(fa)?"":fa+" pt";if(Ia||document.activeElement!=ua)fa=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING_TOP,0)),ua.value=isNaN(fa)? @@ -3189,7 +3189,7 @@ mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);fa==mxConst 999," pt");var eb=this.installInputHandler(ua,mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");var hb=this.installInputHandler(za,mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");var bb=this.installInputHandler(La,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");var $a=this.installInputHandler(Qa,mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(J,Xa);this.addKeyHandler(xa,Xa);this.addKeyHandler(ua,Xa);this.addKeyHandler(za,Xa);this.addKeyHandler(La,Xa);this.addKeyHandler(Qa,Xa); f.getModel().addListener(mxEvent.CHANGE,Xa);this.listeners.push({destroy:function(){f.getModel().removeListener(Xa)}});Xa();if(f.cellEditor.isContentEditing()){var jb=!1;d=function(){jb||(jb=!0,window.setTimeout(function(){var fa=f.getSelectedEditingElement();if(null!=fa){var Aa=function(ea,ca){if(null!=ea&&null!=ca){if(ea==ca)return!0;if(ea.length>ca.length+1)return ea.substring(ea.length-ca.length-1,ea.length)=="-"+ca}return!1},Ia=function(ea){if(null!=f.getParentByName(fa,ea,f.cellEditor.textarea))return!0; for(var ca=fa;null!=ca&&1==ca.childNodes.length;)if(ca=ca.childNodes[0],ca.nodeName==ea)return!0;return!1},Ba=function(ea){ea=null!=ea?ea.fontSize:null;return null!=ea&&"px"==ea.substring(ea.length-2)?parseFloat(ea):mxConstants.DEFAULT_FONTSIZE},Va=function(ea,ca,ia){return null!=ia.style&&null!=ca?(ca=ca.lineHeight,null!=ia.style.lineHeight&&"%"==ia.style.lineHeight.substring(ia.style.lineHeight.length-1)?parseInt(ia.style.lineHeight)/100:"px"==ca.substring(ca.length-2)?parseFloat(ca)/ea:parseInt(ca)): -""},u=mxUtils.getCurrentStyle(fa),A=Ba(u),B=Va(A,u,fa),F=fa.getElementsByTagName("*");if(0W&&(z=function(ka){mxEvent.addListener(ka,"mouseenter",function(){ka.style.opacity="1"});mxEvent.addListener(ka,"mouseleave",function(){ka.style.opacity="0.5"})},m=document.createElement("div"), -m.className="geAdaptiveAsset",m.style.position="absolute",m.style.left="0px",m.style.top="0px",m.style.bottom="0px",m.style.width="24px",m.style.height="24px",m.style.margin="0px",m.style.cursor="pointer",m.style.opacity="0.5",m.style.backgroundRepeat="no-repeat",m.style.backgroundPosition="center center",m.style.backgroundSize="24px 24px",m.style.backgroundImage="url("+Editor.previousImage+")",r=m.cloneNode(!1),r.style.backgroundImage="url("+Editor.nextImage+")",r.style.left="",r.style.right="2px", -d.appendChild(m),d.appendChild(r),mxEvent.addListener(m,"click",mxUtils.bind(this,function(){ba(mxUtils.mod(this.format.currentStylePage-1,W))})),mxEvent.addListener(r,"click",mxUtils.bind(this,function(){ba(mxUtils.mod(this.format.currentStylePage+1,W))})),z(m),z(r))}else Z();return a}; +la.style.marginRight="3px";la.style.borderRadius="3px";la.style.cursor="pointer";la.style.background="transparent";la.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(ka,ra){mxEvent.addListener(la,"click",mxUtils.bind(this,function(){ba(ka)}))})(z,la);d.appendChild(la);X.push(la)}a.appendChild(d);Z();15>W&&(z=function(ka){mxEvent.addListener(ka,"mouseenter",function(){ka.style.opacity="1"});mxEvent.addListener(ka,"mouseleave",function(){ka.style.opacity="0.5"})},l=document.createElement("div"), +l.className="geAdaptiveAsset",l.style.position="absolute",l.style.left="0px",l.style.top="0px",l.style.bottom="0px",l.style.width="24px",l.style.height="24px",l.style.margin="0px",l.style.cursor="pointer",l.style.opacity="0.5",l.style.backgroundRepeat="no-repeat",l.style.backgroundPosition="center center",l.style.backgroundSize="24px 24px",l.style.backgroundImage="url("+Editor.previousImage+")",r=l.cloneNode(!1),r.style.backgroundImage="url("+Editor.nextImage+")",r.style.left="",r.style.right="2px", +d.appendChild(l),d.appendChild(r),mxEvent.addListener(l,"click",mxUtils.bind(this,function(){ba(mxUtils.mod(this.format.currentStylePage-1,W))})),mxEvent.addListener(r,"click",mxUtils.bind(this,function(){ba(mxUtils.mod(this.format.currentStylePage+1,W))})),z(l),z(r))}else Z();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,e){BaseFormatPanel.call(this,a,b,e);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,e=b.editor.graph;a.appendChild(this.createTitle(mxResources.get("view")));this.addGridOption(a);DiagramFormatPanel.showPageView&&a.appendChild(this.createOption(mxResources.get("pageView"),function(){return e.pageVisible},function(d){b.actions.get("pageView").funct()},{install:function(d){this.listener=function(){d(e.pageVisible)};b.addListener("pageViewChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}})); @@ -3312,255 +3312,255 @@ function(){d(Editor.sketchMode)};b.addListener("sketchModeChanged",this.listener DiagramFormatPanel.prototype.addOptions=function(a){var b=this.editorUi,e=b.editor.graph;a.appendChild(this.createTitle(mxResources.get("options")));e.isEnabled()&&(a.appendChild(this.createOption(mxResources.get("connectionArrows"),function(){return e.connectionArrowsEnabled},function(f){b.actions.get("connectionArrows").funct()},{install:function(f){this.listener=function(){f(e.connectionArrowsEnabled)};b.addListener("connectionArrowsChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}})), a.appendChild(this.createOption(mxResources.get("connectionPoints"),function(){return e.connectionHandler.isEnabled()},function(f){b.actions.get("connectionPoints").funct()},{install:function(f){this.listener=function(){f(e.connectionHandler.isEnabled())};b.addListener("connectionPointsChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}})),a.appendChild(this.createOption(mxResources.get("guides"),function(){return e.graphHandler.guidesEnabled},function(f){b.actions.get("guides").funct()}, {install:function(f){this.listener=function(){f(e.graphHandler.guidesEnabled)};b.addListener("guidesEnabledChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}})));return a}; -DiagramFormatPanel.prototype.addGridOption=function(a){function b(t){var m=e.isFloatUnit()?parseFloat(d.value):parseInt(d.value);m=e.fromUnit(Math.max(e.inUnit(1),isNaN(m)?e.inUnit(10):m));m!=g.getGridSize()&&(mxGraph.prototype.gridSize=m,g.setGridSize(m));d.value=e.inUnit(m)+" "+e.getUnit();mxEvent.consume(t)}var e=this,f=this.editorUi,g=f.editor.graph,d=document.createElement("input");d.style.position="absolute";d.style.textAlign="right";d.style.width="48px";d.style.marginTop="-2px";d.style.height= +DiagramFormatPanel.prototype.addGridOption=function(a){function b(t){var l=e.isFloatUnit()?parseFloat(d.value):parseInt(d.value);l=e.fromUnit(Math.max(e.inUnit(1),isNaN(l)?e.inUnit(10):l));l!=g.getGridSize()&&(mxGraph.prototype.gridSize=l,g.setGridSize(l));d.value=e.inUnit(l)+" "+e.getUnit();mxEvent.consume(t)}var e=this,f=this.editorUi,g=f.editor.graph,d=document.createElement("input");d.style.position="absolute";d.style.textAlign="right";d.style.width="48px";d.style.marginTop="-2px";d.style.height= "21px";d.style.borderWidth="1px";d.style.borderStyle="solid";d.style.boxSizing="border-box";d.value=this.inUnit(g.getGridSize())+" "+this.getUnit();var h=this.createStepper(d,b,this.getUnitStep(),null,null,null,this.isFloatUnit());d.style.display=g.isGridEnabled()?"":"none";h.style.display=d.style.display;mxEvent.addListener(d,"keydown",function(t){13==t.keyCode?(g.container.focus(),mxEvent.consume(t)):27==t.keyCode&&(d.value=g.getGridSize(),g.container.focus(),mxEvent.consume(t))});mxEvent.addListener(d, -"blur",b);mxEvent.addListener(d,"change",b);d.style.right="78px";h.style.marginTop=mxClient.IS_MAC&&mxClient.IS_GC?"-16px":mxClient.IS_WIN?"-18px":"-17px";h.style.right="66px";var n=this.createColorOption(mxResources.get("grid"),function(){var t=g.view.gridColor;return g.isGridEnabled()?t:null},function(t){var m=g.isGridEnabled();t==mxConstants.NONE?g.setGridEnabled(!1):(g.setGridEnabled(!0),f.setGridColor(t));d.style.display=g.isGridEnabled()?"":"none";h.style.display=d.style.display;m!=g.isGridEnabled()&& +"blur",b);mxEvent.addListener(d,"change",b);d.style.right="78px";h.style.marginTop=mxClient.IS_MAC&&mxClient.IS_GC?"-16px":mxClient.IS_WIN?"-18px":"-17px";h.style.right="66px";var n=this.createColorOption(mxResources.get("grid"),function(){var t=g.view.gridColor;return g.isGridEnabled()?t:null},function(t){var l=g.isGridEnabled();t==mxConstants.NONE?g.setGridEnabled(!1):(g.setGridEnabled(!0),f.setGridColor(t));d.style.display=g.isGridEnabled()?"":"none";h.style.display=d.style.display;l!=g.isGridEnabled()&& (g.defaultGridEnabled=g.isGridEnabled(),f.fireEvent(new mxEventObject("gridEnabledChanged")))},Editor.isDarkMode()?g.view.defaultDarkGridColor:g.view.defaultGridColor,{install:function(t){this.listener=function(){t(g.isGridEnabled()?g.view.gridColor:null)};f.addListener("gridColorChanged",this.listener);f.addListener("gridEnabledChanged",this.listener)},destroy:function(){f.removeListener(this.listener)}});n.style.padding="6px 0 0 0";n.appendChild(d);n.appendChild(h);a.appendChild(n)}; DiagramFormatPanel.prototype.addDocumentProperties=function(a){a.appendChild(this.createTitle(mxResources.get("options")));return a}; DiagramFormatPanel.prototype.addPaperSize=function(a){var b=this.editorUi,e=b.editor.graph;a.appendChild(this.createTitle(mxResources.get("paperSize")));var f=PageSetupDialog.addPageFormatPanel(a,"formatpanel",e.pageFormat,function(d){if(null==e.pageFormat||e.pageFormat.width!=d.width||e.pageFormat.height!=d.height)d=new ChangePageSetup(b,null,null,d),d.ignoreColor=!0,d.ignoreImage=!0,e.model.execute(d)});this.addKeyHandler(f.widthInput,function(){f.set(e.pageFormat)});this.addKeyHandler(f.heightInput, function(){f.set(e.pageFormat)});var g=function(){f.set(e.pageFormat)};b.addListener("pageFormatChanged",g);this.listeners.push({destroy:function(){b.removeListener(g)}});e.getModel().addListener(mxEvent.CHANGE,g);this.listeners.push({destroy:function(){e.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,k,q){mxShape.call(this);this.line=c;this.stroke=k;this.strokewidth=null!=q?q:1;this.updateBoundsFromLine()}function b(){mxSwimlane.call(this)}function e(){mxSwimlane.call(this)}function f(){mxCylinder.call(this)}function g(){mxConnector.call(this)}function d(){mxCylinder.call(this)}function h(){mxActor.call(this)}function n(){mxCylinder.call(this)}function t(){mxCylinder.call(this)}function m(){mxCylinder.call(this)}function r(){mxCylinder.call(this)}function x(){mxShape.call(this)} -function z(){mxShape.call(this)}function C(c,k,q,l){mxShape.call(this);this.bounds=c;this.fill=k;this.stroke=q;this.strokewidth=null!=l?l:1}function G(){mxActor.call(this)}function E(){mxCylinder.call(this)}function D(){mxCylinder.call(this)}function I(){mxActor.call(this)}function M(){mxActor.call(this)}function L(){mxActor.call(this)}function N(){mxActor.call(this)}function Y(){mxActor.call(this)}function W(){mxActor.call(this)}function X(){mxActor.call(this)}function Z(c,k){this.canvas=c;this.canvas.setLineJoin("round"); +DiagramFormatPanel.prototype.destroy=function(){BaseFormatPanel.prototype.destroy.apply(this,arguments);this.gridEnabledListener&&(this.editorUi.removeListener(this.gridEnabledListener),this.gridEnabledListener=null)};(function(){function a(c,k,q){mxShape.call(this);this.line=c;this.stroke=k;this.strokewidth=null!=q?q:1;this.updateBoundsFromLine()}function b(){mxSwimlane.call(this)}function e(){mxSwimlane.call(this)}function f(){mxCylinder.call(this)}function g(){mxConnector.call(this)}function d(){mxCylinder.call(this)}function h(){mxActor.call(this)}function n(){mxCylinder.call(this)}function t(){mxCylinder.call(this)}function l(){mxCylinder.call(this)}function r(){mxCylinder.call(this)}function x(){mxShape.call(this)} +function z(){mxShape.call(this)}function C(c,k,q,m){mxShape.call(this);this.bounds=c;this.fill=k;this.stroke=q;this.strokewidth=null!=m?m:1}function G(){mxActor.call(this)}function E(){mxCylinder.call(this)}function D(){mxCylinder.call(this)}function I(){mxActor.call(this)}function M(){mxActor.call(this)}function L(){mxActor.call(this)}function N(){mxActor.call(this)}function Y(){mxActor.call(this)}function W(){mxActor.call(this)}function X(){mxActor.call(this)}function Z(c,k){this.canvas=c;this.canvas.setLineJoin("round"); this.canvas.setLineCap("round");this.defaultVariation=k;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,Z.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,Z.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,Z.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,Z.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this, Z.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,Z.prototype.arcTo)}function ba(){mxRectangleShape.call(this)}function la(){mxRectangleShape.call(this)}function ka(){mxActor.call(this)}function ra(){mxActor.call(this)}function ma(){mxActor.call(this)}function Q(){mxRectangleShape.call(this)}function V(){mxRectangleShape.call(this)}function J(){mxCylinder.call(this)}function R(){mxShape.call(this)}function ha(){mxShape.call(this)}function P(){mxEllipse.call(this)} function T(){mxShape.call(this)}function ja(){mxShape.call(this)}function pa(){mxRectangleShape.call(this)}function da(){mxShape.call(this)}function ua(){mxShape.call(this)}function xa(){mxShape.call(this)}function Qa(){mxShape.call(this)}function La(){mxShape.call(this)}function za(){mxCylinder.call(this)}function Ja(){mxCylinder.call(this)}function ta(){mxRectangleShape.call(this)}function Ha(){mxDoubleEllipse.call(this)}function Xa(){mxDoubleEllipse.call(this)}function gb(){mxArrowConnector.call(this); this.spacing=0}function eb(){mxArrowConnector.call(this);this.spacing=0}function hb(){mxActor.call(this)}function bb(){mxRectangleShape.call(this)}function $a(){mxActor.call(this)}function jb(){mxActor.call(this)}function fa(){mxActor.call(this)}function Aa(){mxActor.call(this)}function Ia(){mxActor.call(this)}function Ba(){mxActor.call(this)}function Va(){mxActor.call(this)}function u(){mxActor.call(this)}function A(){mxActor.call(this)}function B(){mxActor.call(this)}function F(){mxEllipse.call(this)} -function K(){mxEllipse.call(this)}function O(){mxEllipse.call(this)}function U(){mxRhombus.call(this)}function ea(){mxEllipse.call(this)}function ca(){mxEllipse.call(this)}function ia(){mxEllipse.call(this)}function wa(){mxEllipse.call(this)}function Ma(){mxActor.call(this)}function Ka(){mxActor.call(this)}function Pa(){mxActor.call(this)}function va(c,k,q,l){mxShape.call(this);this.bounds=c;this.fill=k;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 Na(){mxConnector.call(this)}function Ea(c,k,q,l,p,v,w,H,y,aa){w+=y;var S=l.clone();l.x-=p*(2*w+y);l.y-=v*(2*w+y);p*=w+y;v*=w+y;return function(){c.ellipse(S.x-p-w,S.y-v-w,2*w,2*w);aa?c.fillAndStroke():c.stroke()}}mxUtils.extend(a,mxShape);a.prototype.updateBoundsFromLine=function(){var c=null;if(null!=this.line)for(var k=0;kw?"#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!=H&&(c.setFillAlpha(Math.abs(H)),c.setFillColor(0>H?"#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())};f.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", -f);var Ya=Math.tan(mxUtils.toRadians(30)),Sa=(.5-Ya)/2;mxCellRenderer.registerShape("isoRectangle",h);mxUtils.extend(g,mxConnector);g.prototype.paintEdgeShape=function(c,k){var q=this.createMarker(c,k,!0),l=this.createMarker(c,k,!1);c.setDashed(!1);mxPolyline.prototype.paintEdgeShape.apply(this,arguments);null!=this.isDashed&&c.setDashed(this.isDashed,null!=this.style?1==mxUtils.getValue(this.style,mxConstants.STYLE_FIX_DASH,!1):!1);c.setShadow(!1);c.setStrokeColor(this.fill);mxPolyline.prototype.paintEdgeShape.apply(this, -arguments);c.setStrokeColor(this.stroke);c.setFillColor(this.stroke);c.setDashed(!1);null!=q&&q();null!=l&&l()};mxCellRenderer.registerShape("wire",g);mxUtils.extend(d,mxCylinder);d.prototype.size=6;d.prototype.paintVertexShape=function(c,k,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(k+.5*(l-v),q+.5*(p-v),v,v);c.fill();c.setFillColor(mxConstants.NONE);c.rect(k,q,l,p);c.fill()};mxCellRenderer.registerShape("waypoint", -d);mxUtils.extend(h,mxActor);h.prototype.size=20;h.prototype.redrawPath=function(c,k,q,l,p){k=Math.min(l,p/Ya);c.translate((l-k)/2,(p-k)/2+k/4);c.moveTo(0,.25*k);c.lineTo(.5*k,k*Sa);c.lineTo(k,.25*k);c.lineTo(.5*k,(.5-Sa)*k);c.lineTo(0,.25*k);c.close();c.end()};mxCellRenderer.registerShape("isoRectangle",h);mxUtils.extend(n,mxCylinder);n.prototype.size=20;n.prototype.redrawPath=function(c,k,q,l,p,v){k=Math.min(l,p/(.5+Ya));v?(c.moveTo(0,.25*k),c.lineTo(.5*k,(.5-Sa)*k),c.lineTo(k,.25*k),c.moveTo(.5* -k,(.5-Sa)*k),c.lineTo(.5*k,(1-Sa)*k)):(c.translate((l-k)/2,(p-k)/2),c.moveTo(0,.25*k),c.lineTo(.5*k,k*Sa),c.lineTo(k,.25*k),c.lineTo(k,.75*k),c.lineTo(.5*k,(1-Sa)*k),c.lineTo(0,.75*k),c.close());c.end()};mxCellRenderer.registerShape("isoCube",n);mxUtils.extend(t,mxCylinder);t.prototype.redrawPath=function(c,k,q,l,p,v){k=Math.min(p/2,Math.round(p/8)+this.strokewidth-1);if(v&&null!=this.fill||!v&&null==this.fill)c.moveTo(0,k),c.curveTo(0,2*k,l,2*k,l,k),v||(c.stroke(),c.begin()),c.translate(0,k/2),c.moveTo(0, -k),c.curveTo(0,2*k,l,2*k,l,k),v||(c.stroke(),c.begin()),c.translate(0,k/2),c.moveTo(0,k),c.curveTo(0,2*k,l,2*k,l,k),v||(c.stroke(),c.begin()),c.translate(0,-k);v||(c.moveTo(0,k),c.curveTo(0,-k/3,l,-k/3,l,k),c.lineTo(l,p-k),c.curveTo(l,p+k/3,0,p+k/3,0,p-k),c.close())};t.prototype.getLabelMargins=function(c){return new mxRectangle(0,2.5*Math.min(c.height/2,Math.round(c.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",t);mxUtils.extend(m,mxCylinder);m.prototype.size=30;m.prototype.darkOpacity= -0;m.prototype.paintVertexShape=function(c,k,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))));c.translate(k,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",m);mxUtils.extend(r,m);mxCellRenderer.registerShape("note2",r);r.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var k=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(c.height*this.scale,k*this.scale),0,0)}return null};mxUtils.extend(x,mxShape);x.prototype.isoAngle= -15;x.prototype.paintVertexShape=function(c,k,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(k,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", -x);mxUtils.extend(z,mxShape);z.prototype.size=15;z.prototype.paintVertexShape=function(c,k,q,l,p){var v=Math.max(0,Math.min(.5*p,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.translate(k,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",z);mxUtils.extend(C,mxCylinder);C.prototype.size=15;C.prototype.paintVertexShape=function(c,k,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(k,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",C);mxUtils.extend(G,mxActor);G.prototype.redrawPath=function(c,k,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",G);mxUtils.extend(E, -mxCylinder);E.prototype.tabWidth=60;E.prototype.tabHeight=20;E.prototype.tabPosition="right";E.prototype.arcSize=.1;E.prototype.paintVertexShape=function(c,k,q,l,p){c.translate(k,q);k=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),H=mxUtils.getValue(this.style, -"absoluteArcSize",!1),y=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));H||(y*=Math.min(l,p));y=Math.min(y,.5*l,.5*(p-q));k=Math.max(k,y);k=Math.min(l-y,k);w||(y=0);c.begin();"left"==v?(c.moveTo(Math.max(y,0),q),c.lineTo(Math.max(y,0),0),c.lineTo(k,0),c.lineTo(k,q)):(c.moveTo(l-k,q),c.lineTo(l-k,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",E);E.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var k=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;k=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-k));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-k)):new mxRectangle(Math.min(c.width,c.width-q),0,v,Math.min(c.height,c.height-k))}return new mxRectangle(0,Math.min(c.height,k),0,0)}return null};mxUtils.extend(D,mxCylinder);D.prototype.arcSize=.1;D.prototype.paintVertexShape=function(c,k,q,l,p){c.translate(k,q);var v=mxUtils.getValue(this.style,"rounded",!1),w=mxUtils.getValue(this.style,"absoluteArcSize",!1);k=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));q=mxUtils.getValue(this.style,"umlStateConnection", -null);w||(k*=Math.min(l,p));k=Math.min(k,.5*l,.5*p);v||(k=0);v=0;null!=q&&(v=10);c.begin();c.moveTo(v,k);c.arcTo(k,k,0,0,1,v+k,0);c.lineTo(l-k,0);c.arcTo(k,k,0,0,1,l,k);c.lineTo(l,p-k);c.arcTo(k,k,0,0,1,l-k,p);c.lineTo(v+k,p);c.arcTo(k,k,0,0,1,v,p-k);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), +function K(){mxEllipse.call(this)}function O(){mxEllipse.call(this)}function U(){mxRhombus.call(this)}function ea(){mxEllipse.call(this)}function ca(){mxEllipse.call(this)}function ia(){mxEllipse.call(this)}function wa(){mxEllipse.call(this)}function Ma(){mxActor.call(this)}function Ka(){mxActor.call(this)}function Pa(){mxActor.call(this)}function va(c,k,q,m){mxShape.call(this);this.bounds=c;this.fill=k;this.stroke=q;this.strokewidth=null!=m?m:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize= +!0;this.indent=2;this.rectOutline="single"}function Na(){mxConnector.call(this)}function Ea(c,k,q,m,p,v,w,H,y,aa){w+=y;var S=m.clone();m.x-=p*(2*w+y);m.y-=v*(2*w+y);p*=w+y;v*=w+y;return function(){c.ellipse(S.x-p-w,S.y-v-w,2*w,2*w);aa?c.fillAndStroke():c.stroke()}}mxUtils.extend(a,mxShape);a.prototype.updateBoundsFromLine=function(){var c=null;if(null!=this.line)for(var k=0;kw?"#FFFFFF":"#000000"),c.begin(),c.moveTo(0,0),c.lineTo(m-v,0),c.lineTo(m,v),c.lineTo(v, +v),c.close(),c.fill()),0!=H&&(c.setFillAlpha(Math.abs(H)),c.setFillColor(0>H?"#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(m,v),c.end(),c.stroke())};f.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", +f);var Ya=Math.tan(mxUtils.toRadians(30)),Sa=(.5-Ya)/2;mxCellRenderer.registerShape("isoRectangle",h);mxUtils.extend(g,mxConnector);g.prototype.paintEdgeShape=function(c,k){var q=this.createMarker(c,k,!0),m=this.createMarker(c,k,!1);c.setDashed(!1);mxPolyline.prototype.paintEdgeShape.apply(this,arguments);null!=this.isDashed&&c.setDashed(this.isDashed,null!=this.style?1==mxUtils.getValue(this.style,mxConstants.STYLE_FIX_DASH,!1):!1);c.setShadow(!1);c.setStrokeColor(this.fill);mxPolyline.prototype.paintEdgeShape.apply(this, +arguments);c.setStrokeColor(this.stroke);c.setFillColor(this.stroke);c.setDashed(!1);null!=q&&q();null!=m&&m()};mxCellRenderer.registerShape("wire",g);mxUtils.extend(d,mxCylinder);d.prototype.size=6;d.prototype.paintVertexShape=function(c,k,q,m,p){c.setFillColor(this.stroke);var v=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;c.ellipse(k+.5*(m-v),q+.5*(p-v),v,v);c.fill();c.setFillColor(mxConstants.NONE);c.rect(k,q,m,p);c.fill()};mxCellRenderer.registerShape("waypoint", +d);mxUtils.extend(h,mxActor);h.prototype.size=20;h.prototype.redrawPath=function(c,k,q,m,p){k=Math.min(m,p/Ya);c.translate((m-k)/2,(p-k)/2+k/4);c.moveTo(0,.25*k);c.lineTo(.5*k,k*Sa);c.lineTo(k,.25*k);c.lineTo(.5*k,(.5-Sa)*k);c.lineTo(0,.25*k);c.close();c.end()};mxCellRenderer.registerShape("isoRectangle",h);mxUtils.extend(n,mxCylinder);n.prototype.size=20;n.prototype.redrawPath=function(c,k,q,m,p,v){k=Math.min(m,p/(.5+Ya));v?(c.moveTo(0,.25*k),c.lineTo(.5*k,(.5-Sa)*k),c.lineTo(k,.25*k),c.moveTo(.5* +k,(.5-Sa)*k),c.lineTo(.5*k,(1-Sa)*k)):(c.translate((m-k)/2,(p-k)/2),c.moveTo(0,.25*k),c.lineTo(.5*k,k*Sa),c.lineTo(k,.25*k),c.lineTo(k,.75*k),c.lineTo(.5*k,(1-Sa)*k),c.lineTo(0,.75*k),c.close());c.end()};mxCellRenderer.registerShape("isoCube",n);mxUtils.extend(t,mxCylinder);t.prototype.redrawPath=function(c,k,q,m,p,v){k=Math.min(p/2,Math.round(p/8)+this.strokewidth-1);if(v&&null!=this.fill||!v&&null==this.fill)c.moveTo(0,k),c.curveTo(0,2*k,m,2*k,m,k),v||(c.stroke(),c.begin()),c.translate(0,k/2),c.moveTo(0, +k),c.curveTo(0,2*k,m,2*k,m,k),v||(c.stroke(),c.begin()),c.translate(0,k/2),c.moveTo(0,k),c.curveTo(0,2*k,m,2*k,m,k),v||(c.stroke(),c.begin()),c.translate(0,-k);v||(c.moveTo(0,k),c.curveTo(0,-k/3,m,-k/3,m,k),c.lineTo(m,p-k),c.curveTo(m,p+k/3,0,p+k/3,0,p-k),c.close())};t.prototype.getLabelMargins=function(c){return new mxRectangle(0,2.5*Math.min(c.height/2,Math.round(c.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",t);mxUtils.extend(l,mxCylinder);l.prototype.size=30;l.prototype.darkOpacity= +0;l.prototype.paintVertexShape=function(c,k,q,m,p){var v=Math.max(0,Math.min(m,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))));c.translate(k,q);c.begin();c.moveTo(0,0);c.lineTo(m-v,0);c.lineTo(m,v);c.lineTo(m,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(m-v,0),c.lineTo(m-v,v),c.lineTo(m,v),c.close(),c.fill()),c.begin(),c.moveTo(m-v,0),c.lineTo(m-v,v),c.lineTo(m,v),c.end(),c.stroke())};mxCellRenderer.registerShape("note",l);mxUtils.extend(r,l);mxCellRenderer.registerShape("note2",r);r.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var k=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(c.height*this.scale,k*this.scale),0,0)}return null};mxUtils.extend(x,mxShape);x.prototype.isoAngle= +15;x.prototype.paintVertexShape=function(c,k,q,m,p){var v=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200;v=Math.min(m*Math.tan(v),.5*p);c.translate(k,q);c.begin();c.moveTo(.5*m,0);c.lineTo(m,v);c.lineTo(m,p-v);c.lineTo(.5*m,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*m,2*v);c.lineTo(m,v);c.moveTo(.5*m,2*v);c.lineTo(.5*m,p);c.stroke()};mxCellRenderer.registerShape("isoCube2", +x);mxUtils.extend(z,mxShape);z.prototype.size=15;z.prototype.paintVertexShape=function(c,k,q,m,p){var v=Math.max(0,Math.min(.5*p,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.translate(k,q);0==v?(c.rect(0,0,m,p),c.fillAndStroke()):(c.begin(),c.moveTo(0,v),c.arcTo(.5*m,v,0,0,1,.5*m,0),c.arcTo(.5*m,v,0,0,1,m,v),c.lineTo(m,p-v),c.arcTo(.5*m,v,0,0,1,.5*m,p),c.arcTo(.5*m,v,0,0,1,0,p-v),c.close(),c.fillAndStroke(),c.setShadow(!1),c.begin(),c.moveTo(m,v),c.arcTo(.5*m,v,0,0,1,.5*m,2*v),c.arcTo(.5* +m,v,0,0,1,0,v),c.stroke())};mxCellRenderer.registerShape("cylinder2",z);mxUtils.extend(C,mxCylinder);C.prototype.size=15;C.prototype.paintVertexShape=function(c,k,q,m,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(k,q);0==v?(c.rect(0,0,m,p),c.fillAndStroke()):(c.begin(),w?(c.moveTo(0,v),c.arcTo(.5*m,v,0,0,1,.5*m,0),c.arcTo(.5*m,v,0,0,1,m,v)):(c.moveTo(0,0),c.arcTo(.5*m,v,0,0,0,.5*m,v),c.arcTo(.5*m,v, +0,0,0,m,0)),c.lineTo(m,p-v),c.arcTo(.5*m,v,0,0,1,.5*m,p),c.arcTo(.5*m,v,0,0,1,0,p-v),c.close(),c.fillAndStroke(),c.setShadow(!1),w&&(c.begin(),c.moveTo(m,v),c.arcTo(.5*m,v,0,0,1,.5*m,2*v),c.arcTo(.5*m,v,0,0,1,0,v),c.stroke()))};mxCellRenderer.registerShape("cylinder3",C);mxUtils.extend(G,mxActor);G.prototype.redrawPath=function(c,k,q,m,p){c.moveTo(0,0);c.quadTo(m/2,.5*p,m,0);c.quadTo(.5*m,p/2,m,p);c.quadTo(m/2,.5*p,0,p);c.quadTo(.5*m,p/2,0,0);c.end()};mxCellRenderer.registerShape("switch",G);mxUtils.extend(E, +mxCylinder);E.prototype.tabWidth=60;E.prototype.tabHeight=20;E.prototype.tabPosition="right";E.prototype.arcSize=.1;E.prototype.paintVertexShape=function(c,k,q,m,p){c.translate(k,q);k=Math.max(0,Math.min(m,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),H=mxUtils.getValue(this.style, +"absoluteArcSize",!1),y=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));H||(y*=Math.min(m,p));y=Math.min(y,.5*m,.5*(p-q));k=Math.max(k,y);k=Math.min(m-y,k);w||(y=0);c.begin();"left"==v?(c.moveTo(Math.max(y,0),q),c.lineTo(Math.max(y,0),0),c.lineTo(k,0),c.lineTo(k,q)):(c.moveTo(m-k,q),c.lineTo(m-k,0),c.lineTo(m-Math.max(y,0),0),c.lineTo(m-Math.max(y,0),q));w?(c.moveTo(0,y+q),c.arcTo(y,y,0,0,1,y,q),c.lineTo(m-y,q),c.arcTo(y,y,0,0,1,m,y+q),c.lineTo(m,p-y),c.arcTo(y,y,0,0,1,m-y,p),c.lineTo(y, +p),c.arcTo(y,y,0,0,1,0,p-y)):(c.moveTo(0,q),c.lineTo(m,q),c.lineTo(m,p),c.lineTo(0,p));c.close();c.fillAndStroke();c.setShadow(!1);"triangle"==mxUtils.getValue(this.style,"folderSymbol",null)&&(c.begin(),c.moveTo(m-30,q+20),c.lineTo(m-20,q+10),c.lineTo(m-10,q+20),c.close(),c.stroke())};mxCellRenderer.registerShape("folder",E);E.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var k=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;k=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;var m=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-k));m||(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-k)):new mxRectangle(Math.min(c.width,c.width-q),0,v,Math.min(c.height,c.height-k))}return new mxRectangle(0,Math.min(c.height,k),0,0)}return null};mxUtils.extend(D,mxCylinder);D.prototype.arcSize=.1;D.prototype.paintVertexShape=function(c,k,q,m,p){c.translate(k,q);var v=mxUtils.getValue(this.style,"rounded",!1),w=mxUtils.getValue(this.style,"absoluteArcSize",!1);k=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));q=mxUtils.getValue(this.style,"umlStateConnection", +null);w||(k*=Math.min(m,p));k=Math.min(k,.5*m,.5*p);v||(k=0);v=0;null!=q&&(v=10);c.begin();c.moveTo(v,k);c.arcTo(k,k,0,0,1,v+k,0);c.lineTo(m-k,0);c.arcTo(k,k,0,0,1,m,k);c.lineTo(m,p-k);c.arcTo(k,k,0,0,1,m-k,p);c.lineTo(v+k,p);c.arcTo(k,k,0,0,1,v,p-k);c.close();c.fillAndStroke();c.setShadow(!1);"collapseState"==mxUtils.getValue(this.style,"umlStateSymbol",null)&&(c.roundrect(m-40,p-20,10,10,3,3),c.stroke(),c.roundrect(m-20,p-20,10,10,3,3),c.stroke(),c.begin(),c.moveTo(m-30,p-15),c.lineTo(m-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())};D.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",D);mxUtils.extend(I, -mxActor);I.prototype.size=30;I.prototype.isRoundable=function(){return!0};I.prototype.redrawPath=function(c,k,q,l,p){k=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(k,0),new mxPoint(l,0),new mxPoint(l,p),new mxPoint(0,p),new mxPoint(0,k)],this.isRounded,q,!0);c.end()};mxCellRenderer.registerShape("card",I);mxUtils.extend(M,mxActor);M.prototype.size= -.4;M.prototype.redrawPath=function(c,k,q,l,p){k=p*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.moveTo(0,k/2);c.quadTo(l/4,1.4*k,l/2,k/2);c.quadTo(3*l/4,k*(1-1.4),l,k/2);c.lineTo(l,p-k/2);c.quadTo(3*l/4,p-1.4*k,l/2,p-k/2);c.quadTo(l/4,p-k*(1-1.4),0,p-k/2);c.lineTo(0,k/2);c.close();c.end()};M.prototype.getLabelBounds=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var k=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 k*=l,new mxRectangle(c.x,c.y+k,q,l-2*k);k*=q;return new mxRectangle(c.x+k,c.y,q-2*k,l)}return c};mxCellRenderer.registerShape("tape",M);mxUtils.extend(L,mxActor);L.prototype.size=.3;L.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};L.prototype.redrawPath=function(c,k,q, -l,p){k=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-k/2);c.quadTo(3*l/4,p-1.4*k,l/2,p-k/2);c.quadTo(l/4,p-k*(1-1.4),0,p-k/2);c.lineTo(0,k/2);c.close();c.end()};mxCellRenderer.registerShape("document",L);var Ua=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(c,k,q,l){var p=mxUtils.getValue(this.style,"size");return null!=p?l*Math.max(0,Math.min(1,p)):Ua.apply(this,arguments)};mxCylinder.prototype.getLabelMargins= +mxActor);I.prototype.size=30;I.prototype.isRoundable=function(){return!0};I.prototype.redrawPath=function(c,k,q,m,p){k=Math.max(0,Math.min(m,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(k,0),new mxPoint(m,0),new mxPoint(m,p),new mxPoint(0,p),new mxPoint(0,k)],this.isRounded,q,!0);c.end()};mxCellRenderer.registerShape("card",I);mxUtils.extend(M,mxActor);M.prototype.size= +.4;M.prototype.redrawPath=function(c,k,q,m,p){k=p*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.moveTo(0,k/2);c.quadTo(m/4,1.4*k,m/2,k/2);c.quadTo(3*m/4,k*(1-1.4),m,k/2);c.lineTo(m,p-k/2);c.quadTo(3*m/4,p-1.4*k,m/2,p-k/2);c.quadTo(m/4,p-k*(1-1.4),0,p-k/2);c.lineTo(0,k/2);c.close();c.end()};M.prototype.getLabelBounds=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var k=mxUtils.getValue(this.style,"size",this.size),q=c.width,m=c.height;if(null==this.direction|| +this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return k*=m,new mxRectangle(c.x,c.y+k,q,m-2*k);k*=q;return new mxRectangle(c.x+k,c.y,q-2*k,m)}return c};mxCellRenderer.registerShape("tape",M);mxUtils.extend(L,mxActor);L.prototype.size=.3;L.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};L.prototype.redrawPath=function(c,k,q, +m,p){k=p*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.moveTo(0,0);c.lineTo(m,0);c.lineTo(m,p-k/2);c.quadTo(3*m/4,p-1.4*k,m/2,p-k/2);c.quadTo(m/4,p-k*(1-1.4),0,p-k/2);c.lineTo(0,k/2);c.close();c.end()};mxCellRenderer.registerShape("document",L);var Ua=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(c,k,q,m){var p=mxUtils.getValue(this.style,"size");return null!=p?m*Math.max(0,Math.min(1,p)):Ua.apply(this,arguments)};mxCylinder.prototype.getLabelMargins= function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var k=2*mxUtils.getValue(this.style,"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*this.scale,c.height*k),0,0)}return null};C.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var k=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(k/=2);return new mxRectangle(0,Math.min(c.height*this.scale,2*k*this.scale),0,Math.max(0,.3*k*this.scale))}return null};E.prototype.getLabelMargins= -function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var k=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;k=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-k));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-k)):new mxRectangle(Math.min(c.width,c.width-q),0,v,Math.min(c.height,c.height-k))}return new mxRectangle(0,Math.min(c.height,k),0,0)}return null};D.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};r.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var k=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(c.height*this.scale,k*this.scale),0,Math.max(0,k*this.scale))}return null};mxUtils.extend(N,mxActor);N.prototype.size=.2;N.prototype.fixedSize=20;N.prototype.isRoundable=function(){return!0};N.prototype.redrawPath=function(c,k,q,l,p){k="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(k,0),new mxPoint(l,0),new mxPoint(l-k,p)],this.isRounded,q,!0);c.end()};mxCellRenderer.registerShape("parallelogram",N);mxUtils.extend(Y,mxActor);Y.prototype.size=.2;Y.prototype.fixedSize=20;Y.prototype.isRoundable=function(){return!0};Y.prototype.redrawPath=function(c, -k,q,l,p){k="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(k,0),new mxPoint(l-k,0),new mxPoint(l,p)],this.isRounded,q,!0)};mxCellRenderer.registerShape("trapezoid",Y);mxUtils.extend(W,mxActor); -W.prototype.size=.5;W.prototype.redrawPath=function(c,k,q,l,p){c.setFillColor(null);k=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(k,0),new mxPoint(k,p/2),new mxPoint(0,p/2),new mxPoint(k,p/2),new mxPoint(k,p),new mxPoint(l,p)],this.isRounded,q,!1);c.end()};mxCellRenderer.registerShape("curlyBracket",W);mxUtils.extend(X,mxActor); -X.prototype.redrawPath=function(c,k,q,l,p){c.setStrokeWidth(1);c.setFillColor(this.stroke);k=l/5;c.rect(0,0,k,p);c.fillAndStroke();c.rect(2*k,0,k,p);c.fillAndStroke();c.rect(4*k,0,k,p);c.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",X);Z.prototype.moveTo=function(c,k){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=k;this.firstX=c;this.firstY=k};Z.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)};Z.prototype.quadTo=function(c,k,q,l){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=q;this.lastY=l};Z.prototype.curveTo=function(c,k,q,l,p,v){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=p;this.lastY=v};Z.prototype.arcTo=function(c,k,q,l,p,v,w){this.originalArcTo.apply(this.canvas,arguments);this.lastX=v;this.lastY=w};Z.prototype.lineTo=function(c,k){if(null!=this.lastX&&null!=this.lastY){var q=function(S){return"number"=== -typeof S?S?0>S?-1:1:S===S?0:NaN:NaN},l=Math.abs(c-this.lastX),p=Math.abs(k-this.lastY),v=Math.sqrt(l*l+p*p);if(2>v){this.originalLineTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=k;return}var w=Math.round(v/10),H=this.defaultVariation;5>w&&(w=5,H/=3);var y=q(c-this.lastX)*l/w;q=q(k-this.lastY)*p/w;l/=v;p/=v;for(v=0;vS?-1:1:S===S?0:NaN:NaN},m=Math.abs(c-this.lastX),p=Math.abs(k-this.lastY),v=Math.sqrt(m*m+p*p);if(2>v){this.originalLineTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=k;return}var w=Math.round(v/10),H=this.defaultVariation;5>w&&(w=5,H/=3);var y=q(c-this.lastX)*m/w;q=q(k-this.lastY)*p/w;m/=v;p/=v;for(v=0;vw+y?c.y=q.y:c.x=q.x);return mxUtils.getPerimeterPoint(H,c,q)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(c,k,q,l){var p="0"!=mxUtils.getValue(k.style,"fixedSize","0"),v=p?Y.prototype.fixedSize:Y.prototype.size;null!=k&&(v=mxUtils.getValue(k.style,"size",v));p&&(v*=k.view.scale); +y,H),new mxPoint(w+y-p,H+aa),new mxPoint(w,H+aa),new mxPoint(w+p,H)]);aa=c.getCenterX();c=c.getCenterY();c=new mxPoint(aa,c);m&&(q.xw+y?c.y=q.y:c.x=q.x);return mxUtils.getPerimeterPoint(H,c,q)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(c,k,q,m){var p="0"!=mxUtils.getValue(k.style,"fixedSize","0"),v=p?Y.prototype.fixedSize:Y.prototype.size;null!=k&&(v=mxUtils.getValue(k.style,"size",v));p&&(v*=k.view.scale); var w=c.x,H=c.y,y=c.width,aa=c.height;k=null!=k?mxUtils.getValue(k.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;k==mxConstants.DIRECTION_EAST?(p=p?Math.max(0,Math.min(.5*y,v)):y*Math.max(0,Math.min(1,v)),H=[new mxPoint(w+p,H),new mxPoint(w+y-p,H),new mxPoint(w+y,H+aa),new mxPoint(w,H+aa),new mxPoint(w+p,H)]):k==mxConstants.DIRECTION_WEST?(p=p?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),H=[new mxPoint(w,H),new mxPoint(w+y,H),new mxPoint(w+y-p,H+ -aa),new mxPoint(w+p,H+aa),new mxPoint(w,H)]):k==mxConstants.DIRECTION_NORTH?(p=p?Math.max(0,Math.min(aa,v)):aa*Math.max(0,Math.min(1,v)),H=[new mxPoint(w,H+p),new mxPoint(w+y,H),new mxPoint(w+y,H+aa),new mxPoint(w,H+aa-p),new mxPoint(w,H+p)]):(p=p?Math.max(0,Math.min(aa,v)):aa*Math.max(0,Math.min(1,v)),H=[new mxPoint(w,H),new mxPoint(w+y,H+p),new mxPoint(w+y,H+aa-p),new mxPoint(w,H+aa),new mxPoint(w,H)]);aa=c.getCenterX();c=c.getCenterY();c=new mxPoint(aa,c);l&&(q.xw+y?c.y=q.y:c.x=q.x);return mxUtils.getPerimeterPoint(H, -c,q)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(c,k,q,l){var p="0"!=mxUtils.getValue(k.style,"fixedSize","0"),v=p?ra.prototype.fixedSize:ra.prototype.size;null!=k&&(v=mxUtils.getValue(k.style,"size",v));p&&(v*=k.view.scale);var w=c.x,H=c.y,y=c.width,aa=c.height,S=c.getCenterX();c=c.getCenterY();k=null!=k?mxUtils.getValue(k.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;k==mxConstants.DIRECTION_EAST? +aa),new mxPoint(w+p,H+aa),new mxPoint(w,H)]):k==mxConstants.DIRECTION_NORTH?(p=p?Math.max(0,Math.min(aa,v)):aa*Math.max(0,Math.min(1,v)),H=[new mxPoint(w,H+p),new mxPoint(w+y,H),new mxPoint(w+y,H+aa),new mxPoint(w,H+aa-p),new mxPoint(w,H+p)]):(p=p?Math.max(0,Math.min(aa,v)):aa*Math.max(0,Math.min(1,v)),H=[new mxPoint(w,H),new mxPoint(w+y,H+p),new mxPoint(w+y,H+aa-p),new mxPoint(w,H+aa),new mxPoint(w,H)]);aa=c.getCenterX();c=c.getCenterY();c=new mxPoint(aa,c);m&&(q.xw+y?c.y=q.y:c.x=q.x);return mxUtils.getPerimeterPoint(H, +c,q)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(c,k,q,m){var p="0"!=mxUtils.getValue(k.style,"fixedSize","0"),v=p?ra.prototype.fixedSize:ra.prototype.size;null!=k&&(v=mxUtils.getValue(k.style,"size",v));p&&(v*=k.view.scale);var w=c.x,H=c.y,y=c.width,aa=c.height,S=c.getCenterX();c=c.getCenterY();k=null!=k?mxUtils.getValue(k.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;k==mxConstants.DIRECTION_EAST? (p=p?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),H=[new mxPoint(w,H),new mxPoint(w+y-p,H),new mxPoint(w+y,c),new mxPoint(w+y-p,H+aa),new mxPoint(w,H+aa),new mxPoint(w+p,c),new mxPoint(w,H)]):k==mxConstants.DIRECTION_WEST?(p=p?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),H=[new mxPoint(w+p,H),new mxPoint(w+y,H),new mxPoint(w+y-p,c),new mxPoint(w+y,H+aa),new mxPoint(w+p,H+aa),new mxPoint(w,c),new mxPoint(w+p,H)]):k==mxConstants.DIRECTION_NORTH?(p=p?Math.max(0,Math.min(aa,v)):aa*Math.max(0, -Math.min(1,v)),H=[new mxPoint(w,H+p),new mxPoint(S,H),new mxPoint(w+y,H+p),new mxPoint(w+y,H+aa),new mxPoint(S,H+aa-p),new mxPoint(w,H+aa),new mxPoint(w,H+p)]):(p=p?Math.max(0,Math.min(aa,v)):aa*Math.max(0,Math.min(1,v)),H=[new mxPoint(w,H),new mxPoint(S,H+p),new mxPoint(w+y,H),new mxPoint(w+y,H+aa-p),new mxPoint(S,H+aa),new mxPoint(w,H+aa-p),new mxPoint(w,H)]);S=new mxPoint(S,c);l&&(q.xw+y?S.y=q.y:S.x=q.x);return mxUtils.getPerimeterPoint(H,S,q)};mxStyleRegistry.putValue("stepPerimeter", -mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(c,k,q,l){var p="0"!=mxUtils.getValue(k.style,"fixedSize","0"),v=p?ma.prototype.fixedSize:ma.prototype.size;null!=k&&(v=mxUtils.getValue(k.style,"size",v));p&&(v*=k.view.scale);var w=c.x,H=c.y,y=c.width,aa=c.height,S=c.getCenterX();c=c.getCenterY();k=null!=k?mxUtils.getValue(k.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;k==mxConstants.DIRECTION_NORTH||k==mxConstants.DIRECTION_SOUTH?(p=p?Math.max(0, -Math.min(aa,v)):aa*Math.max(0,Math.min(1,v)),H=[new mxPoint(S,H),new mxPoint(w+y,H+p),new mxPoint(w+y,H+aa-p),new mxPoint(S,H+aa),new mxPoint(w,H+aa-p),new mxPoint(w,H+p),new mxPoint(S,H)]):(p=p?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),H=[new mxPoint(w+p,H),new mxPoint(w+y-p,H),new mxPoint(w+y,c),new mxPoint(w+y-p,H+aa),new mxPoint(w+p,H+aa),new mxPoint(w,c),new mxPoint(w+p,H)]);S=new mxPoint(S,c);l&&(q.xw+y?S.y=q.y:S.x=q.x);return mxUtils.getPerimeterPoint(H,S,q)};mxStyleRegistry.putValue("hexagonPerimeter2", -mxPerimeter.HexagonPerimeter2);mxUtils.extend(ua,mxShape);ua.prototype.size=10;ua.prototype.paintBackground=function(c,k,q,l,p){var v=parseFloat(mxUtils.getValue(this.style,"size",this.size));c.translate(k,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(xa,mxShape);xa.prototype.size=10;xa.prototype.inset=2;xa.prototype.paintBackground=function(c,k,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(k,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",xa);mxUtils.extend(Qa,mxShape);Qa.prototype.paintBackground=function(c,k,q,l,p){c.translate(k,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",Qa);mxUtils.extend(La,mxShape);La.prototype.inset=2;La.prototype.paintBackground=function(c,k,q,l,p){var v=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;c.translate(k,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",La);mxUtils.extend(za,mxCylinder);za.prototype.jettyWidth= -20;za.prototype.jettyHeight=10;za.prototype.redrawPath=function(c,k,q,l,p,v){var w=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));k=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));q=w/2;w=q+w/2;var H=Math.min(k,p-k),y=Math.min(H+2*k,p-k);v?(c.moveTo(q,H),c.lineTo(w,H),c.lineTo(w,H+k),c.lineTo(q,H+k),c.moveTo(q,y),c.lineTo(w,y),c.lineTo(w,y+k),c.lineTo(q,y+k)):(c.moveTo(q,0),c.lineTo(l,0),c.lineTo(l,p),c.lineTo(q,p),c.lineTo(q,y+k),c.lineTo(0,y+k),c.lineTo(0, -y),c.lineTo(q,y),c.lineTo(q,H+k),c.lineTo(0,H+k),c.lineTo(0,H),c.lineTo(q,H),c.close());c.end()};mxCellRenderer.registerShape("module",za);mxUtils.extend(Ja,mxCylinder);Ja.prototype.jettyWidth=32;Ja.prototype.jettyHeight=12;Ja.prototype.redrawPath=function(c,k,q,l,p,v){var w=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));k=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));q=w/2;w=q+w/2;var H=.3*p-k/2,y=.7*p-k/2;v?(c.moveTo(q,H),c.lineTo(w,H),c.lineTo(w, -H+k),c.lineTo(q,H+k),c.moveTo(q,y),c.lineTo(w,y),c.lineTo(w,y+k),c.lineTo(q,y+k)):(c.moveTo(q,0),c.lineTo(l,0),c.lineTo(l,p),c.lineTo(q,p),c.lineTo(q,y+k),c.lineTo(0,y+k),c.lineTo(0,y),c.lineTo(q,y),c.lineTo(q,H+k),c.lineTo(0,H+k),c.lineTo(0,H),c.lineTo(q,H),c.close());c.end()};mxCellRenderer.registerShape("component",Ja);mxUtils.extend(ta,mxRectangleShape);ta.prototype.paintForeground=function(c,k,q,l,p){var v=l/2,w=p/2,H=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/ -2;c.begin();this.addPoints(c,[new mxPoint(k+v,q),new mxPoint(k+l,q+w),new mxPoint(k+v,q+p),new mxPoint(k,q+w)],this.isRounded,H,!0);c.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",ta);mxUtils.extend(Ha,mxDoubleEllipse);Ha.prototype.outerStroke=!0;Ha.prototype.paintVertexShape=function(c,k,q,l,p){var v=Math.min(4,Math.min(l/5,p/5));0w+y?S.y=q.y:S.x=q.x);return mxUtils.getPerimeterPoint(H,S,q)};mxStyleRegistry.putValue("stepPerimeter", +mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(c,k,q,m){var p="0"!=mxUtils.getValue(k.style,"fixedSize","0"),v=p?ma.prototype.fixedSize:ma.prototype.size;null!=k&&(v=mxUtils.getValue(k.style,"size",v));p&&(v*=k.view.scale);var w=c.x,H=c.y,y=c.width,aa=c.height,S=c.getCenterX();c=c.getCenterY();k=null!=k?mxUtils.getValue(k.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;k==mxConstants.DIRECTION_NORTH||k==mxConstants.DIRECTION_SOUTH?(p=p?Math.max(0, +Math.min(aa,v)):aa*Math.max(0,Math.min(1,v)),H=[new mxPoint(S,H),new mxPoint(w+y,H+p),new mxPoint(w+y,H+aa-p),new mxPoint(S,H+aa),new mxPoint(w,H+aa-p),new mxPoint(w,H+p),new mxPoint(S,H)]):(p=p?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),H=[new mxPoint(w+p,H),new mxPoint(w+y-p,H),new mxPoint(w+y,c),new mxPoint(w+y-p,H+aa),new mxPoint(w+p,H+aa),new mxPoint(w,c),new mxPoint(w+p,H)]);S=new mxPoint(S,c);m&&(q.xw+y?S.y=q.y:S.x=q.x);return mxUtils.getPerimeterPoint(H,S,q)};mxStyleRegistry.putValue("hexagonPerimeter2", +mxPerimeter.HexagonPerimeter2);mxUtils.extend(ua,mxShape);ua.prototype.size=10;ua.prototype.paintBackground=function(c,k,q,m,p){var v=parseFloat(mxUtils.getValue(this.style,"size",this.size));c.translate(k,q);c.ellipse((m-v)/2,0,v,v);c.fillAndStroke();c.begin();c.moveTo(m/2,v);c.lineTo(m/2,p);c.end();c.stroke()};mxCellRenderer.registerShape("lollipop",ua);mxUtils.extend(xa,mxShape);xa.prototype.size=10;xa.prototype.inset=2;xa.prototype.paintBackground=function(c,k,q,m,p){var v=parseFloat(mxUtils.getValue(this.style, +"size",this.size)),w=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;c.translate(k,q);c.begin();c.moveTo(m/2,v+w);c.lineTo(m/2,p);c.end();c.stroke();c.begin();c.moveTo((m-v)/2-w,v/2);c.quadTo((m-v)/2-w,v+w,m/2,v+w);c.quadTo((m+v)/2+w,v+w,(m+v)/2+w,v/2);c.end();c.stroke()};mxCellRenderer.registerShape("requires",xa);mxUtils.extend(Qa,mxShape);Qa.prototype.paintBackground=function(c,k,q,m,p){c.translate(k,q);c.begin();c.moveTo(0,0);c.quadTo(m,0,m,p/2);c.quadTo(m,p,0,p); +c.end();c.stroke()};mxCellRenderer.registerShape("requiredInterface",Qa);mxUtils.extend(La,mxShape);La.prototype.inset=2;La.prototype.paintBackground=function(c,k,q,m,p){var v=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;c.translate(k,q);c.ellipse(0,v,m-2*v,p-2*v);c.fillAndStroke();c.begin();c.moveTo(m/2,0);c.quadTo(m,0,m,p/2);c.quadTo(m,p,m/2,p);c.end();c.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",La);mxUtils.extend(za,mxCylinder);za.prototype.jettyWidth= +20;za.prototype.jettyHeight=10;za.prototype.redrawPath=function(c,k,q,m,p,v){var w=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));k=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));q=w/2;w=q+w/2;var H=Math.min(k,p-k),y=Math.min(H+2*k,p-k);v?(c.moveTo(q,H),c.lineTo(w,H),c.lineTo(w,H+k),c.lineTo(q,H+k),c.moveTo(q,y),c.lineTo(w,y),c.lineTo(w,y+k),c.lineTo(q,y+k)):(c.moveTo(q,0),c.lineTo(m,0),c.lineTo(m,p),c.lineTo(q,p),c.lineTo(q,y+k),c.lineTo(0,y+k),c.lineTo(0, +y),c.lineTo(q,y),c.lineTo(q,H+k),c.lineTo(0,H+k),c.lineTo(0,H),c.lineTo(q,H),c.close());c.end()};mxCellRenderer.registerShape("module",za);mxUtils.extend(Ja,mxCylinder);Ja.prototype.jettyWidth=32;Ja.prototype.jettyHeight=12;Ja.prototype.redrawPath=function(c,k,q,m,p,v){var w=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));k=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));q=w/2;w=q+w/2;var H=.3*p-k/2,y=.7*p-k/2;v?(c.moveTo(q,H),c.lineTo(w,H),c.lineTo(w, +H+k),c.lineTo(q,H+k),c.moveTo(q,y),c.lineTo(w,y),c.lineTo(w,y+k),c.lineTo(q,y+k)):(c.moveTo(q,0),c.lineTo(m,0),c.lineTo(m,p),c.lineTo(q,p),c.lineTo(q,y+k),c.lineTo(0,y+k),c.lineTo(0,y),c.lineTo(q,y),c.lineTo(q,H+k),c.lineTo(0,H+k),c.lineTo(0,H),c.lineTo(q,H),c.close());c.end()};mxCellRenderer.registerShape("component",Ja);mxUtils.extend(ta,mxRectangleShape);ta.prototype.paintForeground=function(c,k,q,m,p){var v=m/2,w=p/2,H=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/ +2;c.begin();this.addPoints(c,[new mxPoint(k+v,q),new mxPoint(k+m,q+w),new mxPoint(k+v,q+p),new mxPoint(k,q+w)],this.isRounded,H,!0);c.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",ta);mxUtils.extend(Ha,mxDoubleEllipse);Ha.prototype.outerStroke=!0;Ha.prototype.paintVertexShape=function(c,k,q,m,p){var v=Math.min(4,Math.min(m/5,p/5));0=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, +{};var sb=new mxPoint(1,0),tb=new mxPoint(1,0),xb=mxUtils.toRadians(-30);sb=mxUtils.getRotatedPoint(sb,Math.cos(xb),Math.sin(xb));var ub=mxUtils.toRadians(-150);tb=mxUtils.getRotatedPoint(tb,Math.cos(ub),Math.sin(ub));mxEdgeStyle.IsometricConnector=function(c,k,q,m,p){var v=c.view;m=null!=m&&0=2*m&&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))];ia.prototype.constraints=mxRectangleShape.prototype.constraints; -mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;Q.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;m.prototype.getConstraints=function(c,k,q){c=[];var l=Math.max(0,Math.min(k,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*(k-l),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-l,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-.5*l,.5*l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,.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));k>=2*l&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};I.prototype.getConstraints=function(c,k,q){c=[];var l=Math.max(0,Math.min(k,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*(k+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));k>=2*l&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};f.prototype.getConstraints=function(c,k,q){c=[];var l=Math.max(0,Math.min(k,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*(k-l),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-l,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-.5*l,.5*l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,.5*(q+l)));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0, -0),!1,null,.5*(k+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};C.prototype.getConstraints=function(c,k,q){c=[];k=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, +mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;Q.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;l.prototype.getConstraints=function(c,k,q){c=[];var m=Math.max(0,Math.min(k,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*(k-m),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-m,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-.5*m,.5*m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,.5*(q+m)));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));k>=2*m&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};I.prototype.getConstraints=function(c,k,q){c=[];var m=Math.max(0,Math.min(k,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*(k+m),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*m,.5*m));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,0,m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(q+m)));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));k>=2*m&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};f.prototype.getConstraints=function(c,k,q){c=[];var m=Math.max(0,Math.min(k,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*(k-m),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-m,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-.5*m,.5*m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,.5*(q+m)));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,.5*(k+m),q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*m,q-.5*m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,q-m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(q-m)));return c};C.prototype.getConstraints=function(c,k,q){c=[];k=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,k));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,k));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-k));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-k));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,k+.5*(.5*q-k)));c.push(new mxConnectionConstraint(new mxPoint(1, 0),!1,null,0,k+.5*(.5*q-k)));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,q-k-.5*(.5*q-k)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,q-k-.5*(.5*q-k)));c.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*k));c.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*k));c.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-k));c.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-k));return c};E.prototype.getConstraints= -function(c,k,q){c=[];var l=Math.max(0,Math.min(k,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*(k+l),p))):(c.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-.5*l,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-l,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-l,p)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-l),p)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,p));c.push(new mxConnectionConstraint(new mxPoint(0, +function(c,k,q){c=[];var m=Math.max(0,Math.min(k,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*m,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,0)),c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,m,p)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k+m),p))):(c.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-.5*m,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-m,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-m,p)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-m),p)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,p));c.push(new mxConnectionConstraint(new mxPoint(0, 0),!1,null,k,.25*(q-p)+p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,.5*(q-p)+p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,.75*(q-p)+p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,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;Ba.prototype.constraints=mxRectangleShape.prototype.constraints;F.prototype.constraints=mxEllipse.prototype.constraints;K.prototype.constraints=mxEllipse.prototype.constraints; -O.prototype.constraints=mxEllipse.prototype.constraints;wa.prototype.constraints=mxEllipse.prototype.constraints;hb.prototype.constraints=mxRectangleShape.prototype.constraints;Ma.prototype.constraints=mxRectangleShape.prototype.constraints;Pa.prototype.getConstraints=function(c,k,q){c=[];var l=Math.min(k,q/2),p=Math.min(k-l,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*k);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+k-l),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-l,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-l,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(p+k-l),q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,q));return c};za.prototype.getConstraints=function(c,k,q){k=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,k),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,k),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,k));q>8*c&&l.push(new mxConnectionConstraint(new mxPoint(0, -.5),!1,null,k));q>15*c&&l.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,k));return l};A.prototype.constraints=mxRectangleShape.prototype.constraints;B.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, +O.prototype.constraints=mxEllipse.prototype.constraints;wa.prototype.constraints=mxEllipse.prototype.constraints;hb.prototype.constraints=mxRectangleShape.prototype.constraints;Ma.prototype.constraints=mxRectangleShape.prototype.constraints;Pa.prototype.getConstraints=function(c,k,q){c=[];var m=Math.min(k,q/2),p=Math.min(k-m,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*k);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+k-m),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-m,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-m,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(p+k-m),q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,q));return c};za.prototype.getConstraints=function(c,k,q){k=parseFloat(mxUtils.getValue(c, +"jettyWidth",za.prototype.jettyWidth))/2;c=parseFloat(mxUtils.getValue(c,"jettyHeight",za.prototype.jettyHeight));var m=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,k),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,k),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&&m.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,k));q>8*c&&m.push(new mxConnectionConstraint(new mxPoint(0, +.5),!1,null,k));q>15*c&&m.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,k));return m};A.prototype.constraints=mxRectangleShape.prototype.constraints;B.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)];R.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75, .1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];Ja.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0, .7),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.25,.2),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(0, @@ -3572,84 +3572,84 @@ O.prototype.constraints=mxEllipse.prototype.constraints;wa.prototype.constraints .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)];N.prototype.constraints=mxRectangleShape.prototype.constraints;Y.prototype.constraints=mxRectangleShape.prototype.constraints;L.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75, -0),!0),new mxConnectionConstraint(new mxPoint(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;fa.prototype.getConstraints=function(c,k,q){c=[];var l=Math.max(0,Math.min(k,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,k,.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*k+.25*l,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k+l),p));c.push(new mxConnectionConstraint(new mxPoint(0, -0),!1,null,.5*(k+l),.5*(q+p)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k+l),q));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-l),q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-l),.5*(q+p)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-l),p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*k-.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};$a.prototype.getConstraints=function(c,k,q){c=[];var l=Math.max(0,Math.min(k,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,k,.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k+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, +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;fa.prototype.getConstraints=function(c,k,q){c=[];var m=Math.max(0,Math.min(k,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,k,.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*k+.25*m,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k+m),p));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,.5*(k+m),.5*(q+p)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k+m),q));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-m),q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-m),.5*(q+p)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-m),p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*k-.25*m,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};$a.prototype.getConstraints=function(c,k,q){c=[];var m=Math.max(0,Math.min(k,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,k,.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k+m),p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,.5*(q+p)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*m,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)];Aa.prototype.getConstraints= -function(c,k,q){c=[];var l=q*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),p=k*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*(k-p),l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-p,0));c.push(new mxConnectionConstraint(new mxPoint(1, -.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-p,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-p),q-l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,q-l));return c};Ia.prototype.getConstraints=function(c,k,q){c=[];var l=q*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",Aa.prototype.arrowWidth)))),p=k*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",Aa.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*k,l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-p,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-p,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*k,q-l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,q));return c};Ka.prototype.getConstraints= -function(c,k,q){c=[];var l=Math.min(q,k),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=(k-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*(k+p),l));c.push(new mxConnectionConstraint(new mxPoint(0, -0),!1,null,k,l));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k+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};pa.prototype.constraints=null;Va.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, +function(c,k,q){c=[];var m=q*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),p=k*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));m=(q-m)/2;c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-p),m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-p,0));c.push(new mxConnectionConstraint(new mxPoint(1, +.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-p,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k-p),q-m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,q-m));return c};Ia.prototype.getConstraints=function(c,k,q){c=[];var m=q*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",Aa.prototype.arrowWidth)))),p=k*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",Aa.prototype.arrowSize))));m=(q-m)/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*k,m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-p,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k-p,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*k,q-m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,q));return c};Ka.prototype.getConstraints= +function(c,k,q){c=[];var m=Math.min(q,k),p=Math.max(0,Math.min(m,m*parseFloat(mxUtils.getValue(this.style,"size",this.size))));m=(q-p)/2;var v=m+p,w=(k-p)/2;p=w+p;c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,w,.5*m));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*m));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,p,m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,w,q-.5*m));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*m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k+p),m));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,k,m));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,k,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(k+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,m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,m));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,m));return c};pa.prototype.constraints=null;Va.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)];u.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)];Qa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];La.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){d.escape();m=d.deleteCells(d.getDeletableCells(d.getSelectionCells()),m);null!=m&&d.setSelectionCells(m)}function b(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();try{for(var m=d.getSelectionCells(),r=0;rMath.abs(m-d.view.scale)&&5>Math.abs(r-d.container.scrollLeft)&&5>Math.abs(x-d.container.scrollTop)&&z==d.view.translate.x&&C==d.view.translate.y&&f.actions.get("fitWindow").funct()},null,null,"Enter"));this.addAction("keyPressEnter",function(){d.isEnabled()&&(d.isSelectionEmpty()?f.actions.get("smartFit").funct(): -d.startEditingAtCell())});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){f.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(m,r){try{var x=mxUtils.parseXml(m);g.graph.setSelectionCells(g.graph.importGraphModel(x.documentElement))}catch(z){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+z.message)}}));f.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile= -null})}).isEnabled=h;this.addAction("save",function(){f.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=h;this.addAction("saveAs...",function(){f.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=h;this.addAction("export...",function(){f.showDialog((new ExportDialog(f)).container,300,340,!0,!0)});this.addAction("editDiagram...",function(){var m=new EditDiagramDialog(f);f.showDialog(m.container,620,420,!0,!1);m.init()});this.addAction("pageSetup...",function(){f.showDialog((new PageSetupDialog(f)).container, -320,240,!0,!0)}).isEnabled=h;this.addAction("print...",function(){f.showDialog((new PrintDialog(f)).container,300,180,!0,!0)},null,"sprite-print",Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(d,null,10,10)});this.addAction("undo",function(){f.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){f.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",function(){var m=null;try{m=f.copyXml(), -null!=m&&d.removeCells(m,!1)}catch(r){}try{null==m&&mxClipboard.cut(d)}catch(r){f.handleError(r)}},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){try{f.copyXml()}catch(m){}try{mxClipboard.copy(d)}catch(m){f.handleError(m)}},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var m=!1;try{Editor.enableNativeCipboard&&(f.readGraphModelFromClipboard(function(r){if(null!=r){d.getModel().beginUpdate(); -try{f.pasteXml(r,!0)}finally{d.getModel().endUpdate()}}else mxClipboard.paste(d)}),m=!0)}catch(r){}m||mxClipboard.paste(d)}},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(m){function r(z){if(null!=z){for(var C=!0,G=0;GMath.abs(l-d.view.scale)&&5>Math.abs(r-d.container.scrollLeft)&&5>Math.abs(x-d.container.scrollTop)&&z==d.view.translate.x&&C==d.view.translate.y&&f.actions.get("fitWindow").funct()},null,null,"Enter"));this.addAction("keyPressEnter",function(){d.isEnabled()&&(d.isSelectionEmpty()?f.actions.get("smartFit").funct(): +d.startEditingAtCell())});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){f.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(l,r){try{var x=mxUtils.parseXml(l);g.graph.setSelectionCells(g.graph.importGraphModel(x.documentElement))}catch(z){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+z.message)}}));f.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile= +null})}).isEnabled=h;this.addAction("save",function(){f.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=h;this.addAction("saveAs...",function(){f.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=h;this.addAction("export...",function(){f.showDialog((new ExportDialog(f)).container,300,340,!0,!0)});this.addAction("editDiagram...",function(){var l=new EditDiagramDialog(f);f.showDialog(l.container,620,420,!0,!1);l.init()});this.addAction("pageSetup...",function(){f.showDialog((new PageSetupDialog(f)).container, +320,240,!0,!0)}).isEnabled=h;this.addAction("print...",function(){f.showDialog((new PrintDialog(f)).container,300,180,!0,!0)},null,"sprite-print",Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(d,null,10,10)});this.addAction("undo",function(){f.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){f.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",function(){var l=null;try{l=f.copyXml(), +null!=l&&d.removeCells(l,!1)}catch(r){}try{null==l&&mxClipboard.cut(d)}catch(r){f.handleError(r)}},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){try{f.copyXml()}catch(l){}try{mxClipboard.copy(d)}catch(l){f.handleError(l)}},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var l=!1;try{Editor.enableNativeCipboard&&(f.readGraphModelFromClipboard(function(r){if(null!=r){d.getModel().beginUpdate(); +try{f.pasteXml(r,!0)}finally{d.getModel().endUpdate()}}else mxClipboard.paste(d)}),l=!0)}catch(r){}l||mxClipboard.paste(d)}},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(l){function r(z){if(null!=z){for(var C=!0,G=0;G"));d.cellLabelChanged(state.cell,Graph.sanitizeHtml(C));d.setCellStyles("html",m,[r[x]])}}f.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!= -m?m:"0"],"cells",r))}finally{d.getModel().endUpdate()}});this.addAction("wordWrap",function(){var m=d.getView().getState(d.getSelectionCell()),r="wrap";d.stopEditing();null!=m&&"wrap"==m.style[mxConstants.STYLE_WHITE_SPACE]&&(r=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,r)});this.addAction("rotation",function(){var m="0",r=d.getView().getState(d.getSelectionCell());null!=r&&(m=r.style[mxConstants.STYLE_ROTATION]||m);m=new FilenameDialog(f,m,mxResources.get("apply"),function(x){null!=x&&0< -x.length&&d.setCellStyles(mxConstants.STYLE_ROTATION,x)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");f.showDialog(m.container,375,80,!0,!0);m.init()});this.addAction("resetView",function(){d.zoomTo(1);f.resetScrollbars()},null,null,"Enter/Home");this.addAction("zoomIn",function(m){d.isFastZoomEnabled()?d.lazyZoom(!0,!0,f.buttonZoomDelay):d.zoomIn()},null,null,Editor.ctrlKey+" + (Numpad) / Alt+Mousewheel");this.addAction("zoomOut",function(m){d.isFastZoomEnabled()?d.lazyZoom(!1, +"+Shift+B");this.addAction("bringForward",function(l){d.orderCells(!1,null,!0)});this.addAction("sendBackward",function(l){d.orderCells(!0,null,!0)});this.addAction("group",function(){if(d.isEnabled()){var l=mxUtils.sortCells(d.getSelectionCells(),!0);1!=l.length||d.isTable(l[0])||d.isTableRow(l[0])?(l=d.getCellsForGroup(l),1"));d.cellLabelChanged(state.cell,Graph.sanitizeHtml(C));d.setCellStyles("html",l,[r[x]])}}f.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!= +l?l:"0"],"cells",r))}finally{d.getModel().endUpdate()}});this.addAction("wordWrap",function(){var l=d.getView().getState(d.getSelectionCell()),r="wrap";d.stopEditing();null!=l&&"wrap"==l.style[mxConstants.STYLE_WHITE_SPACE]&&(r=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,r)});this.addAction("rotation",function(){var l="0",r=d.getView().getState(d.getSelectionCell());null!=r&&(l=r.style[mxConstants.STYLE_ROTATION]||l);l=new FilenameDialog(f,l,mxResources.get("apply"),function(x){null!=x&&0< +x.length&&d.setCellStyles(mxConstants.STYLE_ROTATION,x)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");f.showDialog(l.container,375,80,!0,!0);l.init()});this.addAction("resetView",function(){d.zoomTo(1);f.resetScrollbars()},null,null,"Enter/Home");this.addAction("zoomIn",function(l){d.isFastZoomEnabled()?d.lazyZoom(!0,!0,f.buttonZoomDelay):d.zoomIn()},null,null,Editor.ctrlKey+" + (Numpad) / Alt+Mousewheel");this.addAction("zoomOut",function(l){d.isFastZoomEnabled()?d.lazyZoom(!1, !0,f.buttonZoomDelay):d.zoomOut()},null,null,Editor.ctrlKey+" - (Numpad) / Alt+Mousewheel");this.addAction("fitWindow",function(){d.pageVisible&&d.isSelectionEmpty()?d.fitPages():f.fitDiagramToWindow()},null,null,Editor.ctrlKey+"+Shift+H");this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible?d.fitPages(1):this.get("pageView").funct()}),null,null,Editor.ctrlKey+"+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){d.pageVisible?d.fitPages(2):this.get("pageView").funct()}), -null,null,Editor.ctrlKey+"+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible?d.fitPages(1,!0):this.get("pageView").funct()}));this.put("customZoom",new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var m=new FilenameDialog(this.editorUi,parseInt(100*d.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(r){r=parseInt(r);!isNaN(r)&&0"))}),g)}d(mxResources.get("normal"),"p");d("","h1").firstChild.nextSibling.innerHTML='

'+mxResources.get("heading")+" 1

";d("","h2").firstChild.nextSibling.innerHTML='

'+mxResources.get("heading")+" 2

";d("","h3").firstChild.nextSibling.innerHTML='

'+mxResources.get("heading")+" 3

";d("","h4").firstChild.nextSibling.innerHTML='

'+mxResources.get("heading")+" 4

";d("","h5").firstChild.nextSibling.innerHTML= '
'+mxResources.get("heading")+" 5
";d("","h6").firstChild.nextSibling.innerHTML='
'+mxResources.get("heading")+" 6
";d("","pre").firstChild.nextSibling.innerHTML='
'+mxResources.get("formatted")+"
";d("","blockquote").firstChild.nextSibling.innerHTML='
'+mxResources.get("blockquote")+"
"})));this.put("fontSize",new Menu(mxUtils.bind(this,function(f,g){var d= [6,8,9,10,11,12,14,18,24,36,48,72];0>mxUtils.indexOf(d,this.defaultFontSize)&&(d.push(this.defaultFontSize),d.sort(function(x,z){return x-z}));for(var h=mxUtils.bind(this,function(x){if(null!=b.cellEditor.textarea){document.execCommand("fontSize",!1,"3");for(var z=b.cellEditor.textarea.getElementsByTagName("font"),C=0;CmxUtils.indexOf(d,this.customFontSizes[t])&&(n(this.customFontSizes[t]),m++);0mxUtils.indexOf(d,this.customFontSizes[t])&&(n(this.customFontSizes[t]),l++);0"];for(var L=0;L");for(var N=0;N
");I.push("")}I.push("");G=I.join("");M.call(D,G);G=D.cellEditor.textarea.getElementsByTagName("table");if(G.length==C.length+1)for(M=G.length-1;0<=M;M--)if(0==M||G[M]!=C[M-1]){D.selectNode(G[M].rows[0].cells[0]);break}}});var d=this.editorUi.editor.graph,h=null,n=null;null==e&&(a.div.className+=" geToolbarMenu", a.labels=!1);a=a.addItem("",null,null,e,null,null,null,!0);a.firstChild.style.fontSize=Menus.prototype.defaultFontSize+"px";e=a.getElementsByTagName("td");1d.div.clientHeight&&(d.div.style.width="40px");d.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(d, arguments);this.editorUi.resetCurrentMenu();d.destroy()});var t=mxUtils.getOffset(a);d.popup(t.x,t.y+a.offsetHeight,null,n);this.editorUi.setCurrentMenu(d,a)}h=!0;mxEvent.consume(n)}));mxEvent.addListener(a,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(n){h=null==d||null==d.div||null==d.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.style.maxWidth="100%";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,e,f,g){function d(L,N,Y){null!=g&&L!=Y&&L.toLowerCase()== -mxResources.get("default").toLowerCase()&&(L="default");if(null!=g&&"default"==L)N?L=x:null!=Y&&(L=Y);else if("none"!=L&&"#"!=L.charAt(0))try{var W=document.createElement("canvas").getContext("2d");W.fillStyle="#"+L;W.fillStyle!="#"+L.toLowerCase()&&(W.fillStyle=L,L=W.fillStyle.substring(1))}catch(X){}return L}function h(){var L=d(m.value,!1);/(^#?[a-zA-Z0-9]*$)/.test(L)?("default"!=L&&("none"!=L&&"#"!=L.charAt(0)&&(L="#"+L),ColorDialog.addRecentColor("none"!=L?L.substring(1):L,12)),r(L),a.hideDialog()): -a.handleError({message:mxResources.get("invalidInput")})}function n(){mxClient.IS_TOUCH||(m.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?m.select():document.execCommand("selectAll",!1,null))}function t(){var L=G(0==ColorDialog.recentColors.length?["FFFFFF"]:ColorDialog.recentColors,11,"FFFFFF",!0);L.style.marginBottom="8px";return L}this.editorUi=a;var m=document.createElement("input");m.style.marginBottom="10px";m.style.marginLeft="8px";mxClient.IS_IE&&(m.style.marginTop="10px", -document.body.appendChild(m));var r=null!=e?e:this.createApplyFunction(),x=Editor.isDarkMode()&&"default"==g?"#ffffff":"#000000";this.init=function(){n()};var z=new mxJSColor.color(m);z.pickerOnfocus=!1;z.showPicker();e=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";e.appendChild(mxJSColor.picker.box);var C=document.createElement("center"), +mxResources.get("default").toLowerCase()&&(L="default");if(null!=g&&"default"==L)N?L=x:null!=Y&&(L=Y);else if("none"!=L&&"#"!=L.charAt(0))try{var W=document.createElement("canvas").getContext("2d");W.fillStyle="#"+L;W.fillStyle!="#"+L.toLowerCase()&&(W.fillStyle=L,L=W.fillStyle.substring(1))}catch(X){}return L}function h(){var L=d(l.value,!1);/(^#?[a-zA-Z0-9]*$)/.test(L)?("default"!=L&&("none"!=L&&"#"!=L.charAt(0)&&(L="#"+L),ColorDialog.addRecentColor("none"!=L?L.substring(1):L,12)),r(L),a.hideDialog()): +a.handleError({message:mxResources.get("invalidInput")})}function n(){mxClient.IS_TOUCH||(l.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?l.select():document.execCommand("selectAll",!1,null))}function t(){var L=G(0==ColorDialog.recentColors.length?["FFFFFF"]:ColorDialog.recentColors,11,"FFFFFF",!0);L.style.marginBottom="8px";return L}this.editorUi=a;var l=document.createElement("input");l.style.marginBottom="10px";l.style.marginLeft="8px";mxClient.IS_IE&&(l.style.marginTop="10px", +document.body.appendChild(l));var r=null!=e?e:this.createApplyFunction(),x=Editor.isDarkMode()&&"default"==g?"#ffffff":"#000000";this.init=function(){n()};var z=new mxJSColor.color(l);z.pickerOnfocus=!1;z.showPicker();e=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";e.appendChild(mxJSColor.picker.box);var C=document.createElement("center"), G=mxUtils.bind(this,function(L,N,Y,W){N=null!=N?N:12;var X=document.createElement("table");X.style.borderCollapse="collapse";X.setAttribute("cellspacing","0");X.style.marginBottom="20px";X.style.cellSpacing="0px";X.style.marginLeft="1px";var Z=document.createElement("tbody");X.appendChild(Z);for(var ba=L.length/N,la=0;la=b&&ColorDialog.recentColors.pop())};ColorDialog.resetRecentColors=function(){ColorDialog.recentColors=[]}; var AboutDialog=function(a){var b=document.createElement("div");b.setAttribute("align","center");var e=document.createElement("h3");mxUtils.write(e,mxResources.get("about")+" GraphEditor");b.appendChild(e);e=document.createElement("img");e.style.border="0px";e.setAttribute("width","176");e.setAttribute("width","151");e.setAttribute("src",IMAGE_PATH+"/logo.png");b.appendChild(e);mxUtils.br(b);mxUtils.write(b,"Powered by mxGraph "+mxClient.VERSION);mxUtils.br(b);e=document.createElement("a");e.setAttribute("href", -"http://www.jgraph.com/");e.setAttribute("target","_blank");mxUtils.write(e,"www.jgraph.com");b.appendChild(e);mxUtils.br(b);mxUtils.br(b);e=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});e.className="geBtn gePrimaryBtn";b.appendChild(e);this.container=b},TextareaDialog=function(a,b,e,f,g,d,h,n,t,m,r,x,z,C,G){m=null!=m?m:!1;h=document.createElement("div");h.style.position="absolute";h.style.top="20px";h.style.bottom="20px";h.style.left="20px";h.style.right="20px";n=document.createElement("div"); +"http://www.jgraph.com/");e.setAttribute("target","_blank");mxUtils.write(e,"www.jgraph.com");b.appendChild(e);mxUtils.br(b);mxUtils.br(b);e=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});e.className="geBtn gePrimaryBtn";b.appendChild(e);this.container=b},TextareaDialog=function(a,b,e,f,g,d,h,n,t,l,r,x,z,C,G){l=null!=l?l:!1;h=document.createElement("div");h.style.position="absolute";h.style.top="20px";h.style.bottom="20px";h.style.left="20px";h.style.right="20px";n=document.createElement("div"); n.style.position="absolute";n.style.left="0px";n.style.right="0px";var E=n.cloneNode(!1),D=n.cloneNode(!1);n.style.top="0px";n.style.height="20px";E.style.top="20px";E.style.bottom="64px";D.style.bottom="0px";D.style.height="60px";D.style.textAlign="center";mxUtils.write(n,b);h.appendChild(n);h.appendChild(E);h.appendChild(D);null!=G&&n.appendChild(G);var I=document.createElement("textarea");r&&I.setAttribute("wrap","off");I.setAttribute("spellcheck","false");I.setAttribute("autocorrect","off");I.setAttribute("autocomplete", "off");I.setAttribute("autocapitalize","off");mxUtils.write(I,e||"");I.style.resize="none";I.style.outline="none";I.style.position="absolute";I.style.boxSizing="border-box";I.style.top="0px";I.style.left="0px";I.style.height="100%";I.style.width="100%";this.textarea=I;this.init=function(){I.focus();I.scrollTop=0};E.appendChild(I);null!=z&&(b=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(z)}),b.className="geBtn",D.appendChild(b));if(null!=C)for(b=0;bMAX_AREA||0>=C.value?"red":"";G.style.backgroundColor=C.value*G.value>MAX_AREA||0>=G.value?"red":""}var f=a.editor.graph,g=f.getGraphBounds(),d=f.view.scale,h=Math.ceil(g.width/ -d),n=Math.ceil(g.height/d);d=document.createElement("table");var t=document.createElement("tbody");d.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); -t.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);a.printPdfExport||(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);t.appendChild(g);g=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("zoom")+" (%):");g.appendChild(m);var z=document.createElement("input");z.setAttribute("type","number");z.setAttribute("value","100");z.style.width="180px";m=document.createElement("td");m.appendChild(z);g.appendChild(m);t.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",h);C.style.width="180px";m=document.createElement("td");m.appendChild(C);g.appendChild(m);t.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);t.appendChild(g);g=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("dpi")+":");g.appendChild(m);var E=document.createElement("select");E.style.width="180px";m=document.createElement("option");m.setAttribute("value","100");mxUtils.write(m,"100dpi");E.appendChild(m);m=document.createElement("option");m.setAttribute("value","200");mxUtils.write(m,"200dpi");E.appendChild(m); -m=document.createElement("option");m.setAttribute("value","300");mxUtils.write(m,"300dpi");E.appendChild(m);m=document.createElement("option");m.setAttribute("value","400");mxUtils.write(m,"400dpi");E.appendChild(m);m=document.createElement("option");m.setAttribute("value","custom");mxUtils.write(m,mxResources.get("custom"));E.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 I=!1;mxEvent.addListener(E,"change",function(){"custom"==this.value?(this.style.display="none",D.style.display="",D.focus()):(D.value=this.value,I||(z.value=this.value))});mxEvent.addListener(D,"change",function(){var X=parseInt(D.value);isNaN(X)||0>=X?D.style.backgroundColor="red":(D.style.backgroundColor="",I||(z.value=X))});m=document.createElement("td");m.appendChild(E);m.appendChild(D);g.appendChild(m);t.appendChild(g);g=document.createElement("tr");m=document.createElement("td"); -m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("background")+":");g.appendChild(m);var M=document.createElement("input");M.setAttribute("type","checkbox");M.checked=null==f.background||f.background==mxConstants.NONE;m=document.createElement("td");m.appendChild(M);mxUtils.write(m,mxResources.get("transparent"));g.appendChild(m);t.appendChild(g);g=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("grid")+":");g.appendChild(m); -var L=document.createElement("input");L.setAttribute("type","checkbox");L.checked=!1;m=document.createElement("td");m.appendChild(L);g.appendChild(m);t.appendChild(g);g=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("borderWidth")+":");g.appendChild(m);var N=document.createElement("input");N.setAttribute("type","number");N.setAttribute("value",ExportDialog.lastBorderValue);N.style.width="180px";m=document.createElement("td");m.appendChild(N); -g.appendChild(m);t.appendChild(g);d.appendChild(t);mxEvent.addListener(x,"change",b);b();mxEvent.addListener(z,"change",function(){I=!0;var X=Math.max(0,parseFloat(z.value)||100)/100;z.value=parseFloat((100*X).toFixed(2));0=parseInt(z.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var X=r.value,Z=x.value,ba=Math.max(0,parseFloat(z.value)||100)/ -100,la=Math.max(0,parseInt(N.value)),ka=f.background,ra=Math.max(1,parseInt(D.value));if(("svg"==Z||"png"==Z||"pdf"==Z)&&M.checked)ka=null;else if(null==ka||ka==mxConstants.NONE)ka="#ffffff";ExportDialog.lastBorderValue=la;ExportDialog.exportFile(a,X,Z,ka,ba,la,ra,L.checked)}}));Y.className="geBtn gePrimaryBtn";var W=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});W.className="geBtn";a.editor.cancelFirst?(m.appendChild(W),m.appendChild(Y)):(m.appendChild(Y),m.appendChild(W)); -g.appendChild(m);t.appendChild(g);d.appendChild(t);this.container=d};ExportDialog.lastBorderValue=0;ExportDialog.showGifOption=!0;ExportDialog.showXmlOption=!0; -ExportDialog.exportFile=function(a,b,e,f,g,d,h,n){n=a.editor.graph;if("xml"==e)ExportDialog.saveLocalFile(a,mxUtils.getXml(a.editor.getGraphXml()),b,e);else if("svg"==e)ExportDialog.saveLocalFile(a,mxUtils.getXml(n.getSvg(f,g,d)),b,e);else{var t=n.getGraphBounds(),m=mxUtils.createXmlDocument(),r=m.createElement("output");m.appendChild(r);m=new mxXmlCanvas2D(r);m.translate(Math.floor((d/g-t.x)/n.view.scale),Math.floor((d/g-t.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(t.width*g/n.view.scale+2*d);g=Math.ceil(t.height*g/n.view.scale+2*d);r.length<=MAX_REQUEST_SIZE&&m*g=X?D.style.backgroundColor="red":(D.style.backgroundColor="",I||(z.value=X))});l=document.createElement("td");l.appendChild(E);l.appendChild(D);g.appendChild(l);t.appendChild(g);g=document.createElement("tr");l=document.createElement("td"); +l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("background")+":");g.appendChild(l);var M=document.createElement("input");M.setAttribute("type","checkbox");M.checked=null==f.background||f.background==mxConstants.NONE;l=document.createElement("td");l.appendChild(M);mxUtils.write(l,mxResources.get("transparent"));g.appendChild(l);t.appendChild(g);g=document.createElement("tr");l=document.createElement("td");l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("grid")+":");g.appendChild(l); +var L=document.createElement("input");L.setAttribute("type","checkbox");L.checked=!1;l=document.createElement("td");l.appendChild(L);g.appendChild(l);t.appendChild(g);g=document.createElement("tr");l=document.createElement("td");l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("borderWidth")+":");g.appendChild(l);var N=document.createElement("input");N.setAttribute("type","number");N.setAttribute("value",ExportDialog.lastBorderValue);N.style.width="180px";l=document.createElement("td");l.appendChild(N); +g.appendChild(l);t.appendChild(g);d.appendChild(t);mxEvent.addListener(x,"change",b);b();mxEvent.addListener(z,"change",function(){I=!0;var X=Math.max(0,parseFloat(z.value)||100)/100;z.value=parseFloat((100*X).toFixed(2));0=parseInt(z.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var X=r.value,Z=x.value,ba=Math.max(0,parseFloat(z.value)||100)/ +100,la=Math.max(0,parseInt(N.value)),ka=f.background,ra=Math.max(1,parseInt(D.value));if(("svg"==Z||"png"==Z||"pdf"==Z)&&M.checked)ka=null;else if(null==ka||ka==mxConstants.NONE)ka="#ffffff";ExportDialog.lastBorderValue=la;ExportDialog.exportFile(a,X,Z,ka,ba,la,ra,L.checked)}}));Y.className="geBtn gePrimaryBtn";var W=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});W.className="geBtn";a.editor.cancelFirst?(l.appendChild(W),l.appendChild(Y)):(l.appendChild(Y),l.appendChild(W)); +g.appendChild(l);t.appendChild(g);d.appendChild(t);this.container=d};ExportDialog.lastBorderValue=0;ExportDialog.showGifOption=!0;ExportDialog.showXmlOption=!0; +ExportDialog.exportFile=function(a,b,e,f,g,d,h,n){n=a.editor.graph;if("xml"==e)ExportDialog.saveLocalFile(a,mxUtils.getXml(a.editor.getGraphXml()),b,e);else if("svg"==e)ExportDialog.saveLocalFile(a,mxUtils.getXml(n.getSvg(f,g,d)),b,e);else{var t=n.getGraphBounds(),l=mxUtils.createXmlDocument(),r=l.createElement("output");l.appendChild(r);l=new mxXmlCanvas2D(r);l.translate(Math.floor((d/g-t.x)/n.view.scale),Math.floor((d/g-t.y)/n.view.scale));l.scale(g/n.view.scale);(new mxImageExport).drawState(n.getView().getState(n.model.root), +l);r="xml="+encodeURIComponent(mxUtils.getXml(r));l=Math.ceil(t.width*g/n.view.scale+2*d);g=Math.ceil(t.height*g/n.view.scale+2*d);r.length<=MAX_REQUEST_SIZE&&l*gZ.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 M=m.addField(mxResources.get("id")+":",r);mxEvent.addListener(r,"dblclick",function(X){X=new FilenameDialog(a,G,mxResources.get("apply"),mxUtils.bind(this,function(Z){if(null!=Z&&0Z.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 M=l.addField(mxResources.get("id")+":",r);mxEvent.addListener(r,"dblclick",function(X){X=new FilenameDialog(a,G,mxResources.get("apply"),mxUtils.bind(this,function(Z){if(null!=Z&&0X.indexOf(":"))try{var Z=mxUtils.indexOf(x,X);if(0<=Z&&null!=z[Z])z[Z].focus();else{d.cloneNode(!1).setAttribute(X,""); -0<=Z&&(x.splice(Z,1),z.splice(Z,1));x.push(X);var ba=m.addTextarea(X+":","",2);ba.style.width="100%";z.push(ba);E(ba,X);ba.focus()}N.setAttribute("disabled","disabled");L.value=""}catch(la){mxUtils.alert(la)}else mxUtils.alert(mxResources.get("invalidName"))});mxEvent.addListener(L,"keypress",function(X){13==X.keyCode&&N.click()});this.init=function(){0")});mxEvent.addListener(V,"dragend",function(P){null!=z&&null!=C&&t.addCell(ma,t.model.root,C);C=z=null;P.stopPropagation();P.preventDefault()});var R=document.createElement("img");R.setAttribute("draggable","false");R.setAttribute("align","top");R.setAttribute("border","0");R.className="geAdaptiveAsset"; @@ -3849,21 +3849,21 @@ R.style.width="16px";R.style.padding="0px 6px 0 4px";R.style.marginTop="2px";R.s "▼",J.style.width="14px",J.style.height="14px",J.style.fontSize="14px",J.style.margin="0px",J.style.marginTop="-1px",ra.appendChild(J),mxEvent.addListener(J,"click",function(P){t.isEnabled()&&t.addCell(ma,t.model.root,ka-1);mxEvent.consume(P)})),0<=ka&&kak&&(k=h.length);return h.substring(6,k)}return null};var d=Sidebar.prototype.getTagsForStencil;Sidebar.prototype.getTagsForStencil=function(h,k,l){var m=d.apply(this,arguments);null!=this.shapetags&&(h=h.toLowerCase(),k=k.toLowerCase(),null!=this.shapetags[h]&&m.push(this.shapetags[h]),k=h+"."+k,null!=this.shapetags[k]&&m.push(this.shapetags[k]));return m};Sidebar.prototype.addTagIndex= function(h){h=h.split("\n");for(var k=0;kq?"":l.substring(q+1));this.setCurrentSearchEntryLibrary(h[k].id,h[k].lib);this.createVertexTemplateEntry(l,parseInt(h[k].w),parseInt(h[k].h),"",m.replace(/_/g," "),null,null,this.filterTags(n.join(" ")));this.setCurrentSearchEntryLibrary()}}}}}; -Sidebar.prototype.initPalettes=function(){var h=GRAPH_IMAGE_PATH,k=STENCIL_PATH,l=this.signs,m=this.rack,n=this.pids,p=this.cisco,q=this.sysml;"1"==urlParams.createindex&&(this.createdSearchIndex=[]);this.addSearchPalette(!0);this.appendCustomLibraries||this.addCustomEntries();this.addGeneralPalette(null==this.customEntries);this.addMiscPalette(!1);this.addAdvancedPalette(!1);this.addBasicPalette();this.addStencilPalette("arrows",mxResources.get("arrows"),k+"/arrows.xml",";html=1;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+ -"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;"+mxConstants.STYLE_STROKEWIDTH+"=2;strokeColor=#000000;",null,null,null,null,null,"arrows");this.addArrows2Palette();this.setCurrentSearchEntryLibrary("clipart","computer");this.addImagePalette("computer","Clipart / Computer",h+"/lib/clip_art/computers/","_128x128.png","Antivirus Data_Filtering Database Database_Add Database_Minus Database_Move_Stack Database_Remove Fujitsu_Tablet Harddrive IBM_Tablet iMac iPad Laptop MacBook Mainframe Monitor Monitor_Tower Monitor_Tower_Behind Netbook Network Network_2 Printer Printer_Commercial Secure_System Server Server_Rack Server_Rack_Empty Server_Rack_Partial Server_Tower Software Stylus Touch USB_Hub Virtual_Application Virtual_Machine Virus Workstation".split(" "), +k.length;q++)mxUtils.bind(this,function(t){t=this.getConfigurationById(t.id);if(null!=t){this.showPalettes(t.prefix||"",t.libs||[t.id],!0);var u=this.showPalette(k[q].lib||k[q].id,!0);null!=u&&1q?"":l.substring(q+1));this.setCurrentSearchEntryLibrary(h[k].id,h[k].lib);this.createVertexTemplateEntry(l,parseInt(h[k].w),parseInt(h[k].h),"",m.replace(/_/g," "),null,null,this.filterTags(n.join(" "))); +this.setCurrentSearchEntryLibrary()}}}}};Sidebar.prototype.initPalettes=function(){var h=GRAPH_IMAGE_PATH,k=STENCIL_PATH,l=this.signs,m=this.rack,n=this.pids,p=this.cisco,q=this.sysml;"1"==urlParams.createindex&&(this.createdSearchIndex=[]);this.addSearchPalette(!0);this.appendCustomLibraries||this.addCustomEntries();this.addGeneralPalette(null==this.customEntries);this.addMiscPalette(!1);this.addAdvancedPalette(!1);this.addBasicPalette();this.addStencilPalette("arrows",mxResources.get("arrows"), +k+"/arrows.xml",";html=1;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;"+mxConstants.STYLE_STROKEWIDTH+"=2;strokeColor=#000000;",null,null,null,null,null,"arrows");this.addArrows2Palette();this.setCurrentSearchEntryLibrary("clipart","computer");this.addImagePalette("computer","Clipart / Computer",h+"/lib/clip_art/computers/","_128x128.png","Antivirus Data_Filtering Database Database_Add Database_Minus Database_Move_Stack Database_Remove Fujitsu_Tablet Harddrive IBM_Tablet iMac iPad Laptop MacBook Mainframe Monitor Monitor_Tower Monitor_Tower_Behind Netbook Network Network_2 Printer Printer_Commercial Secure_System Server Server_Rack Server_Rack_Empty Server_Rack_Partial Server_Tower Software Stylus Touch USB_Hub Virtual_Application Virtual_Machine Virus Workstation".split(" "), "Antivirus;Data Filtering;Database;Database Add;Database Minus;Database Move Stack;Database Remove;Fujitsu Tablet;Harddrive;IBMTablet;iMac;iPad;Laptop;MacBook;Mainframe;Monitor;Monitor Tower;Monitor Tower Behind;Netbook;Network;Network 2;Printer;Printer Commercial;Secure System;Server;Server Rack;Server Rack Empty;Server Rack Partial;Server Tower;Software;Stylus;Touch;USB Hub;Virtual Application;Virtual Machine;Virus;Workstation".split(";"));this.setCurrentSearchEntryLibrary("clipart","finance"); this.addImagePalette("finance","Clipart / Finance",h+"/lib/clip_art/finance/","_128x128.png","Arrow_Down Arrow_Up Coins Credit_Card Dollar Graph Pie_Chart Piggy_Bank Safe Shopping_Cart Stock_Down Stock_Up".split(" "),"Arrow_Down;Arrow Up;Coins;Credit Card;Dollar;Graph;Pie Chart;Piggy Bank;Safe;Shopping Basket;Stock Down;Stock Up".split(";"));this.setCurrentSearchEntryLibrary("clipart","clipart");this.addImagePalette("clipart","Clipart / Various",h+"/lib/clip_art/general/","_128x128.png","Battery_0 Battery_100 Battery_50 Battery_75 Battery_allstates Bluetooth Earth_globe Empty_Folder Full_Folder Gear Keys Lock Mouse_Pointer Plug Ships_Wheel Star Tire".split(" "), "Battery 0%;Battery 100%;Battery 50%;Battery 75%;Battery;Bluetooth;Globe;Empty Folder;Full Folder;Gear;Keys;Lock;Mousepointer;Plug;Ships Wheel;Star;Tire".split(";"));this.setCurrentSearchEntryLibrary("clipart","networking");this.addImagePalette("networking","Clipart / Networking",h+"/lib/clip_art/networking/","_128x128.png","Bridge Certificate Certificate_Off Cloud Cloud_Computer Cloud_Computer_Private Cloud_Rack Cloud_Rack_Private Cloud_Server Cloud_Server_Private Cloud_Storage Concentrator Email Firewall_02 Firewall Firewall-page1 Ip_Camera Modem power_distribution_unit Print_Server Print_Server_Wireless Repeater Router Router_Icon Switch UPS Wireless_Router Wireless_Router_N".split(" "), @@ -7196,24 +7196,24 @@ this.addPalette("gcpCards","GCP / Cards",!1,mxUtils.bind(this,function(c){for(va this.setCurrentSearchEntryLibrary("gcp2","gcp2API Management");this.addGCP2APIManagementPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Security");this.addGCP2SecurityPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Data Analytics");this.addGCP2DataAnalyticsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Data Transfer");this.addGCP2DataTransferPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Cloud AI");this.addGCP2CloudAIPalette();this.setCurrentSearchEntryLibrary("gcp2", "gcp2Internet of Things");this.addGCP2InternetOfThingsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Databases");this.addGCP2DatabasesPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Storage");this.addGCP2StoragePalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Management Tools");this.addGCP2ManagementToolsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Networking");this.addGCP2NetworkingPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Developer Tools");this.addGCP2DeveloperToolsPalette(); this.setCurrentSearchEntryLibrary("gcp2","gcp2Expanded Product Cards");this.addGCP2ExpandedProductCardsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Product Cards");this.addGCP2ProductCardsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2General Icons");this.addGCP2GeneralIconsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons AI and Machine Learning");this.addGCP2IconsAIAndMachineLearningPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Compute");this.addGCP2IconsComputePalette(); -this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Data Analytics");this.addGCP2IconsDataAnalyticsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Operations");this.addGCP2IconsOperationsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Networking");this.addGCP2IconsNetworkingPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons CI CD");this.addGCP2IconsCICDPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons API Management");this.addGCP2IconsAPIManagementPalette(); -this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Internet of Things");this.addGCP2IconsInternetOfThingsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Databases");this.addGCP2IconsDatabasesPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Storage");this.addGCP2IconsStoragePalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Security");this.addGCP2IconsSecurityPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Migration");this.addGCP2IconsMigrationPalette(); -this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Hybrid and Multi Cloud");this.addGCP2IconsHybridAndMultiCloudPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Open Source Icons");this.addGCP2IconsOpenSourceIconsPalette();this.setCurrentSearchEntryLibrary()};Sidebar.prototype.addGCP2PathsPalette=function(){var a=[];a=[this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;dashed=0;strokeColor=#4284F3;", -100,0,"","Primary Path",null,"gcp google cloud platform path primary"),this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;dashed=1;dashPattern=1 3;strokeColor=#4284F3;",100,0,"","Optional Primary Path",null,"gcp google cloud platform path optional primary"),this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;dashed=0;strokeColor=#9E9E9E;", -100,0,"","Secondary Path",null,"gcp google cloud platform path secondary"),this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;dashed=1;dashPattern=1 3;strokeColor=#9E9E9E;",100,0,"","Optional Secondary Path",null,"gcp google cloud platform path optional secondary"),this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;strokeColor=#34A853;dashed=0;", -100,0,"","Success Status",null,"gcp google cloud platform path success status"),this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;strokeColor=#EA4335;dashed=0;",100,0,"","Failure Status",null,"gcp google cloud platform path failure status")];this.addPalette("gcp2Paths","GCP / Paths",!1,mxUtils.bind(this,function(c){for(var d=0;drd Party","External Infrastructure 3rd party",null,null,this.getTagsForStencil("mxgraph.gcp2.zones","","gcp google cloud platform zone external infrastructure 3rd party").join(" ")),this.createVertexTemplateEntry(c+"fillColor=#E1F5FE;",120,75,"External\nInfrastructure\n1st Party", -"External Infrastructure 1st party",null,null,this.getTagsForStencil("mxgraph.gcp2.zones","","gcp google cloud platform zone external infrastructure 1st party").join(" ")),this.addEntry("gcp google cloud platform zone project cloud service provider",function(){var b=new mxCell("Project Zone / Cloud Service Provider",new mxGeometry(0,0,530,490),c+"fillColor=#F6F6F6;");b.vertex=!0;var e=new mxCell("Logical Grouping of Services / Instances",new mxGeometry(0,0,250,180),c+"fillColor=#E3F2FD;");e.geometry.relative= -!0;e.geometry.offset=new mxPoint(10,50);e.vertex=!0;b.insert(e);var f=new mxCell("Zone",new mxGeometry(0,0,230,120),c+"fillColor=#FFF3E0;");f.geometry.relative=!0;f.geometry.offset=new mxPoint(10,50);f.vertex=!0;e.insert(f);e=new mxCell("SubNetwork",new mxGeometry(0,0,210,60),c+"fillColor=#EDE7F6;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(10,50);e.vertex=!0;f.insert(e);f=new mxCell("Kubernetes cluster",new mxGeometry(0,0,250,120),c+"fillColor=#FCE4EC;");f.geometry.relative=!0;f.geometry.offset= -new mxPoint(10,240);f.vertex=!0;b.insert(f);e=new mxCell("pod",new mxGeometry(0,0,210,60),c+"fillColor=#E8F5E9;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(10,50);e.vertex=!0;f.insert(e);f=new mxCell("Account",new mxGeometry(0,0,250,60),c+"fillColor=#E8EAF6;");f.geometry.relative=!0;f.geometry.offset=new mxPoint(10,370);f.vertex=!0;b.insert(f);f=new mxCell("Region",new mxGeometry(0,0,250,310),c+"fillColor=#ECEFF1;");f.geometry.relative=!0;f.geometry.offset=new mxPoint(270,50);f.vertex= -!0;b.insert(f);e=new mxCell("Zone",new mxGeometry(0,0,230,250),c+"fillColor=#FFF3E0;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(10,50);e.vertex=!0;f.insert(e);f=new mxCell("Firewall",new mxGeometry(0,0,210,190),c+"fillColor=#FBE9E7;");f.geometry.relative=!0;f.geometry.offset=new mxPoint(10,50);f.vertex=!0;e.insert(f);e=new mxCell("Instance Group",new mxGeometry(0,0,190,60),c+"fillColor=#F9FBE7;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(10,50);e.vertex=!0;f.insert(e);e=new mxCell("Replica Pool", -new mxGeometry(0,0,190,60),c+"fillColor=#E0F7FA;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(10,120);e.vertex=!0;f.insert(e);f=new mxCell("Optional Component",new mxGeometry(0,0,250,60),"rounded=1;absoluteArcSize=1;arcSize=2;html=1;strokeColor=none;gradientColor=none;shadow=0;dashed=1;strokeColor=#4284F3;fontSize=12;fontColor=#9E9E9E;align=left;verticalAlign=top;spacing=10;spacingTop=-4;fillColor=none;dashPattern=1 2;strokeWidth=2;");f.geometry.relative=!0;f.geometry.offset=new mxPoint(270, -370);f.vertex=!0;b.insert(f);return a.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Project Zone / Cloud Service Provider")}),this.createVertexTemplateEntry("fillColor=#4DA1F5;strokeColor=none;shadow=1;gradientColor=none;fontSize=14;align=left;spacingLeft=50;fontColor=#ffffff;whiteSpace=wrap;html=1;",1E3,40,"Architecture: App Engine and Cloud Endpoints","Title bar",null,null,this.getTagsForStencil("mxgraph.gcp2.zones","","gcp google cloud platform zone title bar").join(" ")), -this.createVertexTemplateEntry("strokeColor=none;shadow=0;gradientColor=none;fontSize=11;align=left;spacing=10;fontColor=#;9E9E9E;verticalAlign=top;spacingTop=100;whiteSpace=wrap;html=1;",300,350,"Use this note to call out\nor clarify parts of a diagram","Note",null,null,this.getTagsForStencil("mxgraph.gcp2.zones","","gcp google cloud platform zone note").join(" ")),this.addEntry("gcp google cloud platform zone project",function(){var b=new mxCell("Google Cloud Platform",new mxGeometry(0,0, -650,350),"fillColor=#F6F6F6;strokeColor=none;shadow=0;gradientColor=none;fontSize=14;align=left;spacing=10;fontColor=#717171;9E9E9E;verticalAlign=top;spacingTop=-4;fontStyle=0;spacingLeft=40;html=1;whiteSpace=wrap;");b.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,23,20),"shape=mxgraph.gcp2.google_cloud_platform;fillColor=#F6F6F6;strokeColor=none;shadow=0;gradientColor=none;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(20,10);e.vertex=!0;b.insert(e);return a.createVertexTemplateFromCells([b], +this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Serverless");this.addGCP2IconsServerlessPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Data Analytics");this.addGCP2IconsDataAnalyticsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Operations");this.addGCP2IconsOperationsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Networking");this.addGCP2IconsNetworkingPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons CI CD");this.addGCP2IconsCICDPalette(); +this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Integration Services");this.addGCP2IconsIntegrationServicesPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons API Management");this.addGCP2IconsAPIManagementPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Internet of Things");this.addGCP2IconsInternetOfThingsPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Databases");this.addGCP2IconsDatabasesPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Storage"); +this.addGCP2IconsStoragePalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Security");this.addGCP2IconsSecurityPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Migration");this.addGCP2IconsMigrationPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Hybrid and Multi Cloud");this.addGCP2IconsHybridAndMultiCloudPalette();this.setCurrentSearchEntryLibrary("gcp2","gcp2Icons Open Source Icons");this.addGCP2IconsOpenSourceIconsPalette();this.setCurrentSearchEntryLibrary()}; +Sidebar.prototype.addGCP2PathsPalette=function(){var a=[];a=[this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;dashed=0;strokeColor=#4284F3;",100,0,"","Primary Path",null,"gcp google cloud platform path primary"),this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;dashed=1;dashPattern=1 3;strokeColor=#4284F3;", +100,0,"","Optional Primary Path",null,"gcp google cloud platform path optional primary"),this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;dashed=0;strokeColor=#9E9E9E;",100,0,"","Secondary Path",null,"gcp google cloud platform path secondary"),this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;dashed=1;dashPattern=1 3;strokeColor=#9E9E9E;", +100,0,"","Optional Secondary Path",null,"gcp google cloud platform path optional secondary"),this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;strokeColor=#34A853;dashed=0;",100,0,"","Success Status",null,"gcp google cloud platform path success status"),this.createEdgeTemplateEntry("edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;strokeColor=#EA4335;dashed=0;", +100,0,"","Failure Status",null,"gcp google cloud platform path failure status")];this.addPalette("gcp2Paths","GCP / Paths",!1,mxUtils.bind(this,function(c){for(var d=0;drd Party","External Infrastructure 3rd party",null,null,this.getTagsForStencil("mxgraph.gcp2.zones", +"","gcp google cloud platform zone external infrastructure 3rd party").join(" ")),this.createVertexTemplateEntry(c+"fillColor=#E1F5FE;",120,75,"External\nInfrastructure\n1st Party","External Infrastructure 1st party",null,null,this.getTagsForStencil("mxgraph.gcp2.zones","","gcp google cloud platform zone external infrastructure 1st party").join(" ")),this.addEntry("gcp google cloud platform zone project cloud service provider",function(){var b=new mxCell("Project Zone / Cloud Service Provider", +new mxGeometry(0,0,530,490),c+"fillColor=#F6F6F6;");b.vertex=!0;var e=new mxCell("Logical Grouping of Services / Instances",new mxGeometry(0,0,250,180),c+"fillColor=#E3F2FD;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(10,50);e.vertex=!0;b.insert(e);var f=new mxCell("Zone",new mxGeometry(0,0,230,120),c+"fillColor=#FFF3E0;");f.geometry.relative=!0;f.geometry.offset=new mxPoint(10,50);f.vertex=!0;e.insert(f);e=new mxCell("SubNetwork",new mxGeometry(0,0,210,60),c+"fillColor=#EDE7F6;");e.geometry.relative= +!0;e.geometry.offset=new mxPoint(10,50);e.vertex=!0;f.insert(e);f=new mxCell("Kubernetes cluster",new mxGeometry(0,0,250,120),c+"fillColor=#FCE4EC;");f.geometry.relative=!0;f.geometry.offset=new mxPoint(10,240);f.vertex=!0;b.insert(f);e=new mxCell("pod",new mxGeometry(0,0,210,60),c+"fillColor=#E8F5E9;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(10,50);e.vertex=!0;f.insert(e);f=new mxCell("Account",new mxGeometry(0,0,250,60),c+"fillColor=#E8EAF6;");f.geometry.relative=!0;f.geometry.offset= +new mxPoint(10,370);f.vertex=!0;b.insert(f);f=new mxCell("Region",new mxGeometry(0,0,250,310),c+"fillColor=#ECEFF1;");f.geometry.relative=!0;f.geometry.offset=new mxPoint(270,50);f.vertex=!0;b.insert(f);e=new mxCell("Zone",new mxGeometry(0,0,230,250),c+"fillColor=#FFF3E0;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(10,50);e.vertex=!0;f.insert(e);f=new mxCell("Firewall",new mxGeometry(0,0,210,190),c+"fillColor=#FBE9E7;");f.geometry.relative=!0;f.geometry.offset=new mxPoint(10,50);f.vertex= +!0;e.insert(f);e=new mxCell("Instance Group",new mxGeometry(0,0,190,60),c+"fillColor=#F9FBE7;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(10,50);e.vertex=!0;f.insert(e);e=new mxCell("Replica Pool",new mxGeometry(0,0,190,60),c+"fillColor=#E0F7FA;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(10,120);e.vertex=!0;f.insert(e);f=new mxCell("Optional Component",new mxGeometry(0,0,250,60),"rounded=1;absoluteArcSize=1;arcSize=2;html=1;strokeColor=none;gradientColor=none;shadow=0;dashed=1;strokeColor=#4284F3;fontSize=12;fontColor=#9E9E9E;align=left;verticalAlign=top;spacing=10;spacingTop=-4;fillColor=none;dashPattern=1 2;strokeWidth=2;"); +f.geometry.relative=!0;f.geometry.offset=new mxPoint(270,370);f.vertex=!0;b.insert(f);return a.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Project Zone / Cloud Service Provider")}),this.createVertexTemplateEntry("fillColor=#4DA1F5;strokeColor=none;shadow=1;gradientColor=none;fontSize=14;align=left;spacingLeft=50;fontColor=#ffffff;whiteSpace=wrap;html=1;",1E3,40,"Architecture: App Engine and Cloud Endpoints","Title bar",null,null,this.getTagsForStencil("mxgraph.gcp2.zones", +"","gcp google cloud platform zone title bar").join(" ")),this.createVertexTemplateEntry("strokeColor=none;shadow=0;gradientColor=none;fontSize=11;align=left;spacing=10;fontColor=#;9E9E9E;verticalAlign=top;spacingTop=100;whiteSpace=wrap;html=1;",300,350,"Use this note to call out\nor clarify parts of a diagram","Note",null,null,this.getTagsForStencil("mxgraph.gcp2.zones","","gcp google cloud platform zone note").join(" ")),this.addEntry("gcp google cloud platform zone project",function(){var b=new mxCell("Google Cloud Platform", +new mxGeometry(0,0,650,350),"fillColor=#F6F6F6;strokeColor=none;shadow=0;gradientColor=none;fontSize=14;align=left;spacing=10;fontColor=#717171;9E9E9E;verticalAlign=top;spacingTop=-4;fontStyle=0;spacingLeft=40;html=1;whiteSpace=wrap;");b.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,23,20),"shape=mxgraph.gcp2.google_cloud_platform;fillColor=#F6F6F6;strokeColor=none;shadow=0;gradientColor=none;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(20,10);e.vertex=!0;b.insert(e);return a.createVertexTemplateFromCells([b], b.geometry.width,b.geometry.height,"Project Zone")}),this.addEntry("gcp google cloud platform zone markers",function(){c="shape=ellipse;perimeter=ellipsePerimeter;strokeColor=#BDBDBD;strokeWidth=2;shadow=0;gradientColor=none;fontColor=#757575;align=center;html=1;fontStyle=1;spacingTop=-1;";var b=new mxCell("1",new mxGeometry(0,0,20,20),c);b.vertex=!0;var e=new mxCell("2",new mxGeometry(40,0,20,20),c);e.vertex=!0;var f=new mxCell("3",new mxGeometry(80,0,20,20),c);f.vertex=!0;var g=new mxCell("4",new mxGeometry(120, 0,20,20),c);g.vertex=!0;var h=new mxCell("5",new mxGeometry(160,0,20,20),c);h.vertex=!0;var k=new mxCell("6",new mxGeometry(200,0,20,20),c);k.vertex=!0;var l=new mxCell("7",new mxGeometry(240,0,20,20),c);l.vertex=!0;var m=new mxCell("Markers to be used with the legend",new mxGeometry(0,20,260,30),"strokeColor=none;fillColor=none;fontColor=#757575;align=left;html=1;fontStyle=0;fontSize=11;");m.vertex=!0;return a.createVertexTemplateFromCells([b,e,f,g,h,k,l,m],260,50,"Markers")}),this.addEntry("gcp google cloud platform zone markers", function(){var b=new mxCell("",new mxGeometry(0,0,600,70),"strokeColor=#BDBDBD;strokeWidth=1;shadow=0;gradientColor=none;");b.vertex=!0;var e=new mxCell("1 Commit code",new mxGeometry(0,0,200,30),"strokeColor=none;fillColor=none;fontColor=#757575;align=left;html=1;fontStyle=0;spacingLeft=5;fontSize=11;verticalAlign=top;whiteSpace=wrap;spacingRight=5;");e.geometry.relative=!0;e.vertex=!0;b.insert(e);e=new mxCell("2 Detect code change",new mxGeometry(0,0,200,30),"strokeColor=none;fillColor=none;fontColor=#757575;align=left;html=1;fontStyle=0;spacingLeft=5;fontSize=11;verticalAlign=top;whiteSpace=wrap;spacingRight=5;"); @@ -7841,7 +7841,8 @@ a);this.addGCP2ProductCardSet("Google\nAnalytics 360","google_analytics_360",1,. 38,42,"Speech-to-Text",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute speech to text").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjIwLjAwMDQ2MzQ4NTcxNzc3MyIgaGVpZ2h0PSIxNi42MzE1MTU1MDI5Mjk2ODgiIHZpZXdCb3g9IjAgMC4wMDAyNDE0MDk2NTI1MTcxNzcxNiAyMC4wMDA0NjM0ODU3MTc3NzMgMTYuNjMxNTE1NTAyOTI5Njg4Ij4mI3hhOwk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPiYjeGE7CS5zdDB7ZmlsbDojNjY5ZGY2O30mI3hhOwkuc3Qxe2ZpbGw6IzQyODVmNDt9JiN4YTsJPC9zdHlsZT4mI3hhOwk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNLjAxIDMuMzA2aDYuNjR2MS42N0guMDF6bS0uMDEgMTBoMCA5LjE3di0xLjY3SDB6bTAtNC4xN2g0LjE4SDEwbC0xLjY3LTEuNjZIMi41MSAweiIvPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xMCA1LjM4NmEuNDIuNDIgMCAwIDEgLjQyLS4zNi40MS40MSAwIDAgMSAuNDEuMzZ2OS4xOGEyLjA5IDIuMDkgMCAwIDAgMi42MSAyIDIuMTYgMi4xNiAwIDAgMCAxLjU2LTIuMTFWMi4wNjZhLjQuNCAwIDAgMSAuMTktLjQuNDEuNDEgMCAwIDEgLjQ1IDAgLjQuNCAwIDAgMSAuMTkuNHY5LjE2YTIuMDcgMi4wNyAwIDAgMCAuODEgMS42NCAyIDIgMCAwIDAgMS44LjM3IDIuMTYgMi4xNiAwIDAgMCAxLjU2LTIuMTJ2LTIuOGgtMS42N3YyLjkyYS40LjQgMCAwIDEtLjE5LjQuNDEuNDEgMCAwIDEtLjQ1IDAgLjQuNCAwIDAgMS0uMTktLjR2LTkuMTdhMi4wOSAyLjA5IDAgMCAwLTIuNjEtMiAyLjE2IDIuMTYgMCAwIDAtMS41NiAyLjEzdjEyLjM3YS40LjQgMCAwIDEtLjE5LjQuNDEuNDEgMCAwIDEtLjQ1IDAgLjQuNCAwIDAgMS0uMTktLjR2LTkuMTdhMi4wNyAyLjA3IDAgMCAwLTQuMTEtLjM2IDIuNCAyLjQgMCAwIDAtLjA1LjQ2djJMMTAgOS4xMzZ6Ii8+JiN4YTs8L3N2Zz4=;", 42,36,"Text-to-Speech",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute text to speech").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjE5Ljk4OTk5OTc3MTExODE2NCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDE5Ljk4OTk5OTc3MTExODE2NCAxNCI+JiN4YTsJPHN0eWxlIHR5cGU9InRleHQvY3NzIj4mI3hhOwkuc3Qwe2ZpbGw6IzY2OWRmNjt9JiN4YTsJLnN0MXtmaWxsOiM0Mjg1ZjQ7fSYjeGE7CTwvc3R5bGU+JiN4YTsJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEwLjI3IDIuMzNoMi4wNXYxLjMzSDkuNEw3LjA3IDBIMHY0LjMzaDEuOTlMMy4yNSAyaDIuNTdsLjg2IDEuMzNINC4xMUwyLjg1IDUuNjZIMHYyLjU5aDIuODVsMS4yNiAyLjQxaDIuNTdMNS44MiAxMkgzLjI1TDEuOTkgOS42NkgwVjE0aDcuMDdsMi4zMy0zLjY3aDIuOTJ2MS4zM2gtMi4wNUw4LjggMTRoNS41MlY3LjY2SDcuOTFMNy4wOCA5SDUuMjRMNi41IDcgNS4yNCA1aDEuODRsLjggMS4zM2g2LjQ0VjBIOC44eiIvPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNS45OSAxMC4xMWw0IDIuOTVWMS4xbC00IDIuOTF6Ii8+JiN4YTs8L3N2Zz4=;", 42,29,"Video\nIntelligence API",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute video intelligence api application programming interface").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJzdmcyNDYzMyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMjA4LjcxMzM2IDI1OC45NjYwOSIgaGVpZ2h0PSIyNTguOTY2MDltbSIgd2lkdGg9IjIwOC43MTMzNm1tIj4mI3hhOyAgJiN4YTsgIDxkZWZzIGlkPSJkZWZzMjQ2MzAiLz4mI3hhOyAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTMuMzk0NjI0OCwtMTcuODEwMjgyKSIgaWQ9ImxheWVyMSI+JiN4YTsgICAgPHBhdGggdHJhbnNmb3JtPSJzY2FsZSgwLjI2NDU4MzMzKSIgZD0ibSAxMTIuNDcwNyw2Ny4zMTQ0NTMgYyAtNTguMzI5NTUyLDAgLTk5LjY0MDYyMiw0MS4wMzc2NDcgLTk5LjY0MDYyMiwxMDYuODUxNTY3IHYgNzc0LjE4NzUgYyAwLDU2LjMxMzc4IDQzLjI2NjU5Niw5Ny43MzA0OCAxMDEuMjc3MzQyLDk3LjczMDQ4IEggNDEwLjA5OTYxIFYgOTQ3LjUwNTg2IEggMTA5LjM4MjgxIFYgMTYzLjIxODc1IGggMzAwLjcxNjggViA2Ny4zMTQ0NTMgWiBtIDQ3MS43MjA3MSwyOC43NzczNDQgYSA2OS44ODQ0ODksNjkuODg0NDg5IDAgMCAwIC02OS44ODQ3Nyw2OS44ODQ3NjMgNjkuODg0NDg5LDY5Ljg4NDQ4OSAwIDAgMCA0OS4wNjQ0NSw2Ni43MDExNyB2IDc2Ljg4ODY4IGMgMCwzMi4xNzM1NCAtMy4wMDI0OSw1NC4yMDgzNiAtOS4wMDU4Niw2NC4zNDc2NSAtNi4wMDMzNiwxMC4xMzkzIC0xNC4wMTI0MiwxNS4yOTY4OCAtNDIuMjM4MjgsMTUuMjk2ODggaCAtNDkuMTQyNTcgdiAzOS45OTQxNCBoIDQ5LjE0MjU3IGMgMzUuMzA1MSwwIDYyLjkxMzc2LC0xMS43MTI1MiA3Ni42NTIzNSwtMzQuOTE2MDIgMTMuNzM4NTgsLTIzLjIwMzU1IDE0LjU5Mzc1LC01MC45ODc2OCAxNC41OTM3NSwtODQuNzIyNjUgViAyMzMuMTM0NzcgQSA2OS44ODQ0ODksNjkuODg0NDg5IDAgMCAwIDY1NC4wNzQyMiwxNjUuOTc2NTYgNjkuODg0NDg5LDY5Ljg4NDQ4OSAwIDAgMCA1ODQuMTkxNDEsOTYuMDkxNzk3IFogTSAyMDkuMTA3NDIsMzU5Ljc5Njg4IHYgOTYuNjM2NzEgaCAyMDAuOTE3OTcgdiAtOTYuNjM2NzEgeiBtIDUyMi42Nzc3NCwyOC42OTMzNSBhIDY5Ljg4NDQ4OSw2OS44ODQ0ODkgMCAwIDAgLTY5Ljg4NDc3LDY5Ljg4NDc3IDY5Ljg4NDQ4OSw2OS44ODQ0ODkgMCAwIDAgNDQuNTMzMiw2NS4xMTkxNCBjIC0wLjgyMjcyLDI4LjAzMTA0IC04LjIxNjMsNDAuMDcxOTggLTIwLjgxODM2LDQ4LjQ3NjU2IC0xMy4zODU1Myw4LjkyNzE3IC0zNy43MTQ3NCwxMy4zOTg0NCAtNzEuMjc5MjksMTMuMzk4NDQgSCA0NjMuNjY0MDYgdiAzOS45OTQxNCBoIDE1MC42NzE4OCBjIDM2LjUyOTQzLDAgNjguMjkxOTIsLTMuMzI0MjMgOTMuNDY4NzUsLTIwLjExNTIzIDIzLjMyMzQ4LC0xNS41NTQ5NiAzNi42MzkxNywtNDIuOTc3MzEgMzguNDc0NjEsLTc4LjU0MTAyIEEgNjkuODg0NDg5LDY5Ljg4NDQ4OSAwIDAgMCA4MDEuNjY3OTcsNDU4LjM3NSA2OS44ODQ0ODksNjkuODg0NDg5IDAgMCAwIDczMS43ODUxNiwzODguNDkwMjMgWiBNIDIwOS4xMDc0Miw1NTYuNDgyNDIgdiA5Ni42MzY3MiBoIDIwMC45MTc5NyB2IC05Ni42MzY3MiB6IG0gMCwxOTYuNjg3NSB2IDk2LjYzNjcyIGggMjAwLjkxNzk3IHYgLTk2LjYzNjcyIHogbSAyNTQuOTc2NTYsMjcuNTQ2ODggdiAzOS45OTQxNCBoIDk4LjU5OTYxIGMgMzIuMzE0MjUsMCA1NS40NDQxMiwyLjUyNzk1IDY2LjIzMDQ3LDguMDAxOTUgNS4zOTMxNiwyLjczNzAyIDguMDg0ODgsNS4zNTUzMiAxMC41NDI5NywxMC4yMzI0MiAyLjQ1ODA5LDQuODc3MTQgNC40MDYyNSwxMi43Nzc2OCA0LjQwNjI1LDI1LjAzMTI1IHYgMTkuODE4MzYgYSA2OS44ODQ0ODksNjkuODg0NDg5IDAgMCAwIC00OS43MjI2Niw2Ni44OTY0OSA2OS44ODQ0ODksNjkuODg0NDg5IDAgMCAwIDY5Ljg4NDc3LDY5Ljg4NDc5IDY5Ljg4NDQ4OSw2OS44ODQ0ODkgMCAwIDAgNjkuODg0NzcsLTY5Ljg4NDc5IDY5Ljg4NDQ4OSw2OS44ODQ0ODkgMCAwIDAgLTUwLjA0NDkzLC02Ni45ODI0MyB2IC0xOS43MzI0MiBjIDAsLTE2LjM2ODgzIC0yLjQ2MjIsLTMwLjY4NTUgLTguNjg3NSwtNDMuMDM3MTEgLTYuMjI1MjYsLTEyLjM1MTYxIC0xNi40OTAxNywtMjEuOTczMDIgLTI4LjE2MjExLC0yNy44OTY0OCBDIDYyMy42NzE3NSw3ODEuMTk2MDggNTk2LjIxNjcsNzgwLjcxNjggNTYyLjY4MzU5LDc4MC43MTY4IFoiIHN0eWxlPSJjb2xvcjojMDAwMDAwO29wYWNpdHk6MTtmaWxsOiM1OTg2ZjI7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjM5Ljk5OTk7LWlua3NjYXBlLXN0cm9rZTpub25lIiBpZD0icGF0aDI0NzYyIi8+JiN4YTsgIDwvZz4mI3hhOzwvc3ZnPg==;", -34,42,"Document AI",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute document ai artificial intelligence").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJzdmcyNDYzMyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMzE4Ljg3MDk3IDI1NC42NzY0MyIgaGVpZ2h0PSIyNTQuNjc2NDRtbSIgd2lkdGg9IjMxOC44NzA5N21tIj4mI3hhOyAgJiN4YTsgIDxkZWZzIGlkPSJkZWZzMjQ2MzAiLz4mI3hhOyAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTAuMTk0MzAzNDIsLTUuNDMxMTkyOSkiIGlkPSJsYXllcjEiPiYjeGE7ICAgIDxwYXRoIHRyYW5zZm9ybT0ibWF0cml4KDAuMjY0NTgzMzMsMCwwLDAuMjY0NTgzMzMsMy4zOTQ2MjQ4LDE3LjgxMDI4MikiIGQ9Ik0gNTkwLjAzNTE2LC00Ni43ODcxMDkgLTEyLjA5NTcwMyw0MzUuMTk3MjcgSCAxMTkzLjA4NTkgWiIgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiNiNWNiZjk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuOTk5OTk5cHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIgaWQ9InBhdGgxMDYyIi8+JiN4YTsgICAgPHBhdGggdHJhbnNmb3JtPSJtYXRyaXgoMC4yNjQ1ODMzMywwLDAsMC4yNjQ1ODMzMywzLjM5NDYyNDgsMTcuODEwMjgyKSIgZD0iTSAtMTIuMDk1NzAzLDQzNS4xOTcyNyA1OTAuNDk0MTQsOTE1Ljc2OTUzIDExOTMuMDg1OSw0MzUuMTk3MjcgWiIgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiM3NjllZjU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjcuNDI2Nzc7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIgaWQ9InBhdGgxMDY0Ii8+JiN4YTsgICAgPHBhdGggaWQ9InBhdGgyMjU5IiBkPSJtIDE1OS4yMDg4OCw5OC41MTk1NjcgYyAxOS4wNjkwNSwwIDM0LjI1OTkyLDE1LjE5MDg3MyAzNC4yNTk5MiwzNC4yNTk5MjMgMCwxOS4wNjkwNSAtMTUuMTkwODcsMzQuMjU5NDEgLTM0LjI1OTkyLDM0LjI1OTQxIC0xOS4wNjkwNCwwIC0zNC4yNTk5MiwtMTUuMTkwMzYgLTM0LjI1OTkyLC0zNC4yNTk0MSAwLC0xOS4wNjkwNSAxNS4xOTA4NywtMzQuMjU5OTIzIDM0LjI1OTkyLC0zNC4yNTk5MjMgeiIgc3R5bGU9ImNvbG9yOiMwMDAwMDA7b3BhY2l0eToxO2ZpbGw6IzU5ODZmMjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7LWlua3NjYXBlLXN0cm9rZTpub25lIi8+JiN4YTsgICAgPHBhdGggZD0ibSAyMjEuNjUyMzcsMjEwLjY0Mzk5IC0yOC45MzM2NSwtMjkuMDcyMTMgYyAtOS41NDkyMyw2LjU5MzE1IC0yMS4xMDA1MiwxMC40NjcwNiAtMzMuNTEwMDgsMTAuNDY3MDYgLTMyLjUyMDk3LDAgLTU5LjE2MDg2LC0yNi41ODMxNiAtNTkuMjU3MzU3LC01OS4wODI3IC0xLjhlLTQsLTAuMDU5IC0wLjAwMywtMC4xMTc2NiAtMC4wMDMsLTAuMTc2NzMgMCwtMzIuNTgwMDQgMjYuNjc5Mzg3LC01OS4yNTk5NDcgNTkuMjU5NDM3LC01OS4yNTk5NDcgMzIuNTgwMDUsMCA1OS4yNTk5NSwyNi42Nzk5MDcgNTkuMjU5OTUsNTkuMjU5OTQ3IDAsMC4wNTkyIC0wLjAwMywwLjExNzYyIC0wLjAwMywwLjE3NjczIC0wLjAzNDYsMTEuNjE5OTggLTMuNDYwNDgsMjIuNDgzNDcgLTkuMzM3NDEsMzEuNjQ2MTMgbCAzMS4wODc1MSwzMS4yMzY4NiB6IE0gMTU5LjIwODY0LDk4LjUxOTU2NyBjIC0xOS4wNjkwNSwwIC0zNC4yNTk5MiwxNS4xOTA4NzMgLTM0LjI1OTkyLDM0LjI1OTkyMyAwLDE5LjA2OTA1IDE1LjE5MDg3LDM0LjI1OTQxIDM0LjI1OTkyLDM0LjI1OTQxIDE5LjA2OTA1LDAgMzQuMjU5OTEsLTE1LjE5MDM2IDM0LjI1OTkxLC0zNC4yNTk0MSAwLC0xOS4wNjkwNSAtMTUuMTkwODYsLTM0LjI1OTkyMyAtMzQuMjU5OTEsLTM0LjI1OTkyMyB6IiBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4M3B4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiIGlkPSJwYXRoMTA2Mi03Ii8+JiN4YTsgIDwvZz4mI3hhOzwvc3ZnPg==;", +34,42,"Document AI",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute document ai artificial intelligence").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJzdmc4MjciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDE3Ni4zNzUwNyAxMzYuMDc2MTciIGhlaWdodD0iMTM2LjA3NjE3bW0iIHdpZHRoPSIxNzYuMzc1MDhtbSI+JiN4YTsgIDxwYXRoIGQ9Ik0gNjEuMzg0ODQ3LDAgOC40ZS01LDM0LjA0MzQ1OSBsIDYuNzUsMTIuMjkyNDcgTCA2NC45ODA1NSwxNCBoIDUwLjI3NTM5IFYgMCBaIiBzdHlsZT0iY29sb3I6IzAwMDAwMDtvcGFjaXR5OjE7ZmlsbDojYWVjYmZhO2ZpbGwtb3BhY2l0eToxOy1pbmtzY2FwZS1zdHJva2U6bm9uZSIvPiYjeGE7ICA8cGF0aCBkPSJNIDAsMzQuMDQzMzg5IFYgMTM2LjA3NTkzIEggNjEuMTQ2NjUzIFYgMTIyLjA3NjI2IEggMTQuMDAwMTc5IFYgNDguMDcwNDQ5IGggNDcuODA0ODM0IHYgLTE0LjAyNzA2IHogbSAxMTUuMjMyNzYsNy4xMzY1MiBjIC0xOC42NzU5NTEsMCAtMzMuOTY0ODUxLDE1LjI4ODkxIC0zMy45NjQ4NTEsMzMuOTY0ODUgMCwxOC42NzU5NSAxNS4yODg5LDMzLjk2NjQwMSAzMy45NjQ4NTEsMzMuOTY2NDAxIDYuODgwNDIsMCAxMy4yOTk4NCwtMi4wNzczIDE4LjY2NjA0LC01LjYzMjczIGwgMjIuMzc0ODYsMjMuMDc0MDUgMTAuMDUwNTUsLTkuNzQ1NjYgLTIyLjU3MTc1LC0yMy4yNzgxNzEgYyAzLjQ0MjE0LC01LjMwODM5IDUuNDQ2NywtMTEuNjIzODcgNS40NDY3LC0xOC4zODM4OSAwLC0xOC42NzU5NCAtMTUuMjkwNDYsLTMzLjk2NDg1IC0zMy45NjY0LC0zMy45NjQ4NSB6IG0gMCwxMy45OTk2NiBjIDExLjEwOTc5LDAgMTkuOTY2NzQsOC44NTU0IDE5Ljk2Njc0LDE5Ljk2NTE5IDFlLTUsMTEuMTA5OCAtOC44NTY5NSwxOS45NjY3NCAtMTkuOTY2NzQsMTkuOTY2NzQgLTExLjEwOTgsMCAtMTkuOTY1MTkxLC04Ljg1Njk0IC0xOS45NjUxOTEsLTE5Ljk2Njc0IDAsLTExLjEwOTc5IDguODU1NDAxLC0xOS45NjUxOSAxOS45NjUxOTEsLTE5Ljk2NTE5IHoiIHN0eWxlPSJjb2xvcjojMDAwMDAwO29wYWNpdHk6MTtmaWxsOiM2NjlkZjY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjE7LWlua3NjYXBlLXN0cm9rZTpub25lIi8+JiN4YTsgIDxwYXRoIGQ9Ik0gMTE1LjI1NTk0LDAgNTQuMTAxNjQ2LDM0LjA0MzQ1OSBWIDEzNi4wNzYxNyBoIDcgMTE1LjI3MzQzNCBWIDM0LjA0MzQ1OSBaIG0gLTAuMDAyLDE2LjAyMzQzNyA0Ny4xMjEwOSwyNi4yNDAyMzIgViAxMjIuMDc2MTcgSCA2OC4xMDE2NDYgViA0Mi4yNjM2NjkgWiIgc3R5bGU9ImNvbG9yOiMwMDAwMDA7b3BhY2l0eToxO2ZpbGw6IzQyODVmNDtmaWxsLW9wYWNpdHk6MTstaW5rc2NhcGUtc3Ryb2tlOm5vbmUiLz4mI3hhOzwvc3ZnPg==;", +42,32,"Document AI\nWarehouse",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute document ai warehouse artificial intelligence").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJzdmcyNDYzMyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMzE4Ljg3MDk3IDI1NC42NzY0MyIgaGVpZ2h0PSIyNTQuNjc2NDRtbSIgd2lkdGg9IjMxOC44NzA5N21tIj4mI3hhOyAgJiN4YTsgIDxkZWZzIGlkPSJkZWZzMjQ2MzAiLz4mI3hhOyAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTAuMTk0MzAzNDIsLTUuNDMxMTkyOSkiIGlkPSJsYXllcjEiPiYjeGE7ICAgIDxwYXRoIHRyYW5zZm9ybT0ibWF0cml4KDAuMjY0NTgzMzMsMCwwLDAuMjY0NTgzMzMsMy4zOTQ2MjQ4LDE3LjgxMDI4MikiIGQ9Ik0gNTkwLjAzNTE2LC00Ni43ODcxMDkgLTEyLjA5NTcwMyw0MzUuMTk3MjcgSCAxMTkzLjA4NTkgWiIgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiNiNWNiZjk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuOTk5OTk5cHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIgaWQ9InBhdGgxMDYyIi8+JiN4YTsgICAgPHBhdGggdHJhbnNmb3JtPSJtYXRyaXgoMC4yNjQ1ODMzMywwLDAsMC4yNjQ1ODMzMywzLjM5NDYyNDgsMTcuODEwMjgyKSIgZD0iTSAtMTIuMDk1NzAzLDQzNS4xOTcyNyA1OTAuNDk0MTQsOTE1Ljc2OTUzIDExOTMuMDg1OSw0MzUuMTk3MjcgWiIgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiM3NjllZjU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjcuNDI2Nzc7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIgaWQ9InBhdGgxMDY0Ii8+JiN4YTsgICAgPHBhdGggaWQ9InBhdGgyMjU5IiBkPSJtIDE1OS4yMDg4OCw5OC41MTk1NjcgYyAxOS4wNjkwNSwwIDM0LjI1OTkyLDE1LjE5MDg3MyAzNC4yNTk5MiwzNC4yNTk5MjMgMCwxOS4wNjkwNSAtMTUuMTkwODcsMzQuMjU5NDEgLTM0LjI1OTkyLDM0LjI1OTQxIC0xOS4wNjkwNCwwIC0zNC4yNTk5MiwtMTUuMTkwMzYgLTM0LjI1OTkyLC0zNC4yNTk0MSAwLC0xOS4wNjkwNSAxNS4xOTA4NywtMzQuMjU5OTIzIDM0LjI1OTkyLC0zNC4yNTk5MjMgeiIgc3R5bGU9ImNvbG9yOiMwMDAwMDA7b3BhY2l0eToxO2ZpbGw6IzU5ODZmMjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7LWlua3NjYXBlLXN0cm9rZTpub25lIi8+JiN4YTsgICAgPHBhdGggZD0ibSAyMjEuNjUyMzcsMjEwLjY0Mzk5IC0yOC45MzM2NSwtMjkuMDcyMTMgYyAtOS41NDkyMyw2LjU5MzE1IC0yMS4xMDA1MiwxMC40NjcwNiAtMzMuNTEwMDgsMTAuNDY3MDYgLTMyLjUyMDk3LDAgLTU5LjE2MDg2LC0yNi41ODMxNiAtNTkuMjU3MzU3LC01OS4wODI3IC0xLjhlLTQsLTAuMDU5IC0wLjAwMywtMC4xMTc2NiAtMC4wMDMsLTAuMTc2NzMgMCwtMzIuNTgwMDQgMjYuNjc5Mzg3LC01OS4yNTk5NDcgNTkuMjU5NDM3LC01OS4yNTk5NDcgMzIuNTgwMDUsMCA1OS4yNTk5NSwyNi42Nzk5MDcgNTkuMjU5OTUsNTkuMjU5OTQ3IDAsMC4wNTkyIC0wLjAwMywwLjExNzYyIC0wLjAwMywwLjE3NjczIC0wLjAzNDYsMTEuNjE5OTggLTMuNDYwNDgsMjIuNDgzNDcgLTkuMzM3NDEsMzEuNjQ2MTMgbCAzMS4wODc1MSwzMS4yMzY4NiB6IE0gMTU5LjIwODY0LDk4LjUxOTU2NyBjIC0xOS4wNjkwNSwwIC0zNC4yNTk5MiwxNS4xOTA4NzMgLTM0LjI1OTkyLDM0LjI1OTkyMyAwLDE5LjA2OTA1IDE1LjE5MDg3LDM0LjI1OTQxIDM0LjI1OTkyLDM0LjI1OTQxIDE5LjA2OTA1LDAgMzQuMjU5OTEsLTE1LjE5MDM2IDM0LjI1OTkxLC0zNC4yNTk0MSAwLC0xOS4wNjkwNSAtMTUuMTkwODYsLTM0LjI1OTkyMyAtMzQuMjU5OTEsLTM0LjI1OTkyMyB6IiBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4M3B4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiIGlkPSJwYXRoMTA2Mi03Ii8+JiN4YTsgIDwvZz4mI3hhOzwvc3ZnPg==;", 42,34,"Visual\nInspection AI",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute visual inspection ai artificial intelligence").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJzdmcyNDYzMyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMjYzLjMwODg0IDI1OC4xNDg4IiBoZWlnaHQ9IjI1OC4xNDg4bW0iIHdpZHRoPSIyNjMuMzA4ODRtbSI+JiN4YTsgICYjeGE7ICA8ZGVmcyBpZD0iZGVmczI0NjMwIi8+JiN4YTsgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xOC41Mjk4OTgsMC4wNDIwNzMyNSkiIGlkPSJsYXllcjEiPiYjeGE7ICAgIDxwYXRoIHRyYW5zZm9ybT0ibWF0cml4KDAuMjY0NTgzMzMsMCwwLDAuMjY0NTgzMzMsMC4xOTQzMDM0Miw1LjQzMTE5MjkpIiBkPSJtIDI0Ny4wNTI3MywtMjAuNjgxNjQxIC0xNDAuNTU4NTksMi4yMjg1MTYgYyAtMjAuODY5MjAyLDAuMzMxOTYgLTM3LjUxODcwNywxNy41MTc0NzQzOCAtMzcuMTg5NDUyLDM4LjM4NjcxOSAwLjMyNzY5MywyMC44NzIyNzMgMTcuNTE0NDczLDM3LjUyNjUwMSAzOC4zODY3MjIsMzcuMTk3MjY1IGwgMTE1Ljg2NTIzLC0xLjg0NTcwMyAxODcuMjIwNyw0MDkuNDI5Njg0IC02Mi42NjA5MSwxMjQuOTM5NDkgYyAtMjIuNzEyODIsNDcuMzAyODQgOC4xOTM3MSwxMTAuNjgxNjEgNjYuNDg1OTcsMTEwLjY4MTYxIGwgNTc0LjUzMDQxLDEuMTczODMgYyAyMC44NzM0OSwwLjAzNjUgMzcuODI0NDksLTE2Ljg1NTA0IDM3Ljg2MTI5LC0zNy43Mjg1MiAwLjAzNywtMjAuODcwNDMgLTE2Ljg1MDIsLTM3LjgyMDE2IC0zNy43MjA2NiwtMzcuODYxMzMgbCAtNTcxLjU5NTcxLC0xLjA2MjUgNTguNjM0NzcsLTEyMi4wMDk3NiAzNjguOTc2NTYsLTAuODE4MzYgYyAxMy42Mjg1NSwtMC4wMjk4IDI2LjE4NTgsLTcuMzkzOTEgMzIuODY1MjQsLTE5LjI3MzQ0IGwgMTgxLjQ3NDYsLTMyMi45MzU1NSBjIDEwLjIyNzUsLTE4LjE5NzI3IDMuNzY2MiwtNDEuMjQwMTQgLTE0LjQzMTYsLTUxLjQ2Njc5IC04LjczOTMsLTQuOTEwMDggLTE5LjA3MTIsLTYuMTQ3MyAtMjguNzIyNywtMy40Mzk0NiAtOS42NTA0LDIuNzA1OTkgLTE3LjgzMDg2LDkuMTM0MyAtMjIuNzQyMTgsMTcuODcxMSBMIDgyMy4wNjI1LDQyNi40OTAyMyA0NzYuNzY5NTMsNDI3LjI1NTg2IDI4Mi4wMjE0OCwxLjM4ODY3MTkgQyAyNzUuNzc5MywtMTIuMjU2OTQxIDI2Mi4wNTY0NSwtMjAuOTE4MDMgMjQ3LjA1MjczLC0yMC42ODE2NDEgWiIgc3R5bGU9ImNvbG9yOiMwMDAwMDA7b3BhY2l0eToxO2ZpbGw6IzU5ODZmMjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6My43Nzk1MztzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7LWlua3NjYXBlLXN0cm9rZTpub25lIiBpZD0icGF0aDE2MTAyIi8+JiN4YTsgICAgPHBhdGggaWQ9InJlY3QxNzc2MyIgZD0ibSAxMjMuMjY2LDQxLjM3NjY1OSBoIDIyLjM0NjA3IGMgMi4yODkyMywwIDQuMTMyMiwxLjg0Mjk2MiA0LjEzMjIsNC4xMzIyMDIgdiA2Mi4wNjgzMjkgaCAtMTYuNjM5NyBMIDExOS4xMzM4LDc2LjM0MjA3OSBWIDQ1LjUwODg2MSBjIDAsLTIuMjg5MjQgMS44NDI5NiwtNC4xMzIyMDIgNC4xMzIyLC00LjEzMjIwMiB6IiBzdHlsZT0iY29sb3I6IzAwMDAwMDtvcGFjaXR5OjE7ZmlsbDojYjVjYmY5O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDoyMDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7LWlua3NjYXBlLXN0cm9rZTpub25lIi8+JiN4YTsgICAgPHBhdGggaWQ9InJlY3QxNzc2My01IiBkPSJtIDE2NC40OTE5OCwyNy4xMDYwMDkgaCAyMS40NjEwOSBjIDIuNjk3OSwwIDQuODY5ODUsMi4xNzE5NTEgNC44Njk4NSw0Ljg2OTg0NSBWIDEwNy41NzcxOSBIIDE1OS42MjIxMyBWIDMxLjk3NTg1NCBjIDAsLTIuNjk3ODk0IDIuMTcxOTUsLTQuODY5ODQ1IDQuODY5ODUsLTQuODY5ODQ1IHoiIHN0eWxlPSJjb2xvcjojMDAwMDAwO29wYWNpdHk6MTtmaWxsOiM3NjllZjU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjIwO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDstaW5rc2NhcGUtc3Ryb2tlOm5vbmUiLz4mI3hhOyAgICA8cGF0aCBpZD0icmVjdDE3NzYzLTMiIGQ9Im0gMjA1LjUwMTk2LDAuMzQ1MDg2NjMgaCAyMS4xMDEzMiBjIDIuODUyMDYsMCA1LjE0ODEyLDIuMjk2MDYyNzcgNS4xNDgxMiw1LjE0ODEyMjc3IFYgNzEuODc3OTMxIEwgMjExLjc5ODY1LDEwNy41NzcxOSBIIDIwMC4zNTM4NCBWIDUuNDkzMjA5NCBjIDAsLTIuODUyMDYgMi4yOTYwNiwtNS4xNDgxMjI3NyA1LjE0ODEyLC01LjE0ODEyMjc3IHoiIHN0eWxlPSJjb2xvcjojMDAwMDAwO29wYWNpdHk6MTtmaWxsOiM1OTg2ZjI7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjIwO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDstaW5rc2NhcGUtc3Ryb2tlOm5vbmUiLz4mI3hhOyAgICA8cGF0aCB0cmFuc2Zvcm09Im1hdHJpeCgwLjI2NDU4MzMzLDAsMCwwLjI2NDU4MzMzLDAuMTk0MzAzNDIsNS40MzExOTI5KSIgZD0ibSA4OTAuMjUxOTUsNzU2Ljc3NTM5IGEgOTguODY0OTg2LDk4Ljg2NDk4NiAwIDAgMCAtOTguODY1MjMsOTguODY1MjMgOTguODY0OTg2LDk4Ljg2NDk4NiAwIDAgMCA5OC44NjUyMyw5OC44NjUyNCA5OC44NjQ5ODYsOTguODY0OTg2IDAgMCAwIDk4Ljg2NTI0LC05OC44NjUyNCA5OC44NjQ5ODYsOTguODY0OTg2IDAgMCAwIC05OC44NjUyNCwtOTguODY1MjMgeiBtIC00ODkuNTMzMiwwLjQ4ODI4IGEgOTguODY0OTg2LDk4Ljg2NDk4NiAwIDAgMCAtOTguODY1MjMsOTguODY1MjQgOTguODY0OTg2LDk4Ljg2NDk4NiAwIDAgMCA5OC44NjUyMyw5OC44NjUyMyA5OC44NjQ5ODYsOTguODY0OTg2IDAgMCAwIDk4Ljg2NTIzLC05OC44NjUyMyA5OC44NjQ5ODYsOTguODY0OTg2IDAgMCAwIC05OC44NjUyMywtOTguODY1MjQgeiIgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiM3NjllZjU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjc1LjU5MDY7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIiBpZD0icGF0aDE3OTY3Ii8+JiN4YTsgIDwvZz4mI3hhOzwvc3ZnPg==;", 42,41,"Retail API",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute retail api application programming interface").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjM3Ny42ODQ2NTY1OTk1Nzg4MyIgaGVpZ2h0PSIzMzguNTIwNDc5NDMzNDQ2MiIgdmlld0JveD0iMC4wNjUwMDAwMDUwNjYzOTQ4IDAuNDc5OTk5NTQyMjM2MzI4MSA5OS45MjkwMDA4NTQ0OTIxOSA4OS41NjcwMDEzNDI3NzM0NCI+JiN4YTs8c3R5bGUgdHlwZT0idGV4dC9jc3MiPiYjeGE7CS5zdDB7ZmlsbDojYWVjYmZhO30mI3hhOwkuc3Qxe2ZpbGw6IzY2OWRmNjt9JiN4YTsJLnN0MntmaWxsOiM0Mjg1ZjQ7fSYjeGE7CS5zdDN7ZmlsbDojZmZmO30mI3hhOzwvc3R5bGU+JiN4YTsJPHBhdGggY2xhc3M9InN0MCIgZD0iTTU5LjU1NCAzNS42MmgzMC45NFY5Ljk4bDkuNS05LjVoLTQ5Ljk0djQ0LjY0em0yOS45ODEgNTQuNDI3VjUzLjYzNWwtOS41IDkuNXYxNy40MTJ6bS01MC4xMjggMFY1My42MzVsLTkuNSA5LjV2MTcuNDEyem0wLTQ0LjU3OVY5LjA1NmwtOS41IDkuNXYxNy40MTJ6IiBmaWxsPSIjYWVjYmZhIi8+JiN4YTsJPHBhdGggY2xhc3M9InN0MSIgZD0iTTk5Ljk5NCA0NS4xMlYuNDhsLTkuNSA5LjV2MjUuNjR6bS00OS44IDQ0LjkyN2gzOS4zNDJsLTkuNS05LjVINTkuNjkzem0tNTAuMTI4IDBoMzkuMzQybC05LjUtOS41SDkuNTY1em0wLTQ0LjU3OWgzOS4zNDJsLTkuNS05LjVIOS41NjV6IiBmaWxsPSIjNjY5ZGY2Ii8+JiN4YTsJPHBhdGggY2xhc3M9InN0MiIgZD0iTTUwLjA1NCA0NS4xMmg0OS45NGwtOS41LTkuNWgtMzAuOTR6bTkuNjM5IDM1LjQyN1Y2My4xMzVoMjAuMzQybDkuNS05LjVINTAuMTkzdjM2LjQxMnptLTUwLjEyOCAwVjYzLjEzNWgyMC4zNDJsOS41LTkuNUguMDY1djM2LjQxMnptMC00NC41NzlWMTguNTU2aDIwLjM0Mmw5LjUtOS41SC4wNjV2MzYuNDEyeiIgZmlsbD0iIzQyODVmNCIvPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik04Mi42ODUgMTQuMTk4bC0xMC4yNjcgOS4yMDgtNC43ODUtNC4zNS00LjExMiAzLjY3IDguOTMgNy44ODYgMTQuMTgyLTEyLjcyNnoiIGZpbGw9IiNmZmYiLz4mI3hhOzwvc3ZnPg==;", 42,38,"Recommendations\nAI",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute recommendations ai").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjE3LjUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgdmlld0JveD0iMCAwIDIwIDE3LjUiPiYjeGE7CTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+JiN4YTsJLnN0MHtmaWxsOiM0Mjg1ZjQ7fSYjeGE7CS5zdDF7ZmlsbDojNjY5ZGY2O30mI3hhOwk8L3N0eWxlPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xOC45MSAxMC42M0wyMCA4Ljc1IDE3LjgyIDVoLTMuMDdsLTEuMDYtMS44NkgxMi41VjEuODhoMS45NGwxLjA2IDEuODdoMS41OUwxNC45IDBoLTQuMjd2NWgxLjczbC43MyAxLjI1aC0yLjQ2djIuNWgyLjI2bDEuMDUtMS44N2gyLjgxbC43MiAxLjI1aC0yLjhMMTMuNjIgMTBoLTIuOTl2NC4zOGgzLjRsLS43MiAxLjI1aC0yLjY4djEuODdoNC4yN2wzLjI4LTUuNjJoLTIuMDlsLS43MyAxLjI1SDEyLjV2LTEuMjVoMi4xNGwuNzQtMS4yNXoiLz4mI3hhOwk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMS4wOSAxMC42M0wwIDguNzUgMi4xOCA1aDMuMDdsMS4wNi0xLjg2SDcuNVYxLjg4SDUuNTZMNC41IDMuNzVIMi45MUw1LjEgMGg0LjI4djVINy42NGwtLjczIDEuMjVoMi40N3YyLjVINy4xMUw2LjA2IDYuODhIMy4yNWwtLjcyIDEuMjVoMi44TDYuMzggMTBoM3Y0LjM4SDUuOTdsLjcyIDEuMjVoMi42OXYxLjg3SDUuMWwtMy4yOC01LjYyaDIuMDlsLjczIDEuMjVINy41di0xLjI1SDUuMzZsLS43NC0xLjI1eiIvPiYjeGE7PC9zdmc+;", @@ -7859,8 +7860,7 @@ a);this.addGCP2ProductCardSet("Google\nAnalytics 360","google_analytics_360",1,. 37,42,"Google Kubernetes\nEngine",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute google kubernetes engine").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJzdmc2NDI3IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMzkuMzMxMjQgMTM5LjUxODAyIiBoZWlnaHQ9IjEzOS41MTgwMm1tIiB3aWR0aD0iMTM5LjMzMTI0bW0iPiYjeGE7ICAmI3hhOyAgPGRlZnMgaWQ9ImRlZnM2NDI0Ii8+JiN4YTsgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zNy42MzI4MTYsLTYwLjY3MzM5MikiIGlkPSJsYXllcjEiPiYjeGE7ICAgIDxwYXRoIGlkPSJwYXRoNjU4NCIgZD0ibSA2NS4yNjEzNDksODkuNDE4MzQ1IDI4LjY1MTMyNCwyZS02IC0wLjE4NzI2MywtMjguNzQ0OTU1IGggODMuMDUxMzkgbCAwLjE4NzI2LDgzLjE0NTAxOCAtMjguNTU3NywwLjA5MzYgdiAyOC41NTc3IEggNjUuNDQ4NjEyIFoiIHN0eWxlPSJvcGFjaXR5OjE7ZmlsbDojNDI4NWY0O2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4M3B4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiLz4mI3hhOyAgICA8cGF0aCBkPSJtIDcyLjg0NTY5OCwxMjkuNzY3NTggYyAtMTkuNDA1NDYxLDAgLTM1LjIxMjg4MiwxNS44MDU0NyAtMzUuMjEyODgyLDM1LjIxMDk0IDAsMTkuNDA1NDYgMTUuODA3NDIxLDM1LjIxMjg5IDM1LjIxMjg4MiwzNS4yMTI4OSAxOS40MDU0NjgsMCAzNS4yMTA5NDIsLTE1LjgwNzQzIDM1LjIxMDk0MiwtMzUuMjEyODkgMCwtMTkuNDA1NDcgLTE1LjgwNTQ3NCwtMzUuMjEwOTQgLTM1LjIxMDk0MiwtMzUuMjEwOTQgeiBNIDEwNS44OTA2Myw3Mi45Nzg1MTYgViAxMDEuNTM1MTYgSCA3Ny4yMzgyODUgdiA2IDUzLjIzODI4IGggNTguODE2NDA1IHYgLTI4LjgzNzg5IGggMjguOTQzMzYgbCAtMC4xMTcxOSwtNTguOTU3MDM0IHogbSAxMiwxMiBoIDM1LjAxMzY3IGwgMC4wNzAzLDM0Ljk1NzAzNCBoIC0yOC45MTk5MiB2IDI4LjgzNzg5IEggODkuMjM4Mjc5IHYgLTM1LjIzODI4IGggMjguNjUyMzUxIHoiIHN0eWxlPSJjb2xvcjojMDAwMDAwO29wYWNpdHk6MTtmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kOy1pbmtzY2FwZS1zdHJva2U6bm9uZSIgaWQ9InBhdGg2NTQ5Ii8+JiN4YTsgICAgPHBhdGggaWQ9InBhdGg3MTgwIiBkPSJtIDcyLjg0NTcwMywxMzYuNzY3NTggYyAxNS42MjIzODgsMCAyOC4yMTA5MzcsMTIuNTg4NTUgMjguMjEwOTM3LDI4LjIxMDk0IDAsMTUuNjIyMzggLTEyLjU4ODU0OSwyOC4yMTI4OSAtMjguMjEwOTM3LDI4LjIxMjg5IC0xNS42MjIzODcsMCAtMjguMjEyODkxLC0xMi41OTA1MSAtMjguMjEyODkxLC0yOC4yMTI4OSAwLC0xNS42MjIzOSAxMi41OTA1MDQsLTI4LjIxMDk0IDI4LjIxMjg5MSwtMjguMjEwOTQgeiIgc3R5bGU9ImNvbG9yOiMwMDAwMDA7b3BhY2l0eToxO2ZpbGw6IzQyODVmNDtmaWxsLW9wYWNpdHk6MTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7LWlua3NjYXBlLXN0cm9rZTpub25lIi8+JiN4YTsgICAgPHBhdGggaWQ9InBhdGgxMjQ2MCIgZD0ibSA3Mi41MTk1MzEsMTQ4Ljg3NSAtNC40ODA0NjksNC40Mjk2OSA5LjA5NTcwNCw5LjIwMzEyIEggNTYuNjg1NTQ3IHYgNi4yOTg4MyBoIDIwLjQyMTg3NSBsIC05LjA2MjUsOS4xMjEwOSA0LjQ2ODc1LDQuNDM5NDYgMTYuNTk3NjU2LC0xNi43MDMxMyB6IiBzdHlsZT0iY29sb3I6IzAwMDAwMDtvcGFjaXR5OjE7ZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxOy1pbmtzY2FwZS1zdHJva2U6bm9uZSIvPiYjeGE7ICA8L2c+JiN4YTs8L3N2Zz4=;", 42,42,"Google Cloud\nVMware Engine",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute google cloud vmware engine").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJzdmcyNzk1MiIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTcwLjIyMjY5IDE3OS40NDAwOCIgaGVpZ2h0PSIxNzkuNDQwMDhtbSIgd2lkdGg9IjE3MC4yMjI2OW1tIj4mI3hhOyAgJiN4YTsgIDxkZWZzIGlkPSJkZWZzMjc5NDkiLz4mI3hhOyAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI2LjAyOTQxOSwtNTAuNTE5NTMpIiBpZD0ibGF5ZXIxIj4mI3hhOyAgICA8cGF0aCBkPSJNIDY5MS4zODg2Nyw1MzUuMDAxOTUgNDIwLjM5ODQ0LDgwNi42NjQwNiAxNDkuNDIzODMsNTM1LjY4OTQ1IDEyMy43NzE0OCw1NjEuMzQ3NjYgMjE0LjQ3ODUyLDY1Mi4wNTQ2OSA5OC4zNzg5MDYsNzA5LjE4MzU5IDQyMS44MzAwOCw4NjkuMTM4NjcgNzQxLjc0MDIzLDcwOC40NzQ2MSA2MjYuMDM5MDYsNjUxLjg4MjgxIDcxNy4wNzAzMSw1NjAuNjI1IFogTSA0MjAuMzk4NjMsMTkwLjkzOTk2IDEzNS43MzA4MSw0NzUuNjAwNDEgMTQ4LjUyMzYyLDQ4OC40MzAxMyA0MjAuMzk4NjMsNzYxLjA0MzMgNzA1Ljg0MTU2LDQ3NS42MDA0MSBaIG0gMC4wMzAyLDUxLjI3NDYxIEwgNjU0LjQ5Mzg0LDQ3NS42MzczIDQyMC40Mjg4Nyw3MDkuNjk0OSAxODcuMDEzNTIsNDc1LjYyOTkzIFoiIHRyYW5zZm9ybT0ic2NhbGUoMC4yNjQ1ODMzMykiIHN0eWxlPSJjb2xvcjojMDAwMDAwO29wYWNpdHk6MTtmaWxsOiM0Mjg1ZjQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjMuNzc5NTM7LWlua3NjYXBlLXN0cm9rZTpub25lIiBpZD0icGF0aDI4MDkyIi8+JiN4YTsgIDwvZz4mI3hhOzwvc3ZnPg==;", 40,42,"Bare Metal\nSolution",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute bare metal solution").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB2aWV3Qm94PSIwIDAgMjAgMjAiPiYjeGE7CTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+JiN4YTsJLnN0MHtmaWxsOiM0Mjg1ZjQ7fSYjeGE7CTwvc3R5bGU+JiN4YTsJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEzLjMzIDB2Mi4zOGgtMi4xNlYwSDguODN2Mi4zOEg2LjY3VjBINC4yOXYyLjM4YTIgMiAwIDAgMC0xLjkxIDEuOTFIMHYyLjM4aDIuMzh2Mi4xNEgwdjIuMzhoMi4zOHYyLjE0SDB2Mi4zOGgyLjM4YTIgMiAwIDAgMCAxLjkxIDEuOTFWMjBoMi4zOHYtMi4zOGgyLjE2VjIwaDIuMzR2LTIuMzhoMi4xNlYyMGgyLjM4di0yLjM4YTIgMiAwIDAgMCAxLjkxLTEuOTFIMjB2LTIuMzhoLTIuMzh2LTIuMTRIMjBWOC44MWgtMi4zOFY2LjY3SDIwVjQuMjloLTIuMzhhMiAyIDAgMCAwLTEuOTEtMS45MVYwem0xLjUzIDE1LjI0SDUuMTRhLjM4LjM4IDAgMCAxLS4zOC0uMzhWNS4xNGEuMzguMzggMCAwIDEgLjM4LS4zOGg5LjcyYS4zOC4zOCAwIDAgMSAuMzguMzh2OS43MmEuMzguMzggMCAwIDEtLjM4LjM4em0tMi4wNy02LjEybC0zLjUgNC44NnYtMy42M0g3LjIybDMuNjEtNC44MXYzLjU4eiIvPiYjeGE7PC9zdmc+;", -42,42,"Cloud GPUs",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute gpu graphics processing unit").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczp2PSJodHRwczovL3ZlY3RhLmlvL25hbm8iIHdpZHRoPSIxOS41MSIgaGVpZ2h0PSIxOS41IiB2aWV3Qm94PSIwIDAgMTkuNTEgMTkuNSI+JiN4YTsJPHBhdGggZD0iTTE3LjI2IDE3LjgxaC0uN3YtMS41aC43YS43Ni43NiAwIDAgMCAuNzUtLjc1di00LjMxYS43Ni43NiAwIDAgMC0uNzUtLjc1aC0zLjYxVjloMy42MWEyLjI1IDIuMjUgMCAwIDEgMi4yNSAyLjI1djQuMzFhMi4yNSAyLjI1IDAgMCAxLTIuMjUgMi4yNXptLTcuOTUgMGgtNC45di0xLjVoNC45eiIgZmlsbD0iIzQyODVmNCIvPiYjeGE7CTxwYXRoIGZpbGw9IiM2NjlkZjYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTUuODggMTAuNUgyLjI2QTIuMjUgMi4yNSAwIDAgMSAuMDEgOC4yNVYzLjk0YTIuMjUgMi4yNSAwIDAgMSAyLjI1LTIuMjVoMXYxLjVoLTFhLjc1Ljc1IDAgMCAwLS43NS43NXY0LjMxYS43Ni43NiAwIDAgMCAuNzUuNzVoMy42MnoiLz4mI3hhOwk8cGF0aCBmaWxsPSIjNDI4NWY0IiBkPSJNMTUuMDYgMy4xOUg5LjU4di0xLjVoNS40OHoiLz4mI3hhOwk8cGF0aCBmaWxsPSIjYWVjYmZhIiBkPSJNNi4zOSAxLjY5Vi4xOWgtM2ExLjEzIDEuMTMgMCAwIDAtMS4xMyAxLjEydjIuMjVhMS4xMyAxLjEzIDAgMCAwIDEuMTMgMS4xM2gzdi0xLjVIMy43NnYtMS41eiIvPiYjeGE7CTxwYXRoIGZpbGw9IiM2NjlkZjYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwLjUxIDEuMzF2Mi4yNWExLjEzIDEuMTMgMCAwIDEtMS4xMiAxLjEzaC0zdi0xLjVoMi42MnYtMS41SDYuMzlWLjE5aDNhMS4xMiAxLjEyIDAgMCAxIDEuMTIgMS4xMnoiLz4mI3hhOwk8cGF0aCBmaWxsPSIjYWVjYmZhIiBkPSJNMTcuMDcgNC44OGEyLjQ0IDIuNDQgMCAxIDEgMi40NC0yLjQ0IDIuNDUgMi40NSAwIDAgMS0yLjQ0IDIuNDR6bTAtMy4zOGEuOTQuOTQgMCAxIDAgLjk0Ljk0Ljk0Ljk0IDAgMCAwLS45NC0uOTR6Ii8+JiN4YTsJPHVzZSB4bGluazpocmVmPSIjQiIgZmlsbD0iIzlhYTBhNiIvPiYjeGE7CTxnIGZpbGw9IiNhZWNiZmEiPiYjeGE7CQk8dXNlIHhsaW5rOmhyZWY9IiNCIi8+JiN4YTsJCTxwYXRoIGQ9Ik0xMy4xMiAxNi4zMnYtMS41aC0zQTEuMTMgMS4xMyAwIDAgMCA5IDE1Ljk1djIuMjVhMS4xMiAxLjEyIDAgMCAwIDEuMTIgMS4xMmgzdi0xLjVIMTAuNXYtMS41eiIvPiYjeGE7CTwvZz4mI3hhOwk8cGF0aCBmaWxsPSIjNjY5ZGY2IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNy4yNSAxNS45NXYyLjI1YTEuMTMgMS4xMyAwIDAgMS0xLjEzIDEuMTJoLTN2LTEuNWgyLjY0di0xLjVoLTIuNjR2LTEuNWgzYTEuMTQgMS4xNCAwIDAgMSAxLjEzIDEuMTN6Ii8+JiN4YTsJPHBhdGggZmlsbD0iI2FlY2JmYSIgZD0iTTkuNzYgOVY3LjVoLTNhMS4xMyAxLjEzIDAgMCAwLTEuMTMgMS4xMnYyLjI1QTEuMTMgMS4xMyAwIDAgMCA2Ljc2IDEyaDN2LTEuNUg3LjEzVjl6Ii8+JiN4YTsJPHBhdGggZmlsbD0iIzY2OWRmNiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTMuODggOC42MnYyLjI1QTEuMTMgMS4xMyAwIDAgMSAxMi43NiAxMmgtM3YtMS41aDIuNjJWOUg5Ljc2VjcuNWgzYTEuMTIgMS4xMiAwIDAgMSAxLjEyIDEuMTJ6Ii8+JiN4YTsJPGRlZnM+JiN4YTsJCTxwYXRoIGlkPSJCIiBkPSJNMi40NSAxOS41YTIuNDQgMi40NCAwIDEgMSAyLjQzLTIuNDQgMi40NCAyLjQ0IDAgMCAxLTIuNDMgMi40NHptMC0zLjM4YS45NC45NCAwIDEgMCAuOTMuOTQuOTQuOTQgMCAwIDAtLjkzLS45NHoiLz4mI3hhOwk8L2RlZnM+JiN4YTs8L3N2Zz4=;", -42,42,"Workflows",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute workflows").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJzdmcxNzg1MSIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTIxLjU4NzkxIDEzMy42NzU5MyIgaGVpZ2h0PSIxMzMuNjc1OTNtbSIgd2lkdGg9IjEyMS41ODc5MW1tIj4mI3hhOyAgJiN4YTsgIDxkZWZzIGlkPSJkZWZzMTc4NDgiLz4mI3hhOyAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQ4LjI5MDk0NywtODQuMjY5Njk5KSIgaWQ9ImxheWVyMSI+JiN4YTsgICAgPHJlY3QgeT0iODQuMjY5Njk5IiB4PSI0OC4yOTA5NDciIGhlaWdodD0iMzUuMDE3MTg5IiB3aWR0aD0iOTguMTc0NTc2IiBpZD0icmVjdDE3OTg4IiBzdHlsZT0ib3BhY2l0eToxO2ZpbGw6I2FlY2JmYTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTM7c3Ryb2tlLWxpbmVqb2luOnJvdW5kIi8+JiN4YTsgICAgPHBhdGggZD0ibSAxMzIuNTE0NCwxMDEuNzc4MjkgYSAzLjA0MzAzMjksMy4wNDMwMzI5IDAgMCAxIC0zLjA0MzAzLDMuMDQzMDMgMy4wNDMwMzI5LDMuMDQzMDMyOSAwIDAgMSAtMy4wNDMwNCwtMy4wNDMwMyAzLjA0MzAzMjksMy4wNDMwMzI5IDAgMCAxIDMuMDQzMDQsLTMuMDQzMDI2IDMuMDQzMDMyOSwzLjA0MzAzMjkgMCAwIDEgMy4wNDMwMywzLjA0MzAyNiB6IE0gNjIuNzU4MzI1LDk5LjI3ODI5NCB2IDQuOTk5OTk2IGggMzUuOTU1MDc4IHYgLTQuOTk5OTk2IHoiIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6I2ZmZmZmZjtzdHJva2Utd2lkdGg6NC45OTk5OTtzdHJva2UtbGluZWpvaW46cm91bmQ7LWlua3NjYXBlLXN0cm9rZTpub25lIiBpZD0icGF0aDE4NjY4Ii8+JiN4YTsgICAgPHJlY3QgeT0iMTI5LjkyMTU3IiB4PSI0OC4yOTA5NDciIGhlaWdodD0iMzUuMDE3MTg5IiB3aWR0aD0iOTguMTc0NTc2IiBpZD0icmVjdDE3OTg4LTgiIHN0eWxlPSJvcGFjaXR5OjE7ZmlsbDojNjY5ZGY2O2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxMztzdHJva2UtbGluZWpvaW46cm91bmQiLz4mI3hhOyAgICA8cGF0aCBpZD0icGF0aDE4OTk1IiBkPSJtIDYyLjc1ODMyNSwxNDQuOTMwMTcgdiA0Ljk5OTk5IGggMzUuOTU1MDc4IHYgLTQuOTk5OTkgeiIgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDojZmZmZmZmO3N0cm9rZS13aWR0aDo0Ljk5OTk5O3N0cm9rZS1saW5lam9pbjpyb3VuZDstaW5rc2NhcGUtc3Ryb2tlOm5vbmUiLz4mI3hhOyAgICA8cmVjdCB5PSIxNzUuNTczNDQiIHg9IjQ4LjI5MDk0NyIgaGVpZ2h0PSIzNS4wMTcxODkiIHdpZHRoPSI5OC4xNzQ1NzYiIGlkPSJyZWN0MTc5ODgtMSIgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiM0Mjg1ZjQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjEzO3N0cm9rZS1saW5lam9pbjpyb3VuZCIvPiYjeGE7ICAgIDxwYXRoIGlkPSJwYXRoMTg5OTkiIGQ9Im0gNjIuNzU4MzI1LDE5MC41ODIwNCB2IDQuOTk5OTkgaCAzNS45NTUwNzggdiAtNC45OTk5OSB6IiBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjQuOTk5OTk7c3Ryb2tlLWxpbmVqb2luOnJvdW5kOy1pbmtzY2FwZS1zdHJva2U6bm9uZSIvPiYjeGE7ICAgIDxjaXJjbGUgcj0iMzcuNTI5NzM5IiBjeT0iMTgwLjQxNTg5IiBjeD0iMTMyLjM0OTEyIiBpZD0icGF0aDE5MTIxLTkiIHN0eWxlPSJvcGFjaXR5OjE7ZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDo1LjIxMzE7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIi8+JiN4YTsgICAgPHBhdGggdHJhbnNmb3JtPSJzY2FsZSgwLjI2NDU4MzMzKSIgZD0ibSA1MDAuMjE4NzUsNTY4LjIyODUyIGMgLTYyLjY4MjA3LDAgLTExMy42NTgxNyw1MC45NzYxMyAtMTEzLjY1ODIsMTEzLjY1ODIgMCw2Mi42ODIwNiA1MC45NzYxMywxMTMuNjYwMTUgMTEzLjY1ODIsMTEzLjY2MDE2IDYyLjY4MjA3LDAgMTEzLjY2MDE5LC01MC45NzgxIDExMy42NjAxNiwtMTEzLjY2MDE2IDAsLTYyLjY4MjA3IC01MC45NzgwOSwtMTEzLjY1ODIgLTExMy42NjAxNiwtMTEzLjY1ODIgeiBtIC05LjQ0OTIyLDE4LjMwNDY4IHYgODUuOTA2MjUgaCAtMzAuMTQyNTggYyAxLjAxNDU4LC0yNC41OTk1OCA1LjkyMDM5LC00Ni42MTIxMSAxMy4wMDk3NywtNjIuNDk2MDkgMy45OTMwNywtOC45NDY3MSA4LjY3ODI5LC0xNS45MDY5NCAxMy4zNDU3LC0yMC4zMzAwOCAxLjI4NzA3LC0xLjIxOTcyIDIuNTQ3MjQsLTIuMjM3MTggMy43ODcxMSwtMy4wODAwOCB6IG0gMTguODk4NDQsMC4wMDQgYyAxLjIzNzM2LDAuODQyMjEgMi40OTQwNSwxLjg1ODE5IDMuNzc5MywzLjA3NjE3IDQuNjY3NDEsNC40MjMxNCA5LjM2MDQsMTEuMzgzMzcgMTMuMzUzNTEsMjAuMzMwMDggNy4wODkzOCwxNS44ODM5OCAxMS45OTcxNCwzNy44OTY1MSAxMy4wMTE3Miw2Mi40OTYwOSBoIC0zMC4xNDQ1MyB6IG0gMjIuNjE5MTQsMi4xMjg5MSBjIDM1Ljg2NTU4LDEyLjI5Nzg5IDYyLjMxODUsNDQuNjY4OTMgNjYuMDIxNDgsODMuNzczNDMgaCAtNDMuMzY1MjMgYyAtMC45OTgwMSwtMjYuNDUyNzMgLTYuMTUwMjMsLTUwLjMxNTM3IC0xNC4zMzc4OSwtNjguNjYwMTUgLTIuNDgzNzgsLTUuNTY0OTYgLTUuMjQ3NDgsLTEwLjYzMDI5IC04LjMxODM2LC0xNS4xMTMyOCB6IG0gLTY0LjE0MjU4LDAuMDAyIGMgLTMuMDY4MjcsNC40ODI0NCAtNS44MjkxMyw5LjU0NzI5IC04LjMxMjUsMTUuMTExMzMgLTguMTg3NjYsMTguMzQ0NzggLTEzLjMzNzkzLDQyLjIwNzQzIC0xNC4zMzU5NCw2OC42NjAxNSBoIC00My4zNjcxOCBjIDMuNzAyODEsLTM5LjEwMjM4IDMwLjE1MzAxLC03MS40NzIwNyA2Ni4wMTU2MiwtODMuNzcxNDggeiBtIC02Ni4wMTU2MiwxMDIuNjY3OTcgaCA0My4zNjcxOCBjIDAuOTk4MDEsMjYuNDUxNDUgNi4xNDgyOCw1MC4zMDc1NiAxNC4zMzU5NCw2OC42NTIzNCAyLjQ4NDI3LDUuNTY2MDYgNS4yNDY4LDEwLjYzMzUxIDguMzE2NDEsMTUuMTE5MTQgLTM1Ljg2Mzk2LC0xMi4yOTgzNCAtNjIuMzE2MTEsLTQ0LjY2ODQ4IC02Ni4wMTk1MywtODMuNzcxNDggeiBtIDU4LjQ5ODA0LDAgaCAzMC4xNDI1OCB2IDg1LjkwNDI5IGMgLTEuMjM5ODcsLTAuODQyODkgLTIuNTAwMDQsLTEuODYwMzUgLTMuNzg3MTEsLTMuMDgwMDcgLTQuNjY3NDEsLTQuNDIzMTUgLTkuMzUyNTksLTExLjM4MTQyIC0xMy4zNDU3LC0yMC4zMjgxMyAtNy4wODkxOSwtMTUuODgzNTYgLTExLjk5NTAxLC0zNy44OTczMiAtMTMuMDA5NzcsLTYyLjQ5NjA5IHogbSA0OS4wNDEwMiwwIGggMzAuMTQ0NTMgYyAtMS4wMTQ3NiwyNC41OTg3NyAtNS45MjI1Myw0Ni42MTI1MyAtMTMuMDExNzIsNjIuNDk2MDkgLTMuOTkzMTEsOC45NDY3MSAtOC42ODYxLDE1LjkwNDk4IC0xMy4zNTM1MSwyMC4zMjgxMyAtMS4yODUyNSwxLjIxNzk4IC0yLjU0MTk0LDIuMjMzOTYgLTMuNzc5MywzLjA3NjE3IHogbSA0NS4yNzUzOSwwIGggNDMuMzY1MjMgYyAtMy43MDM1OSwzOS4xMDUxMiAtMzAuMTU4NDYsNzEuNDc2NiAtNjYuMDI1MzksODMuNzczNDQgMy4wNzIyMiwtNC40ODYxOSA1LjgzNzU5LC05LjU1NDEyIDguMzIyMjcsLTE1LjEyMTEgOC4xODc2NiwtMTguMzQ0NzggMTMuMzM5ODgsLTQyLjIwMDg4IDE0LjMzNzg5LC02OC42NTIzNCB6IiBzdHlsZT0iY29sb3I6IzAwMDAwMDtvcGFjaXR5OjE7ZmlsbDojNDI4NWY0O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDozLjc3OTUzO3N0cm9rZS1saW5lam9pbjpyb3VuZDstaW5rc2NhcGUtc3Ryb2tlOm5vbmUiIGlkPSJwYXRoMTkxMjEiLz4mI3hhOyAgPC9nPiYjeGE7PC9zdmc+;", +42,42,"Cloud GPUs",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute gpu graphics processing unit").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJzdmcxNzg1MSIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTIxLjU4NzkxIDEzMy42NzU5MyIgaGVpZ2h0PSIxMzMuNjc1OTNtbSIgd2lkdGg9IjEyMS41ODc5MW1tIj4mI3hhOyAgJiN4YTsgIDxkZWZzIGlkPSJkZWZzMTc4NDgiLz4mI3hhOyAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQ4LjI5MDk0NywtODQuMjY5Njk5KSIgaWQ9ImxheWVyMSI+JiN4YTsgICAgPHJlY3QgeT0iODQuMjY5Njk5IiB4PSI0OC4yOTA5NDciIGhlaWdodD0iMzUuMDE3MTg5IiB3aWR0aD0iOTguMTc0NTc2IiBpZD0icmVjdDE3OTg4IiBzdHlsZT0ib3BhY2l0eToxO2ZpbGw6I2FlY2JmYTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTM7c3Ryb2tlLWxpbmVqb2luOnJvdW5kIi8+JiN4YTsgICAgPHBhdGggZD0ibSAxMzIuNTE0NCwxMDEuNzc4MjkgYSAzLjA0MzAzMjksMy4wNDMwMzI5IDAgMCAxIC0zLjA0MzAzLDMuMDQzMDMgMy4wNDMwMzI5LDMuMDQzMDMyOSAwIDAgMSAtMy4wNDMwNCwtMy4wNDMwMyAzLjA0MzAzMjksMy4wNDMwMzI5IDAgMCAxIDMuMDQzMDQsLTMuMDQzMDI2IDMuMDQzMDMyOSwzLjA0MzAzMjkgMCAwIDEgMy4wNDMwMywzLjA0MzAyNiB6IE0gNjIuNzU4MzI1LDk5LjI3ODI5NCB2IDQuOTk5OTk2IGggMzUuOTU1MDc4IHYgLTQuOTk5OTk2IHoiIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6I2ZmZmZmZjtzdHJva2Utd2lkdGg6NC45OTk5OTtzdHJva2UtbGluZWpvaW46cm91bmQ7LWlua3NjYXBlLXN0cm9rZTpub25lIiBpZD0icGF0aDE4NjY4Ii8+JiN4YTsgICAgPHJlY3QgeT0iMTI5LjkyMTU3IiB4PSI0OC4yOTA5NDciIGhlaWdodD0iMzUuMDE3MTg5IiB3aWR0aD0iOTguMTc0NTc2IiBpZD0icmVjdDE3OTg4LTgiIHN0eWxlPSJvcGFjaXR5OjE7ZmlsbDojNjY5ZGY2O2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxMztzdHJva2UtbGluZWpvaW46cm91bmQiLz4mI3hhOyAgICA8cGF0aCBpZD0icGF0aDE4OTk1IiBkPSJtIDYyLjc1ODMyNSwxNDQuOTMwMTcgdiA0Ljk5OTk5IGggMzUuOTU1MDc4IHYgLTQuOTk5OTkgeiIgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDojZmZmZmZmO3N0cm9rZS13aWR0aDo0Ljk5OTk5O3N0cm9rZS1saW5lam9pbjpyb3VuZDstaW5rc2NhcGUtc3Ryb2tlOm5vbmUiLz4mI3hhOyAgICA8cmVjdCB5PSIxNzUuNTczNDQiIHg9IjQ4LjI5MDk0NyIgaGVpZ2h0PSIzNS4wMTcxODkiIHdpZHRoPSI5OC4xNzQ1NzYiIGlkPSJyZWN0MTc5ODgtMSIgc3R5bGU9Im9wYWNpdHk6MTtmaWxsOiM0Mjg1ZjQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjEzO3N0cm9rZS1saW5lam9pbjpyb3VuZCIvPiYjeGE7ICAgIDxwYXRoIGlkPSJwYXRoMTg5OTkiIGQ9Im0gNjIuNzU4MzI1LDE5MC41ODIwNCB2IDQuOTk5OTkgaCAzNS45NTUwNzggdiAtNC45OTk5OSB6IiBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjQuOTk5OTk7c3Ryb2tlLWxpbmVqb2luOnJvdW5kOy1pbmtzY2FwZS1zdHJva2U6bm9uZSIvPiYjeGE7ICAgIDxjaXJjbGUgcj0iMzcuNTI5NzM5IiBjeT0iMTgwLjQxNTg5IiBjeD0iMTMyLjM0OTEyIiBpZD0icGF0aDE5MTIxLTkiIHN0eWxlPSJvcGFjaXR5OjE7ZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDo1LjIxMzE7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIi8+JiN4YTsgICAgPHBhdGggdHJhbnNmb3JtPSJzY2FsZSgwLjI2NDU4MzMzKSIgZD0ibSA1MDAuMjE4NzUsNTY4LjIyODUyIGMgLTYyLjY4MjA3LDAgLTExMy42NTgxNyw1MC45NzYxMyAtMTEzLjY1ODIsMTEzLjY1ODIgMCw2Mi42ODIwNiA1MC45NzYxMywxMTMuNjYwMTUgMTEzLjY1ODIsMTEzLjY2MDE2IDYyLjY4MjA3LDAgMTEzLjY2MDE5LC01MC45NzgxIDExMy42NjAxNiwtMTEzLjY2MDE2IDAsLTYyLjY4MjA3IC01MC45NzgwOSwtMTEzLjY1ODIgLTExMy42NjAxNiwtMTEzLjY1ODIgeiBtIC05LjQ0OTIyLDE4LjMwNDY4IHYgODUuOTA2MjUgaCAtMzAuMTQyNTggYyAxLjAxNDU4LC0yNC41OTk1OCA1LjkyMDM5LC00Ni42MTIxMSAxMy4wMDk3NywtNjIuNDk2MDkgMy45OTMwNywtOC45NDY3MSA4LjY3ODI5LC0xNS45MDY5NCAxMy4zNDU3LC0yMC4zMzAwOCAxLjI4NzA3LC0xLjIxOTcyIDIuNTQ3MjQsLTIuMjM3MTggMy43ODcxMSwtMy4wODAwOCB6IG0gMTguODk4NDQsMC4wMDQgYyAxLjIzNzM2LDAuODQyMjEgMi40OTQwNSwxLjg1ODE5IDMuNzc5MywzLjA3NjE3IDQuNjY3NDEsNC40MjMxNCA5LjM2MDQsMTEuMzgzMzcgMTMuMzUzNTEsMjAuMzMwMDggNy4wODkzOCwxNS44ODM5OCAxMS45OTcxNCwzNy44OTY1MSAxMy4wMTE3Miw2Mi40OTYwOSBoIC0zMC4xNDQ1MyB6IG0gMjIuNjE5MTQsMi4xMjg5MSBjIDM1Ljg2NTU4LDEyLjI5Nzg5IDYyLjMxODUsNDQuNjY4OTMgNjYuMDIxNDgsODMuNzczNDMgaCAtNDMuMzY1MjMgYyAtMC45OTgwMSwtMjYuNDUyNzMgLTYuMTUwMjMsLTUwLjMxNTM3IC0xNC4zMzc4OSwtNjguNjYwMTUgLTIuNDgzNzgsLTUuNTY0OTYgLTUuMjQ3NDgsLTEwLjYzMDI5IC04LjMxODM2LC0xNS4xMTMyOCB6IG0gLTY0LjE0MjU4LDAuMDAyIGMgLTMuMDY4MjcsNC40ODI0NCAtNS44MjkxMyw5LjU0NzI5IC04LjMxMjUsMTUuMTExMzMgLTguMTg3NjYsMTguMzQ0NzggLTEzLjMzNzkzLDQyLjIwNzQzIC0xNC4zMzU5NCw2OC42NjAxNSBoIC00My4zNjcxOCBjIDMuNzAyODEsLTM5LjEwMjM4IDMwLjE1MzAxLC03MS40NzIwNyA2Ni4wMTU2MiwtODMuNzcxNDggeiBtIC02Ni4wMTU2MiwxMDIuNjY3OTcgaCA0My4zNjcxOCBjIDAuOTk4MDEsMjYuNDUxNDUgNi4xNDgyOCw1MC4zMDc1NiAxNC4zMzU5NCw2OC42NTIzNCAyLjQ4NDI3LDUuNTY2MDYgNS4yNDY4LDEwLjYzMzUxIDguMzE2NDEsMTUuMTE5MTQgLTM1Ljg2Mzk2LC0xMi4yOTgzNCAtNjIuMzE2MTEsLTQ0LjY2ODQ4IC02Ni4wMTk1MywtODMuNzcxNDggeiBtIDU4LjQ5ODA0LDAgaCAzMC4xNDI1OCB2IDg1LjkwNDI5IGMgLTEuMjM5ODcsLTAuODQyODkgLTIuNTAwMDQsLTEuODYwMzUgLTMuNzg3MTEsLTMuMDgwMDcgLTQuNjY3NDEsLTQuNDIzMTUgLTkuMzUyNTksLTExLjM4MTQyIC0xMy4zNDU3LC0yMC4zMjgxMyAtNy4wODkxOSwtMTUuODgzNTYgLTExLjk5NTAxLC0zNy44OTczMiAtMTMuMDA5NzcsLTYyLjQ5NjA5IHogbSA0OS4wNDEwMiwwIGggMzAuMTQ0NTMgYyAtMS4wMTQ3NiwyNC41OTg3NyAtNS45MjI1Myw0Ni42MTI1MyAtMTMuMDExNzIsNjIuNDk2MDkgLTMuOTkzMTEsOC45NDY3MSAtOC42ODYxLDE1LjkwNDk4IC0xMy4zNTM1MSwyMC4zMjgxMyAtMS4yODUyNSwxLjIxNzk4IC0yLjU0MTk0LDIuMjMzOTYgLTMuNzc5MywzLjA3NjE3IHogbSA0NS4yNzUzOSwwIGggNDMuMzY1MjMgYyAtMy43MDM1OSwzOS4xMDUxMiAtMzAuMTU4NDYsNzEuNDc2NiAtNjYuMDI1MzksODMuNzczNDQgMy4wNzIyMiwtNC40ODYxOSA1LjgzNzU5LC05LjU1NDEyIDguMzIyMjcsLTE1LjEyMTEgOC4xODc2NiwtMTguMzQ0NzggMTMuMzM5ODgsLTQyLjIwMDg4IDE0LjMzNzg5LC02OC42NTIzNCB6IiBzdHlsZT0iY29sb3I6IzAwMDAwMDtvcGFjaXR5OjE7ZmlsbDojNDI4NWY0O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDozLjc3OTUzO3N0cm9rZS1saW5lam9pbjpyb3VuZDstaW5rc2NhcGUtc3Ryb2tlOm5vbmUiIGlkPSJwYXRoMTkxMjEiLz4mI3hhOyAgPC9nPiYjeGE7PC9zdmc+;", 38,42,"Distributed\nCloud",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute distributed cloud").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB2aWV3Qm94PSIwIDAgMjAgMjAiPiYjeGE7CTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+JiN4YTsJLnN0MHtmaWxsOiM0Mjg1ZjQ7fSYjeGE7CTwvc3R5bGU+JiN4YTsJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEwIDBhMTAgMTAgMCAxIDAgMTAgMTBoMEExMCAxMCAwIDAgMCAxMCAwem0wIDE4YTggOCAwIDAgMS00LjE4LTEuMThsMy41OC0yLjA3aDB2LTQuNUw1LjUxIDh2NC41MmwyLjc1IDEuNTktMy40NiAyQTggOCAwIDAgMSA2LjA4IDN2NGgwTDEwIDkuMjggMTMuOSA3IDEwIDQuNzcgNy4yNCA2LjM2VjIuNDdhOCA4IDAgMCAxIDEwLjMxIDQuNyA4LjEgOC4xIDAgMCAxIC41MSAyLjgzdi4wN0wxNC40NiA4aDBsLTMuOSAyLjI2djQuNTFsMy45LTIuMjVWOS4zNGwzLjQ1IDJBOCA4IDAgMCAxIDEwIDE4eiIvPiYjeGE7PC9zdmc+;", 42,42,"Container-\nOptimized OS",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute container optimized os operating system").join(" ")),this.createVertexTemplateEntry("sketch=0;html=1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;shape=image;aspect=fixed;imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjQwMi4zNDMyMDA2ODM1OTM3NSIgaGVpZ2h0PSI0MTYuMDAyNTMyOTU4OTg0NCIgdmlld0JveD0iMCAwLjAwMDQ5OTk2Mzc2MDM3NTk3NjYgNDAyLjM0MzIwMDY4MzU5Mzc1IDQxNi4wMDI1MzI5NTg5ODQ0Ij4mI3hhOwk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPiYjeGE7CS5zdDB7ZmlsbDojNDI4NWY0O30mI3hhOwkuc3Qxe2ZpbGw6IzY2OWRmNjt9JiN4YTsJLnN0MntmaWxsOiNhZWNiZmE7fSYjeGE7CTwvc3R5bGU+JiN4YTsJPHBhdGggY2xhc3M9InN0MiIgZD0iTTM2Ni4xNyA5Mi4wMDNjLTE5LjA1IDAtMzYgMTYuODItMzYgMzUuNzYgMCAxMi42MiA4LjQ2IDI1LjI0IDE5LjA1IDMxLjU1djE0Ny4zbC0xMTAuMDUgNjUuMjEgMTYuOTMgMjcuMzUgMTE4LjUxLTY5LjQyYzQuMjQtMi4xIDguNDctOC40MSA4LjQ3LTE0Ljczdi0xNTUuNjdjMTIuNzEtNi4zNSAxOS4wOS0xOC45MyAxOS4wOS0zMS41NSAyLjA4LTE4Ljk0LTE0Ljg1LTM1LjgtMzYtMzUuOHptLTM4LjExLTIzLjFMMjA5LjU1IDEuNTgzYy00LjI0LTIuMTEtMTAuNTktMi4xMS0xNi45MyAwTDU3LjE3IDc5LjQxM0EzNiAzNiAwIDAgMCAzNiA3My4xMDNjLTE5IDAtMzYgMTYuODMtMzYgMzUuNzZzMTYuOTMgMzUuNzcgMzYgMzUuNzcgMzYtMTYuODMgMzYtMzUuNzdsMTI5LjEtNzMuNjIgMTEwIDYzLjExem0tMTQzLjg5IDI3Ny42OHEtOS41MyAwLTE5IDYuMzFsLTExMC02My4xMXYtMTI2LjIyaC0zNHYxMzQuNjNjMCA2LjMyIDQuMjMgMTIuNjMgOC40NiAxNC43M2wxMTguNTQgNjUuMjF2Mi4xMWMwIDE4LjkzIDE2LjkzIDM1Ljc2IDM2IDM1Ljc2czM2LTE2LjgzIDM2LTM1Ljc2LTE3LTMzLjY2LTM2LTMzLjY2eiIvPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik05Ny4zOCAxMzYuMjEzbDEwNS44MiA1OC45MSAxMDMuNy01OC45MS0xMDMuNy02MXptLTYuMzUgNjcuMzJsMTEyLjE3IDYzLjExdi01MC40OWwtMTEyLjE3LTY1LjIxem0wIDYzLjExbDExMi4xNyA2NS4yMXYtNDQuMTdsLTExMi4xNy02NS4yMnoiLz4mI3hhOwk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjAzLjE3IDIxNi4xMjN2NTAuNTZsMTEyLjE2LTY1LjI5di01MC4zOXptOTItMjBhOC4xNiA4LjE2IDAgMSAxIDguMTYtOC4xNiA4LjE5IDguMTkgMCAwIDEtOC4xNiA4LjE2em0tOTIgOTEuNTJ2NDQuMTZsMTEyLjE2LTY1LjEydi00NC4xNnptOTItMjIuODhhOC4xNiA4LjE2IDAgMSAxIDguMTYtOC4xNiA4LjE5IDguMTkgMCAwIDEtOC4xNiA4LjE2eiIvPiYjeGE7PC9zdmc+;", 40,42,"GKE On-Prem",null,null,null,this.getTagsForStencil("mxgraph.gcp2","","gcp google cloud platform icons icon compute gke on-prem").join(" "))];this.addPalette("gcp2Icons Compute","GCP Icons / Compute",!1,mxUtils.bind(this,function(c){for(var d=0;dmxUtils.indexOf(N,d)&&G.push(d)}0
')))}catch(f){}Editor.prototype.useCanvasForExport= !1})();(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(g,l,n){n.ui=g.ui;return l};b.afterDecode=function(g,l,n){n.previousColor=n.color;n.previousImage=n.image;n.previousFormat=n.format;null!=n.foldingEnabled&&(n.foldingEnabled=!n.foldingEnabled);null!=n.mathEnabled&&(n.mathEnabled=!n.mathEnabled);null!=n.shadowVisible&&(n.shadowVisible=!n.shadowVisible);return n};mxCodecRegistry.register(b)})(); -(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(g,l,n){n.ui=g.ui;return l};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="22.1.8";EditorUi.compactUi="atlas"!=Editor.currentTheme;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; +(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(g,l,n){n.ui=g.ui;return l};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="22.1.9";EditorUi.compactUi="atlas"!=Editor.currentTheme;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.drawio.com/doc/faq/scratchpad";EditorUi.enableHtmlEditOption=!0;EditorUi.mermaidDiagramTypes="flowchart classDiagram sequenceDiagram stateDiagram mindmap graph erDiagram requirementDiagram journey gantt pie gitGraph".split(" ");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= @@ -11989,7 +12002,7 @@ this.showAlert(mxResources.get("viewerOnlyMsg"));if(this.editor.editable&&this.m y=null!=d?d(c,v,c.attributes[q].value,!0):c.attributes[q].value;null!=y&&(u^=this.hashValue(v,d,k)+this.hashValue(y,d,k))}}if(null!=c.childNodes)for(q=0;q=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:"22.1.8",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:"22.1.9",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&&2navigator.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|| @@ -1534,13 +1534,13 @@ mxGraphHandler.prototype.addStates=function(a,b){var c=this.graph.view.getState( mxGraphHandler.prototype.snap=function(a){var b=this.scaleGrid?this.graph.view.scale:1;a.x=this.graph.snap(a.x/b)*b;a.y=this.graph.snap(a.y/b)*b;return a};mxGraphHandler.prototype.getDelta=function(a){a=mxUtils.convertPoint(this.graph.container,a.getX(),a.getY());return new mxPoint(a.x-this.first.x-this.graph.panDx,a.y-this.first.y-this.graph.panDy)};mxGraphHandler.prototype.updateHint=function(a){};mxGraphHandler.prototype.removeHint=function(){}; mxGraphHandler.prototype.roundLength=function(a){return Math.round(100*a)/100};mxGraphHandler.prototype.isValidDropTarget=function(a,b){for(b=0;b=this.cellCount&&!this.livePreviewActive&&this.allowLivePreview?this.cloning&&this.livePreviewActive||(this.livePreviewUsed=this.livePreviewActive=!0):this.livePreviewUsed||null!=this.shape||(this.shape=this.createPreviewShape(this.bounds))}; -mxGraphHandler.prototype.mouseMove=function(a,b){a=this.graph;var c=a.tolerance;null==this.first&&this.delayedSelection&&null!=this.cell&&null!=this.mouseDownX&&null!=this.mouseDownY&&(Math.abs(this.mouseDownX-b.getX())>c||Math.abs(this.mouseDownY-b.getY())>c)&&(this.delayedSelection=!1,this.cellWasClicked=!0,this.graph.isCellSelected(this.cell)||mxEvent.isAltDown(b.getEvent())||(this.graph.isToggleEvent(b.getEvent())?a.addSelectionCell(this.cell):this.graph.isAncestorSelected(this.cell)||a.setSelectionCell(this.cell)), -this.start(this.cell,this.mouseDownX,this.mouseDownY,this.getCells(null,a.getSelectionCells().concat(b.getCell()))));var d=null!=this.first?this.getDelta(b):null;if(b.isConsumed()||!a.isMouseDown||null==this.cell||null==d||null==this.bounds||this.suspended)!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||b.isConsumed()||null==b.getState()&&null==b.sourceState||a.isMouseDown||(d=a.getCursorForMouseEvent(b),null==d&&a.isEnabled()&&a.isCellMovable(b.getCell())&&(d=a.getModel().isEdge(b.getCell())? -mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),null!=d&&null!=b.sourceState&&b.sourceState.setCursor(d));else if(mxEvent.isMultiTouchEvent(b.getEvent()))this.reset();else{if(null!=this.shape||this.livePreviewActive||this.cloning||Math.abs(d.x)>c||Math.abs(d.y)>c){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3));c=a.isCloneEvent(b.getEvent())&&a.isCellsCloneable()&&this.isCloneEnabled();var e=a.isGridEnabledEvent(b.getEvent()), -f=b.getCell();f=null!=f&&0>mxUtils.indexOf(this.cells,f)?f:a.getCellAt(b.getGraphX(),b.getGraphY(),null,null,null,mxUtils.bind(this,function(n,p,r){return 0<=mxUtils.indexOf(this.cells,n.cell)}));var g=!0,k=null;this.cloning=c;a.isDropEnabled()&&this.highlightEnabled&&(k=a.getDropTarget(this.cells,b.getEvent(),f,c));var l=a.getView().getState(k),m=!1;null!=l&&(c||this.isValidDropTarget(k,b))?(this.target!=k&&(this.target=k,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),m=!0):(this.target= -null,this.connectOnDrop&&null!=f&&1==this.cells.length&&a.getModel().isVertex(f)&&a.isCellConnectable(f)&&(l=a.getView().getState(f),null!=l&&(f=null==a.getEdgeValidationError(null,this.cell,f)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(f),m=!0)));null!=l&&m?this.highlight.highlight(l):this.highlight.hide();null!=this.guide&&this.useGuidesForEvent(b)?(d=this.guide.move(this.bounds,d,e,c),g=!1):d=a.snapDelta(d,this.bounds,!e,!1,!1);null!=this.guide&&g&& -this.guide.hide();this.isConstrainedEvent(b)&&(Math.abs(d.x)>Math.abs(d.y)?d.y=0:d.x=0);this.checkPreview();if(this.currentDx!=d.x||this.currentDy!=d.y)this.currentDx=d.x,this.currentDy=d.y,this.updatePreview()}this.updateHint(b);this.consumeMouseEvent(mxEvent.MOUSE_MOVE,b);mxEvent.consume(b.getEvent())}};mxGraphHandler.prototype.isConstrainedEvent=function(a){return(null==this.target||this.graph.isCloneEvent(a.getEvent()))&&this.graph.isConstrainedEvent(a.getEvent())}; -mxGraphHandler.prototype.updatePreview=function(a){this.livePreviewUsed&&!a?null!=this.cells&&(this.setHandlesVisibleForCells(this.graph.selectionCellsHandler.getHandledSelectionCells(),!1),this.updateLivePreview(this.currentDx,this.currentDy)):this.updatePreviewShape()}; +mxGraphHandler.prototype.mouseMove=function(a,b){a=this.graph;var c=a.tolerance;if(null==this.first&&this.delayedSelection&&null!=this.cell&&null!=this.mouseDownX&&null!=this.mouseDownY&&(Math.abs(this.mouseDownX-b.getX())>c||Math.abs(this.mouseDownY-b.getY())>c)){this.delayedSelection=!1;this.cellWasClicked=!0;this.graph.isCellSelected(this.cell)||mxEvent.isAltDown(b.getEvent())||(this.graph.isToggleEvent(b.getEvent())?a.addSelectionCell(this.cell):this.graph.isAncestorSelected(this.cell)||a.setSelectionCell(this.cell)); +var d=a.getSelectionCells();this.graph.isToggleEvent(b.getEvent())&&mxEvent.isAltDown(b.getEvent())&&!a.isSelectionEmpty()||(d=d.concat(b.getCell()));this.start(this.cell,this.mouseDownX,this.mouseDownY,this.getCells(null,d))}d=null!=this.first?this.getDelta(b):null;if(b.isConsumed()||!a.isMouseDown||null==this.cell||null==d||null==this.bounds||this.suspended)!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||b.isConsumed()||null==b.getState()&&null==b.sourceState||a.isMouseDown|| +(d=a.getCursorForMouseEvent(b),null==d&&a.isEnabled()&&a.isCellMovable(b.getCell())&&(d=a.getModel().isEdge(b.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),null!=d&&null!=b.sourceState&&b.sourceState.setCursor(d));else if(mxEvent.isMultiTouchEvent(b.getEvent()))this.reset();else{if(null!=this.shape||this.livePreviewActive||this.cloning||Math.abs(d.x)>c||Math.abs(d.y)>c){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR, +3));c=a.isCloneEvent(b.getEvent())&&a.isCellsCloneable()&&this.isCloneEnabled();var e=a.isGridEnabledEvent(b.getEvent()),f=b.getCell();f=null!=f&&0>mxUtils.indexOf(this.cells,f)?f:a.getCellAt(b.getGraphX(),b.getGraphY(),null,null,null,mxUtils.bind(this,function(n,p,r){return 0<=mxUtils.indexOf(this.cells,n.cell)}));var g=!0,k=null;this.cloning=c;a.isDropEnabled()&&this.highlightEnabled&&(k=a.getDropTarget(this.cells,b.getEvent(),f,c));var l=a.getView().getState(k),m=!1;null!=l&&(c||this.isValidDropTarget(k, +b))?(this.target!=k&&(this.target=k,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),m=!0):(this.target=null,this.connectOnDrop&&null!=f&&1==this.cells.length&&a.getModel().isVertex(f)&&a.isCellConnectable(f)&&(l=a.getView().getState(f),null!=l&&(f=null==a.getEdgeValidationError(null,this.cell,f)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(f),m=!0)));null!=l&&m?this.highlight.highlight(l):this.highlight.hide();null!=this.guide&&this.useGuidesForEvent(b)? +(d=this.guide.move(this.bounds,d,e,c),g=!1):d=a.snapDelta(d,this.bounds,!e,!1,!1);null!=this.guide&&g&&this.guide.hide();this.isConstrainedEvent(b)&&(Math.abs(d.x)>Math.abs(d.y)?d.y=0:d.x=0);this.checkPreview();if(this.currentDx!=d.x||this.currentDy!=d.y)this.currentDx=d.x,this.currentDy=d.y,this.updatePreview()}this.updateHint(b);this.consumeMouseEvent(mxEvent.MOUSE_MOVE,b);mxEvent.consume(b.getEvent())}}; +mxGraphHandler.prototype.isConstrainedEvent=function(a){return(null==this.target||this.graph.isCloneEvent(a.getEvent()))&&this.graph.isConstrainedEvent(a.getEvent())};mxGraphHandler.prototype.updatePreview=function(a){this.livePreviewUsed&&!a?null!=this.cells&&(this.setHandlesVisibleForCells(this.graph.selectionCellsHandler.getHandledSelectionCells(),!1),this.updateLivePreview(this.currentDx,this.currentDy)):this.updatePreviewShape()}; mxGraphHandler.prototype.updatePreviewShape=function(){null!=this.shape&&null!=this.pBounds&&(this.shape.bounds=new mxRectangle(Math.round(this.pBounds.x+this.currentDx),Math.round(this.pBounds.y+this.currentDy),this.pBounds.width,this.pBounds.height),this.shape.redraw())}; mxGraphHandler.prototype.updateLivePreview=function(a,b){if(!this.suspended){var c=[];null!=this.allCells&&this.allCells.visit(mxUtils.bind(this,function(n,p){n=this.graph.view.getState(p.cell);n!=p&&(p.destroy(),null!=n?this.allCells.put(p.cell,n):this.allCells.remove(p.cell),p=n);if(null!=p&&(n=p.clone(),c.push([p,n]),null!=p.shape&&(null==p.shape.originalPointerEvents&&(p.shape.originalPointerEvents=p.shape.pointerEvents),p.shape.pointerEvents=!1,null!=p.text&&(null==p.text.originalPointerEvents&& (p.text.originalPointerEvents=p.text.pointerEvents),p.text.pointerEvents=!1)),this.graph.model.isVertex(p.cell))){if(!this.cloning||this.graph.isCellCloneable(p.cell))p.x+=a,p.y+=b;this.cloning?null!=p.text&&(p.text.updateBoundingBox(),null!=p.text.boundingBox&&(p.text.boundingBox.x+=a,p.text.boundingBox.y+=b),null!=p.text.unrotatedBoundingBox&&(p.text.unrotatedBoundingBox.x+=a,p.text.unrotatedBoundingBox.y+=b)):(p.view.graph.cellRenderer.redraw(p,!0),p.view.invalidate(p.cell),p.invalid=!1,null!= @@ -2062,8 +2062,8 @@ M.appendChild(S);mxEvent.addListener(S,"click",function(c){D.checked=!D.checked; function(){G.checked?J.removeAttribute("disabled"):J.setAttribute("disabled","disabled");D.checked=!G.checked});q=q.cloneNode(!1);M=document.createElement("td");mxUtils.write(M,mxResources.get("pageScale")+":");q.appendChild(M);M=document.createElement("td");var R=document.createElement("input");R.setAttribute("value","100 %");R.setAttribute("size","5");R.style.width="50px";M.appendChild(R);q.appendChild(M);t.appendChild(q);q=document.createElement("tr");M=document.createElement("td");M.colSpan=2; M.style.paddingTop="20px";M.setAttribute("align","right");S=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});S.className="geBtn";b.editor.cancelFirst&&M.appendChild(S);if(PrintDialog.previewEnabled){var W=mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();e(!1)});W.className="geBtn";M.appendChild(W)}W=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();e(!0)});W.className="geBtn gePrimaryBtn";M.appendChild(W);b.editor.cancelFirst|| M.appendChild(S);q.appendChild(M);t.appendChild(q);n.appendChild(t);this.container=n};PrintDialog.printPreview=function(b){try{null!=b.wnd&&window.setTimeout(function(){b.wnd.focus();b.wnd.print();b.wnd.close()},500)}catch(e){}}; -PrintDialog.createPrintPreview=function(b,e,g,n,t,q,D){e=new mxPrintPreview(b,e,g,n,t,q);e.title=mxResources.get("preview");e.addPageCss=!mxClient.IS_SF;e.printBackgroundImage=!0;e.autoOrigin=D;b=b.background;if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";e.backgroundColor=b;var M=e.writeHead;e.writeHead=function(S){M.apply(this,arguments);S.writeln('")}; -return e};PrintDialog.previewEnabled=!0; +PrintDialog.createPrintPreview=function(b,e,g,n,t,q,D){e=new mxPrintPreview(b,e,g,n,t,q);e.title=mxResources.get("preview");e.addPageCss=!mxClient.IS_SF;e.printBackgroundImage=!0;e.autoOrigin=D;D=b.background;if(null==D||""==D||D==mxConstants.NONE)D="#ffffff";e.backgroundColor=D;var M=e.getLinkForCellState;e.getLinkForCellState=function(G){return b.getAbsoluteUrl(M.apply(this,arguments))};var S=e.writeHead;e.writeHead=function(G){S.apply(this,arguments);G.writeln('")};return e};PrintDialog.previewEnabled=!0; var PageSetupDialog=function(b){function e(){var l=R;null!=l&&null!=l.originalSrc&&(l=b.createImageForPageLink(l.originalSrc,null));null!=l&&null!=l.src?(J.style.backgroundImage="url("+l.src+")",J.style.display="inline-block"):(J.style.backgroundImage="",J.style.display="none");J.style.backgroundColor="";null!=W&&W!=mxConstants.NONE&&(J.style.backgroundColor=W,J.style.display="inline-block")}var g=b.editor.graph,n=document.createElement("table");n.style.width="100%";n.style.height="100%";var t=document.createElement("tbody"); var q=document.createElement("tr");var D=document.createElement("td");D.style.verticalAlign="top";D.style.fontSize="10pt";mxUtils.write(D,mxResources.get("paperSize")+":");q.appendChild(D);D=document.createElement("td");D.style.verticalAlign="top";D.style.fontSize="10pt";var M=PageSetupDialog.addPageFormatPanel(D,"pagesetupdialog",g.pageFormat);q.appendChild(D);t.appendChild(q);q=document.createElement("tr");D=document.createElement("td");mxUtils.write(D,mxResources.get("gridSize")+":");q.appendChild(D); D=document.createElement("td");D.style.whiteSpace="nowrap";var S=document.createElement("input");S.setAttribute("type","number");S.setAttribute("min","0");S.style.width="40px";S.style.marginLeft="6px";S.value=g.getGridSize();D.appendChild(S);mxEvent.addListener(S,"change",function(){var l=parseInt(S.value);S.value=Math.max(1,isNaN(l)?g.getGridSize():l)});q.appendChild(D);t.appendChild(q);q=document.createElement("tr");D=document.createElement("td");mxUtils.write(D,mxResources.get("background")+":"); @@ -3507,7 +3507,7 @@ B=document.createElement("div");B.style.marginBottom="12px";var Q=PageSetupDialo (k={originalSrc:k.src});this.page.viewState.backgroundImage=k}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 X.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 V=document.createElement("canvas"),U=new Image;U.onload=function(){try{V.getContext("2d").drawImage(U,0,0);var k=V.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=k&&6
')))}catch(k){}Editor.prototype.useCanvasForExport= !1})();(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(e,g,n){n.ui=e.ui;return g};b.afterDecode=function(e,g,n){n.previousColor=n.color;n.previousImage=n.image;n.previousFormat=n.format;null!=n.foldingEnabled&&(n.foldingEnabled=!n.foldingEnabled);null!=n.mathEnabled&&(n.mathEnabled=!n.mathEnabled);null!=n.shadowVisible&&(n.shadowVisible=!n.shadowVisible);return n};mxCodecRegistry.register(b)})(); -(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(e,g,n){n.ui=e.ui;return g};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="22.1.8";EditorUi.compactUi="atlas"!=Editor.currentTheme;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; +(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(e,g,n){n.ui=e.ui;return g};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="22.1.9";EditorUi.compactUi="atlas"!=Editor.currentTheme;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.drawio.com/doc/faq/scratchpad";EditorUi.enableHtmlEditOption=!0;EditorUi.mermaidDiagramTypes="flowchart classDiagram sequenceDiagram stateDiagram mindmap graph erDiagram requirementDiagram journey gantt pie gitGraph".split(" ");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= @@ -3590,8 +3590,8 @@ null!=f&&(f.eltCount+=F.getElementsByTagName("*").length,f.nodeCount+=F.getEleme c.nodeName&&(u^=this.hashValue(c.nodeName,f,l));if(null!=c.attributes){null!=l&&(l.attrCount+=c.attributes.length);for(var z=0;z=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:"22.1.8",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:"22.1.9",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&&2navigator.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|| @@ -1534,13 +1534,13 @@ mxGraphHandler.prototype.addStates=function(a,b){var c=this.graph.view.getState( mxGraphHandler.prototype.snap=function(a){var b=this.scaleGrid?this.graph.view.scale:1;a.x=this.graph.snap(a.x/b)*b;a.y=this.graph.snap(a.y/b)*b;return a};mxGraphHandler.prototype.getDelta=function(a){a=mxUtils.convertPoint(this.graph.container,a.getX(),a.getY());return new mxPoint(a.x-this.first.x-this.graph.panDx,a.y-this.first.y-this.graph.panDy)};mxGraphHandler.prototype.updateHint=function(a){};mxGraphHandler.prototype.removeHint=function(){}; mxGraphHandler.prototype.roundLength=function(a){return Math.round(100*a)/100};mxGraphHandler.prototype.isValidDropTarget=function(a,b){for(b=0;b=this.cellCount&&!this.livePreviewActive&&this.allowLivePreview?this.cloning&&this.livePreviewActive||(this.livePreviewUsed=this.livePreviewActive=!0):this.livePreviewUsed||null!=this.shape||(this.shape=this.createPreviewShape(this.bounds))}; -mxGraphHandler.prototype.mouseMove=function(a,b){a=this.graph;var c=a.tolerance;null==this.first&&this.delayedSelection&&null!=this.cell&&null!=this.mouseDownX&&null!=this.mouseDownY&&(Math.abs(this.mouseDownX-b.getX())>c||Math.abs(this.mouseDownY-b.getY())>c)&&(this.delayedSelection=!1,this.cellWasClicked=!0,this.graph.isCellSelected(this.cell)||mxEvent.isAltDown(b.getEvent())||(this.graph.isToggleEvent(b.getEvent())?a.addSelectionCell(this.cell):this.graph.isAncestorSelected(this.cell)||a.setSelectionCell(this.cell)), -this.start(this.cell,this.mouseDownX,this.mouseDownY,this.getCells(null,a.getSelectionCells().concat(b.getCell()))));var d=null!=this.first?this.getDelta(b):null;if(b.isConsumed()||!a.isMouseDown||null==this.cell||null==d||null==this.bounds||this.suspended)!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||b.isConsumed()||null==b.getState()&&null==b.sourceState||a.isMouseDown||(d=a.getCursorForMouseEvent(b),null==d&&a.isEnabled()&&a.isCellMovable(b.getCell())&&(d=a.getModel().isEdge(b.getCell())? -mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),null!=d&&null!=b.sourceState&&b.sourceState.setCursor(d));else if(mxEvent.isMultiTouchEvent(b.getEvent()))this.reset();else{if(null!=this.shape||this.livePreviewActive||this.cloning||Math.abs(d.x)>c||Math.abs(d.y)>c){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3));c=a.isCloneEvent(b.getEvent())&&a.isCellsCloneable()&&this.isCloneEnabled();var e=a.isGridEnabledEvent(b.getEvent()), -f=b.getCell();f=null!=f&&0>mxUtils.indexOf(this.cells,f)?f:a.getCellAt(b.getGraphX(),b.getGraphY(),null,null,null,mxUtils.bind(this,function(n,p,r){return 0<=mxUtils.indexOf(this.cells,n.cell)}));var g=!0,k=null;this.cloning=c;a.isDropEnabled()&&this.highlightEnabled&&(k=a.getDropTarget(this.cells,b.getEvent(),f,c));var l=a.getView().getState(k),m=!1;null!=l&&(c||this.isValidDropTarget(k,b))?(this.target!=k&&(this.target=k,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),m=!0):(this.target= -null,this.connectOnDrop&&null!=f&&1==this.cells.length&&a.getModel().isVertex(f)&&a.isCellConnectable(f)&&(l=a.getView().getState(f),null!=l&&(f=null==a.getEdgeValidationError(null,this.cell,f)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(f),m=!0)));null!=l&&m?this.highlight.highlight(l):this.highlight.hide();null!=this.guide&&this.useGuidesForEvent(b)?(d=this.guide.move(this.bounds,d,e,c),g=!1):d=a.snapDelta(d,this.bounds,!e,!1,!1);null!=this.guide&&g&& -this.guide.hide();this.isConstrainedEvent(b)&&(Math.abs(d.x)>Math.abs(d.y)?d.y=0:d.x=0);this.checkPreview();if(this.currentDx!=d.x||this.currentDy!=d.y)this.currentDx=d.x,this.currentDy=d.y,this.updatePreview()}this.updateHint(b);this.consumeMouseEvent(mxEvent.MOUSE_MOVE,b);mxEvent.consume(b.getEvent())}};mxGraphHandler.prototype.isConstrainedEvent=function(a){return(null==this.target||this.graph.isCloneEvent(a.getEvent()))&&this.graph.isConstrainedEvent(a.getEvent())}; -mxGraphHandler.prototype.updatePreview=function(a){this.livePreviewUsed&&!a?null!=this.cells&&(this.setHandlesVisibleForCells(this.graph.selectionCellsHandler.getHandledSelectionCells(),!1),this.updateLivePreview(this.currentDx,this.currentDy)):this.updatePreviewShape()}; +mxGraphHandler.prototype.mouseMove=function(a,b){a=this.graph;var c=a.tolerance;if(null==this.first&&this.delayedSelection&&null!=this.cell&&null!=this.mouseDownX&&null!=this.mouseDownY&&(Math.abs(this.mouseDownX-b.getX())>c||Math.abs(this.mouseDownY-b.getY())>c)){this.delayedSelection=!1;this.cellWasClicked=!0;this.graph.isCellSelected(this.cell)||mxEvent.isAltDown(b.getEvent())||(this.graph.isToggleEvent(b.getEvent())?a.addSelectionCell(this.cell):this.graph.isAncestorSelected(this.cell)||a.setSelectionCell(this.cell)); +var d=a.getSelectionCells();this.graph.isToggleEvent(b.getEvent())&&mxEvent.isAltDown(b.getEvent())&&!a.isSelectionEmpty()||(d=d.concat(b.getCell()));this.start(this.cell,this.mouseDownX,this.mouseDownY,this.getCells(null,d))}d=null!=this.first?this.getDelta(b):null;if(b.isConsumed()||!a.isMouseDown||null==this.cell||null==d||null==this.bounds||this.suspended)!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||b.isConsumed()||null==b.getState()&&null==b.sourceState||a.isMouseDown|| +(d=a.getCursorForMouseEvent(b),null==d&&a.isEnabled()&&a.isCellMovable(b.getCell())&&(d=a.getModel().isEdge(b.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),null!=d&&null!=b.sourceState&&b.sourceState.setCursor(d));else if(mxEvent.isMultiTouchEvent(b.getEvent()))this.reset();else{if(null!=this.shape||this.livePreviewActive||this.cloning||Math.abs(d.x)>c||Math.abs(d.y)>c){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR, +3));c=a.isCloneEvent(b.getEvent())&&a.isCellsCloneable()&&this.isCloneEnabled();var e=a.isGridEnabledEvent(b.getEvent()),f=b.getCell();f=null!=f&&0>mxUtils.indexOf(this.cells,f)?f:a.getCellAt(b.getGraphX(),b.getGraphY(),null,null,null,mxUtils.bind(this,function(n,p,r){return 0<=mxUtils.indexOf(this.cells,n.cell)}));var g=!0,k=null;this.cloning=c;a.isDropEnabled()&&this.highlightEnabled&&(k=a.getDropTarget(this.cells,b.getEvent(),f,c));var l=a.getView().getState(k),m=!1;null!=l&&(c||this.isValidDropTarget(k, +b))?(this.target!=k&&(this.target=k,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),m=!0):(this.target=null,this.connectOnDrop&&null!=f&&1==this.cells.length&&a.getModel().isVertex(f)&&a.isCellConnectable(f)&&(l=a.getView().getState(f),null!=l&&(f=null==a.getEdgeValidationError(null,this.cell,f)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(f),m=!0)));null!=l&&m?this.highlight.highlight(l):this.highlight.hide();null!=this.guide&&this.useGuidesForEvent(b)? +(d=this.guide.move(this.bounds,d,e,c),g=!1):d=a.snapDelta(d,this.bounds,!e,!1,!1);null!=this.guide&&g&&this.guide.hide();this.isConstrainedEvent(b)&&(Math.abs(d.x)>Math.abs(d.y)?d.y=0:d.x=0);this.checkPreview();if(this.currentDx!=d.x||this.currentDy!=d.y)this.currentDx=d.x,this.currentDy=d.y,this.updatePreview()}this.updateHint(b);this.consumeMouseEvent(mxEvent.MOUSE_MOVE,b);mxEvent.consume(b.getEvent())}}; +mxGraphHandler.prototype.isConstrainedEvent=function(a){return(null==this.target||this.graph.isCloneEvent(a.getEvent()))&&this.graph.isConstrainedEvent(a.getEvent())};mxGraphHandler.prototype.updatePreview=function(a){this.livePreviewUsed&&!a?null!=this.cells&&(this.setHandlesVisibleForCells(this.graph.selectionCellsHandler.getHandledSelectionCells(),!1),this.updateLivePreview(this.currentDx,this.currentDy)):this.updatePreviewShape()}; mxGraphHandler.prototype.updatePreviewShape=function(){null!=this.shape&&null!=this.pBounds&&(this.shape.bounds=new mxRectangle(Math.round(this.pBounds.x+this.currentDx),Math.round(this.pBounds.y+this.currentDy),this.pBounds.width,this.pBounds.height),this.shape.redraw())}; mxGraphHandler.prototype.updateLivePreview=function(a,b){if(!this.suspended){var c=[];null!=this.allCells&&this.allCells.visit(mxUtils.bind(this,function(n,p){n=this.graph.view.getState(p.cell);n!=p&&(p.destroy(),null!=n?this.allCells.put(p.cell,n):this.allCells.remove(p.cell),p=n);if(null!=p&&(n=p.clone(),c.push([p,n]),null!=p.shape&&(null==p.shape.originalPointerEvents&&(p.shape.originalPointerEvents=p.shape.pointerEvents),p.shape.pointerEvents=!1,null!=p.text&&(null==p.text.originalPointerEvents&& (p.text.originalPointerEvents=p.text.pointerEvents),p.text.pointerEvents=!1)),this.graph.model.isVertex(p.cell))){if(!this.cloning||this.graph.isCellCloneable(p.cell))p.x+=a,p.y+=b;this.cloning?null!=p.text&&(p.text.updateBoundingBox(),null!=p.text.boundingBox&&(p.text.boundingBox.x+=a,p.text.boundingBox.y+=b),null!=p.text.unrotatedBoundingBox&&(p.text.unrotatedBoundingBox.x+=a,p.text.unrotatedBoundingBox.y+=b)):(p.view.graph.cellRenderer.redraw(p,!0),p.view.invalidate(p.cell),p.invalid=!1,null!= @@ -2062,8 +2062,8 @@ M.appendChild(S);mxEvent.addListener(S,"click",function(c){D.checked=!D.checked; function(){G.checked?J.removeAttribute("disabled"):J.setAttribute("disabled","disabled");D.checked=!G.checked});q=q.cloneNode(!1);M=document.createElement("td");mxUtils.write(M,mxResources.get("pageScale")+":");q.appendChild(M);M=document.createElement("td");var R=document.createElement("input");R.setAttribute("value","100 %");R.setAttribute("size","5");R.style.width="50px";M.appendChild(R);q.appendChild(M);t.appendChild(q);q=document.createElement("tr");M=document.createElement("td");M.colSpan=2; M.style.paddingTop="20px";M.setAttribute("align","right");S=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});S.className="geBtn";b.editor.cancelFirst&&M.appendChild(S);if(PrintDialog.previewEnabled){var W=mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();e(!1)});W.className="geBtn";M.appendChild(W)}W=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();e(!0)});W.className="geBtn gePrimaryBtn";M.appendChild(W);b.editor.cancelFirst|| M.appendChild(S);q.appendChild(M);t.appendChild(q);n.appendChild(t);this.container=n};PrintDialog.printPreview=function(b){try{null!=b.wnd&&window.setTimeout(function(){b.wnd.focus();b.wnd.print();b.wnd.close()},500)}catch(e){}}; -PrintDialog.createPrintPreview=function(b,e,g,n,t,q,D){e=new mxPrintPreview(b,e,g,n,t,q);e.title=mxResources.get("preview");e.addPageCss=!mxClient.IS_SF;e.printBackgroundImage=!0;e.autoOrigin=D;b=b.background;if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";e.backgroundColor=b;var M=e.writeHead;e.writeHead=function(S){M.apply(this,arguments);S.writeln('")}; -return e};PrintDialog.previewEnabled=!0; +PrintDialog.createPrintPreview=function(b,e,g,n,t,q,D){e=new mxPrintPreview(b,e,g,n,t,q);e.title=mxResources.get("preview");e.addPageCss=!mxClient.IS_SF;e.printBackgroundImage=!0;e.autoOrigin=D;D=b.background;if(null==D||""==D||D==mxConstants.NONE)D="#ffffff";e.backgroundColor=D;var M=e.getLinkForCellState;e.getLinkForCellState=function(G){return b.getAbsoluteUrl(M.apply(this,arguments))};var S=e.writeHead;e.writeHead=function(G){S.apply(this,arguments);G.writeln('")};return e};PrintDialog.previewEnabled=!0; var PageSetupDialog=function(b){function e(){var l=R;null!=l&&null!=l.originalSrc&&(l=b.createImageForPageLink(l.originalSrc,null));null!=l&&null!=l.src?(J.style.backgroundImage="url("+l.src+")",J.style.display="inline-block"):(J.style.backgroundImage="",J.style.display="none");J.style.backgroundColor="";null!=W&&W!=mxConstants.NONE&&(J.style.backgroundColor=W,J.style.display="inline-block")}var g=b.editor.graph,n=document.createElement("table");n.style.width="100%";n.style.height="100%";var t=document.createElement("tbody"); var q=document.createElement("tr");var D=document.createElement("td");D.style.verticalAlign="top";D.style.fontSize="10pt";mxUtils.write(D,mxResources.get("paperSize")+":");q.appendChild(D);D=document.createElement("td");D.style.verticalAlign="top";D.style.fontSize="10pt";var M=PageSetupDialog.addPageFormatPanel(D,"pagesetupdialog",g.pageFormat);q.appendChild(D);t.appendChild(q);q=document.createElement("tr");D=document.createElement("td");mxUtils.write(D,mxResources.get("gridSize")+":");q.appendChild(D); D=document.createElement("td");D.style.whiteSpace="nowrap";var S=document.createElement("input");S.setAttribute("type","number");S.setAttribute("min","0");S.style.width="40px";S.style.marginLeft="6px";S.value=g.getGridSize();D.appendChild(S);mxEvent.addListener(S,"change",function(){var l=parseInt(S.value);S.value=Math.max(1,isNaN(l)?g.getGridSize():l)});q.appendChild(D);t.appendChild(q);q=document.createElement("tr");D=document.createElement("td");mxUtils.write(D,mxResources.get("background")+":"); @@ -3507,7 +3507,7 @@ B=document.createElement("div");B.style.marginBottom="12px";var Q=PageSetupDialo (k={originalSrc:k.src});this.page.viewState.backgroundImage=k}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 X.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 V=document.createElement("canvas"),U=new Image;U.onload=function(){try{V.getContext("2d").drawImage(U,0,0);var k=V.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=k&&6
')))}catch(k){}Editor.prototype.useCanvasForExport= !1})();(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(e,g,n){n.ui=e.ui;return g};b.afterDecode=function(e,g,n){n.previousColor=n.color;n.previousImage=n.image;n.previousFormat=n.format;null!=n.foldingEnabled&&(n.foldingEnabled=!n.foldingEnabled);null!=n.mathEnabled&&(n.mathEnabled=!n.mathEnabled);null!=n.shadowVisible&&(n.shadowVisible=!n.shadowVisible);return n};mxCodecRegistry.register(b)})(); -(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(e,g,n){n.ui=e.ui;return g};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="22.1.8";EditorUi.compactUi="atlas"!=Editor.currentTheme;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; +(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(e,g,n){n.ui=e.ui;return g};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="22.1.9";EditorUi.compactUi="atlas"!=Editor.currentTheme;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.drawio.com/doc/faq/scratchpad";EditorUi.enableHtmlEditOption=!0;EditorUi.mermaidDiagramTypes="flowchart classDiagram sequenceDiagram stateDiagram mindmap graph erDiagram requirementDiagram journey gantt pie gitGraph".split(" ");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= @@ -3590,8 +3590,8 @@ null!=f&&(f.eltCount+=F.getElementsByTagName("*").length,f.nodeCount+=F.getEleme c.nodeName&&(u^=this.hashValue(c.nodeName,f,l));if(null!=c.attributes){null!=l&&(l.attrCount+=c.attributes.length);for(var z=0;znavigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"), +var mxClient={VERSION:"22.1.9",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&&2navigator.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|| @@ -1420,13 +1420,13 @@ mxGraphHandler.prototype.addStates=function(a,b){var c=this.graph.view.getState( mxGraphHandler.prototype.snap=function(a){var b=this.scaleGrid?this.graph.view.scale:1;a.x=this.graph.snap(a.x/b)*b;a.y=this.graph.snap(a.y/b)*b;return a};mxGraphHandler.prototype.getDelta=function(a){a=mxUtils.convertPoint(this.graph.container,a.getX(),a.getY());return new mxPoint(a.x-this.first.x-this.graph.panDx,a.y-this.first.y-this.graph.panDy)};mxGraphHandler.prototype.updateHint=function(a){};mxGraphHandler.prototype.removeHint=function(){}; mxGraphHandler.prototype.roundLength=function(a){return Math.round(100*a)/100};mxGraphHandler.prototype.isValidDropTarget=function(a,b){for(b=0;b=this.cellCount&&!this.livePreviewActive&&this.allowLivePreview?this.cloning&&this.livePreviewActive||(this.livePreviewUsed=this.livePreviewActive=!0):this.livePreviewUsed||null!=this.shape||(this.shape=this.createPreviewShape(this.bounds))}; -mxGraphHandler.prototype.mouseMove=function(a,b){a=this.graph;var c=a.tolerance;null==this.first&&this.delayedSelection&&null!=this.cell&&null!=this.mouseDownX&&null!=this.mouseDownY&&(Math.abs(this.mouseDownX-b.getX())>c||Math.abs(this.mouseDownY-b.getY())>c)&&(this.delayedSelection=!1,this.cellWasClicked=!0,this.graph.isCellSelected(this.cell)||mxEvent.isAltDown(b.getEvent())||(this.graph.isToggleEvent(b.getEvent())?a.addSelectionCell(this.cell):this.graph.isAncestorSelected(this.cell)||a.setSelectionCell(this.cell)), -this.start(this.cell,this.mouseDownX,this.mouseDownY,this.getCells(null,a.getSelectionCells().concat(b.getCell()))));var d=null!=this.first?this.getDelta(b):null;if(b.isConsumed()||!a.isMouseDown||null==this.cell||null==d||null==this.bounds||this.suspended)!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||b.isConsumed()||null==b.getState()&&null==b.sourceState||a.isMouseDown||(d=a.getCursorForMouseEvent(b),null==d&&a.isEnabled()&&a.isCellMovable(b.getCell())&&(d=a.getModel().isEdge(b.getCell())? -mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),null!=d&&null!=b.sourceState&&b.sourceState.setCursor(d));else if(mxEvent.isMultiTouchEvent(b.getEvent()))this.reset();else{if(null!=this.shape||this.livePreviewActive||this.cloning||Math.abs(d.x)>c||Math.abs(d.y)>c){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3));c=a.isCloneEvent(b.getEvent())&&a.isCellsCloneable()&&this.isCloneEnabled();var e=a.isGridEnabledEvent(b.getEvent()), -f=b.getCell();f=null!=f&&0>mxUtils.indexOf(this.cells,f)?f:a.getCellAt(b.getGraphX(),b.getGraphY(),null,null,null,mxUtils.bind(this,function(n,p,q){return 0<=mxUtils.indexOf(this.cells,n.cell)}));var g=!0,k=null;this.cloning=c;a.isDropEnabled()&&this.highlightEnabled&&(k=a.getDropTarget(this.cells,b.getEvent(),f,c));var l=a.getView().getState(k),m=!1;null!=l&&(c||this.isValidDropTarget(k,b))?(this.target!=k&&(this.target=k,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),m=!0):(this.target= -null,this.connectOnDrop&&null!=f&&1==this.cells.length&&a.getModel().isVertex(f)&&a.isCellConnectable(f)&&(l=a.getView().getState(f),null!=l&&(f=null==a.getEdgeValidationError(null,this.cell,f)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(f),m=!0)));null!=l&&m?this.highlight.highlight(l):this.highlight.hide();null!=this.guide&&this.useGuidesForEvent(b)?(d=this.guide.move(this.bounds,d,e,c),g=!1):d=a.snapDelta(d,this.bounds,!e,!1,!1);null!=this.guide&&g&& -this.guide.hide();this.isConstrainedEvent(b)&&(Math.abs(d.x)>Math.abs(d.y)?d.y=0:d.x=0);this.checkPreview();if(this.currentDx!=d.x||this.currentDy!=d.y)this.currentDx=d.x,this.currentDy=d.y,this.updatePreview()}this.updateHint(b);this.consumeMouseEvent(mxEvent.MOUSE_MOVE,b);mxEvent.consume(b.getEvent())}};mxGraphHandler.prototype.isConstrainedEvent=function(a){return(null==this.target||this.graph.isCloneEvent(a.getEvent()))&&this.graph.isConstrainedEvent(a.getEvent())}; -mxGraphHandler.prototype.updatePreview=function(a){this.livePreviewUsed&&!a?null!=this.cells&&(this.setHandlesVisibleForCells(this.graph.selectionCellsHandler.getHandledSelectionCells(),!1),this.updateLivePreview(this.currentDx,this.currentDy)):this.updatePreviewShape()}; +mxGraphHandler.prototype.mouseMove=function(a,b){a=this.graph;var c=a.tolerance;if(null==this.first&&this.delayedSelection&&null!=this.cell&&null!=this.mouseDownX&&null!=this.mouseDownY&&(Math.abs(this.mouseDownX-b.getX())>c||Math.abs(this.mouseDownY-b.getY())>c)){this.delayedSelection=!1;this.cellWasClicked=!0;this.graph.isCellSelected(this.cell)||mxEvent.isAltDown(b.getEvent())||(this.graph.isToggleEvent(b.getEvent())?a.addSelectionCell(this.cell):this.graph.isAncestorSelected(this.cell)||a.setSelectionCell(this.cell)); +var d=a.getSelectionCells();this.graph.isToggleEvent(b.getEvent())&&mxEvent.isAltDown(b.getEvent())&&!a.isSelectionEmpty()||(d=d.concat(b.getCell()));this.start(this.cell,this.mouseDownX,this.mouseDownY,this.getCells(null,d))}d=null!=this.first?this.getDelta(b):null;if(b.isConsumed()||!a.isMouseDown||null==this.cell||null==d||null==this.bounds||this.suspended)!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||b.isConsumed()||null==b.getState()&&null==b.sourceState||a.isMouseDown|| +(d=a.getCursorForMouseEvent(b),null==d&&a.isEnabled()&&a.isCellMovable(b.getCell())&&(d=a.getModel().isEdge(b.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),null!=d&&null!=b.sourceState&&b.sourceState.setCursor(d));else if(mxEvent.isMultiTouchEvent(b.getEvent()))this.reset();else{if(null!=this.shape||this.livePreviewActive||this.cloning||Math.abs(d.x)>c||Math.abs(d.y)>c){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR, +3));c=a.isCloneEvent(b.getEvent())&&a.isCellsCloneable()&&this.isCloneEnabled();var e=a.isGridEnabledEvent(b.getEvent()),f=b.getCell();f=null!=f&&0>mxUtils.indexOf(this.cells,f)?f:a.getCellAt(b.getGraphX(),b.getGraphY(),null,null,null,mxUtils.bind(this,function(n,p,q){return 0<=mxUtils.indexOf(this.cells,n.cell)}));var g=!0,k=null;this.cloning=c;a.isDropEnabled()&&this.highlightEnabled&&(k=a.getDropTarget(this.cells,b.getEvent(),f,c));var l=a.getView().getState(k),m=!1;null!=l&&(c||this.isValidDropTarget(k, +b))?(this.target!=k&&(this.target=k,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),m=!0):(this.target=null,this.connectOnDrop&&null!=f&&1==this.cells.length&&a.getModel().isVertex(f)&&a.isCellConnectable(f)&&(l=a.getView().getState(f),null!=l&&(f=null==a.getEdgeValidationError(null,this.cell,f)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(f),m=!0)));null!=l&&m?this.highlight.highlight(l):this.highlight.hide();null!=this.guide&&this.useGuidesForEvent(b)? +(d=this.guide.move(this.bounds,d,e,c),g=!1):d=a.snapDelta(d,this.bounds,!e,!1,!1);null!=this.guide&&g&&this.guide.hide();this.isConstrainedEvent(b)&&(Math.abs(d.x)>Math.abs(d.y)?d.y=0:d.x=0);this.checkPreview();if(this.currentDx!=d.x||this.currentDy!=d.y)this.currentDx=d.x,this.currentDy=d.y,this.updatePreview()}this.updateHint(b);this.consumeMouseEvent(mxEvent.MOUSE_MOVE,b);mxEvent.consume(b.getEvent())}}; +mxGraphHandler.prototype.isConstrainedEvent=function(a){return(null==this.target||this.graph.isCloneEvent(a.getEvent()))&&this.graph.isConstrainedEvent(a.getEvent())};mxGraphHandler.prototype.updatePreview=function(a){this.livePreviewUsed&&!a?null!=this.cells&&(this.setHandlesVisibleForCells(this.graph.selectionCellsHandler.getHandledSelectionCells(),!1),this.updateLivePreview(this.currentDx,this.currentDy)):this.updatePreviewShape()}; mxGraphHandler.prototype.updatePreviewShape=function(){null!=this.shape&&null!=this.pBounds&&(this.shape.bounds=new mxRectangle(Math.round(this.pBounds.x+this.currentDx),Math.round(this.pBounds.y+this.currentDy),this.pBounds.width,this.pBounds.height),this.shape.redraw())}; mxGraphHandler.prototype.updateLivePreview=function(a,b){if(!this.suspended){var c=[];null!=this.allCells&&this.allCells.visit(mxUtils.bind(this,function(n,p){n=this.graph.view.getState(p.cell);n!=p&&(p.destroy(),null!=n?this.allCells.put(p.cell,n):this.allCells.remove(p.cell),p=n);if(null!=p&&(n=p.clone(),c.push([p,n]),null!=p.shape&&(null==p.shape.originalPointerEvents&&(p.shape.originalPointerEvents=p.shape.pointerEvents),p.shape.pointerEvents=!1,null!=p.text&&(null==p.text.originalPointerEvents&& (p.text.originalPointerEvents=p.text.pointerEvents),p.text.pointerEvents=!1)),this.graph.model.isVertex(p.cell))){if(!this.cloning||this.graph.isCellCloneable(p.cell))p.x+=a,p.y+=b;this.cloning?null!=p.text&&(p.text.updateBoundingBox(),null!=p.text.boundingBox&&(p.text.boundingBox.x+=a,p.text.boundingBox.y+=b),null!=p.text.unrotatedBoundingBox&&(p.text.unrotatedBoundingBox.x+=a,p.text.unrotatedBoundingBox.y+=b)):(p.view.graph.cellRenderer.redraw(p,!0),p.view.invalidate(p.cell),p.invalid=!1,null!= diff --git a/src/main/webapp/service-worker.js b/src/main/webapp/service-worker.js index d5ed7c530..eda6c07f7 100644 --- a/src/main/webapp/service-worker.js +++ b/src/main/webapp/service-worker.js @@ -1,2 +1,2 @@ -if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let r=Promise.resolve();return i[e]||(r=new Promise((async r=>{if("document"in self){const i=document.createElement("script");i.src=e,document.head.appendChild(i),i.onload=r}else importScripts(e),r()}))),r.then((()=>{if(!i[e])throw new Error(`Module ${e} didn’t register its module`);return i[e]}))},r=(r,i)=>{Promise.all(r.map(e)).then((e=>i(1===e.length?e[0]:e)))},i={require:Promise.resolve(r)};self.define=(r,a,s)=>{i[r]||(i[r]=Promise.resolve().then((()=>{let i={};const c={uri:location.origin+r.slice(1)};return Promise.all(a.map((r=>{switch(r){case"exports":return i;case"module":return c;default:return e(r)}}))).then((e=>{const r=s(...e);return i.default||(i.default=r),i}))})))}}define("./service-worker.js",["./workbox-99ba3a23"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"js/extensions.min.js",revision:"3aca39653b85adf6b89ee4576e212b88"},{url:"js/orgchart.min.js",revision:"619d8c4dab47b81868916df31f55478b"},{url:"js/stencils.min.js",revision:"b432f355608dbebf8c863dd0939baa27"},{url:"js/shapes-14-6-5.min.js",revision:"7ecb62c7c11f3ac8cabd8d5dfb612d17"},{url:"js/math-print.js",revision:"cf64f6a493a8cb5079f2b70813e478d7"},{url:"index.html",revision:"b1216d112fc58d95498162c738503924"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/fonts/ArchitectsDaughter-Regular.ttf",revision:"31c2153c0530e32553b31a49b3d70736"},{url:"styles/grapheditor.css",revision:"101d081327ca193cb95acf293a5830fb"},{url:"styles/atlas.css",revision:"d627cfef208f13a9cff1670f143c6348"},{url:"styles/dark.css",revision:"fd2878ff29a6b68cb8dbfab17e32d649"},{url:"js/dropbox/Dropbox-sdk.min.js",revision:"4b9842892aa37b156db0a8364b7a83b0"},{url:"js/onedrive/OneDrive.js",revision:"505e8280346666f7ee801bc59521fa67"},{url:"js/viewer-static.min.js",revision:"e1203fa3ee69b9ab237b09ddb240ae75"},{url:"connect/jira/editor-1-3-3.html",revision:"a583c5c1dac9945f6f4087c880e26854"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"801fc4ef821f5a3986902998da85b53a"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"b20590b5ba995880eb6778e092a3fd50"},{url:"connect/jira/viewerPanel.js",revision:"b70ea4d572fe9d07867d955c408f5c27"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"a109a49b6c8f23095fbc1a2a88912d3b"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"94804f65483a6e7eb51dee97d0ae9d88"},{url:"connect/jira/fullscreen-viewer.js",revision:"8eceb2fe587296dd11f9c8f6eae34c20"},{url:"plugins/connectJira.js",revision:"4cefa13414e0d406550f3c073923080c"},{url:"plugins/cConf-comments.js",revision:"ee6764429bf47a8545aa1cedacee718e"},{url:"plugins/cConf-1-4-8.js",revision:"37a91b273d37d153949396832a6ef1c1"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"17120161d4c7d9e0fc3d9a88d77e0c05"},{url:"connect/new_common/cac.js",revision:"cf63bf9103bafb9f34cf3ff624b918e8"},{url:"connect/gdrive_common/gac.js",revision:"78f85e79f15f56b8b8d83c90f4a15679"},{url:"connect/onedrive_common/ac.js",revision:"d10d4603e86da7c9af277dac832e8e06"},{url:"connect/confluence/viewer-init.js",revision:"84b1f6758f3c1a723b019c58af377027"},{url:"connect/confluence/viewer.js",revision:"7683c80e847cf40da45d18573689c8c8"},{url:"connect/confluence/viewer-1-4-42.html",revision:"4a9a11f6de154cbd7a2df9e45790daf1"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"b2908e71f755a069fe6487e1e705736c"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"90d1612e10c3ed94f3b355fbaf262a95"},{url:"connect/confluence/includeDiagram.html",revision:"4df629a5bfba840368ab8185ce27f439"},{url:"connect/confluence/macro-editor.js",revision:"51e513c65251b215aa78420c84623a18"},{url:"math/es5/startup.js",revision:"dc7130cdc866593293dbb5dde11ceb40"},{url:"math/es5/core.js",revision:"f71bc0bfb7d2ac8261747f97a5d47dd4"},{url:"math/es5/ui/safe.js",revision:"8c1fcfee7c879588ad409edcdd9cce53"},{url:"math/es5/output/svg.js",revision:"4f55967d16197ebb01b86356d8ab179a"},{url:"math/es5/input/tex.js",revision:"5c4f470da2ccb1acf85041fcecd6fff6"},{url:"math/es5/input/asciimath.js",revision:"c2d4076dd8e26d509bfe3a378e71cfa7"},{url:"math/es5/output/svg/fonts/tex.js",revision:"6eab785a3788ea805bd2b552d1f0aab8"},{url:"resources/dia.txt",revision:"29890105c83d58c13843e68f15271dfc"},{url:"resources/dia_am.txt",revision:"c636d5964ab4621522dfea68acd4a68d"},{url:"resources/dia_ar.txt",revision:"65c4b7e8b52e84659e4e3fe3f7db958c"},{url:"resources/dia_bg.txt",revision:"6e868956119d48c22ad86e8e0dce8f68"},{url:"resources/dia_bn.txt",revision:"16343274a4715ff50529e314a5e5f966"},{url:"resources/dia_bs.txt",revision:"9a99258bdba82a2eb47aa0065a0d1ad5"},{url:"resources/dia_ca.txt",revision:"073e904b7cc3c97b18c13c2e1a6e5363"},{url:"resources/dia_cs.txt",revision:"51cd60718129e4941babd979f1dd8ecf"},{url:"resources/dia_da.txt",revision:"4b4e0c63862e441d82e38a031755f2a9"},{url:"resources/dia_de.txt",revision:"435be8e0acbb03bfe5b6ccaa5c9cee67"},{url:"resources/dia_el.txt",revision:"f1430dba10d39dfaf7eb20db00358fee"},{url:"resources/dia_eo.txt",revision:"fa1cf8a92abc82c2b185dfe344ebb588"},{url:"resources/dia_es.txt",revision:"876bef0a865fbc902de6fbeefad61408"},{url:"resources/dia_et.txt",revision:"b4323339fb2b0d29e39ee8710ee018ae"},{url:"resources/dia_eu.txt",revision:"d53713238017532ecef066af1e98daa8"},{url:"resources/dia_fa.txt",revision:"874f2450672da0fed9ec561978c82af5"},{url:"resources/dia_fi.txt",revision:"f2db2aaa0aaf5a125f822bc57c08f7d2"},{url:"resources/dia_fil.txt",revision:"a2417229e51a4dd3e39baaa6a7a219de"},{url:"resources/dia_fr.txt",revision:"b28708e736dcc0de3f2c853d47382572"},{url:"resources/dia_gl.txt",revision:"5f0906a5ae4512304d46501672a2cd61"},{url:"resources/dia_gu.txt",revision:"b599b351182af04529c5affa12fae6a6"},{url:"resources/dia_he.txt",revision:"087ca9dd9d5f72f1e62063a740ddf01e"},{url:"resources/dia_hi.txt",revision:"a2b20ba304651e3690f8aeeccb8e223a"},{url:"resources/dia_hr.txt",revision:"b1655badb464f232377e129d6e166215"},{url:"resources/dia_hu.txt",revision:"dc12bef94b8b723ef1a5e83733a79b8b"},{url:"resources/dia_id.txt",revision:"0a10aa0254692499299f7c8570bdcf1c"},{url:"resources/dia_it.txt",revision:"52e75868e6a6b1435dda79b64d7e7040"},{url:"resources/dia_ja.txt",revision:"1577f961b0ea227e6791df43f4d7d8b4"},{url:"resources/dia_kn.txt",revision:"43f72ebb706547d9c718141067ef3d7f"},{url:"resources/dia_ko.txt",revision:"c9f46176ef79ba01eafb91c87c9e124c"},{url:"resources/dia_lt.txt",revision:"165ab29b6a91e27921f493c32d79e57c"},{url:"resources/dia_lv.txt",revision:"a2ebddacbdc3f21cd6600636e0d0fda0"},{url:"resources/dia_ml.txt",revision:"d2be513fdba7b13f100de42961fdc963"},{url:"resources/dia_mr.txt",revision:"631f4009e057c21d5a7bb2f6736948fc"},{url:"resources/dia_ms.txt",revision:"15592b8263a138aaf02ee27f4b3e3407"},{url:"resources/dia_my.txt",revision:"29890105c83d58c13843e68f15271dfc"},{url:"resources/dia_nl.txt",revision:"49a2b8105c2d588352fa8d212f20269e"},{url:"resources/dia_no.txt",revision:"11913691adeb6214533a5f3fd152955e"},{url:"resources/dia_pl.txt",revision:"5486b5c076fee16d6cff20557d61762a"},{url:"resources/dia_pt-br.txt",revision:"b531e14c0a653a174ea088658ff467c4"},{url:"resources/dia_pt.txt",revision:"4e094a6c5fa7093137c49b9368161c9b"},{url:"resources/dia_ro.txt",revision:"3f2b2235836a9fe15250267e04e760ea"},{url:"resources/dia_ru.txt",revision:"891101011a7cccfb3e285aae39568581"},{url:"resources/dia_si.txt",revision:"29890105c83d58c13843e68f15271dfc"},{url:"resources/dia_sk.txt",revision:"80f6512977710887f7f3a0746eab2e44"},{url:"resources/dia_sl.txt",revision:"d6096e4fcbf8318429a60f3c2bba216b"},{url:"resources/dia_sr.txt",revision:"731df4e2759db26649a542a7b7c46661"},{url:"resources/dia_sv.txt",revision:"7d50cd089abb70eb12d7a32a9a7ae71e"},{url:"resources/dia_sw.txt",revision:"ea61261f00f66cc38fee75e746638744"},{url:"resources/dia_ta.txt",revision:"4ade8513dbd833c6196abe09a8c69c96"},{url:"resources/dia_te.txt",revision:"b771a88b3f5688cd6024680cd9e1b4a4"},{url:"resources/dia_th.txt",revision:"c2c77ee7cc5fb5bab237565ce34b1228"},{url:"resources/dia_tr.txt",revision:"4cc686f2985f1cc744d1db1b63f2fb69"},{url:"resources/dia_uk.txt",revision:"8d40eb8453fd4d8d2792d782795b42fd"},{url:"resources/dia_vi.txt",revision:"3d75a41cf52d1779fe93e5f2d1f675ab"},{url:"resources/dia_zh-tw.txt",revision:"fab8607b49111ed2923de1a5215cce27"},{url:"resources/dia_zh.txt",revision:"f9629c173432c7b448b5a37893d102d6"},{url:"favicon.ico",revision:"fab2d88b37c72d83607527573de45281"},{url:"images/manifest.json",revision:"389fa448cb99794bece27ffcb216abee"},{url:"images/logo.png",revision:"89630b64b911ebe0daa3dfe442087cfa"},{url:"images/drawlogo.svg",revision:"4bf4d14ebcf072d8bd4c5a1c89e88fc6"},{url:"images/drawlogo48.png",revision:"8b13428373aca67b895364d025f42417"},{url:"images/drawlogo-gray.svg",revision:"0aabacbc0873816e1e09e4736ae44c7d"},{url:"images/drawlogo-text-bottom.svg",revision:"f6c438823ab31f290940bd4feb8dd9c2"},{url:"images/default-user.jpg",revision:"2c399696a87c8921f12d2f9e1990cc6e"},{url:"images/logo-flat-small.png",revision:"4b178e59ff499d6dd1894fc498b59877"},{url:"images/apple-touch-icon.png",revision:"73da7989a23ce9a4be565ec65658a239"},{url:"images/favicon-16x16.png",revision:"1a79d5461a5d2bf21f6652e0ac20d6e5"},{url:"images/favicon-32x32.png",revision:"e3b92da2febe70bad5372f6f3474b034"},{url:"images/android-chrome-196x196.png",revision:"f8c045b2d7b1c719fda64edab04c415c"},{url:"images/android-chrome-512x512.png",revision:"959b5fac2453963ff6d60fb85e4b73fd"},{url:"images/delete.png",revision:"5f2350f2fd20f1a229637aed32ed8f29"},{url:"images/droptarget.png",revision:"bbf7f563fb6784de1ce96f329519b043"},{url:"images/help.png",revision:"9266c6c3915bd33c243d80037d37bf61"},{url:"images/download.png",revision:"35418dd7bd48d87502c71b578cc6c37f"},{url:"images/logo-flat.png",revision:"038070ab43aee6e54a791211859fc67b"},{url:"images/google-drive-logo.svg",revision:"5d9f2f5bbc7dcc252730a0072bb23059"},{url:"images/onedrive-logo.svg",revision:"3645b344ec0634c1290dd58d7dc87b97"},{url:"images/dropbox-logo.svg",revision:"e6be408c77cf9c82d41ac64fa854280a"},{url:"images/github-logo.svg",revision:"a1a999b69a275eac0cb918360ac05ae1"},{url:"images/gitlab-logo.svg",revision:"0faea8c818899e58533e153c44b10517"},{url:"images/trello-logo.svg",revision:"006fd0d7d70d7e95dc691674cb12e044"},{url:"images/osa_drive-harddisk.png",revision:"b954e1ae772087c5b4c6ae797e1f9649"},{url:"images/osa_database.png",revision:"c350d9d9b95f37b6cfe798b40ede5fb0"},{url:"images/google-drive-logo-white.svg",revision:"f329d8b1be7778515a85b93fc35d9f26"},{url:"images/dropbox-logo-white.svg",revision:"4ea8299ac3bc31a16f199ee3aec223bf"},{url:"images/onedrive-logo-white.svg",revision:"b3602fa0fc947009cff3f33a581cff4d"},{url:"images/github-logo-white.svg",revision:"537b1127b3ca0f95b45782d1304fb77a"},{url:"images/gitlab-logo-white.svg",revision:"5fede9ac2f394c716b8c23e3fddc3910"},{url:"images/trello-logo-white-orange.svg",revision:"e2a0a52ba3766682f138138d10a75eb5"},{url:"images/logo-confluence.png",revision:"ed1e55d44ae5eba8f999aba2c93e8331"},{url:"images/logo-jira.png",revision:"f8d460555a0d1f87cfd901e940666629"},{url:"images/clear.gif",revision:"db13c778e4382e0b55258d0f811d5d70"},{url:"images/spin.gif",revision:"487cbb40b9ced439aa1ad914e816d773"},{url:"images/checkmark.gif",revision:"ba764ce62f2bf952df5bbc2bb4d381c5"},{url:"images/hs.png",revision:"fefa1a03d92ebad25c88dca94a0b63db"},{url:"images/aui-wait.gif",revision:"5a474bcbd8d2f2826f03d10ea44bf60e"},{url:"mxgraph/css/common.css",revision:"618b42f0bde0c7685e04811c25dc2b3e"},{url:"mxgraph/images/expanded.gif",revision:"2b67c2c035af1e9a5cc814f0d22074cf"},{url:"mxgraph/images/collapsed.gif",revision:"73cc826da002a3d740ca4ce6ec5c1f4a"},{url:"mxgraph/images/maximize.gif",revision:"5cd13d6925493ab51e876694cc1c2ec2"},{url:"mxgraph/images/minimize.gif",revision:"8957741b9b0f86af9438775f2aadbb54"},{url:"mxgraph/images/close.gif",revision:"8b84669812ac7382984fca35de8da48b"},{url:"mxgraph/images/resize.gif",revision:"a6477612b3567a34033f9cac6184eed3"},{url:"mxgraph/images/separator.gif",revision:"7819742ff106c97da7a801c2372bbbe5"},{url:"mxgraph/images/window.gif",revision:"fd9a21dd4181f98052a202a0a01f18ab"},{url:"mxgraph/images/window-title.gif",revision:"3fb1d6c43246cdf991a11dfe826dfe99"},{url:"mxgraph/images/button.gif",revision:"00759bdc3ad218fa739f584369541809"},{url:"mxgraph/images/point.gif",revision:"83a43717b284902442620f61bc4e9fa6"}],{ignoreURLParametersMatching:[/.*/]})})); +if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let r=Promise.resolve();return i[e]||(r=new Promise((async r=>{if("document"in self){const i=document.createElement("script");i.src=e,document.head.appendChild(i),i.onload=r}else importScripts(e),r()}))),r.then((()=>{if(!i[e])throw new Error(`Module ${e} didn’t register its module`);return i[e]}))},r=(r,i)=>{Promise.all(r.map(e)).then((e=>i(1===e.length?e[0]:e)))},i={require:Promise.resolve(r)};self.define=(r,a,s)=>{i[r]||(i[r]=Promise.resolve().then((()=>{let i={};const c={uri:location.origin+r.slice(1)};return Promise.all(a.map((r=>{switch(r){case"exports":return i;case"module":return c;default:return e(r)}}))).then((e=>{const r=s(...e);return i.default||(i.default=r),i}))})))}}define("./service-worker.js",["./workbox-99ba3a23"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"js/extensions.min.js",revision:"3aca39653b85adf6b89ee4576e212b88"},{url:"js/orgchart.min.js",revision:"619d8c4dab47b81868916df31f55478b"},{url:"js/stencils.min.js",revision:"30af10a1549a1ec15ba4a36bb37e6971"},{url:"js/shapes-14-6-5.min.js",revision:"7ecb62c7c11f3ac8cabd8d5dfb612d17"},{url:"js/math-print.js",revision:"cf64f6a493a8cb5079f2b70813e478d7"},{url:"index.html",revision:"b1216d112fc58d95498162c738503924"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/fonts/ArchitectsDaughter-Regular.ttf",revision:"31c2153c0530e32553b31a49b3d70736"},{url:"styles/grapheditor.css",revision:"101d081327ca193cb95acf293a5830fb"},{url:"styles/atlas.css",revision:"d627cfef208f13a9cff1670f143c6348"},{url:"styles/dark.css",revision:"fd2878ff29a6b68cb8dbfab17e32d649"},{url:"js/dropbox/Dropbox-sdk.min.js",revision:"4b9842892aa37b156db0a8364b7a83b0"},{url:"js/onedrive/OneDrive.js",revision:"505e8280346666f7ee801bc59521fa67"},{url:"js/viewer-static.min.js",revision:"6c86e710452669398bd68d9fc4064b08"},{url:"connect/jira/editor-1-3-3.html",revision:"a583c5c1dac9945f6f4087c880e26854"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"801fc4ef821f5a3986902998da85b53a"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"b20590b5ba995880eb6778e092a3fd50"},{url:"connect/jira/viewerPanel.js",revision:"b70ea4d572fe9d07867d955c408f5c27"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"a109a49b6c8f23095fbc1a2a88912d3b"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"94804f65483a6e7eb51dee97d0ae9d88"},{url:"connect/jira/fullscreen-viewer.js",revision:"8eceb2fe587296dd11f9c8f6eae34c20"},{url:"plugins/connectJira.js",revision:"4cefa13414e0d406550f3c073923080c"},{url:"plugins/cConf-comments.js",revision:"ee6764429bf47a8545aa1cedacee718e"},{url:"plugins/cConf-1-4-8.js",revision:"37a91b273d37d153949396832a6ef1c1"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"17120161d4c7d9e0fc3d9a88d77e0c05"},{url:"connect/new_common/cac.js",revision:"cf63bf9103bafb9f34cf3ff624b918e8"},{url:"connect/gdrive_common/gac.js",revision:"78f85e79f15f56b8b8d83c90f4a15679"},{url:"connect/onedrive_common/ac.js",revision:"d10d4603e86da7c9af277dac832e8e06"},{url:"connect/confluence/viewer-init.js",revision:"84b1f6758f3c1a723b019c58af377027"},{url:"connect/confluence/viewer.js",revision:"7683c80e847cf40da45d18573689c8c8"},{url:"connect/confluence/viewer-1-4-42.html",revision:"4a9a11f6de154cbd7a2df9e45790daf1"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"b2908e71f755a069fe6487e1e705736c"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"90d1612e10c3ed94f3b355fbaf262a95"},{url:"connect/confluence/includeDiagram.html",revision:"4df629a5bfba840368ab8185ce27f439"},{url:"connect/confluence/macro-editor.js",revision:"51e513c65251b215aa78420c84623a18"},{url:"math/es5/startup.js",revision:"dc7130cdc866593293dbb5dde11ceb40"},{url:"math/es5/core.js",revision:"f71bc0bfb7d2ac8261747f97a5d47dd4"},{url:"math/es5/ui/safe.js",revision:"8c1fcfee7c879588ad409edcdd9cce53"},{url:"math/es5/output/svg.js",revision:"4f55967d16197ebb01b86356d8ab179a"},{url:"math/es5/input/tex.js",revision:"5c4f470da2ccb1acf85041fcecd6fff6"},{url:"math/es5/input/asciimath.js",revision:"c2d4076dd8e26d509bfe3a378e71cfa7"},{url:"math/es5/output/svg/fonts/tex.js",revision:"6eab785a3788ea805bd2b552d1f0aab8"},{url:"resources/dia.txt",revision:"29890105c83d58c13843e68f15271dfc"},{url:"resources/dia_am.txt",revision:"c636d5964ab4621522dfea68acd4a68d"},{url:"resources/dia_ar.txt",revision:"65c4b7e8b52e84659e4e3fe3f7db958c"},{url:"resources/dia_bg.txt",revision:"6e868956119d48c22ad86e8e0dce8f68"},{url:"resources/dia_bn.txt",revision:"16343274a4715ff50529e314a5e5f966"},{url:"resources/dia_bs.txt",revision:"9a99258bdba82a2eb47aa0065a0d1ad5"},{url:"resources/dia_ca.txt",revision:"073e904b7cc3c97b18c13c2e1a6e5363"},{url:"resources/dia_cs.txt",revision:"51cd60718129e4941babd979f1dd8ecf"},{url:"resources/dia_da.txt",revision:"4b4e0c63862e441d82e38a031755f2a9"},{url:"resources/dia_de.txt",revision:"435be8e0acbb03bfe5b6ccaa5c9cee67"},{url:"resources/dia_el.txt",revision:"f1430dba10d39dfaf7eb20db00358fee"},{url:"resources/dia_eo.txt",revision:"fa1cf8a92abc82c2b185dfe344ebb588"},{url:"resources/dia_es.txt",revision:"876bef0a865fbc902de6fbeefad61408"},{url:"resources/dia_et.txt",revision:"b4323339fb2b0d29e39ee8710ee018ae"},{url:"resources/dia_eu.txt",revision:"d53713238017532ecef066af1e98daa8"},{url:"resources/dia_fa.txt",revision:"874f2450672da0fed9ec561978c82af5"},{url:"resources/dia_fi.txt",revision:"f2db2aaa0aaf5a125f822bc57c08f7d2"},{url:"resources/dia_fil.txt",revision:"a2417229e51a4dd3e39baaa6a7a219de"},{url:"resources/dia_fr.txt",revision:"b28708e736dcc0de3f2c853d47382572"},{url:"resources/dia_gl.txt",revision:"5f0906a5ae4512304d46501672a2cd61"},{url:"resources/dia_gu.txt",revision:"b599b351182af04529c5affa12fae6a6"},{url:"resources/dia_he.txt",revision:"087ca9dd9d5f72f1e62063a740ddf01e"},{url:"resources/dia_hi.txt",revision:"a2b20ba304651e3690f8aeeccb8e223a"},{url:"resources/dia_hr.txt",revision:"b1655badb464f232377e129d6e166215"},{url:"resources/dia_hu.txt",revision:"dc12bef94b8b723ef1a5e83733a79b8b"},{url:"resources/dia_id.txt",revision:"0a10aa0254692499299f7c8570bdcf1c"},{url:"resources/dia_it.txt",revision:"52e75868e6a6b1435dda79b64d7e7040"},{url:"resources/dia_ja.txt",revision:"1577f961b0ea227e6791df43f4d7d8b4"},{url:"resources/dia_kn.txt",revision:"43f72ebb706547d9c718141067ef3d7f"},{url:"resources/dia_ko.txt",revision:"c9f46176ef79ba01eafb91c87c9e124c"},{url:"resources/dia_lt.txt",revision:"165ab29b6a91e27921f493c32d79e57c"},{url:"resources/dia_lv.txt",revision:"a2ebddacbdc3f21cd6600636e0d0fda0"},{url:"resources/dia_ml.txt",revision:"d2be513fdba7b13f100de42961fdc963"},{url:"resources/dia_mr.txt",revision:"631f4009e057c21d5a7bb2f6736948fc"},{url:"resources/dia_ms.txt",revision:"15592b8263a138aaf02ee27f4b3e3407"},{url:"resources/dia_my.txt",revision:"29890105c83d58c13843e68f15271dfc"},{url:"resources/dia_nl.txt",revision:"49a2b8105c2d588352fa8d212f20269e"},{url:"resources/dia_no.txt",revision:"11913691adeb6214533a5f3fd152955e"},{url:"resources/dia_pl.txt",revision:"5486b5c076fee16d6cff20557d61762a"},{url:"resources/dia_pt-br.txt",revision:"b531e14c0a653a174ea088658ff467c4"},{url:"resources/dia_pt.txt",revision:"4e094a6c5fa7093137c49b9368161c9b"},{url:"resources/dia_ro.txt",revision:"3f2b2235836a9fe15250267e04e760ea"},{url:"resources/dia_ru.txt",revision:"891101011a7cccfb3e285aae39568581"},{url:"resources/dia_si.txt",revision:"29890105c83d58c13843e68f15271dfc"},{url:"resources/dia_sk.txt",revision:"80f6512977710887f7f3a0746eab2e44"},{url:"resources/dia_sl.txt",revision:"d6096e4fcbf8318429a60f3c2bba216b"},{url:"resources/dia_sr.txt",revision:"731df4e2759db26649a542a7b7c46661"},{url:"resources/dia_sv.txt",revision:"7d50cd089abb70eb12d7a32a9a7ae71e"},{url:"resources/dia_sw.txt",revision:"ea61261f00f66cc38fee75e746638744"},{url:"resources/dia_ta.txt",revision:"4ade8513dbd833c6196abe09a8c69c96"},{url:"resources/dia_te.txt",revision:"b771a88b3f5688cd6024680cd9e1b4a4"},{url:"resources/dia_th.txt",revision:"c2c77ee7cc5fb5bab237565ce34b1228"},{url:"resources/dia_tr.txt",revision:"4cc686f2985f1cc744d1db1b63f2fb69"},{url:"resources/dia_uk.txt",revision:"8d40eb8453fd4d8d2792d782795b42fd"},{url:"resources/dia_vi.txt",revision:"3d75a41cf52d1779fe93e5f2d1f675ab"},{url:"resources/dia_zh-tw.txt",revision:"fab8607b49111ed2923de1a5215cce27"},{url:"resources/dia_zh.txt",revision:"f9629c173432c7b448b5a37893d102d6"},{url:"favicon.ico",revision:"fab2d88b37c72d83607527573de45281"},{url:"images/manifest.json",revision:"389fa448cb99794bece27ffcb216abee"},{url:"images/logo.png",revision:"89630b64b911ebe0daa3dfe442087cfa"},{url:"images/drawlogo.svg",revision:"4bf4d14ebcf072d8bd4c5a1c89e88fc6"},{url:"images/drawlogo48.png",revision:"8b13428373aca67b895364d025f42417"},{url:"images/drawlogo-gray.svg",revision:"0aabacbc0873816e1e09e4736ae44c7d"},{url:"images/drawlogo-text-bottom.svg",revision:"f6c438823ab31f290940bd4feb8dd9c2"},{url:"images/default-user.jpg",revision:"2c399696a87c8921f12d2f9e1990cc6e"},{url:"images/logo-flat-small.png",revision:"4b178e59ff499d6dd1894fc498b59877"},{url:"images/apple-touch-icon.png",revision:"73da7989a23ce9a4be565ec65658a239"},{url:"images/favicon-16x16.png",revision:"1a79d5461a5d2bf21f6652e0ac20d6e5"},{url:"images/favicon-32x32.png",revision:"e3b92da2febe70bad5372f6f3474b034"},{url:"images/android-chrome-196x196.png",revision:"f8c045b2d7b1c719fda64edab04c415c"},{url:"images/android-chrome-512x512.png",revision:"959b5fac2453963ff6d60fb85e4b73fd"},{url:"images/delete.png",revision:"5f2350f2fd20f1a229637aed32ed8f29"},{url:"images/droptarget.png",revision:"bbf7f563fb6784de1ce96f329519b043"},{url:"images/help.png",revision:"9266c6c3915bd33c243d80037d37bf61"},{url:"images/download.png",revision:"35418dd7bd48d87502c71b578cc6c37f"},{url:"images/logo-flat.png",revision:"038070ab43aee6e54a791211859fc67b"},{url:"images/google-drive-logo.svg",revision:"5d9f2f5bbc7dcc252730a0072bb23059"},{url:"images/onedrive-logo.svg",revision:"3645b344ec0634c1290dd58d7dc87b97"},{url:"images/dropbox-logo.svg",revision:"e6be408c77cf9c82d41ac64fa854280a"},{url:"images/github-logo.svg",revision:"a1a999b69a275eac0cb918360ac05ae1"},{url:"images/gitlab-logo.svg",revision:"0faea8c818899e58533e153c44b10517"},{url:"images/trello-logo.svg",revision:"006fd0d7d70d7e95dc691674cb12e044"},{url:"images/osa_drive-harddisk.png",revision:"b954e1ae772087c5b4c6ae797e1f9649"},{url:"images/osa_database.png",revision:"c350d9d9b95f37b6cfe798b40ede5fb0"},{url:"images/google-drive-logo-white.svg",revision:"f329d8b1be7778515a85b93fc35d9f26"},{url:"images/dropbox-logo-white.svg",revision:"4ea8299ac3bc31a16f199ee3aec223bf"},{url:"images/onedrive-logo-white.svg",revision:"b3602fa0fc947009cff3f33a581cff4d"},{url:"images/github-logo-white.svg",revision:"537b1127b3ca0f95b45782d1304fb77a"},{url:"images/gitlab-logo-white.svg",revision:"5fede9ac2f394c716b8c23e3fddc3910"},{url:"images/trello-logo-white-orange.svg",revision:"e2a0a52ba3766682f138138d10a75eb5"},{url:"images/logo-confluence.png",revision:"ed1e55d44ae5eba8f999aba2c93e8331"},{url:"images/logo-jira.png",revision:"f8d460555a0d1f87cfd901e940666629"},{url:"images/clear.gif",revision:"db13c778e4382e0b55258d0f811d5d70"},{url:"images/spin.gif",revision:"487cbb40b9ced439aa1ad914e816d773"},{url:"images/checkmark.gif",revision:"ba764ce62f2bf952df5bbc2bb4d381c5"},{url:"images/hs.png",revision:"fefa1a03d92ebad25c88dca94a0b63db"},{url:"images/aui-wait.gif",revision:"5a474bcbd8d2f2826f03d10ea44bf60e"},{url:"mxgraph/css/common.css",revision:"618b42f0bde0c7685e04811c25dc2b3e"},{url:"mxgraph/images/expanded.gif",revision:"2b67c2c035af1e9a5cc814f0d22074cf"},{url:"mxgraph/images/collapsed.gif",revision:"73cc826da002a3d740ca4ce6ec5c1f4a"},{url:"mxgraph/images/maximize.gif",revision:"5cd13d6925493ab51e876694cc1c2ec2"},{url:"mxgraph/images/minimize.gif",revision:"8957741b9b0f86af9438775f2aadbb54"},{url:"mxgraph/images/close.gif",revision:"8b84669812ac7382984fca35de8da48b"},{url:"mxgraph/images/resize.gif",revision:"a6477612b3567a34033f9cac6184eed3"},{url:"mxgraph/images/separator.gif",revision:"7819742ff106c97da7a801c2372bbbe5"},{url:"mxgraph/images/window.gif",revision:"fd9a21dd4181f98052a202a0a01f18ab"},{url:"mxgraph/images/window-title.gif",revision:"3fb1d6c43246cdf991a11dfe826dfe99"},{url:"mxgraph/images/button.gif",revision:"00759bdc3ad218fa739f584369541809"},{url:"mxgraph/images/point.gif",revision:"83a43717b284902442620f61bc4e9fa6"}],{ignoreURLParametersMatching:[/.*/]})})); //# sourceMappingURL=service-worker.js.map diff --git a/src/main/webapp/service-worker.js.map b/src/main/webapp/service-worker.js.map index d83c585af..9885f7545 100644 --- a/src/main/webapp/service-worker.js.map +++ b/src/main/webapp/service-worker.js.map @@ -1 +1 @@ -{"version":3,"file":"service-worker.js","sources":["../../../../../tmp/4a3ce58341da2cc540cbe5e7f150ad28/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/usr/lib/node_modules/workbox-cli/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"3aca39653b85adf6b89ee4576e212b88\"\n },\n {\n \"url\": \"js/orgchart.min.js\",\n \"revision\": \"619d8c4dab47b81868916df31f55478b\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"b432f355608dbebf8c863dd0939baa27\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"7ecb62c7c11f3ac8cabd8d5dfb612d17\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"cf64f6a493a8cb5079f2b70813e478d7\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"b1216d112fc58d95498162c738503924\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/fonts/ArchitectsDaughter-Regular.ttf\",\n \"revision\": \"31c2153c0530e32553b31a49b3d70736\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"101d081327ca193cb95acf293a5830fb\"\n },\n {\n \"url\": \"styles/atlas.css\",\n \"revision\": \"d627cfef208f13a9cff1670f143c6348\"\n },\n {\n \"url\": \"styles/dark.css\",\n \"revision\": \"fd2878ff29a6b68cb8dbfab17e32d649\"\n },\n {\n \"url\": \"js/dropbox/Dropbox-sdk.min.js\",\n \"revision\": \"4b9842892aa37b156db0a8364b7a83b0\"\n },\n {\n \"url\": \"js/onedrive/OneDrive.js\",\n \"revision\": \"505e8280346666f7ee801bc59521fa67\"\n },\n {\n \"url\": \"js/viewer-static.min.js\",\n \"revision\": \"e1203fa3ee69b9ab237b09ddb240ae75\"\n },\n {\n \"url\": \"connect/jira/editor-1-3-3.html\",\n \"revision\": \"a583c5c1dac9945f6f4087c880e26854\"\n },\n {\n \"url\": \"connect/jira/viewerPanel-1-3-12.html\",\n \"revision\": \"801fc4ef821f5a3986902998da85b53a\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"b20590b5ba995880eb6778e092a3fd50\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"b70ea4d572fe9d07867d955c408f5c27\"\n },\n {\n \"url\": \"connect/jira/spinner.gif\",\n \"revision\": \"7d857ab9d86123e93d74d48e958fe743\"\n },\n {\n \"url\": \"connect/jira/editor.js\",\n \"revision\": \"a109a49b6c8f23095fbc1a2a88912d3b\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer-init.js\",\n \"revision\": \"94804f65483a6e7eb51dee97d0ae9d88\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer.js\",\n \"revision\": \"8eceb2fe587296dd11f9c8f6eae34c20\"\n },\n {\n \"url\": \"plugins/connectJira.js\",\n \"revision\": \"4cefa13414e0d406550f3c073923080c\"\n },\n {\n \"url\": \"plugins/cConf-comments.js\",\n \"revision\": \"ee6764429bf47a8545aa1cedacee718e\"\n },\n {\n \"url\": \"plugins/cConf-1-4-8.js\",\n \"revision\": \"37a91b273d37d153949396832a6ef1c1\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"17120161d4c7d9e0fc3d9a88d77e0c05\"\n },\n {\n \"url\": \"connect/new_common/cac.js\",\n \"revision\": \"cf63bf9103bafb9f34cf3ff624b918e8\"\n },\n {\n \"url\": \"connect/gdrive_common/gac.js\",\n \"revision\": \"78f85e79f15f56b8b8d83c90f4a15679\"\n },\n {\n \"url\": \"connect/onedrive_common/ac.js\",\n \"revision\": \"d10d4603e86da7c9af277dac832e8e06\"\n },\n {\n \"url\": \"connect/confluence/viewer-init.js\",\n \"revision\": \"84b1f6758f3c1a723b019c58af377027\"\n },\n {\n \"url\": \"connect/confluence/viewer.js\",\n \"revision\": \"7683c80e847cf40da45d18573689c8c8\"\n },\n {\n \"url\": \"connect/confluence/viewer-1-4-42.html\",\n \"revision\": \"4a9a11f6de154cbd7a2df9e45790daf1\"\n },\n {\n \"url\": \"connect/confluence/macroEditor-1-4-8.html\",\n \"revision\": \"b2908e71f755a069fe6487e1e705736c\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram-1-4-8.js\",\n \"revision\": \"90d1612e10c3ed94f3b355fbaf262a95\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram.html\",\n \"revision\": \"4df629a5bfba840368ab8185ce27f439\"\n },\n {\n \"url\": \"connect/confluence/macro-editor.js\",\n \"revision\": \"51e513c65251b215aa78420c84623a18\"\n },\n {\n \"url\": \"math/es5/startup.js\",\n \"revision\": \"dc7130cdc866593293dbb5dde11ceb40\"\n },\n {\n \"url\": \"math/es5/core.js\",\n \"revision\": \"f71bc0bfb7d2ac8261747f97a5d47dd4\"\n },\n {\n \"url\": \"math/es5/ui/safe.js\",\n \"revision\": \"8c1fcfee7c879588ad409edcdd9cce53\"\n },\n {\n \"url\": \"math/es5/output/svg.js\",\n \"revision\": \"4f55967d16197ebb01b86356d8ab179a\"\n },\n {\n \"url\": \"math/es5/input/tex.js\",\n \"revision\": \"5c4f470da2ccb1acf85041fcecd6fff6\"\n },\n {\n \"url\": \"math/es5/input/asciimath.js\",\n \"revision\": \"c2d4076dd8e26d509bfe3a378e71cfa7\"\n },\n {\n \"url\": \"math/es5/output/svg/fonts/tex.js\",\n \"revision\": \"6eab785a3788ea805bd2b552d1f0aab8\"\n },\n {\n \"url\": \"resources/dia.txt\",\n \"revision\": \"29890105c83d58c13843e68f15271dfc\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"c636d5964ab4621522dfea68acd4a68d\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"65c4b7e8b52e84659e4e3fe3f7db958c\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"6e868956119d48c22ad86e8e0dce8f68\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"16343274a4715ff50529e314a5e5f966\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"9a99258bdba82a2eb47aa0065a0d1ad5\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"073e904b7cc3c97b18c13c2e1a6e5363\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"51cd60718129e4941babd979f1dd8ecf\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"4b4e0c63862e441d82e38a031755f2a9\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"435be8e0acbb03bfe5b6ccaa5c9cee67\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"f1430dba10d39dfaf7eb20db00358fee\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"fa1cf8a92abc82c2b185dfe344ebb588\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"876bef0a865fbc902de6fbeefad61408\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"b4323339fb2b0d29e39ee8710ee018ae\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"d53713238017532ecef066af1e98daa8\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"874f2450672da0fed9ec561978c82af5\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"f2db2aaa0aaf5a125f822bc57c08f7d2\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"a2417229e51a4dd3e39baaa6a7a219de\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"b28708e736dcc0de3f2c853d47382572\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"5f0906a5ae4512304d46501672a2cd61\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"b599b351182af04529c5affa12fae6a6\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"087ca9dd9d5f72f1e62063a740ddf01e\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"a2b20ba304651e3690f8aeeccb8e223a\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"b1655badb464f232377e129d6e166215\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"dc12bef94b8b723ef1a5e83733a79b8b\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"0a10aa0254692499299f7c8570bdcf1c\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"52e75868e6a6b1435dda79b64d7e7040\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"1577f961b0ea227e6791df43f4d7d8b4\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"43f72ebb706547d9c718141067ef3d7f\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"c9f46176ef79ba01eafb91c87c9e124c\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"165ab29b6a91e27921f493c32d79e57c\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"a2ebddacbdc3f21cd6600636e0d0fda0\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"d2be513fdba7b13f100de42961fdc963\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"631f4009e057c21d5a7bb2f6736948fc\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"15592b8263a138aaf02ee27f4b3e3407\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"29890105c83d58c13843e68f15271dfc\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"49a2b8105c2d588352fa8d212f20269e\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"11913691adeb6214533a5f3fd152955e\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"5486b5c076fee16d6cff20557d61762a\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"b531e14c0a653a174ea088658ff467c4\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"4e094a6c5fa7093137c49b9368161c9b\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"3f2b2235836a9fe15250267e04e760ea\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"891101011a7cccfb3e285aae39568581\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"29890105c83d58c13843e68f15271dfc\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"80f6512977710887f7f3a0746eab2e44\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"d6096e4fcbf8318429a60f3c2bba216b\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"731df4e2759db26649a542a7b7c46661\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"7d50cd089abb70eb12d7a32a9a7ae71e\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"ea61261f00f66cc38fee75e746638744\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"4ade8513dbd833c6196abe09a8c69c96\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"b771a88b3f5688cd6024680cd9e1b4a4\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"c2c77ee7cc5fb5bab237565ce34b1228\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"4cc686f2985f1cc744d1db1b63f2fb69\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"8d40eb8453fd4d8d2792d782795b42fd\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"3d75a41cf52d1779fe93e5f2d1f675ab\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"fab8607b49111ed2923de1a5215cce27\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"f9629c173432c7b448b5a37893d102d6\"\n },\n {\n \"url\": \"favicon.ico\",\n \"revision\": \"fab2d88b37c72d83607527573de45281\"\n },\n {\n \"url\": \"images/manifest.json\",\n \"revision\": \"389fa448cb99794bece27ffcb216abee\"\n },\n {\n \"url\": \"images/logo.png\",\n \"revision\": \"89630b64b911ebe0daa3dfe442087cfa\"\n },\n {\n \"url\": \"images/drawlogo.svg\",\n \"revision\": \"4bf4d14ebcf072d8bd4c5a1c89e88fc6\"\n },\n {\n \"url\": \"images/drawlogo48.png\",\n \"revision\": \"8b13428373aca67b895364d025f42417\"\n },\n {\n \"url\": \"images/drawlogo-gray.svg\",\n \"revision\": \"0aabacbc0873816e1e09e4736ae44c7d\"\n },\n {\n \"url\": \"images/drawlogo-text-bottom.svg\",\n \"revision\": \"f6c438823ab31f290940bd4feb8dd9c2\"\n },\n {\n \"url\": \"images/default-user.jpg\",\n \"revision\": \"2c399696a87c8921f12d2f9e1990cc6e\"\n },\n {\n \"url\": \"images/logo-flat-small.png\",\n \"revision\": \"4b178e59ff499d6dd1894fc498b59877\"\n },\n {\n \"url\": \"images/apple-touch-icon.png\",\n \"revision\": \"73da7989a23ce9a4be565ec65658a239\"\n },\n {\n \"url\": \"images/favicon-16x16.png\",\n \"revision\": \"1a79d5461a5d2bf21f6652e0ac20d6e5\"\n },\n {\n \"url\": \"images/favicon-32x32.png\",\n \"revision\": \"e3b92da2febe70bad5372f6f3474b034\"\n },\n {\n \"url\": \"images/android-chrome-196x196.png\",\n \"revision\": \"f8c045b2d7b1c719fda64edab04c415c\"\n },\n {\n \"url\": \"images/android-chrome-512x512.png\",\n \"revision\": \"959b5fac2453963ff6d60fb85e4b73fd\"\n },\n {\n \"url\": \"images/delete.png\",\n \"revision\": \"5f2350f2fd20f1a229637aed32ed8f29\"\n },\n {\n \"url\": \"images/droptarget.png\",\n \"revision\": \"bbf7f563fb6784de1ce96f329519b043\"\n },\n {\n \"url\": \"images/help.png\",\n \"revision\": \"9266c6c3915bd33c243d80037d37bf61\"\n },\n {\n \"url\": \"images/download.png\",\n \"revision\": \"35418dd7bd48d87502c71b578cc6c37f\"\n },\n {\n \"url\": \"images/logo-flat.png\",\n \"revision\": \"038070ab43aee6e54a791211859fc67b\"\n },\n {\n \"url\": \"images/google-drive-logo.svg\",\n \"revision\": \"5d9f2f5bbc7dcc252730a0072bb23059\"\n },\n {\n \"url\": \"images/onedrive-logo.svg\",\n \"revision\": \"3645b344ec0634c1290dd58d7dc87b97\"\n },\n {\n \"url\": \"images/dropbox-logo.svg\",\n \"revision\": \"e6be408c77cf9c82d41ac64fa854280a\"\n },\n {\n \"url\": \"images/github-logo.svg\",\n \"revision\": \"a1a999b69a275eac0cb918360ac05ae1\"\n },\n {\n \"url\": \"images/gitlab-logo.svg\",\n \"revision\": \"0faea8c818899e58533e153c44b10517\"\n },\n {\n \"url\": \"images/trello-logo.svg\",\n \"revision\": \"006fd0d7d70d7e95dc691674cb12e044\"\n },\n {\n \"url\": \"images/osa_drive-harddisk.png\",\n \"revision\": \"b954e1ae772087c5b4c6ae797e1f9649\"\n },\n {\n \"url\": \"images/osa_database.png\",\n \"revision\": \"c350d9d9b95f37b6cfe798b40ede5fb0\"\n },\n {\n \"url\": \"images/google-drive-logo-white.svg\",\n \"revision\": \"f329d8b1be7778515a85b93fc35d9f26\"\n },\n {\n \"url\": \"images/dropbox-logo-white.svg\",\n \"revision\": \"4ea8299ac3bc31a16f199ee3aec223bf\"\n },\n {\n \"url\": \"images/onedrive-logo-white.svg\",\n \"revision\": \"b3602fa0fc947009cff3f33a581cff4d\"\n },\n {\n \"url\": \"images/github-logo-white.svg\",\n \"revision\": \"537b1127b3ca0f95b45782d1304fb77a\"\n },\n {\n \"url\": \"images/gitlab-logo-white.svg\",\n \"revision\": \"5fede9ac2f394c716b8c23e3fddc3910\"\n },\n {\n \"url\": \"images/trello-logo-white-orange.svg\",\n \"revision\": \"e2a0a52ba3766682f138138d10a75eb5\"\n },\n {\n \"url\": \"images/logo-confluence.png\",\n \"revision\": \"ed1e55d44ae5eba8f999aba2c93e8331\"\n },\n {\n \"url\": \"images/logo-jira.png\",\n \"revision\": \"f8d460555a0d1f87cfd901e940666629\"\n },\n {\n \"url\": \"images/clear.gif\",\n \"revision\": \"db13c778e4382e0b55258d0f811d5d70\"\n },\n {\n \"url\": \"images/spin.gif\",\n \"revision\": \"487cbb40b9ced439aa1ad914e816d773\"\n },\n {\n \"url\": \"images/checkmark.gif\",\n \"revision\": \"ba764ce62f2bf952df5bbc2bb4d381c5\"\n },\n {\n \"url\": \"images/hs.png\",\n \"revision\": \"fefa1a03d92ebad25c88dca94a0b63db\"\n },\n {\n \"url\": \"images/aui-wait.gif\",\n \"revision\": \"5a474bcbd8d2f2826f03d10ea44bf60e\"\n },\n {\n \"url\": \"mxgraph/css/common.css\",\n \"revision\": \"618b42f0bde0c7685e04811c25dc2b3e\"\n },\n {\n \"url\": \"mxgraph/images/expanded.gif\",\n \"revision\": \"2b67c2c035af1e9a5cc814f0d22074cf\"\n },\n {\n \"url\": \"mxgraph/images/collapsed.gif\",\n \"revision\": \"73cc826da002a3d740ca4ce6ec5c1f4a\"\n },\n {\n \"url\": \"mxgraph/images/maximize.gif\",\n \"revision\": \"5cd13d6925493ab51e876694cc1c2ec2\"\n },\n {\n \"url\": \"mxgraph/images/minimize.gif\",\n \"revision\": \"8957741b9b0f86af9438775f2aadbb54\"\n },\n {\n \"url\": \"mxgraph/images/close.gif\",\n \"revision\": \"8b84669812ac7382984fca35de8da48b\"\n },\n {\n \"url\": \"mxgraph/images/resize.gif\",\n \"revision\": \"a6477612b3567a34033f9cac6184eed3\"\n },\n {\n \"url\": \"mxgraph/images/separator.gif\",\n \"revision\": \"7819742ff106c97da7a801c2372bbbe5\"\n },\n {\n \"url\": \"mxgraph/images/window.gif\",\n \"revision\": \"fd9a21dd4181f98052a202a0a01f18ab\"\n },\n {\n \"url\": \"mxgraph/images/window-title.gif\",\n \"revision\": \"3fb1d6c43246cdf991a11dfe826dfe99\"\n },\n {\n \"url\": \"mxgraph/images/button.gif\",\n \"revision\": \"00759bdc3ad218fa739f584369541809\"\n },\n {\n \"url\": \"mxgraph/images/point.gif\",\n \"revision\": \"83a43717b284902442620f61bc4e9fa6\"\n }\n], {\n \"ignoreURLParametersMatching\": [/.*/]\n});\n\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision","ignoreURLParametersMatching"],"mappings":"szBAmBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACN,IAWHC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,YACPC,SAAY,oCAEd,CACED,IAAO,8CACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,kBACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,2CACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,2CACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,4CACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,oBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,kBACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,kBACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,kBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,qCAEb,CACDC,4BAA+B,CAAC"} \ No newline at end of file +{"version":3,"file":"service-worker.js","sources":["../../../../../tmp/8a28bb88d96855297bb2ead4886dfb9e/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/usr/lib/node_modules/workbox-cli/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"3aca39653b85adf6b89ee4576e212b88\"\n },\n {\n \"url\": \"js/orgchart.min.js\",\n \"revision\": \"619d8c4dab47b81868916df31f55478b\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"30af10a1549a1ec15ba4a36bb37e6971\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"7ecb62c7c11f3ac8cabd8d5dfb612d17\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"cf64f6a493a8cb5079f2b70813e478d7\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"b1216d112fc58d95498162c738503924\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/fonts/ArchitectsDaughter-Regular.ttf\",\n \"revision\": \"31c2153c0530e32553b31a49b3d70736\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"101d081327ca193cb95acf293a5830fb\"\n },\n {\n \"url\": \"styles/atlas.css\",\n \"revision\": \"d627cfef208f13a9cff1670f143c6348\"\n },\n {\n \"url\": \"styles/dark.css\",\n \"revision\": \"fd2878ff29a6b68cb8dbfab17e32d649\"\n },\n {\n \"url\": \"js/dropbox/Dropbox-sdk.min.js\",\n \"revision\": \"4b9842892aa37b156db0a8364b7a83b0\"\n },\n {\n \"url\": \"js/onedrive/OneDrive.js\",\n \"revision\": \"505e8280346666f7ee801bc59521fa67\"\n },\n {\n \"url\": \"js/viewer-static.min.js\",\n \"revision\": \"6c86e710452669398bd68d9fc4064b08\"\n },\n {\n \"url\": \"connect/jira/editor-1-3-3.html\",\n \"revision\": \"a583c5c1dac9945f6f4087c880e26854\"\n },\n {\n \"url\": \"connect/jira/viewerPanel-1-3-12.html\",\n \"revision\": \"801fc4ef821f5a3986902998da85b53a\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"b20590b5ba995880eb6778e092a3fd50\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"b70ea4d572fe9d07867d955c408f5c27\"\n },\n {\n \"url\": \"connect/jira/spinner.gif\",\n \"revision\": \"7d857ab9d86123e93d74d48e958fe743\"\n },\n {\n \"url\": \"connect/jira/editor.js\",\n \"revision\": \"a109a49b6c8f23095fbc1a2a88912d3b\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer-init.js\",\n \"revision\": \"94804f65483a6e7eb51dee97d0ae9d88\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer.js\",\n \"revision\": \"8eceb2fe587296dd11f9c8f6eae34c20\"\n },\n {\n \"url\": \"plugins/connectJira.js\",\n \"revision\": \"4cefa13414e0d406550f3c073923080c\"\n },\n {\n \"url\": \"plugins/cConf-comments.js\",\n \"revision\": \"ee6764429bf47a8545aa1cedacee718e\"\n },\n {\n \"url\": \"plugins/cConf-1-4-8.js\",\n \"revision\": \"37a91b273d37d153949396832a6ef1c1\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"17120161d4c7d9e0fc3d9a88d77e0c05\"\n },\n {\n \"url\": \"connect/new_common/cac.js\",\n \"revision\": \"cf63bf9103bafb9f34cf3ff624b918e8\"\n },\n {\n \"url\": \"connect/gdrive_common/gac.js\",\n \"revision\": \"78f85e79f15f56b8b8d83c90f4a15679\"\n },\n {\n \"url\": \"connect/onedrive_common/ac.js\",\n \"revision\": \"d10d4603e86da7c9af277dac832e8e06\"\n },\n {\n \"url\": \"connect/confluence/viewer-init.js\",\n \"revision\": \"84b1f6758f3c1a723b019c58af377027\"\n },\n {\n \"url\": \"connect/confluence/viewer.js\",\n \"revision\": \"7683c80e847cf40da45d18573689c8c8\"\n },\n {\n \"url\": \"connect/confluence/viewer-1-4-42.html\",\n \"revision\": \"4a9a11f6de154cbd7a2df9e45790daf1\"\n },\n {\n \"url\": \"connect/confluence/macroEditor-1-4-8.html\",\n \"revision\": \"b2908e71f755a069fe6487e1e705736c\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram-1-4-8.js\",\n \"revision\": \"90d1612e10c3ed94f3b355fbaf262a95\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram.html\",\n \"revision\": \"4df629a5bfba840368ab8185ce27f439\"\n },\n {\n \"url\": \"connect/confluence/macro-editor.js\",\n \"revision\": \"51e513c65251b215aa78420c84623a18\"\n },\n {\n \"url\": \"math/es5/startup.js\",\n \"revision\": \"dc7130cdc866593293dbb5dde11ceb40\"\n },\n {\n \"url\": \"math/es5/core.js\",\n \"revision\": \"f71bc0bfb7d2ac8261747f97a5d47dd4\"\n },\n {\n \"url\": \"math/es5/ui/safe.js\",\n \"revision\": \"8c1fcfee7c879588ad409edcdd9cce53\"\n },\n {\n \"url\": \"math/es5/output/svg.js\",\n \"revision\": \"4f55967d16197ebb01b86356d8ab179a\"\n },\n {\n \"url\": \"math/es5/input/tex.js\",\n \"revision\": \"5c4f470da2ccb1acf85041fcecd6fff6\"\n },\n {\n \"url\": \"math/es5/input/asciimath.js\",\n \"revision\": \"c2d4076dd8e26d509bfe3a378e71cfa7\"\n },\n {\n \"url\": \"math/es5/output/svg/fonts/tex.js\",\n \"revision\": \"6eab785a3788ea805bd2b552d1f0aab8\"\n },\n {\n \"url\": \"resources/dia.txt\",\n \"revision\": \"29890105c83d58c13843e68f15271dfc\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"c636d5964ab4621522dfea68acd4a68d\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"65c4b7e8b52e84659e4e3fe3f7db958c\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"6e868956119d48c22ad86e8e0dce8f68\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"16343274a4715ff50529e314a5e5f966\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"9a99258bdba82a2eb47aa0065a0d1ad5\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"073e904b7cc3c97b18c13c2e1a6e5363\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"51cd60718129e4941babd979f1dd8ecf\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"4b4e0c63862e441d82e38a031755f2a9\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"435be8e0acbb03bfe5b6ccaa5c9cee67\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"f1430dba10d39dfaf7eb20db00358fee\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"fa1cf8a92abc82c2b185dfe344ebb588\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"876bef0a865fbc902de6fbeefad61408\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"b4323339fb2b0d29e39ee8710ee018ae\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"d53713238017532ecef066af1e98daa8\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"874f2450672da0fed9ec561978c82af5\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"f2db2aaa0aaf5a125f822bc57c08f7d2\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"a2417229e51a4dd3e39baaa6a7a219de\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"b28708e736dcc0de3f2c853d47382572\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"5f0906a5ae4512304d46501672a2cd61\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"b599b351182af04529c5affa12fae6a6\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"087ca9dd9d5f72f1e62063a740ddf01e\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"a2b20ba304651e3690f8aeeccb8e223a\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"b1655badb464f232377e129d6e166215\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"dc12bef94b8b723ef1a5e83733a79b8b\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"0a10aa0254692499299f7c8570bdcf1c\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"52e75868e6a6b1435dda79b64d7e7040\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"1577f961b0ea227e6791df43f4d7d8b4\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"43f72ebb706547d9c718141067ef3d7f\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"c9f46176ef79ba01eafb91c87c9e124c\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"165ab29b6a91e27921f493c32d79e57c\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"a2ebddacbdc3f21cd6600636e0d0fda0\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"d2be513fdba7b13f100de42961fdc963\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"631f4009e057c21d5a7bb2f6736948fc\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"15592b8263a138aaf02ee27f4b3e3407\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"29890105c83d58c13843e68f15271dfc\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"49a2b8105c2d588352fa8d212f20269e\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"11913691adeb6214533a5f3fd152955e\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"5486b5c076fee16d6cff20557d61762a\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"b531e14c0a653a174ea088658ff467c4\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"4e094a6c5fa7093137c49b9368161c9b\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"3f2b2235836a9fe15250267e04e760ea\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"891101011a7cccfb3e285aae39568581\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"29890105c83d58c13843e68f15271dfc\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"80f6512977710887f7f3a0746eab2e44\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"d6096e4fcbf8318429a60f3c2bba216b\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"731df4e2759db26649a542a7b7c46661\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"7d50cd089abb70eb12d7a32a9a7ae71e\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"ea61261f00f66cc38fee75e746638744\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"4ade8513dbd833c6196abe09a8c69c96\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"b771a88b3f5688cd6024680cd9e1b4a4\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"c2c77ee7cc5fb5bab237565ce34b1228\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"4cc686f2985f1cc744d1db1b63f2fb69\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"8d40eb8453fd4d8d2792d782795b42fd\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"3d75a41cf52d1779fe93e5f2d1f675ab\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"fab8607b49111ed2923de1a5215cce27\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"f9629c173432c7b448b5a37893d102d6\"\n },\n {\n \"url\": \"favicon.ico\",\n \"revision\": \"fab2d88b37c72d83607527573de45281\"\n },\n {\n \"url\": \"images/manifest.json\",\n \"revision\": \"389fa448cb99794bece27ffcb216abee\"\n },\n {\n \"url\": \"images/logo.png\",\n \"revision\": \"89630b64b911ebe0daa3dfe442087cfa\"\n },\n {\n \"url\": \"images/drawlogo.svg\",\n \"revision\": \"4bf4d14ebcf072d8bd4c5a1c89e88fc6\"\n },\n {\n \"url\": \"images/drawlogo48.png\",\n \"revision\": \"8b13428373aca67b895364d025f42417\"\n },\n {\n \"url\": \"images/drawlogo-gray.svg\",\n \"revision\": \"0aabacbc0873816e1e09e4736ae44c7d\"\n },\n {\n \"url\": \"images/drawlogo-text-bottom.svg\",\n \"revision\": \"f6c438823ab31f290940bd4feb8dd9c2\"\n },\n {\n \"url\": \"images/default-user.jpg\",\n \"revision\": \"2c399696a87c8921f12d2f9e1990cc6e\"\n },\n {\n \"url\": \"images/logo-flat-small.png\",\n \"revision\": \"4b178e59ff499d6dd1894fc498b59877\"\n },\n {\n \"url\": \"images/apple-touch-icon.png\",\n \"revision\": \"73da7989a23ce9a4be565ec65658a239\"\n },\n {\n \"url\": \"images/favicon-16x16.png\",\n \"revision\": \"1a79d5461a5d2bf21f6652e0ac20d6e5\"\n },\n {\n \"url\": \"images/favicon-32x32.png\",\n \"revision\": \"e3b92da2febe70bad5372f6f3474b034\"\n },\n {\n \"url\": \"images/android-chrome-196x196.png\",\n \"revision\": \"f8c045b2d7b1c719fda64edab04c415c\"\n },\n {\n \"url\": \"images/android-chrome-512x512.png\",\n \"revision\": \"959b5fac2453963ff6d60fb85e4b73fd\"\n },\n {\n \"url\": \"images/delete.png\",\n \"revision\": \"5f2350f2fd20f1a229637aed32ed8f29\"\n },\n {\n \"url\": \"images/droptarget.png\",\n \"revision\": \"bbf7f563fb6784de1ce96f329519b043\"\n },\n {\n \"url\": \"images/help.png\",\n \"revision\": \"9266c6c3915bd33c243d80037d37bf61\"\n },\n {\n \"url\": \"images/download.png\",\n \"revision\": \"35418dd7bd48d87502c71b578cc6c37f\"\n },\n {\n \"url\": \"images/logo-flat.png\",\n \"revision\": \"038070ab43aee6e54a791211859fc67b\"\n },\n {\n \"url\": \"images/google-drive-logo.svg\",\n \"revision\": \"5d9f2f5bbc7dcc252730a0072bb23059\"\n },\n {\n \"url\": \"images/onedrive-logo.svg\",\n \"revision\": \"3645b344ec0634c1290dd58d7dc87b97\"\n },\n {\n \"url\": \"images/dropbox-logo.svg\",\n \"revision\": \"e6be408c77cf9c82d41ac64fa854280a\"\n },\n {\n \"url\": \"images/github-logo.svg\",\n \"revision\": \"a1a999b69a275eac0cb918360ac05ae1\"\n },\n {\n \"url\": \"images/gitlab-logo.svg\",\n \"revision\": \"0faea8c818899e58533e153c44b10517\"\n },\n {\n \"url\": \"images/trello-logo.svg\",\n \"revision\": \"006fd0d7d70d7e95dc691674cb12e044\"\n },\n {\n \"url\": \"images/osa_drive-harddisk.png\",\n \"revision\": \"b954e1ae772087c5b4c6ae797e1f9649\"\n },\n {\n \"url\": \"images/osa_database.png\",\n \"revision\": \"c350d9d9b95f37b6cfe798b40ede5fb0\"\n },\n {\n \"url\": \"images/google-drive-logo-white.svg\",\n \"revision\": \"f329d8b1be7778515a85b93fc35d9f26\"\n },\n {\n \"url\": \"images/dropbox-logo-white.svg\",\n \"revision\": \"4ea8299ac3bc31a16f199ee3aec223bf\"\n },\n {\n \"url\": \"images/onedrive-logo-white.svg\",\n \"revision\": \"b3602fa0fc947009cff3f33a581cff4d\"\n },\n {\n \"url\": \"images/github-logo-white.svg\",\n \"revision\": \"537b1127b3ca0f95b45782d1304fb77a\"\n },\n {\n \"url\": \"images/gitlab-logo-white.svg\",\n \"revision\": \"5fede9ac2f394c716b8c23e3fddc3910\"\n },\n {\n \"url\": \"images/trello-logo-white-orange.svg\",\n \"revision\": \"e2a0a52ba3766682f138138d10a75eb5\"\n },\n {\n \"url\": \"images/logo-confluence.png\",\n \"revision\": \"ed1e55d44ae5eba8f999aba2c93e8331\"\n },\n {\n \"url\": \"images/logo-jira.png\",\n \"revision\": \"f8d460555a0d1f87cfd901e940666629\"\n },\n {\n \"url\": \"images/clear.gif\",\n \"revision\": \"db13c778e4382e0b55258d0f811d5d70\"\n },\n {\n \"url\": \"images/spin.gif\",\n \"revision\": \"487cbb40b9ced439aa1ad914e816d773\"\n },\n {\n \"url\": \"images/checkmark.gif\",\n \"revision\": \"ba764ce62f2bf952df5bbc2bb4d381c5\"\n },\n {\n \"url\": \"images/hs.png\",\n \"revision\": \"fefa1a03d92ebad25c88dca94a0b63db\"\n },\n {\n \"url\": \"images/aui-wait.gif\",\n \"revision\": \"5a474bcbd8d2f2826f03d10ea44bf60e\"\n },\n {\n \"url\": \"mxgraph/css/common.css\",\n \"revision\": \"618b42f0bde0c7685e04811c25dc2b3e\"\n },\n {\n \"url\": \"mxgraph/images/expanded.gif\",\n \"revision\": \"2b67c2c035af1e9a5cc814f0d22074cf\"\n },\n {\n \"url\": \"mxgraph/images/collapsed.gif\",\n \"revision\": \"73cc826da002a3d740ca4ce6ec5c1f4a\"\n },\n {\n \"url\": \"mxgraph/images/maximize.gif\",\n \"revision\": \"5cd13d6925493ab51e876694cc1c2ec2\"\n },\n {\n \"url\": \"mxgraph/images/minimize.gif\",\n \"revision\": \"8957741b9b0f86af9438775f2aadbb54\"\n },\n {\n \"url\": \"mxgraph/images/close.gif\",\n \"revision\": \"8b84669812ac7382984fca35de8da48b\"\n },\n {\n \"url\": \"mxgraph/images/resize.gif\",\n \"revision\": \"a6477612b3567a34033f9cac6184eed3\"\n },\n {\n \"url\": \"mxgraph/images/separator.gif\",\n \"revision\": \"7819742ff106c97da7a801c2372bbbe5\"\n },\n {\n \"url\": \"mxgraph/images/window.gif\",\n \"revision\": \"fd9a21dd4181f98052a202a0a01f18ab\"\n },\n {\n \"url\": \"mxgraph/images/window-title.gif\",\n \"revision\": \"3fb1d6c43246cdf991a11dfe826dfe99\"\n },\n {\n \"url\": \"mxgraph/images/button.gif\",\n \"revision\": \"00759bdc3ad218fa739f584369541809\"\n },\n {\n \"url\": \"mxgraph/images/point.gif\",\n \"revision\": \"83a43717b284902442620f61bc4e9fa6\"\n }\n], {\n \"ignoreURLParametersMatching\": [/.*/]\n});\n\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision","ignoreURLParametersMatching"],"mappings":"szBAmBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACN,IAWHC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,YACPC,SAAY,oCAEd,CACED,IAAO,8CACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,kBACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,2CACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,2CACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,4CACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,oBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,kBACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,kBACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,kBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,sBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,qCAEb,CACDC,4BAA+B,CAAC"} \ No newline at end of file