examples/docker/hooks-diagram.svg
<svg id="mermaid-1530050055934" width="100%" xmlns="http://www.w3.org/2000/svg" style="max-width: 659.625px;" viewBox="0 0 659.625 639"><style>#mermaid-1530050055934 .label{font-family:trebuchet ms,verdana,arial;color:#333}#mermaid-1530050055934 .node circle,#mermaid-1530050055934 .node ellipse,#mermaid-1530050055934 .node polygon,#mermaid-1530050055934 .node rect{fill:#eee;stroke:#999;stroke-width:1px}#mermaid-1530050055934 .node.clickable{cursor:pointer}#mermaid-1530050055934 .arrowheadPath{fill:#333}#mermaid-1530050055934 .edgePath .path{stroke:#666;stroke-width:1.5px}#mermaid-1530050055934 .edgeLabel{background-color:#fff}#mermaid-1530050055934 .cluster rect{fill:#eaf2fb!important;stroke:#26a!important;stroke-width:1px!important}#mermaid-1530050055934 .cluster text{fill:#333}#mermaid-1530050055934 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:trebuchet ms,verdana,arial;font-size:12px;background:#eaf2fb;border:1px solid #26a;border-radius:2px;pointer-events:none;z-index:100}#mermaid-1530050055934 .actor{stroke:#999;fill:#eee}#mermaid-1530050055934 text.actor{fill:#333;stroke:none}#mermaid-1530050055934 .actor-line{stroke:#666}#mermaid-1530050055934 .messageLine0{marker-end:"url(#arrowhead)"}#mermaid-1530050055934 .messageLine0,#mermaid-1530050055934 .messageLine1{stroke-width:1.5;stroke-dasharray:"2 2";stroke:#333}#mermaid-1530050055934 #arrowhead{fill:#333}#mermaid-1530050055934 #crosshead path{fill:#333!important;stroke:#333!important}#mermaid-1530050055934 .messageText{fill:#333;stroke:none}#mermaid-1530050055934 .labelBox{stroke:#999;fill:#eee}#mermaid-1530050055934 .labelText,#mermaid-1530050055934 .loopText{fill:#fff;stroke:none}#mermaid-1530050055934 .loopLine{stroke-width:2;stroke-dasharray:"2 2";marker-end:"url(#arrowhead)";stroke:#999}#mermaid-1530050055934 .note{stroke:#770;fill:#ffa}#mermaid-1530050055934 .noteText{fill:#000;stroke:none;font-family:trebuchet ms,verdana,arial;font-size:14px}#mermaid-1530050055934 .section{stroke:none;opacity:.2}#mermaid-1530050055934 .section0,#mermaid-1530050055934 .section2{fill:#80b3e6}#mermaid-1530050055934 .section1,#mermaid-1530050055934 .section3{fill:#fff;opacity:.2}#mermaid-1530050055934 .sectionTitle0,#mermaid-1530050055934 .sectionTitle1,#mermaid-1530050055934 .sectionTitle2,#mermaid-1530050055934 .sectionTitle3{fill:#333}#mermaid-1530050055934 .sectionTitle{text-anchor:start;font-size:11px;text-height:14px}#mermaid-1530050055934 .grid .tick{stroke:#e6e6e6;opacity:.3;shape-rendering:crispEdges}#mermaid-1530050055934 .grid path{stroke-width:0}#mermaid-1530050055934 .today{fill:none;stroke:#d42;stroke-width:2px}#mermaid-1530050055934 .task{stroke-width:2}#mermaid-1530050055934 .taskText{text-anchor:middle;font-size:11px}#mermaid-1530050055934 .taskTextOutsideRight{fill:#333;text-anchor:start;font-size:11px}#mermaid-1530050055934 .taskTextOutsideLeft{fill:#333;text-anchor:end;font-size:11px}#mermaid-1530050055934 .taskText0,#mermaid-1530050055934 .taskText1,#mermaid-1530050055934 .taskText2,#mermaid-1530050055934 .taskText3{fill:#fff}#mermaid-1530050055934 .task0,#mermaid-1530050055934 .task1,#mermaid-1530050055934 .task2,#mermaid-1530050055934 .task3{fill:#26a;stroke:#1a4d80}#mermaid-1530050055934 .taskTextOutside0,#mermaid-1530050055934 .taskTextOutside1,#mermaid-1530050055934 .taskTextOutside2,#mermaid-1530050055934 .taskTextOutside3{fill:#333}#mermaid-1530050055934 .active0,#mermaid-1530050055934 .active1,#mermaid-1530050055934 .active2,#mermaid-1530050055934 .active3{fill:#eee;stroke:#1a4d80}#mermaid-1530050055934 .activeText0,#mermaid-1530050055934 .activeText1,#mermaid-1530050055934 .activeText2,#mermaid-1530050055934 .activeText3{fill:#333!important}#mermaid-1530050055934 .done0,#mermaid-1530050055934 .done1,#mermaid-1530050055934 .done2,#mermaid-1530050055934 .done3{stroke:#666;fill:#bbb;stroke-width:2}#mermaid-1530050055934 .doneText0,#mermaid-1530050055934 .doneText1,#mermaid-1530050055934 .doneText2,#mermaid-1530050055934 .doneText3{fill:#333!important}#mermaid-1530050055934 .crit0,#mermaid-1530050055934 .crit1,#mermaid-1530050055934 .crit2,#mermaid-1530050055934 .crit3{stroke:#b1361b;fill:#d42;stroke-width:2}#mermaid-1530050055934 .activeCrit0,#mermaid-1530050055934 .activeCrit1,#mermaid-1530050055934 .activeCrit2,#mermaid-1530050055934 .activeCrit3{stroke:#b1361b;fill:#eee;stroke-width:2}#mermaid-1530050055934 .doneCrit0,#mermaid-1530050055934 .doneCrit1,#mermaid-1530050055934 .doneCrit2,#mermaid-1530050055934 .doneCrit3{stroke:#b1361b;fill:#bbb;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-1530050055934 .activeCritText0,#mermaid-1530050055934 .activeCritText1,#mermaid-1530050055934 .activeCritText2,#mermaid-1530050055934 .activeCritText3,#mermaid-1530050055934 .doneCritText0,#mermaid-1530050055934 .doneCritText1,#mermaid-1530050055934 .doneCritText2,#mermaid-1530050055934 .doneCritText3{fill:#333!important}#mermaid-1530050055934 .titleText{text-anchor:middle;font-size:18px;fill:#333}#mermaid-1530050055934 g.classGroup text{fill:#999;stroke:none;font-family:trebuchet ms,verdana,arial;font-size:10px}#mermaid-1530050055934 g.classGroup rect{fill:#eee;stroke:#999}#mermaid-1530050055934 g.classGroup line{stroke:#999;stroke-width:1}#mermaid-1530050055934 .classLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:.5}#mermaid-1530050055934 .classLabel .label{fill:#999;font-size:10px}#mermaid-1530050055934 .relation{stroke:#999;stroke-width:1;fill:none}#mermaid-1530050055934 #compositionEnd,#mermaid-1530050055934 #compositionStart{fill:#999;stroke:#999;stroke-width:1}#mermaid-1530050055934 #aggregationEnd,#mermaid-1530050055934 #aggregationStart{fill:#eee;stroke:#999;stroke-width:1}#mermaid-1530050055934 #dependencyEnd,#mermaid-1530050055934 #dependencyStart,#mermaid-1530050055934 #extensionEnd,#mermaid-1530050055934 #extensionStart{fill:#999;stroke:#999;stroke-width:1}#mermaid-1530050055934 .branch-label,#mermaid-1530050055934 .commit-id,#mermaid-1530050055934 .commit-msg{fill:#d3d3d3;color:#d3d3d3}#mermaid-1530050055934 .hookClass > * { fill:#f96 !important; stroke:#333 !important; stroke-width:2px !important; }#mermaid-1530050055934 .operationClass > * { fill:#9c6 !important; stroke:#333 !important; stroke-width:2px !important; }</style><style>#mermaid-1530050055934 { color: rgb(0, 0, 0); font: normal normal 400 normal 16px / normal "Times New Roman"; }</style><g transform="translate(-12, -12)"><g class="output"><g class="clusters"><g class="cluster" id="subGraph1" transform="translate(161.671875,331.5)" style="opacity: 1;"><rect width="283.34375" height="623" x="-141.671875" y="-311.5"></rect><g class="label"><g transform="translate(0,0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"></div></foreignObject></g></g><text x="0" y="-297.5" fill="black" stroke="none" id="mermaid-1530050055934Text" style="text-anchor: middle;">Job pipeline</text></g><g class="cluster" id="subGraph0" transform="translate(493.484375,331.5)" style="opacity: 1;"><rect width="340.28125" height="623" x="-170.140625" y="-311.5"></rect><g class="label"><g transform="translate(0,0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"></div></foreignObject></g></g><text x="0" y="-297.5" fill="black" stroke="none" id="mermaid-1530050055934Text" style="text-anchor: middle;">Task pipeline</text></g></g><g class="edgePaths"><g class="edgePath" style="opacity: 1;"><path class="path" d="M493.484375,84L493.484375,109L493.484375,134" marker-end="url(#arrowhead106)" style="stroke-width:2px;fill:none;stroke:black"></path><defs><marker id="arrowhead106" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath" style="opacity: 1;"><path class="path" d="M493.484375,173L493.484375,198L493.484375,223" marker-end="url(#arrowhead107)" style="stroke-width:2px;fill:none;stroke:black"></path><defs><marker id="arrowhead107" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath" style="opacity: 1;"><path class="path" d="M493.484375,262L493.484375,287L493.484375,312" marker-end="url(#arrowhead108)" style="stroke-width:2px;fill:none;stroke:black"></path><defs><marker id="arrowhead108" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath" style="opacity: 1;"><path class="path" d="M493.484375,351L493.484375,376L493.484375,401" marker-end="url(#arrowhead109)" style="stroke-width:2px;fill:none;stroke:black"></path><defs><marker id="arrowhead109" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath" style="opacity: 1;"><path class="path" d="M493.484375,440L493.484375,465L493.484375,490" marker-end="url(#arrowhead110)" style="stroke-width:2px;fill:none;stroke:black"></path><defs><marker id="arrowhead110" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath" style="opacity: 1;"><path class="path" d="M493.484375,529L493.484375,554L493.484375,579" marker-end="url(#arrowhead111)" style="stroke-width:2px;fill:none;stroke:black"></path><defs><marker id="arrowhead111" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath" style="opacity: 1;"><path class="path" d="M161.671875,84L161.671875,109L161.671875,134" marker-end="url(#arrowhead112)" style="stroke-width:2px;fill:none;stroke:black"></path><defs><marker id="arrowhead112" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath" style="opacity: 1;"><path class="path" d="M161.671875,173L161.671875,198L161.671875,223" marker-end="url(#arrowhead113)" style="stroke-width:2px;fill:none;stroke:black"></path><defs><marker id="arrowhead113" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath" style="opacity: 1;"><path class="path" d="M161.671875,262L161.671875,287L161.671875,312" marker-end="url(#arrowhead114)" style="stroke-width:2px;fill:none;stroke:black"></path><defs><marker id="arrowhead114" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath" style="opacity: 1;"><path class="path" d="M161.671875,351L161.671875,376L161.671875,401" marker-end="url(#arrowhead115)" style="stroke-width:2px;fill:none;stroke:black"></path><defs><marker id="arrowhead115" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath" style="opacity: 1;"><path class="path" d="M161.671875,440L161.671875,465L161.671875,490" marker-end="url(#arrowhead116)" style="stroke-width:2px;fill:none;stroke:black"></path><defs><marker id="arrowhead116" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath" style="opacity: 1;"><path class="path" d="M161.671875,529L161.671875,554L161.671875,579" marker-end="url(#arrowhead117)" style="stroke-width:2px;fill:none;stroke:black"></path><defs><marker id="arrowhead117" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g></g><g class="edgeLabels"><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g class="node operationClass" id="PRINT_JOB" transform="translate(161.671875,64.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-47.234375" y="-19.5" width="94.46875" height="39"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-37.234375,-9.5)"><foreignObject width="74.46875" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">PRINT JOB</div></foreignObject></g></g></g><g class="node hookClass" id="applyRequestTemplate" transform="translate(161.671875,153.5)" style="opacity: 1;"><rect rx="5" ry="5" x="-94.046875" y="-19.5" width="188.09375" height="39"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-84.046875,-9.5)"><foreignObject width="168.09375" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">apply request template</div></foreignObject></g></g></g><g class="node hookClass" id="createStores" transform="translate(161.671875,242.5)" style="opacity: 1;"><rect rx="5" ry="5" x="-89.921875" y="-19.5" width="179.84375" height="39"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-79.921875,-9.5)"><foreignObject width="159.84375" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">create required stores</div></foreignObject></g></g></g><g class="node operationClass" id="PRINT_TASKS" transform="translate(161.671875,331.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-88.7265625" y="-19.5" width="177.453125" height="39"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-78.7265625,-9.5)"><foreignObject width="157.453125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">EXECUTE PRINT TASKS</div></foreignObject></g></g></g><g class="node hookClass" id="clearOutputs" transform="translate(161.671875,420.5)" style="opacity: 1;"><rect rx="5" ry="5" x="-106.671875" y="-19.5" width="213.34375" height="39"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-96.671875,-9.5)"><foreignObject width="193.34375" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">clear intermediate outputs</div></foreignObject></g></g></g><g class="node hookClass" id="applyResponseTemplate" transform="translate(161.671875,509.5)" style="opacity: 1;"><rect rx="5" ry="5" x="-98.40625" y="-19.5" width="196.8125" height="39"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-88.40625,-9.5)"><foreignObject width="176.8125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">apply response template</div></foreignObject></g></g></g><g class="node hookClass" id="removeStores" transform="translate(161.671875,598.5)" style="opacity: 1;"><rect rx="5" ry="5" x="-90.65625" y="-19.5" width="181.3125" height="39"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-80.65625,-9.5)"><foreignObject width="161.3125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">remove existing stores</div></foreignObject></g></g></g><g class="node operationClass" id="PRINT_TASK" transform="translate(493.484375,64.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-50.546875" y="-19.5" width="101.09375" height="39"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-40.546875,-9.5)"><foreignObject width="81.09375" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">PRINT TASK</div></foreignObject></g></g></g><g class="node hookClass" id="createContainer" transform="translate(493.484375,153.5)" style="opacity: 1;"><rect rx="5" ry="5" x="-89.5078125" y="-19.5" width="179.015625" height="39"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-79.5078125,-9.5)"><foreignObject width="159.015625" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">create print container</div></foreignObject></g></g></g><g class="node hookClass" id="writeGeoJson" transform="translate(493.484375,242.5)" style="opacity: 1;"><rect rx="5" ry="5" x="-81.40625" y="-19.5" width="162.8125" height="39"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-71.40625,-9.5)"><foreignObject width="142.8125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">write GeoJson to FS</div></foreignObject></g></g></g><g class="node hookClass" id="copyGeoJson" transform="translate(493.484375,331.5)" style="opacity: 1;"><rect rx="5" ry="5" x="-105.2578125" y="-19.5" width="210.515625" height="39"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-95.2578125,-9.5)"><foreignObject width="190.515625" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">copy GeoJson to container</div></foreignObject></g></g></g><g class="node hookClass" id="print" transform="translate(493.484375,420.5)" style="opacity: 1;"><rect rx="5" ry="5" x="-131.71875" y="-19.5" width="263.4375" height="39"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-121.71875,-9.5)"><foreignObject width="243.4375" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">exec print simulation in container</div></foreignObject></g></g></g><g class="node hookClass" id="copyImage" transform="translate(493.484375,509.5)" style="opacity: 1;"><rect rx="5" ry="5" x="-135.140625" y="-19.5" width="270.28125" height="39"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-125.140625,-9.5)"><foreignObject width="250.28125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">copy printed image from container</div></foreignObject></g></g></g><g class="node hookClass" id="removeContainer" transform="translate(493.484375,598.5)" style="opacity: 1;"><rect rx="5" ry="5" x="-93.0234375" y="-19.5" width="186.046875" height="39"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-83.0234375,-9.5)"><foreignObject width="166.046875" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">remove print container</div></foreignObject></g></g></g></g></g></g></svg>